この記事では、Keyshot for ZBrushを利用する際に覚えておくと得するTipsを紹介いたします。

  • 基礎解説
  • ZBrushCore / ZBrush 問わず使用可
  • サンプル数の決め方
  • デノイズによるレンダリング時間短縮
  • GPU/CPUレンダリングモードの切り替え
  • ターンテーブル書き出し
  • 金属材質でのポリペイントの利用方法
  • おまけ

Keyshotの基礎解説

BPRレンダリングとKeyshotの基礎を解説した過去配信はこちらから

ZBrushCore / ZBrush 問わず使用可

Keyshot for ZBrushとZBrush to Keyshot BridgeはZBrush / ZBrushCoreの両ソフトウエアで使用可能です。

そのため、ZBrushCoreで制作したモデルであっても、Keyshotでのフォトリアルなレンダリングが可能となっています。

サンプル数の決め方

Keyshotを初め、”レイトレーシング”をベースとしたレンダリングソフトには”サンプル”という概念があります。

レイトレーシングはカメラから光線(レイ)を飛ばし、その光の動きを追跡(トレース)し、仮想空間内でどのように影響を与えるか計算するため”レイトレーシング”と呼ばれています。

サンプルとは、点と線で構成されているベクターの要素を1ピクセルに落とし込む際に、参考にするレイの数を指定しています。

例えばサンプル数を2048とした場合、1つのピクセルを決めるのに、2048個のレイから情報を取得します。

 

レンダリング>オプションから書き出しに使用するサンプル数が指定できます。多くの場合”最大サンプル数”か”最大時間”の設定が利用されます。

数字で言ってもピンとこないと思いますので、以下にサンプル数ごとの比較を用意してみました。

Raika9様のイラストを元に制作したモデルにGPUモードでのKeyshotレンダリングを使用して比較しています。

sample_comparison

ご覧のようにサンプル数が増えていくにつれ、モデルの描画が鮮明になっていることがわかります。

このサイズの画像で見るとサンプル数1024とサンプル数2048では大差がないのですが4倍にズームして比較をしてみると、首の下のような影の部分には少ないサンプル数のほうが黒い斑点が残りやすくなります。

より多くサンプル数を指定することで、より鮮明なレンダリング結果が得られることがわかりましたが、サンプル数の数値が高くなれば高くなるほど、レンダリング時間が伸びていきます。 

※今回の検証に使用したのは3400万ポリゴンのモデルをGeforce RTX 3070でレンダリングした時間となります。ハードウェアの性能、モデルやレンダリング設定等様々な要素によりこれらは変動します。

特に静止画 1枚が必要な場合、画像の品質にこだわりたいので時間を多めに取り、品質を上げていくことが重視されますが、動画や、モデルのターンテーブルを書き出す場合には30秒の動画を書き出すのに、1秒30枚の画像だとしても900枚。

35秒 × 900枚=31500秒

右の8192サンプルでは、約8時間45分かかる計算となります。

左の2048サンプルでは、

9秒 × 900枚 = 8100秒なので、約2時間15分です。

そこで、1枚当たりの品質がそこまで重要でない場合、許容できる品質と許容できる時間を天秤にかけることになります。

サンプル数を決める際、実際に1枚レンダリングする方法もありますが、何度も試行する必要があります。

そこで、Keyshotには”H”キーまたは、ビュー>ヘッドアップディスプレイをクリックすることで、レンダリング>リアルタイムレンダリングが有効になっている場合、リアルタイムでサンプル数を表示する機能があり、非常に便利です。

カメラアングルなどを変えずに放置するとプレビュー画面が更新され、リアルタイムでサンプルするので、結果を確認しながら想定のサンプル値を求められます。

ノイズ除去(Keyshot 9以降)

Keyshotにはレンダリングで発生するノイズをリアルタイムビューおよびレンダリング結果から除去する機能が活用できます。

ノイズ除去は画像の周囲の情報を頼りに、不足している画像の部分を補足する機能です。

上記画像は、GPUレンダリングの同サンプル数でノイズ除去の機能の有無が比較できます。

肌や、体に隠れて影の発生している袋等に発生しているノイズが軽減されていることがわかります。

ノイズ除去をリアルタイム表示/レンダリング結果で利用するにはメニュー欄にある”ノイズ除去”のボタンを有効にするだけです。

