Scene Graph is a Java framework built on top of JOGL that helps manage and render complex 3D scenes using a node-based architecture.
The project was designed to explore computer graphics concepts such as scene hierarchies, lighting models, transformations, animation, and texture management while extending the capabilities of the JOGL library.
- Node-based scene management
- Dynamic lighting support
- Material and texture handling
- Built-in geometric shapes
- Animated transformations
- XML-based scene configuration
- Modular and extensible architecture
The framework organizes scenes using nodes that represent different scene components.
-
CameraNode- Handles camera positioning and view management
-
LightNode- Manages scene lighting
-
MaterialNode- Controls surface materials and rendering properties
-
TextureNode- Handles texture mapping
-
ShapeNode- Represents renderable 3D objects
-
TransformNode- Applies transformations such as translation, rotation, and scaling
The framework supports multiple lighting models:
- Directional Lights
- Point Lights
- Spot Lights
These allow more realistic rendering and dynamic scene effects.
Dynamic object movement is supported through animation classes such as:
AnimatedRotationAnimatedScaleAnimatedTranslation
The framework includes several predefined geometric objects:
- Cubes
- Spheres
- Cones
- Cylinders
- Additional primitive shapes
- Java
- JOGL (Java OpenGL)
- XML Configuration
- Object-Oriented Design
- 3D Graphics Concepts
- Java 8 or higher
- JOGL installed and configured
git clone https://github.com/SMFEH323/SceneGraph.gitImport the project into a Java IDE such as:
- IntelliJ IDEA
- Eclipse
Then configure JOGL library paths based on your system setup.
public class ExampleProgram {
public static void main(String[] args) {
Scene scene = new Scene();
scene.addNode(new CameraNode());
scene.addNode(new LightNode());
// Additional scene setup
}
}For XML-based scene configuration examples, see:
ExampleProgramXML.java
- Requires manual JOGL setup
- Limited advanced rendering effects
- No physics engine integration
- Basic UI and tooling support
- Add shader support
- Improve rendering performance
- Add physics simulation
- Improve scene editing tools
- Add real-time scene interaction features
- 3D graphics programming concepts
- Scene graph architecture
- OpenGL rendering with JOGL
- Object-oriented framework design
- Dynamic transformations and animations