http://docs.unity3d.com/Manual/SL-SurfaceShaderExamples.html
http://my.oschina.net/u/138823/blog/181131
此文入门surface shader;一个红色方块;
Shader "Example/Diffuse Texture" { Properties { _MainTex ("Texture", 2D) = "red" {} //从"Texture"得知加载一个"red"纹理,纹理名定义为_MainTex,底下调用需要和此名相同 } SubShader { Tags { "RenderType" = "Opaque" } //非透明 CGPROGRAM #pragma surface surf Lambert struct Input { float2 uv_MainTex; }; sampler2D _MainTex;//与前面加载的纹理名 相同才可 void surf (Input IN, inout SurfaceOutput o) { o.Albedo = tex2D (_MainTex, IN.uv_MainTex).rgb; } ENDCG } Fallback "Diffuse" }
加载了纹理:
我去..目测在surface中_MainTex此名字不能随便修改。
unity纹理拖到模型上会自动生成mat材质文件的...
今天发现_MainTex名字可以自己定义的,但要重置u3d编辑器对应的纹理图;脚本里的uv坐标和变量的定义;