【发布时间】:2016-12-10 08:20:23
【问题描述】:
我正在使用以下 loadmodel 函数将 json 加载到 html 中。 (jsons 是从 Blender 中导出的)
(function init(){
console.log("Init")
loadmodel('object1');
loadmodel('object2');
loadmodel('object3');
loadmodel('object4');
requestAnimationFrame(rotate);
})();
function loadmodel(str){
var json = "{% static 'three/' %}" + str + '.json.gz';
var loader = new THREE.JSONLoader();
loader.load(json, function(geometry, materials){
alfaromeo = new THREE.Mesh(
geometry, new THREE.MeshFaceMaterial(materials)
);
alfaromeo.name = str;
names.push(str);
scene.add(alfaromeo);
});
}
我的问题是我要加载多个 json,当我为每个 json 调用这个函数时,只有第一个被加载,其他的没有。相同的代码在我朋友的计算机上运行良好 - 所有 json 都加载良好。
我有什么遗漏吗?
【问题讨论】:
-
实际上更改订单有效。将 object1 放在底部有效。但仍然想知道为什么当 object1 在顶部时它不起作用
-
我没有看到任何渲染周期,您是否在持续渲染场景?可能是对象没有及时加载以进行单次渲染,并且颠倒顺序为对象 4 或其他东西提供了更多时间...
-
我没有连续渲染。我只渲染一次。
-
JSONLoader的加载是异步的,加载完成后要渲染....