6/9: More and more research
Further research on topic of Fresnel equations:
Slight issues from before that have now been corrected:
Check for total internal reflectance
We now update our values better by using a check for the dot between incoming angle and surface normal, so that if this product is negative, we know we're inside and we utilize this to update the values.
If we reintroduce our coloring we get
Compared to update 6/7 on glass it's a lot better. The issue is we had a check for reflecting whenever refract would fail. Turns out this would cause reflection artifacts along the edges which were why the previous post had such solid edges
Whoa. Redid some weights and while this is obviously not the effect we are looking for, I thought it was worth showing just cause it's a kinda cool effect
Attempt at multi-scattering before direct lighting calculation. It looks actually really close!
We do our scatter event in the case of being inside the payload(inside jade material). While in here, our exponentially sampled location will be compared to the length of the ray inside to check for whether we should calculate direct lighting or not.
Reupdated coloring (back to what was cited in the google book last update). Turns out the reason it wasn't green enough was that I had multiplied my scatter amount into the throughput mistakenly thinking that it was part of Beer-Lambert Attenuation.
In terms of how the jade transmits light, it feels really close but compared to other renders I've seen, it does still feel lacking. For reference, this is what the happy buddha rendered with jade looks like from https://www.researchgate.net/figure/The-Happy-Buddha-model-rendered-using-our-algorithm-with-subsurface-scattering-properties_fig1_24275256
In comparison, It is fairly obvious that our rendering algorithm is probably lacking in terms of how light is handled. If we look at the first two images produced(in this update), we can see where our Fresnel equations choose to actually reflect the ray for indirect lighting instead of refracting. For some reason, the dragon's jaw seems to be the biggest offender of reflecting light and not actually calculating refraction + subsurface scattering.
Updated our distance sampling to be based on the exponential method described on page 6here http://cseweb.ucsd.edu/~viscomp/classes/cse168/sp20/lectures/168-lecture15.pdf.
To handle light better, we now account for specularity when we have a reflection/refraction. In the case of refraction, it won't do anything but in the case of specular reflection, this means that the object should have a glowy effect. (Below is an example with specular reflection forced to red to show where it's calculating the semi-translucent jade effect, however, it seems to be accounting for the wrong emission values in the actual. It seems to be setting where we expect the semi-translucent part to black instead of accumulating the light.
Turns out we were accumulating with object emission and not light emission, edges are no longer colored black.
Idk what happened but something happened at inside the volume still doesn't render properly.











Comments
Post a Comment