最近研究了一段osg/osgDB插件读写机制,写出来,做个记录,方便查阅。
举例说明。例如加载cow.stl这个格式的模型
首先根据模型格式stl
找到对应的dll名称,osgdb_stl.dll
查找电脑的所有环境变量找到osgdb_stl.dll
试着读取osgdb_stl.dll
加载成功,并成功执行了osgdb_stl.dll的宏定义,然后解析文件成功,然会解析结果。
函数执行顺序:osg::Node *node=osgDB::readNodeFile(某种类型的文件路径),这个语句是osg读取节点数据常用的函数,下面对这个函数进行跟踪,简单介绍下数据的处理过程,方面自己对osgDB的插件进行简单的修改,供自己进行简单的修改;
osg::Node *readNodeFile(const std::string &filename) //函数所在位置osgDB/ReadFile,该函数属于文件作用域,调用文件中的另一个函数
{
//函数所在位置osgDB/ReadFile,该函数只是在原来的基础上,调用了osgDB/Registry的文件中的一个Registry单例,获取的是option,默认为空
return readNodeFile(filename,osgDB::Registry::instance()->getOptions());//osgDB/ReadFile ①
}
//①的具体实现,该函数的作用是调用osgDB/Registry的单例,进行数据的解析,参数options默认为空.
Node* osgDB::read