From owner-virtu-l@VMD.CSO.UIUC.EDU  Sat Jun 24 04:48:48 1995
Return-Path: <owner-virtu-l@VMD.CSO.UIUC.EDU>
Received: from mx4.u.washington.edu by saul5.u.washington.edu
	(5.65+UW95.05/UW-NDC Revision: 2.33 ) id AA29221;
	Sat, 24 Jun 95 04:48:48 -0700
Received: from vmd.cso.uiuc.edu by mx4.u.washington.edu
	(5.65+UW95.05/UW-NDC Revision: 2.31 ) id AA16200;
	Sat, 24 Jun 95 04:48:46 -0700
Received: from VMD.CSO.UIUC.EDU by vmd.cso.uiuc.edu (IBM VM SMTP V2R2)
   with BSMTP id 9847; Sat, 24 Jun 95 06:51:39 CDT
Received: from VMD.CSO.UIUC.EDU (NJE origin LISTSERV@UIUCVMD) by VMD.CSO.UIUC.EDU (LMail V1.2a/1.8a) with BSMTP id 1894; Sat, 24 Jun 1995 06:51:35 -0500
Received: from VMD.CSO.UIUC.EDU by VMD.CSO.UIUC.EDU (LISTSERV release 1.8b)
          with NJE id 5313 for VIRTU-L@VMD.CSO.UIUC.EDU; Sat, 24 Jun 1995
          06:51:25 -0500
Received: from UIUCVMD (NJE origin SMTP@UIUCVMD) by VMD.CSO.UIUC.EDU (LMail
          V1.2a/1.8a) with BSMTP id 1890; Sat, 24 Jun 1995 06:51:25 -0500
Received: from relay3.UU.NET by vmd.cso.uiuc.edu (IBM VM SMTP V2R2) with TCP;
          Sat, 24 Jun 95 06:51:22 CDT
Received: from uucp2.UU.NET by relay3.UU.NET with SMTP id QQyvmt05970; Sat, 24
          Jun 1995 07:48:19 -0400
Received: from uunet-in.UUCP by uucp2.UU.NET with UUCP/RMAIL ; Sat, 24 Jun 1995
          07:48:20 -0400
Received: by relay.UUNET.IN (Smail-N3.28-UUI) Message Id:
          <m0sPTZv-0006khC@relay.UUNET.IN>; Sat, 24 Jun 95 17:10 IST
Received: by bangalore.UUNET.IN (Smail-N3.28-UUI) Message Id:
          <m0sPTSM-0009AtC@bangalore.UUNET.IN>; Sat, 24 Jun 95 17:02 IST
Received:  by vreal.uunet.in (UUPC/extended 1.11x); Sat, 24 Jun 1995 15:46:03
           IST
Message-Id:  <2febecec.vreal@vreal.uunet.in>
Date:         Sat, 24 Jun 1995 15:45:58 IST
Reply-To: Rawla <rawla@VREAL.UUNET.IN>
Sender: "VR / sci.virtual-worlds" <VIRTU-L@vmd.cso.uiuc.edu>
From: Rawla <rawla@VREAL.UUNET.IN>
Subject:      Article in Windows Sources
To: Multiple recipients of list VIRTU-L <VIRTU-L@vmd.cso.uiuc.edu>
Status: OR

Hi !

The Following is an interesting article on 3D Graphic
accelerators for the PC. It's *long* but interesting.

Regards

Anuj

__________________________ ARTICLE_________________________________


*****  Computer Select, April 1995  : Articles *****

Journal:    Windows Sources  April 1995 v00000003 n4 p144(6)
COPYRIGHT Ziff-Davis Publishing Company 1995
-------------------------------------------------------------------------
Title:     A new dimension
             (Graphics Cards Up the Ante)
Author:    Plain, Stephen W.


