3

internalformat在 WebGL 的texImage2D调用中可以传递的有效值是什么?WebGL 规范似乎没有说清楚,我不确定桌面 GL 文档中的哪些枚举可以在 WebGL 中使用。

WebGL 定义:RGB, RGBA, RGBA4, RGB5_A1, RGB565. 所有这些都保证是有效的内部格式吗?

参数是否type被考虑在内?如果我设置internalformatRGBtypeUNSIGNED_SHORT_5_6_5这是否保证内部格式为 16 位?还是它总是使用 RGB8 还是根据其他因素决定?

4

1 回答 1

3

据我了解,以下参数在 webgl 中有效:

内部格式:GL_ALPHA、GL_LUMINANCE、GL_LUMINANCE_ALPHA、GL_RGB、GL_RGBA。

格式:GL_ALPHA、GL_RGB、GL_RGBA、GL_LUMINANCE 和 GL_LUMINANCE_ALPHA。

类型:GL_UNSIGNED_BYTE、GL_UNSIGNED_SHORT_5_6_5、GL_UNSIGNED_SHORT_4_4_4_4 和 GL_UNSIGNED_SHORT_5_5_5_1。

internalformat 必须匹配格式

来自opengl ES 2.0文档:

internalformat 必须匹配格式。纹理图像处理期间不支持格式之间的转换。type 可以用作指定所需精度的提示,但 GL 实现可以选择以它选择的任何内部分辨率存储纹理数组。

如果 webgl 文档没有提供足够的详细信息,那么完整的opengl es 2.0 文档可能会有所帮助(第 3.7.1 章)。从 webgl 和 opengl es 2.0 之间的差异来看,webgl 和 opengl es 2.0glTexImage2D之间应该没有任何区别

于 2012-12-17T20:27:39.240 回答