Hello,大家好,今天给大家带来这是关于法线贴图的系列第二部分,主要关于烘焙法线贴图的知识点理解,我是麦狗。
1、烘焙法线贴图
这是关于法线贴图的系列第二部分,主要关于烘焙法线贴图的知识点理解。
在此过程中,烘焙程序将依据从低模开始投射基础光线,跟随顶点法线并搜索高模。这是法线贴图最重要的方面,人们在使用法线贴图时遇到的大多数问题都与此相关。如果不控制lowpoly模型的顶点法线,则将失去对法线贴图的控制。
为了控制lowpoly模型的平滑,我们可以分割顶点法线(创建硬边)或平均顶点法线(创建软边)。
事实证明,并非所有3D程序都使用相同的计算来平均顶点法线。这意味着您的lowpoly将看起来不同,其顶点法线指向的位置略有不同,具体取决于您使用的3D程序。这通常不是什么大问题,因为这些偏差非常小,但会影响模型的外观;使用法线贴图时会加剧这些差异,因为法线贴图正在修改在应用程序之间更改的低模法线。
3D行业正在努力解决这个问题,最近出现了一个名为Mikk space的标准。这是一种计算所有3D应用程序都可以使用的顶点法线的方法,因此顶点法线不会在3D程序之间更改。但是请记住,并非所有3d应用程序都使用它。
另一种减少这种影响的方法是在烘焙时不要太依赖法线贴图。尝试将lowpoly与highpoly更紧密地匹配,并在平面上使用更多硬边。这样,法线贴图就不必做所有的工作,这些小偏差也就不那么明显了。
2、倾斜问题
当计算机对lowpoly顶点法线的法线方向求平均值时,曲面角度的较大变化会使lowpoly法线“倾斜”,并且导致它们不会垂直于lowpoly曲面。
由于烘焙法线贴图在搜索高模细节时会使用低模的法线方向,如果这些方向是倾斜的;它们将在法线贴图上显示为倾斜:
这是一个非常常见的问题,已经找到了几种解决方案。但是没有最好的解决方案,这实际上取决于模型。
倾斜问题的第一个解决方案是通过临时修改lowpoly法线来重新制作有问题的零件,以便在不倾斜的情况下烘焙它们。八猴有此选项。Reddit用户Tanagashi善意地向我解释说,一些程序(如xNormal)可以对lowpoly进行镶嵌以添加新顶点,并使法线垂直于lowpoly曲面去烘焙对象空间法线贴图,然后使用原始的lowpoly法线将其转换为切线空间。使用这个新的法线贴图,程序可以创建遮罩,以控制在何处使用原始法线贴图和何处使用从细分lowpoly创建来的法线贴图。
我们还可以通过添加顶点来减少倾斜问题,因为一个90º的角度可以拆分为更小的角度,从而使第二个过渡更少倾斜。这显然会增加你的多边形计数。而且因为你在添加几何体,所以我建议你使用这个额外的几何体也可以为你的模型添加一个更有趣的轮廓。
倾斜问题的另一个解决方案是分割平均顶点法线(加硬边/使用单独的平滑组):这样,每个顶点将有多个法线,每个法线垂直于lowpoly曲面。记住,当3D程序分割顶点法线时;它实际上会创建顶点的副本,因此这会增加顶点计数,并略微降低性能。此外,硬边也会给您带来“黑边”的问题,我们将在后面看到。
最后,我们还可以通过修改模型的法线来弯曲低模的法线,使其与高模细节垂直,从而减少倾斜问题。请记住,并非所有程序都允许修改法线(Zbrush仅具有平均法线,OBJ和旧的FBX文件没有自定义法线信息)。基本上有两种修改法线的方法:
加权法线:这是一种类似于平均顶点法线的自动方法。这里的想法是,当平均顶点法线时,并非所有面都具有相同的强度:较大的面将以比较小的面更大的强度向它们“拉动”顶点法线。这样,较大的面(通常更重要)将具有更好的细节投影。这对于highpoly面板尤其有效。
自定义法线:使用3D软件中的工具,可以弯曲lowpoly法线。这是一个相对较新的想法,没有多少标准化的工具。请记住,弯曲法线可能会在模型的其他部分创建非常奇怪的意外着色,因此此技术通常与倒角结合使用。有人将这种技术称为“midpoly modelling”。
3、烘焙距离
默认情况下,从lowpoly曲面投射的光线移动是有限的距离,以防止lowpoly从highpoly的遥远部分接收法线信息。此距离通常称为“前/后距离”,因为光线可以朝向模型内部、外部或两者投射。您可以在下图中看到此距离以红色表示:
一些3D应用程序(例如3ds Max)也允许我们使用框架。框架是lowpoly模型的“副本”,我们可以对其进行修改,使其完美地封装了highpoly。并且,在某些情况下(并非全部),还允许我们更改光线的方向,而不更改原始的低多边形顶点法线。这有助于获得最佳烘焙极值并避免扭曲,但请记住,您并不是使用顶点法线的法线方向进行烘焙,所以最终将使用法线贴图来修改实际的低模法线,因此结果可能看起来很奇怪。
4、烘焙接缝
有时,在烘焙法线贴图时,我们可以看到一些接缝:
当我们在UV的中间有硬边时,就会出现这些接缝。为什么会这样?
UV值可以非常精确:我们可以将一个顶点精确放置在坐标0.0001203123 U和0.34004021 V处。然而,纹理的精度要低得多:像素有限,不能分割(我们不能有半个像素)。
因此,某个像素可能正好位于0.001,而顶点可能位于UV空间内的0.00134。在考虑法线贴图中像素的颜色时,我们必须选择最能代表其内部面的法线方向的颜色,因此我们进行平均:
这适用于所有烘焙过程,而不仅仅是法线贴图。然而,当我们使用硬边时,这在法线贴图中更为明显。法线贴图指示方向,在硬边的情况下,我们有两个面朝着不同的方向看,因此它们可能有非常不同的颜色。
在UV岛(island)之间的交点处,孤岛将竞争用其颜色填充像素。这意味着最终我们将得到来自岛B的像素修改来自岛A的像素的颜色,反之亦然。
由平滑边分隔的孤岛在法线贴图上看起来非常相似(因为它们的法线方向是平均的),因此颜色上的微小差异不太明显。但是,由硬边分隔的孤岛通常在法线贴图上看起来非常不同(因为顶点法线被分割,并且每个面都在不同的方向上),并且这种差异可以很明显,沿着硬边生成。
如果我们分割孤岛,它们将不会竞争像素颜色:每个孤岛将能够修改整个像素以适应其法线方向。这就是为什么当UV中的面通过硬边连接时,应将其拆分。
经验法则非常简单:只要模型上有硬边,就在UV中分离由其连接的面。
5、总结
一旦我准备好lowpoly模型并尽可能地调整到highpoly模型,我就开始在UV之前进行平滑处理。我为lowpoly设置平滑(如果是有机的,我从一个完全平滑的模型开始,如果是硬表面,我从30-60º的设置角度平滑开始;然后调整模型平滑,直到看起来很好)。为模型设置平滑后,我将处理UV,确保将所有硬边拆分为单独的UV孤岛(以避免边接缝)。
如果有倾斜错误,我会添加额外的边(通常是斜面,以保持更圆的轮廓)。这适用于我的大多数模型,但如果我使用Marmoset工具包进行烘焙,或者使用自定义/加权法线,我也可以修复倾斜错误。
如果存在投影错误,我会修改烘焙距离/框架,修改lopoly/highpoly,使其更适合烘焙,或者删除某些非常硬的零件(如圆锥体尖端)上的法线贴图。
下一篇将为法线贴图烘焙制作故障诊断指南,并讨论一些最常见的问题和解决方案。
下一篇 高精兽人角色模型制作教程
热门课程
专业讲师指导 快速摆脱技能困惑相关文章
多种教程 总有一个适合自己专业问题咨询
你担心的问题,火星帮你解答学习游戏开发班可以帮助游戏爱好者从零基础成为游戏开发专家,掌握全面的游戏开发技能。
火星时代教育为您提供专业的界面设计实战班,在实践中掌握界面设计的核心技巧和最新趋势,成为优秀的UI设计师。
了解UI交互设计培训的最佳选择,比较不同培训机构的优势和特点。
火星时代教育为您推荐专业的学影视后期培训机构,提供高质量的培训内容及资深导师指导,助您成为优秀的影视后期剪辑师或合成师。
火星时代教育是一家专注于交互设计培训的机构,为学员提供专业的交互设计培训课程,并帮助他们成为优秀的交互设计师。
本文章将介绍关于UE5智慧城市专业学习的重要性和火星时代教育的资讯。
1. 打开微信扫一扫,扫描左侧二维码
2. 添加老师微信,马上领取免费课程资源
同学您好!