10. ラジオシティ
夜間の照明された室内を考えると、照明から直接に光があたっていない部分でも真っ暗ということはない。これは照明から出た光が室内のあらゆる場所で無限に反射を繰り返した結果、このような明るさが生じている。このような反射は相互反射と呼ばれ、生じた光は一般的に照明などの分野では間接光と呼ばれている。
ラジオシティでは計算点からシーン全体に光線を射出し、計算点から各物体部分の見える割合を求め相互反射による間接光の明るさを計算している。ラジオシティを使わない場合は、間接光は環境光として一定値を与えることができる。
ラジオシティの計算では、環境光が設定されていても実質的に無いものとされる。計算には物体(オブジェクト)の拡散反射率 diffuse が使われる。POV-Rayでは物体の拡散反射率は、デフォルトで diffuse=0.6 に設定されている。物体の作成で拡散反射率を省略すると、すべて 0.6 が使用される。ラジオシティの計算時に、物体に環境光のような明るさを与えたいときには emission を使う。
< radiosity の構文 >
global_settings {
radiosity {
[ adc_bailout FLOAT ]
[ always_sample on|off ]
[ brightness FLOAT ]
[ count INT ]
[ error_bound FLOAT ]
[ gray_threshold FLOAT ]
[ low_error_factor FLOAT ]
[ max_sample FLOAT ]
[ media on|off ]
[ maximum_reuse FLOAT ]
[ minimum_reuse FLOAT ]
[ nearest_count INT ]
[ normal on|off ]
[ pretrace_start FLOAT ]
[ pretrace_end FLOAT ]
[ recursion_limit INT ]
[ subsurface on|off ]
}
}
|
radiosity |
ラジオシティのキーワード |
adc_bailout FLOAT |
ラジオシティの反射計算の精度の設定 [デフォルト:0.01 ] ▷「4.1 ADC_bailout」参照 |
always_sample on|off |
ラジオシティ終了時のサンプル収集スイッチ [デフォルト:off ] |
brightness FLOAT |
ラジオシティにおいて全体の輝度を調整するための値 [デフォルト:1.0 ] |
count INT |
サンプル点のラジオシティを計算するための光線数の設定、最大値は1600 [デフォルト:35 ] |
error_bound FLOAT |
サンプル領域の調整値 [デフォルト:1.8 ] |
gray_threshold FLOAT |
ラジオシティによる光の色の調整割合、0~1 の間で設定し、その割合だけ灰色値と置き換えられる。 [デフォルト:0 ] ▷「4.7 max_trace_level」参照 |
low_error_factor FLOAT |
プレビューにおけるerror_boundの調整値、プレビュー時に設定した値がerror_bound値に乗ぜられる。 [デフォルト:0.5 ] |
max_sample FLOAT |
サンプルの最大輝度の設定 |
media on|off |
ラジオシティ計算でメディアを有効にするスイッチ [デフォルト:off ] |
maximum_reuse FLOAT |
画素におけるラジオシティのサンプル値の再利用割合上限の設定、スクリーン幅に対する割合 [デフォルト:0.2 ] |
minimum_reuse FLOAT |
画素におけるラジオシティのサンプル値の再利用割合下限の設定、スクリーン幅のに対する割合 [デフォルト:0.015 ] |
nearest_count INT |
ラジオシティの平均値計算に使用する計算点近傍のサンプル値の最大数(整数値) [ディフォルト:5 ] |
normal on|off |
ラジオシティ計算で法線ベクトルを有効にするスイッチ [デフォルト:off ] |
pretrace_start FLOAT |
プレビュー開始のモザイクブロックのサイズ割合、0.0~1.0 の範囲 [デフォルト:0.08 ] |
pretrace_end FLOAT |
プレビュー終了のモザイクブロックのサイズ割合、0.0~1.0 の範囲 [デフォルト:0.04 ] |
recursion_limit INT |
ラジオシティ計算における再帰レベルの設定、最大値は 20 [デフォルト:2 ] |
subsurface on/off |
半透明物体などで発生する光の表面下散乱の設定 [デフォルト:off ] |
(注意)ラジオシティは実験的な実装のため、バージョンが変わると記述方法や機能に互換性がなくなる可能性が強い。POV-Ray3.1、POV-Ray3.5、POV-Ray3.7とバージョンアップの際に、大幅な変更があり下位互換性は失われている。従って、古いソースを使用すると結果が異なることがある。
※ ラジオシティは、グローバル設定にラジオシティ文を記述すると使用できる。
※ ラジオシティをデフォルト設定で使用するときは、空のラジオシティ文を記述する。
global_settings {
radiosity { }
}
上記の空のラジオシティ文と下記の記述は同等である。下記の文は設定のディフォルト値を具体的に記述したもので、自分でパラメータを設定するときには、下記を意識して変更を考える。
global_settings {
radiosity {
adc_bailout 0.01
always_sample off
brightness 1.0
count 35
error_bound 1.8
gray_threshold 0.0
low_error_factor 0.5
media off
maximum_reuse 0.2
minimum_reuse 0.015
nearest_count 5
normal off
pretrace_start 0.08
pretrace_end 0.04
recursion_limit 2
}
}
最適な設定はシーンや目的画質により異なり、これが最適値というものを示すことは難しい。(最適な設定とは、同等画質であれば計算時間が短い設定をいう。)以下にラジオシティの画像例をいくつか示すが、ここで使われている設定は一例であり、これが最適だということではない。
10.1 ラジオシティ画像
ラジオシティに関する各種の設定パラメータが多く準備され、それぞれの設定値により画質が決定される。すべて高画質になるような値が設定できればよいが、設定値によっては計算時間は大幅に長くなったりする。また、パラメータ同士の設定値バランスも画質に影響してくる。
10.1-1 室内の光
次にデフォルト設定により計算したラジオシティ画像とラジオシティを使用していない画像を示す。コーネルボックスに似せて作成したシーンを使用した。天井中央に面光源があり、部屋の中にはボックスが2つある。
 |
 |
