Unity Shader 一些宏以及内置函数简介

ComputeScreenPos:位于UnityCG.cginc中,用于将裁剪空间坐标范围从[-w,w]映射到[0,w](不做透视除法,直接插值),像素着色器中用的时候一般除以w映射到[0,1]作为纹理(比如深度纹理)的uv值;

tex2Dproj:与tex2D相似,不过输入的uv一般是上面ComputeScreenPos计算出的值,用的时候要除以w做个映射;

UNITY_PROJ_COORD:处理平台差异,一般直接返回输入的值;

SAMPLE_DEPTH_TEXTURE:位于HLSLSupport.cginc,一般用于获取深度纹理的颜色,直接输入uv;

SAMPLE_DEPTH_TEXTURE_PROJ:基本同上,不过输入的uv也是上面ComputeScreenPos计算出的值,内部用tex2Dproj实现;

LinearEyeDepth:unity中,我们从深度图中获取的值一般不能直接使用(一般是一个与观察空间的z值倒数线性相关的值),因此需要将其转化到观察空间的z值来使用,这个函数就是这个作用;

Linear01Depth:将上述得到的z值映射到[0,1]范围;

猜你喜欢

转载自blog.csdn.net/dark00800/article/details/79224834