ClioSport.net

Register a free account today to become a member!
Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

  • When you purchase through links on our site, we may earn an affiliate commission. Read more here.

Realtime Graphics / Game Engines



SharkyUK

ClioSport Club Member
I haven't touched my path tracing project for a while and decided to upgrade it to use the latest version of CUDA this evening. It didn't work out so well, so it's now going to be a job for another time! 🤣 However, I did make a few tweaks and improvements in readiness for the forthcoming 50xx series GPU from nVidia and I'm looking forward to getting my hands on one or two of those. There are also one or two features that I want to introduce into the renderer to see if I can get them running in real-time and without too much of a hit on performance.

I've not got much to show and the changes I have made won't show up that well in the generated imagery, but here are a few more renders for shizzles and giggles.

54213541723_2c707938a0_o.png

SIPT2 Render by Andy Eder, on Flickr

54213542203_ef9be41c72_o.png

SIPT2 Render by Andy Eder, on Flickr

54213315546_194a09cb4d_o.png

SIPT2 Render by Andy Eder, on Flickr

54213317776_6a3e862c90_o.png

SIPT2 Render by Andy Eder, on Flickr

54213320726_8719c66988_o.png

SIPT2 Render by Andy Eder, on Flickr

54212420792_2df53ea767_o.png

SIPT2 Render by Andy Eder, on Flickr

54213561789_4bece60d13_o.png

SIPT2 Render by Andy Eder, on Flickr

54212425247_2c3cac10b3_o.png

SIPT2 Render by Andy Eder, on Flickr

54213329601_dceb29d915_o.png

SIPT2 Render by Andy Eder, on Flickr

54213570859_ed206d18b1_o.png

SIPT2 Render by Andy Eder, on Flickr
 

SharkyUK

ClioSport Club Member
I decided to spend a couple of days fixing some long-standing bugs with my path tracer. The main culprit has been causing me headaches for a couple of years now and has been a b!tch to debug. I found it after a 14 hour debugging session. I was using variable "nl" when I should have been using "n". But had only made this error in one place in the code. Every other occurrence was fine. :ROFLMAO:

Feeling a bit happier now it has been fixed. :LOL:

This first image was rendered using Blender (Cycles render engine) - which I use as a benchmark for my own stuff.

(Blender)
from-blender.png


And this next image was rendered using SIPT2 - my real time path tracer...

(SIPT2)
55087701805_0e91f90567_o.png


I'm quite happy with that. (y)

A few more random renders for good measure.

55087703045_43586effda_o.png


55087335501_296cc810d0_o.png


55087543078_6437a2d8b0_o.png
 

SharkyUK

ClioSport Club Member
As always - very impressive stuff that my brain would probably comprehend 1% of!

You'd have spotted the bug straight away, mate. (y) It's quite obvious when you think about it. When calculating a ray's path at the interface between different materials (involving dielectrics - which are non-conducting and transparent and can both reflect and refract a light ray), and assuming the ray does not end up in total internal reflection, when calculating the probability of of either generating a reflection or transmission/refraction ray, you need to use the underlying geometry's raw normal. I was using a corrected normal based on microfacet theory by mistake. The corrected normal for microfacets should be used for shading and calculations in general, but not when it comes to deciding if the ray should be reflected or refracted. It messes up the probability distribution, adversely affects light radiance weighting, and breaks the law of energy conservation. And can muck up the rendering. The issue was that the messed up render is not too dissimilar to a physically correct render, hence why I kept missing the issue. Piece of cake, y'see. :LOL::ROFLMAO:
 

Matt Cup

ClioSport Club Member
  Leon Cupra, 172 Cup
You'd have spotted the bug straight away, mate. (y) It's quite obvious when you think about it. When calculating a ray's path at the interface between different materials (involving dielectrics - which are non-conducting and transparent and can both reflect and refract a light ray), and assuming the ray does not end up in total internal reflection, when calculating the probability of of either generating a reflection or transmission/refraction ray, you need to use the underlying geometry's raw normal. I was using a corrected normal based on microfacet theory by mistake. The corrected normal for microfacets should be used for shading and calculations in general, but not when it comes to deciding if the ray should be reflected or refracted. It messes up the probability distribution, adversely affects light radiance weighting, and breaks the law of energy conservation. And can muck up the rendering. The issue was that the messed up render is not too dissimilar to a physically correct render, hence why I kept missing the issue. Piece of cake, y'see. :LOL::ROFLMAO:

Indubitably!
 


Top