2018-05-24

GameDev Simple Baker


ここでは、Game Development Toolset に追加されている Simple Baker の使い方をここの要領で紹介する。


使用したバージョン: Houdini 16.5.473
Game Development Toolset 1.10 Development

1. 3Dスキャンデータの読み込み

まず最初に以下の要領で(高解像度)ジオメトリを読み込む。

  1. Houdini 起動後、ネットワークエディタで TAB->Geometry を実行。Enter キーを押して確定。
  2. i キーを押すか、ノードをダブルクリックするかして中に入る。
      中に file1 ノードがあるはず。
  3. file1 に3Dスキャンデータを読み込む。今回は、このデータをダウンロードして使用。
  4. ビューポートで Space+G を押すと、ジオメトリ全体が表示される。
  5. ビューポート右側のツールバーで Display primitive normals をオンにし、形状にズームインして法線方向を確認するとすべて内向きになっているのがわかる。
  6. file1 の出力から TAB->Reverse を実行。作成された reverse1 に表示フラグを設定。
      これで法線が正しく外側を向くようになる。
  7. ビューポート上で d キーを押し、Guides タブに行き、Geometry information を Always On にすると、Primitive (ポリゴン面)数と Point (頂点)数が表示され、このオブジェクトには、面が 1,065,838、点が 532,913 あることがわかる。

2. 低解像度オブジェクトの作成

  1. TAB->PolyReduce を実行。作成された polyreduce1 はまだ接続せずに
    • Target を Output Polygon Count に
    • Number to Keep を 7,500 から 10,000 ぐらいで設定。
  2. reverse1 の出力を polyreduce1 の入力に接続し、polyreduce1 に表示フラグを設定。

    演算が一度完了すると、Number To Keep スライダを動かしつつインタラクティブに結果を確認することが可能。
  3. polyreduce1 の出力から TAB->Normal を実行。作成された normal1 の Cusp Angle を 180 に設定、すべてソフトにする。
  4. normal1 の出力から TAB->GameDev AutoUV を実行。sop_autouv1 ができる。
  5. sop_autouv1 の出力から TAB->GameDev UV Visualize を実行。sop_visualize_uvs1 ができる。
    • Visualize Islands をオンにする。
  6. 表示フラグを sop_visualize_uvs1 に設定したまま、sop_autouv1 を選択。
  7. sop_autouv1 の Method を変更すれば、形状や用途に応じた UV 設定が可能。

3. ベイク処理

上記で作成した UV を元に高解像度ジオメトリの詳細情報を低解像度ジオメトリに焼き付ける。それには、GameDev Simple Baker を使用する。

  1. polyreduce1 と sop_autouv1 の間にある normal1 を Alt キーを押しながらドラッグして複製。出来た normal2 を reverse1 から接続。
  2. TAB->GameDev Simple Baker を実行。できた sop_simple_baker1 の
    1. 左入力に sop_autouv1 の出力を接続。
    2. 右入力に normal2 の出力を接続。
    3. 右入力に normal2 の出力を接続。
    4. 表示フラグを sop_simple_baker1 に設定。
  3. ここで一度シーンを保存し、 $HIP を確定、出力テクスチャの出力位置を確定するのが良い。
  4. sop_simple_baker1 の Render ボタンをクリックしてみる。

    約1分でこんな感じ。法線マップによるディテールが確認可能。
  5. ビューポート右上のシェーディングの切り替えで、Smooth Shaded にしてワイヤフレームを非表示にして、

    sop_autouv1 と比較すれば、ディテールの有無の差がよくわかる。

4. 微調整

以下のノードでそれぞれのパラメータを調整することで自分の求める質とポリゴン量のバランスを取っていくことが出来る。

  • PolyReduce
    • Target: ポリゴン削減方法 (% か 絶対数か)
    • その他細かい設定
  • GameDev Auto UV
    • Method: 展開方法、UV Unwrap、Shortest Path (最短距離を取って展開), Cluster (指定した数で塊に分ける)
    • Base Path: テクスチャ出力パス
    • その他細かい設定
  • GameDev Simple Baker
    • Resolution: テクスチャ解像度
    • Base Path: テクスチャ出力パス
    • Export FBX: FBX による出力
    • Channels: basecolor, normal, ao がデフォルトでオン、それ以外に alpha, roughness, metalic など
    • その他細かい設定

左: 元形状 1,065,838面、右: PolyReduce し、Simple Baker でベイクした結果 10,000面 (0.94%)

まとめ

0 件のコメント:

コメントを投稿