運んでた腰の

Exporterの高速化にはまってますよ・・・

結局ファイルはマテリアルによる並び替えだけ

Exporter内でやって

頂点結合とかはポスビの読み込み部分でやろうと思います

 

しかし、Exporterを作る度ですが

今回も、XSIの仕様にいらついてますよ~

1250.jpg

(高速化前)

中でも、エンベ管理がはらたつ!

ウェイトが0の物も所持していて

ウェイトを習得するにはデフォーマーごとに頂点を回らなければいけないって言う仕様・・・

1万頂点で、50個のデフォーマーの場合は

50万回ループしなきゃいけないって事がかなり不満・・・

頂点側で管理してくれれば楽なのに・・・

↑の場合は30デフォーマー&1800頂点で400ミリ秒かかってますね

 

例えば、XSIが保持しているのがArray型なので

FindAllで0以上の数値を出してやれば、ループ回数が減るとは思うんですが

ウェイト値なので100がたくさんあるので

無理という結論に・・・

FindAllで条件のマッチした要素+インデックスが帰ってくるのであればOKなんですけどね・・・

 

で、もう一つの不満は

ノードインデックス

ポリゴン管理があるのに、三角形ポリゴン管理がない・・・

これは意味がわからない・・・

ノード管理の法線は三角形からアクセスできるのに

そのインデックスはアクセスできないと言う謎の現象が・・・

 

その為、四角ポリゴン以上の場合

ポイント数から三角形数を割り出して

ポリゴンからアクセスしたノードインデックスを習得しなくてはいけない・・・

↑の場合は600ミリ秒

約32000三角形の場合は

1251.jpg

2100ミリ秒と絶望的な数値が・・・

 

で、C#の高速化テクニックとか

構造体のマーシャルとか色々試した結果(マーシャルは逆に遅かった)

1252.jpg

こんな感じで、ちょいと高速化出来ましたよ・・・

 

ただ、XSI標準のFBXExporterがかなり早いので

まだ何か隠れてる部分がありそうってな雰囲気

 

 

そんな中

今日こんなメールが

1253.jpg

・・・

ひゃっふぅ!!

コメント

タイトルとURLをコピーしました