| Description: |
A command-line program that calculates a quaternion Julia set and then writes the corresponding isosurface to a binary Stereo Lithography file.
Supports custom-defined iterative equations, such as:
Z = Z^4 + C
Z = sin(Z) + C * sin(Z)
Z = inverse(sinh(Z)) + C * inverse(sinh(Z))
etc.
See quaternion_math.h for a full list of supported quaternion functions.
Compiles using g++ and MSVC++.
Notes about GPU acceleration:
1) You must now manually enable GPU acceleration in the source code before compiling -- see #define USE_GPU in quaternion_julia_set.h line 12.
2) If you enable GPU acceleration, then don't forget to link in the OpenGL/GLUT/GLU/GLEW libraries (ie. g++ *.cpp -lGL -lglut -lGLU -GLEW).
3) Right now there is a problem with the GPU acceleration when it's used on an AMD 6310 GPU -- the lowest order bits of some of the calculation solutions produced by the GPU are being corrupted, which leads to meshes with many cracks. While the meshes look OK upon visual inspection, they would not pass the 'water-tightness' tests required by most 3D printers / fabricators. I am going to rewrite the code so that it uses OpenGL 3.0, to see if this fixes the problem. This problem doesn't generally occur when GPU acceleration is disabled (see Note 1).
Changes to v3.0.1:
- Added the capability to hollow out the mesh (including air holes) -- useful for Shapeways.
- Added the capability to add support pillars and slabs to the mesh -- useful for Shapeways.
- Changed vertex interpolation method from linear interpolation to adaptive interpolation -- makes for more accurate isosurfaces. |