|
|
|
cKleinhuis
|
 |
« Reply #1 on: February 28, 2007, 12:57:59 PM » |
|
way cool  the caustics look really amazing how long does it take to render? have you tried to implement refraction also ?
|
|
|
|
|
Logged
|
---
divide and conquer - iterate and rule - chaos is No random!
|
|
|
|
lycium
|
 |
« Reply #2 on: February 28, 2007, 01:07:48 PM » |
|
thanks, i have indeed implemented refraction and although the result wasn't correct, it did look neat  the next implementation of refraction will be wavelength-based. a friend of mine, exceptionally good programmer, is helping me write a little opensource sampling framework so that i can efficiently render such images (or anything that can be sampled in 2d, for example your own fractals). it's a progressive (non-terminating) rendering technique based on metropolis-hastings sampling. i'll write the cpu-based code and he's writing a hardware-accelerated implementation.
|
|
|
|
|
Logged
|
|
|
|
|
cKleinhuis
|
 |
« Reply #3 on: February 28, 2007, 01:17:17 PM » |
|
this would make indeed a nice post processing step  when talking about 2d rendering would it be possible to give the points a height value ? this would complicate the rendering process even more ;(
|
|
|
|
|
Logged
|
---
divide and conquer - iterate and rule - chaos is No random!
|
|
|
|
lycium
|
 |
« Reply #4 on: February 28, 2007, 01:24:54 PM » |
|
any 2d sampling procedure can be used. i give (x,y) and you give me a colour, that's it! all the magic is inside the black-box sampling method. i plan to 3d ray trace using this framework eventually; (x,y) -> ray -> intersecion -> colour. the ray tracing will of course be 3d fractals... this is only the tip of the iceberg 
|
|
|
|
|
Logged
|
|
|
|
|
gandreas
|
 |
« Reply #5 on: February 28, 2007, 05:26:58 PM » |
|
Interesting. Definitely got lots of potential!
The article you mentioned refers to taking the normal to object. However, the generalized Julia set doesn't have a normal (it's "infinitely rough", except for a few degenerate cases) - so you do you just cheat and pick an arbitrary depth of evaluation?
|
|
|
|
|
Logged
|
|
|
|
|
lycium
|
 |
« Reply #6 on: February 28, 2007, 05:40:00 PM » |
|
Interesting. Definitely got lots of potential!
interesting that you mention potentials; the normal is just the gradient of a (julia) potential field. it's true that fractals have very poorly defined normals, even when formulated as implicit objects via a potential field. i've found that using more than 9 or 10 iterations, depending on resolution, really stresses all those sampling methods; the reason i used a particularly smooth surface approximation here is because it makes those nice specular reflection caustics 
|
|
|
|
|
Logged
|
|
|
|
|
lycium
|
 |
« Reply #7 on: February 28, 2007, 06:01:50 PM » |
|
|
|
|
|
|
Logged
|
|
|
|
|
David Makin
|
 |
« Reply #8 on: February 28, 2007, 06:14:31 PM » |
|
Interesting. Definitely got lots of potential!
interesting that you mention potentials; the normal is just the gradient of a (julia) potential field. it's true that fractals have very poorly defined normals, even when formulated as implicit objects via a potential field. i've found that using more than 9 or 10 iterations, depending on resolution, really stresses all those sampling methods; the reason i used a particularly smooth surface approximation here is because it makes those nice specular reflection caustics  You may find that using the smooth distance estimator method produces nicer results than using smooth iteration/potential (it's certainly more optimum for ray-tracing 3D fractals).
|
|
|
|
|
Logged
|
|
|
|
|
lycium
|
 |
« Reply #9 on: February 28, 2007, 06:35:43 PM » |
|
i'm actually just following the 8 iterations and working with the magnitude of that last z value; with few iterations it's plenty smooth. anyway, this 2d ray tracing stuff is just a momentary hack to test the new sampling engine. with that thing i'll ray trace 3d fractals, also with full+exact global illumination 
|
|
|
|
|
Logged
|
|
|
|
|
gandreas
|
 |
« Reply #10 on: February 28, 2007, 09:06:38 PM » |
|
I'd suggest that you stick with 2D for a while here because fractals are not "well defined" in 3D (2D via complex numbers yes, 4D via quaternions yes, but 3D, not so much since there is no "triternions"), and there are a number of things which attempt to do 3D raytracing (after coming up with some way to produce a 3rd dimension).
On the other hand, 2D stuff is well defined and very rich (giving you lots to start from), and your raytracing appears to offer something new and exciting (I'm curious what something that was more "holes" like a Newton fractal would look like, and do you still get caustics with the more convex Mandelbrot set)
|
|
|
|
|
Logged
|
|
|
|
|
lycium
|
 |
« Reply #11 on: February 28, 2007, 09:12:09 PM » |
|
i've done plenty of 3d fractals  frankly i can't wait to see them all with area lights, glossy surfaces and rendered to exact physical accuracy! there will always be a special place for 2d graphics (fractal or otherwise) in my heart, and this sampling engine will be great for rendering those. the future calls, however... it's 2007 and high time i ray traced some real 3d fractals 
|
|
|
|
|
Logged
|
|
|
|
|
gandreas
|
 |
« Reply #12 on: February 28, 2007, 09:22:55 PM » |
|
Kids these days and their "glossy surfaces". I remember back when all we has was black and white, and if you wanted gray, you had to blink fast! And we liked it that way!
(Seriously, I remember writing software that, during the VBL interrupt, would change the graphics page to get more depth - two frames from one, one frame from the other, and instant head-ache inducing grayscale)
|
|
|
|
|
Logged
|
|
|
|
|
lycium
|
 |
« Reply #13 on: February 28, 2007, 09:47:27 PM » |
|
this is getting to be a huge aside, but since i haven't got an introduction in that section of the forum....  surprisingly (for a not-such-a-kid-anymore this day) i've done my fair share of to-the-metal coding, and still know some binary x86 opcodes for 32bit instructions cuz my basic compiler only supported 286 inline asm (0x66 for 32bit prefix, 0xf3 for rep, 0xab or 0xa5 for one of stosd or movsd)! i've written fast gouraud-shaded triangle fillers for little mode 13h 3d engines, done many demoscene effects, and that was all nice and dandy until... ... i learnt about ray tracing and monte carlo methods  seriously, there's been realistic ray tracing since way back (kajiya's rendering equation dates to 1986, cook and porter did distributed ray tracing before that even) and that's more or less when i was born, so it's entirely fair that i get to pursue the 1995 state-of-the-art in 2007  [realistic rendering is a great way to appreciate good maths, btw! that in itself makes it worthwhile, and it's a rare instance where mathematics is plainly appreciable - all the images in this thread are purely equation-driven]
|
|
|
|
|
Logged
|
|
|
|
|
|
|