Z-Notes

主にZBrush、3dsMax、3d-Coatなどの3DCGアプリに関する覚え書き。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ZBrush、ダイナメッシュによる断片化したゴミポリゴンの対策

これは円筒のプリミティブをダイナメッシュにしてクリップブラシで切り出した形状です。

DM-error-01.jpg



特に何の変哲もないごく単純な形状です。

しかし、このようにクリップ系ブラシなどとダイナメッシュを組み合わせて使うと、ダイナメッシュの更新時に断片化したゴミポリゴンが生成される場合が多いようです。

クリップブラシによってポリゴンが圧縮されるのが原因でしょうか?またサーフェースが交差している部分にもゴミポリゴンが生成される場合があるようです。

このようなゴミポリゴンは非常に小さかったりオブジェクトの内側に隠れていたりで気づきにくかったりするのですが、これをこのままにしておくと後で色々と悪さをするので早めに削除しておきましょう。



断片化したゴミポリゴンがメインのオブジェクトとは別のポリグループとなっていればそれを削除するのは簡単なんですが、いつもそうであるとは限りません。

断片化したゴミポリゴンは通常、メインのオブジェクトとは独立して存在します。そこでわたしは次のような手順を考えました。(最良の方法であるかどうかはわかりません。)


まずメインのオブジェクトの一部だけをポリゴン選択ブラシで選択して表示します。

この時、断片化したゴミポリゴンまで選択する確率を少なくするためできるだけ小さな部分だけを選択して表示します。

DM-error-02.jpg



つぎに「Tool」>「Visibility」で「Grow All」ボタンをクリックします。

DM-error-03.jpg



これによって表示されたポリゴンとつながったポリゴン(つまりメインのオブジェクト全体)のみが表示されます。

DM-error-04.jpg


サブツールのアイコンにカーソルを当ててメッシュの情報を見てみると、25000近くのポリゴンが非表示になっているのがわかります。

DM-error-05b.jpg



これが断片化したゴミポリゴンです。「Tool」>「Geometry」>「Modify Topoogy」で「Del Hidden」ボタンでこれを削除します。

また複数のオブジェクトを含むサブツールの場合は「Tool」>「SubTool」>「Sprit」の「Sprit Hidden」でゴミポリゴンごと別サブツールに分割して上の手順を繰り返し、最後にまとめてゴミポリゴンを削除するといいでしょう。

「Sprit Hidden」ボタンは非表示ポリゴンがある時のみアクティブになり、それ以外ではグレーアウトして使用できません。


このようなごく単純な形状でさえもダイナメッシュを使うと断片化したゴミポリゴンが大量に発生してしまう事があります。十分に注意してモデリングしましょう。

他のボクセル系機能、「Remesh All」「Unified Skin」なども同様の問題があるかもしれません。


また断片化したゴミポリゴンのチェックと同時に「Tool」>「Geometry」>「MeshIntegrity」で「Check Mesh」、「Fix Mesh」も行っておきましょう。

「Check Mesh」はメッシュに非多様性ポリゴンなどの問題がないかをチェックし、もしそれがあれば「Fix Mesh」で修復します。

特にオブジェクトの厚みの薄い部分でダイナメッシュを行うとこのような非多様性ポリゴンや断片化ポリゴンの問題が発生するようです。

下は先ほどの断片化ポリゴンを「Check Mesh」したものです。

DM-error-06.jpg

「このメッシュには2つ以上のポリゴンによって共有される20348のエッジが含まれています(3つ以上の、とするのが正しいんじゃないかな?英語だとこれでいいのかな?)。」

(エラーの種類によってメッセージが違います。また複数のエラーがある場合、メッセージウィンドウもそれに応じて複数回開きます。)

「Fix Mesh」を実行して再び「Check Mesh」を実行すると下のような表示になりメッシュに問題が無いことを示します。

DM-error-07.jpg

「メッシュの品質テストは問題無く終了しました。」

メッシュの問題が解決しようがしまいがこれはゴミポリゴンなので削除するんですけどね。


断片化したゴミポリゴンは数ポリゴンの場合もあればこのように無数のポリゴンが散在していたり密集している場合もあります。

特にクリップ系ブラシをダイナメッシュと併用する場合はこのようにダイナメッシュの更新後に断片化ポリゴンや非多様性ポリゴンのチェックをするといいでしょう。

クリップ系ブラシを一度使うたびにダイナメッシュを更新するほうがあとでまとめて更新するより問題の発生する可能性は低くなかも知れません。

また「Fix Mesh」でダイナメッシュに穴が開く場合もあるかもしれないので念のため「Tool」>「Geometry」>「Modify Topology」の「Close Holes」で穴を塞いでおくといいかもしれません。



もしかしたらダイナメッシュの減算ブーリアンが正しく行えないのはこのような断片化したゴミポリゴンや非多様性ポリゴンが原因かも。

以上のことに注意して実験してみたところ、多少複雑なくり抜きも問題なくできました。まあ、たまたまかもしれませんがね。

DM-error-08.jpg

追記>これらの問題に対処しても結局うまくブーリアンできない時はできませんでした。

しかし、上手くできなかった形状を個別にObjとしてExportし、新たなプロジェクトにImportしてやってみると上手くできました。

この結果から見ると上手くできなかったプロジェクトのグローバル空間あるいはサブツールのローカル空間そのものに何か問題が含まれているのかもしれませんね。

いずれにしろこの問題はもうすこし検証してみる必要はあります。




いつもの事ですが今回も記事を書きながら実験、確認しているので間違いがあるかもしれません。

記事を書いている間も確認したらできなかったりして何度も軌道修正することもありますし、書き始めた時と全く逆の結論になることもあります。

ここの記事を100%信用せず、ご自分で確認して下さい。




コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://momonchan574.blog65.fc2.com/tb.php/713-f89dc378
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。