throbber
EXHIBIT 1004
`
`EXHIBIT 1004
`
`

`

`Increasing Update Rates in the
`Building Walkthrough System with
`Automatic Model-Space Subdivision
`and Potentially Visible Set Calculations
`
`TR90-027
`July, 1990
`
`John Milligan Airey
`
`The University of North Carolina at Cha pel Hill
`Department of Computer Science
`CB#3175, Sitterson Hall
`Chapel Hill, NC 27599-3175
`
`·I
`
`Research supported in part by Office of Naval Research Contract #N00014-86-K-
`0680, and by the National Science Foundation, Grant #CCR-8609588.
`
`UNC is an Equal Opportunity/Affirmative A ction Institution.
`
`

`

`Increasing Update Rates in the
`Building Walkthrough System with
`Automatic Model-Space Subdivision and
`Potentially Visible Set Calculations
`
`by
`John Milligan Airey
`
`A Dissertation submitted to the faculty of the The University of North Carolina at Chapel
`Hill in partial fulfillment of the requirements for the degree of Doctor of Philosophy in the
`Department of Computer Science.
`
`Chapel Hill
`1990
`
`Approved by
`
`an Prins
`
`Reader
`
`

`

`John Milligan Airey. Increasing Update Rates in the Building Walkthrough
`System with Automatic Model-Space Subdivision and Potentially Visible
`Set Calculations (Under the direction of Frederick P. Brooks, Jr.)
`
`Abstract
`
`Pre-processing some building models can radically reduce the number of polygons
`processed during interactive building walkthroughs. New model-space subdivision and
`potentially visible set (PVS) calculation techniques, used in combination, reduce the
`number of polygons processed in a real building model by an average factor of 30, and a
`worst case factor of at least 3.25.
`
`A method of recursive model-space subdivision using binary space partitioning is
`presented. Heuristics are developed to guide the choice of splitting planes. The spatial
`subdivisions resulting from binary space partitioning are called cells. Cells correspond
`roughly to rooms.
`
`An observer placed in a cell may see features exterior to the cell through transparent
`portions of the cell boundary called portals. Computing the polygonal definitions of the
`portals is cast as a problem of computing a set difference operation on co-planar polygons.
`A plane-sweep algorithm to compute the set operations, union, intersection and difference,
`on co-planar sets of polygons is presented with an emphasis on handling real-world data.
`
`Two different approaches to computing the PVS for a cell are explored. The first uses
`point sampling and has the advantage that it is easy to trade time for results, but has the
`disadvantage of under-estimating the PVS. The second approach is to analytically compute
`a conservative over-estimation of the PVS using techniques similar to analytical shadow
`computation.
`
`An implementation of the Radiosity lighting model is described along with the issues
`involved in combining it with the algorithms described in this dissertation.
`
`ii
`
`

`

`Acknowledgements
`
`Andries Van Dam and the Brown Computer Graphics Group introduced me to
`computer graphics. That was a once in a lifetime experience that I won't forget.
`
`I feel fortunate to have been a part of the graphics cluster at UNC. Everyone in it, (and
`those who claim not to be in it), contribute to a great research environment. Dr. Fred
`Brooks, in particular, sets an example that has inpired many students, myself included.
`
`Finally, my family and my friends have given endless support and I thank them all,
`with special thanks to Hali.
`
`iii
`
`

`

`Table of Contents
`
`List of Figures .
`List of Tables
`.
`
`.
`.
`
`. .
`.
`.
`
`I. OveiView and Results
`. . .
`. . . . . .
`1.1 . UNC Building Walkthrough Summary
`1.1.1 Modelling . . .
`1.1.2 User Interface
`. . . . . . . .
`1.1.3 Display Compiler
`. . . . .
`. .
`1.2 Algorithm OveiView
`. . . . .
`. . .
`1.2.1 Properties of Architectural Databases
`1.2.2 Model Space Subdivision . . . .
`1.2.3 Potentially Visible Set calculations
`.
`1.3 Results
`.
`. . . . . . . . . .
`. .
`1.4 Speedup Methods Used by Other Interactive 3D systems
`1.4.1 Vehicle Simulations
`. . . . .
`. . .
`. .
`.
`1.4.2 Object Display Applications
`. . . .
`. . . .
`1.4.3 Environment Simulations
`. . . . . .
`. . .
`1.4.4 Other Pre-Computation-based Speedup Schemes
`1.5 Guide to the Chapters . . . . .
`. . . . . . .
`
`.
`
`. . .
`. .
`II. Model-Space Subdivision - searching for PVS coherence
`.
`. .
`2.1 The Partitioning Machinery
`. . . . . .
`. . . . .
`2.1.1 Partition.c: C code to compute interior node splitting planes
`and compute exterior node cell volumes
`2.2 Computing Portals . . . . .
`. . . . . . . . .
`2.2.1 Why Triangulation?
`. . . . . . . .
`. . .
`2.2.2 A Plane-Sweep Algorithm for Triangulation . .
`2.2.3 Generalizing the Simple Triangulation Algorithm
`2.2.4 Implementation . .
`. . .
`2.2.5 Applications
`. . . .
`. . . . . . .
`
`. .
`
`.
`
`. . .
`. .
`. . . .
`ill. Potentially Visible Set (PVS) Calculation
`3.1 Over-Estimating Visibility vs. Under-Estimating Visibility
`3.2 Sampling Algorithms . . . . .
`. . . . .
`. . .
`3.2.1 Environment-Independent, or Fixed, Sampling
`3.2.2 Environment-Dependent, or Targeted, Sampling
`3.3 Over-Estimation Methods
`. . .
`. . . . . . .
`3.3.1 Concave Shadow Casters . . . .
`. . . .
`3.3.2 Multiple Shadow Casters (possibly concave)
`3.3.3 A Naive Algorithm to Analytically
`Compute 2D Shadow Relationships . . .
`. .
`3.3.4 O'Rourke's worst case n4 example
`.
`. .
`.
`3.3.5 Extending the Analytic Algorithm to Three Dimensions
`3.3.6 Other approaches
`. .
`. . .
`. . .
`. . . .
`.
`. .
`3.3.7 An Over-Estimation Implementation .
`. . .
`.
`. . .
`3.4 Impressions and Comparisons of the Implemented Algorithms
`3.5 PVS computation taking account of viewing direction
`
`iv
`
`.
`.
`
`VI
`vu
`
`I
`2
`3
`3
`3
`5
`5
`7
`9
`10
`11
`12
`12
`13
`14
`15
`
`16
`16
`
`19
`23
`26
`27
`31
`36
`37
`
`40
`42
`43
`44
`51
`52
`54
`56
`
`58
`60
`61
`62
`63
`66
`71
`
`

`

`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`. .
`IV. A Radiosity Implementation .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`. .
`4.1 A Ray-Casting Approach
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`4.2 Interactive Light Manipulation
`4.3 Using a Physically Based Lighting Model on Non-Physical Models
`4.4 Adaptive Refmement
`.
`.
`
`V. Contributions and Future Work
`
`References
`
`Appendix A. Primary Source Code
`
`72
`72
`73
`74
`7 4
`
`78
`
`81
`
`86
`
`v
`
`

`

`List of Figures
`
`.
`.
`.
`.
`.
`. .
`. . .
`Figure 1.1 Walkthrough goals
`Figure 1.2 Overview of a virtual building system
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`. .
`.
`Figure 1.3 Display File Compilation
`Figure 1.4 Programs to compute model subdivision and PVSs
`Figure 1.5 Simple three room floorplan
`. .
`.
`.
`.
`.
`.
`.
`.
`Figure 1.6 Subdivided floorplan and corresponding tree data structure
`
`.
`
`.
`
`Figure 2.1 graphical view of the operation of partition ( >
`.
`Figure 2.2 Data structure for polygons in axial planes .
`.
`Figure 2.3 Portal Computation .
`. . .
`.
`.
`.
`.
`.
`.
`.
`.
`Figure 2.4 Maintenance of the second plane-sweep invariant
`Figure 2.5 Triangulation example
`. .
`.
`.
`.
`.
`.
`.
`.
`.
`Figure 2.6 Catching edge intersections
`.
`.
`.
`.
`.
`.
`.
`.
`Figure 2. 7 A complex transition vertex
`. .
`.
`.
`.
`.
`.
`.
`Figure 2.8 Modification to keep all edges present in the input
`Figure 2.9 Fixing Cracks .
`.
`. .
`
`.
`.
`Figure 3.1 The PVS problem
`Figure 3.2 Four types of visibility
`Figure 3.3 Ray-Line Segment Intersection
`Figure 3.4 Hemi-cube sample pattern
`.
`.
`Figure 3.5 Aligned hemi-cube sampling problems in a hallway
`Figure 3.6 The jittered hemi-cube sampling pattern .
`.
`.
`.
`.
`Figure 3.7 Cosine-weighted (radiosity) hemisphere pattern (off-axis view)
`Figure 3.8 Cosine-weighted (radiosity) hemisphere pattern (top view)
`Figure 3.9 Linear radius-subdivision hemisphere pattern
`Figure 3.10 Generating random target points on a polygon
`. .
`.
`.
`.
`.
`.
`.
`.
`.
`Figure 3.11 A shadow cone .
`.
`Figure 3.12 A shadow volume . . .
`.
`.
`.
`.
`.
`.
`.
`.
`Figure 3.13 Shadows cast by a concave polygon
`Figure 3.14 Computing the umbra cast by a concave polygon .
`Figure 3.15 Multiple shadow casters I .
`.
`.
`.
`Figure 3.16 Multiple shadow casters II
`.
`.
`.
`Figure 3.17 Linear Separators . . .
`.
`Figure 3.18 Solution to multiple shadow casters
`Figure 3.19 Example for 2-D algorithm
`.
`.
`.
`Figure 3.20 O'Rourke's worst case example
`.
`Figure 3.21 Linear separators in 3-D
`.
`.
`. .
`.
`.
`Figure 3.22 Counter example for direct visibility segment operations
`Figure 3.23 Reversing direction of projection
`Figure 3.24 Occlusion.operation
`. . .
`.
`.
`
`.
`.
`.
`Figure 4.1 A hierarchical polygon
`Figure 4.2 Choosing quadrilateral diagonals
`
`.
`
`vi
`
`I
`3
`4
`5
`6
`9
`
`20
`22
`23
`29
`30
`32
`34
`37
`39
`
`40
`41
`43
`45
`46
`47
`48
`49
`50
`52
`53
`54
`55
`55
`56
`57
`57
`58
`59
`60
`61
`63
`64
`65
`
`7 5
`7 6
`
`

`

`List of Tables
`
`Table 1.1 Speedup results
`.
`.
`.
`.
`.
`Table 3.1 Summary of timing comparisons .
`
`.
`.
`
`.
`.
`
`11
`70
`
`vii
`
`

`

`Chapter I
`
`Overview and Results
`
`This dissertation research was performed as part of the UNC Building Walkthrough
`project [Brooks86], [Brooks88], [Airey89d], [Airey90b]. The basic goal of the
`Walkthrough project is to create a virtual building environment, a system which simulates
`human visual experience with a building, without physically constructing the building. This
`is intended to aid the part of building design known as design development, when the
`architect explores, sometimes with the client, different design options.
`
`Part of the goal of the Walkthrough project can be stated simply as, "accurate images,
`real-time feel, and big models", (figure 1.1). Choosing these objectives and attempting to
`work on the area of our system that was most deficient forced us to focus on the pre(cid:173)
`processing partitioning approach, the pre-processing radiosity approach, and display-time
`adaptive refinement. The other part of the Walkthrough goal is a natural man-machine
`interface.
`
`accurate images
`
`Figure 1.1 The Walkthrough goal, "accurate images, real-time feel and big
`models", pushed us to develop pre-processing methods to improve update
`rates, adopt a pre-processing shading model, radiosity, and apply the
`concept of adaptive refinement during display.
`
`Many components of a building simulator, corresponding to many human senses, are
`important. My work within the Walkthrough project concentrates primarily on techniques
`to enhance visual simulation. Visual simulation can be separated into two components, a
`kinetic component, how the scene moves, and a realism component, how the scene looks. I
`sought to improve the kinetic visual experience by increasing update rates and to improve
`the illusion of reality by using the radiosity shading model [Goral84], [Cohen85],
`[Cohen88], [Wallace89], [Baum89], [Airey89]. For both components, one may use a
`
`1
`
`

`

`strategy of pre-computing as much work as possible prior to display. This dissertation
`describes techniques developed to pre-compute data structures which are used at display
`time to significantly increase the update rate. Our use of the radiosity shading model is
`described io chapter IV.
`
`The Walkthrough research team finds natural motion, the kinetic component, to be a
`very important component of visual simulation. We observe user behavior to be
`qualitatively different at six updates per second as compared to behavior at one update per
`second.
`
`• At one update per second (ups) or less, the system is painful to use. It is necessary to use
`an auxiliary two-dimensional floorplan display, or map view, to navigate.
`
`• As the update rate increases from one ups to around twenty ups, interactivity appears to
`increase rapidly (superlioearly) before levelling off. At around six ups, the virtual building
`illusion begins to work. It is possible to navigate with only the three-dimensional display,
`or scene view.
`
`In the fall of 1986, we were able to display a relatively spartan model of the Sitterson
`Hall Computer Science building, composed of 7125 polygons, at about four ups with the
`Pixel Planes 4 graphics machine [Fuchs85]. We wanted at least six ups and preferably
`twenty ups.
`
`We perceived the slow update rate as the greatest system deficiency. I developed a
`process that automatically associates sets of viewpoints, called cells, with potentially
`visible subsets (PVS) of the model. The display subsystem has to process only the PVS
`that is associated with the cell containing the current viewpoiot
`
`This process allows the Sitterson model to be displayed with at least 14 ups and often
`many more, depending upon the view, on the same Pixel-Planes 4 machine that in 1986
`yielded four ups.
`
`The update rate increase due to this process is dependent upon the data. Roughly
`speaking, the increase in update rate is proportional to the number of rooms in the building.
`
`1.1 UNC Building Walkthrough Summary
`
`A complete building walkthrough system has the following major parts (Figure 1.2).
`
`• A modelling subsystem for the architect, where the canonical model is maintained. We
`use AutoCAD.
`
`• An image-generation process for constructing a display file from the canonical model and
`generating the images. This includes the display-compiler subsystem and the display
`subsystem.
`
`• An interface subsystem that allows the use of many different man-machine interface
`devices for controlling viewing parameters and illumination of the model.
`
`2
`
`

`

`Canonical Model
`Constructed by
`the Architect
`
`design
`alterations
`
`model geometry,
`shading attribute;..s --~----.,.
`
`real-time
`display
`structures .---.L---..
`
`device inputs
`interpreted to give
`viewer position. orientation
`and viewing parameters
`
`other sensory
`output
`
`interface
`
`Figure 1.2. Overview of a virtual building system.
`
`1.1.1 Modelling
`
`The modelling subsystem must address ease of construction; (i.e. how many man-hours
`are required to create the model), model modification, and management of many different
`versions of the model (a task very similar to source code control [Tichy82]). For our
`modelling capabilities, we have adopted AutoCAD. This helps us establish partnerships
`with architects; these partnerships yield us datasets and system evaluation. We have only
`had limited partnerships so far.
`
`1.1.2 User Interface
`
`The interface subsystem must coordinate input devices with the display system. We
`have found that a flexible interface to a variety of devices is important. We already use
`several devices, often concurrently, and need to test new devices often. Frequent users
`such as architects may want complete freedom of motion Goysticks ), while an infrequent
`user, e.g., a client, may desire a restrictive but more natural interface, (a treadmill with a
`head-mounted display or big screen display).
`
`1.1.3 Display Compiler
`
`The display compilation task must translate the geometric and surface attribute
`information from the model into a form suitable for rapid display and interaction with the
`interface devices. Figure 1.3 depicts our current process of converting an AutoCAD dataset
`into a form suitable for a virtual world system. The rectangles represent programs. The
`ovals represent data files. The type of the data file is depicted by the Unix convention of file
`name extensions.
`
`3
`
`

`

`jAutoCAD~
`
`translators
`and filters
`
`radiosity
`
`model subdivision,
`potentially visible
`set com utation
`
`compile display file
`
`.disp
`
`Pixel
`Planes 4
`
`Figure 1.3 Display File Compilation
`
`The AutoCAD external files (.dxf extension) are parsed and converted to a simple
`format which consists entirely of polygons (.poly extension). Separate files are generated
`which contain surface attribute information (.sc extension), and the sets of lights for which
`we want to compute independent radiosity solutions (.circuit extension). Another file
`(.template extension) allows Phigs+ -like structures to be incorporated into the fmal display
`file [Van Dam88]. Instances and templates allow movable objects such as furniture, or
`temporary diagnostic objects such as cell portals, to be easily added to the display. The
`display compilation splits into the radiosity process and the model subdivision process.
`
`The radiosity process is briefly described in chapter IV.
`
`The main right fork in Fig 1.1.3.1. is the model subdivision process. It generates a
`recursive subdivision of the model space [Samat90]. The result of this subdivision process
`is a tree of splitting planes (.partition extension). The .partition file defmes subvolumes, or
`cells,of the model (.cell extension). Each of these cells is processed to determine the
`polygons that are potentially visible to an observer ranging freely inside the cell. These
`polygons are then associated with the cell. During display, the cell containing the current
`viewpoint is found, and only its associated polygons are rendered. Note that a particular
`polygon may be associated with many ~ells- i.e., visible from many subvolumes.
`
`The box labelled model subdivision, potentially visible set computation, (figure 1.3)
`contains the programs that are the principal subject of this dissertation. Figure 1.4 is an
`
`4
`
`

`

`expansion of that box in figure 1.3.
`
`The box labelled compile display file is a program whose main task is to combine all
`the information generated by previous programs into one coherent structure for display.
`Even though it serves primarily as a bookkeeper, it is quite a complicated program.
`
`name.xxxxx.cell
`
`Figure 1.4. The programs used to compute the model subdivision or
`partition, and identify potentially visible sets. Vis computes the PVS for a
`cell with a sampling algorithm. Occ computes the PVS for a cell with an
`analytic algorithm. Triv simply assigns the polygons inside a cell to the
`PVS and is usually used only to evalute the result of Partition.
`
`1.2 Algorithm Overview
`
`1.2.1 Properties of Architectural Databases
`
`Architectural databases possess special characteristics. Some of these properties
`follow. Techniques which exploit some of them are described later.
`
`1. Properties of polygon configuration.
`
`1.1. Most polygons are axial, i.e., normal to one of the coordinate axes.
`
`1.2 Most polygons are rectangles.
`
`1.3. Large planar surfaces are often structured into multiple, co-planar levels for
`modelling purposes, shading purposes, and realism detail purposes. For example, the
`
`5
`
`

`

`modeller may represent a ceiling with one polygon, but it may be diced into many
`smaller co-planar polygons to obtain a more accurately shaded image.
`
`1.4. The set of polygons that appears in each view changes slowly as the viewpoint
`moves, except when crossing certain thresholds, e.g., doors and windows. Consider
`a simplified three room floorplan (Figure 1.5). The set of polygons visible in a 360
`degree field of view from v1 does not change much until one nears v2. Then it stays
`roughly the same until one gets to v3 where it changes radically again.
`r----------.(2,2)
`
`x=l
`Figure 1.5 Simple three room floorplan with possible viewer path. The
`set of polygons visible in a 360 degree field of view from vl does not
`change much until one nears vz. Then it stays roughly the same until one
`gets to v3, where it changes radically again.
`
`2. Properties related to the inside-out viewing nature of environment models.
`
`2.1. Many viewpoints have a large portion of the model outside the field of view.
`
`2.2. Surface interreflections in shading calculations are very important for spatial
`comprehension inside a building.
`
`3. Properties related to depth complexity.
`
`3.1 Any image computed from an interior viewpoint will have many surfaces covering
`every pixel.
`
`3.2. Many surfaces are completely hidden; they do not contribute to the image at all.
`Besides the obvious example of back-facing surfaces, forward-facing surfaces in the
`next room or on the floor above or below do not contribute to the image.
`
`3.3.The fraction of hidden surfaces in a building is basically independent oftesselation
`required for shading. The number of surfaces hidden is a function of the number of
`walls, floors and ceilings. Tesselating them uniformly into small patches does not
`change the fraction of hidden surfaces. Thus the methods outlined in this dissertation
`should get results independent of shading tesselation.
`
`A simple quantitative analysis comes from [Gharachorloo89], [Sutherland74].
`Given P polygons projected onto the image plane, of average area A, a total of P•A
`
`6
`
`

`

`pixels must be calculated. Assuming the scene covers a screen of N pixels and tbat tbe
`polygons are overlaid in D layers everywhere, we have: P•A = N•D, where D is
`tbedeptb complexity. If walls are represented witb small individual tiles for shading
`purposes, tben P increases while A decreases and D remains constant.
`
`Additional detail such as fancy window frames and baseboard moldings, etc.has a
`similar but less easily analyzed effect. The fraction of hidden surfaces increases only
`slightly.
`
`1.2.2 Model Space Subdivision
`
`The pre-processing algorithm automatically subdivides model space or equivalently,
`viewpoint space, into cells. Define tbe union of visible polygons for all tbe viewpoints in a
`cell as the potentially visible set (PVS) for that cell. For any viewpoint in tbe cell,
`rendering the potentially visible set for that cell generates an image with no missing
`polygons. Since the size of tbe potentially visible set is usually much smaller tban the size
`of tbe model it came from, it takes less time to render. The rendering process involves at
`least transforming tbe polygon to tbe correct perspective view, and tben scan-converting it
`into the frame buffer if it appears in the viewing frustum and faces tbe viewer.
`
`For the simple three room floorplan given in figure 1.5, the labelled rooms
`approximate what one wants in a cell. If the doors were closed (and they had no glass) tben
`one could simply render the polygons in room2 when the viewpoint is in room2 and get
`roughly a three-fold increase in system update time. If tbe doors are open, one must add
`the polygons that can be seen through the doors from room2 to the potentially visible set
`for tbat cell.
`
`Even from tbis simple example it is obvious tbat certain model subdivisions are better
`tban otbers. The subdivision process should try to satisfy tbe following objectives.
`
`Objective 1. Minimize the size of the potentially visible sets. One wants cells whose
`potentially visible set is not much larger than tbe visible set of any one viewpoint in tbe cell.
`This ensures tbe best possible speedup.
`
`Objective 2. Minimize the number of cells; split cells only if the resulting child cells have
`significantly smaller PVSs.
`
`Besides these loosely stated objectives, a subdivision algorithm must satisfy other
`restrictions.
`
`Restriction 1. It must be easy to find the cell that contains the current viewpoint. This
`operation is performed for every update during display.
`
`Restriction 2. It must be automatic. No hand-tooling allowed. Architects cannot afford
`the time and may not have the expertise to hand-weave databases for esoteric display
`algorithms.
`
`Restriction 1 implies the use some type of data structure suitable for range searching. I
`chose recursive binary partitioning planes. Furthermore, it is sufficient to restrict their
`orientation to be normal to one of the coordinate axes. Other options include a regular 3D
`grid, or adaptive space subdivision techniques such as octtrees or k-d trees [Mehlhom84],
`[Samet90]. Other proposed approaches utilize the fact that adjacent cells are typically
`accessed in a sequential order and usually in tbe horizontal plane. This would allow a more
`
`7
`
`

`

`adaptive subdivision algorithm [Prins90]. Any of these data structures allow the cell
`containing a viewpoint to be found quickly.
`
`To satisfy Objective 1 and Restriction 2, I devised a heuristic function to choose the
`splitting planes used in the recursive binary subdivision scheme. Since one wants a
`splitting plane that is largely opaque, one may limit the choice of splitting planes to those
`that contain model polygons. The function evaluates each plane containing a polygon for its
`suitability as a separating plane. Criteria considered are
`
`• how evenly the plane separates the model, called the balance of the split,
`
`• how well the plane hides the two sides from each other, called the occlusion factor of the
`split. For example, a floor hides better than a wall with a door in it.
`
`• how little the plane splits individual polygons, since polygons that are split will have to be
`put in the potentially visible sets of both partitions. This is called the split factor.
`
`The metrics used quantify these criteria between 0 and I. A linear combination of these
`values, with the occlusion factor weighted most heavily, has proven to be successful, e.g.,
`
`partition priority = .5*occlusion + .3*balance + .2*split.
`
`To satisfy Objective 2, the recursive process terminates when no partitioning plane has
`a partition priority exceeding a user-defined threshold or when a maximum tree-depth is
`exceeded. The process generates a tree with interior nodes representing binary separating
`planes and leaf nodes representing cell volumes. Several people have noted that feedback
`from the second phase of the pre-processing algorithm, described in the next section, could
`be used to adjust the model-subdivision [Prins90].
`
`If one runs this function on the "planes" in our simple example floor plan, the wall that
`separates rooms 2 and 3 from room I, the plane y= 1, has a higher partition priority than the
`wall that separates room 2 from room 3, the plane x=l, based on its higher occlusion
`factor. This yields two cells, room I and the combination of room 2 and room 3.
`Recursively evaluating our heuristic function on these two cells suggests that room 2 and
`room 3 can be further split into two cells along the plane x=1 (figure 1.6).
`
`8
`
`

`

`r - - - - - - - - - , (2 ,2 )
`
`room!
`
`\
`
`room2
`
`room3
`
`y=l
`
`y=l
`
`~~
`
`x=l
`/ ~ rooml
`
`(0,0)
`
`x=l
`
`room2
`
`room3
`
`Figure 1.6. Left, the subdivided floor plan. Rooml is separated from
`room2 and room3 by the plane y=l. Room2 is then separated from room3
`by the plane x=l. Right, the corresponding tree data structure. Interior
`nodes represent splitting planes and leaf nodes represent cell volumes.
`
`1.2.3 Potentially Visible Set calculations
`
`After model-space subdivision, the subset of the model potentially visible to an
`observer inside each cell is computed and stored with the cell. If the cell is completely
`sealed, that is, its boundary is composed of opaque surfaces, then this is easy to do. The
`potentially visible set for the cell is simply the set of polygons that intersect the cell.
`However, if the cell has holes in its boundary, called portals, then the problem is more
`difficult.
`
`In our simple example, the only portals are doors. In real-life datasets, hallways,
`stairwells, elevator shafts, windows, and oddly shaped rooms give rise to other portals.
`Portal geometry is defined only implicitly as the absence of polygons in the boundary of the
`cell. Explicit polygonal descriptions of the portals are obtained by computing the boolean
`difference of the cell boundary and polygons lying in the cell boundary planes. Algorithms
`that perform boolean set operations on co-planar sets of polygons can compute the explicit
`polygonal definitions of the portals [0ttman85], [Weiler81], [Airey89c]. Section 3.2
`describes one such algorithm.
`
`We call the question of what external polygons one should add to the potentially
`visible set for a cell the polygon-to-cell visibility problem. This can be reduced to another
`problem. One really has to worry only about what can be seen from the cell portals, which
`can each be represented with polygons. Taking the union of what is visible from all the cell
`portals of a cell solves the cell-to-polygon visibility problem.
`
`Unfortunately, this is also a difficult problem. One needs to know what is visible from
`a portal which is an area, an infinite albeit bounded set of viewpoints. Call this problem
`the polygon-to-portal visibility problem.
`
`Computing the PVS is equivalent to identifying the polygons that receive direct
`illumination from an area light source [Nishita85], [Chin89], (the portal acts as an area light
`source). This is similar to the underlying problem of surface-to-surface reflection that
`
`9
`
`

`

`appears in models of global lighting effects, such as the radiosity lighting model. Other
`researchers have examined a related problem in two dimensions which deals with visibility
`from an edge [Avis86], [O'Rourke87].
`
`Since algorithms to compute the exact solution for the portal-to-polygon visibility
`problem are very complex, I have developed two complementary classes of algorithms to
`compute approximations to the exact solution. These are detailed in Chapter III.
`
`One class of algorithms uses point sampling and may underestimate the set of
`polygons to add to the cell's potentially visible set. This is analogous to the use of point
`sampling in radiosity solutions. In fact, the same ray-polygon intersection library is used in
`the Walkthrough radiosity implementation [Airey90b].
`
`Another class of algorithms establishes occlusion relationships among polygons. This
`is similar to the computation of shadow volumes [Crow77]. Since exhaustive computation
`of shadow volumes is expensive, the only alternative is to compute a partial solution. This
`may overestimate the set of polygons to add to the cell's potentially visible set. Since the
`exact solution is bracketed by these two algorithms, one hopes they can be combined into a
`more accurate algorithm in the future.
`
`Currently, these approaches are both expensive. In practice we use mostly the
`sampling-based methods because they are less expensive than the occlusion-relation based
`methods, although they do occasionally miss potentially visible polygons.
`
`Just as a radiosity solution can be accelerated with graphics workstation hardware
`[Baum90], the ability to generate environment samples quickly can be used to accelerate a
`sampling-based approach. For radiosity, the environment samples are not colored pixels,
`but polygon identifiers. In the case of radiosity, the polygon identifiers and the pixel
`location are used to construct form factors. In this case, after rendering the view from a
`sample point on the portal, any polygon whose identifier appears in the frame buffer is
`added to the PVS under construction. Note that reading the sample values, the polygon
`identifiers, back from the frame buffer must be efficient also; low bandwidth here can
`defeat this idea.
`
`1.3 Results
`
`I have run this algorithm on a few databases and compiled statistics to document the
`speedup results. The databases include
`
`• A 7125-polygon model of Sitterson Hall, Sittersonl. Walls are represented by single
`polygons with separate colors for the front-facing and back-facing sides. AutoCAD was
`not used for this model. (Modelled by Dana Smith from plans by Phil Freelon of O'Brien
`and Atkins)
`
`• A second model of Sitterson Hall was constructed with AutoCAD, Sitterson2. This
`model consists of over 22,000 polygons. It consists mostly of polygons that are designed
`to be seen from only one side. The walls have thickness and are modelled with a pair of
`polygons. The lobby portion of this model, lobby2, appears in a Siggraph '89 video
`[Airey89b]. Lobby2 has 3949 polygons. (Modelled by Penny Rheingans.)
`
`• The Orange United Methodist Church Fellowship Building. An early version with 7812
`polygons is called Churchl. (Model by Penny Rheingans from plans by Wesley McClure
`and Craig Leonard of McClure NBBJ.)
`
`1 0
`
`

`

`• A later version of the Church consists of over 12,000 model polygons. Since the radiosity
`process increases the number of shading patches that must be stored in display memory by
`about an order of magnitude, a 6037 -polygon subset was used because of display memory
`limitations. This subset, called C hurc h2, consists of the main meeting hall and a few
`adjoining rooms, including a fully furnished kitchen.
`
`• This dataset was later re-enlarged to 6974 polygons by adding part of the basement. This
`version of the church is called Church3. (John Alspaugh helped model and manage later
`church databases). The Church3 database is featured as a demo for the SGI Iris 4D VGX
`series machines.
`
`Table 1.1. summarizes the results of the model-subdivision algorithm on these
`datasets.
`
`The best results, as one would expect, comes from the two complete models,
`Sitters on]

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