元記事:
Rendering optionsレンダリングオプション
Blender2.32リリースログ
(モデル: WP van Overbruggen氏)
ここで使用されているすべての画像はdemo fileによるものです(zip, 2.8MB)
(訳注:現在配布されていません)
レイトレース全般
- RenderButtonsWindow(F10)の"Ray"オプションを設定することによりレイトレースのレンダリングが可能になります。Blenderではこの方法は、ZBufferとスキャンラインレンダリングを「最初に衝突した物」のレンダリングに使用する形で統合されています。
- 新しいオプションのほぼすべてがMaterial、Lamp、World用の'Shading context'ボタン(F5)にあります。
Materialでは鏡面(Mirror)と透過(Transparency)の設定が一つの新しいButtonPanelにまとめられています。
- Blenderはレイの交差判定の最適化にオクトツリーを使用しています。この方法では、あなたが環境全体をできるだけコンパクトに抑えた時に最もスピードが早くなります。例えば、壁や床などの外部のオブジェクトがオクトツリーに追加されるのを、そのMaterialの"Traceable"をOFFにすることにより禁止することができます。
- 環境マッピングはレイトレースの初期化および有効になる前にレンダリングされます。これは環境マッピングを引き続き高速に使用できるようにするためです。
- 既知の問題:レイトレースのコードは各々のレイの反射と屈折について、新しい正確なフィルタリングとオーバーサンプリング値で計算してはいません。これにより、反射・屈折されたテクスチャ画像が予想よりぶれてしまいます。
こちらにBlenderのレイトレーサのより詳細な技術背景と実装について書いてあります。
レイトレースシャドウ
- Blenderのすべてのlampのタイプでレイトレースされた影が使用できます。Spotライトだけはまだ、多くのシチュエーションに便利な機能である、シャドウバッファの使用の選択が存在しています。
- SunとHemiでは実際のLampの位置は関係なく、Sun・Hemiの方向にコンスタントにレイがトレースされます。
- RenderButtonsWindow(F10)の"OSA"を設定することにより、オーバーサンプリングの修正を行えます。これによりなめらかなアンチエリアスがかかりながら、シャープな影が得られます。
- 同じくRenderButtonsWindow(F10)の"Shadow"をONもしくはOFFにより、シャドウバッファとレイトレースシャドウの両方の計算を有効もしくは無効にすることができます。
(訳注:右の画像は、左:シャドウバッファ、右:レイトレースシャドウ)
ソフトシャドウ
- 従来、多くの変数がソフトシャドウに関連してきましたが、このリリースではそれがAreaライトだけで可能になります。Spotと普通のLampにもソフトシャドウを持たせることはできますが、Lampボタンの再編成と、3Dの描画方法の再考が必要になるでしょう。
- 'area'のサイズとは別に、XとY方向(Areaランプのタイプが'Rect'の場合)のサンプリング量を独立して設定することができます。
- ソフトシャドウには4つのオプションがあります。
- "Clip circle" : サンプリングの形状に円だけを使用することにより、スムーズな結果を得られます。
- "Dither" : 2x2のディザマスクを使用します。
- "Jitter" : 擬似乱数によるオフセットをサンプリングに適用します。
- "Umbra" : 影が満ちている場所をさらに強調します。
Areaライト
新しいLampのタイプ"Area"が追加されました。これはラジオシティの法則(ストークスの法則)をplaneから受けるエネルギー量を計算するのに使用しています。結果は非常にすばらしい、いい広がり方をした局所照明になっています。
Areaライトで最適なライティング状態を得るには、実際のスタジオでの照明とカメラのような作業が要求されます。これがなぜ新しい露出方法が追加されたか(下記参照)の主な理由です。 | | 部屋の窓として集められた6つのAreaライト。スムーズでリアルな照明が得られます |
- Areaライトは実際には距離(二次方程式)に敏感であるため、その効果は早く大きくなりすぎ、もしくは小さくなりすぎてしまいます。このためLampの"Dist"の値を使わなければなりません。Dist=10に設定することにより、10Blender単位(Lampオブジェクトを拡大縮小していないと仮定)の距離の適正な光量が得られます。BlenderのLampのデフォルトの"Dist"値(20)は一般のほとんどの場合、標準のBlenderのシーンを越えてしまいます! | | Areaライト一つ、影なし
|
- Areaランプの光の広がりは'gamma'でコントロールします。
- Areaランプに準備されている形状はsquare(正方形)、rect(長方形)、cube&box(立方体)です。最初の二つのみ実装済です。typeを設定し、Sizeを定義します。
- Sizeボタンはエネルギーの量に影響しません。3DWindow内でLampを拡大縮小することによっておこないます。これはもしあなたがシーン全体のサイズを変更したとき、光量を同じにしたいケースをカバーするためです。もしシーンを明るくも暗くもせず、単にAreaランプの大きさを変えたいなら、このボタンを使用すれば光量は全く同じになります。
- Areaライトを3次元、直方体と立方体に拡張することを計画しています。
- Areaライトは1方向、-Z軸方向に向かっていることに注意して下さい。
透過光(Ray Transparency)
- 新しい"Transp and Mirror"パネル内の"RayTransp"を設定することにより、使用可能になります。BlenderのデフォルトのAlpha値、1.0では完全に不透明になることに注意して下さい。一般的に、Fresnel値を設定し、Alphaスライダを1.0のままにしておくことで、すばやくいい結果を得ることができます。
- "IOR"を設定することで、「屈折率(Index Of Refraction)」が決まります。値は1.1(水)から1.5(ガラス)が現実的です。
- 正しく"Depth"値を設定することで、屈折時の一つのレイの再帰の最大値を明示的に表すことができます。5が一般に認められる最小値です。 | |
|
- 正しい屈折の計算には、3Dモデルが持つ法線は正しい(矛盾なく外側を指す)方向に向いていなければいけません。この方法では、屈折は入ったり出たりする透明な材質の厚さを「検出」できます。よって、リアルなグラスのモデルは常に面の両側が必要です。
- レイトレースでレンダリングしない場合、'RayTransp'MaterialはSolidでレンダリングされます。これはいいプレビューとなるだけではなく、環境マップを作成するときにも見映えがよくなります。この理由により、環境マップはレイトレースなしでレンダリングされます。
- 'Ray transp'のレンダリングはAlpha情報(Alphaが1.0)では止まりません。
- 新しいMaterialオプション、"ShadowTra"はレイをすべての"ray shadow"のLampから呼び出し、遭遇するすべての面のAlphaを評価します。結果的に半透明な影のようになります。
注意:これはシェーディングオプションで正しく、Lampのオプションではなく、さらに半透明なオブジェクトが半透明な影を与えるのではありません。主な理由は、レンダリングスピードをコントロールできるようにするためです。(訳注:要は影を受ける側で設定することにより、他のオブジェクトに設定するよりも、最適化しやすい―光源や半透明なオブジェクトでは影響を与える可能性のあるすべてについて同様に計算をする必要がでてくるためと思われる)。
レイトレース鏡面反射(Ray Mirror)
- Materialオプションの"Ray Mirror"をONにし、"RayMirr"スライダの値を0より上にする必要があります。
- テクスチャも新しいMapToチャネルのこの値で同様に動作します。
- "Mir"のRGBカラーにより、鏡面反射の色を定義します。
- 正しく"Depth"値を設定することで、屈折時の一つのレイの再帰の最大値を明示的に表すことができます。2がすでに一般的に受け入れられている結論です。
(訳注:二つの鏡面球。左:Textureが量に影響。右:反射カラーに影響)
フレネル効果
Blenderでは、透明度と鏡面反射の両方がフレネル(Fresnel)効果によりコントロールできます。これは表面のnormalと視線の方向との角度に依存するということを意味します。一般的には、大きい角度(外側、輪郭)では、より反射が大きく、またはより材質が不透明になります。
いくつかのテストリリースを重ねた後、最適なフレネルコードが見つかりました。現在リリースされたものはハイブリッドバージョンで、「本当の」フレネルだけでなく、アーティスティックな自由とコントロールを与えています。これには二つの設定が用意されています。
- "Fresnel": 機能の「パワー」で、高ければより強くフォールオフします。
- "Fac": 要素のコントロールで、どれだけ混合が生じるかの調整用です。
前者を5.0に、後者を1.25にすると「本当の」フレネル効果が得られます。
フレネル効果はTransparentモードが"Ztransp"(レイトレースなし)でも同様に動作します。
露光(Exposure)と輝度(brightness)
以前のBlenderは色が可視RGB空間を超えると、ストレートに'1.0'(もしくは255)でクリッピングしていました。これにより、光が飽和したときに醜い帯ができていました。 指数関数による補正公式を使用することにより、現在はこれを上手く補正できるようになりました。
World Buttons(F6)に二つのオプションがあります。 - "Exp": 指数曲線。0.0で線形、1.0で曲線になります。 - "Range": 可視色(0.0-1.0)に変換される色の範囲の設定。 | | Exposureグラフ。"Range"を2、"exp"の範囲を0.0(直線)から1.0に設定 |
品質向上したバンプテクスチャ
MarbleやWood、cloudsなどのプロシージャルテクスチャのNormalを計算する方法が改良されました。古い方法に代わり、現在はNormalを元にしたテクスチャのサンプリングに3つの小さなx、y、zのオフセットを加えたものを由来としています。これは良好で正確な結果を与え、古い方法(単にNormalを少し回転したもの)に比べて優れています。
(左の画像:下が古い方法。同じ設定)
ガウシアンサンプリング
通常、OSAでレンダリング中、Blenderでのそれぞれのサブピクセルのサンプルは等しくカウントされ、集められてピクセルの色になります。
'Gauss'オプション(F10)を設定することにより、それぞれのサブピクセルのサンプルが変更可能なサイズの小さな重みつきのマスクをつくり、これが近隣のピクセルに同様に影響を及ぼします。結果的にはスムーズなエッジと、ガンマ特性が緩やかになり、そしてモーションのエリアシング(物体が非常に遅く動く時)が少なくなり、よりふさわしいものになります。
これはNeoGeo時代の長い期間のリサーチの結果であり、そして私たちが探すことのできたすべての科学的な調査・理論の再構築を元にしています。プラス、私たち自身のものも少し。
現在ガウスオプションは普通のFaceの端にのみ動作します。半透明のレンダリングでは動作せず、レイトレースレンダリングの高周波(エリアシング)の解決もできておらず、Unified Renderでも動作しません。すべての動作についての議題は別の機会に。 | | Osa 8、Gauseなし
Osa 8、Gauseあり |
その他色々
- スペキュラの最大を511に調整、Blinnシェーダは再びこの驚くべき小さなスペキュラサイズを持つようになりました。
- 新しいオプション"Translucency"(Shaders panel)により、ライトが裏側を同様に照らすことが可能になりました。これはディフューズシェーディングのみが含まれ、スペキュラーはありません(当然!)。
Translucencyは "Map to" Textureチャネルにも同様に存在します。
Translucencyは半透明のMaterialに光が発生する効果を与えるのに適しています。左の画像サンプルを見ればスポットライトが半透明な面に効果を与える様子がわかります。