カメラ等で画面を動かした際に、Ambient Occlusionの効果を与えているオブジェクトが画面外に消えた瞬間、影響を受けていたオブジェクトのAmbient Occlusion効果が無くなってしまう。
Screen Spaceの影響や、Ambient Occlusionをベイクすれば良いのではないかと思っているのですが、方法が分からず解決に至っていません。どなたか、このAmbient Occlusionの効果が画面外で瞬時に消える問題の解決方法が分かる方がいましたら、教えていただけると大変助かります。宜しくお願い致します。
ここでいうAmbient OcclusionがScreen Space Ambient Occlusionか、Material Ambient Occlusionなのか判断がつかないところですが、おそらく前者だという前提でお答えします。
本来Screen Space Ambient Occlusion(SSAO)は画面内に存在する遮蔽物から計算が行われるようになっており、画面外に出た場合にその効果は当然失うことになります。これを回避するためには視錐台カリング(Frustum Culling)を行なわせないようにさせる必要があります。ただし、視錐台カリングをさせない場合、レンダリングコストそのものが上昇してしまうことに注意してください。
視錐台カリングを行わせないためには、メッシュを持つアクターの"Rendering"設定にある、"Bounds Scale"を大きな値に設定します。(10から100程度)
これでカリング計算用のバウンド情報が巨大になるので、カリング計算が行われなくなります。
回答ありがとうございます。大変ありがたいです。
結果を先に申し上げますと、Bounds Scaleでは現状、問題解決に至っておりません。
具体的な状況をお伝えしますと、部屋のCGセットにおいて、床と壁の間の陰部分がAmbient Occlusionによって生み出されており、その中でカメラを上に振ると床が画面外に切れた瞬間に、壁に落ちていた陰がパカっと消えてしまって、明るくなっております。パースビューの表示をアンビエントオクルージョンのみの白黒画面で確認すると、現象が確認できるので、Ambient Occlusionが原因だとこちらでは思っていますが、他の原因が考えらそうであれば、アドバイスいただけると大変助かります。反射なども影響があるのかも?とも思っております。また、こちらの憶測ですが、Ambient Occlusionの陰を事前にベイクしてあげれば現象が解決するのではないかと思っています。事前ベイクの方法等も教えていただけるとありがたいです。知識があまりなく憶測で申し訳ありませんが、現状を打破するアドバイスをいただけると大変助かります。宜しくお願い致します。
文章だけでは現象がわかりづらいです。本当にアンビエントオクルージョンなのか、現象を説明できる画像かサンプルを用意してもらえると助かります。
マテリアルにアンビエントオクルージョンマップが用意されているのなら、ベイク済みのテクスチャーデータからAO自体を表現することは可能です。
回答頂いていたのに、返信遅くなり申し訳ありません。
問題の状況をキャプチャしたので、添付致しました(計2枚)
添付画像のように、カメラを上にふった際、地面に接した壁の陰が、瞬時にパカっと無くなってしまいます。地面が画面から切れた際になっていると思います。これを、こちらとしてはアンビエントオクルージョンが原因だと思っていました。是非とも原因を知りたいです。宜しくお願い致します。
これはまさしくScreen Space Ambient Occlusion(SSAO)が原因です。おそらくポストエフェクト側でSSAOが設定されているからです。
ライティングビルドでアンビエントオクルージョンをベイクすることが可能ですが、SSAOとは見え方が変わってきます。以下の公式ドキュメントに使い方が載っています。
SSAOの方を切ってから、ワールドセッティングを開き、[Use Ambient Occlusion]にチェックしてから細かい設定を弄り、ライティングビルドを行うことでAOをベイクすることが可能です。色々と試してみてください。
ポストエフェクト(GlobalPostProcessVolume)のAmbient Occlusionを切って、ワールドセッティングのUse Ambient Occlusionを行ってみました。ベイクされているので、地面が画面から切れても影響されないので非常に良いです。SSAOとは見え方は確かに変わりますが、これから細かい設定を弄ってみたいと思います。ありがとうございます。
この、SSAOでAmbient Occlusionの効果が瞬時に消えてしまう現象は、アンリアルエンジンの標準仕様なんですよね?ゲーム制作等においては、この仕様のまま制作しているのですかね?こちらとしては、バーチャルスタジオでの撮影がメインとなるのですが、カメラフォロー等を考えると、この仕様のままでは、使いづらい感じです。
そうですよね。高速にレンダリングするには致し方ないですね。。。
度々の回答ありがとうございました。
もうこのスレッド解決済みになっているようですが、こちらでするべき事がありましたら、返信ください。ありがとうございました。
すみません。解決済みにするにはどうすればよいのでしょうか?
はい。ゲームに限らずリアルタイムレンダリングではSSAOの他にもスクリーンスペースなエフェクトが結構あります。画面外の情報にはアクセスができませんので、どうしても正確性にも欠けてしまいますがそれ故に高速にレンダリングできるという利点があります。真面目にやろうとするとレイトレーシングが必要となってきますので、そうなるとレンダリングに時間がかかってしまいます。
もし、問題点が解決した場合にはこのスレッドを解決済みにしていただければと思います。
日本語ページのトップにもリンクがありますが、以下に解決済みにする方法が書かれています。
了解です。ありがとうございました。