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

Algorithmes et structures de données Discussion :

Tracer de rayon : ray tracing


Sujet :

Algorithmes et structures de données

  1. #1
    Membre éprouvé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Points : 1 256
    Points
    1 256
    Par défaut Tracer de rayon : ray tracing
    Bonjour,

    Voila je travaille sur la propagation des ondes electromagnetiques dans un etage d'un bâtiment ... Le probléme revient à la resolution des équations de Maxwell.

    Je veux implementer l'algorithme du tracer de rayons , mais je ne sais pas du tout comment m'y prendre . Je connais bien la théorie du truc, mais de la à passer à l'implementation je bloque:
    comment representer un étage ? comment representer les murs dans un etage ? les rayons generés par la source ? sachant qu'un rayon peux donner naissance à plusieurs autres rayons quand il rencontre un obstacle.


    J'ai bouquiné beaucoup d'articles sur le sujet, aucun chercheur ne propose le code source de sa méthode. J'ai aussi cherché sur le net, mais je n'est trouvé que des fragments de code inutiles pour moi, car je dois integrer les phénomenes de reflexion/refraction (Snell-Descartes), et diffraction (Uniform theory of diffraction).

    Si quelqu'un a deja traité le sujet, ou a une idée ou un lien qu'il me viens en aide

    j'éspére avoir etais clair. N'hésitez pas à me poser des question sur le sujet si cela vous interesse .
    mercii,
    AlloSchool, votre école sur internet.

  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
    En fait, le lancer de rayon fonctionne bien si tu es en champ lointain. (à ne pas oublier pour savoir là où tu fais des erreurs)

    comment representer un étage ?
    C'est de la géométrie, tout bon modeleur peut te permettre de la créer.

    comment representer les murs dans un etage ?
    Idem, un mur, c'est au choix, un plan , deux (avec des propriétés différentes)

    les rayons generés par la source ?
    Simple, tu prends la directivité de ta source et tu lances le rayon en fonction de celle ci.

    sachant qu'un rayon peux donner naissance à plusieurs autres rayons quand il rencontre un obstacle.
    Oui, c'est de la diffraction, c'est très simple : dès que tu arrives sur une surface, tu regardes si l'interaction qui va intervenir est une diffraction. Si c'est le cas, tu relances tes plusieurs rayons.

    Il faudrait que tu nous dise ce qui bloque exactement, parce sinon, la technique est simple.

  3. #3
    Membre éprouvé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Points : 1 256
    Points
    1 256
    Par défaut
    Citation Envoyé par PRomu@ld Voir le message
    En fait, le lancer de rayon fonctionne bien si tu es en champ lointain. (à ne pas oublier pour savoir là où tu fais des erreurs)
    Inexact, le lancer de rayon fonctionne partout dans l'environement. Ou plutot le champs d'application depend du modéle utisé, dans mon cas tout l'environnement de propagation est pris en compte car tous les phenomnes physiques sont intergrés.

    En fait, il faut faire la différence en lancer et tracer de rayon:

    Lancer de rayon (Ray Launching brute-force) : on envoie des rayons avec un ecart angulaire predefini.

    Tracer de rayon (Ray Tracing) : pour un point donnée du plan, on cherche les rayons qui passent par ce point et qui ont pour origine notre source de rayonnement. Dans ce cas il n'exite pas de rayon superflux.

    Dans mon cas c'est plutot du tracer de rayon .

    Je bloque sur la generation de rayons qui part de la source pour arriver à un point donnée (soit en ligne direct, soit apres des reflexions ou meme diffractions).
    AlloSchool, votre école sur internet.

  4. #4
    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
    Inexact, le lancer de rayon fonctionne partout dans l'environement
    Non, ça ne marche pas en champ proche, tu ne peux pas y appliquer l'optique géométrique et donc pas possible d'appliquer une méthode de lancer de rayons.

    Je bloque sur la generation de rayons qui part de la source pour arriver à un point donnée (soit en ligne direct, soit apres des reflexions ou meme diffractions).
    Ca nécessite d'avoir quelque chose de déterministe et donc avoir une solution analytique au problème, ce qui a mon avis n'est pas possible.

  5. #5
    Membre éprouvé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Points : 1 256
    Points
    1 256
    Par défaut
    Citation Envoyé par PRomu@ld Voir le message
    Non, ça ne marche pas en champ proche, tu ne peux pas y appliquer l'optique géométrique et donc pas possible d'appliquer une méthode de lancer de rayons.
    Je traite la propogation des ondes WLAN (longueur d'onde 12cm pour 2.5GHz), la problématique du champs proche ne se pose même pas dans mon cas. Puisque le point qui sont dans ce champs ( à une longeure d'onde de la source ) sont directement visible par la source.

    Le champs proche interviens quand on fait de la microscopie : miscroscope a effet tunnel ou à champs proche. Et dans ce cas la je suis d'acord avec toi sur le fait que l'OG marche plus. Plus encore, c'est la diffraction qui permet d'amplifier la réponse et ainsi echappé au principe d'incertitude de Heisenberg pour voir plus petit....


    Citation Envoyé par PRomu@ld Voir le message
    Ca nécessite d'avoir quelque chose de déterministe et donc avoir une solution analytique au problème, ce qui a mon avis n'est pas possible.
    Tu te trompe, il existe des solutions :
    http://en.wikipedia.org/wiki/Ray_tracing
    Une demo java du truc (Ray casting) : http://pixellove.eu/wega/
    AlloSchool, votre école sur internet.

  6. #6
    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 champs proche interviens quand on fait de la microscopie : miscroscope a effet tunnel ou à champs proche. Et dans ce cas la je suis d'acord avec toi sur le fait que l'OG marche plus. Plus encore, c'est la diffraction qui permet d'amplifier la réponse et ainsi echappé au principe d'incertitude de Heisenberg pour voir plus petit....
    Pas toujours en microscopie, tout dépend de la longueur d'onde des ondes que l'on veut propager.

    Tu te trompe, il existe des solutions :
    http://en.wikipedia.org/wiki/Ray_tracing
    Une demo java du truc (Ray casting) : http://pixellove.eu/wega/
    En fait, je n'avais pas compris ce que tu disais, entre les physiciens et les informaticiens, nous avons les mêmes termes mais pas pour décrire les mêmes choses ...

    Ce que tu appelle le lancer de rayon c'est du light tracing (tracé de lumière) et ce que tu appelles tracé de rayon c'est pour nous du lancer de rayon (backward raytracing).

    En fait, la technique de base est simple et purement récursive.

    Tu lances des rayons primaires (issus de l'oeil ou du capteur dans ton cas), à chaque intersection, tu récupères la contribution directe si l'intersection se fait avec la source. Si tu n'es pas sur une source, tu récupère les contributions extérieures. Ces contributions extérieures étant obtenue de la même façon (contribution directe de la lumière + contribution extérieure).

  7. #7
    Débutant Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Points : 162
    Points
    162
    Par défaut
    je ne sais pas si ça va aider :

    http://ensiam.free.fr/phpBB2/viewtopic.php?t=9

    c'est du pascal, programmer avec les pieds mais l'idée est là. Ca affiche un cube.

  8. #8
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    J'apporte mon grain de sel a la discussion sous forme synthetique:

    Image de synthèse

    Modèle d'illumination locale (pas d'interaction entre objets)
    • shading: source -> objet
    • Ray casting: source -> objets visibles


    Modèle d'illumination Globale
    • Ray tracing: camera -> objet (-> objet ...) -> source
    • bi-directional Path tracing: camera -> objets <- source
    • Photon Mapping (avatar de Promu@ld): source -> objet -> objet...
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  9. #9
    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
    Pas tout à fait.

    Ray tracing: camera -> objet (-> objet ...) -> source
    Ca c'est plus du path tracing ou rendu de monte carlo (c'est pas tout à fait la même chose) mais au niveau sens des interactions, c'est pareil.

    Le raytracing, c'est un cas particulier du path tracing où tu ne considères que l'éclairage direct et les directions spéculaires (réflexion + réfraction). A ce titre, ça n'est pas un algo d'illumination globale.

    Photon Mapping (avatar de Promu@ld): source -> objet -> objet...
    Pas exactement non plus. En fait dans le sens des interactions, c'est comme le path tracing bidirectionnel si on veut tout prendre en compte (surfaces spéculaires et glossy).

  10. #10
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par PRomu@ld Voir le message
    A ce titre, ça n'es pas un algo d'illumination globale.
    Je conteste.

    A partir du moment ou des sources indirectes sont prises en compte, c'est de l'illumination globale. Meme si le raytracing ne prend que très très peu de type de sources indirectes c'est suffisant pour le ranger dans les modèles d'illumination globale. Enfin bon, c'est subjectif... mais wikipedia est d'accord avec moi.

    Pas exactement non plus. En fait dans le sens des interactions, c'est comme le path tracing bidirectionnel si on veut tout prendre en compte (surfaces spéculaires et glossy).
    Oui c'est vrai. J'ai fait un résumé très succinct des différences fondamentales, mais on peut toujours améliorer chaque technique.


    PS: personnellement je préfère ajouter une passe de raytracing après le photon mapping "simple" plutôt que d'implémenter le bidirectionnel dans le photon mapping.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  11. #11
    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
    A partir du moment ou des sources indirectes sont prises en compte, c'est de l'illumination globale. Meme si le raytracing ne prend que très très peu de type de sources indirectes c'est suffisant pour le ranger dans les modèles d'illumination globale. Enfin bon, c'est subjectif... mais wikipedia est d'accord avec moi.
    Dans je petit monde de la recherche et du rendu, le raytracing ne fait pas parti des algos d'illumination globale dans le sens où les inter réflexions ne sont pas calculées mais donnés empiriquement sous forme d'un terme ambiant constant.

    Alors oui, pour une scène composée uniquement de surfaces spéculaires ou une scène composée que d'un triangle (ou plus généralement un seul objet convexe), le raytracing résout l'équation du rendu pleinement, mais ça fait trop peu pour être considéré comme un algo générique d'illumination globale.

    D'ailleurs, Whitted (le père du raytracing), lorsqu'il a présenté sa technique ne le présentait pas comme un algo d'illumination globale mais une amélioration des algos de shading pour prendre en compte les effets de réflexions et réfractions (le papier officiel s'appelle "An improved illumination model for shaded display")

  12. #12
    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
    En ce moment, j'essaie de concevoir un raytracer interactif, et ce que tu dis Romuald m'interpelle : on ne peut pas l'utiliser en champ proche ? Pourquoi ? Un grand nombre d'exemples du ray tracing est en chanp proche

  13. #13
    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
    Pourquoi ? Un grand nombre d'exemples du ray tracing est en chanp proche
    Parce que l'optique géométrique ne peut pas s'appliquer. (les fronts d'onde ne peuvent pas être considérés comme plan). En synthèse d'image ça ne pose pas de problèmes, mais dans d'autres domaines ça pose des problèmes (un prof de radiocom nous disait que ça posait des pb d'étude de propagation d'onde radio lorsque tu étais trop proche de l'antenne). Je ne suis pas un spécialiste de la radiocom alors je ne fais que répéter ce qu'on m'a dit

  14. #14
    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
    Citation Envoyé par PRomu@ld Voir le message
    Parce que l'optique géométrique ne peut pas s'appliquer. (les fronts d'onde ne peuvent pas être considérés comme plan). En synthèse d'image ça ne pose pas de problèmes, mais dans d'autres domaines ça pose des problèmes (un prof de radiocom nous disait que ça posait des pb d'étude de propagation d'onde radio lorsque tu étais trop proche de l'antenne). Je ne suis pas un spécialiste de la radiocom alors je ne fais que répéter ce qu'on m'a dit
    Ah, OK Dans ce cas, effectivement, je suis d'accord avec lui, c'est vrai

Discussions similaires

  1. Ray Tracing en C
    Par gjhffd dans le forum Débuter
    Réponses: 2
    Dernier message: 01/09/2009, 14h32
  2. Le Ray tracing
    Par m0a-Stelle dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 04/01/2009, 21h24
  3. Ray tracing CAML
    Par m0a-Stelle dans le forum Caml
    Réponses: 7
    Dernier message: 14/10/2008, 00h52
  4. [openGL] demande explication frustum, ray tracing, etc
    Par Aurelangelo dans le forum OpenGL
    Réponses: 1
    Dernier message: 22/03/2008, 22h02
  5. Tutoriel ray-tracing , pov-ray...
    Par Ghost Dog dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 02/09/2005, 15h16

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