Call to Arms - Gates of Hell: Ostfront

Call to Arms - Gates of Hell: Ostfront

Total Graphics Conversion: PBR Shader for Gate of Hell
 This topic has been pinned, so it's probably important
FNSOIDATHQ  [developer] Aug 14 @ 7:04pm
3. 面向Modder的开发指南


如果你要在那你的mod中使用该着色器 不要 简单地将所有文件复制粘贴到你的mod里,因为
  • 启动器使用基于加载顺序和着色器文件大小/修改日期的哈希来判断着色器是否和上次游戏相同*。这意味着无意义的重复文件同样会被视为不同的着色器结果,并导致启动器删除本应优化游戏体验的缓存文件。
  • 不同的着色器代码基本没有兼容性可言,如果有人同时使用你的mod和其他一些mods,很可能导致不必要的编译错误。
请只包含你做针对性修改的着色器文件,或者干脆为你做的着色器修改单独设置一个mod!
如果你没用对着色器代码做任何修改,请简单地将本mod设为依赖。

*按顺序加载后的着色器代码逻辑检查是否相同是不现实的



如果你需要导入使用纯PBR贴图(金属度,粗糙度,AO,自发光)的模型

可以从 mod/resource/entity/misc/materials/pbr 文件夹中找到用于预览图和测试的新mtl及贴图样例。

3.1 mtl结构
当mtl中同时存在
  • {height "xxx"}
  • {lightmap "xxx"}
以上两个条目时,着色器会激活纯PBR贴图模式。
其中
height 条目本来用于地面纹理的视差贴图,现在用于索引间接光镜面反射贴图
lightmap 条目本来用于预烘焙光照贴图,现在用于存储一个四通道的遮罩贴图

除此之外,额外的参数
{parallax_scale 10000}:被用于启动包括间接光镜面反射的自动Phong到PBR转换。
{full_specular}:用于打开纯PBR下的自发光贴图支持。

3.2 间接光镜面反射贴图
间接光镜面反射贴图是一张存储着预过滤环境光信息的贴图,我们通过采样它来计算PBR渲染中间接镜面反射的结果。
预先制作的间接光镜面反射贴图被存储在 mod/resource/texture/common/envmap 中。
这不是一张包含了mipmap的环境光贴图!mipmap中存储的贴图经过特别方法计算,和纯粹的mipmap完全不同。
这些贴图通过CC0协议从Poly Haven获取。在此感谢艺术家和网站的无私奉献!

你可以简单的通过 {height "$/envmap/env"} 索引我们预置的贴图。

3.3 纯PBR渲染的贴图映射
在通过3.1的改动启用纯PBR贴图模式后,mtl中的贴图将按以下逻辑映射到PBR:
原贴图
目标贴图
diffuse.rgb
基础色.rgb
diffuse.a
透明度
specular.r
金属度
specular.gba
自发光.rgb
height.rgb
间接光镜面反射贴图
lightmap.r
粗糙度
lightmap.g
lightmap.b
环境光遮蔽(AO)
lightmap.a
视差贴图(未实现)
*注:rgba=rad,green,blue,alpha=红绿蓝Alpha四个贴图通道

3.5 着色器开发指南
我将(sooooon!)会在我的网站和github写这个。
Last edited by FNSOIDATHQ; Aug 16 @ 2:33am