2016年7月20日
※一部の動画およびリンクコンテンツが閲覧できない可能性がございます。詳細はページ下部をご覧ください。
物理ベースレンダリング(PBR)はメリットが多く、とても人気が高まっています。アーティストはサーフェス属性をオーサリングするときに勘に頼らなくてもよくなりました。マテリアルをいったんセットアップしてしまえばゲームの開発中にそれを何度も使うことができ、アセットの作成という、よりクリエイティブな作業にエネルギーを振り向けることができます。
ただ物理ベースレンダリングが登場してから、一貫していない部分を見つけて修正するのに苦労するアーティストを見かけることがあります。このブログでは、物理ベースのシーンを取り上げ、そういう状態が起きてしまったときの対処の仕方をお見せしていこうと思います。
このチュートリアルを開始する前に、まず物理ベースレンダリングと光の物理学の基礎は押さえておかれた方が良いと思います。Allegorithmic社のWebサイトには、とても簡潔なガイドが用意されているので、こちらをご一読されることをお勧めいたします。
画像1では、マテリアル(この場合は壁)はスポットライトが当たってとても明るく見えますが、影の部分が暗すぎて物理的に一貫していません。レンズの明度や絞りを上げて周りの影を正しくするとスポットライトが明るくなりすぎ、特に床の上の光が不自然です。
物理ベースのシーンでライティングやシェーディングが正しくないように思える場合は、まずマテリアルかテクスチャのプロパティを調べてください。ここでは、この現象を掘り下げるにため、ベースカラービジュアライザーを開きます。
このモードにすると、問題の壁はサーフェスが黒く浮いて見え、アルベドが正しく設定されていないことが分かります。これが理由でマテリアルが吸収するライトの量が多くなってしまっています。 基本色の値が物理的に正しい範囲に収まるよう調整し、ライトの条件が変わっても正しい反応が得られるようにします。
壁のマテリアルのプロパティは、ビジュアライザーで正しく見えるようになり、隣接するエリアにも馴染んでいます。エディターに戻ると、ライトの出力は正しく、影はバウンス量が適切で柔らかくなっているのが分かります。それまで過度に暗い影がスポットライトの輪郭をはっきりさせてしまっていましたが、柔らかくなっています。壁を照らすライトやそこから落ちる影はシーン全体で物理的に一貫しています。
ライトを動かしたり明度を調整したりすることで、マテリアルの反応が正確であることが確認できます。これらの変更で、ライトのバウンスや影は正しく更新されます。
画像5は、壁、ポスター、岩の反射が著しいシーンを示しています。手前の岩の反射は背後のものとはちがって金属調に見えます。金属調の岩の反射が無効になるように反射キャプチャーを調整すると、ポスター、壁、周りの岩の反射が不鮮明になり、画像7に示すように薄くなります。岩は金属調のままですが、その他の部分は鈍化し鉛っぽくなります。
この現象に対処するには、まず岩のマテリアルのプロパティを確認しましょう。メタリックビジュアライザーを開きます。
このオブジェクトがシーンの他の部分に比べて際立っているのがすぐに分かりますね。マテリアルエディターを開いて、詳しく調べましょう。
設定は正しいようですが、金属調の値が0.8(金属成分が80%)というのは、このマテリアルにおいては良くありません。正しいマテリアル値は、この場合は0.0です(岩が金属っぽいわけはありません!)。これを入力して修正しましょう。
エディターモードに戻ります。さっきの現象が修正されているのが分かりますね。岩と岩の反射の両方に一貫性があり壁の輝きも鮮やかです。シーンの周りで岩を動かすことで、反応に物理的な一貫性があるかどうかを確認できます。
最後に、画像10のキャラクターを見てみましょう。反射に物理的な一貫性がありません。この胴体は、明らかに身体の他の部分に比べて輝き過ぎです。胴体のゴム状の茶色いテクスチャは、脚と同じに見えなければなりません。相殺するため反射のインテンシティ(強度)を下げると、壁、パイプやキャラクターの手足など、周りのオブジェクトがおかしくなります。
前回もそうしたように、光について何か操作しようとする場合は、その前にまずマテリアルのプロパティを確認します。ラフネスビジュアライザーでマテリアルを調べます。まず胴体の粗さが、キャラクターの身体の他の部分とは明らかに違うのがすぐに分かりますね。
マテリアルエディターを開くと、他はすべて正しいけれど、1か所だけ違うのが分かります。テクスチャベースの「サンプラータイプ」がカラーに設定されています。テクスチャマップはサーフェスのラフネスを定義するためにグレースケールのマスクとして機能するため、値をシフトさせずシェーダーに正しく解釈させることが不可欠です。
テクスチャプロパティを開くと、テクスチャの値を詳しく見ることができます。
明度レベルが明らかに低すぎます。0.3から1.0に上げてテクスチャのラフネスを必要なレベルに調整します。
テクスチャがsRGBに設定されていることも分かります。ガンマ補正値が適用されていてテクスチャの値が誤ったものになっているということです。物理ベースのレンダリングでは、すべての値は実世界に基づいているので人工的な値補正は必要ありません。
最後に、サンプラータイプを開きます。圧縮設定がデフォルト値(DXT1)に設定されています。このせいでカラーテクスチャベースになっています。キャラクターの身体の他の部分に合わせるには、ここにはグレースケールのテクスチャ圧縮(R8)を適用しなければなりません。
これでラフネステクスチャの設定が正しくなりました。キャラクターのテクスチャをラフネスビジュアライザーで見ると同じになっています。これで物理的な一貫性が得られ、画像15で見るようにライトと反射は現実的で正確なものになりました。
シーンの中でライティングが予想通りに動かないと、通常アーティストはライティングが原因だと思います。ですから、これを動かしたり変えたり、または強度や方向を調整したりしますが、効果はありません。しかし、問題は初期のマテリアルとテクスチャのセットアップの段階で起こっているのです。物理ベースレンダリングでは、きちんとオーサリングしてあれば、ライティング条件に関係なくマテリアルの反応は正確なものになります。最初の構成に細心の注意を払えば、ゲーム全体でライティングが一貫するようにできます。
このブログは、マテリアルの構成が正しくないときによく起きる現象について概要をまとめました。魅力的なライティングでストレスなく素晴らしいゲームを開発していただけるよう、お役に立てれば幸いです。
Enlightenがゲーム開発にどのように貢献できるのかについてのさらなる詳細は、Enlightenのウェブサイトを参照されるか、または評価版をお問い合わせください。
by Geomerics, an ARM company
※ この記事は英語から翻訳されました。
Enlightenのお問い合わせについて
■メールでのお問い合わせ
■お電話でのお問い合わせ
TEL 03-5488-7481(営業直通)
平日 9:30~17:30