throbber
United States Patent
`
`[19]
`
`[11] Patent Number:
`
`5,777,621
`
`Schneider et a].
`[45] Date of Patent: Jul. 7, 1998
`
`
`
`USOOS777621A
`
`[54] QUALITY CONTROL MECHANISM FOR
`THREE-DIMENSIONAL GRAPHICS
`RENDERING
`
`[75]
`
`Inventors: Philip J. Schneider: David Jenni.
`both of Boulder Creek. Calif.
`
`[73] Assignee: Apple Computer. Inc. Cupenino.
`Calif.
`
`[21] Appl. No: 482.016
`
`[22] Filed:
`
`Jun. 7. 1995
`
`Related US. Application Data
`
`[63] Continuation-impart of See. No. 362,118. Dis; 22. 1994,
`abandoned.
`
`Int. Cl.“ ........................................... GOCT 15M
`[51]
`[52] US. CL .. ...........
`3451428: 345L129
`
`[58] Field of Search .................................. 3951119. 120.
`393123. 124. 126. 128. 129. 130. 131.
`132. 133. 15213459121. 122. 132. 133.
`136
`
`[56]
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`15,043,922
`5,379,371
`5,384,903
`5.448.686
`5,471,572
`5.489.920
`5.555.354
`
`8.1199! mm .......................... 3951122
`
`..... 3951128
`”1995 Usamietal.
`.....
`
`”1995 Mackinlay ......
`.
`.. 395(152
`..... 3951120
`9i’l995 Bone] et al.
`
`
`. 3951139
`1131995 Buchneretal.
`
`211996 Kaasila ............._
`. 3451136
`.................. 3951127
`9f1996 Smmick et. al.
`
`OTHER PUBLICATIONS
`
`Nakamura. fibres—dimensional delineation of map and
`facility data and data control". Functional Diagram Work-
`shop ‘93. Oct. 1993. pp. 1-6.
`
`Ihm et 31.. “On enhancing the speed of splarting with
`indexing“. Wsualjzation. 1995 Conference. pp. 69—76.
`Salsas et 31.. “interactive visualization of large scalar voxez
`fields”. Visualization. 1992 Conference. pp. 29—36.
`Aslheimer. P.. et .11.. “Interactive modeling in high—perfor-
`mance
`scientific visualization—the vis—a—vis project“.
`Computers in Industry. vol. 19. No. 2. May 1992. pp.
`213—225.
`
`IBM. “Multiple Types of Graphical Contexts on a Graphics
`Adapter". Technical disclosure Bulletin. vol. 34. No. TB.
`Dec. 1991. pp. 29-30.
`
`{List continued on next page.)
`
`Primary Examiner—Joseph H. Feild
`Assistant Examiner—Stephen Hong
`Attorney. Agent, or Firm—Fliesler. Dubb. Meyer & Lovejoy
`
`[57]
`
`ABSTRACT
`
`A graphics rendering system includes a continuum. or
`collection. of quality control data groups. each of which
`contains a plurality of quality control type variables. Each of
`the type variables contains a value which selects among a
`pltnality of options in a respective trade-oil between ren-
`dering quality and rendering speed. Each of the quality
`control data groups may be associated with the respective
`quality index. Thus. an application program can select a
`point on the overall rendering speedlquality rendering trade-
`ofi. merely by selecting a quality control
`index value.
`Moreover. the application program can mice the current
`quality control index accessible to a user. for example in
`such an intuitive form as an iconic “quality knob“. The
`mechanism permits the user to have fine control over the
`rendering speedlqualjty rendering trade-011’. without being
`concerned with adjustments to the individual rendering
`parameters.
`
`22 Claims. 11 Drawing Sheets
`
`
`
`MS 1019
`
`MS 1019
`
`1
`
`

`

`5,777,621
`Page 2
`__‘——______.—.__—_...———————-
`
`OTHER PUBLICATIONS
`
`Apple Computer. Inc. “QuickDraw (EX—Programmer’s
`Overview" (1994). *1.
`Bergman. et al.. “Image Rendering by Adaptive Refine-
`ment“. Computer Graphics (1986) vol. 20. No. 4. pp. 29—37.
`*1.
`Catmuii. Edwin E. “A Subdivision Algorithm for Computer
`Display of Curved Stn'faees". (Dec. 1974). Ph.D. Thesis.
`Report UfEC—CSo—74—133. Computer Science Depart-
`ment. University of Utah. Salt Lake City. UT. *1.
`(It-ten. Shenchang Eric. et al.. “A Progressive Mold-Pass
`Method for Global illumination." Computer (traphics (Jul.
`1991). vol. 25. No. 4. pp. 165—174. *1.
`Clark. James 11.. "The Geometry Engine: AVLSI Geometry
`System for Graphics." Computa Graphics (1982). vol. 16.
`No. 3. pp. 127—133. *1.
`Haeberli. Paul and Akeley. Kurt. "The Accumulation Buffer:
`Hardware Support for High-Quality Rendering”. Computer
`Graphics (Aug. 1990). vol. 24. No. 4. pp. 309—318. I‘1.
`International Standards Organization. “Information Process-
`ing Systems—Computer Graphics—Graphical Kernel Sys~
`tern for Three Dimensions (GKS—3D) Functional Descrip-
`tion“. (1988) ISO Document No. 8805:1988 (E). *1.
`Kelley. Michael. et al.. “A Scalable Hardware Render Accel-
`erator using a Modified Scanline Algm‘thm.” Computer
`(kaphics (Jul. 1992). vol. 26 No. 2. pp. 241-248. *1.
`Maillot. Patrick-Gilles. "flame—Dimensional Homogeneous
`Clipping of Triangle Strips.” Academic Press. Inc. (1991).
`pp. 219-231. *1.
`Newell. M. E. et al.. “A Solution to the Hidden Surface
`Problem.” Proceedings of the ACM National Conference
`(1972). pp. 443—450. ‘1.
`Pl-HGS Committee. Andries van Dam. (mailman. “PHIGS+
`Functional Description. Revision 3.0." Computer Graphics
`(1988). vol. 22 No. 3. pp. 125418. *1.
`Pixar. "I‘he RenderMan® Interface”. Specification. Version
`3.1 (Sep. 1989). *1.
`
`Potmesil. Michael and l-Ioffert. Eric M" “FRAMES: Soft~
`were Tools for Modeling. Rendering and Animation of 3!)
`Scenes”. Computer Graphics. (Jul. 1937). vol. 21. No. 4. pp.
`85—93. *1.
`Saito. Takafumi. et al.. ‘Comprehensible Rendering of 3—D
`Shapes". Computer Graphics (Aug. 1990). vol. 24. No. 4.
`pp. 197—206. *1.
`Segal. Mark. et 211.. “Fast Shadows and Lighting Efiects
`Using Texture Mapping“. Computer Graphics (Jul. 1992).
`pp. 249—252. *1.
`SiJlion. Francois. et al.. “A General TWO—Pass Method
`Integrating Specular and Diffuse Reflection”. Computer
`Graphics. (Jul. 1989). vol. 23. No. 3. pp. 335—344. *1.
`Snibbe. Scott 8.. et al.. “Using Deformations to Explore 313
`Widget Design“. Computer Graphics. (Jul. 1992). vol. 26.
`No. 2. pp. 351—352. *1.
`Strauss. Paul S.. et 3].. “An Object—Oriented 3D Graphics
`Toolkit“. Computer Graphics. (Jul. 1992). pp. 341—349. *1.
`Tarlton. Mark A.. et al.. “A Framework for Dynamic Visual
`Applications.” hooeedings of the 1992 Symposium on
`Interactive 3D Graphics (1992). pp. 161-164. *1.
`Turkowski. Ken. “Design Considerations for an ObjectrO-
`riented 13D Graphics] Metallic.” Proceedings of the Third
`Eurographics Workshop on Object—(Striated Graphics (Oct.
`1992). pp. 163—169. *1.
`Venolia. Dan. “Facile 3D Direct Manipulation". Proceedings
`of INTERCHI ’93 (May 1993). pp. 31-35. *1.
`Wanger. Leonard. "Ihe Efiect of Shadow Quality on the
`Perception of Spatial Relationships in Computer Generate
`Imagery". Proceedings of the 1992 Symposium on Interac—
`tive 3D Graphics (1992). pp. 39—42. *1.
`Werneclte. Josie. "I‘he Inventor Mentor—Hogramming
`Object-(kicmod
`3D Graphics with Openlnventotn‘.
`Release 2". Addison-Wesley Publishing Company (1994).
`pp. 3—77. 99—136. 211—249. 421—470 and 479-486. *1.
`X Consortium. “PEX Protocol Specification”. Version 5.2—
`Public Review Draft (15 Aug. 1994). *1.
`
`2
`
`

`

`US. Patent
`
`Jul. 7, 1998
`
`Sheet 1 of 11
`
`5,777,621
`
`1&2
`
`103
`
`a
`GRAPHICS
`ACCELERATORI
`h—u—u—u——T—— n..— n- n-
`
`106
`
`
`
`
`RENDERER 3 £06
`
`RENDERER 1
`
`
`RENDERER 2
`
` ESCHER
`PROCEDURES
`
`
`
`215
`
`
`
`
`RENDERER
`QUALITY
`RENDERER
`new
`
`
`
`
`
`INVOCATION
`mmmnon
`BUILDING/
`CONTROL
`BUILDING/
`
`
`
`
`
`
`PROCEDURES WW3"
`EDITING
`PRomEs
`EDITING
`
`
`
`
`
`
`PROCEDURES
`PHIEUMES
`PROCEDURES
`
`
`
`
`
`'rlll
`
`
`
`3
`
`

`

`US. Patent
`
`Jul. 7, 1998
`
`Sheet 2 of 11
`
`5,777,621
`
`INSTALL
`
`RENDERER(S)
`
`BUILD
`
`QUALITY
`COLLECTION
`
`302
`
`303
`
`304
`
`305
`
`
`
`RENDER
`MODEL(S) T0
`VII-3V6)
`
`303
`
`308
`
`
`
`
`SPECIFYING MODEL 3 AND VIBN 1
`
`45?
`
`404
`
`405
`
`493
`
`CALL RENDERER INVOCATION PROCEDURE
`SPECIFY MODEL'IAND VIBN 1
`
`CALL RENDERER INVOCATION PROCEDURE
`SPECIFYING MODEL 1 AND VIEW 2
`
`CALL RENDERER INVOCATION PROCEDURE
`SPECIFYING MODEL 2 AND VIBN 1
`
`CALL RENDERER INVOCATION PROCEDURE
`SPECIFYING MODEL 2 AND VIEw 2
`
`410
`
`CALL RENDERER INVOCATION PROCEDURE
`
`FIG. 3
`
`FIG. 4
`
`4
`
`

`

`US. Patent
`
`Jul. 7, 1993
`
`Sheet 3 of 11
`
`5,777,621
`
`512\
`
`INSTANCE 1
`DATA
`
`METHODS
`
`/ 502
`
`OBJECT
`METHODS
`
`504
`
`SHARED OBJECT
`
`505
`
`RENDERER
`OBJECT
`METHODS
`
`T i
`
`.
`
`
`DISPOSE
`DUPLICATE
`
`UNREGISTER
`
`OBJECT CLASS
`
`REFERENCE
`
`OBJECT
`DATA
`
`534
`
`SHARED
`OBJECT
`DATA
`
`535
`
`RENDERER
`OBJECT
`DATA
`518
`
`WFRBMERBR
`DATA
`
`
`
`
`
`
`INSTANCE 2
`DATA
`
`REFERENCE
`
`F16. 5
`
`5
`
`

`

`US. Patent
`
`Jul. 7, 1993
`
`Sheet 4 of 11
`
`5,777,621
`
`EtStyleDbject
`
`Backfucingstyle
`
`
`
`F16. 5
`
`Rotat
`
`e
`
`EtTransformObject
`
`Scale
`
`EtCumeroObject
`
`EtLightObject
`
`Translate
`
`Line
`
`P0 int
`
`EtGeometryObject
`
`Polygon
`
`EtShupeObject
`
`Po lyLine
`
`Torus
`
`Triangle
`
`EtLightGroup
`
`EtcrouDObject___{EEE EtInfoGroup
` EtShaderObject
`
`EtDispluyGrOUp
`
`EtOrderedGroup
`
`EtLIstGroup
`
`EtRendererOb ject —[
`EtSetObject
`
`ZBuffer
`
`_
`WIFeFrome
`
`EtDruwContext
`
`EtViewObject
`
`EtQuthndihctionObject
`
`EtQuathGroupObject
`
`EtShuredObject
`
`
`
`
`EtObject
`
`6
`
`

`

`US. Patent
`
`Jul. 7, 1998
`
`Sheet 5 of 11
`
`5,777,621
`
`E W iewObject
`Instance
`
`/7M
`
`E W iewObject
`C iass
`
`704
`
`712
`
`/-702
`
`OBJECT
`DATA
`
`714
`
`333%?
`DATA
`
`716'
`
`V IEW
`OBJECT
`
`DATA
`
`OBJECT CLASS
`
`OBJECT
`METHODS
`
`REFERENCE
`COUNT
`
`
`SHARED OBJECT
`METHODS
`
`EtViewPrivate
`
`706
`
`
`
`
`FIG. 7
`
`8‘02
`
`EtD Esp luyGroupOb ject
`
`
`
`
`EtGeometryObject
`
`E tD isp IayG roupOb ject
`
`EtGeometryObject
`
`FIG. 8
`
`7
`
`

`

`US. Patent
`
`Jul. 7, 1998
`
`Sheet 6 of 11
`
`5,777,621
`
`group
`
`[/1904
`
`Ordered Display
`Group Class
`
`//-902
`
`OBJECT CLASS
`
`REFERENCE
`COUNT
`
`
`
`
`(none)
`
`OBJECT
`METHODS
`9&8
`
`SHARED OBJECT
`
`METHODS
`
`310
`
`SHAPE OBJECT
`EtShapeClass METHODS
`
`3L?
`
`GROUP OBJECT
`EtGroupCloss METHODS
`
`
`
`£EW
`OBJECT
`DATA
`
`
`sag
`SHARED
`OBJECT
`DATA
`924
`SHAPE OBJECT
`DATA
`
`
`
`
`BB5
`
`
`
`GROUP OBJECT
`DATA
`
`3&9
`DISPLAY GROUP
`OBJECT
`DATA
`
`
`
`WEBEDDEPUN
`GROUP OBJECT
`DATA
`
`EBB
`
`
`
`
`
`
`
`
`IIIIIIHHHH!IIIIII
`
`
`
`
`EtDispIay—
`GroupPrivote
`
`
`
`E10 isp loy—
`GraupClass
`
`914
`DISPLAY GROUP
`METHODS
`
`9L5
`
`EtOrderedDiSplay—
`GroupPrivate
`
`SubGroup
`
`ifx-SWS
`
`OBJECT
`DATA
`
`SHARED
`OBJECT
`DATA
`
`SHAPE OBJECT
`DATA
`
`GROUP OBJECT
`DATA
`
`DISPLAY GROUP
`OBJECT
`DATA
`
`BEBEDDHTUW
`GROUP OBJECT
`DATA
`
`
`
`
`
`
`
`OBJECT CLASS
`
`REFERENCE
`
`COUNT
`
`IlllllHUUH!lllll|
`
`EtDisplay—
`GroupPrivute
`
`EtOrderedDisplay-
`GroupPrivate
`
`
`
`
`
`
`
`FIG.
`
`.9
`
`8
`
`

`

`US. Patent
`
`Jul. 7, 1993
`
`Sheet 7 of 11
`
`5,777,621
`
`1' 002
`
`1008
`
`Leaf class's 'Nelv' procedure calls its
`parent class 'Nen' procedure with:
`
`
`
`
`
`
`
`
`
`(a) the static variable which. when the
`leaf class was registered. points to the
`top of that
`leaf class's method table
`
` & (h)
`data structure
`
`the size of the leaf class's Private
`
`1004
`
`Each higher class's 'lleu’ procedure calls
`its respective parent class’s 'Nevr’
`procedure lwith:
`
`(a) the object class pointer passsed to it
`
`
`
`
`
`
`
`the size needed by all descendent
`and (b)
`classes so for plus the size needed by the
`current class's private data structure
`
`
`
`
`
`
`
`
`
`Each loner class's 'Nev' procedure then:
` (a) calls its own Get procedure to get a
`
`
`
`
`
`pointer to the current class's avn private
`data structure within the newly allocated
`instance data to lock;
`
`(b)
`
`initializes its own Private data
`structure;
`
`and (c) returns to its caller (which is the
`next
`lover ctoss’s 'Nerv' procedure).
`returning a pointer to the newly allocated
`memory b lock.
`
`
`
`
`
`The Leaf class’s 'Nerr' procedure does
`the same. except
`the caller is typically
`
`the application program.
`
`
`
`
`
`
`
`
`
`1 005
`
`
`Ultimate parent class's 'Neu' procedure
`(EtObjecLNewO):
`
`
`
`
`
`
`
`initializes its arm Private data
`(h)
`structure (by writing the Object Class
`
`pointer passed to it
`into the top at the
`
`newly allocated memory black):
` and (c) returns to its caller (vhich is the
`next
`lower class's 'New’ procedure),
`returning a pointer to the newly allocated
`memory black
`
`
`
`(a) allocates memory space for the
`private data structures needed for its mm
`Private data
`toe the Private data for all
`descendent c asses. This space will
`contain the entire block of instance data
`for
`the nevrly created object.
`
`
`
`
`
`
`
`
`
`
`
`
`
`FIG. 10
`
`9
`
`

`

`US. Patent
`
`Jul. 7, 1993
`
`Sheet 8 of 11
`
`5,777,621
`
`1110
`
`1102
`
`1104
`
`OBJECT CLASS
`
`EtOuaIitygollectionObject [
`EtQualityCollectiorDbject [
`Instance
`lass
`
`
`OBJECT
`MEN-DDS
`
`“05
`
`
`SHARED
`OBJECT
`METHODS
`
`REFERENCE
`COUNT
`
`EtQua IityCo llectionPr ivute
`
`
`
`
`
`1112
`
`
`OBJECT
`DATA
`
`
`
`
`1114
`
`SHARED
`OBJECT
`DATA
`
`1116
`
`colflgfigg
`OBJECT
`DATA
`
`FIG. fl
`
`1210
`
`Ethan IityG roupObject
`EtQualityGroupObject /
`C lass
`
`
`
`
`Instance
`1212
`
`OBJECT
`
`DATA
`OBJECT cuss
`12”
`SHARED
`OBJECT
`DATA
`
`SBJECE
`“"00
`SfiD
`OBJECT
`
`
`
`
`REFERENCE
`COUNT
`
`EtOualityGroupObjectPrivate
`
`QUALITY
`GROUP
`OBJE$TDA A
`
`1216'
`
`FIG. 12
`
`10
`
`10
`
`

`

`US. Patent
`
`Jul. 7, 1998
`
`Sheet 9 of 11
`
`5,777,621
`
`1302
`
`ExSetupQUO lityCO | lection
`
`'
`
`CREATE A NEW QUELI'TY
`COLLECTION OBJ C
`
` CREATE FIRST NEW QUALITY
`
`GROUP OBJECT USING
`INDEX=02
`
`SET PARAMETERS IN FIRST
`QUALITY GROUP OBJECT
`
`1315
`CREATE THIRD NEW QUALITY
`GROUP OBJECT USING INDEX=0.6
`
`1313
`
`SET PARAMETERS IN THIRD
`QUALITY GROUP OBJECT
`
`1330
`
`ADD THIRD QUALITY GROUP
`OBJECT T0 QUALITY COLLECTION
`OBJECT
`
`
`
`2132
`
`CREATE FOURTH NEW QUALITY
`GROUP OBJECT USING INDEX=O.B
`4
`13?
`
`SET PARAMETERS IN FOURTH
`QUALITY GROUP OBJECT
`
`1304
`
`1305
`
`1303
`
`13”
`
`1312
`
`1314
`
`
`
`
`ADD FIRST QUALITY GROUP
`OBJECT TO QUALITY
`COLLECTION OBJECT
`
`CREATE SECOND NEW QUALITY
`GROUP OBJECT USING
`INOEx=o.4
`
`SET PARAMETERS IN SEOONO
`QUALITY GROUP OBJECT
`
`1335
`
`OBJECT
`
`ADD SECOND QUALITY GROUP
`OBJECT TO QUALITY
`COLLECTION OBJECT
`
`1323
`
`ADO FOURTH QUALITY GROUP
`OBJECT T0 QUALITY COLLECTION
`
`F16. 13
`
`11
`
`11
`
`

`

`US. Patent
`
`Jul. 7, 1993
`
`Sheet 10 of 11
`
`5,777,621
`
`
`
`ExGetDesired Quufity Index()
`
`
`
`
`
`
` DISPLAY
`QUALITY KNOB
`ICON
`
`14E?
`
`ACCEPT USER
`
`SELECTION
`
`1404
`
`
`
`RETURN DESIRED
`
`QUALITY INDEX
`
`1405
`
`
`
`FIG. 14
`
`
`
`FIG. 15
`
`12
`
`12
`
`

`

`US. Patent
`
`Jul. 7, 1993
`
`Sheet 11 of 11
`
`5,777,621
`
` ErRT_Geometry_,Tr iang Ie
`
`GET VIEW '5
`QUALITY GROUP
`
`GET
`
`-'504
`
`
`
` COMPUTE
`
`
`
`SHADOWS
`
`
`COMPUTE
`
`SHADOWS
`
`
`
`
`
`RENDER TRIANGLE
`RENOER TRIANGLE
`RENDER TRIANGLE
`RENDER TRIANGLE
`
`
`
`USING RAY DEPTH. USING RAY DEPTH. USING RAY DEPTH. USING RAY DEPTH,
`
`
`
`
`
`N0 SHADOWS. N0
`REFLECTIONS a:
`REFLECTIONS, N0
`SHADOWS. N0
`
`
`
`
`REFLECTIONS
`SHADOWS
`SHADOWS
`REFLECTIONS
`
`
`1516‘ 1618
`
`FIG. 16'
`
`13
`
`13
`
`

`

`5,777.62]
`
`1
`
`QUALITY CONTROL MECHANISM FOR
`THREE-DMNSIONAL GRAPHICS
`RENDERING
`
`CROSS—REFERENCE TO RELATED
`APPLICATIONS
`
`This application is a continuation-in-part of US. patent
`application SCJ'Ser. No. 083152.118. filed Dec. 22. 1994.
`abandoned. entitled MECHANISM FOR W-
`ING SCALABLE AND EX'I'ENSIBLE GRAPHICS
`RENDERING. by inventor David levans. assigned to the
`assignee of the present application and incorporated herein
`by reference.
`
`LIMITED COPYRIGHT WAIVER
`
`A portion of the disclosure of this patent document
`centains material to which the claim of copyright protection
`is made. The copyright owner has no objection to the
`facsimile reproduction by any person of the patent document
`or the patent disclosure. as it appears in the U.S. Patent and
`Trademark Oflice file or records. but reserves all other rights
`whatsoever.
`
`BACKGROUND
`
`1. Field of the Invention
`
`The invention relates to graphics rendering systems. and
`more particularly. to software tools for assisting graphics
`application developers.
`2. Description of Related Art
`Graphics rendering is the process of computing a two-
`dimensional
`image (or part of an irnage) from three-
`dimensional geometric forms. An object is considered herein
`to be three-dimensional if its points are specified with at
`least three coordinates each (whether or not the object has
`any thickness in all three dimensions). A tenderer is a tool
`which performs graphics rendering operations inresponse to
`calls thereto. Some renderers are exclusively software. some
`are exclusively hardware. and some are implemented using
`a combination of both (e.g. software with hardware assist or
`acceleration). Renderers typically render scenes into a bufier
`which is subsequently output to the graphical output device.
`but it is possible for some renderers to write their two-
`dlmensional output directly to the output device. A graphics
`rendering system (or subsystem). as used herein. refers to all
`of the levels of processing between an application program
`and a graphical output device. In many prior art systems. the
`graphics rendering system is coextensive with the tenderer.
`that is. the tenderer is called directly by the application
`program without any intervening layers of processing.
`Graphics rendering systems typically feature an immedi-
`ate mode interface or it retained mode inta'face to the
`application program. An immediate mode interface is a truly
`procedural interface in which the application program speci-
`fies each geometric primitive to the graphics rendering
`system every time the image is to be rendered. The rendering
`system does not maintain a model database from scene-to-
`scene. although the application program may do so. Imme—
`diate mode interfaces are highly attractive for rendering
`scenes where the model is changing at each frame. such as
`for visualization of simulations. previewing of animation
`sequences. or reading a series of models from a file. On the
`other hand. an immediate mode interface requires that the
`entire scene he nansmitted via procedure tails to the ren-
`derer at each frame. resulting in high data bandwidth
`between application program and renderer. Also. the file
`
`10
`
`15
`
`35
`
`45
`
`55
`
`2
`format for a model is often simply a stream of drawing
`commands rather than the model itself. restricting its use-
`fulness as a data interchange format. Immediate mode
`interfaces are also less conducive to providing toolkit mod-
`eling functionality to the application program. and they
`usually preclude a user interface toolkit that operates on
`obfias in the scene.
`In a retained mode system. sometimes called a display list
`system. the graphics rendering system maintains a database
`representation of the three dimensional model. At each
`frame. the rendering system traverses the retained model
`database and draws it. This can be instigated by a single call
`by the application program to the graphic; rendering system.
`instead of a stream of drawing calls describing the entire
`scene. When the model changes. the application program
`edits or updates the model database and again asks the
`rendering system to render the scene. The benefits of a
`retained mode system include reduced bandwidth between
`the application program and any hardware accelerator. The
`file format of the model database also can be used easily as
`a data interchange format since it is not merely a list of
`procedure calls. The existence of an object database also
`provides an additional way of implementing a user interface
`toolkit and modeling functionality. Retained mode renderers
`can also cache rendering information and can also cache
`information for optimization of scene traversal. 0n the other
`hand. retained mode rendering systems have a higher oven
`head for editing the scene database. and they restrict appli-
`cation program design by forcing the scene into a system-
`defined data structure. usually a hierarchy. thus requiring
`many application programs to maintain a duplicate copy of
`the model in their own format.
`
`In Mark A. Tarlton and P. Nong Tarlton. "A Framework
`for Dynamic Visual Applications.” Proceedings of the 1992
`Symposium on Interactive 3!) Graphics. Cambridge. Mass.
`1992. pp. 161—164. incorporated by reference herein. there
`is described a retained mode rendering system which imple—
`ments a general purpose database system to organize the
`model rather than forcing the model to reside in a single
`system hierarchy. Such a technique attempts to provide the
`benefits of the retained mode system without the drawbacks.
`The following list describes some of the graphics reada-
`ing systems which. are currently available.
`GL7“. Silicon Graphics‘ GL is an irnrncdiate mode ren-
`derer used primarily for interactive graphics. 61..
`is
`described in “Graphics Library Programming Guide.” Sili-
`con Graphics Computer Systems. 1991. incorporated by
`reference herein. It was designed as an interface to Silicon
`Graphics IRIS rendering hardware and does not provide a
`file format. hard copy output. modeling capability. or user
`interface tools. 61.. supports simple display lists which are
`essentially mauos for a sequence of GI. commands. The GL
`routines perform rendering operations by issuing commands
`to the IRIS hardware.
`StarBaseT“. Hewlett-Packard's StarBase is an immediate
`mode system that is very similar to GL. sharing most of its
`{wines and disadvantages. StarBase is described in "Star-
`base Graphics Techniques. Hewlett-Packard Company."
`l99l. incorpa'ated by reference herein. Numerous device
`drivers are available for StarBase for outputting the rendered
`(to. two-dimensional) scene on difl‘erent graphics output
`devices ranging from plotters to high~end 3-D graphics work
`stations.
`
`is an immediate
`RenderManT“. Renda'Man. by Pixar.
`mode system designed primarily to support high quality
`rendering. RenderMan is described in Steve Upstill. "The
`
`14
`
`14
`
`

`

`5.777.621
`
`3
`RenderMan Companion.” Addison-Wesley. Reading. Mass.
`1990. incorporated by reference herein. As described in
`Tony Apodaca. ‘RenderMan Interface Specification Version
`4.0 Beta.” January. 1992. incorporated by reference herein.
`recent versions of the RenderMan specification provide new
`routines that bracket the existing RenderMan calls and allow
`difierent renderers to be used The tenderer is specified with
`a single call prior to rendering the scene. and it aflects the
`entire scene. See also Pixar. “Quick RenderMan Interface
`and Implementation Specification.“ 1992.
`incorporated
`herein by reference.
`PHIGS. PHIGS is described in PHIGS Committee. A. van
`Dam. chair. “PHIGS Flinctional Description. Revision 3.0."
`Computer Graphics. 22(3). 1938. pp. 125—218. incorporated
`by reference herein. and is a desoendent of OKs-3D.
`described in International Standards Organization. “Interna—
`tional Standard Information Processing Systems Computer
`Gaphics—Graphical Kernel System for ”three Dimensions
`(OKs-3D) Emotional Description." 130 Document Number
`8805: 198803). American National Standards Institute. New
`York. 1938. incorporated by reference herein. PHIGS was a
`connnitteeoesigned system for interactive 3-D graphics
`display. In PHIGS. the entire model database resides in a
`single hierarchy. Application programmers must learn a host
`of editing and hierardty manipulation calls in order to
`etfectiveiy use the system. PHIGS employs a single tenderer
`mat supports all the rendering modes specified available in
`PHIGS. and does not support alternative rendaers for pho-
`torealism or other efl‘ects.
`PBX. PEX is an extension to the X—Windows system.
`defined by a serial protocol (for transmitting data between an
`application program and the X—Windows system) and a set
`of semantics which were originally derived from PHIGS.
`PEX has several available APIs. all of which support
`retained~mode. immediate-mode. and mixed-mode function
`calls for drawing. changing state. etc. PEX is described in
`“PEX Protocol Specification. Version 5.0P-X Public Review
`Draft.” 14 Sep.. 1990. Massachusetts Institute of
`Technology. incorporated by reference herein.
`HOOPS”. HOOPS. by Ithaca Software. is described in
`Garry Megand and Bob Covey. “HOOPS Reference
`Manual. Version 3.0." Ilham Software. 1991. incorporated
`by reference herein It is a retained mode 3-D graphics
`system. which organizes the model in a hierarchy whose
`nodes are accessed through textual strings in much the same
`way that files in the UNIX file system are referenced Like
`PHIGS. HOOPS supports a single renderer. However.
`HOOPS provides more extensive scene editing functionality
`than PHIGS.
`
`DORE“l DORE. by Kubota. is an example of a 3-D
`graphics system with an object-oriented design.
`It
`is
`described in “Dore Programmer’s Guide.” Release 5.0.
`Kubota Pacific Counselor Inc. 1991. incorporated by refer-
`ence herein. DORE was designed so that scene data is
`renderabie by many kinds of renderers. rather than a single
`monolithic tenderer as provided by PHIGS. Renda'u's can-
`not be added dynamically to DORE. however. as the ren—
`dering methods are built into the system. In DORE. the
`choice of renderers is specified by setting the current ren—
`dering style in the DORE “View object“. DORE then also
`requires the application program to attach the 11106113] to the
`view object before rendering. This restrias DORE to uti—
`lizing only one renderer at a time. Then are other design
`considerations in Donia that use restrict it to using only one
`tenderer at a time: for example. only one set of global
`variables is provided for maintaining the rendering state.
`
`4
`
`DORE is a retained mode system. To relieve much of the
`hassle associated with editing the model hierarchy and to
`facilitate dynamic databases and user interaction. DORE
`supports application callback objects. whereby an applica-
`tion program defines a function to be called when the
`callback object is enowntered during scene traversal.
`Inventor”. Inventor is an object oriented 3-D graphics
`user interaction toolkit that sits on top of the GL graphics
`system. Like DORE. inventor supports multiple rendercrs
`by having a tenderer-specific “render" method for each
`object type. Inventor is it retained mode system with the
`entire scene residing in a “scene graph". Inventor has render
`action objects that take a model as a parameter. The renderer
`is selected by the rendering action that is used when drawing
`the model. The render action draws the entire model by
`traversing the model and calling the appop'iate rendering
`method for each objecL The usual render aaion is the GL
`rendering mode. Inventor is described in Werneclre. “The
`Inventor Mentor". Addison-Wesley (1994). incorporated by
`reference herein.
`
`Other references pertinent to the disclosure herein are the
`following. all incuporated by reference herein: Bergman.
`Fuchs. and Grant. “Image Rendering by Adaptive
`Refinement." Computer Graphics. 20(4). 1986. pp. 29—37;
`Catmull. “ASubdivision Algorithm for Computer Display of
`Curved Surfaces.” PhD. Thesis. Report UTEC-CSc-M—BB.
`Computer Science Department. University of Utah. Salt
`Lake City. Utah. December. 1974: Chen. Rushmeier. Miller.
`and Tin-net. “A Progressive Multi—Pass Method for Global
`Illumination." Computer Graphics. 25(4). 1991. pp.
`165—174; (Hark. ‘The Geometry Engine: A VLSI Geometry
`System for Graphicsf Computer Graphics. 16(3). 1982. pp.
`127—133; Foley. van Dam. Feiner. and Hughes. “Cotnpulet
`Graphics: Principles and Practice.” Addison-Wesley.
`Reading. Mass. 1990: Haeberli and Alreley. "I'he Accumu-
`lation Bufl’er: Hardware Support for High-Quality
`Rendering.” Computer Graphics. 24(4). 1990. pp. 309-318:
`Kelley. Winner. and Gould. “A Scalable Hardware Render
`Accelerator using a Modified Scanline Algorithm." Com-
`puter Graphics. 26(2). 1992. pp. 241—248; Maillot. "three-
`Dimensionai Homogeneous Clipping of Triangle Strips."
`Graphics Gems 11. Academic Press. Inc. San Diego. CaliI..
`1991. pp. 219—231: Nowell. Nowell. and Sancha. “A Solu»
`tion to the Hidden Stn'face Problem.“ Proceedings of the
`ACM National Conference. 1972. pp. 443—450; Pottnesil
`and Holfett. “FRAMES: Sofiware Tools for Modeling.
`Rendering. and Animation of 3D Scenes.” Computer
`Graphics. 21(4). 1987. pp. 85—93: Saito and Takabashi.
`"Comprehensihle Rendering of 3-D Shapes.” Computer
`Graphics. 24(4). 1990. pp. 197—206: Segal. Koroblrin. van
`Widenfelt. Foran. and Haeberli. "Fast Shadows and Lighting
`Effects Using Texune Mapping.” Computer Graphics. 26(2).
`1992. pp. 249—252: Billion and PHCCh. "A General‘l‘wo-Pass
`Method Integrating Specular and Dilfuse Reflection." Com-
`puter Graphics. 23(3). 1989. pp. 335—344; Snibbe. Herndon.
`Robbins. Conner. and van Darn. “Using Deformations to
`Explore 3D Widget Design.” Computer Graphics. 26(2).
`1992. pp. 351—352; Strauss and Carey. “An Object-Oriented
`3D Graphics Toolkit.” Computer ('iraphics. 26(2). 1992. pp.
`341-349; 'I‘urkowsii "Design Considerations for an Object-
`Oriented [3D Graphics] Metafile." Proceedings of the Third
`Eurographics Workshop on Object-Oriented Graphics.
`Charnpery. Switzerland. October. 1992. pp. 163~169;
`Venolja. “Facile 313 Direct Manipulation.” to appear in
`Proceedings of CHI ’93. ACMISIGCI-H. Amsterdam. May.
`1993: Venolia. “Automatic Alignment in Two and Three
`Dimensions.” submitted to SIGGRAPH ’93; and Wanget'.
`
`10
`
`15
`
`35
`
`45
`
`55
`
`65
`
`15
`
`15
`
`

`

`5
`
`6
`
`5 377.621
`
`"The Elfecl of Shadow Quality on the Perception of Spatial
`Relationships in Computer Generate Imagery.” Proceedings
`of the 1992 Symposium on Interactive 3D Graphics.
`Cambridge. Mass. 1992. pp. 3942.
`When a once-dimensional model is to be rendered into a
`scene for display. a classic trade-off exists between the speed
`of the rendering operation. on the one hand. and the quality
`of the result. on the other hand. For example. wire frame
`rendering operates at high speed. but produces a lowquality
`result. whereas a ray-tracer requires a much longer time
`period to render the same model. but can produce extremely
`high-quality results. Thus. an application program which
`permits interactive editing of a three-dimensional model
`may benefit by using a wire frame renderer to draw inter-
`mediate versions on a display. and by using a ray-tracer
`renderer to draw the final version for output. However. the
`interchangeability of renderers is awkward at best using the
`rendering systems described above. Moreover. substitution
`of one renderer for another provides only gross control over
`the specdlquality trade-of continuum. It would be desirable
`to permit an application program to sacrifice a little quality
`in order to gain a little speed. or vice versa. It would be
`desirable to provide a plurality of gradations on the speed)'
`quality trade-oil continuum so that a user or application
`program may select exactly the desired position in the
`nadwlf.
`
`In the past. application programs have provided users
`with control over various incidental parameters of the ten-
`daring process. and users have taken advantage of this
`control by selecting options which. as a side oiled. allied the
`speedi'quality trade—off. For example. by temporarily Dining
`06 certain lights. a user can hasten the rendering process at
`the expense of quality. The same eifect can be accomplished
`by culling objects from the scene before rendering. by
`making the output window smaller. by switching from filled
`mode to edge mode for a render-er that allows such selection.
`and by setting a coarser antialiasing level. In some systems.
`several of the parameters which alters the speedlquality
`trade-off are made accessible to the user in a single dialog
`box. in which the user can select an option for each of the
`controllable parameters. This is a highly piecemeal approadt
`to the problem Other appficarion programs do allow a user
`to select a gross quality for rendering. but usually the user's
`selection causes the program to call a completely different
`renderer. or at
`least causes the renderer to use grossly
`dilferent rendering methods.
`Accordingly. there is a need for a quality control moha-
`nism which allows an application program or user to select
`a desired point in the overall speedlquality rendering trade-
`olf. with relatively fine resolution on the continuum. and
`without being concerned with individual rendering pastu-
`eras.
`
`and rendering speed For example. each of the quality
`conu-ol data groups may include a quality control type
`variable for “level of detail“; those grwps at the lower end
`of the quality continuum may have dtose variables set to
`“low“. whereas data groups at the higher end of the con»
`tinuum may have this variable set to “high".
`In an aspect of the invention. each of the quality control
`data groups is associated with a respective quality index.
`Thus. an application program can select a point on the
`overall rendering speediquality renda'ing trade-03’. merely
`by selecting a quality control index value. Moreover. the
`application program can make the quality control index
`accessible to a user. for example in such an intuitive form as
`an iconic “quality knob". The quality knob may have a
`number of settings. for example. ranging from 0.0 to 1.0.
`each of which corresponds to a respective one of the quality
`control data groups. Thus the mechanism permits the user to
`have fine control over the rendu'ing speediquality rendering
`trade-off. without being concerned with adjustments to the
`individual rendering parameters.
`
`10
`
`15
`
`HRH DESCRIPTION OF THE DRAWINGS
`
`The invention will be described with respect to particular
`embodiments thereof and reference will be made to the
`drawings. in which:
`FIG. 1 is a simplified block diagram of a computer system
`implementing the present invention;
`FIG. 2 illustrates a sofnvare architecture employing the
`invention;
`FIG. 3 is a flowchart illustrating the oviaall flow of a
`program using the invention;
`FlG.disadetailofstep308inFIG.3;
`FIGS. 5. 7. 9. 11 and 12 illustrate object data structures in
`memory;
`FIG. 6 illustrates a class hierarchy used in an embodiment
`of the invention;
`FIG. 8 illustrates a m

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket