FAN JIN'S PORTFOLIO

CS562 Project4 Ambient Occlusion

CS562 Project4 Ambient Occlusion

CS562, Fall 2019

November 26th, 2019

Implementations:

Robot Model Source:

https://skfb.ly/6LTRp

Author : kurojishi

AO Calculating:

For this part, I simply followed instructions in handout paper and wrote a fill-screen rect pass, which takes scene depth and normal texture as input and draw ambient occlusion coefficients on a RGBA8 texture. I choose 20 points to integrate final result for each pixel. For the scale and contrast factors s and k, I simply use ones.

Image

AO calculation result with visible noises, AO radius is 1

Blur Implementation:

According to the handout paper, Bilateral filter cannot be divided into vertical and horizontal parts, so I instead implement filter in another fill-screen graphics render pass. In the fragment shader, I choose 5 as the window size of filter and doing both spatial and range weight calculation in a 5x5 for loop.

Image

5x5 bilateral filtered result, looks smoother. For some parts the noise is still visible but blurred

Try different AO radius:

Image

Radius = 0.5

Image

Radius = 1.5

Image

Radius = 5.0

Results

View 1(Same as previous screen shots):

Image

Without AO

Image

AO Radius = 2

Image

AO Radius = 5

View 2:

Image

Not Filtered

Image

Filtered

Image

Without AO

Image

AO Radius = 2

Image

AO Radius = 5