ProjectS中的纹素密度规划
很长一段时间里,我都对游戏中各种贴图的分辨率规范认知处于一种混沌的状态,比如离镜头远的给1024分辨率,离镜头近的给2048分辨率,大物体给2048分辨率,小物体给512分辨率等等,也就是纯凭感觉,虽然不科学,但it works!
直到某天刷知乎看到了关于此类问题的讨论和技术分享,方才恍然大悟
浅谈容易被忽视的纹素密度(Texel Density)
我该给一个3D物体用多大的贴图?——游戏工程中快速确定物体贴图分辨率的实践方法
本篇文章是对ProjectS中纹素密度选择的过程总结,以及相关工具分享
Mipmap验证工具制作
源代码来自我该给一个3D物体用多大的贴图?——游戏工程中快速确定物体贴图分辨率的实践方法,做了一些优化整理
内容也很简单,就是手动将对应分辨率的基元mipmap写入纹理中,具体优化为:
支持0-7级的mipmap指定,生成对应的纹理,实际上7级的时候纹理大小已经来到8192分辨率了,再高也没必要
0代表只生成一张64分辨率的纹理,仅有mip0
1代表生成一张128分辨率的纹理,mip1为64
2代表生成一张256分辨率的纹理,mip1为128,mip2为 ...
Android SDK总结
希望看到这篇文章的各位永远不会处理Android SDK相关的工作内容,谷歌,我真是超丝你的梦啊!
基础概念
JDK (Java Development Kit)
JDK 是Java开发工具包,它是开发Java应用程序的基础工具集。JDK包含了Java编译器(javac)、Java运行时环境(JRE)、标准类库以及各种开发工具。
用途: 用于编写、编译和运行Java程序。
组成
Java编译器(javac): 将Java源代码编译成字节码。
Java运行时环境(JRE): 包含Java虚拟机(JVM)和标准类库,用于运行Java程序。
开发工具: 如调试器、文档生成器等。
OpenJDK
顾名思义,JDK的开源版本,由 Oracle 主导并由 Java 社区共同开发和维护。OpenJDK 是 JDK 的开源实现,遵循 GPL(GNU General Public License)许可证。
Unity的安卓就是基于此
SDK (Software Development Kit)
SDK 是软件开发工具包,Android SDK是专门用于开发Android应用程序 ...
截至《绝区零》来聊聊二次元游戏的未来
序
今年来的主流二次元游戏属实给了我很多惊喜,先是鸣潮,后是绝区零,还有前些天的异环
那么为什么这篇文章是截至绝区零呢?因为在我看来,绝区零是一个相当具有里程碑意义的作品。
画风
冷色调才能接住更深刻成熟的故事
崩坏三于2016.10公测,那年我17岁,匆匆玩过,只觉得动画小人跳来跳去的挺有意思,但也仅此而已,过于可爱和幼态的画风让我对游戏内的各种日常提不起兴趣
2017年的夏天,我接触了《Fate Stay Night》,忽然明白这种赛璐璐+真实感+冷色调的二次元画风才能承担的起那些相对严肃,成熟的故事,倘若把Fate的画风换成崩坏三那种清新,明艳的,即便是HF线中黑Saber对士郎说出“士郎,我是第一次,如此恨你”的时候,我想我也会相当出戏,因为明艳的画风让我感觉这是在过家家,没有生离死别的氛围感。
对于这一点,我在看过《86不存在的战区》之后更加深信不疑
直到今年,距离2016年,跨越了整整8个年头,我也来到25岁这个分水岭一般的年纪,也更加喜欢偏成熟,严肃的作品,因为相比于欢快,明艳的作品,它们能带给我更多的思考和感动
期间《原神》,《幻塔》,《星穹铁道》,《鸣潮》 ...
Houdini大纲
总览
Houdini 是一款次时代的程序化建模、动画、特效、模拟、渲染和合成软件包。
Houdini 的强大在于程序化的工作流程。在 Houdini 中工作涉及创建连接在一起的节点网络,描述完成任务的步骤。例如,一个创建盒子的节点可能被连接到一个将盒子的边缘挤出的节点,然后是一个细分多边形的节点,再是一个编辑点位置的节点。这赋予了您巨大的力量:
您可以返回到网络中的先前节点并更改选择、更改设置或替换资产。更改会自动传播到网络中,改变最终结果。您无需撤销或重新开始并重新创建工作,以更改您之前做出的决定。
它鼓励快速原型设计。在探索想法时,您无需丢弃已完成的工作 - 只需重复使用网络的部分或重新配置网络以将其升级为工业级的质量。
由于 Houdini 基于程序生成事物,它拥有许多用于管理极其庞大和复杂场景的工具,包括支持生成/加载几何体,并在渲染时添加细节,而不是将所有内容保存在内存中。
您可以打包网络并将其制作成具有自己界面的新工具,而无需编写任何代码。在 Houdini 中,这些工具被称为数字资产(HDA Houdini Digital Assets)。
节点和网络
Hou ...
(译)Forward vs Deferred vs Forward+ Rendering with DirectX 11
在网上鲜少有能全面,具体对比Forward,Deferred,Forward+渲染管线的文章,所以抽空翻译下,分享出来
原文地址:https://www.3dgep.com/forward-plus/
In this article, I will analyze and compare three rendering algorithms:
在本文中,我将分析并比较三种渲染算法:
Forward Rendering Forward 渲染
Deferred Shading 延迟着色
Forward+ (Tiled Forward Rendering)
Forward+(平铺前向渲染)
Contents
1 Introduction 1 介绍
1.1 Definitions 1.1 定义
2 Forward Rendering 2 前向渲染
2.1 Vertex Shader 2.1 顶点着色器
2.2 Pixel Shader 2.2 像素着色器
2.2.1 Material 2.2.1 材质
2.2.2 Textures 2.2.2 纹理
2.2.3 Lights ...
(译)Ghost Recon Wildlands Terrain Technology And Tools
本文是对https://www.gdcvault.com/play/1024029/-Ghost-Recon-Wildlands-Terrain 进行的中文翻译
大纲
《幽灵行动:荒野》是育碧迄今为止制作的最大动作冒险开放世界游戏,32km x 32km
游戏设定在玻利维亚,我们在游戏中有很多多样性,11 个完全不同的生物群落
湖泊、河流和溪流覆盖了 16 平方公里的表面
道路:超过 600 公里的道路,甚至更多的小径
一条贯穿整个游戏世界的完整铁路网络
游戏中有 200 多个特定位置:营地、地标、前哨站和 58 个完全程序生成的村庄
第一个原型
地形工具
地形渲染的所有细节
程序化工具
第一个原型
https://vimeo.com/207479227
《幽灵行动:未来战士》之后,我们开始尝试更大的地形。
使用真实世界数据,我们使用世界机器优化了 DEM 文件。然后使用 Houdini 创建了一些工具来:
自动创建具有 LOD 的tile网格。
定义一种splat mask,根据坡度、海拔、粗糙度和来自 worldMachine 的其他mask(如flowmap) ...
IL2CPP代码裁剪与生成全流程剖析
前言
环境:
Unity 2022.3.4f
PC Win10
Script BackEnd : IL2CPP
近期在研究IL2CPP相关内容,对其如何将C#生成C++非常感兴趣,在IL2CPPDumper中看到了下面一段
The IL2CPP AOT compiler is named il2cpp.exe. On Windows you can find it in the Editor\Data\il2cpp directory. On OSX it is in the Contents/Frameworks/il2cpp/build directory in the Unity installation. The il2cpp.exe utility is a managed executable, written entirely in C#. We compile it with both .NET and Mono compilers during our development of IL2CPP.
IL2CPP AOT编译器的名称为il2cpp.exe。在W ...
用经典的生产-消费者模型解决游戏开发中异步加载和使用问题
封面来自:https://www.youtube.com/watch?app=desktop&v=VXJSJ6c3ZIs
前言
最近实践了很多有关异步记载和使用的业务场景,无一例外的,由于 异步 的存在,业务代码需要非常小心的维护各种状态,才能足够稳定和安全
只遇到一次还好,代码和人有一个能跑就行,遇到很多次心情就很烦躁了,所以准备抽空研究下这种业务场景较为通用的解决方案
正文
场景例程
整个世界被拆分成无数个nxn的tile,需要根据相机位置动态加载,卸载tile(以下简称地图流式行为
相机位置每帧都在变动,即每帧都有可能触发地图流式行为,正常视角渲染所需tile数量在32~50之间
出于表现和内存性能的平衡考虑,最大支持同时存在256个加载的tile,基于LRU策略进行调度
tile的加载是异步的
最终需要把加载的tile资源按照正确的索引上传至GPU
问题展示
直接上代码,我们以一帧的LateUpdate为例(此LateUpdate每帧执行),将资源加载和使用看为一个整体
但由于异步的特性,当某一帧的异步完成时,一些数据和状态可能已经发生了变动,会影响到另一 ...
(译)Forward Plus Bringing Deferred Lighting to the Next Level
在网上鲜少有能全面,具体介绍Forward+渲染管线的文章,所以抽空翻译下这个2015年的PPT,分享出来
摘要
这篇论文介绍了Forward+,这是一种通过剔除和仅存储对像素有贡献的光源来渲染许多光源的方法。Forward+是对传统的Forward渲染的扩展。利用GPU的计算能力实现的light-culling模块被添加到渲染管线中,用于创建有效light-list;该列表传递给最终的渲染着色器,该着色器可以访问有关光源的所有信息。尽管Forward+增加了最终着色器的工作量,但从理论上讲,它与compute-shader-based的延迟光照相比需要更少的内存带宽。此外,它避免了延迟技术的主要缺点:即对材质和光照模型的限制。
本论文进行了实验以比较Forward+和延迟光照的性能。
PS:参考Forward框架的逆袭:解析Forward+渲染 的内容,TBDR和Forward+内容对比:(注意此处的TBDR不是指移动平台的TBR架构,而是一种渲染流水线方案)
TBDR:
生成G-Buffer,这一步和传统deferred shading一样。
把G-Buffer划分成许多16 ...
《觅长生》游玩有感
印象中上一次玩这种修仙类型的RPG(其实我更倾向于叫他们策略RPG)还是小学的时候玩4399上的武林外传
我去搜了下,居然还在,没错就这个,哈哈
其实我个人一直对这种类型的游戏不太感冒,游戏开发大亨是,文明也是,虽然是有一些策略养成的乐趣在里面,但远不如一场场酣畅淋漓的战斗来的快感强烈
这次购买觅长生也是偶然瞥到一眼评论区的修仙味很浓+游戏本体打折才下手,游玩体验的话,就我个人而言,中规中矩,还有很大进步空间
概览
第一次打开游戏,头很铁,直接普通难度开局,然后全部凡人选项,我倒要看看所谓凡人修仙传到底是什么感觉
然后如愿以偿的体验了凡人修仙是什么感觉,没有奇遇,神武大会两次都是第二轮被狠狠淘汰,拜入门槛最低的门派,努力一生也只是个内门弟子,无数次存档驯服魔剑均以失败告终,最终在筑基后期再难精进半步,子然一身,身陨道消。
原来真正的凡人修仙竟是此等的无力,放在修仙小说里应当是围观主角打架但不小心被波及致死的路人甲吧
第二次重建档,直接所有buff全部拉满,单修炼速度都让旁人望而却步,再加上灵根属性加成,拜入离火宗,不费吹灰之力拿下神武大会冠军,轻松收服剑池魔剑,哪怕是林府篇的金 ...