Vol.32 No.2 May 1998
3D Freebies: A Guide to High Quality 3D Software Available via the Internet
A perennial challenge to teaching 3D graphics is obtaining appropriate software. Instructors are aware of many excellent packages that are commercially available, but unfortunately their cost often puts them out of reach. A recurring theme heard over lunch and in the halls at educational conferences is that budget considerations preclude revisiting or reconsidering the 3D topics in a graphics curriculum.
There's good news for educators in this situation, however, as a rich variety of high quality 3D software is available free of charge. All of the rendering and modeling packages mentioned in this article have good documentation about installation, so the amount of time needed to ready a package for student use is quite reasonable. Even better news: many of these packages have extensive documentation, tutorials and examples that help those who want to learn. Lastly, all of the packages run on platforms that are commonly available in educational settings.
Rendering packages create high-quality images. Those discussed in this section read alphanumeric input from a file that describes a world and produce a file containing the rendered image. They run on a wide variety of platforms, and all of them are available for download from the Internet.
|Figure 1: Rendered with Rayshade. Modeled with Sced. Objects created with custom software.||
Craig Kolb's Rayshade is written in C, lex and yacc and is an extensible system for creating raytraced images. It includes a rich set of primitives, including blobs and height fields in addition to the more usual sphere, polygon, torus, box, cone and cylinder. It provides for constructive solid geometry as well as point, directional, spot and area light sources. There is a rich set of texturing tools, including procedural texturing, 2D image mapping and bump mapping. Because of its extensibility, many students and researchers have made additions and modifications to it. A fun feature is a command that creates stereo images from your input file. Figure 1 was created with Rayshade.
Rayshade has been tested on many Unix-based systems including Linux, and has also been ported to PCs and Macintoshes. It normally uses the RLE image format from the Utah Raster Toolkit. Source code, instructions on how to install Rayshade, obtaining the Utah Raster Toolkit, user manuals, example input files and an image gallery can be found on the Rayshade home page.
|Figure 2: Rendered with POVRay. Modeled in Sced. Imported objects.||
The Persistence of Vision Raytracer, commonly known as POVRay, was developed on a volunteer basis by a group of people called the POV-Team. One of its strengths is its ubiquitous availability across platforms. Precompiled binaries exist for DOS, Windows 95/NT/3.1, Macintosh 680x0 machines, Macintosh Power PCs, Amigas, OS/2 and Linux. If you don't find your platform on this list, you can download the source code and compile your own version. The port to a Unix platform is painless.
POVRay supplies the usual set of basic geometric primitives as well as Bezier patches, quartics, height fields and blobs. Constructive Solid Geometry (CSG) support allows a user to combine shapes via the union, difference, intersection and subtraction operators. For lighting, users can choose among point, spot and area lights, and can use radiosity to simulate diffuse reflection.
POVRay has an extensive vocabulary of surface and texturing effects, including the bump mapping possibilities of dents, wrinkles, ripples and waves. The texture library is richly varied, with hundreds of stone, wood and metal textures. Some of the more exotic textures include Bozo, Leopard, Mandel(brot) and semi-transparent textures. A user can apply the colors of a 2D texture map to an object, or can use the texture map as a means of controlling the applications of other texture maps.
The scene description language, POV, is one of the easiest to use, and many people have created exciting images with just a text editor. POVRay reads a file containing a scene description and outputs an image file, which can take the format of a Targa, PPM, PICT or BMP file.
Judging by the number of hits in the last year on the North American mirror of the POVRay home page (700,000), the package is quite popular. In addition to tutorials, extensive documentation and example scene files, the POVRay home page is the home of the Internet Ray Tracing Competition. Raytracing enthusiasts can submit images, view the work of others and vote.
|Figure 3: Rendered with Radiance.||
Greg Ward developed Radiance for the analysis and visualization of lighting in design. The sophisticated lighting calculations remove limitations on the types of lighting or materials that can be simulated. Users specify the scene shapes and materials, luminaires, time, date and sky conditions, and Radiance creates images that accurately simulate the lighting for those conditions. Because of this, Radiance is used by architects and engineers to predict illumination, visual quality and appearance of design spaces, and by researchers to evaluate new lighting and daylighting technologies. The realism of the images is stunning, rivaling that of a photograph. Images created with Radiance have appeared in many journals, including the cover of the SIGGRAPH 92 conference proceedings.
Radiance is actually a suite of programs that work in concert. In addition to the simple primitive shapes, users have access to generator programs that create extrusions, parametrically defined surfaces and objects of rotation. They can take advantage of both procedural and data-driven texture and bump mapping. The unique aspect of Radiance is the wide range of lighting options. Users specify materials, which define the way light interacts with a surface. Some materials are self-luminous and simulate a variety of lighting distributions. Others are reflective and behave like plastic, metal and glass with various surface properties. The material BRTDfunc allows for maximum flexibility over surface reflectance and transmittance, providing for spectrally dependent specular rays and reflectance and transmittance distribution functions.
Other programs in the suite convert various 3D input description formats into Radiance format and convert Radiance picture files into commonly used image formats such as GIF, PICT, Targa and TIFF.
Radiance is Unix-based and the source code and documentation are available for download at the Radiance web site. While you're visiting there, it's well worth your time to take a look at the Image Gallery.
|Figure 4: Rendered with BMRT. Modeled with Breeze Designer. Imported Objects..||
Blue Moon Rendering Tools (BMRT) is a RenderMan-compliant raytracing and radiosity rendering package written by Larry Gritz. RenderMan is a registered trademark of Pixar and was used to render Disney's Toy Story and special effects created by Industrial Light+Magic (ILM) and Digital Warner. The suite of programs comprising BMRT is a full implementation of the RenderMan standard and supports area light sources, texture and environment mapping, programmable shading in the RenderMan Shading Language, motion blur, automatic ray cast shadows, depth of field, simple primitives, parametrically defined surfaces and CSG. The toolkit contains not only rendrib, which creates high-quality TIFF images from RIB (RenderMan Input Bytestream) input, but also a set of fast previewers to allow "pencil tests" of scenes and animations.
A powerful aspect of Pixar's RenderMan is the RenderMan Shading Language, which allows users to write shaders that create custom texturing and surface effects. BMRT supports this important feature with slc, the Shading Language Compiler.
BMRT runs on SGIs, Windows 95/NT, Linux and Suns among others and is available for download from the Blue Moon Rendering Tools Home Page. Also available on the page are documentation files, an Image Gallery and a list of links to RenderMan-related items. The software is shareware and is free for academic and other noncommercial use.
If you decide to work with BMRT, it's worthwhile investing a little money in two books -- The Renderman Companion by Steve Upstill, and Texturing and Modeling: A Procedural Approach by David Ebert et al -- both published by Addison-Wesley. (No, I'm not being remunerated for this endorsement.) The first is an introduction to the RenderMan interface, including the Shading Language, and the second provides a working knowledge of procedural approaches in texturing and shading.
Although you certainly can (and people do) use a text editor to create input files for rendering packages, you'll find it much faster to use a modeler. Interactive modeling programs allow you to position, size and orient objects visually rather than having to guess at numbers that you hope will represent your intent. This section covers four modelers, all of which are available free over the Internet.
Developed by researchers at Carnegie Mellon and the University of Virginia, Alice is a 3D interactive authoring environment. Its goal is to allow novice programmers to develop and explore interesting 3D environments. In Alice, objects can have behaviors that change over time. They can move, spin, change color, make sounds and react to the mouse. Users can experiment with various behaviors before choosing them to become part of a script. The scripting language not only provides a way to create an animated environment but also constitutes an excellent introduction to programming.
The Alice team has put a great deal of effort into making Alice extremely easy to use. Instead of referring to the X, Y or Z axes, the Move and Turn commands are expressed in the familiar terms of Forward, Back, Left, Right, Up and Down. Its tutorials and manuals are appealing and easy to understand. Although the primary testers were non-engineering undergraduates, students as young as 10 years old have scripted animations and found it fun.
The focus of Alice is to create worlds, not to create 3D objects. It can read .DXF and its own .A3D file format. While it's possible to use third-party software to create objects, Alice comes with a rich assortment of objects and thousands more are available over the Internet. Alice runs on Windows 95/NT and is available free of charge at the Alice web page.
Created by Steve Chenney, Sced is a modeling program that makes use of geometric constraints to edit objects in a virtual world. Sced uses constraints to facilitate the accurate placement of objects and provides a maintenance system for keeping constraints satisfied as the scene is modified. For example, once you can constrain a teapot to the center of a tabletop, you can move the table and the teapot will move along with it. Constraints make it easy to create and position jointed figures. Moving a hand will cause a constrained arm and shoulder to move appropriately.
Sced provides a variety of simple primitive objects and can import Digital Equipment Corporation's OFF format. There is full support for Constructive Solid Geometry (CSG) operations as well as provisions for lighting and camera parameters. Sced saves modeling information in its native .scn format for future editing and can export to a wide variety of rendering formats, including RIB, POV, Rayshade, Radiance and VRML among others.
Sced runs on almost any Unix platform with X Window System and is available at the Sced home page.
There you'll find tutorials, example scenes and binaries for several popular platforms. Unique to the modelers discussed in this column, the source code for Sced is available for download. One offspring of Sced is Sceda, which provides support for splined keyframe animation. Created by Denis McLaughlin, Sceda allows you to check your animations as wireframes before exporting them. Look for Sceda at the Sceda home page.
Neville Richards created Breeze Designer primarily to work with POVRay, but it also exports to other popular rendering formats including RIB, VRML and AutoCAD's DXF. In addition to the simple modeling primitives and CSG support, Breeze Designer provides text objects using True Type fonts, blobs (metaballs) and heightfields. A user can also create surfaces using bicubic Bezier patches or sweeps (surface of revolution). In addition, Breeze Designer imports objects in Autodesk's popular 3DS format as well as DXF. Objects can be grouped and manipulated as a single entity.
Users can preview textures from the built-in library based on POVRay's textures or can choose to create their own. An option exists within the program that will automatically hand off rendering to POVRay without having to leave Breeze Designer.
A notable feature of Breeze Designer is its support for third party plug-ins. One plug-in, based on Keith Rule's Crossroads library, imports a huge variety of file formats, including TrueSpace (COB), World Toolkit (WTK), Wavefront (OBJ) and VRML. Others create a variety of complex objects (trees) and animated effects. The plug-in feature is well documented, allowing students a chance to write their own modules.
Breeze Designer runs on Windows 95/NT and is available free of charge at thier Web site. The full installation has been broken into a number of smaller zip files and is mirrored in several locations around the world.
Rhino is a versatile modeling tool for creating shapes in addition to creating worlds. Quoting creators Robert McNeel & Associates, "Rhino is a conceptual design and modeling tool for industrial, product and scene designers. Whether you build heart values or ship hulls, packaging or gears, Rhino is an easy-to-learn-and-use flexible and accurate modeler."
One of the strengths of Rhino is that it allows a user to create and edit combinations of freeform curves, surfaces and solids. Rhino utilizes trimmed NURBS surfaces to represent curved shapes, including shapes with holes in them. A user can create a solid by joining surfaces together at their edges. This flexibility facilitates great expressiveness in creating shapes. On their Web site are tutorials for creating human figures, faces and hands.
With its system of constraint-based modeling, Rhino provides the accuracy of traditional CAD packages. A user has access to a wide variety of snap options and can choose the orientation and precision of the Construction Plane, a 2D grid where a user normally enters data points.
Rhino supports a blizzard of formats, including 3DS, DXF, RIB, POV, OBJ and VRML. Unique among the modelers discussed here is its 3D digitizing support. Users can connect and use either a MicroScribe digitizing arm or the Faro SpaceArm.
Department of Computer Science
243 S.Wabash Ave.
Chicago, IL 60604
The copyright of articles and images printed remains with the author unless otherwise indicated.
Rhino runs on Windows 95/NT. It's still being developed, and beta versions are free. The current beta version expires June 15, and the expiration date will be extended with each beta release until Rhino ships. The release price of Rhino is quite reasonable for students, instructors and educational site licenses. For more information, visit their Web site.
Try One! It's Fun!
With only a modest investment of time, these rendering and modeling packages make it possible to create great-looking pictures and learn a lot about 3D graphics at the same time. Knowing that they have the potential to create exciting images is an effective motivator for student participation in a course. And when your students have completed their work, send it in to me for the Computer Graphics Student Art Gallery.