为什么通过相机的固体物体的强度不是< 0,0,0>?

时间:2016-11-03 23:42:38

标签: povray

我有一个Pov-Ray场景,看着一个球体,在轴上有一个实心圆柱体,穿过相机和球体中心。渲染图像具有&lt; 89,89,89&gt;的rgb值。在实心圆筒占据的区域。这些像素不应该是不透明的(即强度值<0,0,0>)?如果实际上标枪在这些像素处刺穿CCD芯片,光线如何到达这些像素?是因为球体和圆柱体占据相同的空间?这是脚本。我正在尝试测量各种物体和光源的对比度,所以我需要正确的灰度级。我究竟做错了什么?我使用以下开关运行脚本:

pvengine.exe file.pov -W1000 -H1000  Antialias_Threshold=0.0

#version 3.7;
#include "colors.inc"    // The include files contain
#include "textures.inc"    // pre-defined scene elements
#include "shapes.inc"
global_settings { assumed_gamma 1.0 }
background { color Black }

camera {
  orthographic
  location <2.43875, 12.26, 0.>
  look_at  <0, 0, 0>
  sky      <0, 0, 1>
  right    <-1, 0, 0>
  angle    1.2
 }

#declare sph = sphere {
  <0, 0, 0>, 1
  texture { pigment { color White }}
  finish  { diffuse albedo .3 }
}

#declare cyl = cylinder {
  <0.,0., 0.>,      // Center of one end
  <195.277, 981.69, 0.>,     // Center of other end
  0.01  // Radius
  color Black
no_image}                                   

#declare LS1 = light_source {
    <-1.5955, 2.38744, -0.323932>
    color rgb<0.065,0.065,0.065> 
    area_light <-1.37019, -0.915683, 0.>, <0., 0., 2.36> 3, 3
    circular
    area_illumination on 
}


light_group {
  light_source {LS1}
  cyl
  sph    
  global_lights off
}

编辑:我发现使圆柱体变黑的唯一方法是使用“差异”将其切割出球体。然后显示差异对象和圆柱体。但为什么?两个实体对象的界面不应该是不透明的,因此rgb 0,0,0?

#declare chopped =  difference {
  sphere {
    <0, 0, 0>, 1
    finish  { diffuse albedo .3 }
    texture { pigment { color White }}
    color White
  }  

  cylinder {
    <0.,0., 0.>,      // Center of one end
    <195.277, 981.69, 0.>,     // Center of other end
    0.01  // Radius
  }              
}

0 个答案:

没有答案