タグ付けされた質問 「raytracing」

(スキャンラインレンダリングとは対照的に)レイトレーシングに固有の質問、シーン内のオブジェクトとカメラからのレイを交差させる3Dグラフィック技術。

2
レイマーチングとは Sphere Tracingは同じものですか?
多くのShaderToyデモは、レイマーチングアルゴリズムを共有してシーンをレンダリングしますが、非常にコンパクトなスタイルで記述されることが多く、簡単な例や説明は見つかりません。 それでは、レイマーチングとは何ですか?一部のコメントは、それが球体追跡のバリエーションであることを示唆しています。そのようなアプローチの計算上の利点は何ですか?

2
なぜモンテカルロ光線追跡は分散光線追跡よりも優れているのですか?
モンテカルロレイトレーサー(パストレースアルゴリズムに基づく)の品質は、分散(確率的)エンジンよりもはるかに現実的だと聞きました。理由を理解しようとしていますが、まだ始まったばかりです。 このトピックに飛び込み、基本を理解するために、誰かが私を正しい方向に向けることができますか?アルゴリズムのどの部分がよりリアルなレンダリング結果につながりますか?

2
Cook-Torrance BRDFをトレースするパス
- 「ので、長い記事のために申し訳ありませんが、私はそのように行うことを好む悪魔は細部にある。」:) 私はスクラッチからパストレーサーを書いており、完全に拡散した(ランバート)表面に対してうまく機能しています(つまり、ファーネステストは-少なくとも視覚的に-それがエネルギーを節約しており、レンダリングされた画像がミツバレンダラーで生成されたものと一致することを示しますパラメーター)。現在、いくつかの金属表面をレンダリングするために、オリジナルのCook-Torranceマイクロファセットモデルの鏡面反射用語のサポートを実装しています。しかし、このBRDFは受け取ったエネルギーよりも多くのエネルギーを反映しているようです。以下のサンプル画像を参照してください。 上の画像:ミツバリファレンス(正しいと仮定)画像:直接光サンプリング、重要度半球サンプリング、最大パス長= 5、32層化spp、ボックスフィルター、表面粗さ= 0.2、RGBによるパストレーシング。 上の画像:実際のレンダリング画像:ブルートフォースナイーブパストレース、均一な半球サンプリング、最大パス長= 5、4096層化spp、ボックスフィルター、表面粗さ= 0.2、RGB。レンダリング設定に関していくつかの違いはありますが、レンダリングされたイメージが前に示した参照に収束しないことは明らかです。 私はそれが実装の問題ではなく、レンダリング方程式フレームワーク内でのCook-Torranceモデルの適切な使用に関する問題だと思う傾向があります。以下に、鏡面反射光BRDFをどのように評価するかを説明します。適切に行っているかどうか、そしてそうでない場合はその理由を知りたいです。 重要な詳細を説明する前に、レンダラーは非常に単純であることに注意してください。1)総当たり攻撃ナイーブパストレーシングアルゴリズムのみを実装します。直接光サンプリング、双方向パストレーシング、MLTはありません。2)すべてのサンプリングは、交点の上の半球で均一です-重要なサンプリングはまったくなく、拡散サーフェスでもありません。3)光線経路の最大長は5に固定されています-ロシアンルーレットなし; 4)放射輝度/反射率はRGBタプルで通知されます-スペクトルレンダリングはありません。 クックトーランスマイクロファセットモデル 次に、スペキュラBRDF評価式を実装するためにたどったパスを作成しようとします。レンダリング方程式ですべてが開始 pは表面での交点であります、W oは視線ベクトルであり、wは私Lo(p,wo)=Le+∫ΩLi(p,wi)fr(wo,wi)cosθdωLo(p,wo)=Le+∫ΩLi(p,wi)fr(wo,wi)cos⁡θdω L_o(\textbf{p}, \mathbf{w_o}) = L_e + \int_{\Omega} L_i(\textbf{p}, \mathbf{w_i}) fr(\mathbf{w_o}, \mathbf{w_i}) \cos \theta d\omega pp\textbf{p}wowo\mathbf{w_o}wiwi\mathbf{w_i}光線ベクトルは、ある沿って出射放射輝度であるW 、O、L iが時輝度入射するPに沿ってW Iとのcos θ = N ⋅ W iが。LoLoL_owowo\mathbf{w_o}LiLiL_ipp\textbf{p}wiwi\mathbf{w_i}cosθ=n⋅wicos⁡θ=n⋅wi\cos \theta = \mathbf{n} \cdot \mathbf{w_i} 上記の積分(つまり、レンダリング方程式の反射項)は、次のモンテカルロ推定器1で近似できます。 ここでpは、サンプリングベクトルwkの分布を記述する確率密度関数(PDF)です。1N∑k=1NLi(p,wk)fr(wk,wo)cosθp(wk)1N∑k=1NLi(p,wk)fr(wk,wo)cos⁡θp(wk) \frac{1}{N} \sum_{k=1}^{N} \frac{ L_i(\textbf{p}, …

1
レイトレーシングでのアンチエイリアス/フィルタリング
レイトレーシング/パストレースにおいて、画像のアンチエイリアスを行う最も簡単な方法の1つは、ピクセル値をスーパーサンプリングし、結果を平均化することです。IE。ピクセルの中心を通してすべてのサンプルを撮影する代わりに、サンプルをある量だけオフセットします。 インターネットを検索してみると、これを行うために多少異なる2つの方法が見つかりました。 必要に応じてサンプルを生成し、フィルターで結果を比較します 1つの例はPBRTです フィルターの形状に等しい分布を持つサンプルを生成します 2つの例は、smallptとBenedikt Bitterliのタングステンレンダラーです。 生成と計量 基本的なプロセスは次のとおりです。 必要に応じてサンプルを作成します(ランダム、成層、低差異シーケンスなど) 2つのサンプル(xおよびy)を使用してカメラレイをオフセットします。 レイでシーンをレンダリングする フィルター関数とピクセル中心を基準としたサンプルの距離を使用して重みを計算します。たとえば、ボックスフィルター、テントフィルター、ガウスフィルターなど) レンダリングから色に重みを適用します フィルターの形で生成する 基本的な前提は、逆変換サンプリングを使用して、フィルターの形状に従って分散されるサンプルを作成することです。たとえば、ガウスの形で分布するサンプルのヒストグラムは次のようになります。 これは、正確に実行するか、関数を個別のpdf / cdfにビニングすることで実行できます。smallptは、テントフィルターの正確な逆累積分布関数を使用します。ビニング方法の例はこちらにあります ご質問 各方法の長所と短所は何ですか?そして、なぜあなたは他の上に1つを使用するのですか?私はいくつかのことを考えることができます: Generate and Weighは最も堅牢であるようであり、任意のサンプリング方法と任意のフィルターの任意の組み合わせが可能です。ただし、ImageBufferの重みを追跡し、最終的な解決を行う必要があります。 フィルターの形状で生成は、負のpdfを持つことができないため、正のフィルター形状のみをサポートできます(つまり、Mitchell、Catmull Rom、またはLanczosはサポートしません)。ただし、前述のように、重みを追跡する必要がないため、実装が簡単です。 ただし、最終的には、メソッド2はメソッド1の単純化と考えることができます。これは、本質的に暗黙的なボックスフィルターの重みを使用しているためです。

1
OpenCLで再帰が禁止されているのはなぜですか?
レイトレースされた画像のレンダリングを高速化するためにOpenCLを使用したいのですが、WikipediaページではOpen CLでは再帰が禁止されていると主張しています。これは本当ですか?レイトレーシング時に再帰を広範囲に使用するため、高速化のメリットを享受するには、かなりの量の再設計が必要になります。再帰を防ぐ根本的な制限は何ですか?それを回避する方法はありますか?

2
相関サンプルは、モンテカルロレンダラーの動作にどのように影響しますか?
パストレースや双方向パストレースなどのモンテカルロレンダリングメソッドのほとんどの説明では、サンプルが独立して生成されることを前提としています。つまり、独立した均一に分布した数値のストリームを生成する標準の乱数ジェネレータが使用されます。 独立して選択されていないサンプルは、ノイズの点で有益であることがわかっています。たとえば、層化サンプリングと低差異シーケンスは、ほぼ常にレンダリング時間を改善する相関サンプリングスキームの2つの例です。 ただし、サンプル相関の影響がそれほど明確でない場合が多くあります。たとえば、Metropolis Light Transportなどのマルコフ連鎖モンテカルロ法は、マルコフ連鎖を使用して相関サンプルのストリームを生成します。多光源法は、多数のカメラパスに少数の光源パスを再利用し、多数の相関シャドウ接続を作成します。フォトンマッピングでさえ、多くのピクセルで光路を再利用することで効率が向上し、サンプルの相関性も増加します(バイアスがかかっていますが)。 これらのレンダリング方法はすべて、特定のシーンでは有益ですが、他のシーンでは事態を悪化させるようです。異なるレンダリングアルゴリズムでシーンをレンダリングし、一方が他方より良く見えるかどうかを目で確認する以外に、これらの手法によって導入されるエラーの品質を定量化する方法は明確ではありません。 質問は次のとおりです。サンプル相関は、モンテカルロ推定量の分散と収束にどのように影響しますか?どのような種類のサンプル相関が他のサンプル相関よりも優れているかを何らかの方法で数学的に定量化できますか?サンプルの相関が有益であるか有害であるかに影響を与える可能性のある他の考慮事項はありますか(例:知覚エラー、アニメーションのちらつき)。

4
ベジェ表面をレイトレースする方法は?
math.SEでこの質問を試してみましたが、驚くべきことに、答えは「方程式はあまりにも厄介です。関数を数値のルートファインダーに渡すだけです」。しかし、自分を自分のような「グラフィックスの男」と考え、デザイン作業のためにベジエ曲線を幅広く使用したことがあるなら、もっと良いことができると信じるようになりました。Kajiyaが公開しているアルゴリズムには、理解する背景がありませんが(Sylvester Matrices)、math.SEに関する関連するアドバイスは、結果はtの18次多項式であり、それを解決する必要があるということです数値的に。同様の結果が得られた別のアイデアがありました。 それでは、レイ/ベジエ面の交点を代数的に解決して、明示的にコーディングし、超高速で超滑らかにすることを望むのは、完全なパイプの夢ですか? それを除いて、この計算を実行するための最速の方法は何ですか?「ウィグルを見つけて」、再帰的なサブディビジョンの厳密な境界(およびターゲット)を取得できますか?数値のルートファインダー(ため息)を使用する必要がある場合、どのようなプロパティが必要ですか?速度に最適な選択肢はありますか? 私の元々の考えは、三角形に関する他の数学の質問への答えで説明したラプラス展開に似た特定の表面の準備についてでした。しかし、一般的な方法にも興味があります。ユタ州のティーポットのような、固定された一連の形状を考えています。しかし、アニメーション化されたフレーム全体の時間的一貫性を最適化する方法に非常に興味があります。

2
レイトレーサーのサブピクセルレンダリング
フォントレンダリングでは、サブピクセルレンダリングを使用するのが一般的です。ここでの基本的な考え方は、ピクセルをRGBコンポーネントに分割し、それぞれの値を個別に計算することです。各コンポーネントはピクセル全体よりも小さいため、高品質のアンチエイリアスが可能です。 レイトレーサーに対して同じことを行う、明らかに類似した方法があります。各サブチャネルで再構成フィルタリングを個別に行います。 しかし、これを行うレイトレーサーへの参照を見つけることができなかったことに驚きました。特に、すでにスペクトルレンダリングを行っている場合、これは明らかなことのように思えます。私が聞いたことのない雑誌のこの論文は、関連しているようです。しかし、全体的に、サブピクセルレンダリングは一般的なことではないようです。私の質問:なぜですか?

3
レイトレーシングの高さフィールドの最新のアルゴリズムは何ですか?
長年にわたって、レイトレーサーで高さフィールドの地形を描画するためのさまざまな手法に関する多くの論文がありました。一部のアルゴリズムは、グリッドを直接(またはクアッドツリーを介して)レイマーチします。また、地形をポリゴンメッシュに変換し、標準の光線と三角形の交差テストを使用するものもあります。この研究は過去数年で進んでいるようで、過去10年で書かれた論文を見つけるのは難しいですが、メモリとコンピューティング(CPUとGPUの両方)のバランスは依然として変化しています。 現在、どのようなアルゴリズムがハイエンドデスクトップマシンで最高のパフォーマンスを提供しますか?または、単一の答えがない場合、現在の最適なアルゴリズムのパフォーマンス特性はどのように異なりますか?

1
明示的な光サンプリングによるプログレッシブパストレース
BRDFパーツの重要度サンプリングの背後にあるロジックを理解しました。ただし、光源を明示的にサンプリングすることになると、すべてが混乱します。たとえば、シーンに1つの点光源があり、各フレームで常に直接サンプリングする場合、モンテカルロ統合のもう1つのサンプルとしてカウントする必要がありますか?つまり、1つのサンプルをコサイン加重分布から取得し、もう1つのサンプルを点光源から取得します。合計2つのサンプルですか、それとも1つのサンプルですか?また、直接サンプルからの放射輝度を任意の項に分割する必要がありますか?

2
パストレーシング用の適切なレンズ/カメラの客観的モデルを構築する方法
smallptを学習して実験した後、小さなパストレーサーを作成しました。 自分で書いていない(理解していない)唯一のことは、初期光線がどのように計算され、カメラから発射されるかです。原則は正しいのですが、次の方法を説明するリソースを探しています。 光線の初期方向を計算します おそらく被写界深度などの効果を可能にする(ピンホールカメラではなく)実際のレンズをモデル化しますか? 最先端の数学と物理学は必須ではありませんが、十分に説明されていればOKです。

3
非リアルタイムレイトレーシング
リアルタイムレイトレーシング(およびレイマーチングなど)でかなり遊んでいますが、非リアルタイムレイトレーシングにそれほど時間を費やしていません-より高品質の画像やビデオのプリレンダリングなどのために。 非リアルタイムの場合に画質を改善する一般的な手法の1つは、ピクセルあたりより多くの光線を投じて、結果を平均化することです。 リアルタイムの場合に通常行うことよりも、非リアルタイムの場合に画質を改善するための優れた方法として際立っている他の技術はありますか?

3
レイトレーシングでアンチエイリアシングはどのように実装されていますか?
オンラインでいくつかの記事を読んだ後、レイトレーシングでアンチエイリアシングがどのように機能するかについて私は自信がないと自信を持って言えます。 私が理解しているのは、単一のピクセル/光線が1ではなく4つのサブピクセルと4つの光線に分割されていることです。 誰かがこれがどのように行われるのかを説明できますか?

2
モーションブラーのオブジェクト空間へのレイ変換
私のレイトレーサーは多種多様なオブジェクトをサポートしています。それらを交差させるには、光線をオブジェクト空間に変換する標準的な手法を使用します。モーションブラーを追加するまで、これは素晴らしく機能します。 モーションブラーは、1つではなく一連の変換として説明します(説明を簡単にするために、2つだけとしましょう)。私のアプローチは、両方のキーフレームでレイの逆変換を行い、位置/方向を変更することです。 これは翻訳ではうまくいくように見えますが、回転では壊れます。たとえば、30度と90度回転する2つの三角形があります。 (4つのサンプル、MN再構成、赤いサンプルは2つのキーフレームの近くから来ました) コーナーでは、重複したサンプルが2つの頂点間の直線上にあると予想されます。代わりに、外側に膨らみます。これは間違っています。より興味深い変換を持つより興味深いシーンでは、さまざまな障害モードが発生します。たとえば、45回転するプロペラがあります。 (100サンプル、可視化された法線) いくつかの問題は、BVHの破損によるものです(オブジェクトの極値がキーフレームにあると想定しています)が、ブルートフォースレンダリングでさえ正しくありません。 フォワードトランスフォーム(レイではなくオブジェクトを変換する)のみを行うことでこれをすべて修正できますが、これは可能な場合にのみ機能します(実際には三角形のみ)。 レイトレーサーに、オブジェクトではなくレイを変換することで、変換(特に回転)の線形近似を作成させるにはどうすればよいですか?

1
ラジオシティVSレイトレーシング
基本的にラジオシティがこれを可能にします: ラジオシティに関するコーネル大学のチュートリアルでは、次のことが言及されています。 画像のレイトレース版では、直接反射によって視聴者に到達する光のみが表示されるため、色の効果が失われます。 ただし、ウィキペディアでは: ラジオシティは、表面に到達する照明が光源から直接来るだけでなく、光を反射する他の表面からも来るという意味でのグローバル照明アルゴリズムです。 ... ラジオシティ法から現在のコンピュータグラフィックスコンテキスト導出では、熱伝達におけるラジオシティ法(および基本的に同じです)。 また、レイトレーシングが可能な場合: 反射(拡散反射)や散乱(つまり、伝播媒体、粒子、または2つの媒体間の界面の不規則性による直線経路からの光線の偏向など)のさまざまな光学効果のシミュレーション そのチュートリアルでは、これらの効果を考慮していませんか、またはレイトレーシングで有効にするために使用できるラジオシティメソッドがありますか? ない場合は、これらの光学的効果は完全にラジオシティをシミュレートするかであることができませんでしたラジオシティアルゴリズム拡散反射の問題を解決する上で、より効率的ですか?

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