Posts

Showing posts from September, 2020

9/22 Multiple Importance Sampling + GGX

Image
Slight update to mis progression. The individual parts (nee and brdf) render and match the reference. Now the hard part is combining the two into one function. The current renders looks as follows. NEE With next event estimation, rough surfaces get rendered better but have an issue when it comes to rendering shiny surfaces. BRDF With brdf, shiny sources render better and the reflection is clear. So the goal of mis is to combine the two of these. While in the process of making these two images, there were a few clamping issues that were fixed which reduced the black spots that appeared for the ggx render. Due to the domain of arccos function, it just needed to be clamped to [-1, 1] to avoid Nan values.

9/6 And so it continues...

Image
So I saw the latest NVIDIA GeForce RTX 30 Series graphics cards and got inspired to try picking this up again. The goal this time: attempt to achieve proper subsurface scattering (ideally jade). This time, I will be doing it alone though :( Looking at the old code, everything was really just mushed together. Each assignment was built off the previous and we ended with the main intersection code at around 400 lines. I had done a tiny bit of code clean up at the start of summer but never finished. The original code my partner and I worked on also did not fully finish multiple importance sampling.  Here is a render of importance sampling the ggx brdf from the current code: The main intersection function is only around 100 lines now with a majority of the logic being separated into different functions. Currently working on multiple importance sampling. Aftwards, it's back to subsurface scattering!