Anatomically Accurate Modeling and Rendering of the Human Eye

Keywords: diffusion sous surfacique, texture, temps-reel

L'oeil humain, organe important dans le processus de la communication non verbale, ncessite une modlisation anatomiquement correcte ainsi que des mthodes de rendu raliste; ce afin d'accrotre le ralisme des personnages virtuels. Les rcentes amliorations matrielles permettent dsormais le rendu de matriaux organiques complexes, tenant compte de critres anatomiques. Nous proposons une nouvelle mthode de modlisation de l'iris humain permettant de reconstruire la structure interne de celui-ci et de retrouver ses paramtres de diffusion partir d'une photographie d'oeil. Ainsi, nous prsentons une mthode de drefraction d'image d'iris. Nous modlisons l'iris suivant la representation du Subsurface Texture Mapping [1] qui permet de dcrire les variations d'paisseurs des diffrentes couches de l'iris. Nous proposons enfin une mthode de rendu raliste et temps rel de l'oeil humain en introduisant une fonction de rfraction qui permet de tenir compte de la rfraction de la lumire l'interface air/corne.

Introduction

Rendering of human face principally focused on skin modeling and rendering using multiple methods, such as texturing, diffusion approximation and the recent multi-pole based method. Recovering anatomical features of organic materials is a challenging issue. The human eye, as an important part of the non verbal communication, needs to be accurately modeled and rendered to increase the realism of virtual characters. The recent improvements of graphics hardware offer the opportunity of rendering complex organic materials, following correct anatomical properties. We propose a novel method that allows to recover the iris structure and scattering features from a single eye photograph. In this aim, we developed a method to unrefract iris photographs. We model the iris using the Subsurface Texture Mapping (guillaume francois...) representation which allows to describe the relieves of the human iris. Finally, we introduce a refraction function for accurate real-time rendering of the eye, accounting for the refraction of the light at the corneal interface. Section 2 presents the previous methods for rendering human eyes and the anatomy of the eye. Section 3 describes our method to unrefract iris pictures captured using a simple camera. We then presents how to recover the iris topography and it scattering parameters in Section 4. Finally, we propose a method to achieve real time eye rendering in the last section.

Background

Previous work

Only a few papers deal with human eye rendering. Most of the previous works in modeling and human eye rendering are not based on the anatomical structure of the human eye. Instead, classical methods model the eye features using textures which encode color variations: they assume that the variation of colors in the iris is only due to a variation of the densities of its pigments it and do not take into account the light scattering within the material.

Sagar et al in A Virtual Environment and Model of the Eye for Surgical Simulation used a simple Gouraud shading model and textures to represent and render the human eye for surgical practicing aims. Lefohn et al presented in An Ocularists Approach to Human Iris Synthesis a method to render human iris based on ocularists studies. This method introduces a visually pleasant method for human iris cloning based on multiple colored layers overlaid to create convincing iris. Even though this method allows the rendering of every kind of eyes, it does not take into account the scattering of light within the layers. Lam et al presented in [START_REF] Lam | A predictive light transport model for the human iris[END_REF] a Monte Carlo based rendering method taking into account this phenomenon. This method allows a complex modeling and rendering of the human iris using the anatomical and physical properties of its layers. It also derives the properties of the layers from biophysical information. Nevertheless, this paper does not take into account the irregularities of the iris relief, such as the Crypts of Fuch.

We propose a novel method that allows to recover the iris structure from a single photograph. Since, the iris is overlaid and refracted by the cornea and aqueous humor, a photograph does not describe the real structure of the iris and needs to be preprocessed. In this aim, we developed a method to unrefract the iris picture. Using biophysical observations, we model the iris as a layered material described by a subsur-face texture [START_REF] Franc ¸ois | Subsurface texture mapping[END_REF]. We also deduce the scattering properties of the iris fitting the original eye color. We propose a method for realistic rendering of the cloned eye in real time using programmable graphics hardware. The refraction at the corneal interface being computationally prohibitive, we propose the use of a precomputed refraction function.

Anatomy of the Human Eye

The human eye has been studied for years. It is a complex organ involving proper mechanisms to adapt the vision and focus on objects.

