济南友泉软件有限公司
目前,国内CAx(CAD/CAE/CAM)软件开发大都采用OpenCASCADE、VTK等开源软包作为CAx前后处理器的技术原型:OpenCASCADE提供了丰富的几何造型相关的算法实现;VTK则提供了强大而实用的科学计算后处理相关的算法实现。
但是,长期以来,OpenCASCADE、VTK等开源库的图形渲染在性能、质量等方面并不尽如人意。因此,像是三维几何建模软件FreeCAD的图形渲染既没有采用OpenCASCADE的渲染引擎,也没有采用VTK的渲染引擎,而是使用了OpenInventor (具体来说是Coin3D)。
基于以上原因,需要探索能够满足行业需求的、专业化的图形渲染引擎。这就是笔者研究OpenSceneGraph为代表的图形渲染引擎的最主要的原因。
OpenSceneGraph(以下简称OSG)是一个开源、跨平台的图形图像开发库,主要提供了场景管理、图形图像渲染等功能。OSG为诸如飞行器仿真,游戏,虚拟现实、科学计算可视化等高性能图形应用程序开发而设计。它基于场景图的概念,它提供一个在OpenGL之上的面向对象的框架,从而能把开发者从实现和优化底层图形的调用中解脱出来,并且它为图形应用程序的快速开发提供很多附加的实用工具。
本文详细描述WIndows 10下使用Visual Studio 2019编译OpenSceneGraph 3.6.5的操作流程。
操作系统 | WIndows 10 64bit |
编译器 | Visual Studio 2019 Community Edition |
Git | 2.29.1 |
CMake | 3.15.0-rc2 |
OpenScenGraph | 3.6.5 |
工作目录 | D:\YouQuan\CaeFrameworks\OpenSceneGraph |
OpenSceneGraph部分插件依赖于zlib、libpng、libjpeg、libtiff、GLUT、GIFLIB、cURL等第三方库,因此需要首先完成这些第三方依赖库的编译。
需要指出的是,针对某些特定平台,OpenSceneGraph Dependencies官网已经提供了这些第三方依赖包。
cd D:\YouQuan\CaeFrameworks\OpenSceneGraph
git clone https://github.com/bjornblissing/osg-3rdparty-cmake.git
cd ./osg-3rdparty-cmake/
git checkout -b v1.0 v1.0
切换到D:\YouQuan\CaeFrameworks\OpenSceneGraph\3rdparty目录,按以下方法拉取第三方库源码
zlib | 1.2.11 | git clone --depth 1 --single-branch --branch v1.2.11 https://github.com/madler/zlib.git zlib |
libpng | 1.6.37 | git clone --depth 1 --single-branch --branch v1.6.37 git://git.code.sf.net/p/libpng/code.git libpng |
libjpeg | 下载libjpeg http://www.ijg.org/files/jpegsr9d.zip 解压jpegsr9d.zip 将jpegsr9d重命名为libjpeg |
|
libtiff | 4.2,0 | git clone --depth 1 --single-branch --branch v4.2.0 https://gitlab.com/libtiff/libtiff.git tiff |
FreeType | 2.10.4 | git clone --depth 1 --single-branch --branch VER-2-10-4 git://git.sv.nongnu.org/freetype/freetype2.git freetype |
GLUT | git clone https://github.com/markkilgard/glut.git glut |
|
GIFLIB | 5.2.1 | git clone --depth 1 --single-branch --branch 5.2.1 https://git.code.sf.net/p/giflib/code.git giflib |
cURL | 7.76.1 | 下载 cURL https://curl.se/download/curl-7.76.1.zip 解压curl-7.76.1.zip 重命名curl-7.76.1为curl |
在Visual Studio 2019中构建"ALL_BUILD"项目完成编译;构建"INSTALL"项目完成安装。
cd D:\YouQuan\CaeFrameworks\OpenSceneGraph
git clone https://github.com/openscenegraph/OpenSceneGraph.git
cd ./OpenSceneGraph/
git checkout -b OpenSceneGraph-3.6.5 OpenSceneGraph-3.6.5
配置"ACTUAL_3RDPARTY_DIR"为“D:\YouQuan\CaeFrameworks\OpenSceneGraph\INSTALL”
配置“CMAKE_INSTALL_PREFIX”为"D:\YouQuan\CaeFrameworks\OpenSceneGraph\INSTALL"
构建“ALL_BUILD”项目,可能会出现编译“Plugin curl”报如下错误,
解决方法是将"D:\YouQuan\CaeFrameworks\OpenSceneGraph\3rdparty\curl\include"下的文件拷贝到"D:\YouQuan\CaeFrameworks\OpenSceneGraph\INSTALL\include\curl",然后修改"Plugin curl"工程属性,添加"D:\YouQuan\CaeFrameworks\OpenSceneGraph\INSTALL\include\curl"头文件搜索路径。
构建“INSTALL”项目,完成安装。
从OpenSceneGraph官网下载测试数据OpenSceneGraph-Data-3.4.0.zip,使用present.exe程序进行测试,如下
杨化斌. Open Scene Graph 3.0 三维视景仿真技术开发详解. 国防工业出版社,
OpenSceneGraphhttp://www.openscenegraph.org
osg-3rdparty-cmakehttps://github.com/bjornblissing/osg-3rdparty-cmake
OpenCASCADEhttps://www.opencascade.com/https://www.opencascade.com/ VTKhttps://vtk.org/https://vtk.org/
FreeCADhttps://www.freecadweb.org/https://www.freecadweb.org/