(a) ラジオシティ有り |
(b) ラジオシティ無し |
図10.1-1 室内照明のラジオシティ |
 |
図10.1-1 (a) ラジオシティ有りは、室内における相互反射を計算している。全体的にやわらかい陰影があり、天井は反射光で明るくなっており、赤色や緑色の壁からの反射光が部屋にあるボックスに映りこんでいる様子が表現されている。
一方、図10.1-1 (b) ラジオシティ無しは、面光源による直接光の計算のみ行い、間接光である相互反射を計算はしていない。天井は部屋や床などからの反射光が考慮されていないため、真っ暗になっている。関節光による陰影がないため、全体的に硬いイメージである。
//----------------- Fig. 10.1-1a radiosity
// screen size :
// command line Input
// +W384 +H384 +A
//
#version 3.7
#include "colors.inc"
//======================= radisity setting
global_settings {
assumed_gamma 2.2
radiosity {
pretrace_start 0.08
pretrace_end 0.01
count 200
nearest_count 10
error_bound 1
recursion_limit 3
low_error_factor 0.5
gray_threshold 0.0
minimum_reuse 0.005
maximum_reuse 0.2
brightness 1
adc_bailout 0.005
}
}
//---------------------camera
camera{
location< 5,-20, 5>
sky<0,0,1>
right <-image_width/image_height,0,0>
look_at<5,5,5>
angle 30
}
//-----------------------------light
#declare LC=rgb<1,0.9,0.8>;
light_source {
<5,5,9.85> LC*2
area_light<2,0,0>,<0,2,0>, 10,10
jitter
looks_like{
box{ 0 1 scale <2,2,0.05>
pigment{color LC*4}
translate<-1,-1,0> }
}
}
//-----------------light frame
difference {
box{ 0 1 scale <2.2,2.2,0.5>}
box{ 0 1 scale <2,2,0.7>
translate <0.1,0.1,-0.1>}
pigment {color White*0.5}
translate<3.9,3.9,9.8>
}
//----------------------------------room
#declare Fin_w = finish{diffuse 0.7}
#declare Fin_R = finish{diffuse 0.2}
#declare Fin_G = finish{diffuse 0.4}
#declare WW = rgb 0.7;
#declare RR = rgb<0.84,0.12,0.24>*1.2;
#declare GG = rgb<0,0.59,0.33>*1.2;
//---floor & ceiling
box{ 0 1 scale <12,11,1>
texture{ Fin_w pigment{WW}}
translate<-1,0,-1>
}
box{ 0 1 scale <12,11,1>
texture{ Fin_w pigment{WW}}
translate<-1,0,10>
}
//----back wall
box{ 0 1 scale <12,1,12>
texture{ Fin_w pigment{WW}}
translate<-1,10,-1>
}
//----side walls
box{ 0 1 scale <1,11,12>
texture{Fin_R pigment{RR}}
translate<-1,0,-1>
}
box{ 0 1 scale <1,11,12>
texture{Fin_G pigment{GG}}
translate<10,0,-1>
}
//------------------------object in room
box{ 0 1 scale <3.5,3.5,6>
texture{Fin_w pigment{White}}
rotate z*20
translate<2.3,4,0>
}
box{ 0 1 scale <3,3,3>
texture{Fin_w pigment{White}}
rotate z*-25
translate<5.2,2.5,0>
}
//----------------- Fig. 10.1-1b no radiosity
// screen size :
// command line Input
// +W384 +H384 +A
//
#version 3.7
#include "colors.inc"
//======================= no radisity
global_settings {
assumed_gamma 2.2
}
//---------------------camera
camera{
location< 5,-20, 5>
sky<0,0,1>
right <-image_width/image_height,0,0>
look_at<5,5,5>
angle 30
}
//------------------------light
#declare LC=rgb<1,0.9,0.8>;
light_source {
<5,5,9.85> LC*2
area_light<2,0,0>,<0,2,0>, 10,10
jitter
looks_like{
box{ 0 1 scale <2,2,0.05>
pigment{color LC*4}
translate<-1,-1,0> }
}
}
//----light frame
difference {
box{ 0 1 scale <2.2,2.2,0.5>}
box{ 0 1 scale <2,2,0.7>
translate <0.1,0.1,-0.1>}
pigment {color White*0.5}
translate<3.9,3.9,9.8>
}
//----------------------------------room
#declare Fin_w = finish{diffuse 0.7}
#declare Fin_R = finish{diffuse 0.2}
#declare Fin_G = finish{diffuse 0.4}
#declare WW = rgb 0.7;
#declare RR = rgb<0.84,0.12,0.24>*1.2;
#declare GG = rgb<0,0.59,0.33>*1.2;
//---floor & ceiling
box{ 0 1 scale <12,11,1>
texture{ Fin_w pigment{WW}}
translate<-1,0,-1>
}
box{ 0 1 scale <12,11,1>
texture{ Fin_w pigment{WW}}
translate<-1,0,10>
}
//----back wall
box{ 0 1 scale <12,1,12>
texture{ Fin_w pigment{WW}}
translate<-1,10,-1>
}
//----side walls
box{ 0 1 scale <1,11,12>
texture{Fin_R pigment{RR}}
translate<-1,0,-1>
}
box{ 0 1 scale <1,11,12>
texture{Fin_G pigment{GG}}
translate<10,0,-1>
}
//------------------------object in room
box{ 0 1 scale <3.5,3.5,6>
texture{Fin_w pigment{White}}
rotate z*20
translate<2.3,4,0>
}
box{ 0 1 scale <3,3,3>
texture{Fin_w pigment{White}}
rotate z*-25
translate<5.2,2.5,0>
}
10.1-2 屋外の光
屋外の環境下で、ラジオシティを使った例を示す。屋外の光環境は大きく分けて2つの照明がある。1つは太陽からの直射日光、もう一つは空全体からの天空光がある。この他には地面や建物などからの反射光もある。晴天の日は直射日光が大変強く感じるが、曇った日はほとんど天空光ばかりとなる。Pov-RAYでは直射日光は平行光線 parellel を使って通常の計算でできるが、天空光による柔らかな陰影は、ラジオシティを使わないで計算するのは難しい。
次の図10.2-1 (a) は、屋外に設置されたオブジェで、直射日光のない曇り空の画像である。ラジオシティにより天空光がもたらす陰影が表現されている。
 |
