2

背景のビット

C++ で単純なレイ トレーサーを作成しています。コアのほとんどは完成しましたが、イメージ プレーン上のピクセルのワールド座標を取得する方法がわかりません。レイをワールドにキャストするには、この場所が必要です。

現在、正規化されていない位置(別名、視点の基準点)、方向(ベクトル)を持つカメラがあります。方向の長さは、イメージ プレーンの中心と、カメラが向いている方向を示します。

カメラに関連付けられた他の値がありますが、それらは関係ありません。

私の画像座標は -1 から 1 の範囲で、遠近法 (焦点距離) は、カメラに関連付けられた方向の距離に基づいて変化します。

助けが必要なこと

ピクセル座標 (両側に 256 ピクセルの画像で [0, 256] など) からワールド座標に移動する必要があります。

また、カメラがどこに配置され、どこに向けられていても、ワールド座標でピクセルを見つけることができるように、これをプログラムしたいと考えています。(現在、カメラはほとんどの場合、原点の中心にあり、負の z 軸を見下ろします。将来の変更を念頭に置いてこれをプログラムしたいと思います。)このコードを自分のシステムにプッシュする必要があるかどうかを知ることも重要です。スレッド化されたコードも同様です。それ以外の場合は、メイン スレッドによって計算され、スレッド化されたコードで光線が使用されます。

一般的な考え方の例
(ソース: in.tum.de )

この画像は私が作成したものではなく、私が必要としているもののアイデアを提供するためだけのものです。

追加情報が必要な場合は、コメントを残してください。そうでなければ、何をすべきかの簡単な理論/コード例が欲しいです。

4

1 に答える 1