JP2006195938A - Glare rendering circuit - Google Patents
Glare rendering circuit Download PDFInfo
- Publication number
- JP2006195938A JP2006195938A JP2005033611A JP2005033611A JP2006195938A JP 2006195938 A JP2006195938 A JP 2006195938A JP 2005033611 A JP2005033611 A JP 2005033611A JP 2005033611 A JP2005033611 A JP 2005033611A JP 2006195938 A JP2006195938 A JP 2006195938A
- Authority
- JP
- Japan
- Prior art keywords
- glare
- value
- rendering
- flare
- point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Image Generation (AREA)
Abstract
Description
この発明はコンピュ−タグラフィックス映像技術に関し、強い輝度をもつ反射光あるいは発光源によって眼球内で生じるグレア現象を描画するためのレンダリング論理回路技術分野に属する。 The present invention relates to a computer graphics video technology, and belongs to a rendering logic circuit technical field for drawing a glare phenomenon generated in an eyeball by reflected light or light emission source having strong luminance.
グレア現象として光源周辺に発生するブル−ムやフレア様態は眼球細胞の不均一性やレンズの細胞配列構造によって発生する。これらのグレア現象をコンピュ−タグラフィックスにより描画する手段として、従来の多くは予めブル−ムあるいはフレアを2次元パタ−ンとして描画しておき、このパタ−ンを発光源にマッピングするテキスチャ−マッピング技術が用いられてきた。グレア映像にテキスチャ−パタ−ンを用いる手法では、グレア発光源と視点の間には遮光物体がないことを前提とする。しかし実時間描画では視点の移動に伴って発光物体とその他の物体の位置関係は常に変化し、発光源が他の物体の背後に位置づけられることは頻繁に生じる。この視野変換は通常、アプリケ−ションプロセッサから切り離されたレンダリング(画素描画)段階で行われるため、アプリケ−ション側において発光源が遮光されているか否かをレンダリング過程で高速に判断することはできない。アプリケ−ション側が、この位置関係を無視し、無条件に発光源にブル−ムやフレア映像を付加すると共に、これら映像に一般画像がもつデプス値との隠面消去を併用すると、発光源が遮光されても、ブル−ムやフレアの一部は遮光されない場合や、グレアの一部が遮光される映像が生じる。グレアは眼球内で発生するものであることから、現実世界ではグレアの一部の光線が障害物によって遮光される現象は発生しない。この結果、映像は不自然なものとなる。一方、特願2003−107094では上記の問題を解決する手段として、画像メモリに対応する2次元配列のフラグメモリを画像メモリとは別途に設け、レンダリング時において、コントラスト比が所定の範囲を超えた場合、この2次元フラグメモリにフラグを隠面消去も併用して立てると同時に、すべてのレンダリングが終了した時点で、この2次元フラグメモリを走査し、検出位置にブル−ムやフレアを描画する。この方式は前記テキスチャ−マッピング方式の持つ問題点は解決するものの、第1パスの終了後、2次元フラグメモリを走査しながら2次元平面状に分布したフラグの集合を算出し、集合領域ごとにフラグ数の積算量を求めてブル−ムやフレアの強さを表現するため、計算負荷が重くなり実時間描画には好ましくない。 Bloom and flare patterns that occur around the light source as a glare phenomenon are caused by the non-uniformity of eyeball cells and the lens arrangement of lenses. As a means for drawing these glare phenomena by computer graphics, many conventional techniques draw a blue or flare pattern in advance as a two-dimensional pattern and map this pattern to a light source. Mapping techniques have been used. In the technique using the texture pattern for the glare image, it is assumed that there is no light blocking object between the glare light source and the viewpoint. However, in real-time drawing, the positional relationship between the light-emitting object and the other object always changes with the movement of the viewpoint, and the light-emitting source is frequently located behind the other object. Since this field-of-view conversion is normally performed at the rendering (pixel drawing) stage separated from the application processor, it is impossible to determine at high speed in the rendering process whether or not the light source is shielded from light on the application side. . If the application side ignores this positional relationship, unconditionally adds a bloom or flare image to the light source, and uses these images together with hidden surface removal from the depth value of the general image, the light source Even if the light is shielded, a part of the bloom or flare is not shielded, or an image in which a part of the glare is shielded is generated. Since glare is generated in the eyeball, in the real world, a phenomenon in which some rays of glare are blocked by an obstacle does not occur. As a result, the image becomes unnatural. On the other hand, in Japanese Patent Application No. 2003-107094, as a means for solving the above problem, a two-dimensional array flag memory corresponding to the image memory is provided separately from the image memory, and the contrast ratio exceeds a predetermined range during rendering. In this case, the flag is set in the two-dimensional flag memory together with hidden surface erasure, and at the same time, when all the renderings are completed, the two-dimensional flag memory is scanned and a bloom or flare is drawn at the detection position. . Although this method solves the problems of the texture-mapping method, a set of flags distributed in a two-dimensional plane is calculated while scanning the two-dimensional flag memory after the first pass, and for each set region. Since the intensity of the bloom and flare is expressed by obtaining the integrated amount of the number of flags, the calculation load becomes heavy, which is not preferable for real-time drawing.
本発明は、前記手法がもつ動的な映像描画時のグレアの適切な表示と表示演算負荷の両問題点を共に解決するアルゴリズムの回路化を課題とする。課題の詳細として本発明では2次元フラグメモリを用いることなく、特願2003−107094に比較して計算負荷を2桁以上改善する手段と、グレア発光源が面光源で、その面光源に遮光物体が一部を覆う場合のグレア生成手段、またブル−ムおよびフレアの定義変数(形状を決定する情報)を簡易化し、回路規模を1/4程度とするものである。以下に前記のそれぞれの課題を解決するための本発明の手段を説明する。 An object of the present invention is to make an algorithm circuit that solves both the problems of proper display of glare and display calculation load at the time of dynamic video rendering of the above technique. As details of the problem, the present invention does not use a two-dimensional flag memory, and means for improving the calculation load by two digits or more as compared with Japanese Patent Application No. 2003-107094; In this case, the glare generating means for covering a part, and the definition variables (information for determining the shape) of the bloom and flare are simplified, and the circuit scale is reduced to about 1/4. The means of the present invention for solving each of the above problems will be described below.
本発明ではグレアを発生する発光源は一つの映像シ−ンのなかではそれほど多くはないことに注目し、特願2003−107094技術で用いられた2次元のフラグメモリではなく、1次元のレジスタファイルを設ける。ここで本発明のレジスタファイルは、グレア発生源毎にグレア発生源領域の(Xmin,Ymin)と(Xmax,Ymax),Zmax、ID(物体識別子)および光源の輝度を記憶する。zmaxはそれぞれの発生源毎にレジスタファイル内に記憶されたz値の、視点に最も近い座標値である。IDは発光源物体を識別するためのものでレンダリング過程において所定の輝度以上の輝度が検出された場合、発光源物体に定義されたIDとレジスタファイルに登録された(すでに同一座標点に登録されている場合)IDとの比較を行い、IDが一致すればレジスタファイル内の同一IDがもつ輝度との加算を行い、不一致ならば前記座標値、ID、輝度を新らたにレジスタファイルに記憶する。レンダリングする物体にはIDが通常定義されるが、本発明ではレンダリング点の輝度が一定値を越えた場合に、物体のIDとレジスタファイルに記憶されたIDとを比較する。またレジスタファイルに記憶されたグレア発生点の座標値に関して、前記従来技術と異なりレンダリング段階においては画像メモリのzバッファとの隠面消去を行わず、レジスタファイルにすでに記憶されている同一IDのz値のみとの比較を行い、視点に近い場合は、これに置き換える。以上からレジスタファイルにはグレア発生輝度をもつものだけが記憶されることから、記憶されるデ−タは2次元フラグメモリに比較して数百分の1以下となる。 In the present invention, it is noted that there are not so many light emitting sources that generate glare in one video scene, and it is not a two-dimensional flag memory used in Japanese Patent Application No. 2003-107094 but a one-dimensional register. Create a file. Here, the register file of the present invention stores (Xmin, Ymin), (Xmax, Ymax), Zmax, ID (object identifier) of the glare source region and the luminance of the light source for each glare source. zmax is the coordinate value closest to the viewpoint of the z value stored in the register file for each source. The ID is used to identify the light source object. When a luminance higher than a predetermined luminance is detected in the rendering process, the ID is registered in the register file and the ID defined for the light source object (already registered at the same coordinate point). If the IDs match, add the brightness with the same ID in the register file, and if the IDs do not match, newly store the coordinate value, ID, and brightness in the register file. To do. An ID is normally defined for an object to be rendered. In the present invention, when the luminance of a rendering point exceeds a certain value, the ID of the object is compared with the ID stored in the register file. Also, regarding the coordinate value of the glare occurrence point stored in the register file, unlike the prior art, the hidden surface is not erased from the z buffer of the image memory in the rendering stage, and z of the same ID already stored in the register file. Compare with the value only, and replace it if it is close to the viewpoint. As described above, since only the register file having the glare generation brightness is stored in the register file, the stored data is less than one hundredth compared with the two-dimensional flag memory.
前記のレンダリング段階が終了した時点で、レジスタファイルにはグレア発生領域を示す前記(Xmin,Ymin)、(Xmax,Ymax),Zmax、IDと、その領域内の積算輝度が記憶されている。本発明ではレンダリング後に、それぞれの発光領域が遮光物体の前方あるいは後方に位置しているか否かのテストを行う。本発明ではレジスタファイル内の前記XおよびYの最大・最小座標値から、その発光中心点となる(Xmax−Xmin)/2,(Ymax−Ymin)/2を計算し、この各軸の中心点に対し画像メモリのzバッファに記憶されたz値とレジスタファイル内のZmaxとを比較する。グレア発生領域が大きな場合は(Xmin,Ymin)と(Xmax,Ymax)の領域内に複数のサンプリング点を設定し、サンプリング点毎に隠面消去テストを行う。サンプリング点の中で遮光物体の前後に位置するものが混在する場合には、前方、後方となるサンプリング点の数をそれぞれ計数し、その割合に前記積算輝度を乗算したものを、その発光領域の輝度とする。この結果、従来の2次元フラグメモリでは例えば500×500の解像度とすると、250,000点の隠面消去テストがレンダリング段階で必要とされたが、本発明では、例えば32個のグレア発生点がある場合、32点の隠面消去テストでよい。このように隠面消去処理で3桁以上の処理が削減できる。 When the rendering step is completed, the register file stores the (Xmin, Ymin), (Xmax, Ymax), Zmax, ID indicating the glare occurrence area, and the accumulated luminance in the area. In the present invention, after rendering, a test is performed to determine whether each light emitting area is located in front of or behind the light-shielding object. In the present invention, (Xmax−Xmin) / 2 and (Ymax−Ymin) / 2, which are the emission center points, are calculated from the maximum and minimum coordinate values of X and Y in the register file, and the center point of each axis is calculated. In contrast, the z value stored in the z buffer of the image memory is compared with Zmax in the register file. When the glare generation area is large, a plurality of sampling points are set in the (Xmin, Ymin) and (Xmax, Ymax) areas, and a hidden surface removal test is performed for each sampling point. When sampling points located before and after the light-shielding object are mixed, count the number of sampling points that are front and rear, respectively, and multiply the ratio by the integrated luminance to obtain the light emitting area. Let it be luminance. As a result, in the conventional two-dimensional flag memory, if the resolution is 500 × 500, for example, 250,000 hidden surface removal tests are required in the rendering stage. In the present invention, for example, 32 glare occurrence points are required. In some cases, a 32-point hidden surface removal test is sufficient. In this way, the processing of 3 digits or more can be reduced by the hidden surface removal processing.
隠面消去テストが終了すると、本発明では前記輝度の積算値から、ブル−ム描画は前記発光中心点を中心とする所定の領域を、またフレア描画はフレアベクトルと共に前記発光中心点とフレアベクトルを囲む所定の領域をポリゴンとして定義し、このポリゴンを塗りつぶしながらグレアの輝度を決定してゆく。ブル−ム描画のためのポリゴン面は通常4角形領域で与える。一方、フレアベクトルとポリゴン面はグラフィックスエンジンと一般に言われるプロセッサ内で、乱数を用いて定義する。乱数の分布(フレアの長さ)および周期(フレアの数)はレジスタファイルから読み出した発光領域の輝度に依存する。輝度が高ければ一般に長くて太いフレアとなる。 When the hidden surface erasure test is completed, according to the present invention, based on the integrated value of brightness, the blue drawing is performed in a predetermined area centered on the light emission center point, and the flare drawing is performed together with the flare vector and the light emission center point and the flare vector. A predetermined area surrounding the image is defined as a polygon, and the glare brightness is determined while filling the polygon. The polygon surface for bloom drawing is usually given as a quadrangular area. On the other hand, flare vectors and polygon planes are defined using random numbers in a processor generally called a graphics engine. The distribution of random numbers (flare length) and period (number of flares) depend on the luminance of the light emitting area read from the register file. Higher brightness generally results in longer and thicker flares.
グレア発生点の物体が例えばレンズやカットガラスを通過する場合は、前記積算輝度だけでなく物質の属性条件も考慮したフレアの長さや数を決定する必要がある。あらかじめ物体の属性を前記グラフィックスエンジンが管理し、レジスタファイルの座標値や輝度を読み出すと共に、グレア発生領域のIDを参照することでグレア発生の環境条件(発光源の形状、フィルタの有無など)が認識できる。グレアレンダリング回路ではグラフィックスエシジンから発光中心点とポリゴンが与えられると、ポリゴン座標を内挿補間し、前記内挿補間点(レンダリング点)と発光中心点間の距離をレンダリング点毎に求める。 When an object at the glare generation point passes through, for example, a lens or a cut glass, it is necessary to determine the length and number of flares in consideration of not only the integrated luminance but also the material attribute conditions. The graphics engine manages the attributes of the object in advance, reads the coordinate values and brightness of the register file, and refers to the ID of the glare generation area to refer to the glare generation environment conditions (light source shape, filter presence, etc.) Can be recognized. In the glare rendering circuit, when the emission center point and the polygon are given from the graphics ethidine, the polygon coordinates are interpolated and the distance between the interpolation point (rendering point) and the emission center point is obtained for each rendering point.
本発明では、グレア生成変数として前記ポリゴン、グレア発光点座標値およびフレアベクトルの3つを定義する。発光点から描画点(ポリゴン内挿補間点あるいはレンダリング点)までの距離を用いてブル−ムやハロ−を、また前記2変数間を結ぶ直線方向とフレアベクトルとがなす方向余弦からフレアを決定する。この関係を(A)式に示す。
(A)式において、レンダリング点とグレア発光中心点間の距離をr、発光点からレンダリング点とを結ぶ直線方向とフレアベクトルとがなす方向余弦をcosθとする。ここで本発明では、距離rと方向余弦cosθのそれぞれを入力アドレスとするRAMを設け、RAMには距離rを変数とする(1)式のG(r)と、また方向余弦cosθを変数とする(2)式のS(cosθ)の関数値をテ−ブル化してそれぞれを記憶する。この結果得られた(2)式のS(cosθ)から(3)式に示す距離rと前記sinθを乗算器で乗算した後、再び、(3)式のdをRAMのアドレスとして与えることにより(4)式を得る。さらに(1)式と(4)式を乗算して(5)式を得る。(5)式のIpはレンダリング点のグレア輝度となる。ここでRAMテ−ブルは物理的に1つのRAMのアドレスをシェア−して用いることができる。また乗算器も同様である。またk0〜k2はそれぞれ係数を示す。
本発明では(1)、(2)および(4)式の関数値をRAMに記憶する一方、(3)および(5)式はこのRAMで得られた出力値を乗算器により演算したものである。式(A)はレンダリング点と発生点からの距離rが大きくなればなるほど減衰する関数G(r)と、レンダリング点とフレアラインまでの距離dが大きくなればなるほど減衰するF(d)との積で表す。(1)式はブル−ムを、また(5)式はフレアラインを描画する場合に用いる。それぞれの係数は輝度のグラデ−ションを調整する。(1)式の指数部−k1rの距離rをR−r、G−rおよびB−rに置き換えると、それぞれ3原色に対応したG(r)を描画が可能となる。これはハロ−映像を示す。ここでR、GおよびBは発光中心点からの任意の距離となる。(1)式から明らかなように、グラフィックスエンジンが与えるポリゴンが4角形であっても、円形の輝度分布となる。またフレアはフレアベクトルラインに沿って線形の輝度分布となる。
一方、(A)式のG(r)およびF(d)はテ−ブルで生成されているため非線形な任意関数を記憶することができる。例としてF(d)を一定値として、G(r)のみを使用すれば円形のブル−ムを表現することができる。またG(r)およびF(d)を適当な曲線でテ−ブル化することにより、楕円形状のブル−ム描画が可能となる。以上から本発明では少ないレンダリング情報から多様な形状を表現可能とする。
(A)式における2点間の距離計算や2点が結ぶ直線方向とフレアベクトルとの内積cosθはグレア回路内に実装することもできるが、通常、光反射計算回路に含まれており、2点間の距離や内積計算は乗算器、加減算器および平方根回路で構成されるが詳細は本発明の範囲ではない。In the present invention, three of the polygon, the glare emission point coordinate value, and the flare vector are defined as glare generation variables. The distance from the light emitting point to the drawing point (polygon interpolation point or rendering point) is used to determine the bloom or halo, and the flare is determined from the direction cosine formed by the linear direction connecting the two variables and the flare vector. To do. This relationship is shown in equation (A).
In equation (A), the distance between the rendering point and the glare emission center point is r, and the direction cosine formed by the linear direction connecting the light emission point to the rendering point and the flare vector is cos θ. Here, in the present invention, a RAM having the distance r and the direction cosine cos θ as input addresses is provided, and the RAM has G (r) in the equation (1) with the distance r as a variable, and the direction cosine cos θ as a variable. The function value of S (cos θ) in the equation (2) is converted into a table and stored. By multiplying the distance r shown in equation (3) by the sin θ obtained from S (cos θ) in equation (2) and the sin θ obtained as a result of this, and again giving d in equation (3) as the RAM address. (4) Equation is obtained. Further, equation (1) and equation (4) are multiplied to obtain equation (5). Ip in equation (5) is the glare luminance at the rendering point. Here, the RAM table can be used by physically sharing the address of one RAM. The same applies to the multiplier. K 0 to k 2 represent coefficients.
In the present invention, the function values of the expressions (1), (2) and (4) are stored in the RAM, while the expressions (3) and (5) are obtained by calculating the output value obtained by the RAM by a multiplier. is there. Equation (A) is a function G (r) that attenuates as the distance r from the rendering point to the generation point increases, and F (d) that decreases as the distance d from the rendering point to the flare line increases. Expressed as a product. Equation (1) is used for drawing a bloom, and equation (5) is used for drawing a flare line. Each coefficient adjusts the gradient of brightness. If the distance r of the exponent part -k 1 r in the equation (1) is replaced with Rr, Gr, and Br, G (r) corresponding to the three primary colors can be drawn. This shows a halo-picture. Here, R, G, and B are arbitrary distances from the light emission center point. As is clear from the equation (1), even if the polygon provided by the graphics engine is a quadrangle, a circular luminance distribution is obtained. The flare has a linear luminance distribution along the flare vector line.
On the other hand, since G (r) and F (d) in the formula (A) are generated as a table, a nonlinear arbitrary function can be stored. For example, if F (d) is a constant value and only G (r) is used, a circular bloom can be expressed. Further, by rendering G (r) and F (d) with a suitable curve, it is possible to draw an elliptical bloom. As described above, in the present invention, various shapes can be expressed from a small amount of rendering information.
The distance calculation between the two points in equation (A) and the inner product cos θ between the straight line connecting the two points and the flare vector can be mounted in the glare circuit, but are usually included in the light reflection calculation circuit. The distance between points and the inner product calculation are constituted by a multiplier, an adder / subtracter and a square root circuit, but the details are not within the scope of the present invention.
以上から本発明では、視点座標系でのレンダリングにおいて、物体の輝度が一定の明るさを超える場合、レンダリング点の座標値、輝度および識別子のそれぞれの情報をレジスタファイルを設けて、これに記憶する手段と、レジスタファイルに前記情報を記憶する際、すでに記憶されているレジスタファイル内の識別子を比較し、識別子が一致する場合には、前記情報とレジスタファイル内の輝度とを積算する手段と、前記レジスタファイルにはxおよびy座標の最大および最小値を、またz座標値は視点に最も近い値を記憶する記憶域を設け、前記レジスタファイル内のz値と前記レンダリング点のz値を比較し、前記レンダリング点のz値が視点に近い場合には前記レジスタファイルのz値を前記レンダリング点のz値に置き換えると共に、前記レンダリング点のxおよびy座標の最大・最小値と前記レジスタファイル内の座標値との比較を行って、前記レンダリング点の座標値が最大あるいは最小値となる場合には該当する前記レジスタファイル記憶域の座標値を更新する手段と、前記識別子が不一致の場合には、レンダリング点の座標値、輝度および識別子を、前記レジスタファイルの新たな記憶域にそれぞれ書き込む手段と、レンダリング終了後、前記レジスタファイルの輝度、xおよびy座標の最大・最小値を順次読み出すと共に、前記レジスタファイルのz値とzバッファのz値との比較を行い、前記レジスタファイルのz値がより視点に近い場合は、前記最大・最小値で囲まれる面積の中心点を原点として、前記読み出した輝度強度に比例したグレアを発生する手段と、前記zバッファのz値より遠方にある場合には、グレアを描画しないそれぞれの手段と、前記レジスタファイルから読み出したxおよびy座標の最大・最小値から面積を求める手段と、前記面積が所定の大きさを超え、且つ、前記zバッファのz値との比較の結果、zバッファのz値よりも遠方にある場合、前記最大・最小座標値の領域内に複数のサンプリング点を設ける手段と、前記それぞれのサンプリング点毎に前記zバッファのz値との比較を行い、前方あるいは後方のそれぞれのサンプリング点数の比率からグレア強度を決定する手段と、前記レジスタファイルから読み出した輝度の強度に比例した大きさのフレアを描画する手段として、フレア原点、フレアベクトルおよびフレアベクトルを囲むポリゴンを定義し、前記ポリゴンに定義された頂点座標値からポリゴンを内挿補間し内挿補間点を得る手段と、前記内挿補間点と前記フレア原点間の距離、およびフレア原点とポリゴン内挿補間点を結ぶ方向ベクトルと前記フレアベクトルとがなす方向余弦をそれぞれ求める手段と、RAMを設け、前記RAMには前記距離と方向余弦を変数とする減衰関数値と、前記内挿補間点とフレアベクトルとの距離を求める関数値を記憶して、前記距離と方向余弦を入力アドレスとして前記それぞれの関数値を読み出した後、乗算器および加減算器を用いてフレアおよびフレア周辺の輝度を決定するそれぞれの手段をもつことを特徴とする。 As described above, in the present invention, when the luminance of the object exceeds a certain level in the rendering in the viewpoint coordinate system, each of the coordinate value, luminance, and identifier information of the rendering point is provided and stored in the register file. Means and, when storing the information in the register file, compares the identifiers in the register file already stored, and if the identifiers match, means for integrating the information and the luminance in the register file; The register file is provided with a storage area for storing the maximum and minimum values of the x and y coordinates and the z coordinate value closest to the viewpoint, and the z value in the register file is compared with the z value of the rendering point. If the z value of the rendering point is close to the viewpoint, the z value of the register file is replaced with the z value of the rendering point. If the maximum and minimum values of the x and y coordinates of the rendering point are compared with the coordinate values in the register file, and the coordinate value of the rendering point is the maximum or minimum value, the corresponding register file Means for updating the coordinate value of the storage area, means for writing the coordinate value, luminance and identifier of the rendering point in a new storage area of the register file if the identifiers do not match; When the luminance of the register file, the maximum and minimum values of the x and y coordinates are sequentially read out, the z value of the register file is compared with the z value of the z buffer, and the z value of the register file is closer to the viewpoint A method of generating glare proportional to the read luminance intensity with the center point of the area surrounded by the maximum and minimum values as the origin. And each means that does not draw glare if it is far from the z value of the z buffer, means for obtaining an area from the maximum and minimum values of x and y coordinates read from the register file, and the area Means for providing a plurality of sampling points in the region of the maximum / minimum coordinate values when a predetermined size is exceeded and the result of comparison with the z value of the z buffer is far from the z value of the z buffer And a means for comparing the z value of the z buffer for each sampling point and determining the glare intensity from the ratio of the number of sampling points in the front or rear, and the intensity of the luminance read from the register file. As a means for drawing a flare having a proportional size, a flare origin, a flare vector, and a polygon surrounding the flare vector are defined, and the polygon Means for interpolating a polygon from the vertex coordinate values defined in the process to obtain an interpolation point, a distance between the interpolation point and the flare origin, and a direction vector connecting the flare origin and the polygon interpolation point And a RAM for obtaining a direction cosine formed by the flare vector and the flare vector, and a RAM for obtaining a damping function value having the distance and the direction cosine as variables, and a distance between the interpolation point and the flare vector. The function value is stored, the distance and the direction cosine are used as input addresses, the respective function values are read out, and then the flare and the brightness around the flare are determined using a multiplier and an adder / subtractor. Features.
本発明の回路によって、夜景や車のヘッドライトのようなグレア現象を、実時間で表示出きると共に、光源の強度や環境条件に応じてグレアの表現を変化させることが可能となる。 With the circuit of the present invention, a glare phenomenon such as a night view or a car headlight can be displayed in real time, and the expression of glare can be changed according to the intensity of the light source and environmental conditions.
本発明の技術はLSI、プログラマブル論理回路等への実装あるいはIP(Intelligent Property)の形態で実施され、コンピュ−タグラフィックス映像生成プロセッサとして応用される。 The technology of the present invention is implemented in an LSI, a programmable logic circuit or the like or implemented in the form of IP (Intelligent Property), and is applied as a computer graphics video generation processor.
本発明の実施例を以下に説明する。図1は本発明のグレア発生領域記憶回路で、グレア発生点座標値および輝度を記憶するための回路を示す。図1においてシェ−ダ−10はポリゴン頂点に定義された3次元座標値、テキスチャ−座標値、法線、光源入射角、視野角などを内挿補間して得た情報から内挿補間点の輝度を決定する回路である。内挿補間点の輝度Ipは、環境光Ieと輝度比較器11で大小比較する。前記輝度Ipは反射光の場合は拡散および鏡面反射の和であり、光源の場合は光源輝度となる。これら輝度と環境光との差分絶対値Icが所定の大きさを超えた場合、識別子一致検出回路12において内挿補間点のIDsとレジスタファイル14に記憶されたIDdと一致検出を行う。IDが一致した場合、最大最小計算回路13ではレジスタファイル14から、すでに記憶されたXおよびY軸の最大・最小値とZ軸の最大値(視点に最も近い値)を受け、これら座標値とシェ−ダ−側から入力する(X,Y,Z)値とからそれぞれ大小を比較する。シェ−ダ−から入力する新座標値(X,Y,Z)がレジスタファイルの最大・最小値と比較して最大あるいは最小のいずれかとなる場合は、該当する値を入れ替えてレジスタファイルを更新する。Z座標値は最大となる方をレジスタファイルに記憶する。すなわち最大最小計算回路13には、レジスタファイルからのXおよびY座標の最大・最小値およびZ座標最大値と、シェ−ダ−入力からの座標値とを比較し、値を置き換えるための4つの減算器とマルチプレクサを実装している。一方、IDが一致しない場合は、新たにX、Y、Z、IDおよび輝度差分値Icをレジスタファイル14に記憶する。この場合最大最小値の両ビットフィ−ルドには初期値としてX、Y値をそれぞれに記憶する。レジスタファイル容量は、例えば32ワ−ドとすれば、32座標点のグレア発生領域を記憶できる。1ワ−ドにはX,Y座標の最大・最小値、Z最大座標値、識別子および輝度のビットフィ−ルドで構成し、X,Y座標値の範囲を11ビット、Z座標値を32ビット、識別子を8ビット、輝度の範囲を10ビットとすれば、1ワ−ドは94ビットとなる。 Examples of the present invention will be described below. FIG. 1 shows a glare generation area storage circuit of the present invention, which is a circuit for storing the glare generation point coordinate value and the luminance. In FIG. 1, a
本発明ではグレア発生点が同一の識別子をもつポリゴン上にある場合には、それが面積的に広がっていても一つの発生源として扱う。よって発生点が複数分布し、面状となる場合に対応してX,Yの最大・最小値を記憶している。この最大・最小値からグレア面の大きさが判断できる。前記Icが所定の値を超えた場合、シェ−ダ−から与えられるIDsが、レジスタファイル14に登録済みか否かを比較する。すでに同一のIDが登録されていれば、一致したIDレジスタがもつレジスタファイルの物理アドレスを読み出し、これをレジスタファイル14に与えて、記憶された輝度Irを読み出し、前記IpとIeとの差分値Icとを加算器15で加算し、加算値Σ(Ic+Ir)をレジスタファイル14に記憶する。一方、シェ−ダ−からのIDsがレジスタファイル14に存在しない場合には、レジスタファイルのIDビットフィ−ルドに新規に登録すると同時にレジスタファイル用アドレスを割り振り、グレア発生点座標値と輝度Ic(Ir=0とする)を、割り振られたアドレスのレジスタファイル14に記憶する。 In the present invention, when the glare generation point is on a polygon having the same identifier, it is handled as one generation source even if it is spread over the area. Therefore, the maximum and minimum values of X and Y are stored in correspondence with a case where a plurality of generation points are distributed and become planar. The size of the glare surface can be determined from the maximum and minimum values. When Ic exceeds a predetermined value, it is compared whether or not IDs given from the shader have been registered in the
すべてのレンダリングが終了した時点で、レジスタファイル14に記憶したXおよびYの最大・最小座標値、Z最大値および輝度の合計値をそれぞれ読み出す。通常この読み出しは視野変換を担っているグラフィックスエンジンと呼ばれるプロセッサが1ワ−ド毎に行う。読み出された座標値から、XおよびY領域の大きさを最大・最小値から調べる。所定の範囲以内の場合は、描画プロセスで通常記憶されている画像デ−タとそのZ値を記憶したzバッファから、前記レジスタファイルから読み出したXおよびYの中心座標点でアクセスし、このz値とレジスタファイルのz最大値とを比較する(この処理はグラフィックスエンジンのソフトウエアで行うため回路は図示していない)。前記zバッファのz値の方が大きい場合には、そのグレア発生点を無視し、次のレジスタファイルの情報の読み出しを行う。一方、レジスタファイルのz最大値がzバッファのz値より大きければ、前記XおよびY座標中心点をグレア発生点とする。グレアの形状は前記輝度の合計値から決定した4角形からなるポリゴンを定義し、これを内挿補間する。すなわち輝度合計値が大きければ、ポリゴンサイズを大きくする。さらに輝度が所定の大きさを超えた場合は、フレアベクトルをグレア関数演算回路(図2)に与える。ポリゴンの生成とフレアベクトルは前記グラフィックスエンジンで決定する。グラフィックスエンジンには輝度の大きさに対応したポリゴンサイズテ−ブルを、またフレアベクトルは輝度の大きさに対応した乱数の分布値と周期値テ−ブルをあらかじめ作成しておき、これらテ−ブルを参照する。フレアベクトルは前記分布と周期値からグレア発生点を原点とする乱数を発生し、原点と乱数点を結ぶ直線をフレアラインとして、フレアベクトルを生成する。前記グラフィックスエンジンではフレアベクトルの大きさ(原点と乱数点を結ぶ直線距離)を取り巻くポリゴンも生成し、これをレンダラ−に出力する。レジスタファイル14からの読み出しはすべての登録したIDを終了した時点で終了する。 When all the renderings are completed, the maximum and minimum coordinate values of X and Y, the Z maximum value, and the total luminance value stored in the
図2は本発明のグレアレンダリング回路の関数演算回路を示す。前記グラフィックスエンジンはグレア発生点とポリゴンサイズを決定すると、発生点座標値とポリゴン座標値、およびフレアベクトルをレンダラ−に送る。レンダリング回路ではポリゴン頂点座標値からポリゴン内部を内挿補間して全てのポリゴン内部の座標値を求める(内挿補間回路は一般的な回路であるため図2には示していない)。図2において距離計算回路20はフレアベクトルF、グレア発生点座標(X0,Y0,Z0)と内挿補間点(Xr,Yr,Zr)を受ける。距離計算回路20は、それぞれの座標成分毎に差分してそれを2乗加算した後、平方根をとり2点間の距離と、またグレア発生点と内挿補間点を結ぶ方向RとフレアベクトルFとが成す方向余弦を求める演算回路からなる。この処理は式(B)による。
よって、距離計算回路20には加減算器、乗算器および平方根回路を実装する。距離rおよびcosθがマルチプレクサ21で選択された後、これらの値を関数テ−ブル22のアドレスとして与える。関数テ−ブルはRAMで構成され、前記(A)式による関数値を記憶する。関数テ−ブルから出力する情報は、1例としてFIG. 2 shows a function operation circuit of the glare rendering circuit of the present invention. When the graphics engine determines the glare generation point and the polygon size, it sends the generation point coordinate value, the polygon coordinate value, and the flare vector to the renderer. The rendering circuit interpolates the inside of the polygon from the polygon vertex coordinate values to obtain coordinate values inside all the polygons (the interpolation circuit is a general circuit and is not shown in FIG. 2). In FIG. 2, the
Therefore, an adder / subtracter, a multiplier, and a square root circuit are mounted on the
項の式(A)にあるG(r)およびS(cosθ)である。すなわち関数テ−ブルにはrおよびcosθを入力として(A)式の(1)および(2)式が記憶されている。入力cosθによって関数テ−ブルから出力されたS(cosθ)は、距離計算回路20で求めた距離rとマルチプレクサ25を通して乗算器23で乗算され、(A)式内での(3)式を実行する。この乗算結果dは、さらにマルチプレクサ21に戻されて再び関数テ−ブルに与えられ(A)式のF(d)を出力する。このF(d)はレジスタ24に一時的に記憶される。次に関数テ−ブル入力には再びrが与えられ(A)式の(1)式を出力し、レジスタ24に記憶されたF(d)とマルチプレクサ25を通して関数テ−ブル出力のG(r)とが、乗算器23で乗算され(A)式内の(5)式Ipを得る。以上のように関数テ−ブル、レジスタ、マルチプレクサおよび乗算器のそれぞれを用いて漸化式的な計算を行うことによって、わずかな回路で多様な情報を処理することができる。G (r) and S (cos θ) in the term formula (A). That is, the function table stores equations (1) and (2) of equation (A) with r and cos θ as inputs. S (cos θ) output from the function table by the input cos θ is multiplied by the distance r obtained by the
本発明の回路をIP(Intelligent Property)として、あるいはグラフィックスプロセッサLSIチップに実装することによって映像製作、CGゲ−ム等のシステムにおいて実時間描画を可能とする。 By mounting the circuit of the present invention as an IP (Intelligent Property) or on a graphics processor LSI chip, real-time drawing can be performed in a system such as video production or CG game.
図1「本発明のグレア発生領域記憶回路を示す。」
図2「本発明の関数演算回路を示す。」FIG. 1 “Shows the glare generation area storage circuit of the present invention.”
FIG. 2 "shows a function operation circuit of the present invention."
図1
10 シェ−ダ−
11 輝度比較器
12 識別子一致検出回路
13 最大最小値計算回路
14 レジスタファイル
15 加算回路
図2
20 距離計算回路
21 マルチプレクサ
22 関数テ−ブル
23 乗算器
24 レジスタ
25 マルチプレクサFIG.
10 Shader
11
20
Claims (4)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005033611A JP2006195938A (en) | 2005-01-13 | 2005-01-13 | Glare rendering circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005033611A JP2006195938A (en) | 2005-01-13 | 2005-01-13 | Glare rendering circuit |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006195938A true JP2006195938A (en) | 2006-07-27 |
Family
ID=36801961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005033611A Pending JP2006195938A (en) | 2005-01-13 | 2005-01-13 | Glare rendering circuit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006195938A (en) |
-
2005
- 2005-01-13 JP JP2005033611A patent/JP2006195938A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2014363213B2 (en) | Image rendering of laser scan data | |
US8648856B2 (en) | Omnidirectional shadow texture mapping | |
US8896602B2 (en) | Apparatus and method for finding visible points in a point cloud | |
US6690372B2 (en) | System, method and article of manufacture for shadow mapping | |
JP7344267B2 (en) | Importance sampling to determine light map | |
US8115783B2 (en) | Methods of and apparatus for processing computer graphics | |
GB2571656B (en) | Graphics rendering using directional representations of lighting at probe positions within a scene | |
US8207968B1 (en) | Method and apparatus for irradiance caching in computing indirect lighting in 3-D computer graphics | |
US10593096B2 (en) | Graphics processing employing cube map texturing | |
US7400325B1 (en) | Culling before setup in viewport and culling unit | |
US6791544B1 (en) | Shadow rendering system and method | |
US8698799B2 (en) | Method and apparatus for rendering graphics using soft occlusion | |
US7292239B1 (en) | Cull before attribute read | |
CN116091684B (en) | WebGL-based image rendering method, device, equipment and storage medium | |
CN109658494B (en) | Shadow rendering method in three-dimensional visual graph | |
KR20100075351A (en) | Method and system for rendering mobile computer graphic | |
JP2006195938A (en) | Glare rendering circuit | |
JP2007141196A (en) | Polygon/silhouette line/anti-aliasing circuit | |
JP2009163469A (en) | Global illumination circuit | |
JP2952585B1 (en) | Image generation method | |
JP2006113909A (en) | Image processor, image processing method and image processing program | |
JP2010157170A (en) | Omnidirectional shadow projection renderer | |
JP2008152742A (en) | Determination circuit for polygon brightness reference point | |
WO2008065661A2 (en) | Apparatus and method for finding visible points in a point cloud | |
JP2007052758A (en) | Ambient light mapping circuit |