OSG编译笔记

OpenSceneGraph(OSG)是一个开源的三维渲染引擎,广泛应用于虚拟仿真、虚拟现实、科学计算、三维重建、地理信息系统、太空探索、石油矿产等多个领域。OSG基于OpenGL进行开发,使用标准C++编写,具有良好的跨平台特性,支持Windows、OSX、GNU/Linux、IRIX、Solaris、HP-Ux、AIX、Android和FreeBSD等操作系统。

OSG以场景图形(Scene Graph)为核心,提供了一系列API来实现三维场景的结构管理和绘制。场景图形是一种数据结构设计方法,常用于计算机游戏和图形学相关软件,通过图结构或树结构组织空间数据集,以提高渲染效率。

OSG的优势在于其快速开发能力、高性能、高质量代码、可扩展性、可移植性和低成本。它封装了几乎所有的OpenGL底层接口,并支持最新的扩展特性,使得开发者可以专注于三维程序的核心内容,而不必过多关注底层代码。OSG的高性能得益于其支持多种场景裁剪技术、细节层次节点、渲染状态排序等多种机制。此外,OSG遵循开源协议发布,免费提供给用户使用,无需担心知识产权问题。

OSG可以结合Qt、WxWidgets等主流UI框架使用,极大精简了3D开发的流程,让非专业的开发者能够更加专注于专业的算法设计中,所以在开源以及商业软件的安装目录可以常现其身影,以osg开头的dll便是最好的特征。

源码

https://github.com/openscenegraph/OpenSceneGraph/releases/tag/OpenSceneGraph-3.6.5

cmake配置与编译

  • vs 2022

::解压后进入根目录
cmake -G "Visual Studio 17 2022" -A x64 -S . -B build -DBUILD_OSG_EXAMPLES=OFF
::尝试编译
cmake --build build --config Release
  • exception
osgPlugins\osga\OSGA_Archive.cpp(81,62): error C2228: “.__off”的左边必须有类/结构/联合 [F:\dev-tool\libs\OpenSceneGraph-OpenSceneGraph-3.6.5\build\src\osgPlugins\osga\osgdb_osga.vcxproj]

  • patch
// 在文件OSGA_Archive.cpp开头加入
#define _FPOSOFF(fp)  (std::streamoff(fp))

编译

cmake --build build --config Release

安装

cmake --install build --prefix install
posted @ 2026-04-30 17:54  leaguecn  阅读(36)  评论(0)    收藏  举报

闲来无事唱两句