3D渲染
材质Material
材质准确地定义了物体在各种情况下显示出来的颜色。然而,实际上材质是着色器的一个实例,着色器在着色时会根据实例的不同切换渲染方式。
材质包含几个参数:
Rendering Mode:主要与透明度有关
Albedo:物体的颜色
Metallic:与光照的互动强度。
NormalMap :增加物体的细节程度。
着色器Shader
Shader是一个在GPU上运行的程序,它接受一个物体的形状、颜色等数据,并且经过计算之后输出每个像素的颜色。注意,Shader是一个程序,也是游戏的核心组成部分之一,在开发大型游戏时一般都会注意Shader。
纹理Texture
Texture是Shader的一种变量类型,当Shader初步计算好着色之后的下一步会读取Texture的颜色并且附加上去。另外,在Texture完成着色之后,Shader会接着计算光照。
Unity组件
MeshFilter
用于处理模型本身的几何信息(顶点位置,法线方向,切线方向等等)
MeshRenderer
用于处理模型的颜色信息。
Lighting
Unity提供了以下几种光照:
1.Directional :从某个固定的方向以固定的强度照射过来,而且拥有无限的覆盖范围
2.Point点光源:从某一点放射光源,而且强度会随着距离减弱。
3.Spot聚光灯:从一点向一个方向放射出圆锥形的光照,而且强度会随着距离减弱。
4.Area范围光:在一个面积上均匀地发出光线。
3D物理组件:Collider
Collider
3D碰撞器包括Collider,SphereCollider和CapsuleCollider。
除此之外,3D碰撞器还包括一个特殊的MeshCollider。该Collider根据物体的Mesh设置一个碰撞箱。但是MeshCollider的性能消耗很高,所以一般都不使用Meshcollider。
Rigidbody
3D的刚体大致和2D相同。在3D的Addforce时可以使用第四个参数声明为velocitychange来避免位置突变的情况
除了3D的上述和2D相同的组件之外,Unity的3D物理系统还设置了摩擦等其他的组件,本节暂时不讲解。