我想使用Pov-Ray来生成图片,这些图片可以在任何背景颜色的网站上使用。图片需要有一个透明的背景,但要有反射和阴影投射在透明的平面上。
在Pov-Ray (3.7)中,您可以通过在povray.ini文件中设置Output_Alpha=True并输出为png文件来设置背景透明。
甚至可以通过在平面(或任何其他对象)上使用颜色Clear来获得透明的反射曲面。但是,如果将对象的颜色设置为Clear,则不会在其上投射阴影。
在透明物体上投射阴影是可能的吗?
发布于 2015-08-27 16:47:58
您可以分别渲染阴影和对象,然后合并生成的图像,如here所示。
发布于 2019-01-15 20:09:26
m13r的technique suggested生成了非常好的渲染效果,但它需要3个渲染过程,并且每个过程都需要对场景进行大量更改。这需要时间,并且需要相当多的设置。
对于某些情况,更简单、更诚实的方法只需两次通过即可获得更好的结果。将背景和地平面设置为白色,渲染,将它们设置为黑色,再次渲染。假设您在此处切换设置,并使用这些灯光定义中的一个或另一个生成两个文件white.png和black.png。
//#declare SceneLight = rgb<1,1,1>
#declare SceneLight = rgb<0,0,0>
background { color SceneLight }
plane {
y, 0
pigment {
color SceneLight
}
}现在使用the two background technique documented here提取两幅图像的差异。
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此方法的缺点是场景照明的灵活性较低,并且不能假装反射离地平面的任何东西。如果您的对象足够粗糙,不会受到场景背景颜色的严重影响,则此方法可能适合您。在我的例子中,它节省了一次耗时的渲染过程和大量的场景对象操作。
https://stackoverflow.com/questions/27134461
复制相似问题