WO1998053425A1 - Processeur d'image et procede correspondant - Google Patents

Processeur d'image et procede correspondant Download PDF

Info

Publication number
WO1998053425A1
WO1998053425A1 PCT/JP1998/002262 JP9802262W WO9853425A1 WO 1998053425 A1 WO1998053425 A1 WO 1998053425A1 JP 9802262 W JP9802262 W JP 9802262W WO 9853425 A1 WO9853425 A1 WO 9853425A1
Authority
WO
WIPO (PCT)
Prior art keywords
image processing
polygon
image
information
rearrangement
Prior art date
Application number
PCT/JP1998/002262
Other languages
English (en)
French (fr)
Inventor
Tetsuhiro Yasui
Seisuke Morioka
Jun Okubo
Original Assignee
Sega Enterprises, Ltd.
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 Sega Enterprises, Ltd. filed Critical Sega Enterprises, Ltd.
Priority to EP98921774A priority Critical patent/EP0984392B1/en
Priority to DE69824725T priority patent/DE69824725D1/de
Priority to KR19997010806A priority patent/KR20010012841A/ko
Priority to US09/424,424 priority patent/US6680741B1/en
Publication of WO1998053425A1 publication Critical patent/WO1998053425A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Definitions

  • the present invention relates to an image processing device and an image processing method I for a computer.
  • fragments In the field of computer graphics, in order to achieve high image processing capability, the display screen is divided into small rectangular areas with fixed dimensions (hereinafter referred to as “fragments”), and processing is performed for each of these fragments.
  • fragments In the field of computer graphics, in order to achieve high image processing capability, the display screen is divided into small rectangular areas with fixed dimensions (hereinafter referred to as “fragments”), and processing is performed for each of these fragments.
  • (2) calculate the area covered by the polygon of interest in the fragment and fill it. For example, as shown in Fig. 17, for flag ⁇ 1, first fill polygon ⁇ (Fig. 17 (b)), then fill polygon B (see (c)), and finally fill polygon C (see Fig. 17). (D)) c Repeat this process until the last polygon has been processed or the flag has been completely covered. This is processed for all the fragments.
  • the processing of the image element is performed by the above-described procedures (1) and (2).
  • the present invention has been made to solve the above-mentioned problem, and enables efficient and high-speed processing of image elements in a computer graphic system.
  • the purpose is to realize quality images.
  • One way to achieve this is to divide the screen into small areas (fragments).
  • the objective is to efficiently search for polygons included in the region of interest.
  • the present invention provides an apparatus and a method for realizing a high-quality image at a lower cost than a conventional system in a computer graphics system. Disclosure of the invention
  • An image processing apparatus is an image processing apparatus that divides a screen into a predetermined size and performs processing for each of the divided areas.
  • First rearranging means for rearranging second rearranging means for rearranging information of image components in a horizontal direction with respect to a scanning line, and an image processing unit for performing image processing based on the rearranged information of the image components.
  • the first rearrangement unit performs rearrangement based on a minimum or maximum value of the image components in the vertical direction, and
  • the rearrangement means performs rearrangement based on a minimum or maximum value of the image components in the horizontal direction at a vertical coordinate of an area to be processed by the first rearrangement means.
  • the first rearranging unit and the second rearranging unit perform link processing for linking the rearranged information of the image components to each other.
  • the first rearrangement unit and the second rearrangement unit perform a link update process for invalidating an unnecessary part in an area corresponding to the image component. is there.
  • the image processing unit may perform image processing for each of the divided areas by dividing an object to be processed into an opaque polygon, a polygon with transparent pixels, and a translucent polygon.
  • the processing is performed in the order of the opaque polygon, the polygon with the transparent pixel, and the polygon with the translucent.
  • An image processing method is directed to an image processing method in which a screen is divided into a predetermined size and processing is performed for each of the divided areas.
  • sorting is performed based on a minimum value of the image component in the vertical direction
  • the first sorting is performed.
  • sorting is performed based on the minimum value of the image components in the horizontal direction.
  • a link update process for invalidating an unnecessary portion in an area corresponding to the image component is performed. It is.
  • an object to be processed in the image processing step, in the image processing for each of the divided areas, is divided into an opaque polygon, a polygon with transparent pixels, and a polygon with semi-transparency.
  • the processing is performed in the order of an opaque polygon, the polygon with transparent pixels, and the polygon with semi-transparency.
  • FIG. 1 is a schematic functional block diagram of an image processing apparatus according to Embodiment 1 of the present invention.
  • FIG. 2 is a functional block diagram of the geometry processor of the image processing device according to the first embodiment of the present invention.
  • FIG. 3 is a functional block diagram of a fill processor of the image processing device according to Embodiment 1 of the present invention.
  • FIG. 4 is a functional block diagram of the texture processor of the image processing device according to the first embodiment of the present invention.
  • FIG. 5 is a functional block diagram of a shading processor of the image processing device according to the first embodiment of the present invention.
  • FIG. 6 is a flowchart showing the overall processing of the first embodiment of the present invention.
  • FIG. 1 is a schematic functional block diagram of an image processing apparatus according to Embodiment 1 of the present invention.
  • FIG. 2 is a functional block diagram of the geometry processor of the image processing device according to the first embodiment of the present invention.
  • FIG. 3 is a functional block diagram of a fill processor of the image processing
  • FIG. 7 is an explanatory diagram of processing relating to the Y index buffer and the Y sort buffer according to the first embodiment of the present invention.
  • FIG. 8 shows a Y index according to the first embodiment of the present invention.
  • FIG. 4 is an explanatory diagram of processing relating to a buffer and a Y sort buffer.
  • FIG. 9 is an explanatory diagram of processing relating to (1) an index buffer and (2) a sort buffer according to Embodiment 1 of the present invention.
  • FIG. 10 is an explanatory diagram of processing relating to the “index buffer” and the “soft buffer” according to the first embodiment of the present invention.
  • FIG. 11 is a diagram showing an example of a fragment that is first effective for each polygon according to the first embodiment of the present invention.
  • FIG. 12 is an explanatory diagram of the link update process according to the first embodiment of the present invention.
  • FIG. 13 is an explanatory diagram of the link update processing according to the first embodiment of the present invention.
  • FIG. 14 is a diagram illustrating the relationship between a fragment and polygons ⁇ , ⁇ , and C for explaining conventional processing.
  • FIG. 15 is a diagram showing a flag corresponding to polygon ⁇ for explaining the conventional processing.
  • FIG. 16 is a diagram showing the contents of the buffer memory for explaining the conventional processing.
  • FIG. 17 is an explanatory diagram of the painting process of the conventional process.
  • Embodiment 1 of the present invention will be described.
  • FIG. 1 is a schematic functional block diagram of an image processing apparatus according to Embodiment 1 of the present invention.
  • reference numeral 1 denotes a central processing unit (CPU), which operates on an object in a virtual space, obtains information on the object, and performs various controls.
  • Reference numeral 2 denotes a geometry processor, which performs high-speed geometric transformations (vector operations) such as polygon coordinate transformation, clipping, and perspective transformation in three-dimensional computer graphics, and luminance calculation.
  • 2a is a polygon / material Z light buffer memory (polygon / matrial / light buf fer RAM), and when the geometry processor 2 performs processing, the valid polygon data for one frame, material data, Righte — a buffer for storing evenings.
  • a polygon is a polyhedron that forms a solid in virtual space.
  • the breakdown of the data stored in the buffer memory 2a is as follows. Polygon link information, coordinate information, and other attribute information
  • the fill port processor 3 is a fill processor that performs hidden surface removal processing.
  • the fill port processor 3 paints the polygon in the area, and obtains the information of the nearest polygon for each pixel.
  • Texture mapping is the process of creating an image by pasting a pattern (texture) defined separately from the shape on the surface of the object whose shape is defined.
  • 4 a is a texture memory (texture RAM) in which a texture map to be processed by the texture processor 4 is stored.
  • Shading is a method of expressing a polygon-like object as a shadow, taking into account the normal vector of the polygon, the position and color of the light source, the position of the viewpoint, and the direction of the line of sight.
  • the shading processor 5 calculates the brightness of each pixel in the area.
  • 5a is a frame buffer in which the image data of one screen is stored. After the data is sequentially read from the frame buffer 5a and converted from digital data to an analog signal, Then, it is supplied to a display (not shown) such as a CRT, a liquid crystal display device, or a plasma display device.
  • Reference numeral 6 denotes a program work / polygon buffer RAM for storing a program of the CPU 1 and commands (a polygon database, a display list, etc.) to the graphic processor.
  • This buffer memory 6 is also the work memory of the CPU 1.
  • Perform so-called rendering In rendering, each area is processed in order from the top left of the screen. In practice, geometries place objects in virtual space coordinates and perform perspective transformation on the screen. Rendering creates a picture based on the data defined on the screen coordinates. The rendering process is repeated for the number of regions.
  • FIG. 2 is a functional block diagram of the geometry processor 2.
  • reference numeral 21 denotes a data dispatcher, which reads and analyzes commands from the buffer memory 6 and controls the vector engine 22 and the clipping engine 24 based on the analysis results to process the commands.
  • the output data is output to the sort engine 27.
  • Reference numeral 22 denotes a vector engine, which performs a vector operation.
  • the vector to be handled will be stored at Vectares evening 23.
  • Reference numeral 23 denotes a vector register, which stores the vector operation performed by the vector engine 22.
  • Reference numeral 24 denotes a clipping engine, which performs clipping.
  • Reference numeral 25 denotes a Y sort index, which stores a Y index used when performing Y sorting by the sort engine 27.
  • 26 is the X-sort index (X-sort INDEX). Stores the X index used for sorting.
  • Reference numeral 27 denotes a sort engine, which searches the buffer 6 for polygons included in the fragment of interest by performing X sorting and Y sorting. The searched polygons are stored in the buffer memory 2a and sent to the file processor 3 for rendering. The sort engine 27 also controls the polygon TAG 28 and the polygon cache 34.
  • a polygon TAG (polygon TAG) 28 is a buffer for storing the T TAG of the polygon cache 34.
  • FIG. 3 is a functional block diagram of the fill processor 3.
  • reference numeral 31 denotes a cache controller, which controls material caches 42, 45, 51b, 52a, 53a and a write cache 51a to be described later.
  • Reference numeral 32 denotes a material TAG, which stores a tag of a material cache 42, 45, 51b, 52a, 53a and a write cache 51a, which will be described later.
  • Reference numeral 33 denotes a light TAG, which is a buffer for storing a tag of a later-described write cache 51a.
  • Reference numeral 34 denotes a polygon cache, which is a cache memory for storing polygon data.
  • 35 is an initial parameter calculator, which calculates the initial value of DDA.
  • Reference numeral 36 denotes a Z comparator array, which performs a Z comparison between polygons for hidden surface removal processing, and embeds a polygon ID and an internal division ratio t0, tl, t2.
  • One Z-comparator stores data on polygons. For example, polygon ID, iz, tO, tl, t2, window, stenci 1, shadow.
  • 37 is a vertex parameter buffer, which is a buffer for storing the parameters at the vertices of the polygon. It has a size of 64 polygons corresponding to the Z comparator array 36.
  • Reference numeral 38 denotes an interpolator (inte ⁇ olater) which interpolates pixel parameters based on the calculation results t0, tl, t2, and iz of the Z compare array 36 and the contents of the vertex parameter buffer 37. .
  • FIG. 4 is a functional block diagram of the texture processor 4.
  • reference numeral 41 denotes a density calculator which calculates a blend ratio for fog or depth cutting.
  • Reference numeral 42 denotes a material cache, which stores data relating to depth information.
  • Reference numeral 43 denotes a window register, which is a buffer for storing information about a window. For example,
  • An address generator 44 calculates an address on the texture map from the texture coordinates Tx, Ty and L ⁇ D.
  • Reference numeral 45 denotes a material cache, which stores data on materials.
  • Reference numeral 46 denotes a TLMMI calculator (TLMMI calculator, TLMMI: Tri Linear MIP Map Interpolation) which performs trilinear interpolation.
  • Mip maps are a technique for anti-aliasing during texture mapping, that is, eliminating jagged textures. This is based on the following principle. Originally, the color (brightness) of the object plane projected on one pixel must be the average value of the colors of the corresponding matching areas. Otherwise the jaggies will be noticeable and the quality of the texture will be significantly reduced. On the other hand, performing the process of finding the average each time results in an excessive calculation load, which takes time and requires a high-speed processor. Hang. The mipmap is to solve this. In the mipmap,
  • the color of the mapping area corresponding to one pixel In order to simplify the calculation of the color (brightness) of the mapping area corresponding to one pixel, prepare a plurality of matching data with a multiple width of 2 in advance. The size of all the mapping areas corresponding to one pixel will be between any two of these multiples of two. By comparing these two data, the color of the corresponding matting area is determined. For example, if there is a screen A of 1 ⁇ and a screen B of 1 ⁇ 2, the pixels of screen A and B corresponding to each pixel of screen C of 1 ⁇ 1.5 are respectively obtained. At this time, the color of the pixel on the screen C is a color intermediate between the pixels on the screen A and the pixels on the screen B.
  • 47 is a color converter, which performs color conversion at 4 bit texel.
  • Reference numeral 48 denotes a color pallet, which stores color information at the time of 4 bit texels.
  • the color palette 48 stores the colors used when writing graphics. The color that can be used for one pixel is determined according to the contents of the color palette 48.
  • FIG. 5 is a functional block diagram of the shading processor 5.
  • reference numeral 51 denotes an intensity processor, which performs an intensity calculation on the polygon after texture mapping.
  • 5 1a is a light cache, which stores light information.
  • 5 1b is a material cache, which stores information about the material. Shinies, Material specular, material emission.
  • 5 1 c is a window register, which stores information about the window. Screen center, Focus, Scene ambient, etc.
  • Numeral 52 is a modulate processor which associates polygon colors with texture colors, performs luminance modulation and fog processing.
  • 52a is a material cache, which stores information on the material. For example, Polygon color, Texture mode, etc.
  • 52b is a window register, which contains information about windows. This is a buffer for storing information. Fog color.
  • Reference numeral 53 denotes a blend processor, which performs blending with the data on the color buffer 54 and writes the result to the color buffer 54.
  • the blend processor 53 blends the current pixel color with the pixel color of the frame buffer based on the value of the pre-registered area, and writes the result into the frame buffer of the bank indicated by the light bank register.
  • 53a is a material cache, which stores information on the material. such as blend mode.
  • Numeral 54 denotes a color buffer, which is an 8 ⁇ 8 color buffer having the same size as the fragment. It has a double bank structure.
  • Reference numeral 55 denotes a plot processor which writes the data on the color buffer 54 to the frame buffer 5a.
  • Reference numeral 56 denotes a bitmap processor, which performs bitmap processing.
  • Reference numeral 57 denotes a display controller, which reads out data from the frame buffer 5a, supplies it to a DAC (Digital to Analog Converter), and displays it on a display (not shown).
  • DAC Digital to Analog Converter
  • the polygon is not divided for each fragment, but instead, the polygon is divided into a vertical direction (hereinafter, Y direction) and a horizontal direction (hereinafter, X direction) with respect to the scanning line.
  • Y direction vertical direction
  • X direction horizontal direction
  • the process of rearranging polygons it is possible to search for polygons included in each fragment. Then, by using this information to process polygons for each flag currently focused on, processing can be performed without performing polygon division processing. Therefore, the processing time can be reduced, and the processing can be realized by a device having a small storage device capacity.
  • polygons are divided into opaque polygons, translucent polygons and transparent pixel polygons, and translucent polygons are processed last. By doing so, it became possible to process polygons with translucency.
  • FIG. 6 shows the overall processing flow of the first embodiment of the present invention.
  • the polygon data to be sent to the rendering unit is sorted by the minimum Y coordinate value of the polygon and written to the buffer (ST 1).
  • the polygon data that matches the Y coordinate value of the currently focused flag is sorted by the minimum X coordinate value of the polygon's focused Y area (ST2).
  • All opaque polygons that match the XY coordinates of the currently focused fragment Render all polygons with transparent pixels that match the XY coordinates of the currently focused fragment (ST4).
  • the translucent polygons that match the XY coordinates of the currently focused flag are rendered in Z-coordinate order (ST6).
  • the color data in the buffer is written to the frame buffer (ST 7).
  • the polygon data is first sorted by Y, and then this sorted data is sorted by the minimum value of X in the attention area Y before processing each row. From this result, the position of the first processed fragment of the polygon can be determined. This tells us which fragment the polygon is in first.
  • each polygon is subjected to link update processing (described later) after the processing of the first included flag, unnecessary polygons are removed from the link after the next flag, and the required polygons are replaced with the next fragment. Is included in the information of the polygon included in the. Therefore, if you follow all the links up to that point, you can search for all polygons that fall within the fragment. Divide the polygon for each fragment Even without creating a new polygon and processing it, it is possible to read the polygon information included in each fragment and perform processing.
  • link update processing refers to processing in which after polygon processing is completed for the currently focused flag, it is checked whether the polygon becomes invalid after the next fragment, and if invalid, the polygon is removed from the link. is there.
  • the rendering processing unit will be described below.
  • polygons are divided into opaque polygons, polygons with transparent pixels, and polygons with translucency.
  • Figure 7 shows the structure of the Y index buffer (YINDEX buffer) and the Y sort buffer (Ysortbuffer).
  • Y index buffer the head address of the link of the polygon list in which the minimum value Ymin of the Y coordinate value is entered in each fragment row is stored.
  • the polygon data is stored in the Y sort buffer in the order of input.
  • LINK Y parameter in the Y sort buffer the address of the next polygon in the same line is stored. Therefore, if you want to know the polygons that fall into the specified line, you only need to follow the link from the corresponding YINDEX address to the polygon whose LINKY is END.
  • FIG. 7 The example of FIG. 7 will be described. Looking at the address 0 in the Y-index buffer for the top fragment line, you can see that the content is "EMPTY" and there is no polygon. The same is true for the second row. Looking at the Y-index buffer address 2 for the third line, these contents are "ADR8" and "EMPTY”. Therefore, when ADR 8 of the Y sort buffer is accessed, the contents of its LINKY are “ADR 5”. So next I access ADR 5. Similarly, ADR 3 and ADR 1 are accessed in the same order. And the link ends because the contents of the LINK of ADR 1 are "END". Hereinafter, processing is performed for all the fragment lines.
  • the LINK Y of the polygon data is “ADR8” which is the original YI NDEX value, and the “ADR 1” which is the address of the polygon data just written is stored in the second of the Y index buffer. 1 ”is written. This state is shown in FIG.
  • FIG. 10 is a diagram for explaining rearrangement in the X direction.
  • the reordering process in the X direction is the same as that in the Y direction.
  • Xmin in that row is obtained, and the value is used to perform reordering.
  • the polygon in which the polygon becomes valid first that is, the polygon in which the flag of interest becomes valid first can be found. For example, as shown in FIG. 11, among the polygons having the smallest Y coordinate values, the flag having the smallest X coordinate value is selected.
  • the polygons are not divided for each flag, but instead, the polygons are arranged in the vertical direction and the horizontal direction with respect to the scanning line.
  • an image processing apparatus that divides a screen into a predetermined size and performs processing for each of the divided areas
  • information of image components is The image elements are rearranged in the vertical direction with respect to the scanning lines, and the information of the image elements is rearranged in the horizontal direction with respect to the scanning lines, and the image processing is performed based on the rearranged information of the image elements.
  • the image processing for each of the divided areas is divided into an opaque polygon, a polygon with a transparent pixel, and a translucent polygon, and the opaque polygon, the transparent pixel Since the processing is performed in the order of the attached polygon and the translucent attached polygon, the processing of the translucent polygon can be performed even when the polygon has texture data.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)
  • Image Input (AREA)