Abstract:  Three-dimensional software interfaces will create a demand for
           an entirely new breed of video accelerators capable of
           handling elaborate 3-D graphics. Even Pentium-based systems
           require hardware acceleration for acceptable 3-D performance
           because 3-D acceleration involves detailed, multi-step
           processes that are inherently resource-intensive, resulting in
           a tradeoff between performance and realism. Solutions that
           implement much of the 3-D video pipeline in software use more
           CPU cycles than hard-wired solutions but are much more
           commonly used today. Rendering systems use algorithms that
           break down 3-D objects into polygons. The simplest use
           triangles, while faster and more sophisticated algorithms
           build polygons with four or more sides. Texture mapping molds
           bitmapped images to 3-D objects to give them surfaces, and a
           variety of techniques can be used to add lighting and shading
           effects. Microsoft Windows 95 will support the new OpenGL
           standard, an API developed by Silicon Graphics that offers
           sophisticated and comprehensive 3-D support.
-------------------------------------------------------------------------
Full Text:

Pipelines, lighting effects, and API madness

3-D software adds the illusions of depth, lighting, and movement through
three-dimensional space to deliver a look and feel that borders on the
ultimate interface--real life. Though traditionally the domain of CAD and
scientific applications, 3-D will no doubt eventually find its way into
even the average user's computing experience. 3-D games are already
starting to appear, and any significant stab at virtual reality--the holy
grail of many interface designers--must build on 3-D graphics.

Building and tracking 3-D objects in virtual space requires an enormous
amount of processing power and relies heavily on floating-point
calculations, as does portraying 3-D objects on a flat display. The
widespread use of Pentium-based machines, which boast relatively powerful
floating-point processing capabilities, provides an expanding hardware
base finally capable of handling the rigors of 3-D. Even with a Pentium
system, however, you'll need a graphics adapter capable of 3-D
acceleration if you want acceptable 3-D performance.

Unlike 2-D acceleration, which simply speeds relatively simple operations
that draw

2-D objects on the screen, 3-D acceleration involves a detailed,
multiple-step process that forces trade-offs between realism and
performance. 3-D products implement this process, commonly known as the
3-D rendering pipeline, through software, hardware, or a combination of
both.

Accelerators can implement the rendering pipeline in various ways.
Obviously, solutions that implement a significant part of the pipeline in
software--those that depend on the video driver to perform a great number
of computations rather than on the accelerator chip itself--will chew up
more CPU cycles. Unfortunately, most of the accelerators now in the works
relegate the initial steps of the process to the video driver, though
ideally the accelerator itself would handle these functions.

THE PIPELINE

The application generating the 3-D image generally works with geometric
objects such as spheres, cubes, and cones. To display an image, the
application calls geometric functions analogous to the GDI calls in a
traditional 2-D scenario. The driver (or accelerator in a hardware-only
design) first breaks each geometric object these functions describe into
polygons that describe its surface. It then sends each polygon through
the rest of the rendering pipeline.

Accelerators vary in how they create these polygons. Algorithms that use
convex polygons to break down 3-D objects prove the easiest to implement,
so vendors can most easily design an accelerator that breaks objects into
triangles, which are inherently convex. On the other hand, performance
decreases as the number of polygons increases, and triangularization
often produces more polygons than absolutely necessary. For this reason,
the more-sophisticated rendering systems support polygons with four or
more sides. This approach adds speed and flexibility to the accelerator
but adds cost in R&D.

As the accelerator passes each polygon through the pipeline, it rotates,
scales, or zooms the shape if necessary. The accelerator then performs
the clipping stage, calculating which objects fall within the current
viewing angle and eliminating those outside it. Well-designed
accelerators also remove hidden surfaces to reduce the number of polygons
they must process.

LIGHTING and SHADING

Next, the accelerator typically applies lighting to the scene, a task key
to rendering objects realistically. The subtle nuances of shadows often
determine the perceived quality of a rendering. To be optically correct,
objects must appear to cast shadows both on themselves and on other
objects. To achieve this effect, the accelerator applies lighting
equations to 3-D objects and creates the shading by adjusting the colors
on the various object faces.

The simplest shading technique, flat shading, applies the appropriate
lighting equation to a single point on an object's face and then shades
the entire face with the resulting color. Although flat shading adds a
degree of realism, it usually results in an artificial look. The more
established technique, Gouraud shading, provides much better results.
Gouraud shading applies the lighting equation to all the vertices of an
object and then interpolates color gradually between each vertex. Color
interpolation is most effective in 24-bit color modes, but most 3-D
accelerators will dither colors to boost realism when 24-bit modes are
unavailable. A third shading method, Phong shading, produces even more
spectacular results than Gouraud shading, but its complexity makes it too
expensive to implement on most graphics accelerators today.

