新着情報

リリース情報 Metasequoia 4 Ver4.8.4a リリース (2022/11/23)

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

OpenGL(Windows)およびmacOS使用時にメモリを浪費してアプリケーションが異常終了する問題を修正しました。詳細はリリースノートをご参照ください。

リリース情報 Metasequoia 4 Ver4.8.4 リリース (2022/11/02)

Metasequoia 4 Ver4.8.4をリリースしました。主な変更点は

  • 選択コマンドの接続面に角度制限の設定を追加
  • 移動コマンドにハンドルの向き固定
  • glTFシェーダの拡張に「虹ムラ」が追加
  • 材質設定にパストレーシング用の「間接照明」の設定を追加

となります。その他、細かい改良や不具合修正も複数含まれます。詳細はリリースノートをご参照ください。

なお、本リリースからmacOS版は10.15 (Catalina)以降が動作対象となります。macOS 10.14 (Mojave)では動作しませんので、macOSをCatalina以降にアップデートしてご利用いただくか、またはVer4.8.3bのままご利用ください。

虹ムラについて

glTFの仕様に最近追加されたIridescene拡張に対応しました。CD/DVDの記録面やシャボン玉のように、光の反射が虹色に見える現象を再現します。

虹ムラ

虹ムラ例

虹ムラを使用する時は環境マップを適用してください。通常の平行光源のみの状態では変化がわかりづらいです。

間接照明について

材質設定で[間接照明]をオンにすると、周囲のオブジェクトを照らしますが、光源用オブジェクトそのものは視野内にあっても直接可視化されない状態を作り出します。物理的には正しくありませんが、光源そのものが見えると邪魔になるケースにおいて有効な作画方法となります。

左:間接照明オン 右:間接照明オフ(通常)

間接照明の設定はパストレーシング時にのみ反映されます。間接照明オンの左側の図ではライティングはされていますが、球状の光源自体は見えないのがわかります。

なお、間接照明をオンにすると、光源オブジェクト自体での自己遮蔽がなくなるためなのか、同じ光源強度でも全体が明るくなるようで、上の例では露光を調整しています。(この仕様については今後変更される可能性もあります)

お知らせ macOS Venturaへの対応について (2022/10/28)

先日AppleからリリースされたmacOS Ventura (13.0)について、Metasequoia 4の最新版Ver4.8.3bでの動作確認が完了しました。Ventura特有の問題は発見されませんでしたので、従前のmacOSのバージョンと同様にご利用いただけます。

なお、macOS Venturaへの対応に伴い、次回のアップデート(Ver4.8.4の予定)からmacOS Mojave (10.14)のサポートを終了させていただきます。まだMojaveをお使いの方は、早めにmacOS Catalina(10.15)以降へのアップデートをご検討ください。

新着情報 物理ベースレンダリング(6) 光沢・反射光・非照明 (2022/05/27)

複数回にわたって紹介してきたglTFにおける物理ベースレンダリングですが、今回で最後となります。残りの拡張設定「光沢」「反射光」「非照明」を取り上げます。

光沢 (Sheen)

光沢は特にサテンのような艶のある生地を表現するのに有用です。

光沢がどのように影響するか、球体にライトを当てるとわかりやすいです。

左:光沢なし、右:光沢あり

上図の左右を比べると光沢の有無の違いは一目瞭然ですが、詳しく観察すると、光沢ありの場合はライトからの入射角が浅くなる箇所がリング状に明るくなっています。中心付近の反射光が入射角の深い箇所に影響するのと逆の関係であることがわかります。

光沢用のパラメータは「光沢係数」「光沢粗さ」の2つです。係数は光沢の強さを、粗さは光の反射をどれだけぼかすかを調整します。

左:光沢粗さ0.6、右:光沢粗さ0.2

なお、光沢の表示に関して不具合があったため、Ver4.8.3bで修正しています。それ以前のバージョンの方は必ずアップデートしてご利用ください。

反射光 (Specular)

反射光(スペキュラー)はPhongシェーダのものと同様です。glTFシェーダでは金属感・粗さで光源に対するハイライトがどのように写るか調整しますが、Phongに比べて直接的に調整しにくいと感じることがあります。

そこで拡張設定として「反射光」が追加され、反射光の調整用に「反射係数」と「反射色」の2つのパラメータが用意されています。

左:反射色を赤、真ん中:反射光の拡張設定オフ、右:反射係数0.3

元の状態(真ん中)に対して、色と係数を調整したものがそれぞれ左と右の状態です。反射光の色と強さを直接指定して質感を調整することができます。

非照明 (Unlit)

こちらは物理ベースレンダリング用のものではありませんが、glTFシェーダの拡張設定に用意されているので、ついでに紹介します。

従来からConstantシェーダがありましたが、それと同じ役割を持ちます。ライティングによる計算を一切行わず、単色でそのまま表示するものです。

左:通常のglTFシェーダ、右:非照明

敢えてライティングしたくないオブジェクトに対して指定してください。

最後に

glTFにおける物理ベースレンダリングを全6回で紹介してきました。各拡張設定とそのパラメータをざっと説明しましたが、サンプルもそれほど多くは用意できなかったので、この解説だけではまだそれほどわからないという方もいらっしゃるかもしれません。まずは実際にMetasequoia 4で操作して、パラメータを色々変えながら試してみてください。

glTFとその新しい拡張設定に対応したアプリなら、アプリ間で(ほぼ)同じ見た目を維持しながらデータを運搬することもできます。今後より多くのアプリ・サービスでglTFが利用され、glTFのデータも増えていくことと思いますが、その一助になれば幸いです。

リリース情報 Metasequoia 4 Ver4.8.3b リリース (2022/05/27)

Metasequoia 4 Ver4.8.3bをリリースしました。本バージョンではglTFシェーダにおける光沢の表示の修正など、数件の不具合修正・細かい改良を行っています。

詳細はリリースノートをご参照ください。

お知らせ 旧バージョン(Ver3.1)向け試用ライセンス発行の終了について (2022/05/25)

Metasequoia Ver3.1向けの試用ライセンスの発行について、利用者数を鑑みてその役割をほぼ終えた状況となりましたことから、2022年6月末をもって終了させていただきます。長くご愛顧いただきありがとうございました。

今後はMetasequoia 4へ移行してご利用ください。Metasequoia 4の試用ライセンスの発行については今後も引き続き提供してまいります。

機能紹介 物理ベースレンダリング(5) クリア塗装 (2022/05/12)

glTFにおける物理ベースレンダリングについて、今回は[クリア塗装]拡張設定について紹介します。

クリア塗装 (Clearcoat)

クリア塗装の使用例として代表的なものとしては車のボディがあげられます。ボディそのものは金属やカーボンなどの素材の表面にペンキなどで色付けされていますが、それだけではあまり艶のある質感にはなりません。さらにその上に無色透明の塗装を施されています。これは艶を出す目的のほかに、表面を保護する役割も果たします。

ボディの素材・色にかかわらず、クリア塗装によって周囲が反射して写り込む

glTFの[クリア塗装]はその無色透明の塗装に相当します。下のボディの層に対し、クリア塗装の層による反射が加わった2層構造の質感を簡単に表現できるようになっています。

2層構造であるため、下のボディ層とクリア塗装は異なる別々の法線を持つことができます。

通常の[法線]マップとは別にクリア塗装専用の[クリア塗装法線]マップが用意されているので、どちらか片方または両方に法線マップ画像を割り当てることで、下の層とは異なる方向に反射した先の背景が写り込むようになります。

左右とも金属感0.5、粗さ0.3、法線マップあり、クリア塗装法線マップなし

上の例では左半分がクリア塗装なし、右半分はクリア塗装ありですが、それ以外はどちらも同じパラメータです。左右とも通常の[法線]マップは同じ画像を設定しているので表面がわずかに凸凹していますが、[クリア塗装法線]マップは割り当てていないのでクリア塗装の表面はのっぺりしていることになります。

