在3D渲染的时候,工作量比较大且比较麻烦的一件事就是建模,如果想降低这种麻烦就需要借用网络上已经存在的一些模型素材,至少这是非商用渲染程序常用手段(咱们自己写例子的时候经常这样做)。但是,由于网络中的模型格式众多,如果自己一一去解析代价也挺高的。ASSIMP作为一个开源项目,设计了一套可扩展的架构,为模型的导入导出提供了良好的支持。这里说的导入是把模型文件,解析成ASSIMP自身定义的一套模型,而导出即是把自身建立的模型结构导出为模型文件。
ASSIMP默认提供了网络上比较流行的多种模型文件格式的导入和导出,如果我们仍需要对一下特殊的文件格式做这些操作,可以自己扩展。
Importer :
//1.注册模型导入实现类,BaseImporter对应的是一种具体的格式的模型文件
aiReturn RegisterLoader(BaseImporter* pImp);
aiReturn UnregisterLoader(BaseImporter* pImp);
//2.注册处理过程,BaseProcess对应一个加载后的处理过程,例如把所有的非三角形网格变成三角形网格之类的,功能很强大
aiReturn RegisterPPStep(BaseProcess* pImp);
aiReturn UnregisterPPStep(BaseProcess* pImp);
//3.各种属性
void SetPropertyInteger(const char* szName, int iValue, bool* bWasExisting = NULL);
void SetPropertyBool(const char* szName, bool value, bool* bWasExisting = NULL) {
SetPropertyInteger(szName,value,bWasExisting);
}
void SetPropertyFloat(const char* szName, float fValue, bool* bWasExisting = NULL);
void SetPropertyString(const char* szName, const std::string& sValue, bool* bWasExisting = NULL);
int GetPropertyInteger(const char* szName, int iErrorReturn = 0xffffffff) const;
bool GetPropertyBool(const char* szName, bool bErrorReturn = false) const {
return GetPropertyInteger(szName,bErrorReturn)!=0;
}
float GetPropertyFl

ASSIMP是一个开源的3D模型导入导出库,支持多种格式,如DAE, BLEND, 3DS等。通过Importer类进行模型加载,提供将四边形转三角形、计算切线等预处理功能。"
83051511,8041958,Hadoop环境配置:详细编译与安装教程,"['Hadoop', '大数据开发', '开发工具']
最低0.47元/天 解锁文章
1763

被折叠的 条评论
为什么被折叠?



