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);
}

したがって、頂点シェーダーに実装する必要がある 2 つの問題があります。

1)一度に複数の隣接点を入力する方法は? 2)一度に複数のポイントを出力する方法は?

4

1 に答える 1

1

1)一度に複数の隣接点を入力する方法は?

頂点シェーダーには、隣接する頂点データを入力する機能がありません。これが本当に必要な場合は、(色や法線などを指定するのと同じ方法で) 隣接する頂点データを指定することで、冗長な頂点属性を介してこれを実装できます。

2)一度に複数のポイントを出力する方法は?

複数の頂点データをフラグメントシェーダーに渡すということですか? その場合、質問 1 と同じルールが適用されますが、冗長な変数を使用する必要があるのはあなただけです。

于 2012-12-17T11:07:07.067 に答える