Skip to content

teulis-shade/Evolution

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Evolution

First versions created in 2012 (not uploaded to github). First commit in this version dates back to 2015. This project is a playground for experimenting with various ideas related to computer graphics.

Features

  • Event system (old version used Java reflection and @Subscribe annotation)
  • Signed Distance Field Font Rendering: Implemented a technique shown in this Valve paper by Chris Green
  • OpenGL 3+ Rendering (Vertex Arrays, Vertex Buffers, Shaders, Shader Programs, GLSL, Uniform Variables, etc)
  • TimeSync using lwjgl's implementation of sync() to sync frame rates - discussion here
  • Multithreading (Terrain Generation w/ "Computable" and ThreadPoolExecutor)
  • Cubemap rendering technique for skyboxes
  • Terrain generation using perlin noise
  • Raytracing with Moller Trumbore Intersection algorithm
  • Linear Algebra library (Matrix, Vector)
  • Window & Input Handling with GLFW + LWJGL 3
  • Animations & Interpolations using Bezier Curves
  • Cantor & Szudzik Pairing function implementations (3D variant)
  • MurMur hash implementation for noise generation
  • Java lambda expressions for convenient binding and unbinding of various OpenGL objects (ShaderProgram, FrameBuffer)
  • Particle System using OpenGL's instanced rendering with glDrawElementsInstanced and glVertexAttribDivisor
  • Marching Cube - 0fps, paulbourke, Stanford-mdfisher
  • Phong (Ambient + Diffuse + Specular) lighting
  • Object model loading (ObjLoader) using .obj files for 3D rendering
  • Infinite Terrain generation with overhangs and caves - stackoverflow, sourceforge
  • Explosions (Carvings) in Marching Cube terrain w/ even sampling
  • RAII-styled object pools for memory conservation (ObjectPool, MatrixPool)
  • Efficient continuous collision detection and response on marching cube mesh (CollisionPacket)
  • MarchingCube normal calculation for terrain coloring/texturing - rastertek
  • Multitexturing for terrain
  • Triplanar texturing for terrain

Ideas

  • Remove magic values from creation of vertexArray and vertexBuffer in favor of linking them with ShaderProgram
  • Icosphere generation
  • Compute shaders for marching cube
  • Improvement to Marching Cube/Tetrahedra - caltech paper
  • Shadows - Shadow Mapping
  • Deferred lighting scheme
  • Dual Contouring alternative to marching cube
  • Audio with OpenAL

Other

  • LWJGL Version: 3.2.3 release (Downloaded 27 Nov 19)
  • Requires Java 16
  • Semantic Versioning 2.0.0: https://semver.org

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 99.8%
  • GLSL 0.2%