gummybears / opengl_with_crystal

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OpenGL 3D tutorial

Game engine

Based on the youtube video tutorials

https://www.youtube.com/watch?v=VS8wlS9hF8E&list=PLRIWtICgwaX0u7Rf9zkZhLoLuZVfUksDP

and inspired by the game engine written by Joel

https://github.com/neutrinog/prism

Contents

  • lesson 01 display
  • lesson 02 VAO's and VBO's
  • lesson 03 rendering with index buffers
  • lesson 04 introduction to shaders
  • lesson 05 coloring using shaders
  • lesson 06 texturing
  • lesson 07 matrices and uniform variables
  • lesson 08 model, view and projection matrix
  • lesson 09 OBJ file format
  • lesson 10 loading 3D models
  • lesson 11 per pixel lighting
  • lesson 12 specular lighting, optimize render process (part 1)
  • lesson 13 optimize render process (part 2)
  • lesson 14 simple terrain
  • lesson 15 transparency and fake lighting
  • lesson 16 fog
  • lesson 17 multi texturing
  • lesson 18 player movement
  • lesson 19 third person camera
  • lesson 20 mipmapping
  • lesson 21 terrain height maps
  • lesson 22 terrain collision detection
  • lesson 23 texture atlases
  • lesson 24 rendering GUIs
  • lesson 25 multiple lights
  • lesson 26 point lights
  • lesson 27 skybox
  • lesson 28 day/night
  • lesson 29 mouse picking

To run the code for a lesson, go to corresponding directory. Make sure the script build.sh is executable and then execute the following commands from your terminal

$ shards install --ignore-crystal-version
$ ./build.sh
$ ./a.out

The build.sh script will compile and link a lesson and produces the executable a.out

Ray marching

Based on the youtube video tutorials The Art of Code

https://www.youtube.com/playlist?list=PLGmrMu-IwbgtMxMiV3x4IrHPlPmg7FD-P

Contents

  • lesson 01, basic ray marching algorithm
  • lesson 02, basic shapes, dynamic recompiling of shaders
  • lesson 03, basic operators
  • lesson 04, boolean operators (union, subtract, intersect) with smooth minimum
  • lesson 05, added a simple preprocessor to include shader files

About

License:MIT License


Languages

Language:Crystal 94.0%Language:GLSL 5.9%Language:Shell 0.1%Language:Makefile 0.1%