新着情報

機能紹介 物理ベースレンダリング(2) glTFシェーダの基礎 (2022/04/21)

前回は物理ベースレンダリング(PBR)とglTFの概要について紹介しました。今回はMetasequoia 4内でどうglTFを扱うかを基礎から解説します。

Ver4.7で既にglTFシェーダと、glTFを格納するglbファイル入出力を搭載していましたが、当初はglbファイル出力をしない人には縁のない機能だったかもしれません。しかし、Ver4.8.0で物理ベースレンダリングに対応したパストレーシングが搭載され、ここでglTFシェーダは従来のPhongに代わるパストレーシングレンダリング向けの標準シェーダとしての位置付けとなりました。glbファイルを扱わなくても、パストレーシングレンダリングで高品質な画像を得たい人は、まず材質にglTFシェーダを割り当てるところから始まりとなります。

一度も使ったことのない方、また既に使っている方にもおさらいとして一から説明していきます。

glTFシェーダの設定

材質パネル内の[設定]を押して[材質設定]画面を開いた状態で、[シェーダ]欄を[Phong]から[glTF (PBR)]に切り替えます。

シェーダを変更すると[諸設定]の内容が切り替わり、また[Specular-Glossiness設定]と[拡張設定]が折りたたまれた状態で表示されます。この3つのグループ内の各項目がglTFシェーダ向けのパラメータとなります。

PhongよりもglTFシェーダをメインに使うなら、毎回切り替えるのが面倒なので、glTFシェーダを標準にしましょう。glTFシェーダに切り替えた材質を選択した状態で、材質パネルの[他]内の[標準材質として設定]メニューを呼び出すと、以降新規に作成した材質は登録された内容と同じになります。やっぱりPhongに戻したいときはメニュー横の矢印を押してください。

金属感・粗さ

前回も簡単に解説しましたが、物理ベースレンダリングにおいては[金属感]と[粗さ]の2つのパラメータが質感の設定に大きく寄与します。

この2つの値を変更しながら、プレビュー表示上でどう変わるか観察してみましょう。縦方向に[金属感]、横方向に[粗さ]を変えて並べた結果がこちらです。

リアルタイムプレビュー表示

金属感が0のときは光の反射によるハイライトが付きません。金属感が0より大きくなるとハイライトが確認できるようになりますが、粗さが小さい左下のほうでは全体が暗くなります。

粗さに注目してみます。粗さが小さいうちは丸いハイライトの大きさが変化していきますが、0.7くらいになると輪郭がぼけてきて、1.0になるとハイライトがわからなくなります。

今度は環境マップを適用した状態でプレビュー表示を観察します。

環境マップ適用時のリアルタイムプレビュー表示

金属感・粗さの変化に対する傾向は同じですが、金属感が1に近づくにつれて背景の環境マップがくっきり反射してくるのがわかります。また、粗さが高くなるほど環境マップがぼやけて、元の画像がどんなかわからなくなります。

ちなみに、パストレーシングでのレンダリング結果がこちらになります。

パストレーシングレンダリング

おおむね同じような結果ですが、プレビュー表示とは環境マップのぼやけ具合などは微妙に異なります。これは、プレビュー表示が高速化やメモリ軽量化などのために処理を簡略化していることが一因です。(もう少し違いを小さくできないか検討中…)

ちなみに、glTFシェーダはすべてのパラメータがDirect3DやOpenGLによるリアルタイムのプレビュー表示に反映されます。材質設定ウィンドウ内の左上の小さい球体だけでなく、プレビュー表示と材質設定を並べて、実際のオブジェクトを観察しながら値を調整すると効率がいいでしょう。

並べて表示するには広めのモニター推奨

周囲光の影響について

glTFシェーダを適用したとき、Phongに比べて全体に白っぽいのが気になることがあります。

Phongもですが、glTFシェーダでもプレビュー表示には[周囲光]が影響します。光の当たらない箇所を暗くしたい場合、[照光]内の▼ボタンから[光源設定]を呼び出し、[光源]タブ内の明るさ(V)を下げてください。

明るさを0にすると、光の当たらない箇所は真っ黒になります。適当と思う明るさを設定してください。

なお、周囲光はプレビュー表示にのみ適用されます。パストレーシングレンダリングやglbファイル出力には影響しません。

拡張設定

Ver4.8.3ではPBR向けの拡張仕様に一通り対応しました。

[諸設定]グループの下側にある、閉じた状態の[拡張設定]をクリックすると、拡張設定内の各パラメータが表示されます。

チェック項目とその下に値の入力が並んでいますがが、チェックをオンにするまで各項目の値の設定はできません。

拡張設定は数が多くて一度に紹介できませんので、次回以降で説明していきます。

機能紹介 物理ベースレンダリング(1) 概要とglTF (2022/04/20)

Metasequoia 4 Ver4.8.3では最新のglTFの仕様に準拠した物理ベースのシェーダパラメータに対応しました。Metasequoiaでは物理ベースレンダリングに関する改良項目を以前のバージョンから順次取り入れてきましたが、今回の新バージョンでだいぶ整備が進んだことを踏まえて、物理ベースレンダリングとglTFについて複数回にわたって紹介していきます。

目次

物理ベースレンダリングの登場

物理ベースレンダリング(Physically Based Rendering; PBR)が登場する以前は、フォン(Phong)シェーディングモデルまたはその派生形が広く使用されていました。

Phongシェーディングは1970年代に提唱され、主に

  • ディフューズ(Diffuse; 拡散反射、拡散光) : ざらつきのある表面に光が照らされて明るく見える
  • スペキュラー(Specular; 鏡面反射、反射光) : 表面に反射して光源がハイライトとして写り込む
  • アンビエント(Ambient; 環境光) : シーン全体が照らされる

の3つの成分によってシェーディングを定義します。

Phongシェーディングモデル

この考え方はわかりやすく、また現代よりも遥かに性能の低い計算機環境でも扱いやすいシンプルな計算式でライティングを表現できたため、現在に至るまで長く使用されてきました。

しかし、この計算モデルは実際の物理法則に基づくものではないため、いかにもCGな感じの見栄えになりやすく、特に実写との合成には違和感をなくすために多大な編集の労力を要することもしばしばでした。

そこで、特に2000年代以降、拡散反射・鏡面反射それぞれについて実際の物理法則に基づいた計算式を導入して、よりリアルに見える計算モデルが活発に提唱されていきます。

特に2012年にDisneyから発表された論文“Physically Based Shading at Disney”ではデザイナーが直感的に理解しやすいパラメータ群で質感を定義できたため、広い支持を集めてRenderManなど様々な商用レンダラーに搭載されていきます。またこの後は、この計算モデルをベースにさらに改良を進めたモデルが提案され発展していくことになります。

このモデルやその派生形の計算モデルが一般に物理ベースシェーディング(Physically Based Shading; PBS)と呼ばれ、PBSを導入したレンダリングを物理ベースレンダリングと呼びます。

物理ベースシェーディング・レンダリング

Phongシェーディングモデルでは拡散反射・鏡面反射の成分を直接指定しましたが、物理ベースシェーディングでは拡散反射・鏡面反射の成分には

  • 金属感 (Metallic)
  • 粗さ (Roughness)

の2つのパラメータが大きく寄与します。

光源1つだけのライティングではPhongとの違いはわかりづらいですが、鏡面反射の計算の改良によりハイライトの形が歪みにくくなっているのが確認できます。

環境マップを光源として用いるときは、違いがよりはっきりとしたものになります。「粗さ」を設定可能なPBRでは表面のざらつきによって背景全体がぼんやりと写り、また明るい箇所については鋭いハイライトとして反映されます。

さらにSpecular, Sheen, Clearcoatなどのパラメータ効果が付与されて、より多様な質感が表現できます。

“Physically Based Shading at Disney”より引用

ただし、現実世界の物質にこのようなパラメータがあるわけではありません。物理ベースレンダリングも厳密に物理法則に基づくものではなく、あくまで以前よりもリアルっぽく見えるようになった計算手法でしかありませんが、パラメータの意味を理解して値を設定しやすい点において優れたものと言えると思います。

細かい理論や計算式などはここでは解説しませんので、興味のある方はDisneyの論文などを参照してください。

glTFの登場

Web上で3Dモデル・シーンを表現するフォーマットとして、古くはVRML、その後X3DやCOLLADA(※これはWeb用に限らず)なども提案されましたが、どれも広く普及するには至りませんでした。

そこでOpenGLやWebGLなどの規格を策定しているKhronos Groupが中心になって、新たに標準を目指すフォーマットとしてglTFが提案され、初版が2015年に策定されました。その後すぐに仕様の見直しが行われ、2017年にglTF 2.0として発表されます。現在glTFと呼んでいるものは、ほぼ2.0のことを指していると考えて構いません。

glTF 1.0では質感の定義にはPhongシェーディングが採用されていましたが、潮流の変化を見定めたということでしょうか、glTF 2.0では互換性のない形でPhongシェーディングを廃止し、代わりにMetallic/Roughnessパラメータを主とした物理ベースレンダリングが導入されることになります。

glTFによる物理ベースレンダリング

glTF 2.0の策定当初は少ないパラメータしかありませんでしたが、glTF自体は拡張によるパラメータ追加が可能な構造になっており、いくつかのベンダーが独自拡張を行っています。Khronosもまたその拡張をベースに検討を進め、Disneyの論文以降に発表された最新の計算手法も取り入れながら順次新しい拡張仕様を定義し、2021年7月時点で

  • クリア塗装;クリアコート(Clearcoat)
  • 光沢;シーン(Sheen)
  • 屈折率(Index of refraction; IOR)
  • 反射光;スぺキュラー(Specular)
  • 透過;トランスミッション(Transmission)
  • ボリューム(Volume)
  • 照光なし(Unlit)

が質感表現のためのKhronos拡張仕様として定義されています。(日本語名は公式にはないため、弊社が独自に訳したものです)

各拡張は慎重に仕様検討が進められた甲斐もあってか、(Unlit以外の)各拡張は任意に組み合わせることができ、表現の自由度が高くなっています。また現在も議論中の項目もあり、今後さらに定義が追加される可能性があります。

(上記以外にもglTF2.0策定当初からSpecular-Glossiness拡張がありますが、現在ではArchivedとして仕様が凍結され、他の拡張との組み合わせもできない腫物扱いのような状況ですので、こちらは紹介しません)

glTFにおけるリアルタイム表示は、時間をかけて処理するパストレーシングレンダリングと理論的にはほぼ等価です。ただ、リアルタイムに処理できることを主眼としているため、パストレーシングでは使用しないリアルタイム表示専用パラメータも若干存在し、仕様自体がリアルタイムで表現可能な項目に絞られて定義されています。しかしながら、透過・屈折の表現など以前では考えられないような高度な表現がリアルタイムでもできるようになりました。

編集画面内の平面メッシュ表示も屈折する

ツールレベルではglTF自体には対応していても拡張仕様についてはまだこれからのものが多いですが、three.jsやbalylon.jsなどWeb3D用フレームワークのレベルではおおむね対応が済んでいるので、拡張仕様による表現がデファクトスタンダードとなる日も近いかもしれません。

Metasequoia 4 Ver4.8.3では上記の拡張仕様すべてに対応しています。各パラメータの設定方法について次回以降で解説していきます。

リリース情報 Metasequoia 4 Ver4.8.3 リリース (2022/04/20)

Metasequoia 4 Ver4.8.3をリリースしました。

今回の更新ではglTFへの対応を強化し、glTF 2.0の仕様策定後に追加された下記の物理ベースレンダリング(PBR)向け拡張に一通り対応しました。

  • クリア塗装 (Clearcoat)
  • 屈折 (IOR)
  • 光沢 (Sheen)
  • 反射光 (Specular)
  • 透過 (Transmission)
  • ボリューム (Volume)
  • 照光なし (Unlit)

glTFシェーダに追加された各パラメータは、リアルタイムのプレビュー表示、パストレーシングレンダリングどちらにも反映され、従来よりもずっと高度な質感表現が可能になりました。

