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
Three.js 将google sketchup对象导入到threejs中--未渲染纹理_Three.js_Collada_Sketchup - Fatal编程技术网

Three.js 将google sketchup对象导入到threejs中--未渲染纹理

Three.js 将google sketchup对象导入到threejs中--未渲染纹理,three.js,collada,sketchup,Three.js,Collada,Sketchup,我正在为浏览器创建一个光盘高尔夫游戏。我的一个朋友正在帮助我在Trimble Sketchup中创建对象,这样我就可以将它们导入到游戏中。他导出了一个.dae文件和纹理,我使用ColladaLoader.js导入了它们。加载纹理和对象,并渲染对象,但对象是黑色的,有时javascript控制台会说某些纹理无法渲染 下面是一些代码: var loader = new THREE.ColladaLoader(); var dae; loader.options.convertUpA

我正在为浏览器创建一个光盘高尔夫游戏。我的一个朋友正在帮助我在Trimble Sketchup中创建对象,这样我就可以将它们导入到游戏中。他导出了一个.dae文件和纹理,我使用ColladaLoader.js导入了它们。加载纹理和对象,并渲染对象,但对象是黑色的,有时javascript控制台会说某些纹理无法渲染

下面是一些代码:

   var loader = new THREE.ColladaLoader();
   var dae;
   loader.options.convertUpAxis = true;

   loader.load( '/discgolf/static/models/BelmontDreamCourse.dae', function ( collada ) {

       dae = collada.scene;

       dae.scale.x = dae.scale.y = dae.scale.z = 2.0;

       dae.position.set( 5, 5, 5 ); 

       scene.add( dae );
   } );

我还需要做什么?我很乐意提供更多信息。

如果没有更多信息,这是一项相当艰巨的工作,但我首先要检查三件事:

  • 确保纹理路径正确(检查Firebug Net panel或它尝试加载纹理的路径)。如果我没记错的话,您可能需要搜索并替换DAE中的纹理路径,SU有时可以将绝对路径放在那里

  • 场景中有灯光吗?如果我没记错的话,ColladaLoader会将SU DAE材质转换为MeshPhongMaterial,这确实需要一些灯光来显示,而不像MeshBasicMaterial

  • 是否有动画循环,以便不断渲染对象?如果不是这样,请确保不仅在加载模型后重新渲染场景,而且在加载纹理后也重新渲染场景(纹理在模型后延迟加载)

  • 确保将纹理文件的大小调整为两个维度的幂次(256x512、256x2561024x1024x1024等)。WebGL不喜欢任意大小的纹理


感谢您的回复。我已经通过开发者工具检查了纹理路径,我在这里没事。我在场景中没有灯光,我试试看。我有一个动画循环。此外,我将调整纹理文件的大小。我做完这三件事后会回来的,但没有成功。你还想要什么其他信息?我在现场有灯光,但还不够。。。向场景中添加更多灯光有效。谢谢