Visibility calculations for 3D computer graphics
DC CAFCFirst Claim
1. A method of reducing the complexity of visibility calculations required for the production of multi-dimensional computer generated images, said method performed on a computer, said method comprising the steps of:
- prior to an occlusion or invisibility relationship computation (known per se) being carried out on a plurality of surfaces from each viewpoint to be calculated;
for selected ones of said surfaces, determining for said viewpoint whether each said selected surface is (a) an always unoccluded surface, an always hidden surface, or a remaining surface;
or (b) an always unoccluded surface, or a remaining surface;
or (c) an always hidden surface, or a remaining surface;
wherein said remaining surface is a surface which is unable to be determined with certainty as to whether it is either unoccluded or hidden;
exempting from said occlusion or invisibility relationship computation those surfaces which are either always unoccluded or always hidden;
maintaining a record of said remaining surface; and
carrying out occlusion or invisibility relationship computations on said remaining surfaces.
1 Assignment
Litigations
1 Petition
Accused Products
Abstract
Disclosed is a method of reducing the complexity of hidden surface removal in 3D grapghic systems. A fuzzy projection (FF) of a surface (SU) as seen from a number of viewpoints (VP) in a bounding box (BB) is stored in a buffer (FA) having elements (FE). A combination of all the patches (PT) of the surface (SU) viewed form a fuzzy region (FR) where surfaces can be either visible, hidden, or unable to be determined with certainty as to whether or not visible/hidden. A non-fuzzy region (NF) describes those patches (PT) that are always visible.
83 Citations
32 Claims
-
1. A method of reducing the complexity of visibility calculations required for the production of multi-dimensional computer generated images, said method performed on a computer, said method comprising the steps of:
-
prior to an occlusion or invisibility relationship computation (known per se) being carried out on a plurality of surfaces from each viewpoint to be calculated;
for selected ones of said surfaces, determining for said viewpoint whether each said selected surface is (a) an always unoccluded surface, an always hidden surface, or a remaining surface;
or(b) an always unoccluded surface, or a remaining surface;
or(c) an always hidden surface, or a remaining surface;
wherein said remaining surface is a surface which is unable to be determined with certainty as to whether it is either unoccluded or hidden;
exempting from said occlusion or invisibility relationship computation those surfaces which are either always unoccluded or always hidden;
maintaining a record of said remaining surface; and
carrying out occlusion or invisibility relationship computations on said remaining surfaces. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 29, 30)
determining for each boundary of selected ones of said surfaces, the extent to which that boundary defines a boundary area which represents the viewing direction with which the edge of the boundary could be seen;
determining the projection of said selected ones of said surfaces and determining the projection of the boundary edges of said each selected surface;
subtracting from the surface projection the boundary edge projection to form an umbra region of said each selected surface; and
carrying out said occlusion or invisibility relationship computations on said umbra regions and said projection of said each selected surface.
-
-
10. A method as claimed in claim 9, wherein the extent of the boundary area is coincident with a scan-line representation of any of said selected surfaces.
-
11. A method as claimed in claim 9 or 10, wherein said calculations are further simplified by detecting, and not carrying out an occlusion or invisibility relationship computation for, surface areas which are totally hidden as a consequence of their depth from the current viewpoint and the presence of nearby surface areas of lesser depth when viewed from the current viewpoint, said detecting of said totally hidden surface areas comprising the steps of:
-
for each range of viewing directions related to said viewpoint allocating a depth plane to the projection surface of the corresponding surfaces in that viewing direction, each element of the projection surface having a plurality of depth values associated with the viewpoint viewing the corresponding surface area;
for each surface area selecting the depth value for each element and storing same to define the depth values of the projection surface, thus representing the depth value of the umbra region;
similarly determining the depth value of the surface projection; and
comparing the depth value of the umbra region with that of the surface projection, and if the former is smaller, then deeming that surface forming the surface projection is totally hidden.
-
-
12. A method as claimed in claim 11 wherein the selecting step selects the smallest of the approximate largest depth values of surfaces projected on each element.
-
13. A method as claimed in claim 11 wherein the determining step selects the smallest possible depth value of each element.
-
14. A method as claimed in claim 1, wherein said calculations are further simplified by detecting, and not carrying out an occlusion or invisibility relationship computation for, surface areas which are totally unoccluded, said detecting of said totally unoccluded areas comprising the steps of:
-
prior to the carrying-out step, creating and storing a projection for each of selected ones of said surfaces or surface elements and for each element of each stored projection, indicating whether the element is either;
(a) not within the projection of any of said selected surfaces;
(b) within the projection of a single one of said selected surfaces;
or(c) within the projection of more than one of said selected surfaces; and
scanning the projection of each said selected surface and where, in all elements for one projection are indicated by (b) in step creating, deeming the surface so projected is totally unoccluded.
-
-
15. A method as claimed in claim 1, wherein said surfaces are arranged in a hierarchy represented by varying levels of details.
-
29. A method as claimed in claim 11 wherein said calculations for said remaining surfaces are further reduced in complexity by:
-
establishing a plurality of accuracy levels required to be reached by form-factor computations of said remaining surfaces;
allocating one of said accuracy levels to each of said always occluded surfaces, to each of said always hidden surfaces, and to each element of said projection;
updating the accuracy level of each said surface with the accuracy level of the corresponding element of the projection if the latter is larger, and subsequently scan-converting each of said surfaces in order commencing with those having the highest accuracy level and ending with those having the lowest accuracy level, the updated accuracy levels indicating the maximum level of accuracy for form-factor computations for each said surface, and determining if the updated accuracy level for each said surface is higher than that which said surface can provide, and if so, recursively subdividing the corresponding said surface into a plurality of sub-surfaces until the corresponding accuracy levels of said sub-surfaces match that of said surface.
-
-
30. A method as claimed in claim 29 wherein said form-factor computations are performed using a ray-tracing technique or a hemi-cube technique.
-
16. A method of reducing the visibility related computations in an environment consisting of three-dimensional abstract or physical surfaces, said method comprising the steps of:
-
prior to a visibility computation being carried out, defining one or more projection surfaces (known per se) for the purpose of generating projections of surfaces or surface elements with respect to a current viewpoint or its possible occurrences;
for selected surfaces, determining whether those surfaces or their surface elements are always invisible to said viewpoint by computing and comparing their projection mappings on said projection surface or surfaces;
ignoring or treating specially some or all surfaces or surface elements which are always invisible to said viewpoint during the actual visibility or visibility related computations;
whereby the visibility related computations are reduced.
-
-
17. A method of reducing the visibility, radiosity or visibility related computations in an environment consisting of three-dimensional abstract or physical surfaces, said method comprising the steps of:
-
prior to a visibility computation being carried out, defining one or more projection surfaces for the purpose of the projection of surfaces or surface elements with respect to a current viewpoint;
dividing each of said projection surfaces into at least one regular or irregular grids;
defining a data structure which organizes computer storage for storing of projections on said grid;
for each of the selected surfaces or surface elements, projecting said surfaces or their surface elements onto the projection surfaces, computing grid cells which are under the projections;
ignoring or treating specially surface elements which are always visible to said viewpoint during the actual visibility or visibility related computations for said viewpoint;
whereby the visibility, radiosity or visibility related computations are reduced. - View Dependent Claims (32)
-
-
18. A method of storing computer generated image data, said method performed on a computer having a physical data store, said method comprising the steps of
identifying a plurality image portions visible to a viewpoint; -
selecting those portions having a predetermined image characteristic and storing same in an organization storage structure;
for a first one of said selected portions, allocating a portion identifier and storing same together with image data of said first portion;
for the remaining said selected portions, calculating a difference value identifier and storing same together corresponding image data of said selected portion, wherein any said selected portion is addressable by means of said portion identifier and one or more said difference value identifiers. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A method of reducing the complexity of calculations required for the production of multi-dimensional computer generated images or the reduction of multi-dimensional data to multi-dimensional data having at least one less dimension, said method performed on a computer, said method comprising the steps of:
-
observing an object surface with a current viewpoint, and defining a projection surface for said viewpoint;
creating a working surface and mapping each of said projection surfaces onto said working surface;
computing a region that contains all the mappings;
whereby the complexity of calculations required for the production of multi-dimensional computer generated images or the reduction of multi-dimensional data to multi-dimensional data having at least one less dimension is reduced.
-
-
31. A method of scan-converting a plurality of surfaces of a multi-dimensional computer generated image, said method performed on a computer, said method comprising the steps of:
-
creating a data structure comprising a plurality of two-dimensional arrays, each said array relating to a corresponding accuracy level for a projection of said surfaces as viewed from a viewpoint, the elements of each array being pixels on a projection plane;
for each said element, providing an associated sub-division indicator, the sub-division indicator being adapted to indicate an active sub-division of the corresponding said element;
initializing each said sub-division indicator to OFF;
for each patch of each said surface, defining a desired accuracy for same and scan-converting the projection including said patches in decreasing order of accuracy into corresponding elements of said structure, and setting the sub-division indicator for each said element of the highest accuracy level to ON if that element corresponds to one of said patches;
for each said element of the surface, if the sub-division indicator is ON, accessing the sub-elements of said element which are under the projection, and if the indicator is not ON, updating the patch in form to said sub-element, if the depth of the patch is less than the depth stored in the sub-element; and
accessing each said element and adding a form-factor contribution of the element to the form-factor of a record of the patch whose own identifier is stored in the patch.
-
Specification