通过惠美
有时,当您将模型import3DCoat时,视口渲染器上的normal map无法正确显示。但它始于您在任何其他软件上导出模型的方式。
法线贴图可能会修复一些阴影问题,因为软件如何读取法线贴图,这可能会使问题不太明显,但问题仍然存在。您必须应用一些有助于解决实际问题的规则,通过烘焙更好的法线贴图使工作和生活变得更轻松。
如果不应用这个规则,大多数法线都是平均的,很少有很难的,这看起来很奇怪。但这显然是问题的主要原因,如何导出模型的平滑组以及如何在其他软件中读取它们。
首先,盒子不能是软边或平均的,它们是90°角,无论你做什么,如果它们没有设置为硬边,它们总是会遇到这个照明问题。过去,在像 Marmoset 这样的更高级的烘焙程序出现之前,您必须始终制作一个笼子,并且该笼子将是具有平均顶点法线的笼子,因此该笼子将用于进行平均’搜索“高多边形”,不会导致烘焙错误,因为盒子会提醒硬边。当然,现在狨猴有“光滑笼子”复选框做同样的事情,现在你不需要笼子,除非你真的需要笼子。
所以这里有两个“规则”并且它们也相互关联:
1.当你做90°角的模型时,它们应该总是硬的。当然你也可以做一点斜角,避免90°角的边缘。这不仅会紧密遵循高分辨率模型的形状,而且您还可以使用盒子上的软边缘,使其看起来更好、问题更少、更圆润、更漂亮等等。
2. 硬边(几乎应该是 90° 角)应始终在UV上分割以避免出现问题,您可能不会在模型上真正注意到它,但它确实存在,并且与如何像素以 90° 角相遇,以及像素如何混合,它们只是不同,因此没有足够的空间(例如填充)来解决可能发生的小问题。是的,这取决于分辨率和UVs等所有因素,这可能会使它比其他的更引人注目,但是,是的,在像这样的情况下,你正在做盒子,你必须分割所有这些 90° 边缘,是的,这意味着 6 个盒子边 = 6 个岛以避免出现问题。
谈论3DCoat以及它如何与预设配合使用等等。我对此的理解是,通过使用Blender或Unity之类的预设,您实际上使用的是预定义文件,不仅包含它将如何处理法线贴图,还包含是否会绿色翻转。还有切线空间、三角测量以及它如何导出法线和其他一些选项。如果您使用“未知”选项,您将能够使用您设置的首选项。
如果您转到 C:Program Files 3DCoat-VXXXToolsPresetsExtTools,您将看到 XML 文件以及Unity与Blender的不同之处,因为Blender预设使用 MikkTSpace,而unity设置为 LengyelAreaAngleWeightedSpace。这是唯一的区别。但显然足以让你看到它,因为它们的解释不同。从技术上讲,它们不应该影响太多东西,只影响它读取normal map(如果它是“DirectX”或“OpenGL”)的方式,但着色问题的根源与normal map无关,而是与模型有关,并且它将永远是模特。
抛开UVs规则不谈,它造成的问题是最小的,如果您意识到这一点,那么您可以选择节省一些UV空间并忽略边缘以及可能发生的问题,而不是正确执行它们,因为您必须靠得太近来注意问题。有时边缘之间有很大的间隙,这发生在我身上。
如果您不能将盒子设置为平均顶点法线或软线,则它们必须看起来像硬边盒子,因为它们是 90° 角边缘。如果您想使用软边缘,则必须创建斜角。
平角内裤的边缘应为 100% 硬质,圆柱体的顶部和底部应为硬质,侧面应为软质。
对于低多边形模型,我建议制作斜角,在许多情况下,很小的斜角就会产生很大的差异,尤其是在今天,没有理由为这样的东西使用一个根本没有斜角的盒子。
3DCoat预设只是很小的变化,你甚至可以使用未知手动选择,你不需要预设,它们只是为了帮助3DCoat解释normal map和模型,但我从不相信预设,因为就像你说的Unity预设应该设置为 MikkTSpace。但我的观点是,这不仅仅是 OpenGL 与 DirectXnormal map的比较。
所以,当我使用通常用于绘画的3DCoat时,一切都工作正常,但那是因为我确保我的低多边形上的所有内容也都很好,我的意思是,制作良好的法线贴图并使它们在您需要良好低多边形的任何地方工作Poly 可以捕捉您制作的任何高多边形细节。没有什么魔法,它只是起作用,因为我确保了一切,比如平滑组和UVs等等。
我的意思是,具有 90° 边缘的模型应自动设置为硬边缘,没有其他方法,仅此而已。立方体是否有 6 个边(如本例所示)或 1000 个宽度、高度和深度细分都没有关系。如果您不将盒子的 90° 角设置为硬边,则在 90° 但设置为软边或其他什么的边缘上总会有奇怪的阴影。
如果您将单个平滑组应用于整个对象集…这是错误的,因为您无法为盒子制作软边,特别是当它们的对象只是具有 6 个面的立方体时。
你不能“平滑”类似的东西,特别是如果你有一个简单的 6 个多边形盒子,如果你想使用一个盒子,请将所有边设置为硬边。或者另一种唯一的方法是在边缘周围添加斜角以打破 90° 角,然后将其设置为柔和。Bakingnormal map来隐藏问题并不是解决方案,它可能看起来好一点,但模型上仍然存在着色错误。即使圆柱体的侧面也应该有软边缘,并且在顶面和底面上也应该设置为硬边缘,除非添加斜角。
所以问题是:您是否仍想将所有内容保留为单个平滑组?除非你正确处理它并设置应该是硬边硬和软边软的东西,或者在每个 90° 天使上添加斜角,否则没有任何东西可以解决你的问题,你必须normal map隐藏问题并假装没有问题存在。
我希望我正确地解释了这里的问题,这样它可能会对您将来的normal map烘焙有所帮助。
祝你好运,祝你有美好的一天!