您好我在使用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),以确保模型位于原点。
答案 0 :(得分:1)
由于没有错误,你可以做什么:
从blender导出对象时,将对象转换为origin。转到原点&gt;&gt;选择原点到几何&gt;&gt;将对象转换为x,y,z为零。 现在你的相机分别看到@ position 0,1,5 xyz 可能是你的物体相机没有看的地方
或将场景的孩子翻译为原点
这可能解决了你的问题。我看到日志中没有错误和警告。