首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带阴影的Povray透明背景

带阴影的Povray透明背景
EN

Stack Overflow用户
提问于 2014-11-26 02:52:40
回答 2查看 2.8K关注 0票数 4

我想使用Pov-Ray来生成图片,这些图片可以在任何背景颜色的网站上使用。图片需要有一个透明的背景,但要有反射和阴影投射在透明的平面上。

在Pov-Ray (3.7)中,您可以通过在povray.ini文件中设置Output_Alpha=True并输出为png文件来设置背景透明。

甚至可以通过在平面(或任何其他对象)上使用颜色Clear来获得透明的反射曲面。但是,如果将对象的颜色设置为Clear,则不会在其上投射阴影。

在透明物体上投射阴影是可能的吗?

EN

回答 2

Stack Overflow用户

发布于 2015-08-27 16:47:58

您可以分别渲染阴影和对象,然后合并生成的图像,如here所示。

票数 3
EN

Stack Overflow用户

发布于 2019-01-15 20:09:26

m13r的technique suggested生成了非常好的渲染效果,但它需要3个渲染过程,并且每个过程都需要对场景进行大量更改。这需要时间,并且需要相当多的设置。

对于某些情况,更简单、更诚实的方法只需两次通过即可获得更好的结果。将背景和地平面设置为白色,渲染,将它们设置为黑色,再次渲染。假设您在此处切换设置,并使用这些灯光定义中的一个或另一个生成两个文件white.pngblack.png

代码语言:javascript
复制
//#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提取两幅图像的差异。

代码语言:javascript
复制
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

此方法的缺点是场景照明的灵活性较低,并且不能假装反射离地平面的任何东西。如果您的对象足够粗糙,不会受到场景背景颜色的严重影响,则此方法可能适合您。在我的例子中,它节省了一次耗时的渲染过程和大量的场景对象操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27134461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档