This is probably the most significant change in this release.
It introduces a large number of new capabilities in BRL-CAD, including:
Machine-Independent Data
The geometry in the new file format is stored in an
architecture-independent fashion. This removes the need to convert
the geometry file to ASCII representation and back to binary when
moving between machines of different architectures (e.g., between
Big-Endian and Little-Endian machines).
Unlimited-Length Object Names
Names of objects in the geometry database were previously limited
to 16 characters. This restriction was burdensome when constructing
complex systems. The new database format (and MGED/rt) allows for
unlimited-length names for objects. The only limits remaining are
usability/human factors (i.e., the user may wish to think twice before using
1024-character names for all objects).
Object Attributes
All geometry file objects can now carry arbitrary text data.
This information is stored as a series of name-value pairs. For example, it is
possible to store an attribute called "modeler", which could indicate
the name and organization of the person who created that portion of
the geometry. Another attribute might be "density", whose value would
be the density of the material from which the object was constructed.
Analysis codes can store application-specific data in these attributes
and retrieve them at run time. MGED has a GUI control panel for
creating and editing object attributes.
Opaque Binary Objects
It is now possible to store arbitrary data in a BRL-CAD geometry
database object. For example, the entire description from an
external CAD system could be stored for reference. Several features
of BRL-CAD geometry that require ancillary data can now use these
database objects as a data source in addition to being able to use
external disk files.
Reduced Disk Space Requirements
The new file format is more aggressive about space utilization.
Many primitives now occupy significantly less disk space.
New dbupgrade Utility for Easy Migration
The dbupgrade command has been created to bring old
databases up to the most current version of the file format.
Hidden Objects
It is now possible to mark objects in the database as "hidden".
These will not be listed in ordinary displays of database content.
This allows users to keep objects such as opaque binary objects from
cluttering listings.
Deprecation of Obsolete hf and poly primitives
The dsp(Displacement Map) primitive is functionally equivalent to the hf
and offers substantial performance advantages. The bot (bag of triangles) primitive
is likewise a substantial improvement over the
existing poly primitive. The dbupgrade utility converts existing
hf and poly primitives into dsp and bot primitives, respectively.
Both hf and poly primitives are deprecated.
Introduction of 2D sketch primitive
The sketch primitive consists of straight lines, circular arcs,
and Bezier curves. There is a drawing utility in MGED for creating
them.
Introduction of extrude primitive
The extrude primitive supports linear extrusion of
closed-boundary sketch primitive drawings to create 3D objects.
New ASCII File Format for New Binary File Format
This new ASCII format is based upon the Tcl scripting language.
It allows more convenient processing and manipulation of the ASCII
format.
MGED GEOMETRY EDITOR IMPROVEMENTS
In addition to supporting both the old and new geometry file formats, there
have been numerous improvements. These include:
New User's Manual
This is a completely updated tutorial introduction to MGED and modeling
with BRL-CAD. Delivered in PDF format and suitable for both online
browsing and printing. It includes a complete command reference. Look
for it in the MGED menus at: "Help->Manual->PDF MGED Tutorial" or
"/usr/brlcad/html/manuals/mged/VolumeII-Introduction_to_MGED.pdf"
Dual-Format Capability
MGED and other BRL-CAD utilities retain the ability to work
with geometry files constructed
in previous versions of BRL-CAD as well as the new one.
Users can upgrade geometry to the new format
when they choose. New features implemented in the geometry
file may not be available under the old format.
Accelerators for Complex Shape Construction
These allows user to automatically generate more complex
primitives from existing ones. For example, rcc-cap
creates an ellipsoidal top for a right circular cylinder.
The list of accelerators includes: rcc-blend, rcc-cap, rcc-tgc,
rpp-arch, rpp-cap, rpp-arch, tor-rcc, and sph-part.
Improved Menu and Interface Layout
Menus have been arranged in a more convenient layout. Default color selections have been improved.
Abort on Raytrace Control Panel
Users now have the option to abort a running raytrace process
right from the control panel.
Extended Primitive Type-In Support
Two primitive types can now be created from the command prompt.
These include:
kinematics control (grip)
arbitrary regular polyhedron (arbn)
Extended Primitive Auto Generation
Several primitive types can now be auto generated using the
make command from within MGED. These include:
rectangular parallelepipeds (rpp)
arbitrary faceted (ars)
and arbitrary regular polyhedron (arbn)
Primitives created with this command take their initial parameters
from the view center and size.
New/Improved Commands
The following new commands have been implemented:
E: Extended options for creating evaluated wireframes.
adjust: Alter attributes of an object.
attr: Assign or retrieve a named text attribute from an object.
autoview: Set view size and center so that all displayed solids are in view.
bot_decimate: Perform facet reduction on bot by edge collapse.
bot_face_sort: Optimize a bot primitive for faster raytracing.
copyeval: Copy and evaluated/transformed primitive.
hide: Mark database object as hidden.
unhide: Mark database object as visible.
lt: Produce a listing like ls, but display output in a Tcl-friendly format.
nmg_collapse: Perform facet reduction on NMG by edge collapse.
nmg_simplify: Attempt to convert NMG to CSG primitive (ARB, TGC).
pathlist: Lists all existing paths that start from the specified combinations and end at a primitive.
rtedge: Command line interface to the rtedge program for generating line drawings.
shells: Separates an NMG primitive into many objects, 1 object per NMG shell.
showmats: List transformation matrices on a path.
summary: Provide database statistics.
xpush: An extended push that attempts to avoid degenerate conditions in matrix propagation.
Build Pattern Tool
This tool facilitates the construction of replicated objects
in various rectangular grid and circular patterns. For example:
lines of rivet heads, bolt holes, railroad ties, tire tread patterns.
OTHER ENHANCEMENTS
Opaque Binary Object Support for dsp Primitive and Texture Shaders
The dsp primitive can accept an opaque binary object as the source for its elevation data. Likewise, texture shaders
can now accept opaque binary objects as the source for their image data.
Improved bot Primitive Raytracing
The bot primitive supports a multiple bounding-box technique to achieve a substantial speedup during raytracing.
Improved dsp Primitive Raytracing
The bot primitive implements an octtree bounding-box technique to achieve a substantial speedup during raytracing.
ASCII Representation for ebm and vol Primitives
These two primitives did not have an ASCII representation in previous releases. This omission has been corrected.
Support for MacOS X
BRL-CAD again supports the MacOS platform. It requires that the
XDarwin or other X11 server be installed for correct operation.
Improved Pro/Engineer Interface
The converter for Pro/Engineer has been improved and brought up to date with Pro/Engineer 2001. Improvements include:
Oriented and non-oriented triangle support.
Unlimited-name-length support.
FASTGEN4 Name Extensions
The FASTGEN4 converter fast4-g now supports names longer than 16 characters.
Improved Hidden-Line Drawing Support
A new program called rtedge is included for rendering hidden-line drawings through a raytracing technique.
Software Library for Multiply Referenced Objects
A C implementation of the Tcl/Tk dual-ported object type is included.
New Shaders
Two new shaders flat and invisible are included.
The flat shader support per-channel alpha blending.
NEW UTILITIES
The following are new to release 6.0:
pixcmp
This program Compares two pix format images.
Although not technically new
(it was formerly included in source distributions), pixcmp is now
installed.
rtedge
This program raytraces models, detects edges,
and writes BRL-CAD color image (.pix) files.
g_diff
This program compares two geometry database files and reports differences
between the two.
This allows databases that contain the same objects in different orders to
be recognized as being the same.
dbupgrade
This program upgrades an old BRL-CAD database to the current BRL-CAD release
file format.
This allows older geometry to take advantage of space savings and new functionality
only available with the newer database formats
(e.g., convert a database created with BRL-CAD rel4.5 to one that is fully functional
in BRL-CAD rel6.0).
DEVELOPER NOTES
These items are of interest to developers and others who compile BRL-CAD:
Compile-time optimizations that significantly increase raytrace performance (at cost of run-time debugging).
Removed dependency on X (and Tk) during source compilation.
Consolidated cake build options.
MGED db developer command facilities.
New and improved regression test suite.
Improved ANSI source conformance (still in transition).
New general-purpose Bourne-shell-based utility library (part of regression suite).
Includes support for file locking, semaphores, stdout/stderr/file logging, mail,
cvs, packaging, and remote-host querying facilities.
DEPRECATED FEATURES
lgt
lgt is being replaced by the new rtedge tool.
Redirection of I/O in g2asc and asc2g
To support the new database file format, it was necessary to remove
the ability to run g2asc and asc2g on streaming data.
SPECIAL ACKNOWLEDGMENT
This release is the last to introduce new features developed by
Mike Muuss. Mike embodied a unique blend of unparalleled intellect,
unquenchable curiosity, and unending enthusiasm to advance the
capabilities and performance of everything and everyone he touched.
He was the original architect of BRL-CAD and for 20 years guided its
development and emergence as one of the most advanced physically based
computer-aided design packages in the world. His presence and his
abilities will be missed.