贴图的作用

  • 贴图的作用是描述物体表面的材质,我们创作出的纹理与材质在游戏引擎(虚拟世界)中与光交互。

贴图类型

一、颜色贴图(漫反射颜色)

  • 颜色贴图有三种叫法:Base Color Map, Albedo Map, Diffuse Map,因为工作流不同,所以叫法不一样,而且本质上也有区别

Diffuse Map(漫反射颜色)

  • Diffuse也叫漫反射,人眼之所以能看到物体的面貌,主要是靠漫反射光在眼内的成像。
  • 黑色:表示没有漫反射。
  • 漫反射颜色:除了黑色,其他颜色都是漫反射颜色。

1、在传统工作流(纯手绘和传统次世代)中

  • 由于技术和硬件的限制,使得以前使用的着色器只支持Diffuse、Specular、Normal这几张通用的贴图,而且着色器并不能很好的把物体的体积结构表现出来,所以为了弥补这个缺点,通常在绘制Diffuse Map的时候,需要把物体的光影信息也绘制进去。
  • 总结:在传统工作流中。Diffuse包含了漫反射颜色光影信息

2、在Specular/Glossiness PBR工作流程中

  • 对于金属材质而言它没有漫反射(或者说比较少),所以使用黑色来填充。而非金属材质反射光少于金属材质,并且它折射的光只有较少的吸收通常重新折射回表面,因此对于非金属材质,使用的是漫反射颜色来填充。需要特别注意的是,在该工作流中,漫反射纹理不应该包含任何光照信息,因为将基于(环境)添加光照到物体的纹理上。

  • 总结:在Specular/Glossiness PBR工作流程中。Diffuse包含了漫反射颜色金属色(黑色)

Albedo(反照率纹理)

  • Unity中使用的颜色贴图是Albedo。
  • Albedo主要体现模型的纹理和颜色。必须注意的是,反照率纹理不应包含任何光照,因为光照将根据看到对象的上下关系添加到另外的光照贴图中。

Base Color(固有色)

  • Base Color是把颜色贴图剔除光影变化后,我们看到的最基础的颜色。在PBR工作流中颜色贴图叫做Base Color这个术语(基本上不包含光影信息)。UE4中使用Base Color。

二、法线贴图

Normal(法线):

1、凹凸贴图

  • 法线贴图是 凹凸贴图 的一种。凹凸贴图是一种特殊的纹理,允许为模型添加表面细节,例如凸起、凹槽和划痕,这些细节将捕获光线,就像真实的几何体一样。如果在游戏引擎里用模型来表现凹凸细节,将需要绘制非常多数量的多边形,以现在的电脑耗不起,好点的电脑也就支持几千万面而已)。如果使用一张凹凸贴图来呈现细节,表面的几何形状可以变得更加简单,为了避免这种情况,就需要使用法线贴图来表示清晰的表面细节。用细节纹理调制光从表面反射的方式,以现代图形硬件可以非常快地执行这个个过程。

  • 在现代游戏开发流程中,设计师将使用 3D 建模软件,基于非常高分辨率的原始模型生成法线贴图。然后,将法线贴图映射到较低分辨率的模型(游戏中实际使用的模型)上,这样,通过法线贴图,原始的高分率细节就被渲染了。

  • 注意:凹凸贴图是一种相对古老的图形技术,但仍然是创建细节逼真的实时图形所需的核心方法之一。凹凸贴图通常也被称为 法线题图 或 高度图,不过这些术语的含义略有不同(看相关贴图解释)。

2、表面法线

  • 为了真正理解法线贴图的工作原理,需要先清楚什么是 法线,以及如何在实时光照中使用法线。例如一个模型的多边形表面根据表面相对于光线的角度简单地被点亮。表面角度可以表示为一条垂直于表面并向上突出的线,是一个向量,这条线成为 表面法线,或者简单地称为 法线。

3、法线贴图

  • 用法线贴图表示表面法线的这种变化。法线贴图通过通过一张纹理来存储如何改变表面法线的信息。法线贴图是一张映射到模型表面的图像纹理。有些类似于常规的颜色纹理,不同的是,法线贴图中每个顶点(称为纹素)还表示了在表面法线方向上离开平面(或平滑)多边形真实表面的距离。

