eiffie
Guest
|
|
« on: November 15, 2012, 06:04:29 PM » |
|
I put together Quilez's code from his article on brute force path tracing and put it in a Fragmentarium script. I probably should have attached it here but you are only a couple clicks away I attached it in this thread... http://www.fractalforums.com/programming/global-illumination-(article)/It runs in continuous mode and may cause some issues on some cards - I only tested it on an Nvidia. Its a short and simple script so I hope others will feel free to improve it.
|
|
|
Logged
|
|
|
|
cKleinhuis
|
|
« Reply #1 on: November 15, 2012, 06:46:31 PM » |
|
Love global illum so i love your pic
|
|
|
Logged
|
---
divide and conquer - iterate and rule - chaos is No random!
|
|
|
knighty
Fractal Iambus
Posts: 819
|
|
« Reply #2 on: November 15, 2012, 08:22:47 PM » |
|
Awesome!
|
|
|
Logged
|
|
|
|
cKleinhuis
|
|
« Reply #3 on: November 15, 2012, 08:42:13 PM » |
|
render time ?
|
|
|
Logged
|
---
divide and conquer - iterate and rule - chaos is No random!
|
|
|
knighty
Fractal Iambus
Posts: 819
|
|
« Reply #4 on: November 15, 2012, 09:16:49 PM » |
|
Something like 5 to 10mn on a crappy GF9400GT at 1024x1024 resolution and 100 steps (I used tile rendering). It should take seconds to render on a modern graphics card.
|
|
|
Logged
|
|
|
|
Syntopia
|
|
« Reply #5 on: November 15, 2012, 09:25:48 PM » |
|
Great stuff, Eiffie!
I'm playing around with a Path-tracer myself, and have been spending some time on stratification and importance sampling - it might be able to speed up the rendering a bit.
I really love the soft lighting from global illumination.
|
|
|
Logged
|
|
|
|
eiffie
Guest
|
|
« Reply #6 on: November 16, 2012, 06:16:20 PM » |
|
|
|
« Last Edit: November 16, 2012, 08:11:24 PM by eiffie »
|
Logged
|
|
|
|
subblue
|
|
« Reply #7 on: November 16, 2012, 07:48:40 PM » |
|
It turned out to be very easy to add transparency with only a few changes. At first it still had solid shadows for transparent objects so I changed the shadow ray march to refract as well and I got some nice little caustics. Way better than I expected! This is fun
http://www.youtube.com/v/ymc3arrjDNQ&rel=1&fs=1&hd=1This stuff is excellent! Very good results for such a small renderer really. I can only run it at 2x preview res on my iMac, but impressive even so
|
|
|
Logged
|
|
|
|
M Benesi
|
|
« Reply #8 on: November 17, 2012, 09:44:22 AM » |
|
Something like 5 to 10mn on a crappy GF9400GT at 1024x1024 resolution and 100 steps (I used tile rendering). It should take seconds to render on a modern graphics card.
I'm jealous! I've got an 8600m... mobile!!!
|
|
|
Logged
|
|
|
|
cKleinhuis
|
|
« Reply #9 on: November 17, 2012, 01:07:33 PM » |
|
woot! i love caustics!!!!!!!
|
|
|
Logged
|
---
divide and conquer - iterate and rule - chaos is No random!
|
|
|
Softology
|
|
« Reply #10 on: November 19, 2012, 11:52:12 PM » |
|
Very nice. I am trying to use the code as a GLSL shader outside Fragmentarium. The problem I am having is how to accumulate each "pass" into a smooth image? At the moment I get an output like the following that flickers around but never seems to smooth out into a final image... Each pass I am averaging the returned color with the current pixel color. How does the continuous mode accumulate the previous pixel results? If I render a single pass it looks identical to the Fragmentarium results with one pass, so I am assuming it must be the way I am averaging the pass colors. Thanks, Jason.
|
|
« Last Edit: November 19, 2012, 11:58:49 PM by Softology »
|
Logged
|
|
|
|
marius
Fractal Lover
Posts: 206
|
|
« Reply #11 on: November 20, 2012, 12:24:24 AM » |
|
Each pass I am averaging the returned color with the current pixel color. How does the continuous mode accumulate the previous pixel results?
Your approach assigns 50% weight to the most recently computed pixel. Hence that will dominate and your frame mimics a single shot. I figure you have to track the running total and divide by N to have the samples have equal weight?
|
|
|
Logged
|
|
|
|
Softology
|
|
« Reply #12 on: November 20, 2012, 01:04:31 AM » |
|
I figure you have to track the running total and divide by N to have the samples have equal weight?
Geez I feel stupid. So obvious. Thanks. Now I am starting to get the sort of results I expect. Jason.
|
|
|
Logged
|
|
|
|
cKleinhuis
|
|
« Reply #13 on: November 20, 2012, 07:37:05 AM » |
|
yay, this script runs nicely out of the box too bad it is relying on the DE formulas dont really understand the concept-of-re-rendering the same buffer in fragmentarium, is it some kind of render-to texture feature and then re-use the output of a previous step !? and another thing i am interested in, HOW DO YOU DO RANDOM ?! by a simple map !? or using built in perlin noise ?!
|
|
|
Logged
|
---
divide and conquer - iterate and rule - chaos is No random!
|
|
|
cbuchner1
|
|
« Reply #14 on: November 20, 2012, 11:58:53 AM » |
|
Oh my god. You're really on to something. Caustics based on procedurally generrated fractals. W00t! UPDATE: at work we're soon going to have a laptop with GT 680M graphics (1388 shader cores or so). The fastest nVidia tesla cards have 2688 cores, but they don't do graphics AFAIK. The GTS 250 that I am on now only has 128 of 'em. So keep those scripts coming. We need material for testing and benchmarking BTW, would anyone know if SLI can accelerate OpenGL applications? Does it need specific SLI profiles for the application?
|
|
« Last Edit: November 20, 2012, 03:30:09 PM by cbuchner1 »
|
Logged
|
|
|
|
|