我有一个 2D 纹理,我想找到该纹理内最小值的位置 (x,y),知道吗?
平台:OpenGL ES 2.0 Android。
注意:OpenGL ES2.0不支持mipmap渲染。
最佳答案
您可能会考虑利用 mipmap LOD 的分层性质,并将大量点簇的最小值写入较低的 LOD。您可以通过这种方式沿着 mip 链向上找到确切的最低值(和位置);通过扩展,如果您使用双 channel 纹理,您也可以写入最大值并使用它来确定最大值...您当然会增加内存需求,但是最小/最大位置的操作将非常快比较。
这种技术字面上称为最小/最大纹理。它有很多用途,但最常用于阴影环境。而不是进行需要 O (n)
的搜索现在,您可以使用 mipmap 将纹理构建为树状结构,并在 O (log n)
中执行相同的操作GPU 上的时间。您确实必须花费额外的处理来生成最小/最大 LOD,但这是一次性操作。
following link提供了有关最小/最大纹理的更多详细信息,我相信您可以在 Google 上找到更多信息...
关于opengl-es - 在 OpenGL ES 纹理中查找最小/最大值的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19399583/