VRおよび錐台カリング


13

VR(ステレオビュー)環境をレンダリングする場合、錐台カリングパス中に描画されるものを決定するために2つの錐台チェックを行うことをお勧めしますか、または両方の錐台を組み合わせることができる他のチェックがありますか?

回答:


13

OculusのCass Everittによって作成されたこの図に示されているように、個々の目の錐台の両方を囲む単一の錐台を作成するのは非常に簡単です。この錐台の頂点を目と目の間と少し後ろに置くだけです。また、アイフラスタの元のニアプレーンに一致するように、ニアプレーンの距離を増やすこともできます。

ここに画像の説明を入力してください

このような錐台には、元の2つの錐台の結合ではなかった小さなスペースが含まれています。2つの目の間に水平方向に小さなボリュームがあります。また、図には垂直方向の寸法は表示されませんが、錐台頂点を引き戻すと、元の錐台の上下にいくらかのスペースが含まれます。ただし、実用的なカリングの目的では、おそらく問題ではありません。とにかく、錐台選別は通常控えめであり、余分なスペースの厚さはわずか数センチメートルです。

また、外側の平面と一緒に、元の錐台の上面と底面(目間で共有される)を単純に間引くこともできます。技術的には、これらのプレーンは錐台を形成しませんが、一度に1つのプレーンに対してテストする「通常の」カリングアルゴリズムを使用すれば、アルゴリズムは任意のプレーンのセットでうまく機能します。

視錐台カリング、LOD選択などを目ごとに共有することは、フレームごとに2回やり直すのではなく、ステレオレンダリングのCPUコストを最適化するための優れた方法です。これは、インスタンス化されたステレオレンダリングなど、1つのパスで両方の目を描画するレンダリングメソッドを使用する場合の前提条件でもあります


2
Nathanに感謝します。それはまさに私が望んでいたことです。この図はどこで入手できましたか。
ギャリーウォリス

2
@GarryWallis Cass 数ヶ月前にツイートした。
ネイサンリード

5

必要に応じて、Everittの結果を一般化しました。

一般的な錐台

ボーナスとして、視点の視点行列からleft0 / right0を抽出する方法:

left0   = n0 * (Mle13 - 1) / Mle11;
right1  = n1 * (Mre13 + 1) / Mre11;

行メジャーがある場合。列メジャーの転置。CF この回答


4

カリングに単一の錐台を使用することは、目の視野の合計が180度未満の場合にのみ機能することに注意してください。現在、約200度の大きな視野を持つVRヘッドセット、つまりPimax 5k +StarVRがあります。180度以上の視野に対して、従来の視野錐台または単一の投影行列を構築することは不可能です。

これらのヘッドセットは斜めのスクリーンを使用するため、投影面と視界内の前方ベクトルは平行ではありません。ここでの他の答えからの方程式は、それらが並列であると仮定し、その仮定が間違っている場合、誤った結果を生成します。

単一の結合ビュー錐台は依然として有用ですが、コードは、将来の証拠であることを保証するためにこれを構築できない場合に対処するために準備する必要があります。または、アイビューごとにカリングを行うことを検討するか、180度を超えるFOVを表現できる角度ベースのカリングに切り替えます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.