Skip to content

Latest commit

 

History

History
113 lines (108 loc) · 4.97 KB

TODO.md

File metadata and controls

113 lines (108 loc) · 4.97 KB

TODOs

Features

Cleanup

  • 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

Examples

  • Lighting demo (light types, spotlight)
  • Stencil buffer demo
  • Blending (alpha transparency) demo

Bugs

  • P2: light registry doesn't work with >1 shaders.
  • P2: debug normals are modified based on camera rotation. Maybe just a visual artifact?

Done

  • 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