2

我有一个 2D 纹理,我想在这个纹理中找到最小值的位置 (x,y),知道吗?

平台:OpenGL ES 2.0 Android。

注意:OpenGL ES2.0 不支持 mipmap 渲染。

4

1 回答 1

2

您可能会考虑利用 mipmap LOD 的分层特性,并将大量点的最小值写入较低的 LOD。您可以通过这种方式沿着 mip 链向上查找确切的最低值(和位置);通过扩展,如果您使用双通道纹理,您也可以写入最大值并将其用于最大确定...您当然会增加内存需求,但最小/最大位置的操作会非常快比较。

这种技术在字面上被称为最小/最大纹理。它有很多用途,尽管它最常用于阴影的上下文中。O (n)您可以使用 mipmap 将纹理结构化为树状结构,并O (log n)在 GPU 上及时执行相同的操作,而不是进行需要时间的搜索。您确实必须花费额外的处理来生成最小/最大 LOD,但这是一次性操作。

以下链接提供了有关最小/最大纹理的更多详细信息,我相信您可以在 Google 上找到更多...

于 2013-10-16T23:51:38.223 回答