简介: 最近在用 ASE 做东西的时候,看了一下生成的代码,有一段关于采样的,看上去是执行了两遍,所以不知道着色器编译器有没有傻到也执行两遍采样
unity版本:20222.1.7fc1
情况一 Lerp
节点图
生成了两次采样的节点图的长相代码预览
生成的代码,可以看到用了两次的 tex2D编译结果
可以看到,编译器智能的进行了一次采样情况二 手动乘法计算
节点图
我们用纹理的 alpha 乘以纹理的rgba代码预览
我们的代码生成少了,但是依然是两次采样的写法编译结果
依然采样了一次额外发现
在两次的代码中都是直接计算的 rgba四个分量,但是在最终时 alpha 并没有被用到,然后我们可以在编译结果中发现,实际的计算自动舍弃了对apha分量的计算。
看来编译器一点也不傻,在默默地帮我们处理一些无用的操作
网友评论