レイマーチングとは Sphere Tracingは同じものですか?


31

多くのShaderToyデモは、レイマーチングアルゴリズムを共有してシーンをレンダリングしますが、非常にコンパクトなスタイルで記述されることが多く、簡単な例や説明は見つかりません。

それでは、レイマーチングとは何ですか?一部のコメントは、それが球体追跡のバリエーションであることを示唆しています。そのようなアプローチの計算上の利点は何ですか?

回答:


34

TL; DR

それらは同じファミリーのソルバーに属し、球体追跡はレイマーチングの1つの方法であり、これはファミリー名です。

定義のレイマーチング

レイマーチングは、サーフェス関数を簡単に解決できない(または数値の反復法がなければ不可能な)従来のレイトレーシングに少し似た手法です。レイトレーシングでは、レイの交差点を調べるだけですが、レイマーチングでは、交差点が見つかるまで、または十分なサンプルが得られるまで、または解決しようとするものが何であれ、前進(または前後)します。表面を見つけるためのニュートンラプソン法、またはさまざまな関数を統合するための加算のように考えてみてください。

これは次の場合に便利です。

  • 均一ではないボリュメトリックスをレンダリングする必要がある
  • 暗黙関数、フラクタルのレンダリング
  • パララックスマッピングなど、交差が事前にわからない他の種類のパラメトリックサーフェスのレンダリング

伝統的なレイマーチング

画像1:表面発見のための伝統的なレイマーチング

関連記事:

球の追跡

球追跡は、レイマーチングアルゴリズムの1つです。すべてのレイマーチングがこの種の方式に変換できないため、すべてのレイマーチングがこの方法の恩恵を受けるわけではありません。

球のトレースは、暗黙的なサーフェスのレンダリングに使用されます。陰関数表面は、連続関数のあるレベルで形成されます。本質的に方程式を解く

F(X,Y,Z) = 0

この関数が各ポイントでどのように解決されるかにより、現在の行進ステップに適合することができる最大の球体を推定することができます(正確に合理的に安全でない場合)。そうすれば、次の行進距離が少なくともこれほど大きいことがわかります。これにより、プロセスを高速化する適応型レ​​イマーチングステップを使用できます。

球の追跡には適応ステップサイズがあります

画像2:動作中のスフィアトレース*は、ステップサイズがどのように適応できるかを示しています

詳細については、以下を参照してください。

*おそらく2dでは、サークルトレーシングと呼ばれるべきです:)


1
私は、詳細な説明についてはScratchapixelから、この記事をお勧めします:scratchapixel.com/lessons/advanced-rendering/...
user18490

@ user18490のScratchapixelへのリンクはscratchapixel.com/lessons/advanced-rendering/…に移動しました。サイトの残りの部分(scratchapixel.com/index.php)も同様に便利です。
-WillC

15

レイマーチングは、レイに沿って歩き交点をテストする反復レイ交差テストです。通常、ソリッドジオメトリとの交点を見つけるために使用され、内側/外側のテストは高速です。

ここに画像の説明を入力してください
レリーフテクスチャを使用したレンダリングジオメトリからの画像

交差点がどこで発生するかわからない場合は、固定ステップサイズが一般的ですが、代わりにバイナリ検索やセカント検索などのルート検索方法が使用される場合があります。多くの場合、最初の交差点を見つけるために固定ステップサイズが使用され、その後にバイナリ検索が行われます。最初に、ピクセル単位の変位マッピング手法でレイマーチングに遭遇しました。高さフィールド以外の表面の詳細のリリーフマッピングは、良い読み物です!

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

これは一般的にスペースリーピングで使用されます。加速技術では、いくつかの前処理が安全な距離を与え、ジオメトリに交差することなくレイに沿って移動できます。たとえば、コーンステップマッピング、リラックスコーンステップマッピングなどです。

球の追跡は暗黙的な光線と球の交差テストを参照する場合がありますが、 @ joojaaが言及し、ウィリアムドネリー(距離関数を使用したピクセルごとの変位マッピング)で使用される、ジョンハートによる空間跳躍技術の名前でもあります。3Dテクスチャは、ジオメトリが存在しない球体半径をエンコードします。


ほら、他の人から画像を撮る方が自分で描くよりも効率的です。
joojaa

@joojaaはい、彼らがどこにいたか覚えていればより速くなりますが、自分でやるという満足感なしで:P。また、この愚かなサブピクセルレンダリングバグがクロムに​​あるため、テキストはすべてカラフルです。
jozxyqk

1
さて、そのサブピクセルレンダリングは求められていないものです。まだ。
-joojaa

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