Cycles Renderは、Blender 2.61で搭載された物理ベースのレンダリングエンジンです。 なお、初期設定では標準レンダリングエンジンのBlender Renderが利用されるようになっており、Cycles Renderは利用されません。 Cycles Renderを利用するには、レンダリングエンジンの切り替えが必要です。
また、単純にCycles Renderに切り替えただけでは望むような結果は得られません。 マテリアルの設定やライティングなどが、標準レンダリングエンジンのBlender Renderとは若干異なるためです。
Cycles Renderを利用するためには、いくつか知っておかなくてはならないことがありますので、ここで解説しておきます。
まずは、マテリアルおよびシェーダ関係の操作で注意すべき点を説明します。
では、新規ファイルを開いた状態から説明を進めます。 画面上部のプルダウンメニューの"File" -> "New"を実行して新規ファイルを開いてください。
なお、新規ファイルを開くと、レンダリングエンジンはBlender Renderが選択された状態になります。
上図のようにPropertiesウィンドウのマテリアルパネル切替ボタン()を押します。
上図のようにマテリアル関連のパネル群が表示されます。 Diffuseパネルには拡散反射シェーダの情報が、Specularパネルには鏡面反射シェーダの情報が表示されます。 見慣れた画面であり、特に変わったものはありません。
では、レンダリングエンジンをCycles Renderに切り替えましょう。
上図のようにInfoウィンドウのレンダリングエンジン選択リストから" Cycles Render" を選択します。
レンダリングエンジンを切り替えたことで何が変わったのか、マテリアル関連のパネル群を見てみましょう。
上図のようにシェーダ関連の設定項目らしきものが見当たりません。 拡散反射色の設定項目であろう "Diffuse Color" が目に入る程度です。
シェーダ関連の設定項目が無いのは、シェーダノードネットワークが存在しないためです。 シェーダノードネットワークがシェーダノード(機能ブロック)をつなげたものだということはすでに説明しました。
標準レンダリングエンジンであるBlender Renderでは、ノードネットワークが存在しなくても問題はありません。 というよりも、Blender Renderでは、ノードネットワークは中級者・上級者向けの機能です。
ところが、Cycles Renderでは、シェーダはシェーダノードで実装されています。 つまり、シェーダノードネットワークを構築しなければ、シェーダは適用できないのです。
そういうことなので、まずはシェーダノードネットワークを構築しましょう。
上図のように[Use Nodes]ボタンを押します。
上図のようにSurfaceパネルの内容が変化し、また、新たにVolumeパネルが表示されました。 なお、Surfaceパネルでサーフェイスシェーダ、Volumeパネルでボリュームシェーダに関する設定を行います。
ではここで、レンダリングエンジンをBlender Renderに戻してみましょう。
上図のようにInfoウィンドウのレンダリングエンジン選択リストから" Blender Render" を選択します。
レンダリングエンジンをBlender Renderに戻したことで、マテリアル関連のパネル群はどう変化したでしょうか。
上図のようにシェーダ関連の設定項目が消えました。 DiffuseパネルとSpecularパネルがありません。
なぜ、DiffuseパネルとSpecularパネルが消えたかというと、Blender Render用のシェーダが存在しないからです。
順を追って説明します。 まず、新規ファイルを開いた時点では、レンダリングエンジンはBlender Render が選択されていました。
Blender Renderでは、利用者が操作しない限りシェーダノードネットワークは構築されません。 シェーダノードネットワークが存在しないため、既定のシェーダのみが機能している状態でした。
その既定のシェーダが存在したため、DiffuseパネルとSpecularパネルが表示されていたのです。
その後、レンダリングエンジンをCycles Renderに切り替え、続けて、[Use Nodes]ボタンを押しました。 それにより、シェーダノードネットワークが構築され、Cycles Renderの標準のサーフェイスシェーダであるDiffuse BSDFシェーダが追加されました。 また、選択中のマテリアルは、シェーダノードネットワークを利用する設定へと切り替わりました。
そして、最後の操作でレンダリングエンジンをBlender Renderに戻しました。 レンダリングエンジンはBlender Renderに戻りましたが、選択中のマテリアルがシェーダノードネットワークを利用するという設定は解除されていません。 さらに、そのシェーダノードネットワークに組み込まれているシェーダノードは、Diffuse BSDFシェーダなのです。
つまり、レンダリングエンジンはBlender Renderなのに、Cycles Render用のシェーダと結びついているのです。 Cycles Render用のシェーダは、Blender Renderでは使えません(逆もまた同様)。
よって、シェーダは存在しないのと同じであり、DiffuseパネルとSpecularパネルには何も表示されないのです。
シェーダ関連の設定項目が消えたのは、上記の理由によるものです。 つまり、選択中のマテリアルがシェーダノードネットワークを利用するという設定になっていることが問題です。
では、その設定はどこで制御するのでしょうか。 探してみましょう。
上図のようにマテリアル選択リスト()の右側に、それらしいボタンがあります。 そうです、この[シェーダノード有効]ボタンが悪さをしているのです。
では、この[シェーダノード有効]ボタンをオフにしてみましょう。
上図のように[シェーダノード有効]ボタンをオフにします。 結果はどうなるでしょうか。
上図のようにシェーダ関連の設定項目が再表示されます。
続いては、Cycles Renderでのランプの扱いについてです。 Blender Renderと同じ感覚ではランプは扱えません。
ランプの設定が、シェーダと同じようにシェーダノードで実装されるようになりました。 シェーダノードネットワークを構築しないままだと、設定できるのはLampパネルにある、
という程度です。
[Use Nodes]ボタンを押してシェーダノードネットワークを構築することで、ランプとしてまともに機能するようになります。
利用すべきシェーダノードは、発光を表現するためのEmissionシェーダです。
ランプの明るさについても注意が必要です。 Blender RenderとCycles Renderでは、ランプの明るさに違いがあります。
Blender Renderでは、ランプの種類に何を選んでも、初期設定のままでそれなりに明るくレンダリングされていました。 しかし、Cycles Renderでは、初期設定では暗すぎたり明るすぎたりするランプが多いです。
例えば、ポイントライトは、Strength を 500 に設定して、ようやくBlender Renderでの初期ファイルと同じ程度の明るさになります。
Cycles Renderでは、ヘミライトはまだ実装されていません。 現状では、ヘミライトの振る舞いは太陽と同じ、つまり、偽物です。
現状でヘミライトを使ってしまうと、将来的にヘミライトが正しく実装された時に、現在の結果と異なってしまいます。 ヘミライトは使わないようにしましょう。
Blender 2.77のマニュアルにも、
Hemi lamps are not supported, and will be rendered as point and sun lamps respectively, but they may start working in the future, so it’s best not to enable them to preserve compatibility.- 引用元 -https://www.blender.org/manual/render/cycles/lamps.html
と記載されています。
Cycles Renderの話題を扱っているネット上の記事の一部では、『Cycles Renderでは、ランプは使わずにメッシュオブジェクトを発光させて光源にしなければならない』と記載されていることがあります。
しかし、マニュアルには、そんなことは記述されていません。 マニュアルには、
Next to lighting from the background and any object with an emission shader, lamps are another way to add light into the scene.- 引用元 -https://www.blender.org/manual/render/cycles/lamps.html
と書かれています。
筆者の英語力では、"Next to" を『次いで』と訳すべきか、『並んで』と訳すべきかはわかりません。
『BackgroundシェーダとEmissionシェーダで発光させたオブジェクトに次いで、シーンに光源を追加する方法としてランプがあります』となるのか、『BackgroundシェーダとEmissionシェーダで発光させたオブジェクトと並んで、シーンに光源を追加する方法としてランプがあります』となるのかはわかりません。
どう訳すべきかはわかりませんが、どう訳すにしても『ランプを使うな』とは解釈できません。 というよりも、マニュアルにはさらに、
The difference is that they are not directly visible in the rendered image, and can be more easily managed as objects of their own type.- 引用元 -https://www.blender.org/manual/render/cycles/lamps.html
と書かれています。 『BackgroundシェーダやEmissionシェーダで発光させたオブジェクトとの違いは、カメラに映らないことと、ランプという種類だから管理が楽であること』という意味でしょう、たぶん。
今はもうありませんが、Blender 2.28で、『ラジオシティ』と呼ばれる機能が搭載されました。
ラジオシティは、グローバルイルミネーションの考え方に基づいた陰影計算の技法で、間接光を表現することができました。 熱工学に基づいて仮想世界の各地点の明るさをあらかじめ計算し、その計算結果をレイトレーシングで利用することで間接光を表現していたのです。
ラジオシティでは、光源にランプは用いず、メッシュオブジェクトを発光させて光源にします。 マテリアルのShadingパネルのEmitで、発光度合いを指定するのです。 例えば、蛍光灯のメッシュを発光させたり、窓のメッシュを発光させていました。
『Cycles Renderでは、ランプは使わずにメッシュオブジェクトを発光させて光源にしなければならない』というネット上の情報は、ラジオシティの情報が形を変えて生き残っているのかな、とちょっと思いました。
レンダリングエンジンをCycles RenderからBlender Renderに戻す場合には、マテリアルがシェーダノードネットワークを利用するかどうかの設定も見直す必要があります。
Cycles Renderでは、ランプの扱い方がBlender Renderとは異なります。 ランプの設定の見直しが必要です。