凹凸贴图
< Zh
凹凸贴图(Bump Maps)、法线贴图(Normal Maps)是通过变换照明来在2D贴图上模拟3D细节的一种材质技术,几乎所有高画质3D游戏都应用了此技术。
注意:除非在CS:GO 中,任何使用凹凸贴图的静态物体都不能使用顶点方法去照亮。
注意:除非在CS:GO 中,任何凹凸贴图不能用于贴花纹理上。为了使它们正常工作,放置它们的表面还必须具有凹凸贴图。
格式
凹凸贴图:1维黑白的图片,图片越白表示纹素高度越高。 法线贴图:可由凹凸贴图算出,通常为切线法线贴图,将法线信息通过编码方式存储在贴图上。
凹凸贴图的每个像素都包含定义了 标准化向量 的(x,y,z)坐标。 故有凹凸贴图中的每个颜色通道的意义为:
- 红 Red
- 水平 (X轴)
- 0=左
- 128=向前或面向玩家
- 255=右
- 绿 Green
- 垂直 (Y轴)
- 0=向上
- 128=向前或面向玩家
- 255=向下
- 蓝 Blue
- Z轴
- 0=面向纹理,远离玩家。这是个瑕疵值,因为低于128说明表面远离玩家,然而这是不可能的。
- 128=能够接收动态光的最大深度,随意改变这个值可能造成不良后果。
- 255=面向玩家所对的纹理之外。
注意:放置于平面上的凹凸贴图应设为[128,128,255]。提示,dev/flat_normal 是一个平面凹凸贴图的预设,可以用。
在三个通道表示每个像素的 法向量,法向量表示像素在3D空间中所面对的方向,这允许引擎可以在2D面上生成阴影和高光,或者给3D模型提供更多细节。
凹凸贴图对于非常平的表面(比如光滑的混凝土或金属)其实作用不大。但即使是平整的混凝土表面也要有适当的深度感,让凹凸贴图派上用场。
创建
凹凸贴图应在切线空间中渲染,并使用矢量方向 X+ Y- Z+。
程序
各种程序可以通过图像分析或使用用户提供的 3D 几何图形自动创建凹凸贴图。
- 2D
- Photoshop or Paint Shop Pro
- Substance Designer
- The GIMP
- nDo
- Filter Forge
- 3D
- XSI
- ZBrush
- Lightwave
- 3ds Max
- Maya
- Blender
- NVIDIA Melody
- Cinema 4D
- NormalMapper
- xNormal
- 其他
- NormalMap Online: 用于在线生成法线贴图的网站。
- SSBump Generator 5.3: 尽管名称如此,但它也可用于生成凹凸贴图,而不仅仅是自阴影凹凸贴图 。
- Substance B2M3: 以前称为 BitMap2Material。
- InsaneBump: 专门用于成为现已取代的软件“CrazyBump”的免费替代品(由于不兼容,可能会使防病毒软件失效)
转换
通过 VTFEdit
转换纹理时:
- 选择你图像的格式。BGR888 等未压缩格式比 DXT1 等压缩格式质量更高,但要注意文件大小。
- 导入完成后,选中纹理标志列表中的“法线贴图”框。它大约是列表的 1/5。
提示:VTFEdit 可以自动生成凹凸贴图。请参阅导入屏幕的右下角。
通过 Vtex
- 将你的法线贴图保存为 TGA 格式。命名一个以 _normal 结尾的名称。名称末尾的 _normal 将影响 Vtex 如何转换它。对于砖墙示例,我们将文件命名为
brickwall_normal.tga
。 - 将
nocompress 1
和normal 1
添加到与纹理相同的文件夹中的 <纹理文件名>.txt,然后编译。
应用
请参阅 $bumpmap
。