0

我有一组折线点(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)如何一次输出多个点?

4

1 回答 1

1

1)如何一次输入多个相邻点?

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

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

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

于 2012-12-17T11:07:07.067 回答