1

3D Max Studios には、3D モデルを 2 つにカットする機能 (関数の名前を思い出せませんでした、申し訳ありません) があることを思い出しました。たとえば、球体を作成し、それを真ん中で切り取り、2 つの半球体を残します。では、人体はどうでしょうか。武士が敵の腹を切り裂くと想像してください。敵のモデルは 2 つのモデルになります。1 つは頭から腹までの上部、もう 1 つは腹から足までの下部です。また、プレイヤーがカット モデルの内部を見るのを防ぐために、追加のポリゴンも両方のモデルに配置する必要があります。(できれば、このポリゴンに血液テクスチャを追加して、これが体内の血液であるという印象を与えてください) 説明が下手で申し訳ありませんが、私が言おうとしていることがわかりますか?

3D Max Studios では、上記のことができます。さて、3D プログラミングに関しては、このようなことを達成したい場合はどうすればよいでしょうか? 確かに、安価な方法の 1 つはカット モデルを事前に作成することですが、これは現実的ではありません。

切断角度に関してリアルタイムでモデルを 2 つに切断する方法を探しています。これは可能ですか?

4

2 に答える 2

1

これはクリッピングと呼ばれ、コンピュータグラフィックステキストのポリゴンをクリッピングするための標準的なアルゴリズムがあります。

于 2010-10-15T04:49:09.940 に答える
1

「カットの角度」を3次元で表すには、 2つの角度が必要です。

数学では、モデルを2つに分割する平面を定義して、点と法線を使用する方がおそらく簡単です。

次に、モデルのどの部分が平面の片側にあり、どの部分が反対側にあるかを判別できます。各点を平面方程式に接続するだけです。たとえば、

ax + by + cz + d

..結果が>0の場合、ポイントは一方の側にあり、<0の場合、もう一方の側にあります。

平面と交差する三角形を検出し(一部の頂点が片側にあり、一部が反対側にあるため)、それらを複数の三角形に分割して、「カット」をまっすぐに保つことができます。

       / \
      / \
  -  -  -  -  -  -  - - (切る)
    / \ / \
   / \ / \
  / \ / \
  ------------

(線の下に必要な三角形は2つだけであることに注意してください-私はアーティストではありません:)

次に、ソリッドモデルを2つにカットし、作成した穴に「パッチ」を適用する必要がある場合は、分割平面上のポイントをテッセレーション(または三角形分割)して、そこに新しいポリゴンを作成する必要があります。これは、特にポリゴンが凸面でない場合は、必ずしも簡単ではありません。

于 2010-10-15T05:01:33.443 に答える