.\"#ident "%W%" %G%
.\"
.\" #
.\" # 
.\" # Permission to use, copy, modify, and distribute this material for
.\" # any purpose and without fee is hereby granted, provided that the
.\" # above copyright notice and this permission notice appear in all
.\" # copies, and that the name of Kubota Graphics not be used in
.\" # advertising or publicity pertaining to this material.  
.\" # 
.\" # KUBOTA GRAPHICS Corporation MAKES NO REPRESENTATIONS ABOUT THE ACCURACY
.\" # OR SUITABILITY OF THIS MATERIAL FOR ANY PURPOSE.  IT IS PROVIDED
.\" # "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING THE
.\" # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" # PURPOSE AND KUBOTA GRAPHICS CORPORATION DISCLAIMS ALL WARRANTIES,
.\" # EXPRESS OR IMPLIED.
.\" #
.\"
.so /usr/local/lib/dpx/macros/local_macros/local.me
.ds BT "\\*(Dd System Guide
.ds CT "XFDI Driver
.ds h1 13
.L1 XFDI
.L2 D RIVER
.CH THIRTEEN
.H1 "Overview
The XFDI device driver provides access to the high
performance 3D graphics of the Stardent 1000 and 2000 Series of
graphics supercomputers.
.H1 "Using the Driver
The initialization options for the \s-1XFDI\s+1 device driver are:
.ip "\-noautosize"
requests that the device viewport not be automatically be set to the
device extent when the device extent changes.
.ip "-singlebuffered"
requests a single buffered window.
The default is a double buffered window.
.ip "-geometry \f2geomstring\fP"
requests a window with a particular position and size.
The format for \f2geomstring\fP is "WxH+X+Y" or "WxH" (where W, H, X, and Y
are the integer values for width, height, and the X, Y position of the
upper left corner of the window).
If the "WxH" format is used, X and Y are assumed to be zero.
.ip "-visualtype \f2vtype\fP"
requests a window with the given visual type.
The possible values for \f2vtype\fP are \f2DcTrueColor\fP for a full 24\-bit
color window or \f2DcPseudoColor\fP for a 12\-bit pseudocolor window.
.ip "-window \f2xwindow\fP"
requests that the X window handle \f2xwindow\fP that the application
has opened be used for drawing.
When using this option, the \f2\-display\fP option should also be
specified. 
The \f2\-geometry\fP, and \f2\-visualtype\fP are ignored when this
option is specified. 
.ip "-display \f2xdisplay\fP"
requests that the X display handle \f2xdisplay\fP, that the application
has opened, be used as the X display device.
.ip "-stereo"
requests that a stereo window by used.
.ip "-spheres"
requests that hardware spheres be used.  This severely limits the 
Z buffer range and may cause visual artifacts.
.ip "-multipass_transparency"
requests that multipass transparency be used.
This will result in true transparency but there is a performance
penalty.
.H1 "Output Modules
The \s-1XFDI\s+1 device driver supports both the Production
Renderer Output Module interface and the Dynamic Renderer Output Module
interface. 
.lp
The Production Renderer Output Module Interface is very simple, and
all functions are supported.
.lp
The \s-1XFDI\s+1 device driver uses most, but not all, of the
\*(Dd attributes that are passed to the Dynamic Renderer Output
Module.
.H2 "Studio Attributes
The studio attributes are attributes that will be executed during a
studio traversal.
Studio attributes include camera attributes, light attributes.
The DROM does not use any of the rendering control attributes.
.H3 "Camera Attributes
The camera attributes supported by the DROM are:
.(l I
DoCameraMatrix <DOCM>
DoParallel <DOPAR>
DoPerspective <DOPER>
DoProjection <DOPRJ>
DoStereo <DOSTER>
DoStereoSwitch <DOSTES>
.)l
.H3 "Lighting Attributes
The light attributes define the characteristics of the lights
used in a scene.
They are:
.(l I
DoLightColor <DOLC>
DoLightIntens <DOLI>
DoLightSpreadAngles <DOLTSA>
DoLightSpreadExp <DOLTSE>
DoLightType <DOLTT>
.)l
.H2 "Primitives
The \s-1XFDI\s+1 DROM supports the \f2base\fP primitives of the DROM
interface, but uses \f2DoTriangleStrip\fPs alternate objects for
improved efficiency.
.H2 "Primitive Attributes
The primitive attribute classes fall into several categories, they
include shading, texture mapping and miscellaneous.
.H3 "Shading Attributes
The shading attributes supported by the DROM are:
.(l I
DoAmbientIntens <DOAMBI>
DoAmbientSwitch <DOAMBS>
DoDepthCue <DODC>
DoDepthCueSwitch <DODCS>
DoDiffuseColor <DODIFC>
DoDiffuseIntens <DODIFI>
DoDiffuseSwitch <DODIFS>
DoInterpType <DOIT>
DoLightSwitch <DOLTS>
DoShadeIndex <DOSI>
DoSpecularColor <DOSPCC>
DoSpecularFactor <DOSPCF>
DoSpecularIntens <DOSPCI>
DoSpecularSwitch <DOSPCS>
DoSurfaceShade <DOSRFS>
DoTranspIntens <DOTI>
DoTranspSwitch <DOTS>
.)l
.H3 "Texture Maps
Only one map can be applied to any object, thus the \f2DoTextureOp\fP
attribute is effectively always set to \f2DcTextureReplace\fP.
The texture map attributes supported by the DROM are:
.(l I
DoTextureMapDiffuseColor <DOTMDC>
DoTextureMapDiffuseColorSwitch <DOTMDS>
.)l
.H3 "Miscellaneous
Other renderer dependent primitive attributes used by the DROM are:
.(l I
DoBackfaceCullSwitch <DOBFCS>
DoBackfaceCullable <DOBFC>
DoClipSwitch <DOCS>
DoClipVol <DOCV>
DoHiddenSurfSwitch <DOHSS>
DoInvisSwitch <DOINVS>
DoLineType <DOLT>
DoRepType <DOREPT>
.)l
.H2 "Texture Attributes
The texture attributes affect how a given texture map is applied to a
primitive object.
These attributes are bound to the texture map object during traversal.
The texture objects are attributes that are in turn applied to the
primitive objects.
The texture attributes supported by the DROM are:
.(l I
DoTextureExtendUV <DOTXUV> - always \f2DcExtendClamp\fP
DoTextureExtendUV <DOTXW> - always \f2DcExtendClamp\fP
DoTextureUVIndex <DOTUVI>
DoTextureUVIndex <DOTWI>
.)l
.H2 "View Functions
The \s-1XFDI\s+1 device driver supports background color for 
views through the call:
.(l I
DvSetBackgroundColor <DVSBC>
.)l
.H1 "Limitations
The implementation of the \s-1XFDI\s+1 \*(Dd device driver 
is based on the Stardent XFDI interface.
The driver has the following limitations due to limitations in
XFDI:
.BU
Only 16 lights are supported.
.BU
Attenuated light types are approximated by unattenuated types.
.BU
Only the total_angle parameter in the \f2DoLightSpreadAngles\fP is used.
.BU
Lights cannot illuminate the back sides of surfaces.
In other words, a surface will be illuminated only by lights 
on the same side as the direction of the surface normal.
.BU
Spot lights are not implemented for Phong shading and are approximated
with a point light source.
.BU
Light source shading only applies to surfaces.
Points and lines are always constant shaded.
.BU
Hardware spheres are clipped with a trival accept / reject only.
Thus as soon as a sphere is intersected by a clipping plane it will
disappear.
.BU
When hardware spheres are used only a very small portion of the
available Z buffer is mapped to the view volume.
This may result is strange visual artifacts.
Using backface culling is recommended whenever possible in this mode.
.BU 
Surfaces with vertex colors are always Gouraud shaded.
.BU
Transparent surfaces are always Gouraud shaded.
.BU
The depth cue color is ignored and black is used.
.BU
the \f2operator\fP parameter of the \f2DoClipVol\fP function is
ignored and is assumed to be \f2DcClipAnd\fP.
.BU
Only 16 clipping planes are supported.