サンプル画像を観察すると、左側も表面の反射による周囲の写り込みはあるものの、その反射を見るだけではどんな背景なのかはほとんどわかりません。一方右側では、下の層に重なるようにクリア塗装による反射がくっきりと写り込んでいるので、背景の様子を何となく把握するくらいはできます。

[クリア塗装]には法線マップ以外に以下のパラメータが用意されています。

[クリア塗装係数]でその反射の強度を調整したり、[クリア塗装粗さ]でぼんやりした反射にすることができます。

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

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

本リリースでは3件の不具合を修正しています。詳細はリリースノートをご参照ください。

FBX出力時や、Intel Macでパストレーシングレンダリング時に異常終了を引き起こす重要度の高い修正が含まれますので、早急にアップデートしてご利用ください。

機能紹介 物理ベースレンダリング(4) ボリューム・屈折 (2022/04/27)

前回は[透過]を紹介しました。今回は[透過]と組み合わせて使用する[ボリューム]を紹介します。

ボリューム (Volume)

先に[透過]をオンにした状態で、さらに[ボリューム]をオンにしてください。

ボリュームの特徴として、媒質の外部から内部へ、また内部から外部へと光が出入りする際に直進する方向が曲がって透過する”屈折”の効果が得られます。透過が薄い膜状のオブジェクトに用いるのに対して、ボリュームは透明でかつ厚みもあるガラスや宝石などの媒質を表現します。

ボリュームのパストレーシングレンダリング例

[ボリューム]には以下の3つのパラメータがあります。

  • 厚さ
  • 減衰距離
  • 減衰色

このうち、パストレーシングレンダリングでは[厚さ]は設定する必要はありません。[厚さ]と[厚さ]マッピングはリアルタイム表示でのみ用いられます

上の例のように太くなっている箇所に色を付けたい場合は[減衰距離]と[減衰色]の両方を設定します。こちらはパストレーシング・リアルタイム表示どちらにも適用されます。

厚みのリアルタイム表示について

媒質内部を通過する光線がどこから入ってどの角度で出ていくのか、パストレーシングレンダリングではその処理内で計算され、屈折が正確に描写されます。

しかし、リアルタイムでは計算量的に正確な算出が困難なため、glTFのリアルタイム表示では直接入出点の位置を計算するのではなく、あらかじめ媒質の表面に厚みの値をマッピングしておき、この位置から入射する場合はマッピングされた厚み分を透過して出ていく前提で、疑似的に屈折を表現する手法が取られます。

厚さが均一な板状のオブジェクトなら[厚さ]の値を設定するだけで大丈夫ですが、曲面の場合は場所ごとに厚みが異なるため、マッピング画像として[厚さ]マップも設定する必要があります。

厚さマップの作成方法

[厚さ]マップを設定するには事前に厚さマップ用の画像を用意する必要があります。Metasequoia 4では現時点は厚さマップを直接作成する機能はありませんが、厚みの頂点カラー化、頂点カラーのテクスチャ化の2つの機能を組み合わせることで厚さマップを作製できます。

なお、厚み計測・頂点カラーのテクスチャどちらもEX版のみの機能です。Standard版ではご利用いただけませんので、この機能が必要な方はEX版へのアップグレードをご検討ください。

厚みの頂点カラー化

[計測]コマンドで[厚み]、測定方向に[放射状]を選択し、[厚みを頂点カラー化]を実行します。

厚みの頂点カラーマッピング例

[グレースケール]をオン、[色を反転]をオフにしてください。薄い箇所が暗く、太い箇所が明るく表示されているのがわかります。この状態で厚みの頂点カラー化は完了です。

ここでスライダーで設定可能な厚みの上限値(上の画像でのバーの横の数値)を覚えておいてください。この値を後で使用します。

UV展開

