UnityShader源码2017---学习笔记与自我拓展007

源自CubeBlur

有一个参数

_Texel ( "Texel" , Float ) = 0.0078125

他的默认是其实就是1./128.为啥选这个作为默认值,猜测是,cubemap的大小是128*128的使用的频率最高吧。

这一块的宏定义值得学习,把整个shader里经常用到的变量或者函数用宏定义的方式简化,已达到工作效率。

#define zero half3 ( 0 ., 0 ., 0 .)
#define one half3 ( 1 ., 1 ., 1 .)
#define two half3 ( 2 ., 2 ., 2 .)

下面一堆基本上都是一个一个面的blur算法。看到了一个函数gauss,那么基本上就是高斯模糊相关的了。

只说一个好玩的。

half3 face = lerp ( zero , i.uvw.xyz, abs (i.uvw.xyz)== one );

一看变量名字就知道是求6个面的哪一个面的了。

假设i.uvw.xyz就是i.normal;

如果i.normal = float3(1,0,0);

那么face=float3(1,0,0);










猜你喜欢

转载自blog.csdn.net/u012871784/article/details/80497814