Logo by reallybigname - Contribute your own Logo!

END OF AN ERA, FRACTALFORUMS.COM IS CONTINUED ON FRACTALFORUMS.ORG

it was a great time but no longer maintainable by c.Kleinhuis contact him for any data retrieval,
thanks and see you perhaps in 10 years again

this forum will stay online for reference
News: Did you know ? you can use LaTex inside Postings on fractalforums.com!
 
*
Welcome, Guest. Please login or register. November 29, 2020, 11:58:28 AM


Login with username, password and session length


The All New FractalForums is now in Public Beta Testing! Visit FractalForums.org and check it out!


Pages: [1]   Go Down
  Print  
Share this topic on DiggShare this topic on FacebookShare this topic on GoogleShare this topic on RedditShare this topic on StumbleUponShare this topic on Twitter
Author Topic: MOIR effects  (Read 2442 times)
0 Members and 1 Guest are viewing this topic.
Charleswehner
Guest
« on: November 16, 2006, 05:11:07 PM »

On this forum I had been discussing binocular stereoscopic fractals, and the need for an added dimension with which to give height to the image.

I decided to go looking, and one study was of the Julia sets - which I have finally understood to be Mandelbrot, but with a fixed vector. Mandelbrot is Z <- Z*Z + Z0, where Z0 is the X-Y co-ordinate pair of the pixel under evaluation. Julia is  Z <- Z*Z + ZJ, where ZJ is some vector, the Julia vector, fixed throughout the image, chosen by the fractalist. That was of no use in the search for a dimension.

I decided to modify my machine-code programs for random-access rendering. Mandelbrot and Julia images are normally plotted one pixel at a time, row by row. They only need sequential access. However, instead of delivering the pixels sequentially to disk, I deliberately arranged for my programs to write to RAM first, and only write to disk when finished. This simplifies random access.

Normally, the pixel column- and row-numbers are converted to fractional numbers for the arithmetic. With my random access plotting, those fractional numbers are converted back to column and row.

The first position of the pixels of a Mandelbrot set is its allotted space. Each pixel has its own bounds:


That image was made with http://wehner.org/tools/fractals/position/pos01.asm

So the plotting system has been shown to give a perfectly standard Mandelbrot image. It seems to be correct.

After a dot has been "swung and flung" by the Mandelbrot formula Z <- Z2 + Z0 (where Z <- Z2 swings the dot about according to de Moivre's theorem and Z0 flings it through the vector of the pixel) it lands in an unfamiliar place. No bounds have been reserved for it - so there may be contention for space, and the final appearance may vary with the way it was made. Left-to-right analysis might give a different result to right-to-left, at least in some minor degree.

However, here is the Mandelbrot set rendered not onto the original grid but on the places those grid-locations were swung and flung to:


The source code is at http://wehner.org/tools/fractals/position/pos02.asm .

Here is the result after two swings and flings:


The source code is at http://wehner.org/tools/fractals/position/pos03.asm .

...    and after three:


The source code is at http://wehner.org/tools/fractals/position/pos04.asm .

....   and after four:


The source code is at http://wehner.org/tools/fractals/position/pos05.asm .

....   and after 255:


The source code is at http://wehner.org/tools/fractals/position/pos255.asm .

Throughout this study, whilst being satisfied with the images, I was disturbed by the straight and curved lines. Are these artefacts of the mathematics, or of the algorithm? It turns out that they are due to a moir interaction of a hidden reseau, or grid, within the fractal, and the pixel array from which it came.

I carried out a study of grid-buckling during Mandelbrot evaluation. Here is the original grid:


The source is at http://wehner.org/tools/fractals/moire/moi01.asm

After one "swing and fling" it distorts to this:


The source code is at http://wehner.org/tools/fractals/moire/moi02.asm

Then it distorts to this:


This source code is at http://wehner.org/tools/fractals/moire/moi03.asm

I am a little disappointed that the bottoms of the images are not completely clean, but they clearly display the moir effect in random-access plotting of fractals.


Charles








Logged
lycium
Fractal Supremo
*****
Posts: 1158



WWW
« Reply #1 on: November 17, 2006, 11:29:30 AM »

one word: supersampling.

you're point-sampling a function of two continuous variables at regular intervals, so aliasing is an absolute certainty. in your thread detailing the fractal experiments i mentioned that a particular benefit of floating point arithmetic is increased accuracy on wide scales. when you compute a supersampled image typically there are 3 scales at work: the image-plane scale, the sub-pixel scale, and the iteration scale (as the orbit tends to infinity or remains chaotically bounded).

anyway, i won't harp on about the obvious benefits of floating point anymore; i've been hankering to send this link to you everytime i read "dot" referring to what is supposed to be a properly bandlimited and filtered sample from a bi-continuous function: http://ftp://ftp.alvyray.com/Acrobat/6_Pixel.pdf

more references on the how and why can be found in the "see also" section of http://en.wikipedia.org/wiki/Oversampling (in particular be sure to look at http://en.wikipedia.org/wiki/Anti-aliasing)

if you'd like more info on doing good antialiasing let me know :)
« Last Edit: November 17, 2006, 11:41:27 AM by lycium » Logged

Charleswehner
Guest
« Reply #2 on: November 17, 2006, 05:39:23 PM »

Firstly, we can dismiss the Wikipedia as a reliable source of references. It is open to the public, so dubious people of all descriptions can add to it, and it is not properly checked.

Secondly, I have produced many products that used anti-aliasing. A very simple one is my MoveR program


There are many more examples of my work with anti-aliasing.

None of this is the point. I do not just talk. I show results. That means, I actually do the work before I speak. And I am aware of oversampling. I have had forty-four years of experience with computers.

The point is that few people will know where the Mandelbrot set goes to when it is swung-and-slung by the complex mathematics. Without creating diagrams of this kind, one cannot be sure. Experience conquers guesswork.

Charles
Logged
lycium
Fractal Supremo
*****
Posts: 1158



WWW
« Reply #3 on: November 17, 2006, 07:03:03 PM »

Firstly, we can dismiss the Wikipedia as a reliable source of references. It is open to the public, so dubious people of all descriptions can add to it, and it is not properly checked.

i happen to be very familiar with sampling theory together with the related numerical methods, and have edited some of those pages myself; if you find any mistakes please let me know.

an adage springs to mind: "it's easier to point the finger than to offer a helping hand"

None of this is the point. I do not just talk. I show results. That means, I actually do the work before I speak. And I am aware of oversampling. I have had forty-four years of experience with computers.

i'm not entirely sure what you're getting at here, but it certainly seems like you're trying to discredit me and flaunt your age/experience. i may not be the most experienced programmer in the world but i certainly know what i'm talking about with regard to signal processing - undersampling is very clearly the source of "uncleanness" in your images and i'm not throwing random links around for no particular reason. in fact, i thought you would value those links for the answers to your troubles they contain!

if you insist i'm "just talking" i can, in a few minutes, reproduce that illustration of the C -> C mapping induced by the mandelbrot iteration with near-analytic reconstruction to prove that it's indeed a sampling problem. besides this i'm constantly showing the results of extremely high quality antialiasing (for example i did a survey of some reconstruction filters here: http://ompf.org/forum/viewtopic.php?t=134 and you'll find the very subject of this discussion - moir artifacts - in there too), so again i really don't know what you meant with that (seemingly condescending) quote.

