0

OpenGL でグラフを視覚化しようとしています。3D 空間内のポイントを含む頂点バッファーと、頂点間の線を指定するインデックス バッファーがあります。glDrawElements を使用してグラフを描画します。すべてが機能します。問題は、エッジの重みを視覚化する必要があることです。私の問題は、エッジの重みがペアごとの属性であり、この情報をシェーダーに入れる方法がわからないことです。私が考えることができる唯一の解決策は、DrawRangeElements を使用して各エッジを個別に描画し、すべての呼び出しの間にエッジの重みを設定することです。これを行うより良い方法はありますか?

4

1 に答える 1

1

ジオメトリ シェーダーを使用する必要はありません。としてレンダリングしGL_LINES、必要に応じて位置を複製し、線上の頂点の各ペアに同じ「重み」属性を提供します。これは最終的に、各面に独自の法線が必要な立方体のレンダリングと同じです。

絶対にそのメモリを元に戻す必要があり、(正規化された short、正規化されていない short などを使用して) 頂点データを単純に圧縮できない場合 (およびその場合にのみ)、使用できるいくつかの手法を次に示します。警告: これはメモリとパフォーマンスのトレードオフです。そのため、実際にメモリが不足している場合を除き、頂点データを複製してやり直してください。

于 2012-10-15T21:45:22.227 に答える