METHOD AND APPARATUS FOR REAL-TIME RENDERING OF IMAGES OF SPECULAR SURFACES
20180225865 ยท 2018-08-09
Inventors
- Pascal LECOCQ (SAINT GREGOIRE, FR)
- Jean-Eudes MARVIE (BETTON, FR)
- Francois-Louis Tariolle (LIFFRE, FR)
Cpc classification
International classification
Abstract
For rendering a specular part of a surface illuminated by an area light source (A), a viewing reflection vector (R) associated with an image to be rendered at a shading point (x) is established. For each spherical edge U.sub.iU.sub.i+1 of a projected area consisting in a projection of the light source onto a unit sphere centered on the shading point, a local radiance is established by: establishing a normalized projection vector S of the viewing reflection vector onto a plane defined by edge U.sub.iU.sub.i+1 and the shading point determining if point S associated with vector S lies inside U.sub.iU.sub.i+1, and if so, performing a halfway transform of U.sub.i; S and U.sub.i+1 and an edge integral on U.sub.i; S and S, U.sub.i+1. An iteration is performed over all edges and the local radiance is summed, the surface being rendered accordingly.
Claims
1. A method for rendering of a specular part of a surface illuminated by at least one area light source, comprising: establishing a viewing reflection vector being a reflection of a viewing direction against said surface, associated with an image to be rendered at a shading point of said surface; for each spherical edge U.sub.iU.sub.i+1 of a projected area consisting in a projection of said at least one area light source towards said shading point onto a unit sphere centered on said shading point, said spherical edge U.sub.iU.sub.i+1 having a first vertex U.sub.i and a second vertex U.sub.i+1, establishing a local radiance by (a) establishing a normalized projection vector {right arrow over (S)} of the viewing reflection vector onto a plane defined by said spherical edge U.sub.iU.sub.i+1 and said shading point n, (b) determining if a single point S associated with said vector {right arrow over (S)} lies inside edge U.sub.iU.sub.i+1, and if so, (c) performing a halfway transform of U.sub.i, S and U.sub.i+1, the halfway transform of U.sub.i, S and U.sub.i+1 being given by adding the viewing direction to a light direction pointing respectively to said U.sub.i, S and U.sub.i+1 so as to obtain a resulting sum and by normalizing said resulting sum to a halfway vector, the halfway transform of U.sub.i, S and U.sub.i+1 being associated respectively with said halfway vector obtained from U.sub.i, S and U.sub.i+1, and (d) performing an edge integral on U.sub.i, S and S, U.sub.i+1 to establish radiance; iterating over all edges; summing the local radiance for all edges; and rendering said surface in accordance with the established radiance.
2. The method according to claim 1, wherein said method is a real-time rendering method.
3. The method according to claim 1, wherein said method is for rendering of a specular surface.
4. The method according to claim 1 wherein if S does not lie inside U.sub.iU.sub.i+1 then performing a halfway transform of U.sub.i and U.sub.i+1 and evaluating the edge integral on U.sub.i, U.sub.i+1 in place of performing a halfway transform of U.sub.i, S and S, U.sub.i+1 and of performing an edge integral on U.sub.i, S and S, U.sub.i+1.
5. The method according to claim 1 wherein the halfway transform yields a stationary inflection aligned with a viewing direction.
6. An apparatus for rendering of a specular part of a surface illuminated by at least one area light source, comprising a memory for storing data and program instructions; a graphical circuitry configured to (1) establish a viewing reflection vector being a reflection of a viewing direction against said surface, associated with an image to be rendered at a shading point (x) of said surface; (2) for each spherical edge U.sub.iU.sub.i+1 of a projected area consisting in a projection of said at least one area light source towards said shading point onto a unit sphere centered on said shading point, said spherical edge U.sub.iU.sub.i+1 having a first vertex U.sub.i and a second vertex U.sub.i+1, establish a local radiance by (a) establishing a normalized projection vector {right arrow over (S)} of the viewing reflection vector onto a plane defined by said spherical edge U.sub.iU.sub.i+1 and said shading point, (b) determine if a single point S associated with said vector {right arrow over (S)} lies inside edge U.sub.iU.sub.i+1, and if so, (c) perform a halfway transform of U.sub.i, S and U.sub.i+1, and (d) perform an edge integral on U.sub.i, S and S, U.sub.i+1 to establish radiance, the halfway transform of U.sub.i, S and U.sub.i+1 being given by adding the viewing direction to a light direction pointing respectively to said U.sub.i, S and U.sub.i+1 so as to obtain a resulting sum and by normalizing said resulting sum to a halfway vector, the halfway transform of U.sub.i, S and U.sub.i+1 being associated respectively with said halfway vector obtained from U.sub.i, S and U.sub.i+1; (3) iterate over all edges; (4) sum the local radiance for all edges; and (5) render said surface in accordance with the established radiance; a microprocessor for controlling the graphical circuitry; and a bus for interconnecting the memory, graphical circuitry and the microprocessor.
7. The apparatus according to claim 6, wherein said apparatus is an apparatus for real-time rendering.
8. The apparatus according to claim 6, wherein said apparatus is for rendering of a specular surface.
9. The apparatus according to claim 6 wherein if S does not lie inside U.sub.iU.sub.i+1, the graphical circuitry performs a halfway transform of U.sub.i and U.sub.i+1 and evaluates the edge integral U.sub.i, U.sub.i+1 in place of performing a halfway transform of U.sub.i, S and U.sub.i+1; and of performing an edge integral on U.sub.i, S and S, U.sub.i+1.
10. The apparatus according to claim 6 wherein the halfway transform yields a stationary inflection aligned with a viewing direction.
11. A non-transitory computer-readable medium having computer-executable instructions for a processor-based system such that when executed the processor-based system performs a method for rendering of a specular part of a surface illuminated by at least one area light source, the method comprising: establishing a viewing reflection vector being a reflection of a viewing direction against said surface, associated with an image to be rendered at a shading point of said surface; for each spherical edge U.sub.iU.sub.i+1 of a projected area consisting in a projection of said at least one area light source towards said shading point onto a unit sphere centered on said shading point, said spherical edge U.sub.iU.sub.i+1 having a first vertex U.sub.i and a second vertex U.sub.i+1, establishing a local radiance by (a) establishing a normalized projection vector {right arrow over (S)} of the viewing reflection vector onto a plane defined by said spherical edge U.sub.iU.sub.i+1 and said shading point, (b) determining if a single point S associated with said vector {right arrow over (S)} lies inside edge U.sub.iU.sub.i+1, and if so, (c) performing a halfway transform of U.sub.i, S and U.sub.i+1, the halfway transform of U.sub.i, S and U.sub.i+1 being given by adding the viewing direction to a light direction pointing respectively to said U.sub.i, S and U.sub.i+1 so as to obtain a resulting sum and by normalizing said resulting sum to a halfway vector, the halfway transform of U.sub.i, S and U.sub.i+1 being associated respectively with said halfway vector obtained from U.sub.i, S and U.sub.i+1, and (d) performing an edge integral on U.sub.i, S and S, U.sub.i+1 to establish radiance; iterating over all edges; summing the local radiance for all edges; and rendering said surface in accordance with the established radiance.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
DETAILED DESCRIPTION
[0027] As described in detail hereinafter, improved rendering of images having specular surfaces occurs by a technique according to the present principles that establishes radiance by the use of the contour integration, as described in the aforementioned Arvo paper and can make use of fast approximations, as taught notably in the EP Patent Application 3057067. Further, the rendering method makes use of the halfway transform to represent physically plausible specular surfaces. The rendering technique of the present principles considers specular surfaces described by a micro-facet model (Blinn-Phong) and polygonal area light sources.
[0028] To appreciate the rendering method of the present principles, refer to
[0029] One approach overcoming the constraint of the Phong model would be to apply the halfway transformation to the vertices on the area light only and then apply Arvo's formulation around the normal axis. Unfortunately, the half vector transformation is not affine, which can introduce distortions. Regularly sampling edge points to follow the distortion will reduce this problem, but this approach requires a high sampling count to yield acceptable results, which is time consuming.
[0030] To overcome the deficiencies of the prior art described above, the rendering technique of the present principles makes use of an edge splitting strategy to approximate microfacet specular radiance. To understand the edge splitting approach to establish radiance in accordance with the present principles, refer to
[0031]
The technique entails the following: [0032] 1. Compute the viewing reflection vector {right arrow over (R)}. [0033] 2. Iterate over light edges of an area light source A, as projected onto a hemisphere centered on x and oriented according to normal {right arrow over (N)}. [0034] 3. For each spherical edge U.sub.iU.sub.i+1, Consider the normalized projection vector {right arrow over (S)} of {right arrow over (R)} onto the plane defined by the spherical edge U.sub.iU.sub.i+1 and point x. [0035] 4. If point S associated with vector {right arrow over (S)} lies inside U.sub.iU.sub.i+1 consider S as a splitting point. [0036] a. perform the halfway transform of U.sub.i, S and U.sub.i+1 [0037] b. evaluate the edge integral on U.sub.i, S and S, U.sub.i+1 (as transformed) in accordance with the teachings of EP 3057067, and then add the results to the local radiance to approximate the microfacet specular radiance. [0038] 5. Otherwise, do not split. [0039] a. perform the halfway transform of U.sub.i and U.sub.i+1 [0040] b. evaluate the edge integral on U.sub.i, U.sub.i+1 (as transformed) using the teachings of EP 3057067, add the result to the local radiance to approximate the microfacet specular radiance. [0041] 6. Return the local radiance at iteration end
After approximating the microfacet specular radiance, rendering occurs.
[0042] A clear advantage of the above-described procedure is that the edge splitting is not systematic and the computational overhead is thus limited. In this regard, the parallel architecture present in modern GPUs (Graphic Processor Units) can advantageously serve to evaluate the specular area lighting for simultaneous pixels. The whole solution can be readily implemented in a fragment shader (e.g., GLSL, HLSL etc.) or any language with GPU parallel computing capabilities (e.g., Compute Shader, CUDA, OpenCL, etc.).
[0043] Establishing the radiance can occur as follows in accordance with the teachings of EP 3057067 summarized hereinafter. The reflectance properties of the lighted surface at a point M (noted x hereinabove), depending on the surface material, are represented by a BRDF function (bidirectional reflection distribution function) noted .sub.r (M, {right arrow over ()}.sub.l, {right arrow over ()}.sub.o) (with {right arrow over ()}.sub.l being a unit vector opposite to a lighting direction to the point M, and {right arrow over ()}.sub.o being a unit vector corresponding to a viewing direction towards an observer, thereby corresponding to vector {right arrow over (V)} above). As well known to a person skilled in the art, a BRDF function relates radiance incident at a point on a surface to radiance reflected from that point. The radiance L(M, {right arrow over ()}.sub.o) scattered at point M towards an observer (color perceived by the eye) is then defined by a hemispherical integral over the solid angle (A) sustained by the light source surface A:
L(M,{right arrow over ()}.sub.o)=.sub.(A)L.sub.A(M,{right arrow over ()}.sub.l).sub.r(M,{right arrow over ()}.sub.l,{right arrow over ()}.sub.o)({right arrow over ()}.sub.l,{right arrow over (v)})d.sub.i(1)
where d.sub.i represents a differential variation of the solid angle.
[0044] In EP 3057067, a Phong distribution model can define the BRDF function. However, in accordance with the present principles, the Blinn-Phong model can serve to define the BRDF function.
[0045] The following discussion considers only the specular component since that component remains most relevant to the glossy (or specular) part of the radiation reflected by the surface. In particular situations, the considered surface is itself glossy (or nearly specular), so that the radiation is identified with its glossy part for the computations. The glossy component of the representation accounts for the fact that the considered surface is not perfectly smooth, so that reflection of light does not obey Snell's law. Instead, the related reflected light has a distribution about a preferred direction of specular reflected light. The concentration of that distribution is expressed by the shininess coefficient n, also called Phong or specular-reflection exponent, which controls the glossiness.
[0046] By noting .sub.s a specular reflectivity, which provides a ratio of reflection of the specular term of incoming light, and supposing that this term is constant at point M (at least for a given color channel) as usually done in the Phong model (or in the Blinn-Phong model), two representations are notably relevant to the glossy part:
The first of those representations, corresponding to equation (2), is relevant to a one-axis moment Phong distribution model and is described notably by Robert R. Lewis in Making Shaders More Physically Plausible, in Fourth Eurographics Workshop on Rendering, pp. 47-62, 1994. The second representation, associated with equation (3), is relevant to a double-axis moment and is described notably by Eric P. Lafortune and Yves D. Willems in Using the Modified Phong Reflectance Model for Physically Based rendering, Technical Report RP-CW-197, 1994.
[0047] More generally, in variant implementations, other BRDF representations of the specular component besides the Phong distribution model can be used. This applies particularly to a radiation having a distribution behavior around an oriented axis, and controlled by a cosine function raised by a shininess coefficient n, the cosine being given by the angle between the oriented axis and a viewing direction.
[0048] Consider a light source surface A being polygonal and having m edges, the 2D surface integral of equation (1) can be expressed as a summation of a 1D contour integral around the edges. This is based on the Stokes theorem and on the developments by Arvo in the above-cited PhD thesis and article.
[0049] Accordingly, for each of the oriented m edges, such as U.sub.iU.sub.i+1, a unit vector {right arrow over (s)} can be defined, pointing from point M to a first vertex U.sub.i of edge U.sub.iU.sub.i+1, as well as a unit vector {right arrow over (t)}, orthogonal to vector {right arrow over (s)} and in the plane of the edge U.sub.iU.sub.i+1, so that ({right arrow over (s)}, {right arrow over (t)}) constitutes an orthonormal basis. This is used for defining for edge U.sub.iU.sub.i+1, the parameters (keeping in mind that {right arrow over (s)} and {right arrow over (t)} depend on the considered edge):
[0050] Further, an edge aperture i is defined as the angle opening corresponding to edge U.sub.iU.sub.i+1, as projected onto a hemisphere around point M and direction {right arrow over (r)}. Also, unit normal vectors {right arrow over (n)}.sub.j are defined as normal and external to the boundary of source surface A, i.e. to the edges and tangent to the hemisphere.
[0051] Following Arvo's developments cited above, the radiance L.sub.A (M,{right arrow over ()}.sub.l) of a light source at point M being represented as independent of direction {right arrow over ()}.sub.l (and noted L.sub.A(M) for sake of convenience)which amounts to considering it as constant over the light source, the radiance L(M,{right arrow over ()}.sub.o) is given for the first BRDF Phong representation associated with equation (2) by:
Following the harmonic addition theorem, the trigonometric expressions can be simplified as:
For sake of conciseness, a function (, c, n) and a parameter q are introduced so that:
Noting that the sum operator and integral can be inverted in formulae (8), and that geometric series are thereby obtained, the function G is worth:
By moving in the integration range, function G can thus be written:
G(x,c,,n)=.sub..sup.x-I(,c,n)d(10)
[0052] with the integrand:
[0053] The integrand function I is approximated as described below, thanks to dedicated peak-shape functions having known antiderivatives. In best implementations, integrand I can thereby be evaluated with high accuracy and subject to few parameterization operations. Parameter s is given by:
[0054] From the knowledge of s, normalized functions noted can be induced from the integrand function I, ranging between 0 and 1, Those are obtained by preliminarily shifting down the integrand function I for even n, and by dividing it by parameter s (scaling) for even and odd values of n. Another additional parameter is the half-width x.sub., for which the integrand function I is worth half of its maximum value s. The values of half-width x.sub., for even n and odd n are given by the positive value of for which the integrand function I is worth half its maximum value s.
[0055] The equation I (,c,n)=s/2 having no analytical solution, the value of parameter x.sub., is approximated in the present exemplary implementation by formulae giving approximating values as follows:
[0056] The relevance of that approximation proves to rely on the ellipse shape of the half width parameter x.sub. when n tends to infinity, with x.sub. converging to respectively /3 and /4 n odd and even when c tends to 0, and x.sub. converging to 0 when c tends to 1 and n to infinity.
[0057] The approximation described above is quite accurate for high values of n exponent and average for low values. Advantageously, however, a low precision estimation is considered as sufficient for the latter, while a high level of accuracy is applied for the former. Indeed, for low values of n, smooth peak curves with large width are obtained, so that small variations of x.sub. correspond to small variations of integrand function I. By contrast, for high values of n, the slope becomes very high and a small variation of x.sub. can possibly correspond to a huge variation of integrand function I.
[0058] Those computed parameters c, s and x.sub. are used for specifying appropriate peak-shape functions, which are exploited for constructing an approximation (,c,n) of the integrand function I(,c,n) as explained hereinafter. The peak-shape functions, which like I have dependencies on , c and n, are in a generic way noted P (,c,n).
[0059] The peak-shape functions are determined through the combination of an upstream selection of the approximation method and through computations of current parameters that depend on the specific configuration situation (geometry, light behavior of lightened surfaces, positioning of the considered point with respect to the considered area source lights, viewing direction, etc.)
[0060] Two families of implementations with peak-shape functions are described below for sake of illustration: a sophisticated one and a simpler one. The choice between both relies on a trade-off between computation costs and estimation accuracy. In what follows, the considered functions are symmetric.
[0061] For the sophisticated implementations, a triple peak-shape function Q (,c,n) is derived from a single normalized peak-shape function P (,c,n) so as to be used in the approximations. That triple peak-shape function Q (,c,n) is obtained by constructing a linear function of the same peak-shape function P (,c,n) taken as such, -downward translated to P (+, c,n) and -upwards translated to P (,c,n), the considered angle interval remaining bounded by /2 and /2 (though the domain of definition is broader, and possibly unbounded). Rather surprisingly, a particularly efficient approximation function is thereby made available.
[0062] More precisely, a particularly efficient combination is determined by considering the following triple peak-shape function Q (,c,n):
The approximated integrand function (,c,n) is then obtained from Q by the computations of a translation factor vShift(c,n) and a scaling factor sNorm(c,n)together with an intermediary factor d(c,n). They are determined from the following omitting c and n dependencies in the functions arguments for sake of conciseness:
The expression of approximated integrand (,c,n) is then given in function of Q (,c,n) by:
[0063] As can be checked, thanks to the choices of sNorm and vShift, the relations below stand (omitting c and n dependencies in arguments for sake of conciseness): (0)=s, (/2)=0 for n odd, (/2)=1 for n even.
[0064] Based on equations (10), (14) and (16), it can then be noted that an approximation {tilde over (G)}(x, c, , n) of G (x, c, , n) is given by (omitting c and n dependencies in the arguments of the right side for sake of conciseness):
[0065] According to the present principles, the peak-functions P have a known antiderivative expression, which makes equation (17) particularly attractive for computations.
[0066] In a variant configuration, the upwards and downwards P translations are different from , advantageously between 3/4 and 3/2, and preferably larger than .
[0067] For the simpler family of implementations, a single normalized peak-shape function P (,c,n) is used in the approximations. Accordingly, the approximated integrand (,c,n) is given by:
with (omitting c and n dependencies in arguments for sake of conciseness):
[0068] The selection and parameterization of appropriate normalized peak-shape functions P (,c,n) will now be developed, in relation with both sophisticated families and simpler families of implementations. In the following, even values of n exponent are considered, though similar processes apply to odd values.
[0069] In a first selection of the peak-shape functions P, those are Lorentzian functions P.sub.L, of the form:
where is a parameter depending on c and n, which specifies the function P.sub.L.
[0070] In an advantageous determination mode of P.sub.L, the value of I(,c,n) at half-width x is equalized with the value of P.sub.L at a shifted abscissa with respect to x.sub.. The offset, noted bias, enables to account for the operations (translation shifting, scaling, sum) applied to P.sub.L for constituting the approximated integrand (,c,n)formula (16) for the triple-peak function and (18) for the single-peak function. Namely:
which leads to:
[0071] The value of bias differs depending on the selection of the triple-peak or single-peak formula. For the triple-peak (sophisticated solution), it appears appropriate to select the following value:
while for the single-peak solution, the following choice proves adequate:
The relevance of those empirical formulae for the bias factor is confirmed by experimental measurements.
[0072] As previously mentioned, a key aspect of the selected peak-shape functions consists in the knowledge of an analytical expression for their antiderivative. As regards the Lorentzian function of formula (20), this is given by (arguments c and n being omitted in functions for sake of conciseness):
which leads notably to the following:
Having in mind that:
this leads to the following formula:
[0073] Note that that formula (25) involves a limited number of computations of arc tangent function, which is costly and requires typically around 20 ALU (Arithmetic Logic Unit) instructions in a GPU. Notably, only three such arctan evaluations need to be executed for formula (17). The approximated integrand (,c,n) can then be computed.
[0074] According to a second selection of the normalized peak-shape functions P, those are a linear combination of Lorentzian functions P.sub.L and Pearson type VII functions parameterized with a predetermined number m, noted P.sub.Pm. Such a Pearson-type function is defined by:
where is a parameter depending on c, n and m, which specifies the function P.sub.Pm.
[0075] More precisely, the linear combination of the peak-shape functions is an affine combination (i.e. a linear combination for which the sum of the related coefficients is 1). This amounts to having the approximated integrand (,c,n) being an affine combination of the approximated integrands .sub.L (,c,n) and (,c,n) corresponding respectively to the Lorentzian and Pearson peak-shape functions (though the coefficients are not the same for the peak-shape functions and the approximated integrands). That relation is given by:
(,c,n)=.sub.L(,c,n)+(1)P.sub.Pm(,c,n)(27)
with coefficient being comprised between 0 and 1.
[0076] In a particular implementation, coefficient is computed from a further parameter derived from the integrand function I (in addition to the maximum value s and the half-width abscissa x.sub.): the value I (x.sub.tail,c,n) taken by integrand I at a tail abscissa x.sub.tail. The latter is advantageously chosen as:
x.sub.tail=x.sub.+0.3946(1(1x.sub.).sup.12)(28)
[0077] Then, coefficient depends on c and n, and is obtained by equalizing the values at x.sub.tail of the approximated integrand and the integrand I. This leads to the following value:
[0078] This choice proves particularly appropriate in efficient implementations, which can be explained by the fact that in the tail of the integrand, the Lorentzian approximation tends to an overestimation while the Pearson approximation tends by contrast to an underestimation. The present weighting therefore provides a relative balance between both.
[0079] In a similar way as for the Lorentzian function, the parameter is computed by t by using the approximated half-width abscissa x.sub., as well as an offset bias.sub.m, which depends on c, n and m:
so that:
[0080] Two particular values of parameter m in the Pearson function provide advantageous embodiments: 1.5 and 2. For both of them, relatively simple antiderivatives expressions are known (arguments c and n being omitted in the functions for sake of conciseness):
[0081] The integral for m=1.5 is simpler to evaluate, while the integral for m=2 provides slightly more accurate estimations of the radiance.
[0082] Like for the Lorentzian function, the value of bias.sub.m depends on the selection of the triple-peak or single-peak formula. For the triple-peak (sophisticated solution), it appears appropriate to select the following values:
[0083]
[0084] The algorithms implementing the steps of the method of the present principles are stored in the memory GRAM 610 of the graphics card 606 associated with the apparatus 600. Upon power up of the apparatus 600, the RAM 620 loads the scene parameters in its register 624 and the peak-shape functions data in the register 626. Thereafter, the RAM 620 loads these parameters into the registers 612 and 624 of the GRAM 610 for execution by the GPU 608 via algorithms in the form of microprograms of shader type using HLSL (High Level Shader Language) language or GLSL (OpenGL Shading Language) for example.
[0085] According to a variant, at least some of the data pertaining to primitives are stored in the RAM 620 and processed by the microprocessor 602. This variant however causes greater latency time in the composition of an image comprising a representation of the environment composed from microprograms contained in the GPUs 608 as the data undergoes transmission from the graphics card 606 to the RAM 620 via the bus 604. The bus 604 generally has the transmission capacities inferior to those available in the graphics card 606 for transmission of data from the GPUs 608 to the GRAM 610 and vice-versa.
[0086] The apparatus 600 typically includes one or more I/O (Input/Output) devices 628 such as for example a keyboard, a mouse, a joystick, a webcam, and other input modalities, such as voice recognition. The apparatus also includes a power supply 630 for powering various elements. The power supply 630 can reside within the apparatus 600 or lie external thereto. A radio frequency transceiver 632 within the apparatus 600 provides a wireless connection via one of a variety of protocols (WiFi, Bluetooth, Cellular and the like) for receiving and transmitting information to other devices and systems.
[0087] Further, the apparatus 600 comprises a display device 634 (e.g., a monitor) directly coupled to the graphics card 606 via a bus 636 to display synthesized images calculated and composed in the graphics card, for example live. The use of a dedicated bus 636 to connect the display device 634 to the graphics card 606 offers the advantage of much higher data transmission bitrates and thus reducing the latency time for the displaying of images composed by the graphics card. According to a variant, the display device 644 could lie is external to the apparatus 600 and make use of a cable or wireless connection for receiving display signals. For example, the display device 634 could take the form of an LCD or plasma screen or a video-protector. In this respect, the RF unit 632 would operate to transmit display signals to the display device.
[0088] As used herein, the term register can include a memory zone of low capacity (some binary data) as well as a memory zone of large capacity (enabling storage of whole programs) to be stored or all or part of the data representative of data calculated or to be displayed). Further, the registers need not lie adjacent to each other and can exist as distributed locations in which one register includes several smaller registers.
[0089]
[0090] During step 708, point S associated with the projection vector {right arrow over (S)} may lie on the edge. If so, then step 720 undergoes execution and the edge undergoes splitting at the point S. Step 722 is executed next to compute the halfway transform of U.sub.i, U.sub.i+1 and S Step 724 follows during which computation of U.sub.iS (as transformed) edge integral around normal {right arrow over (N)} occurs. Summation of the contribution of the integral on the light source edge to radiance occurs during step 726, followed by step 728 and computation of the SU.sub.i+1 (as transformed) edge integral around the normal using the technique from EP 3057067 described previously. After summation of the contribution of that edge integral to the radiance according to step 714, the process reverts to step 716. The microfacet specular radiance is finally established at step 718.
[0091] After establishing the microfacet specular radiance, rendering occurs in much the same manner as described in EP 3057067. Exploited inputs include geometrical data and light property data and peak-shape functions data. The latter data can comprise the type of used peak-shape function(s), such as notably Lorentzian or combined Lorentzian-Person, the corresponding associated parameters, such as m for a Pearson function, and the way of exploitation, such as the triple-peak or single-peak method developed above.
[0092] A next pixel or view sample is considered which is advantageously processed in parallel for various pixels. A next surface point M is also processed for the current pixel, in compliance with known rendering processes. The local radiance at point M for the considered pixel, which is associated with a viewing direction, is then computed laid out above and summed up hereinafter. Further surface points and further pixels are dealt with until the whole set has been processed, and the complete rendering output is available which is reiterated for moving images.
[0093] The graphics processors 608 can perform several of the steps of
[0094] A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made. For example, elements of different implementations may be combined, supplemented, modified, or removed to produce other implementations. Additionally, one of ordinary skill will understand that other structures and processes may be substituted for those disclosed and the resulting implementations will perform at least substantially the same function(s), in at least substantially the same way(s), to achieve at least substantially the same result(s) as the implementations disclosed. Accordingly, these and other implementations are contemplated by this application.
[0095] In particular, though the approximation by peak-shape functions as described in EP 3057067 and referred to in the present disclosure is particularly advantageous, other kinds of computations of the integrand function can be exploited in combination with the disclosed edge splitting method.
[0096] The rendering technique of the present principles can potentially afford the following advantages: [0097] Simple and efficient rendering physically plausible specular surfaces lit by area lights; [0098] Consistent with the microfacet theory, widely use in VFX, animations and game industry; [0099] Small computational overhead; [0100] Easy implementation on parallel architectures and graphics hardware; [0101] Fast solution suitable for real-time rendering; and [0102] Easy implementation on production renderers or game engines.