各メッシュには 1 つのテクスチャがあるため、異なるジオメトリを持つ複数のメッシュを作成するループがあります。
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にこのエラーがあります
キャッチされていない TypeError: 未定義のプロパティ 'マップ' を読み取ることができません
関数内:
function bufferGuessUVType ( material ) {
}
アップデート:
最後に、マージされたソリューションを削除し、すべてのボクセルに一意のジオメトリを使用できるようにしました。マージメッシュを使用すると、アプリのパフォーマンスが向上すると思いますが。