Skip to content

Unity3D入门级教程17——渲染与贴图 #19

@Veinsvx

Description

@Veinsvx

一、简介
渲染和光照是Unity中图形模块的两个重要模块,本周我们来学习渲染的相关知识,下周学习光照相关知识。
在Unity中渲染一个物体,最重要的三个概念是材质(Material),贴图(Texture),着色器(Shader)。
材质通过使用贴图,Tiling参数,颜色参数等来定义物体表面应该如何呈现。材质的可配置参数取决于材质使用的着色器。
着色器是一段代码,基于场景的光照信息和材质的配置,计算物体最终渲染的顶点位置和颜色。着色器决定了材质上面的可配置参数。
贴图是位图图像。材质可以对贴图进行引用,然后着色器在计算GameObject的表面颜色时可以使用贴图中的信息。除了GameObject表面的基本颜色(Albedo)外,贴图还可以丰富材质表面的许多其他方面,例如自发光、表面凹凸等。

这三者之间的关系是:
• 一个材质只能使用一种着色器,一种着色器可以被多个材质使用。 
• 一个材质可能需要多张不同的贴图(基本的漫反射贴图、法线贴图、高光贴图等),一张贴图可以被多个不同的材质复用。 
• 材质可以和网格Mesh关联起来,网格的表面最终会显示成对应材质的样子。 

对于大多数的写实渲染需求(角色、场景、环境等),使用内置的Standard着色器通常是最好的选择。

二、Texture(贴图)
通常情况下,物体的Mesh网格只给出了物体的大概形状,大部分细节都由贴图提供。贴图是绘制在物体网格表面的图像。你可以把贴图想象成有弹性的壁纸,这个壁纸可以通过拉伸、压缩贴到网格的表面。通常贴图的定位(UV信息)是通过3D建模软件完成的。
1. 3D模型的贴图
一张贴图要想贴到模型上,必须先将贴图赋予一个材质,然后将材质与模型关联。
贴图有不同类型和用途,例如:
• Albedo(反照率)贴图:一个材质最基础的贴图,能表示材质表面反射的颜色及比率。
image
• 法线贴图:一种特殊的贴图通过贴图的方式来实现模型表面的凸凹,增加模型的细节
image
其他用途的贴图,在讲Unity内置的Standard Shader时会讲解。
一个材质可以使用多张贴图,比如同时使用漫反射贴图和法线贴图,就能让模型有基本颜色的基础上,细节更加丰富。
贴图的尺寸应该尽可能使用2的n次幂的大小,比如256x256,512x1024等尺寸 。
2. 2D图形
2D游戏中,贴图需要设置为Sprite。在场景中绘制时类似一个纸片的形式,没有厚度。
一般情况2D游戏的角色需要一系列的图片来实现角色的不同状态或者动画。
3. GUI
使用Unity内置的GUI系统时,用到的图片需要设置为Sprite。
游戏的图形用户界面(GUI)可以让玩家查看信息、进行交互。例如,显示游戏当前得分、游戏菜单是游戏中常见的GUI。虽然界面的图片与模型表面的贴图有很大不同,但是都是使用的图片资源。
4. 粒子
网格非常适合表示实体物体,但对于魔法遗留的火焰,烟雾和火花等效果并不适合。粒子系统可以更好地处理这种特效。粒子一般用来表示很小的东西,比如液体或气体。当大量粒子一起运动时,可以产生非常逼真的效果。例如,可以将火焰贴图的粒子从中心点以极快的速度发射出去来模拟爆炸;可以用大量高速向下运动的水珠来模拟瀑布。

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions