从编辑

时间:2016-11-02 19:37:51

标签: json three.js

我使用编辑器发布了一个现成纹理模型,然后尝试使用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. 有人能指出我正确的方向吗?

1 个答案:

答案 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()

结果我得到了一个带有方框和方向灯的场景。

example

还有一个小注释,在您的示例代码中,您没有从animate()函数调用{{1}}函数。