vertex+fragment Shader

作者:追风剑情 发布于:2014-7-1 22:15 分类:Shader

如果你想自己处理照明,可以写vertex+fragment Shader, 这是Unity中对可编程Shader的一种支持。

Shader "Custom/Shader_VF" {
	Properties {
		_MainTex ("Base (RGB)", 2D) = "white" {}
	}
	SubShader {
		Tags { "Queue"="Geometry" "RenderType"="Opaque" "IgnoreProjector"="True" }
		Pass {
			CGPROGRAM
			#pragma vertex vert //声明顶点着色函数
			#pragma fragment frag //声明片断着色函数
			#include "UnityCG.cginc" //包括外部文件
			sampler2D _MainTex;
			struct v2f{ //定义一个结构
				float4 pos:SV_POSITION;
				float2 uv:TEXCOORD0;
			};
			v2f vert(appdata_full v) //vertex Shader
			{
				v2f o;
				o.pos = mul(UNITY_MATRIX_MVP, v.vertex);//将三维坐标投影到二维窗口中
				o.uv = v.texcoord.xy;
				return o;
			}
			float4 frag(v2f i):COLOR //fragment Shader
			{
				float4 c = tex2D(_MainTex, float2(i.uv));
				return c;
			}
			ENDCG
		}
	} 
	FallBack "Diffuse"
}
运行效果

运行效果.png

标签: vertex fragment

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号