【发布时间】:2012-11-02 08:37:00
【问题描述】:
我有一个循环,我创建了一个具有不同几何形状的多个网格,因为每个网格都有一个纹理:
var geoCube = new THREE.CubeGeometry(voxelSize, voxelSize, voxelSize);
var geometry = new THREE.Geometry();
for( var i = 0; i < voxels.length; i++ ){
var voxel = voxels[i];
var object;
color = voxel.color;
texture = almacen.textPlaneTexture(voxel.texto,color,voxelSize);
//Return the texture with a color and a text for each face of the geometry
material = new THREE.MeshBasicMaterial({ map: texture });
object = new THREE.Mesh(geoCube, material);
THREE.GeometryUtils.merge( geometry, object );
}
//Add geometry merged at scene
mesh = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial() );
mesh.geometry.computeFaceNormals();
mesh.geometry.computeVertexNormals();
mesh.geometry.computeTangents();
scene.add( mesh );
但现在我在 javascript 代码 Three.js 中有这个错误
未捕获的类型错误:无法读取未定义的属性“地图”
在函数中:
function bufferGuessUVType ( material ) {
}
更新:
最后我删除了合并的解决方案,我可以为所有体素使用独特的几何形状。虽然我认为如果我使用合并网格,应用程序的性能会更好。
【问题讨论】:
标签: javascript geometry textures three.js mesh