夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

Unityでリメッシュの機能を実装する その① リメッシュの理解

本日はUnity枠です。

先日Unityないで動的なメッシュの細分化を実装しました。

本日はリメッシュが実装できるか見ていきます。

〇環境

・Windows11PC

〇リメッシュとは?

リメッシュはその名の通り形状を維持しつつメッシュを作成しなおす作業を指し、一般的に最適化などで使用されます。 

BlenderやMayaなどのDCCツールには実装されており、一般的に使用されています。

今回はUnityでリメッシュを行うためにまずリメッシュの理解を行います。

Blenderを例にとるとBlenderではデータプロパティからリメッシュにアクセスできます。

Blender4.1シリーズではボクセル四角面の2種のアルゴリズムが選択可能です。

・ボクセル

ボクセルリメッシャーの場合はOpenVDBを使用して対象のジオメトリから新しい多様系メッシュを作成します。

・元メッシュ

・リメッシュ後

OpenVDBはオープンソースC++ライブラリです。

www.openvdb.org

 目的として3Dグリッドに離散かされたSparseVolumeデータを効率的に保存、操作するための階層的データ構造及び豊富なツールが提供されています。

 Blenderではボリューム効果を計算するための関数として使用しスカルプト的なリメッシュが可能です。

・四角面

四角面リメッシャーはQuadriflowアルゴリズムを使用してジオメトリのサーフェスの曲率に依存したQuadベースのメッシュを作成します。

ボクセルに比べ処理が低速ではありますが、トポロジーに対して高品質の出力を生成します。

QuadriflowアルゴリズムはInstant Field-Aligned Meshsに基づいた3Dの物体の表面を四角形できれいに分割するためのアルゴリズムです。

3DCGをコンピュータ内で扱うとき四角形の数を最小に抑えつつ物体の形状を製作に表現するように分割します。

Quadriflow自体はオープンソースGitHubで公開されています。

github.com

しかしながらBlenderにおけるQuadriflowアルゴリズムBlenderの内部でQuadriflowを統合する形で開発されました。


以上のようにBlenderを例にとりましたがリメッシュをする際はまずは形式化したアルゴリズムに基づくことが一般的なようです。

次回はUnityで実装できるようにQuadfiflowもしくはOpenVDBのライブラリを使用できるかの検証をしていきます。

本日は以上です。