我使用编辑器发布了一个现成纹理模型,然后尝试使用JSONLoader加载它。无论我想解决这个问题(试过ObjectLoader) - 似乎我错过了一件重要的事情:模型不会出现。
<body ontouchstart="">
<script src="js/three.js"></script>
<script src="js/app.js"></script>
<script src="js/TrackballControls.js"></script>
<script src="js/JSONLoader.js"></script>
<script src="js/PerspectiveCamera.js"></script>
<script>
width=window.innerWidth;
height=window.innerHeight;
start();
animate();
function start(){
camera=new THREE.PerspectiveCamera(45,width/height,1,10000);
camera.position.set(0,0,-80);
control=new THREE.TrackballControls(camera);
control.addEventListener("change",render);
scene=new THREE.Scene();
var loader = new THREE.JSONLoader();
loader.load( 'app.json', function ( geometry, materials ) {
var mesh = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial( materials ) );
loader.onLoadComplete=function(){scene.add( mesh )}
});
renderer=new THREE.WebGLRenderer();
renderer.setClearColor(0xaaaaaa);
renderer.setSize(width,height);
document.body.appendChild(renderer.domElement);
renderer.render(scene,camera);
}
function animate(){
requestAnimationFrame(animate);
control.update();
}
function render(){
renderer.render(scene,camera);
}
</script>
</body>
我想这是一个非常混乱的复制和粘贴以及试用和错误,你正在看。 This is the app.json-file. 有人能指出我正确的方向吗?
答案 0 :(得分:0)
我做了一个方框,用File -> Export Scene
应用了纹理,在那里放了定向光,然后我做了ObjectLoader
。我收到了一个“scene.json”文件。
在代码之后,我使用var loader = new THREE.ObjectLoader();
loader.load( 'scene.json', function(object){
scene.add(object);
console.log(scene.children);
});
render()
结果我得到了一个带有方框和方向灯的场景。
还有一个小注释,在您的示例代码中,您没有从animate()
函数调用{{1}}函数。