Refraction

Auteurs: Matthieu Brangier, Jesus Iglesias
Date de création : 10/2007

Date de mise à jour : 21/12/2007

Table des matières


Introduction

Cet applet, développé en parallèle avec celui sur la simulation des halos atmosphériques, permet de visualiser l'interaction entre un cristal de type donné et un rayon lumineux.
Le principe de la déviation minimale peut ainsi être mis en évidence, et il est possible de visualiser les effets caractéristiques d'un cristal donné sur la lumière.



Explications

Rappels théoriques

Réfraction, réflexion

Lois de Snell-Descartes
Un milieu transparent est caractérisé, du point de vue de son interaction avec la lumière, par son indice optique n, correspondant au rapport entre la vitesse de la lumière dans le vide et la vitesse de la lumière dans ce milieu. Pour l'air, cet indice est proche de 1, il vaut approximativement 1.33 pour l'eau et 1.31 pour la glace.
Lorsqu'un rayon lumineux traversant un milieu d'indice n_1 rencontre un milieu d'indice n_2, celui-ci peut être réfracté et/ou réfléchi.
Le rayon réfléchi l'est avec un angle égal à l'angle d'incidence.
Le rayon réfracté ressort avec un angle \theta_2 obéissant à l'équation n_1\; \sin(\theta_1) = n_2\; \sin(\theta_2), où \theta_1 est l'angle d'incidence
Si n_2<n_1, il peut ne pas y avoir réfraction selon l'angle d'incidence, la réflexion est alors totale, le rayon étant alors intégralement renvoyé dans le milieu d'indice n_1.
Plus d'information sur les lois de Snell-Descartes, la réflexion et la réfraction
Dépendance avec la couleur
L'indice optique ndépend de la longueur d'onde \lambdade la lumière qui éclaire le cristal. La dépendance est assez complexe, mais la loi de Cauchy donne une bonne approximation de cette dépendance dans le domaine visible. Cette formule s'écrit n\left(\lambda\right)=A+B/\lambda^2, où AetB sont des constantes dépendant du milieu
C'est à cause de ceci qu'un prisme éclairé en lumière blanche disperse les rayons lumineux faisant apparaître les couleurs la composant. Les halos et arcs-en-ciel présentent des couleurs pour les mêmes raisons : ce sont les gouttes d'eau ou les cristaux de glace qui jouent le rôle de prisme.
Coefficients de Fresnel
Dans le cas général, exception faite des réflexions totales, les rayons lumineux sont partiellement réfléchis et partiellement réfractés. Les coefficients de Fresnel permettent de déterminer quelle fraction du rayon incident suivra l'un et l'autre phénomène.
En outre, il existe des effets de polarisation liés à ces phénomènes, qui ne seront pas abordés ici, mais qui sont par exemple la cause de la polarisation très particulière des arcs en ciels.
Plus d'informations sur les coefficients de Fresnel et la polarisation de la lumière

Interaction de la lumière un cristal ou une goutte

Types de cristaux
La forme des cristaux est imposée par la structure cristallographique du matériau qui les composent. On aura ainsi dans le cas de la glace d'eau des structures de type hexagonales, et dans le cas de la glace d'ammoniac, des structures bipyramidales.
La forme des cristaux résultants peut cependant être bien plus complexe lorsque les cristaux dépassent une certaine taille, on obtient alors par exemple les cristaux de glace en forme d'étoiles. Ces cristaux gardent cependant des formes liées à leur structure, ainsi on retrouve des formes hexagonales à l'intérieur de ces étoiles, d'ailleurs elles mêmes inscrites dans un hexagone.
Plus d'informations sur les cristaux de glace
Les gouttes
Le choix de la forme sphérique pour la goutte d'eau est une excellente approximation. En effet, loin d'avoir la forme telle qu'on les dessine souvent, les gouttes d'eau adoptent une forme quasi-sphérique en raison de la tension superficielle.
Elles se déforment un peu lorsqu'elles dépassent une certaine taille, dans les gouttes de pluie par exemple, mais les gouttelettes en suspension dans les nuages qui forment les arcs-en-ciel ont la forme d'une sphère
Plus d'information sur les gouttes et la tension de surface
Interaction avec la lumière
Un rayon lumineux arrivant sur une face d'un cristal ou à la surface d'une goutte de liquide va y pénétrer et être dévié, puis en ressortir par un autre endroit en étant à nouveau dévié.
Dans le cas d'un cristal, c'est l'angle entre la face d'entrée et de sortie, et dans une moindre mesure l'angle d'incidence, qui va imposer une déviation particulière au rayon lumineux, potentiellement dépendant de sa longueur d'onde. Dans le cas d'une goutte de liquide, seul l'angle d'incidence pourra jouer un rôle
On pourra en outre avoir un certain nombre de réflexions internes, totales ou non, qui auront pour effet de modifier cette déviation (essentielles pour expliquer certains phénomènes)

Applet de simulation d'interaction de la lumière avec un cristal

Présentation

Cet applet a été développé à la suite de celui sur les halos atmosphériques, dans le but de montrer explicitement l'interaction de la lumière avec un cristal donné. Ces calculs sont faits de la même façon dans le second applet, mais n'y sont pas montrés en tant que tels.

Algorithmes utilisés

