HW #7
Hello everybody.
In the last phase, we have added area lights (i.e. emitter objects) and path tracing to our ray tracers.
While adding those features, I realised that Gaussian filtering does not always produce high quality results. For instance, Gaussian filtering substantially decreases the quality of the image for scenes that are expected to produce noisy outputs. Some examples are as follows:
Notice that noises are bigger and uglier when Gaussian filter is on.
As you can see, path tracing combined with Gaussian filter occasionally produces acnes (i.e. regions that are too bright).
I also want to share two images that I 'accidentally' generated. These are cornellbox_jaroslav_diffuse and cornellbox_jaroslav_diffuse_area scenes rendered with path tracing.
cornellbox_jaroslav_diffuse_area (512x512, 100spp)
References of those can be found at here. Also, all scenes which have "_jaroslav_" in their name are created by Jaroslav Krivánek, who is an associate professor of Computer Science at Charles University, Prague.
Finally, I rendered low quality versions of sponza_path and they are as follows:
sponza_path (320x180, 100spp)
Currently, high quality output of this scene is not available. However, I will render it in 2 or 3 days and update this post. I expect it to take a considerable amount of time to be rendered so I had to postpone it.
Here are the rest of results:
Thanks for reading.
UPDATE: Here is the result for sponza_path scene:
In the last phase, we have added area lights (i.e. emitter objects) and path tracing to our ray tracers.
While adding those features, I realised that Gaussian filtering does not always produce high quality results. For instance, Gaussian filtering substantially decreases the quality of the image for scenes that are expected to produce noisy outputs. Some examples are as follows:
cornellbox_jaroslav_diffuse_area w/ Gaussian filter (512x512, 100spp)
cornellbox_jaroslav_diffuse_area w/ Box filter (512x512, 100spp)
Notice that noises are bigger and uglier when Gaussian filter is on.
cornellbox_path_uniform_100 w/ Gaussian filter (750x600, 100spp)
cornellbox_path_uniform_100 w/ Box filter (750x600, 100spp)
As you can see, path tracing combined with Gaussian filter occasionally produces acnes (i.e. regions that are too bright).
I also want to share two images that I 'accidentally' generated. These are cornellbox_jaroslav_diffuse and cornellbox_jaroslav_diffuse_area scenes rendered with path tracing.
cornellbox_jaroslav_diffuse w/ Path tracing (512x512, 36spp)
cornellbox_jaroslav_diffuse_area (512x512, 100spp)
References of those can be found at here. Also, all scenes which have "_jaroslav_" in their name are created by Jaroslav Krivánek, who is an associate professor of Computer Science at Charles University, Prague.
Finally, I rendered low quality versions of sponza_path and they are as follows:
sponza_path (480x270, 16spp)
sponza_path (320x180, 100spp)
Currently, high quality output of this scene is not available. However, I will render it in 2 or 3 days and update this post. I expect it to take a considerable amount of time to be rendered so I had to postpone it.
Here are the rest of results:
cornellbox_jaroslav_nobrdf (512x512, 36spp)
EXR
25.457010s
25.457010s
Thanks for reading.
UPDATE: Here is the result for sponza_path scene:
sponza_path (1280x720, 400spp)
EXR
56627.800781s (= 15.73 hours)
56627.800781s (= 15.73 hours)
However, I realised one more issue with our sponza scenes and it is textures. If you look closely, you will notice that all of our textures are flipped both vertically and horizontally. In other words, we had to do the trick which we did for head_env_light scene where we 'flipped and flopped' head_albedomap texture. For example, lion figure and curtains should look like this, or floor texture should be mapped like this (observe the position of dark brown spot on the floor).
When we correct our textures, sponza_direct looks like this.
sponza_direct (1280x720, 1spp)
EXR
Looks nicer.
I will implement a "pause/resume rendering" feature for azimuth when I have enough spare time. I may also re-render sponza_path then.
I will implement a "pause/resume rendering" feature for azimuth when I have enough spare time. I may also re-render sponza_path then.























Very nice!
ReplyDeleteThanks for the observation on texture flip/flop
ReplyDelete