使用THREE.SkinnedMesh,THREE.js Helpers并在运行时切换渲染器场景的渲染错误

时间:2018-10-22 22:35:52

标签: javascript animation three.js 3d fbx

我不知道我做错了还是这可能是一个错误:

我有一个简单的THREE.WebGLRenderer,它呈现了我创建的两个THREE.Scenes之一。在这两个场景之一中,我有一个THREE.SkinnedMesh加载了FBXLoader。可以在这里找到FBX的源-> https://threejs.org/examples/webgl_loader_fbx.html。第二个场景包含一个从THREE.BoxBufferGeometry创建的简单THREE.Mesh实例。

在两个场景中,我至少都有一个THREE.GridHelper或THREE.CameraHelper。没什么。

现在是问题: 在运行时,我可以通过单击按钮切换场景。假设我当前正在使用fbx渲染第一个场景,一切都很好,并且看起来像预期的一样(请参见图片) enter image description here


这是我的渲染循环代码:

render() {
        requestAnimationFrame(this.render);

        // update some stuff
        ...

        // render Renderer.CURRENT_SCENE
        // Renderere.CURRENT_SCENE gets overwitten as soon as I change value via gui or button
        this.renderer.render(
            Renderer.CURRENT_SCENE,
            Renderer.CAMERA
        );
    }

当我切换场景时,事情开始变得怪异...


enter image description here

我的多维数据集可以正确渲染,但是FBX中的某些几何图形零件似乎被保留了下来,并使用LineSegment元素的材质(例如,辅助实例,因此我猜至少是这样)渲染了。一旦我从场景中删除所有帮助者,问题就不复存在了。我认为它不是由FBX本身引起的,因为它来自官方示例页面,并且我还尝试了其他FBX文件。同样的问题。我还可以确认问题是跨浏览器的问题。

我整天都在烦恼,无法修复它,或者无法获得有关为什么这样做的更多信息,所以到目前为止,你们似乎是我的最后机会。

0 个答案:

没有答案