US5299298A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Accelerated shadow testing method for three dimensional graphics rendering system
Assignee: HP Inc
•
Filing: 1991-02-28
•
Granted: 1994-03-29
•
Expires: 2011-02-28
Abstract
Abstract Shadow testing of a two dimensional projection of a three dimensional scene is accelerated by superimposing the projection with a plurality of scan areas, then examining points, and edges of objects, falling within each scan area. Points are identified as potentially shadowed points if bracketed by edges of any object, and the bracketing object is identified as a potential shadower of the potentially shadowed points. Potential shadowers and potentially shadowed points undergo a series of tests to rapidly determine which, if any, of the potential shadowers are actual shadowers of each potentially shadowed point.
Inventors
- 👤 Kells A. Elmquist
- 👤 David W. Arsenault
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-28 00:59
CPC Classifications
G; G06; G06T; G06T15/00; G06T15/50; G06T15/60
Claims Analysis
Total Claims: 40
Claim 1
Independent Claim
231 words
In a computer graphics renderer, a method for shading and displaying a three dimensional scene as a function of visibility of points on surfaces of objects in the three dimensional scene from a common point, such as a common point on a light source, comprising the steps of: a) preparing a two dimensional projection of the objects in the scene, including the points on the surfaces of the objects, from the common point, each object and point in the projection defining a projected object and projected point, respectively; b) superimposing a plurality of substantially parallel boundaries onto the projection, there being a space between each pair of immediately adjacent boundaries, each space defining a scan area, each scan area having a substantially uniform width determined by the size of the space between adjacent boundaries, there being a plurality of scan areas superimposed onto the projection; c) determining whether any projected points within each scan area are obscured from the common point by any projected object within the same scan area and identifying the projected points determined to be so obscured; d) recording the visibility of the projected points based upon the result of step (c) in a register; e) shading the three dimensional scene as a function of the recorded visibility of the projected points; and, f) displaying the shaded scene on a video display device associated with the graphics renderer.
Claim 2
Dependent Claim
231 words
In a computer graphics renderer, a method for shading and displaying a three dimensional scene as a function of visibility of points on surfaces of objects in the three dimensional scene from a common point, such as a common point on a light source, comprising the steps of: a) preparing a two dimensional projection of the objects in the scene, including the points on the surfaces of the objects, from the common point, each object and point in the projection defining a projected object and projected point, respectively; b) superimposing a plurality of substantially parallel boundaries onto the projection, there being a space between each pair of immediately adjacent boundaries, each space defining a scan area, each scan area having a substantially uniform width determined by the size of the space between adjacent boundaries, there being a plurality of scan areas superimposed onto the projection; c) determining whether any projected points within each scan area are obscured from the common point by any projected object within the same scan area and identifying the projected points determined to be so obscured; d) recording the visibility of the projected points based upon the result of step (c) in a register; e) shading the three dimensional scene as a function of the recorded visibility of the projected points; and, f) displaying the shaded scene on a video display device associated with the graphics renderer.
Claim 3
Dependent Claim
87 words
A method according to claim 1 wherein each projected object has edges, and step (c) comprises determining, for each scan area, whether any two edges of one projected object bracket one or more projected points on a projected object, identifying projected points bracketed by such edges as potentially shadowed points and identifying projected objects having such edges as potential shadowers of the potentially shadowed points, and defining potential shadowers that actually obscure potentially shadowed points from the common point as actual shadowers of the potentially shadowed points.
Claim 4
Dependent Claim
51 words
A method according to claim 2 wherein step (c) is performed by determining only whether any of the potentially shadowed points are actually obscured from the common point by any of the potential shadowers, whereby visibility of projected points is determined without testing all projected points against all other projected objects.
Claim 5
Dependent Claim
46 words
A method according to claim 2 wherein step (c) comprises: (i) selecting one of the potentially shadowed points; and, (ii) identifying the potential shadower on which the selected point is disposed and eliminating the so identified potential shadower as an actual shadower of the selected point.
Claim 6
Dependent Claim
116 words
A method according to claim 2 wherein step (c) comprises: (i) selecting one of the potentially shadowed points; (ii) identifying a projected point on each potential shadower of the selected point that is the closest to the common point than any other projected point on each such potential shadower; (iii) determining, for each potential shadower of the selected point, whether the projected point identified in step (ii) is closer to or farther away from the common point than the selected point; and, (iv) eliminating, as an actual shadower of the selected point, each potential shadower whose projected point identified in step (ii) is determined to be farther away from the common point than the selected point.
Claim 7
Dependent Claim
146 words
A method according to claim 2 wherein each potential shadower lies in a plane defined by the plane equation Ax+By+Cz+D=0, where A, B, C and D are constants and x, y and z are coordinates of points in the plane, and further wherein each potential shadower has a light side facing the common point and a dark side facing away from the common point, and step (c) comprises: (i) selecting one of the potentially shadowed points; (ii) determining, for each potential shadower of the selected point, based upon the plane equation and coordinates of the selected point, whether the selected point is disposed on the light side or dark side of the potential shadower; and (iii) eliminating the potential shadower as an actual shadower of the selected point if it is determined that the selected point is disposed on the light side of the potential shadower.
Claim 8
Dependent Claim
91 words
A method according to claim 2 wherein step (c) comprises: (i) selecting one of the potentially shadowed points; (ii) defining a ray in the two dimensional projection from the selected point to a location outside of a selected one of the potential shadowers of the selected point; (iii) determining whether the ray intersects the edges of the selected potential shadower an even or odd number of times; and, (iv) eliminating the selected potential shadower as an actual shadower of the selected point if the ray intersects an even number of times.
Claim 9
Dependent Claim
113 words
A method according to claim 1 wherein a predetermined number of scan areas is overlaid on the projection, and step (b) comprises: (i) determining the total number of projected objects; (ii) selecting an average number of projected objects to be overlaid by each scan area where said average number of projected objects is less than the total number of projected objects; (iii) dividing the total number of projected objects by the average number of projected objects to be overlaid by each scan area; and, (iv) selecting both the width of each scan area and the predetermined number of scan areas to be overlaid on the projection based upon the result of the division.
Claim 10
Dependent Claim
180 words
A method according to claim 1 wherein a predetermined number of scan areas is overlaid on the projection and step (b) comprises: (i) determining the total number of projected objects and dividing the total number of projected objects by a first predetermined quantity to arrive at a first estimate of the predetermined number of scan areas to be overlaid on the projection where the first predetermined quantity is less than the total number of projected objects; (ii) dividing the total number of projected points by a second predetermined quantity to arrive at a second estimate of the predetermined number of scan areas to be overlaid on the projection, the magnitude of the second predetermined quantity being substantially greater than the magnitude of the first predetermined quantity and less than the total number of projected points; (iii) selecting whichever one of the first and second estimates has the greatest magnitude; and (iv) selecting both the width of each scan area and the predetermined number of scan areas to be overlaid on the projection based upon the estimate selected in step (iii).
Claim 11
Dependent Claim
138 words
A method according to claim 1 wherein step (b) comprises: (i) preliminarily assigning a number of scan areas, each of a preliminary width, to overlay the projected objects; (ii) selecting a scan area and determining, for the selected scan area, whether the number of projected objects in the selected scan area exceeds a preassigned threshold; (iii) dividing the selected scan area into a plurality of scan areas of smaller width than the preliminary width if the number of projected objects in the selected scan area exceeds the preassigned threshold; (iv) comparing the number of projected objects in each scan area of smaller width against the preassigned threshold; and, (v) repeating steps (iii) and (iv) for the selected scan area until the number of projected objects in each scan area of smaller width does not exceed the preassigned threshold.
Claim 12
Dependent Claim
237 words
A method according to claim 1 further comprising the step of providing a register with an assignable number of memory locations and wherein step (b) comprises: (i) assigning a number of memory locations to the register and preliminarily assigning an equal number of scan areas each of a preliminary width to overlay the projection, there being memory locations corresponding to each scan area; (ii) successively scanning the scan areas to encounter projected objects overlaid thereby, and detecting whether new projected objects are encountered during each scan; (iii) storing in the register an identification of each projected object that is newly encountered during scanning, each identification being stored in one of the memory locations corresponding to the scan area in which the object was newly encountered; (iv) traversing the memory locations of the register, maintaining a count of the number of identifications stored therein and comparing the count to a threshold; (v) reassigning the number and width of scan areas preliminarily assigned in step (i) when the count is at least substantially equal to the threshold by redefining boundaries of plural ones of adjacent scan areas to define a new single scan area having a greater width than the preliminary width, the new single scan area overlaying all of the projected objects whose identifications were counted to reach the threshold; and, (vi) repeating steps (iv) and (v) for all scan areas succeeding the newly defined single scan area.
Claim 13
Dependent Claim
377 words
In a computer graphics renderer, a method for shading and displaying a three dimensional scene as a function of visibility of points on surfaces of objects in the three dimensional scene from a common point, such as a common point on a light source, comprising the steps of: a) preparing a two dimensional projection of the objects in the scene, including the points on the surfaces of the objects and edges of the objects, from a point of view of the common point, each object and point in the projection defining a projected object and a projected point, respectively, each projected point having a coordinate associated therewith for indicating a position thereof relative to other projected points and relative to the common point; b) superimposing a plurality of substantially parallel boundaries onto the projection, there being a spaced between each pair of immediately adjacent boundaries, each space defining a scan area, each scan area having a substantially uniform width determined by the size of the space between adjacent boundaries, there being a plurality of scan areas superimposed onto the projection; c) determining for each scan area, based upon the coordinates of the projected points, whether any two edges of one projected object bracket one or more projected points on a projected object, identifying projected points bracketed by such edges as potentially shadowed points and identifying projected objects having such edges as potential shadowers of the potentially shadowed points; d) testing only the potentially shadowed points against only potential shadowers of the potentially shadowed points to determine, based on the coordinates of the potentially shadowed points, whether any of the potentially shadowed points are actually obscured from the common point by any of the potential shadowers; and, e) recording the visibility of the potentially shadowed points based upon the result of step (d) in a register, and defining potential shadowers that actually obscure potentially shadowed points from the common point as actual shadowers of the potentially shadowed points; whereby visibility of projected points is determined without testing all projected points against all other projected objects; f) shading the three dimensional scene as a function of the recorded visibility of the projected points; and, g) displaying the shaded scene on a video display device associated with the graphics renderer.
Claim 14
Dependent Claim
377 words
In a computer graphics renderer, a method for shading and displaying a three dimensional scene as a function of visibility of points on surfaces of objects in the three dimensional scene from a common point, such as a common point on a light source, comprising the steps of: a) preparing a two dimensional projection of the objects in the scene, including the points on the surfaces of the objects and edges of the objects, from a point of view of the common point, each object and point in the projection defining a projected object and a projected point, respectively, each projected point having a coordinate associated therewith for indicating a position thereof relative to other projected points and relative to the common point; b) superimposing a plurality of substantially parallel boundaries onto the projection, there being a spaced between each pair of immediately adjacent boundaries, each space defining a scan area, each scan area having a substantially uniform width determined by the size of the space between adjacent boundaries, there being a plurality of scan areas superimposed onto the projection; c) determining for each scan area, based upon the coordinates of the projected points, whether any two edges of one projected object bracket one or more projected points on a projected object, identifying projected points bracketed by such edges as potentially shadowed points and identifying projected objects having such edges as potential shadowers of the potentially shadowed points; d) testing only the potentially shadowed points against only potential shadowers of the potentially shadowed points to determine, based on the coordinates of the potentially shadowed points, whether any of the potentially shadowed points are actually obscured from the common point by any of the potential shadowers; and, e) recording the visibility of the potentially shadowed points based upon the result of step (d) in a register, and defining potential shadowers that actually obscure potentially shadowed points from the common point as actual shadowers of the potentially shadowed points; whereby visibility of projected points is determined without testing all projected points against all other projected objects; f) shading the three dimensional scene as a function of the recorded visibility of the projected points; and, g) displaying the shaded scene on a video display device associated with the graphics renderer.
Claim 15
Dependent Claim
46 words
A method according to claim 12 wherein step (d) comprises: (i) selecting one of the potentially shadowed points; and, (ii) identifying the potential shadower on which the selected point is disposed and eliminating the so identified potential shadower as an actual shadower of the selected point.
Claim 16
Dependent Claim
115 words
A method according to claim 12 wherein step (d) comprises: (i) selecting one of the potentially shadowed points; (ii) identifying a projected point on each potential shadower of the selected point that is closer to the common point than any other projected point on each such potential shadower; (iii) determining, for each potential shadower of the selected point, whether the projected point identified in step (ii) is closer to or farther away from the common point than the selected point; and, (iv) eliminating as an actual shadower of the selected point each potential shadower whose projected point identified in step (ii) is determined to be farther away from the common point than the selected point.
Claim 17
Dependent Claim
146 words
A method according to claim 12 wherein each potential shadower lies in a plane defined by the plane equation Ax+By+Cz+D=0, where A, B, C and D are constants and x, y and z are coordinates of points in the plane, and further wherein each potential shadower has a light side facing the common point and a dark side facing away from the common point, and step (d) comprises: (i) selecting one of the potentially shadowed points; (ii) determining, for each potential shadower of the selected point, based upon the plane equation and coordinates of the selected point, whether the selected point is disposed on the light side or dark side of the potential shadower; and, (iii) eliminating the potential shadower as an actual shadower of the selected point if it is determined that the selected point is disposed on the light side of the potential shadower.
Claim 18
Dependent Claim
91 words
A method according to claim 12 wherein step (d) comprises: (i) selecting one of the potentially shadowed points; (ii) defining a ray in the two dimensional projection from the selected point to a location outside of a selected one of the potential shadowers of the selected point; (iii) determining whether the ray intersects the edges of the selected potential shadower an even or odd number of times; and, (iv) eliminating the selected potential shadower as an actual shadower of the selected point if the ray intersects an even number of times.
Claim 19
Dependent Claim
31 words
A method according to claim 12 wherein the scan areas are traversed in successive order and the determination of step (d) is performed on a scan area by scan area basis.
Claim 20
Dependent Claim
143 words
A method according to claim 17 further comprising the steps of: (i) providing a first register with a plurality of memory locations, there being memory locations corresponding to each scan area; (ii) successively scanning the scan areas to encounter projected objects overlaid thereby and detecting whether new projected objects are encountered during each scan; (iii) storing in the first register an identification of each projected object that is newly encountered during scanning, each identification being stored in one of the memory locations corresponding to the scan area in which the projected object was newly encountered, the identifications being stored in an order corresponding to the order of encounter of the projected objects; and, (iv) employing the contents of the first register to determine whether any newly encountered projected objects should be taken into account when performing step (d) for a particular scan area.
Claim 21
Dependent Claim
76 words
A method according to claim 18 further comprising the steps of: (i) providing a second register for storing an identification of all projected objects that should be taken into account when performing step (d); (ii) updating the second register with the contents of the first register as each scan area is scanned; and, (iii) deleting from the second register the identification of any projected object that is no longer encountered as each scan area is scanned.
Claim 22
Dependent Claim
35 words
A method according to claim 19 wherein the second register stores coordinates of the projected objects that should be taken into account when performing step (d), including coordinates indicative of edges of such projected objects.
Claim 23
Dependent Claim
97 words
A method according to claim 19 further comprising the steps of: providing a third register for storing the coordinates of potentially shadowed points encountered during a scan of a scan area; clearing the third register prior to initiating a scan of a scan area; storing in the third register the coordinates of the potentially shadowed points encountered during a scan of a scan area in an order corresponding to the order in which the potentially shadowed points are encountered during the scan; employing the contents of at least the second and third registers to perform step (d).
Claim 24
Dependent Claim
288 words
A method according to claim 19 wherein the second register stores coordinates of the projected objects that should be taken into account when performing step (d), including coordinates indicative of edges of such projected objects, further comprising the steps of: (i) providing a third register for storing the coordinates of potentially shadowed points encountered during a scan of a scan area; (ii) clearing the third register prior to initiating a scan of a scan area; (iii) storing in the third register the coordinates of the potentially shadowed points encountered during a scan of a scan area in an order corresponding to the order in which the potentially shadowed points are encountered during the scan; and (v) sorting the coordinates stored in the second register to correspond to an order in which the edges of the projected objects appear in the scan area scanned in the immediately preceding step (iii); wherein step (c) comprises: (i) sequentially selecting from the third register, in order of storage therein, coordinates of each of the potentially shadowed points; and, (ii) comparing the selected coordinates of each potentially shadowed point against a selected one of the stored coordinates of the projected object edges stored in the second register, to obtain the identification of the potential shadowers of each potentially shadowed point; and wherein step (d) comprises: (i) sequentially selecting each potentially shadowed point, in order of storage of their respective coordinates in the third register; (ii) comparing the selected point against each of its potential shadowers until an actual shadower of the potentially shadowed point is found; and, (iii) testing the next selected point in sequence against the actual shadower found in the immediately preceding step (ii) before testing against any other potential shadowers.
Claim 25
Dependent Claim
113 words
A method according to claim 12 wherein a predetermined number of scan areas is overlaid on the projection, and step (b) comprises: (i) determining the total number of projected objects; (ii) selecting an average number of projected objects to be overlaid by each scan area where said average number of projected objects is less than the total number of projected objects; (iii) dividing the total number of projected objects by the average number of projected objects to be overlaid by each scan area; and, (iv) selecting both the width of each scan area and the predetermined number of scan areas to be overlaid on the projection based upon the result of the division.
Claim 26
Dependent Claim
45 words
A method according to claim 23 wherein the selected average number of projections of objects to be overlaid by each scan area is in the range of about 100 to 400 provided that the total number of projected objects is greater than the average number.
Claim 27
Dependent Claim
180 words
A method according to claim 12 wherein a predetermined number of scan areas is overlaid on the projection and step (b) comprises: (i) determining the total number of projected objects and dividing the total number of projected objects by a first predetermined quantity to arrive at a first estimate of the predetermined number of scan areas to be overlaid on the projection where the first predetermined quantity is less than the total number of projected objects; (ii) dividing the total number of projected points by a second predetermined quantity to arrive at a second estimate of the predetermined number of scan areas to be overlaid on the projections, the magnitude of the second predetermined quantity being substantially greater than the magnitude of the first predetermined quantity and less than the total number of projected points; (iii) selecting whichever one of the first and second estimates has the greatest magnitude; and, (iv) selecting both the width of each scan area and the predetermined number of scan areas to be overlaid on the projection based upon the estimate selected in step (iii).
Claim 28
Dependent Claim
49 words
A method according to claim 25 wherein the magnitude of the first predetermined quantity is about 40 and the magnitude of the second predetermined quantity is about 200 provided that the first and second predetermined quantities are less than the total number of projected objects and projected points, respectively.
Claim 29
Dependent Claim
138 words
A method according to claim 12 wherein step (b) comprises: (i) preliminarily assigning a number of scan areas, each of a preliminary width, to overlay the projected objects; (ii) selecting a scan area and determining, for the selected scan area, whether the number of projected objects in the selected scan area exceeds a preassigned threshold; (iii) dividing the selected scan area into a plurality of scan areas of smaller width than the preliminary width if the number of projected objects in the selected scan area exceeds the preassigned threshold; (iv) comparing the number of projected objects in each scan area of smaller width against the preassigned threshold; and, (v) repeating steps (iii) and (iv) for the selected scan area until the number of projected objects in each scan area of smaller width does not exceed the preassigned threshold.
Claim 30
Dependent Claim
21 words
A method according to claim 27 wherein in the number of scan areas preliminarily assigned in step (i) is about 50.
Claim 31
Dependent Claim
13 words
A method according to claim 27 wherein the preassigned threshold is about 200.
Claim 32
Dependent Claim
237 words
A method according to claim 12 further comprising the step of providing a register with an assignable number of memory locations and wherein step (b) comprises: (i) assigning a number of memory locations to the register and preliminarily assigning an equal number of scan areas each of a preliminary width to overlay the projection, there being memory locations corresponding to each scan area; (ii) successively scanning the scan areas to encounter projected objects overlaid thereby, and detecting whether new projected objects are encountered during each scan; (iii) storing in the register an identification of each projected object that is newly encountered during scanning, each identification being stored in one of the memory locations corresponding to the scan area in which the object was newly encountered; (iv) traversing the memory locations of the register, maintaining a count of the number of identifications stored therein and comparing the count to a threshold; (v) reassigning the number and width of scan areas preliminarily assigned in step (i) when the count is at least substantially equal to the threshold by redefining boundaries of plural ones of adjacent scan areas to define a new single scan area having a greater width than the preliminary width, the new single scan area overlaying all of the projected objects whose identifications were counted to reach the threshold; and, (vi) repeating steps (iv) and (v) for all scan areas succeeding the newly defined single scan area.
Claim 33
Dependent Claim
19 words
A method according to claim 30 wherein the number of memory locations assigned in step (i) is about 10,000.
Claim 34
Dependent Claim
12 words
A method according to claim 30 wherein the threshold is about 200.
Claim 35
Dependent Claim
873 words
In a computer graphics renderer, a method for shading and displaying a three dimensional scene as a function of visibility of points on surfaces of objects in the three dimensional scene from a common point, such as a common point on a light source, comprising the steps of: a) preparing a two dimensional projection of the objects in the scene, including the points on the surfaces of the objects and edges of the objects, from a point of view of the common point, each object and point in the projection defining a projected object and a projected point, respectively, each projected point having a coordinate associated therewith for indicating a position thereof relative to other projected points and relative to the common point; b) superimposing a plurality of substantially parallel boundaries onto the projection, there being a space between each pair of immediately adjacent boundaries, each space defining a scan area, each scan area having a substantially uniform width determined by the size of the space between adjacent boundaries, there being a plurality of scan areas superimposed onto the projection; c) determining for each scan area, based upon the coordinates of the projected points, whether any two edges of one projected object bracket one or more projected points on a projected object, identifying projected points bracketed by such edges as potentially shadowed points and identifying projected objects having such edges as potential shadowers of the potentially shadowed points; d) testing only the potentially shadowed points against only potential shadowers of the potentially shadowed points to determine, based on the coordinates of the potentially shadowed points, whether any of the potentially shadowed points are actually obscured from the common point by any of the potential shadowers, defining potential shadowers that actually obscure potentially shadowed points from the common point as actual shadowers of the potentially shadowed points, the testing employing at least the following steps: I. (i) selecting one of the potentially shadowed points; (ii) identifying the potential shadower on which the selected point is disposed and eliminating the so identified potential shadower as an actual shadower of the selected point; and, (iii) repeating I (i) and (I) (ii) for all other potentially shadowed points then proceeding to II below; II. (i) selecting one of the potentially shadowed points; (ii) identifying a projected point on each potential shadower of the point selected in II (i) that is closer to the common point than any other projected point on each such potential shadower; (iii) determining, for each potential shadower of the point selected in II (i) not eliminated in I, whether the projected point identified in II (ii) is closer to or farther away from the common point than the point selected in II (i); (iv) eliminating as an actual shadower of the point selected in II (i) each such potential shadower whose projected point identified in II (ii) is determined to be farther away from the common point than the point selected in II (i); and, (v) repeating II (i) through II (iv) for all other potentially shadowed points then proceeding to III below; III. (i) selecting one of the potentially shadowed points, each potential shadower lying in a plane defined by the plane equation Ax+By+Cz+D=0, where A, B, C and D are constants and x, y and z are coordinates of points in the plane, each potential shadower having a light side facing the common point and a dark side facing away from the common point; (ii) determining, for each potential shadower of the point selected in III (i) not eliminated in I and II, based upon the plane equation and the coordinates of the point selected in III (i), whether the point selected in III (i) is disposed on the light side or dark side of the potential shadower; (iii) eliminating the potential shadower as an actual shadower of the point selected in III (i) if it is determined that the point selected in III (i) is disposed on the light side of the potential shadower; and, (iv) repeating III (i) through III (iii) for all other potentially shadowed points then proceeding to IV below; IV (i) selecting one of the potentially shadowed points; (ii) defining a ray in the two dimensional projection from the point selected in IV (i) to a location outside of a selected one of the potential shadowers of the point selected in IV (i) not eliminated in I, II and III; (iii) determining whether the ray intersects the edges of the potential shadower selected in IV (ii) an even or odd number of times; (iv) eliminating the potential shadower selected in IV (ii) as an actual shadower of the point selected in IV (i) if the ray intersects an even number of times; and, (v) repeating IV (i) through IV (iv) for all other potentially shadowed points; and, (e) recording the visibility of the potentially shadowed points based upon the result of step (d) in a register; whereby visibility of projected points is determined without testing all projected points against all other projected objects; f) shading the three dimensional scene as a function of the recorded visibility of the projected points; and, g) displaying the shaded scene on a video display device associated with the graphics renderer.
Claim 36
Dependent Claim
873 words
In a computer graphics renderer, a method for shading and displaying a three dimensional scene as a function of visibility of points on surfaces of objects in the three dimensional scene from a common point, such as a common point on a light source, comprising the steps of: a) preparing a two dimensional projection of the objects in the scene, including the points on the surfaces of the objects and edges of the objects, from a point of view of the common point, each object and point in the projection defining a projected object and a projected point, respectively, each projected point having a coordinate associated therewith for indicating a position thereof relative to other projected points and relative to the common point; b) superimposing a plurality of substantially parallel boundaries onto the projection, there being a space between each pair of immediately adjacent boundaries, each space defining a scan area, each scan area having a substantially uniform width determined by the size of the space between adjacent boundaries, there being a plurality of scan areas superimposed onto the projection; c) determining for each scan area, based upon the coordinates of the projected points, whether any two edges of one projected object bracket one or more projected points on a projected object, identifying projected points bracketed by such edges as potentially shadowed points and identifying projected objects having such edges as potential shadowers of the potentially shadowed points; d) testing only the potentially shadowed points against only potential shadowers of the potentially shadowed points to determine, based on the coordinates of the potentially shadowed points, whether any of the potentially shadowed points are actually obscured from the common point by any of the potential shadowers, defining potential shadowers that actually obscure potentially shadowed points from the common point as actual shadowers of the potentially shadowed points, the testing employing at least the following steps: I. (i) selecting one of the potentially shadowed points; (ii) identifying the potential shadower on which the selected point is disposed and eliminating the so identified potential shadower as an actual shadower of the selected point; and, (iii) repeating I (i) and (I) (ii) for all other potentially shadowed points then proceeding to II below; II. (i) selecting one of the potentially shadowed points; (ii) identifying a projected point on each potential shadower of the point selected in II (i) that is closer to the common point than any other projected point on each such potential shadower; (iii) determining, for each potential shadower of the point selected in II (i) not eliminated in I, whether the projected point identified in II (ii) is closer to or farther away from the common point than the point selected in II (i); (iv) eliminating as an actual shadower of the point selected in II (i) each such potential shadower whose projected point identified in II (ii) is determined to be farther away from the common point than the point selected in II (i); and, (v) repeating II (i) through II (iv) for all other potentially shadowed points then proceeding to III below; III. (i) selecting one of the potentially shadowed points, each potential shadower lying in a plane defined by the plane equation Ax+By+Cz+D=0, where A, B, C and D are constants and x, y and z are coordinates of points in the plane, each potential shadower having a light side facing the common point and a dark side facing away from the common point; (ii) determining, for each potential shadower of the point selected in III (i) not eliminated in I and II, based upon the plane equation and the coordinates of the point selected in III (i), whether the point selected in III (i) is disposed on the light side or dark side of the potential shadower; (iii) eliminating the potential shadower as an actual shadower of the point selected in III (i) if it is determined that the point selected in III (i) is disposed on the light side of the potential shadower; and, (iv) repeating III (i) through III (iii) for all other potentially shadowed points then proceeding to IV below; IV (i) selecting one of the potentially shadowed points; (ii) defining a ray in the two dimensional projection from the point selected in IV (i) to a location outside of a selected one of the potential shadowers of the point selected in IV (i) not eliminated in I, II and III; (iii) determining whether the ray intersects the edges of the potential shadower selected in IV (ii) an even or odd number of times; (iv) eliminating the potential shadower selected in IV (ii) as an actual shadower of the point selected in IV (i) if the ray intersects an even number of times; and, (v) repeating IV (i) through IV (iv) for all other potentially shadowed points; and, (e) recording the visibility of the potentially shadowed points based upon the result of step (d) in a register; whereby visibility of projected points is determined without testing all projected points against all other projected objects; f) shading the three dimensional scene as a function of the recorded visibility of the projected points; and, g) displaying the shaded scene on a video display device associated with the graphics renderer.
Claim 37
Dependent Claim
113 words
A method according to claim 33 wherein a predetermined number of scan areas is overlaid on the projection and step (b) comprises: (i) determining the total number of projected objects; (ii) selecting an average number of projected objects to be overlaid by each scan area where said average number of projected objects is less than the total number of projected objects; (iii) dividing the total number of projected objects by the average number of projected objects to be overlaid by each scan area; and, (iv) selecting both the width of each scan area and the predetermined number of scan areas to be overlaid on the projection based upon the result of the division.
Claim 38
Dependent Claim
180 words
A method according to claim 33 wherein a predetermined number of scan areas is overlaid on the projection and step (b) comprises: (i) determining the total number of projected objects and dividing the total number of projected objects by a first predetermined quantity to arrive at a first estimate of the predetermined number of scan areas to be overlaid on the projection where the first predetermined quantity is less than the total number of projected objects; (ii) dividing the total number of projected points by a second predetermined quantity to arrive at a second estimate of the predetermined number of scan areas to be overlaid on the projection, the magnitude of the second predetermined quantity being substantially greater than the magnitude of the first predetermined quantity and less than the total number of projected points; (iii) selecting whichever one of the first and second estimates has the greatest magnitude; and, (iv) selecting both the width of each scan area and the predetermined number of scan areas to be overlaid on the projection based upon the estimate selected in step (iii).
Claim 39
Dependent Claim
138 words
A method according to claim 33 wherein step (b) comprises: (i) preliminarily assigning a number of scan areas, each of a preliminary width, to overlay the projected objects; (ii) selecting a scan area and determining, for the selected scan area, whether the number of projected objects in the selected scan area exceeds a preassigned threshold; (iii) dividing the selected scan area into a plurality of scan areas of smaller width than the preliminary width if the number of projected objects in the selected scan area exceeds the preassigned threshold; (iv) comparing the number of projected objects in each scan area of smaller width against the preassigned threshold; and, (v) repeating steps (iii) and (iv) for the selected scan area until the number of projected objects in each scan area of smaller width does not exceed the preassigned threshold.
Claim 40
Dependent Claim
237 words
A method according to claim 33 further comprising the step of providing a register with an assignable number of memory locations and wherein step (b) comprises: (i) assigning a number of memory locations to the register and preliminarily assigning an equal number of scan areas each of a preliminary width to overlay the projection, there being memory locations corresponding to each scan area; (ii) successively scanning the scan areas to encounter projected objects overlaid thereby, and detecting whether new projected objects are encountered during each scan; (iii) storing in the register an identification of each projected object that is newly encountered during scanning, each identification being stored in one of the memory locations corresponding to the scan area in which the object was newly encountered; (iv) traversing the memory locations of the register, maintaining a count of the number of identifications stored therein and comparing the count to a threshold; (v) reassigning the number and width of scan areas preliminarily assigned in step (i) when the count is at least substantially equal to the threshold by redefining boundaries of plural ones of adjacent scan areas to define a new single scan area having a greater width than the preliminary width, the new single scan area overlaying all of the projected objects whose identifications were counted to reach the threshold; and, (vi) repeating steps (iv) and (v) for all scan areas succeeding the newly defined single scan area.
References Cited (Backward Citations)
US4625289A
Cited
US4897806A
Cited
US4928250A
Cited
US5088054A
Cited
GB2223384A
Cited
US5083287A
Cited
US5058042A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1997-03-28 | 1997-09-27 | 1998-03-29 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2001-03-28 | 2001-09-27 | 2002-03-29 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2005-03-28 | 2005-09-27 | 2006-03-29 | $7700.00 | Window Closed / Lapsed |