4、Opengl与Directx的区别

  • 法线贴图还与Opengl与Directx这两个图形库有关。OpenGL和DirectX都是用于渲染2D和3D信息的应用程序编程接口(API)。他们还定义了法线贴图格式,其中,

  • Unity游戏引擎使用的是Opengl程序接口。Unity使用的法线贴图,凸起的结构,在法线贴图上表现就是凸起的,凹的就是凹的。

  • UE4游戏引擎使用Directx程序接口。UE4使用的法线贴图跟Unity的相反。凸起的结构,在法线贴图上表现就是凹的,凹的结构表现为凸起的。他们的区别在于,反转法线贴图蓝色(G)通道。

  • OpenGL是个专业的3D程序接口,是一个功能强大,调用方便的底层3D图形库,可跨平台使用。OpenGL的前身是SGI公司为其图形工作站开发的IRIS GL。IRIS GL是一个工业标准的3D图形软件接口,功能虽然强大但是移植性不好,于是SGI公司便在IRIS GL的基础上开发了OpenGL。OpenGL的英文全称是“Open Graphics Library”,顾名思义,OpenGL便是“开放的图形程序接口”。虽然DirectX在家用市场全面领先,但在专业高端绘图领域,OpenGL是不能被取代的主角。

  • DirectX是一种应用程序接口(API),它是由微软公司开发的用途广泛的API,它可让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3d图形和声音效果,并提供设计 人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。

World Space Normals(世界空间法线)

  • 世界空间法线表示物体的前、后、左、右、上、下方位。

Position(位置)

  • 表示的是从上到下的整体渐变梯度关系。

三、材质属性贴图

Metallic(金属度)

  • 金属度(Metallic)控制材质的金属性,如控制材质表面在多大程度上"像金属"。
  • 金属度贴图起到类似于蒙版的作用,区分固有色贴图中的金属和绝缘体数据。
  • 在金属性贴图中,金属的金属度(Metallic)值为 1,非金属的金属度(Metallic)值为 0。
  • 对于纯表面,例如纯金属、纯石头、 纯塑料等等,金属度值将是 0 或 1,而不是任何介于它们之间的值。
  • 创建受腐蚀、落满灰尘或生锈金属之类的混合表面时,金属度值介于 0 与 1 之间。
  • 金属感对象的光泽度由粗糙度控制。 材质越粗糙,其光泽度就会越低, 而缺少粗糙度将使金属显得非常有光泽。 以下是粗糙度如何影响金属感的示例。

    上图最左侧球体的“金属感(Metallic)”值为1,“粗糙度(Roughness)”值为0,因此它显得非常有光泽。 但是,最右侧球体的“金属感(Metallic)”值为1,“粗糙度(Roughness)”值为1。 这使金属看起来非常晦暗,就像已经用过很久一样。

Roughness(粗糙度)

  • Roughness是一个属性(反射属性),控制材质表面的粗糙或平滑程度(控制材质反射光的强度)。与平滑的材质相比,粗糙的材质将向更多方向散射所反射的光线。 这决定了反射的模糊或清晰度(或者镜面反射高光的广度或密集度)。在UE4中是用Roughness来控制材质的粗糙度。
  • 在Roughness贴图中,0(黑色-0 sRGB)表示光滑,1(白-255 sRGB)表示粗糙。粗糙度在帮助确定表面光泽度方面扮演着重要角色。 表面越粗糙,其光泽度越低。 表面越光滑,其光泽度越高。 以下是粗糙度如何影响光泽度的示例。

Glossiness(光泽度)

  • Glossiness(缩写Gloss):Glossiness定义材质得粗糙度信息,跟Roughness相反,0(黑色-0 sRGB)表示粗糙,1(白-255 sRGB)表示光滑。(如下图)。
  • 光泽度无非是指表面反射光线的能力。 表面能够反射的光线越多,光泽度越高。 表面能够反射的光线越少,光泽度越低。 表面反射光线的能力受环境中各种因素的影响,例如落在对象上的那些非常小颗粒的灰尘,以及接触对象时从手上沾染到对象上的油污, 所有这一切都会影响表面反射光线的能力。

