1

我有一个非常大的 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 的库来解决此问题。

4

1 回答 1

0

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

于 2013-06-19T14:43:56.247 回答