如何渲染逼真的冰?


45

我试图在Unity中编写一个看起来很好并且至少是半现实的冰着色器。

如果以下快照(在Google上找到)是CG,其着色器将包括哪些内容?(前景洞穴)。我可能是错的,但看起来它甚至具有与默认漫反射不同的照明模型。

在此处输入图片说明


是使用HLSL和C ++的DirectX 11教程。也许您可以搜集原则。另外,您在哪里看到图像是CG?据报道是真实的。
MichaelHouse

我不是那样说的。我说“如果”是。谢谢!我会检查一下
Daniel Pendergast

9
这种现象称为地下散射。这是因为光会穿透材料的表面并通过材料本身的介质进行散射。例如,这就是为什么人的耳朵在背光时看起来红色。 这是一篇博客文章,解释了某人用它重新制作冰块效果的尝试。

啊,对不起,我错过了“如果”。
MichaelHouse

@ Byte56,没问题
Daniel Pendergast

Answers:


53

冰是半透明的,因此我认为要获得逼真的效果,必须在着色器中模拟的最重要的事情就是地下散射或简称SSS。SSS基本上描述了光线如何穿透半透明物体的表面并在其下方散射,并以不规则的方式多次反射,最后才通过另一个位置出射。

我认为这是一张很好地展示效果的图片:

在此处输入图片说明

从问题中的图片中,我们还可以看到冰是反射性很强的,因此您可能还需要将其与某种环境映射结合起来以进行反射,还可以增强镜面反射度以增强亮点。

您还可以尝试其他操作,例如添加一些折射,覆盖某种噪声纹理以添加一些变化,甚至可以使用一些凹凸贴图位移贴图来处理非常小的和微妙的细节。

资源资源

我在写答案时发现的其他一些资源:


您可能还想研究环境光遮挡(en.wikipedia.org/wiki/Ambient_occlusion)来模拟岩壁中的变暗现象,因为通常很难仅使用阴影来纠正它。
Koarl 2012年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.