After the accelerator fixes each object in three-dimensional coordinates
and applies shading, it must map each surface to the 2-D coordinates it
can display on the screen. Working with 3-D graphics requires more
information than the frame buffer traditionally stores, of course,
primarily because the accelerator must store an indication of depth.
Accelerators achieve this through the z-buffer, a separate section of
video memory. The z-buffer stores a value that corresponds to the depth
of each pixel instead of the color.

Just as the data width of the frame buffer determines the granularity of
color, the data width of the z-buffer determines the accuracy with which
the chip can store depth, and therefore absolute position. Most
applications call for no more than 16-bit z-buffering, but precise
modeling applications may require a wider data path. The most-ambitious
PC accelerators now slated use a z-buffer width of 32 bits.

SURFACE APPEAL

Rendering objects to their proper shape is one thing; making them look
real is quite another. Given that the real world does not comprise a set
of flat, smooth, homogeneous objects, the accelerator must also apply
texture to objects to complete the illusion. Most accelerators use an
approach called texture mapping to achieve this result. Texture mapping
molds a two-dimensional bitmapped image to the shape of the 3-D object,
wrapping it with the appearance of a particular texture. To achieve even
more-realistic results, high-end accelerators apply the appropriate
perspective to the texture image as they apply the texture. Texture
mapping requires tremendous processing power, and having to rely on the
CPU to perform this task can impose serious limits on software
development. Conversely, the complicated nature of texture mapping makes
it expensive to achieve in hardware. To implement texture mapping in
hardware, an accelerator must dedicate areas of local memory to holding
the texture map itself. The accelerator chip itself must calculate the
appropriate addresses for the texture map from pixel coordinates. The
accelerator might also perform additional color interpolation and
blending operations as part of the texture-mapping process.

If rendering 3-D objects realistically is a Herculean task, setting 3-D
objects into motion proves even more demanding. To help maintain frame
rates during 3-D animations, most 3-D accelerators implement
double-buffering, a technique in which they display one scene while at
the same time rendering the next in excess off-screen memory.

API MADNESS

A confusing number of 3-D API's are available or under development for
the PC, but APIs are beginning to segregate into those suitable for game
development and those that provide a fuller feature set. OpenGL carries
the most promise at the high end, where it and Autodesk's HOOPS and HDI
now constitute the major contenders. Numerous vendors including Microsoft
have already endorsed OpenGL, which accounts for a good bit of its
promise. Windows NT 3.5 supports OpenGL, as will a future version of
Windows 95. Developed by Silicon Graphics, OpenGL provides a high degree
of accuracy and 3-D sophistication, and compliance testing ensures
consistency among OpenGL products.

At the other end of the spectrum--the games market--three APIs vie for
dominance: Reality Lab, from RenderMorphics; bRender, from Argonaut; and
RenderWare, from Criterion. These rendering APIs are slimmer than OpenGL
and better suited to game development. Intel also developed an API called
3DR that provides the low-level rasterization operations for 3-D, but 3DR
lacks support for high-level geometric objects, such as cones and
spheres. 3DR will appeal to game vendors who have already written their
geometry routines and want to avoid rewriting their code from scratch.

Microsoft is also developing 3D-DDI, a specification that will provide a
low-level driver interface to OpenGL for chip and API vendors. Although
the low-level interface is attractive to programmers, Microsoft is
discouraging application developers from writing directly to it,
positioning it instead as a low-level glue to provide OpenGL
compatibility. DCI will play a role in 3-D as well, because OpenGL will
provide direct DCI support in a manner similar to a GDI. 3-D accelerators
capable of handling OpenGL commands directly will be able to use DCI to
bypass the software version of OpenGL, which runs as a DLL under Windows.

Vendors prepare a range of 3-D offerings

Most accelerator vendors are developing boards that accelerate 3-D
graphics, but only Matrox was shipping 3-D accelerators boards as we
closed this project: the MGA Impression Plus and MGA Impression Lite,
both based on the company's 64-bit MGA Athena chip. The Athena provides a
balance of 2-D and 3-D acceleration at about the price you'd pay for a
high-end 2-D accelerator. The Lite version of the Impression differs from
the Plus only by its inability to accept Matrox's plug-in upgrade
modules.

