gpt4 book ai didi

android - OpenGL ES 3 : glGenerateMipmap geometric constraints

转载 作者:行者123 更新时间:2023-11-30 02:20:32 28 4
gpt4 key购买 nike

我正在开发适用于 Android 的移动 OpenGL 应用程序,使用 OpenGL ES3.x 处理图形。

我想使用 glGenerateMipmap 函数,但我感到很不自在,因为我记得至少在以前的 OpenGL 版本中,纹理大小存在一些几何约束(正方形,n-pot 纹理,如果我没记错的话)。

引用页glGenerateMipmap for OpenGL ES3不再报告类似的内容,对几台设备的粗略测试似乎证实了这些信息。

尽管如此,考虑到 OpenGL ES3 是多么新(并考虑到一些移动 OpenGL 实现的质量......),如果有第一手经验的人确认使用它也可以,我会感到更加放心 在现实世界中

问题归结为:

  1. OpenGL ES 3 上的 glGenerateMipmap 真的没有限制纹理的几何形状吗?
  2. 如果是这样,在野外的非方形、非 n-pot 纹理上使用它是否安全?

谢谢!

最佳答案

那些对两个纹理的非幂的限制在 ES 3.0 中正式消失了。 ES 2.0 规范中的相应语言在 ES 3.0 规范中无处可寻。 E.1 部分列出了 ES 3.0 相对于 ES 2.0 的新特性,也明确提到了这一点:

non-power-of-two textures with full wrap mode support and mipmapping

所以是的,您可以安全地在 NPOT 纹理上使用 glGenerateMipmap()。有一个微妙但重要的限制:

If the level_base array was not specified with an unsized internal format from table3.3 or a sized internal format that is both color-renderable and texture-filterable according to table 3.13, an INVALID_OPERATION error is generated.

这意味着例如 glGenerateMipmap() 不支持任何整数格式(因为它们不可纹理过滤),也不支持任何浮点格式(因为它们不可渲染颜色) ).

我认为正方形从来都不是 OpenGL 中纹理的真正限制。它肯定不在 ES 2.0 中,也不在 ES 3.0 中。

关于android - OpenGL ES 3 : glGenerateMipmap geometric constraints,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28596129/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com