【Unity3D技术文档翻译】第2.1篇 纹理 (Textures)

【Unity3D技术文档翻译】第2.1篇 纹理 (Textures)_第1张图片
Unity3D技术文档翻译

上一章:【Unity3D技术文档翻译】第2.0篇 材质、着色器与纹理概述

本章原文所在章节:【Unity Manual】→【Graphics】→【Graphics Overview】→【Materials, Shaders & Textures】→【Textures】

纹理 (Textures)

通常,物体的网格几何体(mesh geometry)只提供一个粗略的形状,更详尽的细节则需要纹理 (Textures)来提供。一个纹理就是一个应用在网格表面的标准位图。你可以将一个纹理图片想象成印在了一块橡胶板上,然后被拉伸并严丝合缝地固定在网格体上。纹理的定位是由创建网格体的3D模型软件完成的。

【Unity3D技术文档翻译】第2.1篇 纹理 (Textures)_第2张图片
有树皮纹理的圆柱体

Unity 可以将大多数常见的图片格式导入为纹理资源。

在3D模型上使用纹理

纹理作用于使用了材质(Materials)的物体上。材质使用一种叫做着色器(Shaders)的专门的图形程序,将纹理渲染在网格体表面。着色器通过实现光照和着色效果,模拟光泽或者崎岖不平的表面。材质和着色器可以同时使用两个甚至更多的纹理,组合使用纹理可以适应更复杂的情景。

在你的纹理被导入后,你应该将它配置到一个材质上。然后材质就可以被应用到网格体、粒子系统或者GUI上。使用导入设置(Import Settings),纹理可以被转换为立方体贴图(Cubemap )或者法向量贴图(Normalmap ),用于游戏中的不同用途。想要了解更多关于导入纹理的内容,请阅读 纹理组件 Texture Component 一节。

2D图形

在2D游戏中,精灵(Sprites)是通过将纹理应用于和物体形状近似的扁平网格上而实现的。

【Unity3D技术文档翻译】第2.1篇 纹理 (Textures)_第3张图片
从3D视角观察的精灵

在2D游戏中,一个物体可能需要一组相关联的图形图片,来实现帧动画或者一个角色的不同状态。有一些专门的技术使这些一组组的图片资源,能够高效地被设计和被渲染。想要了解更多相关的内容,请阅读 精灵编辑器 Sprite Editor 一节。

GUI

游戏的图形用户界面(graphic user interface: GUI)由许多图形组成,它们没有直接在游戏场景中被使用,但是可以让玩家做选择并看到一些信息。比如,得分和菜单选项是游戏GUI的典型应用。这些图形看上去和那些实现网格表面细节的纹理完全不同,然而它们就是使用 Unity 的标准纹理实现的。想要了解更多相关的内容,请阅读 GUI脚本指南 GUI Scripting Guide 一节。

粒子

网格(Meshes)是表现固态物体的理想方式,然而像火焰、烟雾,以及魔法符咒的火花,就不太适合了。这类效果用粒子系统(Particle Systems)来处理就合适多了。一个粒子就是一个小的2D图形,代表了液态或者气态物体的一小部分,比如一团蒸汽云。当大量的粒子被同时创建并开始运动,有时候是随机波动,它们就能够创建一个非常令人信服的效果。

比如,你可以通过从一个中心点快速发射带有火花纹理的粒子,来表现一个爆炸效果;一个瀑布可以通过从场景中的高处加速下落的水纹理粒子来模拟。

【Unity3D技术文档翻译】第2.1篇 纹理 (Textures)_第4张图片
星星粒子系统

地形高度图

纹理甚至可以被用于图片本身根本不会被看到的情景——至少不能直接被看到。在一张灰阶图片中,每个像素值,就是图片中那一点的灰度数值(它可以是0到1之间的值,0代表黑色,1代表白色)。尽管像这样的一张图片能够被看到,我们没有理由不把像素数值用于其他目的,而这就是地形高度图(Terrain Heightmaps)所做的。

一个地形(terrain)就是一个表现一块地面区域的网格,地面上的每一点都有相对于基线的高度。一个地形的地形高度图,就是按照规则的间隔对高度数值进行取样,并将取样值作为灰度值存储于一张图片中。这样一来,灰阶图片中的每个像素就和地面上的网格坐标相关联了。这些数值不会作为一张图片在场景中显示,但是可以被转换为坐标,用于生成地形网格。

有趣的是,即使一张地形高度图不会作为一张图片被直接看到,当把那些用来处理图片的技术应用于高度数据上时,仍然是有用的。比如,对一张地形高度图添加噪声处理,将会创建出多岩石的地形;对一张地形高度图添加模糊处理,将会创建出一个柔和、波动的风景。

想要了解更多关于地形的内容,请阅读 地形引擎 Terrain Engine 一节。

如果本文对你有帮助的话,点个赞或者评论一下吧!

下一章:【Unity3D技术文档翻译】第2.2篇 创建和使用材质

你可能感兴趣的:(【Unity3D技术文档翻译】第2.1篇 纹理 (Textures))