如何使用OpenGL ES对三角形像素求和
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用OpenGL ES对三角形像素求和相关的知识,希望对你有一定的参考价值。
我是OpenGL ES的新手。我目前正在阅读有关2.0版OpenGL ES的文档。我有一个三角形的2D网格,一个2D RGB纹理,我需要为每个三角形计算以下数量:
其中N
是给定三角形的像素数。进一步的CPU处理需要此数量。我们的想法是使用GPU光栅化来对三角形的数量求和。我无法看到如何使用OpenGL ES 2.0(这是android设备中最受欢迎的版本)。我的另一个问题是:是否可以使用OpenGL ES 3.0进行此类计算?
答案
我无法看到如何使用OpenGL ES 2.0
你不能; API根本不是为此而设计的。
是否可以使用OpenGL ES 3.0进行此类计算?
在一般情况下,没有。如果你可以使用OpenGL ES 3.1,如果你可以控制输入几何,那么一个可行的算法将是:
- 添加一个顶点属性,它是网格中每个三角形的基本ID(我们可以用作数组索引)。
- 分配原子缓冲区
GL_ATOMIC_COUNTER_BUFFER
,每个基元一个原子,预先归零。 - 在片段着色器中,增加与当前图元对应的原子(从顶点属性加载)。
虽然性能可能非常糟糕 - 原子通常对大多数GPU实现都很糟糕。
以上是关于如何使用OpenGL ES对三角形像素求和的主要内容,如果未能解决你的问题,请参考以下文章