8. メディア


8. メディア

メディア(media)は、水や空気に浮いている微粒子(霧、霞、塵など)を表現するときに使用する。この効果の計算にはモンテカルロ法などが使用されている。メディアには、次の2種類がある。


  大気メディア

     大気効果を指定するためのメディアを意味し、霧、ちり、もや、目に見えるガス

     などの効果を表現することができる。また、スポットライトなどの光線を目に見

     える状態にすることも可能である。
  物体メディア      物体内部に適用するメディアであり、インテリアの一部分として使用する。メデ      ィアそのものの機能は大気メディアと同じである。物体メディアを使用するとき      は、物体の中身を空の状態(hollow)にしておく必要がある。物体の中が中空で      大気が存在する状態のときに、物体メディアが使用できる。物体を透明や半透明      にすると、外から見ることができるので物体メディアの効果が確認しやすい。

< media の構文>


 media { 

    [ MEDIA_IDENTIFIER ] 

    scattering { TYPE, COLOR [eccentricity VALUE]  [extinction VALUE] }  

        | absorption COLOR 

        | emission COLOR 

    [ method NUMBER ]

    [ intervals NUMBER ]

    [ samples MIN, MAX ]

    [ confidence VALUE ]

    [ variance VALUE ]

    [ ratio VALUE ]

    [ aa_level VALUE ] 

    [ aa_threshold VALUE ]

    [ density{ [DENSITY_IDENTIFIER]  [PATTERN_TYPE]  [DENSITY_MODIFIER...] } ]

    [ TRANSFORMATIONS ]

 }   

media
メディアを宣言するキーワード
MEDIA_IDENTIFIER
識別子の名前を設定する。(40文字以下)
scattering
透過光を散乱させる設定する。[デフォルト:散乱なし] ⇒「8.1 散乱」
absorption COLOR
メディアが吸収する光の色を設定する。[デフォルト:<0,0,0> ] ⇒「8.2 吸収」
emission COLOR
メディアの微粒子から発光する光の色を設定する。[デフォルト:<0,0,0> ] ⇒「8.3 発光」
method NUMBER
サンプリング方法の指定、1、2、3の3タイプから選択 [デフォルト:3 ]
intervals NUMBER
区間の数を設定する。整数値で指定する。[デフォルト:10 ] ⇒「8.4-1 区間数」
samples MIN, MAX
各区間におけるサンプルの数を設定する。最小値、最大値を整数で指定する。[デフォルト:samples 1,1 ] ⇒「8.4-2 サンプル数
confidence VALUE
信頼度の設定で、0〜1の範囲で指定する。[デフォルト:0.9 ]
variance VALUE
分散を設定する。[デフォルト値:1.0/128 ]
ratio VALUE
照明区間数と非照明区間数の配分比率を設定する。[デフォルト:0.9 ] ⇒「8.4-3 区間数比」
aa_level VALUE
アンチエイリアシングの再帰深さの指定 [デフォルト:4 ]
aa_threshold VALUE
アンチエイリアシング閾値の指定 [デフォルト:0.4 ]
density
メディアの密度を設定する。パターンタイプなどを使用するとメディアに濃淡の模様が現れる。⇒「8.5 密度」

※ メディアそれぞれの機能はオプション選択であり、指定の順番は特に決まっていない。

※ densityやtransformationを除くメディアのパラメータは、デフォルト値や前もって設定された値より優先される。

※ メディアの中に存在する物体において、その物体の透明感を指定しする場合、transmitを使うと影がなくなり、filterを使用すると影が生ずる。次にその例を示す。


 object{MyObject pigment{rgbt 1.0} interior{media{MyMedia}}}  //影なし

  object{MyObject pigment{rgbf 1.0} interior{media{MyMedia}}}  //影あり

※ メディアには、次のような3つのタイプある。タイプを指定することでメディアの特性が決定される。

散乱(scattering)
吸収(absorption)
発光(emission)

これらのタイプは、3種類同時に指定することが可能である。タイプ指定のパラメータは、散乱では色の設定のほか3つの設定ができ、吸収・発光では色の設定だけでよい。これらの色の設定では、filter や transmit は使用することができない。

※ 物体メディアを使用するときは、メディアはインテリアの中に記述する。


       例)  interior{  

             media{ scattering { 1, rgb 0.05 } }

                   }

★メディア文の主なディフォルト設定(省略するとこの設定値が使用される。)


    media{

      intervals  10

      samples  1,1

      confidence  0.9

      variance   1/128

      ratio  0.9

      method  3

      aa_level  4

      aa_threshold  0.1

    }


