在WebGL的internalformat
来电中传递给texImage2D
的有效可能值是多少? WebGL规范似乎没有说清楚,我不确定桌面GL文档中的哪些枚举将在WebGL中起作用。
WebGL定义:RGB
,RGBA
,RGBA4
,RGB5_A1
,RGB565
。所有这些都保证是有效的内部格式吗?
type
参数是否被记入帐户?如果我将internalformat
设置为RGB
而将type
设置为UNSIGNED_SHORT_5_6_5
,这是否可以保证内部格式为16位?或者它总是使用RGB8或根据其他因素决定?
答案 0 :(得分:3)
根据我的理解,以下参数在webgl中有效:
internalformat: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文档没有提供足够的详细信息,那么full opengl es 2.0文档可以提供帮助(第3.7.1章)。通过查看differences between webgl and opengl es 2.0,webgl和opengl es 2.0之间的glTexImage2D
不应有任何区别