凹凸贴图

From Valve Developer Community
< Zh
Revision as of 19:34, 11 March 2023 by 1416006136 (talk | contribs)
Jump to navigation Jump to search
English (en)Español (es)Français (fr)Português do Brasil (pt-br)Русский (ru)中文 (zh)Translate (Translate)

凹凸贴图

“凹凸贴图”(Bump Maps),“法线贴图”(Normal Maps)是通过变换照明来在2D贴图上模拟3D细节的一种材质技术,几乎所有高画质3D游戏都应用了此技术。

# 注1:除非在CS:GO中,任何使用凹凸贴图的静态物体都不能使用顶点方法去照亮。 # 注2:除非在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模型提供更多细节。


凹凸贴图对于非常平的表面(比如光滑的混凝土或金属)其实作用不大。但即使是平整的混凝土表面也要有适当的深度感,让凹凸贴图派上用场。

Zh-CN normalmap.png