8.1 散乱 (scattering)

メディアに光を散乱させる性質を与える。透過光を散乱させることができるので、透過光の軌跡を表現することなどができる。物体は散乱しなかった光で照明されることになる。デフォルト値は、rgb < 0, 0, 0 >で、散乱なしとなっている。

< scattering の構文>


 scattering {

    TYPE, COLOR 

    [ eccentricity VALUE ]

    [ extinction VALUE ]

 }

TYPE
散乱タイプの番号、1〜5の整数値で指定
COLOR
散乱する光の色 [デフォルト:<0,0,0> ]
eccentricity VALUE 離心率を設定する。(散乱タイプ5の場合に設定してもよい。その他の場合に設定するとエラーになる。)[デフォルト:0.0 ]
extinction VALUE
消散係数を設定する。値が小さいほど透過光の消散量が小さくなる。[デフォルト:1.0 ] ⇒「8.1-6 消散係数」

※ 光がメディアを通過するとき、散乱効果を使用することでその様子を表現することができる。散乱では指定の光が反射がされ目に見えるようになり、その他の光が通過する。

8.1-1 等方性散乱(散乱タイプ1)

光が全方向へ等しく散乱する。最もシンプルな散乱である。どの方向からみても散乱光は同じように見える。

media{ scattering { 1, rgb 0.05 } }
図8.1-1 等方性散乱(散乱タイプ1)の例

8.1-2 ミー散乱・haze(散乱タイプ2)

霧や雲などの微小な水滴、汚れた空の微小な汚染物質などによる散乱を表す。強い前方散乱の指向性がある。透過光が視線方向と向かい合っているときに散乱が強く見える。

図8.1-2a ミー散乱・haze(散乱タイプ2)の散乱指向性

media{ scattering { 2, rgb 0.05 } }
図8.1-2b ミー散乱・haze(散乱タイプ2)の例

8.1-3 ミー散乱・murky(散乱タイプ3)

タイプ2と同様であるが、さらに前方散乱の指向性が強くなる。

図8.1-3a ミー散乱・murky(散乱タイプ3)の散乱指向性

media{ scattering { 3, rgb 0.05 } }
図8.1-3b ミー散乱・murky(散乱タイプ3)の例

8.1-4 レイリー散乱(散乱タイプ4)

空気の分子のような大変小さい微粒子による散乱を表す。晴れた日の青空はレイリー散乱により太陽光線が散乱されたものである。光の進行方向に対して直角方向から見たとき、散乱が一番小さく見えるが、ミー散乱より指向性は弱い。

図8.1-4a レイリー散乱(散乱タイプ4)の散乱指向性

media{ scattering { 4, rgb 0.05 } }
図8.1-4b レイリー散乱(散乱タイプ4)の例

8.1-5 Henyey-Greensteinの散乱(散乱タイプ5)

Henyey-Greenstein位相関数により近似される散乱である。散乱の指向性は、離心率(eccentricity)の値で設定する。離心率のデフォルト値は0であり、この場合は等方性散乱となる。値により指向性が変化し、正の値のときは前方散乱、負の値のときは後方散乱となる。

図8.1-5a Henyey-Greensteinの散乱(散乱タイプ5)の散乱指向性

media{ scattering { 5, rgb 0.05 eccentricity 0.5 } }
図8.1-5b Henyey-Greensteinの散乱(散乱タイプ5)の例1

media{ scattering { 5, rgb 0.05 eccentricity -0.5 } }
図8.1-5c Henyey-Greensteinの散乱(散乱タイプ5)の例2

8.1-6 消散係数(extinction)

消散係数を設定することで、透過光の散乱量を調節することができる。値が小さいほど透過光の消散が小さくなるので、物体が明るく照明されるようになる。ディフォルト値は extinction 1.0 である。次に消散係数を設定した例を示す。

scattering { 4, rgb 0.05 extinction 0.5 }
図8.1-6 消散係数の例


8.2 吸収(absorption)

「吸収」は、メディアに光を吸収する特性を与える。メディアを透過する光について、指定された色の光が吸収され、残りの光が目に見える結果となる。パラメータとして吸収する光の色を指定する。

media{ absorption rgb< 0.04, 0.08, 0.08> }
図8.2  吸収の例

上記の例は、メディアが光をred:0.04、green:0.08、blue:0.08 吸収することを表している。従って、白色光線の場合、赤色成分が多く透過するので、メディアを通して見る白い物体は赤っぽい色に見えることになる。デフォルト値は、rgb 0 であり、光は吸収されないで、すべて透過する。


8.3 発光 (emission)

