Skip to content

rf1424/BaseWebGPU

Repository files navigation

WebGPU Physically-Based Renderer

sneakersDemo.mov

This is a personal project to build a rendering engine in WebGPU from scratch. After taking a few computer graphics courses in OpenGL, I wanted to learn a more modern graphics API and implement graphics techniques I was interested in.

So far I have implemented physically based lighting with point lights, and I plan to add:

  • Environment maps/image based lighting
  • Glass / transparent PBR material

Implementation Log

BSDF / Physically Based Rendering with Point Lights
Sneakers Dino
Cook Torrance Roughness / Metallicness Comparison
r=0.1 m=0.1 r=0.1 m=0.9
r=0.9 m=0.1 r=0.9 m=0.9
Tiny Obj Loading + Texturing
Lidded Ewer

Basic Shading
Normals Basic Lighting

2D to 3D
2D to 3D Animation

Rendering Pipeline/Buffers Setup
Buffers and Uniforms Render Pipeline Example

Other Features

  • Camera control with Mouse
  • Window Resizing

Environment Setup

  • Conigure with CMake, Visual Studio, and C++, Dawn.
  • Set up adapter, device, command queue.
  • Create a window with GLFW.
  • Refactor with C++ Wrapper Configuration: https://github.com/eliemichel/WebGPU-Cpp

Dependencies

  • wgpu
  • glfw
  • glm
  • tiny_obj_loader
  • stb

References

Models and textures

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors