Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Projecct 5: Salaar Kohari #2

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 19 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,36 @@
WebGL Clustered and Forward+ Shading
======================

**University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 5**
[LIVE DEMO](https://salaark.github.io/WebGL-Clustered-Deferred-Forward-Plus/)

* (TODO) YOUR NAME HERE
* Tested on: (TODO) **Google Chrome 222.2** on
Windows 22, i7-2222 @ 2.22GHz 22GB, GTX 222 222MB (Moore 2222 Lab)
* Salaar Kohari
* LinkedIn ([https://www.linkedin.com/in/salaarkohari](https://www.linkedin.com/in/salaarkohari))
* Website ([http://salaar.kohari.com](http://salaar.kohari.com))
* University of Pennsylvania, CIS 565: GPU Programming and Architecture
* Tested on: **Google Chrome** 10/25/2018 Windows 10, i7-8700K @ 3.7GHz 32GB, GTX 1060 6GB (Personal Computer)

### Live Online
![](img/forward.gif)

[![](img/thumb.png)](http://TODO.github.io/Project5B-WebGL-Deferred-Shading)
### Description
In order to be able to render a scene with hundreds of thousands of lights, some GPU acceleration is required. Below, you will find details of techniques, visual results, and performance analysis.

### Demo Video/GIF
In Forward+ rendering, the screen is divided into frustum clusters consisting of lights that influence the cluster region. These lights are mapped to a texture which can be read by the fragment shader to determine which lights to use to shade a given fragment.

[![](img/video.png)](TODO)
### Images

### (TODO: Your README)
![](img/forwardplus.gif)

*DO NOT* leave the README to the last minute! It is a crucial part of the
project, and we will not be able to grade you without a good README.
Forward+ rendering scene with 100 dynamic lights. On a desktop computer, this scene takes 2ms per frame to render.

This assignment has a considerable amount of performance analysis compared
to implementation work. Complete the implementation early to leave time!
![](img/lightgraph.png)

This graph describes how performance is impacted by increasing numbers of lights. A major optimization for clustering was to only iterate over relevant clusters when adding lights to the scene. Additional performance, particularly at larger numbers of lights, could be obtained using a hierarchical data structure to store cluster light information. For now, higher light counts (over 5000) start to increase frame time exponentially.

### Credits
![](img/depth.png)

Depth map shader. This viewing mode, along with other attribute shaders, is useful for debugging fragment shader information.

### Credits
* [Three.js](https://github.com/mrdoob/three.js) by [@mrdoob](https://github.com/mrdoob) and contributors
* [stats.js](https://github.com/mrdoob/stats.js) by [@mrdoob](https://github.com/mrdoob) and contributors
* [webgl-debug](https://github.com/KhronosGroup/WebGLDeveloperTools) by Khronos Group Inc.
Expand Down
Loading