Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/octogonapus/3dgameengine
A 3D game engine.
https://github.com/octogonapus/3dgameengine
Last synced: 20 days ago
JSON representation
A 3D game engine.
- Host: GitHub
- URL: https://github.com/octogonapus/3dgameengine
- Owner: Octogonapus
- Created: 2014-06-23T04:34:48.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2014-07-07T03:09:43.000Z (over 10 years ago)
- Last Synced: 2024-12-15T13:13:58.427Z (24 days ago)
- Language: Java
- Size: 4.57 MB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
3DGameEngine
============3DGameEngine is a Java based engine for 3D games.
Rendering
---------
Everything is done with multi-pass rendering.The engine currently has support for,
- Meshes
- Vertex + Index based mesh creation
- Mesh loading from an OBJ file
- Materials
- Multiple textures
- Uniform floats
- Lighting
- GLSL shaders
- Phong or Blinn-Phong lighting model
- Generic lights
- Ambient lights
- Directional lights
- Point lights
- Spot lightsGame Support
-----------
All rendering is done using a scene graph. The scene graph contains game objects. Each game object can have children game objects. Each game object can also have game components. An example scene graph is shown below:- Scene Graph
- Game Object
- Game Object
- Game Component
- Game Object
- Game Component
- Game ComponentA game object will inherit its parent's translation, rotation, and scale. It will not inherit its parent's material.
Full JavaDocs can be found in the folder named "docs".
Creating the scene graph should be done as follows:
- Initialize components
- Load meshes
- Load and initialize materials
- Initialize objects
- Add children and components
- Transform objects and components
- Add objectsMethods should be overridden to provide functionality other than the default. Overridden methods must call super, with the appropriate parameter, on their first line.
An example of this can be found in the file "com.base.game.TestGame"
Libraries Used
-----------
* [LWJGL] - OpenGL bind for Java[LWJGL]:http://lwjgl.org/