Experience conquers guesswork.

i fully agree.
Logged

lycium
Fractal Supremo
*****
Posts: 1158



WWW
« Reply #4 on: November 17, 2006, 08:49:10 PM »

just for kicks i thought i'd implement this little mapping visualisation. i stopped short of visualising the magnitudes and angles of the partial derivatives of the transformation (after n iterations) using colour channels, since i have other (3d) fractal stuff to do.



Quote from: Charleswehner
However, instead of delivering the pixels sequentially to disk, I deliberately arranged for my programs to write to RAM first, and only write to disk when finished. This simplifies random access.

no kidding!

Quote from: Charleswehner
No bounds have been reserved for it - so there may be contention for space, and the final appearance may vary with the way it was made. Left-to-right analysis might give a different result to right-to-left, at least in some minor degree.

by "no bounds have been reserved for it" i presume you're referring to the fact that you're performing a "forward iteration" instead of posing the equivalent sampling question; one can re-arrange z <- z^2 + z_0 to obtain z <- +/- sqrt(z - z_0) which doesn't require any of this incoherent "pushing". from de moivre's theorem we see that this corresponds to taking the square root of the magnitude and halving the angle (i presume this is the rather lewd-sounding "swing and fling" you mentioned) relative to the mandelbrot constant z_0 at every iteration.

formulated in this way it's trivial to apply high quality reconstruction for any desired visualisation. although i implemented a highly efficient rank-1 integration lattice for the sampling of this function i left the reconstruction filter as an extremely poor box filter; it's not much more work to implement a windowed sinc filter which will almost certainly eliminate all aliasing.

i hope i have shown, in spite of my limited experience, that aliasing is indeed the source of "uncleanness" in your images and how easy it is to fix.
Logged

Charleswehner
Guest
« Reply #5 on: November 18, 2006, 02:38:09 PM »

At http://wehner.org you will see that I actually Use Moir as a feature (it works on IE) and not as a disadvantage.

Here I show the output of another anti-alias product I have made:


I was not calling for help.

I was just showing Moir effects.

Charles
Logged
Pages: [1]   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
Do fractal-artists actually know which modification effects what in MB3D ?How..? Help & Support psYnfinite 1 309 Last post June 03, 2013, 07:27:46 PM
by vinz
Looking at fractals has stress-reducing effects Fractal News across the World Chillheimer 2 550 Last post December 02, 2014, 07:36:28 PM
by youhn
Advanced DoF/bokeh-like-effects in JWildfire 2.1 JWildfire thargor6 5 1476 Last post November 22, 2015, 02:51:13 PM
by Patryk Kizny
After Effects Plugin for Fractal Programming tit_toinou 3 3894 Last post April 19, 2015, 06:05:23 PM
by tit_toinou
Post Effects : Vignette Feature Requests Kyzia 0 283 Last post August 25, 2017, 12:02:15 PM
by Kyzia

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM
Page created in 0.123 seconds with 27 queries. (Pretty URLs adds 0.01s, 2q)