Unity3D游戏制作(二)——如何渲染3D角色

本文介绍了如何在Unity3D中利用Shader渲染3D角色,包括创建自定义Shader、实现BumpMap效果、Blinn-Phong光照以及边缘光照和卡通渲染的Shader应用。通过实例详细讲解了Shader的编写和材质设置,帮助开发者实现不同的视觉效果。
摘要由CSDN通过智能技术生成

本系列文章由 Amazonzx 编写,欢迎转载,转载请注明出处。

http://blog.csdn.net/amazonzx/article/details/7935341


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


一、       从Shader开始

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


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

Shader "Custom/MyShader" {
	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"
}

3、将该Shader赋给一个角色,就可以看到该Shader所能表达出的Diffuse渲染效果。



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


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

1、  BumpMap效果

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

1.1  在属性Properties中加入:

Properties {
	_MainTex ("Base (RGB)", 2D) = "white" {}
	_BumpMap("Bumpmap", 2D) = "bump" {}
}

1.2  在SubShader的变量中也进行相应修改:

sampler2D _MainTex;
sampler2D _BumpMap;

st
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值