Sample images generated using ART |
Art originally stood for Algebraic Ray Tracer, the biggest motivation
for its original development being
for the rendering of algebraic surfaces and their cross-sections.
Cross-sectioning was done using Constructive Solid Geometry (CSG).
In any case, one thing lead to another, and in the quest for greater "realism" in generating visualisations, a number of other features were added to the rendering capabilites, including bicubic patches, blobbies, the ability to read some other geometry formats, an assortment of the standard texturing facilities, and a twenty-five bit rendering mode for when twenty-four did not quite seem enough! The images on this page represent a sample of the results. Clicking on an image will bring up a higher resolution version, clicking on the name will display the scene file. All the scene files are included in the distribution. |
|
Texturing of objects is acheived by either modulating the surface colour or by modulating the surface normal. Changing of the surface colour is done via reference to a tile, or by using a 3D noise function which allows the production of textures such as wood, or marble. The surface normal can be modified in a similar fashion, although for ripple/wave effects the noise function is replaced by wave sources from which eminate sine waves, the intersection of these waves is then used to modify the surface normal.
|
|
|
Mathematical surfaces are described using the same format that
such formula are described in latex. The interpreted formula
abd the ray equation are then combined to create a polynomial
in t, the distance along the ray to the surface. The
real roots of the polynomial are then found using a Sturm
Sequence and an isolated root is polished using modified regula-falsi.
One advantage of this method is that, as the Sturm Sequence allows isolating all the real roots of the polynomial, enough information can be gathered about how the ray intersects with a surface to allow most surfaces to be also intersected with other objects, enabling the production of images of areas of interest and cross sections. The two surfaces shown here are a Hunt Surface (a sixth order surface) and a Kummer Surface (a fourth order). The final picture shows a Hunt Surface intersected with a cylinder. |
|
|||||||
|
|
|
As its name implies, Constructive Solid Geometry (CSG), is a construction method for building complex surfaces out of simpler ones. The first image of a bracket (parta) demonstrates the result of adding two primitives, and subtracting some others. In partb, we can see the primitives that have been subracted to produce the bracket. The final image of a crank is an example of a more complex piece of geometry, again produced from primitives.
|
|
|