La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Ray-Tracing CASANAS Sylvain PASTOR Antoine PERCHET Frederic.

Présentations similaires


Présentation au sujet: "Ray-Tracing CASANAS Sylvain PASTOR Antoine PERCHET Frederic."— Transcription de la présentation:

1 Ray-Tracing CASANAS Sylvain PASTOR Antoine PERCHET Frederic

2 Plan Principe Utilisation dans le Rendering Détection des collisions Diffusion de l’éclairage et des matériaux Réflexion et réfraction Conclusion

3 Principe #declare Box = union { object { Box_Front translate -z*2.75} object { Box_Front scale translate z*2.75} object { Left_End translate -x*3.75 } object { Left_End scale translate x*3.75 } object { Box_Lid } object { Box_Bottom } } #declare Spheres = union { // Inside of box sphere {, 1.25 texture { T_Wood14 finish { specular 0.35 roughness 0.05 ambient 0.3 } translate x*1 rotate translate y*2 } // Inside of box sphere {, 1 texture { T_Wood18 finish { specular 0.25 roughness ambient 0.35 } scale 0.33 translate x*1 rotate translate y*10 } // Inside of box sphere {, 0.75 texture { T_Wood10 finish { specular 0.5 roughness ambient 0.35 } translate x*1 rotate }

4 Principe Permet le passage de la 3D à la 2D ◦Moteurs de rendu : scan line / raytracer ◦Temps réel / Non temps réel Permet la détection de collision Simule la diffusion de la lumière RaytracingScanline Advanced Lighting PossibleSlow More design control Need to cheat ShadowsEasy Slower, less control Faster, more control Need separate pass Reflection Refraction Easy Slower, less control Faster, More control Need separate pass Geometry Requires more memory Requires less memory

5 Le rendering Qu’est ce qu’un rayon ? ◦Un rayon possède 3 caractéristiques :  Une position de départ O  Un vecteur directeur unitaire DIR  Une distance t ◦L’équation d’un rayon est :  R = O + DIR * t

6 Le rendering Comment passer d’une scène 3D à une visualisation 2D ? ◦Une caméra (Position+ Orientation) ◦Un viewplan (Largeur+ Hauteur+ DistanceCam) ◦Une résolution d’image (xRes + yRes)

7 Le rendering Le principe est de tracer un rayon pour chaque pixel de l’image en partant de la caméra. viewPlaneUpLeft = camPos + ((vecDir*viewplaneDist)+(upVec*(viewplaneHeight/2.0f))) - (rightVec*(viewplaneWidth/2.0f)) pixViewPlan = viewPlaneUpLeft + rightVec*xIndent*x - upVec*yIndent*y Où xIndent et YIndent sont respectivement calculés de la facon qui suit : xIndent = viewplaneWidth / (float)xRes; yIndent = viewplaneHeight / (float)yRes;

8 Les collisions Détermination des silhouettes ◦Le but est de trouver le point P(t)=O+DIR*t ◦Solution de l’équation des formes primitives ◦Intersection du rayon et de l’objet Il faut trouver la solution t des polynômes de degré n (solutions analytiques) ◦Degré 1 pour les plans ◦Degré 2 pour les sphère et cylindres ◦Degré 3 ou 4 pour splines et torques

9 Les collisions Primitive de base : la Sphère ◦Equation : (X-Xc)²+ (Y-Yc)²+ (Z-Zc)²= r² ◦On substitue O x +DIR x *t à X (idem pour Y et Z) ◦On résoud l’équation polynomiale quadratique a*t² + b*t +c =0 obtenue, avec :  a = DIRx² + DIRy² + DIRz²  b = 2 * (DIRx * (Ox - Xc) + DIRy * (Oy - Yc) + DIRz * (Oz - Zc))  c = ((Ox - Xc)²+ (Oy – Yc)² + (Oz - Zc)²) – r² ◦Calcul du déterminant det=b²-4*a*c ◦Si det<0 pas de solution, det=0 une solution ◦Si det>0 deux intersections telles que :  t1 = (-b + sqrt(det)) / (2*a)  t2 = (-b - sqrt(det)) / (2*a)