Smoothness(平滑度)

  • 在Unity中,用**Smoothness(平滑度)**来定义材质的粗糙或平滑度,并具有不同的镜面反射级别和颜色。平滑度越底,材质越粗超(漫射);平滑度越高,材质越光滑(镜面反射)。
  • 在Unity中,Smoothness(平滑度)的取值跟Roughness(粗糙度)的取值相反(把贴图反向),但都是表示材质表面的粗糙程度。
  • 在Unity中,Smoothness(平滑度)的概念同时适用于镜面反射 (Specular) 工作流程和金属性 (Metallic) 工作流程,并且在两者中的工作方式非常相同。默认情况下,如果未分配 Metallic 或 Specular 纹理映射,则材质的平滑度由滑动条控制。此滑动条可用于控制表面上的“微表面细节”或平滑度。
  • 在 Unity 中,“微表面细节”不是直接可见的。它是光照计算中使用的概念。但是,你可以看到这个微表面细节的效果,它表示当光线从对象反弹时散射的光量。在光滑的表面上,所有光线都倾向于以可预测和一致的角度反弹。在极端的情况下,一个完美光滑表面的光反射就像镜子一样。较不光滑的表面会在较宽的角度范围内反光(当光照射到微表面的凸起时),因此反射具有较少的细节并以更倾向于漫射的方式在表面上扩散。

Specular(镜面反射/ 高光)(反射)

1、传统次世代工作流中的高光

  • 在传统Specular工作流中:Specular翻译成高光,表示高光的范围、强度、颜色,颜色越亮高光越强,黑色表示没有高光。
  • 在传统Specular工作流中。由于不同材质反光的强度不同,用高光来区分不同的材质、材质质感、体积结构等。

2、Unity 中的Specular(镜面反射/ 高光)

  • 镜面反射 (Specular) 效果本质上是场景中光源的直接反射,通常会在对象表面上显示为明亮的高光和反光(尽管镜面高光也可能是微妙或漫射的)。

  • 注意:黑色镜面反射颜色 (0,0,0) 将使镜面反射效果无效。

  • 在Unity 中,Specular工作流仅在使用 Specular setup 着色器时使用。该着色器可直接控制镜面高光的亮度和色调。

  • 在 Specular 模式下工作时,Specular参数中的 RGB 颜色将控制镜面反射率的强度和色调。这包括来自光源的光泽和来自环境的反射。

  • Smoothness 参数控制着镜面反射效果的清晰度。在平滑度值较低的情况下,即使强烈的镜面反射也会出现模糊和漫射。在平滑度值较高的情况下,镜面反射更明显、更清晰。

  • 有时,可能希望改变材质表面上的 Specular 值;例如,如果纹理包含角色的外套,而外套上有一些闪亮的按钮,您会希望按钮的镜面反射值高于服装面料的镜面反射值。要实现此目的,请分配纹理贴图,而不使用单个滑动条值。这样可以根据镜面反射贴图的像素颜色更好地控制材质表面上的镜面光反射的强度和颜色。

3、UE4中的Specular(镜面反射/高光)

  • 在UE4中编辑非金属表面材质时,你有时可能希望调整它反射光线的能力,尤其是它的 高光 属性。 要更新材质的高光度,需输入介于0(无反射)和1(全反射)之间的标量数值。注意,在UE4中,材质的默认高光值为0.5。
  • 在UE4中。对于漫射度非常大的材质,不能将此值设置为零,因为所有材质 都具有镜面反射,对于漫射度非常大的材质,你真正要做的是调它们粗糙度。

四、关于结构体积的贴图

Ambient Occlusion(环境遮挡贴图)简称AO贴图

  • 模拟物体之间所产生的阴影,在不打光的时候增加体积感。也就是完全不考虑光线,单纯基于物体与其他物体越接近的区域,受到反射光线的照明越弱这一现象来模拟现实照明(的一部分)效果。

  • 遮挡贴图用于提供关于模型哪些区域应接受高或低间接光照的信息。间接光照来自环境光照和反射,因此模型的深度凹陷部分(例如裂缝或折叠位置)实际上不会接收到太多的间接光照。

  • 遮挡纹理贴图通常由 3D 应用程序使用建模器或第三方软件直接从 3D 模型进行计算。

  • 遮挡贴图是灰度图像,其中以白色表示应接受完全间接光照的区域,以黑色表示没有间接光照。有时,对于简单的表面而言,这就像灰度高度贴图一样简单(例如前面高度贴图示例中显示的凸起石墙纹理)。

  • 在其他情况下,生成正确的遮挡纹理稍微复杂一些。例如,如果场景中的角色穿着罩袍,则罩袍的内边缘应设置为非常低的间接光照,或者完全没有光照。在这些情况下,遮挡贴图通常将由美术师制作,使用 3D 应用程序基于模型自动生成遮挡贴图。

Height Map(高度图/ 置换贴图/ 视差贴图)

  • Height Map是一个二维数组(一张8位数灰度图),储存高度(Z)方向的数字。

  • 每个不同灰度的像素索引表示不同的高度信息。它的高度值变化范围是在0和255之间,其中0 (黑色)表示最低高度,255 (白色)表示最大高度。

  • 高度图(也称为视差贴图或凹凸贴图 )是一个类似于法线贴图的概念,但是技术更复杂,因此更性能开销更大。高度图通常与法线贴图结合使用,负责定义和渲染表面额外的大型凸起。

  • 虽然法线贴图改变了纹理表面的光照,但是视差高度图更进一步,它会移动表面纹理的可见区域,从而实现表面遮挡效果。这意味着,明显的凸起将具有放大的正面(面向相机)和缩小的反面(背向相机),并且反面会被遮挡住。

  • 虽然可以产生非常逼真的 3D 几何效果,但是仅限于物体网格的平面多边形表面。这意味着,表面凸起将会突出现实并且彼此遮挡,但是并不会改变模型的『轮廓』,因为最终效果是绘制在模型表面,并不会实际的几何形状。
    上图从左到右为: 1.分配了反照率贴图但未分配法线贴图和高度贴图的岩石墙壁材质。 2.分配了法线贴图。表面上的光照经过修改,但岩石不会相互遮挡。 3.分配了法线贴图和高度贴图的最终效果。岩石看起来从表面突出,较近的岩石似乎遮挡了它们后面的岩石。

  • 一张高度图应该是一张灰阶图,白色区域表示纹理的高区域,黑色区域代表低区域。看下图右半部分。

  • 通常情况下,用于高度贴图的灰度图像也适合用于遮挡贴图(AO贴图)。

Curvature(曲率贴图)

  • 作用:曲率贴图允许提取和存储凹凸信息。黑色的值代表了凹区域,白色的值代表了凸区域,灰度值代表中性/平 地。

Thickness厚度贴图

  • 作用:黑色代表薄的地方、白色代表厚的地方。它可以用于辅助制作表面散射(SSS,简称3S材质)材质,或直接扩散/反照率假装SSS的效果。 从冰面,蜡烛以及皮肤上观察到这种效果,表面看起来有一种半透明的深度感。
  • 特性:透光,光线可以穿透物体,从背光面可以观察到灯光效果。
  • 如灯笼、角色皮肤就会用到。

五、其他贴图

ID贴图

  • 用于选择不同的区域,进行分别绘制。相当于Mask遮罩。

Emissive(自发光贴图)

  • 自发光贴图控制表面发射光的颜色和亮度。当场景中使用了自发光材质时,它看起来像一个可见光。物体将呈现『自发光』效果。

  • 自发光材质通常用于某些部位应该从内部照亮的物体上,例如监视器屏幕、高速制动的汽车盘式制动器、控制面板上的发光按钮,或黑暗中仍然可见的怪物眼睛。

  • 简单的自发光材质可以通过一个颜色和亮度来定义。

Opacity(透明贴图)

  • 定义贴图的不透明度。黑色是透明的部分,白色为不透明的部分,灰色为半透明的部分。

Lightmap(光照贴图)

  • Lightmap是用于静态模型上的间接光照。将场景的光照结果烘培到模型贴图上,从而实现模拟(假冒)现实光照效果,可以节省硬件资源。在游戏引擎里做场景地图的时候会用到。

