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

Android 保存变量以便以后在着色器上处理,android,opengl-es,opengl-es-2.0,vertex-shader,Android,Opengl Es,Opengl Es 2.0,Vertex Shader,因为GLES2.0没有几何体着色器,所以我只想使用顶点着色器模拟一个。 我的想法是这样的: 我有:x,y,z,大小变量,每个顶点发送一个,然后保存到某个地方。在第6个顶点之后,我使用最后6个值(x、y、z、size和另外两个,如果需要的话)来构建接下来的6个顶点。例如: 在第一次调用顶点着色器时,我将x变量保存在某个位置,并返回gl_Position=(0,0,0)、gl_Color=(0,0,0)等 在第二次调用中,我将y变量保存在某个地方,然后以与上面相同的方式丢弃顶点。 然后我重复这个直

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

  • 在第一次调用顶点着色器时,我将x变量保存在某个位置,并返回gl_Position=(0,0,0)、gl_Color=(0,0,0)等
  • 在第二次调用中,我将y变量保存在某个地方,然后以与上面相同的方式丢弃顶点。 然后我重复这个直到第六个顶点
  • 在第六个顶点上,我从某处提取x、y、z和大小变量,然后使用它们构建正方形的左上顶点。(gl_位置=(x尺寸/2,y尺寸/2,0)。。。 等等
问题是,我不知道这是什么“某处”。我不知道如何在顶点着色器调用中保存变量,以便在下次调用中使用它

TLDL:我想在一次绘图调用中,在GLES2.0上用5200*(x,y,z,square_大小)生成10400个三角形,我想知道怎么做,但不知道如何实现它

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


这是你做不到的(这需要顶点着色器阶段之外的东西才能做到)简单地考虑所有顶点都是由GPU同时通过顶点着色器处理的。这是你在顶点阶段工作时应该记住的模型。我认为这是很明显的,为什么你不想那样做。< / P>由于某种原因,我甚至没有考虑过顶点着色器会是什么样子。多线程…@Guedez:所有着色器阶段本质上都是大规模并行的。这就是GPU与CPU如此不同的原因。