0

由于 GLES2.0 没有几何着色器,我想只使用顶点着色器来模拟一个。我的想法是这样的:我有:x、y、z、大小变量,每个顶点发送一个,然后将它们保存在某个地方。在第 6 个顶点之后,我使用最后 6 个值(x、y、z、大小和另外两个,如果需要)来构建接下来的 6 个顶点。例如:

  • 在第一次调用顶点着色器时,我将 x 变量保存在某处,并返回 gl_Position = (0,0,0)、gl_Color = (0,0,0,0) 等...
  • 在第二次调用中,我将 y 变量保存在某处,然后以与上述相同的方式丢弃顶点。然后我重复这个直到第 6 个顶点。
  • 在第 6 个顶点,我从某处拉出 x、y、z 和 size 变量,然后使用它们构建正方形的左上顶点。(gl_Position = (x-size/2, y-size/2, 0)...等等。

问题是,我不知道这个“某处”是什么。我不知道如何在顶点着色器调用中保存一个变量,以便在下一次调用中使用它。

TLDL:我想在一次绘图调用中在 GLES2.0 上用 5200 * (x, y, z, square_size) 制作 10400 个三角形,对如何做有想法,但不知道如何实现

4

1 回答 1

0

问题是,我不知道这个“某处”是什么。我不知道如何在顶点着色器调用中保存一个变量,以便在下一次调用中使用它。

这是你不能做的事情(它需要超出顶点着色器阶段才能做到这一点)。简单地考虑一下,所有的顶点都是由GPU同时通过顶点着色器处理的。这是您在使用顶点阶段时应该想到的模型。我认为很明显为什么会这样,你想要的东西不能那样做。

于 2013-09-09T14:17:15.203 回答