【虚幻引擎&UE5】聊聊材质/贴图/纹理

您所在的位置:网站首页 纹理贴图概念 【虚幻引擎&UE5】聊聊材质/贴图/纹理

【虚幻引擎&UE5】聊聊材质/贴图/纹理

2024-01-23 05:36| 来源: 网络整理| 查看: 265

shader : 着色器。采用特定公式来计算光影的算法集合。

Material : 材质。为了模拟现实或想象中的某种物质的光影视觉效果,使用某种光影算法(shader),并将其输入输出值限定在一定范围内,从而创设出来的特定光影模型实例。在相同的算法架构之下,不同的限定值产生了不同的光影效果,从而在视觉上能够区分出不同的物质。

Texture : 纹理。物体表面和内部呈现出来的带有纹路特征的视觉效果。这些纹路特征可以由颜色、凹凸、光影共同构成。

Mapping(Texture Mapping):纹理映射。用图片格式记录和表达纹理的一种方法。将物体呈现的纹理信息分门别类记录在不同的图片上,生成颜色贴图、凹凸贴图、法线贴图、高光贴图等,以图片像素对应模型表面进行逐一映射的方式还原表现视觉效果。图片往往不是直接“贴”在模型表面,而是通过光影算法计算后,按计算值进行间接映射还原。

贴图与纹理的关系

       中文所说的“贴图”存在诸多误区和混淆,日常往往仅指用于纹理映射的图片格式的文件(image/picture)本身,这个词既不能直接等同于映射(Mapping)技术,也不能等同于纹理效果(Texture)。它是纹理映射技术中使用到的图片资源,是纹理信息的载体,是材质模型用来生成最终纹理效果的原材料。但在不规范的用语中,或在没有足够空间显示文字的应用界面中,经常用纹理的单词texture来指代image贴图,此处的纹理/texture 其实是“表现纹理的贴图”的简称。

Material 与 Texture 的关系

          两者都是光影视觉效果的最终呈现。从性质上说,材质影响纹理的形成,纹理是展现材质的重要特征和手段;从技术上说,材质模型包含了对纹理实现的描述,纹理效果依附于材质模型和算法进行计算和表现。区别在于,匀质的材质在均匀的光照下没有纹理,不均匀的材质自带材质纹理。除此之外,因为表面磕碰刮擦,风化、生锈、内外腐蚀、工业加工、不均匀的光照等外部原因,会形成与材质不直接相关的纹理。当然,不同材质因硬度、反射折射率等属性,对外部影响有不同的反应,从而也会间接影响到纹理的形成。

       因为有些材质的自有材质纹理过于复杂,加上存在那些不是完全由材质本身属性所决定的外部纹理,所以材质模型通用算法无法完全地表现物体的纹理。为了解决这个问题,通常材质模型会预留一个纹理输入接口,允许用户额外输入纹理信息,以增加更多独特的细节特征。用户可以使用图片映射纹理(image mapping texture)的方式输入纹理信息,也可以通过程序纹理(procedure texture)的方式,用某种算法来设计和实现纹理。

         这么多概念,无非是为了完成一个共同目标:用计算机表现真实可信的 Shading,Shading 是真实世界中的光影效果,它是由物体表面材质、灯光、观察者的视角等多种因素共同决定的。要实现计算机的模拟生成,是一个非常复杂的过程。不过它的原理大概可以简化为一个函数:

Intensity = Material (Light, Eye)

也就是说,光影的强度,是由 a.照在材质上的光 b.视线 共同决定的。

材质

        一个完整的材质通常包含5种纹理,它分别是基本颜色(color)、法线(normal)、环境光遮蔽(AO)、粗糙度(roughness)和金属度(metalness)。

基本颜色:基本颜色它记录了材质表面的颜色。

法线:法线记录了材质表面的法线信息。并将法线信息转化为光影下表现出的凹凸感。

环境光遮蔽:记录了模型表面的光线遮蔽效果(这种遮蔽效果通常是自我的遮蔽)。

粗糙度:记录了材质表面的粗糙度信息。越白,就意味着这个地方粗糙度越高。

金属度:金属度记录了材质金属质感的强度。如果这个地方越白,那么就意味着这个地方金属质感越强。

        如果我们把纹理组合起来,它就是一个完整的材质。这些就是纹理与材质的关系。一个材质会包含各种不同用途的纹理,它们之间互相配合使用就可以呈现出,最后的材质质感,而这些纹理本质上都是图片。

纹理命名规范:

大多数情况下纹理我们通常使用"T_"作为前缀(Texture)

颜色纹理:T_BaseColor 或T_Color

法线纹理:T_Normal 或T_N

环境光遮蔽:T_AmbientOcclusion 或T_AO

粗糙度纹理:T_Roughness 或T_R

金属度纹理:T_Meatallic 或T_M

灯光

         现实世界的光照是极其复杂的,而且会受到诸多因素的影响,这是以目前我们所拥有的处理能力无法模拟的。因此OpenGL的光照仅仅使用了简化的模型并基于对现实的估计来进行模拟,这样处理起来会更容易一些,而且看起来也差不多一样。这些光照模型都是基于我们对光的物理特性的理解。其中一个模型被称为冯氏光照模型(Phong Lighting Model)。冯氏光照模型的主要结构由3个元素组成:环境(Ambient)、漫反射(Diffuse)和镜面(Specular)光照。这些光照元素看起来像下面这样:

环境光照(Ambient Lighting):即使在黑暗的情况下,世界上也仍然有一些光亮(月亮、一个来自远处的光),所以物体永远不会是完全黑暗的。我们使用环境光照来模拟这种情况,也就是无论如何永远都给物体一些颜色。

漫反射光照(Diffuse Lighting):模拟一个发光物对物体的方向性影响(Directional Impact)。它是冯氏光照模型最显著的组成部分。面向光源的一面比其他面会更亮。

镜面光照(Specular Lighting):模拟有光泽物体上面出现的亮点。镜面光照的颜色,相比于物体的颜色更倾向于光的颜色。

每天记录一点点,每天进步一点点!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3