我目前正在使用 Three.js 中的 MeshStandardMaterial 渲染模型。但是,我遇到了一个问题,在添加法线贴图后,法线上的平滑着色效果消失了。
我将纹理上传到 Three.js 编辑器,结果看起来正确 - 应用法线贴图后,平滑的阴影按预期出现。但是,当我在自己的代码中使用相同的纹理时,问题仍然存在。这让我相信我的实现中可能存在某些特定的问题导致了问题。与自定义实现相比,Three.js 编辑器应用法线贴图的方式是否存在差异?
此外,这是在 Three.js 编辑器中显示的模型的屏幕截图,其中法线贴图似乎可以与平滑着色正常工作:
任何人都可以帮助我理解为什么会发生这种情况以及如何解决它?
预先感谢您的协助!
我已设法找出问题所在 — 这是由于将法线贴图的颜色空间设置为 sRGBColorSpace 引起的。当我将其切换为NoColorSpace时,问题就解决了。然而,我仍然很难理解为什么模型的平滑着色会受到法线贴图的颜色空间设置的影响。真是令人费解啊