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


    贴图(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贴图、环境贴图、 光照纹理及细节贴图 

  • 相关阅读:
    Using Spark's "Hadoop Free" Build
    关于Consul
    关于Eureka
    关于Gateway
    关于Ribbon
    关于Hystrix
    关于Feign
    关于SpringBoot
    关于架构
    关于敏捷开发Scrum(一)
  • 原文地址:https://www.cnblogs.com/kekec/p/11828332.html
Copyright © 2020-2023  润新知