Three.js: GLTFLoader ImageBitmapLoader переопределяет загрузчики для типов, которые он не может обрабатывать

Созданный на 25 июн. 2020  ·  3Комментарии  ·  Источник: mrdoob/three.js

Описание проблемы

Из-за недавно добавленного использования BitmapLoader в GLFTLoader (https://github.com/mrdoob/three.js/pull/19518) использование обработчиков для определенных форматов файлов будет перезаписано из BitmapLoader.

В r117 для поддержки базовых текстур для файлов gltf вам просто нужно добавить

var basisLoader = new BasisTextureLoader();
basisLoader.setTranscoderPath( 'js/libs/basis/' );
basisLoader.detectSupport( renderer );
THREE.DefaultLoadingManager.addHandler( /\.basis$/, basisLoader );

Это больше невозможно, так как разрешение будет перезаписано здесь: https://github.com/mrdoob/three.js/blob/7df06a0e4054247f87a7b5aa555ca97cd6b15662/examples/jsm/loaders/GLTFLoader.jL2093

Я получаю следующую ошибку:

THREE.WebGLState: TypeError: Failed to execute 'texImage2D' on 'WebGL2RenderingContext': No function was found that matched the signature provided.
    at Object.texImage2D (three.module.js:21828)
    at uploadTexture (three.module.js:22749)
    at setTexture2D (three.module.js:22274)
    at WebGLTextures.safeSetTexture2D (three.module.js:23169)
    at SingleUniform.setValueT1 [as setValue] (three.module.js:17755)
    at Function.WebGLUniforms.upload (three.module.js:18260)
    at setProgram (three.module.js:26406)
    at WebGLRenderer.renderBufferDirect (three.module.js:25441)
    at renderObject (three.module.js:25994)
    at renderObjects (three.module.js:25966)
Версия Three.js
  • [x] Dev
  • [x] r118
  • [] r117
Браузер
  • [ ] Все они
  • [x] Chrome
  • [ ] Fire Fox
  • [ ] Край
Операционные системы
  • [x] Все они
  • [] Windows
  • [] macOS
  • [] Linux
  • [] Android
  • [] iOS
Требования к оборудованию (видеокарта, устройство VR, ...)
Bug Loaders

Самый полезный комментарий

@ Mugen87 Да, это решает проблему для меня. Спасибо, что так быстро исправили ошибку!

Все 3 Комментарий

Такая же ошибка возникает в одном из официальных примеров при использовании расширения glTF-dds :

https://threejs.org/examples/webgl_loader_gltf_extensions

@JohannesDeml Не могли бы вы проверить, решает ли связанный PR вашу проблему? По крайней мере, я мог бы исправить с ним пример DDS ^^.

@ Mugen87 Да, это решает проблему для меня. Спасибо, что так быстро исправили ошибку!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги