サイトアイコン ほろほろりドットコム

[Blender 2.8] 頂点数削減でパフォーマンス向上 [デシメートモディファイアー]

今回の記事は『デシメートモディファイアー』について取り上げさせていただきたいと思います。

ちなみに、v2.80~2.81では『ポリゴン数削減モディファイアー』という名称でした。当記事では、特に画像などの中でこちらの名前の表示が散見されるかと思いますが、機能的には同じ物ですのでそのまま使用しております。

このモディファイアーは、元のメッシュの形状を維持しながらメッシュの頂点・面の数を削減することができる、というものです。データ量が軽くなり、パフォーマンス向上したい時などに便利だと思います。

ちょうど細分化の逆、『サブディビジョンサーフェスモディファイアー』の正反対のモディファイアーみたいな感じですね。

メッシュの頂点や面の数を変化させるという点では、『リメッシュモディファイアー』と似ています。

ですが、あちらはそもそもが“形状の単純化”であり、やりようによっては頂点数が増えます。

対してこちらは、“面・頂点数の削減”のためのものです。

“形状の単純化”もある程度は測れるかもしれませんが、それはおまけのようなもので、主とした目的ではありません。勿論、こちらのモディファイアーも複雑化したメッシュ”形状を単純化”するのに使っても良いと思います。

v2.82~新たに「頂点間の距離」を元に頂点数の削減が出来る『溶接モディファイアー』という機能が追加されました。

「オブジェクトの形状から均等に」頂点数の削減を行うのであれば『デシメートモディファイアー』、「頂点が密集している部分に集中的に」頂点数の削減を行いたいのであれば『溶接モディファイアー』、という使い分けが個人的にオススメです。

『溶接モディファイアー』について、詳しくは↓の記事をご覧ください。

※2020年1月10日 加筆修正を行いました。
※2020年1月30日 加筆修正を行いました。
※2020年2月18日 加筆修正を行いました。
※2020年4月13日 加筆修正・タイトルを変更しました。
※2020年4月15日 加筆修正・タイトルを変更しました。
※2024年8月7日 加筆修正・追記を行いました。

目次

まず最初に

『デシメートモディファイアー』を追加したいオブジェクトを選択しておき、[プロパティエディタ]>[モディファイアー]>[モディファイアーを追加]で表示される一覧から、[デシメート]という項目を選びます。

今回は、『ICO球』を追加時に[オペレーターパネル]で[細分化:”1″]に設定したメッシュオブジェクトに、

『サブディビジョンサーフェスモディファイアー』で細分化を行ったものを使用します。

[デシメート]の基本の3タイプ

このモディファイアーを扱う際に、まずは大きく3タイプから、ポリゴン数削減のタイプを選びます。

ざっくりと、(私の主観が大いに入った)3タイプの違いについての説明すると、下のようになります。

タイプ1 –[束ねる(Collapse)]タイプ

メッシュの形状を考慮して、比較的均等に頂点を結合します。

メッシュ全体で頂点・辺・面の密集率をあまり偏らせずに結合できるタイプだと思います。

[比率(Ratio)]

元の面の数を”1″とした時、どれくらいポリゴン数削減後に面数を維持するかを指定します。

[頂点グループ(Vertex Group)]

削減する部分を『頂点グループ』で指定します。また、[反転]([↔]ボタン)すると、『頂点グループ』での指定が逆転します。

[係数(Factor)]

指定した『頂点グループ』が、ポリゴン数削減する時に与える影響の割合。[頂点グループ]に『頂点グループ』を指定した場合のみ、設定できます。

仮に、こんな感じに“ウェイト”を設定した『頂点グループ』を作っておきます。

その状態で、先ほどのように[比率]の値を変えると、『頂点グループ』で設定した“ウェイト”によって、変化する度合いが変わります。

ちなみに、“ウェイト”を設定するのに効率的な方法で『ウェイトペイント』という作業があります。

この『ウェイトペイント』と『頂点グループ』について、詳しく書かせていただいた記事がありますので、よろしければ併せてご覧ください。

[三角面化(Triangulate)]

ポリゴン数削減後、三角面に分割を行います。

元のメッシュが三角面ばかりなので変化がわかりにくいかもしれませんが、四角形以上の多角形を三角形に分割しています。

その名の通り、いわゆる「三角面化」([Ctrl]+[T])をついでに行う感じですね。三角面化に関しては、過去に三角面化を行う『三角面化モディファイアー』について記事を書かせていただいたので、参考までに。

[対称(Symmetry)]

この項目にチェックをすると、右の[座標軸]のプルダウンメニューの[X]、[Y]、[Z]から選択した軸を対象軸とし、対象軸として指定した軸での対称性を維持した削減を行います

  • X軸対称を選択 フロント視点
  • X軸対称を選択 ライト視点
  • Y軸対称を選択 フロント視点
  • Y軸対称を選択 ライト視点

