WIN10 64位 OSG3.4+Qt5.3+VS 编译及使用dae插件、dxf插件

时间:2024-04-14 12:04:25

OSG经过一段时间的发展,相比以前的开发来说,在编译安装上的步骤已经简单许多,但依旧存在许多的坑;本文简单阐述了在64位win10系统上,使用VS2013编译工具结合Qt5.3库,编译安装了带dae、3ds等3D显示插件的3.4版本的OpenSceneGraph(OSG)。


前期准备工具:

1、安装好Cmake ,本文所使用的版本为3.8-rc1的exe安装版;

2、去OSG官网下载3个源代码文件:OpenSceneGraph-3.4 源码(SourceCode)、适用于OSG3.4版本的测试数据库(Data) 和 编译安装所需要的第三方支持库3rdParty(64位全版本);要注意的是,第三方支持库要与所使用的编译器相对应;

OpenSceneGraph-3.4:

https://github.com/openscenegraph/OpenSceneGraph/tree/OpenSceneGraph-3.4.0

OpenSceneGraph-3.4-Data:

http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.4.0/data/OpenSceneGraph-Data-3.4.0.zip

3rdParty(x64_full):

https://download.osgvisual.org/3rdParty_VS2013.5_v120_x64_V10_full.7z

3、确保电脑上已经正确安装64位的VS2013和适用64位MSVC2013带Opengl的编译器的Qt5.3


CMake配置过程:

1、建立用于存放编译源码、编译工程和编译结果的目录结构,本文所使用的目录结构如下:

WIN10 64位 OSG3.4+Qt5.3+VS2013 编译及使用dae插件、dxf插件

其中OSG_directroy 可以自行定义其上层位置;

3rdParty_x64_full用于存放第三方支持库解压出来的内容(注意:该目录下应直接含有bin、include等文件,不应再多设置一层目录);

build_340_MSVC2013用于存放通过Cmake生成的VS2013工程文件,以及后续ALL_BUILD编译后生成的各类文件;

OSG340_MSVC13用于存放编译安装后的3.4版本的OSG;

2、配置CMake,生成OpenSceneGraph解决方案:

选择源文件存放的位置 和 CMake生成的解决方案存放位置

WIN10 64位 OSG3.4+Qt5.3+VS2013 编译及使用dae插件、dxf插件

点击Configure,选择与64位VS2013对应的生成器,点击Finish;

WIN10 64位 OSG3.4+Qt5.3+VS2013 编译及使用dae插件、dxf插件

接下来出现了一大堆红色条目,以下讲解及展示重要的配置项:

ACTUAL_3RDPARTY_DIR:第三方库的根目录;

BUILD_OSG_EXAMPLE:编译osg的参考例子;

BUILD_OPENTHEREAD_WITH_QT:使用VS2013进行开发就不要勾选,容易引起ot20-openthread.dll的错误;详见参考资料[1].

CMADE_INSTALL_PREFIX:osg编译安装后的存放目录;

WIN10 64位 OSG3.4+Qt5.3+VS2013 编译及使用dae插件、dxf插件

以下展示与Qt配置相关的条目:

WIN10 64位 OSG3.4+Qt5.3+VS2013 编译及使用dae插件、dxf插件

如果使用Qt5.3以上的版本,有可能找不到Qt5WebKitWidget_DIR和Qt5WebKit_DIR的目录;

以下讲解和展示与COLLADA相关的配置项:

在配置了COLLADA_DOM_ROOT为正确的位置之后,就可以再点击一次Configure,CMake能够在一定程度上配置好有关条目;本文的正确配置如下:

WIN10 64位 OSG3.4+Qt5.3+VS2013 编译及使用dae插件、dxf插件

以下为能够自动配置的有关项,倘若没有,可能需要自行手动配置:

WIN10 64位 OSG3.4+Qt5.3+VS2013 编译及使用dae插件、dxf插件

WIN10 64位 OSG3.4+Qt5.3+VS2013 编译及使用dae插件、dxf插件

WIN10 64位 OSG3.4+Qt5.3+VS2013 编译及使用dae插件、dxf插件

