Javascript Three.js-在代码中包含网格数据
我使用JSON加载程序从文件/models/mountain.JSON加载mesh得到了这三个.js代码:Javascript Three.js-在代码中包含网格数据,javascript,json,three.js,Javascript,Json,Three.js,我使用JSON加载程序从文件/models/mountain.JSON加载mesh得到了这三个.js代码: var Three = new function () { this.scene = new THREE.Scene() this.camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 1000) this.camera.position.set(20
var Three = new function () {
this.scene = new THREE.Scene()
this.camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 1000)
this.camera.position.set(20, 52, 20);
this.camera.rotation.order = 'YXZ';
this.camera.rotation.y = -Math.PI / 4;
this.camera.rotation.x = Math.atan(-1 / Math.sqrt(2));
this.camera.scale.addScalar(1);
this.renderer = new THREE.WebGLRenderer()
this.renderer.setSize(window.innerWidth, window.innerHeight);
var ground = new THREE.Mesh(
new THREE.PlaneBufferGeometry(436, 624),
new THREE.MeshLambertMaterial({color: '#808080'}));
ground.rotation.x = -Math.PI / 2; //-90 degrees around the x axis
this.scene.add(ground);
var light = new THREE.PointLight(0xFFFFDD);
light.position.set(-1000, 1000, 1000);
this.scene.add(light);
var loader = new THREE.JSONLoader();
this.loadMountain = function (x, y) {
loader.load('/models/mountain.json', Three.getGeomHandler('#808080', x, y, 1))
}
this.loadFields = function () {
for (var i=0;i<4000;i++) {
Three.loadMountain(x, y)
}
}
this.getGeomHandler = function (color, x, y, scale) {
return function (geometry) {
var mesh = new THREE.Mesh(geometry, new THREE.MeshLambertMaterial({color: color}));
mesh.scale.set(scale, scale, scale);
mesh.position.set(x, 0, y);
Three.scene.add(mesh);
};
}
this.init = function () {
$('body').append(Three.renderer.domElement);
Three.loadFields()
Three.render();
}
this.render = function () {
requestAnimationFrame(Three.render);
Three.renderer.render(Three.scene, Three.camera);
};
}
$(document).ready(function () {
Three.init();
});
是否可以在代码中使用此内容作为变量并将其添加到scane?如果要通过解析JSON数据结构加载模型,请遵循以下模式 修改
mountain.json
文件并为数据结构命名
var mountain = {
"metadata": {
"formatVersion" : 3.1,
"generatedBy" : "Blender 2.7 Exporter",
... etc ...
}
在源代码中包含以下代码:
<script src="mountain.js"></script>
three.js r.70如果您想通过解析JSON数据结构来加载模型,请遵循以下模式 修改
mountain.json
文件并为数据结构命名
var mountain = {
"metadata": {
"formatVersion" : 3.1,
"generatedBy" : "Blender 2.7 Exporter",
... etc ...
}
在源代码中包含以下代码:
<script src="mountain.js"></script>
three.js r.70如果您想通过解析JSON数据结构来加载模型,请遵循以下模式 修改
mountain.json
文件并为数据结构命名
var mountain = {
"metadata": {
"formatVersion" : 3.1,
"generatedBy" : "Blender 2.7 Exporter",
... etc ...
}
在源代码中包含以下代码:
<script src="mountain.js"></script>
three.js r.70如果您想通过解析JSON数据结构来加载模型,请遵循以下模式 修改
mountain.json
文件并为数据结构命名
var mountain = {
"metadata": {
"formatVersion" : 3.1,
"generatedBy" : "Blender 2.7 Exporter",
... etc ...
}
在源代码中包含以下代码:
<script src="mountain.js"></script>
three.js r.70看看src/loaders中JSONLoader的源代码。查看
THREE.JSONLoader.prototype.parse()方法。第一个参数是json内容。查看THREE.JSONLoader.prototype.parse()方法。第一个参数是json内容。查看THREE.JSONLoader.prototype.parse()方法。第一个参数是json内容。查看THREE.JSONLoader.prototype.parse()方法。第一个参数是json内容。不需要像loader.load()那样使用回退函数?loader.load()是异步的parse()
不是。它工作得非常好,但有一个问题-我必须编辑每个文件并向JSON数据添加变量名,而且每次通过Blender导出更新mesh时都必须这样做。是否可以通过编程方式处理此问题?如果您有一个目录用于所有搅拌机导出,另一个目录用于使用脚本标记读取的文件,那么您可以创建一个简单的python脚本,将“var varname=”文本前置到每个文件中,并将其输出到js目录中。如果您在blender导出目录中的文件名是您希望添加到文件本身的变量名,这样就可以实现自动化,这将是最简单的。否则,您必须在python脚本中为每个要转换的文件编写一行,以命名文件名和变量名。无需使用类似于loader中的回退函数。load()?loader.load()
是异步的parse()
不是。它工作得非常好,但有一个问题-我必须编辑每个文件并向JSON数据添加变量名,而且每次通过Blender导出更新mesh时都必须这样做。是否可以通过编程方式处理此问题?如果您有一个目录用于所有搅拌机导出,另一个目录用于使用脚本标记读取的文件,那么您可以创建一个简单的python脚本,将“var varname=”文本前置到每个文件中,并将其输出到js目录中。如果您在blender导出目录中的文件名是您希望添加到文件本身的变量名,这样就可以实现自动化,这将是最简单的。否则,您必须在python脚本中为每个要转换的文件编写一行,以命名文件名和变量名。无需使用类似于loader中的回退函数。load()?loader.load()
是异步的parse()
不是。它工作得非常好,但有一个问题-我必须编辑每个文件并向JSON数据添加变量名,而且每次通过Blender导出更新mesh时都必须这样做。是否可以通过编程方式处理此问题?如果您有一个目录用于所有搅拌机导出,另一个目录用于使用脚本标记读取的文件,那么您可以创建一个简单的python脚本,将“var varname=”文本前置到每个文件中,并将其输出到js目录中。如果您在blender导出目录中的文件名是您希望添加到文件本身的变量名,这样就可以实现自动化,这将是最简单的。否则,您必须在python脚本中为每个要转换的文件编写一行,以命名文件名和变量名。无需使用类似于loader中的回退函数。load()?loader.load()
是异步的parse()
不是。它工作得非常好,但有一个问题-我必须编辑每个文件并向JSON数据添加变量名,而且每次通过Blender导出更新mesh时都必须这样做。是否可以通过编程方式处理此问题?如果您有一个目录用于所有搅拌机导出,另一个目录用于使用脚本标记读取的文件,那么您可以创建一个简单的python脚本,将“var varname=”文本前置到每个文件中,并将其输出到js目录中。如果您在blender导出目录中的文件名是您希望添加到文件本身的变量名,这样就可以实现自动化,这将是最简单的。否则,您必须在python脚本中为每个要转换的文件编写一行,以命名文件名和变量名。