[chaoscope] Command line version
- From: Nicolas Desprez <freelists@xxxxxxxxxxxxx>
- To: chaoscope@xxxxxxxxxxxxx
- Date: Wed, 09 Jun 2010 08:11:48 +0100
Hello Paul, hi all,
Render-to-disk per se isn't practical with strange attractors because of
their inherent chaotic nature. It'd be horribly slow, even on a solid
state drive, and would probably damage any hard drive beyond repair!
However, considering how cheap RAM is nowadays and the ubiquity of 64
bits operating systems, very large renders are conceivable providing
that we break the 4 billion iterations barrier.
The new version of Chaoscope (what should we call it?) is very light in
term of memory allocation: The bitmap is created and saved to disk row
by row instead of being fully stored in memory and OpenGL isn't used at
all. To give you an idea of how big your renders can be, according to
the RAM you have available, here's the number of bytes allocated per
pixel for each mode:
Gas: 4
Liquid: 8
Light: 12
Plasma: 16
Solid:
With transparency or edge anti-aliasing: 8 + 8Mb per light (light
buffers are 1024x1024 by default)
No transparency: 4.125 + 4.1Mb per light (one bit mask)
Say you have 2Gb of available RAM once Windows has settled itself (2Gb
is the limit for 32 bits applications anyway), you can render a project
in Light mode with a width and a height of:
__________________
/ 2,147,483,648
\/ ------------- = 13,377 pixels
12
Bearing in mind that such a large render would certainly require far
more than 4 billion iterations to get a satisfactory result.
The good news is the multisampling method I've come up with only
requires an extra 3 bytes per pixel regardless of the number of samples.
A 13,377 x 13,377 image rendered at 66 samples per pixel would still
allocate around 500Mb, but that's far better than 2Gb x 66, or 141Gb!
Going back to the command line version: GCC for Windows does not compile
64 bits executable (but does for Linux). The only compilers I am aware
of that do are Visual Studio Professional (or higher) and Intel C++
compiler, neither of which are free. So I may have to resort to
advertisement on the site to pay for these toys! :-)
In the meantime a win32 version will be released, since Visual Studio
Express is free. I also intend to release updates more often. The new
code should be far easier to maintain.
Quick answer round:
- Twitter updates: Great idea, but "chaoscope" is already taken:
http://twitter.com/chaoscope . I might talk to Twitter and claim ownership!
- VJ version: Yes, this has been mentioned before. This'll only work
with the OpenGL animation and is a very long term feature.
- PNG transparency: Yes, but later. :-)
- CUDA: No (I have an ATI card now) but OpenCL definitely!
- John: Matrix calculation has always been done on 64 bits floating
point, luckily!
Regards,
Nicolas Desprez
======================================================
The Chaoscope mailing-list
Archives : http://www.freelists.org/archives/chaoscope
Admin contact : mailinglist@xxxxxxxxxxxxx
Web site : http://www.chaoscope.org
======================================================
Other related posts: