Povray透明背景带阴影

4
我想使用Pov-Ray生成可用于任何背景颜色的网站图片。这些图片需要具有透明背景,但在透明平面表面上反射和投影阴影。在Pov-Ray(3.7)中,您可以通过在povray.ini文件中设置Output_Alpha=True并输出为png文件来设置背景透明。您甚至可以使用Clear颜色在平面上(或任何其他对象上)获得透明反射表面。但是,如果将对象的颜色设置为Clear,则不会对其投射阴影。是否可能在透明对象上投射阴影?
2个回答

3
您可以分别渲染阴影和物体,并将生成的图像合并,如此处所示。

0

技巧 建议 by m13r 产生非常好的渲染效果,但每次需要进行三次渲染和对场景进行大量更改。这需要时间并且需要相当多的设置。

只需两次渲染即可获得更简单且在某些情况下更好的结果。将背景和地面平面都设置为白色,渲染,然后将它们设置为黑色,再次渲染。假设您在此处切换设置并使用其中一种光定义生成两个文件white.pngblack.png

//#declare SceneLight = rgb<1,1,1>
#declare SceneLight = rgb<0,0,0>
background { color SceneLight }
plane {
    y, 0
    pigment {
        color SceneLight
    }
}

现在,使用这里记录的两个背景技术,提取这两个图像之间的差异。
magick black.png white.png -alpha off \
    \( -clone 0,1 -compose difference -composite -negate \) \
    \( -clone 0,2 +swap -compose divide -composite \) \
    -delete 0,1 +swap -compose CopyOpacity -composite \
    transparent.png

这种方法的缺点是你对场景照明的灵活性较小,也无法假装从地面反射任何东西。如果你的物体足够哑光,不会受到场景背景颜色的严重影响,那么这种方法可能适合你。在我的情况下,它节省了一次耗时的渲染过程和大量的场景对象操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接