assimp ライブラリを使用してモデルを iOS アプリにロードしています。ただし、一部の大きなモデル ファイルでは、モービル アプリの読み込み時間が長すぎます。
変換処理時間を考慮してください。実行前にツールでモデルを変換することにしました。
私の主な目標は、このシーンをファイルに書き込むことです。
私は非常に基本的な C++ の経験があります。最初に assimp::expoerter クラスを試しました。
エクスポート設定をオンにして assimp libary に準拠しました。
しかし、エクスポート メソッドを使用しようとすると、このエラー メッセージが表示されます。
No matching member function for call to 'Export'
メソッドはありますが、使用できません。
scene = (aiScene*) aiImportFile([[openPanel filename] cStringUsingEncoding:[NSString defaultCStringEncoding]], aiPostProccesFlags | aiProcess_Triangulate | aiProcess_FlipUVs | aiProcess_PreTransformVertices | 0 );
if (scene) {
NSString *pPath = [openPanel filename];
pPath =[NSString stringWithFormat:@"%@%@", pPath, @"_new"];
NSLog(@"New file Path : %@", pPath);
Assimp::Exporter *exporter = new Assimp::Exporter();
exportFormatDesc = exporter->GetExportFormatDescription(0);
exporter->Export(scene, exportFormatDesc->id, pPath);
const aiExportDataBlob *blob = exporter->ExportToBlob(scene, exportFormatDesc->id);
size_t blobSize = blob->size;
aiString blobName = blob->name;
}
次に、Assimp::Exporter Class Referenceを読むと、 aiExportDataBlobを使用してファイルを作成するというアイデアが得られます。
ExportToBlob は、それぞれが 1 つの出力ファイルを参照するメモリ バッファ (ブロブ) のリンクされたリストを返します (ほとんどの場合、もちろん出力ファイルは 1 つだけですが、Assimp は幅広いファイル形式をサポートすることを目的としているため、この追加の複雑さが必要になります) )。
ExportToBlob は、データをメモリ内で操作する場合に特に役立ちます。
const aiExportDataBlob *blob = exporter->ExportToBlob(scene, exportFormatDesc->id);
size_t blobSize = blob->size;
aiString blobName = blob->name;
しかし、このブロブをファイルに書き込む方法がわかりません。
アドバイスや助けをいただければ幸いです。