GL_TEXTURE_EXTERNAL_OES texture2D坐标是标准化还是否?

时间:2014-07-20 19:37:05

标签: texture2d glsles

据我所知,除GL_TEXTURE_RECTANGLE外,大多数纹理都已标准化。

但是,我无法找到有关GL_TEXTURE_EXTERNAL_OES的信息。坐标是标准化的还是在[0,imageWidth],[0,imageHeight]的范围内?

如果你提到你从哪里获得信息,我也将不胜感激。我无法在khronos网站上找到它。

2 个答案:

答案 0 :(得分:1)

和你一样,我很沮丧地无法迅速找到明确的陈述。然而...

OES_EGL_image_external的扩展程序文档提及:

  

他们的默认最小过滤器为LINEAR。将最小过滤器值设置为INVALID_ENUMLINEAR以外的任何值都是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“平板电脑上尝试过它。