WebGL警告:texImage:Alpha-premult和y-flip不赞成用于非DOM元素上传



所以我一直试图使用Map box在我的应用程序中绘制坐标,但当我提供.png文件作为标记时,我得到了以下错误:

WebGL警告:对于非DOM元素上传,不推荐使用texImage:Alpha-premult和y-flip。

屏幕截图

你是自己上传纹理还是通过mapbox上传?

在任何情况下,你都可以通过3种方式上传纹理

  1. 通过typedarrays的原始数据
  2. 来自HTMLImageElement、HTMLCanvasElement或HTMLVideoElement
  3. 从ImageBitmap

另外,上传时可以使用gl.pixelStorei设置一些选项。两个选项是UNPACK_FLIP_Y_WEBGL,设置为true,它在上传到GPU之前垂直翻转数据。如果UNPACK_PREMULTIPLY_ALPHA_WEBGL设置为true,则会在上传之前将RGB乘以alpha。

过去,上传数据的所有3种方法都尊重这些标志,但浏览器决定方法(1(和(3(今后不应使用这些标志,因此如果它们设置为true,您将收到不赞成使用的消息。

对于ImageBitmap,它们被弃用的原因是ImageBitmap本身有这些选项,所以你应该在可以同步完成的地方使用它们。对于TypedArrays,由于您可以100%控制预期的数据,因此您可以自己处理它。

最新更新