|
Features
Ayam is a full featured NURBS/CSG modelling environment for
the RenderMan interface.
NURBS-Modelling
- NURBS (Non Uniform Rational B-Splines): allow to model smoothly
shaped objects with high accuracy.
- NURBS modelling is done by combining common NURBS curves,
interpolating curves, or
approximating curves
to NURBS patches.
- This combination is done using tool objects, e.g. Revolve, Extrude,
Sweep, Birail1, Birail2, Skin, and Gordon. In Ayam a Revolve tool
object has a curve object as child and revolves it to a surface of
revolution; the curve object stays editable all the time, caps may
be added automatically by simply clicking on check-boxes.
- Revolve object
with arbitrary angle of revolution; may
create full caps.
- Extrude object
with holes, bevels and caps.
- Sweep object
implements the standard sweep operation (sweeping
a cross section curve along a trajectory curve); the cross sections may
be rotated automatically, so that they are always perpendicular to
the trajectory;
in interpolating mode, the sweep interpolates all the
cross-section-curves; a scaling curve
may be present that modifies the sweep further.
- Swing object creates rotational sweeps
(swung surfaces).
- Birail1 object sweeps a
cross section along two rail curves.
- Birail2 object sweeps a
cross section along two rail curves, morphing it into a second
cross section at the end of the rail curves.
- Skin object
is able to skin curves of arbitrary topology
(skin an interpolating curve with 4 points with a linear NURBS curve
with 2 points and a cubic NURBS curve with 10 points); in interpolating
mode, the skin even interpolates all the curves.
- Gordon object
creates Gordon surfaces that interpolate a
network of curves.
- Cap object
is able to create caps from even non-planar curves.
- Bevel object
is able to create bevels from curves.
- ConcatNC
object concatenates a number of NURBS curves, creating
fillets where necessary.
- High quality Text object creates
objects based on extruded Bezier curves extracted from TTF files.
- Further helper objects exist for circles/arcs, offset curves, offset
surfaces, and the extraction of curves and surfaces from NURBS surfaces.
- Read this page for a complete example of
parametric NURBS modelling in Ayam.
Subdivision NURBS
- First modelling environment to support Subdivision NURBS.
- Conversion operations from NURBS surfaces and polygonal meshes.
- Modelling operations: Face Extrude, Face Merge, Patch Merge,
Knot Manipulation.
- PLY import/export.
CSG-Modelling
- CSG (Constructive Solid Geometry): compose complex objects from
primitives that are combined with
boolean operations.
- The following
RenderMan primitives
(quadrics) are implemented:
Sphere, Disk, Cylinder, Cone, Hyperboloid, Paraboloid, and Torus;
additionally, there is a Box primitive.
- All quadrics may be automatically closed (missing cap
surfaces generated), even if any of their parameters are not
on default values.
- Primitives may be combined using Level objects (that do
CSG operations) in a hierarchy.
- Ayam itself does not calculate and preview the results of CSG operations,
this is done by a RenderMan compliant renderer or by the aycsg CSG
preview plugin, which is based on
OpenCSG. See an
example rendering of the aycsg plugin.
- CSG operations are not limited to the aforementioned primitives.
As long as it is guaranteed that an object is fully closed,
it may be used in CSG operations (Any fully closed
NURBS object is available as primitive to CSG!).
Additional Geometric Types
To complement the feature set and allow easier integration of objects
from systems with other modelling paradigms, Ayam also supports:
- Bilinear and Bicubic Patch Meshes
- Polygonal Meshes
- Subdivision Surfaces
- Metaballs
Those objects will be imported and exported but no extensive sets of
modelling tools exist to modify them.
Import/Export
- RIB-Export:
- Highly acclaimed RIB-Export.
- Invoke renderers directly from a view window (including
a progress meter and cancel button).
- AreaLights
- ShadowMaps
- Custom RiOptions and RiAttributes using tags.
- Texture coordinates using tags.
- Arbitrary primitive variables using tags.
- Direct support for the following RenderMan compliant renderers:
BMRT, 3Delight, Air, Aqsis, Pixie, RenderDotC, Angel, and PRMan.
In addition, there is direct support for Gelato.
- Permanent preview feature.
- RIB-Import:
- RIB-Import, supporting Lights, Quadrics, CSG, NURBS, PolyMeshes,
Subdivision Surfaces, Transformations, Shaders, Arbitrary Options,
Attributes, and Primitive Variables.
- Wavefront OBJ (V3.0) Import/Export, supporting (trimmed) NURBS and
polygonal meshes.
- Rhino 3DM (V3.0) Import/Export, supporting (trimmed) NURBS and polygonal
meshes.
- Apple 3DMF (V1.0) Import/Export, supporting (trimmed) NURBS and polygonal
meshes.
- AutoCAD DXF Import/Export.
- Web3D X3D Import/Export, supporting (trimmed) NURBS and polygonal
meshes.
Misc
- Zero installation software, just unpack and start it.
- Multi platform support: Unix/X11, Win32, MacOSX/Aqua.
- Easy to understand user interface.
- Full (indexed) documentation available
in HTML and PDF format.
- TreeView with Drag-and-Drop support.
- Custom objects that may freely implement their representations
(using OpenGL and RIB) and even small GUIs to edit their type specific
parameters may be written by the user and dynamically loaded at runtime.
- Scripting interface: Tcl, JavaScript, Lua.
- Script Objects.
- Instancing, arbitrary number of modeling views,
object clipboard, independent property clipboard, console,
n-level undo.
There is even more,
find it out!
See some more (and older) screenshots:
After Startup, New Preferences
(GIF, 114K); Modeling the Cactus
(GIF, 158K); Rendering in Progress
(GIF, 190K); Modeling a Fish
(GIF, 190K).
Randolf Schultz, 14. Mar 2011
randolf.schultz@gmail.com
|