需要注意的是NVTT有关的库是重要的与编译nvtt插件相关的库;

不能自动配置的库包括:与COLLADA动态库和静态库、COLLADA的BOOST库、COLLADA的domany路径,它们都能够在第三库的目录下找到:

WIN10 64位 OSG3.4+Qt5.3+VS2013 编译及使用dae插件、dxf插件

WIN10 64位 OSG3.4+Qt5.3+VS2013 编译及使用dae插件、dxf插件

WIN10 64位 OSG3.4+Qt5.3+VS2013 编译及使用dae插件、dxf插件

COLLADA动态库和静态库配置成一样的就可以,也可以只配置静态库;

再点击一次Configure,如果同时配置COLLADA动态库和静态库,那么还会再出现一个选项,勾选与不勾选结果都是一样的:

WIN10 64位 OSG3.4+Qt5.3+VS2013 编译及使用dae插件、dxf插件

最后再点击一次Configure,没有红色条目出现,就可以点击Generate了,本阶段结束。


解决方案的检查及编译:

在完成CMake的配置并Generate解决方案之后,就可以用VS2013打开解决OpenSceneGraph解决方案进行编译了。打开方法要么是直接在CMake中操作,要么是进入文件夹,不再赘述。

在使用批生产指令进行ALL_BUILD之前需要检查Plugin nvtt 工程的属性配置,需要确保工程的输入依赖项里有如下7个lib:

nvcore.lib nvmath.lib nvimage.lib nvthread.lib bc7.lib bc6h.lib squish.lib

如果是Debug版本就选对应Debug版本的lib;

WIN10 64位 OSG3.4+Qt5.3+VS2013 编译及使用dae插件、dxf插件

WIN10 64位 OSG3.4+Qt5.3+VS2013 编译及使用dae插件、dxf插件

在确保以上7个lib都添加到Plugin nvtt工程之后,应该就不会发生nvtt插件编译失败的问题了。

最后就可以开始ALL_BUILD 和 INSTALL 的Release版本和Debug版本的编译,静待成功。


环境变量配置:

在编译成功之后,应该就获得了带有dae等各种3D插件的OSG库。

注意:为了确保各个插件的运行环境,需要将3rdParty_x64_full/bin目录下的所有可执行二进制文件拷贝一份放到生成的osg文件夹下的bin目录内。即:OSG340_MSVC13/bin。

最后就可以将OSG340_MSVC13文件夹下的文件转移到希望放置的目录位置,并将测试数据包OpenSceneGraph-3.4-Data解压到同一目录位置,并添加好环境变量;

本文将OSG340_MSVC13文件夹下的文件转移到了OSG340_X64文件夹下,所以本文的环境变量配置如下:

WIN10 64位 OSG3.4+Qt5.3+VS2013 编译及使用dae插件、dxf插件

除此之外,还需要在系统的Path环境变量下添加OSG_BIN_PATH变量,以确保控制台程序能够找到想要的bin路径。

WIN10 64位 OSG3.4+Qt5.3+VS2013 编译及使用dae插件、dxf插件

至此OSG3.4编译安装完毕,可以进入程序测试阶段。


测试结果:

WIN10 64位 OSG3.4+Qt5.3+VS2013 编译及使用dae插件、dxf插件

WIN10 64位 OSG3.4+Qt5.3+VS2013 编译及使用dae插件、dxf插件

WIN10 64位 OSG3.4+Qt5.3+VS2013 编译及使用dae插件、dxf插件

WIN10 64位 OSG3.4+Qt5.3+VS2013 编译及使用dae插件、dxf插件

想要直接在控制台测试dae、3ds文件的打开可以自行去下载3D文件,也可以在下方的链接中下载文件,然后将3D模型文件放到Data目录下;


便宜下载:

测试模型:

https://download.****.net/download/kroc_kroc/10596662

编译好的带dae、3ds插件的OSG程序:

https://download.****.net/download/kroc_kroc/10596652


参考资料:

[1].http://forum.openscenegraph.org/viewtopic.php?t=15010&view=next

[2].http://forum.openscenegraph.org/viewtopic.php?t=15884