Skip to content

FranciscoZacarias/fz_render_3d

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Renderer

CRITICAL - Implement First

  • Text rendering screenspace - Render text in screen coordinates for UI and debug info
  • Text rendering worldspace - Render text positioned in 3D world space
  • Screenspace texture rendering - Render texture in 2D screenspace
  • Create fallback texture - Default texture when loading fails to prevent crashes
  • Wireframe mode toggle - Switch between filled and wireframe rendering for debugging
  • Change worldspace quads such that I can transform them - Add rotation support to quad instances
  • Add triangle render primitives

CORE FEATURES - High Priority

  • 2D primitives should be able to just set colors without making new textures
  • Add normals to render primitives
  • Directional light pass
  • Implement depth sorting for transparency - Sort transparent objects back-to-front for correct alpha blending
  • Draw worldspace circles - Render circles positioned in 3D space
  • Draw screenspace circles - Render circles in screen coordinates for UI
  • Draw worldspace spheres - 3D sphere rendering with proper shading
  • Draw box worldspace - Wireframe or filled box rendering in 3D space
  • Thicker lines - Variable width lines instead of 1-pixel GL_LINES
  • Screenspace quads rounded edges - UI quads with configurable corner radius

UI/UX FEATURES - Medium Priority

  • Border - Add border customization to primitives like thickness and color
  • Round corners - Add round corners to quads
  • Gradient fills - Linear and radial gradients for primitives rendering
  • Scissor/clipping rectangles - Clip rendering to specific screen regions
  • Render stats display - Show performance metrics like draw calls and instance counts

DEBUG/UTILITY - Medium Priority

  • Screenspace line rendering
  • Draw normals on primitives
  • Grid rendering - Draw world-space grid lines for spatial reference
  • Bounding box visualization - Render wireframe boxes around objects for debugging
  • Draw arrow worldspace - 3D arrows with proper arrowhead geometry

ADVANCED RENDERING - Lower Priority

  • Multiple render targets/framebuffers - Support for off-screen rendering and post-processing
  • MSAA support - Multi-sample anti-aliasing for smoother edges
  • Shadow mapping - Basic directional light shadow casting
  • Bloom/glow effect - Post-processing effect for bright light sources
  • Particle system - GPU-based particle rendering with instancing

PERFORMANCE - When needed

  • Frustum culling - Skip rendering objects outside camera view
  • Texture atlasing system - Combine multiple textures to reduce binding overhead
  • GPU Timer queries - Measure GPU performance for bottleneck identification

BUGS

  • Camera is janky, especially when pressing like 2, 3 or more keys at once
  • Screenspace text rendering appears on a base line, is scaled by pixel height and position from the quad center
  • Worldspace text rendering appears on a base line, is scaled by pixel height and position from the quad center

Game

fz_std

  • Window and Input should not be globals, they should be returned to userspace on initialization.
  • Put all functions definitions together and structs at the top
  • Implement os_message_box
  • Add os_message_box to failed asserts and emit_fatal

About

base 3d renderer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published