VRayLightMeterを使ったデイライトの正確性を検証
この記事は ChaosGroupドキュメントの 「V-Ray Illumination Relevance Test」を翻訳した物です。
「V-Ray Next 3dsMax で照明解析」と合わせて参照ください。
概要
このテストケースは、Autodesk 3ds Max 2017 + V-Ray Nextを使用して「AutodeskR3dsMaxRDesign 2009とDaysim 3.0の実験的検証」(Reinhart、2009)という論文から昼間シミュレーションの設定を再現します。
Reinhartが実施した参考実験では、窓のある空間に入る日光をAutodeskR3dsMaxRDesign 2009ソフトウェア(3ds Max Design)でシミュレーションし、実際の屋内照度の実測値と比較しています。
このテストケースで設定した目標は、V-Ray Nextの高度なレンダリング技術とAutodesk社が公開しているリサーチ結果と比較してみる事にあります。さらに、ChaosGroupではReinhartの結果をベンチマークとして、より高速で正確かつ高品位なレンダリングイメージを生成する方法を探ります。
前提条件
この検証は、autodeskより公開されている論文との比較であるので、最初に論文とは異なる条件を説明する必要があります。
論文で使用されるソフトウェアは、Autodesk社 3ds Max Design 2009 です。V-Ray Nextは、バージョン2013より前の3ds Maxバージョンをサポートしていません。そのため検証には2009以降の3ds Maxバージョンを使用する必要がありました。
また論文では mentalray を使用している為、mentalray が同梱されている 3ds Max 2017を使用しました。これにより、実際に mentalray の結果と比較することができます。また3ds Max 2017は 3ds Max Design の機能を完全に内包しています。
3Dモデルとシーンの準備
この比較ケースのテストシーンは論文の内容とできる限り同じとなる様に再現されました。3Dモデルは、論文から参照できる全ての情報を使用して再構築されました。しかしながら論文には窓フレームと壁の厚さの詳細な測定値が無かった為、オリジナルのモデルと一致するように調整されました。
シーンで意図的に変更されたものが1つあります。 – V-Rayでは3dsMax標準のmentalray用デイライトシステム・セットアップをサポートしていない為、代わりに 1つのVRayLight(ドームライト)に置き換えられました。またドームライトのテクスチャに”フィジカルサン&スカイ環境”マップが割り当てられ、マップから参照される太陽は太陽ポジションヘルパーによって論文と全く同じ日付セットされました。
このセットアップを行う事で、もともと3ds Max DesignのDaylight skyとして使用されていたPerez Skyモデルを、V-Ray Nextでもレンダリング可能なマップになります。また正確なサンプリングのために、ドームのテクスチャ解像度を最大の(8192)にセットします。 V-Ray Nextでは、ライトポータルを必要とせずにドームライトからの光を計算するように最適化されているため、シーンにポータルライトは作成しません。
マテリアルの設定
V-Rayマテリアルは、論文と同じパラメータ値で割り当てられました。ガラスの屈折値のみ調整が必要でした。再構築したシーンのウィンドウパネルは、各ガラスが別々のオブジェクトで作成されています。したがって、2つの別々のオブジェクトにV-Rayマテリアルを使用してアーチ&デザインマテリアルのガラス(2つのパネルを単一のオブジェクトからシミュレートするためのもの)に登録された屈折値を適用すると、正しく表示されません。代わりに、NRC Daylighting Laboratoryの調査から測定された72.0%の透過率が適用されました
正しい屈折値を決定するために、窓を白い背景および屈折環境、および黒のGI環境および反射環境を持つ別の空のシーンに配置しました。目標はレンダリング結果として72%グレイを測定する事にあります。これは排他的な方法で屈折からのtransmission(透過率)を表します。72%グレイの値は [0-255] RGB値範囲では 183.3、または浮動小数点数表現では 0.72 として表されます。 237.2の屈折カラーが最も近い結果(正確には8ビットのカラー値で183、および浮動小数点数のカラー値で0.719)を生成しました。
完全なマテリアルのリストは以下のとおりです。記述の無いパラメータについては、デフォルト値です。正確な浮動小数点数のカラー値は、Maxscript経由でVRayColorマップに入れて、UIで処理したときに整数に丸められないようにしました(例:$Walls.material.materialList[3].texmap_diffuse.color = color 224.756 224.756 224.756 )
アイテム | Daysim/Radiance マテリアル | 3dsMax Design/ Arch &Design マテリアル | 3ds Max /V-Ray Next マテリアル |
InteriorBackWall |
void plastic InteriorBackWall |
#diff_color (color 197 197 197) |
Diffuse VRayColor 197 197 197 Reflect VRayColor white, rgb multiplier 0.004 Fresnel reflections disabled |
InteriorCeiling |
void plastic InteriorCeiling |
#diff_color (color 224.765 224.765 224.765) |
Diffuse VRayColor 224.756 224.756 224.756 |
InteriorFloor |
void plastic InteriorFloor |
#diff_color (color 30.49 30.49 30.49) |
Diffuse VRayColor 30.49 30.49 30.49 |
InteriorFrontWall |
void plastic InteriorFrontWall |
#diff_color (color 192.255 192.255 192.255) |
Diffuse color VRayColor 192.255 192.255 192.255 |
InteriorSideWall |
void plastic InteriorSideWall |
#diff_color (color 192.255 192.255 192.255) |
Diffuse color VRayColor 192.255 192.255 192.255 |
MoullionMetalSilver |
void plastic MoullionMetalSilver |
#diff_color (color 170.745 170.745 170.745) |
Diffuse color VRayColor 170.745 170.745 170.745 |
ExteriorParkingLot |
void plastic ExteriorParkingLot |
#diff_color (color 28 28 28) |
Diffuse VRayColor 28 28 28 |
ExteriorGravelNearFacade |
void plastic ExteriorGravelNearFacade |
#diff_color (color 0 0 0) |
Diffuse VRayColor 0 0 0 |
ExteriorWall |
void plastic ExteriorWall |
#diff_color (color 192.255 192.255 192.255) |
Diffuse color VRayColor 192.255 192.255 192.255 |
ExteriorBlackCloth |
void plastic ExteriorBlackCloth |
#diff_color (color 0 0 0) |
Diffuse VRayColor 0 0 0 |
DoubleClearGalzing |
void glass DoubleClearGalzing |
#diff_color (color 0 0 0) |
Diffuse color VRayColor 0 0 0 |
ExternalWindowSill |
void plastic ExternalWindowSill |
#diff_color (color 178.49 178.49 178.49) |
Diffuse color VRayColor 178.49 178.49 178.49 |
光量の測定
テストシーンには、完全な24時間の昼光アニメーションが含まれています。ドームライトにセットされた”フィジカルサン&スカイ環境”マップの太陽の位置はサンポジションヘルパによって制御され、2007年5月13日の晴れた日の研究所と同じ日のデイライト・アニメーションがセットされます。テストシーンでは1フレーム5分にセットされました。カスタムのMaxスクリプト(以下のプロジェクトファイルに同梱)を使用して論文内で計測されているフレームで照明値の計算を自動実行しました。計算自体はVRayLightMeterによって処理されました。 V-Rayライトメーターは、そのギズモが配置されているシーンの別個のポイントで正確な光測定値を提供するユーティリティです。
結果
VRayLightMeterは一度に複数の測定点を提供します。一度計算されると、現在のフレームの結果が自動的にすべての最終照度値を持つ.csvファイルに保存されます。 .csvファイルの4番目に番号が付けられたVRayLightMeterの中心点の結果だけがトータル照明のテストで使用されました。 DSセンサの小さな測定点を忠実にシミュレーションします。
論文中の”Outside sensor on Sunny Day (May 13th)”のグラフは午前4時から午後8時の間の屋外の計測データを示します。従ってフレーム48~240 各フレームで VRayLightMeter が計算され .csv ファイルに保存されました。以下にオリジナルのグラフデータ上に、VRayLightMeterの結果(オレンジ色)を描いた結果があります。
このグラフデータは、.odsファイルで提供されています。
同様の方法で、屋内のDS2センサー位置で同じ晴れた日(5月13日)の48?192フレーム(合計145ファイル)のVRayLightMeterが計算され.csvファイルに保存されました。
DS2センサーからの”TC1 Base case”測定値は、下のグラフのVRayLightMeter(オレンジ色)の結果と重ねて表示されます。
このグラフデータは、.odsファイルで提供されています。
高い点と低い点の正確な位置は、内側のセンサーが太陽によって直接照らされ、窓フレームの影に隠れた正確な瞬間に対応していることに留意しなければいけません。元の論文のモデルを参考にしていたので、それらの瞬間は時間的に完全に一致しています。Radiance(Daysim 3.0)データの内部センサは、予想とはかなり異なるグラフを作成しますが、提供されたリサーチファイルのデータを正確に表示しています。
両方のグラフでは、フレーム 48~55 および 232~240 のデータは取り除かれています。これらのフレームは、早朝(4:00?4:35)と夕方(19:20?20:00)に対応しています。
理由は、これらのフレームでは太陽が地平線の下に位置するため、気象データファイルは入力情報として0を提供するからです。このような場合、3ds Maxの”フィジカルサン&スカイ環境”マップは、スカイモデルを自動的に別のモデルに切り替える為、出力値が歪められます。これらのフレームは、最小のライト値を返すとみなしました。
結論
ChaosGroupでは、検証結果が素晴らしい結果であり、更なる調査の出発点となると考えます。
V-Ray Nextでは、VRayLightMeterの計算に改良されたアルゴリズムを使用しているため、今回のようなガラスを透過する日光の適切な計測が可能になっています。限られたサンプリングでの純粋なブルートフォース計算では、ガラスオブジェクトを通過するGI Rayで問題が発生することがあるため、V-Ray 3.6およびそれ以前のバージョンでは、内部センサーの値が異なってしまうでしょう。
参考
* Christoph Reinhart, Experimental Validation of AutodeskR 3ds MaxR Design 2009 and Daysim 3.0, Autodesk Canada Co. Media & Entertainment, 2009 http://www.autodesk.com/us/3dsmaxdesign/B3241.MentalRayValidation_v3.pdf
最新記事 by Yamauchi (全て見る)
- Chaos Unboxed ロードマップをアナウンス - 2024-02-28
- MaterialX と V-Ray: 3Dクリエイティビティの次世代ワークフロー - 2024-02-26
- V-Ray 6, for 3dsMax Update 2 サイドノート - 2023-12-08