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:

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
7.236553s

cornellbox_jaroslav_diffuse (512x512, 36spp)
 EXR
7.948682s

cornellbox_jaroslav_glossy (512x512, 36spp)
 EXR
8.484419s

cornellbox_jaroslav_diffuse_area (512x512, 100spp)
EXR
22.042765s

cornellbox_jaroslav_glossy_area (512x512, 100spp)
 EXR
18.160091s

cornellbox_jaroslav_glossy_area_small (512x512, 100spp)
 EXR
33.222691s

cornellbox_jaroslav_glossy_area_sphere (512x512, 100spp)
 EXR
26.318417s

cornellbox_jaroslav_glossy_area_ellipsoid (512x512, 100spp)
 EXR
25.074486s

cornellbox_path_uniform_100 (750x600, 100spp)
EXR
694.191284s (11.57m)

cornellbox_path_importance_100 (750x600, 100spp)
EXR
691.138428s (11.52m)

head_env_light (1600x900, 900spp)
 EXR
2929.207031s (48.82m)

sponza_direct (1280x720, 1spp)
 EXR
25.457010s

Thanks for reading.

UPDATE: Here is the result for sponza_path scene:

sponza_path (1280x720, 400spp)
 EXR
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.

If you want to try it yourself, here is the fixed version of textures.

UPDATE: Here is the correct result for sponza_path scene:

sponza_path (1280x720, 400spp)
 EXR
72157.078125s (= 20.04 hours)

Comments

Post a Comment