Skip to content

Commit

Permalink
Update INSTRUCTIONS.md
Browse files Browse the repository at this point in the history
  • Loading branch information
AdityaGupta1 authored Oct 8, 2024
1 parent 5a2f1e8 commit 7245d70
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions INSTRUCTIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,19 +100,19 @@ When adding new buffers, especially if they contain new structs, their alignment

For full credit, you must show a good optimization effort and record the performance of each version you test.

### Extra Credit: Post Processing (+3)
#### Extra Credit: Post Processing (+5)

Implement one of the following post-processing effects:
- Bloom using post-process blur (box or Gaussian)
- Toon shading (with ramp shading + simple depth-edge detection for outlines)

For full credit, you must create a new compute pass (not a fullscreen rendering pass) for post-processing.

### Extra Credit: G-buffer Optimization (+7)
#### Extra Credit: G-buffer Optimization (+10)

Use a single compute pass to replace the vertex + fragment shader fullscreen rendering pass you are provided in the base code. (+3)
Use a single compute pass to replace the vertex + fragment shader fullscreen rendering pass you are provided in the base code. (+5)

Optimize the G-buffer used for the Clustered Deferred renderer. In particular, aim to reduce the amount of textures and the size of per-pixel data. You will receive full points if your G-buffer uses only one color output image and each pixel stores additional data less than or equal to one `vec4f`. (+4)
Optimize the G-buffer used for the Clustered Deferred renderer. In particular, aim to reduce the amount of textures and the size of per-pixel data. You will receive full points if your G-buffer uses only one color output image and each pixel stores additional data less than or equal to one `vec4f`. (+5)

Here are some ideas to get you started:

Expand All @@ -125,7 +125,7 @@ Here are some ideas to get you started:
- Reduce the number of properties passed via the G-buffer
- For example, instead of storing world position in a texture, reconstruct it using camera matrices and depth

### Extra Credit: Visibility Buffer (+15)
#### Extra Credit: Visibility Buffer (+15)

For devices with limited GPU bandwidth, we can try to further reduce the memory footprint of the geometry pass. This can be done by using a single channel `u32` buffer for shading. Here are some hints to do that:

Expand All @@ -142,6 +142,10 @@ For more reference, please refer to the following materials:
- [The Visibility Buffer: A Cache-Friendly Approach to Deferred Shading (JCGT)](https://jcgt.org/published/0002/02/04/)
- [Visibility Buffer Rendering with Material Graphs – Filmic Worlds](http://filmicworlds.com/blog/visibility-buffer-rendering-with-material-graphs/)

#### Extra Credit: Render Bundles (+5)

Use [render bundles](https://toji.dev/webgpu-best-practices/render-bundles.html) to reduce the overhead of host-side draw calls. Make sure you provide a performance analysis showing the effect of this change.

## Performance Analysis

Compare your implementations of Forward+ and Clustered Deferred shading and analyze their differences.
Expand Down

0 comments on commit 7245d70

Please sign in to comment.