【Unity Shader学习笔记】(二)最基本的顶点片段着色器

来源:互联网 发布:成都网络员招聘 编辑:程序博客网 时间:2024/06/03 05:06

分享一个基本的顶点片段着色器,可以实现纹理采样。目前没有加入光照和阴影效果。

这个Shader可以作为基本的模板,进行更加细节的修改与开发。这里就简单分享一下吧。

Shader "Unlit/unlit"{Properties{//定义基本属性,可以从编辑器里面进行设置的变量_MainTex ("Texture", 2D) = "white" {}}SubShader{Tags { "RenderType"="Opaque" }LOD 100Pass{//在CGPROGRAM代码块中写自己的处理过程CGPROGRAM//定义顶点函数和片段函数的入口分别为vert和frag#pragma vertex vert#pragma fragment frag//包含基本的文件,里面有一些宏定义和基本函数#include "UnityCG.cginc"//从应用程序传入顶点函数的数据结构定义struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};//从顶点函数传入片段函数的数据结构定义struct v2f{float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;};//定义贴图变量sampler2D _MainTex;float4 _MainTex_ST;v2f vert (appdata v){v2f o;//将物体顶点从模型空间换到摄像机剪裁空间,也可采用简写方式——o.vertex = UnityObjectToClipPos(v.vertex);o.vertex = mul(UNITY_MATRIX_MVP,v.vertex);//2D UV坐标变换,也可以采用简写方式——o.uv = TRANSFORM_TEX(v.uv, _MainTex);o.uv = v.uv.xy * _MainTex_ST.xy + _MainTex_ST.zw;return o;}fixed4 frag (v2f i) : SV_Target{// 进行纹理采样fixed4 col = tex2D(_MainTex, i.uv);return col;}ENDCG}}}
直接把上面的Shader赋予一个材质,并将该材质拖到一个Cube上,再选择一张贴图。结果就是下面这个样子的。





0 0
原创粉丝点击