Total Time: 148 Hours
2 Hours
- Wrote summary essay
40 Hours
- Finished Reading "Computer Graphics Programming in OpenGL with C++, Second Edition"
- Read parts of "GPU Gems" 1, 2, & 3
- Read parts of "GPU Zen"
- Researched deferred rendering, post-processing effects (SSAO, HDAO, Bloom, SSR, etc), and global illumination
5 Hours
- Separated shadow resolution from screen resolution
- Implemented PCF soft shadows
- Added support for orthographic shadow mapping
- PCF now changes its pattern every frame, making the pattern less noticeable
- Added scene & environment switching at runtime
5 Hours
- Implemented basic shadow mapping
15 Hours
- Reading and research
4 Hours
- Tweaked PBR
3 Hours
- Finished PBR shading
1 Hour
- Basic PBR shading
4 Hours
- Skybox lighting
20 Hours
- Reading and research
2 Hours
- Added camera movement
5 Hours
- Added performance overlay
- Implemented camera & light entity parenting
- Added GUI to control position of entities
- Added scale option
1 Hours
- Added ImGui
5 Hours
- Debugging scene importer
- Added dragon scene
- Implemented normal mapping
5 Hours
- Debugging scene importer
3 Hours
- Worked on scene importer
2 Hours
- Switched to Assimp for model/scene loading
- Started work on scene importer
4 Hours
- Tweaked lighting
- Moved some calculations to the vertex shader in order to improve performance
- Replaced custom model loader with tinyobjloader
- Switched example scene to a more complex model
2 Hours
- Implemented lights
- Implemented ADS lighting
1 Hour
- Refactored material management into struct
3 Hours
- Implemented mipmapping
- Implemented anisotropic filtering
- Created basic model loader
- Rendered Blender's suzanne model with UV texturing and normals
- Modified model loader to combine vertices with identical attributes
6 Hours
- Created basic scene to test parented transformations
- Refactored mesh management into struct
- Refactored shader management into struct
- Implemented texture mapping
2 Hours
- Rendered cube
- Colored cube
- Animated cube
- Converted libraries from git subtrees to git submodules
- Rendered many cubes with instancing
1 Hour
- Rendered triangle
- Animated triangle
2 Hours
- Moved shader loading functions into separate file
5 Hours
- Set up project structure
- Created GLFW window
- Rendered single point