頂点カラーをテクスチャへ変換する前に、その準備としてUV展開が必要です。

編集モードを「マッピング」に切り替え、「自動展開」を選択します。


「切れ目を選択」の「自動選択」を呼びだし、「アルゴリズム」に「スマート」を指定します。「高速」でも構わないのですが、展開結果に重なりが生じることがあるため、スマートのほうが楽なケースが多いです。

 

切れ目が選択できたら「展開実行」を呼び出します。パラメータはそのままで構いません。処理後は、展開結果に重なりがないことを確認してください。

重なりがあると見た目に多少おかしい箇所が出てくる可能性があります。(多少なら気にしないという手もありますが…)

重なりを解消するには、「分離」コマンドで重なりのある箇所の根本付近を切り離し、「切れ目の選択」>「現在の切れ目」を呼び出して切れ目を追加してから、再度「展開実行」を呼び出します。

テクスチャ変換

UV展開ができたら、頂点カラーをテクスチャ画像化します。編集モードを「モデリング」に戻し、「頂点カラー」コマンドで「テクスチャへ変換」を呼び出します。

ポリゴン数が多いモデルの場合は横幅・縦幅を十分に高い値にしてください。ポリゴン数に対してテクスチャ画像の解像度が低いと、画像がつぶれて粗い結果になってしまうことがあります。

ファイル名を指定してpngファイルなどで保存します。出力されたファイルを適当な画像ビューアで開くと、厚さが濃淡で表現された画像になっていることが確認できます。

厚さマッピング

材質の設定

最後に材質の設定です。glTFシェーダの拡張設定内の[透過]と[ボリューム]をオンにし、[厚さ]に計測時の上限として表示されていた値を指定します。

[マッピング]内の[厚さ]に出力したファイルを指定します。

また、頂点カラー化されたままの厚さはもう不要なので、「頂点カラー」をオフにすることを忘れないでください。

[金属感]と[粗さ]は[透過]の時と同様に低めの値にしておきます。[粗さ]を若干上げるとすりガラスのようになります。

これで、プレビュー内でボリュームの材質が設定されたオブジェクトが、ガラスのようにその背景が屈折して透き通っている表示になっているはずです。後ろにオブジェクトを配置したり、環境マップを設定してください。

また、[減衰距離]と[減衰色]を設定すると、厚みのある箇所が濁って、グミや宝石のような表現も可能です。[減衰距離]は表面からその距離に達した時点で光をどこまで減衰させるかを指定します。[厚さ]と同じ値でもいいですし、より浅い厚さの箇所でも暗い色にしたいなら厚さよりも低い値を指定します。

リアルタイム表示での減衰表示

[減衰色]の値が1なら内部で減衰は起こりませんので、[減衰距離]も設定する必要はありません。

なお、[厚さ]と[減衰距離]は絶対的な寸法として指定されます。スケールの異なるオブジェクトで同じような見た目にしたい場合、そのスケールに合わせてそれぞれ異なる値を指定する必要があります。

屈折 (IOR)

[ボリューム]使用時のデフォルトの屈折率はガラスとほぼ同等の1.5ですが、水や鉱物などは異なる屈折率を持ちます。[屈折]をオンにすると任意の屈折率を設定することができます。

ボリュームが設定された状態で屈折率の値を変えると、屈折を通して見える後ろ側の見え方が変わっていくことがわかると思います。実際に試してみてください。

現実の物質における屈折率の値についてはWikipediaや色々な文献・Webなどで紹介されていますので、そちらをご参照ください。

 

今回はボリュームと屈折について紹介しました。次回では残りの他のパラメータについて紹介します。

機能紹介 物理ベースレンダリング(3) 透過 (2022/04/26)

前回の最後で紹介した拡張設定について、今回から掘り下げていきます。まず始めに、ビジュアル面でわかりやすい[透過]に焦点を当てて紹介します。

透過 (Transmission)

