OpenSceneGraph编译、安装、开发环境

济南友泉软件有限公司

目前,国内CAx(CAD/CAE/CAM)软件开发大都采用OpenCASCADEVTK等开源软包作为CAx前后处理器的技术原型:OpenCASCADE提供了丰富的几何造型相关的算法实现;VTK则提供了强大而实用的科学计算后处理相关的算法实现。

但是,长期以来,OpenCASCADEVTK等开源库的图形渲染在性能质量等方面并不尽如人意。因此,像是三维几何建模软件FreeCAD的图形渲染既没有采用OpenCASCADE的渲染引擎,也没有采用VTK的渲染引擎,而是使用了OpenInventor (具体来说是Coin3D)。

基于以上原因,需要探索能够满足行业需求的、专业化的图形渲染引擎。这就是笔者研究OpenSceneGraph为代表的图形渲染引擎的最主要的原因。

OpenSceneGraph(以下简称OSG)是一个开源、跨平台的图形图像开发库,主要提供了场景管理、图形图像渲染等功能。OSG为诸如飞行器仿真,游戏,虚拟现实科学计算可视化等高性能图形应用程序开发而设计。它基于场景图的概念,它提供一个在OpenGL之上的面向对象的框架,从而能把开发者从实现和优化底层图形的调用中解脱出来,并且它为图形应用程序的快速开发提供很多附加的实用工具。

OpenSceneGraph编译、安装、开发环境_第1张图片

 本文详细描述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官网已经提供了这些第三方依赖包。

1.1 获取项目构建文件

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

1.2 获取代码

切换到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
cd ./glut
git reset --hard 8cd96cb440f1f2fac3a154227937be39d06efa53

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

1.3 构建项目

OpenSceneGraph编译、安装、开发环境_第2张图片

OpenSceneGraph编译、安装、开发环境_第3张图片

1.4 编译、安装

在Visual Studio 2019中构建"ALL_BUILD"项目完成编译;构建"INSTALL"项目完成安装。

OpenSceneGraph编译、安装、开发环境_第4张图片

二、编译OpenSceneGraph

2.1 拉取代码

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

2.2 构建项目

配置"ACTUAL_3RDPARTY_DIR"为“D:\YouQuan\CaeFrameworks\OpenSceneGraph\INSTALL”

OpenSceneGraph编译、安装、开发环境_第5张图片

配置“CMAKE_INSTALL_PREFIX”为"D:\YouQuan\CaeFrameworks\OpenSceneGraph\INSTALL" 

OpenSceneGraph编译、安装、开发环境_第6张图片

2.3 编译安装

构建“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"头文件搜索路径。

OpenSceneGraph编译、安装、开发环境_第7张图片

  构建“INSTALL”项目,完成安装。

OpenSceneGraph编译、安装、开发环境_第8张图片

2.4 测试

从OpenSceneGraph官网下载测试数据OpenSceneGraph-Data-3.4.0.zip,使用present.exe程序进行测试,如下

OpenSceneGraph编译、安装、开发环境_第9张图片

文献资料

杨化斌. 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/

附录A: 编译常见问题

你可能感兴趣的:(OSG,其他)