Three.js不显示搅拌机型号

时间:2015-07-14 19:49:00

标签: javascript html three.js blender

我已经使用three.js提供的插件导出了我之前制作的简单的blender模型,该插件创建了一个.json文件。然后我尝试将该文件导入到我的项目中,但根本没有成功。

我在本地服务器上拥有它,因为文件传输不允许通过file://,因此,我正在使用HTTP。

问题是我看不到模型。我正在使用以下代码导入它:

    var loader = new THREE.JSONLoader();
    loader.load( 'model/mountain.json', function ( geometry ) {
    var mesh = new THREE.Mesh( geometry, new THREE.MeshBasicMaterial() );
    scene.add( mesh );

 }); 

我可以正确设置相机和场景,因为我可以创建和添加原生的three.js形状,例如盒子和平原,我100%确定文件位于正确的位置。

1 个答案:

答案 0 :(得分:0)

我问过reddit,/ u / Egenimo帮我解答了答案!

这里是整个代码,因为我认为它可能会帮助那些需要设置场景的人。

    var canvas = document.getElementById("bgcanvas"),
renderer = new THREE.WebGLRenderer({ canvas: canvas, alpha: true }),
windowHeight = window.innerHeight,
windowWidth = window.innerWidth,


camera, scene, renderer, loader;

init();

function init() {
    renderer.setSize(window.innerWidth, window.innerHeight);
    renderer.setClearColor(0x000000, 0);
    renderer.shadowMapEnabled = true;
    renderer.shadowMapType = THREE.PCFSoftShadowMap;
    document.body.appendChild(renderer.domElement);


    // camera
    camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 1000);
    camera.position.z = 5;

    // scene
    scene = new THREE.Scene();


    loader = new THREE.JSONLoader();  
    loader.load( 'cube.json', function ( geometry ) {  
        var mesh = new THREE.Mesh(geometry, new THREE.MeshNormalMaterial({overdraw: true}));  
        scene.add( mesh );
    });  

    console.log(scene.children.length);
    render();
}
function render() {
        requestAnimationFrame(function() {
            render();
        });
    renderer.render(scene, camera);
}

然后我遇到了一个更复杂的模型,有几个对象的问题,而ThreeJS只会导入一个,因此,在查找之后,我通过the Man himself!找到了这个答案。

希望这可以帮助有需要的人!