2016-04-23 8 views
2

それぞれの '色'が本当に内部CPU側のデータ構造体のインデックスにある多くの三角形を描きたいと思います。単調に増加している数字のストリップで連続する三角形を描く

レンダリングされるすべての三角形の色(インデックス)を変更する簡単な方法はありますか?私は補間されていないテクスチャを使うことを考えましたが、私は10,000のインデックスを必要とします。

私は画素シェーダが別のものから値を参照できないことを知っていますが、(x, y, z, i)の頂点タイプが機能すると思いました。

私はOpenGLでUbuntu、OSXを試してみたが、WindowsではDX11/12の複雑さに終わった。

私はUnity3dを試してみましたが、失敗しました(なぜC++プラグインが必要なのか)、OpenGLでこれを行う方法が不明です。

+0

"私は多くの三角形を描画したいと思います。各三角形は、実際には内部のCPUサイドのデータ構造にインデックスされています。" GPUがこのデータ構造にアクセスすることをどのように計画していますか? – derhass

答えて

1

頂点(おそらく)が複数の三角形で使用されるため、三角形のIDをインデックス付き頂点バッファに埋め込むことは現実的ではありません。これは、索引付けされていないデータを使用している場合に可能です。

しかし、簡単な方法があります。 GLSL 1.50(OpenGL 3.2+)を使用していると仮定すると、フラグメントシェーダでgl_PrimitiveIDを使用できます。同様に、HLSLはSV_PrimitiveIDセマンティック(シェーダモデル4.0+)を持っています。これは描画される三角形の「インデックス」になります。このインデックスを使用して、適切なデータへのインデックスを決定することができます。データは、テクスチャ、均一なデータ、またはシェーダ内で色を生成するためのフォーラムとして、シェーダに供給することができます。

関連する問題