游戏美术基础(一):游戏贴图相关推荐

  1. 没有美术基础学游戏建模走的通吗?

    首先能意识到美术的重要性,还没学就赢了.这个行业有多少人工作几年还在抠软件. 对于你这个问题首先要搞明白,什么是美术基础.而什么是3D游戏建模需要的美术基础. 我们通常理解的美术基础,是素描,速写.画 ...

  2. 从事游戏美术行业,游戏建模和游戏原画间怎么选择?

    游戏建模.游戏原画都属于美术的范畴,只是两个不一样的工种,概念也有所不同. 游戏原画设计分为两个岗位:角色原画设计和场景原画设计: 3D建模分为四个岗位:手绘低模3D角色.手绘低模3D场景.次世代角色 ...

  3. 【读书笔记《Android游戏编程之从零开始》】20.游戏开发基础(游戏数据存储)...

    对于数据的存储,Android 提供了4种保存方式. (1)SharedPreference 此方法适用于简单数据的保持,文如其名,属于配置性质的保存,不适合比较大的情况,默认存放在手机内存里 (2) ...

  4. 【瑞模网】游戏美术基础(一):游戏贴图

    贴图的作用 贴图的作用是描述物体表面的材质,我们创作出的纹理与材质在游戏引擎(虚拟世界)中与光交互. 贴图类型 一.颜色贴图(漫反射颜色) 颜色贴图有三种叫法:Base Color Map, Albe ...

  5. 没有美术基础学游戏建模怎么样?

    首先我就给大家分享几点: 我想很大一部分同学都是学的数字媒体艺术吧,可能有些没学过画画,相比于有基础的人会觉得有点困难,会找不清主次吧. 我曾经看过一个贴,贴上是这么写的:"学校有3dmax ...

  6. Visual C++游戏编程基础之景物贴图

    一.基本思路 1.首实现斜角贴图,需要显示菱形图块,使用矩形图块贴图,但是要将它的周围进行透明处理,只显示菱形部分 2.计算图块索引值的公式: 列编号 = 索引值 / 每一列的图块个数: 行编号 =  ...

  7. 【读书笔记《Android游戏编程之从零开始》】17.游戏开发基础(游戏适屏的简述和作用、让游戏主角动起来)...

    1.游戏适屏的简述和作用 由于市面上安装 Android 系统的手机不断增多,出现了各种分辨率.各种屏幕尺寸的Android 系统手机.为了保证一个游戏或者一个软件能在所有的 Android 手机上正 ...

  8. 美术0基础想转行做游戏美术3D,如何快速入行?

    3D打印的玩偶.开车出门地图3D导航.户外平面广告都有3D内容.工作之余连一把3D游戏.电视广告中的3D形象不断出现电影中的3D虚拟内容不断刺激我们对画面的满足感 火爆的VR/AR中虚拟内容也都是3D ...

  9. 0基础如何成为游戏美术设计师

    游戏美术似乎对很多门外汉来讲是比较神秘的.如果你不进入到这行业,即使你的美术再好,技术再精通,也很难理解其中的奥妙,希望本文能带给你一些启示. (游戏美术,以前很多人叫游戏美工,据说有贬低人的嫌疑,现 ...

  10. 美术0基础想快速入行游戏美术3d,需要学习哪些课程

    3D打印的玩偶.开车出门地图3D导航.户外平面广告都有3D内容.工作之余连一把3D游戏.电视广告中的3D形象不断出现电影中的3D虚拟内容不断刺激我们对画面的满足感 火爆的VR/AR中虚拟内容也都是3D ...

最新文章

  1. 命令行终端神器,你值得拥有
  2. 【问链财经-区块链基础知识系列】 第四十一课 中外银行跨境业务运用区块链技术创新案例对比
  3. iOS 深入解析之NSArray
  4. C\C++\Java字符串拼接比较
  5. OPENCV-4 学习笔记
  6. 园区网VLAN应用实例
  7. php数组实例,php常用数组函数实例小结
  8. java i/o 流详解_java I/O流详解
  9. 软件测试 学习之路 CSS(一)
  10. bat中冒号的作用(注释 ,跳转, 截取、替换字符串)
  11. python自动化办公都能做什么-盘点使用Python进行自动化办公所需要的知识点
  12. python直接取系统的时间_用Python在Linux中获得系统正常运行时间的最快方法
  13. 自定义启动 android_什么是自定义Android启动器,以及为什么可能要使用一个
  14. 【学习笔记】图像超分辨
  15. 电影《大长今》励志启示
  16. 个人作业2:APP案例分析
  17. [乐意黎]合同条款里的包括但不限于的确切含义
  18. 广州去香港的N种方法
  19. 浅谈一下:运营网站的一些经历和故事
  20. 香港机房BGP线路特点

热门文章

  1. 锐捷网络2019年秋招售前产品经理面试总结
  2. .net core 下文件压缩打包下载
  3. js 注释,分号用法
  4. AWSome Day简介
  5. 在我的订单中,点击去付款查看每个订单详情
  6. 高德地图开放平台(js免费引入)
  7. 利用python多个工作簿合并到一个工作簿
  8. 2011移动互联网企业评优
  9. Java 合并、拆分PDF文档
  10. rk3399 aarch64 arm64 使用英特尔神经计算棒openvino