リアルな氷をレンダリングする方法は?


45

Unityで、少なくとも半現実的な見栄えのアイスシェーダーを作成しようとしています。

次のショット(Googleで見つかった)がCGだった場合、そのシェーダーには何が含まれますか?(前景の洞窟)。私は間違っているかもしれませんが、デフォルトの拡散反射光とは異なる照明モデルさえ持っているようです。

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


これは、HLSLとC ++を使用したDirectX 11のチュートリアルです。たぶん、あなたは原則を収集することができます。また、画像がCGであることをどこで見ましたか?本物として報告されています。
マイケルハウス

そうだとは言わなかった。「もし」と言った。ありがとう!私はそれを確認します
ダニエルペンダーガスト

9
その現象は表面下散乱と呼ばれます。これは、光が材料の表面を透過し、材料自体の媒体を介して散乱するために発生します。たとえば、バックライトを当てると人間の耳が赤く見えるのはそのためです。 氷の効果を再現しようとする誰かの試みを説明するブログ投稿があります。

ああ、すみません、「if」を逃しました。
マイケルハウス

@ Byte56、問題なし
ダニエルペンダーガスト

回答:


53

氷は半透明であるため、現実的な結果を得るためにシェーダーでシミュレートする必要がある最も重要なことは、表面下散乱または略してSSSであると考えています。SSSは基本的に、光線が半透明のオブジェクトの表面を透過し、その下で散乱し、不規則な方法で複数回反射された後、最終的に別の場所を出る方法を説明します。

これが効果をうまく示していると思う写真です:

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

あなたの質問の写真から、氷は非常に反射的であることがわかります。したがって、おそらくそれを何らかの環境マッピングと組み合わせることもできますを反射用の、ハイライトを強化するためにスペキュラリティを調整することもできます。

また、少し屈折を追加したり、ある種のノイズテクスチャをオーバーレイして少し変化させたり、何らかのバンプマッピングを追加したり、、非常に小さく詳細なディスプレイスメントマッピングます。

資源

答えを書いている間に見つけた他のリソース:


また、アンビエントオクルージョン(en.wikipedia.org/wiki/Ambient_occlusion)を調べて、岩山の暗闇をシミュレートすることをお勧めします。これは、通常、影だけでは正しくならない場合があります。
-Koarl

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