Javascript 编辑器导出的json文件无效

Javascript 编辑器导出的json文件无效,javascript,json,three.js,Javascript,Json,Three.js,我将obj文件导入编辑器,然后将几何体导出到js文件,当我将其放在代码中时,firefox调试中没有出现错误:“类型错误:t1未定义”。 我将模型更改为MaxExporter导出的.js文件,并选择了“导出UV”、“导出法线”选项,工作正常。 接下来,我将模型更改为MaxExporter导出的文件,仅选择“导出UV”,再次更改为“类型错误:t1未定义”,那么这是一个错误还是问题只是我的代码,以及如何修复它 这是我的代码: var ambient = 0xffffff, diffuse =

我将obj文件导入编辑器,然后将几何体导出到js文件,当我将其放在代码中时,firefox调试中没有出现错误:“类型错误:t1未定义”。 我将模型更改为MaxExporter导出的.js文件,并选择了“导出UV”、“导出法线”选项,工作正常。 接下来,我将模型更改为MaxExporter导出的文件,仅选择“导出UV”,再次更改为“类型错误:t1未定义”,那么这是一个错误还是问题只是我的代码,以及如何修复它

这是我的代码:

    var ambient = 0xffffff, diffuse = 0xffffff, specular = 0x000000, shininess = 100;

            var shader = THREE.ShaderLib[ "normalmap" ];
            var uniforms = THREE.UniformsUtils.clone( shader.uniforms );

            uniforms[ "tNormal" ].value = THREE.ImageUtils.loadTexture( "md/normals.jpg" );
            uniforms[ "uNormalScale" ].value.set( 1.5, 1.5 );

            uniforms[ "tDiffuse" ].value = THREE.ImageUtils.loadTexture( "md/diff.jpg" );

            uniforms[ "enableDiffuse" ].value = true;

            uniforms[ "uDiffuseColor" ].value.setHex( diffuse );
            uniforms[ "uSpecularColor" ].value.setHex( specular );
            uniforms[ "uAmbientColor" ].value.setHex( ambient );

            uniforms[ "uShininess" ].value = shininess;


            var parameters = { fragmentShader: shader.fragmentShader, vertexShader: shader.vertexShader, uniforms: uniforms, lights: true };
            var material = new THREE.ShaderMaterial( parameters );


            loader = new THREE.JSONLoader( true );

            loader.load( "md/model.js", function( geometry ) { createScene( geometry, 100, material ) } );



            container.appendChild( renderer.domElement );



window.addEventListener('resize', onWindowResize, false);

}

 function createScene( geometry, scale, material ) {

            geometry.computeTangents();
            geometry.computeVertexNormals();
            mesh = new THREE.Mesh( geometry, material );
            mesh.castShadow = true;
            mesh.receiveShadow = true;
            mesh.position.y = - 0;
            mesh.scale.x = mesh.scale.y = mesh.scale.z = scale;
            scene.add( mesh );

         }

您的代码有问题

geometry.computeTangents()
需要顶点法线。你需要改变顺序

geometry.computeVertexNormals();
geometry.computeTangents();
这修复了错误

但是,
geometry.faces[4]。法线为零。你的模型有问题


three.js.r.63

你能提供一个实例吗?当然,这是我的项目(r61)的下载链接,我已经制作了3个html,代码完全相同,只是与模型文件不同。太谢谢你了,我做到了。