第一范文网 - 专业文章范例文档资料分享平台

Unity3D教程:教你如何利用Shader来进行3D角色的渲染

来源:用户分享 时间:2025/7/9 5:17:02 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

Unity3D教程:教你如何利用Shader来进行3D角色的渲染

Posted on 2013年05月09日 by U3d / Unity3D 基础教程/被围观 30 次

本文主要介绍一下如何利用Shader来渲染游戏中的3D角色,以及如何利用Unity提供的Surface Shader来书写自定义Shader。

一、从Shader开始

1、通过Assets->Create->Shader来创建一个默认的Shader,并取名“MyShader”。

Unity3D教程:3D角色的渲染

2、将MyShader打开即可看见Unity默认的Shader代码

01 Shader \ { 02 Properties { 03 _MainTex (\, 2D) = \ {} 04 } 05 SubShader { 06 Tags { \=\ } 07 LOD 200 08 CGPROGRAM 09 #pragma surface surf Lambert 10 sampler2D _MainTex; 11 struct Input { 12 float2 uv_MainTex; 13 }; 14 void surf (Input IN, inout SurfaceOutput o) { 15 half4 c = tex2D (_MainTex, IN.uv_MainTex); 16 o.Albedo = c.rgb; 17 o.Alpha = c.a; 18 } 19 ENDCG 20 } 21 FallBack \ 22 } 3、将该Shader赋给一个角色,就可以看到该Shader所能表达出的Diffuse渲染效果。

Unity3D教程:3D角色的渲染

4、接来我们将以此默认Shader作为蓝本,编写出自定义的Shader。另外,该Shader所用到的参数,我们将在下一章节进行说明。

二、实现多种自定义渲染效果

1、 BumpMap效果

如果想实现Bump Map效果,可对上述的Shader做如下修改:

1.1 在属性Properties中加入:

1 Properties { 2 _MainTex (\, 2D) = \ {} 3 _BumpMap(\, 2D) = \ {} 4 } 1.2 在SubShader的变量中也进行相应修改:

1 sampler2D _MainTex; 2 sampler2D _BumpMap; 3 struct Input { 4 float2 uv_MainTex; 5 float2 uv_BumpMap; 6 }; 1.3 最后修改surf函数,加入对Normal分量的计算:

1 void surf (Input IN, inout SurfaceOutput o) { 2 \> half4 c = tex2D (_MainTex, IN.uv_MainTex); 3 o.Albedo = c.rgb; 4 o.Alpha = c.a; 5 o.Normal = UnpackNormal (tex2D (_BumpMap, IN.uv_BumpMap)); 6 }

Unity3D教程:教你如何利用Shader来进行3D角色的渲染.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c426xt3vh1a06i7k4fy7e_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top