スケルタル メッシュ削減ツールのアルゴリズムの詳細

スケルタル メッシュ削減ツールのエッジ コラプス アルゴリズムが機能する仕組みについて説明します。

Choose your operating system:

Windows

macOS

Linux

エッジ コラプス

削減コードではスケルタル メッシュの簡易化にエッジ コラプス アルゴリズムを使用します。 このアルゴリズムは、エッジ コラプスが実際に何をするのかを知るうえでも便利なものです。 下の画像は、エッジをコラプスする 3 つのステップを示しています。 削減ツールは実質的に、メッシュ内の三角ポリゴン (もしくは頂点) が目的の数に達するまでメッシュ内でエッジをコラプスするループと考えることができます。

NotesOnEdgeCollapse_01.png

  1. コラプスするエッジが選択されます。

    1. コラプスするエッジ

  2. コラプス後の位置が算出されます。 (現存のエッジ上の位置とは限りません)

    1. コラプス後の頂点

  3. エッジがコラプスされて、2 つの三角ポリゴンが取り除かれます。

エッジ選択の仕組み

メッシュには、それぞれのエッジに、エッジがコラプスされた場合にメッシュがどれだけ変化するかを表す コスト があります。 簡略化アルゴリズムはこのコストが最も低いエッジを選択します (つまり、メッシュの変化が最も少ないもの)。 では、簡略化についてもう少し詳しく説明します。 低コストから高コストの順にエッジを並べると、アルゴリズムはこのリストに沿って、三角ポリゴン (または頂点) が指定された数に達するまで処理を続けます。 つまり、低コストの (最も重要でない) エッジがコラプスされて、高コストの (重要な) エッジが残ります。 ここで、エッジのコラプス処理によって付近のエッジも変更されることで、それらのコストもアップデートされて、コスト順で並んでいるエッジのリストも変更されるという複雑な状況が発生します。

HowIsTheEdgeChosen_01-1.png

  1. コラプスするエッジが選択されます。

    1. コラプスするエッジ

コラプス コストが発生する理由

実際の コラプス コスト は (置き換えに最適な頂点位置を使用した場合に) メッシュの部分的な形状がどれだけ変更されるかと、新しい頂点の属性 (法線、カラーなど) の機能性に応じた追加のペナルティに基づいて算出されます。スケルタル簡略化機能では、実際に特定のエッジのコストを高くすることができます。  具体的には、ユーザーによって重要と判断されて指定されたスケルタル ボーンに関連付けられているエッジに、追加のペナルティを加える機能を利用します。  ただし、これらのエッジがまったくコラプスされなくなるわけではなく、簡略化対象リストの後のほうに移動されることを意味します。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる