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

1
パストレースでの反射または屈折の選択
私は自分のパストレーサーに屈折と透過を実装しようとしていますが、その実装方法が少しわかりません。まず、いくつかの背景: 光が表面に当たると、その一部が反射し、一部が屈折します。 反射光と屈折光の量は、フレネル方程式で与えられます 再帰的なレイトレーサーでは、単純な実装は、反射用のレイと屈折用のレイを撮影し、フレネルを使用して加重合計を行うことです。 RTLo=Fresnel()=1−R=R⋅Li,reflection+T⋅Li,refractionR=Fresnel()T=1−RLo=R⋅Li,reflection+T⋅Li,refraction\begin{align*} R &= Fresnel()\\ T &= 1 - R\\ L_{\text{o}} &= R \cdot L_{\text{i,reflection}} + T \cdot L_{\text{i,refraction}} \end{align*} ただし、パストレースでは、1つのパスのみを選択します。これは私の質問です: 偏りのない方法で反射するか屈折するかを選択する方法 私の最初の推測は、フレネルに基づいてランダムに選択することです。別名: float p = randf(); float fresnel = Fresnel(); if (p <= fresnel) { // Reflect } else { // Refract } これは正しいでしょうか?または、何らかの補正係数が必要ですか?私は両方の道を進んでいないので。

3
金属の高い鏡面性を説明するものは何ですか?
私の理解では、鏡面反射光カラーは通常、表面が垂直入射で照らされたときに反射される光の量を指し、またはと表記されています。さらに、非金属材料の場合、この値は材料の屈折率から計算され、式はフレネル方程式から導き出されます(1は空気またはボイドの屈折率): R 0 nF0F0F_0R0R0R_0んnnF0= (n − 1 )2(n + 1 )2F0=(n−1)2(n+1)2F_0 = \frac{(n - 1)^2}{(n + 1)^2} ウィキペディアの屈折率のこのリストによると: 通常、固体材料のは1.46(溶融石英)〜2.69(モアッサナイト)です。つまり、0.03と0.21の間のです。んnnF0F0F_0 液体のは通常1.33(水)から1.63(二硫化炭素)の間です。私が間違っていなければ、は0.02と0.057の間のを意味します。んnnF0F0F_0 通常、ガスのであるため、を0 と想定してもありません。F 0N ≈ 1n≈1n \approx 1F0F0F_0 これらの値はすべて非常に低いです。ダイヤモンド()やモアッサナイト()などの高屈折率の結晶でも、20%を超えることはほとんどありません。しかし、ほとんどの金属の値は50%を超えています。さらに、上記の式は金属には当てはまらないことを何度も読んだことがあります(これを使用しようとすると簡単に確認でき、完全に間違った結果が表示されます)。これ以上の説明はありません。F 0 = 0.21 F 0F0= 0.17F0=0.17F_0=0.17F0= 0.21F0=0.21F_0=0.21F0F0F_0 この違いを説明する現象は何ですか?金属のをどのように計算できますか(特に、接触している媒体が水のように1とは異なるIoRを持っている場合)?F0F0F_0

1
水面を包むための偏光反射と屈折
周回する宇宙の生息地で水のリアルな画像をレンダリングしたい。画像をリアルタイムで生成する必要はありませんが、数週間もかかることは望ましくありません。私は数時間または数日で現実的な画像を生成できるアプローチを探しています。 生息地は円筒形で、湾曲した内面が生活空間です。円柱の軸を中心とした回転は、重力の近似値を提供します。私はこれの物理学のシミュレーションの詳細を探しているのではなく、画像のレンダリングだけを探しています。 私が知りたい特定の側面は、偏光です。水面から反射された光は偏光され、水に入った光は反射光に対して垂直に偏光されます。この効果を無視して、反射および透過する光の割合を単純にモデリングすると、水面が1つしかない場合でも十分に機能しますが、円筒形の生息地に曲面の大部分を占める水域がある場合、特定の光線が生成されます広範囲の異なる角度での多重反射。つまり、反射される光の割合は、以前に適用された偏光角に依存します。 湾曲した水面からの複数の反射の現実的な画像を提供できるような効果を組み込んだ既存のアプローチはありますか?また、偏光を使用して屈折をモデル化する必要があります。水は場所によって浅くなるので、偏光屈折が結果に影響を与えると予想しています。 そうでない場合、既存のレイトレーサーを適応させることはできますか、またはゼロから始めるアプローチが必要ですか? 私は、臨時の観察者に現実的なものを渡すだけでなく、予期しない効果を発見するために、リアリズムを探しています。明らかに、ほとんどのオブザーバー(私を含む)は日常生活に馴染みがないため、探している効果を知りません。そのため、私は「説得力がある」よりも「合理的に物理的に正しい」を探しています。

1
これはビールの法則を実装する正しい方法ですか?
ビールの法則(オブジェクトを通る距離での色の吸収)を実装すると、何らかの理由でそれが非常に良く見えることはありません。 オブジェクトの背後に色がある場合、調整した色を次のように計算します。 const vec3 c_absorb = vec3(0.2,1.8,1.8); vec3 absorb = exp(-c_absorb * (distanceInObject)); behindColor *= absorb; これにより、次のようになります(少しの屈折が適用されていることに注意してください)。 そしてここでは屈折なしです: これは、ここではシェーダートイとして実装されていることに注意してください。 これは、ビールの法則の機能の説明を満たしていますが、次のようなショットと比較すると、見栄えがよくありません。 鏡面ハイライトはさておき、私は違いを理解しようとしています。それは、私のジオメトリが単純すぎて実際にそれをうまく表示できないということですか?それとも間違って実装していますか?

3
アイスキューブをリアルに表示するにはどうすればよいですか?
氷を、水の屈折率を持つわずかに奇形の透明な立方体としてモデル化できますが、説得力がありません。それらは氷ではなくガラスの塊のように見えます。 実際のアイスキューブを見ると、いくつかの違いを直感的に説明できますが、それらに一致するように変更する物理的特性がわかりません。 アイスキューブは濡れています。鉱山は乾いたガラスのように見えます。 アイスキューブは、他の場所ではなく、場所で透明です。 アイスキューブには、分離していなくても目に見える亀裂があることがよくあります。 この例では、表面上で氷をモデル化しようとしています(水に浮かんでいない空気中)。 リアリズムを高めるためにどのようなテクニックを含める必要がありますか? 静止画を作るためだけに、リアルタイムのテクニックを探しているのではありません。氷を写実的にもクローズアップし、リアルなコースティックスとシャドウをキャストしたいです。 カーブしたエッジを使用し、氷を透明な材料の薄い層でコーティングして、水の溶けた層をシミュレートしてみましたが、濡れているような印象はありません。また、フォグエフェクトを使用して、キューブの半分のサイズの透明な球体をキューブの中央に埋め込んでみましたが、自然にキューブに溶け込むことはなく、埋め込まれたように見えます。フォグが徐々に増加する一連のネストされた球体でさえ、まだ正しく見えません。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.