UnrealEngine4.20の新機能とUnrealStudio その3

前回の続きでCADデータのインポートを細かく分析してみようと思います。
公式のDatasmithのCADのマニュアルはこちらです。

例によってUnrealStudio4.20を起動し、「ImportCAD」を実行します。

前回もやったので省略しますが、CADのデータを指定すると、UE4に変換してくれます。

その際のオプションがこれです。上の「Process」はモデル、テクスチャ、ライト、カメラの読み込みの有無を決めます。
問題は下の「Geometry & Tessellation Options」の3項目です。

(1)Chord Tolerance=生成するポリゴンと元のサーフェスの間の最大距離を設定します。

 ※マニュアルより画像を引用させていだいてます。

CADデータはNURBS曲線で、それをUE4でポリゴンに変換します。つまり、輪郭は上の図のようにカクカクしてきます。しかし処理がリアルタイムで可能です。
この「Chord Tolerance」値が小さければ、より元のCADの曲面に近い形になるということです。

(2)Max Edge Length=生成されたポリゴンの辺の最大のエッジの長さを設定します。

※マニュアルより画像を引用させていだいてます。

この値が小さいほど、細かいポリゴンになりますが、平面の部分までポリゴンが多くなります。また、この値が大きすぎると細長いポリゴンなど問題が出ます。

(3)Normal Tolerance=サーフェスから生成された隣接するポリゴンの間の最大角度を設定します。

※マニュアルより画像を引用させていだいてます。

変換されたポリゴンの隣の面との角度の最大値を決めます。これが小さいほど、曲面に近い細かいポリゴンになります。この設定のメリットは値を小さくしても、平たんな箇所はポリゴンが増えません。

理屈は解ったので、実験してみましょう。

左から、Chord Tolerance=0.1、0.001、0.0001でインポートしてみました。
ポリゴン数の差が出てます。

Chord Tolerance=0.1 で、3325ポリゴン、

Chord Tolerance=0.001で、1万5553ポリゴン、

Chord Tolerance=0.0001で、14万5678ポリゴンです。
これは玩具の設計データなのでとても小さいモデルなので、値も小さくなっています。自動車、飛行機など大きさに合わせて調整が必要です。

次に、Max Edge Length=0.1、0.5、0.1で作成しました。0.1=3325ポリゴン、0.5=4116ポリゴン、、0.1=1万9756ポリゴン

最後に、Normal Tolerance=20度、10度、5度でインポートしました。

20度=3325ポリゴン、10度=11104ポリゴン、5度=4万0605ポリゴン

この実験で、パラメータの変更でどれくらいの細かさでポリゴンになるのか、が解っていただけたかと思います。

注意として、それぞれの値を間違えると、UE4ごとフリーズします。このパーツでは、Max Edge Length=0.001でフリーズしました・・・
形状ごとに最適なパラメータ設定には、コツをつかむまで慣れが必要かと思います。