- 照度計算
- ルーメン値をShade3Dのシーンで扱う
照明器具メーカーでは、照明器具の明るさの目安として「ルーメン」値を公開していることが多いです。
今回は、このルーメン情報をShade3Dのシーンで扱う流れについて説明します。
照度計算
まずはじめにルーメンの単位を使用しない、点光源またはスポットライトからの照度を計算します。
光度I(単位:cd) の光が距離R(単位:m)だけ離れた位置での直下照度E(単位:lx)は以下のように計算できます。
E = I / (R^2)
直下照度とは、光源から角度0で直進した位置の照度です。
光度を100(cd)/距離を2(m)とすると、直下照度は「100/(2^2) = 25」となります。
照度は距離の二乗に反比例していきます。
距離が1mの場合は「100/(1^2) = 100」となり、光源に近いほど明るくなるのを確認できます。
Shade3Dの場合は初期状態で、スポットライトの形状情報ウィンドウでは「減衰」は「2次」、「単位」が「減衰基準距離」になっています。
この場合「明るさ」の単位はmmになっています。
このときの直下照度は以下のように計算できます。
E = (明るさ^2) / (距離^2)
なお、ここでは単位のある照度ではなく、「明るさ(mm) = 距離(mm)」のときに、直下が1.0になるようにした相対的な値になります。
「距離」が2m(2000mm)の場合、「明るさ」が2000mmのときに直下照度が1.0となります。
これにより、「減衰基準距離」を使用している場合は光が届く距離の目安を「明るさ」に指定することで、どの距離で光が届くかをある程度判断できます。
「距離」が2000mm、「明るさ」が1000mmのときは直下照度は「(1000^2)/(2000^2) = 0.25」となります。
なお、「減衰基準距離」時の「(明るさ^2) / (距離^2)」の計算は距離値同士の除算になるため、単位はmmもしくはmでも同じ結果になります。
検証
では、Shade3Dでのスポットライトで「減衰基準距離」を指定している場合、「明るさ」を変化させたときに実際の照度はどのようになるか検証します。
地面から2000mmの距離だけ離れたスポットライトを配置し、スポットライトの「明るさ」を変化させていき、そのときのピクセル値をレンダリング画像より取得します。
光を受ける地面として、光源の真下に小さな円を配置しました。
サンプリングするのはこの小さな円の中心の1点になります。
円の表面材質は、Shade3Dマテリアル(ver.19までのマテリアル設定)とし白色で光沢無しのものを指定しました。
これにより、材質による変化が起きないようにしています(輝度ではなく照度を得るため)。
「距離」は2000mmで固定、スポットライトの「明るさ」を1000/1300/1500/1800/2000/2500と変化させました。
なお、リニアワークフローでレンダリングしています。
Shade3D ver.20の場合は、レンダリング設定の「カラーマネジメント」で「ワーキングカラースペース」を「リニアsRGB(ガンマ 1.0)」、「出力カラースペース」を「sRGB」にしています(初期値)。
Shade3D ver.19以前の場合は、「色補正」の「ガンマ」を2.2とします。
距離(mm) | 明るさ(mm) | 照度(計測値) | 照度(計算値) |
---|---|---|---|
2000 | 1000 | 0.23 | 0.25 |
2000 | 1300 | 0.41 | 0.422 |
2000 | 1500 | 0.55 | 0.56 |
2000 | 1800 | 0.8 | 0.81 |
2000 | 2000 | 1.0 | 1.0 |
2000 | 2500 | 1.58 | 1.56 |
「照度(計測値)」はレンダリングを行ってexr形式でファイル出力、地面の円の箇所のピクセル値を取得しています。
「照度(計算値)」は、「E = (明るさ^2) / (距離^2)」の計算値です。
計測値と計算値で、似た値になっているのが確認できます。
光源の明るさの単位を「ルーメン」にした場合
次に、光源の明るさの単位を「ルーメン」にします。
「減衰基準距離」での「明るさ」を入力し、「ルーメン」に切り替えたときの値をいくつか列挙します。
「減衰基準距離」での「明るさ」(単位:mm) | 「ルーメン」での「明るさ」(単位:lm) |
---|---|
1000 | 1256637.125000 |
1500 | 2827434.250000 |
2000 | 5026548.500000 |
点光源/スポットライトの場合は、「減衰基準距離」と「ルーメン」の計算式は以下のようになっています。
「減衰基準距離」での「明るさ」の距離値をt(単位 : mm)、ルーメン値をΦ(単位 : lm)とします。
Φ = (4π * (t^2)) / 10
ルーメン値は結構大きくなっています。
現状は基準を与えていないため、実際の照明器具でのルーメン値はどれくらいか見ていきます。
照明器具のルーメン値
いくつか参考として列挙します。
種類 | ルーメン値(単位 : lm) |
---|---|
蝋燭 | 12.57 |
白熱電球(40W相当) E26口金 | 485 |
白熱電球(60W相当) E26口金 | 810 |
白熱電球(100W相当) E26口金 | 1520 |
直管形蛍光灯 FLR40 38W | 3230 |
丸形蛍光灯 FCL40 38W | 3230 |
1カンデラ(cd)は、蝋燭のだいたいの明るさになります。
カンデラは光度になるため、「I = Φ / ω」の計算式になります。
Iが光度(単位 : cd)、Φ が光束(単位 : lm)、ωは立体角(単位 : sr)です。
この式については、「光源で使われる用語/明るさの単位」をご参照くださいませ。
この式より「Φ = I * ω」となります。立体角は半径1mの球で計算され、蝋燭の場合は全方向に光が放たれるため、「ω = 4π」になります(球の表面積全体)。
これより、「Φ = I * ω = 1.0 * 4π ≒ 12.57」と計算できます。
白熱電球は、一般家庭でよく利用されている電球です。
この場合は、ワット(W)で消費電力を指定します。これは明るさではありませんが、消費電力が大きいほど明るくなります。
「E26口金」とは、金属部の口金の幅が26mmのものを指します。
小形電球の場合は、「E17口金」というものがあります。この場合は、口金の幅は17mmになります。
この白熱電球のワット(W)表記は明るさとは異なります。
一方、LED電球では「ルーメン(lm)」に統一されています。
LED電球の場合はより少ない消費電力で明るさを確保でき、長持ちするという特徴があります。
白熱電球は2012年で生産が終了となり、これらはLED電球に置き換わっていってます。
蛍光灯の場合は、直管形(FLR)の40形の場合は横長になり、長さ1198mm、管径(直径)32.5mmほどになります。
丸形(FCL)の40形の場合は円状になり、外径が373mm、管径は29mmほどになります。
これらのサイズやルーメンの値は、照明器具のカタログを参考にしました。
Shade3Dでルーメンを扱う際の前知識
それでは改めてShade3Dの光源での「ルーメン」での明るさを見ていきます。
点光源を配置し、「白熱電球(60W相当) E26口金」の明るさとして810(lm)をそのまま与えてみます。
地面から点光源までの距離は200mmとしました。
レンダリングすると、光は地面に全然届いていません。
電球のフィラメント部はマテリアルとして発光を与えています。これは地面を照らしている照度には影響しません。
またこのシーンは、映り込み表現のため背景のHDRIを指定しています。
光源としてはシーンに影響を与えないようにするために、背景の「光源としての明るさ」を0.0としています(IBLの明るさは0)。
別途、映り込みでは背景のテクスチャ色が反映されています。
IBLの明るさを0としているため、背景画像は光源としては機能しません。
さて、ではなぜ光が地面に届いていないのでしょうか。
これは、無限遠光源の「明るさ」を考慮すると見えてくるかもしれません。
無限遠光源が白色のとき、「明るさ」が1.0のときを照度(ルクス)で指定すると100k(lx)としています。
ここで、真上から無限遠光源を入射させてそのときの直下照度を求めます。
真上からの無限遠光源を指定するために、無限遠光源ウィンドウで「正面図」を選択し、
球のプレビューの真上に光源を配置します。
「lx」チェックボックスをオンにして、「明るさ」を「100k」にしました。
このシーンをレンダリングしexr出力、光を受ける面(ここでは円で指定)のピクセル値を取得します。
この値は1.0となっています。
光度I(単位:cd) の光が距離R(単位:m)だけ離れた位置での直下照度E(単位:lx)のとき、冒頭の照度計算より以下の式になります。
E = I / (R^2)
1mの高さではE=Iとなるため、100k(lx)のときは100k(cd)となります。
光束と光度の式より「I = Φ / ω」で立体角を全球とした場合、「ω = 4π」。
「Φ = I * ω = 100k * 4π ≒ 1256637.06(lm)」となります。
これは、点光源やスポットライトで「減衰基準距離」を指定している場合の「明るさ」が1000mmの時のルーメン値と一致します。
大雑把な説明にはなりますが、太陽光が直下に入射したときは1mの高さに太陽の中心があるとして1256637.06(lm)、という非常に大きなルーメン値を持つことになります。
太陽光の場合は無限遠にあるとして、光源から対象位置までの距離の影響は受けず同じ明るさで照らされる(減衰しない)としています。
向きと明るさだけが存在する無限遠光源になります。
これと白熱電球(60W相当) E26口金の810(lm)を比較すると、明るさが段違いに異なることが分かります。
1256637.06(lm)での照度を1.0とした場合、同一距離(同一位置)から放射される光が810(lm)のときの照度は「810 / 1256637.06 = 0.00064457752」と計算されます。
※ 光束(lm)と照度(lx)の計算式「E = Φ / S」より、光束と直下で照らされる照度は単純な比例関係になります。
この場合は、あまりにも小さい値のためレンダリングすると黒のまま変化していない(0.0に丸め込まれた)という状態も出てきます。
なお、この状態の場合は「色補正」の「ゲイン」を上げてもピクセルごとの極小の輝度は変化しないようでした。
Shade3Dでルーメンを扱う
以上の結果を踏まえると、Shade3Dで明るさの単位で「ルーメン」を扱う場合は無限遠光源の明るさ1.0での100k(lx)が基準となっており、
そのままでは暗すぎる、ということになります。
単純にすべてのオブジェクト光源をルーメンで扱うようにし、100 ~ 1000倍くらいにしておくとよさそうです。
Shade3Dの光源でルーメンを扱う場合は、以下を考慮することにします。
- 無限遠光源は「明るさ」1.0で100k(lx)と覚えておく(lxチェックボックスをオンにしなくてもよい)
- 点光源、スポットライト、平行光源、面光源、線光源などのオブジェクト光源はルーメン(lm)で扱う
- オブジェクト光源のルーメンで示される「明るさ」を100 ~ 1000倍くらいにする
- 無限遠光源の「明るさ」を調整
- 背景をIBLとして使用する場合、「光源としての明るさ」「テクスチャの濃度」を調整
- レンダリングはリニアワークフローで行う
これでレンダリングを行い、その後の露出相当の調整は「色補正」の「ゲイン」で行います。
極端な明るさの混在を防ぐため、無限遠光源の「明るさ」と背景のIBLでの明るさは
オブジェクト光源の倍率よりも低くしてもよいかもしれません。
なお、背景のIBLの場合、HDRIとしてダイナミックレンジを持った背景画像を使用しますが、
その際のピクセルごとの明るさ情報は厳密に単位があるわけではありません。
そのため、単純に光源のルーメン値指定でn倍したので背景のIBLもn倍の明るさにする、とはできにくい面もあります。
これは本解説の最後で試すようにしています。
「Shade3Dでルーメンを扱う際の前知識」で説明に使った、
地面から200mmの高さの「白熱電球(60W相当) E26口金」の明るさ(点光源で指定)として810(lm)を指定した場合は、
ルーメン値を1000倍して以下のようになりました。
明るさを蝋燭の「12.57 (lm)」 x 1000を与えると以下のようになりました。
複数光源をシーンに配置する必要があるとき、光源の明るさの単位をルーメンにした場合は「減衰基準距離」とは混在しないほうがよさそうです。
「減衰基準距離」の明るさと「ルーメン」の明るさは比例関係ではないため、混在しての使用は混乱を招くことになります。
室内シーンで、光源の単位をルーメンにしてレンダリング
いくつか光源を配置したシーンを作りました。
天井に直管形蛍光灯(3230lm)2つ、机の上にデスクスタンドの光源として白熱電球(810lm)を配置しています。
直管形蛍光灯は線光源を配置しました。デスクスタンドの光源は点光源を配置しました。
これらのモデリングと光源/マテリアルの指定については、後々解説予定にしています。
また、光源のルーメン値を100倍しています(レンダリング結果で暗く切り捨てられるのを防ぐため)。
これをリニアワークフローでパストレーシング+パストレーシング(イラディアンスキャッシュ未使用)でレンダリングすると、以下のようになりました。
「視線追跡レベル」8、「レイトレーシングの画質」50としています。
これはルーメン値を100倍しているため、実際の照度のままにしたい場合(無限遠光源の明るさ100klxを1.0とした状態)は色補正の「ゲイン」で1/100=0.01を入力します。
その場合は以下のように真っ暗になりました。
「ゲイン」を2.0とすると以下のようになりました。
机の上のデスクスタンドからの光が分かりにくいため、カメラを机に寄せてレンダリングしました。
色補正の「ゲイン」を2.0としています。
左がデスクスタンドからの光源なし、右がデスクスタンドの光源ありのレンダリングです。
Shade3Dの大域照明を使用する場合、このような黒要素が強いテクスチャが存在するときにレンダリング設定の「大域照明」タブで「拡散反射カットオフ」を限りなく0に近づけておかないと、
間接照明が打ち切られて黒が強くなる現象が発生することがあります。
レンダリング時間がかかりますが、できるだけ「拡散反射カットオフ」は0.0にするか初期状態の0.05より小さい値にしたほうが確実なレンダリング結果になります。
次に、外からの太陽光として無限遠光源を与えます。
これは、他の光源のルーメン値に合わせて「明るさ」を100倍しました。
無限遠光源ウィンドウの「明るさ」で数値指定で100と入力します。
表示では「#####」のようになります。
また、背景のIBLも調整しました。テクスチャの濃度を100倍にしています(この場合、元の値は0.62)。
色補正の「ゲイン」が1.0の場合は、無限遠光源の影響でかなり明るくなります。
色補正の「ゲイン」を0.01にすると、無限遠光源の100k(lx)を1.0としたときのレンダリング結果になります。
なお、蛍光灯の表面は発光を1.0としています。
色補正の「ゲイン」を0.3にすると、以下のようになりました。
太陽光のように極端に強い光源が存在し、間接照明が充満するシーンの場合(太陽光で照らされる室内など)はノイズが発生しやすく、
ノイズを収束させるためにレンダリング時間をかける必要があります。
色補正のゲインの調整はレンダリング画像に対して一律の調整(ピクセル値にゲインの値を乗算したもの)のため、実際の目とは異なる見え方をします。
この場合は、無限遠光源の「明るさ」や背景の「テクスチャの濃度」や「光源としての明るさ」にかける倍率を少し低めにして調整してもいいかもしれません。
以下は、オブジェクト光源のルーメン値は100倍、無限遠光源と背景の明るさ/濃度を10倍にしてレンダリングした結果です。
色補正の「ゲイン」を1.0にしています。
室内の光を分かりやすくするために、色補正の「ゲイン」を0.3にしました。
このような小部屋に対して直管形蛍光灯を配置するというのはないとは思われますが、
直管形蛍光灯の左右に影が伸びており、このシーンの照明器具としては向かないというのが確認できます。
その他、線光源を使っているため影が柔らかくなっていないというのも気になる点です(面積を持つ面光源を使うほうがよりリアルに近づきます)。
これについても後々解説予定です。
光源のルーメン値を変更せずに明るさの倍率を変える
これまでの説明では、個々の光源に対してルーメンで指定された「明るさ」をn倍していました。
倍率はすべての光源で同じであるため、倍率だけまとめて変更します。
光源ジョイントを使用する
ツールボックスの「パート」-「ジョイント」-「光源」を選択し、「光源ジョイント」を配置します。
この中にオブジェクト光源を入れて、オブジェクト光源の光源ジョイント属性として明るさの倍率を変更します。
例として、以下のようにシーンには3つの光源(線光源 x 2、点光源)があります。
ブラウザでは以下のように、光源ジョイント内に3つの光源を入れます。
形状情報ウィンドウの属性の「明るさ」で100倍していたルーメンを元の値に戻します。
点光源は白熱電球(60W相当)の810lmに、蛍光灯は3230lmとしています。
光源ジョイントをブラウザで選択し、形状情報ウィンドウの「光源ジョイント属性」の「範囲」チェックボックスをオフにします。
「光源」の値は光源が「減衰基準距離」を使っている場合の倍率になり、「ルーメン」のときは平方根の値を指定します。
ルーメン値を100倍にする場合、光源ジョイントの光源値を10にします。
これは、「ルーメン」と「減衰基準距離」の単位変換式の以下の計算より確認できます。
点光源,スポットライト,平行光源 : Φ = (4π * (t^2)) / 10
面光源,線光源 : Φ = (t^2) / π
Φ がルーメン値(単位:lm)、tが減衰基準距離時の明るさ(単位:mm)。
今回は、Shade3Dの光源の単位として選択できる「ルーメン」について、
数式で検証しながら最終的にはどのようにすればよさそうか、という流れの説明でした。
シーンに配置する光源の単位を理解し、照明器具メーカーが公開されている実際に計測されたルーメン値を与えることで、
現実の光がどのように影響を与えるかShade3Dでシミュレートできることになります。
なお、ネットで詳しい照明器具の情報を調べる際は、「照明器具」「照明設計」「ルーメン」などの単語で検索してみてくださいませ。
次回は、Shade3D Professionalで使用できる「配光」について説明していく予定です。
今回は直下照度で進めることができる話題でしたが、
次回は光源を中心とした向きが与えられた場合、向きにより明るさが異なる場合の話題になります。