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

1
なぜレンダリングの方程式を解くために半球(球ではなく)を統合するのですか?
私が見たほとんどの教科書では、これがレンダリング方程式の書き方です。 L0(ω0)= Le(ω0)+ ∫Ωf(ω私、ω0)L私(ω私)D ω私L0(ω0)=Le(ω0)+∫Ωf(ω私、ω0)L私(ω私)dω私L_0( \omega_0)= L_e(\omega_0)+\int_{\Omega}{f(\omega_i, \omega_0)L_i(\omega_i)\,\mathrm{d}\omega_i} どこに(これらすべての機能が、より多くの変数に依存、簡単のためここでは省略)半球になるように定義されます。ΩΩ\Omega ここで、レンダリングされる表面が何らかのガラスまたは透明なプラスチックであるとします。なぜ半球上でのみ統合するのが理にかなっているのでしょうか?私は、あらゆる方向からの入射光が存在する可能性があることを想像します。したがって、統合ドメインは球体全体でなければなりません。ガラスの後ろから来る光はどのように考慮されますか?

3
OpenGLで透明度をレンダリングするいくつかの方法は何ですか
次のように、アルファブレンディングをオンにして、表面を透明にすることができます。 glDisable(GL_DEPTH_TEST); //or glDepthMask(GL_FALSE)? depth tests break blending glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); しかし、これはオブジェクトが最前面から最前面にレンダリングされる場合にのみ機能します。それ以外の場合、背景の物体は、下の画像の床のように、より近いオブジェクトの前に表示されます。パーティクルとGUI要素のソートは問題ありませんが、三角形メッシュの場合、https://www.opengl.org/wiki/Transparency_Sortingで説明しているように、手間がかかり、時間がかかるようです。 これに対処する一般的な方法は何ですか?これは非常に広範であり、実装の詳細な詳細ではなく、いくつかのアプローチの簡単な説明と、関与する可能性があることを知っています。

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

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

3
あらかじめ乗算されたアルファは、順序に依存しない透明性を提供しますか?
事前に乗算されたアルファを使用すると、次数に依存しない透明度が得られると聞いたことがありますが、座って計算すると、機能していないようです。 それは正しくありませんか、それとも私は何か間違ったことをしていますか? 私が使用している式は次のとおりです。 O Utr gb a= iんr gb a+ O Utr gb a∗ (1 − iんa)outrgba=inrgba+outrgba∗(1−ina)out_{rgba} = in_{rgba} + out_{rgba} * (1 - in_a) ここでは乗算済みアルファです。言い換えると、RGBAで「通常の」色をとると、RGBにaを乗算します。30%の不透明な白は、(1、1、1、0.3)から始まりますが、乗算済みアルファとして(0.3、0.3、0.3、0.3)になります。I Ninin 手作業で間違った答えを受け取った後、以下のC ++プログラムを作成しても、まだ間違った結果が得られます。 実行後: O 、U 、T 1 = (0.738 、0.913 、0.3 、1.0 )O U T 2 = (0.738 、0.875 、0.113 、1.0 )out1=(0.738,0.913,0.3,1.0)out2=(0.738,0.875,0.113,1.0)out1 = …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.