図10.2-1 (a) 曇り空のオブジェ |
//------------------ Fig. 10.1-2a outside (cloudy)
#version 3.7
#include "colors.inc"
#include "textures.inc"
//==================== radiosity
global_settings {
assumed_gamma 2.2
radiosity {
pretrace_start 0.08
pretrace_end 0.01
count 500
nearest_count 10
error_bound 0.05
low_error_factor 0.5
minimum_reuse 0.005
maximum_reuse 0.2
brightness 1
adc_bailout 0.005
}
}
//------------------------camera
camera{
location<15,-20, 9>
sky<0,0,1>
right <-image_width/image_height,0,0>
look_at<4,5,3>
angle 50
}
//===================================== sky and fog
#declare Clouds=
pigment{
wrinkles
color_map{
[0.3 color rgb<0.3,0.4,1>]
[0.8 White]
}
scale <1,0.2,0.2>
}
sky_sphere{
pigment{Clouds}
emission rgb <1,1,0.8>*1.3 // <<<------- emission
}
fog{ fog_type 2
distance 300
color White*0.8
fog_offset 0.1
fog_alt 1.0
turbulence 0.5
rotate x*90
}
//============================================= object
#declare bbb = box{ 0 1 scale <2,2,10> }
object{bbb pigment{rgb<1,0.2,0.2>*1.3} translate<-1,-1,0>}
object{bbb pigment{rgb<1,1,0.2>*1.3} translate<-1,9,0>}
object{bbb pigment{rgb<0.2,1,0.2>*1.3} translate<9,-1,0>}
object{bbb pigment{rgb<0.2,0.2,1>*1.3} translate<9,9,0>}
box{ 0 1 scale <10,10,2>
pigment {color rgb <1,1,1>*1.7}
translate<0,0,6.5>
}
box{ 0 1 scale <2,3,2>
pigment {color rgb <1,1,1>*1.7}
translate<5.5,-2,0>
}
box{ 0 1 scale <17,19,0.5>
pigment {color rgb <1,1,1>*1.7}
translate<-4,-4,0>
}
//-------------------------------------ground
#declare T1=
texture{
pigment{
bozo
color_map{
[0.0 color rgb<1,0.8,0.5>*1.7]
[0.6 color rgb<0.6,0.8,0.3>*1.4]}
scale 0.24
}
}
plane{z 0 texture{ T1 scale 10} }
次の図10.1 (b) は、晴天時の日光による室内への影響を表している。窓から室内に入っている光は、直射日光、天空光、地面からの反射光などである。これらの光が室内で相互反射をして、室内全体が明るくなっている。
 |
