1、Shuriken粒子系统
在3D游戏里,大部分的游戏对象可以用meshes(网格模型)的形式来呈现。2D游戏通常用sprites(精灵)来显示。对于固定形状的游戏对象,网格模型和精灵的确是非常理想的视觉呈现方式。但在游戏里还需要其他的元素或对象,它们的自然形状并非固定不变,因而难以用网格模型或精灵实现。
例如风云雷电雨雾等,这类的对象通常要靠粒子系统特效完成。
(1)什么是粒子系统
粒子系统是指很小很简单的2D图像或者3D网格模型。在粒子系统中,通过各种设置让微小的粒子以某种特定的形态展示出来,就形成了粒子特效。
一般来说,每个粒子都有预定的生命周期。通常设置为数秒。在这段时间内,粒子会经历不同的变化。
(2)Shuriken粒子系统
2012年,Unity从3.5版本开始支持Shuriken粒子系统。在Unity里,粒子系统是以组件的形式实现的。
粒子系统虽然有很多属性,但大体上可以分为三类:粒子系统的主模块、粒子系统的具体属性模块、以及默认的粒子纹理及Shader。
2、Shader的使用
(1)什么是Shader
在计算机图形学中,Shader(着色器)是指专用于渲染着色的计算机程序,其作用是设置图像的光照、阴暗和色彩等。Shader通常以极高的灵活性在图形硬件上计算所渲染的效果。大多数的Shader在编码时是针对图形处理单元(GPU)的,Shader编程语言通常可用于编写GPU渲染管道。通过Shader中预定义的算法,可以动态修改图像显示地像素、顶点、纹理等元素的位置、色调、饱和度、明暗度和对比度等。此外,也可通过调用Shader的方式来是以外部的变量或者纹理。
在Unity中,对游戏对象的渲染是通过材质(Material)、着色器(Shader)和纹理(Texture)共同完成的。
材质用于定义物体的表面是如何渲染的,包括所使用的纹理贴图,表面铺设以及色彩变化等。
Unity中的着色器其实是小的打码片段,其中包含各种数学运算和算法,作用是基于材质的设置和光照输入计算每个像素点的色彩和其他属性。
纹理贴图其实就是位图。材质中可能包含了到纹理的引用,因此材质所使用的着色器可以在计算物体表面色彩的时候使用纹理贴图,除了用于呈现物体表面的基本色彩,纹理还可以用来表现材质的其他方面,比如反射或粗糙程度等。
(2)Unity中的标准Shader
Unity的标准Shader是可以高度定制化的Shader,而且可以很好地呈现多种类型的物体表面。
Unity的标准Shader带有一系列丰富的特性,特意渲染“真实世界”的物体。Unity中的标准Shader支持各种着色器类型及其组合,只需要在材质编辑器中简单地使用不同的纹理选项和参数即可。
标准Shader同样整合了先进的光照模型。称之为基于物理的渲染。
当我们使用标准Shader时,多个着色器类型(如Diffuse,Specular,Bumped Specular,Reflective等)被整合进单个着色器,从而可以在所有的材质类型上使用。这种方法的好处是在场景的所有区域使用相同的光照计算效果,从而可以让所有使用该Shader的模型有真实可信的光线和阴影分布。