DFRAC v1.4  - 2/12/97 - written by John W. Ratcliff

New in version 1.4:

(1) Faster DirectDraw interface.

(2) PCX and GIF file saving.

(3) First draft of the Fractal movie system.  This generates
    a movie linear interpolated between the waypoints you have set.
    The movie is written to disk as FRAC.FMV.  It generates 256 frames.
    The movie file is uncompressed.  The next version will store a
    compressed movie and allow you to save multiple files, change
    the frame count and use spline interpolation.  It is best to
    generate movies in preview mode because full screen movies will
    quickly chew up all of the hard disk space on your machine.


Windows95 DirectDraw Mandelbrot exploration program.
=====================================================================
Now, with the wide availabilty of Pentium machines, tremendous
horsepower can be brought to bear on the popular activity of exploring
the Mandelbrot set.

The focus of this program is for *real-time* exploration of the
Mandelbrot set in a highly interactive fashion.

DFRAC requires a Windows95 machine with DirectDraw installed, a floating
point processor, and a monitor/display driver capable of 800x600
graphics mode.

When you launch DFRAC it will place you in full-screen 800x600 graphics
mode using Directdraw.	You will see the full Mandelbrot set rendered in
preview mode in the center of the screeen.

Hit the left-mouse button to zoom in on a point inside the Mandelbrot
set.  Now, this is important, you do *not* need to wait for the image to
finish renderng before you hit the mouse again.  Just keep clicking away
until you get to where you want to go.	Don't worry about overshooting
it because you can just hit the right mouse button to zoom back out
again.

This preview window allows you to rapidly move through fractal space so
that you can find interesting features.  You can increase or decrease
the size of the preview window by hitting the left and right bracket
keys ([]).

When you are on a part of the fractal you find interesting and want to
see a full screen picture of, hit the SPACEBAR to toggle between preview
mode and detail mode.  All of the features in preview mode still
function in detail mode.  It just takes longer to draw the image.  You
can still interupt the rendering at any time you want to move to a new
location.

DFRAC takes advantage of a few techniques to dramatically improve the
speed of fractal generation.

(1) DFRAC uses an assembly language fractal computation routine which
    takes advantage of inline FPU instructions balanced on the internal
    stack.  This routine is more than twice as fast as the same
    identical code generated by a C compiler.

(2) DFRAC uses a divide and conquer strategy to render the fractal.  It
    uses recursive sub-division of fractal space.  Every time it
    subdivides a region it decides how difficult that region is to
    compute.  All regions are placed on a series of linked lists,
    ordered by computational difficulty.  Because of this, DFRAC can
    draw the easiest parts of the fractal first, saving the very high
    iteration counts for last.

    This doesn't, by itself, make DFRAC any faster than a normal
    Mandelbrot generator but it serves two important functions.  First
    it *very quickly* sketches an overall outline of the fractal in the
    preview window so that you can move your selection around when as
    little as a few percent of the image has actually been drawn.  It is
    common for this technique to draw 80% of the pixels in the fractal
    image in 10% to 20% of the total time required to complete it.  This
    algorithm is extremely useful for real-time previewing of the
    Mandelbrot fractal space.

    The second practical use for this technique is that it makes the fractal
    rendering process entertaining!  Let's face it, watching a fractal render
    has a lot in common with watching moss grow.  However, this technique
    works like a sketch artist darting from here to there fleshing out the
    total picture.  For a real-time interactive fractal explorer this is
    a huge plus.

(3) DFRAC uses an optimization technique where it can determine whenever
    any enclosed rectangle is a solid color.  Somewhere some studly
    mathematician proved that this was true.  Fortunatly I don't have to
    worry about the proof, I just write the code.  This is a massive
    time savings in fractal regions which push the limits of the
    iteration count.  If you have an image that has large areas of black
    (max-iteration count), this optimization will speed up the fractal
    render anywhere from 2 to 16 times, depending on the surface area of
    the enclosed regions.

DFRAC is freeware.  It was written by computer game author John W. Ratcliff
(me) so that I could take a break from getting my product final.  I am just
now completing a way cool multiplayer robot combat game for Electronic Arts
called S.C.A.R.A.B.  However, that's not really the point.

I will gladly make the source code to DFRAC available to any interested
programmers.

You can download DFRAC from my web page at:

<http://www.inlink.com/~jratclif/john.htm> down towards the bottom
in the Art section.  Just click on the Mandelbrot image.  It is only
a 100k download.

I wrote this program in a few hours, so don't expect it to be feature
rich.  DFRAC is an extremely cool interactive way to explore the Mandelbrot
set.  Something I have dreamed of being able to do ever since I tied up
my Apple II computer for 36 hours computing a black and white fractal with
an awe-inspiring iteration count of 64.

You can select iteration counts as high as 32767 for DFRAC. This will
let you explore pretty deeply into fractal space.  It uses double
floats, so after you get a certain distance in you are going to run out
of precision, but that's not the point. The point is to have a rapid way
to explore the familiar Mandelbrot we all know and love.

Here's how you operate DFRAC.  REMEMBER you don't have to wait until the
image completes drawing to move around the fractal or make new selections.
That's the whole idea, quickly shuffle through rough sketches and settle
on the stuff you like.
===========================================================================
Left mouse --  Zoom into the point you clicked on.
Right mouse -- Zoom out.

Keys:

+      - Zoom in.
-      - Zoom out.

[      - Shrink preview window.
]      - Expand preview window.

F      - Reset to full Mandelbrot set.

S      - Save current (fully rendered) fractal as a GIF file to disk.
	 Save images are placed in the local directory in sequential
	 order as FRACnn.GIF.

SPACEBAR - Toggle preview mode and detail mode.

Up/Down/Left/Right - Scroll fractal inside Window.

1-9    - Mark an interesting spot.  For example, hit '1' and you have
	 recorded that spot as being interesting.  Hit '1' again, and it
	 will take you back there.
	 These will be written to the disk file DFRAC.SAV

Shift-1-9 kill a previously saved position.

ESC    - Exit the program.

The whole point of this program is for people who have macho-studly Pentium
machines (like my 200mhz Pentium Pro) and have been (again like me) fascinated
by fractals for years.	Now you can shuffle through the entire Mandelbrot
set (within double float precision and 32678 iteration counts) to your
hearts content.

Have fun!!!

John
