【问题标题】:Json 3D model only using 1 pixel of a texture仅使用纹理的 1 个像素的 Json 3D 模型
【发布时间】:2020-08-30 04:32:11
【问题描述】:

我遇到了这个奇怪的问题,我的 3D 对象只占用了我的纹理的 1 个像素(左下角),这就是我加载对象的方式

  loaderFrame.load('./models/filterFrame/filterFrame.json',(geometry) =>
  {
  const mat = new THREE.MeshBasicMaterial({
    map: new THREE.TextureLoader().load('./models/filterFrame/textura_polar.jpeg'),
    transparent: true,
    morphTargets: true
  });

  mat.transparent = true;
 // mat.morphTargets = true;

  frameMesh = new THREE.Mesh(geometry, mat);

  frameMesh.scale.multiplyScalar(frameOptions.frameScale);

  frameMesh.frustumCulled = false;
  frameMesh.transparent = true;
  frameMesh.renderOrder = 0;
}

);

【问题讨论】:

  • 看起来 UV 坐标错误或模型上不存在。

标签: three.js


【解决方案1】:

这是因为您加载的对象没有正确的UV mapping。如果 UV 不存在,或者它们都是 0, 0,那么它只会从纹理的左下角采样。

要解决此问题,请在 3D 编辑器中打开您的模型,并确保 UV 在纹理平面上正确定位。我不知道您的模型是什么样的,但这里有一个基本示例:

【讨论】:

    猜你喜欢
    • 2019-11-12
    • 2021-04-29
    • 1970-01-01
    • 2017-05-31
    • 2011-12-04
    • 2012-08-04
    • 2018-07-13
    • 2019-01-15
    • 2019-05-15
    相关资源
    最近更新 更多