WO2003046836A1 - Image processing apparatus and constituent parts thereof, rendering method - Google Patents

Image processing apparatus and constituent parts thereof, rendering method Download PDF

Info

Publication number
WO2003046836A1
WO2003046836A1 PCT/JP2002/012214 JP0212214W WO03046836A1 WO 2003046836 A1 WO2003046836 A1 WO 2003046836A1 JP 0212214 W JP0212214 W JP 0212214W WO 03046836 A1 WO03046836 A1 WO 03046836A1
Authority
WO
WIPO (PCT)
Prior art keywords
primitive
primitives
buffer
rendering
displayed
Prior art date
Application number
PCT/JP2002/012214
Other languages
English (en)
French (fr)
Inventor
Nobuo Sasaki
Original Assignee
Sony Computer Entertainment Inc.
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Computer Entertainment Inc. filed Critical Sony Computer Entertainment Inc.
Priority to KR1020037013515A priority Critical patent/KR100907154B1/ko
Priority to EP02783603A priority patent/EP1450308A4/en
Publication of WO2003046836A1 publication Critical patent/WO2003046836A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/30Clipping

Definitions

  • the present invention relates to an image processing technique for efficiently rendering a three-dimensional image displayed on a two-dimensional screen such as a display.
  • a 2D image consists of multiple primitives such as polygons that make up an image of a virtual object (hereinafter referred to as “object”) in a 3D image, and attributes such as shape, size, color, and brightness of each primitive. It is generated by the attribute data that it represents.
  • Image processing performed when displaying a three-dimensional image on a two-dimensional screen is roughly divided into a geometry processing for performing coordinate transformation and the like on primitive vertex coordinates and a geometry obtained as a result of this geometry processing. It consists of a rendering process that determines the color of each pixel from the data and generates a 2D image.
  • an apparatus including a distributed system and a semiconductor device that mainly performs a rendering process is referred to as a rendering processing apparatus.
  • This rendering processing device constitutes a part of the image processing device.
  • Some rendering processing devices can render images with high visual effects, such as complex pictures, by performing multiple rendering processes on the same primitive. This multiple rendering processing is called “multi-pass rendering”, and one processing in this multi-pass rendering is called “pass”. In the case of multi-pass rendering in which rendering processing is performed in three passes, for example, polygon drawing without pasting texture is performed in the first pass, and texture is pasted in the second pass Attach another texture in the third pass.
  • the present invention has been made in view of the above-described problems, and has as its object to provide a rendering processing apparatus and a rendering processing method that realize a rendering process of a three-dimensional image with a smaller processing amount than the related art. .
  • Another object of the present invention is to provide an image processing apparatus that generates an image having a high visual effect without overhead, and a component thereof. Disclosure of the invention
  • a rendering processing apparatus that solves the above-mentioned problem is an apparatus that performs rendering processing for displaying a three-dimensional image formed by a plurality of primitives on a two-dimensional screen, wherein each of the plurality of primitives By comparing a primitive buffer storing attribute data representing the attribute of the attribute in association with the primitive and a plurality of attribute data stored in the primitive buffer, each of the plurality of primitives is stored in the primitive buffer.
  • a test screen for selecting one of a first primitive displayed on the two-dimensional screen and a second primitive not displayed, wherein the first primitive except for the second primitive selected by the test screen is provided.
  • An apparatus configured to perform the rendering process.
  • the rendering process may be a normal one-pass rendering process of rendering one texture on the same primitive, or a multi-pass rendering of rendering a plurality of textures.
  • the rendering process is performed on the primitives (first primitives) that are actually displayed on the 2D screen, so that the conventional rendering that used to draw all the primitives that make up the 3D image
  • the processing amount is significantly reduced compared to the processing apparatus.
  • Attribute data can be any type of data that makes it possible to determine whether a primitive appears on a two-dimensional screen.
  • a number Value data for example, numerical data (vertex coordinates, vertex brightness, texture coordinates, etc.) relating to vertices of the primitive, size, color or transparency of the primitive can be attribute data.
  • the numerical data on the vertices for example, geometry data obtained by the geometry processing can be used.
  • the plurality of primitives stored in the primitive buffer is preferably a number of primitives capable of forming at least one screen of a three-dimensional image displayed on the two-dimensional screen. In this way, efficient rendering processing can be performed for each screen.
  • a rendering processing device is further configured by interpolating means for performing pixel interpolation based on known attribute data of primitives, and the tester performs the pixel interpolation by The selection is performed on a pixel-by-pixel basis by including the obtained new attribute data in the object of the comparison.
  • the interpolation means When displaying a higher-resolution image, the interpolation means performs sub-pixel interpolation based on known attribute data of a primitive when at least one of a plurality of sub-pixels divided from one pixel is subjected to rendering processing.
  • the test is configured to include the new attribute data obtained by the sub-pixel interpolation in the comparison target so that the selection is performed in sub-pixel units.
  • Occupancy ratio calculating means for calculating, for each primitive, the ratio of the sub-pixels to be rendered to the entire sub-pixel for one pixel, further comprising: Attribute data may be determined. In this way, anti-aliasing can be performed quickly.
  • the tester may be configured to avoid the selection of pixels at a boundary portion when a plurality of primitives are drawn in one pixel.
  • Each of the plurality of attribute data stored in the primitive buffer is position information indicating the position of the primitive in the three-dimensional image, for example, coordinate values (X, Y, Z)), and the tester compares the position information included in each attribute data to determine the primitive closest to the viewpoint of the viewer through the two-dimensional screen as the first primitive,
  • This primitive may be configured to be selected as the second primitive. With this configuration, it is possible to avoid a rendering process for a primitive located at a position hidden by another primitive.
  • Each of the plurality of primitives has a permitted area for permitting display on the two-dimensional screen and a non-permitted area for which display is not permitted, and can be superimposed on stencil data indicating the transparency and shape of an image to be displayed. It can be.
  • the tester sets the primitive that at least partially overlaps with the permitted area or the non-permitted area of the stencil as the first primitive, and sets the other primitives as the second primitive. Sort out.
  • a flag indicating whether the primitive is the first primitive or the second primitive is recorded in a predetermined selection table that can be referred to during the rendering process, in association with the attribute data of each primitive.
  • the test is configured so that With this configuration, the rendering processing device can determine whether the attribute data is of the first primitive or the second primitive only by checking the flag of the sorting table. Become.
  • the flag may be numerical data that can present a plurality of types of values for each primitive, and the value of the flag may be updated according to the number of pixels of the primitive displayed on the two-dimensional screen.
  • the second primitive further includes an editing unit for restricting reading of attribute data from the primitive buffer. Is also good. From the viewpoint of more reliably avoiding the use of the second primitive, the editing means deletes the attribute data of the primitive selected as the second primitive from the primitive buffer.
  • An image processing apparatus that solves the above-mentioned other problems includes a frame buffer having a size corresponding to a display area of a two-dimensional screen, and geometry processing of a plurality of primitives that form a three-dimensional image, and performing the three-dimensional image processing. Generate geometry data about A second processor that renders a two-dimensional image corresponding to the three-dimensional image in the frame buffer based on the generated geometry data, and a second processor that renders the rendered two-dimensional image. A controller for displaying in the display area.
  • the second processor compares each of the plurality of primitives by comparing attribute data representing each attribute of the plurality of primitives specified by the geometry data acquired from the first processor.
  • the first primitive displayed on the two-dimensional screen and the second primitive not displayed are selected, and the two-dimensional image of the first primitive excluding the second primitive is displayed in the frame. Render to buffer.
  • a buffer memory is interposed between the first processor and the second processor, and geometry data generated by the first processor is transmitted to the second processor via the buffer memory To do.
  • the image processing apparatus may further include an image receiving mechanism that receives the three-dimensional image to be processed from an external device and guides the received three-dimensional image to the first processor.
  • This is the method performed by the device. That is, the apparatus stores attribute data representing each attribute of the plurality of primitives forming the three-dimensional image in the primitive buffer in association with the primitive, and compares the stored attribute data with each other.
  • a test path for selecting each of the plurality of primitives into one of a first primitive displayed on the two-dimensional screen and a second primitive not displayed, and a second primitive selected by the test path.
  • the first primitives to be removed are read from the primitive buffer, and a rendering pass for performing a rendering process on the read first primitives is executed in this order.
  • a form is also possible in which the rendering pass is performed a plurality of times, and different textures are rendered a plurality of times for the same primitive.
  • the present invention provides a semiconductor device, a computer program, Also provides ram.
  • the semiconductor device of the present invention is a device mounted on a computer to which a display having a two-dimensional screen is connected, and forms a three-dimensional image on the computer in cooperation with other components included in the computer.
  • attribute data representing attributes of each of a plurality of primitives to be stored in association with the primitives and a plurality of attribute data stored in the primitive buffers
  • each of the plurality of primitives is compared.
  • To perform the rendering process and the 2D screen It is to construct the rendering processing means for generating a two-dimensional image to be displayed.
  • a computer program displays, on a computer to which a primitive buffer for storing primitives used for image formation and a display having a two-dimensional screen are connected, the attributes of a plurality of primitives for forming a three-dimensional image. Storing the attribute data in the primitive buffer in association with the primitive; comparing a plurality of attribute data stored in the primitive buffer with each other, A process of selecting one of a first primitive displayed on a two-dimensional screen and a second primitive not displayed, and the rendering process of the first primitive excluding the selected second primitive To display on the 2D screen 2 Process for generating the original image, a computer program for execution. This program is instantiated by being recorded on a computer-readable recording medium.
  • FIG. 1 is a hardware configuration diagram of the image processing apparatus of the present embodiment.
  • FIG. 2 is a view showing an example of geometry data stored in a primitive buffer.
  • FIG. 3 is an explanatory view of a triangle strip.
  • FIG. 4 is a diagram for explaining clipping.
  • FIG. 5 is a diagram for explaining clipping.
  • FIG. 6 is an illustration of a sub-pixel.
  • FIG. 7 is a diagram used for explaining the stencil test.
  • FIG. 8 is a diagram illustrating a configuration example of a primitive selection unit.
  • FIG. 9 is an illustration of a triangle strip.
  • FIG. 10 is an illustration of a selection table when the primitive is a triangle strip.
  • FIG. 11 is a diagram illustrating a processing procedure of a rendering process according to the present embodiment.
  • FIG. 12 is a diagram showing a processing procedure of Z buffer drawing.
  • FIG. 13 is a diagram showing the flow of data for Z buffer drawing.
  • FIG. 14 is a diagram showing a processing procedure of the test path.
  • FIG. 15 is a diagram showing the data flow of the test path.
  • FIG. 16 is a diagram showing a data flow when erasing a primitive not displayed on the display.
  • FIG. 17 is a diagram showing a processing procedure of multi-pass rendering.
  • FIG. 18 is a diagram showing a flow of a multi-pass rendering process.
  • FIG. 19 is a hardware configuration diagram of a rendering processor of another embodiment.
  • FIG. 20 is an explanatory diagram of the occupancy rate of primitives. BEST MODE FOR CARRYING OUT THE INVENTION
  • FIG. 1 is a hardware configuration diagram of an image processing apparatus according to this embodiment.
  • the image processing device 1 is equipped with a rendering processor 16 as an example of a rendering processing device, and performs multi-pass rendering to convert a three-dimensional image with a high visual effect into a two-dimensional screen, for example, a screen of the display 41 in real time. Display.
  • the test pass described later precedes and is not displayed on the display 41 because it is hidden by other primitives Select the second primitive and execute the rendering pass excluding the selected primitive. In this way, the image processing apparatus 1 eliminates useless processing such as drawing primitives that are not actually displayed on the display 41, and achieves efficient rendering processing.
  • the image processing device 1 includes a disk drive 10 on which a disk medium 15 such as a CD-R ⁇ M or a DVD-ROM is mounted, and communication control for enabling communication with an external device by wire or wirelessly.
  • the unit 11, the geometry processor 12, the memory 13, the CPU 14, and the rendering processor 16 are connected to each other by a bus so that data can be transmitted and received.
  • a display controller 40 for outputting an image signal such as a video signal to the display 41 is connected to the rendering processor 16.
  • the disk drive 10 reads out data and programs for image processing from the disk medium 15 and stores them in the memory 13.
  • the data for image processing is, for example, graphic data of a primitive.
  • the graphic data in this embodiment includes, for example, vertex coordinate values (X, ⁇ , Z), vertex luminance values (R, G, B), vector values, connection information indicating the connection status between vertices, and the like for primitives.
  • the communication control unit 11 fetches the above-described image processing data and program from an external device and stores them in the memory 13. That is, the communication control unit 11 operates so as to fetch data similar to the data fetched from the disk medium 15 by the disk drive 10 from an external device and store it in the memory 13.
  • the image processing apparatus 1 can receive image processing data and a program from at least one of the disk drive 10 and the communication control unit 11.
  • the geometry processor 12 Under the control of the CPU 14, the geometry processor 12 performs geometry processing such as affine conversion processing and light source processing on vertices on the graphics data stored in the memory 13.
  • the geometry data obtained as a result of the geometry processing includes vertex coordinate values (X, ⁇ , ⁇ ) for primitives, texture coordinate values (S, ⁇ , Q) at each vertex, and vertex luminance values (R, G, ⁇ , It consists of data representing the attributes of primitives, such as ⁇ ).
  • the vertex luminance value “ ⁇ ” is obtained by performing a well-known alpha blending process. This is a translucent coefficient used in the process.
  • the memory 13 stores image processing data and programs fetched from at least one of the disk drive 10 and the communication control unit 11, and also stores various data generated during processing by the image processing apparatus 1. Is stored. Thereby, it is also used as a main memory in the image processing apparatus 1.
  • the CPU 14 performs data transfer between the components, for example, controls the geometry data generated by the geometry processor 12 to be transmitted to the rendering processor 16 using the memory 13 and the like as a buffer. .
  • the geometry processor 12 is provided separately from the CPU 14, but these may be integrated so that the CPU 14 has the function of the geometry processor 12. .
  • the rendering processor 16 performs multi-pass rendering based on the geometry data generated by the geometry processor 12.
  • the display controller 40 converts the two-dimensional image generated as a result of the rendering process into an image signal having a structure that can be displayed on the display 41, and outputs the image signal to the display 41. An image is displayed on the display 41 by this image signal.
  • the rendering processor 16 includes a primitive buffer 21, a multi-pass control unit 22, an XYZ clipping unit 23, a setup DDA (Digital Differential Analyzer) unit (hereinafter, referred to as a “SUZD DA unit”) 2 4, Z test section 25, Z buffer 26, stencil test section 27, stencil buffer 28, primitive selection section 29, primitive editing section 30, texture mapping section 31, frame buffer 32 ing.
  • a setup DDA Digital Differential Analyzer
  • the Z test section 25, the stencil test section 27, the primitive selection section 29, and the primitive editing section 30 are each one component of the tester in the present invention.
  • DSP Digital Signal Processor
  • GP Graphic Processor
  • the primitive buffer 21 stores geometry data of at least one group of primitives as an example of attribute data of each of these primitives.
  • One group of primitives refers to, for example, an image on one screen or a set of primitives forming one object on the display 41.
  • An identification number (hereinafter referred to as “primitive number”) serving as identification information for identifying each primitive is also given as one of the attribute data.
  • FIG. 2 is a diagram showing a relationship between the geometry data stored in the primitive buffer 21 and the primitive numbers (PN1, PN2 to) assigned to each piece of the geometry data.
  • a flag for indicating whether or not the geometry data is used for multi-pass rendering may be associated with each piece of the geometry data.
  • Fig. 3 shows an example of a triangle strip using triangle strip data. “0” to “7” shown in the figure are vertices. In the case of a triangle strip as shown in Fig. 3, primitive numbers are assigned to vertices 0, 1, and 2-7, respectively. A similar primitive buffer 21 can be used for a triangle fan.
  • the primitive buffer 21 stores the geometry data between the geometry processor 12 and the rendering processor 16.
  • the overhead between the geometry processor 12 and the rendering processor can be reduced.
  • the primitive buffer 21 is provided in the rendering processor 16.
  • the present invention is not limited to this, and the primitive buffer 21 is independent of the rendering processor 16. It may be provided. Further, it may be provided in the memory 13.
  • the multi-pass control unit 22 controls multi-pass rendering. For example, each of the components in the rendering processor 16 is notified which of a Z-buffer drawing, a test pass, and a multi-pass rendering described below is to be executed. Also, the primitive data to be rendered and the primitive number of the geometry data are read out from the primitive buffer 21 and sent to the XYZ clip section 23.
  • the multi-pass controller 22 changes the geometry data as needed. For example, when different textures are mapped for each path for one primitive (for example, a polygon), a process of changing or shifting the magnification of the texture coordinate value is performed.
  • the multi-pass control unit 22 also changes the shift amount of the origin coordinate of the texture as necessary. By performing the process of this change, the rendering processor 16 can perform linear transformation for each texture coordinate axis. Further, the multipath control unit 22 selectively replaces the vertex luminance values (R, G, B, A) with fixed values as necessary. As a result, in the rendering processor 16, for example, it is possible to eliminate waste of retransmitting the same vertex luminance value after the second pass.
  • the clipping section 23 performs three-dimensional clipping of primitives based on the geometry data sent from the multipath control section 22 based on the clip data prepared in advance.
  • the clip data is data representing the display area of the display 41, and the clipping is processing for removing a primitive outside the display area due to the clip data or changing the shape of a primitive that protrudes from the display area. It is.
  • FIG. 4 shows the relationship between the primitive 51 represented by the vertex coordinates (XI, Yl), (X2, Y2), and (X3, Y3) and the display area 50 of the display 41.
  • the XYZ clip unit 23 changes the shape of the primitive 51 by clipping when the primitive 51 protrudes from the display area 50.
  • FIG. 5 shows the relationship between the primitive 52 having the changed shape and the display area 50.
  • the clip unit 23 changes the shape of the primitive 51 protruding from the display area 50 as shown in FIG. 5 and vertex coordinates (X3, Y3), (X6, Y6), (X5, ⁇ 5), ( A new primitive 52 composed of ( ⁇ 4, ⁇ 4) and ( ⁇ 7, ⁇ 7) is generated.
  • the primitive number of the new primitive 52 is the same as that of the primitive 51 before the shape change.
  • the X ⁇ clip unit 23 sends the geometry data and the primitive number after clipping to the SUZDDA unit 24.
  • the SUZDDA unit 24 performs setup processing and DD # processing.
  • the setup process is a process of calculating initial coordinate values and inclination values used in the DDA process based on the clipped geometry data sent from the XYZ clip unit 23.
  • the DDA process is a process of linearly interpolating between vertices of primitives based on the initial coordinate values and inclination values calculated in the setup process, and interpolating the interior of the primitives, thereby obtaining coordinate values of pixels constituting the primitive ( X, Y, ⁇ ), luminance values (R, G, ⁇ , A), texture coordinate values (S, T, Q) for texture mapping, etc. are obtained.
  • interpolation data is obtained for each pixel in the hatched portion.
  • the 311/00 octave 24 may perform only interpolation of the coordinate value of each pixel.
  • the interpolation data for each pixel is sent to the Z test section 25 together with the primitive number.
  • the Z test unit 25 performs different forms of processing between Z buffer drawing and a test pass.
  • the Z test unit 25 compares the Z value included in the interpolation data sent from the SUZDDA unit 24 with the Z value written in the Z buffer 26 for each pixel, and based on the comparison result. Write one of the Z values to the Z buffer 26. For example, a Z value closer to the viewpoint is selected, and this Z value is written to the Z buffer 26.
  • the Z buffer Update the Z value of the corresponding pixel in 26.
  • the Z buffer 26 is not updated.
  • the Z test section 25 does not write the Z value of the pixel in the Z buffer 26. Also, when the primitive is transparent or translucent, the Z value is not written to the Z buffer 26 for the same reason.
  • the Z test unit 25 compares the Z value stored in the Z buffer 26 with the interpolation data sent from the S UZD DA unit 24 for each pixel, and Select the interpolation data having the same Z value as the Z value stored in. Then, the selected interpolation data is sent to the stencil test section 27 together with the primitive number. If the Z value has not been written to the Z buffer 26 as described above, the Z test unit 25 selects the interpolation data having the Z value closest to the viewpoint and assigns it to the primitive number. Both are sent to the stencil test section 27.
  • the Z value of the primitive closest to the viewpoint is written for each pixel as a result of Z buffer drawing.
  • the rendering pass can be performed in subpixel units instead of pixel units to render higher resolution images.
  • the Z buffer for the sub-pixel when the rendering process of the sub-pixel is completed, the reduced drawing for obtaining the actual pixel is performed.
  • FIG. 6 is a diagram showing an example in which 3 ⁇ 2 pixels are displayed as sub-pixels.
  • each pixel is divided into 4 ⁇ 4 sub-pixels.
  • a diagonal line that rises to the right is drawn.
  • the lower right pixel is judged to be a pixel where no diagonal line is drawn with normal pixels.
  • this diagonal line will be drawn on one sub-pixel, so the lower right pixel will also be affected by the diagonal line.
  • the Z value in sub-pixel units, even if one pixel includes two or more primitives, it is possible to display in consideration of all the primitives. If the storage capacity of the Z buffer 26 is sufficient, a primitive number assigned to the primitive of the Z value may be stored in addition to the Z value.
  • the stencil test unit 27 performs a stencil test based on the stencil data stored in the stencil buffer 28.
  • the stencil data represents a non-permitted area 53 where display on the display 41 is not permitted and a permitted area 54 where permission is given.
  • the primitive 52 is displayed in the permission area 54 by comparing the coordinate value of the interpolation data sent from the Z test section 25 with the coordinate value of the stencil data. This is a process of determining whether or not interpolation is performed, that is, whether or not interpolation data located in the permission area 54 exists.
  • the displayed primitive number of the primitive 52 is sent to the primitive selection unit 29.
  • the interpolation data of the displayed primitive is sent to the texture mapping unit 31.
  • the stencil buffer 28 is configured to store stencil data, and to read out the stencil data at any time in response to a request from the stencil test unit 27.
  • the stencil data stored in the stencil buffer 28 is supplied from the memory 13 via a path, for example.
  • the XYZ clip section 23, the Z test section 25, and the stencil test section 27 separate primitives including pixels displayed on the display 41 and primitives not displayed.
  • the primitive number of the primitive including the pixel displayed on the display 41 is sent from the stencil test section 27 to the primitive selection section 29.
  • the primitive sorting unit 29 includes an address control unit 61 and a sorting table 62.
  • the selection table 62 records the addresses (NA1, NA2,%) And a visible flag for indicating whether or not to be displayed on the display 41.
  • the address corresponds to a primitive number (PN1, PN2,%) Assigned to the primitive data stored in the primitive buffer 21.
  • the address control section 61 initializes the selection table 62, calculates the address of the selection table 62, and changes the visible flag. For example, the address control unit 61 clears (initializes) the visible flag to "0" when Z-buffer rendering of all primitives is completed. Then, the primitive number sent from the stencil test section 27 is converted into the address of the selection table 62, and the visible flag corresponding to the address is changed from "0" to "1".
  • the address of the visible flag storing the value of "1" corresponds to the primitive number of the primitive displayed on the display 41.
  • the address of the visibility flag in which the value of “0” is stored corresponds to the primitive number of a primitive that does not include any pixel displayed on the display 41.
  • the address may be the same as the primitive number described above.
  • the primitive is the triangle strip shown in FIG. 9, the contents of the sorting table 62 are as shown in FIG. In the example of FIG. 9, a triangular primitive composed of vertices 2, 3, and 4 is not formed.
  • a visual flag indicating whether or not to display is stored in an address corresponding to each of the primitive numbers of vertices 0, 1, and 27.
  • the geometry data of each vertex is read out in order from 0 to generate a triangle primitive. For example, after reading the geometry data of vertices 0 and 1, the geometry data of vertex 2 is read, and a primitive primitive of vertices 0, 1, and 2 is generated.
  • the visibility flag for vertices 0 and 1 is "Not Active", and vertices 0 and 1 are not affected by the visibility flag.
  • vertex 4 of primitive number 4 corresponding to address NA 4 is not displayed.
  • the same selection table 62 can be used for a triangle fan.
  • the visible flag shall be able to hold a single numeric value, a binary value, or an integer value. You may.
  • the address control unit 61 sequentially converts the primitive number of each pixel sent from the stencil test unit 27 into the address of the sorting table 62 and changes the value of the visible flag corresponding to the address. Increment sequentially. As a result, the visible flag presents a numerical value corresponding to the number of pixels displayed on the display 41 for each primitive.
  • the primitive editing unit 30 is an example of the editing means of the present invention, and confirms the primitive number of a primitive not displayed on the display 41 based on the selection table 62 of the primitive selection unit 29. Then, the geometry data corresponding to the confirmed primitive number is prevented from being read from the primitive buffer 21.
  • the primitive editing unit 30 checks the primitive number corresponding to the address of which the visible flag of the sorting table 62 is “0”, and determines that the primitive corresponding to this primitive number is a primitive buffer when performing multi-pass rendering. 2 Prevent reading from 1. If each geometry data in the primitive buffer 21 has a flag indicating whether or not to use it for multi-pass rendering, this flag prevents the data from being read during multi-pass rendering. To The geometry data may be deleted from the primitive buffer 21. '
  • the texture mapping unit 31 performs the number of rendering processes according to the number of passes.
  • the texture mapping unit 31 maps, for example, a different texture for each pass to the same primitive. With this mapping, an image to be displayed is drawn in the frame buffer 32.
  • the frame buffer 32 has a memory space corresponding to the display 41, and draws each pixel on the memory space so as to correspond to the two-dimensional plane of the display 41.
  • the image of each frame drawn in the frame buffer 32 is sent to the display 41 as an image signal via the display controller 40. Is displayed.
  • the primitive buffer 21 of the rendering processor 16 stores geometry data as a result of the geometry processing by the geometry processor 12 as an example of attribute data.
  • FIG. 11 is a schematic diagram of this rendering processing method.
  • the rendering processor 16 performs Z-buffer rendering for all the geometry data stored in the primitive buffer 21 and writes a Z value close to the viewpoint to the Z-buffer (step S10).
  • the rendering processor 16 clears the sorting table 62 of the primitive sorting unit 29 and sets all visible flags to "0" (step S20).
  • a test pass is performed, and the visible flag of the selection table 62 is changed according to the result (step S30).
  • the sorting table 62 stores a flag indicating whether the primitive is to be displayed on the display 41 or not, so the rendering processor 16 checks the sorting table 62. Then, among the geometry data stored in the primitive buffer 21, the primitive geometry data not displayed on the display 41 is deleted. That is, the primitive is erased (step S40).
  • the rendering processor 16 executes multi-pass rendering for the primitive displayed on the display 41 (step S50).
  • Figure 12 shows the procedure for drawing the Z-buffer
  • Figure 13 shows the data flow.
  • the multi-pass control unit 22 reads out the geometry data together with the primitive number from the primitive buffer, and sends this to the XYZ clip unit 23 (step S11).
  • the XYZ clip unit 23 clips the primitive based on the geometry data sent from the multipath control unit 22.
  • the primitives located outside the display area 50 of the display 41 are removed and deformed.
  • the result of the removal and deformation is reflected on the geometry data (step S12).
  • the geometry data after clipping is sent to the SU ZD DA unit 24 together with the primitive number.
  • the geometry data of the primitive removed by clipping is not sent to the SUZDDA unit 24.
  • the SU / DDA unit 24 performs interpolation based on the clipped geometry data, and generates coordinate values of each pixel constituting the primitive (step S13).
  • the SU / DDA unit 24 sends the generated coordinate values as interpolation data to the Z test unit 25 together with the primitive numbers.
  • the Z test unit 25 performs a Z test using the interpolation data of each pixel sent from the SUZDDA unit 24 (Step S14).
  • the Z test unit 25 reads the Z value of the pixel from the Z buffer 26, compares the Z value with the Z value included in the interpolation data, and selects the one closer to the viewpoint. If the Z value read from the Z buffer 26 is closer to the viewpoint, leave the Z buffer 26 as it is (Step S14: No update), and if the Z value included in the interpolation data is closer to the viewpoint, The Z value of 26 is updated (step S14: updated, step S15).
  • the Z-value of the primitive closest to the viewpoint is written into the Z-buffer 26 for each pixel. However, if the whole area of one pixel is not filled, and the primitive is transparent or translucent, the Z value is not written to the pixel.
  • FIG. 14 and FIG. 15 are diagrams for explaining the processing at the time of the test pass.
  • the multi-pass control unit 22 reads the geometry data together with the primitive number from the primitive buffer, and sends this to the XYZ clip unit 23 (step S31).
  • the XYZ clip unit 23 clips the primitive based on the geometry data sent from the multipath control unit 22, and displays the primitive.
  • the primitive located outside the display area 1 is removed and deformed (step S32).
  • the clip unit 23 reflects the results of removal and deformation in the geometry data.
  • the clipping geometry data is sent to the SUZDD A unit 24 together with the primitive number.
  • the primitive geometry data that is removed by clipping is not sent to the SU / DDA unit 24.
  • the SUZDDA unit 24 performs interpolation based on the geometry data after clipping, and generates coordinate values of each pixel constituting the primitive (step S33).
  • the Z test section 25 performs an operation for a test pass.
  • the Z test section 25 compares the Z value of the interpolation data sent from the SU / DDA section 24 with the Z value stored in the Z buffer 26 and finds a match. Is sent to the stencil test section 27 (step S34: match). If they do not match, the rendering processor 16 determines whether the test pass has been completed for all the geometry data stored in the primitive buffer 21 (step S34: does not match, step S37). ).
  • the interpolation data having the Z value closest to the viewpoint and the primitive number are sent to the stencil test unit 27.
  • the stencil test unit 27 performs a stencil test on the interpolation data sent from the Z test unit 25 (Step S35).
  • the stencil test if the pixel indicated by the interpolation data is in the permitted area 54, this pixel is displayed and the primitive number is sent to the primitive selection unit 29 (step S35: display).
  • the rendering processor 16 determines whether or not the test pass has been completed for all the geometry data stored in the primitive buffer 21 (step S). 35: Hidden, step S3 7).
  • the primitive selecting section 29 Upon receiving the primitive number from the stencil test section 27, the primitive selecting section 29 updates the visible flag of the address corresponding to the primitive number to "1" (step S36). The above processing is performed for all the geometry data stored in the primitive buffer 21 (step S37). Thus, the test pass ends.
  • Primitives that are not displayed on the display 41 are selected by Z-buffer drawing and test passes.
  • primitives outside the display area 50 are selected by clipping by the XYZ clip unit 23
  • primitives hidden by other primitives are selected by the Z test by the Z test unit 25
  • stencil test by the stencil test unit 27 Selects primitives in the non-permitted area 53.
  • the visible flag of the address of the primitive selection unit 29 corresponding to the primitive number of the primitive selected as described above is “0”. This primitive is not displayed on the display 41.
  • the XYZ clip section 23, the Z test section 25, and the stencil test section 27 separate the primitives displayed on the display 41 from the non-displayed primitives, and only the displayed primitives, the primitive selection section 2
  • the visible flag of 9 becomes "1".
  • Primitives that are selected as primitives that are not displayed in at least one of the clip section 23, the Z test section 25, and the stencil test section 27 have the visible flag set to "0".
  • the Z test is executed in a path different from the test path, but if the storage capacity of the Z buffer 26 is sufficient, the Z test is executed in the same path as the test path. It is also possible.
  • the primitive number of the Z value is written into the Z buffer 26 together with the Z value so that the primitive closest to the viewpoint can be identified.
  • the primitives can be selected based on the primitive numbers written in the Z buffer 26, and the Z buffer drawing and the test pass can be performed in one pass.
  • the test pass is performed by setting the visible flag of the selection table 62 to "0" in step S30, but this step may be omitted.
  • the primitive displayed on the display 41 and the primitive not displayed are determined by the Z buffer drawing and the test pass, and the visible flag is set to “0” or “1”.
  • the selection number of a primitive selected as a non-displayed primitive may be sent to the primitive selection unit 29 from each.
  • the rendering processor 16 Based on the sorting table 62 of the primitive sorting unit 29, the rendering processor 16 converts the primitive data that is not displayed on the display 41 among the geometric data stored in the primitive buffer 21 into a multi-pass render. It is not read during ringing (step S40).
  • FIG. 16 is a diagram for explaining the processing in the rendering processor 16 when the primitive is erased.
  • the primitive editing unit 30 checks the primitives to be displayed on the display 41 and the primitives not to be displayed by using the visible flag of the selection table 62 of the primitive selection unit 29. For example, in the sorting table 62 of FIG. 8, primitives with primitive numbers corresponding to addresses with visible flags of "0" are not displayed, and primitives with primitive numbers corresponding to addresses with visible flags of "1" are displayed. Primitive.
  • the primitive editing unit 30 deletes the confirmed geometry of the primitive that has not been displayed from the primitive buffer 21.
  • a flag indicating whether or not to use for multi-pass rendering is added to each of the geometry data, so that primitives that are not displayed on the display 41 are represented.
  • a flag may be used without deleting the geometry data.
  • FIG. 17 and FIG. 18 are diagrams for explaining processing at the time of multi-pass rendering.
  • the multi-pass control unit 22 reads the geometry data from the primitive buffer along with the primitive number, and reads this in XY. It is sent to the Z clip section 23 (step S51).
  • the XYZ clip unit 23 performs clipping on the primitive based on the geometry data sent from the multi-pass control unit 22, and removes and deforms the primitive located outside the display area of the display 41 ( Step S52).
  • the XYZ clip section 23 reflects the removal and deformation results in the geometry data.
  • the clipping geometry data is sent to the SUZD DA section 24 together with the primitive number.
  • the S UZD DA section 24 performs interpolation based on the geometry data after clipping, and generates interpolation data including coordinate values, luminance values, and texture coordinate values of each pixel constituting the primitive (step S53). ).
  • the S UZD DA unit 24 sends the generated interpolation data to the Z test unit 25 together with the primitive number.
  • the Z test unit 25 compares the Z value included in the interpolation data sent from the S UZD DA unit 24 with the Z value stored in the Z buffer 26 for each pixel.
  • the interpolation data and the primitive number are sent to the stencil test section 27 (step S54: coincident). If they do not match, the process proceeds to step S57.
  • the interpolation data having the Z value closest to the viewpoint and the primitive number are sent to the stencil test unit 27.
  • the stencil test section 27 performs a stencil test on the interpolation data sent from the Z test section 25 (step S55).
  • step S55 display
  • step S57 The texture mapping unit 31 performs drawing on the frame buffer 32 based on the interpolation data sent from the stencil test unit 27 (step S56). Drawing of one primitive is completed as described above.
  • the rendering processor 16 executes the processing of steps S54 to S56 until the rendering is completed for all the pixels constituting the primitive (step S57).
  • step S58 When the rendering of one primitive is completed, it is checked whether or not the rendering of another primitive is completed (step S58). Some primitives have not been drawn Then, the process returns to step S51 (step S58: N). When the drawing is completed for all the primitives (step S58: Y), it is confirmed whether the drawing has been completed the predetermined number of times (step S59). If the predetermined number of passes is not satisfied, the process returns to step S51 (step S59: N). When the pass determined for all primitives ends, the multi-pass rendering ends (step S59: Y).
  • a two-dimensional image to be displayed on the display 41 is drawn in the frame buffer 32 (see FIG. 1). Thereafter, the display controller 40 converts the two-dimensional image drawn in the frame buffer 32 into an image signal and sends the image signal to the display 41. The display 41 displays this image signal.
  • the geometry data read from the primitive buffer 21 at the time of multi-pass rendering is minimized, so that the load at the time of rendering processing can be reduced.
  • the rendering processor 16 may be configured as shown in FIG.
  • the rendering processor 16 in FIG. 19 differs from the rendering processor in FIG. 1 in that an occupancy calculating unit 33 is provided before the test unit 25.
  • the occupancy calculating unit 33 calculates the ratio (occupancy) of the sub-pixel to be rendered to the entire sub-pixel for one pixel for each primitive.
  • the occupancy can be determined, for example, by the apparatus and method disclosed in JP-A-2002-140722 (title of the invention: apparatus and method for drawing an image from which aliasing has been removed).
  • FIG. 20 is a diagram illustrating the occupancy of primitives in one pixel. In FIG. 20, three primitives a, b, and c are depicted in one pixel. The ratio of the occupancy in one pixel is 2: 3: 7 for primitives a, b, and c in that order.
  • the rendering processor 18 combines the primitives a, b, and c according to this ratio, and makes the primitive a representative of the pixel.
  • the occupancy of the Z buffer is
  • a test pass may be executed to draw only the primitives to be displayed on the display 41.
  • the amount of rendering processing can be significantly reduced as compared with the related art.

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Description

