如何将图像的纹理从画布/dataURL 定位到三个 js 3d 对象?

问题描述

const  objectHockey = useLoader(OBJLoader,url);
  const { nodes,materials } = useGraph(objectHockey);
  let texture3 = useTextureLoader(stateImage.image);
  let texture4 = useTextureLoader(stateImage2.image);
  
  texture3.anisotropy = 2;
  texture3.wrapS = THREE.RepeatWrapping;
  texture3.wrapT = THREE.RepeatWrapping;
  texture3.repeat.set(stateImage.width / stateImage.height,4);

  texture4.anisotropy = 2;
  texture4.wrapS = THREE.RepeatWrapping;
  texture4.wrapT = THREE.RepeatWrapping;
  texture4.repeat.set(4,5);

  return (
    <group position={[0,-1.4,0]}>
      <mesh
        geometry={nodes.Front.geometry}
        material={
          new THREE.MeshphongMaterial({
            map: texture3,})
        }
      />
      <mesh
        geometry={nodes.Back.geometry}
        material={
          new THREE.MeshphongMaterial({
            map: texture4,})
        }
      />
      <mesh geometry={nodes.Sleeve_L.geometry} material={materials.Sleeve_Left} />
      <mesh geometry={nodes.Sleeve_R.geometry} material={materials.Sleeve_Right} />
      <mesh geometry={nodes.Upper.geometry} material={materials.Shoulder} />
      <mesh geometry={nodes.collar.geometry} material={materials.Collar} />
    </group>)

测试应用https://react-three-example-pi.vercel.app/

enter image description here

似乎我在图像上的位置不对。我尝试使用偏移和重复不起作用。我的理解有误吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)