The Materials and Geometry Format
Version 1.0, May 1995
Greg Ward,
Lawrence Berkeley Laboratory,
GJWard@Lbl.Gov
There are three principal reasons to use MGF as an input language for
lighting simulation and physically-based rendering:
- It's the only existing format that describes materials physically.
- It is endorsed by the Illuminating Engineering Society of North
America (IESNA) as part of their LM-63-1995 standard for luminaire data.
- It's easy and fun to support since it comes with a standard parser
and sample scenes and objects at the web site,
http://radsite.lbl.gov/mgf/HOME.html.
The standard parser provides both immediate and long-term
benefits, since it presents a programming interface that is more
stable even than the language itself.
Unlike AutoCAD DXF and other de facto standards, a change to the
language will not break existing programs.
This is because the parser gives the calling software only those
entities it can handle.
If the translator understands only polygons, it will be given only
polygons.
If a new geometric primitive is included in a later version of the
standard, the new parser that comes with it will still be able to
express this entity as polygons.
Thus, the urgency of modifying code to support a changing standard
is removed, and long-term stability is assured.
This notion of
extensibility
is a cornerstone of the format, and it goes well beyond the
extensibility of other languages because is guarantees that new
versions of the standard will not break existing programs, and the
new information will be used as much as possible.
Other languages either require that all translators stay up to date
with the latest standard, or allow forward compatibility by simply
ignoring new entities.
In MGF, if NURBS are added at some point and the translator or
loader does not handle them directly, the new version of the parser
will automatically convert them to smoothed polygons without
changing a single line of the calling program.
It is merely necessary to link to the new library, and all the new
entities are supported.
Application Notes