また、[計測]機能に放射状に厚みを計測できるようになりました。glTFのボリューム設定時に併用する「厚さマップ」を生成するためにも利用できます。

本リリースではその他、若干の修正も行われています。詳細はリリースノートをご参照ください。

厚さマップの生成は手順が少し複雑ですので、別の記事で解説します。物理ベースレンダリング・glTFについて、その概要や操作方法などを何回かに分けて記事を公開予定ですのでこうご期待。

リリース情報 Metasequoia 4 (Ver4.8.2a) リリース (2022/03/07)

Metasequoia 4 Ver4.8.2をリリースしました。今回は小幅な修正・改良にとどまりますが、若干説明が必要な個所について補足します。

パストレーシングレンダリングの改良

glTFのAlphaモードに対応し、半透明がプレビューと同様の表示になりました。また、半透明箇所を透過してできる影も正確に描写されるようになっています。

法線モーフについて

FBX出力時に「法線モーフ」としてモーフオブジェクトに設定されている法線情報も出力できるようになりました。受け側ソフトで対応している場合に法線モーフが適用可能で、現在Unityで対応していることを確認しています。

Unityで法線モーフが設定されたFBXファイルをインポートする場合、[Blend Shape Normals]に[Import]を指定してください。

ただしFBXの制約上として、頂点を共有する面で異なる法線を持つことができず、単一化された法線としての出力となります。また、FBXかUnityのどちらか(または両方?)の制約なのか、頂点を動かさずに法線のみを変更したデータを取り扱うこともできないようで、法線を変更した頂点は見た目に影響しない程度にほんの少しだけ移動してください。

その他の詳細な変更点についてはリリースノートを参照ください。

リリース情報 Metasequoia 4 (Ver4.8.2) リリース (2022/02/25)

Metasequoia 4 Ver4.8.2をリリースしました。

主な改良点を紹介します。

パストレーシングレンダリングのボケ対応

3DCGソフトではしばしば被写界深度機能とも呼ばれる「ボケ」の表現に対応しました。焦点位置よりも手前や奥にある物体をぼかしてレンダリングします。

ぼけ具合は一般的なカメラと同様に「F値」で調整できますが、実際のカメラとは異なり露光量への変化はありません。

F値=2.0

F値=8.0

ボケを有効にしてもレンダリング時間の総量には変わりありません。ノイズ低減と組み合わせることもできるので、短時間で高品質なレンダリング結果を得ることができます。

法線方向への移動の強化

以前から[移動]コマンドに搭載されていた法線方向への移動ですが、頂点ごとにその法線方向へ移動するオプションが新たに追加されました。

また移動方向は、選択面のみの法線方向か、頂点を囲むすべての面の法線の平均方向のどちらかを指定することもできます。

FBX出力の強化

FBXファイルへの出力において、glTFシェーダを使用している場合に、Mayaで使用されるStingray PBRシェーダに変換して出力できるようになりました。受け側ソフトがStringrayシェーダに対応している場合に、glTF(glb)形式以外に物理ベースのシェーダパラメータを受け渡し可能な選択肢としてご利用いただけます。対応しているソフトが限られることから、デフォルトは従来通りのPhongでの出力となります。

また、頂点・面のないオブジェクトはNullノードとして出力されるよう変更されています。

転写機能の強化

頂点カラーの転写に対応したほか、UV操作・法線の転写も若干改良されました。

その他の変更点や不具合修正についてはリリースノートをご覧ください。

リリース情報 Metasequoia 4 (Ver4.8.1a) リリース (2021/12/25)

Metasequoia 4 Ver4.8.1をリリースしました。

異常終了を引き起こす不具合など3件の修正を行っております。今回は新機能はありませんが、早めにアップデートしてご利用いただくことをお奨めします。

具体的な変更点についてはリリースノートをご覧ください。

リリース情報 Metasequoia 4 (Ver4.8.1) リリース (2021/11/12)

Metasequoia 4 Ver4.8.1をリリースしました。

今回は主に既存機能の使い勝手を良くするための変更が行われており、それぞれ数件の改良と不具合修正を含みます。具体的な変更点についてはリリースノートをご覧ください。

