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

 C Discussion :

Ray Tracing en C


Sujet :

C

  1. #1
    gjhffd
    Invité(e)
    Par défaut Ray Tracing en C
    Hep,

    Je me demandais si quelqu'un aurait un bon tuto de ray tracing
    en C ( pas de C++ ou autre ) juste du pur C.
    Je cherche depuis 2 jours sur google et je n'ai rien trouvé de concluent
    Je ne peux pas acheter de livre ( même me faire livré je suis actuellement hors France et le prix du bouquain pour la livraison sertai triplé )

    si quelqu'un å un exemple en C ou un Tuto en C ... je suis preneur

    Merci

  2. #2
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    De mémoire, POV-Ray est écrit en C "pur".

    Reste que côté tutoriel, lire le code de POV, c'est quand même un peu velu... Il te faut surtout bien comprendre le principe et les algos du ray-tracing avant de commencer l'implémentation, et ça demande de bouffer des maths et de la physique (surtout optique bien sûr) par brouettes entières... Dis-toi bien que là, le code est quasiment secondaire et n'intervient qu'au niveau de l'optimisation des calculs : le "gros" du problème, ce sont des maths et uniquement des maths.


    J'ai bien trouvé ce bout de tuto (merci Altavista), mais bon, c'est vraiment ultra basique... Cet exemple a l'air plus complet, mais c'est du C++, il faudrait donc le "traduire" en C (ce qui est très simple tant que l'on n'utilise ni héritage, ni polymorphisme dans les classes).
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  3. #3
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 372
    Points : 23 628
    Points
    23 628
    Par défaut
    Citation Envoyé par xa4ke Voir le message
    Je me demandais si quelqu'un aurait un bon tuto de ray tracing en C
    Tout dépend, également, de ce que tu veux vraiment faire. Comme le dit Mac LAK, les images de synthèse en 3D mettent en œuvre des mathématiques de haut niveau telles que tu pourrais les apprendre à l'université. Prévois une vie entière si ton objectif est de réécrire POV.

    Maintenant, si tu veux simplement faire le rendu d'une image simple « pour le principe », tu peux écrire un petit programme qui dessine un cube et deux sphères par exemple.

    L'idée consiste à placer dans un même repère la caméra, les objets et les sources de lumière, et à considérer ton écran comme un plan situé devant ta caméra, sur lequel viennent se projeter tous les rayons.

    Ensuite, l'idée n'est pas de savoir si tous les rayons émis par une source vont t'atteindre ou pas, mais plutôt de déterminer la couleur de chaque pixel de ton écran, pour avoir une image complète. Tu vas donc passer en revue tes pixels un par un, de gauche à droite et de haut en bas, et calculer à chaque fois la droite qui passe par la caméra et ton pixel.

    De là, tu vérifies si cette droite entre en intersection avec chacun de tes objets. Si ce n'est pas le cas, tu passes au suivant parce que cela signifie que rien ne se trouve dans ton champ de vision à cet endroit. Dans le cas contraire, tu trouves le point d'intersection avec l'objet en question puis, tu recalcules la droite passant par ce point avec chacune des sources de lumière, et tu calcules l'angle d'incidence. Si cette droite est presque parallèle à ton objet, ton pixel sera au plus sombre. Si elle est au contraire perpendiculaire, ton objet sera éclairé au maximum à cet endroit. Entre les deux, un sin(angle) te donnera la proportion exacte.

Discussions similaires

  1. Le Ray tracing
    Par m0a-Stelle dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 04/01/2009, 20h24
  2. Ray tracing CAML
    Par m0a-Stelle dans le forum Caml
    Réponses: 7
    Dernier message: 13/10/2008, 23h52
  3. [openGL] demande explication frustum, ray tracing, etc
    Par Aurelangelo dans le forum OpenGL
    Réponses: 1
    Dernier message: 22/03/2008, 21h02
  4. Tracer de rayon : ray tracing
    Par mr_samurai dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 04/02/2008, 08h38
  5. Tutoriel ray-tracing , pov-ray...
    Par Ghost Dog dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 02/09/2005, 14h16

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