Description

明 細
画像処理装置及び画像処理方法 技術分野
この発明は、 コンピュー ックス用の画像処理装置及び画像処理方法 I 関する。 背景技術
コンピュータグラフィックスの分野において、 高い画像処理能力を実現するため に表示画面を寸法が固定された小さな矩形領域 (以下、 フラッグメント: Fragment と呼ぶ) に分割し、 このフラッグメントごとに処理を行う方法が知られていた。
この従来の方法について、 図 14乃至図 17を用いて説明する。 従来の方法は、 まず、
(1) ポリゴン毎にフラッグメントの枠によってポリゴンを分割し、 どのフラッグ メントに含まれるか分かるように記憶する。
図 14の 3 X 5に配置された 15個のフラッグメントがあり、 これらの上にポリ ゴン A, B, Cが定義されている。 ポリゴン Aについて見ると、 図 15のように 8 つのフラッグメントが対応する。これらのフラッグメントがその座標ひ、 /3、 了、 · · · に対応して図 16のバッファメモリに格納される。 図 15の a l、 α 2がバッファ メモリのひのメモリ領域に格納され、 ;31、 |32がバッファメモリの /3のメモリ領 域に格納され、 ァ 1、 ァ 2がバッファメモリのァのメモリ領域に格納される。 以下、 同様である。
次に、 (2) フラッグメントの内で現在注目しているポリゴンによって覆われる部 分を計算し、 塗りつぶしていく。 例えば、 図 17に示すように、 フラッグメント δ 1について、 まず、 ポリゴン Αに関して塗りつぶし (図 17 (b))、 次にポリゴン Bに関して塗りつぶし (同 (c))、 最後にポリゴン Cに関して塗りつぶす (同 (d))c この作業を最後のポリゴンが処理されるまで、 またはフラッグメントが完全に覆わ れるまで繰り返す。 これをすベてのフラッグメントについて処理する。
従来の画像要素のデ一夕処理は上記 (1 ) ( 2 ) の手順により行われていた。
しかし、 このような方法では対象となるフラッグメントごとにすべてのポリゴン を分割しなければならず、 このために莫大な量の計算が必要となり、 大きな処理時 間が必要となっていた。
また、 分割されて生成されたポリゴンの情報を記憶するために大容量の記憶装置 を持たなくてはならなくなってしまう。 処理を高速化するためには記憶装置を高速 なものにしなければならず、 コストが高くなつてしまう、 というような欠点を生じ ていた。
また、 従来は、 ポリゴンがテクスチャデ一夕を持っている場合には、 半透明付き ポリゴンの処理はできなかった。
この発明は上記の課題を解決するためになされたもので、 コンピュータグラフィ ックシステムにおいて、 画像要素のデ一夕の処理を効率的、 かつ、 高速に行うこと を可能にし、 従来のものより安価で高品質の画像を実現することを目的とする。 こ の実現方法として、 画面を小さな領域 (フラッグメント) に分割して行う方法があ る。 その際に、 注目している領域に含まれるポリゴンを効率良く検索することを目 的とする。 要するに、 コンピュータグラフィックスシステムにおいて、 従来のシス テムより安価で高品質な画像を実現する装置及び方法を提供する。 発明の開示
この発明に係る画像処理装置は、 画面を予め定められた大きさで分割し、 これら 分割された領域ごとに処理を行う画像処理装置において、 画像構成要素の情報を走 查線に対し垂直方向に並びかえる第 1並び替え手段と、 画像構成要素の情報を走査 線に対し水平方向に並びかえる第 2並び替え手段と、 並べ替えされた前記画像構成 要素の情報に基づき画像処理を行う画像処理部とを備えるものである。 この発明に係る画像処理装置は、 前記第 1並び替え手段は、 前記垂直方向に関す る前記画像構成要素の最小又は最大の値に基づき並び替えを行うとともに、 前記第
2並び替え手段は、 前記第 1並び替え手段の処理対象となっている領域の垂直座標 において、 前記水平方向に関する前記画像構成要素の最小又は最大の値に基づき並 び替えを行うものである。
最小値で並べ替えをおこなっても、 最大値で並べ替えをおこなってもどちらでも よい。 並べ替えを行うキーが最大値であっても、 処理の順序の向きが変わる (左か ら右—右から左 Z上から下—下から上) だけで同様の処理が可能である。 なお、 垂 直→水平の順序でも、 あるいは水平→垂直の順序でも、 どちらでも同様の処理が可 能である。
この発明に係る画像処理装置は、前記第 1並び替え手段及び第 2並び替え手段は、 並びかえられた前記画像構成要素の情報の間を互いに結び付けるリンク処理を行う ものである。
この発明に係る画像処理装置は、前記第 1並び替え手段及び第 2並び替え手段は、 前記画像構成要素に対応する領域のうちで、 不要な部分を無効にするリンク更新処 理を行うものである。
この発明に係る画像処理装置は、 前記画像処理部は、 前記分割された領域ごとの 画像処理を、 処理すべき対象を不透明ポリゴン、 透明ピクセル付きポリゴン、 及び 半透明付きポリゴンに区分するとともに、 前記不透明ポリゴン、 前記透明ピクセル 付きポリゴン、 前記半透明付きポリゴンの順に処理をするものである。
この発明に係る画像処理方法は、 画面を予め定められた大きさで分割し、 これら 分割された領域ごとに処理を行う画像処理方法において、 画像構成要素の情報を走 査線に対し垂直方向に並びかえる第 1並び替えステップと、 画像構成要素の情報を 走査線に対し水平方向に並びかえる第 2並び替えステツプと、 並べ替えされた前記 画像構成要素の情報に基づき画像処理を行う画像処理ステップとを備えるものであ る。 この発明に係る画像処理方法は、 前記第 1並び替えステップで、 前記垂直方向に 関する前記画像構成要素の最小の値に基づき並び替えを行うとともに、 前記第 2並 び替えステップで、 前記第 1並び替えステップの処理対象となっている領域の垂直 座標において、 前記水平方向に関する前記画像構成要素の最小の値に基づき並び替 えを行うものである。
この発明に係る画像処理方法は、 前記第 1並び替えステツプ及び第 2並び替えス テツプで、 並びかえられた前記画像構成要素の情報の間を互いに結び付けるリンク 処理を行うものである。
この発明に係る画像処理方法は、 前記第 1並び替えステツプ及び第 2並び替えス テツプで、 前記画像構成要素に対応する領域のうちで、 不要な部分を無効にするリ ンク更新処理を行うものである。
この発明に係る画像処理方法は、 前記画像処理ステップで、 前記分割された領域 ごとの画像処理を、 処理すべき対象を不透明ポリゴン、 透明ピクセル付きポリゴン、 及び半透明付きポリゴンに区分するとともに、 前記不透明ポリゴン、 前記透明ピク セル付きポリゴン、 前記半透明付きポリゴンの順に処理をするものである。 図面の簡単な説明
図 1は、 この発明の実施の形態 1に係る画像処理装置の概略機能ブロック図であ る。 図 2は、 この発明の実施の形態 1に係る画像処理装置のジオメトリプロセッサ の機能ブロック図である。 図 3は、 この発明の実施の形態 1に係る画像処理装置の フィルプロセッサの機能ブロック図である。 図 4は、 この発明の実施の形態 1に係 る画像処理装置のテクスチャプロセッサの機能ブロック図である。 図 5は、 この発 明の実施の形態 1に係る画像処理装置のシエーディングプロセッサの機能ブロック 図である。 図 6は、 この発明の実施の形態 1の全体の処理を示すフローチャートで ある。 図 7は、 この発明の実施の形態 1の Yインデックスバッファと Yソ一トバッ ファに関する処理の説明図である。 図 8は、 この発明の実施の形態 1の Yインデッ クスバッファと Yソートバッファに関する処理の説明図である。 図 9は、 この発明 の実施の形態 1の Υインデックスバッファと Υソートバッファに関する処理の説明 図である。 図 1 0は、 この発明の実施の形態 1の Υインデックスバッファと Υソ一 トバッファに関する処理の説明図である。 図 1 1は、 この発明の実施の形態 1の各 ポリゴンで最初に有効になるフラッグメントの例を示す図である。 図 1 2は、 この 発明の実施の形態 1のリンク更新処理の説明図である。 図 1 3は、 この発明の実施 の形態 1のリンク更新処理の説明図である。 図 1 4は、 従来の処理を説明するため の、 フラッグメントとポリゴン Α, Β , Cの関係を示す図である。 図 1 5は、 従来 の処理を説明するための、 ポリゴン Αに対応するフラッグメントを示す図である。 図 1 6は、 従来の処理を説明するための、 バッファメモリの内容を示す図である。 図 1 7は、 従来の処理の塗りつぶし処理の説明図である。 発明を実施するための最良の形態
発明の実施の形態 1 .
以下、 この発明の実施の形態 1の装置及び方法について説明する。
図 1はこの発明の実施の形態 1に係る画像処理装置の概略機能ブロック図である。 この図において、 1は C P U (cent ral process ing uni t)であり、 仮想空間中の物体 に対して操作を行ったり、 その情報を得たり、 各種制御を行う。 2はジオメトリプ 口セッサ (geome t ry processor) であり、 3次元コンピュータグラフィックにおけ るポリゴンの座標変換、 クリッピング、 透視変換などの幾何変換 (ベクトル演算) や輝度計算を高速に行う。 2 aはポリゴン/マテリアル Zライトバッファメモリ (po lygon/mater i al /l ight buf fer RAM) であり、 ジオメトリプロセッサ 2が処理 を行う際に、 1フレーム分の有効なポリゴンデ一夕、 マテリアルデータ、 ライトデ —夕を保存するバッファである。 ポリゴンとは、 仮想空間中の立体を構成する多面 体のことである。 このバッファメモリ 2 aに格納されるデータの内訳を示すと次の ようになる。 ポリゴンのリンク情報、 座標情報、 その他の属性情報
LINK X, LINK Y, X, Y, iz, Τχ, Ty, Νχ, Ny, Sign Nz, Alpha, Light ID, Material ID · · ·などである。
マテリアルの情報
Depth enable, Depth function, Depth density, Texture enable, Fog enable, translucensy enable, texture type, texture function, offset x, y, size x, y, repeat x, y, mirror x,y, color id, Shinines, Material specular, Material emission, Polygon color, Texture mode, blend modeなどである。
ライ卜の情報
Light Pos i t ion, Light Direct ion, Light Type, Attenuation, Cutoff, Spotexp, Light Color, Light Ambientなどである。
3は陰面消去処理を行うフィルプロセッサ (fill processor) である。 フィルプ 口セッサ 3は、 領域中でポリゴンの塗りつぶしを行い、 各ピクセル毎に最も手前に くるポリゴンの各情報を求める。
4はテクスチャプロセッサ (texture processor) である。 テクスチャプロセッサ 4は、 領域内の各ピクセルにテクスチャを貼り付ける。 テクスチャマッピングとは、 形状が定義された物体の表面に、 形状とは別に定義された模様 (テクスチャ) を貼 り付け(マツビング)て画像を作成する処理である。 4 aはテクスチャメモリ(texture RAM) であり、 テクスチャプロセッサ 4で処理を行うためのテクスチャマップが保存 されている。
5はシェ一ディンクフロセッサ (shading processor) でめる。 シェ一ティングと は、 ポリゴンで構成される物体の影のような表現を、 ポリゴンの法線ベクトル、 光 源の位置や色、 視点の位置、 視線の方向等を考慮して行う手法である。 シェ一ディ ングプロセッサ 5は、 領域内の各ピクセルの輝度を求める。 5 aは 1画面の画像デ —夕が記憶されるフレームバッファ (frame buffer) である。 フレームバッファ 5 aから順次デ一夕が読み出され、 デジタルデータからアナログ信号に変換された後 に、 図示しない CRT、 液晶表示装置、 プラズマディスプレイ装置等のディスプレ ィに供給される。
6は、 C PU 1のプログラムやグラフィックプロセッサへのコマンド (ポリゴン のデータベース、 ディスプレイリストなど) を保存するプログラムワーク Zポリゴ ンノ ッファメモリ program work/polygon buffer RAM) である。 このノ ッファメ モリ 6は CPU 1のワークメモリでもある。 いわゆるレンダリングを行う。 レンダリングでは、 各領域は画面左上から順に処理 される。 実際には、 ジオメタリが仮想空間座標中にオブジェクトを配置しスクリー ン上に透視変換する。 レンダリングはそのスクリーン座標上に定義されたデ一夕を もとに絵を作成する。 レンダリングの処理は領域の個数分繰り返される。
次にこの発明の実施の形態 1に係る画像処理装置の詳細について、 図 2乃至図 5 の機能ブロック図に基づき説明する。
図 2はジオメトリプロセッサ 2の機能ブロック図である。 この図において、 2 1 はデータディスパッチャ一 (data dispatcher) であり、 バッファメモリ 6からコマ ンドを読み出すとともに解析し、 この解析結果に基づきべクタエンジン 22、 クリ ッビングエンジン 24をコントロールし、 処理されたデータをソートエンジン 27 へ出力する。
22はべクタエンジン (vector engine) であり、 ベクトル演算を行う。 扱うべク トルはべクタレジス夕 23に保存される。
23はべクタレジス夕 (vector register) であり、 ベクタエンジン 22で演算を 行うべクトルデ一夕を保存する。
24はクリッピングエンジン (clipping engine) であり、 クリッピングを行う。
25は Yソ一トインデックス (Y- sort INDEX) であり、 ソートエンジン 27で Y ソ一ティングを行うときに使う Y指標を保存する。
26は Xソートインデックス (X- sort INDEX) であり、 ソートエンジン 27で X ソ一ティングを行うときに使う X指標を保存する。
27はソートエンジン (sort engine) であり、 Xソ一ティング及び Yソ一ティン グを行うことにより、 注目しているフラグメントに入るポリゴンをバッファ 6から 検索する。 検索されたポリゴンはバッファメモリ 2 aに格納されるとともに、 フィ ルプロセッサ 3に送られレンダリングがなされる。 また、 ソートエンジン 27はポ リゴン TAG 28及びポリゴンキャッシュ 34の制御も行う。
28はポリゴン TAG (polygon TAG) であり、 ポリゴンキャッシュ 34の T A G を保存するバッファである。
図 3はフィルプロセッサ 3の機能ブロック図である。 この図において、 31はキ ャッシュコントローラ (cache controller) であり、 後述のマテリアルキャッシュ 42、 45、 51 b、 52 a、 53 a及びライトキャッシュ 51 aを制御する。
32はマテリアル TAG (material TAG) であり、 後述のマテリアルキャッシュ 42、 45、 51 b、 52 a、 53 a及びライトキャッシュ 51 aの T A Gを保存 する。
33はライト TAG (light TAG) であり、 後述のライトキャッシュ 51 aの TA Gを保存するバッファである。
34はポリゴンキャッシュ (polygon cache) であり、 ポリゴンデ一夕のキヤッシ ュメモリである。
35は初期パラメ一夕計算機 (initial parameter calculator) であり、 DDA の初期値を求める。
36は Zコンパレ一夕ァレ一 (Z comparator array) であり、 陰面消去処理のた めにポリゴン間で Z比較を行うとともに、 ポリゴン I D及び内分比 t 0、 t l、 t 2を埋め込む。 Zコンパレ一夕アレー 36は 8 X 8 = 64個の Z比較器から構成さ れる。 これらがパラレルに動作するので、 同時に 64個のピクセルについて処理が 可能である。 1つの Z比較器にはポリゴンに関するデータが保存される。 例えば、 polygon ID, iz, tO, tl, t2, window, stenci 1, shadowなこでめる。 37は頂点パラメ一夕バッファ (vertex parameter buffer) であり、 ポリゴンの 頂点でのパラメ一夕を保存するバッファである。 Zコンパレータアレー 36に対応 して 64ポリゴン分の大きさをもつ。
38は補間器 (inte卬 olater) であり、 Zコンパレ一夕アレー 36の計算結果 t 0、 t l、 t 2及び i zと頂点パラメ一夕バッファ 37の内容により、 ピクセルの パラメータを補間して算出する。
図 4はテクスチャプロセッサ 4の機能ブロック図である。 この図において、 41 は濃度計算機 (density calculator) であり、 フォグまたはデプスキュ一^ Γングの ためのブレンド比を算出する。
42はマテリアルキャッシュ (material cache) であり、 深さ情報に関するデ一 夕が保存される。
43はウィンドウレジスタ (window register) であり、 ウィンドウに関する情報 を保存するバッファである。 例えば、
kz, cz, fog function, fog density, fog end z
44はアドレス発生器 (address generator) であり、 テクスチャ座標 Tx, Ty 及び L〇 Dよりテクスチャマツプ上でのァドレスを算出する。
45はマテリアルキャッシュ (material cache) であり、 材質に関するデ一夕が 保存される。
46は 3次元補間であるトライリニアミツプマツプ補間を行う T L MM I計算機 (TLMMI calculator, TLMMI:Tri Linear MIP Map Interpolation) である。 ミツプ マップとは、 テクスチャマッピングを行うときのアンチエイリアシング、 すなわち テクスチャのジャギ (ぎざぎざ) をなくすための技法である。 これは次のような原 理によるものである。 本来、 1画素に投影される物体面の色 (輝度) は、 対応する マツビング領域の色の平均値としなければならない。 そうしないとジャギが目立つ てしまい、 テクスチャの質が極端に落ちる。 一方、 いちいち平均を求める処理を行 うと計算負荷が過大となり、 処理に時間がかかったり、 高速プロセッサが必要にな つたりする。 ミツプマップはこれを解決するためのものである。 ミツプマップでは、
1画素に対応するマッピング領域の色 (輝度) の集計を簡素化するために、 あらか じめ 2の倍数幅のマツビングデータを複数用意する。 1画素に対応したすべてのマ ッビング領域の大きさは、 これら 2の倍数倍のいずれか 2つのデータの間に存在す ることになる。 これら 2つのデ一夕を比較することにより対応するマツビング領域 の色を求める。 例えば、 1倍の画面 Aと 1Z2倍の画面 Bとがあったとき、 1Z1. 5倍の画面 Cの各画素と対応する画面 A及び Bの画素をそれぞれ求める。このとき、 画面 Cの当該画素の色は、 画面 Aの画素と画面 Bの画素の中間の色になる。
47はカラーコンパ一夕 (color converter) であり、 4 b i tテクセル時にカラ —変換を行う。
48はカラーパレット (color pallet) であり、 4 b i tテクセル時のカラ一情 報が保存される。 カラ一パレット 48は、 グラフィックを書くときに使う色を格納 する。 カラーパレツト 48の内容に対応して 1つの画素に使える色が決まる。
図 5はシェ一ディングプロセッサ 5の機能ブロック図である。 この図において、 5 1は輝度処理器 (intensity processor) であり、 テクスチャマッピングされた後 のポリゴンに対して輝度計算を行う。
5 1 aはライトキャッシュ (light cache) であり、 ライト情報を格納する。
5 1 bはマテリアルキャッシュ (material cache) であり、 材質に関する情報を 格納する。 Shinies, Material specular, material emissionなとである。
5 1 cはウィンドウレジス夕 (window register) であり、 ウィンドウに関する情 報 ¾保存する。 Screen center, Focus, Scene ambientなどである。
52はモジユレ一ト処理器 (modulate processor) であり、 ポリゴンカラーとテ クスチヤカラーの関連づけ、 輝度変調、 フォグ処理を行う。
52 aはマテリアルキャッシュ (material cache) であり、 材質に関する情報を 格納する。 例えば、 Polygon color, Texture modeなどである。
52 bはウィンドウレジス夕 (window register) であり、 ウィンドウに関する情 報を保存するバッファである。 Fog colorなどである。
53はブレンド処理器 (blend processor) であり、 カラ一バッファ 54上のデ一 夕とブレンドを行い、 カラ一バッファ 54に書き込む。 ブレンド処理器 53は、 プ レンドレ一トレジス夕の値に基づき、 カレントピクセルカラ一とフレームバッファ のピクセルカラ一とをブレンドし、 ライトバンクレジスタで示されるバンクのフレ —ムバッファに書き込む。
53 aはマテリアルキャッシュ (material cache) であり、 材質に関する情報を 格納する。 blend modeなどである。
54はカラ一バッファ (color buffer) であり、 フラグメントのサイズと同じ 8 X 8の大きさのカラ一バッファである。 ダブルバンク構造になっている。
55はプロット処理器 (plot processor) であり、 カラ一バッファ 54上のデ一 夕をフレームバッファ 5 aに書き込む。
56はビットマップ処理器 (bitmap processor) であり、 ビットマップ処理を行 う。
57はディスプレイ制御器 (display controller) であり、 フレームバッファ 5 aのデ一夕を読み出して、 DAC (Digital to Analogue Converter:デジタル—ァ ナログ変換器) に供給し、 図示しないディスプレイに表示する。
ところで、 本発明の実施の形態 1では、 ポリゴンをフラッグメントごとに分割す ることをせずに、 代わりに走査線に対し垂直方向 (以下、 Y方向) 及び水平方向 (以 下、 X方向) にポリゴンを並べかえる処理をすることで、 フラッグメントごとに含 まれるポリゴンを検索できるようする。 そして、 この情報を使用して現在注目して いるフラッグメントごとにポリゴンを処理することで、 ポリゴンを分割する処理を 行わないでも処理することが可能になる。 よって、 処理時間を短縮し、 かつ、 記憶 装置の容量が小さい装置で処理を実現することが可能になる。
また、 レンダリングにおいては、 ポリゴンを不透明ポリゴン、 半透明付きポリゴ ン及び透明ピクセル付きポリゴンに分け、 かつ、 半透明付きポリゴンを最後に処理 することで半透明付きポリゴンの処理を可能にした。
本発明の実施の形態 1の全体の処理フローを図 6に示す。
レンダリング部に送るポリゴンデータをポリゴンの最小 Y座標値で並び替えバッ ファに書き込む (ST 1)。
現在注目しているフラッグメントの Y座標値と一致するポリゴンデータをポリゴ ンの注目 Y領域の最小 X座標値で並び替える (ST2)。
現在注目しているフラッグメントの X Y座標と一致するすべての不透明ポリゴン 現在注目しているフラッグメン卜の XY座標と一致するすべての透明ピクセル付 きポリゴンをレンダリングする (ST4)。
バッファ内のデ一夕に従ってテクスチャを貼り付け、 シェーディングを行いカラ 一データに変換する (ST5)。
なお、 ST4と ST 5の順番は逆でもよい。 むしろ ST5、 ST 4の順序の方が より現実的といえる。
現在注目しているフラッグメントの XY座標と一致する半透明付きポリゴンを Z 座標値順にレンダリングする (ST6)。
バッファ内のカラ一データをフレームバッファに書き出す (ST 7)。
図 6のように、 ポリゴンデータはまず Yで並び変えられ、 次にこの並び変えられ たデ一夕は、 今度は各行の処理の前に注目領域 Yの Xの最小値で並びかえられる。 この結果によって、 ポリゴンの最初に処理されるフラッグメントの位置が判る。 こ れによって、 ポリゴンが最初にどのフラッグメントに含まれるか判る。 また、 各ポ リゴンは最初に含まれるフラッグメントでの処理終了後にリンク更新処理 (後述) が行われ、 次のフラッグメント以降で不要なポリゴンはリンクから外され、 必要な ポリゴンは次のフラッグメントに含まれるポリゴンの情報にも含まれるようになる。 したがつて、 それまでのリンクをすべてたどればフラッグメントの内に入るすべて のポリゴンを検索することができる。 各フラッグメントごとにポリゴンを分割して 新しくポリゴンを作成し、 処理することを行わなくてもフラッグメントごとに含ま れるポリゴンの情報を読み出すことができ、 処理を行えるようになる。
また、 リンク更新処理とは、 現在注目しているフラッグメントでポリゴン処理終 了後、 そのポリゴンが次のフラッグメント以降で無効になるかどうか調べ、 無効に なる場合はポリゴンをリンクから外す処理である。
レンダリングの処理部について、 以下に説明する。
( 1 ) まず、 ポリゴンを不透明ポリゴン、 透明ピクセル付きポリゴン、 及び半透明 付きポリゴンに分ける。
( 2 ) 次に、 不透明ポリゴンの処理を行う。 これはテクスチャデータによらず重ね 書きされ、 最終的に残ったピクセルのみが有効となる。 そこで、 Z比較のみを高速 で行う。
( 3 ) 上記 (1 ) ( 2 ) を終了すると、 フラッグメントバッファ内のデ一夕はすべて 有効なデータとなる。 そこで、 この時点でフラッグメントバッファ内のデータを元 にテクスチャデータを読み出し、 色データの変換を行う。
( 4 ) 次に、 透明ピクセル付きポリゴンをレンダリングする。 これは、 そのテクセ ルが透明か否かによってそのピクセルを描くか否かを決定する必要がある。従って、 レンダリング時に透明テクセルの情報を読みながら塗りつぶしを行う。 これ以外は 不透明ポリゴンの処理と同じである。 なお、 この (3 ) ( 4 ) の順序の方が、 逆の順 序よりも好ましい。 レンダリング時に透明テクセルの情報を読むことが難しいから である。
( 5 ) 次に、 半透明付きポリゴンの処理を行うが、 この場合、 Z値比較をパスした すべてのピクセルのデータが有効となる。 したがって、 ピクセル毎にテクスチャデ 一夕を読み出し、 色デ一夕へ変換しながら塗りつぶし (プレンディング) を行う。 また、 プレンディングではポリゴンを描く順番が問題となるので、 何等かの手法に より Zでソートしておく。
次に、 図 7〜図 1 3を用いてこの発明の実施の形態 1のフラッグメント C Gシ ステムについて更に詳細に説明する。
まず、 Y方向の並び替えの動きを説明する。図 7は Yィンデックスバッファ(Y I NDEX bu f f e r) と Yソートバッファ (Y s o r t bu f f e r) の 構造を示す。 Yインデックスバッファには、 各フラッグメント行に Y座標値の最小 値 Ym i nが入るポリゴンリストのリンクの先頭アドレスが格納される。 Yソート バッファには入力された順にポリゴンデ一夕が格納される。 Yソートバッファ内の L I NK Yパラメ一夕は、 同じ行に入る次のポリゴンのアドレスが格納される。 従って、 指定された行に入るポリゴンを知りたければ、 対応する Y I NDEX のァドレスから L I NK Yが ENDであるポリゴンまでリンクをたどっていけば よい。
図 7の例について説明する。 最も上のフラッグメント行について Yィンデックス バッファのアドレス 0を見るとこの内容は 「EMPTY」 であり、 ポリゴンがない ことがわかる。 2番目の行についても同様である。 3番目の行について Yインデッ クスバッファのアドレス 2を見るとこれらの内容は 「ADR8」 「EMPTY」 であ る。 そこで、 Yソートバッファの ADR 8をアクセスすると、 その L I NK Yの 内容は 「ADR 5」 である。 そこで次は ADR 5をアクセスする。 以下同様に、 順 番に ADR 3、 ADR 1とアクセスされる。 そして、 ADR 1の L I NK Yの内 容が 「END」 であるので、 これでリンクは終わる。 以下、 すべてのフラッグメン ト行について処理が行われる。
次に、 ポリゴンデータを格納するときの動きを説明する。
図 7の状態の時に Ym i nが Y I NDEX= 5となるポリゴンデ一夕が入力さ れたとする。 Yインデックスバッファの第 5番目の内容は 「EMPTY」 であるの でポリゴンデ一夕の L I NK 丫は 「END」 とする。 このポリゴンデータは Yソ —トバッファの ADR 10に格納されるとともに、 Yィンデックスバッファの第 5 番目には、 今書き込んだポリゴンデータのアドレスである 「ADR 10」 が書き込 まれる。 この状態を図 8に示す。 次に、 図 8の状態の時に Ym i nが Y I ND Ε Χ= 2となるポリゴンデータが 入力された時の動作について考える。 Υインデックスバッファの第 2番目にはすで にポリゴンデ一夕へのアドレスが入っている (図 8では 「ADR8」) ので、 そのデ —夕は今から書き込むポリゴンの後ろにつけるようにする。 したがって、 ポリゴン デ一夕の L I NK Yは元の Y I NDEXの値である 「ADR8」 とするととも に、 Yインデックスバッファの第 2番目には、 今書き込んだポリゴンデータのアド レスである 「ADR 1 1」 が書き込まれる。 この状態を図 9に示す。
図 10は、 X方向についての並び替えを説明するための図である。 X方向の並び 替えの処理も Y方向の場合と同様であり、 その行における Xm i nを求め、 その値 を用いて並び替えを行う。
以上のように、 X方向の並び替え、 及び、 Y方向の並び替えを行うとポリゴンが 最初に有効になるフラッグメント、 すなわち注目しているフラッグメントが最初に 有効になるポリゴンが判る。 例えば、 図 1 1に示すように、 各ポリゴンにおいて Y 座標値が最も小さいもののうちで X座標値が最も小さなフラッグメントが選択され る。
なお、 並び替えた結果を参照するときは、 0〜注目行 (列) をすベて有効とみな すので、 あるポリゴンに注目するとそのポリゴンが有効である範囲は図 12のよう になる。 これでは不要な部分までポリゴンが有効になってしまうので、 以下で説明 するようにリンク更新を行う。
まず、 ポリゴン処理終了後、 次のフラッグメント以降で無効になるポリゴンをリ ンクから外す。図 13 (a)の例では、 F 1〜F 7について、 レンダリング後に X L I NKから削除する。 また、 F 7については、 レンダリング後 Y L I NKからも 削除する。 リンク更新を行った場合のポリゴン有効範囲を図 1 1 (b) に示す。 以下、 図 13をもとに X方向のリンクについてのステップを記す。
( 1 ) ポリゴンのエッジとフラッグメン卜の X方向に対して水平の境界の交点のう ち、 X座標値の大きい方の点 (P 2) を調べる。 ( 2 ) ( 1 ) で調べた点の X座標値と現在注目している行のフラッグメントの X座標 に対し垂直の境界のうち、 X座標値の大きい方の境界 (境界 1〜3 ) の X座標値と を比較する。
( 3 ) 小さい場合 (境界 1、 2 ) にはリンクし、 次のフラッグメントでも有効とす る。
( 4 ) 大きくなつた場合には、 レンダリング後リンクから外し、 次のフラッグメン 卜からは無効にする (境界 3 )。
Y方向のリンクについても Y方向に対して同様の手順で行われる。
以上のように、 この発明の実施の形態 1では、 ポリゴンをフラッグメントごとに 分割することをせずに、 代わりに走査線に対し垂直方向及び水平方向にポリゴンを 並べかえる処理をすることで、 フラッグメントごとに含まれるポリゴンを検索でき るようになった。 この情報を使用し現在注目しているフラッグメントごとにポリゴ ンを分割し、 新しいポリゴンを作成しなくても、 各フラッグメントごとに含まれる ポリゴンを読み出し処理することを行うことが可能になった。 これにより、 従来の 技術のように対象となるフラッグメントごとにすべてのポリゴンを分割するために 必要な膨大な量の計算が必要でなくなり、 かつ、 分割されて生成されたポリゴンの 情報を記憶するために必要となっていた大容量の記憶装置を持つ必要もなくなる。 この結果として処理時間を短縮し、 かつ、 記憶装置の容量が小さくてもよい装置を 実現することが可能になった。 つまり、 安価で高性能な装置が実現できる。
また、 ポリゴンの半透明の処理がポリゴンを不透明ポリゴン、 半透明付きポリゴ ン及び透明付きポリゴンに分け、 かつ、 半透明付きポリゴンを最後に処理すること で可能となった。 産業上の利用可能性
以上のように、 この発明によれば、 画面を予め定められた大きさで分割し、 これ ら分割された領域ごとに処理を行う画像処理装置において、 画像構成要素の情報を 走査線に対し垂直方向に並びかえるとともに、 画像構成要素の情報を走査線に対し 水平方向に並びかえ、 並べ替えされた前記画像構成要素の情報に基づき画像処理を 行うので、 領域ごとに含まれるポリゴンを検索することができる。 そして、 この情 報を使用し現在注目している領域ごとにポリゴンを分割することにより、 新しいポ リゴンを作成しなくても、 各領域ごとに含まれるポリゴンを読み出して処理するこ とが可能になった。 従って、 処理時間を短縮するとともに、 記憶装置の容量を小さ くできる。
また、 この発明によれば、 前記分割された領域ごとの画像処理を、 処理すべき対 象を不透明ポリゴン、 透明ピクセル付きポリゴン、 及び半透明付きポリゴンに区分 するとともに、 前記不透明ポリゴン、 前記透明ピクセル付きポリゴン、 前記半透明 付きポリゴンの順に処理するので、 ポリゴンがテクスチャデータを持っているとき でも、 半透明付きポリゴンの処理ができる。

