贴图(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(高度贴图):一种黑白的图像,它通过像素来定义模型表面的高度。像素越白的地方越高,越黑的地方越低,灰色的在中间,从而表现不同的地形。
Specular Map(镜面光贴图,也称高光贴图)或Reflective Map或Gloss Map(光泽贴图):一种黑白的图像,像素越白的地方镜面反射越强,越黑的地方镜面反射越弱,用来表现模型表面反光程度(塑料>木头>皮肤>布料),从而区分不同材质
Mask Map(Opacity Map,Opacity Mask Map,不透明贴图,遮罩贴图):
Emission Map(Emissive Map,Self-Illumination Map [自发光贴图])
仅仅是提高贴图本身的亮度,不受场景光源和摄像机位置影响,也不会照亮其他物体
Glow Map(辉光贴图):模拟闪耀的效果,它不会照亮环境,不受场景光源和摄像机位置影响。过分的辉光效果会使人眼花缭乱,因此常用于模型细小部位,例如机器人的眼睛,装备上的宝石挂饰等
a是没有辉光的效果,c是加了辉光的效果 ,b为通过辉光贴图抠出来的像素
对b抠出来的像素做模糊(blur)处理,模糊会导致向外扩展一些像素,形成辉光的效果,然后再与a图进行Alpha Blend即可
Light Map(光照贴图)
把物体光照信息预先烘焙保存到光照贴图中, 实时绘制时不再进行光照计算, 而是采用该贴图来表示明暗效果
Shadow Map(阴影贴图):可预先烘焙或实时计算。
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
Glossiness Map(光泽度贴图):PBR材质中用到的贴图,为一张黑白图,用于控制模型微表面粗糙程度。
图中像素越白的地方,微表面越光滑,单个像素的反射光线的方向范围就越集中,高光点就越小越亮,将周围环境映射到模型表面就显得越清晰
Roughness Map(粗糙度贴图): 与Glossiness Map功能一样,只是图中存储的值是相反的
Metallic Map(金属度贴图):PBR材质中用到的贴图,为一张二值黑白图
很少有金属与非金属之间的过渡物质。因此,金属度贴图的制作要诀就是——高对比(非黑即白)——黑色非金属,白色金属。
现实中我们很少能见到半金属半非金属的材质。如果你看到哪个模型的金属度贴图有大量灰色,那一定是哪里出错了。
深入地说,PBR的核心就是摒弃了传统的反光度贴图,采用两种略有不同的公式来计算材质。
你要问哪两种公式?金属一个公式,非金属一个公式。对于金属而言,在光谱区有强的光学吸收,而同时又有大的反射率,因此不会显示出漫反射颜色;
而非金属有大量漫反射。二者有明显的区别,因此在PBR渲染管线中被区别处理。总之,不要把金属度(Metallic)贴图画得太灰
参考
UE3材质 & 贴图
UE4纹理贴图
高中物理:图形编程
高中物理:Xna编程
polycount Wiki
Shader中贴图知识汇总: 漫反射贴图、凹凸贴图、高光贴图、 AO贴图、环境贴图、 光照纹理及细节贴图