【发布时间】:2023-03-12 12:39:01
【问题描述】:
在使用 THREE.GeometryUtils.merge(obje, mesh); 时,任何人都可以在 three.js 版本 62 上帮助我解决这个问题吗?方法..
【问题讨论】:
在使用 THREE.GeometryUtils.merge(obje, mesh); 时,任何人都可以在 three.js 版本 62 上帮助我解决这个问题吗?方法..
【问题讨论】:
尝试将 MeshFaceMaterial 与合并的网格一起使用时,我遇到了同样的错误。在我的情况下,我必须修改我合并的立方体每个面的 materialIndex。
我假设 CubeGeometry 默认对所有面使用 materialIndex=0。它没有!立方体的每一面都有自己的索引。
看看这个小提琴:http://jsfiddle.net/ThPPA/4/
var materials = [
new THREE.MeshBasicMaterial({
color: 0x00ff00
}),
new THREE.MeshBasicMaterial({
color: 0xffff00
}),];
var dummy = new THREE.Geometry();
var geometry = new THREE.CubeGeometry(1, 1, 1);
for(var i = 0; i < geometry.faces.length; i++) {
geometry.faces[i].materialIndex = 0;
}
var cube1 = new THREE.Mesh(geometry);
cube1.position.x -= 1;
THREE.GeometryUtils.merge(dummy, cube1, 0);
var cube2 = new THREE.Mesh(geometry);
cube1.position.x += 1;
THREE.GeometryUtils.merge(dummy, cube2, 1);
var material = new THREE.MeshFaceMaterial(materials);
var mesh = new THREE.Mesh(dummy, material);
scene.add(mesh);
【讨论】: