我有一个2D纹理,我想在这个纹理中找到min值的位置(x,y),有什么想法吗?
平台:OpenGL ES 2.0 Android。
注意:OpenGL ES2.0不支持mipmap渲染。
答案 0 :(得分:1)
您可以考虑利用mipmap LOD的分层特性,并将大型点集的最小值写入较低的LOD。你可以沿着mip-chain工作,以这种方式找到确切的最低值(和位置);通过扩展,如果你使用双通道纹理,你也可以写出最大值,并使用它来进行最大限度的确定...你当然会增加内存需求,但最小/最大位置的操作将非常快比较。
这种技术字面上称为最小/最大纹理。它有很多用途,但它最常用于阴影环境中。您可以使用mipmap将纹理结构化为树状结构,而不是进行O (n)
时间的搜索,并在GPU上O (log n)
时间执行相同的操作。您必须花费额外的处理来生成最小/最大LOD,但这是一次性操作。
following link提供了关于最小/最大纹理的更多细节,我相信你可以在Google上找到更多...