- 独立したマテリアルをマスターマテリアル(マスターサーフェス)にまとめる
古いShade3Dの表面材質を指定しているシーンを、PBRマテリアルとリニアワークフロー対応します。
ここではShade3Dのコンテンツ「king_tiger.shd」を使用しました。
Shade Explorerを使い、「形状 – 08_Leracy – king_tiger.shd」よりシーンに読み込みます。
このシーンはShade3D ver.19以前で作成されている形状ですので、リニアワークフローの設定は行われておりません。
また、マスターサーフェス(ver.20ではマスターマテリアル)化されていない材質が存在します。
また、表面材質の継承を使用しています。PBRマテリアルを使う場合、継承は対応できないため、継承しない形に置き換える必要があります。
ホワイトキーマスク/ブラックキーマスクを使用している場合、これは「Shade3Dマテリアル」を使用する必要があります。
リニアワークフローの指定
レンダリング設定
この作業は、ver.20のShade3D Basic/Standard/Professonalいずれでも指定できます。
メインメニューの「表示」-「イメージウィンドウ」を選択してイメージウィンドウを表示し、
レンダリング設定より「イメージ」タブを選択します。
ワーキングカラースペースより「リニアsRGB(ガンマ1.0)」を選択します。
色補正
メインメニューの「表示」-「色補正」を選択して色補正ウィンドウを表示し、
「ガンマ」が1.0になっていることを確認します。
テクスチャイメージのガンマ指定
この「king_tiger.shd」のシーンではテクスチャイメージを指定していないため設定は不要ですが、
イメージパートからイメージを選択し、形状情報ウィンドウの「カラースペース」を「sRGB(自動ガンマ)」にします。
複数イメージをまとめて変更したい場合は、ブラウザで複数のイメージを選択し、
形状情報ウィンドウの「カラースペース」を「sRGB(自動ガンマ)」にすると、選択したイメージのカラースペース指定がすべて変更されます。
環境光を0にする (大域照明使用時)
大域照明ありでレンダリングする場合は、統合パレットの無限遠光源ウィンドウで「環境光」を0にします。
レンダリングして確認(大域照明なし、背景なし)
以上で、リニアワークフローの設定ができました。
レンダリングすると、ver.19以前とver.20では以下のようになりました。
主にガンマのsRGBの影響で、リニアワークフローを考慮していない過去のレンダリング結果に比べると陰(Shade)となる部分が少し明るくなります。
レンダリングして確認(大域照明あり、背景あり)
以下は、背景としてShade Explorerより「背景 – Junction_1.shdbgr」を指定し、
イメージウィンドウのレンダリング設定の「イメージ」タブより、「背景を反映」チェックボックスをオンにして、
レンダリング手法「パストレーシング」、大域照明「パストレーシング」でレンダリングした画像です。
ver.20でリニアワークフロー対応したほうが自然な色合いでフォトリアルに近づいているのを確認できます。
独立した表面材質をマスターマテリアルにする
PBRマテリアルを使用した場合、材質によっては以前の「Shade3Dマテリアル」の表現とあまり大きな変化はありません。
一方、金属やガラス表現、ラフネスがある材質ではPBRマテリアルのほうが設定がしやすくなり、レンダリング結果も物理的により現実に近いものになります。
古い表面材質指定(Shade3Dマテリアル)をPBRマテリアルに置き換えるのが目的ですので、
ここでは作業しやすくするために、すべての表面材質をマスターマテリアルにします。
独立した表面材質をマスターマテリアルにする
このシーンの場合、ルートパートに表面材質が割り当てられていますが、マスターマテリアルではありません。
これは表面材質が独立した状態になります。
表面材質ウィンドウの「登録」ボタンを押してマスターマテリアル名を指定することで、
マスターマテリアル化できます。
この作業を、すべての独立した表面材質で行うのは手間がかかります。
ナレッジベースの「独立した表面材質をマスターサーフェスにある程度まとめたい (スクリプト)」のスクリプトで、
独立した表面材質をマスターマテリアルにまとめます。
これにより、8つのマスターマテリアルにまとめられました。
これでレンダリングしても、レンダリング結果は変わってないことをご確認くださいませ。
PBRマテリアルへの移行は、
もともと存在した3つのマスターマテリアル + 新しい8つのマスターマテリアルのみ行えばいいことになります。
マスターマテリアルをPBRマテリアルに移行
以降はPBRマテリアルを扱うため、Shade3D ver.20のProfessonal版でのみの作業になります。
合計で11個の「Shade3Dマテリアル」のマスターマテリアルがあり、これを「PBRマテリアル」に置き換えます。
「ブラックキーマスク」と「ホワイトキーマスク」を探す
表面材質で「ブラックキーマスク」や「ホワイトキーマスク」を使用している場合、
これはver.20段階ではPBRマテリアルでは対応していません。
その部分は「Shade3Dマテリアル」のままにしておきます。
マスターマテリアルパートの各マスターマテリアルをブラウザで選択し、
表面材質ウィンドウの「その他」ボタンを押します。
「その他の表面材質属性」ウィンドウの「ブラックキーマスク」「ホワイトキーマスク」チェックボックスがオンの場合、
このマテリアルはPBRマテリアルには移行しません。
前述のスクリプトでマスターマテリアル化された「material_3」「material_1」がこれに該当します。
Shade3DマテリアルをPBRマテリアルに移行
まずは、ルートパートに割り当てられている「material_0」の名前が付いたマスターマテリアルをPBRマテリアルに移行します。
表面材質ウィンドウを見ると、基本設定の「拡散反射」「光沢1/サイズ」、
マッピングの「大理石/拡散反射」が2つ割り当てられています。
「作成」ポップアップメニューから「新規PBRマテリアル」を選択すると、Shade3DマテリアルからPBRマテリアルになりますが、
表面材質設定は全部クリアされてしまいます。
そこで、いったん「複製」で「material_0」を複製し、元の「material_0」をPBRマテリアルにします。
Shade3Dマテリアルの「拡散反射色」を、PBRマテリアルの「ベースカラー」に指定します。
色の移行については、メインメニューの「表示」-「カラー」を選択してカラーウィンドウを表示し、
この色の領域に「拡散反射色」カラーボックスの内容をドラッグ、
カラーウィンドウからPBRマテリアルの「ベースカラー」カラーボックスにドロップ、とすることで色情報を渡すことができます。
元の表面材質では反射や荒さの指定はないため、
PBRマテリアルの「ラフネス」「メタリック」への移行は、目視でそれらしく与えます。
マッピングは、手作業で1つ1つ同じパラメータを割り当てていくことになります。
この表面材質の場合は2レイヤ分の「大理石/拡散反射」を移行します。
PBRマテリアルでは「大理石/ベースカラー」とし、合成/色/適用率/乱れ/投影を同じ値にします。
また、表面材質ウィンドウのマッピングの一番下で「位置&サイズ」タブを選択し、
サイズの値を指定します。
「-」「+」ボタンを調整し、オリジナルのマッピングサイズと同じになるようにします。
これは、表面材質ウィンドウ一番上のサムネイルを確認しながら同じ模様の配置になるように調整します。
これで、ルートパートに割り当てられているPBRマテリアルの移行ができました。
複製した「material_0」は不要なので削除しておきます。
次に「レッドブラウン」のマスターマテリアルを選択し、これをPBRマテリアルに移行します。
マッピングのところが灰色になっています。
これは、親の材質(material_0)を継承する設定になっています。
マッピングのチェックボックスをオンにすると、継承は解除されて親の情報が割り当てられた状態になります。
この状態の間マスターマテリアルを複製し、同様にShade3DマテリアルからPBRマテリアルに移行します。
これの作業を「ブラックキーマスク」「ホワイトキーマスク」を使わないすべてのマスターマテリアルに対して行います。
マスターマテリアルは以下のようになりました。
※ 少しパラメータを変えた部分もあります。
レンダリングを行い、結果を確認
レンダリングすると以下のようになりました(背景なし、背景の反映なし)。
レンダリング手法はレイトレーシング、大域照明なしです。
これだけでは、見栄えがしませんので、レンダリング手法を「パストレーシング」、大域照明を「パストレーシング」にし、
Shade Explorerより「背景 – Junction_1.shdbgr」の背景を割り当て、「背景を反映」をオンにしました。
ver.19以前での大域照明ありのレンダリングと比較しました。
ver.19以前では、あえてリニアワークフローに似せた指定(ガンマ2.2など)は行わないようにしています。
この一連の作業で、既存のシーンをリニアワークフロー+PBRマテリアル対応するのは、結構工程が多いのが分かります。
もし、フォトリアルにレンダリングする目的、かつ、PBRマテリアルを使う目的の場合、
相互の変換は考えないように材質指定を行うほうがいいかもしれません。