Skip to content
/ D3 Public

D3 is a simplistic cross-platform scene graph based OpenGL 3D graphics and physics engine

Notifications You must be signed in to change notification settings

Sudoka/D3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

D3

A simplistic cross-platform scene graph based OpenGL 3D graphics and physics engine

Features

Cross-platfrom

Written in C++ to maximize portability and performance. Currently implemented support for Desktop (using GLUT as window manager) and iOS.

Inverted Scene Graph

Rather then referencing Drawable object from each node, this engine utilises somewhat inverted approach. Each object (Drawable or some other) that can occur multiple times in scene is called Occurable. Those kind of objects contain list of all scene nodes at which instance of object should appear. This makes rendering of simple scenes that contain many instances of the same object very efficient.

Programmable pipeline

All rendering is done by shaders and system is designed to make use of shaders user-friendly.

Resource manager

A simple but very useful Resource manager class and concept.

Particle system

Many properties can be manipulated through XML file so system can be used to achieve broad set of effects like fire, rain/snow, jet engines, explosions, etc...

Physics

Collision detection and particle simulations.

Requirements

  • libpng
  • GLUT
  • TinyXML

Basic usage

  1. Inherit Application class.
  2. In constructor add scene content- use getScene() and getResourceManager() to do so
  3. Instanciate your class and call base mathod run() on it.

Example

See Example.hpp/cpp

(new d3::Example("/path/to/resources"))->run();

Licence

This work is licensed under a Creative Commons Attribution 3.0 Unported License.

Note

This is a work in progress.

About

D3 is a simplistic cross-platform scene graph based OpenGL 3D graphics and physics engine

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published