In this section we focus on the visible parts of the human eye (the external and the intermediate layers). The first subsections present the cornea and the sclera, external layers of the eye. The third subsection focuses on the iris, which, such as fingerprints, is unique for every person. This particularity makes the iris being extremely important for realistic eye rendering. We also briefly describe the tear layers, first layers to interact with the light, which gives to the cornea its proper reflection capability. The eye is almost spherical(24mm long by 22mm across). Figure 1 presents the visible ocular tissues. The sclera, is the white outer coating of the eye and is composed of highly compacted flat bands of collagen bundles. The episclera, overlying the outer sclera is a vascularized fibrous tissue that shows blood vessels on the sclera and irrigates the cornea. This latter, overlying the iris, is the transparent front part of the eye. Last element of the eye ball, the iris is a pigmented sphincter which gives the color of the eye and allows the eye to adapt to the variable ranges of luminance.

The Sclera As said before, the sclera is the white part of the eye made of tough fibrin connective tissue which gives the eye its shape and helps to protect the inner parts. It is a tough, fibrous tissue consisting of highly compacted flat bands of collagen bundles which interweave in all directions and which are interspersed with elastic fibers. Episclera is a vascularized fibrous tissue coat that overlies the outer sclera and is bound to it.

INRIA

The Cornea At the front of the eye, the cornea serves as the first and strongest convex element of the lens system of the human eye. Thus, most of light refraction occurs at the air/cornea interface, while the lens only 'tune' the focus. The transparency of the cornea is due to its dehydration and avascularized structure. The index of refraction of the cornea is about 1.376. Rays pass from the cornea into the aqueous humor which has an index of refraction of 1.336, As a result, most of the refraction is at the cornea-air interface [3]. The human cornea has a diameter of about 12mm and a thickness of 0.5mm -0.7mm in the center and 1.0mm -1.2mm at the periphery.

The Iris Overlaid by the cornea and aqueous humor, the iris is the colored diaphragm of the eye and serves as the aperture stop controlling the amount of light entering the eye through the pupil. The purpose of the iris is to control the amount of light entering the eye and thereby prevent dazzle by bright lights. Made up of circular or radial muscles the iris can expand or contract the pupil over a range from about 2mm in bright conditions to 8mm in darkness. The backside of the iris is made up of cells containing brown melanin pigments which acts to absorb light as well as prevent its scattering within the eye. The front layer of tissue varies in thickness; the thicker it is, the bluer the eyes look when seen through the cornea. The iris colors range from brown to green, blue, grey and hazel. Despite this large amount of colors, the iris color is mostly due to light absorption by one pigment, the melanin, only slightly different from the melanin found in skin or hairs. Mie and Rayleigh scattering occur within the iris due to the stromal collagen fibrils, giving to a clear eye a blue reflectance. From anterior to posterior, the layers of the iris are: We consider that the anterior border layer (ABL) and the stroma are the two main layers involved into the reflectance of the iris. The anterior and posterior pigment epithelium, as well, are more globally seen as the pigment epithelium (IPE). We are interested in recovering the relieves of the iris presented hereafter.

• The Crypts of Fuch are a series of openings located on either side of the collarette that allow the stroma and deeper iris tissues to be bathed in aqueous humor.

Collagen trabeculae that surround the border of the crypts can be seen in blue irises.

• The pupillary ruff is a series of small ridges at the pupillary margin formed by the continuation of the pigmented epithelium from the posterior surface.

• The Circular contraction folds, also known as contraction furrows, are a series of circular bands or folds about midway between the collarette and the origin of the iris. These folds result from changes in the surface of the iris as it dilates.

• Crypts at the base of the iris are additional openings that can be observed close to the outermost part of the ciliary portion of the iris.

Instead of building an iris by independently taking into account these different surface features, we propose to recover them form a photograph. The Tear film A pre-corneal tear film coats the outer surface of the cornea. People normally blink the eyelids of their eyes about every six seconds to replenish the tear film. The tear film gives a particular thin film reflection on the corneal surface. It is composed of three layers

• The lipid layer.

• The lacrimal layer.

• The mucin layer.

Unrefracting an Iris Photograph

The iris is overlaid by highly refractive elements such as the cornea and the aqueous humor. Consequently a photograph gives a refracted image of the iris (Figure 2). In this section we propose to unrefract iris pictures. Unrefracting an iris picture consists in finding the optical path of the light from every point on the iris surface to the camera. In our method, this optical path is determined using the shape of a generic cornea as well as the refractive indices of the elements overlaying the iris. A generic cornea profile has been derived by Baker et al in "Ray tracing through nonspherical surfaces":

pz 2 -2Rz + x 2 + y 2 = 0 (1)

INRIA

The parameters p and R are generic data of the human eye given in "Ray tracing through non-spherical surfaces": p = 0.75 and R = -0.78. Note that the equation is expressed in the local frame of the cornea , the origin being the upper point of the cornea and the z axis pointing down (see Figure 3). We have seen in section 2.2 that the cornea is overlaid by a thin pre-corneal tear film.

As the refractive indices of this film and the cornea are very similar, we consider the cornea and the tear film as a single refractive component.

The refractive indices of the cornea and aqueous humor are given in [3]: n cornea = 1.376 and n aqueoushumor = 1.336 .

In this paper, we will consider that the two indices are the same. This approximation is reliable considering that the main light refraction occurs at the interface between the air and the corneal tissues ( [3]). Therefore, we will consider in the next section that refraction occur only at the upper interface of the cornea.

Unrefraction algorithm For a given point of view C and a point P on the iris surface we determine the light path from C to P through the cornea and the aqueous humor. As assumed above, we consider the cornea and the aqueous humor as a single refractive medium. The expression of the light path is given by the Fermat's principle. We need to find the point K on the interface of the cornea for which the optical path of the light is minimum, say:

argmin K∈cornea L(K) (2)
Where L is the optical path:

L(K) = n air CK + n cornea KP (3)
This minimization problem can be solved by finding the root of the derivative of the optical path:

∂ L(K) ∂ K = 0 (4)
We solve this problem using a gradient descent algorithm presented as follows. To simplify the problem, instead of applying the gradient descent algorithm along the corneal surface, we successively apply it on planes tangent to the corneal surface (Algorithm 1). At each step, the tangent planes are chosen to locally fit the corneal surface at the intersection between the cornea and the light ray. Let us first consider the point K 0 0 , intersection between the cornea and the ray CP. We aim at minimizing the optical path from C to P through a virtual diopter lying on the tangent plane at K 0 0 (given by the normal of the cornea at point K 0 0 :

N K 0 0
). We use a gradient descent algorithm along this diopter. This minimization returns a point K n 0 , estimate of the light entry point on the diopter. Using this point, we deduce the position of K 0 1 , intersection point between the cornea and the ray PK n 0 . This point is a new estimate of the light entrance point on the corneal surface after the step 0. If the convergence is not reached, the minimization algorithm is then repeated on the tangent plane at point K 0 1 . This process is repeated until convergence. Our search is depending on two thresholds, ε and ε, the first one is the condition to stop a gradient descent on a given plane, the second one the condition to initiate a gradient descent on a new plane.

The convergence criterion for the search on the tangent planes is given by the the scale factor α j of the gradient descent algorithm, say:

α j < ε (5)
Algorithm 1 Minimal optical path estimation Initialization Compute intersection between the cornea and the ray PC K 0 0 = IntersectCornea(PC) Current plane = tangent plane at point K 0 0 Process the successive tangent planes

for i = 0 to M or K 0 i+1 K N i < ε do
Minimization on the current tangent plane for j = 0 to N or α j < ε do Gradient projected onto the tangent plane:

∇(L(K j i )) = ∂ L(K j i ) ∂ K -( ∂ L(K j i ) ∂ K .N K j i )N K j i
New estimate of the light entry point on the plane:

K j+1 i = K j i -α j [ ∇(L(K j i ))]
end for Compute intersection between the cornea and the ray PK The iterative search is performed on the tangent plane at point K 0 0 , giving the estimate K 0 1 . This step is repeated on the tangent plane at point K 0 1 , giving a better estimate K 0 2 .

N i K 0 i+1 = IntersectCornea(PK N i ) Current plane = tangent plane at point K 0 i+1 end for return K j i INRIA
Instead of using a complex scale factor based on the hessian of the optical path, we compute α j as follow:

α j = α j + 1 1 ∇(L(K j i )) (6)
Where α is a fixed parameter that allows a fast descent (We choose α to be equal to 0.05). ∇(L(K j i )) is the gradient of L(K j i ) projected on the current plane i:

∇(L(K j i )) = ∂ L(K j i ) ∂ K -( ∂ L(K j i ) ∂ K .N K j i )N K j i (7)
We divide our scale factor α j by the norm of the gradient projected to normalize the step length (cf Algorithm 1). In order to get a fine convergence, α j is divided by (1 + j) so that the steps become smaller at each new iteration. If a step computation based on the hessian would provide a faster gradient descent, it is unnecessary in our case due to the successive gradient descents we apply. Therefor, a coarse definition of the steps is enough to reach a good estimate of the point K.

The convergence criterion of the main loop is simply given by:

K 0 i+1 K N i < ε ( 8
)
Where ε is a user defined parameter, K N i the optimal refractive point for the plane i and K 0 i+1 the intersection between the corneal surface and PK N i . This means it is unnecessary to initiate a gradient descent on a new plane if the result of the previous gradient descent is close enough to the corneal surface.

Camera position estimation To be able to unrefract the iris, we need to find the relative position of the camera, not necessary on the z axis in the corneal referential. The limbus, boundary between the sclera and the cornea, is an ellipse when projected on the image plane. We estimate θ the angle between the z axis of the eye and the camera viewing direction using the major axis a and minor axis b of this ellipse:

θ = arccos( b a ) (9)
Since the eye cornea is supposed to be symmetrical along the z axis, we don't need to estimate the azimuthal angle φ to unrefract the iris.

We estimate the major axis and minor axis size using the method proposed by Nishino et al in [START_REF] Nishino | Eyes for Relighting[END_REF]. Please refer to this latter article for more details.

Recovering the Iris Relieves and Scattering Parameters Estimation

Recovering biophysical information from a human eye is an important issue. The iris, overlaid by the cornea and aqueous humor, is complex and hard to duplicate. These physical and biological properties complicate the study of human eyes. Optometrists often use a biomicroscope, or slit lamp, to see the different parts of the eye in extensive detail. It is a special microscope used with a high-intensity light source that can be focused to shine as a slit or left unfocused to provide general illumination.

Since we want to propose a friendly and affordable human eye cloning method, we capture the eye's features using a simple digital camera and a classical macro lens. We also make use of polarizing filters to minimize the corneal reflection. This allows us to quickly capture iris reflection and color information useful to recover its topology and scattering coefficients.

Once the iris photograph is unrefracted to create a non deformed iris color texture, we use this latter to recover the 3 dimensional shape of the iris. As said before, the iris thickness is not constant. From a picture of an eye, one can distinguish the crypts and INRIA relieves of the iris' stroma. We propose to use the 2 dimensional information to recover the thickness of the stromal layer. We make the assumption that the light scatters more in regions of the iris were the thickness is high and scatters less in the regions were the thickness is small. It leads to consider that, on an iris photograph, the lighter regions correspond to thicker parts of the iris stroma whereas the darker ones correspond to thin parts of the stroma. In order to clone iris using such a method we need to take into account some common imperfections appearing on an iris such as the freckles. These artifacts are seen as darker brown spots on the iris and does not correspond to a thin part of the stroma but are due to a high density of eumelanin and pheomelanin pigments. We propose to locate these imperfections in a preprocessing step to take them into account. Once we located these freckles in the iris photograph we remove them from the picture and fill the holes using the neighborhood iris color.

Constructing the height field

We use the iris photograph in grey scale to build a height field representation of the stromal layer. The thickness of the iris stroma can be divided into two categories: the global thickness of the iris and the local thickness created by local iris features. The global thickness of the human iris varies along the radius of the iris. It can easily be measured using microbioscopy ultrasounds. Since we do not want to use such a complex system of capture, we use the generic data presented in [START_REF] Pavlin | Ultrasound Biomicroscopy of the Eye[END_REF] to model the global thickness of the iris. (see Figure 5) Pavlin et al show in ?? that the overall profile of the iris is normally straight. We must consider that the iris' relieves appearing in a single photograph does not directly correspond to an height value (see Figure 6). Due to light scattering the real relieves are "blurred" in the photograph and may appear lager than they are in reality. To compensate for this lack of information, we propose to filter the height field which sharpens the iris details.

The coefficient of this filter can be deduced from experiments that compare the iris photograph and high quality rendering of the corresponding modeled iris. This allows to modify the filter until the rendered image fits the photograph. We first create a coarse height field with the photograph information. This height field allows us to create synthetic images used for the estimation of the scattering parameters of the iris, as presented in the next section. As soon as the scattering properties of the iris are determined with a better precision, we create an enhanced height field by filtering the coarse height field previously obtained and by comparing the photograph with renderings using this new thickness estimation. Scattering parameters of the iris layers Multiple pigments are responsible for the human iris reflectance. Even though hemoglobins and carotenoids pigments contribute to the iridal spectral characteristics of the human eye, the melanin pigment provides the most significant contribution to the iridal ap-INRIA pearance. Our method consist into finding the respective densities of eumelanin and melanin within the iris layers. We propose a simple way to recover these iris scattering parameters. A user interface allows to modify the global concentrations of eumelanin and pheomelanin within the ABL and stromal layer. The global thickness of the stromal layer can be modified in real time as well, which results in a modification of the amount of scattered light.

Iridal melanin is only slightly different from the melanin contained in the human hair and skin. Two types of melanin are present in the human iris: The pheomelanin, red yellow pigment, and the eumelanin, a brown black pigment. We assume that both the melanin and the small scale tissues are uniformly distributed throughout the ABL and the stromal layer. The IPE is assumed to be over concentrated in melanin and absorbs all the incoming light. The spectral absorption of respectively eumelanin and pheomelanin can be well approximated by power laws:

σ em a (λ ) = 6.6 × 10 10 × λ -3.33 mm -1 (10)
σ pm a (λ ) = 2.9 × 10 14 × λ -4.75 mm -1 (11

)
Where λ is the wavelength of light in nanometers, σ em a is the spectral absorption coefficient of eumelanin, and σ pm a that of pheomelanin. Equation 10 fits data from [START_REF] Jacques | The melanosome: threshold temperature for explosive vaporization and internal absorption coefficient during pulsed laser irradiation[END_REF], while Equation 11is empirical fit to data given in [START_REF] Sarna | The physical properties of melanins[END_REF]. In our approach, we assume the baseline absorption of the ABL and stromal layer to be the same than the baseline skin absorption given in [START_REF] Jacques | Skin optics[END_REF]:

σ baseline a (λ ) = 0.0244 + 8.53 × e -(λ -154)/66.2 mm -1 (12)
The net spectral absorption, σ baseline a , depends on the volume fraction C m of melanin within the tissue and on the ratio β m of eumelanin relative to pheomelanin:

σ a (λ ) = Cm(β m σ em a (λ ) + (1 -β m )σ pm a λ + (1 -Cm)σ baseline a (λ ) (13)
Scattering of light occurs in the stromal layer which is composed of collagen fibril. We model this scattering following the Rayleigh and Mie theory, and use parameters similar to those given in [START_REF] Donner | A spectral bssrdf for shading human skin[END_REF]:

σ s (λ ) = 14.74λ -0.22 + 2.2 × 10 11 × λ -4 . ( 14
)

Rendering

Once the iris is modeled, we propose a method to simulate the interaction of the light with the eye (Figure 8). As described in Section 2.2, the iris is surrounded by the cornea. As a result, the light gets refracted at the intersection with the cornea. Then, the refracted light is scattered within the iris, before eventually exiting the iris layers. The outgoing light is then refracted at the cornea, and reaches the camera. Our rendering algorithm is based on a reverse approach, following the light path from the camera to the light sources. While computing the refraction of the view ray on the cornea is straightforward, the computation of light scattering is more complex. More precisely, for a given point P on the iris, the radiance reaching P is highly dependent on the light refraction on the cornea. However, as pointed out in Section 3, the computation of the light path between two fixed points through the cornea requires an offline, iterative minimization process.

In this Section, we first introduce a Refraction Function for real time accurate light refraction at the intersection with the cornea. Second, we use the Subsurface Texture Mapping algorithm [START_REF] Franc ¸ois | Subsurface texture mapping[END_REF], to simulate light scattering within the iris.

Figure 8: The interaction of the light with the eye is composed of 3 main events: the light is first refracted at the interface between the cornea and the air. Then the light traverses the aqueous humor, and gets scattered within the iris layers. The scattered light exiting the iris is then refracted once more by the cornea before leaving the eye.

Refraction function

The cornea is the most important refractive component of the eye. Therefore, the appearance of the iris is highly dependent on the refraction of the incident light on the cornea (Figure 9). However, as described in Section 3, the computation of the minimal optical path between two points through the cornea and the aqueous humor is time expensive. To overcome this problem, we define a Refraction Function. For a given point P on the iris and a given outgoing direction ω, this function returns the refraction direction ω so that the optical path is minimal (Figure 10(a)):

f (P, ω) = ω (15)
This function can be evaluated numerically using the minimization algorithm presented in Algorithm 1. The refraction function is defined for a point P and its upper hemisphere. We propose to precompute the values of this function for a set of directions ω and a set of points P on the iris. The refraction function for any point P and any direction ω is then obtained by interpolating the precomputed values of the function.

The geometry of the cornea is defined by Equation 1. This equation shows that the cornea is symmetrical around the vertical axis. Assuming that the iris is almost planar means that the refraction function is also symmetrical around this axis with respect to P. Therefore, we only need to evaluate the refraction function for a number of sample points N P on a single radius of the iris (Figure 10 As shown in Equation 1, the profile of the cornea is smooth and continuous. Consequently, the refraction function can be accurately represented using a small number of sample points and directions. The interpolation error is under 0.4mm even with only 10 sample points on the iris and 100 sample directions yielding a storage cost of 12KB. More precision can be achieved by increasing the number of sample points and directions: with 100 sample points and 2500 directions the errors remains below 0.08mm while the raw storage cost is only 300KB.

The Refraction Function allows us to compute the actual path of the incident light to a each point on the iris. The computation of the light scattering within the iris is performed using the Subsurface Texture Mapping algorithm described in [START_REF] Franc ¸ois | Subsurface texture mapping[END_REF]. The cornea being smooth and symmetrical around the vertical axis, we precompute the values of the refraction function for a small number of points located on a single radius of the iris (b). Note that instead of storing the direction ω we store the K, intersection between the light ray and the cornea.

Subsurface Texture Mapping

Built upon Policarpo et al.'s Relief Mapping [START_REF] Policarpo | Real-time relief mapping on arbitrary polygonal surfaces[END_REF], this method proposed by Franc ¸ois et al. [START_REF] Franc ¸ois | Subsurface texture mapping[END_REF] represents multilayered materials using simple 2D textures. The thickness of each layer of the material is defined by a height map (Figure 11), allowing for the definition of layers with variable thickness within a small memory space. Franc ¸ois et al. [START_REF] Franc ¸ois | Subsurface texture mapping[END_REF] also consider real time simulation of single scattering within such materials. This method leverages the power of graphics hardware to compute the light scattering by ray marching using the fragment shader. In our approach, we use both our refraction function and the subsurface texture mapping algorithm to simulate the successive interactions of the light with the cornea and the iris.

Subsurface Scattering Within the Iris

Our aim is the computation of single scattering within a human iris. To simplify the explanation, we only consider a single point light source. However, this method can be straightforwardly extended to an arbitrary number of light sources with linear complexity.

Let us consider an iris whose layers are represented using the subsurface texture mapping algorithm. For a given point P on the iris and a sampling direction ω o , the ray marching algorithm computes a certain number of sample points M from P along ω o (Figure 12). Each step of the ray marching involves two main operations. The direction from point M to the light source being known, the refraction function is fist queried in Step 1 to obtain the actual light path from the source to the point M. Note that in this step we neglect the refraction of light at the interface between the aqueous humor and the iris. Indeed, this refraction can be reasonably neglected due to the similarity of the refraction indices and the fact that the most important refraction event occurs at the interface between the cornea and the air.

Using the direction ω provided by our refraction function, we compute the attenuation of light along ω from the surface of the iris to the point M. The resulting lighting is then multiplied by the phase function of the iris at point M, yielding the contribution of the light source to the lighting at point M, which is then propagated to point P.

Overall Algorithm

Figure 12: Overall rendering algorithm. A ray is traced from the camera towards the cornea, and gets refracted before reaching the point P on the iris. The single scattering term is then evaluated at P by marching a ray inside the iris. For each sample point M, the actual incoming direction ω of the light is obtained by querying our precomputed Refraction Function. The scattered light is then propagated to evaluate the outgoing radiance at P.

As presented at the beginning of this Section, our approach follows the inverse path of the light, from the camera to the light sources. For each pixel of the final image, the rendering process is divided into 3 main steps. In the first step, the algorithm determines the point on the cornea which is visible through the considered pixel. Using the known refraction indices of the air and of the aqueous humor, the refraction of the camera ray and the corresponding point P on the iris are computed in the second step. Then, single scattering within the iris is computed as described above, yielding the final radiance as seen through the pixel (Figure 12).

All those steps can be performed within a single rendering pass using programmable graphics hardware. More precisely, the geometry of the cornea is sent to the vertex shader and rasterized. Then, the fragment shader performs the refraction of the camera ray, and the computation of the single scattering term in real time.

Note that the sclera and episclera are rendered using the Subsurface Texture Mapping algorithm. This latter allows us to describe and render different layers of veins that compose the episclera as well as an estimate the single scattering within the sclera.

Results

Using a GPU implementation of our rendering method, a high frame rate of 60fps has been obtained for a resolution of 1280 × 1024 with a dual Geforce 7900GX graphics card. The light scattering estimation and corneal refraction and reflections are computed in a single pass using the pixel shader. We render the sclera and episclera using Subsurface texture mapping, which allows the rendering of volumetric veins as seen in Figure 15. We use the scattering parameters given by Tuchin et al in [START_REF] Tuchin | Scleral tissue light scattering and matter diffusion[END_REF].

Conclusion and Future Work

We proposed a friendly and affordable human eye cloning method, using a simple digital camera and classical macro lens. We also took advantage of polarizing filters to avoid the light reflections on the cornea. We presented a method to model the human iris according to its anatomical features. We have seen that the color variations of an iris is not only due to variations of the pigment concentrations. The iris reflectance also depends on the the thickness variations of its layers since it influences the scattering of the light within it. We showed that we can recover the thickness of the iris layers using knowledge on generic iris and the height field created by unrefracting and filtering an iris image. Our interface allows the estimation of the scattering features of the ABL and stromal layers by modulating respective melanin concentrations as well as thicknesses. Finally, we achieved real time rendering of the human eye by introducing a precomputed refraction function. This allows us to accurately take into account the light refractions occurring at the cornea/air interface. We believe that this refraction function can have multiple applications for other rendering issues. Future work will focus on integrating a more accurate estimation of the scattering parameters. We work on an iterative and automatic method for recovering the respective densities of the eumelanin and pheomelanin pigment in the ABL and stromal layer. This iterative search could be initialized with generic parameters given in [START_REF] Lam | A predictive light transport model for the human iris[END_REF]. We would also like to extend our method to the rendering of non human eyes.

Figure 1 :

 1 Figure 1: Schematic profile of the human eye

•

Figure 2 :

 2 Figure 2: Refraction at the corneal interface.

Figure 3 :

 3 Figure 3: Iterative search of the minimal optical path: The iterative search is performed on the tangent plane at point K 0 0 , giving the estimate K 0 1 . This step is repeated on the tangent plane at point K 0 1 , giving a better estimate K 0 2 .

Figure 4 :

 4 Figure 4: Creation of the iris map: Refracted iris (left) and iris after the unrefraction algorithm (right).

Figure 5 :

 5 Figure 5: Location of the measurement points of the iris global thickness. ID1 = 372 ± 58µm, ID2 = 457 ± 80µm, ID3 = 645 ± 103µm.

Figure 6 :

 6 Figure 6: Height map correction

Figure 7 :

 7 Figure 7: Creation of the iris relieves: Iris thickness map (left) and the filtered iris thickness map (right).

  (b)). For each sample point P, we INRIA then uniformly sample N ω directions on the surrounding hemisphere to compute the refraction function. At run-time, those values are linearly interpolated with respect to P and ω for fast computation of the refracted light.

Figure 9 :

 9 Figure 9: The appearance of the eye is highly dependent on the light refraction at the interface between the cornea and the air. (b) shows a rendering without refraction which lacks the typical darkening on the outer edge of the iris due to the refraction of light (a). The simulation of light refraction at the cornea adds a key aspect to the realism of the synthetic eye (c).

Figure 10 :

 10 Figure 10: For a point P and a direction ω, the refraction function returns the direction ω representing the actual light path through the cornea and the aqueous humor (a).The cornea being smooth and symmetrical around the vertical axis, we precompute the values of the refraction function for a small number of points located on a single radius of the iris (b). Note that instead of storing the direction ω we store the K, intersection between the light ray and the cornea.

INRIA

Figure 11 :

 11 Figure 11: The modeling step of the subsurface texture mapping algorithm. Each channel of the subsurface texture encodes the thickness of a layer of the material. The material is then rendered in real time by GPU-based ray marching

Figure 13 :

 13 Figure 13: Rendering of a brown eye

Figure 14 :

 14 Figure 14: Rendering of a green eye

RR n°0123456789