1

私は非常に大きな Blender モデル (約 70 Mb の json) を持っています。Three.js は通常、そのようなモデルをレンダリングできますか? 次のコードでモデルをロードします。

loader = new THREE.JSONLoader();

callbackDice = function(geometry) {
    createMesh(geometry);
};
loader.load(file, callbackDice);

function createMesh(geometry) {
     mesh = new THREE.Mesh(geometry, new THREE.MeshLambertMaterial( { vertexColors: THREE.FaceColors, wireframe: false } ));                   
     mesh.overdraw = true;
     scene.add(mesh);                    
 }

形状を近似して、それを表すプリミティブの数を減らすことはできません (各プリミティブには、動的に変化する独自の色があります)。次のコードは、プリミティブの色を変更します

for ( var i = 0; i < mesh.geometry.faces.length; i ++ ) {
    var face = mesh.geometry.faces[ i ];
    face.color.setHex('0x'+ color value);
}
mesh.geometry.colorsNeedUpdate = true;

Three.js を使用できない場合は、この問題を解決するために WebGL を使用するための他のライブラリを教えてください。

4

1 に答える 1

0

それは可能でなければなりませんBufferGeometrywebgl_buffergeometryの例を見てください。それぞれ独自の色を持つ 160000 個の三角形をレンダリングします。ただし、BufferGeometry はワイヤーフレームとフラット シェーディングをサポートしていません。

于 2013-06-19T14:43:56.247 に答える