Claims

請 求 の 範 囲
1. 画面を予め定められた大きさで分割し、 これら分割された領域ごとに処理 を行う画像処理装置において、 画像構成要素の情報を走査線に対し垂直方向に並 びかえる第 1並び替え手段と、 画像構成要素の情報を走査線に対し水平方向に並 びかえる第 2並び替え手段と、 並べ替えされた前記画像構成要素の情報に基づき 画像処理を行う画像処理部とを備えることを特徴とする画像処理装置。
2. 前記第 1並び替え手段は、 前記垂直方向に関する前記画像構成要素の最小 又は最大の値に基づき並び替えを行うとともに、 前記第 2並び替え手段は、 前記 第 1並び替え手段の処理対象となっている領域の垂直座標において、 前記水平方 向に関する前記画像構成要素の最小又は最大の値に基づき並び替えを行うことを 特徴とする請求項 1記載の画像処理装置。
3. 前記第 1並び替え手段及び第 2並び替え手段は、 並びかえられた前記画像 構成要素の情報の間を互いに結び付けるリンク処理を行うことを特徴とする請求 項 2記載の画像処理装置。
4. 前記第 1並び替え手段及び第 2並び替え手段は、 前記画像構成要素に対応 する領域のうちで、 不要な部分を無効にするリンク更新処理を行うことを特徴と する請求項 3記載の画像処理装置。
5. 前記画像処理部は、 前記分割された領域ごとの画像処理を、 処理すべき対 象を不透明ポリゴン、 透明ピクセル付きポリゴン、 及び半透明付きポリゴンに区 分するとともに、 前記不透明ポリゴン、 前記透明ピクセル付きポリゴン、 前記半 透明付きポリゴンの順に処理をすることを特徴とする請求項 1乃至請求項 4いず れかに記載の画像処理装置。
6. 画面を予め定められた大きさで分割し、 これら分割された領域ごとに処理 を行う画像処理方法において、 画像構成要素の情報を走査線に対し垂直方向に並 びかえる第 1並び替えステップと、 画像構成要素の情報を走査線に対し水平方向 に並びかえる第 2並び替えステップと、 並べ替えされた前記画像構成要素の情報 に基づき画像処理を行う画像処理ステップとを備えることを特徴とする画像処理 方法。
7. 前記第 1並び替えステップで、 前記垂直方向に関する前記画像構成要素の 最小の値に基づき並び替えを行うとともに、 前記第 2並び替えステップで、 前記 第 1並び替えステップの処理対象となっている領域の垂直座標において、 前記水 平方向に関する前記画像構成要素の最小の値に基づき並び替えを行うことを特徴 とする請求項 6記載の画像処理方法。
8. 前記第 1並び替えステップ及び第 2並び替えステップで、 並びかえられた 前記画像構成要素の情報の間を互いに結び付けるリンク処理を行うことを特徴と する請求項 7記載の画像処理方法。
9. 前記第 1並び替えステツプ及び第 2並び替えステツプで、 前記画像構成要 素に対応する領域のうちで、 不要な部分を無効にするリンク更新処理を行うこと を特徴とする請求項 3記載の画像処理方法。
1 0 . 前記画像処理ステップで、 前記分割された領域ごとの画像処理を、 処理す べき対象を不透明ポリゴン、 透明ピクセル付きポリゴン、 及び半透明付きポリ ゴンに区分するとともに、 前記不透明ポリゴン、 前記透明ピクセル付きポリゴ ン、 前記半透明付きポリゴンの順に処理をすることを特徴とする請求項 6乃至 請求項 9いずれかに記載の画像処理方法。
PCT/JP1998/002262 1997-05-22 1998-05-22 Processeur d'image et procede correspondant WO1998053425A1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP98921774A EP0984392B1 (en) 1997-05-22 1998-05-22 Image processor and image processing method
DE69824725T DE69824725D1 (de) 1997-05-22 1998-05-22 Bildprozessor und bildverarbeitungsverfahren
KR19997010806A KR20010012841A (ko) 1997-05-22 1998-05-22 화상 처리 장치 및 화상 처리 방법
US09/424,424 US6680741B1 (en) 1997-05-22 1998-05-22 Image processor and image processing method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP9/131831 1997-05-22
JP9131831A JPH10320573A (ja) 1997-05-22 1997-05-22 画像処理装置及び画像処理方法

