US20100020081A1 - Light reflection intensity calculation circuit - Google Patents
Light reflection intensity calculation circuit Download PDFInfo
- Publication number
- US20100020081A1 US20100020081A1 US12/568,030 US56803009A US2010020081A1 US 20100020081 A1 US20100020081 A1 US 20100020081A1 US 56803009 A US56803009 A US 56803009A US 2010020081 A1 US2010020081 A1 US 2010020081A1
- Authority
- US
- United States
- Prior art keywords
- cos
- vector
- reflectance
- light
- reflection
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/506—Illumination models
Definitions
- the present invention relates to a computer graphics circuit to express specular reflection.
- the present invention also relates to a circuit for anisotropic reflection and devices to render images on the basis of said reflections.
- a modeling of light-reflection is an important technology in order to render realistic images of three-dimensions.
- Some models based on the specific algorithms have been developed, e.g., Phong shading, which is one of the popular models used in a polygonal rendering scheme.
- the Phong shading algorithm assumes a uniform surface property of an object and disregards both behaviors of random reflection on a rough surface and the wave-length characteristic of light, while the Cook-Torrance model is a physical based model involving a rough surface property.
- This model expresses a specular reflection component Rs with the following equation (1).
- N, L and V are a surface normal vector, a light-source incidence vector (unit vector) and a view vector (unit vector), respectively.
- H is a half vector between the light-source incidence L and view vector V.
- ⁇ is a wave-length of light-source incidence.
- ⁇ is an angle between light-source incidence L and surface normal vector N, and ⁇ is an angle between a mirror reflection vector and the view vector.
- ⁇ ( ⁇ , ⁇ ) shows a function of reflectance
- D( ⁇ ) denotes a reflection distribution function.
- a geometrical attenuation factor G is expressed by vectors and defined with a minimum value among three values in equation (1).
- the diffuse light reflection cos ⁇ , cos ⁇ and cos ⁇ are defined by the equations (2)-(4) respectively.
- Ispec 2 ⁇ k ⁇ ⁇ ⁇ ( ⁇ , ⁇ ) ⁇ D ⁇ ( ⁇ ) ⁇ min ⁇ [ 1 2 ⁇ ⁇ cos ⁇ ⁇ ⁇ , cos ⁇ ⁇ ⁇ cos ⁇ ⁇ ⁇ , cos ⁇ ⁇ ⁇ cos ⁇ ⁇ ⁇ ] ( 5 )
- FIG. 5 shows the brief circuit-diagram proposed on the Japanese laid open patent No. 2003-30683, implementing a table 101 of 1/cos ⁇ , a table 102 of 1/cos ⁇ , a table 103 of D(cos ⁇ ), a table 104 of k ⁇ ( ⁇ , cos ⁇ ), subtracter 105 , multiplexer 106 , 1 ⁇ 2 shifter 107 , multiplier 108 , comparator 109 , multiplier 110 , multiplier 111 , multiplexer 112 , multiplier that outputs two-time shifted value 113 respectively.
- This circuit selects the minimum value from reciprocal values of cos ⁇ and cos ⁇ using 1 ⁇ 2 shifter 107 , multiplier 108 , multiplexers 106 and 112 through tables 101 and 102 .
- the equation (5) takes the ranges from zero to infinity, resulting in low accuracy both for the minimum value of the geometrical attenuation factor and the specular reflection component.
- the anisotropic reflection expresses a specific intensity distribution of specular reflection on object surfaces e.g., CD-ROM, hair, clothes, metals, which are caused by the grooves on a surface.
- object surfaces e.g., CD-ROM, hair, clothes, metals
- the surface must be represented by polygon vertices with surface tangents that imply the direction of grooves in addition to the surface normal, light-source incidence and view angles.
- the anisotropic reflection is obtained by interpolating the above variables on a polygon interior. This scheme, however, assumes that the reflectance distributes uniformly on the whole surface.
- the object of the present invention is to provide a specular reflection circuit with high computing accuracy.
- the other object of the present invention is to provide a specular reflection circuit which can be implemented by means of small-scaled hardware.
- the other object of the present invention is to provide a specular reflection circuit which can be implemented by a multimedia processor.
- the other object of the present invention is to provide hardware such as a computer which embeds the above described specular reflection circuit.
- the other object of the present invention is to provide a circuit, especially a computer graphics circuit, to render an anisotropic reflection surface with a light computing workload.
- the other object of the present invention is to provide a circuit, especially a computer graphics circuit, to render the surface involving anisotropic reflection and multiple reflectance.
- the other object of the present invention is to provide image-rendering devices that comprise such a circuit as described above.
- the first embodiment of the present invention for solving the above one or more objects, is also directed to a circuit that defines the intensity of reflectance on a rough surface using reflectance, a light reflection distribution function and light a attenuation factor
- a reflectance component of the reflectance using a reflectance term expressed by the intensity ratio of light incidence and reflection, a distribution function term on the surface of a microfacet orientation that is a set of minute surfaces of an object, and a geometrical attenuation factor to express the attenuation on the microfacet surface that occurs as a partial shield of the light incidence and reflection ray, comprising; a first means for computing a reflectance term using an inner-product of a light-source incidence vector and a view vector; a second means for computing a distribution function by multiplying a half-vector between light-source incidence and the view vector with normal on-object surface; a third means for selecting a maximum value from multiplied inner-products using the surface normal vector, the light-source incidence vector, the view vector and the half vector; a fourth means for computing a geometrical attenuation factor from the reciprocal of said maximum value obtained by the third means; and a means for obtaining a reflection component by multiplying a reflectance term,
- the rendering device of light reflection of the present invention comprises the circuit described in the above paragraphs [1] or [2].
- the second embodiment of the present invention for solving the above one or more objects, is directed to the circuit that computes a reflection intensity, for calculating a reflection intensity of a computer graphics image, defining the object surface by a set of polygons that have both or either microscopic grooves or partial areas of different reflectance, comprising:
- the second embodiment of the present invention is directed to the circuit that computes a light-reflection intensity as recited in the above paragraph [4], wherein the texture pattern is separately stored with three color components of red, green and blue in connection with the interpolated texture mapping address; and where
- blended reflection intensity is computed using the reflectance intensity computed by the circuit as recited in paragraph [1], and the texture pattern in connection with the three color-components of red, green and blue.
- the second embodiment of the present invention is directed to the circuit that computes light-reflection intensity as recited in the above paragraph [4], wherein cos ⁇ is defined as an inner-product of said surface normal vector N and light-source incidence vector L,
- the means for computing a light-reflection intensity comprising: a means for storing and reading a light-attenuation factor S( ⁇ ) addressed by ⁇ or cos ⁇ ; a means for storing and reading a specular reflectance ⁇ s addressed by ⁇ or cos ⁇ ; a means for storing and reading a diffuse reflectance ⁇ d or cos ⁇ d, addressed by ⁇ or cos ⁇ ; a means for storing and reading a reflection distribution function (D( ⁇ )) addressed by function ( ⁇ ) that is derived from the interpolated light-source incidence vector Li, the interpolated view vector Vi and the interpolated surface tangent vector Ti; a means for multiplying; and a means for adding.
- D( ⁇ ) reflection distribution function
- the second embodiment of the present invention is directed to the circuit that computes light-reflection intensity as recited in the above paragraph [6], wherein the value of the specular reflectance ⁇ s stored and read by a means for storing and reading specular reflectance ⁇ s is separately stored and read with separated wavelength (of original color) of red, green and blue.
- the second embodiment of the present invention is directed to the circuit that computes light-reflection intensity as recited in the above paragraph [6], wherein the value of the diffuse reflectance ⁇ d or cos ⁇ ⁇ d stored and read by a means for storing and reading a diffuse reflectance ⁇ d or cos ⁇ ⁇ d addressed by ⁇ or cos ⁇ are separately stored and read by separated wavelength (of original color) of red, green and blue.
- the second embodiment of the present invention is directed to the circuit that computes a light-reflection intensity as recited in the above paragraph [6], wherein the function ( ⁇ ) that relates to the interpolated light-source incidence vector Li, the interpolated view vector Vi and the interpolated surface tangent vector Ti fulfill the following equation:
- Hi is a half-vector of interpolated light-source incidence Li and view vector Vi
- T ⁇ H is an inner-product of Hi and Ti.
- the second embodiment of the present invention is directed to the circuit that computes light-reflection intensity as recited in the above paragraph [4], wherein a reflection intensity Ip is computed with the following equation:
- Ip is a reflection intensity
- S( ⁇ ) is light attenuation factor
- ⁇ s is specular reflectance
- ⁇ d diffuse reflectance
- D( ⁇ ) is a reflection distribution function
- the image rendering device of the present invention for solving the above one or more objects is directed to an image rendering device that comprises the circuit described any one of the above paragraphs [4]-[10].
- the second embodiment of the present invention for solving the above one or more objects, is directed to a compound anisotropic circuit, relating a computer graphics circuit for expressing light reflectance on the object surface including microscopic grooves and various reflectance, defining the object surface by a set of polygons, defining a surface normal, a light-source incidence vector, a view vector and a texture mapping address at each polygon vertex, comprising:
- a means for defining a surface tangent vector that indicates the direction of the groove at every interior point storing the surface tangent of two-dimensional array into memory, a means for interpolating the surface normal vector, the light-source incidence vector, the view vector and the texture mapping address, reading the surface tangent from the memory assigned with texture mapping address, and computing a light reflection intensity by using the surface tangent vector, interpolated surface tangent vector, interpolated light-source incidence vector and interpolated view vector.
- the second embodiment of the present invention is directed to a compound anisotropic circuit as recited in the above paragraph [12], wherein a light intensity of interpolated points are determined using:
- the second embodiment of the present invention is directed to a compound anisotropic circuit as recited in the above paragraph [12], wherein further comprising;
- the surface normal vector N is a unit vector defined at each polygon surface regarding object with a set of polygons.
- the light-source incidence vector L is a unit vector of light-ray which directs to the polygon vertex from light-source.
- the view vector V is a unit vector having a direction from eye-point to each polygon vertex.
- the circuit of the first embodiment of the present enables computation of a specular reflection component in small scaled circuit with high precision because the reciprocal of a trigonometric function allows a reduction of the number of computation and to carry out the processing at a final stage.
- the circuit of the second embodiment of the present invention allows the circuit (appropriate for renderer in computer graphics) to render the surface of anisotropic reflection property with a light workload.
- the circuit of the second embodiment of the present invention further can allows the circuit (appropriate for renderer in computer graphics) to render both surfaces of anisotropic reflection and multiple reflectance.
- the present invention can provide the image rendering devices comprising the above circuits.
- FIG. 1 is a block diagram of the circuit relating to the first embodiment of the present invention.
- FIG. 2 is a block diagram of the circuit that computes light-reflection intensity relating to the second embodiment of the present invention.
- FIG. 3 is a block diagram of the circuit relating example 1.
- FIG. 4 is a block diagram of the circuit relating example 2.
- FIG. 5 is a block diagram of the circuit published in Japanese laid open patent No. 2003-30683
- the first embodiment of the present invention is directed to a circuit to compute a light-reflection for a rough surface object in computer graphics systems.
- the first embodiment specifies the circuit to structure specular reflection component modified by the formula from Cook-Torrance representation.
- Cook-Torrance representation for specular reflection is given by the following equation (6):
- N is a surface normal vector
- L is a light-source incidence vector
- V is a view (unit) vector
- H is a half-vector between light-source incidence vector L and view vector V
- F ⁇ (V, L) is a reflectance term represented by wave length on the basis of a Fresnel function
- D(V, L) is a light reflection distribution function defined by Beckman's function
- G(V, L) is a geometrical attenuation factor for self-shadow on a microfacet surface.
- FIG. 1 shows a block diagram of a circuit for the first embodiment of the present invention.
- the circuit of the first embodiment of the present invention is the circuit 1 to compute a specular reflection component on rough surface, comprising:
- the circuit of the first embodiment of the present invention can obtain the information of equation (11) relating to specular reflection component.
- the means 2 for storing a reflectance term stores reflectance of an object as a function of ⁇ or cos ⁇ .
- the reflectance (F ⁇ ( ⁇ )) denotes the ratio of reflection to incidence of light.
- a memory table is used to store the reflectance, which is addressed by ⁇ or cos ⁇ .
- the reflectance for rendering an object may be obtained by an actual measurement or a theoretical value and shall be stored with wavelengths at red, green and blue.
- the means 3 for storing a distribution function stores the distribution as a function of ⁇ or cos ⁇ .
- the distribution function is specified by the surface slope at a microfacet and stores the distribution of light reflection (D′( ⁇ )).
- a (D′ (cos ⁇ )) is definable by multiplying D (cos ⁇ ) by cos ⁇ , which D (cos ⁇ ) is given by, e.g., Gaussian function, Beckman's function or cos n ⁇ .
- the memory to store D′(cos ⁇ ) addressed by cos ⁇ is an example of this invention.
- the means 4 for obtaining reflectance specifies the scheme to obtain the reflectance term (F ⁇ ( ⁇ )) in a specular reflection component by storing the reflectance term (F ⁇ ( ⁇ )) into memory and reading it from said memory addressed by cos ⁇ .
- the means 5 for obtaining a distribution function specifies the scheme to obtain the distribution function D′ ( ⁇ ) in a specular reflection component by storing the distribution function D′ ( ⁇ ) into memory and reading it from said memory addressed by cos ⁇ .
- the means 6 for obtaining a geometrical attenuation factor specifies the scheme to obtain the geometrical attenuation factor G′( ⁇ , ⁇ , ⁇ , ⁇ ) by computing the reciprocal of G′ and selecting a maximum value among the reciprocal terms; 0.5 cos ⁇ cos ⁇ , 0.5 cos ⁇ cos ⁇ and cos ⁇ cos ⁇ cos ⁇ .
- a trigonometric function can be computed with relatively high accuracy.
- This invention can obtain the specular reflection factor in a small scaled circuit and with high accuracy due to the use of a reciprocal after computing trigonometric function.
- a memory table shall be used for obtaining the reciprocal.
- the means 7 specifies the specular reflection component with the reflectance term (F ⁇ ( ⁇ )), the distribution function D′( ⁇ ) and the geometrical attenuation factor G′( ⁇ , ⁇ , ⁇ , ⁇ ).
- the specular reflection component is obtained by multiplying (F ⁇ ( ⁇ )), D′( ⁇ ) and G′( ⁇ , ⁇ , ⁇ , ⁇ ).
- the means 4 for obtaining reflectance specifies the operation to obtain the reflectance term F ⁇ ( ⁇ ) in a specular reflection component by means of storing the reflectance term addressed by ⁇ or cos ⁇ ;
- the means 5 for obtaining distribution function specifies the operation to obtain the distribution function D′( ⁇ ), one of specular reflection components, by means of storing a distribution function addressed by ⁇ or cos ⁇ ;
- the means 6 for obtaining a geometrical attenuation factor specifies the operation to obtain the geometrical attenuation factor G′( ⁇ , ⁇ , ⁇ , ⁇ ), one of the specular reflection components, from the reciprocal of max [0.5 cos ⁇ cos ⁇ , 0.5 cos ⁇ cos ⁇ , cos ⁇ cos ⁇ cos ⁇ ] after obtaining the maximum value of 0.5 cos ⁇ cos ⁇ , 0.5 cos ⁇ cos ⁇ and cos ⁇ cos ⁇ cos ⁇ ; and the means 7 for obtaining a specular reflection component specifies the operation to obtain the spe
- FIG. 2 shows the reflection intensity circuit of the second embodiment of the present invention.
- the reflection intensity circuit of the present invention calculates a reflection intensity of a computer graphics image, defining the object surface by a set of polygons that have both or either microscopic grooves or partial areas of different reflectance, and comprises:
- the reflectance intensity circuit of this embodiment preferably further comprises a means 15 for storing a texture pattern in connection with an interpolated texture mapping address (Ui,Vi), and for reading the texture pattern using the interpolated texture mapping address (Ui, Vi).
- the means 11 for obtaining a surface normal vector N, a light-source incidence L, a view vector V, and a texture mapping address (U, V) at every polygon vertex specifies to input the surface normal vector N at each polygon vertex, the light-source incidence vector L at each polygon vertex, the view vector V at each polygon vertex and a texture mapping address (U, V) at each polygon vertex. These values may be defined previously in relation with the objects, and then the defined values are inputted.
- the means 12 for interpolation specifies the polygonal interpolation for the surface normal vector N, the light-source incidence vector L, the view vector V and the texture mapping address (U, V), which are defined at each polygon vertex.
- the conventional interpolation schemes are applicable.
- One example of the means for interpolation consists of polygon-outline and span processing. The polygon-outline interpolation is carried out between polygon vertices, while the span interpolation is carried out between the horizontal two points obtained by the polygon-outline interpolation.
- the means 13 for storing a surface tangent vector specifies storing and reading of a surface tangent Ti using an interpolated texture mapping address.
- the surface tangent designates the direction of minute grooves on the surface for the vector.
- the means for storing a surface tangent vector four or more surface tangents are read centering around the interpolated texture mapping address (Ui, Vi) and produce a filtered surface tangent.
- the preferable numbers of surface tangents to read are four or 16.
- the surface tangent T is stored in the format of a three-dimensional vector or polar coordinate angle.
- the filtering reduces the alias caused by a single sampling at a mapping address due to the computation error of interpolation between positions of the polygon vertex and the mapping address (U, V).
- the filtering of this invention allows general schemes as used for texture pattern colors.
- the linear or bi-linear filtering uses vectors sampled in 2 ⁇ 2 areas centering around a mapping address, while the cubic filtering uses 4 ⁇ 4 areas.
- a vector-normalization shall be applied after said filtering.
- the means 14 for computing a reflection intensity specifies a processing to compute a reflection-intensity at every interpolated point of a polygon interior using an interpolated surface tangent vector Ti, an interpolated surface normal vector Ni, an interpolated light-source incidence vector Li and an interpolated view vector Vi.
- the means 14 for computing a reflection intensity preferably comprises:
- D( ⁇ ) reflection distribution function
- the diffuse reflectance term ⁇ d, specular reflectance term ⁇ s, intensity attenuation factor S( ⁇ , ⁇ ) and distribution function D( ⁇ ) are preferably stored into RAM tables.
- the function ⁇ is preferably stored into ROM or RAM.
- the RAM is refreshed if the value m of function D( ⁇ ) varies.
- the S( ⁇ , ⁇ ) is approximately replaceable to S( ⁇ ).
- the circuit of this embodiment reads the interpolated values of the diffuse reflectance term ⁇ d, the specular reflectance term ⁇ s, the attenuation factor S( ⁇ ), and the distribution function D( ⁇ ) at every interpolated point.
- the reflectance is read in connection with the interpolated values, which enables the circuit to render the reflection varied per polygon-interior point.
- the preferred embodiment of the circuit of the second embodiment of the present invention multiplies and adds each of the interpolated diffuse reflectance term ⁇ d, the specular reflectance term ⁇ s, the intensity attenuation factor S( ⁇ ), and the distribution function D( ⁇ ).
- Reflection intensity (for anisotropic reflection) Ip is preferably given by the following equation;
- Ip ⁇ d ( N ⁇ L )+ ⁇ sS ( ⁇ ) D ( ⁇ ).
- the specular and diffuse reflectance terms stored and read by the means 14 shall be stored and read in the form of wave-length at red, green and blue respectively, thus, said Ip represents the intensity of every red, green and blue component.
- the function ⁇ derived from light-source incidence Li, view vector Vi and surface tangent Ti shall be defined by the following equation using the half-vector of light-source incidence Li and view vector Vi and the inner-product T ⁇ H of surface tangent Ti and said half-vector Hi:
- ⁇ ⁇ /2 ⁇ cos ⁇ 1 ( T ⁇ H ).
- the means 15 for reading a texture pattern is a means for storing the texture pattern addressed by interpolated texture mapping address (Ui, Vi), and a means for reading the texture pattern addressed by interpolated texture mapping address (Ui, Vi).
- the texture pattern is read with a reference of an interpolated texture mapping address (Ui, Vi).
- the circuit of this embodiment can provide a circuit that renders a realistic image with a relatively small scaled hardware workload.
- the texture pattern shall store and read each color component of red, green and blue separately and address each by interpolated texture mapping address (Ui, Vi).
- Ip, ⁇ d, ⁇ s, S( ⁇ , ⁇ ), H and m in the equation (12) denote reflection intensity, a diffuse reflectance term, a specular reflectance term, an attenuation factor, a half-vector of light-source incidence vector L and view vector V, and a surface roughness, respectively.
- the surface normal N, light-source incidence vector L and view vector V defined at each polygon vertex are interpolated at every interior point.
- a half-vector H is derived by light-source incidence and view vector of each interpolated point.
- the surface tangent vector T is read from the memory by the texture mapping address.
- the surface tangent vector T is defined with either vector components of three-dimension or polar coordinate.
- mapping address U, V
- coordinate of polygon vertex U, V
- the filtering shall be applied, which is often used for the texture pattern colors.
- a linear or bi-linear filtering uses the vectors in 2 ⁇ 2 areas centering around the mapping address, and a cubic filtering uses the vectors in a 4 ⁇ 4 area.
- the second embodiment applies to the surface tangent a vector-normalization after filtering.
- An empirical model generally defines the reflectance ⁇ d and ⁇ s constant, which are available for objects with uniformly distributed reflectance.
- the interpolated points might have multiple reflectances in the case that the object is composed of different materials.
- the reflectance is a unique characteristic of material and alternates according to the wave-length and light-source incidence to the surface.
- the second embodiment stores the reflectance ⁇ d and ⁇ s into a RAM table in advance. Because the reflectance depends on the light-source incidence, the inner-product (N ⁇ L) of surface normal N and light-source incidence L is used for the address for the RAM table to read. Equation (13) shows the above relation.
- ⁇ d( ⁇ r,g,b , ⁇ ) and ⁇ s( ⁇ r,g,b , ⁇ ) are the reflectance as a function of angle ⁇ between surface normal N and light-source incidence L, and wave-length at red, green and blue.
- the second embodiment of this invention can replace ⁇ to ⁇ which is obtained by inner-product (N ⁇ H) of surface normal N and half-vector H as shown in equation (14).
- the second embodiment of the present invention stores the necessary numbers of reflectance into a RAM table in advance.
- the bit-length to select appropriate reflectance from the table is n if the RAM table can store 2 n sets of reflection.
- the N is distributed in a two-dimensional array which is the same as the texture pattern.
- the N bit is attached to the texture pattern color bit.
- this invention can select the appropriate reflectance of material using n-bit for upper bit-field (lower bit-field is said ⁇ ) of the RAM table address.
- This reflectance denotes ⁇ d( ⁇ r,g,b , ⁇ ) and ⁇ s( ⁇ r,g,b , ⁇ ) of equation (9).
- the second embodiment of the present invention specifies the means to obtain the reflection intensity on the surface which has grooves and multiple reflectances in a single polygon interior, defining the surface tangent per pixel, which has the same distribution as the texture pattern, reading and selecting the unique object-reflectance per pixel with the selection bit which is memorized in advance.
- FIG. 3 shows a block diagram of example 1.
- 21 - 25 denotes multipliers
- 26 denotes a subtractor
- 27 denotes a multiplexer
- 28 denotes a D′(cos ⁇ ) table
- 29 denotes a F ⁇ (cos ⁇ ) table
- 30 denotes a 1 ⁇ 2 shifter
- 31 denotes a subtractor
- 32 denotes a multiplexer
- 33 and 34 denote multipliers
- 35 denotes a reciprocal table
- 36 denotes a multiplier.
- the specular reflection component of this invention is represented by the equation (11).
- F ⁇ (cos ⁇ ) table 29 stores the reflectance of each color component of red, green and blue.
- the reflectance term F ⁇ ( ⁇ ) is, for example, stored in the table, using the measurement values sampling at every color component.
- F ⁇ ( ⁇ ) is read by cos ⁇ .
- F ⁇ (cos ⁇ ) table 29 stores the value of F ⁇ (cos ⁇ ) which is a modified value of the reflectance.
- D′(cos ⁇ ) table 28 stores the distribution function, which is practically defined by, e.g., a Gaussian function, a Beckman function, cos n ⁇ , or D′(cos ⁇ ) which is a multiplied value of these values and cos ⁇ .
- D′(cos ⁇ ) table is read by cos ⁇ .
- the reciprocal table 35 stores the reciprocal, which ranges from 0 to 1.
- RAM as well as ROM (read only memory) is used.
- the circuit receives the values of cos ⁇ , cos ⁇ , cos ⁇ and cos ⁇ .
- the diffuse reflection coefficient K 1 may be applied in case of computing diffuse reflection component I diff .
- Cos ⁇ and cos ⁇ are applied to multiplier 22 .
- the multiplier 22 outputs the result of cos ⁇ cos ⁇ to multiplier 25 .
- Cos ⁇ and cos ⁇ are applied to multiplier 23 .
- the multiplier 23 outputs the result of cos ⁇ cos ⁇ to subtractor 26 and multiplexer 27 .
- Cos ⁇ and cos ⁇ are applied to multiplier 24 .
- the result cos ⁇ cos ⁇ is applied to subtractor 26 and multiplexer 27 .
- the cos ⁇ cos ⁇ and cos ⁇ are applied to multiplier 25 which results in cos ⁇ cos ⁇ cos ⁇ .
- the cos ⁇ cos ⁇ cos ⁇ is applied to subtractor 31 and multiplexer 32 .
- the subtractor 26 subtracts cos ⁇ cos ⁇ from cos ⁇ cos ⁇ .
- the result is applied to the multiplexer 27 in order to choose the larger value of cos ⁇ cos ⁇ or cos ⁇ cos ⁇ .
- Max[cos ⁇ cos ⁇ , cos ⁇ cos ⁇ ] is applied to 1 ⁇ 2 shifter 30 in order to multiply 0.5 by max[cos ⁇ cos ⁇ , cos ⁇ cos ⁇ ].
- the value of 0.5 max[cos ⁇ cos ⁇ , cos ⁇ cos ⁇ ] is applied to the subtractor 31 and the multiplexer 32 .
- the subtractor 31 subtracts 0.5 max[cos ⁇ cos ⁇ , cos ⁇ cos ⁇ ] from cos ⁇ cos ⁇ cos ⁇ , and the result is applied to multiplexer 32 .
- the multiplexer 32 selects a larger value from either 0.5 max[cos ⁇ cos ⁇ , cos ⁇ cos ⁇ ] or cos ⁇ cos ⁇ cos ⁇ .
- the multiplexer 32 outputs the selected value to the reciprocal table 35 which provides the reciprocal of max [cos ⁇ cos ⁇ , cos ⁇ cos ⁇ , cos ⁇ cos ⁇ cos ⁇ ]. This reciprocal value denotes the G′( ⁇ , ⁇ , ⁇ , ⁇ ) of equation (11).
- D′ (cos ⁇ ) table 28 The cos ⁇ addresses D′ (cos ⁇ ) table 28 which outputs D′( ⁇ ) to the multiplier 33 .
- the cos ⁇ is applied to F ⁇ (cos ⁇ ) table 29 .
- the F ⁇ (cos ⁇ ) table 29 reads F ⁇ ( ⁇ ) of each color component (red, green and blue) using cos ⁇ as an address, and outputs every F ⁇ ( ⁇ ) value to the multipliers 33 and 34 .
- the multiplier 33 multiplies D′ ( ⁇ ) with F ⁇ ( ⁇ ) and outputs the result D′ ( ⁇ ) F ⁇ ( ⁇ ) to multiplier 36 .
- the multiplier 36 multiplies F ⁇ ( ⁇ )D′ ( ⁇ ) with G′ ( ⁇ , ⁇ , ⁇ , ⁇ ) and outputs F ⁇ ( ⁇ )D′ ( ⁇ )G′ ( ⁇ , ⁇ , ⁇ , ⁇ ) which denotes the specular reflection component Ispec of equation (11).
- this invention obtains the specular reflection component Ispec with higher accuracy than conventional technologies due to the use of a reciprocal table which allows low accuracy at a final stage of processing.
- a diffuse reflection coefficient K 1 and cos ⁇ are applied to multiplier 21 .
- the multiplier 21 multiplies K 1 with cos ⁇ , obtains K 1 cos ⁇ , and outputs K 1 cos ⁇ to multiplier 34 .
- the multiplier 34 multiplies the K 1 cos ⁇ with F ⁇ ( ⁇ ) and obtains F ⁇ ( ⁇ ) K 1 cos ⁇ .
- the circuit of this example can obtain the diffuse reflection component I diff .
- FIG. 4 shows a block diagram of example 2.
- a surface normal vector N a light-source incidence vector L, a view vector V and a texture mapping address (U, V) defined at every polygon vertex are applied the polygon-outline interpolator 71 .
- the circuit 71 interpolates the variables along to polygon outline and outputs the interpolated variables to a circuit of span-interpolator 72 .
- the span-interpolator 72 interpolates the variables horizontally between right and left edges on the interpolated outlines. The interpolation in the whole area is, thus, carried out by spanning a horizontal line from bottom to top of polygon.
- the surface normal, the light-source incidence, the view vector and the mapping address at point i are assigned to Ni, Li, Vi and (Ui, Vi) respectively.
- the surface normal vector Ni and light-source incidence vector Li are applied to inner-product circuit 73 .
- the inner-product circuit 73 outputs an inner-product value cos ⁇ using the surface normal vector Ni and the light-source incidence vector Li.
- the cos ⁇ is obtainable as an inner-product of Ni and Li.
- the light-source incidence vector Li and view vector Vi are applied to a half-vector circuit 74 .
- the half-vector circuit 74 computes a half-vector value Hi of the light-source incidence vector Li and view vector Vi.
- the half-vector is defined by the following equation.
- the texture mapping address (Ui, Vi) is applied to surface tangent table 75 , reflectance selection table 76 and texture pattern table 77 .
- the surface tangent table 75 stores the surface tangent vector T and is addressed by the texture mapping address (Ui, Vi). Four or more surface tangents are read from the table 75 centering around (Ui, Vi) the texture mapping address.
- the table 75 is implemented by a RAM and the like.
- the surface tangent vector T is applied to filter 78 which carries out the filtering and outputs a filtered value Ti.
- a Sinc, Gaussian or tri-linear scheme is available for this filtering.
- the Ti and half-vector Hi are applied to inner-product circuit 79 .
- the inner-product circuit 79 produces an inner-product value of surface tangent Ti and half-vector Hi.
- the value is applied to distribution function D( ⁇ ) table 81 as the address.
- the inner-product value (TH) is converted by the following equation (a circuit for equation is not illustrated).
- the ⁇ is to be an address for the distribution function D( ⁇ ) table 81 .
- a cos ⁇ output from the inner-product circuit 73 is applied to attenuation function S( ⁇ ) table 80 and reflectance ⁇ ( ⁇ ) table 82 .
- a half-vector Hi from the circuit 74 and surface normal N are used to carry out the inner-product at the inner-product circuit 73 .
- the output of the circuit 73 replace cos ⁇ as the address for the attenuation function table 80 and the reflectance table 82 .
- the attenuation function table 80 stores attenuation function S( ⁇ , ⁇ ) addressed by cos ⁇ or ⁇ . This invention uses cos ⁇ for the address of attenuation function table 80 and outputs an attenuation value S( ⁇ , ⁇ ) from the table. This invention allows an approximate value for the attenuation function, so that the ⁇ is not necessary to be a variable.
- the table 81 of distribution function D( ⁇ ) stores the D( ⁇ ). This invention reads the D( ⁇ ) addressing by ⁇ .
- the reflectance selection table 76 stores the selection values of reflectance uniquely defined for objects addressed by the texture mapping address (Ui, Vi). The selection value from the table 76 is applied to the reflectance table 82 as an address. As per the above descriptions, the reflectance per pixel that varies every object and depends on the angle between light-source incidence and surface normal is obtained.
- the reflectance table 82 stores diffuse ⁇ d( ⁇ , ⁇ ) and specular ⁇ s( ⁇ , ⁇ ) reflectance at wavelengths of red, green and blue. Thus, the reflectance table stores three values separately according to the three color components.
- This invention stores cos ⁇ d( ⁇ , ⁇ ) in the reflectance table 82 instead of ⁇ d( ⁇ , ⁇ ).
- the reflectance table 82 outputs ⁇ s( ⁇ , ⁇ ) to multiplier 84 a and 84 b and thus, the specular reflection component is obtained.
- the outputs from the tables of attenuation function S( ⁇ ) 80 and distribution function D( ⁇ ) 81 are applied to multiplier 84 a .
- the result S( ⁇ )D( ⁇ ) and the output ( ⁇ rs, ⁇ gs, ⁇ bs) from the reflectance table 84 b are applied to multiplier 84 b .
- the result ⁇ s S( ⁇ )D( ⁇ ) is further applied to adder 85 .
- the adder 85 receives the ⁇ s S( ⁇ )D( ⁇ ) and cos ⁇ d.
- the adder 85 outputs cos ⁇ d+ ⁇ s S( ⁇ )D( ⁇ ), which is a reflection intensity Ip.
- the texture pattern table 77 stores three color components of red, green and blue.
- the table 77 uses RAM addressing by (Ui, Vi) and outputs the colors of red, green and blue to filter 83 , which has the same processing as the filter 78 .
- the color components from the filter 83 and diffuse reflectance cos ⁇ d( ⁇ , ⁇ ) from reflectance table 82 are applied to multiplier 84 c , and the output is added with specular reflection component in adder 85 .
- the Ip with texture pattern is obtained at every interpolated point.
- the first embodiment of this invention is available for the rendering circuit of computer graphics, further available for the circuit to render the light-reflection on a rough surface and applicable for the computer graphics LSI with small scaled hardware, further applicable for computer graphics systems, e.g., simulators and gaming machines.
- the second embodiment of this invention is related to the circuit and device to compute an anisotropic reflection and to render an image which has an anisotropic reflectivity.
- the second embodiment is available for a real-time visualization for a virtual reality system with high realism by embedding the circuit within a LSI.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
A circuit for calculating a light reflected component with high accuracy. The circuit for calculating a reflected component of light reflected from an object having a rough surface comprises a means for storing the reflectance of an object in relation to the value φ or the value of cos φ, letting a surface normal vector be denoted by a vector N, a light source incidence unit vector be denoted by a vector L, a line-of-sight unit vector be denoted by V, a half vector of the light source incidence vector L and the line-of-sight vector V be denoted by H and defining the inner products as N·L=cos θ, N·V=cos γ, V·H=cos φ, N·H=cos β; a means for storing a luminance distribution in relation to the value of β or the value of cos β; a means for acquiring information on the reflectance term (F80 (φ)) of the reflected component according to the value of φ or the value of cos φ from the reflectance storing means; a means for acquiring information on the luminance distribution term (D′(β)) of the reflected component according to the value of β or the value of cos β from the luminance distribution storing means; a means for acquiring information on max[0.5 cos θ cos φ, 0.5 cos φ cos γ, cos θ cos β cos γ] which is the maximum value out of 0.5 cos θ cos φ, 0.5 cos φ cos γ, cos θ cos β cos γ; a means for determining the reciprocal of the max[0.5 cos θ cos φ, 0.5 cos φ cos γ, cos θ cos β cos γ] and acquiring information on the geometrical attenuation factor term G′(β,θ,γ,φ) of the reflected component; and a means for acquiring information on the reflected component from the information on the luminance distribution term (D′(β)) and information on the geometrical attenuation factor term G′(β,θ,γ,φ).
Description
- This application is a divisional of application Ser. No. 10/547,678
- The present invention relates to a computer graphics circuit to express specular reflection. The present invention also relates to a circuit for anisotropic reflection and devices to render images on the basis of said reflections.
- A modeling of light-reflection is an important technology in order to render realistic images of three-dimensions. Some models based on the specific algorithms have been developed, e.g., Phong shading, which is one of the popular models used in a polygonal rendering scheme. The Phong shading algorithm assumes a uniform surface property of an object and disregards both behaviors of random reflection on a rough surface and the wave-length characteristic of light, while the Cook-Torrance model is a physical based model involving a rough surface property. This model expresses a specular reflection component Rs with the following equation (1).
-
- where N, L and V are a surface normal vector, a light-source incidence vector (unit vector) and a view vector (unit vector), respectively. H is a half vector between the light-source incidence L and view vector V. λ is a wave-length of light-source incidence. θ is an angle between light-source incidence L and surface normal vector N, and α is an angle between a mirror reflection vector and the view vector. ρ(λ,θ) shows a function of reflectance, and D(α) denotes a reflection distribution function.
- A geometrical attenuation factor G is expressed by vectors and defined with a minimum value among three values in equation (1). The diffuse light reflection cos θ, cos α and cos γ (inner-product of surface normal N and view vector V) are defined by the equations (2)-(4) respectively.
-
cos θ=L·N (2) -
cos α=(2·N·(L·N)−L)·V (3) -
cos γ=N·V (4) - Substituting the equations (2)-(4) for the equation (1), the specular reflection component; Ispec is obtained as shown in an equation (5).
-
- Japanese laid open patent No. 2003-30683,
reference 1, discloses the circuit to get the specular reflection component Ispec on a rough surface.FIG. 5 shows the brief circuit-diagram proposed on the Japanese laid open patent No. 2003-30683, implementing a table 101 of 1/cos θ, a table 102 of 1/cos γ, a table 103 of D(cos α), a table 104 of k×ρ(λ, cos θ), subtracter 105,multiplexer 106, ½shifter 107,multiplier 108,comparator 109,multiplier 110, multiplier 111,multiplexer 112, multiplier that outputs two-time shiftedvalue 113 respectively. - This circuit selects the minimum value from reciprocal values of cos γ and cos θ using ½
shifter 107, multiplier 108,multiplexers - The anisotropic reflection expresses a specific intensity distribution of specular reflection on object surfaces e.g., CD-ROM, hair, clothes, metals, which are caused by the grooves on a surface. As a computer graphics scheme to render the anisotropic reflection, the surface must be represented by polygon vertices with surface tangents that imply the direction of grooves in addition to the surface normal, light-source incidence and view angles. The anisotropic reflection is obtained by interpolating the above variables on a polygon interior. This scheme, however, assumes that the reflectance distributes uniformly on the whole surface.
- The above assumption is available if the surface groove lines are in a single direction. However, the anisotropic reflection cannot be expressed properly in the case of, e.g., clothes that cross complex textures, unless the surface is divided into polygons of a small size. If the number of polygon increases, the workload for computing becomes heavy. Furthermore, a realistic expression cannot be obtained without a large number of small polygons on surfaces such as Makie (gold lacquer ware) on paintings and various reflectances of gold and silver leaves.
- The object of the present invention is to provide a specular reflection circuit with high computing accuracy.
- The other object of the present invention is to provide a specular reflection circuit which can be implemented by means of small-scaled hardware.
- The other object of the present invention is to provide a specular reflection circuit which can be implemented by a multimedia processor.
- The other object of the present invention is to provide hardware such as a computer which embeds the above described specular reflection circuit.
- The other object of the present invention is to provide a circuit, especially a computer graphics circuit, to render an anisotropic reflection surface with a light computing workload.
- The other object of the present invention is to provide a circuit, especially a computer graphics circuit, to render the surface involving anisotropic reflection and multiple reflectance.
- The other object of the present invention is to provide image-rendering devices that comprise such a circuit as described above.
- [1] The first embodiment of the present invention, for solving the above one or more objects, is directed to the circuit to compute a reflection intensity on a rough surface defining: a surface normal vector N, a light-source incidence vector L, a view direction vector V, a half-vector H between L and V, N·L=cos θ, N·V=cos γ, V·H=cos φ, N·H=cos β, and comprising:
- a means for storing reflectance as a function of φ or cos φ;
a means for storing a reflection distribution term as a function of β or cos β;
a means for obtaining a reflectance term (Fγ(φ)) from the means for storing reflectance using φ or cos φ as an index;
a means for obtaining a distribution function (D′(β)) from the means for storing reflection distribution term using β or cos β as an index;
a means for obtaining the value of max[0.5 cos θ cos φ, 0.5 cos φ cos γ, cos θ cos β cos γ], which is a maximum value among 0.5 cos θ cos φ, 0.5 cos φ cos γ and cos θ cos β cos γ;
a means for obtaining a geometrical attenuation factor (G′(β,θ,γ,φ)) of the reflected component by computing the reciprocal of the max[0.5 cos θ cos φ, 0.5 cos φ cos γ, cos θ cos β cos γ]; and
a means for obtaining a reflection intensity using the terms of reflectance (Fλ(φ)), reflection distribution function (D′(β)) and geometrical attenuation factor (G′(β,θ,γ,φ)). - [2] The first embodiment of the present invention, for solving the above one or more objects, is also directed to a circuit that defines the intensity of reflectance on a rough surface using reflectance, a light reflection distribution function and light a attenuation factor
- as a means for obtaining a reflectance component of the reflectance using a reflectance term expressed by the intensity ratio of light incidence and reflection, a distribution function term on the surface of a microfacet orientation that is a set of minute surfaces of an object, and a geometrical attenuation factor to express the attenuation on the microfacet surface that occurs as a partial shield of the light incidence and reflection ray, comprising;
a first means for computing a reflectance term using an inner-product of a light-source incidence vector and a view vector;
a second means for computing a distribution function by multiplying a half-vector between light-source incidence and the view vector with normal on-object surface;
a third means for selecting a maximum value from multiplied inner-products using the surface normal vector, the light-source incidence vector, the view vector and the half vector;
a fourth means for computing a geometrical attenuation factor from the reciprocal of said maximum value obtained by the third means; and
a means for obtaining a reflection component by multiplying a reflectance term, a distribution function factor and a geometrical attenuation factor. - [3] To solve the above one or more object, the rendering device of light reflection of the present invention comprises the circuit described in the above paragraphs [1] or [2].
- [4] The second embodiment of the present invention, for solving the above one or more objects, is directed to the circuit that computes a reflection intensity, for calculating a reflection intensity of a computer graphics image, defining the object surface by a set of polygons that have both or either microscopic grooves or partial areas of different reflectance, comprising:
- a means for obtaining a surface normal vector N at every polygon vertex;
a means for obtaining a light-source incidence L at every polygon vertex;
a means for obtaining a view vector V at every polygon vertex;
a means for obtaining a texture mapping address (U, V) at every polygon vertex;
a means for interpolating the values of the surface normal vector N, the light-source incidence vector L, the view vector V and the texture mapping address (U, V) on a polygon interior;
a means for reading a surface tangent vector Ti using the interpolated texture mapping address from memory that stores the surface tangent vector Ti that is addressed by an interpolated texture mapping address; and
a means for computing a light-reflection intensity at each interpolated point of a polygon interior using an interpolated value of surface tangent Ti, interpolated value of surface normal vector Ni, interpolated value of light-source incidence vector Li and an interpolated value of view vector Vi. - [5] Preferably, the second embodiment of the present invention is directed to the circuit that computes a light-reflection intensity as recited in the above paragraph [4], wherein the texture pattern is separately stored with three color components of red, green and blue in connection with the interpolated texture mapping address; and where
- blended reflection intensity is computed using the reflectance intensity computed by the circuit as recited in paragraph [1], and the texture pattern in connection with the three color-components of red, green and blue.
- [6] Preferably, the second embodiment of the present invention is directed to the circuit that computes light-reflection intensity as recited in the above paragraph [4], wherein cos θ is defined as an inner-product of said surface normal vector N and light-source incidence vector L,
- the means for computing a light-reflection intensity comprising:
a means for storing and reading a light-attenuation factor S(θ) addressed by θ or cos θ;
a means for storing and reading a specular reflectance ρs addressed by θ or cos θ;
a means for storing and reading a diffuse reflectance ρd or cos θρd, addressed by θ or cos θ;
a means for storing and reading a reflection distribution function (D(φ)) addressed by function (φ) that is derived from the interpolated light-source incidence vector Li, the interpolated view vector Vi and the interpolated surface tangent vector Ti;
a means for multiplying; and
a means for adding. - [7] Preferably, the second embodiment of the present invention is directed to the circuit that computes light-reflection intensity as recited in the above paragraph [6], wherein the value of the specular reflectance ρs stored and read by a means for storing and reading specular reflectance ρs is separately stored and read with separated wavelength (of original color) of red, green and blue.
- [8] Preferably, the second embodiment of the present invention is directed to the circuit that computes light-reflection intensity as recited in the above paragraph [6], wherein the value of the diffuse reflectance ρd or cos θ ρd stored and read by a means for storing and reading a diffuse reflectance ρd or cos θ ρd addressed by θ or cos θ are separately stored and read by separated wavelength (of original color) of red, green and blue.
- [9] Preferably, the second embodiment of the present invention is directed to the circuit that computes a light-reflection intensity as recited in the above paragraph [6], wherein the function (φ) that relates to the interpolated light-source incidence vector Li, the interpolated view vector Vi and the interpolated surface tangent vector Ti fulfill the following equation:
-
φ=π/2−cos−1(T·H) - where Hi is a half-vector of interpolated light-source incidence Li and view vector Vi, and T·H is an inner-product of Hi and Ti.
- [10] Preferably, the second embodiment of the present invention is directed to the circuit that computes light-reflection intensity as recited in the above paragraph [4], wherein a reflection intensity Ip is computed with the following equation:
-
Ip=cos θρd+ρsS(θ)D(φ) - where Ip is a reflection intensity, S(θ) is light attenuation factor, ρs is specular reflectance, ρd is diffuse reflectance and D(φ) is a reflection distribution function.
- [11] The image rendering device of the present invention for solving the above one or more objects, is directed to an image rendering device that comprises the circuit described any one of the above paragraphs [4]-[10].
- [12] The second embodiment of the present invention, for solving the above one or more objects, is directed to a compound anisotropic circuit, relating a computer graphics circuit for expressing light reflectance on the object surface including microscopic grooves and various reflectance, defining the object surface by a set of polygons, defining a surface normal, a light-source incidence vector, a view vector and a texture mapping address at each polygon vertex, comprising:
- a means for defining a surface tangent vector that indicates the direction of the groove at every interior point, storing the surface tangent of two-dimensional array into memory,
a means for interpolating the surface normal vector, the light-source incidence vector, the view vector and the texture mapping address, reading the surface tangent from the memory assigned with texture mapping address, and computing a light reflection intensity by using the surface tangent vector, interpolated surface tangent vector, interpolated light-source incidence vector and interpolated view vector. - [13] Preferably, the second embodiment of the present invention is directed to a compound anisotropic circuit as recited in the above paragraph [12], wherein a light intensity of interpolated points are determined using:
- a means for reading four or more surface tangents centering around texture mapping address points from memory circuit, filtering the surface tangents and determining the filtered surface vector as a required surface tangent vector at the mapping address point;
a means for calculating an inner-product of half-vector, which is defined by the view vector and the light-source incidence, and a surface normal vector, and implementing a light reflection distribution function table addressed by the inner-product of the half-vector and the surface normal vector; and
a means for implementing a light attenuation function table addressed by the angle between the half vector and the surface normal vector. - [14] Preferably, the second embodiment of the present invention is directed to a compound anisotropic circuit as recited in the above paragraph [12], wherein further comprising;
- a means for implementing a reflectance table to store the reflectance at wavelengths of red, green and blue, and deriving a read address for the reflectance table from the surface normal, the light-source incidence vector and the view vector;
a means for storing two or more sets of reflectance in the reflectance table in correspondence with the number of reflectance defined on a single polygon surface, further storing a reflectance selection bit in the memory circuit to select said reflectance from reflectance table during interpolation, and defining the selection-bit per point of polygon interior in a two-dimensional pattern; and
a means for reading the reflectance selection bit from the memory circuit using interpolated texture mapping address of paragraph [12], and selecting a proper reflectance using both reflectance selection-bit and the read address of the reflectance table. - The surface normal vector N is a unit vector defined at each polygon surface regarding object with a set of polygons. The light-source incidence vector L is a unit vector of light-ray which directs to the polygon vertex from light-source. The view vector V is a unit vector having a direction from eye-point to each polygon vertex.
- The circuit of the first embodiment of the present enables computation of a specular reflection component in small scaled circuit with high precision because the reciprocal of a trigonometric function allows a reduction of the number of computation and to carry out the processing at a final stage.
- The circuit of the second embodiment of the present invention allows the circuit (appropriate for renderer in computer graphics) to render the surface of anisotropic reflection property with a light workload.
- The circuit of the second embodiment of the present invention further can allows the circuit (appropriate for renderer in computer graphics) to render both surfaces of anisotropic reflection and multiple reflectance.
- The present invention can provide the image rendering devices comprising the above circuits.
-
FIG. 1 is a block diagram of the circuit relating to the first embodiment of the present invention. -
FIG. 2 is a block diagram of the circuit that computes light-reflection intensity relating to the second embodiment of the present invention. -
FIG. 3 is a block diagram of the circuit relating example 1. -
FIG. 4 is a block diagram of the circuit relating example 2. -
FIG. 5 is a block diagram of the circuit published in Japanese laid open patent No. 2003-30683 - The first embodiment of the present invention is directed to a circuit to compute a light-reflection for a rough surface object in computer graphics systems. The first embodiment specifies the circuit to structure specular reflection component modified by the formula from Cook-Torrance representation. Cook-Torrance representation for specular reflection is given by the following equation (6):
-
- where N is a surface normal vector, L is a light-source incidence vector, V is a view (unit) vector, H is a half-vector between light-source incidence vector L and view vector V, Fλ(V, L) is a reflectance term represented by wave length on the basis of a Fresnel function, D(V, L) is a light reflection distribution function defined by Beckman's function, and G(V, L) is a geometrical attenuation factor for self-shadow on a microfacet surface. This invention defines inner-products of vectors as follows:
-
cos θ=N·L (7) -
cos γ=N·V (8) -
cos φ=V·H (9) -
cos β=N·H (10) - Substituting the equation (7)-(10) to the equation (6), a light-reflection Ispec is obtained as shown in equation (11).
-
- The first embodiment of the present invention is explained with reference to
FIG. 1 .FIG. 1 shows a block diagram of a circuit for the first embodiment of the present invention. As shown inFIG. 1 , the circuit of the first embodiment of the present invention is thecircuit 1 to compute a specular reflection component on rough surface, comprising: - a
means 2 for storing reflectance;
ameans 3 for storing a reflection distribution term;
ameans 4 for obtaining a reflectance term (Fλ(φ)), which is one of the specular reflection components;
ameans 5 for obtaining a distribution function (D′(β)) which is one of the specular reflection components;
ameans 6 for obtaining a geometrical attenuation factor (G′(β,θ,γ,φ)) which is one of the specular reflection components; and
a means for obtaining a reflection intensity using the terms of reflectance (Fλ(φ)), the reflection distribution function (D′(β)) and the geometrical attenuation factor (G′(β,θ,γ,φ)). - Comprising the above means, the circuit of the first embodiment of the present invention can obtain the information of equation (11) relating to specular reflection component.
- The
means 2 for storing a reflectance term stores reflectance of an object as a function of φ or cos φ. The reflectance (Fλ(φ)) denotes the ratio of reflection to incidence of light. A memory table is used to store the reflectance, which is addressed by φ or cos φ. The reflectance for rendering an object may be obtained by an actual measurement or a theoretical value and shall be stored with wavelengths at red, green and blue. - The
means 3 for storing a distribution function stores the distribution as a function of β or cos β. The distribution function is specified by the surface slope at a microfacet and stores the distribution of light reflection (D′(β)). A (D′ (cos β)) is definable by multiplying D (cos β) by cos β, which D (cos β) is given by, e.g., Gaussian function, Beckman's function or cosnβ. The memory to store D′(cos β) addressed by cos β is an example of this invention. - The
means 4 for obtaining reflectance specifies the scheme to obtain the reflectance term (Fλ(φ)) in a specular reflection component by storing the reflectance term (Fλ(φ)) into memory and reading it from said memory addressed by cos φ. - The
means 5 for obtaining a distribution function specifies the scheme to obtain the distribution function D′ (β) in a specular reflection component by storing the distribution function D′ (β) into memory and reading it from said memory addressed by cos β. - The
means 6 for obtaining a geometrical attenuation factor specifies the scheme to obtain the geometrical attenuation factor G′(β,θ,γ,φ) by computing the reciprocal of G′ and selecting a maximum value among the reciprocal terms; 0.5 cos θ cos φ, 0.5 cos φ cos γ and cos θ cos β cos γ. A trigonometric function can be computed with relatively high accuracy. This invention can obtain the specular reflection factor in a small scaled circuit and with high accuracy due to the use of a reciprocal after computing trigonometric function. A memory table shall be used for obtaining the reciprocal. - The
means 7 specifies the specular reflection component with the reflectance term (Fλ(φ)), the distribution function D′(β) and the geometrical attenuation factor G′(β,θ,γ,φ). The specular reflection component is obtained by multiplying (Fλ(φ)), D′(β) and G′(β,θ,γ,φ). - The operations for the circuit of the first embodiment of the present invention are described as follows:
- the
means 4 for obtaining reflectance specifies the operation to obtain the reflectance term Fλ(φ) in a specular reflection component by means of storing the reflectance term addressed by φ or cos φ;
themeans 5 for obtaining distribution function specifies the operation to obtain the distribution function D′(β), one of specular reflection components, by means of storing a distribution function addressed by β or cos β;
themeans 6 for obtaining a geometrical attenuation factor specifies the operation to obtain the geometrical attenuation factor G′(β,θ,γ,φ), one of the specular reflection components, from the reciprocal of max [0.5 cos θ cos φ, 0.5 cos φ cos γ, cos θ cos β cos γ] after obtaining the maximum value of 0.5 cos θ cos φ, 0.5 cos φ cos γ and cos θ cos β cos γ; and
themeans 7 for obtaining a specular reflection component specifies the operation to obtain the specular reflection component Ispec from the values of reflectance term (Fλ(φ)), the distribution function D′ (β) and the geometrical attenuation factor G′(β,θ,γ,φ). -
FIG. 2 shows the reflection intensity circuit of the second embodiment of the present invention. As shown inFIG. 2 , the reflection intensity circuit of the present invention calculates a reflection intensity of a computer graphics image, defining the object surface by a set of polygons that have both or either microscopic grooves or partial areas of different reflectance, and comprises: - a means 11 for obtaining a surface normal vector N, a light-source incidence L, a view vector V, and a texture mapping address (U, V) at every polygon vertex;
a means 12 for interpolating the values of the surface normal vector N, the light-source incidence vector L, the view vector V and the texture mapping address (U, V) on polygon interior;
a means 13 for reading a surface tangent vector Ti using the interpolated texture mapping address, from memory that stores the surface tangent vector Ti that is addressed by interpolated texture mapping address; and
a means 14 for computing a light-reflection intensity at each interpolated point of a polygon interior using an interpolated value of surface tangent Ti, an interpolated value of surface normal vector Ni, an interpolated value of light-source incidence vector Li and an interpolated value of view vector Vi. - The reflectance intensity circuit of this embodiment, as shown in
FIG. 2 , preferably further comprises ameans 15 for storing a texture pattern in connection with an interpolated texture mapping address (Ui,Vi), and for reading the texture pattern using the interpolated texture mapping address (Ui, Vi). - The means 11 for obtaining a surface normal vector N, a light-source incidence L, a view vector V, and a texture mapping address (U, V) at every polygon vertex, specifies to input the surface normal vector N at each polygon vertex, the light-source incidence vector L at each polygon vertex, the view vector V at each polygon vertex and a texture mapping address (U, V) at each polygon vertex. These values may be defined previously in relation with the objects, and then the defined values are inputted.
- The means 12 for interpolation specifies the polygonal interpolation for the surface normal vector N, the light-source incidence vector L, the view vector V and the texture mapping address (U, V), which are defined at each polygon vertex. The conventional interpolation schemes are applicable. One example of the means for interpolation consists of polygon-outline and span processing. The polygon-outline interpolation is carried out between polygon vertices, while the span interpolation is carried out between the horizontal two points obtained by the polygon-outline interpolation.
- The means 13 for storing a surface tangent vector specifies storing and reading of a surface tangent Ti using an interpolated texture mapping address. The surface tangent designates the direction of minute grooves on the surface for the vector.
- In the means for storing a surface tangent vector, four or more surface tangents are read centering around the interpolated texture mapping address (Ui, Vi) and produce a filtered surface tangent. The preferable numbers of surface tangents to read are four or 16. The surface tangent T is stored in the format of a three-dimensional vector or polar coordinate angle. The filtering reduces the alias caused by a single sampling at a mapping address due to the computation error of interpolation between positions of the polygon vertex and the mapping address (U, V).
- The filtering of this invention allows general schemes as used for texture pattern colors. The linear or bi-linear filtering uses vectors sampled in 2×2 areas centering around a mapping address, while the cubic filtering uses 4×4 areas. A vector-normalization shall be applied after said filtering.
- The means 14 for computing a reflection intensity specifies a processing to compute a reflection-intensity at every interpolated point of a polygon interior using an interpolated surface tangent vector Ti, an interpolated surface normal vector Ni, an interpolated light-source incidence vector Li and an interpolated view vector Vi.
- The means 14 for computing a reflection intensity, preferably comprises:
- a means 16 for storing and reading a light-attenuation factor S(θ) addressed by θ or cos θ, wherein cos θ is a inner-product of the surface normal vector N and the light-source incidence vector L;
a means 18 for storing and reading a specular reflectance ρs addressed by θ or cos θ;
a means 18 for storing and reading a diffuse reflectance ρd or cos θ ρd, addressed by θ or cos θ;
a means 17 for storing and reading a reflection distribution function (D(φ)) addressed by function (φ) that is derived from the interpolated light-source incidence vector Li, the interpolated view vector Vi and the interpolated surface tangent vector Ti;
a means for multiplying which is not shown inFIG. 2 ; and
a means for adding which is not shown inFIG. 2 . - The diffuse reflectance term ρd, specular reflectance term ρs, intensity attenuation factor S(θ, γ) and distribution function D(φ) are preferably stored into RAM tables. The function φ is preferably stored into ROM or RAM. Preferably, the RAM is refreshed if the value m of function D(φ) varies. The S(θ,γ) is approximately replaceable to S(φ).
- The circuit of this embodiment reads the interpolated values of the diffuse reflectance term ρd, the specular reflectance term ρs, the attenuation factor S(θ), and the distribution function D(φ) at every interpolated point. Thus, the reflectance is read in connection with the interpolated values, which enables the circuit to render the reflection varied per polygon-interior point.
- The preferred embodiment of the circuit of the second embodiment of the present invention multiplies and adds each of the interpolated diffuse reflectance term ρd, the specular reflectance term ρs, the intensity attenuation factor S(θ), and the distribution function D(φ). Reflection intensity (for anisotropic reflection) Ip is preferably given by the following equation;
-
Ip=ρd(N·L)+ρsS(θ)D(φ). - The specular and diffuse reflectance terms stored and read by the
means 14 shall be stored and read in the form of wave-length at red, green and blue respectively, thus, said Ip represents the intensity of every red, green and blue component. - The function φ derived from light-source incidence Li, view vector Vi and surface tangent Ti shall be defined by the following equation using the half-vector of light-source incidence Li and view vector Vi and the inner-product T·H of surface tangent Ti and said half-vector Hi:
-
φ=π/2−cos−1(T·H). - The means 15 for reading a texture pattern is a means for storing the texture pattern addressed by interpolated texture mapping address (Ui, Vi), and a means for reading the texture pattern addressed by interpolated texture mapping address (Ui, Vi). This embodiment of the present invention, the texture pattern is read with a reference of an interpolated texture mapping address (Ui, Vi). In this embodiment of the present invention specifies that the diffuse reflectance term ρd (or cos θρd), the specular reflectance term ρs, the attenuation factor S(θ), the distribution function D(φ) as well as the texture pattern are read by the interpolated texture mapping address (Ui, Vi). Therefore, the circuit of this embodiment can provide a circuit that renders a realistic image with a relatively small scaled hardware workload.
- The texture pattern shall store and read each color component of red, green and blue separately and address each by interpolated texture mapping address (Ui, Vi).
- The computation for anisotropic reflection in the embodiment of this invention is shown in the following equation;
-
- where Ip, ρd, ρs, S(θ, γ), H and m in the equation (12) denote reflection intensity, a diffuse reflectance term, a specular reflectance term, an attenuation factor, a half-vector of light-source incidence vector L and view vector V, and a surface roughness, respectively. The surface normal N, light-source incidence vector L and view vector V defined at each polygon vertex are interpolated at every interior point. A half-vector H is derived by light-source incidence and view vector of each interpolated point. The surface tangent vector T is read from the memory by the texture mapping address. The surface tangent vector T is defined with either vector components of three-dimension or polar coordinate.
- With this background, an alias, or a jaggy, might happen due to the computation error between mapping address (U, V) and coordinate of polygon vertex. To reduce the alias, the filtering shall be applied, which is often used for the texture pattern colors. A linear or bi-linear filtering uses the vectors in 2×2 areas centering around the mapping address, and a cubic filtering uses the vectors in a 4×4 area. The second embodiment applies to the surface tangent a vector-normalization after filtering.
- An empirical model generally defines the reflectance ρd and ρs constant, which are available for objects with uniformly distributed reflectance. However, the interpolated points might have multiple reflectances in the case that the object is composed of different materials. The reflectance is a unique characteristic of material and alternates according to the wave-length and light-source incidence to the surface. The second embodiment stores the reflectance ρd and ρs into a RAM table in advance. Because the reflectance depends on the light-source incidence, the inner-product (N·L) of surface normal N and light-source incidence L is used for the address for the RAM table to read. Equation (13) shows the above relation.
-
Ip=ρd(λr,g,b,θ)·(N·L)+ρs(λr,g,b,θ)·S(θ,γ)·D(φ) (13) - where ρd(λr,g,b,θ) and ρs(λr,g,b,θ) are the reflectance as a function of angle θ between surface normal N and light-source incidence L, and wave-length at red, green and blue. The second embodiment of this invention can replace θ to β which is obtained by inner-product (N·H) of surface normal N and half-vector H as shown in equation (14).
-
cos β=N·H=N·[(L+V)/2|L+V|] (3) - In the case of distributing multiple reflectances on materials and storing a single set of reflectance in said RAM table, the table content has to be swapped for every material during interpolation. This swap-processing is not practical considering the time-cost of loading. The second embodiment of the present invention stores the necessary numbers of reflectance into a RAM table in advance. The bit-length to select appropriate reflectance from the table is n if the RAM table can store 2n sets of reflection. The N is distributed in a two-dimensional array which is the same as the texture pattern. The N bit is attached to the texture pattern color bit. Thus, this invention can select the appropriate reflectance of material using n-bit for upper bit-field (lower bit-field is said θ) of the RAM table address. This reflectance denotes ρd(λr,g,b,θ) and ρs(λr,g,b,θ) of equation (9).
- As described above, the second embodiment of the present invention specifies the means to obtain the reflection intensity on the surface which has grooves and multiple reflectances in a single polygon interior, defining the surface tangent per pixel, which has the same distribution as the texture pattern, reading and selecting the unique object-reflectance per pixel with the selection bit which is memorized in advance.
- The example 1 of the present invention is explained with reference to
FIG. 3 .FIG. 3 shows a block diagram of example 1. InFIG. 3 , 21-25 denotes multipliers, 26 denotes a subtractor, 27 denotes a multiplexer, 28 denotes a D′(cos β) table, 29 denotes a Fλ(cos φ) table, 30 denotes a ½ shifter, 31 denotes a subtractor, 32 denotes a multiplexer, 33 and 34 denote multipliers, 35 denotes a reciprocal table and 36 denotes a multiplier. The specular reflection component of this invention is represented by the equation (11). -
- Fλ(cos φ) table 29 stores the reflectance of each color component of red, green and blue. The reflectance term Fλ(φ) is, for example, stored in the table, using the measurement values sampling at every color component. Fλ(φ) is read by cos φ. Thus, Fλ(cos φ) table 29 stores the value of Fλ(cos φ) which is a modified value of the reflectance.
- D′(cos β) table 28 stores the distribution function, which is practically defined by, e.g., a Gaussian function, a Beckman function, cosnβ, or D′(cos β) which is a multiplied value of these values and cos β. D′(cos β) table is read by cos β. The reciprocal table 35 stores the reciprocal, which ranges from 0 to 1. As for the reciprocal table 35, RAM as well as ROM (read only memory) is used.
- As shown in
FIG. 3 , the circuit receives the values of cos θ, cos φ, cos γ and cos β. The diffuse reflection coefficient K1 may be applied in case of computing diffuse reflection component Idiff. - Cos θ and cos β are applied to
multiplier 22. Themultiplier 22 outputs the result of cos θ cos β tomultiplier 25. Cos θ and cos φ are applied tomultiplier 23. Themultiplier 23 outputs the result of cos θ cos φ tosubtractor 26 andmultiplexer 27. - Cos φ and cos γ are applied to
multiplier 24. The result cos φ cos γ is applied tosubtractor 26 andmultiplexer 27. The cos θ cos β and cos γ are applied tomultiplier 25 which results in cos θ cos β cos γ. The cos θ cos β cos γ is applied tosubtractor 31 andmultiplexer 32. - The
subtractor 26 subtracts cos θ cos φ from cos φ cos γ. The result is applied to themultiplexer 27 in order to choose the larger value of cos θ cos φ or cos φ cos γ. Max[cos θ cos φ, cos φ cos γ] is applied to ½shifter 30 in order to multiply 0.5 by max[cos θ cos φ, cos φ cos γ]. The value of 0.5 max[cos θ cos φ, cos φ cos γ] is applied to thesubtractor 31 and themultiplexer 32. - The
subtractor 31 subtracts 0.5 max[cos θ cos φ, cos φ cos γ] from cos θ cos β cos γ, and the result is applied tomultiplexer 32. Themultiplexer 32 selects a larger value from either 0.5 max[cos θ cos φ, cos φ cos γ] or cos θ cos φ cos γ. Themultiplexer 32 outputs the selected value to the reciprocal table 35 which provides the reciprocal of max [cos θ cos φ, cos φ cos γ, cos θ cos β cos γ]. This reciprocal value denotes the G′(β,θ,γ,φ) of equation (11). - Information on cos β is applied to D′ (cos β) table 28. The cos β addresses D′ (cos β) table 28 which outputs D′(β) to the
multiplier 33. The cos φ is applied to Fλ(cos φ) table 29. The Fλ(cos φ) table 29 reads Fλ(φ) of each color component (red, green and blue) using cos φ as an address, and outputs every Fλ(φ) value to themultipliers - The
multiplier 33 multiplies D′ (β) with Fλ(φ) and outputs the result D′ (β) Fλ(φ) tomultiplier 36. Themultiplier 36 multiplies Fλ(φ)D′ (β) with G′ (β,θ,γ,φ) and outputs Fλ(φ)D′ (β)G′ (β,θ,γ,φ) which denotes the specular reflection component Ispec of equation (11). As per the above descriptions, this invention obtains the specular reflection component Ispec with higher accuracy than conventional technologies due to the use of a reciprocal table which allows low accuracy at a final stage of processing. - A diffuse reflection coefficient K1 and cos θ are applied to
multiplier 21. Themultiplier 21 multiplies K1 with cos θ, obtains K1cos θ, and outputs K1cos θ tomultiplier 34. Themultiplier 34 multiplies the K1cos θ with Fλ(φ) and obtains Fλ(φ) K1cos θ. Thus the circuit of this example can obtain the diffuse reflection component Idiff. - The example 2 of the present invention is explained with reference to
FIG. 4 .FIG. 4 shows a block diagram of example 2. As shown inFIG. 4 , a surface normal vector N, a light-source incidence vector L, a view vector V and a texture mapping address (U, V) defined at every polygon vertex are applied the polygon-outline interpolator 71. Thecircuit 71 interpolates the variables along to polygon outline and outputs the interpolated variables to a circuit of span-interpolator 72. The span-interpolator 72 interpolates the variables horizontally between right and left edges on the interpolated outlines. The interpolation in the whole area is, thus, carried out by spanning a horizontal line from bottom to top of polygon. Here, the surface normal, the light-source incidence, the view vector and the mapping address at point i are assigned to Ni, Li, Vi and (Ui, Vi) respectively. - The surface normal vector Ni and light-source incidence vector Li are applied to inner-
product circuit 73. The inner-product circuit 73 outputs an inner-product value cos θ using the surface normal vector Ni and the light-source incidence vector Li. The cos θ is obtainable as an inner-product of Ni and Li. - The light-source incidence vector Li and view vector Vi are applied to a half-
vector circuit 74. The half-vector circuit 74 computes a half-vector value Hi of the light-source incidence vector Li and view vector Vi. The half-vector is defined by the following equation. -
- The texture mapping address (Ui, Vi) is applied to surface tangent table 75, reflectance selection table 76 and texture pattern table 77.
- The surface tangent table 75 stores the surface tangent vector T and is addressed by the texture mapping address (Ui, Vi). Four or more surface tangents are read from the table 75 centering around (Ui, Vi) the texture mapping address. The table 75 is implemented by a RAM and the like.
- The surface tangent vector T is applied to filter 78 which carries out the filtering and outputs a filtered value Ti. A Sinc, Gaussian or tri-linear scheme is available for this filtering.
- The Ti and half-vector Hi are applied to inner-
product circuit 79. The inner-product circuit 79 produces an inner-product value of surface tangent Ti and half-vector Hi. The value is applied to distribution function D(φ) table 81 as the address. - The inner-product value (TH) is converted by the following equation (a circuit for equation is not illustrated). In this case, the φ is to be an address for the distribution function D(φ) table 81.
-
φ=π/2−cos−1(T·H) - This example assumes that the slope m of rough surface is distributed uniformly. This enables TH or φ to be an address for the distribution function D(φ). This invention uses the distribution function D(φ) as following equation.
-
D(φ)=exp {−(tan φ/m)2/4 m2 cos4φ} - A cos θ output from the inner-
product circuit 73 is applied to attenuation function S(θ) table 80 and reflectance ρ(θ) table 82. A half-vector Hi from thecircuit 74 and surface normal N are used to carry out the inner-product at the inner-product circuit 73. The output of thecircuit 73 replace cos θ as the address for the attenuation function table 80 and the reflectance table 82. - The attenuation function table 80 stores attenuation function S(θ,γ) addressed by cos θ or θ. This invention uses cos θ for the address of attenuation function table 80 and outputs an attenuation value S(θ,γ) from the table. This invention allows an approximate value for the attenuation function, so that the γ is not necessary to be a variable.
- The table 81 of distribution function D(φ) stores the D(φ). This invention reads the D(φ) addressing by φ. The reflectance selection table 76 stores the selection values of reflectance uniquely defined for objects addressed by the texture mapping address (Ui, Vi). The selection value from the table 76 is applied to the reflectance table 82 as an address. As per the above descriptions, the reflectance per pixel that varies every object and depends on the angle between light-source incidence and surface normal is obtained.
- The reflectance table 82 stores diffuse ρd(λ,θ) and specular ρs(λ,θ) reflectance at wavelengths of red, green and blue. Thus, the reflectance table stores three values separately according to the three color components. This invention stores cos θρd(λ,θ) in the reflectance table 82 instead of ρd(λ,θ). The reflectance table 82 outputs ρs(λ,θ) to
multiplier - The outputs from the tables of attenuation function S(θ) 80 and distribution function D(φ) 81 are applied to
multiplier 84 a. The result S(θ)D(φ) and the output (ρrs, ρgs, ρbs) from the reflectance table 84 b are applied tomultiplier 84 b. The result ρs S(θ)D(φ) is further applied to adder 85. - The
adder 85 receives the ρs S(θ)D(φ) and cos θρd. Theadder 85 outputs cos θρd+ρs S(θ)D(φ), which is a reflection intensity Ip. - The texture pattern table 77 stores three color components of red, green and blue. The table 77 uses RAM addressing by (Ui, Vi) and outputs the colors of red, green and blue to filter 83, which has the same processing as the
filter 78. - The color components from the
filter 83 and diffuse reflectance cos θρd(λ,θ) from reflectance table 82 are applied tomultiplier 84 c, and the output is added with specular reflection component inadder 85. As processed above, the Ip with texture pattern is obtained at every interpolated point. - The first embodiment of this invention is available for the rendering circuit of computer graphics, further available for the circuit to render the light-reflection on a rough surface and applicable for the computer graphics LSI with small scaled hardware, further applicable for computer graphics systems, e.g., simulators and gaming machines.
- The second embodiment of this invention is related to the circuit and device to compute an anisotropic reflection and to render an image which has an anisotropic reflectivity. The second embodiment is available for a real-time visualization for a virtual reality system with high realism by embedding the circuit within a LSI.
Claims (4)
1. A circuit to compute a reflection intensity on rough surface, defining:
surface normal vector as N, light-source incidence vector as L, view direction vector as V, half-vector between L and V as H, N·L=cos θ, N·V=cos γ, V·H=cos φ, and N·H=cos β, comprising:
a means for storing a reflectance as a function of φ or cos φ;
a means for storing a reflection distribution term as a function of β or cos β;
a means for obtaining a reflectance term (Fλ(φ)) from the means for storing reflectance using φ or cos φ as an index;
a means for obtaining a distribution function (D′(β)) from the means for storing a reflection distribution term using β or cos β as an index;
a means for obtaining the value of max[0.5 cos θ cos φ, 0.5 cos φ cos γ, cos θ cos β cos γ], which is a maximum value among 0.5 cos θ cos φ, 0.5 cos φ cos γ and cos θ cos β cos γ;
a means for obtaining a geometrical attenuation factor (G′(β,θ,γ,φ)) of the reflected component by computing a reciprocal of the max[0.5 cos θ cos φ, 0.5 cos φ cos γ, cos θ cos β cos γ]; and
a means for obtaining a reflection intensity using the terms of reflectance (Fλ(φ)), reflection distribution function (D′(β)) and geometrical attenuation factor (G′(β,θ,γ,φ)).
2. A circuit that defines the intensity of reflectance on a rough surface using reflectance, a light reflection distribution function and a light attenuation factor, as a means for obtaining a reflectance component of the reflectance using a reflectance term expressed by the intensity ratio of light incidence and reflection, the distribution function term on the surface of microfacet orientation that is a set of minute surfaces of an object, and a geometrical attenuation factor to express the attenuation on microfacet surfaces that occur as a partial shield of the light incidence and reflection ray, comprising;
a first means for computing a reflectance term using an inner-product of light-source incidence vector and view vector;
a second means for computing a distribution function by multiplying a half-vector between light-source incidence and a view vector with normal on-object surface;
a third means for selecting a maximum value from multiplied inner-products using surface normal vector, light-source incidence vector, view vector and half vector;
a fourth means for computing a geometrical attenuation factor from reciprocal of said maximum value obtained by the third means; and
a means for obtaining a reflection component by multiplying reflectance term, distribution function factor and geometrical attenuation factor.
3. A rendering device of light reflection comprising the circuit described in claim 1 .
4. A rendering device of light reflection comprising the circuit described in claim 2 .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/568,030 US20100020081A1 (en) | 2003-03-06 | 2009-09-28 | Light reflection intensity calculation circuit |
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003-107095 | 2003-03-06 | ||
JP2003107095 | 2003-03-06 | ||
JP2003-200783 | 2003-06-18 | ||
JP2003200783 | 2003-06-18 | ||
PCT/JP2004/002792 WO2004079663A1 (en) | 2003-03-06 | 2004-03-05 | Light reflection intensity calculation circuit |
US10/547,678 US7616802B2 (en) | 2003-03-06 | 2004-03-05 | Light reflection intensity calculation circuit |
US12/568,030 US20100020081A1 (en) | 2003-03-06 | 2009-09-28 | Light reflection intensity calculation circuit |
Related Parent Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/547,678 Division US7616802B2 (en) | 2003-03-06 | 2004-03-05 | Light reflection intensity calculation circuit |
PCT/JP2004/002792 Division WO2004079663A1 (en) | 2003-03-06 | 2004-03-05 | Light reflection intensity calculation circuit |
Publications (1)
Publication Number | Publication Date |
---|---|
US20100020081A1 true US20100020081A1 (en) | 2010-01-28 |
Family
ID=32964962
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/547,678 Expired - Fee Related US7616802B2 (en) | 2003-03-06 | 2004-03-05 | Light reflection intensity calculation circuit |
US12/568,030 Abandoned US20100020081A1 (en) | 2003-03-06 | 2009-09-28 | Light reflection intensity calculation circuit |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/547,678 Expired - Fee Related US7616802B2 (en) | 2003-03-06 | 2004-03-05 | Light reflection intensity calculation circuit |
Country Status (4)
Country | Link |
---|---|
US (2) | US7616802B2 (en) |
EP (1) | EP1612740A1 (en) |
JP (2) | JP4456070B2 (en) |
WO (1) | WO2004079663A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090213120A1 (en) * | 2005-04-25 | 2009-08-27 | X-Rite, Inc. | Method And System For Enhanced Formulation And Visualization Rendering |
US20140250403A1 (en) * | 2013-03-01 | 2014-09-04 | Hon Hai Precision Industry Co., Ltd. | Virtual keyboard interface system and electronic apparatus using same |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004040372B4 (en) * | 2004-08-20 | 2006-06-29 | Diehl Avionik Systeme Gmbh | Method and device for displaying a three-dimensional topography |
JP4761541B2 (en) * | 2006-04-20 | 2011-08-31 | 株式会社ディジタルメディアプロフェッショナル | Image generation device |
JP4777162B2 (en) * | 2006-06-28 | 2011-09-21 | パナソニック株式会社 | Image special effect device and image special effect method |
JP4777181B2 (en) * | 2006-08-01 | 2011-09-21 | パナソニック株式会社 | Image special effect device, image special effect method |
WO2008001515A1 (en) * | 2006-06-28 | 2008-01-03 | Panasonic Corporation | Special effect imaging device and special effect imaging method |
WO2012030815A2 (en) * | 2010-08-30 | 2012-03-08 | University Of Southern California | Single-shot photometric stereo by spectral multiplexing |
JP5851461B2 (en) * | 2013-08-30 | 2016-02-03 | 本田技研工業株式会社 | Design layer data creation device and method, and design simulation device |
KR102132388B1 (en) * | 2018-12-24 | 2020-07-09 | 서강대학교 산학협력단 | virtual object image processing method and system for mixed reality service |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5704024A (en) * | 1995-07-20 | 1997-12-30 | Silicon Graphics, Inc. | Method and an apparatus for generating reflection vectors which can be unnormalized and for using these reflection vectors to index locations on an environment map |
US20020130866A1 (en) * | 2000-09-29 | 2002-09-19 | Dave Stuttard | Graphics system |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63213079A (en) | 1987-02-28 | 1988-09-05 | Nippon Telegr & Teleph Corp <Ntt> | Picture producing device |
JPH0628492A (en) | 1992-07-09 | 1994-02-04 | Fujitsu Ltd | Writing processing method in computer graphics |
JP3612239B2 (en) | 1999-05-12 | 2005-01-19 | 大日本印刷株式会社 | Image generating apparatus and recording medium |
US6515674B1 (en) * | 2000-03-17 | 2003-02-04 | Hewlett-Packard Company | Apparatus for and of rendering 3d objects with parametric texture maps |
US6765573B2 (en) | 2000-10-26 | 2004-07-20 | Square Enix Co., Ltd. | Surface shading using stored texture map based on bidirectional reflectance distribution function |
JP2003030683A (en) | 2001-07-18 | 2003-01-31 | Tsuneo Ikedo | Rough surface light reflection circuit |
-
2004
- 2004-03-05 US US10/547,678 patent/US7616802B2/en not_active Expired - Fee Related
- 2004-03-05 EP EP04717754A patent/EP1612740A1/en not_active Withdrawn
- 2004-03-05 WO PCT/JP2004/002792 patent/WO2004079663A1/en not_active Application Discontinuation
- 2004-03-05 JP JP2005503115A patent/JP4456070B2/en not_active Expired - Lifetime
-
2009
- 2009-09-28 US US12/568,030 patent/US20100020081A1/en not_active Abandoned
-
2010
- 2010-01-08 JP JP2010003367A patent/JP4834773B2/en not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5704024A (en) * | 1995-07-20 | 1997-12-30 | Silicon Graphics, Inc. | Method and an apparatus for generating reflection vectors which can be unnormalized and for using these reflection vectors to index locations on an environment map |
US20020130866A1 (en) * | 2000-09-29 | 2002-09-19 | Dave Stuttard | Graphics system |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090213120A1 (en) * | 2005-04-25 | 2009-08-27 | X-Rite, Inc. | Method And System For Enhanced Formulation And Visualization Rendering |
US8345252B2 (en) * | 2005-04-25 | 2013-01-01 | X-Rite, Inc. | Method and system for enhanced formulation and visualization rendering |
US20140250403A1 (en) * | 2013-03-01 | 2014-09-04 | Hon Hai Precision Industry Co., Ltd. | Virtual keyboard interface system and electronic apparatus using same |
Also Published As
Publication number | Publication date |
---|---|
WO2004079663A1 (en) | 2004-09-16 |
EP1612740A1 (en) | 2006-01-04 |
JP4456070B2 (en) | 2010-04-28 |
JP2010079932A (en) | 2010-04-08 |
US7616802B2 (en) | 2009-11-10 |
JPWO2004079663A1 (en) | 2006-06-08 |
US20060136532A1 (en) | 2006-06-22 |
JP4834773B2 (en) | 2011-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20100020081A1 (en) | Light reflection intensity calculation circuit | |
US5704024A (en) | Method and an apparatus for generating reflection vectors which can be unnormalized and for using these reflection vectors to index locations on an environment map | |
US6624812B1 (en) | Method and apparatus for providing shading in a graphic display system | |
US5659671A (en) | Method and apparatus for shading graphical images in a data processing system | |
US6888544B2 (en) | Apparatus for and method of rendering 3D objects with parametric texture maps | |
US5224208A (en) | Gradient calculation for texture mapping | |
US5900881A (en) | Computer graphics circuit | |
US7006090B2 (en) | Method and computer program product for lighting a computer graphics image and a computer | |
US7432936B2 (en) | Texture data anti-aliasing method and apparatus | |
EP0447195B1 (en) | Pixel interpolation in perspective space | |
US6437781B1 (en) | Computer graphics system having per pixel fog blending | |
US6515674B1 (en) | Apparatus for and of rendering 3d objects with parametric texture maps | |
JPH0740171B2 (en) | Method for determining pixel color intensity in a computer image generator | |
US7158133B2 (en) | System and method for shadow rendering | |
US4899295A (en) | Video signal processing | |
US7071937B1 (en) | Dirt map method and apparatus for graphic display system | |
US5886703A (en) | Perspective correct texture mapping system and methods with intelligent subdivision | |
van Scheltinga et al. | Design of an on-chip reflectance map | |
Nishita et al. | A new radiosity approach using area sampling for parametric patches | |
JP2011138444A (en) | Thin film specular reflection circuit | |
Johnson | Computer synthesis of spectroradiometric images for color imaging systems analysis | |
Szirmay-Kalos et al. | Hardware implementation of Phong shading using spherical interpolation | |
Gelb et al. | Light-dependent texture mapping | |
Hoffman | Crafting physically motivated shading models for game development | |
JP2001188923A (en) | Gaseious body display circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |