我尝试使用以下代码在C++上的Assimp库中加载Blender文件,但由于它根本没有任何网格,因此它失败了。我正在使用的Blender文件是使用Blender本身保存的默认多维数据集。
Assimp::Importer importer;
const aiScene * scene = importer.ReadFile( path, aiProcessPreset_TargetRealtime_Fast );
if( !scene ) {
fprintf( stderr, importer.GetErrorString() );
return false;
}
const aiMesh * mesh = scene->mMeshes[0]; // Fails here since mMeshes is NULL
我在这里做错什么,是否需要包含特殊标志才能加载搅拌器对象?还是我需要以某种方式导出Blender对象?
最佳答案
非Blender的文件很难读取和解释Blender文件。原因是,Blender文件实际上是Blender进程的结构化内存转储。除非您打算将整个Blender实例嵌入到程序中,否则几乎无法解析它。
相反,您应该使用Blender将模型导出为易于处理的文件格式明确的文件。 Blender随附了用于大量3D文件格式的集合。
关于opengl - 如何使用Assimp加载Blender文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20046553/