在Three.js中渲染非常大的Blender模型

时间:2012-12-25 14:59:16

标签: json webgl three.js

我有一个非常大的Blender模型(json大约70 Mb)。 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解决此问题。

1 个答案:

答案 0 :(得分:0)

必须使用BufferGeometry。看一下webgl_buffergeometry示例。它渲染160000个三角形,每个三角形都有自己的颜色。但是,BufferGeometry不支持线框和平面着色。