Предупреждение WebGL: texImage: Alpha-premult и y-flip устарели для загрузок не-DOM-элементов - PullRequest
0 голосов
/ 20 апреля 2020

Поэтому я пытался использовать Map-box для построения координат в моем приложении, но когда я предоставляю файл .png в качестве маркера, я получаю следующую ошибку:

Предупреждение WebGL: texImage: Alpha-premult и y-flp устарели при загрузке не-DOM-элементов.

Снимок экрана

1 Ответ

0 голосов
/ 20 апреля 2020

Вы загружаете текстуры самостоятельно или это происходит через mapbox?

В любом случае вы можете загружать текстуры тремя способами

  1. необработанные данные через typedarrays
  2. из HTMLImageElement, HTMLCanvasElement или HTMLVideoElement
  3. из ImageBitmap

Отдельно есть варианты при загрузке, которые можно установить с помощью gl.pixelStorei. Два параметра UNPACK_FLIP_Y_WEBGL, установленный в true, переворачивает данные по вертикали перед загрузкой в ​​графический процессор. UNPACK_PREMULTIPLY_ALPHA_WEBGL при значении true он будет предварительно умножать RGB на альфа перед загрузкой.

Раньше все 3 метода загрузки данных учитывали эти флаги, но браузеры решили, что метод (1) и (3) не должен использовать эти флаги будут идти вперед, поэтому, если они установлены в true, вы получите сообщение, что они устарели.

Для ImageBitmap причина, по которой они устарели, заключается в том, что сама ImageBitmap имеет эти опции поэтому вы должны использовать их там, где они могут выполняться асинхронно. Для TypedArrays, поскольку вы на 100% контролируете данные, как ожидается, вы можете справиться с ними самостоятельно.

...