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

1
許容できる品質のシャドウマッピングテクニックの検索
最近、従来のシャドウマッピングのシャドウニキビ問題の解決を模索しながら、指数シャドウマップを実装しました。トリックはありましたが(ニキビはまったくありません)、同時に他の許容できないエラーが発生しました。 深度マップのぼかしには、最小のsigma = 1のガウスぼかしを使用します。 シャドウマップのテスト: float occluder = texture(shadowMap lightCoords.xy).r; float c = 5000.0; float receiver = lightCoords.z; float shadow = exp(c*(occluder-receiver)); shadow = clamp(shadow, 0.0, 1.0); 小さなc係数c=100.0: 許容できない光のにじみ 高いc係数でc=5000.0: 光のにじみはありませんが、高周波の細部が「腫れ」ているように見えます。 最適なcを見つけることができません-でも光のにじみが現れc=3000.0、高周波のシャドウエラーが既に発生しています。デプスマップをぼかすことは役立ちませんが、エイリアシングが発生します。 そして私の質問は、このテクニック(ESM)をどのように改善できるか、または別のテクニックを探す必要があるかどうかです。ウィッチャー3やフォールアウト4などの最新のゲームで見られるように、優れたパフォーマンスを備えた高品質のシャドウは間違いなく可能だと思います。

1
レンダリング方程式にシャドウを組み込む方法
これが教科書でのレンダリング方程式の書き方です L (p 、ω )=Le(p 、ω )+ ∫f(p 、ω私、ω )L (p ∗ 、−ω私)cosθdω私L(p,ω)=Le(p,ω)+∫f(p,ωi,ω)L(p∗,−ωi)cos⁡θdωiL(p,\omega) = L_e(p,\omega) + \int f(p,\omega_i,\omega) \, L(p*,-\omega_i)\cos \theta \, d\omega_i この方程式のどのコンポーネントがシャドウイングを処理しますか?

1
シャドウマッピングアーティファクト
私は深度テクスチャを使用してOpenGLのシャドウマッピングをいじっています。深度テクスチャは細かいので、シーンにマッピングできますが、オブジェクトの裏側に奇妙なアーティファクトがあります。 私の質問は、これを引き起こしているものであり、どうすれば修正できますか? 私が使用しているフラグメントシェーダーはかなり単純です(ここに青がない理由に疑問がある場合に備えて、簡単にするために色を取り除いています)。 in vec4 vShadowCoord; uniform sampler2DShadow shadowMap; out vec4 fragColor; void main() { float bias = 0.005; float visibility = 1.0; if (texture(shadowMap, vec3(vShadowCoord.xy, vShadowCoord.z / vShadowCoord.w)) < (vShadowCoord.z - bias) / vShadowCoord.w) visibility = 0.25; fragColor = vec4(visibility); } 編集:必要に応じて、上記のコードのみを使用する最低限の作業例のスクリーンショット(色なし)。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.