Spur3D

I created this engine because I wanted to create a 3D real-time engine and also for learning purpose. I want to understand how the underlaying systems are working and it gave me a deep understanding how modern game engines are working (more or less, I think I got the raw basics).


My personal opinion is simply: Learn everything you can! As more knowledge as I can get is
important to have the an understanding what is going on at every field of game dev.

Sadly the project is cancelled because of the time complexity and compatibility issues.

Copyright

  • All sources (except from some media files) are completely written by me
  • The Spur3D logo was created by Selberzeichner

For Spur3D I used mainly

  • Java (LWJGL)
  • OpenGL 4 core profile
  • GLSL 3-4

Some stats (without Blender and Collada Reader)

  • Number of classes: 668
  • 82048 Lines Overall
  • 36114 Code lines
  • 20264 Empty lines
  • 25670 Comment lines
  • Code / Comment ratio 31 %

Spur3D Engine Features (Extract)

  • Multi scene management
  • Deferred Rendering
  • Directional-, Spot-, Point lights
  • Shadow mapping (Standard shadow mapping, Cascaded shadow mapping, Dual paraboloid shadow mapping)
  • Shadow filter: Percentage closer filter, Gaussian filter
  • Screen space ambient occlusion
  • Particle systems
  • UI System
  • Generated Materials (Diffuse, Specular, Emissive, Normal mapping, Alphamapping…)
  • GLSL code was generated from XML and later from node network through Spur3D SDK
  • Animation system
  • Bone animation
  • Audio
  • Memory management / Object management
  • Precompiled optimized binary objects for fast Asset loading
  • Asset pipeline
  • Terrain rendering

Spur3D SDK

  • Plugin system
  • Scene composing
  • Material composing
  • UI composing
  • Model viewer
  • Asset management
  • Blender Export (Model-Export via own Python Exportscript to XML format)
  • XML Import for model data
  • Automatic load/ reload of assets
  • Light-Composer
  • Profiler for render engine
  • Shader editor
  • Blender (.blend) binary file load framework
  • Multi Layer Terrain Management / Sculpting / Drawing