我无法使用 glb/gltf 资产以三个方式显示 aoMap.js



我很难让一个aoMap在3.js…中工作

我有一个glb资产,在红色通道上有一个aoMap或其他什么。当我把它带到babylon查看器中时,我可以很好地看到ao,但它不会出现在three.js查看器或我的项目中。我认为这与第二组uvs有关,但我找不到除了使用gltf加载程序之外还需要这样做的资源……我真的不知道该怎么办。如有任何回应,我们将不胜感激!

这是我的代码(我使用html画布作为纹理(

我得到了模型的几何结构和漫射纹理(全是白色(,但aomap没有显示…

代码

巴比伦查看器

three.js查看器

漫反射中包含阴影的工作应用程序

不起作用,漫反射只是白色,aoMap没有显示

您需要第二组UV是正确的。这背后的原因是漫射纹理经常重复(想想砖墙或方格t恤(。然而,AO着色在几何体的每个部分都更有可能是唯一的,因此它几乎从不重复。由于这通常需要另一种UV映射方法,因此默认情况下使用第二组UV。

你可以做两件事:

  1. 使用重复的UV集重新导出GLTF资源
  2. 通过在几何体中创建新的BufferAttribute来复制Three.js中的现有UV:
// Get existing `uv` data array
const uv1Array = mesh.geometry.getAttribute("uv").array;
// Use this array to create new attribute named `uv2`
mesh.geometry.setAttribute( 'uv2', new THREE.BufferAttribute( uv1Array, 2 ) );

.getAttribute.setAttributeBufferGeometry的方法,如果你想了解更多关于它们的信息。

相关内容

  • 没有找到相关文章

最新更新