私のプロジェクトでは、非常に詳細なメッシュ(衣類)を変形して凸型メッシュに「フィット」させるシステムを作成しています。これを行うには、アイテムと「船体」の深度マップを使用して、偏差が発生するワールド空間のポイントと範囲を決定します。
隠されたすべての頂点を「ハル」で定義された深度に単純に変換することはかなり効果的であり、パフォーマンスは良好ですが、メッシュの機能を維持しないという問題があり、誤検出を避けるために広範囲のカリングが必要です。
代わりに、デプスデビエーションマップから、変形したメッシュのすべての頂点を外側に(ワールドスペースで)「プッシュ」*する一連の単純な「デフォーマ」を生成したいと思います。この方法では、メッシュのすべての機能が保持され、不適切な頂点をカリングするために複雑なヒューリスティックを使用する必要はありません。
ただし、このデフォーマセットを生成する方法がわかりません。特定の範囲内の連続した偏差の各パッチに球面を一致させようとするアルゴリズムのようなものを想像していますが、これをどこから始めればよいかわかりません。
誰かがデフォーマを生成するための適切なフィルタまたはアルゴリズムを提案できますか?それとも、深度マップを「圧縮」する別の言い方をすると?
(*押し込みは、凸型の「ふさふさした」ヒューマノイドにフィットするため、変換はサーフェスのPOVから「球状」になる可能性があります。)
編集:これは、私が達成しようとしていることを示す、正しく提案された画像/図です。
また、この質問が投稿されて以来、私はこの問題に多くのことを取り組み、デフォーマを取得する方法を解決したことはありませんが、結局、このデプスマップは次のように不適切であると判断しました。
- 変形したメッシュが完全でない場合、凸状メッシュの反対側にあることを意図したマップ内のテクセルを取得することができます(正しい側のカメラに近いものによって隠されていないため)。
- 変形ごとに6つのマップが必要なため、効率は期待していたほど高くはありませんでした。
これらは解決できないというわけではありませんが、GPUで実行されているカーネルでの衝突テストを含む他のソリューションは、それほど高速ではないかもしれませんが、より高い品質の結果をもたらし、はるかに単純でした。
私はまだこの質問の問題は興味深いと思いますが、それが好まれる状況があると確信しているので、どんな答えにも興味があります。