The PCI version of the Impression Plus sells for $449 with 2MB of VRAM,
expandable to 4MB. The Impression Plus delivers excellent quality 3-D
graphics, but many of its 3-D capabilities leave a heavy processing
burden on the system CPU. Matrox's offerings break 3-D objects into
triangles, a simpler but somewhat slower approach than breaking objects
into four-sided polygons. The application and driver software handle the
initial stages of the rendering pipeline in main memory, courtesy of the
CPU, and the Athena kicks in only after the driver has prepared each 3-D
triangle for display on the screen. The Athena then performs depth
interpolation in hardware by calculating the color and intensity of each
pixel based on the

3-D coordinates the driver calculates. The chip also takes care of
filling a 16-bit VRAM z-buffer with depth information for each pixel and
writing information to the frame buffer when appropriate.

Vendors and advocates of specific 3-D APIs have rushed to support the MGA
boards, currently the only mainstream 3-D offerings available. The MGA
consequently enjoys compatibility with OpenGL, 3D-DDI, HOOPS, 3DR,
RenderWare, Reality Lab, and Matrox SXCI, the company's proprietary API.

The Matrox boards ship with the MGA 3D-SuperPack, a CD collection that
contains 3-D games, Criterion's RenderWare, a software developer's kit,
and a demo version of Caligari's trueSpace rendering software. The
3D-SuperPack is not a comprehensive set of 3-D programs by any means, but
it does provide a glimpse into the future of desktop 3-D. It also clearly
illustrates that the MGA is capable of 3-D animations fluid enough for
arcade style games and that it is suitable for CAD applications. However,
the Impression lacks hardware-assisted texture mapping, making it
ill-suited for applications that require high levels of realism.

In the Works

A more ambitious 3-D accelerator chip, 3D Labs' GLiNT, has also started
to appear. As we went to press, 3D Labs was providing the first samples
of the GLiNT 300SX chip to board vendors, though at least one company was
already advertising boards based on the chip. The GLiNT devotes all its
silicon to accelerating the complex calculations 3-D rendering requires.
The chip has 2-D capabilities, but it uses these mostly to provide the
building blocks necessary for 3-D rendering.

3D Labs wired the entire OpenGL command set into the GLiNT, ensuring that
all calculations will occur in hardware. With Windows NT 3.5 and
presumably a future version of Windows 95, Microsoft will include a
runtime DLL that provides software support for OpenGL calls. GLiNT-based
boards will ship with a replacement for this DLL that redirects the
OpenGL calls through the video driver to the chip, offloading the
processing from the system CPU. 3D Labs predicts the GLiNT will speed
OpenGL processing by as much as a factor of 5 to 10 relative to
unassisted processing on a 90-MHz Pentium.

Boards that employ the GLiNT will need loads of RAM to support the chip's
extensive hardware acceleration options. A typical GLiNT configuration
will include a 4MB of VRAM frame buffer plus 4MB of z-buffer memory,
either DRAM or VRAM. Unlike the MGA Athena, the GLiNT sports an
adjustable 32-bit z-buffer. The chip can use a 16-, 24-, or 32-bit data
path to the z-buffer, allowing it to provide more accurate depth
information than the standard 16-bit z-buffer. The GLiNT also takes
advantage of the alpha channel, the 8 bits left over within a 32-bit word
when you use a color depth of 24 bits. It uses this space to store
information it uses to determine a rendered image's translucency, from
opaque to transparent, as laid out in OpenGL. Also unlike the MGA Athena,
the GLiNT provides hardware acceleration of texture mapping and
implements perspective on textured objects. A future version of the
chip--the 300TX--will provide complete texture mapping for OpenGL in
hardware.

Several vendors are preparing to release accelerators based on the GLiNT.
For instance, S3 has been working on a board design that couples its
Vision968 and the GLiNT 300SX to provide 2-D, 3-D, and full-motion video
acceleration on a single board, and STB plans to begin shipping in the
near future a board that employs the two chips. Creative Labs is
implementing a scaled-down games -oriented version of the GLiNT in hopes
of establishing a 3-D standard as successful as its SoundBlaster audio
standard. The company is reportedly planning to release a combination 3-D
and sound card by Christmas 1995 that will sell for $250.

