5

ピクセル シェーダーがあり、ワールド空間座標に関して各ピクセルの位置を計算したいと考えています。どうすればいいですか?何が必要ですか?

ps_inputfloat4 position : を持つ構造がありますSV_POSITION。これは重要だと思いますが、内部に格納されている値はちょっとおかしいようです。

それらが何に関係しているのか理解できないようです。たとえば、ピクセルが 2 次元の場合、どうして w 成分や z 成分を持つのでしょうか?

私が使用DirectXしていて、ピクセル シェーダーはHLSL. C++CPU上の私のプログラミング言語として。

どんな助けでも大歓迎です。

4

1 に答える 1

5

私の記憶が正しければ、SV_POSITION は 0->W 0->H しかないので、画面上のどこにあるかを示しています。このサイトには詳細情報が含まれています: http://msdn.microsoft.com/en-us/library/windows/desktop/bb509647(v=vs.85).aspx

ピクセルをワールド空間に変換するには、ピクセル座標をワールド空間に変換します。数学とすべてで少しトリッキーです (私はそうだと思います!) が、この記事はあなたを助けるはずです! http://jcoluna.wordpress.com/2011/01/27/reconstructing-view-space-position-from-depth/

それ以外の場合は、ピクセルからビュースペースを検索してください。ワールドスペースが必要なのはわかっていますが、すべてをビュースペースに変換する方がおそらく高速です。

于 2012-10-09T08:45:27.150 に答える