リリース情報 Metasequoia 4 (Ver4.8.0a) リリース (2021/10/28)

Metasequoia 4 Ver4.8.0aをリリースしました。今回は不具合修正のみで、下記の項目について修正を行っております。

  • オブジェクト名などに特定の言語の文字を含むとmqoファイルを読み込めないことがある。
  • レンダリング結果をHDRオプションをオフにするとexrファイルに出力できない。
  • 編集モードのカスタマイズでコマンド埋め込みされた[UV操作]を選択すると異常終了する。
  • [格子]の変形に対するアンドゥ時に異常終了することがある。
  • 一部シェーダが背面の色別表示に対応していない。
  • 日本語環境のmacOSで、初回起動時にデフォルトの言語設定が英語になっている場合がある。

お知らせ Windows 11/macOS Montereyへの対応について (2021/10/28)

Windows 11におけるMetasequoia 4の動作確認が完了しました。Ver4.8.0以降がWindows 11対応版としてご利用いただけます。

Windows 11対応のために特別な変更などは要らなかったので、Ver4.7以前でも動作する可能性は高いと思いますが、動作保証はいたしかねます。今後新たに問題などが判明しても、古いバージョンへの対応はできかねます。もし、やむを得ない理由でWindows 11上でVer4.8.0以降にアップデートせず、Ver4.7や以前のバージョンを引き続き利用する場合は、自己責任となりますことご了承ください。

 

(10/28追加) macOS Montereyについても動作完了しました。上記とまったく同じ同様の内容で、Ver4.8.0以降が動作確認済みの対応版となります。

リリース情報 Metasequoia 4 (Ver4.8.0) リリース (2021/10/19)

Ver4.8.0をリリースしました。今回は大きな改良を含むバージョンアップで、主な新機能を紹介します。

物理ベースのパストレーシングレンダリング

パストレーシング方式による物理ベースのレンダリングができるようになりました。パストレーシングでは物体間の光の散乱も再現されるため、柔らかい陰影が表現可能です。

シェーダは主に「glTF」か「透明体」を用います。従来からのPhongなども一応利用できますが、本来のパラメータとは異なる結果になるのでご注意ください。

光源は、材質の「自己照明」を設定して、任意の形状を持った面光源として利用することができます。開いた空間では平行光源や環境マップも利用可能です。

ノイズ低減機能も搭載しており、パストレーシング特有のノイズを除去しつつ、レンダリング時間の大幅な削減が可能です。(Windows 64bitとmacOS版で利用可能)

StandardとEXでは画質の面では違いはありませんが、Standard版では解像度が1280×720以下に制限されます。より大きい解像度が必要な場合はEX版をご利用ください。

環境マップ表示

下の画像のような360度パノラマ撮影された写真を利用して、環境マップとして背景に表示します。

また、Phongシェーダでは鏡面反射、glTFシェーダでは金属感・粗さを設定して、オブジェクト表面への反射としても利用されます。

環境マップ表示はリアルタイムプレビュー、レンダリング両方に対応しています。

ウィンドウ表示の改良

オブジェクト設定、材質設定、レンダリングなどのウィンドウを開いたまま、別の操作ができるようになりました。

例えば、材質のパラメータを調整しながら再レンダリングを繰り返す際に、ウィンドウの開閉を繰り返す必要がなくなるので、作業効率が格段に上がります。特に広めのモニターやマルチモニターのある環境だと、ウィンドウを開いたままでも作業領域を確保しやすいのでお勧めです。

高精度スムージング、フィルター機能

従来から搭載していたスムージング機能だと、内側に若干収縮してしまいましたが、追加搭載されたスムージング・フィルター機能では極力収縮しないようになりました。(EX版でのみ利用可能)

注意点として、メモリの消費量が多いので、データ量が大きいと搭載メモリもかなり必要です。また、形状によってはフィルターがかかりにくいこともあります。

対応OSについて

Windows 11に対応しました。

macOS版は10.13が非対応となり、また10.14についても10.14.6へのアップデートが必要になります。