Cirrus Logic is also beginning to sample its upcoming $100 2-D/3-D
offering--the Mondello chip set. Cirrus based this three-chip set, also
called the GD547X series, on the 5470 rendering engine the company
acquired from Austek. The 5470 chip provides 3-D acceleration features
such as Gouraud shading and alpha transparency. The Mondello will
accelerate the rendering portion of the pipeline in hardware, but it will
still rely on the system's CPU for the up-front floating point
calculations and geometric processing.

Mondello-based boards will support three separate arrays of on-board
memory--the VRAM frame buffer, a DRAM z-buffer, and a DRAM private
buffer. The 5470 uses the private memory to process special objects such
as texture maps, icons, fonts, and display lists. The chip passes these
objects to the frame buffer when it has finished processing them. Each
separate memory array will accommodate from 1MB to 16MB, making the
Mondello quite extensive. Cirrus Logic claims the Mondello will deliver
workstation performance at a low cost and provide a better
price/performance combination than the Glint 300SX, but given that
neither chip is available for testing, we could not verify these claims.
At the time of this writing, board vendors were evaluating the Mondello,
but none had announced plans to use it in their designs.

A Different Angle

VideoLogic claims a 3-D chip set it is developing in cooperation with NEC
Technologies will revolutionize 3-D technology. Instead of breaking 3-D
objects into polygons and storing depth information in z-buffers, the
PowerVR accelerator will treat the 3-D objects as entire entities and
will manage them directly, according to VideoLogic. The company is
counting on this approach's relatively low memory requirements and
more-streamlined processing of objects to give it a cost/performance
advantage. VideoLogic claims the PowerVR will deliver as much as a 10:1
cost/performance advantage over traditional z-buffered chips.

The PowerVR will appear first in arcade game systems, but the company is
banking on the flexibility of the chip set to take it into different
markets as well, including PC graphics accelerators. Because its 3-D
approach is so different, VideoLogic has defined its own API, called SGL.
This API will provide ultra-high-level functions aimed at game design,
such as functions that simulate smoke and fire.

Possibly more imminent in the PC market will be the introduction of a new
chip this year from a company called NVidea. The company is saying little
about the chip at this point but reports that it will integrate 3-D and
video acceleration in a single package and will target the low-end
multimedia and games markets.

Choose your cost performance trade-off

The migration of 3-D graphics software from ultra-expensive workstations
to mainstream PCs comes as almost as big a technology shift as the
arrival of the GUI itself. Traditionally, sophisticated 3-D software
demanded expensive graphics workstations by companies such as SGI. These
workstations might dedicate as many as 20 banks of memory to a single
graphics function, such as texture mapping. The relatively frugal PC
market will tolerate only a fraction of the cost of such systems, a fact
that has encouraged the development of innovative, less expensive
designs.

Even so, you'll have to make some tough choices when buying a 3-D-capable
accelerator. The more highly integrated chips with more hardwired
capabilities will lead in performance and rendering quality, but chips
that integrate 2-D and video acceleration along with 3-D will maintain a
cost advantage. Whichever route you choose, you'll need the fastest
system you can manage to achieve adequate performance--a Pentium-based
system at least, and very possibly a machine based on one of the coming
next- generation processors from AMD, Cyrix, NexGen, or Intel itself.

As the 3-D accelerator market continues to define itself, two tiers of
accelerator chips seem to be emerging: highly integrated chips like the
GLiNT 300SX will probably target high-end applications, such as CAD,
while designs that devote proportionally less silicon to 3-D, such as the
Matrox and NVidea offerings, will prove more suitable for accelerating
3-D games.


--
"If you aim for the stars you just might make it to the moon."

Anuj Rawla                                      Telephone: +91-80-6634775
VR REAL TECHNOLOGIES (P) LTD.                   Fax        +91-80-5585964
rawla@vreal.uunet.in                            Address: Casa Ansal,
                                                         No. 18 N.S. Palya,
                                                         Bannerghatta Rd.
                                                         Bangalore.
                                                         India

