首页 > 学院 > 开发设计 > 正文

Shader之学习笔记六

2019-11-08 03:07:42
字体:
来源:转载
供稿:网友

加群获取unity引擎源代码:580392083;

Shader "Unity Shaders Book/Chapter 5/FalseColor"{	SubShader{		Pass{			CGPROGRAM				#pragma vertex vert				#pragma fragment frag				 				//集合了最常用的函数、宏、结构体				#include "UnityCG.cginc"				//使用一个结构体来定义顶点着色器的输出				struct v2f{					float4 pos:SV_POSITION;//存储顶点在裁剪空间位置信息					fixed4 color:COLOR0;								};				//顶点着色器和片元着色器之间的通信				v2f vert(appdata_full v){					v2f o;//定义一个输出对象							o.pos = mul(UNITY_MATRIX_MVP,v.vertex); //UNITY_MATRIX_MVP观察模型投影矩阵					//可视化法线方向					o.color = fixed4(v.normal*0.5+fixed3(0.5,0.5,0.5),1.0);					//可视化切线方向					o.color = fixed4(v.tangent.xyz*0.5+fixed3(0.5,0.5,0.5),1.0);					//可视化副切线方向						fixed3 binormal = cross(v.normal,v.tangent.xyz)*v.tangent.w;					o.color = fixed4(binormal*0.5+fixed3(0.5,0.5,0.5),1.0);				    //可视化第一组纹理坐标					o.color=fixed4(v.texcoord.xy,0.0,1.0);					//可视化第二组纹理坐标					o.color=fixed4(v.texcoord1.xy,0.0,1.0);				    //可视化第一组纹理坐标的小数部分					//frac-->fractional :部分的 该函数表示返回指定数据的小数部分					//saturate : 把输入值限制到[0, 1]之间。					//any:测试x的任何组件是否为非零					o.color = frac(v.texcoord);					if(any(saturate(v.texcoord)-v.texcoord)){						o.color=0.5;					}					o.color.a=1.0;										return o;				}			fixed4 frag(v2f i):SV_Target{				return i.color;			}			ENDCG		}	}}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表