Giter Site home page Giter Site logo

kallr / osgverse Goto Github PK

View Code? Open in Web Editor NEW

This project forked from xarray/osgverse

1.0 0.0 0.0 258.52 MB

osgVerse, a complete 3d engine solution based on OpenSceneGraph.

License: GNU Lesser General Public License v3.0

Shell 0.01% C++ 6.76% Python 0.96% Perl 0.11% C 89.33% C# 0.89% Makefile 0.50% CMake 1.11% GLSL 0.33%

osgverse's Introduction

Image

osgVerse

Introduction

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 🔜

Dependencies

  1. Please use CMake 3.0 or higher version. (https://cmake.org/download/)
  2. Please use a C++ compiler supporting C++ 14 at least.
  3. 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.
  4. Optional dependencies:

Graphics Hardware

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 Black screen at present

Modules

  1. osgVersePipeline: modern rendering pipeline supporting PBR materials, realtime shadows, deferred lighting and effects.
  2. osgVerseReaderWriter: full featured reader-writer support for FBX and GLTF formats, and for more later.
  3. osgVerseAnimation: physics and character animation supports.
  4. osgVerseModeling: model simplification pipeline, modeling operators, and computational geometry utilities
  5. osgVerseUI: IMGUI based quick UI support, HTML based UI solution, and related utilities.
  6. TBD...

Applications

  1. osgVerse_SceneEditor: a forward-looking scene editor for osgVerse scene & components.
  2. osgVerse_Viewer: a single-camera viewer with modern rendering pipeline support.
  3. osgVerse_ViewerComposite: a multi-camera (multi-view) viewer with modern rendering pipeline support.
  4. osgVerse_EarthViewer: an example demostrating how to integrate osgVerse with osgEarth.
  5. osgVerse_QtViewer: an example demostrating how to integrate osgVerse with Qt.
  6. TBD...

Tests and Examples

  1. osgVerse_Test_FastRtt: a quick test for using newly-introduced RTT draw callback.
  2. osgVerse_Test_Obb_KDop: a quick test for creating a model's obb/kdop bounding volume.
  3. osgVerse_Test_ImGui: a quick test for demostrating the use of IMGUI in osg scene.
  4. osgVerse_Test_Mesh_Process: a mesh process and topology builder example.
  5. osgVerse_Test_Physics_Basic: a physics world example supporting rigid bodies & kinematics, requiring Bullet3.
  6. osgVerse_Test_Shadow: a test for shadow algorithm debugging and optimizing.
  7. osgVerse_Test_Pbr_Prerequisite: a quick utility to pre-compute global PBR textures and save them to IBL osgb files.
  8. osgVerse_Test_Paging_Lod: a quick utility for paged LOD file combination and testing. (UNUSABLE)
  9. TBD...

OSG-style Plugins

  1. osgdb_verse_ept: a plugin for massive point cloud paging and rendering based on Entwine.
  2. osgdb_verse_fbx: a plugin with full-featured FBX format support.
  3. osgdb_verse_gltf: a plugin with full-featured GLTF & GLB format support.
  4. osgdb_verse_web: a plugin for HTTP and more web protocols, which may replace the curl plugin.
  5. osgdb_verse_osgparticle: a plugin to wrap osgParticle classes for use in scene editor, mainly as an example for custom extensions.
  6. 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
  1. TBD...

Assets

  1. models: 3D models for test use, mainly in GLTF format.
  2. shaders: Shaders for osgVerse rendering pipeline use.
  3. skyboxes: Skyboxes for test use, may be one HDR image or 6 cubemaps.
  4. misc: Chinese IME CiKu files, font files, ...

CMake options

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
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
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

Screenshots

Image

osgverse's People

Contributors

xarray avatar westshellx avatar

Stargazers

kallr avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.