このノイズ除去の機能により、低サンプル数で発生するノイズを軽減しながらレンダリング結果を損なうことなく、レンダリング時間の削減が可能となります。

他にも、ノイズの発生しやすい人間の皮膚等に利用される”サブサーフェススキャッタリング”を採用したマテリアルや、曇ったプラスチックのようなマテリアルが使いやすくなります。

あくまで周囲の情報から補足しているにすぎないため、低すぎるサンプル設定にはご注意ください。

より詳細な解説はLuxion社の解説動画をご覧ください。

GPUレンダリングへ切り替え(Keyshot 9以降)

メニュー左上のGPUをクリックするか、ンダリング>GPUモードから切り替え可能です。

Keyshotは以前CPUのみでのレンダリングでしたが、Keyshot9よりGPUレンダリングへの切り替えが可能となりました。

CPUレンダリングはPCのプロセッサーである”CPU”を使用しレンダリングするのに対し、GPUレンダリングでは、PCのグラフィックを専門とするハードウェアの”GPU”(グラフィックカード)を活用します。

今まではレイトレーシングの計算はCPUが中心となっていましたが、最近ではGPUにレイトレーシングを専用に処理するプロセッサが搭載され、注目が集まりました。

CPUレンダリングでは、ノイズが少なく、精度を重視したレンダリングが可能なのに対し、GPUレンダリングではより並行処理に特化したアルゴリズムにより、素早いレンダリングを得意としています。

ターンテーブルレンダリング(Keyshot Pro)

Keyshot Proに搭載されているアニメーション機能を使用すると素早くターンテーブルレンダリングが設定できます。

タイムラインが表示されたら、アニメーションウィザードを開きます。

ターンテーブルを選択します。

シーンセット>ZBrushを選択します。

回転する方向や、終了時間を設定します。

一度再生し、全体がカメラに収まっているかを確認し、レンダリングからアニメーションタブで書き出します。レンダリングは1フレームごとに書き出され、画像として保存されます。動画アウトプットを指定している場合には、全てのフレームが書き出された後に、指定した動画形式で書き出されます。

金属材質でのポリペイントの利用方法(Keyshot Pro)

ZBrushからKeyshotへデータを送る際、ZBrush側で設定したマテリアル情報がそのままKeyshot側にて再現されます。

ZBrush内の表示

Keyshot内での表示

ZBrushのライトボックス>Demo Projects > Demo Droneのプロジェクトで、レンダー>外部レンダラー設定>”マテリアル別にグループ分け”を有効にした状態でデータを送ると、ZBrush内で4つのマテリアルが割り当てられていたため、Keyshot側でも4つのマテリアルにまとまっています。

試しに金属的な材質に置き換えたいので、Keyshotのライブラリのマテリアルからアルミ系の材質を選びます。

この際、黒のポリペイント情報は残したいので、ALTキーを押しながらドラッグアンドドロップで上書きします。

すると、金属感のあるテッカテカなモデルにはなりましたが、色情報が反映されていません。

これはなぜかというと、テンプレートで用意されているアルミの材質では、ポリペイント情報を取り扱っている”頂点ペイント”の情報を参考にしていないからです。

アルミのマテリアルを選び、マテリアルグラフをクリックすると、このようにアルミの材質に割り当てられた設定がどのような構成かがわかりやすく表示されています。

メタルの”カラー”にテクスチャマッピングが割り当てられており、ZBrushから送られてきた色情報がこのテクスチャに含まれていることがわかります。では、なぜ色情報が参照されていないのでしょうか?

 

アルミのマテリアルをクリックしてみると、メタルタイプという項目があり、”測定”と”カラー”という項目があります。 

測定はプリセットから特定の金属の設定で再現でき、カラーでは、色情報を乗せた金属の質感が表現できます。

今回はポリペイント情報の黒を参照し、色を再現したいので、メタルタイプのカラーを選び、粗さを調整することで素材の粗さが指定できます。

あとはそれぞれのマテリアルを調整し、割り当てていくことで以下のような画像が仕上がります。

 

読者特典

ここまで読んでいただいた方にささやかではありますが、独自のマテリアルを配布いたします。

Keyshotのマテリアルメニューからインポートできます。

Share This