Unity Shader - Textures 纹理

目录:Unity Shader - 知识点目录(先占位,后续持续更新)
原文:Textures
版本:2019.1

Textures

通常一个Mesh(网格)对象作为大概的外观形状,加以纹理后,看起来可以提供外观细节。纹理图像供以Mesh表面使用。你可以认为一个纹理可用作是一个橡胶皮一样,纹理上的坐标与顶点位置设配好位置后,纹理将按坐标拉伸,以保证设配位置。纹理的定位是通过3D建模软件完成的,该软件用于创建网格。
Cylder with tree bark - 树皮纹理的圆柱体
Unity 可以导入大多数通用的图像文件格式。

Textures for use on 3D models

在3D模型中使用纹理

纹理应用于对象的Materials(材质)。材质中用以图像程序的称为Shaders,用于渲染网格表面。Shaders可实现光照和着色的效果来模拟光滑或是凹凸不平的表面。Shader中也可以同时使用多个纹理来组合使用以实现更多灵活可变的效果。

纹理的尺寸(宽高)都应该是2次幂(如:32x32,64x64,128x128,256x256,等等)。只要将纹理放在Unity项目的Assets文件夹下就可以了,然后这些资源将会显示在Project视图。

纹理经导入后,你就可以将它设置为 Material中使用了。材质可应用与网格,粒子系统,或GUI纹理。通过Import Settings(导入设置),可转化为Cubemap或Normalmap以在不同需求类型中使用。更多的相关导入纹理信息,请查阅Texture Component page

2D graphics

2D 图形
在2D游戏中,Sprites(精灵)是以平坦的网格中使用纹理来模拟对象的外观形状的。
Sprite from a 3D viewport
一个2D游戏中的对象可能需要许多的图片集合来呈现动画帧。此方法可以很方便的设计和渲染。查阅手册页面了解更多的Sprite Editor信息。

GUI

GUI一般我们也叫UI以简称

何为GUI,游戏的graphic user interface(GUI:用户的图形界面操作接口)一般由非场景内容交互的,而是允许用户选择或查看信息用的。例如,积分榜的显示、或是游戏的菜单界面中的菜单选项的UI。这些图形直观上就与场景中的网格表面很大不同,但它们也是用纹理来处理并呈现的。查阅手册GUI Scripting Guide来了解更多Unity GUI System的信息。

Particles

网格是用于显示不透明对象的好方法,但处理如:火焰、烟雾和魔法施法后留下的星光之类的就不太适合了。处理这类的话用Particle System(粒子系统)会更好。粒子一般用于呈现看似流体或气体的显示处理(流体或气体中很小块用一个粒子来呈现,以此多个来呈现整体),如:烟云。粒子创建后,并设置运动,随机参数选项,就可以呈现出令人惊叹的效果。如,你可以发射带有火焰纹理的粒子,以极快的速度从一个点中发射出去来呈现爆炸效果。瀑布的效果可以用一个水纹理的粒子从场景的高点到底点的加速下落来实现。
Star particle system
Unity particle system用于创建各式各样的流体效果是非常适合的。查阅手册Particle System以了解更多。

Terrain Heightmaps

Terrain(地形)高度贴图

纹理甚至用于你根本看不见的地方来实现很多功能。一张灰度图中,每个像素都是一个数值,该数值或许对应着shader处理图像时用到的灰度值(该值范围0.0~1.0,0为黑rgb:0,0,0,1为白rgb:1,1,1)。虽为图像纹理,但也是可以用于其他目的而使用的,特别是Terrain Heightmaps(地形高度图)中特别适合。

terrain是个地表呈现网格,每个地表点都有特定的高度。一个terrain的高度图存着的数值都是terrain grid(地形网格)采样高度用的,高度图中的每个像素点灰度值都对应着网格坐标。此图不用于显示,但用于terrain地形网格中转化为坐标值而使用的。

有趣的是,高度图不用于显示,但它们常用语图像处理技术中应用为高度数值而使用。例如,带有noise(噪点,临近高度像素之间的值得差值比较大)的高度图将可以创建出类似岩石的地形,平滑模糊的高度图可以创建平滑的过渡地形,从而产生更柔和、起伏的景观。

更多关于Unity terrians地形,查阅手册script-Terrain

猜你喜欢

转载自blog.csdn.net/linjf520/article/details/91042502