我有一个非常大的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解决此问题。
答案 0 :(得分:0)
必须使用BufferGeometry
。看一下webgl_buffergeometry示例。它渲染160000个三角形,每个三角形都有自己的颜色。但是,BufferGeometry不支持线框和平面着色。