画像処理装置及びその構成部品、 レンダリング処理方法 技術分野
本発明は、 ディスプレイ等の 2次元スクリーンに表示される 3次元画像のレンダ リング処理を効率的に行う画像処理技術に関する。 背景技術
画像をディスプレイに表示させる画像処理装置、 例えばゲームコンソール装置又 はパーソナルコンピュータ等における画像処理能力は、 近年のプロセッサの高速化 に伴い、 著しく進歩している。
例えば精細で高品位な 3次元画像を 2次元スクリーンに表示させるための 2次元 画像を、 ほぼリアルタイムで生成することが可能になっている。
2次元画像は、 3次元画像に存する仮想的な物体の画像 (以下、 「オブジェク ト」 という) を構成するポリゴンなどの複数のプリミティブと、 各プリミティブの 形状、 サイズ、 色、 輝度などの属性を表す属性デ一夕とにより生成される。
3次元画像を 2次元スクリーンに表示させるときに行われる画像処理は、 大別し て、 プリミティブの頂点座標等に座標変換などを施すジオメトリ処理と、 このジ才 メ卜リ処理の結果得られるジオメトリデータからピクセル毎の色などを決定して 2 次元画像を生成するレンダリング処理とからなる。
本明細書では、 主としてレンダリング処理を実行する装置 (分散システム、 半導 体デバイスを含む) をレンダリング処理装置と称する。 このレンダリング処理装置 は、 画像処理装置の一部を構成するものである。
レンダリング処理装置の中には、 同じプリミティブに対して複数回のレンダリン グ処理を行うことにより、 複雑な絵柄等の視覚効果の高い画像を描画できるものが ある。 この複数回のレンダリング処理を 「マルチパスレンダリング」 と称し、 この マルチパスレンダリングにおける 1回の処理を 「パス」 と称する。 3回のパスによ つてレンダリング処理を行うマルチパスレンダリングの場合、 例えば 1パス目でテ クスチヤの貼り付けを行わないポリゴン描画を行い、 2パス目でテクスチャを貼り 付ける処理を行い、 3パス目で別のテクスチャを貼り付ける処理を行う。
従来のレンダリング処理装置では、 マルチパスレンダリングを行うときに、 すべ てのプリミティブについて必ず複数回のレンダリング処理を行う。 そのため、 複雑 な絵柄の画像を描画しょうとすると、 レンダリング処理の回数が多くなつて処理量 が増大し、 負担が大きくなる。
本発明の課題は、 上記のような問題に鑑みてなされたものであり、 3次元画像の レンダリング処理を従来技術よりも少ない処理量で実現するレンダリング処理装置 及びレンダリング処理方法を提供することにある。
本発明の他の課題は、 視覚効果の高い画像をォ一バーへッドなく生成する画像処 理装置及びその構成部品を提供することにある。 発明の開示
上記の課題を解決する本発明のレンダリング処理装置は、 複数のプリミティブに より形成される 3次元画像を 2次元スクリーンに表示させるためのレンダリング処 理を行う装置であって、 前記複数のプリミティブの各々の属性を表す属性データを 当該プリミティブと対応付けて格納するプリミティブバッファと、 前記プリミティ ブバッファに格納されている複数の属性デ一夕同士を比較することにより、 前記複 数のプリミティブの各々を、 前記 2次元スクリーンに表示される第 1のプリミティ ブと表示されない第 2のプリミティブのいずれかに選別するテス夕とを備え、 前記 テス夕により選別された第 2のプリミティブを除く前記第 1のプリミティブに対し て前記レンダリング処理を行うように構成されている装置である。
レンダリング処理は、 同一のプリミティブに一つのテクスチャの描画を行う通常 の 1パスレンダリング処理であっても、 複数回のテクスチャ描画を行うマルチパス レンダリングであってもよい。 いずれにしても実際に 2次元スクリーンに表示され ることになるプリミティブ (第 1のプリミティブ) についてレンダリング処理を行 うので、 3次元画像を構成するすべてのプリミティブについて描画を行っていた従 来のレンダリング処理装置よりも処理量は大幅に低減する。
「属性データ」 は、 プリミティブが 2次元スクリーンに現れるものかどうかを判 別可能にするものであれば、 どのような種類のデータであってもよい。 通常は、 数 値データ、 例えば、 プリミティブの頂点に関する数値データ (頂点座標、 頂点輝度、 テクスチャ座標等) 、 プリミティブのサイズ、 色又は透過度等を属性データとする ことができる。 頂点に関する数値データは、 例えば、 ジオメトリ処理により得られ たジオメトリデータを用いることができる。
前記プリミティブバッファに格納される複数のプリミティブは、 好ましくは、 少 なくとも前記 2次元スクリーンに表示される一画面分の 3次元画像を形成し得る数 のプリミティブとする。 このようにすれば、 画面単位で効率的なレンダリング処理 を行うことができる。
ピクセル単位でのレンダリング処理をより効率的に行う場合は、 プリミティブの 既知の属性データに基づいてピクセル補間を行う補間手段をさらに備えてレンダリ ング処理装置を構成し、 前記テスタが、 前記ピクセル補間により得られた新たな属 性デ一夕を前記比較の対象に含めることで前記選別をピクセル単位で行うようにす る。 このような構成にすると、 1ピクセルでも 2次元スクリーンに表示されるプリ ミティブは第 1のプリミティブとされる。
より高解像度の画像を表示させる場合は、 前記補間手段を、 1ピクセルから分割 された複数のサブピクセルの少なくとも 1つがレンダリング処理されるときにプリ ミティブの既知の属性データに基づいてサブピクセル補間を行い、 前記テス夕は、 前記サブピクセル補間により得られた新たな属性データを前記比較の対象に含める ことで前記選別をサブピクセル単位で行うように構成する。
レンダリング処理されるサブピクセルの、 1ピクセル分のサブピクセル全体に占 める割合をプリミティブ毎に算定する占有率算定手段をさらに備え、 この占有率算 定手段による算定結果に応じて当該 1ピクセルについての属性データを決定するよ うにしてもよい。 このようにすれば、 アンチエイリアシングを迅速に行うことがで きるようになる。
アンチエイリアシングを可能にするため、 前記テスタを、 1ピクセルに複数のプ リミティブが描画されるときの境界部分のピクセルについては前記選別を回避する ように構成してもよい。
前記プリミティブバッファに格納されている複数の属性データの各々が前記 3次 元画像における当該プリミティブの位置を表す位置情報、 例えば座標値 (X、 Y、 Z ) を含むようにし、 前記テスタが、 個々の属性データに含まれる位置情報を比較 することにより前記 2次元スクリーンを通じて視る者の視点に最も近いプリミティ ブを前記第 1のプリミティブとし、 それ以外のプリミティブを前記第 2のプリミテ イブとして選別するように構成してもよい。 このように構成すると、 他のプリミテ イブに隠される位置にあるプリミティブについてのレンダリング処理を回避するこ とができる。
前記複数のプリミティブの各々は、 前記 2次元スクリーンへの表示を許可する許 可領域と許可しない非許可領域とを有し表示対象となる画像の透過度及び形状を表 すステンシルデータ上に重畳可能なものとすることができる。 この場合、 前記テス タは、 前記ステンシルデ一夕の許可領域又は非許可領域と少なくともその一部が重 畳するプリミティブを前記第 1のプリミティブとし、 それ以外のプリミティブを前 記第 2のプリミティブとして選別する。
レンダリング処理をより迅速にする観点からは、 第 1のプリミティブか第 2のプ リミティブかを表すフラグを、 レンダリング処理時に参照可能な所定の選別テープ ルに、 各プリミティブの属性データと対応付けて記録するように前記テス夕を構成 する。 このように構成することにより、 レンダリング処理装置が、 選別テーブルの フラグを確認するだけで、 属性データが第 1のプリミティブのものか、 第 2のプリ ミティブのものかを判別することができるようになる。 フラグを、 プリミティブ毎 に複数種類の値を呈し得る数値データとし、 前記フラグの値が前記 2次元スクリー ンに表示されるプリミティブのピクセル数に応じて更新されるようにしてもよい。 前記選別テ一ブルに記録されている個々のプリミティブについての前記フラグを 参照し、 前記第 2のプリミティブについては、 その属性データの前記プリミティブ バッファからの読み出しを制限する編集手段をさらに備えるようにしてもよい。 よ り確実に第 2のプリミティブの使用を回避する観点からは、 前記編集手段は、 前記 第 2のプリミティブとして選別したプリミティブの属性データを前記プリミティブ バッファから削除するようにする。
上記他の課題を解決する本発明の画像処理装置は、 2次元スクリーンの表示領域 に対応するサイズのフレームバッファと、 3次元画像を形成する複数のプリミティ ブのジオメトリ処理を行って当該 3次元画像についてのジオメトリデータを生成す る第 1プロセッサと、 生成された前記ジオメトリデータに基づいて前記フレームバ ッファに前記 3次元画像に対応する 2次元画像をレンダリング処理する第 2プロセ ッサと、 レンダリング処理された前記 2次元画像を前記表示領域に表示させるコン トローラとを備える。
前記第 2プロセッサは、 前記第 1プロセッサより取得したジオメトリデータによ り特定される複数のプリミティブの各々の属性を表す属性デ一夕同士を比較するこ とにより、 前記複数のプリミティブの各々を、 前記 2次元スクリーンに表示される 第 1のプリミティブと表示されない第 2のプリミティブのいずれかに選別するとと もに、 前記第 2のプリミティブを除く前記第 1のプリミティブによる前記 2次元画 像を前記フレームバッファにレンダリング処理する。
好ましい実施の態様では、 前記第 1プロセッサと前記第 2プロセッサとの間にバ ッファメモリが介在し、 前記第 1プロセッサにより生成されたジオメトリデータが 前記バッファメモリを介して前記第 2プロセッサに伝達されるようにする。
処理対象となる前記 3次元画像を外部機器より受領して前記第 1プロセッサに導 く画像受領機構をさらに備えて画像処理装置を構成してもよい。
上記他の課題を解決する本発明のレンダリング処理方法は、 画像形成に利用され るプリミティブを格納するプリミティブバッファを有し、 複数のプリミティブによ り形成される 3次元画像を 2次元スクリーンに表示させる装置により実行される方 法である。 すなわち、 この装置が、 前記 3次元画像を形成する複数のプリミティブ の各々の属性を表す属性データを、 当該プリミティブと対応付けて前記プリミティ ブバッファに格納し、 格納した属性デ一夕同士を比較して前記複数のプリミティブ の各々を前記 2次元スクリーン上に表示される第 1のプリミティブと表示されない 第 2のプリミティブのいずれかに選別するテストパスと、 このテストパスにより選 別された第 2のプリミティブを除く前記第 1のプリミティブを前記プリミティブバ ッファから読み出し、 読み出した第 1のプリミティブに対するレンダリング処理を 行うレンダリングパスとをこの順に実行することを特徴とする。
前記レンダリングパスを複数回実行し、 同一のプリミティブに対して異なるテク スチヤを複数回レンダリング処理するようにする形態も可能である。
上記他の課題を解決するため、 本発明は、 半導体デバイス、 コンピュータプログ ラムをも提供する。
本発明の半導体デバイスは、 2次元スクリーンを有するディスプレイが接続され るコンピュータに搭載されるデバイスであって、 前記コンピュータが有する他の構 成部品と協働で、 該コンピュータに、 3次元画像を形成する複数のプリミティブの 各々の属性を表す属性データを当該プリミティブと対応付けて格納するプリミティ ブバッファと、 前記プリミティブバッファに格納されている複数の属性データ同士 を比較することにより、 前記複数のプリミティブの各々を、 前記 2次元スクリーン に表示される第 1のプリミティブと表示されない第 2のプリミティブのいずれかに 選別するテスタと、 前記テス夕により選別された第 2のプリミティブを除く前記第 1のプリミティブに対して前記レンダリング処理を行って前記 2次元スクリーンに 表示させる 2次元画像を生成するレンダリング処理手段とを構築するものである。 本発明のコンピュータプログラムは、 画像形成に利用されるプリミティブを格納 するプリミティブバッファと、 2次元スクリーンを有するディスプレイとが接続さ れるコンピュータに、 3次元画像を形成する複数のプリミティブの各々の属性を表 す属性デ一夕を、 当該プリミティブと対応付けて前記プリミティブバッファに格納 する処理、 前記プリミティブバッファに格納されている複数の属性データ同士を比 較することにより、 前記複数のプリミティブの各々を、 前記 2次元スクリーンに表 示される第 1のプリミティブと表示されない第 2のプリミティブのいずれかに選別 する処理、 及び、 前記選別された第 2のプリミティブを除く前記第 1のプリミティ ブに対して前記レンダリング処理を行って前記 2次元スクリーンに表示させる 2次 元画像を生成する処理、 を実行させるためのコンピュータプログラムである。 この コンビュ一夕プログラムは、 コンピュータ読み取り可能な記録媒体に記録されるこ とにより実体化される。 図面の簡単な説明
第 1図は、 本実施形態の画像処理装置のハードウエア構成図である。
第 2図は、 プリミティブバッファに格納されたジオメトリデータの例示図である。 第 3図は、 トライアングルストリップの説明図である。
第 4図は、 クリッピングを説明するための図である。 第 5図は、 クリッピングを説明するための図である。
第 6図は、 サブピクセルの例示図である。
第 7図は、 ステンシルテストの説明に用いる図である。
第 8図は、 プリミティブ選別部の構成例を示す図である。
第 9図は、 トライアングルストリップの例示図である。
第 1 0図は、 プリミティブがトライアングルストリップのときの選別テーブルの 例示図である。
第 1 1図は、 本実施形態のレンダリング処理の処理手順を表す図である。
第 1 2図は、 Zバッファ描画の処理手順を表す図である。
第 1 3図は、 Zバッファ描画のデータの流れを表す図である。
第 1 4図は、 テストパスの処理手順を表す図である。
第 1 5図は、 テストパスのデータの流れを表す図である。
第 1 6図は、 ディスプレイに表示されないプリミティブを消去するときのデータ の流れを表す図である。
第 1 7図は、 マルチパスレンダリングの処理手順を表す図である。
第 1 8図は、 マルチパスレンダリングのデ一夕の流れを表す図である。
第 1 9図は、 他の実施形態のレンダリングプロセッサのハードウェア構成図であ る。
第 2 0図は、 プリミティブの占有率の説明図である。 発明を実施するための最良の形態
以下、 本発明を、 マルチパスレンダリングが可能な画像処理装置に適用した場合 の実施形態を説明する。
図 1は、 この実施形態による画像処理装置のハ一ドウエア構成図である。
画像処理装置 1は、 レンダリング処理装置の一例となるレンダリングプロセッサ 1 6を搭載し、 マルチパスレンダリングを行うことにより、 視覚効果の高い 3次元 画像を 2次元スクリーン、 例えばディスプレイ 4 1の画面にリアルタイムに表示さ せる。 マルチパスレンダリングに際しては、 後述するテストパスを先行させ、 他の プリミティブに隠れて見えなくなるなどの理由でディスプレイ 4 1に表示されない 第 2プリミティブを選別し、 選別したプリミティブを除いたレンダリングパスを実 行する。 このようにして、 画像処理装置 1は、 実際にはディスプレイ 4 1に表示さ れないプリミティブを描画するような無駄な処理を排除し、 レンダリング処理の効 率化を図る。
画像処理装置 1は、 C D— R〇M、 D VD— R OM等のディスク媒体 1 5が装着 されるディスクドライブ 1 0、 有線若しくは無線により外部機器との間との通信を 可能にする通信制御部 1 1、 ジオメトリプロセッサ 1 2、 メモリ 1 3、 C P U 1 4、 レンダリングプロセッサ 1 6が、 バスにより相互にデータの送受信が可能に接続さ れている。
レンダリングプロセッサ 1 6には、 ビデオ信号などの画像信号をディスプレイ 4 1に出力するためのディスプレイコントローラ 4 0が接続されている。
ディスクドライブ 1 0は、 ディスク媒体 1 5から画像処理用のデータ及びプログ ラムを読み出し、 これをメモリ 1 3に格納する。 画像処理用のデータは、 例えば、 プリミティブについての図形データなどである。 この実施形態における図形データ は、 例えばプリミティブについての頂点座標値 (X, Υ, Z ) 、 頂点輝度値 (R, G, B) 、 ベクトル値、 頂点同士の接続状況を表す連結情報、 などを含んでいる。 通信制御部 1 1は、 上述の画像処理用のデ一夕及びプログラムを外部機器から取 り込み、 これをメモリ 1 3に格納する。 すなわち、 通信制御部 1 1は、 ディスクド ライブ 1 0がディスク媒体 1 5から取り込むデータと同様のデ一タを外部機器から 取り込んでメモリ 1 3に格納するように動作する。
このような構成を採用することにより、 画像処理装置 1は、 ディスクドライブ 1 0と通信制御部 1 1の少なくとも一方から、 画像処理用のデータ及びプログラムを 受領することができる。
ジオメトリプロセッサ 1 2は、 C P U 1 4の制御のもと、 メモリ 1 3に格納され た図形デ一夕に対して、 ァフィン (affme) 変換処理、 頂点に対する光源処理など のジオメトリ処理を行う。 ジオメトリ処理の結果得られるジオメトリデータは、 プ リミティブについての頂点座標値 (X, Υ, Ζ ) 、 各頂点でのテクスチャ座標値 ( S , Τ, Q) 、 頂点輝度値 (R , G, Β , Α) など、 プリミティブの属性を表す データからなる。 頂点輝度値の "Α" は、 公知のアルファプレンデイング処理を行 う際に用いられる半透明係数である。
メモリ 1 3には、 ディスクドライブ 1 0及び通信制御部 1 1の少なくとも一方か ら取り込んだ画像処理用データ及びプログラムが格納されるほか、 画像処理装置 1 による処理の際に生成される各種データも格納される。 これにより、 画像処理装置 1におけるメインメモリとしても利用される。
C P U 1 4は、 各構成要素間のデータの受け渡し、 例えば、 ジオメトリプロセッ サ 1 2で生成されたジオメトリデータを、 メモリ 1 3等をバッファとしてレンダリ ングプロセッサ 1 6へ伝達させるための制御等を行う。
なお、 本実施形態では、 ジオメトリプロセッサ 1 2を C P U 1 4とは別に設けた 例を示すが、 これらが一体となって、 C P U 1 4がジオメトリプロセッサ 1 2の機 能を持つようにしてもよい。
レンダリングプロセッサ 1 6は、 ジオメトリプロセッサ 1 2で生成されたジオメ トリデ一夕に基づいてマルチパスレンダリングを行う。
ディスプレイコントローラ 4 0は、 レンダリング処理の結果生成された 2次元画 像を、 ディスプレイ 4 1で表示可能な構造の画像信号に変換してディスプレイ 4 1 へ出力する。 この画像信号によりディスプレイ 4 1に画像が表示される。
レンダリングプロセッサ 1 6は、 より具体的には、 プリミティブバッファ 2 1、 マルチパス制御部 2 2、 X Y Zクリップ部 2 3、 セットアップ D D A (Digital Differential Analyzer) 部 (以下、 「 S UZD D A部」 という) 2 4、 Zテスト部 2 5、 Zバッファ 2 6、 ステンシルテスト部 2 7、 ステンシルバッファ 2 8、 プリ ミティブ選別部 2 9、 プリミティブ編集部 3 0、 テクスチャマッピング部 3 1、 フ レームバッファ 3 2を備えている。
Zテスト部 2 5、 ステンシルテスト部 2 7、 プリミティブ選別部 2 9、 及びプリ ミティブ編集部 3 0は、 それぞれ本発明におけるテスタの一構成要素となるもので ある。
これらの構成要素は、 半導体デバイスなどにより個別に実現することができるが、 汎用のディジタルシグナルプロセッサ (Digital Signal Processor: D S P ) 、 或い はグラフィックプロセッサ (Graphic Processor: G P ) 等と、 コンピュータプログ ラムとの協働により、 すなわち、 これらのプロセッサがコンピュータプログラムを 読み込んで実行することにより実現されるようにしてもよい。
プリミティブバッファ 2 1は、 プリミティブの少なくとも 1グループ分のジオメ トリデータを、 これらのプリミティブの各々の属性データの一例として格納する。 プリミティブの 1グループとは、 例えば、 ディスプレイ 4 1における一つの画面上 の画像又は一つのオブジェクトを構成するプリミティブの集合を指す。 各プリミテ イブには、 それぞれを識別するための識別情報となる識別番号 (以下、 「プリミテ イブ番号」 という) が、 これも属性データの一つとして付される。
図 2は、 プリミティブバッファ 2 1に格納されるジオメトリデータと、 各ジオメ トリデータに付されるプリミティブ番号 (PN1、 PN2〜) との関係を示した図であ る。 なお、 図示の例以外に、 ジオメトリデータのそれぞれに、 そのジオメトリデ一 タをマルチパスレンダリングに用いるか否かを表すためのフラグを対応付けておい てもよい。
ジオメトリデ一夕が、 三角形状を表現するための所謂トライアングルストリップ
(triangle strip)デ一夕になっている場合、 ジオメトリデ タは、 トライアングル ストリップの各頂点について生成さ
6は、 各頂点のジオメトリデ一夕に
Figure imgf000012_0001
ァ 2 1に格納する。
トライアングルストリップデータによるトライアングルストリップの例を図 3に 示す。 図示の 「0」 〜 「7」 はそれぞれ頂点である。 図 3のようなトライアングル ストリップデ一夕の場合は、 頂点 0, 1, 2— 7のそれぞれにプリミティブ番号が 付される。 トライアングルファンにも、 同様のプリミティブバッファ 2 1を用いる ことができる。
プリミティブバッファ 2 1は、 ジオメトリプロセッサ 1 2とレンダリングプロセ ッサ 1 6との間におけるジオメトリデータ
ス毎に発生してしまうことを防止するため
Figure imgf000012_0002
ァ 2 1を介在させることにより、 ジオメトリプロセッサ 1 2とレンダリングプロセ ッサとの間のオーバヘッドを低減させることができる。
プリミティブバッファ 2 1は、 この実施形態ではレンダリングプロセッサ 1 6内 に設けることとしているが、 これに限らずレンダリングプロセッサ 1 6とは独立に 設けるようにしてもよい。 また、 メモリ 1 3内に設けるようにしてもよい。
マルチパス制御部 2 2は、 マルチパスレンダリングの制御を行う。 例えば、 レン ダリングプロセッサ 1 6内の各構成要素に対して、 後述する Zバッファ描画、 テス トパス、 マルチパスレンダリングのどれを実行するかを通知する。 また、 プリミテ イブバッファ 2 1から、 レンダリング処理されるプリミティブのジオメトリデータ 及びそのジオメトリデータのプリミティブ番号を読み出して X Y Zクリ プ部 2 3 へ送る。
マルチパスレンダリングの実行中、 マルチパス制御部 2 2は、 ジオメトリデータ を必要に応じて変更する。 例えば、 1つのプリミティブ (例えば、 ポリゴン) に対 してパス毎に異なるテクスチャをマッピングする場合、 テクスチャ座標値の倍率を 変えたり、 或いはシフトさせる処理を行う。
マルチパス制御部 2 2は、 また、 必要に応じて、 テクスチャの原点座標のシフト 量を変更させる。 この変更の処理を行うことにより、 レンダリングプロセッサ 1 6 で、 テクスチャ座標軸毎の線形変換を行うことが可能となる。 さらにマルチパス制 御部 2 2は、 必要に応じて、 頂点輝度値 (R, G, B , A) を選択的に固定値に置 き換える。 これにより、 レンダリングプロセッサ 1 6において、 例えば 2パス目以 降に同じ頂点輝度値を再送する無駄を無くすことができる。
丫2クリップ部2 3は、 予め用意されているクリップデ一夕に基づいて、 マル チパス制御部 2 2から送られたジオメトリデータによるプリミティブの 3次元のク リッピング (Clipping) を行う。 クリップデータは、 ディスプレイ 4 1の表示領域 を表すデー夕であり、 クリッピングは、 クリップデー夕による表示領域外となるプ リミティブの除去、 或いは、 表示領域からはみ出すプリミティブについての形状変 更等を行う処理である。
ここで、 クリツピングの動作を図 4、 図 5を参照して具体的に説明する。
図 4は、 頂点座標 (X I , Y l ) 、 (X 2 , Y 2 ) 、 (X 3 , Y 3 ) で表される プリミティブ 5 1とディスプレイ 4 1の表示領域 5 0との関係を表している。 X Y Zクリップ部 2 3は、 プリミティブ 5 1が表示領域 5 0からはみ出しているときに、 クリッピングによりその形状の変更を行う。 この変更された形状のプリミティブ 5 2と表示領域 5 0との関係を示したのが図 5である。 丫2クリップ部23は、 図 5のように、 表示領域 50からはみ出しているプリ ミティブ 51の形状を変更し、 頂点座標 (X3, Y3) 、 (X6, Y6) 、 (X5, Υ5) 、 (Χ4, Υ4) 、 (Χ7, Υ7) からなる新たなプリミティブ 52を生成 する。 この新たなプリミティブ 52のプリミティブ番号は、 形状変更前のプリミテ イブ 51と同じ番号である。
X Υ Ζクリップ部 23は、 クリッビング後のジオメトリデータとプリミティブ番 号とを、 SUZDDA部 24へ送る。
SUZDDA部 24は、 セットアップ処理及び DD Α処理を行う。
セットアップ処理とは、 XYZクリップ部 23から送られたクリッピング後のジ オメトリデ一夕に基づいて、 DD A処理に用いられる初期座標値及び傾き値を算出 する処理である。
DDA処理とは、 セットアップ処理で算出された初期座標値及び傾き値に基づい て、 プリミティブの頂点間を線形補間すると共に、 プリミティブ内部についても補 間して、 プリミティブを構成する各ピクセルの座標値 (X, Y, Ζ) 、 輝度値 (R, G, Β, A) 、 テクスチャマッピングのためのテクスチャ座標値 (S, T, Q) 等 を含む補間デ一夕を求める処理である。
例えば図 5に示したプリミティブ 52の場合は、 斜線で示した部分の各ピクセル について補間データを求める。 ただし、 後述する Zバッファ描画及びテストパスの 際には、 311/00八部24は、 各ピクセルの座標値の補間のみを行うようにして もよい。
ピクセル毎の補間デ一夕は、 プリミティブ番号とともに、 Zテスト部 25に送ら れる。
Zテスト部 25は、 Zバッファ描画時とテストパス時とで異なる形態の処理を行 う。
Zバッファ描画時に Zテスト部 25は、 ピクセル毎に、 SUZDDA部 24から 送られる補間デ一夕に含まれる Z値と Zバッファ 26に書き込まれている Z値とを 比較し、 比較の結果に基づいて、 いずれかの Z値を Zバッファ 26に書き込む。 例 えば、 より視点に近い方の Z値を選択し、 この Z値を Zバッファ 26に書き込む。 SUZDDA部 24から送られた Z値を選択した場合は、 この Z値により Zバッフ ァ 2 6の当該ピクセルの Z値を更新する。 Zバッファ 2 6に記憶されていた Z値を 選択した場合には、 Zバッファ 2 6の更新は行わない。
但し、 1ピクセルの Zバッファについて、 そのピクセルの全域を埋めないプリミ ティブについては、 その背面部分に表示に必要な他のプリミティブが存在すること があるので、 アンチエイリアシング (Anti-Aliasing) のために、 Zテスト部 2 5は、 そのピクセルの Z値を Zバッファ 2 6に書き込まないでおく。 また、 プリミティブ が透明または半透明な場合にも、 同様の理由で Zバッファ 2 6に Z値を書き込まな い。
他方、 テストパス時に Zテスト部 2 5は、 Zバッファ 2 6に記憶された Z値と S UZD D A部 2 4から送られた補間デ一夕とをピクセル毎に比較して、 Zバッファ 2 6に記憶された Z値と同じ Z値を持つ補間データを選択する。 そして、 選択した 補間データを、 プリミティブ番号と共にステンシルテス卜部 2 7へ送る。 なお、 前 述のように Zバッファ 2 6に Z値が書き込まれていない場合には、 Zテスト部 2 5 は、 最も視点に近い Z値を持つ補間データを選択して、 これをプリミティブ番号と 共にステンシルテスト部 2 7へ送る。
Zバッファ 2 6には、 Zバッファ描画の結果として、 ピクセル毎に視点に最も近 いプリミティブの Z値が書き込まれる。
なお、 レンダリングパスをピクセル単位でなく、 サブピクセル単位で実行し、 よ り高解像度の画像をレンダリングすることもできる。 この場合は、 サブピクセル用 の Zバッファを用い、 サブピクセルのレンダリング処理を終えた時点で、 実際のピ クセルを求めるための縮小描画を行う。
図 6は、 縦 3 X横 2ピクセルをサブピクセルで表示した例を示した図である。 図 6において、 各ピクセルは、 4 X 4のサブピクセルに分割されている。 この例では 右上がりの斜線が描かれている。 右下のピクセルは、 通常のピクセルでは、 斜線が 描かれないピクセルと判断される。 しかし、 サブピクセルを用いると、 1つのサブ ピクセルにこの斜線が描かれるので、 右下のピクセルにも斜線が影響を与えること になる。 このように、 サブピクセル単位で Z値を書き込むことにより、 一つのピク セルに 2以上のプリミティブが含まれる場合であっても、 すべてのプリミティブを 考慮した表示が可能となる。 Zバッファ 2 6の記憶容量に余裕がある場合には、 Z値の他に、 当該 Z値のプリ ミティブに付されたプリミティブ番号を格納するようにしてもよい。
ステンシルテスト部 2 7は、 ステンシルバッファ 2 8に格納されているステンシ ルデ一夕に基づいてステンシルテストを行う。
このステンシルテストの概要を図 7を参照して説明する。
図 7に示すように、 ステンシルデータは、 ディスプレイ 4 1への表示を許可しな い非許可領域 5 3と、 許可する許可領域 5 4とを表すものである。 本実施形態によ るステンシルテストは、 例えば Zテスト部 2 5から送られる補間デ一夕の座標値と ステンシルデ一夕の座標値を比較することで、 許可領域 5 4にプリミティブ 5 2が 表示されるか否か、 すなわち許可領域 5 4に位置する補間データが存在するか否か を判別する処理である。 表示されるプリミティブ 5 2のプリミティブ番号は、 プリ ミティブ選別部 2 9へ送られる。
マルチパスレンダリングの場合は、 表示されるプリミティブの補間データをテク スチヤマッピング部 3 1へ送る。
ステンシルバッファ 2 8は、 ステンシルデ一タを格納し、 ステンシルテスト部 2 7からの要求により、 これを随時読み出すように構成される。 ステンシルバッファ 2 8に格納されるステンシルデータは、 例えば、 パスを介してメモリ 1 3から供給 される。
X Y Zクリップ部 2 3、 Zテスト部 2 5及びステンシルテスト部 2 7により、 デ イスプレイ 4 1に表示されるピクセルを含むプリミティブと表示されないプリミテ イブとが分けられる。
ディスプレイ 4 1に表示されるピクセルを含むプリミティブのプリミティブ番号 は、 ステンシルテスト部 2 7からプリミティブ選別部 2 9へ送られる。
プリミティブ選別部 2 9は、 図 8に示すように、 ァドレス制御部 6 1と選別テ一 ブル 6 2とを備えて構成される。
選別テーブル 6 2は、 アドレス (NA 1, NA 2 , ···) と、 ディスプレイ 4 1に 表示されるかどうかを表すための可視フラグとが記録される。
アドレスは、 プリミティブバッファ 2 1に格納されたプリミティブデータに付さ れるプリミティブ番号 (P N 1, P N 2 , ···) に対応している。 ァドレス制御部 6 1は、 選別テ一ブル 6 2の初期化、 選別テーブル 6 2のァドレ ス計算、 可視フラグの変更を行う。 例えば、 アドレス制御部 6 1は、 全プリミティ ブの Zバッファ描画が終了した時点で可視フラグを " 0 " クリア (初期化) する。 そして、 ステンシルテスト部 2 7から送られるプリミティブ番号を、 選別テーブル 6 2のアドレスに変換し、 そのアドレスに対応する可視フラグを " 0 " から " 1 " へ変更する。
" 1 " の値が格納された可視フラグのアドレスは、 ディスプレイ 4 1に表示され るプリミティブのプリミティブ番号に対応する。 また、 " 0 " の値が格納された可 視フラグのアドレスは、 ディスプレイ 4 1に表示されるピクセルを一つも含んでい ないプリミティブのプリミティブ番号に対応する。
なお、 アドレスは、 上述のプリミティブ番号と同じものであってもよい。
プリミティブが、 図 9に示したトライアングルストリップである場合、 選別テ一 ブル 6 2の内容は、 図 1 0のようになる。 図 9の例では、 頂点 2、 3、 4で構成さ れる三角形のプリミティブが形成されていない。
すなわち、 頂点 0, 1, 2 7のそれぞれのプリミティブ番号に対応したァドレ スに、 表示するか否かを表す可視フラグが格納される。 トライアングルストリップ の場合には、 各頂点のジオメトリデータが 0から順に読み出されて三角形のプリミ ティブが生成される。 例えば、 頂点 0、 1のジオメトリデ一夕が読み出された後に、 頂点 2のジオメトリデ一夕が読み出され、 頂点 0、 1、 2による三角形のプリミテ イブが生成される。 頂点 0、 1についての可視フラグは、 "Not Active" とされ、 頂点 0、 1は可視フラグに左右されない。
図 1 0の例では、 アドレス NA 4に対応するプリミティブ番号 4の頂点 4は、 表 示されない。 これは、 レンダリング処理の際に、 頂点 4のジオメトリデータを読み 出したときには、 それによつてできる頂点 2、 3、 4による三角形が形成されない ことを意味しており、 頂点 4に関係するすべての三角形が形成されないことを意味 するものではない。 つまり、 頂点 2、 3、 4による三角形は形成されないが、 頂点 3、 4、 5による三角形、 頂点 4、 5、 6による三角形は形成される。 また、 トラ ィアングルファンについても同様の選別テーブル 6 2を用いることができる。 ■ 可視フラグは、 単一の数値、 あるいは二値のほか、 整数値を保持できるものとし てもよい。 この場合のアドレス制御部 6 1は、 ステンシルテスト部 2 7から送られ てくる各ピクセルのプリミティブ番号を、 選別テ一ブル 6 2のアドレスへ順次変換 し、 そのアドレスに対応する可視フラグの値を順次インクリメントする。 これによ り、 可視フラグは、 プリミティブ毎に、 ディスプレイ 4 1上に表示されるピクセル 数に応じた数値を呈することになる。
プリミティブ選別部 2 9の選別テ一ブル 6 2への書き込みは数ビット程度のサイ ズなので、 フレームバッファ 3 2への書き込みに比べてページブレイクを起こす可 能性が非常に低い。 そのため、 高速なテストパス処理が可能である。
プリミティブ編集部 3 0は、 本発明の編集手段の一例となるもので、 プリミティ ブ選別部 2 9の選別テーブル 6 2に基づいて、 ディスプレイ 4 1に表示されないプ リミティブのプリミティブ番号を確認する。 そして、 確認したプリミティブ番号に 対応するジオメトリデータが、 プリミティブバッファ 2 1から読み出されないよう にする。
例えば、 プリミティブ編集部 3 0は、 選別テーブル 6 2の可視フラグが " 0 " で あるアドレスに対応するプリミティブ番号を確認して、 このプリミティブ番号に対 応するプリミティブがマルチパスレンダリングの際にプリミティブパッファ 2 1か ら読み出されないようにする。 プリミティブバッファ 2 1内の各ジオメトリデ一夕 に、 マルチパスレンダリングに用いるか否かを表すためのフラグが付されている場 合には、 このフラグにより、 マルチパスレンダリングの際に読み出されないように する。 ジオメトリデータを、 プリミティブバッファ 2 1から消去するようにしても よい。 '
テクスチャマッピング部 3 1は、 パス数に応じた回数のレンダリング処理を行う。 テクスチャマッピング部 3 1は、 例えば、 パス毎に異なるテクスチャを同一のプリ ミティブにマッピングする。 このマッピングによってフレームバッファ 3 2に、 表 示対象となる画像が描画される。
フレームバッファ 3 2は、 ディスプレイ 4 1に対応したメモリ空間を備えており、 そのメモリ空間上に、 当該ディスプレイ 4 1の 2次元平面に対応するようにして各 ピクセルの描画を行う。 フレームバッファ 3 2に描画されたフレーム単位の画像は、 ディスプレイコントローラ 4 0を介して画像信号としてディスプレイ 4 1に送られ、 表示される。
次に、 上記のように構成される画像処理装置 1の動作、 特にレンダリングプロセ ッサ 1 6によるレンダリング処理方法の例を具体的に説明する。
前提として、 レンダリングプロセッサ 1 6のプリミティブバッファ 2 1に、 ジォ メトリプロセッサ 1 2によるジオメトリ処理の結果であるジオメトリデータが、 属 性デー夕の一例として格納されているものとする。
図 1 1は、 このレンダリング処理方法の概要図である。
レンダリングプロセッサ 1 6は、 プリミティブバッファ 2 1に格納されているす ベてのジオメトリデ一夕に対して Zバッファ描画を行い、 視点に近い Z値を Zバッ ファに書き込む (ステップ S 1 0 ) 。 この Zバッファ描画が終了すると、 レンダリ ングプロセッサ 1 6は、 プリミティブ選別部 2 9の選別テーブル 6 2をクリアして、 可視フラグをすベて " 0 " にする (ステップ S 2 0 ) 。 次いで、 テストパスを行い、 その結果に応じて選別テーブル 6 2の可視フラグを変更する (ステップ S 3 0 ) 。 テストパスにより、 選別テーブル 6 2には、 ディスプレイ 4 1に表示されるプリミ ティブか表示されないプリミティブかを表すフラグが格納されるので、 レンダリン グプロセッサ 1 6は、 この選別テーブル 6 2を確認して、 プリミティブバッファ 2 1に格納されたジオメトリデータのうちディスプレイ 4 1に表示されないプリミテ イブのジオメトリデ一夕を消去させる。 つまり、 プリミティブを消去させる (ステ ップ S 4 0 ) 。 プリミティブの消去が終了すると、 レンダリングプロセッサ 1 6は、 ディスプレイ 4 1に表示されるプリミティブに対するマルチパスレンダリングを実 行する (ステップ S 5 0 ) 。
このようにして無駄のないレンダリング処理を行うことが可能になる。
次に、 図 1 1における各処理ステップの内容を、 より具体的に説明する。
[ Zバッファ描画:ステップ S 1 0 ]
Zバッファ描画時の手順を図 1 2、 データの流れを図 1 3に示す。
Zバッファ描画時には、 まず、 マルチパス制御部 2 2がプリミティブバッファか らジオメトリデ一夕をプリミティブ番号と共に読み出して、 これを X Y Zクリップ 部 2 3に送る (ステップ S 1 1 ) 。 X Y Zクリップ部 2 3は、 マルチパス制御部 2 2から送られてきたジオメトリデータに基づくプリミティブに対してクリッビング を行い、 ディスプレイ 41の表示領域 50外に位置するプリミティブの除去、 変形 を行う。 そして、 この除去、 変形の結果をジオメトリデータに反映させる (ステツ プ S 12) 。 クリッピング後のジオメトリデータはプリミティブ番号とともに SU ZD D A部 24へ送られる。 なお、 クリッピングにより除去されるプリミティブの ジオメトリデータについては、 SUZDDA部 24へ送られることはない。
SU/DD A部 24は、 クリッビング後のジオメトリデータに基づいて補間を行 い、 プリミティブを構成する各ピクセルの座標値を生成する (ステップ S 13) 。 SU/DDA部 24は、 生成した座標値を補間データとして、 プリミティブ番号と 共に Zテスト部 25へ送る。
Zテスト部 25は、 SUZDDA部 24から送られてきた各ピクセルの補間デー 夕を用いて、 Zテストを行う (ステップ S 14) 。 Zテスト部 25は、 Zバッファ 26から当該ピクセルの Z値を読み込み、 この Z値と補間データに含まれる Z値と を比較して、 より視点に近い方を選ぶ。 Zバッファ 26から読み込んだ Z値の方が 視点に近ければ Zバッファ 26をそのままにしておき (ステップ S 14 :更新な し) 、 補間データに含まれる Z値の方が視点に近ければ、 Zバッファ 26の Z値を 更新する (ステップ S 14 :更新あり、 ステップ S 15) 。
以上のような一連の処理を、 プリミティブバッファ 21に格納されているすべて のジオメトリデータに対して行う (ステップ S 16) 。 このようにして Zバッファ 描画が終了する。
Zバッファ描画が終了すると、 Zバッファ 26には、 ピクセル毎に視点に最も近 いプリミティブの Z値が書き込まれる。 但し、 1つのピクセルの全域を埋めない場 合、 プリミティブが透明または半透明である場合には、 当該ピクセルに Z値は書き 込まれない。
[テストパス:ステップ S 30]
図 14、 図 15は、 テストパス時の処理を説明する図である。 テストパス時には、 まず、 マルチパス制御部 22がプリミティブバッファからジオメトリデータをプリ ミティブ番号とともに読み出して、 これを XYZクリップ部 23に送る (ステップ S 31) 。 XYZクリップ部 23は、 マルチパス制御部 22から送られてきたジォ メトリデータに基づくプリミティブに対してクリッビングを行い、 ディスプレイ 4 1の表示領域外に位置するプリミティブの除去、 変形を行う (ステップ S 32) 。
¥2クリップ部23は、 除去、 変形の結果をジオメトリデ一夕に反映させる。 ク リッビングのジオメトリデ一夕はプリミティブ番号とともに S UZDD A部 24へ 送られる。 なお、 クリッピングにより除去されるプリミティブのジオメトリデータ については、 SU/DDA部 24へ送られることはない。
SUZDDA部 24は、 クリッピング後のジオメトリデータに基づいて補間を行 レ 、 プリミティブを構成する各ピクセルの座標値を生成する (ステップ S 33) 。
31; 00八部24は、 生成した座標値を補間データとして、 プリミティブ番号と ともに Zテスト部 25へ送る。
Zテスト部 25は、 テストパス用の動作を行う。 テストパス用の動作では、 Zテ スト部 25は、 SU/DDA部 24から送られた補間デ一夕の Z値と、 Zバッファ 26に格納された Z値とを比較して、 合致するものについてはその補間デ一夕とプ リミティブ番号とをステンシルテスト部 27へ送る (ステップ S 34:合致する) 。 合致しない塲合には、 レンダリングプロセッサ 16は、 プリミティブバッファ 21 に格納されるすべてのジオメトリデ一夕についてテス卜パスが終了したか否かを判 断する (ステップ S 34 :合致しない、 ステップ S 37) 。
なお、 Zバッファ 26に Z値が記憶されていないピクセルについては、 最も視点 に近い Z値を持つ補間データとプリミティブ番号をステンシルテスト部 27へ送る。 ステンシルテスト部 27は、 Zテスト部 25から送られた補間データについてス テンシルテストを行う (ステップ S 35) 。 ステンシルテストの結果、 補間データ が示すピクセルが許可領域 54にある場合には、 このピクセルは表示するのでプリ ミティブ番号をプリミティブ選別部 29へ送る (ステップ S 35 :表示) 。 補間デ 一夕が示すピクセルが非許可領域 53にある場合には、 レンダリングプロセッサ 1 6は、 プリミティブバッファ 21に格納されるすべてのジオメトリデータについて テストパスが終了したか否かを判断する (ステップ S 35 :非表示、 ステップ S 3 7) 。
プリミティブ選別部 29は、 ステンシルテスト部 27からプリミティブ番号が送 られてくると、 このプリミティブ番号に対応したアドレスの可視フラグを "1" に 更新する (ステップ S 36) 。 以上のような処理をプリミティブバッファ 2 1に格納されるすべてのジオメトリ デ一夕について行う (ステップ S 3 7 ) 。 このようにしてテストパスが終了する。
Zバッファ描画及びテストパスにより、 ディスプレイ 4 1に表示されないプリミ ティブが選別される。 つまり、 X Y Zクリップ部 2 3によるクリッピングにより表 示領域 5 0外のプリミティブが選別され、 Zテスト部 2 5による Zテストにより他 のプリミティブにより隠されるプリミティブが選別され、 ステンシルテスト部 2 7 によるステンシルテストにより非許可領域 5 3のプリミティブが選別される。
以上のようにして選別されたプリミティブのプリミティブ番号に対応する、 プリ ミティブ選別部 2 9のアドレスの可視フラグが " 0 " である。 このプリミティブが ディスプレイ 4 1に表示されないものである。
つまり、 X Y Zクリップ部 2 3、 Zテスト部 2 5、 ステンシルテスト部 2 7によ り、 ディスプレイ 4 1に表示されるプリミティブと表示されないプリミティブとが 分けられ、 表示されるプリミティブのみ、 プリミティブ選別部 2 9の可視フラグが " 1 " になる。 丫2クリップ部2 3、 Zテスト部 2 5、 ステンシルテスト部 2 7 の少なくとも一つで表示されないプリミティブに選別されたプリミティブは、 可視 フラグが " 0 " のままである。
なお、 ここでは Zテストをテストパスとは異なるパスで実行する例を示している が、 Zバッファ 2 6の記憶容量に余裕がある場合には、 Zテストをテス卜パスと同 じパスで行うことも可能である。 この場合には、 Zテスト時に、 Zバッファ 2 6に Z値とともに当該 Z値のプリミティブ番号を書き込むようにして、 最も視点に近い プリミティブがわかるようにする。 Zテストの結果、 Zバッファ 2 6に書き込まれ たプリミティブ番号によりプリミティブの選別が可能となり、 Zノ ッファ描画及び テス卜パスを 1回のパスで行うことができる。
この実施形態では、 ステップ S 3 0において選別テーブル 6 2の可視フラグを " 0 " にしてテストパスを行っているが、 この工程を省いてもよい。 この場合には、 Zバッファ描画及びテストパスにより、 ディスプレイ 4 1に表示されるプリミティ ブと表示されないプリミティブとを判別して、 可視フラグを " 0 "又は " 1 " にセ ットする。
また、 ¥∑クリップ部2 2、 Zテスト部 2 5、 ステンシルテスト部 2 7のそれ ぞれで、 表示されないプリミティブとして選別されたプリミティブの選別番号を、 それぞれから、 プリミティブ選別部 2 9に送るようにしてもよい。
[プリミティブ消去:ステップ S 4 0 ]
レンダリングプロセッサ 1 6は、 プリミティブ選別部 2 9の選別テーブル 6 2に 基づいて、 プリミティブバッファ 2 1に格納されたジオメトリデータのうちデイス プレイ 4 1に表示されないプリミティブのジオメトリデ一夕が、 マルチパスレンダ リングの際に読み出されないようにする (ステップ S 4 0 ) 。 図 1 6は、 プリミテ ィブ消去時のレンダリングプロセッサ 1 6における処理を説明する図である。
プリミティブ編集部 3 0は、 プリミティブ選別部 2 9の選別テーブル 6 2の可視 フラグにより、 ディスプレイ 4 1に表示するプリミティブと、 表示されないプリミ ティブとを確認する。 例えば、 図 8の選別テーブル 6 2で、 可視フラグが " 0 " の ァドレスに対応するプリミティブ番号のプリミティブが表示されないプリミティブ、 可視フラグが " 1 " のアドレスに対応するプリミティブ番号のプリミティブが表示 されるプリミティブである。
プリミティブ編集部 3 0は、 確認した表示されないプリミティブのジオメ卜リデ —夕を、 プリミティブバッファ 2 1から消去する。
これにより、 マルチパスレンダリングの際に処理されるジオメトリデータが、 デ イスプレイ 4 1に表示されるもののみとなり、 マルチパスレンダリングによるレン ダリングプロセッサへの付加が軽減される。
なお、 例えば、 トライアングルストリップの場合には、 すべてのジオメトリデ一 夕を使用するので、 ジオメトリデータの消去は行えない。 そのために、 例えば、 ジ オメトリデータのそれぞれに、 マルチパスレンダリングに用いるか否かを表すため のフラグを付して、 これによりディスプレイ 4 1に表示されないプリミティブを表 すようにする。 当然、 トライアングルストリップ以外でも、 ジオメトリデータの消 去を行わず、 このようなフラグを用いるようにしてもよい。
[マルチパスレンダリング:ステップ S 5 0 ]
図 1 7、 図 1 8は、 マルチパスレンダリング時の処理を説明する図である。
マルチパスレンダリング時には、 まず、 マルチパス制御部 2 2がプリミティブバ ッファからジオメトリデータをプリミティブ番号とともに読み出して、 これを X Y Zクリップ部 2 3に送る (ステップ S 5 1 ) 。
X Y Zクリップ部 2 3は、 マルチパス制御部 2 2から送られてきたジオメトリデ 一夕に基づくプリミティブに対してクリッピングを行い、 ディスプレイ 4 1の表示 領域外に位置するプリミティブの除去、 変形を行う (ステップ S 5 2 ) 。 X Y Zク リップ部 2 3は、 除去、 変形の結果をジオメトリデータに反映させる。 クリツピン グのジオメトリデータはプリミティブ番号とともに S UZD D A部 2 4へ送られる。
S UZD D A部 2 4は、 クリッピング後のジオメトリデータに基づいて補間を行 レ、 プリミティブを構成する各ピクセルの座標値、 輝度値、 テクスチャ座標値を含 む補間データを生成する (ステップ S 5 3 ) 。 S UZD D A部 2 4は、 生成した補 間デ一夕を、 プリミティブ番号とともに Zテスト部 2 5へ送る。
Zテスト部 2 5は、 S UZD D A部 2 4から送られた補間データに含まれる Z値 と、 Zバッファ 2 6に格納された Z値とをピクセル毎に比較して、 合致するものに ついてはその補間データとプリミティブ番号とをステンシルテスト部 2 7へ送る (ステップ S 5 4 :合致する) 。 合致しない場合には、 ステップ S 5 7へ移行する。 なお、 Zバッファ 2 6に Z値が記憶されていないピクセルについては、 最も視点 に近い Z値を持つ補間デ一夕とプリミティブ番号をステンシルテスト部 2 7へ送る。 ステンシルテスト部 2 7は、 Zテスト部 2 5から送られた補間データについてス テンシルテストを行う (ステップ S 5 5 ) 。 ステンシルテストの結果、 補間データ が示すピクセルが許可領域 5 4にある場合には、 このピクセルは表示するので補間 データをテクスチャマッピング部 3 1へ送る (ステップ S 5 5 :表示) 。 補間デ一 夕が示すピクセルが非許可領域 5 3にある場合には、 ステップ S 5 7へ移行する。 テクスチャマッピング部 3 1は、 ステンシルテスト部 2 7から送られた補間デ一 夕に基づいて、 フレームバッファ 3 2に描画を行う (ステップ S 5 6 ) 。 以上のよ うにして 1つのプリミティブについての描画が終了する。
レンダリングプロセッサ 1 6は、 当該プリミティブを構成するすべてのピクセル について描画が終了するまでステップ S 5 4〜S 5 6の処理を実行する (ステップ S 5 7 ) 。
1つのプリミティブの描画が終了すると他のプリミティブについて描画が終了し たか否かを確認する (ステップ S 5 8 ) 。 描画が済んでいないプリミティブがある と、 ステップ S 5 1に戻る (ステップ S 5 8 : N) 。 すべてのプリミティブについ て描画が終了すると (ステップ S 5 8 : Y) 、 決められたパスの回数だけ描画が終 了したかを確認する (ステップ S 5 9 ) 。 決められたパスの回数を満たしていなけ ればステップ S 5 1に戻る (ステップ S 5 9 : N) 。 すべてのプリミティブについ て決められたパスが終了するとマルチパスレンダリングを終了する (ステップ S 5 9 : Y) 。
以上の処理により、 フレームバッファ 3 2 (図 1参照) には、 ディスプレイ 4 1 に表示すべき 2次元画像が描画される。 この後、 ディスプレイコントローラ 4 0は、 フレームバッファ 3 2に描画された 2次元画像を画像信号に変換して、 ディスプレ ィ 4 1へ送る。 ディスプレイ 4 1は、 この画像信号を表示する。
このように、 本実施形態の画像処理装置 1によれば、 マルチパスレンダリングの 際にプリミティブバッファ 2 1から読み出すジオメトリデータを必要最小限に抑え るので、 レンダリング処理時の負荷を低減させることができる。
なお、 レンダリングプロセッサ 1 6を図 1 9のような構成としてもよい。
図 1 9のレンダリングプロセッサ 1 6は、 図 1のレンダリングプロセッサとは、 Ζテスト部 2 5の前に占有率算出部 3 3を設けた点で異なる。
占有率算出部 3 3は、 レンダリング処理されるサブピクセルの、 1ピクセル分の サブピクセル全体に占める割合 (占有率) をプリミティブ毎に算定するものである。 占有率は、 例えば、 特開 2 0 0 2— 1 4 0 7 2 2号 (発明の名称:エイリアシング を除去した画像を描画する装置及び方法) に開示される装置及び方法により求める ことができる。 図 2 0は、 1ピクセル内のプリミティブの占有率を説明する図であ る。 図 2 0では、 1ピクセルにプリミティブ a、 b、 cの 3つのプリミティブが描 画されている。 それぞれの、 1ピクセル内での占有率の比がプリミティブ a、 b、 cの順で 2 : 3 : 7である。
レンダリングプロセッサ 1 8は、 この比にしたがってプリミティブ a、 b、 cを 合成し、 このピクセルを代表するプリミティブとする。
プリミティブ a、 b、 cは、 このピクセルにレンダリングされるので、 このピク セルについてプリミティブ a、 b、 cで Zバッファ 2 6を更新しないようにする。 このようなレンダリングプロセッサ 1 6により、 ジャギーなどが効果的に抑えられ るので、 この方法によってもアンチエイリアシングが達成される。
なお、 1ピクセル分毎の占有率を求めていく方法では、 Zバッファは、 占有率が
1 (不透明あるいはプリミティブ内部) の部分でのみそれを行い、 占有率が 1未満 の境界部分では、 Zバッファを行わない。 そのため、 境界での不自然さを無くすた めに、 Zバッファを用いるにも拘わらず、 Zソート (Z値の並び替え) をおこない、 遠方から順にフレームバッファ 3 2に書き込む。 伹し、 この場合でも、 他のプリミ ティブの影になるプリミティブについては除去される。
なお、 以上の説明ではマルチパスレンダリングについて説明しているが、 通常の
1パスのみのレンダリング処理についても、 テストパスを実行してディスプレイ 4 1に表示するプリミティブのみを描画するようにしてもよい。
以上の説明から明らかなように、 本発明によればレンダリング処理、 特にマルチ パスレンダリング時の処理量を従来よりも格段に低減させることができる。

