Skip to content

OpenGL 3D engine using LWJGL (mostly GLFW and openGL java bindings). Mostly for self-teaching.

Notifications You must be signed in to change notification settings

theZiggurat/java-gl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

java-gl - OpenGL Engine

OpenGL 3D engine using LWJGL (specifically OpenGL, GLFW, Assimp, STBI). Created out of interest for high fidelity real-time renderers such as Unreal Engine 4 and Blender Eevee

Demos:

Implemented features:

  • Physically based rendering (metalness workflow)
    • Cook-Torrance BDRF
  • Shadow mapping (sun only)
  • ASSIMP model loading
  • Fully deferred render pipeline
    • Position, normal, albedo, roughness, and metal attatchments
  • GLSL vertex, fragment, geometry, and compute shader creation
    • Attribute bindings
    • Uniform variables
    • Framebuffer bindings
  • Full 3D movement/rotation
    • WASD to traverse
    • Right mouse to rotate view
    • Middle mouse to pan along screen tangent
    • Q to zoom
  • Dynamic window resizing
    • Auto resizing FBO attachments and textures

WIP features:

  • More advanced shadow mapping
    • Parallel split shadow maps
      • Ortho-frustum fitting
    • Perspective cube maps (for point light shadows)
  • Uniform block bindings
  • Multisampling
  • Tone mapping
  • GUI
    • Buttons, sliders and fields
    • Static and dynamic text
    • Billboards
    • Cursor object picking
      • UUID picking
      • Object outline
    • Object property control
    • Engine console
  • Image based lighting
  • Height mapping
    • Parralax occlusion mapping
  • Post-processing
    • Screen space ambient occlusion + blur
    • Bloom
    • Depth of field
    • Screen space reflections

Future features:

  • Modular shader creation
  • Runtime material editing
  • Water/Ocean generation
  • Terrain generation

About

OpenGL 3D engine using LWJGL (mostly GLFW and openGL java bindings). Mostly for self-teaching.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published