如何正确加载three.js中的json模型?
Posted
技术标签:
【中文标题】如何正确加载three.js中的json模型?【英文标题】:How to load json models in three.js properly? 【发布时间】:2013-06-10 20:06:43 【问题描述】:我很难在 three.js 中加载 JSON 模型。我制作了一个非常简单的管状模型并在搅拌机中对其进行纹理处理。问题是每当我尝试在 three.js 中加载 json 模型时,顶点看起来很奇怪。
我尝试使用不同的设置导出模型,但总是遇到同样的问题,所以我认为问题出在我的代码中。
编辑:否定。我加载了水牛模型,看起来应该。知道我在搅拌机中做错了什么吗?
<html>
<head>
<style>
canvas
width: 100%;
height: 100%;
</style>
</head>
<body>
<script src="threejs/three.min.js"></script>
<script>
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000);
var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
var loader = new THREE.JSONLoader();
loader.load( "models/test.js", modelToScene );
var ambientLight = new THREE.AmbientLight(0x111111);
scene.add(ambientLight);
var light = new THREE.PointLight( 0xFFFFDD );
light.position.set( -15, 10, 15 );
scene.add( light );
function modelToScene( geometry, materials )
var material = new THREE.MeshFaceMaterial( materials );
obj = new THREE.Mesh( geometry, material );
obj.scale.set(1,1,1);
scene.add( obj );
camera.position.z = 5;
camera.position.y = 1;
var render = function ()
requestAnimationFrame(render);
obj.rotation.y += 0.01;
obj.rotation.x += 0.02;
renderer.render(scene, camera);
;
render();
</script>
</body>
我们将不胜感激。
谢谢,尤卡·科霍宁
【问题讨论】:
【参考方案1】:我在导出 JSON 模型时犯了一些严重的错误。对于所有从 Blender 导出时遇到问题的人。我建议您检查一下您的导出设置。
对我来说,它适用于以下设置;
几何: 顶点:检查,面:检查,法线:检查,蒙皮:检查
材料:检查所有
设置:翻转 YZ:检查
动画:变形动画
以及所有方法:检查
【讨论】:
以上是关于如何正确加载three.js中的json模型?的主要内容,如果未能解决你的问题,请参考以下文章