Browse Prior Art Database

Method for Fast Save/Restore of Graphics Attribute State

IP.com Disclosure Number: IPCOM000114809D
Original Publication Date: 1995-Feb-01
Included in the Prior Art Database: 2005-Mar-29
Document File: 4 page(s) / 114K

Publishing Venue

IBM

Related People

Einkauf, MA: AUTHOR [+4]

Abstract

The graphics state of a 3D graphics environment consists of the current values of all the attributes that describe the environment. Typically, 3D environments have about 200 attributes, producing a large graphics state of about 500 entries. 3D computer graphics systems commonly provide the capability to save and restore the graphics state. This save/restore function is heavily used when rendering complex objects. Such objects are rendered as a heirarchy of graphics structures. These heirarchies can be 30 or more levels deep, with each level having a unique graphics state. A typical way to accomplish the save/restore is to push the entire attribute state, then to pop it, forming a stack of graphics states.

This text was extracted from an ASCII text file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 46% of the total text.

Method for Fast Save/Restore of

Graphics

Attribute

State

      The graphics state of a 3D graphics environment consists of
the current values of all the attributes that describe the
environment.  Typically, 3D environments have about 200 attributes,
producing a large graphics state of about 500 entries.  3D computer
graphics systems commonly provide the capability to save and restore
the graphics state.  This save/restore function is heavily used when
rendering complex objects.  Such objects are rendered as a heirarchy
of graphics structures.  These  heirarchies can be 30 or more levels
deep, with each level having a unique graphics state.  A typical way
to accomplish the save/restore is to  push the entire attribute
state,
then to pop it, forming a stack of graphics states.  The drawbacks to
this are the relatively large memory required to save the states, and
the time required to copy the data during push and/or pop.

      The method disclosed here overcomes these two drawbacks for
typical graphics applications by saving and restoring only those
attributes that actually change on a given level, rather than saving
and restoring the entire graphics state.  Applications typically
change only a few attributes when going from level N to level N+1.

      This method is valid for any 3D graphics system  which provides
for heirarchical object definition.  The method is described herein
as implemented for a PHIGS environment.

For PHIGS the following definitions apply to the description of the
method:
  The graphics attribute state is referred to as the "Traversal State
   List" or TSL.
  The operation of moving from level N to level N+1 is referred to as
   "Execute Structure".
  The operation of returning from level N+1 to level N is referred to
   as "Return from Structure".

      Data Structures - Several data structures are maintained by
this method.  These include the Current TSL, the Previous TSL, and
the TSL Save Area.  Current and Previous TSL are the size of an
entire TSL.  Sections of TSL Save Area are dynamically allocated as
required.  Current TSL is the actual graphics state used by the
graphics system and contains the true graphics state at any given
instant.  Current and Previous TSL have a level associated with them.
At system initialization Current and Previous TSL levels are 0.  Each
entry in the TSL Save Area has format:
               size of attribute               (one word)
               attribute's offset into TSL     (one word)
               value of TSL attribute          (variable length)

At system initialization, the TSL Save Area contains one entry of
NULL.

      An array of bits, known as TSL Change Bits is maintained.  Each
bit applies to 1 or more TSL attributes.  The TSL Change Bits are
members of the TSL.  A single bit, TSL Change ID, is also maintained.
At system initialization, TSL Change B...