図10.1-2 (b) 直射日光や天空光が入る室内 |
//------------ Fig. 10.1-2b room with clear sky
#version 3.7
#include "colors.inc"
#include "textures.inc"
//==================== radiosity
global_settings {
assumed_gamma 2.2
radiosity {
pretrace_start 0.08
pretrace_end 0.01
count 500
nearest_count 10
error_bound 0.05
low_error_factor 0.5
minimum_reuse 0.005
maximum_reuse 0.2
brightness 1.1
adc_bailout 0.005
}
}
//------------------------camera
camera{
location<7.5,6.5,2.0>
sky<0,0,1>
right <-image_width/image_height,0,0>
look_at<5,2,1>
}
light_source{
<-0, -30, 20>,
color White*1.6
parallel
point_at <4,3,0>
}
//================================sky and fog
#declare Clouds=
pigment{
wrinkles
color_map{
[0.5 color rgb<0.3,0.4,1>]
[0.95 White]
}
scale 0.3
}
sky_sphere{
pigment{Clouds }
emission rgb <1.5,1.5,1.2>*0.9 // <<<-----emission
}
fog{ fog_type 2
distance 300
color White*0.8
fog_offset 0.1
fog_alt 1.0
turbulence 0.5
rotate x*90
}
//==================================== room
#declare ttt=
texture{ pigment{White*1.9}
finish{diffuse 0.8} }
#declare slab = box{ 0 1 scale <10,9,0.5>}
#declare wall_b = box{ 0 1 scale <1,7,3>}
#declare wall_c = box{ 0 1 scale <10,1,3>}
#declare wall_a = difference{
box{ 0 1 scale <10,1,3> }
box{ 0 1 scale <4,2,1.5>
translate<3,-0.5,1> }
}
union{
object{wall_a translate<0,-1,0>}
object{wall_a translate<0,7,0>}
object{wall_b translate<0,0,0>}
object{wall_b translate<9,0,0>}
object{slab translate<0,-1,-0.4>}
object{slab translate<0,-1,3>}
texture{ttt}
}
//---------------------------ground
#declare T2=
texture{
pigment{
bozo
color_map{
[0.0 color rgb<1,0.8,0.5>]
[0.6 color rgb<0.6,0.8,0.3>]}
}
finish{diffuse 0.7}
}
plane{z 0 texture{T2} }
10.2 パラメータ設定
ラジオシティには様々なパラメータがある。各パラメータの適切な設定は、POV-Rayのラジオシティ法を詳しく理解していないと難しい。パラメータ設定値により画質や計算時間は大幅に違ってくる。ここでは主要なパラメータの概要や設定値の違いによる影響例を示す。
図10.1 (a) 室内のラジオシティ の画像を基本とし、同じモデルを用い、パラメータの設定値を変更した画像を示す。その違いを 図10.1 (a) との差分のモノクロ画像で示す。差分画像の明るい部分ほど 図10.1 (a) の画像との差が大きいことを示している。
10.2-1 全体輝度(brigthness)
ラジオシティ計算におけるシーン全体の輝度調整を行う。通常の場合のambient_lightに相当するものである。設定する値により全体のラジオシティの強さが調節される。設定値0はラジオシティ計算を行わない場合と同じになる。デフォルトは1.0で、調整無しである。
下図10.2-1は、図10.1-1 (a) の設定 brigthness を 1 から 1.2 に変更した。ほぼ全体的が明るくなっている。
 |
 |
