OpenGL ES 2.具有3个相邻点参数的着色器生成2个点?

时间:2012-12-17 09:08:06

标签: iphone ios opengl-es-2.0 shader vertex-shader

我有一个折线点(x,y)的数组。每次我处理3个邻居点并生成2个输出点。

例如,像这样:

void someFunc(float x0, float y0, float x1, float y1, float x2, float y2, float *pXout1, float *pYout1, float *pXout2, float *pYout2)
{
  *xout1 = x1 - 1;
  *xout2 = x1 + 1;
  *yout1 = MIN(y0, y2);
  *yout2 = MAX(y0, y2);
}

所以我有两个问题需要在我的顶点着色器中实现:

1)如何一次输入几个邻居点? 2)如何一次输出几个点?

1 个答案:

答案 0 :(得分:1)

  

1)如何一次输入几个邻居点?

顶点着色器无法输入相邻的顶点数据。如果你真的需要这个,那么你可以通过提供相邻的顶点数据(通过提供颜色,法线等)来实现冗余顶点属性。

  

2)如何一次输出几个点?

您的意思是将多个顶点数据传递给片段着色器吗?如果是这样,那么同样的规则适用于问题#1,只有你应该使用冗余变化。