Claims

請求の範囲
1 . 複数のプリミティブにより形成される 3次元画像を 2次元スクリーンに表示さ せるためのレンダリング処理を行う装置であって、
前記複数のプリミティブの各々の属性を表す属性データを当該プリミティブと対 応付けて格納するプリミティブバッファと、
前記プリミティブバッファに格納されている複数の属性データ同士を比較するこ とにより、 前記複数のプリミティブの各々を、 前記 2次元スクリーンに表示される 第 1のプリミティブと表示されない第 2のプリミティブのいずれかに選別するテス 夕とを備え、
前記テスタにより選別された第 2のプリミティブを除く前記第 1のプリミティブ に対して前記レンダリング処理を行うように構成されている、
レンダリング処理装置。
2 . 前記プリミティブバッファに格納される複数のプリミティブが、 少なくとも前 記 2次元スクリーンに表示される一画面分の 3次元画像を形成し得る数のプリミテ イブである、
請求の範囲 1記載のレンダリング処理装置。
3 . プリミティブの既知の属性データに基づいてピクセル補間を行う補間手段をさ らに備え、
前記テス夕が、 前記ピクセル補間により得られた新たな属性デ一タを前記比較の 対象に含めることで前記選別をピクセル単位で行う、
請求の範囲 1記載のレンダリング処理装置。
4. 前記補間手段は、 1ピクセルから分割された複数のサブピクセルの少なくとも 1つがレンダリング処理されるときにプリミティブの既知の属性データに基づいて サブピクセル補間を行い、
前記テス夕は、 前記サブピクセル補間により得られた新たな属性デ一夕を前記比 較の対象に含めることで前記選別をサブピクセル単位で行う、
請求の範囲 3記載のレンダリング処理装置。
5 . レンダリング処理されるサブピクセルの、 1ピクセル分のサブピクセル全体に 占める割合をプリミティブ毎に算定する占有率算定手段をさらに備え、 この占有率 算定手段による算定結果に応じて当該 1ピクセルについての属性データを決定する、 請求の範囲 4記載のレンダリング処理装置。
6 . 前記テスタは、 1ピクセルに複数のプリミティブが描画されるときの境界部分 のピクセルについては前記選別を回避する、
請求の範囲 1記載のレンダリング処理装置。
7 . 前記プリミティブバッファに格納されている複数の属性データの各々が前記 3 次元画像における当該プリミティブの位置を表す位置情報を含んでおり、
前記テス夕は、 個々の属性データに含まれる位置情報を比較することにより前記 2次元スクリーンを通じて視る者の視点に最も近いプリミティブを前記第 1のプリ ミティブとし、 それ以外のプリミティブを前記第 2のプリミティブとして選別する、 請求の範囲 1記載のレンダリング処理装置。
8 . 前記複数のプリミティブの各々が、 前記 2次元スクリーンへの表示を許可する 許可領域と許可しない非許可領域とを有し表示対象となる画像の透過度及び形状を 表すステンシルデ一夕上に重畳可能なものであり、
前記テスタは、 前記ステンシルデ一夕の許可領域又は非許可領域と少なくともそ の一部が重畳するプリミティブを前記第 1のプリミティブとし、 それ以外のプリミ ティブを前記第 2のプリミティブとして選別する、 '
請求の範囲 1記載のレンダリング処理装置。
9 . 前記テスタは、 前記第 1のプリミティブか第 2のプリミティブかを表すフラグ を、 レンダリング処理時に参照可能な所定の選別テーブルに、 各プリミティブの属 性データと対応付けて記録する、
請求の範囲 1記載のレンダリング処理装置。
1 0 . 前記フラグは、 プリミティブ毎に複数種類の値を呈し得る数値データであり、 前記フラグの値が前記 2次元スクリーンに表示されるプリミティブのピクセル数に 応じて更新される、
請求の範囲 9記載のレンダリング処理装置。
1 1 . 前記選別テーブルに記録されている個々のプリミティブについての前記フラ グを参照し、 前記第 2のプリミティブについては、 その属性データの前記プリミテ ィブバッファからの読み出しを制限する編集手段をさらに備える、
請求の範囲 9記載のレンダリング処理装置。
1 2 . 前記編集手段は、 前記第 2のプリミティブとして選別したプリミティブの属 性データを前記プリミティブバッファから削除する、
請求の範囲 1 1記載のレンダリング処理装置。
1 3 . 2次元スクリーンの表示領域に対応するサイズのフレームバッファと、
3次元画像を形成する複数のプリミティブのジオメトリ処理を行って当該 3次元 画像についてのジオメトリデ一夕を生成する第 1プロセッサと、
生成された前記ジオメトリデ一夕に基づいて前記フレームバッファに前記 3次元 画像に対応する 2次元画像をレンダリング処理する第 2プロセッサと、
レンダリング処理された前記 2次元画像を前記表示領域に表示させるコントロー ラとを備えており、
前記第 2プロセッサは、
前記第 1プロセッサより取得したジオメトリデータにより特定される複数のプリ ミティブの各々の属性を表す属性データ同士を比較することにより、 前記複数のプ リミティブの各々を、 前記 2次元スクリーンに表示される第 1のプリミティブと表 示されない第 2のプリミティブのいずれかに選別するとともに、 前記第 2のプリミ ティブを除く前記第 1のプリミティブによる前記 2次元画像を前記フレ一ムバッフ ァにレンダリング処理する、
1 4. 前記第 1プロセッサと前記第 2プロセッサとの間にバッファメモリが介在し、 前記第 1プロセッサにより生成されたジオメトリデータが前記バッファメモリを介 して前記第 2プロセッサに伝達される、
請求の範囲 1 3記載の画像処理装置。
1 5 . 処理対象となる前記 3次元画像を外部機器より受領して前記第 1プロセッサ に導く画像受領機構をさらに備えてなる、
請求の範囲 1 3記載の画像処理装置。
1 6 . 画像形成に利用されるプリミティブを格納するプリミティブバッファを有し、 複数のプリミティブにより形成される 3次元画像を 2次元スクリーンに表示させる 前記 3次元画像を形成する複数のプリミティブの各々の属性を表す属性データを、 当該プリミティブと対応付けて前記プリミティブバッファに格納し、 格納した属性 データ同士を比較して前記複数のプリミティブの各々を前記 2次元スクリーン上に 表示される第 1のプリミティブと表示されない第 2のプリミティブのいずれかに選 別するテストパスと、
このテストパスにより選別された第 2のプリミティブを除く前記第 1のプリミテ ィブを前記プリミティブバッファから読み出し、 読み出した第 1のプリミティブに 対するレンダリング処理を行うレンダリングパスとをこの順に実行することを特徴 とする、
レンダリング処理方法。
1 7 . 前記装置が、 前記レンダリングパスを複数回実行することにより、 同一のプ リミティブに対して異なるテクスチャを複数回レンダリング処理することを特徴と する、
請求の範囲 1 6記載のレンダリング処理方法。
1 8 . 2次元スクリーンを有するディスプレイが接続されるコンピュータに搭載さ れ、 前記コンピュータが有する他の構成部品と協働で、 該コンピュータに、
3次元画像を形成する複数のプリミティブの各々の属性を表す属性データを当該 プリミティブと対応付けて格納するプリミティブバッファと、
前記プリミティブバッファに格納されている複数の属性データ同士を比較するこ とにより、 前記複数のプリミティブの各々を、 前記 2次元スクリーンに表示される 第 1のプリミティブと表示されない第 2のプリミティブのいずれかに選別するテス 夕と、
前記テスタにより選別された第 2のプリミティブを除く前記第 1のプリミティブ に対して前記レンダリング処理を行って前記 2次元スクリーンに表示させる 2次元 画像を生成するレンダリング処理手段とを構築する、
半導体デバイス。
1 9 . 画像形成に利用されるプリミティブを格納するプリミティブバッファと、 2 次元スクリーンを有するディスプレイとが接続されるコンピュータに、
3次元画像を形成する複数のプリミティブの各々の属性を表す属性デ一夕を、 当 該プリミティブと対応付けて前記プリミティブバッファに格納する処理、
前記プリミティブバッファに格納されている複数の属性データ同士を比較するこ とにより、 前記複数のプリミティブの各々を、 前記 2次元スクリーンに表示される 第 1のプリミティブと表示されない第 2のプリミティブのいずれかに選別する処理、 及び、
前記選別された第 2のプリミティブを除く前記第 1のプリミティブに対して前記 レンダリング処理を行って前記 2次元スクリーンに表示させる 2次元画像を生成す る処理、 を実行させるためのコンピュータプログラム。
2 0 . 請求の範囲 1 9に記載されたコンピュータプログラムを記録してなる、 コン ピュー夕読み取り可能な記録媒体。
PCT/JP2002/012214 2001-11-27 2002-11-22 Image processing apparatus and constituent parts thereof, rendering method WO2003046836A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020037013515A KR100907154B1 (ko) 2001-11-27 2002-11-22 영상 처리 장치와 그의 구성요소, 렌더링 방법
EP02783603A EP1450308A4 (en) 2001-11-27 2002-11-22 IMAGE PROCESSING DEVICE AND CONSTITUENT PARTS THEREOF, PLAYING PROCESS

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2001361351 2001-11-27
JP2001-361351 2001-11-27
JP2002337966A JP3761085B2 (ja) 2001-11-27 2002-11-21 画像処理装置及びその構成部品、レンダリング処理方法
JP2002-337966 2002-11-21