(a) brigthness 1.2 |
(b) 差分画像 |
図10.2-1 brigthness を 1 から 1.2 に変更 |
 |
10.2-2 光線数(count)
サンプル点におけるラジオシティ計算のために発射する光線の数である。一般的に多ければ多いほど計算が正確になる。設定できる最大値は1600で、デフォルトは35である。
下図10.2-2 は、図10.1-1 (a) の設定 count 200 を count 10 に変更したものである。光線数が少なくなったため、天井の陰影や、室内のボックスの陰影が異なっているが、差はそれほと大きくない。
 |
 |
(a) count 10 |
(b) 差分画像 |
図10.2-2 count を 200 から 10 に変更 |
 |
10.2-3 エラー境界値(error_bound)
サンプル点をとる割合の設定をする。値が小さいほど細かくサンプル点が取られるので計算が正確になり、エラーが軽減する。デフォルトは1.8である。半影部分の計算においては、この値ではサンプル点が荒すぎて、リアルな影が得られにくいようである。
下図10.2-3は、図10.1-1 (a) の設定 error_bound 1 を 4 に変更したものである。相互反射に影響が大きいようである。
 |
 |
(a) error_bound 4 |
(b) 差分画像 |
図10.2-3 error_bound を 1 から 4 に変更 |
 |