タイプ2 –[分割の復元(Un-Subdivide)]タイプ

細分化(サブディビジョン)の逆で、面の分割によって生じた辺を削除します。

削除しても、元のメッシュの形状から、大きく変わらない部分の頂点・辺・面を削除しますので、こちらは前項の[束ねる]タイプとは違い密集率に偏りが出ます。

タイプ3 –[平面(Planar)]タイプ

メッシュを統合して平面ポリゴン化します。

兎に角、角度で削減を行うタイプです。

[角度制限(Angle Limit)]

この項目に入力した角度以下の部分を統合します。

[全境界(All Boundaries)]

面の境界に沿ってすべての頂点を溶解する…らしいのですが、私が実際に触ってみた感じ、おそらく、離れた頂点(直接隣接していないような位置関係の頂点)同士でも、形状に沿った[角度制限]で入力した角度以下の位置関係関係であれば溶解する、という事だと思われます。

この項目の説明のために、以前作った歯車を引っ張り出してきて、変化を見てみるとこんな感じです。

本来隣接してない部分同士も溶解しているのがお分かりになるでしょうか?

[区切り(Delimit)]

以下から選んだ特定の場所でのメッシュを溶解しないように指定できます。

面の法線が反転する境界となる辺を溶解しない。

ビューポート上の表示設定を変えて、面の向きを視覚的に分かりやすくしてみました。

(表: 青、裏: 赤)

※画像では、[標準]となっておりますが、機能的同じものです。

異なるマテリアルが割り当てられている境界となる辺を溶解しない。

  • [シーム(Seam)]

『シーム』をマークされている辺を溶解しない。

  • [シャープ(Sharp)]

『シャープ』をマークされている辺を溶解しない。

ちなみに、『シーム』『シャープ』に関しましては、以前、具体的な用途や個人的にオススメの使い方などを書かせていただいた記事がございますので、詳しく知りたい方はよろしければ↓をご覧ください。

『UVエディター』上で表示される『UVマップ』の辺の配置から、[角度制限]での溶解する辺を判断します。

今回の例では、実際には『サブディビジョンサーフェスモディファイアー』も併用しているので、厳密には違うのですが、一度『サブディビジョンサーフェスモディファイアー』を適用した後にやってみた結果も、大体同じような結果になったので、このままでいきます。

(あと、ここまで細分化されてると、ぶっちゃけUVマップが真っ黒になっちゃって逆に見づらいので汗)

UVマップの面の境界の辺となっている部分が[角度制限]の値を変化させている途中に、削除されず残っているのがわかりますでしょうか?

その他の設定項目

[Face Count]

モディファイアーの欄の左下に表示されているこの項目は、このモディファイアーを適用した結果残っている面の数を示しています。

この項目は入力する項目という訳ではありません。このモディファイアーを設定しているメッシュオブジェクトの面の数を自動計測してくれる項目です。

今までの他の項目で掲載したgifの中で目を向けてみると、数値が勝手に動いているのがお分かりになるかと思います。

おまけその1:岩モデルメイキング

最後の[平面]タイプでポリゴン数削減していた時に思ったのですが、

「これ使えば、簡単に岩を作成できないか?」

と思って、やってみたら、結構それっぽくなったので、おまけとしてご紹介します。

  1. まずはそれっぽい感じの形のメッシュを作成します。
  1. サブディビジョンサーフェスモディファイアーを使って細分化します。
  1. デシメートモディファイアー』の[平面]で、面の数をある程度少なくし、面を縁取る辺がギザギザを描くようになった角度のところで止めておきます。

※画像では旧名の『ポリゴン数削減モディファイアー』での表記

  1. リメッシュモディファイアー[モード: スムーズ]を使います。これで大体完成です!
  1. おまけでこれは必須ではないですが、お好みで『三角面化モディファイアー』を使ってメッシュを全体的に整えても良いかと思います。

こんな感じで完成です!

おまけその2:斜め格子を簡単作成

  1. まずはある程度細分化した平面オブジェクトを用意します。
  1. 平面オブジェクトに『デシメートモディファイアー』を追加し、[分割の復元]>[反復]の値を”1″にします。

たったこれだけで完成です!

何かわからないことなどあれば、ご質問どうぞ!(間違いなどもご指摘くださるとありがたいです汗)

参考にさせていただいたサイト・ページ一覧

モディファイアー関連の記事のご紹介

この記事の他にも、Blenderの様々なモディファイアーについて、機能や使い方を私自身も試しながらではありますが、ご紹介させていただいております。よろしければ、こちらも併せてご覧ください。

生成

Blenderに関する記事や作品をまとめたページ作りました!

Blender Note
モバイルバージョンを終了