在OpenGL ES Texture中查找最小/最大值的最佳方法是什么

时间:2013-10-16 09:21:26

标签: opengl-es opengl-es-2.0

我有一个2D纹理,我想在这个纹理中找到min值的位置(x,y),有什么想法吗?

平台:OpenGL ES 2.0 Android。

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

1 个答案:

答案 0 :(得分:1)

您可以考虑利用mipmap LOD的分层特性,并将大型点集的最小值写入较低的LOD。你可以沿着mip-chain工作,以这种方式找到确切的最低值(和位置);通过扩展,如果你使用双通道纹理,你也可以写出最大值,并使用它来进行最大限度的确定...你当然会增加内存需求,但最小/最大位置的操作将非常快比较。

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

following link提供了关于最小/最大纹理的更多细节,我相信你可以在Google上找到更多...