保存变量以便稍后在着色器上处理

时间:2013-09-09 13:35:57

标签: android opengl-es opengl-es-2.0 vertex-shader

由于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个三角形,知道如何做,但不知道如何实现它

1 个答案:

答案 0 :(得分:0)

  

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

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