Publications (1)

Publication Number Publication Date
WO1998053425A1 true WO1998053425A1 (fr) 1998-11-26

Family

ID=15067125

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1998/002262 WO1998053425A1 (fr) 1997-05-22 1998-05-22 Processeur d'image et procede correspondant

Country Status (8)

Country Link
US (1) US6680741B1 (ja)
EP (1) EP0984392B1 (ja)
JP (1) JPH10320573A (ja)
KR (1) KR20010012841A (ja)
CN (1) CN1122945C (ja)
DE (1) DE69824725D1 (ja)
TW (1) TW375719B (ja)
WO (1) WO1998053425A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2355633A (en) * 1999-06-28 2001-04-25 Pixelfusion Ltd Processing graphical data
WO2005059829A1 (en) * 2003-12-16 2005-06-30 Nhn Corporation A method of adjusting precision of image data which inter-locked with video signals throughput of a terminal and a system thereof

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2362552B (en) * 1999-06-28 2003-12-10 Clearspeed Technology Ltd Processing graphical data
US6728862B1 (en) 2000-05-22 2004-04-27 Gazelle Technology Corporation Processor array and parallel data processing methods
JP3466173B2 (ja) * 2000-07-24 2003-11-10 株式会社ソニー・コンピュータエンタテインメント 画像処理システム、デバイス、方法及びコンピュータプログラム
JP3966832B2 (ja) 2003-04-28 2007-08-29 株式会社東芝 描画処理装置、及び、描画処理方法
US7573599B2 (en) * 2004-05-20 2009-08-11 Primax Electronics Ltd. Method of printing geometric figures
US7519233B2 (en) * 2005-06-24 2009-04-14 Microsoft Corporation Accumulating transforms through an effect graph in digital image processing
WO2007064280A1 (en) 2005-12-01 2007-06-07 Swiftfoot Graphics Ab Computer graphics processor and method for rendering a three-dimensional image on a display screen
JP4621617B2 (ja) * 2006-03-28 2011-01-26 株式会社東芝 図形描画装置、図形描画方法、及びプログラム
JP5194282B2 (ja) * 2007-07-13 2013-05-08 マーベル ワールド トレード リミテッド カラープリンタのためのレーザ振動ミラー支持体に関する方法および装置
CN101127207B (zh) * 2007-09-26 2010-06-02 北大方正集团有限公司 一种提高灰度字形显示质量的方法及装置
JP2011086235A (ja) * 2009-10-19 2011-04-28 Fujitsu Ltd 画像処理装置、画像処理方法および画像処理プログラム
US20130300740A1 (en) * 2010-09-13 2013-11-14 Alt Software (Us) Llc System and Method for Displaying Data Having Spatial Coordinates
CN102572205B (zh) * 2011-12-27 2014-04-30 方正国际软件有限公司 一种图像处理方法、装置及系统
CN113628102A (zh) * 2021-08-16 2021-11-09 广东三维家信息科技有限公司 实体模型消隐方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0371378A (ja) * 1989-08-11 1991-03-27 Daikin Ind Ltd 透明感表示方法およびその装置
JPH03201081A (ja) * 1989-12-28 1991-09-02 Nec Corp 画像生成装置
JPH04170686A (ja) * 1990-11-05 1992-06-18 Canon Inc 画像処理装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4885703A (en) * 1987-11-04 1989-12-05 Schlumberger Systems, Inc. 3-D graphics display system using triangle processor pipeline

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0371378A (ja) * 1989-08-11 1991-03-27 Daikin Ind Ltd 透明感表示方法およびその装置
JPH03201081A (ja) * 1989-12-28 1991-09-02 Nec Corp 画像生成装置
JPH04170686A (ja) * 1990-11-05 1992-06-18 Canon Inc 画像処理装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP0984392A4 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2355633A (en) * 1999-06-28 2001-04-25 Pixelfusion Ltd Processing graphical data
WO2005059829A1 (en) * 2003-12-16 2005-06-30 Nhn Corporation A method of adjusting precision of image data which inter-locked with video signals throughput of a terminal and a system thereof
US7834874B2 (en) 2003-12-16 2010-11-16 Nhn Corporation Method of improving the presentation of image data which inter-locked with video signals throughput of a terminal and a system thereof

