1

この質問は非常に単純に見えるかもしれませんが、HLSL が独自の座標系をどのように処理しているかがわかりません。

(0,0) がどこにあるか (左上隅または左下隅) だけを知りたいのですが、私はこれらのシェーダーの概念の初心者であるため、自分でそれを差し引くことはできません。

ご協力いただきありがとうございます!

4

2 に答える 2

5

あなたは DirectX の座標系を理解したいと思っていると思います。HLSL はシェーディング言語であり、作業する座標空間を定義しません。

ここに、開始するためのリンクがいくつかあります。

  1. 座標系
  2. ピクセルおよびテクスチャ座標系
于 2012-05-29T18:56:45.117 に答える
1

頂点シェーダーでは、複数の座標系または空間を操作できます...

通常、頂点データはワールド座標に到達します...

次に、頂点データは WordViewProjection マトリックスによって変換されます。これは、ワールド座標から同次投影座標に変換されます。これは、頂点シェーダーで返される値です...

頂点が画面の内側にある場合、x、y 座標を w 成分で割ると range(-1..1,-1..1) 内の点が得られます...よくわかりませんが(-1,-1) は左上だと思います...テストするだけです

グラフィック カードに、この空間 (-1,-1,0)、(1,-1,0)、(1,1,0)、(-1、 1,0)、この方法では、頂点データを行列で変換する必要はありません。

あなたは何をしたいのか説明していません..しかし、後処理をしたいと思います...

その場合...テクスチャ座標を使用してピクセルシェーダーで作業できます...この方法では、左上のポイントが(0,0)になり、右下のポイントが(1,1)になります

ここでコードと詳細な説明を見つけることができます: http://ploobs.com.br/?p=1092

于 2012-05-29T22:36:24.177 に答える