关于将Three.js模型加载到场景中的所有建议都涉及JSONLoader
:
var loader = new THREE.JSONLoader();
var createMesh = function(geometry) {
var zmesh = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial() );
zmesh.position.set( 0, 0, 0 );
zmesh.scale.set( 3, 3, 3 );
zmesh.overdraw = true;
scene.add(zmesh);
};
loader.load("the_model.js", createMesh);
但是,如果我想使用一个已经通过 <script>
加载的 JavaScript 文件怎么办?标签?
var the_model = {
"metadata" : {
"formatVersion" : 3.1,
.......................
},
"scale" : 1.000000,
"materials" : [ {
........................
}
我如何使用这个 var the_model
使用 Three.js?
用它代替 geometry 没有帮助。
最佳答案
您可以使用 THREE.JSONLoader.parse
来完成此操作而不是 THREE.JSONLoader.load
:
var loader = new THREE.JSONLoader();
var geometry = loader.parse(the_model);
createMesh(geometry);
由于不必发出 AJAX 请求,因此调用是同步的。
关于javascript - 从变量加载模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17052458/