10.2-4 無彩色割合(gray_threshold)
ラジオシティは相互反射の計算をするので、各面の明るさが互いに影響し合う。このため、近接する面の色が互いの面に反映する色の映り込みが発生する。gray_thresholdは色の映り込みの割合を調整する。0~1の範囲で設定する。計算されたラジオシティにおいて、設定された割合を無彩色(灰色)とする。1.0を設定するとその色の映り込みがある場合と同等の明るさの無彩色となる。デフォルトは0.0である。
下図10.2-4 (a) は、図10.1-1 (a) 設定 gray_threshold 0 を 0.5 に変更したものである。映り込んた色の50%を無彩色に置き換えている。壁から室内にあるボックスへの映り込みに影響が出ている。
 |
 |
(a) gray_threshold 0.5 |
(b) 差分画像 |
図10.2-4 gray_threshold を 0 から 0.5 に変更 |
 |
10.2-5 再利用の境界値(minimum_reuse)
サンプル点の計算済みの値を再利用するための、境界の最小半径を設定する。この値が小さすぎると滑らかな陰影変化が得られにくくなり、逆に大きすぎると陰影の変化が乏しくなり本来あるはずの陰影が表現されなかったりする。値はスクリーン幅の割合で設定する。デフォルト値は0.015である。
10.2-6 平均点の最小数(nearest_count)
ある点のラジオシティは、その近傍のサンプル点を平均してその値を得る。nearest_count はそれらの平均するサンプル点の最小数を設定する。平均に使用する点数が実際にいくつになるかは error_bound に依存している。
下図10.2-6 は、図10.1-1 (a) の設定を error_bound 4、nearest_count 1 に変更したものである。天井や部屋奥のボックスに入射する反射光に影響がでている。
 |
 |
(a) nearest_count 1 と error_bound 4 |
(b) 差分画像 |
図10.2-6 nearest_count 10 と error_bound 1 を変更 |
 |
10.2-7 予備計算(pretrace)
モザイクプレビュー時のモザイクの大きさを画面に対する割合で設定する。このラジオシティ計算値は、本計算時の平均計算に再利用される。このため設定値は画質に影響を及ぼすことに注意する。0~1の範囲で設定する。デフォルト値は、pretrace_start(開始値)が0.08、pretrace_end(終了値)が0.04である。
下図10.2-7 は、図10.1-1 (a) の設定を pretrace_start 0.1 pretrace_end 0.06 に変更したものである。天井や2つのボックスの陰影に影響がでている。
 |
 |
(a) pretrace start 0.1 と end 0.06 |
(b) 差分画像 |
図10.2-7 pretrace start 0.08 と pretrace end 0.01 を変更 |
 |
10.2-8 相互反射回数/再帰限度(recursion_limit)
相互反射に関する繰り返し回数を設定する。設定できる値は1~20の範囲であり、1次反射から20次反射に対応しているものと思われる。値が大きいほど正確になる。他の値の設定にもよるが、POV-Rayではデフォルトの 2 で十分である。
下図10.2-8 は、図10.1-1 (a) の設定を recursion_limit 1 に変更したものである。相互反射の計算回数が少ないため、全般的に少し暗くなっている。
 |
 |
(a) recursion_limit 1 |
(b) 差分画像 |
図10.2-8 recursion_limit 2 を recursion_limit 1 に変更 |
 |
10.3 ラジオシティとフォトンマッピングの併用
次に、ラジオシティとフォトンマッピングを同時に使用した例を示す。図10-1 (a) のコーネルボックスに黄色のガラス球を追加した。ガラス球からの反射光が室内各所に到達している。この画像では部屋奥のボックスにガラス球からの反射光が到達していることがわかる。
 |
 |