半透明表示は、古くから不透明度(または透明度)を指定してアルファブレンディングで行うのが定番でした。glTFでも標準的な仕様内に[Alphaモード]と[不透明度]を指定するアルファブレンディングがありますが、それとは異なる形で新たに”透過”(Transmission)が拡張として定義されました。(伝搬・伝播などと直訳されているケースもあるようですが、透過が一番しっくりくると思います)

透過はセロハンやクリアファイルのような結晶化した薄いプラスチック、ごく薄いガラスなど、屈折がない薄膜を表現するのに適しています。

アルファブレンディングと透過は背景が透けて見える点では似ていますが、粗さを変えながら比較するとその違いが明瞭にわかります。

アルファブレンディングは全体を同じ比率で合成するだけですが、透過には

  • 表面では鏡面反射する
  • 入射角の浅い辺縁部では吸収や反射(フレネル効果)によって明度の変化が顕著になる
  • 媒質内で散乱しながら光が進むことで、透過先の背景をぼかす効果が得られる

などの特徴があります。

不透明度と同様に、[透過係数]でどの程度透過させるかを調整することもできます。透過係数を0にすると透過を設定しないのと等価になります。

基本色に白以外を設定すると、色付きフィルムのような表現が得られます。

透過を使用する際に注意すべきは、[金属感]が設定されていると透過は打ち消されます。これは金属が光を外部へと反射し、内部への光を吸収してしまう性質によります。(だそうです、細かい理屈はわかっておりません…)

もう一つの注意点は、リアルタイムのプレビュー表示では、同じオブジェクトでも異なるオブジェクトでも「透過」する面の後ろにさらに「透過」する面を二重に透過させることはできません。あくまで疑似的な表現なので、手前の面のみが優先されて表示されます。パストレーシングレンダリングでは正確な描写が得られます。

透過の使用例

ガラスが非常に薄い小型の電球を作成してみます。材質の設定が主眼なのでモデリングについては言及しませんが、下絵として電球の画像を配置しながらモデリングすると、難しくないでしょう。

モデリングができたら材質の設定です。すべての材質にはglTFシェーダを割り当てておきます。

まず、ガラス用の材質を設定します。ガラスには[透過]を適用し、また他のパラメータも次の画像のように設定します。

金属感:0、粗さ:0

透過:オン、透過係数:1

光を放出するフィラメントには[自己照明]を設定します。これにより、任意の形状を光源として使用することができます。自己照明欄の右側のカラーボタンを押し、色表示欄をクリックして、オレンジ色に設定します。

 

口金は金属感を高く、粗さを低く設定します。一例として次のように設定します。

  • 金属感:1
  • 粗さ:0.1

適当な環境マップを適用して、一度パストレーシングレンダリングしてみます。

ガラスや口金の質感がうまく再現できていることがわかります。一方、フィラメントの光量が低すぎて、電球が全然明るくなっていません。

光量は[自己照明]の値と、光源用のオブジェクトの面積によって決まりますが、フィラメント用オブジェクトがかなり細いため、そのままでは光量が非常に小さいものとなっています。

色設定時にHSVモードにしたとき、明るさを示す[V]は通常は0~100の範囲で設定しますが、自己照明の値はこの範囲を超えて数値入力することができます。Vの値を10倍ずつ増やしながらレンダリング結果を確認することを繰り返し、1000万まで増やすとだいぶ明るくなったので、最終的に1500万で調節してみました。フィラメントから放出された光がガラス内部で反射しながら、眩しさを感じる明るさになりました。

なお、glbファイルに出力する際は自己照明は範囲外の値を入力しないでください。glTFの規格により値の範囲が制限されており、出力したファイルがビューア側で正常に読み込めない可能性があります。(追記:Ver4.8.3bでKHR_materials_emissive_strength拡張に対応して、自己照明のVが100以上でもそのまま出力できるようになりました)

今回は[透過]と併せて、自己照明を設定してオブジェクトを光源として使用する方法についても紹介しました。次回は[ボリューム]についてです。