Publications (1)

Publication Number Publication Date
WO2003046836A1 true WO2003046836A1 (en) 2003-06-05

Family

ID=26624715

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2002/012214 WO2003046836A1 (en) 2001-11-27 2002-11-22 Image processing apparatus and constituent parts thereof, rendering method

Country Status (7)

Country Link
US (1) US6961065B2 (ja)
EP (1) EP1450308A4 (ja)
JP (1) JP3761085B2 (ja)
KR (1) KR100907154B1 (ja)
CN (1) CN1288603C (ja)
TW (1) TWI245235B (ja)
WO (1) WO2003046836A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101923724A (zh) * 2009-12-31 2010-12-22 北京书生国际信息技术有限公司 一种页面裁剪方法、装置以及页面描述语言
US8379050B2 (en) 2006-11-08 2013-02-19 Samsung Electronics Co., Ltd. Rendering apparatus, method and medium
CN111797153A (zh) * 2020-07-01 2020-10-20 广联达科技股份有限公司 Bim模型预览方法、装置、计算机设备和可读存储介质

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8788996B2 (en) 2003-09-15 2014-07-22 Nvidia Corporation System and method for configuring semiconductor functional circuits
US8775997B2 (en) 2003-09-15 2014-07-08 Nvidia Corporation System and method for testing and configuring semiconductor functional circuits
US8732644B1 (en) 2003-09-15 2014-05-20 Nvidia Corporation Micro electro mechanical switch system and method for testing and configuring semiconductor functional circuits
US8711161B1 (en) 2003-12-18 2014-04-29 Nvidia Corporation Functional component compensation reconfiguration system and method
US8723231B1 (en) 2004-09-15 2014-05-13 Nvidia Corporation Semiconductor die micro electro-mechanical switch management system and method
US8711156B1 (en) 2004-09-30 2014-04-29 Nvidia Corporation Method and system for remapping processing elements in a pipeline of a graphics processing unit
GB0425204D0 (en) * 2004-11-15 2004-12-15 Falanx Microsystems As Processing of 3-dimensional graphics
US8072451B2 (en) * 2004-12-29 2011-12-06 Intel Corporation Efficient Z testing
JP4218840B2 (ja) * 2005-05-27 2009-02-04 株式会社ソニー・コンピュータエンタテインメント 描画処理装置および描画処理方法
TWI319166B (en) * 2006-03-06 2010-01-01 Via Tech Inc Method and related apparatus for graphic processing
US8933933B2 (en) * 2006-05-08 2015-01-13 Nvidia Corporation Optimizing a graphics rendering pipeline using early Z-mode
FR2901049B1 (fr) * 2006-05-12 2008-11-21 Techviz Soc Par Actions Simpli Procede de codage et systeme d'affichage sur un ecran d'une maquette numerique d'un objet sous forme d'une image de synthese
US8633927B2 (en) * 2006-07-25 2014-01-21 Nvidia Corporation Re-render acceleration of frame with lighting change
US8232991B1 (en) * 2006-11-03 2012-07-31 Nvidia Corporation Z-test result reconciliation with multiple partitions
JP5112318B2 (ja) * 2006-12-28 2013-01-09 Agcセイミケミカル株式会社 リチウム含有複合酸化物及びその製造方法
CN102063732B (zh) * 2009-11-18 2015-05-27 新奥特(北京)视频技术有限公司 一种背景图像的呈现方法和装置
US9331869B2 (en) 2010-03-04 2016-05-03 Nvidia Corporation Input/output request packet handling techniques by a device specific kernel mode driver
US8659611B2 (en) * 2010-03-17 2014-02-25 Qualcomm Mems Technologies, Inc. System and method for frame buffer storage and retrieval in alternating orientations
CN102034221B (zh) * 2010-11-22 2012-05-23 长沙景嘉微电子有限公司 图形芯片设计中图形像素生成算法的硬件实现
JP2012221092A (ja) * 2011-04-06 2012-11-12 Sony Corp 画像処理装置、画像処理方法およびプログラム
CN102737410B (zh) * 2011-05-06 2017-09-12 新奥特(北京)视频技术有限公司 一种三维图元在二维图文编播系统中的显示方法和装置
US9361715B2 (en) 2011-06-02 2016-06-07 Microsoft Technology Licensing, Llc Global composition system
US9858709B2 (en) 2012-11-29 2018-01-02 Samsung Electronics Co., Ltd. Apparatus and method for processing primitive in three-dimensional (3D) graphics rendering system
JP5661134B2 (ja) * 2013-03-12 2015-01-28 株式会社Takumi 画像処理装置及び画像処理方法
US9542906B2 (en) 2013-05-10 2017-01-10 Microsoft Technology Licensing, Llc Shared compositional resources
GB2520288B (en) * 2013-11-14 2020-07-29 Advanced Risc Mach Ltd Forward Pixel Killing
CN103810745A (zh) * 2013-11-21 2014-05-21 广州菲动软件科技有限公司 3d引擎中的对象渲染方法和系统
US10521877B2 (en) 2017-05-23 2019-12-31 Samsung Electronics Co., Ltd Apparatus and method for speculative buffer reservations with cancellation mechanism
CN111783007B (zh) * 2020-07-31 2022-05-24 迈普通信技术股份有限公司 一种显示渲染方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1037168A2 (en) * 1999-03-17 2000-09-20 Fujitsu Limited Apparatus and method for three-dimensional graphics drawing through occlusion culling
JP2001266166A (ja) * 2001-02-19 2001-09-28 Namco Ltd 画像生成システム及び情報記憶媒体
US6320580B1 (en) * 1997-11-07 2001-11-20 Sega Enterprises, Ltd. Image processing apparatus

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5798762A (en) * 1995-05-10 1998-08-25 Cagent Technologies, Inc. Controlling a real-time rendering engine using a list-based control mechanism
US5790130A (en) * 1995-06-08 1998-08-04 Hewlett-Packard Company Texel cache interrupt daemon for virtual memory management of texture maps
US5852443A (en) * 1995-08-04 1998-12-22 Microsoft Corporation Method and system for memory decomposition in a graphics rendering system
JP4035649B2 (ja) * 1998-03-24 2008-01-23 株式会社セガ 画像処理装置及び画像処理方法
US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
US6259461B1 (en) * 1998-10-14 2001-07-10 Hewlett Packard Company System and method for accelerating the rendering of graphics in a multi-pass rendering environment
JP2002039848A (ja) * 2000-07-19 2002-02-06 Ishida Co Ltd 計量器の振り分け機構

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6320580B1 (en) * 1997-11-07 2001-11-20 Sega Enterprises, Ltd. Image processing apparatus
EP1037168A2 (en) * 1999-03-17 2000-09-20 Fujitsu Limited Apparatus and method for three-dimensional graphics drawing through occlusion culling
JP2001266166A (ja) * 2001-02-19 2001-09-28 Namco Ltd 画像生成システム及び情報記憶媒体

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8379050B2 (en) 2006-11-08 2013-02-19 Samsung Electronics Co., Ltd. Rendering apparatus, method and medium
CN101923724A (zh) * 2009-12-31 2010-12-22 北京书生国际信息技术有限公司 一种页面裁剪方法、装置以及页面描述语言
CN111797153A (zh) * 2020-07-01 2020-10-20 广联达科技股份有限公司 Bim模型预览方法、装置、计算机设备和可读存储介质

