MS V3.1 Release Notes
o Larger polygonal models
The previous limit of approximately 32,000 vertices per
polygonal object has been removed. The number of vertices
in a single object is now essentially unlimited (over 2 billion).
o Improved SGI device driver
The SGI device driver is faster and more robust. It also supports
GL windows on Personal Irises and IBM RS/6000s. Gouraud (smooth)
shading is now supported in the "hardware" rendering mode.
Options for the SGI driver now include the following:
"kill" or "nokill"
- specifies whether the window should be removed (kill)
or remain visible (nokill) when the device is closed.
"wire"or "shade" or "smooth"
- select hardware rendering option: wireframe,
shaded (scan converted), or shaded with Gouraud
shading of objects which have the property "gouraud"
or "phong" set.
"doublebuffer" or "nodoublebuffer"
- enable or disable the use of double buffering for the
display of images
"size=XxY" or "rubberband"
- set the window to be the fixed size (in pixels) specified
by X and Y or to be rubberband by the user to any desired
size when the window is first opened. The default option
is "size=512x512".
o Ability to read compressed geometry and image files
Both ms_restore (geometry files) and ms_rdimg (image files) can
now read compressed (.z or .Z) data files.
o Ability to read and write geometry files from standard i/o
The ms_restore and ms_dump routines will now read or write to
standard input and output, i.e. stdin and stdout. This feature is
selected by passing the file name argument as "-".
o Ability to close image files without reading or writing an image
A file containing imultiple images and left open from a previous
call to ms_rdimg or ms_wrimg with the option "noclose" can now be
closed without performing an additional read or write on the file.
This is accomplished by specifying the image device, not the file
name, as NULL and specifying the option "close". For example,
ms_rdimg("myvfb", "myfile", "noclose");
...
ms_rdimg(NULL, "myfile", "close");
o New Geometry file magic number
Geometry files have a new "magic number" in their header which
allows them to be distinquished from other types of files, in
particular BUCGL image files. The restore routine (ms_restore)
will continue to read old style files but will print a warning.
In a future release only files in the new format will be
allowed. Under the current release old style files can be trivially
converted to the new format by restoring (ms_restore) the file and
then redumping (ms_dump) the geometry.
o PostScript device driver
MS can now generate PostScript output using the new device
PS. This driver is quite rudimentary and is designed ONLY to
supports line mode drawings. BUCGL image files can be converted
to PostScript files using the utility "ps2img".
o HSV color specification
Hue, Saturation and Value (HSV) color specification can
now be converted to MS color values using the new routine
ms_hsv(h, s, v), where h,s,v are floats between 0.0-1.0
and the return value is of type COLOR.
o Better overall illumination control
Better control of the overall illumination of shaded or
raytraced rendering is now available via the CAMERA data
value "exposure". By adjusting the exposure value the overall
scene rendering can be made lighter or darker. Prior to this
release, underexposed renderings often resulted when many light
sources where used since the total illumination is renormalized,
and therefore limited, to 1.0.
o Object "picking" supported
Objects may now be "picked" from a rendered image using the
ms_pick routine. This routine takes an image (device) space
coordinate and the CAMERA from which the image was rendered and
returns both the name of the object and the 3D surface coordinate
which is visible at that pixel location.
o Correction to antialiasing routine name
The MS antialiasing routine is now called ms_antial. In the
previous release the MS code did not matches the printed
documentation.
o New object class, PATCH, to support bicubic surface patches
MS has a new object type, PATCH, which consists of a two-dimensional
grid of control points and optional vertex colors, and associated
interpolation information. The user can choose from three predefined
bicubic interpolation methods or he can specify his own 4-by-4
interpolation matrix. Patches are rendered by tesselating the patch
into polygons according to a user-specified resolution.
o Cubic interpolation for CURVE objects
Interpolation information can now be attached to the existing
object class, CURVE, in which case the curve is rendered by
interpolating a user-specified number of short line segments.
o New device subsystem routines for "menu" or "button" devices
Button/function key/menu devices are now supported in the device
independent subsystem (DV). This routines allow the user to read
and set the state of button device. There are three reading routines:
dv_rbut, dv_rbutm, and dv_rbuts, and one setting routine dv_sbut.
(See XBUTTON)
o New X widget devices for valuators and buttons: XDIALn and XBUTTONn
Two new device types, XDIAL and XBUTTON, support valuators and
buttons on X Window displays. Each device type supports multiple
widgets, e.g. XBUTTON0, XBUTTON1, XDIAL3, etc, and each widget
has a user specifiable number of buttons or valuators. The
valuator device type, XDIAL, is implemented as a "slider", and the
button box is implement as a "radio button" menu. The valuators
are manipulated using the routines dv_rval and dv_sval. The button
box is manipulated using the new routines dv_sbut, dv_rbut, dv_rbuts,
and dv_rbutm.
o All arguments are now required for ms_copdev and ms_aopdev
All arguments must now be passed to ms_copdev and ms_aopdev.
These arguments are as follows:
ms_copdev(from, to, rastop, value) and
ms_aopdev(to, color, rastop, value).
In prior implementations the arguments "rastop" and "value"
were optional. The equivalent behavior is may now be achieved
by passing NULL for "rastop" and any floating point number
for "value".
o Better line drawing in virtual frame buffers
The line drawing algorithm for virtual frame buffers now produces
smoother lines.
o Polygons with face normals shade correctly
A bug which caused polygonal objects defined with surface normal
vectors (ms_normals) to be shaded incorrectly under some conditions
has been fixed.
o Inquire routines for LIGHTS and CAMERAS
The defined data for LIGHTS and CAMERAS may now be queried using
ms_inquire. Previously only CAMERA data could be queried.
o Pixel sized particles
Setting the "size" property of PARTICLE objects to 0.0 will now
cause each particle to be render as a single pixel on the display
device.
o Solid texture mapping
An new facilty for defining 3D color maps is now supplied. This
feature is currently only supported for POLYGON class objects.
Solid color maps are defined using the new routine ms_defsmap
and attached to an object using the routine ms_setsmap. Like
2D color maps, 3D color maps are simply object properties
("smap", "smaparg0" and "smaparg1") and thus are inheritable.