正确的理解TextureUsage.json
错误理解:各个ps-t放着几张贴图

正确理解:每条vs-ps调用ps-t

筛选

现在可以根据两条vs-ps的ps-t# 不同的贴图格式进行筛选,只要理解vs-ps是分开的,可以使用各种方法进行判断,下面给出几种方案
首先先把贴图匹配进来,没有匹配到的贴图,那个ps-t将被视为null,这点很重要

一般来说,匹配这3个够用了,然后写if
只替换第一条vs-ps,不换描边那个vs-ps。描边正常


如果换描边的vs-ps,看看效果。描边的ps-t0被我的法线占据,而漫射没有被替换


ps-t不能写严格判定
ps-t# === null 始终为false
ps-t# !== null 始终为true
以下两种写法等价
ps-t0 && !ps-t1 && ps-t2 && ps-t3 && !ps-t4
ps-t0 != null && ps-t1 == null && ps-t2 != null && ps-t3 != null && ps-t4 == null
小偷懒
只写一个BC7判断
(filter_index是可以自定义数字的)

极致偷懒
利用没有匹配到的贴图,那个ps-t将被视为null这一点,可以只写一个BC7判断ps-t是不是null

但是要注意其他mod,有没有把其他贴图匹配进来
比如RabbitFX,就写了一堆规则匹配,就不能这么干了,如下

其他注意事项
想要完整判断TextureUsage.json提取时关闭这些选项

一些后面位置的ps-t会变动,写if的时候不要对它们做判断

match_format 类型可以写数字,对应关系见DXGI_FORMAT (dxgiformat.h) - Win32 应用 |Microsoft Learn
match_format 类型大部分是BC7_TYPELESS
如果明明是BC7但没有匹配上,就去加BC7_UNORM和BC7_UNORM_SRGB匹配



闽公网安备35010302000678号


















