Calculs de réflexion et réfraction
Les rayons lumineux sont caractérisés par un point source et un vecteur de propagation (et une intensité, inutilisée ici). Le calcul de l'interaction d'un rayon avec une surface 3D quelconque se fait en plusieurs étapes :
  1. On cherche le point d'intersection du rayon lumineux avec la surface concernée. Il faut en particulier faire attention aux surface possédant potentiellement plusieurs points d'intersection avec un rayon (une sphère par exemple). Ceci est effectué par la méthode intersect de la classe Forme3D
    Si la forme est composée de plusieurs formes élémentaires, il convient de chercher laquelle interceptera le rayon lumineux à l'aide de la méthode distance_intersect de la classe Forme3D
  2. Il est ensuite nécessaire de connaître le vecteur normal à la surface considérée au point d'intersection, fourni par la méthode get_normale de la classe Forme3D
  3. L'application des lois de Snell-Descartes en 3D, en particulier la prise en compte que les rayons réfléchis et réfractés se trouvent dans le plan formé par les rayons incidents et la normale à la surface, n'est pas simple.
    Afin d'optimiser ce calcul, ces lois ont été reécrites afin d'avoir les vecteurs directeurs des rayons réfléchis \overrightarrow{r} et réfractés \overrightarrow{r'} comme combinaison linéaire du vecteur directeur du rayon incident \overrightarrow{v} et du vecteur normal \overrightarrow{n}.
    Le détail des calculs n'est pas présenté ici, mais il est utile de remarquer que \overrightarrow{v} . \overrightarrow{n} = \cos(i) et \left\| \overrightarrow{v} \wedge \overrightarrow{n} \right\|= \sin(i), où i est l'angle d'incidence.
    Les formules qui en découlent sont, pour la réflexion \overrightarrow{r} = \overrightarrow{v} - 2 \left( \overrightarrow{v} . \overrightarrow{n} \right) \overrightarrow{n} et pour la réfraction \overrightarrow{r'} = \overrightarrow{v} + \alpha \overrightarrow{n} avec \alpha = \frac{\left\|\ \overrightarrow{v} \wedge \overrightarrow{n}\; \right\|}{\tan\left(asin\left( \frac{n_1}{n_2} \left\|\ \overrightarrow{v} \wedge \overrightarrow{n} \;\right\|} \right)\right)} signe\left( \overrightarrow{v} . \overrightarrow{n} \right) - \overrightarrow{v} . \overrightarrow{n}
    Les méthodes reflect et refract de la classe Rayon effectuent les calculs de cette façon pour déterminer les rayons réfléchis et réfractés en fonction du rayon incident et de la forme sur laquelle il arrive.
  4. Avant d'effectuer les calculs précédents, il convient de déterminer lequel est à effectuer : la réflexion peut avoir lieu dans n'importe quelle configuration, mais une réfraction n'est possible que si \frac{n_1}{n_2} \left\|\ \overrightarrow{v} \wedge \overrightarrow{n} \;\right\| <1
    La méthode is_refract de la classe Rayon utilise cette formule pour déterminer si le rayon peut ou non être réfracté
Algorithme de calcul des trajectoires de rayons lumineux
A l'aide des calculs et méthodes présentées ci-dessus, l'algorithme suivant permet de faire le calcul des trajectoires de rayons lumineux afin d'en afficher le résultat.
  1. Un objet cristal est créé, par assemblage de surfaces élémentaires préprogrammées (rectangles, triangles, trapèzes, sphères) et celui-ci est orienté dans l'espace comme demandé
  2. Un rayon lumineux arrivant de "dessus" (axe - \overrightarrow{z}, ou \theta=\pi) est généré. On cherche la première face du cristal qui sera rencontrée en cherchant quelle face, projetée dans un plan (xOy) contient la projection du point source du rayon lumineux. Ceci est exécuté par la méthode in_projection_z des classes de formes géométriques.
    Si plusieurs faces correspondent à cette condition, un calcul des distances (méthode distance_intersect de Rayon) au point d'intersection des surfaces concernées permet de choisir la bonne.
    Enfin, un calcul de réfraction sur cette face est effectué comme décrit précédemment.
  3. On cherche ensuite la face suivante qu'atteindra le rayon en calculant les distances de chacune des faces, en tenant compte de la direction de propagation du rayon (attention, ceci ne fonctionne que dans le cas d'un cristal convexe !)
    Après un test pour déterminer si le rayon sera réfléchi ou réfracté, le calcul correspondant est effectué, et on réitère cette opération jusqu'à ce que le rayon sorte du cristal.

Améliorations possibles

Il serait intéressant d'ajouter d'autres types de cristaux, et d'autres compositions. En particulier il serait intéressant d'ajouter les indices optiques de l'ammoniac, en prévision desquels a été créé le cristal bipyramidal (celui-ci nécessite encore d'imposer l'angle entre ses faces), ainsi que des cristaux de glace carbonique, présents dans l'atmosphère martienne.
Un affichage plus réaliste de la 3D rendrait la visualisation plus facile, ceci nécessiterait en particulier une analyse de la position des rayons lumineux par rapport aux arrêtes du cristal afin de ne pas les afficher par-dessus lorsqu'ils sont derrière en réalité.
Dans le même ordre d'idée, un affichage plus sombre des arrêtes cachées ainsi qu'un effet de rétrécissement avec la profondeur permettrait de mieux voir le cristal en 3D.


Mode d'emploi de l'applet

Introduction

Les paramètres de cette applet ne sont en aucun cas critiques et peuvent être modifiés à volonté par l'utilisateur afin de visualiser l'ensemble des effets d'intéraction d'un cristal avec un rayon lumineux.
Il est cependant nécessaire de faire attention à la validité de certains paramètres si on veut garder un sens physique pour les calculs effectués (inutile d'imposer 100 réflexions supplémentaires par exemple : seule une fraction parfaitement négligeable de la lumière aura suivi un tel trajet) et aux contraintes de visualisation (un cristal de facteur de forme 100 sera difficilement visible à l'écran car trop allongé)
Enfin, pour permettre de simuler facilement un certain nombre d'interactions caractéristiques telles que celles présentées ci-dessous, une liste de paramètres prédéfinis est accessible dans le menu déroulant en haut de la liste des paramètres.

Description des paramètres

Type d'objet

Facteur de forme

Le facteur de forme correspond grossièrement au rapport hauteur sur largeur du cristal.
Attention : ce paramètre est sans effet sur certains objets comme la goutte sphérique, qui reste sphérique ...

Réflexions internes

Certaines interactions mettent en jeu une réflexion interne (partielle) supplémentaire par rapport au chemin que suit majoritairement la lumière.
Le nombre de ces réflexions internes ne doit pas être trop grand : en effet, au delà de 2 ou 3 réflexions partielles, seule une petite fraction de la lumière restera, causant des phénomènes bien trop peu lumineux pour être observables.

Matériau

Choix du matériau composant l'objet choisi :eau ou glace. Les propriétés optiques du matériau pourront alors être utilisées dans la simulation.
Il est nécessaire de choisir un matériau compatible avec le type d'objet choisi : une sphère de glace ou un cristal d'eau n'aurait en effet aucun sens.

Couleur

On a ici le choix entre les 3 couleurs rouge (650nm), verte (510nm) et bleue (440nm). (Celles-ci ont été choisies de façon à correspondre approximativement avec les couleurs de l'écran)

Angles du cristal

Ces options permettent d'orienter le cristal dans l'espace afin qu'il puisse présenter des configurations différentes au rayon incident.
Les rotations par rapport à la position de repos s'effectuent dans l'ordre suivant : \psi(psi) par rapport à l'axe vertical, \theta (theta) par rapport à l'axe horizontal, puis \varphi (phi) selon l'axe vertical à nouveau.

Citesses de rotation

On peut choisir ici la vitesse de rotation de l'ensemble rayon+cristal, afin de visualiser l'interaction sous un autre angle (il est possible d'arrêter la rotation avec le bouton "stop", puis de la reprendre avec le bouton "continuer" situés au dessus de l'image)
Les angles et ordre de rotations sont les mêmes qu'à la section précédente.

Coordonnées du rayon

Afin de faire varier l'endroit du cristal éclairé, il est possible de faire varier en x (profondeur) et y (latéralement) la position du rayon incident

Affichage

Après lancement de la simulation via le bouton "calculer", le cristal et le rayon lumineux seront affichés à droite.
L'angle de déviation est affiché en dessous, exprimé en degrés et minutes d'arc.


Exemple d'utilisation

Ces exemples sont reproductibles grâce aux listes de choix prédéfinis de l'applet.

Exemple

Déviation à 22°

Un rayon lumineux interceptant 2 faces orientées à 60° l'une de l'autre est dévié de 22°. C'est cette configuration qui forme le halo à 22°

Déviation à 22 degrés
figures_refraction/dev22.png

Exemple

Déviation à 46°

Lorsque les faces sont orientées à 90°, la déviation du rayon lumineux est de 46°. Le halo à 46° est dû à ce type d'interaction.

Déviation à 46 degrés
figures_refraction/dev46.png

Exemple

Déviation à 120°

Cette déviation nécessite une réflexion interne supplémentaire. On peut remarquer en outre que la déviation est indépendante de la couleur (elle est dite achromatique). Les parenthélies sont causées par ce type d'interaction, et ne présentent en effet par de coloration.

Déviation à 120 degrés
figures_refraction/dev120.png

Exemple

Réflexions multiples

Il existe des configurations propices aux réflexions totales à l'intérieur des cristaux

Réflexions multiples
figures_refraction/reflmult.png

Exemple

Déviation à 9°

Pour des cristaux de forme plus complexes, d'autres valeurs de déviations apparaissent, comme la déviation à 9° ici. Ceux-ci forment les halos dits inhabituels

Réflexions multiples
figures_refraction/dev9.png

Exemple

Déviation à 23°

Ou encore une déviation à 23°

Réflexions multiples
figures_refraction/dev23.png

Exemple

Réflexions multiples

Il existe pour ces cristaux des phénomènes de réflexions multiples plus complexes également

Réflexions multiples
figures_refraction/reflmult2.png


Liste des paramètres d'entrée de l'applet

Liste des paramètres de sortie de l'applet