【发布时间】:2015-01-23 16:55:03
【问题描述】:
当您将模型从 Blender 导出到 Three.js 时,您最终会得到一个包含 JSON 数据的文件。我知道从该文件加载此模型的两种方法:
var loader = new THREE.JSONLoader()
var material = new THREE.MeshPhongMaterial({color: '#8080a0'})
1.
loader.load('tower.json', function (geometry) {
var mesh = new THREE.Mesh(geometry, material)
})
2。编辑 tower.js 文件并添加
var tower =
在第一行。然后你可以加载它:
var towerModel = loader.parse(tower)
var mesh = new THREE.Mesh(towerModel.geometry, material)
我更喜欢第二种解决方案,因为当您有数千个基于相同模型的网格时,每次想要创建一个网格时使用 loader.load() 函数非常慢,并且很容易杀死您的浏览器。
所以我的问题是 - 我可以在不手动编辑文件的情况下将来自 tower.json 文件的 JSON 数据获取到变量中吗?最好的解决方案是在不更改文件的情况下将 JSON 数据放入变量中。
【问题讨论】:
-
为什么不使用方法1一次加载几何,然后从同一个几何创建所有网格?
-
您希望多个网格共享相同的几何体吗?
-
是的,这就是我需要的
-
好的。从相同的几何体创建 10 个网格,并将每个网格添加到场景中。
-
但是我必须在我不想的回调函数中创建它们。我只有在回调函数中有几何,外部回调函数模型还不能加载。
标签: javascript json three.js