10

11 Eclairage Un peu de lumière et de couleur !

12 Eclairage for each screen pixel generate a ray from the camera to the pixel intersect the ray with all objects in the scene for the closest intersection for each light in the scene generate a ray from the intersection to the light if not obstructed: Apply illumination spawn secondary rays (e.g., reflection, refraction) combine results

13 Eclairage Notion de distance ◦Utilisation des lois de Beer ◦Io : intensité initiale ◦C : concentration "molaire" en produit colorant ◦epsilon : propriété d'absorption du produit dissous ◦l : la distance I1 = Absorption L *Io

14 Eclairage Notion d’angle d’incidence ◦Les produits scalaires 0

15 Eclairage Notion d’angle d’incidence Couleur = Couleur(S) * scal * Couleur(L)

16 Textures Les matériaux ◦Material ≠ Texture char* mName; // Le nom du material. CColor mSpecularColor; // La couleur Specular (rattaché à la brillance de l'objet). CColor mDiffuseColor; // La couleur Diffuse (éclairage diffus). CColor mAmbientColor; // La couleur Ambient (éclairage ambient). CColor mSelfIllumColor; // La couleur de Self Illum (objets éméttant eux même de la lumiére). float mShininess; // La "brillance" du material (utilisé pour la réfléxion). float mShinestrength; // La puissance de brillance (coefficient couplé avec la valeur précédente). float mTransmittivity; // Le coefficient de transmission (utilisé pour la réfraction). float mReflectivity; // Le coefficient de réfléxion (utilisé pour la réfléxion).

17 Eclairage Détermination de la couleur d’un point Methode GetLightAt(Vector3D normal, Vector3D intersection, Material matl) retourne Couleur Calculer le vecteur LIGHTVECTOR Normaliser LIGHTVECTOR Calculer l'angle de frappe Si ANGLE <= 0 Alors COULEURFINALE = Couleur de fond Sinon COULEURFINALE = mDiffuseColor(mat) * couleur lumiére * ANGLE * I1 ; fsi Retourne COULEURFINALE Fin Methode GetLightAt.

18

19 Réflexion

20 Réfraction Réfraction ◦Lois de Descartes-Snell n2 / n1 = sin(ThetaT) / sin(ThetaI) n1 n2

21 Réflexion + Réfraction

22 Recursive Réflexion + Réfraction

23

24 Conclusion Très puissant mais coûteux en temps Des premières applications en temps réel

25 Conclusion Vers le temps réel ◦Changements algorithmiques  Traitement simultané de paquets de rayons  Meilleurs algorithmes pour la construction de kd- trees  Nouvelles structures d’index spaciaux pour les scènes dynamiques ◦Implémentation optimisée  Utilisation des dernières technologies processeur  Optimisation générale du code ◦Développement de nouveaux matériels  Massivement multi-core, multi-thread

26 Conclusion AnnéePuissanceResolution affichée FPS Processeurs Xeon 640x processeur quadri-coeurs Yorkfield en 45nm 768x processeurs Xeon X x72090 “Doing that math, at a 1024x768 resolution for a total of 786,432 pixels times 30 rays per pixel and 60 frames per second, you get billion rays per second required. The team at Intel estimates that within 2 years or so, the hardware will exist that will allow "game quality" ray tracing on a desktop machine. ”

27 Références Développement d’un Raytracer ◦http://www.alrj.org/docs/3D/raytracer/http://www.alrj.org/docs/3D/raytracer/ ◦http://www.massal.net/article/raytrace/page1. htmlhttp://www.massal.net/article/raytrace/page1. html Raytracer POV-Ray ◦http://www.povray.org/http://www.povray.org/ Raytracer temps réel ◦http://softwarecommunity.intel.com/articles/en g/2658.htmhttp://softwarecommunity.intel.com/articles/en g/2658.htm ◦http://www.zgdv.de/GameDays2007/Pages/Tal ks/Slusallek.pdf


Télécharger ppt "Ray-Tracing CASANAS Sylvain PASTOR Antoine PERCHET Frederic."

Présentations similaires


Annonces Google