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 three.js SVGRenderer可以渲染OBJ文件吗?_Javascript_Three.js - Fatal编程技术网

Javascript three.js SVGRenderer可以渲染OBJ文件吗?

Javascript three.js SVGRenderer可以渲染OBJ文件吗?,javascript,three.js,Javascript,Three.js,我正在尝试用三个.js渲染一个OBJ文件 如果我使用WebGLRenderer,一切正常,但如果我尝试使用SVGRenderer或CanvasRenderer,我什么也得不到 我怀疑这与对象是使用网格构建的这一事实有关(请参见和) 是这样吗?有解决办法吗 以下代码段供参考: var j = 0; if (j === 0) { renderer = new THREE.WebGLRenderer(); renderer.setSize( r_width, r_height );

我正在尝试用三个.js渲染一个OBJ文件

如果我使用WebGLRenderer,一切正常,但如果我尝试使用SVGRenderer或CanvasRenderer,我什么也得不到

我怀疑这与对象是使用网格构建的这一事实有关(请参见和)

是这样吗?有解决办法吗

以下代码段供参考:

var j = 0;
if (j === 0) {
    renderer = new THREE.WebGLRenderer();
    renderer.setSize( r_width, r_height );
    console.log(renderer.domElement );
} else if (j === 1) {
    console.log('here');
    renderer = new THREE.SVGRenderer();
    renderer.setSize( r_width, r_height );
    console.log(renderer.domElement );
    renderer.setClearColor( 0xf0f0f0 );
    renderer.setQuality( 'low' );
    console.log(renderer.domElement );
} else if (j === 2){
    renderer = new THREE.CanvasRenderer();
    renderer.setClearColor( 0xf0f0f0 );
    renderer.setPixelRatio( window.devicePixelRatio );
    renderer.setSize( r_width, r_height );
}
container.appendChild( renderer.domElement );

我显然使用j来切换渲染器。如果j为1或2,则不会渲染任何内容。

我没有使用SvgRender,但示例的来源似乎表明它支持与其他渲染器相同的网格。CanvasRenderer也不工作的事实向我表明,您尝试动态更改渲染器的方式是您的问题所在。当页面第一次加载时,尝试使用画布或svg渲染器,看看效果如何。结果表明,场景渲染大约需要10秒——这就是为什么它看起来不起作用的原因。现在我知道了,并且更加耐心地等待。它仍然会完全冻结浏览器。我首先添加了一个setTimeout()