コーンを使用したレイトレーシング:カバレッジ、重なり合う三角形、隣接する三角形


10

John Amanatidesは、彼の古典的な論文「レイトレーシングとコーン」で、古典的なレイトレーシングのバリエーションについて説明しています。概念拡張することによって光線をすることにより、開口角それ円錐作る、(少なすぎるモンテカルロ試料からのもの元含む)エイリアシング効果を低減することができます。

円錐と三角形の交差中に、スカラーカバレッジ値が計算されます。この値は、三角形で覆われている円錐の割合を表します。未満の場合、三角形が円錐を完全に覆っていないことを意味します。さらにテストが必要です。ただし、より高度な手法を使用しないと、コーンのどの程度がカバーされているかがわかるだけで、どの部分がカバーされているかはわかりません。1

アマナティデスは述べています:

現時点では、さまざまなオブジェクトからの寄与を混合するために部分的なカバレッジ値のみが使用されているため、オーバーラップするサーフェスは正しく計算されますが、隣接するサーフェスは計算されません。

これは私には意味がありません。私の見解では、それは逆です。例を挙げましょう。隣接する三角形が2つあります。緑と青の三角形で、それぞれが円錐のちょうど50%をカバーしています。彼らは視聴者から同じ距離にあります。

緑と青の三角形

緑の三角形が最初にテストされます。カバレッジ値は0.5なので、次に青い三角形がテストされます。青色のカバレッジ値が0.5の場合、コーンは完全に覆われているので、最終的に50:50の緑と青の混合になります。すごい!

今度は、青い三角形を消して、緑の三角形の後ろに少し距離を置いて、赤い三角形を追加するとします。Greenyはカバレッジ値を0.5に戻します。テストするための青いものはもうないので、コーンを見下ろすとすぐに赤いものを見つけます。これも、0より大きいカバレッジ値を返しますが、緑色の値の背後にあるため、これを返す必要はありません。

したがって、これから、隣接する三角形は正常に機能するが、三角形の重複にはカバレッジマスクのような魔法を正しくする必要があると結論付けます。これはアマナティデスが言うことの反対です。私は何かを誤解しましたか、それともこれは紙の伝票ですか?

回答:


3

私はアマンティデスの研究に基づいてレイトレーサーを実装しましたが、何年も前と同じように、私の紙の記憶は少し錆びています。

ただし、この特定のケースを無視すると、一般的に、部分的なカバレッジ(例:Alphaコンポジット)で作業する場合("A over B"を参照)、通常の仮定では、コンポジットされるアイテムは無相関であると理解しています。

したがって、カバレッジがX%のAがカバレッジがY%のBの上にあり、バックグラウンドがCである場合、
X%* A +(100-X%)* Y%* B +(100-X %)(100-Y%)* C

それは理にかなっていますか?明らかに、これはAとBが強く相関している場合に「リーク」を生じます。

これらの問題を回避するために光線に小さなビットマスクを付けたのではないかと思いますが、それは非常に昔のことです。


その説明でそれは完全に理にかなっています、ありがとう!覚えているかもしれませんが、通常のレイトレーシングと比較して、コーントレーシングの経験はどのようでしたか?もちろん、これは概算ですが、許容できる品質でかなりのスピードアップを実現していますか?
デビッドクリ

ああ、まあ、それはずっと前のことでした。実際には、コーントレーシングのみを実装しました。実際に半径部分をオフにしようとしたかどうかは思い出せませんが、時間があれば、コーントレーシングルートをたどる長所と短所を覚えておきましょう。
Simon F
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.