Я не знаю, делаю ли я что-то не так или это может быть ошибкой:
У меня есть простой THREE.WebGLRenderer, который рендерит одну из двух созданных мною трех сцен.В одной из этих двух сцен у меня есть THREE.SkinnedMesh, загруженный с FBXLoader.Источник FBX можно найти здесь -> https://threejs.org/examples/webgl_loader_fbx.html. Вторая сцена содержит простой экземпляр THREE.Mesh, созданный из некоторой THREE.BoxBufferGeometry.
В обеих сценах у меня есть как минимум один THREE.GridHelper илиTHREE.CameraHelper.Ничего особенного.
Теперь проблема: во время выполнения я могу переключать сцены с помощью нажатия кнопки.Допустим, я сейчас рендерил первую сцену с помощью fbx, все в порядке и выглядит как положено (см. Изображение)
Это мой код цикла рендеринга:
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
);
}
Как только я переключаю сцены, все становится странным ...
Мой кубик становитсяотображается правильно, но некоторые геометрические части из FBX, похоже, остаются и отображаются с материалом элемента LineSegment (например, вспомогательный экземпляр, так что я думаю, по крайней мере).Как только я удаляю всех помощников из сцен, проблема больше не присутствует.Я не думаю, что это вызвано самой FBX, так как это со страницы официальных примеров, и я также пробовал другие файлы FBX.Та же проблема.Я также могу подтвердить, что проблема кросс-браузерная.
Я целый день мучился и не смог ее исправить или получить дополнительную информацию о том, почему это происходит, так что вы, ребята, кажетесь моимпоследний шанс к настоящему времени.