レンダリング設定(Render Configuration)
エンジン(Engines)
エンジンの選択により、シーン内でどのように光線追跡するかが決まる。LuxCoreRenderは、以下のエンジンを提供する。
パス(Path) CPU/OpenCL※1:カメラから光線を発射する単方向パストレーサ
タイル状パス(Tiled Path) CPU/OpenCL:Pathとほぼ同じ単方向パストレーサだが、イメージ全体をタイルにして計算する特別なサンプラを使用する(これにより、メモリ使用量が少し減る)。OpenCLバージョンでは、一度にレンダリングされるタイルの数を、コンピュータデバイスに適合させるので、タイルサイズはあまり重要でない。パフォーマンスが悪い場合、レンダリングされるタイルの数は自動的に増やされる。パスの最後のタイルに到達すると、デイバイ間で分割される。すべてのAOV※2に対応する。
双方向(Bidir) CPUのみ:双方向パストレーサは、カメラと光源の両方から光線を発射する。フィルム※3全体を段階的にサンプリングする。AOVの一部(RGB、RGBA、アルファ値、深度、サンプル数)をサポートしている。Metropolisサンプラーと一緒に使うことを推奨する。
サンプラ(Sampler)
サンプラは、フィルム上のどの点を選択するか(どの領域でどれくらい光線を照射するか)を決定する。LuxCoreRenderは、以下のサンプラを提供する。
ソボル(Sobol):ノイズパターンが改善されたランダムサンプラ。イメージ内のややこしいところにサンプリングを集中する、適応サンプリングをサポートする。
メトロポリス(Metropolis):イメージ内の明るい場所にサンプリングを集中するので、コースティックのレンダリングに優れている。主な欠点は、GPU上でレンダリングしているとき、他のサンプラと比較してRAMを多く消費する点である。このサンプラは、GPUでの演算ではお勧めしない。
ランダム(Random):シンプルなランダムサンプラ。適応サンプリングをサポートしている。ほとんどのケースでは、ソボルサンプラが適している。
クランピング(Clamping)
すべてのエンジンが、variance clampingをサポートしている。クランプ値はシーンの明るさに合うように選定する必要がある。
キャッシュ(Caches)
キャッシュは、フィルムサンプリング開始前の事前計算のことである。これにより各々の領域においてレンダリングが加速される。キャッシュは、記憶領域に保存され、再利用される。例えば、アニメーションのようにカメラが動いただけのような場合に用いられる。
PhotonGI 間接光キャッシュ:シーン内の間接光がノイズが多い場合に用いる。
PhotonGI コーステックキャッシュ:シーン内にSDS-コーステックがある場合に用いる。
環境光キャッシュ:背景からくる直接光がノイズが多い場合に用いる。パフォーマンスに影響を与えるため、オープンなシーンで使用してはならない。このキャッシュは、厳しいクランプ値を用いている場合、目に見えるアーティファクト(人工物?)を作り出してしまうかもしれない。もしこれが起こった場合、クランプ値を上げる。
直接光サンプリングキャッシュ:多くの光源がある場合、これを用いる。大半の光源は、それらの周辺の限られた領域にのみ影響を及ぼす。このキャッシュは、そのような状況におけるレンダリングで、より効果的である。このキャッシュは、厳しいクランプ値を用いている場合、目に見えるアーティファクト(人工物?)を作り出してしまうかもしれない。もしこれが起こった場合、クランプ値を上げる。
光源の処理方法(Light Strategy)
光源ストラテジーは、プロセッサの処理能力を、どの程度、それぞれの光源に割り当てるかを決めている。すべての光源は、同じ確率でサンプリングされる(uniform light strategy)が、もし、他の光源より明るい光源があった場合、あまり貢献しない弱い光源に多くのプロセッサ資源が割かれるので、そのイメージはノイズが多くなる。この解決方法として、power あるいは、log powerストラテジーを用いる。それらは、より明るいライトにリソースを割り振るようになる。
以下のストラテジーが使用可能:
・uniform
・power
・log power(default)
光のサンプリング確率は、光源の重要度設定によっても、影響を受ける場合がある。
importance:プロセッサ資源を他の光源とくらべてどれくらい割くかを示しており、光源ストラテジーによって計算された重要度を、スケーリングするのに用いる。例えば、uniformストラテジーにおいて、importance=2.0の光源は、1.0の光源の2倍サンプリングされる。もし、powerを採用した場合、importanceは、光量に乗算されます。
※1:OpenCLは、並列コンピューティング用のAPI。
※2:AOV(Arbitrary Output Variable)は、ハイライトや反射による映り込みなどを、別々の画像として分けて出力し、後で合成する手法において、それぞれの要素の事を指す。
※3:フィルムは、文字通りカメラのフィルムのようなもので、出力画像を指していると考える
材質(Materials)
基本(Basic)
マット(Matte)
Matteは、くすんだ拡散表面を表現し、レンダリングが早い。Matteは、反射によるハイライトを持たないので、小さい背景用オブジェクトや、テストレンダリングに用いられます。これは、マットなプラスチックや粘土、コンクリート、研磨されていない石や、土壁のような材料を表現することができます。
defuse color:素材のメインカラー。現実世界では、0.8を超える値ないため、使用しないようにしてください。
sigma:素材の粗さのパラメータ。小さいほどなめらか。値は0~30deg.の間が現実的。
半透明マット(Matte Translucent)
Matte Translucentは、光を透過させることができます。これは、プラスチックのランプカバー(光沢のある半透明の計算は時間がかかる)や、くすんだプラスチック、くすんだ有機材料(チーズやバナナの皮)、ある種のテキスタイルに最適です。
Reflection Color:材料表面から散乱される光の色を指定します。残った光が、材料を透過します。物体の透明度を高くしたい場合、この色を暗い色にすればよいです(つまり反射する光量を少なくする)。非常に暗い物体を得たい場合、この色を暗い色にして、 transmission/volume colorも暗い色にします。
Transmission Color:材料を透過する光の色を指定します。この色は、材料の厚みにかかわらず、均等に反映されるので、不自然に見える場合があります。これの解決方法として、ここのパラメータは1.0(白)にして、物体にボリュームを設定して、内部色を付与します。これにより、体積による光(色)の吸収と、表面散乱を表現することができます。
sigma:マットと同じ
光沢(Glossy)
Glossyは、光沢のある拡散性の表面を表現します。これは、多くのプラスチック、塗装された木材、艶のある陶器(磁器、タイルなど)、濡れた表面などに最適です。multibounceオプションを有効にすることで、ソフトな見た目にすることができ、毛羽立ちや髪の毛の散乱を模倣し、様々な布を表現するのに最適です。
Diffuse color:matteと同じ
Specular Color and IOR:これは、光沢塗の色を設定するものです。多くの現実世界の材料において、すべての色は、光沢というより下地の部分に存在するので、この色は、たいていグレーにしておく必要があります(例えば、陶磁器の塗装は釉薬を塗る前に施すように、色は、diffuse colorで指定することになる)。暗い色は、特に浅い角度において、物体からの反射を少なくします。オプションで、コーティング材料の屈折率(IOR)を指定することができるが、この場合、色の指定はできなくなり、常にグレーになります。これは、コーティングの材料として、特定の材料を指定するのに役立ちます。たとえば、濡れた床は、IOR=1.333(水の屈折率)となります。specular colorは、0.25以下で設定してください。また、現実の物質は、0.03~0.05といった、もっと低い値をとります。
Roughness:このパラメータは、材料がどれくらい輝くかを指定します。低い値ほど輝き、0は完全な鏡面、0.8はマットとなる。0.8~1は、非現実的な値で、避けるべき内容です。
Absorption Color / Depth:これは、光沢面での光の吸収を定義することができます。ただし、これは「吸収色」なので、見た目は逆になることに注意してください。もしこの色に青を指定すると、見た目は、黄色っぽい色に見えます。色の反転を使って、設定する前に、どんな色になるかを確認することができます。このオプションを無効にするには、真っ黒に設定するか深さ(Depth)を0nmに設定してください。逆に、有効にするのは、深さを0nm超にしてください。
Multibounce:このオプションは、毛羽立ちや髪の毛などの物体による表面散乱をシミュレートするものです。これは、肌や服に適用するときに役立ち、柔らかい見た目にします。
半透明光沢(Glossy Translucent)
Glossy Translucentは、透過部分と光沢コーティングの両方を持つ拡散表面を表現します。この材質は、肌や臓器、葉っぱ、目、牛乳、ケチャップ、スライムなどを表現するのに向いています。また、石鹸や特定のプラスチックにも適しています。
Diffuse Color:Matteと同じ
Transmission Color: Matte Translucentと同じ
Specular Color and IOR:Glossyと同じ
Absorption Color/Depth:Glossyと同じ
金属類(Metals)
金属(Metal)
Metalは、一般的な金属表面を表現します。ベースの色はあらゆる色をサポートしているだけでなく、アルミニウムや金といったプリセットもサポートしています。
Color/Fresnel Texture:このオプションで、ベース色を設定します。また、fresnel textureを読み込む事で、プリセットの金属を設定することもできます。測定値を含むFresnel NKファイルは、Sopra形式、またはLuxpop形式のいずれも使用できます。
Roughness:Glossyと同じ。
鏡(Mirror)
Mirrorは、全反射鏡面を表現します。
Reflection Color:鏡に色を設定します。このパラメターを調整することで、鏡像の明るさを制御できます。0.55~0.65あたりから始めるとよいです。
Thin Film:表面のフィルムコーティングを設定します。これにより、虹色の干渉縞を引き起こすことができます。これらは、厚さと屈折率で制御されます。屈折率は、フィルム材料と同じでなければなりません(フィルムのように残る洗浄溶液は、ほぼ水なので、1.3~1.35の屈折率を持ちます)。また、厚さを変えることで、求める結果を得ることができます。
ガラス(Glass)
ガラス(Glass)
Glassは、滑らかな誘電体材料を表現します。これは、ガラス、クリスタル、透明な液体、透明なプラスチック、宝石を表現するのに向いています。
IOR:屈折率のこと。これは、全体的な見た目を決定します。値は、シミュレートしようとしてる材質によって変わります。Dispersion(下記参照)との組み合わせで、コーシーの式の係数A(第1項の係数)を設定する必要があります。
Dispersion:分散とは、屈折率が、光の波長(つまり色)の関数として計算されることを意味します。0より大きい数値を設定すると、スペクトラルモードになります。これは、レンダリングを遅くしますが、色の効果が追加されることで、よりリアルになります。LuxCoreは、分散をモデリングするのに、第2項までのコーシーの式を用います。分散は係数B(第2項の係数)でみられます。現実的な値としては、0.003~0.0015をとります。より詳しい内容は、Glass Material IOR and Dispersionを参照ください。
Reflection Color: 表面から反射する光の色です。
Transmission Color:これは透過後の光の色を設定します。ここで設定された色は、材質全体に均質に適用されるので、代わりに、Volumeから色を取得することをお勧めします。
Thin Film:Mirrorと同じ。
Architectural: このオプションは、透過中の光を屈折しなくします。これの効果は、反射は屈折率が適用され、光の透過は、ガラスが屈折率1.0のようになる事です。結果として、得られるガラスは、透過・反射色と、体積効果のみです。これは、窓ガラスのような薄い板の場合に使用します。レンダリング結果の違いは小さく、計算量が減るので、レンダリング速度が速いです。ただし、歪曲したガラスなどの場合は、偽物っぽく見えるので、無効にしてください。Architecturalには、計算量を減らす以外にも、重要な機能があります。透過中に屈折をしない事で、Architectualガラスは、影の光線とアルファに対して、透明となりますが、そうでない場合は、どちらに対しても透明ではありません。これは、窓ガラスにとって特に重要です。影の光線を透過させることで、窓を通し、外の光に対して、直接光をサンプリングできるので、レンダリングの効率が大幅に向上する。また、反射しているがアルファを伝播しているので、窓上のリアルな内部反射と吸収を得ることができ、窓の外の景色と合成できる。
粗いガラス(Rough Glass)
Rough Glassは、粗い表面をもつ誘電材質を表現します。これは、すりガラスや氷を表現するのに適しています。
IOR:屈折率のこと。このパラメータは、材料全体の見た目を決めるもので、シミュレートしたい材料に合わせて設定する必要があります。
Reflection Color:ガラスと同じ
Transmission Color:ガラスと同じ
Roughness:これは、マイクロファセットの粗さを変える事により、その材料がどれくらい透明かを決めるものです。低い値ほど透明で、0は、標準的なガラスのような、全反射・透過表面となります。高い値ほど粗くなり、0.8はmatteと同じになります。
その他(Others)
車塗装(Car Paint)
Car Paintは、Glossyの応用で、多層コーティングによる散乱表面をシミュレートします。これは、車塗装に最適なだけでなく、多くのハイテクな見た目の塗装表面、たとえば飛行機の表面や、宇宙船、近未来の武器といったものにも適しています。
プリセット
すぐに使えるプリセットがあります。これらは、Car Paintの元となった論文から得られたものです。
Effcient Acquisition and Realistic Rendering of Car Paint Johannes Günther, et. al.
パラメータ
パラメータは、最初、複雑に見えるかもしれません。ただ、基本を理解すれば、それほど難しくありません。12個のパラメータがありますが、いくつかはまとめることができ、わずか6つ(M1-3、R1-3、Spec Col 1-3)です。
三つの光沢レイヤーを使うことができ、それぞれのレイヤーが3つのパラメータを持っています。一言でいえば、それらは、反射色(色/明るさ)、R(フレネルパワー)、M(粗さ)です。たとえば第1層のパラメータは、 "Specular color 1","R1","M1" です(それらは実際には積み重なっておらず、ランダムに選択されるため、レイヤーという表現はちょっと間違っていますが、ここでは便宜上、レイヤーという言葉を使います)。
光沢レイヤーを設定するとき、他の2レイヤーの反射色を真っ黒にすることで、それぞれのレイヤーを個別に調整できるので、それぞれのレイヤーを単独設定する事が、もっとも簡単な方法だと気づくでしょう。また、RとMを高い値(R=0.9、M=0.2など)にすると、より金属質な見た目になり、RとMを低い値(R=0.01、M=0.02など)にすると、光沢のあるワックスのかかったような見た目になります。
Diffuse Color:物体のベース色になります。現実世界に飽和した光沢色はないので、0.8は超えないようにしてください。
Specular Color:それぞれのレイヤーの色と明るさを制御します。この色の値を増やしていくと、レイヤーはより多くの光を反射し、強い反射を引き起こします。この色を緑にした場合、グレーのオブジェクトの反射は、Car Paintの表面に緑が現れます。赤い色のオブジェクトが反射すると、赤い物体は黄色になります(赤と緑の組み合わせによるもの)。
R1-3:Rは、フレネル効果(水面などで、見る角度によって反射される光の量が変わる現象)の強度を設定するものです。低いR値だと、反射率は、鋭角での観察で最大強度を得られるようになる。高い値だと、物体全体でほぼ均一に反射されます。一般的に、最も明るくて最も光沢のあるレイヤーには、低いR値を指定し、光沢が鈍くなるほど、R値を増やしていきます。どのくらいが良いかは、シミュレーションする表面によって変わります。
M1-3:これは、反射がどれだけ散乱されるかを設定します。設定範囲は、0.0001~1.0です。値が高いほど、散乱が強くなります。
Absorption Color and Depth:Absorptionは、Car Paintの表面に届いた光が、反射されず吸収されることです。光源が白色なら、それは、赤・緑・青によって構成されています。もし、Absorptionを赤に設定したら、赤を吸収して、緑と青を反射します(結果、シアン色になります)。Absorptionは、反射光の色ではなく散乱光の色に作用します。Depthは、absorption色の倍率になります。この値を増やすと、光の吸収が増えます。これを0.0にするか、Absorption colorを黒にすると、吸収が無効になります。
ベルベット(Velved)
Velvedは、毛羽立った表面を表現します。ベルベットなどの布を表現するのに適しています。また、照明によって、見え方が様々に変化するので、光沢面や布のような他の材料と混ぜて使うのに向いている場合があります。
Thickness:毛羽立ちの厚みを設定する。値が高いほど、はっきりと毛羽立った表面になります。
p1, p2, p3:これらは、毛羽立ちの外観を決定する多項式の係数です。これらは、かなり抽象化されているので、良いイメージを得るまで色々動かしてみるのが良いです。
布(Cloth)
Clothは、織物を表現します。これに関するパラメータを列挙すると膨大になるので、一般的な布(デニム, ポリエステル繊維、ウール、シルク)については、プリセットを用意しています。この布モデルについては、Piti Irawan氏の博士論文 "The Appearance of Woven Cloth" をベースにしています。LuxCoreRenderでの実装は、Wenzel Jakob氏のMitsubaレンダーのソースコードを改造しており、そのコードもまた、Irawan氏のソースコードをベースにしています。
注記:このマテリアルを適用したオブジェクトは、???UV wrapped である必要があります。
6つの異なる布地のプリセットが利用できます。下記は(翻訳元はレンダリング結果がある)、同じ色合いですが、布地のパターンが異なるため、それぞれ異なる見え方をしています。diffuseとspecular colorを使って単色で指定する代わりに、テクスチャを使ったり、velvetやglossy translucentと組み合わせることで、さらに高度な布地を生成できます。
デニム(Denim)、シャルムーズ(Silk Charmeuse)、コットン(Cotton Twill)、ウール(Wool Gabardine)、ポリエステル(Polyester Lining)、シャンタン(Silk Shantung)
Warp and Weft Diffuse Color:布地の拡散色
Warp and Weft Specular Color:布地の反射色
Repeat U and V:UV展開に基づく、U,V方向の糸のサイズ
*UV unwrapping(UV展開):立体に貼りついたテクスチャを平面に展開することを指す。Uが縦方向、Vが横方向で、二次元の図を意味している。
*UV wrapping : 展開の逆なので、テクスチャを張り付けることを指す。
ミックス(Mix)
Mixは、二つの異なるマテリアルを混合させるのに使います。また、あるMixマテリアルを別のMixマテリアルの材料として使用する事ができます。これにより、複雑な組み合わせを実現できます。
Material1/2:混合するマテリアルを指定します。
Mix Amount:このパラメータは、それぞれのマテリアルが最終結果にどのように寄与するかを指定します。0を指定するとMaterial1が100%で、1を指定するとMaterial2が100%になります。Mix amountは、グレースケールマップを使って指定することもできます。
Volumeを混合できないことに注意してください。Material1、2に設定されたVolumeは無効です。Mixマテリアルそのものに対しては、Volumeを設定できます。
Null
Nullは、特殊なマテリアルで、目に見える表面を持ちません。これは、Volumeの入れるものとして使用します。
Nullとの混合により半透明のマテリアルを作る事はできますが、マテリアルの透過パラメータを変更した方が計算が速いです。Volumeと組み合わせる使い方は、Volumeのみの物体を作るのに使えます。これは、LuxCoreRenderがマテリアルの設定をする場合、その表面について設定がなされ、物体の中については、透過光がどうフィルタリングされるかを設定します。Nullは透過表面なので、カラーフィルターとして振舞います。これにより、煙や蒸気のようなメッシュを生成します。NullとVolumeを使用して、ライトを表現することもできます。
光沢表面(Glossy surface)
Glossy surfaceは、光沢のあるコーティングのみのマテリアルです。これは、他のマテリアルに光沢コーティングを施すのに使います。これは、それ自身にベースとなる反射層を持たず、他のマテリアルをベースとして指定する特殊なGlossyマテリアルとも言えます。
Base Material:光沢コーティングの下にあるマテリアルを指定します。たとえば、マットを指定すると、Glossy materialと同じものになります。ここでは、すべてのマテリアルが指定でき、Null、Mix、layeredや他の光沢コーティングされたマテリアルも指定できます。
Specular color and IOR:これは光沢の色を指定します。現実の物質では、色情報はベースマテリアルにあり、光沢側にはありません。ですので、ここの色はグレーとしておきます(陶磁器の着色が、釉薬を塗る前に施されるのと同じです)。色を暗くするほど、特に浅い角度での光沢が減少します。このほか、コーティングのIORも指定できます。ただし、コーティングの色指定ができなくなり、つねにグレーとなります。これは、特定の物質でのコーティングを再現するのに有用です。例えば、濡れたフロアなら、IOR=1.33で、これは水の屈折率です。colorの値は0.25以下である必要があり、一般的な材料はずっと低い値で、たとえば0.03~0.05といったものです。
Roughness:これは、マテリアルがどれくらい光沢があるかを定義します。0は完全な反射面で、0.8はマットな面になります。0.8~1は非現実的な値で、避けるべきものです。
テクスチャ(Textures)
イメージテクスチャ(Image Textures)
イメージテクスチャは、3Dの物体に投影した、2Dイメージのことです。テクスチャは、例えば、色やバンプといった、様々なマテリアルチャンネルで使用できます。一般的に、3Dアプリケーション上で、3Dの物体上へのイメージのUVマッピングが取り扱われています。
使用できるファイルフォーマットは以下の通り。LuxCoreRenderでは、PNGが最も相性が良いです。TIFやPSD(Photoshop)は、いくつかのプラットフォーム上では使えるかもしれません。
BMP (uncompressed)
EXR
JPG
PNG
HDR (Analyze 7.5)
RAW (consisting of a very simple header (in ascii), then the image data)
ASC (Ascii)
INR (Inrimage)
PPM/PGM (Portable Pixmap)
PAN (Pandore-5)
DLM (Matlab ASCII)
イメージテクスチャのパラメータ
何らかのイメージをテクスチャとして使う場合、下記の2つのパラメータが使用可能です。
・Gamma:テクスチャのガンマ補正値。1.0は、バンプマップや、鏡面反射マップ?のような、実際のRGB値を必要とする場合に使用します。モニター上で正しく色を表示したい場合、通常2.2を設定します。
・Gain:スケールを変更します。
コメント
コメントを投稿