「発光」は、メディアに光を射出する性質を与える。パラメータとして発光する色を与える。

media{ emission rgb 0.015 }
図8.3 発光の例

上記の例は、メディアが光をred:0.015、green:0.015、blue:0.015 射出することを表している。これを使用すると、照明なしでも、メディアの発光により物体が見えるようになる。これは、強い環境光を与えた場合の効果と似ている。デフォルト値は、rgb 0 で、発光なし。


8.4 サンプリング

8.4-1 区間数(intervals)

区間数(intervals)は追跡光線をサンプリングする区間数の設定に使用する。区間数は全区間の分割数である。物体メディアでは、追跡光線が物体を通過する入口から出口の間までが全区間である。大気メディアでは、追跡光線が出発点から物体と交差するまでの全体の長さが全区間である。この値を大きすると、滑らかな表現になる。デフォルト値は、intervals 10 である。

注)区間数は照明区間数より大きな値でなければいけない。例えば、8つのスポットライトの照明空間があり、そこを追跡光線が通過する場合、区間数5を設定するとエラーとなる。


media{ intervals 3    

       scattering {4, rgb 0.05 }

     }


media{ intervals 30    

       scattering {4, rgb 0.05 }

      }

図8.4-1 区間数(intervals)の比較例


8.4-2 サンプル数(samples)

各区間で行われるサンプリングの最大、最小値を設定する。このサンプリングはモンテカルロ法により行われる。メディア効果は追跡光線上のメディアのサンプリングから計算される。デフォルトは、samples 1,1 である。
下記の例は、「9.4-1 区間数」の図8.4-1の左側例に samples 10, 10 を加えて画質を改善したものである。


media{ intervals 3

       samples 10, 10

       scattering {4, rgb 0.05 }

      }  

図8.4-2 サンプル数による画質向上


8.4-3 区間数比(ratio)

スポットライトや円柱光などの光源では光が照射されている空間とそうでない空間がある。区間でも同様で、分割された区間ではこのような場合、照明区間と非照明区間が存在する。区間数比(ratio)は照明区間数と非照明区間数の配分比率を表す。ratioの値は通常は照明区間に比率を重くして使用する。デフォルト値は、ratio 0.9 である。照明区間数を非照明区間数より多く配分し、主として照明区間よりサンプルを得るようになっている。
下記の例は、ratio 0.2 を追加した例である。


media{ ratio 0.2

       scattering {4, rgb 0.05 }

      }  

図8.4-3 区間数比による画質の違い


8.4-4 分散(variance)

分散(variance)は、分散の閾値を設定する。ここでいう分散は、数値が小さい程、一様分散となるようであるが、詳しいことは不明。varianceのデフォルトは1.0/128である。


8.4-5 信頼度(confidence)

信頼度(confidence)は、サンプルが指定された分散であること信頼度を設定する。カイ2乗検定などが使用されている。信頼度(confidence)は0〜1の範囲で指定する。デフォルトは0.9となっているより正確な結果を得たい場合は、分散を減少させ、信頼度を増加させるとよいがレンダリング時間が増加する。(以上はマニュアルの記述であるが、これらの値を変更しても生成される画像にほとんど違いがない。)


8.5  密度(density)

メディアの微粒子は通常、一定の密度である。しかし、テキスチャのパターンタイプなどを密度に使用することで、メディアを一様でない密度に変えることができる。このような設定を行うと、メディアに濃淡の模様ができる。密度のディフォルト値は、1.0の一様密度となっている。

< density の構文>


   density{ [DENSITY_IDENTIFIER]

            [PATTERN_TYPE] 

            [DENSITY_MODIFIER...]

               }

density
密度を宣言するキーワード
DENSITY_IDENTIFIER
識別子の名前(40文字以下)
DENSITY_TYPE
パターンタイプまたは色のどちらかを指定する。パターンタイプの場合は、0.0 〜 1.0 までの値である。色は、density_map を使用したときに設定する。
DENSITY_MODIFIER
密度の変更方法:カラーマップ(color_map)または、密度マップ (density_map)の設定をする。⇒「12.1-3 カラーマップ」


media{ intervals 50

       samples 5,10

       scattering {4, rgb 0.05 }  

       density { agate

                 color_map{

                    [0.2 color White*0.6]

                    [0.4 color White]

                    [0.8 color White*0.1]

                  } 

               }   

      }


media{ intervals 50

       samples 5,10

       scattering {4, rgb 0.05 }  

       density { agate

                 color_map{

                   [0.2 color Green]

                   [0.7 color Red]

                 } 

               }   

      }

図8.5 密度の値によるメディアの相違