三维图形渲染中常见的贴图

贴图(Map)是美术在ps等软件中制作产生的一张图片,有很多格式如:dds、tga、bmp、png、jpg等。

名称 详细说明
dds

使用DXTn算法来按照块(4x4)为单位来压缩存储,有效减少了纹理内存消耗,可被GPU硬件解压缩

支持mipmap层级数据存储,专门为纹理而设计的贴图

8位:R3G3B2

16位:A1R5G5B5、A4R4G4B4、R5G6B5、A8R3G3B2、X4R4G4B4

24位:R8G8B8

32位:A8R8G8B8、A2R10G10B10、X8R8G8B8

64位:A16B16G16R16

一些工具:

① nVidia的Texture Tools for Adobe Photoshop 8.23.1101, 7.83.0628

② nVidia的Legacy Texture Tools

③ nVidia的DDS Thumbnail Viewer

④ nVidia的Windows Texture Viewer

⑤ nVidia的max dds Plugin

tga

支持压缩和透明,可用于存储8位、15位、16位、24位、32位图像数据

支持alpha通道、颜色索引、RGB颜色、灰度图

游戏中常常使用tga作为贴图的存储格式

bmp

格式是无损数据压缩的,格式有1位、4位、8位、16位、24位、32位

1位(单色位图): 一个像素只占一位,要么是0,要么是1,所以只能存储黑白信息

4位(16色位图):一个像素4位,有16种颜色可选

8位(256色位图):一个像素8位,有256种颜色可选

16位:X1R5G5B5、R5G6B5、X4R4G4B4

24位:R8G8B8

32位:X8R8G8B8

png

格式是无损数据压缩的,格式有8位、24位、32位三种形式

其中8位PNG支持两种不同的透明形式(索引透明和alpha透明)

24位PNG不支持透明

32位PNG在24位基础上增加了8位透明通道

jpg

支持的像素格式:R8G8B8

不支持透明

有损压缩,可按照图片质量来设定压缩比

 

在三维图形渲染中,贴图与shader组合成材质,用来告诉gpu如何进行绘制,决定了三维模型表面最终呈现出来的颜色。

贴图作为材质中使用的图像。 将它们映射到应用这个材质的表面,然后直接应用到诸如漫反射贴图之类的地方,或者在材质中将贴图的贴图像素值作为蒙板使用,或用于其它计算。在作为HUD时,可直接进行绘制。

 

Diffuse Map(漫反射贴图,也称为颜色贴图;Base Color;Albedo Map -- 反照率贴图):用于表现物体被光照射到而显出的颜色和强度

Bump Map(凹凸贴图):给模型增加立体感。它并不能改变模型的形状,而是通过影响模型表面的影子来达到凸凹效果的。游戏中有两种不同类型的凸凹贴图:法线贴图(normalmap)和高度贴图(highmap)。

Normal Map(法线贴图):定义了一个表面的倾斜度或者法线。换一种说法,他们改变了我们所看到的表面的倾斜度

有两种制作法线贴图的方法:

① 从三维的模型渲染出一张法线贴图 (用高模跟低模重叠在一起,把高模上的细节烘焙到低模的UV上,这里需要低模有一个不能重叠的UV)

② 在ps中转换一张高度贴图成为一个法线贴图。(使用NVIDIA Texture Tools ps插件)

Height Map(高度贴图):一种黑白的图像,它通过像素来定义模型表面的高度。像素越白的地方越高,越黑的地方越低,灰色的在中间,从而表现不同的地形。

三维图形渲染中常见的贴图_第1张图片

Specular Map(镜面光贴图,也称高光贴图)或Reflective Map或Gloss Map(光泽贴图):一种黑白的图像,像素越白的地方镜面反射越强,越黑的地方镜面反射越弱,用来表现模型表面反光程度(塑料>木头>皮肤>布料),从而区分不同材质

Mask Map(Opacity Map,Opacity Mask Map,不透明贴图,遮罩贴图):

三维图形渲染中常见的贴图_第2张图片

Emission Map(Emissive Map,Self-Illumination Map [自发光贴图])

仅仅是提高贴图本身的亮度,不受场景光源和摄像机位置影响,也不会照亮其他物体

