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)

相关推荐
前端Hardy18 分钟前
HTML&CSS:酷炫的3D开关控件
前端·javascript·css·3d·html
MossGrower18 小时前
34. Three.js案例-创建球体与模糊阴影
webgl·three.js·3d渲染·阴影效果
Debroon1 天前
M3D: 基于多模态大模型的新型3D医学影像分析框架,将3D医学图像分析从“看图片“提升到“理解空间“的层次,支持检索、报告生成、问答、定位和分割等8类任务
3d
广东数字化转型1 天前
Three.js相机Camera控件知识梳理
3d·three.js
CASAIM1 天前
模具制造之三维扫描和逆向建模
目标检测·3d·汽车·制造
Tiger Z1 天前
R 语言科研绘图第 6 期 --- 散点图-基础
r语言·贴图
工业3D_大熊2 天前
HOOPS Communicator功能剖析:3D Web模型树交互的实用指南!
linux·windows·macos·3d·docker·c#·.net
番茄电脑全能王2 天前
电脑玩《刺客信条》时中,遇到找不到d3dx9_42.dll的问题是什么原因?缺失d3dx9_42.dll应该怎么解决呢?下面一起来看看吧!
3d
程序员_三木2 天前
Three.js资源-贴图材质网站推荐
javascript·webgl·three.js·材质·贴图
战场小包2 天前
小米su7 or 保时捷怎么选?使用 Three 实现 3D 汽车展示平台比比看
前端·vue.js·3d·aigc