カメラと球の中心を通過する軸上に中実の円柱がある球を見ている Pov-Ray シーンがあります。レンダリングされたイメージの RGB 値は、円柱が占める領域で <89,89,89> です。これらのピクセルは不透明 (つまり、強度値が <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
}
編集:シリンダーを黒くする唯一の方法は、「違い」を使用して球体から切り取ることです。次に、円柱と一緒に差分オブジェクトを表示します。しかし、なぜ?2 つの固体オブジェクトの境界面は不透明であってはならないので、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
}
}