标签:
这是我们Unity shader(着色器)教程的第一课,在这节课中,你会学到怎么样来用程序来编写一个在Unity中能使用的着色器:漫反射着色器。这节课的内容主要让我们熟悉创建shader和应用shader的流程。
Shader "CookbookShaders/BasicDiffuse" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} } SubShader { Tags { "RenderType"="Opaque" } LOD 200 CGPROGRAM #pragma surface surf Lambert sampler2D _MainTex; struct Input { float2 uv_MainTex; }; void surf (Input IN, inout SurfaceOutput o) { half4 c = tex2D (_MainTex, IN.uv_MainTex); o.Albedo = c.rgb; o.Alpha = c.a; } ENDCG } FallBack "Diffuse" }
这个过程就是一个创建新的shader,并且通过material把我们的shader应用到物体上的步骤。以后每个新的shader,都可以通过类似的步骤来使用到场景中的物体上。
上面的shader应用到物体上以后,我们可以发现物体的表征跟原来是一模一样的。这个原因是因为我们写的这个第一个shader的功能,跟unity默认的shader是一模一样的。也就是说,虽然我们在创建物体的时候,我们并没有给它相应指定相关的shader,但是unity会保证它带上一个默认的。在3d应用中,每个物体都必须有一个相应的shader来完成最后的渲染(绘制物体的术语)。你没有去刻意选择的时候,3d引擎本身会帮助你选择一个默认的而已。
但是,同时我们也注意到了,shader只有通过material(材质)作为媒介才能应用到物体上,而不能直接绑定到物体。这也就是为什么我们在创建shader以后必须要创建一个material,然后从material中选择我们的shader,再把material绑到物体上的原因。所以,对于物体来说,它具备材质属性,而shader只是材质中的一个组件或者部分。这个大家需要先弄清楚。
这就是我们第一节课的内容,熟悉一下整个shader制作和应用的流程。下面的课程,我们会在这个shader的基础上加入元素,能让物体改变色彩和一些更丰富的功能。
98教育(98jy.net)原创文章,转载请注明原文地址,否则视为侵权!
Unity shader教程-第一课:写shader和应用shader的流程
标签:
原文地址:http://blog.csdn.net/tinyhum3d/article/details/43117541