Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.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 Can´;在三个js中加载js模型_Javascript_Three.js_3d Model - Fatal编程技术网

Javascript Can´;在三个js中加载js模型

Javascript Can´;在三个js中加载js模型,javascript,three.js,3d-model,Javascript,Three.js,3d Model,我有下面的代码,似乎无法加载模型 loader = new THREE.JSONLoader(true); loader.load("modelo.js" , function ( geometry, materials) { mesh = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial( materials ) );

我有下面的代码,似乎无法加载模型

loader = new THREE.JSONLoader(true);
                    loader.load("modelo.js" , function ( geometry, materials) {
                        mesh = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial( materials ) );
                        scene.add( mesh );
                    } );
整个代码如下。如果我去掉“loader.load(…)”这行代码,它可以很好地工作并加载一个小立方体旋转,如threejs.org教程中的示例所示,但是当我尝试加载我的模型时,它不会加载任何东西。我看了很多例子,并以不同的方式制作,但它只是不加载

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 geometry = new THREE.CubeGeometry(1,1,1);
                    var material = new THREE.MeshBasicMaterial({color: 0x00ff00});
                    var cube = new THREE.Mesh(geometry, material);
                    scene.add(cube);

                    camera.position.z = 5;

                    loader = new THREE.JSONLoader(true);
                    loader.load("modelo.js" , function ( geometry, materials) {
                        mesh = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial( materials ) );
                        scene.add( mesh );
                    } );

                    var render = function () {
                        requestAnimationFrame(render);

                        cube.rotation.x += 0.1;
                        cube.rotation.y += 0.1;

                        renderer.render(scene, camera);
                    };

                    render();

您好,我已经用Three.js库的r61测试了您的代码。它很好用,下面是我的建议

首先尝试将光源添加到场景中。例如,如果您的背景是黑色,并且您加载的模型(即使带有纹理)没有照明,则它将是黑色的。因此:

var ambientLight = new THREE.AmbientLight(0xBBBBBB);
scene.add(ambientLight);
如果不起作用,请查看
modelo.js
文件中的一些材质值,特别是模型json中的colorDiffuse值设置为黑色(或与场景背景颜色匹配)。你在玛雅有过这个吗?不管怎样,你说你已经尝试了一些型号,所以这是一个很长的机会,但如果它有助于检查这篇文章:

接下来,您是否在本地运行此功能?如果是这样,您是否在Chrome中运行它,并设置了Chrome.exe--allow file access from files标志。如果不在Firefox中尝试,它应该可以正常工作

哦,还要检查你的相机是否离得太近。也许把它移回去说:

camera.position.z = 100;
或者(b)您的网格足够大,可以看到:

mesh.scale.set(100, 100, 100);

应该可以了,祝你好运

控制台中有错误吗?我正在浏览器中检查,你指的是什么控制台?我认为js模型本身存在问题。我在互联网上用不同的模型进行了尝试,但都没有成功……Darryl,你能给我解释一些事情吗。我试图理解如何将模型导入到three.js项目中,但到目前为止还无法实现。我最近问了一个问题,如何加载js模型,但没有帮助。