2018年3月10日

Blender 類似選択を利用してポリゴン数を削減する


Blenderの類似選択機能を使ってメッシュの特定の面を一気に削除する方法をメモメモ…




まずはこちらのメッシュをご覧ください。


ボクセル風の瓦礫の山という感じです。Unityにインポートした後の頂点数は10380個。三角面は5234個あります。

では次にこちらのメッシュはどうでしょう。


パッと見た感じではさきほどのものとほとんど変わりませんが、頂点数は3701個、三角面は1869個と、実はなんと三分の一近くもポリゴン数が削減されています。

ポリゴン数削減の秘密は反対側を見ればわかります。


そうです、単純に「表側から見えない面をすべて削除」しているわけです。たとえばプレイキャラの移動範囲の周辺に配置するオブジェクトで、カメラが裏側に回り込めないとわかっている場合などには有効だと思います。まあ、これが実際にパフォーマンス面でどの程度効果があるのかははっきり言えませんが、単純にシーン内の頂点数を減らすという意味では間違いなく使える技だと思います。

同じ向きの面を削除する

「ある特定の方向を向いている面を削除する」のは、実はめちゃくちゃ簡単です。ここではBlenderを使って実現してみたいと思います。(バージョン2.79a Steam版を使用)


1. まず編集モードに入って、削除したい面を選択します。


2. 次に、ヘッダから [選択(Select)] → [類似選択(Select Similar)] → [ノーマル(Normal)] と選んでいきます(Shift+Gでショートカット可能)。ノーマルというのは法線=面の向きのことですね。


3. あとは[しきい値(Threshold)]の項目でどの程度まで向きのバラつきを許容するかを選びます。0で全く同じ向きの面のみ選択、1で反対を向いている面も含めてすべて選択するので、その間のほどよい値にしましょう。


4. 最後に、選択された面を削除すれば完了です。

同じくらいの大きさの面を削除する

ついでなので類似選択を使ってもう少しポリゴン数を削減してみましょう。

今回のメッシュの場合、大きな瓦礫はよく目立ちますが、その下にある小さな破片は近づかないとよく見えません。背景として配置するのであれば別に削除しても問題なさそうですね。というわけで今度は「小さな面をすべて選択して削除」してみます。

1. 編集モードに入って、できるだけ小さな面を選択します。

2. 次に、ヘッダから  [選択(Select)] → [類似選択(Select Similar)] → [エリア(Area)] と選んでいきます(Shift+Gでショートカット可能)。翻訳は「エリア」になっているのですが、要は「面積」ということですね。

3. あとは[しきい値(Threshold)]でどの程度までの大きさを許容するかを選びます。[比較(Compare)]の項目を変更すれば指定した面より大きい/小さい面をすべて選択することもできます。こっちのほうが便利かも。

4. 最後に、選択された面を削除すれば完了です。

比較的小さな面をすべて選択した状態

というわけで、カメラに映らない面と小さな面を削除すると今回の場合は三分の一近くにまで頂点数を削減することができました。

Blenderでポリゴン数を削減する場合はその名もずばり「ポリゴン数削減」モディファイアが非常に便利なのですが、今回のような形状(ボクセル風)のメッシュだとかなり不自然になってしまいます。そこで状況に応じてこんな感じの方法もアリかな…と思ったのでした。

その他、類似選択の詳しい使用方法は以下の公式マニュアルをどうぞ。

新マニュアル: 現在まだ日本語なし
https://docs.blender.org/manual/en/dev/modeling/meshes/selecting/advanced.html
旧マニュアル: 日本語あり
https://wiki.blender.org/index.php/Doc:JA/2.6/Manual/Modeling/Meshes/Selecting/Advanced


0 件のコメント:

コメントを投稿