源自CubeBlurOdd
half3
face =
abs
(i.uvw.xyz)==
one
? i.uvw.xyz :
zero
;
如果我将上面替换成
face = i.uvw.xyz;
之后,Cube采样之后会变的有点模糊。
之前的那个CubeBlur shader中替换之后,也会变得模糊一下。
但是替换成
face = i.uvw.xyz*.
01
;
肉眼几乎看不到差别。。。
但是问题出在哪里呢。。。
然后开始反思 UnityShader源码2017---学习笔记与自我拓展007 中对
half3
face =
lerp
(
zero
, i.uvw.xyz,
abs
(i.uvw.xyz)==
one
);
这一行的理解。
如果i.uvw.xyz = float3(-1,0,0);
那么face的值是float3(-1,0,0),测试的结果也几乎是这样的。
如果i.uvw.xyz = float3(-1,1,0);
那么face的值是float3(-1,1,0),测试的结果也几乎是这样的。
为啥这么说,“几乎”,因为-1在颜色上表示是黑色,所以输出颜色的时候,我这做的
return
float4
(face+
1
,
1
);
然后吸色看了一下结果。
R并不是完全的是0.
这就有点费解了。unity中给i.uvw传入的值是什么。为啥测试的结果中R不是0?
慢慢的,慢慢的,学习笔记就变成了悬疑案件。。。