- P0: Update README / documentation
- P1: Replace model via imgui menu
- P1: Change orbit point
- P1: Add skeletal animation https://learnopengl.com/Guest-Articles/2020/Skeletal-Animation
- P1: Implement tessellation
- P1: Implement material system
- P1: Add parallax mapping
- P1: Implement point light shadow maps: https://learnopengl.com/Advanced-Lighting/Shadows/Point-Shadows
- P1: Add profiler (easy_profiler?)
- P1: Add screen space reflections
- P2: Implement Light volumes
- P2: Implement CSM: https://learnopengl.com/Guest-Articles/2021/CSM
- P2: Don't store positions in the G-Buffer: https://mynameismjp.wordpress.com/2010/09/05/position-from-depth-3/
- P2: Implement virtual textures. http://holger.dammertz.org/stuff/notes_VirtualTexturing.html
- P2: Add a scene graph. https://learnopengl.com/Guest-Articles/2021/Scene/Scene-Graph
- P2: Expose scene graph in model_render UI
- P2: Implement frustum culling. https://learnopengl.com/Guest-Articles/2021/Scene/Frustum-Culling
- P2: Consider supporting uniform buffer objects. https://learnopengl.com/Advanced-OpenGL/Advanced-GLSL
- P2: Go through some of the shader effects from https://lettier.github.io/3d-game-shaders-for-beginners/index.html
- P2: Add automatic exposure: https://bruop.github.io/exposure/
- P3: Add env map lighting support. https://learnopengl.com/Advanced-OpenGL/Cubemaps
- P3: Area lights https://learnopengl.com/Guest-Articles/2022/Area-Lights
- P3: Tons of shadow map improvements described here: https://docs.microsoft.com/en-us/windows/win32/dxtecharts/common-techniques-to-improve-shadow-depth-maps
- P4: Add weighted, blended order-independent transparency (http://casual-effects.blogspot.com/2015/03/implemented-weighted-blended-order.html)
- P1: Model loading is sometimes slow
- P2: Add a logging system, and log e.g. invalid glGetUniformLocation() calls
- P2: Remove some duplication from light class impl
- P3: Add a mechanism to set #define's in the shader
- Lighting demo (light types, spotlight)
- Stencil buffer demo
- Blending (alpha transparency) demo
- P2: light registry doesn't work with >1 shaders.
- P2: debug normals are modified based on camera rotation. Maybe just a visual artifact?
- Bug: debug normal disappear in weird ways.
- Add a way to load shader code from a string (with import support).
- Add deltaTime uniforms, etc
- Add support for the stencil buffer
- Add a mechanism to enable/disable depth testing
- Add a 'window' class to qrk that can encapsulate the calls in the render loop.
- Add some depth-related shader functions
- Shading doesn't look quite right
- Fix model textures.
- getViewMatrix -> getViewTransform
- Figure out what's going on with double-free.
- Add a 'light' class that can work with the shader.
- Add caching for shader loader.
- Add an abstraction over shader code, allowing e.g. imports / usage.
- Add exception hierarchy.
- Add an auto-formatter for the GLSL code.
- Include attenuation in the lighting model.
- Add lighting support to qrk, allowing:
- Directional lights
- Point lights
- Spotlight lights
- Switch to using .vert and .frag for shader extensions.
- use/unuse -> activate/deactive.
- Add clang-tidy.
- Reprioritize TODOs :o)
- P0: Add a mechanism for working with textures.
- Add skybox support.
- Add compute shaders.
- P0: Implement blinn phong
- P0: Add shadow mapping
- P0: Add normal mapping
- P1: Add HDR
- P3: Add support for framebuffers?
- P2: Add a texturemap class that can maintain diffuse/specular maps, similar to the light class.
- P1: Add Bloom
- P0: model loader doesn't honor transforms
- P3: Add instancing to model?
- P0: Implement deferred shading
- P2: Add dynamic UI support, a la https://github.com/ocornut/imgui
- P0: Orbit controls
- P0: Implement SSAO
- P0: Physically based bloom: https://learnopengl.com/Guest-Articles/2022/Phys.-Based-Bloom
- P0: Implement PBR lighting
- P0: Create PBR example
- P0: Implement PBR texture maps
- P0: Add support for AO maps
- P0: Banding in specular when using GL_RGBA16F with deferred shading
- P3: Add a wireframe mode.
- P0: Emissive textures have artifacts at close range
- P0: Model render features
- Rotate/scale
- Camera mode
- Ambient color controls
- Directional light color / position / etc controls
- Switch to deferred?
- Display deferred render buffers
- Add PBR
- Add bloom
- Emission strength
- Tone mapping options
- Gamma correct
- Add shadow mapping
- Add shadow map params
- Add shadow map vis
- Add SSAO
- P0: Add FXAA
- P1: Add
#pragma once
for shaders - P0: Implement IBL (image based lighting)
- P0: Model scaling controls