打死都记不住的小知识点

打死都记不住的小知识点
Shader
混合模式
切线空间转换
渲染模式及变更
低精度渲染
渲染顺序规则
Shader
混合模式
Blend SrcFactor DstFactor :SrcFactor 是源系数,DstFactor是目标系数,源系数是由片段着色器计算出来的Fragment_out,目标系数是之前累计的原色值,存储在帧缓冲中。
1
切线空间转换
切线空间到世界空间转换:

float3 normalWorld = UnityObjectToWorldNormal(v.normal);
float4 tangentWorld = float4(UnityObjectToWorldDir(v.tangent.xyz), v.tangent.w);
half sign =v.tangent.w * unity_WorldTransformParams.w;//unity_WorldTransformParams相当于UNITY_UV_STARTS_AT_TOP定义的宏
half3 binormal = cross(normal, tangent) * sign;
float3x3 tangentToWorld =half3x3(tangent, binormal, normal);
1
2
3
4
5
模型空间到到切线空间转换:

#define TANGENT_SPACE_ROTATION \使用这个宏即可,在UnityCG.cginc中
float3 binormal = cross( normalize(v.normal), normalize(v.tangent.xyz) ) * v.tangent.w;
float3x3 rotation = float3x3( v.tangent.xyz, binormal, v.normal )
1
2
3
}

渲染模式及变更
名称 翻译 注解 对应关键字
Opaque 不透明 适用于所有的不透明的物体 对应的下面的不开启
Cutout 镂空 alpha小于阀值clip掉 _ALPHATEST_ON
Fade 渐隐 与Transparent的区别为高光反射会随着透明度而消失 _ALPHATEST_ON
Transparent 透明 高光反射不会随透明而消失 _ALPHAPREMULTIPLY_ON
Tips:如果想动态开启或者关闭某一个设定,开启对应的shader关键字,注意深度的处理,1,2都会进行深度写入,3,4不会进行深度写入

低精度渲染
#pragma fragmentoption ARB_precision_hint_fastest

渲染顺序规则
1.CameraDepth --从小到大
2.Sorting Layer(在Tags&Layer中设置,相当于mesh和canvas中的sortingLayer).
3.Order In Layer(相对于Sorting Layer的子排序,同一层时才有效,mesh中sortingOrder,Canvas的OrderInLayer)
4.RenderQueue

原文链接:https://blog.csdn.net/u010778229/article/details/106333333

你可能感兴趣的:(打死都记不住的小知识点)