据我所知,除GL_TEXTURE_RECTANGLE外,大多数纹理都已标准化。
但是,我无法找到有关GL_TEXTURE_EXTERNAL_OES的信息。坐标是标准化的还是在[0,imageWidth],[0,imageHeight]的范围内?
如果你提到你从哪里获得信息,我也将不胜感激。我无法在khronos网站上找到它。
答案 0 :(得分:1)
OES_EGL_image_external的扩展程序文档提及:
他们的默认最小过滤器为
LINEAR
。将最小过滤器值设置为INVALID_ENUM
或LINEAR
以外的任何值都是NEAREST
错误。
并且:
默认的s和t换行模式为
CLAMP_TO_EDGE
,它是一个 将INVALID_ENUM
错误设置为任何其他值。
如果您习惯于处理非二次幂纹理,那么坐标不规范化的线索非常清晰。实际上,扩展的整个期限 - 可以使用一到三个硬件采样单元,一些变化可能会丢失,并且只允许一个单一的细节级别 - 强烈保留实现完全相同的权利就好像你将Y,U和V分别从两个非二能源中采样并将它们自己算术结合起来。
但就提供完整的纸上指纹答案而言:CLAMP_TO_EDGE
被定义为by the appropriate man page:
GL_CLAMP_TO_EDGE
会导致坐标被限制在(1/2N, 1 - 1/2N)
范围内,其中N
是纹理方向的大小 夹紧。
......如果坐标被标准化(虽然它实际上不会被定义),这也没什么意义。
所以我愿意强烈赌博他们没有正常化。
答案 1 :(得分:1)
他们使用标准化纹理坐标。您可以使用[0.0,1.0]范围内的纹理坐标来解决它们。虽然在扩展规范中指出它可能会很好,但他们可能认为没有必要,因为它就像OpenGL ES中的所有其他纹理一样。
来源:在Kindle Fire HDX 7“平板电脑上尝试过它。