在Three.js中导入blender JSON

时间:2015-06-09 17:38:54

标签: javascript json three.js blender

您好我在使用three.js中的blender导入模型时遇到问题。

此时我正在使用最后一个版本的three.js(R71)。我在搅拌机中安装了three.js的导出器并导出正常。

这是HTML的代码。

<body>
    <font size="+6"><b>TFG</b></font><br>
    <a href="../index.html">Volver a atrás</a>
    <hr>
    <div id='container'></div>      
    <script src="libs/ThreeJSV71/build/three.min.js"></script>
    <script src="libs/OrbitControls.js"></script>
    <script src="libs/Coordinates.js"></script>
    <script src="libs/dat.gui.min.js"></script>
    <script src="libs/stats.min.js"></script>   
    <script src="libs/ColladaLoader.js"></script>   

    <script src="threejs/tfg2.js"></script>
    <br>
</body>

下一个文件是我加载模型的tfg2.js。

var width = window.innerWitdh,
    height = window.innerHeight,
    clock = new THREE.Clock(),
    scene,
    camera,
    renderer,
    ambientLight,
    directionalLight,
    loader,
    modelo = new THREE.Object3D();

init();
function init()
{
    scene =new THREE.Scene();

    camera = new THREE.PerspectiveCamera(40, width/height, 1000);
    camera.position.set(0,1,5);

    renderer = new THREE.WebGLRenderer({antialias: true});
    renderer.setSize(width,height); 
    renderer.setClearColor(new THREE.Color(0x0000AA));
    document.getElementById('container').appendChild(renderer.domElement);

    ambientLight = new THREE.AmbientLight(0xffffff);
    scene.add(ambientLight);

    directionalLight = new THREE.DirectionalLight(0xffffff);
    directionalLight.position.set(0,1,0);
    scene.add(directionalLight);

    scene.add(new THREE.GridHelper(10,1));
    loader = new THREE.JSONLoader();
    loader.load('blender/json/camara.json', function(geometry,materials)
    {
        modelo = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(materials));
        scene.add(modelo);
    });
}

当我尝试查看结果时,网页中没有任何内容,并且de JavaScript控制台也不会显示任何错误。如果我使用collada格式和我拥有的另一个.js导出模型,我可以看到模型,但我需要使用JSON。

我做错了什么?编辑:

在回调中添加了:modelo.position.set(0,0,0),以确保模型位于原点。

1 个答案:

答案 0 :(得分:1)

由于没有错误,你可以做什么:

  1. 从blender导出对象时,将对象转换为origin。转到原点&gt;&gt;选择原点到几何&gt;&gt;将对象转换为x,y,z为零。 现在你的相机分别看到@ position 0,1,5 xyz 可能是你的物体相机没有看的地方

  2. 或将场景的孩子翻译为原点

  3. 这可能解决了你的问题。我看到日志中没有错误和警告。