チュートリアル / 宋さんの3ds Max キッチンスタジアム
第1回:鏡面反射光 ハイライトの謎
- 3ds Max
- おすすめ
- コラム
- チュートリアル
- ビジュアライゼーション
- レンダリング
近年の3D CGの作例を見ると、写真と見間違うほどのリアルなCG作品が多く見られます。こういった写真のようなレンダリングを実現したいと思い 3ds Max や 3ds Max Design を導入された方も多くいらっしゃると思います。
しかし、せっかくツールを購入して操作方法を身につけても、なかなかリアルなCGイメージが作れないとお悩みの方が多くいらっしゃるのも事実です。
今回から始まる私のコラムではこういった悩みをもっていられる方々に、リアルレンダリング制作のポイントやコツをお伝えしようと思います。ただし、これから連載するコラムの内容だけではなく、既にこのDesign VIZサイトに連載されている様々なコラムの内容もとても重要な内容ですので、それらと併用して活用していただければ幸いです。
では、レンダリング設定での悩みを出来る限り解決できるようにフォトリアルレンダリング画像作成に必要な各ポイントに絞って話を勧めていきます。また、現在 3ds Max、3ds Max Design には V-Ray をはじめとする優れたレンダリングプログラムが多く提供されていますが、今回のコラムでは標準機能として組み込まれている mental ray に限定して話を進めます。しかし、このセッションで学ぶことはスキャンラインレンダリングや他のサードパーティ製レンダリングプログラムでも応用が利くものですので、普段はV-Rayばかり使っているので、あんまり mental ray って使ったことはないな、という方も是非お付き合いいただければなと思います。
その物体が立体物であると人間の目が認識するためには陰影をはじめ様々な情報が必要です。
左の図では板の上に球が乗っているのがわかります。でも右図ではどうでしょうか?まったくもって何を意味している絵なのか理解できません。ちょっとばかばかしく思えるかもしれませんが、シェーディング技法を使った左図の方が明らかに表現力は上です。ではさらに要素を加えていきます。
今度は影を設定してみました。先ほどの図(左)では形は理解できても球体が板の手前に浮いているのか、接しているのかが判断できません。影を付けると板のどの辺に位置しているかがわかります。でも床に食い込んでいるか浮いているのかがわかりませんよね、さらに表現を加えて・・・
環境がもたらす照明効果を与えることによって、球のより正確な設置場所が理解できます。
物体をシェーディングすることで、また影の情報を加えることでその形や位置などの情報が見る側に伝わります。つまり、現実世界で発生する様々な物理的な要素を画像に織り込むに従って、その映像は精度(リアルさ)を増していきます。
先程のサンプル画像にあったように、CG作品を作る上で光の情報をコントロールするという事はとても重要なポイントです。真っ暗な部屋の中では何も視覚的な情報を得ることはできません。光があって初めてものとして対象物が見えてくるわけです。光というとライトの設定や手法を学ぶと勘違いされがちですが、実はマテリアルの設定こそがライティングの肝であるという事を解説していきましょう。
この球体イメージは以下の3つの光要素で構成されています。
ハリウッドの超ハイエンドCG画像・映像であっても、この3つの光の構成でイメージが作られているのに違いはありません。よって、これらの3つの光要素を十分に理解することだけでも作品をフォトリアルなイメージに近づけていくことが可能です。これ本当です。
今回は、この中から鏡面反射光(スペキュラーライト)に的を絞って進めます。
残念ながら、現実世界のあらゆる物体にハイライトという属性はありません。これはイラストや絵画の世界で作画したビジュアルにメリハリやアクセントをつけるために用いられる技法であって、3DCGでのフォトリアルなビジュアルを作成するうえではあまり意味を持ちません。
ではこの鏡面反射はなぜパラメータとして存在するのでしょうか?
鏡面反射光は下図の通り、物体に映りこんだ要素を意味します。ただし、3DCGの黎明期では、現在のレイトレーシング法などの技法を用いると莫大な計算時間とコストがかかるために、回避策としてハイライトという技法を用いました。
スペキュラー(従来のハイライト)という技法はシーン内にあるカメラから発せられた光線が物体表面にあたり、そのヒットポイントで反射した光線が、ライトの位置に衝突した場合に、そのヒットポイントにハイライトとして属性を配置するものです。ただし現実世界では、太陽や照明器具などの物体として存在する光源が照射するオブジェクトに映りこんでいる状態を指します。ですが、正確な反射成分を描画するよりも、単純なハイライトの作成は圧倒的に計算が単純で、高速に処理できるため、古くから多くの画像・映像制作で使用されてきました。
では、いわゆるハイライトとしての鏡面反射光ではなく物理的に正しい反射成分としてのハイライトとは何なのでしょうか?
mental ray レンダリングプログラムでは物理的に正しい光の挙動をシミュレーションしますので、Arch & Design のような mental ray 用の Shader プログラム(マテリアル)ではハイライトとしてのパラメータは存在しません。どういうことかというと全てリフレクション(反射)要素として表現されます
実はこの鏡面反射光のコントロールは、最終的なレンダリングイメージの質に大きく影響します。フォトリアルなCGイメージを作成するためには非常に重要なポイントです。
物理的に正しい鏡面反射光の表現光源である窓の形だけでなく床も写りこんでいます。
物体の反射要素はその物体の表面の状態によって大きく変化します。以下の画像を見ると、物体の表面が粗くなればなるほど、鏡面反射要素が広がっていくのがわかります。
mental ray ではこういった表面の反射効果を簡単にコントロールできるパラメータがあります。でも実際にCGソフトで表面のざらつきをモデリングするわけにはいきませんのでパラメータで同様の効果を発生させます。
Archi&Design マテリアル内の[反射][光沢][光沢サンプル]がそれです。他にもDGSシェーダでもコントロールが可能です。また正直に細かいバンプマップを表面に割り当てる方法もあります。 従来のハイライト作成のプロセスは、フォトリアルなイメージを作成する場合においては、必要ないということも言えます。
皆さんの周りにある多く現実の物体を見ていただくと、前頁の左端のような光沢の強い表面を持つオブジェクトは限られます。まずほとんどないと言っていいでしょう。CGの初心者によくあるのが、反射のパラメータを無意味にあげてしまい、不自然な物体表現に陥ってしまうことです。
でもテカテカした物体は確かにあるよ!という方はそのオブジェクトをよく観察して下さい。多くの光沢のあるオブジェクトはその素材表面にウレタン系やアクリル系のクリヤ塗料などが塗布されています。そしてよくよく観察すると反射のレベルはさほど強くないはずです。ではクリヤ塗装された質感のように異なる材質がミックスした物体表現はどうやって表現すればいいのでしょうか? いくつか方法がありますが、応用が利く手法をご紹介します。
セラックとは石油製品が出回る前に用いられたニスや表面保護材の材質を意味しています。(なんと当時使われていた本物の素材は昆虫の分泌液だそうです)。セラックマテリアルをマテリアルマップブラウザーから選択すると右図のようなパラメータが表示されます。
上部にある基本マテリアルにはクリヤ塗装される前のマテリアルを設定し、下部にあるセラックマテリアルにはクリヤ塗料となるマテリアルを設定します。ただし、下部のセラックマテリアルには透明度の設定などは必要ありません。このセラックマテリアルは基本マテリアルにスーパー・インポーズされます。
Photoshop でいうところの「覆い焼きカラー」に近い合成をおこないます。[セラックカラーブレンド]はセラックマテリアルの合成強度を設定します。材質にもよりますが、70-90%ぐらいを目安にすると良いと思います。このマテリアルをうまく使うと、微妙な自動車の塗装や複雑な表面効果を効率よく制作できます。
球体のイメージにはセラックマテリアルとして Archi&Design マテリアルを使っています。拡散反射光は真っ黒、反射設定を強めにしています。前記のとおり透明の設定は行っていません。
これに関しては次回のコラムで詳しく解説していきましょう
しかし、せっかくツールを購入して操作方法を身につけても、なかなかリアルなCGイメージが作れないとお悩みの方が多くいらっしゃるのも事実です。
今回から始まる私のコラムではこういった悩みをもっていられる方々に、リアルレンダリング制作のポイントやコツをお伝えしようと思います。ただし、これから連載するコラムの内容だけではなく、既にこのDesign VIZサイトに連載されている様々なコラムの内容もとても重要な内容ですので、それらと併用して活用していただければ幸いです。
では、レンダリング設定での悩みを出来る限り解決できるようにフォトリアルレンダリング画像作成に必要な各ポイントに絞って話を勧めていきます。また、現在 3ds Max、3ds Max Design には V-Ray をはじめとする優れたレンダリングプログラムが多く提供されていますが、今回のコラムでは標準機能として組み込まれている mental ray に限定して話を進めます。しかし、このセッションで学ぶことはスキャンラインレンダリングや他のサードパーティ製レンダリングプログラムでも応用が利くものですので、普段はV-Rayばかり使っているので、あんまり mental ray って使ったことはないな、という方も是非お付き合いいただければなと思います。
フォトリアルな画像で必要となる要素
まずは、簡単なところから始めていきましょうその物体が立体物であると人間の目が認識するためには陰影をはじめ様々な情報が必要です。
左の図では板の上に球が乗っているのがわかります。でも右図ではどうでしょうか?まったくもって何を意味している絵なのか理解できません。ちょっとばかばかしく思えるかもしれませんが、シェーディング技法を使った左図の方が明らかに表現力は上です。ではさらに要素を加えていきます。
今度は影を設定してみました。先ほどの図(左)では形は理解できても球体が板の手前に浮いているのか、接しているのかが判断できません。影を付けると板のどの辺に位置しているかがわかります。でも床に食い込んでいるか浮いているのかがわかりませんよね、さらに表現を加えて・・・
環境がもたらす照明効果を与えることによって、球のより正確な設置場所が理解できます。
物体をシェーディングすることで、また影の情報を加えることでその形や位置などの情報が見る側に伝わります。つまり、現実世界で発生する様々な物理的な要素を画像に織り込むに従って、その映像は精度(リアルさ)を増していきます。
先程のサンプル画像にあったように、CG作品を作る上で光の情報をコントロールするという事はとても重要なポイントです。真っ暗な部屋の中では何も視覚的な情報を得ることはできません。光があって初めてものとして対象物が見えてくるわけです。光というとライトの設定や手法を学ぶと勘違いされがちですが、実はマテリアルの設定こそがライティングの肝であるという事を解説していきましょう。
光の3要素
この球体イメージは以下の3つの光要素で構成されています。
鏡面反射光(スペキュラ―ライト) | いわゆるハイライト |
拡散反射光(ディフューズライト) | 光に物体にあたり発散する光の要素 |
周囲光(アンビエントライト) | 光が当たらない個所の色、いわゆる闇色 |
ハリウッドの超ハイエンドCG画像・映像であっても、この3つの光の構成でイメージが作られているのに違いはありません。よって、これらの3つの光要素を十分に理解することだけでも作品をフォトリアルなイメージに近づけていくことが可能です。これ本当です。
今回は、この中から鏡面反射光(スペキュラーライト)に的を絞って進めます。
鏡面反射光(スペキュラーライト)
3DCG初心者の方でよく見受けられるのですが、鏡面反射光=ハイライトの表現と思われる方が圧倒的に多いことです。残念ながら、現実世界のあらゆる物体にハイライトという属性はありません。これはイラストや絵画の世界で作画したビジュアルにメリハリやアクセントをつけるために用いられる技法であって、3DCGでのフォトリアルなビジュアルを作成するうえではあまり意味を持ちません。
ではこの鏡面反射はなぜパラメータとして存在するのでしょうか?
鏡面反射光は下図の通り、物体に映りこんだ要素を意味します。ただし、3DCGの黎明期では、現在のレイトレーシング法などの技法を用いると莫大な計算時間とコストがかかるために、回避策としてハイライトという技法を用いました。
スペキュラー(従来のハイライト)という技法はシーン内にあるカメラから発せられた光線が物体表面にあたり、そのヒットポイントで反射した光線が、ライトの位置に衝突した場合に、そのヒットポイントにハイライトとして属性を配置するものです。ただし現実世界では、太陽や照明器具などの物体として存在する光源が照射するオブジェクトに映りこんでいる状態を指します。ですが、正確な反射成分を描画するよりも、単純なハイライトの作成は圧倒的に計算が単純で、高速に処理できるため、古くから多くの画像・映像制作で使用されてきました。
では、いわゆるハイライトとしての鏡面反射光ではなく物理的に正しい反射成分としてのハイライトとは何なのでしょうか?
mental ray レンダリングプログラムでは物理的に正しい光の挙動をシミュレーションしますので、Arch & Design のような mental ray 用の Shader プログラム(マテリアル)ではハイライトとしてのパラメータは存在しません。どういうことかというと全てリフレクション(反射)要素として表現されます
実はこの鏡面反射光のコントロールは、最終的なレンダリングイメージの質に大きく影響します。フォトリアルなCGイメージを作成するためには非常に重要なポイントです。
物理的に正しい鏡面反射光の表現光源である窓の形だけでなく床も写りこんでいます。
物体の反射要素はその物体の表面の状態によって大きく変化します。以下の画像を見ると、物体の表面が粗くなればなるほど、鏡面反射要素が広がっていくのがわかります。
mental ray ではこういった表面の反射効果を簡単にコントロールできるパラメータがあります。でも実際にCGソフトで表面のざらつきをモデリングするわけにはいきませんのでパラメータで同様の効果を発生させます。
Archi&Design マテリアル内の[反射][光沢][光沢サンプル]がそれです。他にもDGSシェーダでもコントロールが可能です。また正直に細かいバンプマップを表面に割り当てる方法もあります。 従来のハイライト作成のプロセスは、フォトリアルなイメージを作成する場合においては、必要ないということも言えます。
皆さんの周りにある多く現実の物体を見ていただくと、前頁の左端のような光沢の強い表面を持つオブジェクトは限られます。まずほとんどないと言っていいでしょう。CGの初心者によくあるのが、反射のパラメータを無意味にあげてしまい、不自然な物体表現に陥ってしまうことです。
でもテカテカした物体は確かにあるよ!という方はそのオブジェクトをよく観察して下さい。多くの光沢のあるオブジェクトはその素材表面にウレタン系やアクリル系のクリヤ塗料などが塗布されています。そしてよくよく観察すると反射のレベルはさほど強くないはずです。ではクリヤ塗装された質感のように異なる材質がミックスした物体表現はどうやって表現すればいいのでしょうか? いくつか方法がありますが、応用が利く手法をご紹介します。
複数のマテリアルを合成させる
便利な 3ds Max マテリアルにセラックというマテリアルがあります。セラックとは石油製品が出回る前に用いられたニスや表面保護材の材質を意味しています。(なんと当時使われていた本物の素材は昆虫の分泌液だそうです)。セラックマテリアルをマテリアルマップブラウザーから選択すると右図のようなパラメータが表示されます。
上部にある基本マテリアルにはクリヤ塗装される前のマテリアルを設定し、下部にあるセラックマテリアルにはクリヤ塗料となるマテリアルを設定します。ただし、下部のセラックマテリアルには透明度の設定などは必要ありません。このセラックマテリアルは基本マテリアルにスーパー・インポーズされます。
Photoshop でいうところの「覆い焼きカラー」に近い合成をおこないます。[セラックカラーブレンド]はセラックマテリアルの合成強度を設定します。材質にもよりますが、70-90%ぐらいを目安にすると良いと思います。このマテリアルをうまく使うと、微妙な自動車の塗装や複雑な表面効果を効率よく制作できます。
球体のイメージにはセラックマテリアルとして Archi&Design マテリアルを使っています。拡散反射光は真っ黒、反射設定を強めにしています。前記のとおり透明の設定は行っていません。
このサンプル画像をよく観察すると球体の外周部分の反射率が高く見えます。と、ここでまた重要なポイントが出現します。物体の位置による反射率の変化です。
これに関しては次回のコラムで詳しく解説していきましょう