
osgVerse, a complete 3D engine solution based on OpenSceneGraph.
Operating System |
Compiler |
Supported |
Notes |
Windows 11 |
Visual Studio 2019 |
✔️ |
|
Windows 10 |
Visual Studio 2022 |
✔️ |
|
Windows 10 |
Visual Studio 2017 |
✔️ |
|
Windows 10 |
Visual Studio 2015 |
✔️ |
Requires VS2015 Update-3 |
Windows 10 |
MSYS2 (GCC 10.2) |
✔️ |
|
Windows 10 UWP |
|
🔜 |
|
Ubuntu 18.04 |
GCC 7.5 (or later) |
✔️ |
|
Kylin v10 |
GCC 8.3 (or later) |
✔️ |
|
NeoKylin v7 |
GCC 8.5 (built manually) |
✔️ |
Must disable VERSE_USE_GLIBCXX11_ABI |
Mac OS X |
|
🔜 |
|
Android |
|
🔜 |
|
IOS |
|
🔜 |
|
- Please use CMake 3.0 or higher version. (https://cmake.org/download/)
- Please use a C++ compiler supporting C++ 14 at least.
- OpenSceneGraph is always required for building osgVerse. (https://github.com/openscenegraph/OpenSceneGraph) Current project mainly depends on OSG 3.7.0, but can compile on OSG 3.1.1 or later versions.
- Optional dependencies:
To use osgVerse libraries and applications, OpenGL version must be higher than 2.0. Both core profile and compatible profile will work. Our project uses the GLSL functionality, and supports from GLSL 120 to the latest GLSL version.
Our project is already tested on graphics cards listed as below:
Grapihcs Card |
OpenGL Version |
Supported |
Notes |
NVIDIA RTX 3060 Laptop |
4.6 / GLSL 4.6 |
✔️ |
|
NVIDIA RTX 1050 Mobile |
3.2 / GLSL 1.5 |
🔜 |
|
AMD Radeon RX5500 |
|
🔜 |
|
Intel UHD Graphics |
4.6 / GLSL 4.6 |
✔️ |
|
MooreThreads S80, S2000 |
3.3 / GLSL 3.3 |
✔️ |
Enable VERSE_USE_MTT_DRIVER before solving driver problems |
Zhaoxin C-960 (SIS) |
3.2 / GLSL 1.5 |
⚡ |
Segment fault in osg::Texture at present |
VirtualBox SVGA 3D |
2.1 / GLSL 1.2 |
⚡ |
osgVerse_Test_Pipeline can work; standard can't |
- osgVersePipeline: modern rendering pipeline supporting PBR materials, realtime shadows, deferred lighting and effects.
- osgVerseReaderWriter: full featured reader-writer support for FBX and GLTF formats, and for more later.
- osgVerseAnimation: physics and character animation supports.
- osgVerseModeling: model simplification pipeline, modeling operators, and computational geometry utilities
- osgVerseUI: IMGUI based quick UI support, HTML based UI solution, and related utilities.
- TBD...
- osgVerse_SceneEditor: a forward-looking scene editor for osgVerse scene & components.
- osgVerse_Viewer: a single-camera viewer with modern rendering pipeline support.
- osgVerse_ViewerComposite: a multi-camera (multi-view) viewer with modern rendering pipeline support.
- osgVerse_ViewerGLES: an example demostrating how to integrate osgVerse with SDL2, mainly with GLES2/3.
- osgVerse_EarthViewer: an example demostrating how to integrate osgVerse with osgEarth.
- osgVerse_QtViewer: an example demostrating how to integrate osgVerse with Qt.
- TBD...
- osgVerse_Test_FastRtt: a quick test for using newly-introduced RTT draw callback.
- osgVerse_Test_Obb_KDop: a quick test for creating a model's obb/kdop bounding volume.
- osgVerse_Test_ImGui: a quick test for demostrating the use of IMGUI in osg scene.
- osgVerse_Test_Mesh_Process: a mesh process and topology builder example.
- osgVerse_Test_Physics_Basic: a physics world example supporting rigid bodies & kinematics, requiring Bullet3.
- osgVerse_Test_Shadow: a test for shadow algorithm debugging and optimizing.
- osgVerse_Test_CubeRtt: a quick test for render-to-cubemap (6 faces) demonstaration.
- osgVerse_Test_Pipeline: a program for simple cases and compatiblity tests of osgVerse pipeline.
- osgVerse_Test_Pbr_Prerequisite: a quick utility to pre-compute global PBR textures and save them to IBL osgb files.
- osgVerse_Test_Paging_Lod: a test for paged LOD file combination and transferring to levelDB.
- osgVerse_Test_Point_Cloud: a test for point cloud viewing and manipulating.
- TBD...
- osgdb_verse_ept: a plugin for massive point cloud paging and rendering based on Entwine.
- osgdb_verse_fbx: a plugin with full-featured FBX format support.
- osgdb_verse_gltf: a plugin with full-featured GLTF & GLB format support.
- osgdb_verse_web: a plugin for HTTP and more web protocols, which may replace the curl plugin.
- osgdb_verse_leveldb: a plugin for reading/writing from LevelDB database.
- osgdb_verse_osgparticle: a plugin to wrap osgParticle classes for use in scene editor, mainly as an example for custom extensions.
- osgdb_pbrlayout: a pseudo-plugin to change PBR textures' layout to osgVerse standard. It supports following options:
- Diffuse (D), Specular (S), Normal (N), Metallic (M), Roughness (R), Occlusion (O), Emissive (E), Ambient (A), Omitted (X)
- Every source texture is defined by a option character and a channel number (1-4), and separated with a ','.
- Example input: model.fbx.D4,M1R1X2,N3.pbrlayout (Tex0 = Diffuse x 4, Tex1 = Metallic+Roughness, Tex2 = Normal)
- All layouts will be converted to osgVerse standard: D4,N3,S4,O1R1M1,A3,E3
- TBD...
- models: 3D models for test use, mainly in GLTF format.
- shaders: Shaders for osgVerse rendering pipeline use.
- skyboxes: Skyboxes for test use, may be one HDR image or 6 cubemaps.
- misc: Chinese IME CiKu files, font files, ...
Option |
Type |
Default Value |
Notes |
OSG_INCLUDE_DIR |
Path |
(Required) |
Set to path of osg/Node |
OSG_BUILD_INCLUDE_DIR |
Path |
(Required) |
Set to path of osg/Version |
OSG_LIB_DIR |
Path |
(Required) |
Set to path of libosg.a or osg.lib |
OSG_DEBUG_POSTFIX |
String |
d |
Set a postfix for OSG debug built-libraries |
OSG_GLES_INCLUDE_DIR |
Path |
|
Set to path of GLES2/gl2.h or GLES3/gl3.h, for GLES build only |
OSG_GLES_LIBRARY |
Path |
|
Set to path of libGLESv2.so or libGLESv2.lib, for GLES build only |
OSG_EGL_LIBRARY |
Path |
|
Set to path of libEGL.so or libEGL.lib, for GLES build only |
BULLET_INCLUDE_DIR |
Path |
|
Set to path of btBulletDynamicsCommon.h |
BULLET_LIB_DIR |
Path |
|
Set to path of libBullet3Dynamics.a or BulletDynamics.lib |
BULLET_DEBUG_POSTFIX |
String |
_Debug |
Set a postfix for Bullet debug built-libraries |
OSGEARTH_INCLUDE_DIR |
Path |
|
Set to path of osgEarth/EarthManipulator |
OSGEARTH_BUILD_INCLUDE_DIR |
Path |
|
Set to path of osgEarth/BuildConfig |
OSGEARTH_LIB_DIR |
Path |
|
Set to path of libosgEarth.so or osgEarth.lib |
SDL2_INCLUDE_DIR |
Path |
|
Set to path of SDL.h |
SDL2_LIB_DIR |
Path |
|
Set to path of libSDL2.so or SDL2.lib |
Qt5_DIR |
Path |
|
Set to path of <qt_dist>/lib/cmake/Qt5 |
VERSE_STATIC_BUILD |
Boolean |
OFF |
Enable static build of osgVerse |
VERSE_USE_OSG_STATIC |
Boolean |
OFF |
Use static build of OpenSceneGraph (will force osgVerse to be static) |
VERSE_WITH_DWARF |
Boolean |
OFF |
Enable detailed debug-info and symbols. 'libdw-dev' must be installed |
VERSE_USE_GLIBCXX11_ABI |
Boolean |
ON |
Enable to use libraries built with GCC compiler newer than 4.9 |
VERSE_USE_MTT_DRIVER |
Boolean |
OFF |
Enable to use MooreThreads MTT drivers correctly |
