Accueil > > > UN RAYTRACER EN C++ AVEC ARBRE CSG POUR LINUX (PORTABLE WIN32)
UN RAYTRACER EN C++ AVEC ARBRE CSG POUR LINUX (PORTABLE WIN32)
Information sur la source
Description
GwoinRay est un raytracer en C++ développer pour un projet de fin d'année sous Linux. Le programme lit un fichier script passé en paramètre et qui contient la scène à calculer. Différentes options (AntiAliasing, arbre CSG, faux bump, reflet, transparence, animation, ombres soft...) sont présentes et expliquées dans le fichier README.
Source
- EXEMPLE DE FICHIER SCENE:
- GwoinRay {
- ambiantlight <0.4,0.4,0.4>
-
- viewer {
- position <0,250,0>
- lookat <0, 200, 250>
- bank 0
- }
-
- plan {
- normale <0,1,0>
- distance 70
- diffuse <0.5, 0.9, 0.7>
- }
-
- #les boules
-
- sphere { centre <0, 131, -350> rayon 100 diffuse <1,1,1> reflection 0.9 brillance 5 }
-
- sphere { centre <-120, 150, 900> rayon 100 diffuse <1,1,1> reflection 0.2 brillance 20 }
- sphere { centre <-100, 130, 550> rayon 100 diffuse <1,1,1> transparence 0.9 diffraction -10 reflection 0.2 brillance 20 }
-
- sphere { centre <-500, 80,-250> rayon 150 diffuse <0.8,0.8,0.9> reflection 0.3 brillance 75 bump 6 }
-
- csg difference {
- sphere { centre <500, 250, -400> rayon 120 diffuse <0.52, 0.95, 0.9>}
- boite { from <400,150,-300> to <600,350,-500> diffuse <0.2,1,1> }
- }
-
- csg difference {
- boite { from <400,170,300> to <600,370,500> diffuse <0.8,0.5,1> }
- sphere { centre <500, 270, 400> rayon 120 diffuse <1,1,1> reflection 0.5 brillance 20 }
- }
-
- omni { position <0,430,0> rayon 800 couleur <1,0,0.85> }
- omni { position <-50,430,300> rayon 500 couleur <0.2,1,0.85> }
- }
EXEMPLE DE FICHIER SCENE:
GwoinRay {
ambiantlight <0.4,0.4,0.4>
viewer {
position <0,250,0>
lookat <0, 200, 250>
bank 0
}
plan {
normale <0,1,0>
distance 70
diffuse <0.5, 0.9, 0.7>
}
#les boules
sphere { centre <0, 131, -350> rayon 100 diffuse <1,1,1> reflection 0.9 brillance 5 }
sphere { centre <-120, 150, 900> rayon 100 diffuse <1,1,1> reflection 0.2 brillance 20 }
sphere { centre <-100, 130, 550> rayon 100 diffuse <1,1,1> transparence 0.9 diffraction -10 reflection 0.2 brillance 20 }
sphere { centre <-500, 80,-250> rayon 150 diffuse <0.8,0.8,0.9> reflection 0.3 brillance 75 bump 6 }
csg difference {
sphere { centre <500, 250, -400> rayon 120 diffuse <0.52, 0.95, 0.9>}
boite { from <400,150,-300> to <600,350,-500> diffuse <0.2,1,1> }
}
csg difference {
boite { from <400,170,300> to <600,370,500> diffuse <0.8,0.5,1> }
sphere { centre <500, 270, 400> rayon 120 diffuse <1,1,1> reflection 0.5 brillance 20 }
}
omni { position <0,430,0> rayon 800 couleur <1,0,0.85> }
omni { position <-50,430,300> rayon 500 couleur <0.2,1,0.85> }
}
Conclusion
Mon appli n'intègre pas les textures bitmap (juste procédurales), car je n'ai pas eu le temps de les mettre en place (projet développé en 1 week-end).
Le code peut-être assez complexe pour les débutants (templates, vector, héritages, ...) mais néanmoins util pour ceux qui auraient un projet à faire ;^)
j'allais oublié : l'affichage se fait dans un buffer OpenGL. C donc lui qui affiche dans une fenêtre GLUT.
G déveloper un autre raytracer en C qui prend en charge les textures mais pas l'arbre CSG (différence, union, intersection). Si ce projet vous interesse, envoyer moi un mail :^)
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
r-tree(arbre region) [ par bouchra22 ]
bonjour,svp aidez moi le plus tot possible;j'ai un exposé en c++ concernant R-tree,et j'ai besoin d'une implementation faite en c++;merci d'avance
creation récursive de l'arbre de codage de la compression Huffman [ par kuja2053 ]
Bonjour, Voila mon probleme : ayant un projet sur la compression de Huffman, j'ai décider de changer le format de l entete de mon fichier suite à un c
Construction d'un arbre à partir d'un fichier [ par psgkiki ]
Bonjour a tous, Ma question est comment construire un arbre contenant des données stockées dans un fichier. C'est pour un logiciel de devinette d'anim
completion de code avec kevelop [ par lilington ]
salut tout le mondetoujours dans ma migration progressive vers linux (fedora 5) j'ai commencer un peu avec les sockets. cependant comme avec ms visual
Théorie des graphes : algo de Kruskal [ par thespartan ]
Bonjour j'ai implémenté l'agorithme de kruskal qui sert à la recherche d'arbre recouvrant de poids minimal (arpm) dans un graphe pondéré seulement voi
Affichage d'un arbre dynamique(en C) [ par marocweb ]
bonjour tout le monde,j'ai un arbre déja crée en mémoire en utilisant les listes chainées et cela comme suit :Chaque noeud point vers une liste chainé
Gtk+, compil linux et headers [ par nollyflip ]
Salut à tous,Je souhaite (un peu pour le fun !) programmer quelques trucs en graphique avec gtk+ avec une couche réseau.Seulement je ne sais pas comme
PING linux [ par stillfelil ]
Bonjour tout le mondeJe voudrais coder un PING sous LINUX avec detection d'eventuelles erreurs ( Time to live exceeded ... etc.)j'au beau chercher et
interfaçage avec C sous linux [ par trustme25 ]
comment avec le langage C sous linux crée un interface graphique?
Problèmes de Création de Threads Windows/Linux [ par LaKiks51 ]
Bonjour Le but est de savoir combien de threads peuvent etre executer simultanément c'est à dire que j'ai un executable qui réalise une opération pe
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
MATRICE TEMPLATEMATRICE TEMPLATE par hjr2610
Cliquez pour lire la suite par hjr2610 RE : SAC A DOS RE : SAC A DOS par hadjkaddour
Cliquez pour lire la suite par hadjkaddour
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|