Mec*_*Eng 1 javascript clone mesh three.js
使用该命令Mesh.clone();您可以克隆网格。搜索显示几何形状和材料被保留。但是,我想以不同的方式控制两个网格的不透明度。因此我认为我也必须克隆这些材料。
有没有办法复制包含材质的网格,以便我可以与原始网格分开控制新网格的不透明度?
你是对的。制作克隆时会共享该材料。解决方案是为每个网格创建新材质并复制现有材质的值。(使用更多内存但不会影响帧率?)
但是你可以做类似的事情
let nMesh = new THREE.Mesh(
oldMesh.geometry.clone(),
new THREE.MeshPhongMaterial().copy( oldMesh.material )
);
Run Code Online (Sandbox Code Playgroud)
创建一个由几何体克隆和所选新材质制成的新网格,并复制旧材质的值。或者,克隆网格并替换材质(并复制原始材料)。您确实必须更新材质,因为您在初始化后更改了它。
let nMesh = oldMesh.clone();
nMesh.material = new THREE.MeshPhongMaterial().copy( oldMesh.material );
nMesh.material.needsUpdate = true;
Run Code Online (Sandbox Code Playgroud)
我不确定您是否必须使用相同类型的材质,或者它是否会自动转换为正确的类型。
| 归档时间: |
|
| 查看次数: |
1547 次 |
| 最近记录: |