ASEのスムージングについて考えてみる [3DCG]
大体出来上がってきたASEプラグインですが、最難関と思われるスムージングがまだ残されています。
他の部分はトライ&エラーでなんとか突破できましたが、スムージングは一番難しそうなので一旦文章に書いて情報を整理してから再度挑もうと思います。
まず、ASEのスムージング仕様を確認してみると、
ASEは各面ごとにメッシュスムージングIDが割り当てられており、スムージングIDが同じで隣接するメッシュはスムージングがかかって表示されます。
つまりスムージングを正常に割り当てるには、ASEを書き出す時に、どの面とどの面がスムージングがかかっているかを計算してそれに基づいて各面にスムージングIDを割り当てる必要があります。
メタセコ自体はオブジェクトに設定されているスムージング値を使ってメッシュのスムージングを表示しているのでおそらく計算方法さえ書ければ書き出せるはずです。はずです。
その計算方法ですが、使えそうな情報はオブジェクトのスムージング値と面の法線方向です。
面の法線方向が直接取得できたら簡単なのですが、出来ないみたいなのでまず面の各ポイントの法線から面の法線を計算して、その面の法線と隣接する面の法線がオブジェクトのスムージング値以下なら同じスムージングIDを割り当て、スムージング値以上なら別のスムージングIDを割り当てればたぶん行けると思います。
その他近況ですが、ASEエクスポータが完成したらほぼ製作が完了したコンビニセット一式をUDKに持っていってシーン組んでみようと思っています。
他の部分はトライ&エラーでなんとか突破できましたが、スムージングは一番難しそうなので一旦文章に書いて情報を整理してから再度挑もうと思います。
まず、ASEのスムージング仕様を確認してみると、
ASEは各面ごとにメッシュスムージングIDが割り当てられており、スムージングIDが同じで隣接するメッシュはスムージングがかかって表示されます。
つまりスムージングを正常に割り当てるには、ASEを書き出す時に、どの面とどの面がスムージングがかかっているかを計算してそれに基づいて各面にスムージングIDを割り当てる必要があります。
メタセコ自体はオブジェクトに設定されているスムージング値を使ってメッシュのスムージングを表示しているのでおそらく計算方法さえ書ければ書き出せるはずです。はずです。
その計算方法ですが、使えそうな情報はオブジェクトのスムージング値と面の法線方向です。
面の法線方向が直接取得できたら簡単なのですが、出来ないみたいなのでまず面の各ポイントの法線から面の法線を計算して、その面の法線と隣接する面の法線がオブジェクトのスムージング値以下なら同じスムージングIDを割り当て、スムージング値以上なら別のスムージングIDを割り当てればたぶん行けると思います。
その他近況ですが、ASEエクスポータが完成したらほぼ製作が完了したコンビニセット一式をUDKに持っていってシーン組んでみようと思っています。
コメント 0