US5043922A - Graphics system shadow generation using a depth buffer - Google Patents
Graphics system shadow generation using a depth buffer Download PDFInfo
- Publication number
- US5043922A US5043922A US07/404,238 US40423889A US5043922A US 5043922 A US5043922 A US 5043922A US 40423889 A US40423889 A US 40423889A US 5043922 A US5043922 A US 5043922A
- Authority
- US
- United States
- Prior art keywords
- shadow
- data
- pixel
- pixel data
- determination
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B9/00—Simulators for teaching or training purposes
- G09B9/02—Simulators for teaching or training purposes for teaching control of vehicles or other craft
- G09B9/08—Simulators for teaching or training purposes for teaching control of vehicles or other craft for teaching control of aircraft, e.g. Link trainer
- G09B9/30—Simulation of view from aircraft
- G09B9/301—Simulation of view from aircraft by computer-processed or -generated image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
Definitions
- This invention relates to a graphics system for three-dimensional graphic representation, which can quickly draw a shadow of an object by utilizing hidden-surface hardware implementing Z-buffer processing including, e.g. scan line Z-buffer processing, to enable the presence or absence of a shadow to be determined with a simple system arrangement.
- Z-buffer processing including, e.g. scan line Z-buffer processing
- Shadow generation techniques are divided into the three techniques of shadow mapping, ray tracing and shadow polygon determination.
- the shadow polygon technique that will be described more fully later is a variation of the hidden-surface elimination process, and differs from the other two techniques in the fact that it can be incorporated in hardware and its processing speed can be improved by using the scan line process or the Z-buffer process.
- the present invention is directed to an improvement on the prior art shadow polygon process.
- Shadow polygon determination uses an imaginary object (region) called a shadow volume for generating shadows.
- a shadow volume is a shadow space generated by a light source and an object (a space inside of which becomes a shadow of the object) (FIG. 23).
- the shadow volume is represented by a practically infinite size polyhedron, and all of its sides are also represented by polygons (in practically infinite size). Each side is called a shadow polygon. Shadow polygon determination processing is to find the visible portion of a shadow by removing hidden-surfaces of other shadow polygons and objects.
- Shadow generation can be performed by sequentially inspecting the shadow polygons within each pixel until the line of sight reaches an object's surface, using a process such as the scan line process (a kind of hidden-surface removal).
- the first polygon is a polygon B0B2 on which the point a is located
- the first polygon is a shadow polygon S1 and the next one is a polygon B0B2 on which the point b is located
- the point c there are the shadow polygons S1 and S2 encountered midway, and the line of sight enter in the shadow volume at S1, but exits from it at S2. It can be eventually determined that the point c is out of the shadow volume.
- the most significant problem of the shadow polygon process lies in the fact that adding data about the shadow polygons to the existing polygon data increases the number of polygons to be processed, and that, even if the original object is small its shadow polygons occupy a large area on a screen so that the number of polygons impacting a pixel becomes unmanageably large.
- Drawing according to the algorithm is performed as follows by basically assuming that a Z-buffer (depth buffer) is modified to store information needed for shadow generation in addition to depth values.
- Z-buffer depth buffer
- FIG. 26 shows a modified (expanded) Z-buffer used in this technique.
- Each cell in the two-dimensional array corresponds to a pixel on the screen, and has a record structure consisting of five elements. Of course, one of them is the depth value (DEPTH).
- Others being stored are a pointer to the description of the object (OBJPTR), a normal vector on that pixel (NORMAL), and two pointers for representing the shadow (Sf, Sb).
- the object pointer and the normal vector need to be stored because the brightness value is not calculated during tiling polygons.
- the object pointer points description on a polygon seen from an appropriate pixel.
- One description record is used for each polygon.
- the description record contains attribute data of the polygon such as color (COLOR), transmittance (TRANSMITTANCE), glossiness (GLOSSINESS) and reflectance (REFLECTANCE) of the polygon that are required in the calculation of the brightness.
- the normal vector of the buffer is the one at the point of the polygon that occupies the pixel, and is calculated as a value interpolated during tiling the polygon.
- FIG. 26 illustrates the data required for prior art shadow generation methods.
- the Sf pointer points at a list of records that describe front shadow polygons (FSP: a shadow polygon in which an outward normal vector makes an acute angle with a vector directed to the viewpoint).
- Sb pointer points at a list of records that describe back shadow polygons (BSP: a shadow polygon in which an outward normal vector does not make an acute angle with a vector directed to the viewpoint).
- FSP front shadow polygons
- BSP back shadow polygons
- a record for the light source is not necessary. However, it is necessary to provide a memory capacity sufficient to store a number of records corresponding to the number of light sources for each pixel.
- the record contains an identifier for a light source (LIGHT-SOURCE I.D.), and flags and counters to determine whether or not it is in a shadow.
- shadow polygons are rendered in the buffer.
- processing occurs only on an appropriate record (corresponding to the light source generating the shadow polygon) in the list pointed at by Sf or Sb in the expanded Z-buffer.
- the shadow polygons are rendered by shadow volume. If a point on a pixel (a point set in the conventional polygon tiling) is behind a front shadow polygon, the POINT-SOURCE LEVEL of the appropriate record in the Sf list is set to 1.
- POINT-SOURCE LEVEL of the appropriate record in the Sb list is set to 1. If there is no record in the list, a new record for the light source that generates the shadow volume is added in the list, and then, the above-mentioned operation is performed.
- This processing alone is sufficient for a case where the light source is a simple point light source. That is, it is sufficient to set 1 in, for example, DARKNESS LEVEL to store the information that this point has been determined to be in a shadow. (Of course, POINT-SOURCE LEVEL and DARKNESS LEVEL are reset to 0 before starting the rendering of the shadow polygons.)
- the paper by Brotman and Badler addresses a light source of finite extent, and provides a technique that makes it possible to draw penumbrae.
- a light source of finite extent is approximated to a number of equivalent point light sources. Shadow volumes are generated for each point source.
- the degree of a penumbra is determined by a ratio between the number of point sources, which make a point in a shadow, and the number of point sources, which do not make the point in a shadow.
- the records in the Sf list are provided with counters OBJECT LEVEL that count the number of point sources belonging to a light source and making the point in a shadow.
- OBJECT LEVEL is incremented. At that moment, however, their algorithm processes the shadow volumes for each object polygon causing the shadow volumes (the object polygon corresponds to an object silhouette polygon OSP in FIG. 27). OBJECT LEVEL is accumulated for each object polygon, and the largest OBJECT LEVEL is made DARKNESS LEVEL for the pixel. This prevents duplicated counting of shadows in an area where multiple shadow volumes generated by different object polygons from a point source overlap with each other. Eventually, it supports the point sources for approximating the light source of finite extent by the following procedure:
- DARKNESS LEVEL is updated by the current DARKNESS LEVEL or OBJECT LEVEL, whichever is greater.
- this method requires a buffer capacity (even for a single point source) about 10 times that for a conventional Z-buffer. Complicated calculation is performed for the calculation of brightness by referencing various information on every pixel on the screen. The algorithm imposes too much emphasis on quality for interactive or real-time display. If a very high quality image is required, it may be sufficient to employ ray tracing or the like taking much time. However, a high speed is essential for animation and previewing data creation or a design process. A method essentially the same as this algorithm is disclosed in Japanese Published Unexamined Patent Application No. 61-133483.
- the present invention is directed toward providing a shadow generation method that makes it possible to directly determine a shadow of a non-convex object, and thus it is free from above described complexity and is able to generate shadows for a concave object without segmenting it into convex objects.
- this invention relates to a method that determines whether or not a point seen on a screen is in a shadow by using a parity of the number of intersections between the line of sight and shadow polygons belonging to a shadow volume.
- FIG. 1 is a block diagram illustrating the functional components of a processor embodiment according to the present invention.
- FIGS. 2A-B, 3, and 4 are diagrams illustrating the shadow generation situations addressed by the present invention.
- FIG. 5 is a block diagram showing an overall arrangement of components in a graphics system according to the preferred embodiment.
- FIGS. 6, 7, 8A-B, 9A-B, 10A-C, 11, 12, 13A-B, 14 and 15A-B are diagrams used to illustrate the operation of the processor according to the present invention.
- FIG. 16 is a block diagram showing the structure of the pipeline type processor of FIG. 1.
- FIG. 17 is a block diagram showing the functional components comprising each of the processing elements of the processor of FIG. 16.
- FIG. 18 is a flowchart illustrating the operation of the preferred embodiment of the present invention.
- FIG. 19 is a diagram illustrating data required for processing a light source of finite extent.
- FIGS. 20 and 21 are diagrams illustrating the concept and data required for processing multiple light sources of finite extent.
- FIG. 22 is a diagram illustrating the dummy span data employed when using a non-pipeline type processor.
- FIGS. 23, 24, 24A, 24B, 25, 26A-E, and 27 are diagrams used to described prior art shadow generation methods.
- FIG. 2(a) shows a shadow volume generated by a convex polygon
- FIG. 2(b) shows a shadow volume generated by a non-convex polygon
- FIG. 2(b) shows a shadow volume generated by a non-convex polygon
- FIG. 2(b) shows a shadow volume generated by a non-convex polygon
- FIG. 2(b) shows a shadow volume generated by a non-convex polygon.
- FIG. 2(b) shows a shadow volume generated by a non-convex polygon.
- FIG. 2(b) shows a shadow volume generated by a non-convex polygon
- the present invention relates to the method for determination of a shadow by determining whether or not there is a shadow based on the parity of the number of intersections between the line of sight and shadow polygons and whether or not the viewpoint is in a shadow volume.
- the invention independently determines the shadow for each pixel position by light source, then finds the number of cases where there is a shadow for each pixel position, and to determine the darkness of the shadow according to that number. In this case, only one type of counter needed to count the number of shadows found, which leads to a simplification of the arrangement. As described for the prior art method, two types of counter (storage areas) are typically required because it is first necessary to determine how many light sources cast shadows on a pixel position for each object silhouette polygon, and then to determine the largest number of times represents the darkness of the shadow on the pixel position.
- the present invention is arranged to classify and quantize these normal vectors making it possible to perform high speed processing.
- the invention is arranged to provide information that prescribes a range of processing in processing a shadow volume, and avoids unnecessary calculation.
- FIG. 5 shows a graphics system embodying the present invention.
- the graphics system generates pixel data by processing a polygon-segmented surface model, and displays the pixel data on a display screen.
- the basic functions of the graphics system include hidden-surface elimination, Gouraud shading, and shadow generation.
- a graphics application is executed on a host computer 1 to supply polygon data represented in world coordinates, that is, coordinates and color information of each vertex of a polygon, as well as similar shadow polygon data, to a transformation section 2.
- the transformation section 2 transforms the data to screen coordinates and depth data on the screen through a perspective transformation and a scale transformation.
- a span data generation section 3 generates span data for each scan line, on which the polygon is found, from the transformed polygon data by a technique such as DDA (digital differential analyzer).
- the span data is as shown in FIG. 7. It should be noted that the figure shows only data used for scan line Z-buffer processing and Gouraud shading for convenience. A description of this follows.
- the notation is described.
- the notation will be used on the description of the span data unless otherwise specified.
- On the rectangular coordinate system (screen coordinate system) it is assumed for convenience that the coordinate axes coincide with the scanning direction of the scan line, that is, the x coordinate value increases from left to right, and the y coordinate value increases from top to bottom.
- xn and yn are the x and y coordinates of the n-th vertex on the screen, respectively
- zn is the depth value of the n-th vertex
- in the brightness value of the n-th vertex (FIG. 6).
- the number of the brightness value for one point is plural, that is, one for each color, for example, red, green and blue.
- the number of the brightness value is one for one point to simplify the description.
- drawing is performed by linearly interpolating the depth value and the brightness data specified for each vertex of the polygon on the screen.
- Most systems first create span data for each scan line, and then interpolate the span data in the direction of the scan line (many workstations execute this interpolation with hardware).
- the span data means data that represents portions of the polygon to be drawn covering a specific line, and typically contains the following data (FIG. 7):
- XL and XR represent the x coordinates at each end of the span, and are assumed here for convenience to be ones at the left and the right ends, respectively.
- ZL and IL represent the depth value and the brightness value at XL, respectively.
- dZ and dI represent per pixel variation of the depth value and the brightness value when shifting from XL to XR on the scan line (the difference is a constant because of the linear interpolation).
- the interpolation of the span data is conducted from XL or XR by adding dZ and dI to the depth value and the brightness value for each pixel.
- dI is eliminated because coloring is performed with constant brightness for the same polygon.
- the preferred embodiment of the present invention expresses the span data as follows by including attribute data (ATTR) in addition to the above data:
- the attribute data is to distinguish shadow polygons from ordinary polygons and to perform shadow generation, and takes the following four values.
- EV is provided because it is necessary to perform the shadow finding for each shadow volume as described above. That is, it is necessary to determine at each pixel position for each shadow volume whether or not a point occupying a pixel position is in a shadow from the parity of the number of intersections between a shadow polygon and the line of sight. Therefore, the span data is processed for the polygons belonging to one shadow volume. The end of each shadow volume is represented by EV.
- IF relates to the position of a viewpoint. That is, to inspect the parity by the shadow finding flag, the flag is inverted each time that a shadow polygon intersects the line of sight. However, as described in FIG. 4, if the viewpoint is contained in the shadow volume, the parity in determining the shadow is inverted. Thus, if the viewpoint is contained in the shadow volume, the shadow finding flag is inverted by providing the attribute IF for one of the span data for the shadow volume. Whether or not the viewpoint is contained in the shadow volume can be determined by performing the hidden-surface removal on the object polygon or object volume, which is the original in creating the shadow volume, together with the viewpoint by using the light source as a temporary viewpoint. If the original viewpoint is visible, it is out of the shadow volume, and, if it is invisible, it is contained in the shadow volume.
- a pixel conversion section 4 is used to generate, from the span data, pixel data on which the hidden-surface removal, Gouraud shading and shadow generation are performed.
- the pixel conversion section 4 arranges the span data of each polygon from the span data generation section 3 by scan line as shown in FIG. 8, and stores them in a display list memory.
- L indicates the scan line
- S indicates the span. It should be noted that the figure is exaggerated. This storing is done because a pipeline type processor 6 in the later stage receives the span data of all polygons by scan line, and generates pixel data.
- the pixel data from the pipeline type processor 6 is stored in a frame buffer 7, and supplied to a CRT (cathode ray tube) 8.
- the main functions of the pipeline type processor 6 are those shown in FIG. 1. Their detailed arrangements will be described later.
- Processor 6 may encounter a problem determining the order in which to process the span data when the span data on a given scan line are interpolated data for each pixel.
- the order is:
- FIG. 11 shows an example of input in the processing according to such order (processing proceeds from right to left).
- processing is executed by scan line.
- the processing for a line is as follows. First, the span data on ordinary polygons, that is, the polygons representing objects, is supplied to a hidden-surface removal section 9 and a shading section 10.
- the hidden-surface removal section 9 interpolates the depth data z of each pixel position on the appropriate span data, and compares it to the depth data z' in a Z-buffer 11 (FIG. 9(a)).
- the Z-buffer contains the depth data of a previous polygon. However, if this is the first data on the scan line, an initial value, for example, the background depth position, is stored.
- the hidden-surface removal section 9 is arranged to leave the depth data at the value nearest the view point at each pixel position. In the example in FIG. 9(a), circled input data z are nearer the viewpoint than the data z' in the Z-buffer, and thus, the content of the Z-buffer is changed as shown in FIG. 9(b).
- the shading section 10 generates a shaded pixel value I based on the span data.
- the shading section 10 updates data I' in a pixel value buffer 12 by reflecting the processing in the hidden-surface removal section 9. That is, it is arranged to write those new pixel values 1, which are generated base on the span data, and the depth data z of which are determined to be newly written in the Z-buffer 11, in the pixel value buffer 12 (FIG. 9 (b)).
- Such processing is executed for the span data of all polygons that are on the appropriate scan line, so that only data at the side nearest to the appropriate scan line are displayed.
- the shadow polygons are processed.
- the span data of each shadow polygon is sequentially supplied to a pseudo hidden-surface removal section 13.
- This section interpolates the depth data z of the shadow polygons from the span data, and compares them with the defined depth data z' in the Z-buffer 11 after the above hidden-surface removal at each pixel position. At that moment, if the depth data z' in the Z-buffer 11 is deeper than the depth data z of the shadow polygon at the pixel position, the line of sight is determined to cross the shadow polygon.
- FIG. 10(b) shows a case where ATTR is IF, that is, a case where the viewpoint is in the shadow polygon, and therefore, the manner of inversion differs from the other.
- ATTR is EV, so that the temporary shadow finding flag data is transferred to a final shadow finding flag buffer 15.
- the functions of the pseudo hidden-surface removal section 13 are virtually same as those of the hidden-surface removal section 9, which is commonly used for this.
- the defined final shadow finding flag data is supplied to a modification section 16 to change the pixel values for generating shadows.
- the shadow polygons created from the edges BI and KL For example, it is impossible to conventionally make the shadow polygon created from the edge BI a polygon surrounded by a line beyond a point B through the point B from the light source, a line beyond a point I through the point I from the light source, and the edge BI.
- the shadow finding process according to the embodiment does not permit shadow polygons to intersect with each other in the same shadow volume, the shadow polygon created from the edge BI as above intersects the shadow polygon created from the edge KL.
- a shadow polygon for the edge BI is created by finding an intersection point T between the plane containing the edge BI and the light source both and the edge KL.
- a shadow polygon is created by using the line TL. It is possible by performing the hidden-surface removal on the volume from the light source to determine which edges of an object volume are used for creating the shadow polygons, to find edges that should be treated in the same manner as the above-mentioned edge BI, and to find which other edge the shadow polygon created from the edge intersects. This hidden-surface removal is performed only on the polygons constructing the volume, and requires a smaller amount of calculation.
- the shadow finding process according to the invention can simultaneously treat a number of shadow volumes unless shadow polygons overlap each other (it is not necessary to perform the shadow finding by shadow volume).
- the operation becomes complicated for eliminating intersections of polygons with each other (corresponding to creation of the shadow polygon for the edge BI).
- the present invention uses the parity of the number of intersections between the line of sight and the shadow polygons for finding the shadow. This causes a problem at a joint between shadow polygons belonging to a shadow volume.
- span data is created by making (X1, X2) and (X2, X3) (XL, XR) for AB and BC
- the intersection at X2 or point B is counted twice, and points on the line of sight passing through the point B are not found to be in a shadow even if they are in the region ABCDEF. Rather, points outside of the region may be found to be in a shadow.
- the span data of shadow polygons are created in such a manner that the range (XL, XR) of the span does not overlap one another for each set of shadow polygons sharing an edge.
- the range of span is specified in the previous example.
- the pipeline type processor 6 will now be described in detail.
- FIG. 16 shows an overall diagram of a pipeline type processor 6.
- the span data of ordinary polygons and shadow polygons on one scan line are sequentially input to the processor.
- the span data first for the ordinary polygons and then for the shadow polygons are sequentially input and processed.
- a pixel value I and a final shadow finding flag FSF are output for each successive pixels.
- Processing elements PE one for each pixel in one scan line (1024 for this example) are arranged in the processor 6 as a chain.
- Each processing element PE has a specific value ID. The value is 0, 1, 2, 3, . . . 1023 from the input side of the span data.
- Each processing element PE corresponds to one pixel of a scan line.
- a processing element PE receives the span data from the previous processing element PE, changes its internal state if required, and also the span data, and supplies them to the processing element PE in the next stage.
- FIG. 17 shows details of the processing element PE.
- the processing element PE consists of a range determining section 17, a Z-buffer section 18, a shadow finding section 19, and a shading pixel value buffer 20.
- the range determining section 17 receives the lateral limit values XL and XR of the span.
- This section supplies an enable signal EN1 to the Z-buffer section 18 when its ID lies between XL and XR.
- the signal EN1 is also supplied to the shadow finding section 19 and the shading pixel value buffer 20. Therefore, the processing element PE only operates on the span data relating to itself.
- the Z-buffer 18 is arranged to store the depth data of a corresponding pixel position.
- the Z-buffer 18 also receives values Z and dZ from the span data, and calculates the depth data of the pixel position (Z+dZ).
- the span data relates to an ordinary polygon
- an enable signal EN3 to invert the temporary shadow finding flag TSF. This corresponds to a case where the shadow polygon is intersected by the line of sight.
- the shadow finding section 19 is entered with ATTR among the span data. If ATTR is IF, the temporary shadow finding TSF is inverted. This corresponds to a case where the viewpoint is in the shadow volume. If ATTR is EV, the content of the temporary shadow finding flag TSF is transferred to the final shadow finding flag FSF (FSF ⁇ FSF or TSF).
- the shading pixel value buffer 20 is supplied with I and dI from the span data.
- the shading pixel value buffer 20 performs Gouraud shading based on I and dI, and performs writing in the buffer according to the enable signal EN3.
- the shadow finding section 19 and the shading pixel value buffer 20 supply the final shadow finding flag and the pixel value, respectively.
- FIG. 18 is a flowchart illustrating the above-mentioned processing. Because the content of the flowchart is self-explanatory from the figure, its detailed description is omitted.
- a description of how to create a shadow of a light source of finite extent is provided.
- the light source of finite extent is treated by approximating it with a number of equivalent point light sources. Shadow volumes are created for each point source, and a degree of penumbra is determined by the ratio of the number of point sources which cast a shadow on a point, to the number of point sources which do not cast a shadow on the point.
- This method for finding the degree of penumbra is a good approximation in case where an object to be displayed is separated from the light source when comparing it with the extent of the light source. It is necessary to count for each pixel how many point sources cast shadows over the points occupying the pixel. To this end, one counter (P -- COUNT) is prepared for each pixel on the scan line on which the span data is interpolated.
- This example differs from the aforementioned algorithm by Brotman and Badler, but processes the shadow volumes for each point source (see FIG. 19). This makes operation possible with only one type of P -- COUNT counter.
- the algorithm by Brotman and Badler requires two storage areas with multiple bit width of OBJECT LEVEL (equivalent to P -- COUNT) and DARKNESS LEVEL for each pixel.
- an attribute called EL End span by a Light source
- EL End span by a Light source
- the brightness value is complemented and determined (the shadow is not considered).
- the brightness value used is for accumulation of light from all point sources.
- Multiple light sources can be supported by natural extension of the above technique.
- One way of extension is to interpolate the brightness value on the buffer for each light source when expanding the ordinary span data.
- Another way is not to interpolate the brightness value in expanding the span data, but to store identifiers and normal vectors for the polygon, and then to calculate the brightness value pixel after pixel.
- the former requires a buffer that stores the brightness values and the number of the light sources for each pixel, while the latter requires reference to various information in performing the calculations for each pixel, and takes much time even if it is incorporated in hardware.
- these two methods are expected to be executed at a high speed because circuit integration and speed will be increased in the future.
- An alternate embodiment of the present invention employs a technique that introduces an approximation method of accumulated brightness calculation through modification of the above two methods, and trades off increased hardware to achieve high speed calculation for each pixel.
- the above described technique is used except for the calculation of the brightness values and other processing for multiple light sources where the alternate embodiment may be used.
- the method for calculating the brightness is first described. It is assumed that the light source is substantially separated from the object with the result that the direction of light from each light source is constant. If this assumption is not met it becomes necessary to carefully calculate the brightness for each pixel based on the normal vector and other information, or to find direction vectors from the light source to each pixel by expanding and storing the span data, which increases amount of calculation or hardware. The following discussion requires the assumption to be met.
- the brightness value is found using the fact that, if a normal vector is identified, contribution on the point from each light source can be determined. However, it is not efficient or fast to calculate the brightness value from the normal vector after completion of the expansion of the span data and the shadow finding (the algorithm by Brotman and Badler essentially does this).
- the span data is first expanded by using the brightness value, which accumulates the contributions of all the light sources with assumption of no shadow, using the normal vectors of the polygons together with the span data elements. Then, the brightness value is corrected for each pixel by using the normal vector and the information of the shadow. If this is performed the same way it takes as much time as the case where the calculation is performed on only the normal vector.
- An improvement can be obtained by using the normal vector, classified and somewhat coarsely quantized, to look up a table that contains indexes indicating those classes, and a ratio of how much the brightness value is corrected (reduced) by the shadow cast by each light source.
- the corrected brightness value is determined to be the value obtained from the table multiplied by the brightness value held in the pixel.
- the index for classifying the normals is a value of 12 bits
- the amount of increase in the storage for each pixel when the above-mentioned two flags of DSF and FSF are added is M+12+2 as compared with the case where no shadow generation is performed.
- NID Normal Index in Direction
- an array of flags for the point sources is represented as LM[n](Light Mask: LM[0 . . . M-1]).
- BT[n, m] Bright Table: BT[0 . . . 6 ⁇ N ⁇ N-1, 0 . . . 2 M-1 ]). In this table, values are previously calculated and set from the combination of directions of the normal vectors, the light sources casting shadows and directions of light from the light sources.
- the span data being used has the following format including the classifying index to the normal vector of the polygon (NID):
- the terms relating to the normal vector and the brightness are not used in the shadow polygon (they have no meaning).
- the term relating to the brightness of the span data for the ordinary polygon uses the sum of contributions that do not take into consideration the shadows created by all point sources.
- the shadow finding method, the method for checking the shadow finding flag, and the technique for processing the shadow volume for each light source of this embodiment can be used as they are even for generation of an image including shadows for multiple light sources of finite extent.
- processing is executed for all pixels on a scan line.
- the above technique is the best suitable for hardware that is a pipeline (or systolic array) type, and accordingly has a processing mechanism corresponding to all pixels on the scan line.
- the execution is performed in software, or if there is no processing mechanism corresponding to all pixels on the scan line, it is not efficient to check TSF for all pixels.
- the dummy span data is identified by an attribute of CH, (the associated span data elements of depth value and brightness value are not significant and may be ignored.)
- the XL and XR of the dummy span data (with the attribute of CH) are the minimum value of XL and the maximum value of XR respectively, of span data of other shadow polygons of the shadow volume.
- this invention finds the parity of the number of intersections between shadow polygons, which define a shadow volume, and the line of sight, and determines whether or not there is a visible shadow on a pixel position based on the parity and the determination of whether or not the viewpoint is in the shadow volume.
- a concave object shape need not be segmented into convex objects as is conventionally done, which simplifies the processing. It becomes possible to simplify the arrangement because information on the shadow polygon, whether it is facing toward or away from the viewpoint is not needed.
- the arrangement is simplified by finding the number of shadows for each light source (reducing the number of types of counters), and can be further significantly simplified by using a quantized normal vector. The speed can be improved when using other than a pipeline processor arrangement by introducing dummy span data.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Aviation & Aerospace Engineering (AREA)
- Business, Economics & Management (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63-224448 | 1988-09-09 | ||
JP63224448A JPH0727581B2 (ja) | 1988-09-09 | 1988-09-09 | 図形処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
US5043922A true US5043922A (en) | 1991-08-27 |
Family
ID=16813933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US07/404,238 Expired - Fee Related US5043922A (en) | 1988-09-09 | 1989-09-07 | Graphics system shadow generation using a depth buffer |
Country Status (3)
Country | Link |
---|---|
US (1) | US5043922A (ja) |
EP (1) | EP0358493A3 (ja) |
JP (1) | JPH0727581B2 (ja) |
Cited By (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5253335A (en) * | 1989-08-25 | 1993-10-12 | Matsushita Electric Industrial Co., Ltd. | Hidden-surface processing device, anti-aliasing method and three-dimensional graphics processing apparatus |
US5361100A (en) * | 1992-04-24 | 1994-11-01 | Sony United Kingdom Limited | Apparatus and method for transforming a video image into a three dimensional video image with shadows |
US5369738A (en) * | 1990-01-23 | 1994-11-29 | Hewlett-Packard Company | Distributed processing apparatus and method for use in global rendering |
US5377313A (en) * | 1992-01-29 | 1994-12-27 | International Business Machines Corporation | Computer graphics display method and system with shadow generation |
US5568595A (en) * | 1993-04-30 | 1996-10-22 | Scitex Corporation Ltd. | Method for generating artificial shadow |
US5579455A (en) * | 1993-07-30 | 1996-11-26 | Apple Computer, Inc. | Rendering of 3D scenes on a display using hierarchical z-buffer visibility |
US5613050A (en) * | 1993-01-15 | 1997-03-18 | International Business Machines Corporation | Method and apparatus for reducing illumination calculations through efficient visibility determination |
WO1997034213A2 (en) * | 1996-03-14 | 1997-09-18 | I.I. Interactive Innovations Ltd. | Computerized graphics systems |
US5739819A (en) * | 1996-02-05 | 1998-04-14 | Scitex Corporation Ltd. | Method and apparatus for generating an artificial shadow in a two dimensional color image |
US5761400A (en) * | 1995-08-28 | 1998-06-02 | Apple Computer, Inc. | Method and system for increasing the speed of a Z-buffer process |
US5777621A (en) * | 1994-12-22 | 1998-07-07 | Apple Computer, Inc. | Quality control mechanism for three-dimensional graphics rendering |
US5933156A (en) * | 1997-12-03 | 1999-08-03 | Margolin; Jed | Z-Buffer for row addressable graphics memory with flash fill |
US5974189A (en) * | 1993-05-24 | 1999-10-26 | Eastman Kodak Company | Method and apparatus for modifying electronic image data |
US5986667A (en) * | 1994-12-22 | 1999-11-16 | Apple Computer, Inc. | Mechanism for rendering scenes using an object drawing subsystem |
US6018350A (en) * | 1996-10-29 | 2000-01-25 | Real 3D, Inc. | Illumination and shadow simulation in a computer graphics/imaging system |
US6028608A (en) * | 1997-05-09 | 2000-02-22 | Jenkins; Barry | System and method of perception-based image generation and encoding |
US6057847A (en) * | 1996-12-20 | 2000-05-02 | Jenkins; Barry | System and method of image generation and encoding using primitive reprojection |
US6111582A (en) * | 1996-12-20 | 2000-08-29 | Jenkins; Barry L. | System and method of image generation and encoding using primitive reprojection |
US6151026A (en) * | 1999-03-02 | 2000-11-21 | Sega Enterprises, Ltd. | Image processing apparatus and image processing method |
US6268860B1 (en) * | 1997-04-03 | 2001-07-31 | Gmd-Forschungszentrum Informationstechnik Gmbh | Imaging method and apparatus for executing the method |
US6356264B1 (en) * | 1997-12-15 | 2002-03-12 | Sega Enterprises, Ltd. | Image processing device and image processing method |
US20020047843A1 (en) * | 2000-08-31 | 2002-04-25 | Konami Corporation | Three-dimensional image processing method and apparatus, readable storage medium storing three-dimensional image processing program and video game system |
US6573896B1 (en) * | 1999-07-08 | 2003-06-03 | Dassault Systemes | Three-dimensional arrow |
US6618048B1 (en) | 1999-10-28 | 2003-09-09 | Nintendo Co., Ltd. | 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components |
US20030169917A1 (en) * | 2002-01-15 | 2003-09-11 | Nec Corporation | Three-dimensional body photography apparatus, three-dimensional geometricmodel generation apparatus, three-dimensional geometric model generation method, and record medium in which three-dimensional geometric model generation program was stored |
US6636214B1 (en) | 2000-08-23 | 2003-10-21 | Nintendo Co., Ltd. | Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode |
US6664962B1 (en) | 2000-08-23 | 2003-12-16 | Nintendo Co., Ltd. | Shadow mapping in a low cost graphics system |
US6700586B1 (en) | 2000-08-23 | 2004-03-02 | Nintendo Co., Ltd. | Low cost graphics with stitching processing hardware support for skeletal animation |
US6707458B1 (en) | 2000-08-23 | 2004-03-16 | Nintendo Co., Ltd. | Method and apparatus for texture tiling in a graphics system |
US6717577B1 (en) | 1999-10-28 | 2004-04-06 | Nintendo Co., Ltd. | Vertex cache for 3D computer graphics |
US20040179009A1 (en) * | 2003-03-10 | 2004-09-16 | Sharp Kabushiki Kaisha | Graphic processing apparatus, graphic processing method, graphic processing program, and program storage medium |
US20040186631A1 (en) * | 2003-03-17 | 2004-09-23 | Keizo Ohta | Storage medium storing a shadow volume generation program, game device, and shadow volume generation method |
US6811489B1 (en) | 2000-08-23 | 2004-11-02 | Nintendo Co., Ltd. | Controller interface for a graphics system |
US6819319B1 (en) * | 1997-08-20 | 2004-11-16 | Imagination Technologies Limited | Shading three dimensional computer graphics images |
US20050001834A1 (en) * | 1999-09-10 | 2005-01-06 | Sony Computer Entertainment Inc. | Methods and apparatus for rendering an image including portions seen through one or more objects of the image |
US6867781B1 (en) | 2000-08-23 | 2005-03-15 | Nintendo Co., Ltd. | Graphics pipeline token synchronization |
US6900804B1 (en) * | 1999-09-16 | 2005-05-31 | Sega Enterprises, Ltd. | Method of forming polygon image and image processing apparatus using the same |
US7002591B1 (en) | 2000-08-23 | 2006-02-21 | Nintendo Co., Ltd. | Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system |
US7034828B1 (en) | 2000-08-23 | 2006-04-25 | Nintendo Co., Ltd. | Recirculating shade tree blender for a graphics system |
US7061502B1 (en) | 2000-08-23 | 2006-06-13 | Nintendo Co., Ltd. | Method and apparatus for providing logical combination of N alpha operations within a graphics system |
US7075545B2 (en) | 2000-08-23 | 2006-07-11 | Nintendo Co., Ltd. | Graphics system with embedded frame buffer having reconfigurable pixel formats |
US20060197768A1 (en) * | 2000-11-28 | 2006-09-07 | Nintendo Co., Ltd. | Graphics system with embedded frame buffer having reconfigurable pixel formats |
US7119813B1 (en) | 2000-06-02 | 2006-10-10 | Nintendo Co., Ltd. | Variable bit field encoding |
US7184059B1 (en) | 2000-08-23 | 2007-02-27 | Nintendo Co., Ltd. | Graphics system with copy out conversions between embedded frame buffer and main memory |
US7196710B1 (en) | 2000-08-23 | 2007-03-27 | Nintendo Co., Ltd. | Method and apparatus for buffering graphics data in a graphics system |
US7205999B2 (en) | 2000-08-23 | 2007-04-17 | Nintendo Co., Ltd. | Method and apparatus for environment-mapped bump-mapping in a graphics system |
US20070216685A1 (en) * | 2006-03-15 | 2007-09-20 | Microsoft Corporation | Scene write-once vector and triangle rasterization |
US7307640B2 (en) | 2000-08-23 | 2007-12-11 | Nintendo Co., Ltd. | Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system |
US7439975B2 (en) | 2001-09-27 | 2008-10-21 | International Business Machines Corporation | Method and system for producing dynamically determined drop shadows in a three-dimensional graphical user interface |
US7538772B1 (en) | 2000-08-23 | 2009-05-26 | Nintendo Co., Ltd. | Graphics processing system with enhanced memory controller |
US20110115886A1 (en) * | 2009-11-18 | 2011-05-19 | The Board Of Trustees Of The University Of Illinois | System for executing 3d propagation for depth image-based rendering |
US20130321419A1 (en) * | 2012-06-05 | 2013-12-05 | Tandent Vision Science, Inc. | Automatic Processing Scale Estimation for Use in an Image Process |
US9300946B2 (en) | 2011-07-08 | 2016-03-29 | Personify, Inc. | System and method for generating a depth map and fusing images from a camera array |
US10235798B2 (en) * | 2017-03-24 | 2019-03-19 | Mz Ip Holdings, Llc | System and method for rendering shadows for a virtual environment |
US20190156461A1 (en) * | 2015-05-11 | 2019-05-23 | Canon Kabushiki Kaisha | Image processing apparatus, image processing method, and storage medium |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU632628B2 (en) * | 1989-11-13 | 1993-01-07 | Apple Computer, Inc. | Method and apparatus for a computer display system with a three dimensional cursor shadow |
GB9315852D0 (en) * | 1993-07-30 | 1993-09-15 | Video Logic Ltd | Shading three-dimensional images |
US5729672A (en) * | 1993-07-30 | 1998-03-17 | Videologic Limited | Ray tracing method and apparatus for projecting rays through an object represented by a set of infinite surfaces |
JP2669599B2 (ja) * | 1994-09-16 | 1997-10-29 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 陰影描画方法及び3次元グラフィック・コンピュータ・システム |
DE69526919T2 (de) * | 1995-01-31 | 2003-01-16 | Imagination Tech Ltd | Verfahren und Vorrichtung zur Schattierung dreidimensionaler Bilder |
TW335466B (en) * | 1995-02-28 | 1998-07-01 | Hitachi Ltd | Data processor and shade processor |
JP3599268B2 (ja) * | 1999-03-08 | 2004-12-08 | 株式会社ソニー・コンピュータエンタテインメント | 画像処理方法、画像処理装置及び記録媒体 |
JP2001092989A (ja) | 1999-07-21 | 2001-04-06 | Sega Corp | 画像処理方法及びその装置 |
EP1170700A3 (en) * | 2000-07-06 | 2003-08-27 | Kuusou Kagaku Corp. | Method of high-speed adjustment of luminance by light in 3-D computer graphics |
JP4513423B2 (ja) * | 2004-06-03 | 2010-07-28 | 株式会社セガ | 仮想三次元座標ポリゴンによるオブジェクト画像の表示制御方法及びこれを用いた画像表示装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4625289A (en) * | 1985-01-09 | 1986-11-25 | Evans & Sutherland Computer Corp. | Computer graphics system of general surface rendering by exhaustive sampling |
US4737921A (en) * | 1985-06-03 | 1988-04-12 | Dynamic Digital Displays, Inc. | Three dimensional medical image display system |
-
1988
- 1988-09-09 JP JP63224448A patent/JPH0727581B2/ja not_active Expired - Lifetime
-
1989
- 1989-09-06 EP EP19890309044 patent/EP0358493A3/en not_active Ceased
- 1989-09-07 US US07/404,238 patent/US5043922A/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4625289A (en) * | 1985-01-09 | 1986-11-25 | Evans & Sutherland Computer Corp. | Computer graphics system of general surface rendering by exhaustive sampling |
US4737921A (en) * | 1985-06-03 | 1988-04-12 | Dynamic Digital Displays, Inc. | Three dimensional medical image display system |
Cited By (74)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5253335A (en) * | 1989-08-25 | 1993-10-12 | Matsushita Electric Industrial Co., Ltd. | Hidden-surface processing device, anti-aliasing method and three-dimensional graphics processing apparatus |
US5369738A (en) * | 1990-01-23 | 1994-11-29 | Hewlett-Packard Company | Distributed processing apparatus and method for use in global rendering |
US5377313A (en) * | 1992-01-29 | 1994-12-27 | International Business Machines Corporation | Computer graphics display method and system with shadow generation |
US5361100A (en) * | 1992-04-24 | 1994-11-01 | Sony United Kingdom Limited | Apparatus and method for transforming a video image into a three dimensional video image with shadows |
US5613050A (en) * | 1993-01-15 | 1997-03-18 | International Business Machines Corporation | Method and apparatus for reducing illumination calculations through efficient visibility determination |
US5568595A (en) * | 1993-04-30 | 1996-10-22 | Scitex Corporation Ltd. | Method for generating artificial shadow |
US5974189A (en) * | 1993-05-24 | 1999-10-26 | Eastman Kodak Company | Method and apparatus for modifying electronic image data |
US5579455A (en) * | 1993-07-30 | 1996-11-26 | Apple Computer, Inc. | Rendering of 3D scenes on a display using hierarchical z-buffer visibility |
US5986667A (en) * | 1994-12-22 | 1999-11-16 | Apple Computer, Inc. | Mechanism for rendering scenes using an object drawing subsystem |
US5777621A (en) * | 1994-12-22 | 1998-07-07 | Apple Computer, Inc. | Quality control mechanism for three-dimensional graphics rendering |
US5761400A (en) * | 1995-08-28 | 1998-06-02 | Apple Computer, Inc. | Method and system for increasing the speed of a Z-buffer process |
US5739819A (en) * | 1996-02-05 | 1998-04-14 | Scitex Corporation Ltd. | Method and apparatus for generating an artificial shadow in a two dimensional color image |
GB2326806A (en) * | 1996-03-14 | 1998-12-30 | I I Interactive Innovations Lt | Computerized graphics systems |
WO1997034213A3 (en) * | 1996-03-14 | 1997-10-23 | I I Interactive Innovations Lt | Computerized graphics systems |
WO1997034213A2 (en) * | 1996-03-14 | 1997-09-18 | I.I. Interactive Innovations Ltd. | Computerized graphics systems |
US6018350A (en) * | 1996-10-29 | 2000-01-25 | Real 3D, Inc. | Illumination and shadow simulation in a computer graphics/imaging system |
US6057847A (en) * | 1996-12-20 | 2000-05-02 | Jenkins; Barry | System and method of image generation and encoding using primitive reprojection |
US6111582A (en) * | 1996-12-20 | 2000-08-29 | Jenkins; Barry L. | System and method of image generation and encoding using primitive reprojection |
US6268860B1 (en) * | 1997-04-03 | 2001-07-31 | Gmd-Forschungszentrum Informationstechnik Gmbh | Imaging method and apparatus for executing the method |
US6028608A (en) * | 1997-05-09 | 2000-02-22 | Jenkins; Barry | System and method of perception-based image generation and encoding |
US6819319B1 (en) * | 1997-08-20 | 2004-11-16 | Imagination Technologies Limited | Shading three dimensional computer graphics images |
US5933156A (en) * | 1997-12-03 | 1999-08-03 | Margolin; Jed | Z-Buffer for row addressable graphics memory with flash fill |
US6356264B1 (en) * | 1997-12-15 | 2002-03-12 | Sega Enterprises, Ltd. | Image processing device and image processing method |
US6151026A (en) * | 1999-03-02 | 2000-11-21 | Sega Enterprises, Ltd. | Image processing apparatus and image processing method |
US6828974B2 (en) | 1999-07-08 | 2004-12-07 | Dassault Systemes | Three-dimensional arrow |
US6573896B1 (en) * | 1999-07-08 | 2003-06-03 | Dassault Systemes | Three-dimensional arrow |
US6972758B2 (en) | 1999-09-10 | 2005-12-06 | Sony Computer Entertaiment Inc. | Methods and apparatus for rendering an image including portions seen through one or more objects of the image |
US20050001834A1 (en) * | 1999-09-10 | 2005-01-06 | Sony Computer Entertainment Inc. | Methods and apparatus for rendering an image including portions seen through one or more objects of the image |
US6900804B1 (en) * | 1999-09-16 | 2005-05-31 | Sega Enterprises, Ltd. | Method of forming polygon image and image processing apparatus using the same |
US6618048B1 (en) | 1999-10-28 | 2003-09-09 | Nintendo Co., Ltd. | 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components |
US6717577B1 (en) | 1999-10-28 | 2004-04-06 | Nintendo Co., Ltd. | Vertex cache for 3D computer graphics |
US7119813B1 (en) | 2000-06-02 | 2006-10-10 | Nintendo Co., Ltd. | Variable bit field encoding |
US7184059B1 (en) | 2000-08-23 | 2007-02-27 | Nintendo Co., Ltd. | Graphics system with copy out conversions between embedded frame buffer and main memory |
US8098255B2 (en) | 2000-08-23 | 2012-01-17 | Nintendo Co., Ltd. | Graphics processing system with enhanced memory controller |
US6811489B1 (en) | 2000-08-23 | 2004-11-02 | Nintendo Co., Ltd. | Controller interface for a graphics system |
US7995069B2 (en) | 2000-08-23 | 2011-08-09 | Nintendo Co., Ltd. | Graphics system with embedded frame buffer having reconfigurable pixel formats |
US7701461B2 (en) | 2000-08-23 | 2010-04-20 | Nintendo Co., Ltd. | Method and apparatus for buffering graphics data in a graphics system |
US6707458B1 (en) | 2000-08-23 | 2004-03-16 | Nintendo Co., Ltd. | Method and apparatus for texture tiling in a graphics system |
US6867781B1 (en) | 2000-08-23 | 2005-03-15 | Nintendo Co., Ltd. | Graphics pipeline token synchronization |
US7538772B1 (en) | 2000-08-23 | 2009-05-26 | Nintendo Co., Ltd. | Graphics processing system with enhanced memory controller |
US6700586B1 (en) | 2000-08-23 | 2004-03-02 | Nintendo Co., Ltd. | Low cost graphics with stitching processing hardware support for skeletal animation |
US6664962B1 (en) | 2000-08-23 | 2003-12-16 | Nintendo Co., Ltd. | Shadow mapping in a low cost graphics system |
US7002591B1 (en) | 2000-08-23 | 2006-02-21 | Nintendo Co., Ltd. | Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system |
US7034828B1 (en) | 2000-08-23 | 2006-04-25 | Nintendo Co., Ltd. | Recirculating shade tree blender for a graphics system |
US7061502B1 (en) | 2000-08-23 | 2006-06-13 | Nintendo Co., Ltd. | Method and apparatus for providing logical combination of N alpha operations within a graphics system |
US7075545B2 (en) | 2000-08-23 | 2006-07-11 | Nintendo Co., Ltd. | Graphics system with embedded frame buffer having reconfigurable pixel formats |
US7317459B2 (en) | 2000-08-23 | 2008-01-08 | Nintendo Co., Ltd. | Graphics system with copy out conversions between embedded frame buffer and main memory for producing a streaming video image as a texture on a displayed object image |
US6636214B1 (en) | 2000-08-23 | 2003-10-21 | Nintendo Co., Ltd. | Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode |
US7176919B2 (en) | 2000-08-23 | 2007-02-13 | Nintendo Co., Ltd. | Recirculating shade tree blender for a graphics system |
US7307638B2 (en) | 2000-08-23 | 2007-12-11 | Nintendo Co., Ltd. | Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system |
US7196710B1 (en) | 2000-08-23 | 2007-03-27 | Nintendo Co., Ltd. | Method and apparatus for buffering graphics data in a graphics system |
US7205999B2 (en) | 2000-08-23 | 2007-04-17 | Nintendo Co., Ltd. | Method and apparatus for environment-mapped bump-mapping in a graphics system |
US7307640B2 (en) | 2000-08-23 | 2007-12-11 | Nintendo Co., Ltd. | Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system |
US6888547B2 (en) * | 2000-08-31 | 2005-05-03 | Konami Corporation | Three-dimensional image processing method and apparatus, readable storage medium storing three-dimensional image processing program and video game system |
US20020047843A1 (en) * | 2000-08-31 | 2002-04-25 | Konami Corporation | Three-dimensional image processing method and apparatus, readable storage medium storing three-dimensional image processing program and video game system |
US20060197768A1 (en) * | 2000-11-28 | 2006-09-07 | Nintendo Co., Ltd. | Graphics system with embedded frame buffer having reconfigurable pixel formats |
US7576748B2 (en) | 2000-11-28 | 2009-08-18 | Nintendo Co. Ltd. | Graphics system with embedded frame butter having reconfigurable pixel formats |
US7439975B2 (en) | 2001-09-27 | 2008-10-21 | International Business Machines Corporation | Method and system for producing dynamically determined drop shadows in a three-dimensional graphical user interface |
US7272255B2 (en) * | 2002-01-15 | 2007-09-18 | Nec Corporation | Three-dimensional body photography apparatus, three-dimensional geometricmodel generation apparatus, three-dimensional geometric model generation method, and record medium in which three-dimensional geometric model generation program was stored |
US20030169917A1 (en) * | 2002-01-15 | 2003-09-11 | Nec Corporation | Three-dimensional body photography apparatus, three-dimensional geometricmodel generation apparatus, three-dimensional geometric model generation method, and record medium in which three-dimensional geometric model generation program was stored |
US20040179009A1 (en) * | 2003-03-10 | 2004-09-16 | Sharp Kabushiki Kaisha | Graphic processing apparatus, graphic processing method, graphic processing program, and program storage medium |
US8339397B2 (en) * | 2003-03-10 | 2012-12-25 | Sharp Kabushiki Kaisha | Method and apparatus for high-speed shadowing using shadow volumes |
US20040186631A1 (en) * | 2003-03-17 | 2004-09-23 | Keizo Ohta | Storage medium storing a shadow volume generation program, game device, and shadow volume generation method |
US20070216685A1 (en) * | 2006-03-15 | 2007-09-20 | Microsoft Corporation | Scene write-once vector and triangle rasterization |
US20110115886A1 (en) * | 2009-11-18 | 2011-05-19 | The Board Of Trustees Of The University Of Illinois | System for executing 3d propagation for depth image-based rendering |
US8643701B2 (en) | 2009-11-18 | 2014-02-04 | University Of Illinois At Urbana-Champaign | System for executing 3D propagation for depth image-based rendering |
US9654765B2 (en) | 2009-11-18 | 2017-05-16 | The Board Of Trustees Of The University Of Illinois | System for executing 3D propagation for depth image-based rendering |
US9300946B2 (en) | 2011-07-08 | 2016-03-29 | Personify, Inc. | System and method for generating a depth map and fusing images from a camera array |
US20130321419A1 (en) * | 2012-06-05 | 2013-12-05 | Tandent Vision Science, Inc. | Automatic Processing Scale Estimation for Use in an Image Process |
US8913829B2 (en) * | 2012-06-05 | 2014-12-16 | Tandent Vision Science, Inc. | Automatic processing scale estimation for use in an image process |
US20190156461A1 (en) * | 2015-05-11 | 2019-05-23 | Canon Kabushiki Kaisha | Image processing apparatus, image processing method, and storage medium |
US10861136B2 (en) * | 2015-05-11 | 2020-12-08 | Canon Kabushiki Kaisha | Image processing apparatus, image processing method, and storage medium |
US10235798B2 (en) * | 2017-03-24 | 2019-03-19 | Mz Ip Holdings, Llc | System and method for rendering shadows for a virtual environment |
US10657705B2 (en) | 2017-03-24 | 2020-05-19 | Mz Ip Holdings, Llc | System and method for rendering shadows for a virtual environment |
Also Published As
Publication number | Publication date |
---|---|
JPH0727581B2 (ja) | 1995-03-29 |
EP0358493A3 (en) | 1992-06-10 |
JPH0273479A (ja) | 1990-03-13 |
EP0358493A2 (en) | 1990-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5043922A (en) | Graphics system shadow generation using a depth buffer | |
US6768487B1 (en) | Method and apparatus for occlusion culling in graphics systems | |
US7952579B1 (en) | System, method and computer program product for geometrically transforming geometric objects | |
US6894689B1 (en) | Occlusion culling method and apparatus for graphics systems | |
CN111508052B (zh) | 三维网格体的渲染方法和装置 | |
US5856829A (en) | Inverse Z-buffer and video display system having list-based control mechanism for time-deferred instructing of 3D rendering engine that also responds to supervisory immediate commands | |
US7023437B1 (en) | System and method for accelerating graphics processing using a post-geometry data stream during multiple-pass rendering | |
US6636215B1 (en) | Hardware-assisted z-pyramid creation for host-based occlusion culling | |
US7876971B2 (en) | Method and system for signal processing, for instance for mobile 3D graphic pipelines, and computer program product therefor | |
US5570460A (en) | System and method for volume rendering of finite element models | |
JP2769427B2 (ja) | 一連のグラフィック・プリミティブ用のデータを処理するための方法 | |
US8115767B2 (en) | Computer graphics shadow volumes using hierarchical occlusion culling | |
US7924278B2 (en) | Real-time GPU rendering of piecewise algebraic surfaces | |
US20050134603A1 (en) | Method and apparatus for triangle rasterization with clipping and wire-frame mode support | |
Theoharis et al. | Graphics and visualization: principles & algorithms | |
US6573893B1 (en) | Voxel transfer circuit for accelerated volume rendering of a graphics image | |
US7400325B1 (en) | Culling before setup in viewport and culling unit | |
AU1406500A (en) | A method for forming a perspective rendering from a voxel space | |
US7834879B2 (en) | Drawing apparatus for displaying image data about a plurality of objects including semitransparent object and opaque object on computer display screen | |
US8098264B2 (en) | Method and apparatus for rendering computer graphics primitive | |
EP1058912B1 (en) | Subsampled texture edge antialiasing | |
US5926183A (en) | Efficient rendering utilizing user defined rooms and windows | |
US6750862B1 (en) | Method and system for performing enhanced lighting functions for texture map data | |
Miyazawa et al. | A high‐speed integrated renderer for interpreting multiple 3D volume data | |
JPH04155592A (ja) | グーローシエーディングによるパラメトリック曲面表示装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION A COR Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNOR:MATSUMOTO, TAKASHI;REEL/FRAME:005689/0879 Effective date: 19890921 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
REMI | Maintenance fee reminder mailed | ||
LAPS | Lapse for failure to pay maintenance fees | ||
FEPP | Fee payment procedure |
Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 19990827 |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |