3D 建模中的法线贴图解释

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎

什么是 3D 建模中的法线贴图

3D 对象由多边形组成:平面、正方形和三角形表面。多边形非常适合对书籍、房屋和 Minecraft 方块等简单对象进行建模。但是,如果你想制作一个苹果甚至一个球体的详细模型,粗糙的多边形边缘会让它看起来很糟糕。

多边形就像乐高积木:如果你有十几块积木,你只能制作一辆小型玩具车,但如果你有数千块积木,你可以制作一个 1:1 的汽车复制品。因此,要对详细的 3D 对象进行建模,您只需要添加数千个多边形。

由 3840 个多边形组成的球体看起来又好又圆。但是这些多边形仍然可见,因为闪电落在球体上。你到处都可以看到这些边缘。不,我们不能弯曲多边形,它们可能只是平面。

什么是法线贴图

为了显示光线如何从模型上落下和反射,我们使用了烘焙光照贴图。光照贴图显示当光线落在纹理上时纹理的外观。例如,游戏中的手电筒使用光照贴图:游戏引擎只是将手电筒的光照贴图覆盖在纹理上。

但是光照贴图不能显示表面的体积和纹理,只能根据角度改变光强度。光照贴图烘焙使用均匀发光的纹理,因此光线始终垂直于表面。因此,让我们教表面以不同角度反射光线。

让我们取一个多边形,并在多边形的中心添加一条垂直线------法线。现在,当光线落在多边形上时,游戏引擎可以测量光线和法线之间的角度差。我们知道光线的反射角度与它们落下的角度相同,它是对称的。

下面是两个多边形的示例,其中包含一个平面法线贴图。如您所见,法线垂直于它们所在的曲面。但是,嘿,我们使用的是计算机,而不是矩形乐高积木。让我们让计算机平滑每个多边形中心之间的过渡。因此,计算机将制作一个法线贴图:

  • 多边形中心的法线垂直于多边形;
  • 两个多边形边界上的法线是中心法线的平分线;
  • 中心法线之间的其他法线的角度向平分线倾斜。

因此,如果光线落在具有法线贴图的低多边形球体上,它看起来像一个由数百万个多边形组成的球体。

但是,如果我们将法线贴图与立方体一起使用,它会得到一个有趣的结果:法线贴图将使边缘变得平滑。为了避免这种情况,3D 建模人员设置了平滑角度参数,这些参数告诉 3D 引擎需要在哪里平滑法线,以及在哪里保持法线不变。

法线贴图的高级使用

我们了解到,简单的法线贴图可用于平滑多边形之间的边界。但是,我们也可以在单个多边形上弯曲法线,以在多边形是平面时创建 3D 对象的错觉。

它之所以有效,是因为 3D 引擎不会 100% 复制现实生活中的物理特性,而是模拟它。如果我们取一个平面并向其添加自定义法线贴图,我们可以通过改变与该平面的光相互作用来模拟体积。例如,在不添加真实多边形的情况下,在平坦的衣服上制作一个 3D 按钮的错觉。

首先,我们需要制作按钮或类似多边形的东西------一个高多边形模型。需要了解光线将如何反射到它上面。然后我们烘焙一个法线贴图:从所有使用的多边形中写出法线角度。

现在我们可以将高多边形模型的法线贴图放在低多边形模型上。现在,游戏引擎将反射法线地图所讲述的光线。对我们来说,这意味着我们可以使用平面多边形代替高多边形模型,并为游戏玩家提供更好的性能优化。

法线贴图的外观

它看起来像带有红色和绿色点缀的蓝色纹理。这是因为法线贴图保存在 3 个颜色通道中:

  • 红色通道显示模型从侧面照亮时的外观;
  • 绿色通道显示从上方或下方照亮时的外观;
  • 蓝色通道显示从正面点亮的模型。

如何在游戏中使用法线贴图

使用法线贴图的最佳方法是向纹理添加细节。例如,我们有一个石墙纹理。当它在没有法线地图的情况下被照亮时,它看起来很无聊和扁平,就像一堵彩绘墙。但是当我们添加匹配的法线贴图时,感觉每块石头都有它的体积。虽然墙仍然是一个带有纹理的大平面多边形。

使用法线贴图,我们还可以增加任何纹理的细节水平:布料、沙子、石头、砖块、碳等等。您可能已经在《战地风云》系列中看到过法线贴图的使用:这就是 DICE 使衣服和污垢看起来如此逼真而几乎不影响性能的原因。此外,法线贴图可以模拟电缆、铆钉、按钮和膛线等小细节。

结论

现在您知道为什么现代游戏中的低多边形模型看起来如此圆润光滑,尤其是与 PS2 时代的游戏相比。尽管如此,为模型设置法线贴图仍然是一个困难的过程,不过事情总有转机,我们可以借助GLTF 编辑器 -NSDT 尝试为模型设置贴图。

GLTF 编辑器 -NSDT 是一款专门用于3D模型纹理贴图的工具,它支持3D模型各种材质纹理贴图的编辑修改,包括:颜色、粗糙度、金属度、贴图、顶点颜色、

自发光贴图、透明贴图、凹凸贴图、法线贴图、位移贴图、粗糙贴图、金属贴图、

光照贴图、透明度等。

以下是用GLTF 编辑器 -NSDT 制作的模型贴图示例:

转载:3D 建模中的法线贴图解释 (mvrlink.com)

相关推荐
sunbyte1 小时前
Three.js + React 实战系列-3D 个人主页:构建 Hero 场景组件(项目核心)✨
3d
广州华锐视点3 小时前
广州 3D 展厅开启企业展示新时代
3d·3d展厅
在下胡三汉17 小时前
来自 3D 世界的 JPEG。什么是 glTF?什么是 glb?
3d
Mapmost1 天前
【数据可视化艺术·应用篇】三维管线分析如何重构城市“生命线“管理?
3d·信息可视化·性能优化·demo
陈小峰_iefreer1 天前
stone 3d v3.3.0版本发布,含时间线和连接器等新功能
3d·webgl·metaverse·cadcg
电子云与长程纠缠2 天前
Unreal Niagara制作SubUV贴图翻页动画
学习·ue5·编辑器·贴图·niagara
XuX032 天前
手搓雷达图(MATLAB)
matlab·贴图
子燕若水2 天前
“Daz to Unreal”将 G8 角色(包括表情)从 daz3d 导入到 UE5。在 UE5 中,我发现使用某个表情并与闭眼混合后,上眼睑出现了问题
3d·ue5
Tiger Z2 天前
R 语言科研绘图第 41 期 --- 桑基图-基础
开发语言·r语言·贴图
zhu_zhu_xia2 天前
JS通过GetCapabilities获取wms服务元数据信息并在SuperMap iClient3D for WebGL进行叠加显示
javascript·3d·webgl