IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Projets Discussion :

Création d'un raytracer en c++


Sujet :

Projets

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 27
    Points : 2
    Points
    2
    Par défaut Création d'un raytracer en c++
    chui en train d'écrire un ptit raytracer en c++ sans prétention. Je serais interessé d'avoir des conseils d'autres developpeurs. Merci

    Voici l'adresse de mon site
    Xray's homepage

  2. #2
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Etant aussi un peu intéressé par le domaine, un lanceur de rayon tout seul n'a pas grand intérêt.

    Ce qui compte, c'est ce que tu veux faire avec et te fixer un objectif plus ou moins précis.

    Perso, ce qui m'intéresse, c'est l'exactitude physique du résultat (je met de coté l'aspect perceptuel de coté).

    Ce qui est bien avec le lancer de rayon, c'est que la méthode de base est relativement simple. Ensuite, c'est très évolutif, tu y mets un peu ce que tu veux : nouvelles primitives, nouveaux matériaux, nouvelles sources de lumières, nouveaux algorithmes.

    Autre chose sympa, c'est son caractère universel. Outre le fait de produire de jolies images, c'est une technique qui peut s'appliquer un petit peu partout, en synthèse d'image, en simulation physique (diffusion de chaleur, diffusions d'ondes, ... )

    Tu as de bons tuts dans les cours et tutoriels C++ : http://cpp.developpez.com/cours/

  3. #3
    Membre éclairé
    Avatar de divxdede
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 525
    Points : 844
    Points
    844
    Par défaut
    Sympathique.
    Je suis allez sur ton blog, le résultat est déja trés bon.
    Felicitation.
    JBusyComponent, une API pour rendre occupé un composant swing.
    SCJP Java 6.0 (90% pass score)

  4. #4
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 27
    Points : 2
    Points
    2
    Par défaut
    Merci .
    Pour l'instant vu que je fais ça en dilétante ,donc je dois avouer que c'est plus l"aspect visuel du rendu qui m'interresse. En effet afin d'obtenir quelque chose de physiquement correcte, j'ai l'impression qui faut lire pas mal. J'ai découvert ya pas longtemps l 'existence du photon mapping par exemple .Je sais pas quel niveau mathématique cela implique d'où ma venue sur le forum..

  5. #5
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Le photon mapping n'est pas forcément la meilleure technique (la technique de base pose des problèmes aux bords, sur des géométries particulières, ... )

    En effet afin d'obtenir quelque chose de physiquement correcte, j'ai l'impression qui faut lire pas mal.
    Pas mal, oui et non. Pour avoir un résultat à peu près correct, il faut une technique correcte, des brdf/btdf correctes, des matériaux corrects en entrée.

    Je sais pas quel niveau mathématique cela implique d'où ma venue sur le forum..
    Le niveau mathématique n'est pas extraordinaire. Si tu sais ce qu'est une intégrale, tu as déjà fait un très grand chemin.

  6. #6
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 27
    Points : 2
    Points
    2
    Par défaut
    Tu peux me donner une liste de techniques ,avantage , inconvénients de rendu pour l'ambiant si ça te dérange pas. J'ai entendu parler du photon mapping, de la radiositée , par contre j'ai entendu parler de monté carlo , ca consiste en quoi ? MErci .

  7. #7
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Les techniques de rendu d'illumination globale sont assez nombreuses.

    -> La méthode de monté carlo est la technique la plus générale à base de lancer de rayon. Elle consiste à résoudre l'équation du rendu en effectuant un échantillonnage (d'où le terme de méthode de montécarlo). En gros, à chacune des intersections tu lance plein de rayons pour récupérer l'illumination des lumières, des autres objets, des éventuels milieux participants.

    -> Le path tracing. C'est une modification de la façon dont on effectue le rendu de monté carlo. Au lieu d'avoir à relancer des rayons dans toutes les directions, on lance uniquement un seul rayon à chaque intersection (éventuellement on lance des rayons d'éclairement, mais c'est tout). L'idée est de lancer alors plusieurs centaines de ces rayons à partir des pixels de la caméra.

    -> Le light tracing. C'est un peu la même chose que le path tracing, sauf qu'ici, tu lances des rayons depuis les sources lumineuses et tu espère qu'ils vont rencontrer le plan image (je te laisse imaginer le nombre de rayon qu'il faut)

    -> Le path tracing bidirectionnel. C'est une combinaison du path tracing et du light tracing. Au lieu de lancer des rayons uniquement à partir de la caméra ou des lumières, tu en lances simultanément depuis les sources de lumière et la caméra. L'idée de base de l'algorithme, c'est tu lances crée un chemin depuis la caméra et un chemin depuis la lumière, tu les connectes et tu récupère l'illumination, il y a des méthodes pour combiner les deux chemin en utilisant les points qui les composent.

    -> Le MLT et l'ERPT (Metropolis Light Transport et Energy Redistribution Path Tracing), ce sont des méthodes qui utilisent le path tracing bidirectionnel. En fait au lieu de créer de nouveaux chemins, on utilisent ceux qu'on a déjà crée et on leur applique des mutations (modification légère ou plus importante du rayon). C'est très pratique lorsque tu as trouvé une zone très lumineuse tu effectues des variations très légère et tu exploites au mieux cette énergie.

    -> Le photon mapping. La technique est actuellement l'une des plus employée dans les moteurs de rendu commerciaux. L'idée de base, c'est de découpler la lumière de la géométrie. Tu lances des photons dans la scène et à chaque intersection avec la scène, tu stockes un photon, ensuite lors du rendu, tu effectues une passe de lancer de rayon classique et tu calcules l'illumination indirecte en effectuant une collecte de photons (tu récupère les photons les plus proches du point d'impact pour calculer l'illumination). La collecte des photons se fait à l'aide d'une structure accélératrice (la carte de photons ou photon map), c'est généralement un KD-Tree.

    -> L'irradiance caching. C'est une technique qui utilise l'une des techniques au dessus pour calculer l'illumination indirecte diffuse (les inter réflexions entre objets), elle se base sur l'idée que les inter-réflexions produisent des variations de lumières qui sont très lentes, et donc qu'on a pas à la calculer partout. Tu calcules précisément l'illumination indirecte à certains points et à d'autres tu l'interpoles à l'aide des points précis.

    Voilà pour les techniques de base, ensuite, il y a énormément de variations ou d'autres techniques pour calculer l'illumination globale et toutes te les citer me prendrait un temps considérable.

    Pour ce qui est des points forts ou faibles des méthodes du dessus, en fait ils sont plus ou moins nombreux.

    Pour les techniques de monté carlo, le principal problème, c'est le bruit. Ces techniques produisent des images très bruités et pour avoir quelque chose de joli, il faut compter énormément de temps (pour avoir deux fois moins de bruit, il faut lancer quatre fois plus de rayons). Le calcul de certains effets peut être très long. Pour le path tracing, le calcul de l'illumination indirecte à partir d'une source de lumière très petite peu être long. Par la même occasion, les caustiques sont très long à calculer et il faut considérablement beaucoup de rayons pour avoir quelque chose de joli.

    Le light tracing n'en parlons pas, il faut beaucoup trop de temps pour avoir quelque chose de correct. Ca ne reste qu'un outil théorique (on alors dans des conditions très particulières)

    Le path tracing bidirectionnel est une technique des plus généralistes qui permet de gérer tous les effets lumineux mais souffre toujours du bruit. Pour palier les problèmes du bruit, il y a le MLT ou l'ERPT mais là, c'est la technique qui est compliqué (comment gérer les mutations ?), il y a de nombreux paramètres à fixer ce qui rend l'utilisation compliquée (et on ne comprend pas toujours ces paramètres, ils sont généralement fixés de manière empirique) . Cependant une fois les paramètres sont bien réglées, on obtient des images plutôt pas mal (le moteur de rendu maxwell renderer est basé sur du MLT)

    Le photon mapping permet de gérer des images plutôt sympa mais souffre de certains défaut. Il y a les problèmes des bords, les problèmes d'estimations aux surfaces concaves, le choix de certains paramètres (le nombre de photons, le rayon de recherche, le nombre de photon à chercher, ...), les problèmes de sur échantillonnage pour les milieux participatifs, la gestion des surfaces glossy, l'utilisation quasi obligatoire du final gathering, bref tout un tas de problèmes et de paramètres qui peuvent en faire une technique quelque fois délicate à mettre en oeuvre. Le gros avantage c'est qu'elle est considérablement plus rapide que les autres techniques d'où sa popularité (même si les images produites ne sont pas toujours correctes d'un point de vue physique)

    Il existe de nombreux documents ou livres qui parlent de ces techniques, si tu as besoin de bibliographie, dis le.

  8. #8
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    XRayDev je t'encourage à continuer mais y'a pas de démo à télécharger..
    tu peux t'inspirer de Persistence Of Vision par exemple

  9. #9
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 27
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup Pr@muald, je vais digérer ce que tu m'as livré comme informations et faire des recherches. C'est cool ta réponse est exhaustive ca va m'ouvrir d'autres pistes. Tu as retenu quelle technique finalement pour ton raytracer ? Si tu as des reférences de bouquins sympas (en francais de préférence) je suis preneur.

    Mat.M je fourni pas de démo pour l'instant car il existe des tonnes de softs plus élaborés que le mien , en plus les scènes sont codés, j'ai pas écrit de parser encore, l'importer 3ds fonctionne que partielement. En fait j'attaque sur tous les fronts et du coup le code est vraiment minimaliste et bidoullé à fond, ce qui m'interessait c'était d'avoir un rendu le plus vite possible. J'ai pas d'interface graphique je rend dans une fenêtre directement donc pour l'instant l'intérêt de mon prog est plus que limité. Ca faisait un bail que j'avais pas codé , je me rappel plus comment fonctionne la MFC ... je préfère me concentrer sur le rendu bien qu'une interface graphique va devinir urgente.. lol merci pour tes encouragements.

  10. #10
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Tu as retenu quelle technique finalement pour ton raytracer ?
    J'ai utilisé du photon map et du path tracing bidirectionnel (les deux codés comme des pieds ), plus récemment, je me suis mis au lancer de rayon interactif et dynamique (enfin mes études m'y obligent ) . Si j'ai le temps j'aimerai bien me coder la technique photon ray splatting

    Si tu as des reférences de bouquins sympas (en francais de préférence) je suis preneur.
    En français absolument aucun. En anglais, tu peux regarder (au moins) ceux-ci :

    -> Realistic Image Synthesis Using Photon Mapping, H.W. Jensen.
    -> Advanced Global Illumination, Dutré, Bala, Bekaert
    -> Physically Based Rendering, Pharr, Humphreys

    Il y a aussi énormément de papiers sur ces sujets. Tu peux lire ces deux thèses :

    -> Robust Monte Carlo Methods for Light Transport Simulation, E. Veach (c'est l'inventeur du MLT)
    -> Mathematical Models and Monte Carlo Algorithms for Physically Based Rendering, E. Lafortune (c'est l'inventeur, en parallèle de Veach, du path tracing bidirectionnel)

  11. #11
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 27
    Points : 2
    Points
    2
    Par défaut
    Je vais jetter un coup d'oeil sur les publi dont tu me parles mais j'ai peur de rien y piger. ca fait un bail que j'ai pas fait de maths et quand chui tombé sur des publis sur le web je pigeais que dalle....
    tiens je connaissais pas le photon ray splatting !!
    Les techniques sortent plus vites que j'ai le temps de les énumérer

  12. #12
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Je vais jetter un coup d'oeil sur les publi dont tu me parles mais j'ai peur de rien y piger. ca fait un bail que j'ai pas fait de maths et quand chui tombé sur des publis sur le web je pigeais que dalle....
    N'hésite pas à poser tes questions. Il faut que tu retiennes une chose, les choses que tu verras même si elle te paraissent hyper compliquées ne le sont pas forcément.

    tiens je connaissais pas le photon ray splatting !!
    C'est relativement récent (Eurographics 2007) :

    http://www.mpi-inf.mpg.de/~rherzog/P...herzog07EG.pdf

    Même si tu ne comprend pas la technique, regarde les comparaisons entre photon map et cette technique pour te rendre compte à quel point le photon map te crée des choses qui ne sont pas correctes.

  13. #13
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Xraydev si tu ne connais pas les MFC y'a pas grand chose à apprendre: tu crées un projet SDI avec une CView et dans le OnDraw avec le HDC tu peux dessiner et tracer l'image..
    Tu peux prendre SetPixel mais c'est lent mieux vaut prendre SetDIBBits

  14. #14
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 27
    Points : 2
    Points
    2
    Par défaut
    ca l'air interessant le photon splatting, là je rentre du taff, j'ai la gueule enfarinée mais c'est clair que ca doit valoir le détour . J'ai parcouru vite fait la doc, pour chercher les comparaison mapping /scattering . Les images sont impressionnates . C'est vrai que c'est le délire comme même d'aller simuler des photons, quand j'ai découvert la technique j'ai trouvé ça super vendeur et stimulant intellectulement bien que je m'y sois pas attelé pour l'heure.
    Je te remercie pour le lien , et j'aurai surement un tas de questions a te poser si ça te dérange pas (surement sur des notions de maths).

    Pour Mat.m, c'était pas trop le coup du Cview qui m'embêtait mais je savais que si je commencais mon appli avec les MFC, j'aurais passé un temps fou à tweaker et designer mon interface (chui capable de rester 3h choisir la forme d'un bouton ou sa couleur) , je préférais tailler dans le vif du sujet càd le raytracer, mais je vais migrer vers MFC tantôt . lol .J'ai quelques trucs à faire avant pour homogenéiser le code car j'ai pris quelques libertées qu'il faut que je corrige maintenant sinon le boulot sera plus long après . En tout cas merci à vous deux pour votre intérêt , ca fait plaisir ...

  15. #15
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Salut.
    Je viens de découvrir ce thread. Intéressant et beau travaille .
    Pour commencer, tu devrait regarder ce PDF :
    http://www.cs.kuleuven.be/~phil/GI/

    Il explique le plus gros. Brdf, monté carlos, géométrie ...
    Je ne sais pas jusqu'où tu veut aller.

    Sinon juste quelque remarque sur deux méthodes que je connaît assez bien:

    Monté carlos : sont grand intéré est aussi dans la simplification du calcul de la brdf en enlevant des cosinus dans le Calcul pendant la discretisation de l'hémisphère (ou de la sphère pour des surface translucide). Couplé avec la méthode de la roulette russe et c'est encore plus rapide . Mais c'est vrai que c'est assez bruité. Pour du visible cela as peu d'intérêt mais pour de l'IR y as pas trop le choix (toute surface est émettrice de lumière!!!).

    Photon map : est trés bonne pour calculer les partie diffuse. Sa grande puissance ce trouve dans la possibilité de généré des effets de caustique. Un beaucoup plus intéressant pour du rendu urbain, et l'éclairage indirect que génère les buildings sur le sol!!!

    Le bute de toute ces méthodes est d'accélérer les calculs et permettre d'atteindre rapidement certain effet visuel.

    A toit de voir jusqu'où tu veut aller. Certain commence à en faire avec les carte graphique

    Bon courage

    Voici un autre site avec beaucoup de ressource pour le rendu.
    http://www.vterrain.org/

  16. #16
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Je viens ausis de voir ça, tu vas beaucoup plus vite que moi pour implémenter un ray tracing (j'en suis encore au début, mais c'est surtout que je n'ai pas le temps d'avancer, rédaction oblige !).

    Tu fais du suréchantillonnage de ta scène ? Tu as optimisé la recherche des primitives interceptées ? Ce sont des sujets que j'aborderai dans un tutoriel (dans 10 ans si tout va bien ).

  17. #17
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Ha oui tien. Bonne question.
    Qu'utilise tu pour découper ta scène??
    Grille régulière? octree?? BoudingBox?? BSP-Tree?? ...
    tien en cherchant je suis tombé sur ca
    http://www.flipcode.com/archives/Ray...oduction.shtml

  18. #18
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Si c'est du realtime que vous cherchez, je pense que ce forum est une grosse source :

    http://ompf.org/forum/

    Si c'est de l'interractif, en fait, il suffit d'avoir une bonne structure accélératrice pas de réflexions/réfraction et une source ponctuelle et ça passe tout seul (sur le XYZ-dragon et l'happy buddha je suis à plus de 2 fps), sinon, il faut passer en ray-bundle (4 rayons à la fois), mais c'est plus délicat à gérer.

  19. #19
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 27
    Points : 2
    Points
    2
    Par défaut
    nan nan pour l'instant c'est brute de décoffrage, j'ai un peu honte mais le prog est très basic pour l'isntant, en fait dans l'esprit j'étais parti pour raytracer quelques spheres et voir .Du coup vu que ca rendait pas mal je me suis is tiens j'ajoute ça et ça . Pour les intersections y'a rien d'optimisé (c'est pour ça que le rendu est long), j'utilise des bounding spheres, je pense implémenter un KD tree (déjà pour utiliser le photon mapping).
    J'avais implémenté le supersampling mais je l'ai viré lors de l'implémentation de la profondeur de champs qui est très gourmande en calcul (je fais un grand nombre de passes pour avoir une qualité correcte, du coup je me posais des questions sur les pseudo number savoir si la fonction RND() était judiscieuse ou pas , j'ai vu d'autre générateur de pseudo nombres aléatoires mais j'ai pas étudié la question en plus je crois que la distribution doit suivre une courbe de Gauss.). Pareille pour les ombres douces, ca demande pas mal de calculs en plus (je fais bouger la source lumineuse sur une surface), là j'ai même pas essayé une scene complexe + ombres douces + prof champs car je vais exploser mon PC .lol
    Alors je me demande si j'ai bien implementé ces fonctions, faudra que je voie d'autres raytracer .

    J'ai trouvé ce lien , le rendu est super sympa aussi
    http://www.toxicengine.org/index.php

    Au fait merci pour le lien sur le compendium, ca va être complexe pour moi mais ca fait une base de travail .

  20. #20
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par Xraydev Voir le message
    j'utilise des bounding spheres, je pense implémenter un KD tree (déjà pour utiliser le photon mapping).
    Y as les hierarchique oriented boudingbox qui semble etre trés performant(je ne sais plus si c'est le nom mais c'est le concept)
    Citation Envoyé par Xraydev Voir le message
    questions sur les pseudo number savoir si la fonction RND() était judiscieuse ou pas , j'ai vu d'autre générateur de pseudo nombres aléatoires mais j'ai pas étudié la question en plus je crois que la distribution doit suivre une courbe de Gauss.).
    faudrait que tu regarde du coté de boost random
    http://matthieu-brucher.developpez.c.../boost/random/

    Citation Envoyé par Xraydev Voir le message
    Pareille pour les ombres douces, ca demande pas mal de calculs en plus (je fais bouger la source lumineuse sur une surface), là j'ai même pas essayé une scene complexe + ombres douces + prof champs car je vais exploser mon PC .lol
    Un astuce est lorsque tu as une ombre, tu rejete quelques rayon aléatoirement, proche de la direction du rayon entre le pixel et la source.

    Citation Envoyé par Xraydev Voir le message
    Au fait merci pour le lien sur le compendium, ca va être complexe pour moi mais ca fait une base de travail .
    Ça ne l'est pas tans que ça en faite. Le compendium donne une expliquation physique du lancer de rayon de BASE. Un fois compris à peu prés le principe, tu comprendra mieux les optimisations

Discussions similaires

  1. Live coding : création d'un raytracer GPU en 20 minutes
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 09/02/2014, 19h29
  2. Création d'une Fenêtre pour afficher un rendu Raytracer.
    Par vmfa-2 sven dans le forum API graphiques
    Réponses: 3
    Dernier message: 03/06/2008, 15h47
  3. [Kylix] Création d'un fichier lien
    Par DrQ dans le forum EDI
    Réponses: 2
    Dernier message: 14/05/2002, 21h30
  4. Création image BMP
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 16h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo