問題タブ [raytracing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
math - 光線三角形交差の光線変換
openGL では、論文「Fast, Minimum Storage Ray/Triangle Intersection」( http://jgt.akpeters.com/papers/MollerTrumbore97 / )。
私のカーソル位置は、次のコードを使用してワールド空間に投影されていません:
その後、次のようにして光線を形成します。
さて、最後に、この光線を三角形のコード (上記のリンク) で実行しようとしていますが、正しく変換できないようです。私の現在の試みは次のとおりです。
何らかの理由で、これは機能しません。私は私の光線を間違って形成していますか?それとも間違って変換しますか?
c# - C# と WPF を使用した任意光線テスト
任意の点からの光線がポリゴンに当たるかどうかを知りたいです。交差が発生する空間内のポイントと、そのポリゴンへの参照を知っておくと便利です。私は System.Windows.Media.Media3D ライブラリを使用しており、レイ トレース テストを実行しましたが、VisualTreeHelper.HitTest によって返された HitTestResult オブジェクトから必要な情報をまだクラックしていません。
私は間違った場所を探していますか?
任意の交差をテストする別のアプローチはありますか?
コデス:
data-structures - 行を kd ツリーに最適に格納する方法
ポイントを保存するために kd-trees が伝統的に使用されていることは知っていますが、代わりにラインを保存したいと考えています。kd ツリーの分割とすべての交点で線を分割するのが最善でしょうか? または、最近傍を見つけるためにエンドポイントだけを kd-suffice に保存しますか?
raytracing - 色をブレンドする方法
現在、レイトレーサーをコーディングしています。プリミティブカラーとライトカラーをどうブレンドするか。多くの組み合わせを見てきました。
2色を追加するだけの人もいます。これは私に非常に奇妙な結果をもたらします。
いくつかは各コンポーネントを重複させます。見た目は問題ありませんが、プリミティブは青 ({0, 0, 1}) で、ライトは赤 ({1, 0, 0}) で、ただの黒です。それは正常な動作ですか?
上記の場合、色が実際にブレンドされるため、より論理的なスクリーンブレンドモード (screen(C1, C2) = C1 + C2 - C1 * C2)) も見ました。
反射光線の色についても同じ質問: それらをローカル カラーとブレンドする方法は?
おまけの質問: プリミティブ上の照らされていない点は黒くすべきですか? 「色の半分」のようなものを見てきました。
antialiasing - レイトレーサーで積極的なスーパーサンプリングを強制する
BlenderまたはPOV-Rayで大量のスーパーサンプリングを強制する方法を知っている人はいますか?たとえば、少なくともピクセルあたり100サンプルですか? これは、サブピクセル アーティファクトに大きく依存する研究プロジェクト用です。いくつかの重要なピクセルが非常に明るくなり、出力値がクリップされるため、大きな画像をレンダリングして縮小してもうまくいきません。クリッピングする前に平均化する必要があります。
Blender は、定義済みのサンプリング パターンを使用するため、5、8、11、または 16 のサンプルのみをサポートしているようです。
POV-Rayは非適応スーパーサンプリング法をサポートしていません。これは、ピクセル間の変動からは明らかでない可能性があるピクセル内に大きな変動があるために必要です。
simulation - 2D光線追跡
私はさまざまなレンズがどのように機能するかを示すプログラムに取り組んでおり、そのために2Dレイトレーシングライブラリまたはアルゴリズムが必要でした。
私はレイトレーシングを検索し、3Dでシーンを作成するために使用するものをほとんど見つけましたが、私の要件は単純なインタラクティブレンズシミュレーションです。
したがって、2Dレイトレーシングアルゴリズムまたはライブラリに向けたあらゆるポイントを歓迎します。私はPythonを使用しています。
c# - 簡単なレイ トレーシング チュートリアル?
何年も前に大学で C++ でレイ トレーサーを書きましたが、今ではほとんど覚えていません。楽しみのために、今度は C# でレイ トレーサーを書いてみることにしました。しかし、悲しいことに、カメラ座標からワールド座標への変換を開始するのに苦労しています。
レイ トレーサーをゼロから作成するための優れたチュートリアル セットを教えてくれる人はいますか? 私の数学の知識はかなり基本的なものなので、画面上の点が 3D 空間のどこにあるかを計算して、そこから光線を放つために必要な行列の乗算を再学習する必要があります。
シェイプとシェーディング パーツの交差部分は解決できると思いますが、カメラ トランスレーションは基本に立ち返る必要があります。
ありがとう!
graphics - What types of geometry definition file format is best used with ray tracing to include the type of material
I wanted to use .obj
format, but I noticed that it doesn't have representation for the type of material, i.e. opaque, transparent, reflective. Is there a common file format that includes that information as well, or should I just take the known .obj
format and change it so that it'll include that info?
graphics - ディスプレースメントマッピングを使用した球のレイトレーシング
シンプルな「GoogleEarth」タイプのアプリを作成することに興味があります(Googleが持っている膨大な量のデータではなく、自分の情報をオーバーレイするため)。変位(地形)情報を使用して球をレイトレースする単純なX11アプリにしたいと思います。光線と球の交差は非常に単純ですが、表示マッピングがそこにスローされると、頭の中で泥だらけになり始めます。
基本的な光線と球の交点を拡張して変位データを含める簡単な手法があるかどうか疑問に思いました...
graphics - レイ トレーシングでのシェーディングに適したモデル
いくつかの異なる光源と周囲光から生成される影を計算する最も正確な方法について疑問に思っています。アンビエントライトは「世界」全体に同じ強度で特定の方向を持たない光であり、拡散照明は点光源からの直接照明によって発生する照明です。
がKa
表面周囲反射率の係数、Ia
が周囲光の強度、Kd
が表面拡散反射率、Ip1
が最初の (したがって) 点光源の強度、N
が表面法線、L1
が光 (最初のソースに応じて) 方向。
私の参考資料によると、スポットの色の強度は次のようになります。
I=Ka.Ia+Kd(Ip1(N.L1)+Ip2(N.L2))
ここで、' .
' は内積です。
しかし、私の理解によると、実際の光の強度は、光源を合計するだけでなく、光源間の何らかの平均を行う必要があるため、光源が2つしかない場合、式は次のようになります。
I=Ka.Ia+Kd(Ip1(N.L1)+Ip2(N.L2))/2
3 つの光源があるが、3 番目の光源がブロックされており、サーフェスを直接照らしていない場合:
I=Ka.Ia+Kd(Ip1(N.L1)+Ip2(N.L2))/3
(そのため、3 つのライトすべてが寄与する場所がある場合は、より明るくなります。
私は私の仮定で正しいですか?