水中での霧のレンダリング


8

次のように、カメラまでの距離に基づいてフォグとサーフェイスカラーをブレンドするglFogを知っています。

ここに画像の説明を入力してください

方程式はドキュメントにも記載されています。しかし、霧はカメラの前ですぐに適用されます。私は水面をレンダリングしようとしていて、それをある程度の深さにしたいと思っています。たとえば、

ここに画像の説明を入力してください

現時点では、以下のように水面をアルファブレンディングでレンダリングしています。私が必要なのは、水面から水底までの距離に基づいた霧を作ることです。この距離を取得するにはどうすればよいですか?今のところ、カメラは常に水上にあると想定しています。

ここに画像の説明を入力してください

回答:


5

2番目のサーフェスまでの距離をレイトレースできます。これは概念的には最も簡単ですが、必ずしも最速の方法とは限りません*。

しかし、巧妙なトリックがあります。カメラから水面への深度マップをマルチパスレンダーできます。水中の距離は、ピクセル深度から深度マップ深度を引いたものになります。これは、水を出て後で再び入るときなど、すべての状況で機能するわけではありません。しかし、描かれているもののように、多くの場合動作するはずです。ブール演算にも同じ手法を使用できます。

dmap

画像1:深度マップをレンダリングし、池の底をシェーディングするときに深度マップを調べます。

※場合によります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.