Skip to content

SMFEH323/Scene-Graph

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Scene Graph

Overview

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.


Features

  • 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

Scene Graph Architecture

The framework organizes scenes using nodes that represent different scene components.

Core Nodes

  • 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

Lighting Support

The framework supports multiple lighting models:

  • Directional Lights
  • Point Lights
  • Spot Lights

These allow more realistic rendering and dynamic scene effects.


Animation Support

Dynamic object movement is supported through animation classes such as:

  • AnimatedRotation
  • AnimatedScale
  • AnimatedTranslation

Supported Shapes

The framework includes several predefined geometric objects:

  • Cubes
  • Spheres
  • Cones
  • Cylinders
  • Additional primitive shapes

Tech Stack

  • Java
  • JOGL (Java OpenGL)
  • XML Configuration
  • Object-Oriented Design
  • 3D Graphics Concepts

Installation

Requirements

  • Java 8 or higher
  • JOGL installed and configured

Clone the Repository

git clone https://github.com/SMFEH323/SceneGraph.git

Open the Project

Import the project into a Java IDE such as:

  • IntelliJ IDEA
  • Eclipse

Then configure JOGL library paths based on your system setup.


Usage

Basic Example

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

Current Limitations

  • Requires manual JOGL setup
  • Limited advanced rendering effects
  • No physics engine integration
  • Basic UI and tooling support

Future Improvements

  • Add shader support
  • Improve rendering performance
  • Add physics simulation
  • Improve scene editing tools
  • Add real-time scene interaction features

What This Project Demonstrates

  • 3D graphics programming concepts
  • Scene graph architecture
  • OpenGL rendering with JOGL
  • Object-oriented framework design
  • Dynamic transformations and animations

About

a Java framework built on top of JOGL that helps manage and render complex 3D scenes using a node-based architecture

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages