Title: Weave Post by: Pauldelbrot on January 04, 2010, 08:41:47 AM (http://u5789.direct.atpic.com/24796/0/1672891/1024.jpg) (http://pic.atpic.com/1672891/1024)
A distance estimator image using a new algorithm to determine the grey scale used. Pixels that don't contain set boundary are black. Pixels that do are a shade of grey depending on the distance estimate at the sampled point, as follows: the distance estimate in pixels is a value between 0 and 1 for pixels that contain boundary; that value's nth root is taken and then used to determine the grey shade, from black at 1 to white at 0. If the boundary is dense in the pixel, the distance estimate is probably close to 0 and the pixel ends up close to white. If the boundary is sparse in the pixel, the distance estimate is probably higher and the pixel ends up a darker grey. This seems to give superior results to my other method for some fractals. In this case, the eighth root was taken; if the root parameter is set to 1 (so it just linearly shades from black to white as the distance estimate drops from 1 to 0) the image loses much detail of the little scepters and around the minibrot. This tinkering was motivated by a desire to generate a coloring algorithm that would do justice to all the frames of a zoom animation without much difficulty. The ideal is for it to be "set it and forget it", which requires that at high roots the zoomed-out M-set's filaments don't fade to black while details still don't "overexpose" in convoluted regions close to the M-set. It's not quite perfect; for some animations the root would have to be gradually increased as the magnification raised, or perhaps even varied in a more complex fashion. I may try further variations, such as dividing the distance range 0-1 into two segments and using different roots for each, a low one for distances near 1 and a higher one for distances near 0. This would deal better with animations, and with zooms of spike minibrots that wind up having "whiskers" as well as dense structures like seahorses. The real bugbears though are images of minibrot spikes and similar environments, where the "whiskers" have seahorses and the like attached. Getting DE to bring out the whiskers is nontrivial in these cases. For that, I need to consider mappings such as This image was antialiased the standard way, but given the way DE pixel distances are calculated, it might work better to generate a larger, unantialiased image (e.g. 8192x6144) and downsample it. Freely redistributable and usable subject to the Creative Commons Attribution license, version 3.0. Detailed statistics: Name: Weave Date: January 3, 2010 Fractal: Mandelbrot Location: Triple Spiral Valley of top bud of top bud of M-set. Depth: Shallow (15 decimals) Min Iterations: 4771 Max Iterations: 1,131,813 Layers: 1 Anti-aliasing: 3x3, threshold 0.10, depth 2 Preparation time: 20 minutes Calculation time: 4 hours (2.5GHz dual-core E5200) Title: Re: Weave Post by: kram1032 on January 04, 2010, 07:13:09 PM nice :)
It's most likely very complex to implement but I just thought about some kind of DE based colouring: pixels inside the boundary get coloured black as usual, while for pixels outside the boundary you do a "full circle DE" to get a function of the distance from the fractal's border in respect to the angel from the chosen point. Then you basically sum up each angle's value with the colourcircle. higher distances get shaded darker, meaning less of the colour is included. - if the point lies exactly on the boundary, the distance in every direction is zero and therefore the (sub)pixel is white :) If not in some way optimized, this is probably very slow but the results could be nice :) Title: Re: Weave Post by: David Makin on January 04, 2010, 09:35:46 PM nice :) It's most likely very complex to implement but I just thought about some kind of DE based colouring: pixels inside the boundary get coloured black as usual, while for pixels outside the boundary you do a "full circle DE" to get a function of the distance from the fractal's border in respect to the angel from the chosen point. Then you basically sum up each angle's value with the colourcircle. higher distances get shaded darker, meaning less of the colour is included. - if the point lies exactly on the boundary, the distance in every direction is zero and therefore the (sub)pixel is white :) If not in some way optimized, this is probably very slow but the results could be nice :) There are problems with that idea using either DE method. First it can't be done using plain analytical DE because that only gives the minimum distance *in any direction*. Second, using the delta DE method, it can't be done because the direction/s (almost) exactly parallel with the fractal surface will return a very high number (theoretically infinity). Maybe one thing you could do (for the analytical method) is get the DE values for a ring of points around the surface point and somehow combine those to give a colouring value - obviously if your DE solid threshold is x then the circle/sphere used would have to have a radius smaller than x - though even then some points tested will be "inside" because the fractal surface is not a flat plane. Title: Re: Weave Post by: kram1032 on January 04, 2010, 11:39:14 PM infinite distance would have zero effect to the colour so that in theory shouldn't be a problem....
So rays in directions which lead directly away from the set (eg pass it) would add 0 to the "colour-direction"... actually the problem might be the exact opposite. If you use the relationship 1/x for colouring (or anything alike) that would return infinity if the ray exactly starts in the boundary. Probably, the solution for that is to use 1/(x+1) as distances are always positive. at zero, that gives 1, at infinity that gives 0 and for R+ it's fully defined :) Title: Re: Weave Post by: Pauldelbrot on January 04, 2010, 11:58:13 PM Who needs to sample a whole ring of points? Just sample three and triangulate the position of the nearest point of the set. (Assuming the three are closer to one another than any are to the set, this will approximately be correct.)
The effect should be to "halo" the set in colors dependent on position relative to the set; e.g. blue south of bumps in the boundary, green west, yellow north, red east, or what-have-you. Title: Re: Weave Post by: kram1032 on January 05, 2010, 12:20:18 AM something like that, yeah...
Title: Re: Weave Post by: David Makin on January 05, 2010, 12:47:30 AM Who needs to sample a whole ring of points? Just sample three and triangulate the position of the nearest point of the set. (Assuming the three are closer to one another than any are to the set, this will approximately be correct.) The effect should be to "halo" the set in colors dependent on position relative to the set; e.g. blue south of bumps in the boundary, green west, yellow north, red east, or what-have-you. I only meant on a ring (circle/sphere), I didn't specify how many points :) Having said that, the more points used then (probably) the more colour variation you'd get. Title: Re: Weave Post by: kram1032 on January 05, 2010, 03:04:00 AM with some kind of path-integral (or was it curve-integral?), it should be kind of possible to get a full function, I guess?
Title: Re: Weave Post by: Nahee_Enterprises on January 11, 2010, 01:25:31 PM A distance estimator image using a new algorithm to determine the grey scale used. Pixels that don't contain set boundary are black. Name: Weave Location: Triple Spiral Valley of top bud of top bud of M-set. Max Iterations: 1,131,813 Calculation time: 4 hours (2.5GHz dual-core E5200) Very "busy" image !!!! But a nice effect with the new algorithm, and coloring. :) Title: Re: Weave Post by: Pauldelbrot on January 11, 2010, 04:48:37 PM Thanks. |