Also Published As

Publication number Publication date
JP2003228733A (ja) 2003-08-15
KR100907154B1 (ko) 2009-07-09
EP1450308A1 (en) 2004-08-25
JP3761085B2 (ja) 2006-03-29
US6961065B2 (en) 2005-11-01
EP1450308A4 (en) 2010-06-09
TW200304626A (en) 2003-10-01
TWI245235B (en) 2005-12-11
KR20040052499A (ko) 2004-06-23
US20030117589A1 (en) 2003-06-26
CN1527990A (zh) 2004-09-08
CN1288603C (zh) 2006-12-06

Similar Documents

Publication Publication Date Title
JP3761085B2 (ja) 画像処理装置及びその構成部品、レンダリング処理方法
JP3635051B2 (ja) 画像生成方法及び装置、画像処理プログラムを記録した記録媒体、画像処理プログラム
US6891533B1 (en) Compositing separately-generated three-dimensional images
US5805868A (en) Graphics subsystem with fast clear capability
US6411294B1 (en) Image display apparatus and image display method
US6424345B1 (en) Binsorter triangle insertion optimization
JP3557208B2 (ja) 高性能複数層zバッファを有するコンピュータ・グラフィックス・システム
JP2007304576A (ja) 半透明層の描写
JPH09223244A (ja) 3次元オブジェクトを高速にレンダリングする方法および装置
US6323875B1 (en) Method for rendering display blocks on display device
US7898549B1 (en) Faster clears for three-dimensional modeling applications
US7576746B1 (en) Methods and systems for rendering computer graphics
US6441818B1 (en) Image processing apparatus and method of same
JPH10320573A (ja) 画像処理装置及び画像処理方法
US20050104893A1 (en) Three dimensional image rendering apparatus and three dimensional image rendering method
JP2003504697A (ja) 副標本化テクスチャ端縁部のアンチエイリアシング
US6518969B2 (en) Three dimensional graphics drawing apparatus for drawing polygons by adding an offset value to vertex data and method thereof
US6545675B1 (en) Three-dimensional graphics system, processor and recording medium
US20030231180A1 (en) Image processing apparatus and method of same
US8576219B2 (en) Linear interpolation of triangles using digital differential analysis
JP3741053B2 (ja) 画像処理装置
US6624820B2 (en) Graphic processing method for determining representative texture data for a plurality of pixels and apparatus for same
JPH10187124A (ja) 描画装置および描画方法
JPH08235380A (ja) 多面体表示方法および多面体表示装置
JPH1131236A (ja) ポリゴンデータのソート方法及びこれを用いた画像処理装置

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CN KR

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): DE FR GB

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2002783603

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 1020037013515

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 028091124

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 2002783603

Country of ref document: EP