僻嘶 发表于 昨天 14:22

【URP】法线贴图为什么主要是蓝色的?

法线贴图呈现蓝紫色调(尤其以蓝色为主)是由其‌存储原理、切线空间坐标系设计及颜色编码规则共同决定的‌。
【从UnityURP开始探索游戏渲染】专栏-直达
核心原因:法线向量的存储规则‌

‌法线向量的物理范围‌

法线是单位向量,每个分量(X, Y, Z)的取值范围为 ‌[-1, 1],分别代表切线空间中的方向:

[*]‌X(红色通道):左右偏移(左为负,右为正)
[*]‌Y(绿色通道):上下偏移(下为负,上为正)
[*]‌Z(蓝色通道):垂直表面的方向(指向外部为正)‌。
‌颜色空间的映射限制‌

图像颜色值范围是 ‌(对应0~255),因此需要进行转换:
RGB=(Normalxyz+1)/2

[*]‌默认法线方向‌:当表面完全垂直(无倾斜)时,法线向量为 ‌(0, 0, 1)。
[*]‌转换结果‌:

[*]R=20+1=0.5 (128)
[*]G=20+1=0.5 (128)
[*]B=21+1=1 (255)
[*]最终颜色为 ‌(128, 128, 255),即 ‌蓝紫色‌(蓝色占主导)‌。

‌现实模型的主导方向


[*]大多数模型表面(如墙面、地面)以‌垂直方向为主‌(Z≈1),因此蓝色通道值接近255,而XY通道接近128(中性灰),整体呈现蓝色基调‌。
‌颜色变化的场景解释‌

‌颜色表现‌‌对应的法线方向‌‌表面形态‌‌深蓝色 (0,0,1)完全垂直向外平坦表面(如地板)‌蓝紫色 (0.5,0.5,1)轻微倾斜缓坡、弧形表面‌青色/绿色 (低R,高G,中B)明显上/下倾斜(Y≠0)边缘、陡坡‌红色/粉色 (高R,中G,中B)‌明显左/右倾斜(X≠0)侧壁、凹凸边缘<blockquote>

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 【URP】法线贴图为什么主要是蓝色的?