(a) radiosity + photon |
(b) 差分画像 |
図10.3 ラジオシティとフォトンマッピングを併用 |
 |
ラジオシティとフォトンマッピングを両方使用するときは、グローバル設定に、ラジオシティとフォトンのブロック文を記述する。またフォトンを射出する必要がある物体(ここではガラス球)には、フォトン文を記述する。光源は、面光源の場合のみフォトン文を記述する。
//--------- Fig. 10.3 radiosity + photn mapping
// screen size :
// command line Input
// +W384 +H384 +A
//
#version 3.7
#include "textures.inc"
#include "colors.inc"
//==================== radiosity and photn
global_settings {
assumed_gamma 2.2
radiosity {
pretrace_start 0.08
pretrace_end 0.01
count 200
nearest_count 10
error_bound 1
recursion_limit 3
low_error_factor 0.5
gray_threshold 0.0
minimum_reuse 0.005
maximum_reuse 0.2
brightness 1.0
adc_bailout 0.005
}
photons{ spacing 0.01
count 500000
}
}
//---------------------camera
camera{
location< 5,-20, 5>
sky<0,0,1>
right <-image_width/image_height,0,0>
look_at<5,5,5>
angle 30
}
//---------------------light
#declare LC=rgb<1,0.9,0.8>;
light_source {
<5,5,9.85> LC*2
area_light<2,0,0>,<0,2,0>, 10,10
jitter
photons{ area_light }
looks_like{
box{ 0 1 scale <2,2,0.05>
pigment{color LC*4}
translate<-1,-1,0> }
}
}
//----light frame
difference {
box{ 0 1 scale <2.2,2.2,0.5>}
box{ 0 1 scale <2,2,0.7>
translate <0.1,0.1,-0.1>}
pigment {color White*0.5}
translate<3.9,3.9,9.8>
}
//---------------------------room
#declare Fin_w = finish{diffuse 0.7}
#declare Fin_R = finish{diffuse 0.2}
#declare Fin_G = finish{diffuse 0.4}
#declare WW = rgb 0.7;
#declare RR = rgb<0.84,0.12,0.24>*1.2;
#declare GG = rgb<0,0.59,0.33>*1.2;
//---floor & ceiling
box{ 0 1 scale <12,11,1>
texture{ Fin_w pigment{WW}}
translate<-1,0,-1>
}
box{ 0 1 scale <12,11,1>
texture{ Fin_w pigment{WW}}
translate<-1,0,10>
}
//----back wall
box{ 0 1 scale <12,1,12>
texture{ Fin_w pigment{WW}}
translate<-1,10,-1>
}
//----side walls
box{ 0 1 scale <1,11,12>
texture{Fin_R pigment{RR}}
translate<-1,0,-1>
}
box{ 0 1 scale <1,11,12>
texture{Fin_G pigment{GG}}
translate<10,0,-1>
}
//---------------------------object
box{ 0 1 scale <3.5,3.5,6>
texture{Fin_w pigment{White}}
rotate z*20
translate<2.3,4,0>
}
box{ 0 1 scale <3,3,3>
texture{Fin_w pigment{White}}
rotate z*-25
translate<5.2,2.5,0>
}
//--------------------------glass sphere
sphere{<2.5,2.2,2>,1.2
material{M_Yellow_Glass}
photons{
target
collect off
refraction on
reflection on
}
}
10.4 物体のラジオシティ設定
小さくても明るい物体は影響が大きいのに正確に捉えることは難しい。それを改善するために、物体に importance を記述したり、また、大きくても暗い物体は no_radiosity 記述で計算対象から外したりして計算の効率改善が考えられている。
object{
.....
[ importance FLOAT ] |
[ no_radiosity ]
}
|
object |
物体、例)box, sphere cylinder など |
importance FLOAT |
ラジオシティ計算の重要度 0-1.0 の値 [デフォルト:0 ] |
no_radiosity |
ラジオシティ計算対象外 |
(End) 10.ラジオシティ