首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由编辑器导出的文件json不工作。

问由编辑器导出的文件json不工作。
EN

Stack Overflow用户
提问于 2013-11-23 11:18:25
回答 1查看 92关注 0票数 0

我将obj文件导入编辑器,然后将几何学导出到js文件中,当我将它放在代码中时,在firefox中没有出现任何错误:“Type: t1是未定义的”。我将模型更改为由.js导出的MaxExporter文件,并选择了"Export“、"Export”选项,这很好。接下来,我将模型更改为MaxExporter导出的文件,只选择“exported”,再一次选择"Type : t1是未定义的“,那么这是一个错误还是问题只是我的代码,以及如何修复它?

这是我的密码:

代码语言:javascript
复制
    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 );

         }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-24 14:42:19

您的代码有问题。

geometry.computeTangents()需要顶点法线。你得换一下订单。

代码语言:javascript
复制
geometry.computeVertexNormals();
geometry.computeTangents();

修正了错误。

但是,geometry.faces[4].normal是零。你的模型出了点问题。

three.js.r.63

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20161650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档