Glow Map(辉光贴图):模拟闪耀的效果,它不会照亮环境,不受场景光源和摄像机位置影响。过分的辉光效果会使人眼花缭乱,因此常用于模型细小部位,例如机器人的眼睛,装备上的宝石挂饰等

三维图形渲染中常见的贴图_第3张图片

a是没有辉光的效果,c是加了辉光的效果 ,b为通过辉光贴图抠出来的像素

对b抠出来的像素做模糊(blur)处理,模糊会导致向外扩展一些像素,形成辉光的效果,然后再与a图进行Alpha Blend即可

Light Map(光照贴图)

把物体光照信息预先烘焙保存到光照贴图中, 实时绘制时不再进行光照计算, 而是采用该贴图来表示明暗效果

Shadow Map阴影贴图):可预先烘焙或实时计算。

三维图形渲染中常见的贴图_第4张图片

Ambient Occlusion(AO贴图,环境阻塞贴图,Occlusion贴图,也简称为OCC或白模):使用一张灰白图来表示物体之间相互影响的效果,可以理解为明暗素描那样的一种表现形式,

主要用于改善阴影,贴图中越黑的地方,阴影就会加得越深(若输入一张纯白的AO贴图,相当于关掉了AO效果),给场景(模型)更多的深度,有助于更好的表现模型的细节。

Ambient Map(环境照明贴图,也可称为背光贴图):这里的Ambient不同于AO贴图中的Ambient,它作为Diffuse的一部分,控制着物体背光的色彩变化,同时也对迎光面产生一些影响。

在现实中,物体的背光面仍会受到环境中各种光线反弹的照亮,也不会是纯黑的。环境照明贴图常用在场景灯光不足的情况,用于提高物体暗面的亮度。

Environment Map(环境贴图),也称为反射贴图Reflection Map):用一张贴图映射到反射对象上,使得在反射对象上看到场景的影像;这张图可以是一张做好的假的环境贴图,也可以实时生成(把反射对象当作一个虚拟眼睛,实时将场景生成一张虚拟的贴图)。

按照映射的方式又分为:球面环境映射贴图(标准环境映射贴图,Sphere Map)、立方体环境映射贴图(Cube Map)、双抛物面环境映射贴图(Parabola Map)  Spherical, Cubic, and Parabolic Environment Mappings.pdf

三维图形渲染中常见的贴图_第5张图片 三维图形渲染中常见的贴图_第6张图片

Glossiness Map(光泽度贴图):PBR材质中用到的贴图,为一张黑白图,用于控制模型微表面粗糙程度。

图中像素越白的地方,微表面越光滑,单个像素的反射光线的方向范围就越集中,高光点就越小越亮,将周围环境映射到模型表面就显得越清晰

Roughness Map(粗糙度贴图): 与Glossiness Map功能一样,只是图中存储的值是相反的

三维图形渲染中常见的贴图_第7张图片

Metallic Map(金属度贴图):PBR材质中用到的贴图,为一张二值黑白图

很少有金属与非金属之间的过渡物质。因此,金属度贴图的制作要诀就是——高对比(非黑即白)——黑色非金属,白色金属。

现实中我们很少能见到半金属半非金属的材质。如果你看到哪个模型的金属度贴图有大量灰色,那一定是哪里出错了。

深入地说,PBR的核心就是摒弃了传统的反光度贴图,采用两种略有不同的公式来计算材质。

你要问哪两种公式?金属一个公式,非金属一个公式。对于金属而言,在光谱区有强的光学吸收,而同时又有大的反射率,因此不会显示出漫反射颜色;

而非金属有大量漫反射。二者有明显的区别,因此在PBR渲染管线中被区别处理。总之,不要把金属度(Metallic)贴图画得太灰

 

参考

UE3材质 & 贴图 

UE4纹理贴图

高中物理:图形编程

高中物理:Xna编程

polycount Wiki 

Shader中贴图知识汇总: 漫反射贴图、凹凸贴图、高光贴图、 AO贴图、环境贴图、 光照纹理及细节贴图 

 

 

 

你可能感兴趣的:(三维图形渲染中常见的贴图)