Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Three.js-在代码中包含网格数据_Javascript_Json_Three.js - Fatal编程技术网

Javascript Three.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

我使用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, 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脚本中为每个要转换的文件编写一行,以命名文件名和变量名。