RenderManのお勉強(光源)
ここでは、光源について扱います。光源の設定を活かすためには、物体表面の質感などを設定する必要があります。そのためには、RenderManは表面シェーダ(surface shader)を設定します。この目的のために用いられるのが、Surface命令です。
シェーダはRenderManにおける特徴的な機能ですので、後ほど詳しく扱うことになると思います。
これがあるために、RenderManは実際のCG制作現場で用いられています。
sequencenubmerによって指定した光源を点灯させるときにはonoffに1を指定します。逆に、消灯するときにはonoffに0を指定します。
Topページに戻る
シェーダはRenderManにおける特徴的な機能ですので、後ほど詳しく扱うことになると思います。
これがあるために、RenderManは実際のCG制作現場で用いられています。
点光源(point light)
光源に色々な種類がありますが、ここでは点光源と呼ばれるものをあつかいます。これは、光源に大きさがなく、光源からの距離が遠くなるに従って、明るさが暗くなるようなものです。光源は一つだけなく、複数のものを置くことが出来ます。点光源のサンプル
# pointlight01.rib : point light sample rib file Display "pointlight01.tiff" "file" "rgba" Projection "perspective" Translate 0 0 2 WorldBegin LightSource "pointlight" 1 "from" [-2 2 -2] "intensity" [7] Surface "plastic" Color [1 0 0] Sphere 1 -1 1 360 WorldEnd
点光源の実行例
点光源色の変更サンプル
# pointlight03.rib : point light sample rib file Display "pointlight03.tiff" "file" "rgba" Projection "perspective" Translate 0 0 2 WorldBegin LightSource "pointlight" 1 "from" [-2 2 -2] "lightcolor" [1 1 0] "intensity" [7] Surface "plastic" Color [0 1 1] Sphere 1 -1 1 360 WorldEnd
点光源色の変更サンプルの実行例
複数の点光源のサンプル
# pointlight01.rib : point light sample rib file Display "pointlight01.tiff" "file" "rgba" Projection "perspective" Translate 0 0 2 WorldBegin LightSource "pointlight" 1 "from" [-2 2 -2] "intensity" [7] LightSource "pointlight" 2 "from" [2 2 -2] "intensity" [7] Surface "plastic" Color [1 0 0] Sphere 1 -1 1 360 WorldEnd
複数の点光源の実行例
説明
LightSourceの呼び出し方(point lightの場合) |
LightSource "pointlight" sequencenumber パラメータの並び |
LightSourceの呼び出し方(一般系) |
LightSource name sequencenumber パラメータの並び |
Surfaceの呼び出し方 |
Surface shadername パラメータの並び |
- 点光源などの大きさのない光源の設定のためには、LightSource命令を使用します。
- nameには使用したい光源の種類(名前)を指定します。点光源の場合には、"pointlight"となります。
- sequencenumberには、光源を識別するための数字(0から65535まで)を書きます。基本的には光源毎に異なる番号を設定します。もし同じものがあった場合には、後に指定されたものが有効となります。
- 「"from" [x y z]」により、点光源の位置が(x,y,z)になります。
- 「"intensity" [明るさ]」により、光源の明るさを指定することが出来ます。
- 「"lightcolor" [色指定]」により、光源の色を指定することが出来ます。色を指定しなかった場合には、光源色は白色となっています。この部分は、LightSourceで設定される他の光源でも同じになっています。
- 色変更のサンプルでは、物体表面色はシアン色ですが、光源色は黄色となっているので、緑色に見えています。
- pointlightに限りませんが、複数の光源を置く場合には、LightSourceなどの光源設定のための命令を複数個置くことで実現できます。
- 物体の表面の質感は、Surfaceで指定しています。ここでは、物体表面の質感を"plastic"(プラスチック風)に設定しています。細かく指定できるパラメータは何も指定していません。
平行光源(distantlight)
ここでは、太陽光線のような平行光源を扱います。点光源とことなり、平行光源では場所が変わっても光の来る方向と光の強さは変わりません。平行光源のサンプル
# distantlight01.rib : distant light sample rib file Display "distantlight01.tiff" "file" "rgba" Projection "perspective" Translate 0 0 2 WorldBegin LightSource "distantlight" 1 "to" [-1 0 0] "intensity" [3] Surface "plastic" Color [1 0 0] Sphere 1 -1 1 360 WorldEnd
平行光源の実行例
説明
LightSourceの呼び出し方(distant lightの場合) |
LightSource "distantlight" sequencenumber パラメータの並び |
- 平行光源の設定を行うためには、nameに"distantlight"を指定します。
- 「"to" 光の方向」によって、光が来る方向を指定できます。この例では、(-1,0,0)方向(x軸の負の方向)から光が当たっています。
- 「"intensity" [明るさ]」によって、光源の明るさを指定できます。
環境光(ambientlight)
理屈上では、光が当たってない部分は真っ黒になります。しかし、このような画像を作ると違和感のあるものとなることがあります。このような状況を避けるために、環境光と呼ばれる仮想的な光源を利用することがあります。環境光は、全ての場所に一定の明るさの当てるものです。あまり明るくすると不自然なものとなりますので、注意が必要です。環境光のサンプル
# ambientlight01.rib : distant light sample rib file Display "ambientlight01.tiff" "file" "rgba" Projection "perspective" Translate 0 0 2 WorldBegin LightSource "ambientlight" 1 "intensity" [0.5] Surface "plastic" Color [1 0 0] Sphere 1 -1 1 360 WorldEnd
環境光の実行例
説明
LightSourceの呼び出し方(ambient lightの場合) |
LightSource "ambientlight" sequencenumber パラメータの並び |
- 環境光を利用するためには、nameに"ambientlight"を指定します。
- 「"intensity" [明るさ]」で環境光の明るさを指定します。
スポットライト(spotlight)
ここでは、スポットライトのような光源を扱います。スポットライトのサンプル
# spotlight01.rib : spot light sample rib file Display "spotlight01.tiff" "file" "rgba" Projection "perspective" Translate 0 0 4 WorldBegin LightSource "spotlight" 1 "from" [0 0 -4] "to" [0 0 0] "intensity" [8] "coneangle" [0.5] "conedeltaangle" [0.25] Surface "plastic" Color [1 0 0] Polygon "P" [ 4 4 0 -4 4 0 -4 -4 0 4 -4 0] WorldEnd
スポットライトの実行例
スポットライトと環境光のサンプル
# spotlight02.rib : spot light sample rib file Display "spotlight02.tiff" "file" "rgba" Projection "perspective" Translate 0 0 4 WorldBegin LightSource "spotlight" 1 "from" [0 0 -4] "to" [0 0 0] "intensity" [8] "coneangle" [0.5] "conedeltaangle" [0.25] LightSource "ambientlight" 2 "intensity" [0.1] Surface "plastic" Color [1 0 0] Polygon "P" [ 4 4 0 -4 4 0 -4 -4 0 4 -4 0] WorldEnd
スポットライトと環境光のサンプルの実行例
説明
LightSourceの呼び出し方(spot lightの場合) |
LightSource "spotlight" sequencenumber パラメータの並び |
- 「"from" 光源の位置」によって、スポットライトのある位置を指定します。「"to" 注視点」によって、スポットライトが向いている位置を指定します。from-toによって、スポットライトの向きがわかります。「"coneangle" スポットライトの放射角度」によってスポットライトの光の放射角度を指定します。「"conedeltaangle" 光の減衰角度」によって、スポットライトの光が弱くなっていく角度を指定します。この2つの角度は弧度法(ラジアン)で指定します。
- この他にも"beamdistribution"と呼ばれるパラメータを指定することも出来ます。
- スポットライトの当たってない部分が真っ暗になっていると少し不自然なので、環境光を当てたサンプルも作ってみました。2つの画像を見比べて、環境光の役割を確認してください。
おまけ
Illuminate
Illuminate命令によって、光源のOn-Offの制御が出来ます。Illuminateの呼び出し方 |
Illuminate sequencenumber onoff |
LightSourceに指定できる標準的な光源
光源名 | name | Light Sourceシェーダパラメータ |
環境光 | ambientlight | intensity,lightcolor |
平行光源 | distantlight | intensity,lightcolor,from,to |
点光源 | pointlight | intensity,lightcolor,from |
スポットライト | spotlight | intensity,lightcolor,from,to,coneangle,conedeltaangle,beamdistribution |
シェーダパラメータの初期値
名称 | 初期値 |
lightcolor | 白(1,1,1) |
intensity | 1 |
form | 原点(0,0,0) |
to | (0,0.1) |
coneangle | radians(30) |
conedeltaangle | radians(5) |
beamdistribution | 2 |
標準で用意されている表面の質感(shadernameに指定できるシェーダ名)
シェーダ名 | 設定できる項目 |
matte | Ka,Kd |
metal | Ka,Ks,roughness |
shinymetal | Ka,Ks,Kr,roughness,texturename |
plastic | Ka,Kd,Ks,roughness,specularcolor |
pintedplastic | Ka,Kd,Ks,roughness,specularcolor,texturename |
項目の意味
Ka | 環境係数(ambient) |
Kd | 拡散係数(diffuse) |
Ks | 鏡面係数(specular) |
Kr | 反射係数(reflection) |
roughness | 表面荒さ |
specularcolor | 鏡面色(specular color) |
texturename | テクスチャマップ名 |
Topページに戻る
2008年02月02日(土) 17:15:28 Modified by m_riho
添付ファイル一覧(全7件)
b2b430d6.jpg (4.02KB)
Uploaded by m_riho 2008年01月05日(土) 02:06:30
Uploaded by m_riho 2008年01月05日(土) 02:06:30
06119fbc.jpg (4.03KB)
Uploaded by m_riho 2008年01月05日(土) 02:02:03
Uploaded by m_riho 2008年01月05日(土) 02:02:03
f1072a5a.jpg (5.45KB)
Uploaded by m_riho 2008年01月05日(土) 01:08:59
Uploaded by m_riho 2008年01月05日(土) 01:08:59
10391461.jpg (6.22KB)
Uploaded by m_riho 2008年01月05日(土) 00:46:35
Uploaded by m_riho 2008年01月05日(土) 00:46:35
31220596.jpg (5.86KB)
Uploaded by m_riho 2008年01月04日(金) 23:44:18
Uploaded by m_riho 2008年01月04日(金) 23:44:18
2fa0b23d.jpg (5.94KB)
Uploaded by m_riho 2008年01月04日(金) 23:09:45
Uploaded by m_riho 2008年01月04日(金) 23:09:45
8b7690ab.jpg (5.59KB)
Uploaded by m_riho 2008年01月04日(金) 23:09:02
Uploaded by m_riho 2008年01月04日(金) 23:09:02