Unity Shader 参数学习记录
来源:互联网 发布:python list get函数 编辑:程序博客网 时间:2024/06/03 08:48
1.面的剔除 Cull
在渲染的时候,默认情况下只有朝向摄像机的面才会被渲染,可以通过Cull来告诉Unity我想渲染哪一个朝向的面,使用Cull命令在计算体积阴影的时候可以来计算和物体相交的投影。
Cull Off 不剔除
Cull Back 剔除背面(背向摄像机的面)
Cull Front 剔除前面(朝向摄像机的面)
2.深度缓存和深度测试
ZWrite On/Off 代表是否将像素的深度写入深度缓存中(同时需要看ZTest是否通过)
ZTest LEqual/Greater/GEqual/Less/Equal/NotEqual/Always/Never/Off 代表通过比较深度来更改颜色缓存的值。默认情况下,如果将要绘制的新像素的Z值小于深度缓存中的值的时候,则将用新像素的颜色值更新深度缓存中对应像素的颜色值。(需要注意ZTest Off代表关闭深度测试,等价于ZTest Always (直接将当前像素颜色写进颜色缓冲区)而不是ZTest Never(不要将当前像素颜色写进颜色缓存中,相当于消失)
/*********************************************************************
1)ZWrite On,ZTest 通过时,该像素的深度才能成功写入深度缓存,同时因为ZTest通过,该像素的颜色值才会写入颜色缓存
2)ZWrite On,ZTest 不通过时,该像素的深度不能成功被写入深度缓存,同时因为ZTest 不通过,该像素的颜色值也不会写入颜色缓存。
3)ZWrite Off , ZTest 通过时,该像素的深度不能成功被写入深度缓存,但因为ZTest通过,该像素的颜色值会被写入颜色缓存。
4)ZWrite Off , ZTest 不通过时,该像素的深度不能成功被写入深度缓存,同时因为ZTest 不通过,该像素的颜色也不会写入颜色缓存。
所以像素的深度能否成功写入深度缓存,条件为 ZWrite On,ZTest 通过。ZWrite 默认为On,ZTest 默认值为LEqual,也就解释了为什么Unity中,距离相机近的东西会阻挡距离相机远的东西。当我们先绘制距离近的东西,再绘制距离远的东西时,由于远的东西后绘制会挡住近的东西,所以我们通过ZWrite和ZTest来改变物体的遮挡关系。
*********************************************************************/
3.float4 _MainTex_ST 和 TRANSFORM_TEX
1)TRFANSFORM_TEX 主要作用是获取顶点的UV和材质球的Tiling和Offset作运算的,确保材质球里的缩放和偏移设置是正确的(v.texcoord代表顶点的uv)
2)_MainTex_ST 的ST是指SamplerTexture,意思是声明_MainTex的一张采样图,就是会进行UV计算,没有这个变量是无法进行TRFANSFORM_TEX的运算。_MainTex_ST.xy 即代表Tiling , 而zw 代表Offset 。
4.Blend混合语句 Blend {code for SrcFactor} {Code for DstFactor}
混合指的是处理后的片段颜色与已经存在于缓冲区的颜色进行混合。
Code Resulting Factor(SrcFactor or DstFactor)
One float4(1.0)
Zero float4(0.0)
SrcColor fragment_output
SrcAlpha float4(fragment_output.a)
DstColor pixel_color
DstAlpha float4(pixel_color.a)
OneMinusSrcColor float4(1.0) - fragment_output
OneMinusSrcAlpha float4(1.0 - fragment_output.a)
OneMinusDstColor float4 (1.0 - pixel_color)
OneMinusDstAlpha float4(1.0 - pixel_color.a)
当使用Blend时,最终颜色计算为 result = fragment_color * SrcFactor + pixel_color * DstFactor .
fragment_color 即是经过处理的片段颜色,就是fragment返回的结果
pixel_color 即是原本存在于缓冲区的颜色
5. UNITY_TRANSFER_FOG 宏 和UNITY_APPLY_FOG宏
UNITY_TRANSFER_FOG作用是从顶点着色输出雾数据. 在Shader Mode 3.0中是 计算每个像素的雾距离,和每个像素的雾效因子.
UNITY_APPLY_FOG作用从顶点着色器中输出雾数据,将第二个参数中的颜色作为雾效的颜色值,且在正向附加渲染通道(forward-additive pass)中,自动设置纯黑色(fixed4(0,0,0,0))的雾效.
- Unity Shader 参数学习记录
- unity shader 学习记录
- Unity Shader 常见参数
- Unity shader学习资料
- Unity Shader 学习开发
- Unity Shader 效果学习
- Unity Shader 学习
- unity shader 学习一
- unity shader学习参考文献
- Shader 学习二:Unity shader 的组织形式
- Unity shader学习笔记 (四) 分解Shader
- Unity Shader学习笔记:简单的shader
- Unity的Shader入门学习
- unity shader学习总结一
- Unity shader 学习总结<一>
- Unity Shader学习总结(资料篇)
- Unity - Fixed function shader学习
- Unity Shader学习笔记(五)
- java 1 整数的进制之间的转换
- 自然语言处理入门(4)——中文分词原理及分词工具介绍
- JAVA基础(36) java中sleep()和wait()方法详解
- log文件的查看 tail -f aa.log 日志打印最新的
- Android 文本复制
- Unity Shader 参数学习记录
- SQLite_关于SQLite
- floyd算法(C语言 邻接表)
- android开发ndk调用第三方so库
- J2EE相关
- Unity3d热更新三
- Docker Win7 下的安装
- 关于$.post()没有执行完,就执行后面代码的处理方法
- linux系统新建用户、密码