标签:观察 tis tps rbo 下拉菜单 数值 详细 定义 mamicode
Unity渲染使用的是材质(Materials)、着色器(Shaders)和纹理(Textures),它们有着紧密的联系。
正常来说,一个物体的网格几何只是一个大致形状,而大多数细节都是由问题提供的。纹理就是应用在网格表面的标准 bitmap图像。你可以认为一张纹理图像就像是被印在一张橡胶纸上,然后在适当的位置被拉伸和固定在网格上。纹理的定位是由 3D建模软件完成的。
使用 Materials能将纹理应用于物体。Materials使用专门的图形程序 Shaders来在网格表面渲染纹理。Shaders能实现灯光和着色效果,以模拟闪亮或凹凸不平的表面。它们可以同时利用两个或多个纹理,
纹理应该是 32x32,64x64,128x128这种格式的。可以在项目的 Assets文件夹中简单地添加纹理,之后它们会出现在 Project视图中。
一旦纹理被导入,你就可以将它分配给 Material。Material能被应用于网格,粒子系统或 GUI纹理。使用 Import Settings,它就可以被转变为游戏中不同类型应用程序的 Cubemap或 Normalmap。
游戏的图形用户接口(graphic user interface, GUI)由不直接用于游戏场景的图形构成,但是这些图形能让用户做出选择并看到信息。比如说,分数显示和选项菜单是游戏GUI的典型例子。这些图形与用于详细描述网格表面的图形不同,但是它们仍然是由标准的Unity纹理处理。
网格是理想的,用于表示固态物体的;但是对于火焰,烟雾和魔法特效来说就不那么合适了。这类效果最好是由粒子系统来处理。一个粒子就是一个小型2D图形,代表流体或气体的一小部分。当许多这样的粒子被创建并开始运动时,它们就能随意地产生出完美的特效。比如说,你可以通过从一个中心点高速发射火焰纹理粒子来表演爆炸效果。也能通过从场景中的一条高线由上向下加速水粒子来模拟瀑布。
星粒子系统
Assets ->Create->Material可以创建材质。新材质默认被分配给标准着色器,且所有 map属性都为空:
一旦材质被创建后,就可以将其应用于物体并在 Inspector中调整它的所有属性。将创建好的材质拖动到Project视图里的物体就可以将它们绑定起来了。
你可以选择任何你需要的具有特殊材质的着色器。从 Inspector中的 Shader的下拉菜单那选择一个新 Shader就可以了。选择的 Shader会相应地改变属性。将材质应用给场景中的物体,你将能够实时地看到物体属性也在变化。
有两种方法能将纹理应用于属性。
除了标准着色器外,还有许多内置着色器用于特定用途:
着色器实际上就是一个包含数学计算和算法的脚本,用于显示模型表面的像素。标准着色器执行复杂和真实的照明计算。其他着色器可能使用更简单的或不同的计算来显示不同的结果。任何给定的着色器中都有许多属性,这些属性的值由使用该着色器的材质给出。通过与 GamObjects关联的渲染组件使用材质,可以渲染每个 GameObject的网格。
几个不同的材质引用同一个纹理是可行的。这些材质可能也使用相同或不同的着色器,这取决于实际需求。
下面这个例子使用了三个材质,两个着色器和一个纹理。
在这个图像中有红车和蓝车。每个模型的bodywork使用各自的材质 "Red car material" 和 "Blue car material"。
这些 bodywork材质使用同一个定制化着色器 "Carbody Shader"。使用定制化着色器是因为这个着色器为车
子添加了额外的特性,比如说金属闪亮渲染,或自定义损伤遮掩特性。
每个车身材质都引用 "Car Texture",这个纹理 map包含bodywork的所有细节,且没有特定的油漆颜色。
Carbody Shader接受一个色调 (tint colour),这个色调为红车和蓝车设置不同的颜色,令这两辆车在只使用了一个纹理的情况下看起来不同。
车轮模型也使用独立的材质,不过这次每辆车的车轮共享同一个材质。车轮材质使用 Standard Shader,且再一次引用 Car Texture。
注意车子纹理包含了 bodywork和车轮的细节。这是一个纹理地图集 (texture atlas),表示纹理图片的不同部分被显示地映射到模型的不同部分。
即使 bodywork材质使用一个包含车轮图片的纹理,但是车轮也不会出现在body上,因为这部分纹理并没有映射到 bodywork几何上。
类似的,车轮材质也使用同一个包含bodywork细节的纹理。bodywork细节也不会出现在车轮上。
这种映射是通过外部 3d应用里的 3D artist完成的,被称为 "UV mapping"
更具体地,着色器(Shaders)定义了:
标签:观察 tis tps rbo 下拉菜单 数值 详细 定义 mamicode
原文地址:https://www.cnblogs.com/qing2019/p/12820339.html