Also Published As

Publication number Publication date
JPH10320573A (ja) 1998-12-04
US6680741B1 (en) 2004-01-20
CN1122945C (zh) 2003-10-01
EP0984392A4 (en) 2001-04-25
TW375719B (en) 1999-12-01
KR20010012841A (ko) 2001-02-26
DE69824725D1 (de) 2004-07-29
CN1275225A (zh) 2000-11-29
EP0984392B1 (en) 2004-06-23
EP0984392A1 (en) 2000-03-08

Similar Documents

Publication Publication Date Title
US6204856B1 (en) Attribute interpolation in 3D graphics
JP2769427B2 (ja) 一連のグラフィック・プリミティブ用のデータを処理するための方法
US6961065B2 (en) Image processor, components thereof, and rendering method
US6038031A (en) 3D graphics object copying with reduced edge artifacts
US6771264B1 (en) Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
WO1998053425A1 (fr) Processeur d'image et procede correspondant
US20120256942A1 (en) Floating point computer system with blending
JP2001357410A (ja) 別々に生成された3次元イメージを合成するグラフィックス・システム
US6057851A (en) Computer graphics system having efficient texture mapping with perspective correction
US20050243101A1 (en) Image generation apparatus and image generation method
WO1997005576A1 (en) Method and apparatus for span and subspan sorting rendering system
KR20050030595A (ko) 화상 처리 장치 및 그 방법
WO1997005576A9 (en) Method and apparatus for span and subspan sorting rendering system
JP4198087B2 (ja) 画像生成装置および画像生成方法
US6501481B1 (en) Attribute interpolation in 3D graphics
JP3979162B2 (ja) 画像処理装置およびその方法
US6518969B2 (en) Three dimensional graphics drawing apparatus for drawing polygons by adding an offset value to vertex data and method thereof
US7256796B1 (en) Per-fragment control for writing an output buffer
US7372466B2 (en) Image processing apparatus and method of same
JP3104643B2 (ja) 画像処理装置及び画像処理方法
US8576219B2 (en) Linear interpolation of triangles using digital differential analysis
JP3209140B2 (ja) 画像処理装置
JPH10261095A (ja) 画像処理装置及び画像処理方法
JPH1131236A (ja) ポリゴンデータのソート方法及びこれを用いた画像処理装置
JPH05282428A (ja) 3次元コンピュータグラフィクス用図形データ作成方法

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 98805330.6

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): CN KR US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

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: 1998921774

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 1019997010806

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 1998921774

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 09424424

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 1019997010806

Country of ref document: KR

WWW Wipo information: withdrawn in national office

Ref document number: 1019997010806

Country of ref document: KR

WWG Wipo information: grant in national office

Ref document number: 1998921774

Country of ref document: EP