Title: Mandelbrot: Supersampling vs Multisampling? Post by: Kalles Fraktaler on March 28, 2014, 12:14:12 PM I am playing a little with Kalles Fraktaler and trying to implement Supersampling.
Supersampling means, according to wikipedia, taking the average of several points in each pixel. http://en.wikipedia.org/wiki/Supersampling - I have tried the "Grid algorithm". However the result isn't improving!?! :hmh: I have already implemented Multisampling, which, according to wikipedia, means render a bigger image in memory and stretching it smaller, and this gives a very good result. http://en.wikipedia.org/wiki/Multisample_anti-aliasing Edges are smoothed and structures are revealed in areas that are noisy when rendered in the same size as displayed. My question: Is it a known fact that supersampling does not improve Mandelbrot rendering? Or am I simply doing it wrong?? Attached image shows - 1. no antialias, 2. supersampling 4x4, 3. multisampling 4x4 Title: Re: Mandelbrot: Supersampling vs Multisampling? Post by: cKleinhuis on March 28, 2014, 03:01:20 PM as far as i understand it your supersampling algorithm is wrong ;)
various strategies exist for supersampling, either use a random sub-pixel or divide the pixel in a regular grid manner, and i think supersampling with a regular grid should provide *nearly* exact same result as multisampling a 4 times bigger pictue :) Title: Re: Mandelbrot: Supersampling vs Multisampling? Post by: laser blaster on March 28, 2014, 05:04:30 PM Make sure that you iterate and color each supersampled point seperately, and then average them at the end. If you do that, it should work.
Title: Re: Mandelbrot: Supersampling vs Multisampling? Post by: Kalles Fraktaler on March 28, 2014, 07:49:39 PM Make sure that you iterate and color each supersampled point seperately, and then average them at the end. If you do that, it should work. Yeah, and that is just what the problem is!Because I want to have an average of the iteration count (and smooth coefficient) on each pixel so that I can make color cycling animations. But it seems not possible... And since you wrote what you wrote, I assume you have also encountered this? Title: Re: Mandelbrot: Supersampling vs Multisampling? Post by: cKleinhuis on March 28, 2014, 07:52:24 PM check your averaging method, it can happen that you do something like value=(value+newValue)/2 assuming to create a 50 percent average over all, but what this method actually does is weighting just the last added 50% so, the aliasing effect might be too small because last pixel is taking 50% ;)
Title: Re: Mandelbrot: Supersampling vs Multisampling? Post by: Syntopia on March 28, 2014, 08:05:45 PM I have already implemented Multisampling, which, according to wikipedia, means render a bigger image in memory and stretching it smaller, and this gives a very good result. http://en.wikipedia.org/wiki/Multisample_anti-aliasing Edges are smoothed and structures are revealed in areas that are noisy when rendered in the same size as displayed. Multisampling is not the same as rendering a bigger image and downscaling. Multisampling (MSAA) is a OpenGL technique, that works by only sampling the edges of polygons at higher resolutions. You cannot do MSAA on a fractal, since there are no polygons. My guess is that you are doing Full-Screen Anti-Alias (FSAA) - that is rendering the scene at a higher resolution and downscaling it. An alternative is to just sample more times per pixel - which results in quite similar results if using the same number of pixels as in FSAA - however you can improve the sampling pattern by using jittering or stratifying the samples. But you should supersample the final color, not the iteration count. Title: Re: Mandelbrot: Supersampling vs Multisampling? Post by: Kalles Fraktaler on March 28, 2014, 08:40:21 PM check your averaging method, it can happen that you do something like value=(value+newValue)/2 assuming to create a 50 percent average over all, but what this method actually does is weighting just the last added 50% so, the aliasing effect might be too small because last pixel is taking 50% ;) No, I sum the iterations and divide the value at the end.Strangely enough, it gives a good anti-alias effect when the iteration division has an significant value, but without iteration division the result is sometimes worse than when one sample per pixels is used. Multisampling is not the same as rendering a bigger image and downscaling. Multisampling (MSAA) is a OpenGL technique, that works by only sampling the edges of polygons at higher resolutions. You cannot do MSAA on a fractal, since there are no polygons. My guess is that you are doing Full-Screen Anti-Alias (FSAA) - that is rendering the scene at a higher resolution and downscaling it. Sorry I am not quite familiar with the terminology.An alternative is to just sample more times per pixel - which results in quite similar results if using the same number of pixels as in FSAA - however you can improve the sampling pattern by using jittering or stratifying the samples. But you should supersample the final color, not the iteration count. Anyway, also you write that I must super-sample the final color (i.e. not the iteration count value), and that is just what I don't want, since I want to be able to do color cycling! Render in higher resolution works very well, but it requires a lot of memory and therefore sampling several times in the same pixels is faster in practice. But I take your replies as this is not possible so that I can thankfully discard this method :) Thanks a lot! Title: Re: Mandelbrot: Supersampling vs Multisampling? Post by: lycium on March 28, 2014, 09:05:42 PM You're really not going to do anti-aliasing just so that palette cycling works?
I sometimes make jokes about fractal rendering tech generally being stuck in the 80s, and such a situation is concrete proof! Title: Re: Mandelbrot: Supersampling vs Multisampling? Post by: Sockratease on March 28, 2014, 09:38:42 PM You're really not going to do anti-aliasing just so that palette cycling works? I sometimes make jokes about fractal rendering tech generally being stuck in the 80s, and such a situation is concrete proof! So... How would you suggest bringing it into the 21st Century? If you're going to make such a critical statement it's only fair to offer a better solution at the same time, right? :-* Title: Re: Mandelbrot: Supersampling vs Multisampling? Post by: lycium on March 28, 2014, 10:23:26 PM Lack of AA, especially for the sake of palette cycling, is very very 80s fractal rendering. Is deeper zooming really the essence of modernity for you?
Several people in this thread have already suggested how to do better rendering (since, you know, we have more than 256 colours these days) but the 80s style aliased palette cycling is somehow more appealing... is it really that difficult to see how one might think it's a bit oldskool? Edit: Here's a concrete example: Frax. Yes, it doesn't zoom to 1e234603760376, but it does has the crucial advantage of making images that are actually kind of new and interesting, nice to look at. So you're really telling me, you prefer the nasty crunchy pixels of the same old repeating structure at some unholy depth, to new and interesting ways of visualising the Mandelbrot set, adding effects etc? Am I really alone in this crazy idea that the obsession with deep zooming at the expense of any kind of artistic creativity is ridiculous? Has anyone even seen anything genuinely new in the M-set in the last 30 years? Title: Re: Mandelbrot: Supersampling vs Multisampling? Post by: lycium on March 28, 2014, 10:26:51 PM If only we could zoom to 1e100000000000000000000000, then fractal art would *really* be amazing and modern, and no new programs are needed for at least another hundred years!
Title: Re: Mandelbrot: Supersampling vs Multisampling? Post by: laser blaster on March 28, 2014, 11:16:43 PM Lycium, I think you're misunderstanding him a bit. I think he wants to create color cycling animations out of still renders, which means rendering out the raw iteration depth and applying color as a post-process, which won't work if the samples have already been averaged together. Thus the need to render in a higher resolution and downsample.
Also, I can understand if you're bored of pictures of the good old M-set with simple coloring methods, but there's plenty of people out there who experiment with interesting new formulas and colorings. Title: Re: Mandelbrot: Supersampling vs Multisampling? Post by: Kalles Fraktaler on March 28, 2014, 11:19:17 PM No I agree with you. Modern programs should be able to have more than 256 colors. With perturbation we have also seen amazing views not so deep but in high density areas, passing close to several, up to 8!, minibrots for example. That's indeed news since the last 30 years!!
Have you ever consider adding perturbation to your frax program, and combine it with your effects? Anyway, my initial question was if it is feasible to super sample the iteration value and the answer is no, which is according to what I found out. I am thankful of the responses I got on that question. Your opinions are interesting but a side track. Color cycling is not possible at all if you render the final colors of each pixel, regardless if you use 80-stylish 256 colors or, as I do, fractional cycling on palettes with tens of thousands of colors resulting in hundreds of thousands of colors... But I may indeed prefer other things than you do, we may have different preferences you know. Title: Re: Mandelbrot: Supersampling vs Multisampling? Post by: lycium on March 29, 2014, 12:02:08 AM Lycium, I think you're misunderstanding him a bit. I think he wants to create color cycling animations out of still renders, which means rendering out the raw iteration depth and applying color as a post-process, which won't work if the samples have already been averaged together. I understood that just fine :)Thus the need to render in a higher resolution and downsample. Ah but this isn't correct, because: AA(colouring_function(iteration)) != colouring_function(AA(iteration))Also, I can understand if you're bored of pictures of the good old M-set with simple coloring methods, but there's plenty of people out there who experiment with interesting new formulas and colorings. On the contrary, this is precisely the point I was making about Frax :)Title: Re: Mandelbrot: Supersampling vs Multisampling? Post by: lycium on March 29, 2014, 12:05:13 AM No I agree with you. Modern programs should be able to have more than 256 colors. With perturbation we have also seen amazing views not so deep but in high density areas, passing close to several, up to 8!, minibrots for example. That's indeed news since the last 30 years!! I think you deliberately dodged my question about whether anything genuinely new has been seen in the M-set in the last 30 years.Previously I made what I think is a good analogy: deeper zooming into the M-set, although never repeating, introduces about as much exciting novelty as never-repeating digits of pi. Have you ever consider adding perturbation to your frax program, and combine it with your effects? Frax is not my program, and since I value reliable rendering I wouldn't use perturbation methods even if I did want to make the 9769343904750760237563th M-set renderer that can zoom 236034634564643x deeper than any previous renderer.To me deep zooming is the most artistically shallow aspect of fractals. There are SO many amazing fractals waiting to be created, but humankind seems to be largely stuck on getting more minibrots onscreen (not even any more interestingly visualised than was done in the 80s) and comparing zoom exponents... Title: Re: Mandelbrot: Supersampling vs Multisampling? Post by: panzerboy on March 29, 2014, 01:57:07 AM If I understand Kalles correctly the real question is averaging the iterations then colouring the pixel gives a noisier image than colouring the pixels then averaging.
A histogram of the mandelbrot iterations reveals how the iterations values are distributed. A typical mandelbrot image has large areas of lower iterations, the interesting details are the higher iterations but they make up very few (<5%) of the pixels. Getting an average iteration value for a 3x3 grid will often include one of these higher value iterations, skewing the average value. The higher value iterations though sparse have wildly varying values, think of how quickly the iterations climb near a mini-brot. So the amount skewed by the higher value iterations will cause great variation in average value say one 3x3 grid has 8 locations of iteration value 1000 and 1 location of 2500, the next grid 8 of 1000 1 of 1300. The average for the 1st grid is 1167 the next is 1033, 34 iteration values different, pointing to a possibly radically different colour in your palette index. Consider the grids as colours the first grid has 8 pixels of grey R127,G127,B127 and one of black r0,g0,b0 the 2nd grid's different pixel might be yellow r255,g255,b0. The average RGB compare as R113,G113,B113 and R141,G141,B113 a visible but subtle difference. Not as jarring as a quick palette mapping might make of a 34 iteration difference? Title: Re: Mandelbrot: Supersampling vs Multisampling? Post by: lycium on March 29, 2014, 11:45:43 AM So, if you don't think it is good to be fascinated by the new depths now possible with perturbation, what do you think is correct to be fascinated of then? How did you come to this conclusion? If possible please refer to anything I've said about perturbation methods that has anything to do with chaotica, or that was not carefully qualified and justified. If you don't want to hear any negative points about perturbation methods then just say so - I don't see what my "marvelous program" has to do with this... you seemed at first to think Frax was my program.It seems to me that the point of your critic posts in this thread (and others about perturbation) is to assert your own marvelous program? I've been giving my personal opinion on this forum for about 7 years... and yes, I'll be the one to speak the apparently controversial view that no one has seen anything genuinely new in the Mandelbrot set for the last 30 years, which makes heuristic/approximate methods for even deeper zooming of limited value. If you can't address this statement without shooting the messenger then let's rather just leave it... I.e. Chaotica, for which you want our money? Not really??I am sorry, I will never buy it! It must be frustrating when people choose freeware from enthusiasts instead of paying you money?? Title: Re: Mandelbrot: Supersampling vs Multisampling? Post by: Kalles Fraktaler on March 29, 2014, 03:11:20 PM If I understand Kalles correctly the real question is averaging the iterations then colouring the pixel gives a noisier image than colouring the pixels then averaging. Thanks for your interesting reply. Next time I have time to sit in front of my computer I will try median-value instead of average, that may work better :)A histogram of the mandelbrot iterations reveals how the iterations values are distributed. A typical mandelbrot image has large areas of lower iterations, the interesting details are the higher iterations but they make up very few (<5%) of the pixels. Getting an average iteration value for a 3x3 grid will often include one of these higher value iterations, skewing the average value. The higher value iterations though sparse have wildly varying values, think of how quickly the iterations climb near a mini-brot. So the amount skewed by the higher value iterations will cause great variation in average value say one 3x3 grid has 8 locations of iteration value 1000 and 1 location of 2500, the next grid 8 of 1000 1 of 1300. The average for the 1st grid is 1167 the next is 1033, 34 iteration values different, pointing to a possibly radically different colour in your palette index. Consider the grids as colours the first grid has 8 pixels of grey R127,G127,B127 and one of black r0,g0,b0 the 2nd grid's different pixel might be yellow r255,g255,b0. The average RGB compare as R113,G113,B113 and R141,G141,B113 a visible but subtle difference. Not as jarring as a quick palette mapping might make of a 34 iteration difference? Title: Re: Mandelbrot: Supersampling vs Multisampling? Post by: Kalles Fraktaler on April 03, 2014, 05:35:11 PM Thanks for your interesting reply. Next time I have time to sit in front of my computer I will try median-value instead of average, that may work better :) Nope, median did not improve much...Title: Re: Mandelbrot: Supersampling vs Multisampling? Post by: youhn on April 03, 2014, 09:10:33 PM If only we could zoom to 1e100000000000000000000000, then fractal art would *really* be amazing and modern, and no new programs are needed for at least another hundred years! lol @ sarcasm and bitterness :mandy: The basics of storytelling also is the same for about a few thousand years. Just the details around it change a little. From spoken words at a campfire with some additional background-noise to 3D big screen theaters with surround sound, or even movements and watersplashing in some hybrid things you find in amusement parks. But I guess you're not wandering around those very often. Some people think the new 3D hype is *the thing*. I think I'm getting old and bitter on that subject, since I really do NOT believe it is here to stay. But storytelling is and so is the good OLD Mandelbrot fractal. We just search and watch the new exciting details around it. What does color cycling has to do with AA?? Based on the functionality of Xaos, mdz, Mandelmachine it looks like separate things. I think we should relate all things AA, resolution, DPI, size, viewing distance to OUR EYES. Let's forget both AA and color. Image snow (random noise) on a standard PC monitor. What resolution do we need to observe perfect grey, even when moving our head a little? I have the feeling I would be amazed on the resolution you need to see a perfect grey. This can be mapped back to minimum amount of AA in densen (high iteration climb) areas. Back to AA. I don't really believe in tricks like rotating the "subpixels" or place them at some semi-random way. I do think that something should be done about the value (dark-light). When looking through the branches of a leaveless tree, you can almost close your eyes. For me, the light seems to win. The braches get smaller and seem to disappear. This is also true for distant small lights in the dark, they seem to grow when looking through the eyelashes. :mandy: Title: Re: Mandelbrot: Supersampling vs Multisampling? Post by: SeryZone on April 05, 2014, 07:54:37 PM So, I tried to supersample iteration data (*.KFB files) in 2 timesby simpliest algorithm. That's don't work. Yes, we averaging iteration values, but... We don't get supersampling! I can't average RGBA values, because I works with iteration data! How to get Supersampling for data???
Title: Re: Mandelbrot: Supersampling vs Multisampling? Post by: SeryZone on April 05, 2014, 08:03:34 PM If only we could zoom to 1e100000000000000000000000, then fractal art would *really* be amazing and modern, and no new programs are needed for at least another hundred years! I want to say, that many users (include me) wants to see or set new zoom records. But deep of zoom not important, I think. Important: interesting zoom, like a phaumann's zoom 'Mandelbrot Zoom 999'. This video difficult to render now!!! I render it (not now, I suspended week ago) in 2560x1440 without AA in SFT. Here location, that I re-explored in fractal eXterme: Code: Real: -0.1542322727040157075505860940973994991842194236934782161574965617196536989431205112498794586796721102654663005026255062709929608580928976274423721660193212473041079523084242904047759779730802681028738568840261757348561230305349428801089000709917282587142578843159917259734301179668521665666749300428312958350901541822760632890894467745204795748598378916656358809046683471058902211363408878346261201316382723365304783767492851294432472704122066659461239347581874808631217827175919047642313975223850999903640294278972304747201285084285569686228172296904163070725512890197651817869054608985334078484055476927287415147835742021385457481273618177575339577025199974120071319146931414040084707482623578788216968471622263444364606381764852698995536618894820366640002770725980617324156799355799486333817836714356581364979857164015033738094139658957505980714875445896438185507664296149147784380961931162480627057773657831742518158906322668929244899662020105708254720307314922041277152284490573529442126453591112766218071560248196637849 I want to make series 'Legendary' and render some really difficult LEGENDARY locations. And this location I add in this series in FIRST turn! |