Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tinyrenderer

A small renderer for learning graphics APIs and rendering techniques.

Features

  • PBR materials
  • OBJ, glTF and FBX loading
  • Directional light with shadow mapping
  • MSAA
  • Free and orbit cameras
  • ImGui controls

Dependencies

  • CMake 4.3.1+
  • MinGW-w64
  • Vulkan 1.3 SDK
  • vcpkg with VCPKG_ROOT set
  • Slang compiler (slangc) in PATH
  • GLFW
  • GLM
  • ImGui
  • fmt
  • stb
  • rapidobj
  • fastgltf
  • ufbx (included in the repository)

Build

Debug:

cmake --preset windows-debug
cmake --build --preset win-debug

Release:

cmake --preset windows-release
cmake --build --preset win-release

Executables are written to build/win-debug and build/win-release.

Controls

  • Hold right mouse button to look around
  • WASD to move
  • Q / E to move down and up
  • Hold Shift to move faster
  • F3 to toggle the UI

TODO

  • Utility
    • Screenshot Export
    • Drag-and-drop model loading
    • File Associations
    • Recent files
    • GPU and CPU profiling
    • FPS and frame-time graph
    • VRAM and resource usage display
    • Debug views of internal buffers and images
    • Scene hierarchy
  • Porting
    • Linux
    • Web
    • Android
  • Rendering Backends
    • WebGPU
    • DirectX
  • Rendering Techniques
    • Skybox Import
    • Procedural default skybox
    • Instanced Rendering
    • Image-based lighting
    • Cel-Shading
    • Surface Dithering
    • Point and spot lights
    • Imported scene lights
    • Animations
    • Cascaded shadow maps
    • HDR
    • GPU Skinning
    • GPU-driven rendering
    • OIT
    • Ray Tracing
  • Post-processing
    • SSAO
    • Tonemapping
    • Color grading
    • Vignette
    • Film grain
    • Chromatic aberration
    • Bloom
    • Outline
    • ASCII
    • 3D Pixel Art
    • Depth of field
    • Motion blur
    • Fog
    • Custom runtime fullscreen effects

About

Small learning project about no-engine rendering

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages