在本篇,我们学习POV-Ray中摄像机的一些功能,来获得一些酷炫的效果
我们首先构建一幅场景:我们使用三个物体,一个底面;一个粉色球体,一个绿色正方体,一个蓝色柱体和一个黑白相间的地面。三个物体的位置信息如下:球体在前面,正方体在中间,柱体在后面。最后使用两个光源来完成场景。
上述场景代码如下:
#include "colors.inc"
#include "shapes.inc"
#include "textures.inc"
sphere {
<1, 0, -6>, 0.5
finish {
ambient 0.1
diffuse 0.6
}
pigment { NeonPink }
}
box {
<-1, -1, -1>, < 1, 1, 1>
rotate <0, -20, 0>
finish {
ambient 0.1
diffuse 0.6
}
pigment { Green }
}
cylinder {
<-6, 6, 30>, <-6, -1, 30>, 3
finish {
ambient 0.1
diffuse 0.6
}
pigment {NeonBlue}
}
plane {
y, -1.0
pigment {
checker color Gray65 color Gray30
}
}
light_source { <5, 30, -30> color White }
light_source { <-5, 30, -30> color White }
现在我们可以在场景中添加摄像机了,来达到模糊的效果。通过调整几个关键字的属性值,会获得不同效果(会移动模糊区域)
示例
camera
{
location <0.0,1.0,-10.0>
look_at <0.0,1.0,0.0>
focal_point <1,1,-6>//粉色球体
aperture 0.4
blur_samples 20
}
聚焦在粉色球体
修改 focal_point的值,使焦点落在不同物体上
focal_point < 0, 1, 0>
focal_point <-6,1,30>
aperture关键字,他的翻译是光圈,孔径。我们可以通过修改它的属性值,来获得,焦点距离我们物体的远近程度的效果,即,获得不同的聚焦效果。我们为他赋值越小,关注的区域就越大,反之,则小。
下面aperture的值为0.05时,三个物体都在焦点范围内,都能看清。
blur_samples关键字的作用是采样设置,很容易理解的是:采样点数越多,值越大,我们就可以获得质量/分辨率越高的图像,但相应的渲染时间就会长。合理设置该属性值,是一个折中的选择。
使用焦点模糊摄像机的几点注意:1.我们不需要在指定anti-aliasing,因为焦点模糊代码会使用它自己的采样方法,从而能够自动的考虑到抗锯齿问题。2.焦距模糊功能只能在透视摄像机上使用。