【发布时间】:2012-12-11 11:41:18
【问题描述】:
我有一个非常大的 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 的库来解决此问题。
【问题讨论】:
-
请问您是如何读取/写入 70 mb JSON 文件的?我面临着打开/读取 4 mb 的 JSON 文件。
-
@Valay 你对我如何带来文件或渲染时间感兴趣吗?
-
我对您如何携带文件感兴趣。实际上我没有使用
JSONLoader()。我有一个带有单个函数的 js 文件,它返回 json 对象。但是有 18000 个对象,每个对象有 15 个成员/属性。 -
首先,我只有一组向量和曲面。然后,使用JSON Model format 3.1 创建描述我的模型的 json 文件。通过 GET 请求将文件传输到脚本。