First Step on OSG

OSG是一个图形引擎, 全称OpenSceneGraph, 主要用在虚拟仿真领域, 不太适用于游戏开发.
OSG的环境搭建网上资料纷繁复杂, 但是没有适合我的. 下面是我的搭建过程:

环境

MacOS Montery 12.1
VS Code

安装OSG

采用brew安装.

$ brew install open-scene-graph

这样安装是没有osg相关的示例数据的, 例如OSG经典的cow的模型.
可以去github下载:

$ git clone git@github.com:openscenegraph/OpenSceneGraph-Data.git

下载完之后需要配置一下环境变量, 修改~/.zshrc文件, 增加一行, 路径按照自己的实际情况修改:

export OSG_FILE_PATH=/Users/<username>/Documents/OpenSceneGraph-Data

VS Code Demo

VS Code新建一个project, 在project里面新建一个文件, 文件名是main.cpp, 内容是:

// 加这一行是为了不显示编译时出现的OpenGL接口过期的警告
#define GL_SILENCE_DEPRECATION  

#include <osgDB/ReadFile>
#include <osgViewer/Viewer>

int main()
{
  osgViewer::Viewer viewer;
  // cow.osg这个文件在上面配置的OSG示例数据的环境变量路径下, 所以不要写其完整路径
  viewer.setSceneData(osgDB::readNodeFile("cow.osg"));
  return viewer.run();
}

再创建一个CmakeLists.txt文件, 内容是:

cmake_minimum_required(VERSION 3.10)
project(main)

set(CMAKE_CXX_STANDARD 11)

set(CMAKE_BUILD_TYPE Debug)

# 这个路径按自己的实际情况
include_directories(/usr/local/Cellar/open-scene-graph/3.6.5_1/include)

find_package(OpenSceneGraph REQUIRED COMPONENTS osgDB osgGA osgUtil osgViewer)

add_executable(main main.cpp)

target_link_libraries(${PROJECT_NAME} ${OPENSCENEGRAPH_LIBRARIES})

编译和运行

cmake编译运行

$ mkdir build
$ cd build
$ cmake ..
// main.cpp里加了GL_SILENCE_DEPRECATION定义, 所以make编译时不会有warning, 可以去掉那一行看看warning信息
$ make
$ ./main

就会出现:
也可以用命令行编译运行:

$ g++ main.cpp -I /usr/local/include/ -o main -L /usr/local/lib/ -lOpenThreads -losgDB -losgText -losgUtil -losg -losgViewer -losgGA -losgManipulator -losgVolume -losgSim
$ ./main

我看很多文章里都是OSG+QT的GUI环境配置, 我对QT不熟, 对GUI操作也不太感冒, 之后可能换到Windows环境下再试试.

References

https://blog.csdn.net/afgqwjgfjqwgfg/article/details/116296423
https://menyifan.com/2017/05/08/Mac_OSG_Xcode/