Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1531 connectés 

  FORUM HardWare.fr
  Graphisme

  Prog Grafik : Lancer de rayons...

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

Prog Grafik : Lancer de rayons...

n°11926
Dav Vador
Posté le 11-12-2001 à 16:45:30  profilanswer
 

Lorsque mon prof nous a filé le sujet du projet, je l'ai pri pour un fou sachan kil ne nou laissai keu 2 semaine, mais maintenan keu je voi ce keu G fai en 2/3 jours, je me dis keu C faisable...
 
Voilà kks images que j'ai généré (en ppm puis sauvegardées en jpg et png)...
 
http://www.multimania.com/davvador2416/graphisme/raytracing/image13.jpg
 
http://www.multimania.com/davvador2416/graphisme/raytracing/image26.jpg
 
http://www.multimania.com/davvador2416/graphisme/raytracing/image27.jpg
 
Les mêmes au format PNG (même taille et sans perte de kalité, mais pa lisible par tous).
http://www.multimania.com/davvador [...] mage13.png
http://www.multimania.com/davvador [...] mage26.png
http://www.multimania.com/davvador [...] mage27.png
 
 
Et puis les sources... même pas 500 lignes pour le lancer de rayons...
http://www.multimania.com/davvador [...] racing.zip
 
Les commentaires viendront avant les vakance (C la date limite de rendu du projet), et pa mal de modif, à komancer par l'import de scènes à partir de fichier...
Pour l'instant, si on ne passe pa de paramètres, l'image est généré sous OpenGL et si on passe un nom de fichier, au format ppm.
Le code marche sous Linux et sous Windows (les makefiles sont dans le zip).
 
Jusqu'aux vakance, je vais privilégié ce sujet pluto keu l'otre sur mon moteur3D, mais après, je devrai pouvoir me remettre o 2.
 
A suivre... ;)

 

[edtdd]--Message édité par Dav Vador--[/edtdd]

mood
Publicité
Posté le 11-12-2001 à 16:45:30  profilanswer
 

n°11928
Dav Vador
Posté le 11-12-2001 à 16:53:14  profilanswer
 

Au fait, si y'a kk1 ki si connait, je cherche l'équation d'un plan ki fait des ondes (sortes de vagues) à base de cosinus..
Merci :jap:

n°11930
Le Castor
Neurasténique...
Posté le 11-12-2001 à 17:01:00  profilanswer
 

c un peu de la prog, ça. Post le même topic dans la rubrique porg, tu y trouvera réponse
 
au fait, c quoi le sujet du projet ?


---------------
W3C : Leading the Web to Its Full Potential... - Membre du W3C l33t club
n°11935
Dav Vador
Posté le 11-12-2001 à 17:06:52  profilanswer
 

Le Castor a écrit a écrit :

c un peu de la prog, ça. Post le même topic dans la rubrique porg, tu y trouvera réponse
 
au fait, c quoi le sujet du projet ?  



Je sais keu sa touche pa mal à la prog, mais C ossi du grafizm...
Le sujet du projet C faire un lancer de rayon en opengl.

n°11938
Le Castor
Neurasténique...
Posté le 11-12-2001 à 17:12:42  profilanswer
 

ah ouais, pour l'instant, ça donne pas mal, manque juste l'atténuation, et l'antialiasing, et ça sera parfais  :D  :D  :D


---------------
W3C : Leading the Web to Its Full Potential... - Membre du W3C l33t club
n°11940
Dav Vador
Posté le 11-12-2001 à 17:14:33  profilanswer
 

Le Castor a écrit a écrit :

ah ouais, pour l'instant, ça donne pas mal, manque juste l'atténuation, et l'antialiasing, et ça sera parfais  :D  :D  :D  



L'antialiasing, C pour trè biento, kant a l'attenuation, elle y est déjà mais pas tou ta fai o point...

n°11943
Le Castor
Neurasténique...
Posté le 11-12-2001 à 17:17:38  profilanswer
 

Dav Vador a écrit a écrit :

L'antialiasing, C pour trè biento, kant a l'attenuation, elle y est déjà mais pas tou ta fai o point...  




 
wow ! et j'espère qu'il y a plusieurs types d'attenuation, pas que linear, j'veux inverse square aussi  :D  :D  :D  :D  
 
ah oui, le temps de rendu est long, ou c du temp réel ?


---------------
W3C : Leading the Web to Its Full Potential... - Membre du W3C l33t club
n°11947
Dav Vador
Posté le 11-12-2001 à 17:24:56  profilanswer
 

Le Castor a écrit a écrit :

 
 
wow ! et j'espère qu'il y a plusieurs types d'attenuation, pas que linear, j'veux inverse square aussi  :D  :D  :D  :D  
 
ah oui, le temps de rendu est long, ou c du temp réel ?  



L'attenuation n'est pas linéaire, inversement proportionnelle à la distance (c'est la seule, mais on peut modifier les coeffs...).
Pour le tps de rendu, il faut compter environ 30s sur mon Athlon 600 quand il y a les 2 plans, kks secondes sans les plans, mais en tou K, C pa du tps réel!!! :lol:

n°11949
Le Castor
Neurasténique...
Posté le 11-12-2001 à 17:31:21  profilanswer
 

Dav Vador a écrit a écrit :

L'attenuation n'est pas linéaire, inversement proportionnelle à la distance (c'est la seule, mais on peut modifier les coeffs...).
Pour le tps de rendu, il faut compter environ 30s sur mon Athlon 600 quand il y a les 2 plans, kks secondes sans les plans, mais en tou K, C pa du tps réel!!! :lol:  




 
c cool. Un raytracing temps réel serait tellement cool..... :cry:  :cry: et sinon, ca gère les reflexion infinies, comme si tu met deux miroirs l'un en face de l'autre ?


---------------
W3C : Leading the Web to Its Full Potential... - Membre du W3C l33t club
n°11953
Dav Vador
Posté le 11-12-2001 à 17:34:16  profilanswer
 

Ca serai kooooooool, mai aC pa moua ki vai le pondre....
Koikeu, sans les réflexions, sans la transparences et avec des plans finis, peut être... J'essaierai si G le tps.
Pour la réflexion, on choisi le nombre d'itérations maxi dans le code.

mood
Publicité
Posté le 11-12-2001 à 17:34:16  profilanswer
 

n°11958
Le Castor
Neurasténique...
Posté le 11-12-2001 à 17:40:08  profilanswer
 

Dav Vador a écrit a écrit :

Ca serai kooooooool, mai aC pa moua ki vai le pondre....
Koikeu, sans les réflexions, sans la transparences et avec des plans finis, peut être... J'essaierai si G le tps.
Pour la réflexion, on choisi le nombre d'itérations maxi dans le code.  




 
wow, c cool. A quand le logiciel 3d complet ?


---------------
W3C : Leading the Web to Its Full Potential... - Membre du W3C l33t club
n°11962
Dav Vador
Posté le 11-12-2001 à 17:45:02  profilanswer
 

Le Castor a écrit a écrit :

 
 
wow, c cool. A quand le logiciel 3d complet ?  



Pa pour mintenan :lol:
D'ici les vakance, le lancer de rayon devrait être fini, mais il ne devrai prendre en charge keu des sphères, des plans, et des parallèpipèdes.... Un peu light pour un logiciel 3D...
Mais pour le tps réél, plu j'y pense et plus je me dis keu C possible, mai avec un minimum d'effets bien sûr...
Bon, je vai devoir y aller.
A+

n°11966
Le Castor
Neurasténique...
Posté le 11-12-2001 à 17:46:44  profilanswer
 

Dav Vador a écrit a écrit :

Pa pour mintenan :lol:
D'ici les vakance, le lancer de rayon devrait être fini, mais il ne devrai prendre en charge keu des sphères, des plans, et des parallèpipèdes.... Un peu light pour un logiciel 3D...
Mais pour le tps réél, plu j'y pense et plus je me dis keu C possible, mai avec un minimum d'effets bien sûr...
Bon, je vai devoir y aller.
A+  




 
ok tcho !


---------------
W3C : Leading the Web to Its Full Potential... - Membre du W3C l33t club
n°11995
scott
none
Posté le 11-12-2001 à 19:56:27  profilanswer
 

moi j'attend le moteur 3d comme ca on pourra faire le jeux si yen a d'autre ki veulent participer en dessins ou en modelisation 3d de perso ce serait cool


---------------
Tu sais, faut pas avoir peur... Google est ton ami. :)
n°12009
Mohawk
grumf
Posté le 11-12-2001 à 21:12:08  profilanswer
 

Dav vador tu fais quoi comme études? faut être fort en math pour la prog de moteur?

n°12161
TBone
Pouet.
Posté le 12-12-2001 à 11:05:35  profilanswer
 

[cit]Au fait, si y'a kk1 ki si connait, je cherche l'équation d'un plan ki fait des ondes (sortes de vagues) à base de cosinus..[/cit]  
 
si tu ne trouves pas là-dedans... je ne sias pas où tu peux l'avoir... (Black Book of Art de M. Abrash (Doom,Kwak,...))
http://www.amazon.com/exec/obidos/ [...] 11-3154162  
 
quoiqu'il me semble avoir vu un book qui expliquait les modèles mathématiques des vagues / rouleaux / écume.  
 
pas mal du tout tes écrans !

 

[edtdd]--Message édité par TBone--[/edtdd]


---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
n°12163
TBone
Pouet.
Posté le 12-12-2001 à 11:17:11  profilanswer
 

http://net.asp.ucar.edu/~layton/research/water/
 
ça devrait le faire à mon avis.


---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
n°12164
TBone
Pouet.
Posté le 12-12-2001 à 11:21:34  profilanswer
 

edit: je viens de jeter un oeil sur la ressource :ouch:  
put@in les maths et moi... bonne chance !


---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
n°12338
Dav Vador
Posté le 13-12-2001 à 12:56:04  profilanswer
 

Salu,
mohawk>> Je fais une maîtrise d'info.
Pour la prog du moteur, ya rien de bien compliquer, C juste de la géométrie simple (niveau 3ème à term... pour les équation de plans).
Le lancer de rayons est encore plus simple que le moteur, il y a juste quelques équations d'illumination à respecter, sinon c'est tou de la récursivité.
 
TBone>> Merci pour les liens.
 
J'essaie d'uploader kks nouvelles images et sources et  exe.
G ajouter l'antialiasing et le chargement de fichiers scènes.

n°12339
Dav Vador
Posté le 13-12-2001 à 13:13:27  profilanswer
 
n°12341
scott
none
Posté le 13-12-2001 à 13:28:31  profilanswer
 

fo koi pour lire les png

n°12343
Le Castor
Neurasténique...
Posté le 13-12-2001 à 13:35:09  profilanswer
 

scott a écrit a écrit :

fo koi pour lire les png  




 
Explorer le fait d'origine
 
 
Sinon, c cool, avec l'antialiasing ! Le seul problème, c qu'il floute un peu trop l'image. Le pied, ca serait un antialiasing qui renforce les contours (cf. antialisasing catmull-rom dans 3dmax)

n°12344
Dav Vador
Posté le 13-12-2001 à 13:35:22  profilanswer
 

J'ai aussi rajouté une scène qu'on peut tester en temps réél!!!!!
 
Bon ok, ya keu 3 sfère et 1 lumière, mais bon C déjà pa mal...
Imaginez dans 2 ans, quand on aura des athlon K10 à 5Ghtz..., on pourra jouer à des jeux dont le moteur sera en lancer de rayon!
 
Pour l'instant, G juste implémenté le déplacement de la caméra au clavier:
- 'q' passage en mode rapide (tps réél avec la scène scener.rtd)
- 'r' passage en mode rendu
- 'd' 'f' déplacement sur les X
- 'c' 'v' déplacement sur les Y
- 'g' 'b' déplacement sur les Z
O fait, merci au Castor pour l'ID.
 
Pour lancer l'exe, il faut passer:
- le fichier scene (rtd) en param 1
- le fichier ppm (facultatif) en param 2

n°12345
Dav Vador
Posté le 13-12-2001 à 13:38:31  profilanswer
 

scott a écrit a écrit :

fo koi pour lire les png  



Avec ACDSee, C nikel.

n°12347
Dav Vador
Posté le 13-12-2001 à 13:40:21  profilanswer
 

Le Castor a écrit a écrit :

 
 
Explorer le fait d'origine
 
 
Sinon, c cool, avec l'antialiasing ! Le seul problème, c qu'il floute un peu trop l'image. Le pied, ca serait un antialiasing qui renforce les contours (cf. antialisasing catmull-rom dans 3dmax)  



Pour l'antialiasing, le mien est assez simpliste et basé sur un moyennage donc les contours deviennent un peu flou...
Les catmull, je préfère pa y penser... L'an dernier, G eu à en coder et CT pa 1 parti de plaizir!

n°12348
Le Castor
Neurasténique...
Posté le 13-12-2001 à 13:49:00  profilanswer
 

Dav Vador a écrit a écrit :

Pour l'antialiasing, le mien est assez simpliste et basé sur un moyennage donc les contours deviennent un peu flou...
Les catmull, je préfère pa y penser... L'an dernier, G eu à en coder et CT pa 1 parti de plaizir!  




 
 
ah ouais ! je vois. Ben en fait, t'as fait la méthode standard.... En tous cas, la scène n°5 est très jolie !

n°12350
Dav Vador
Posté le 13-12-2001 à 13:51:08  profilanswer
 

Euh les PNG son pa fini d'uploader.
Je fai o + vite.

n°12353
Dav Vador
Posté le 13-12-2001 à 13:55:22  profilanswer
 

Le Castor>> Merci.
C ossi ma préféré avec la 4.
Je kroi keu G raté la 6 kan G fai mon rendu hier soir (tro de lumière).
 
O fait, je vou conseille pa de faire des rendu avec antialiasing à fond sur la 5 et la 6 (+d'1/2 heure sur mon athlon).
Pour infos, G komancé mes rendu cette nuit à 4 et G fini à 6h15.
Du cou G vacheman :sleep:

n°12357
Dav Vador
Posté le 13-12-2001 à 14:10:59  profilanswer
 

A yé, G enfin fini d'uploder!
SalT de PC en émulation linux...
Menfin.

n°12428
TBone
Pouet.
Posté le 13-12-2001 à 18:19:12  profilanswer
 

même si tu dis que c'est simple, c'est du bon bon boulot !


---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
n°12495
TBone
Pouet.
Posté le 13-12-2001 à 22:59:38  profilanswer
 

au fait, je surfais pour LightWave quand je suis tombé là-dessus: http://www.gamasutra.com/gdce/jensen/jensen_01.htm  
bon c'est pas de la lumière mais de la flotte mais comme ce sont des "waves" dans tous les cas p'têt que t'auras des zéléments.
 
je te propose donc que tu fasses un décor temps réel d'une mer un peu mouvementée avec du vent et des mouettes (qui a fait Toooûûût! ?!?) et j'apporte le thé au miel.  
 
quand j'arriverai à faire ça... la fonte des glaces sera terminée...

 

[edtdd]--Message édité par TBone--[/edtdd]


---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
n°12589
Dav Vador
Posté le 14-12-2001 à 19:45:43  profilanswer
 

TBone>> Merci mais je cherche juste une équation simple (fo que je puisse calculer la normale à ce plan) d'un plan qui ressemble à une sinus dans toutes les directions...
 
 
Je viens de terminer la 3ème version de mon projet:
http://www.multimania.com/davvador [...] urces3.zip
J'ai rajouté pas mal de trucs:
-Prise en charge de matériaux dans les fichiers RTD
-Amélioration du rendu (léger)
-Rendu tps réel avec changement de résolution, activation/désactivation de l'antialiasing, passage du mode Rendu normal au rapide, déplacement de la caméra au clavier et à la souris, le tout pdt l'exécution.
-kks petits détails...
 
Pour ce ki est du temps réel, C pa mal du tou.
Me reste enkor à pouvoir importer les fichiers ASE(3DS), normalement ce sera fai ce soir ou demain, et sera kool.

n°12763
Ded_2K
Quality Stuff ;)
Posté le 16-12-2001 à 08:04:56  profilanswer
 

Écoute je sais pas c koi ton truc la (jai pas envi de lire le topic :sarcastic: ) , mais si c'est de la prog openGL ou direct X...je te dit mon gars, si tu continue tu va allé loin voir meme crée un ton propre moteur graphique (quake 4 !!!  :lol: ), tout ce qu'il manque pour que ça soi parfait c 60fps sec  :D avec le meme effet de reflection etc. :D  
 
Je parle bien sur en pensant que ta codé un truc un openGL. Si c pas le cas donc... :hello:


---------------
/Faut savoir dompter la technologie...\
n°12988
Dav Vador
Posté le 18-12-2001 à 13:29:08  profilanswer
 

Ded_2K a écrit a écrit :

Écoute je sais pas c koi ton truc la (jai pas envi de lire le topic :sarcastic: ) , mais si c'est de la prog openGL ou direct X...je te dit mon gars, si tu continue tu va allé loin voir meme crée un ton propre moteur graphique (quake 4 !!!  :lol: ), tout ce qu'il manque pour que ça soi parfait c 60fps sec  :D avec le meme effet de reflection etc. :D  
 
Je parle bien sur en pensant que ta codé un truc un openGL. Si c pas le cas donc... :hello:  



Merci... :sol:
Open GL, je ne l'utilise que pour afficher mon tableau de pixels, sinon, je fais tou en soft.
Les 60fps, j'en sui très loin, C pluto 60spf (sec par images)! :lol:

n°13002
Suri
Darksurious
Posté le 18-12-2001 à 14:12:35  profilanswer
 

c fait expres la deformation des spheres qui s'eloignent du centre? :D


---------------
Suri.morkitu.org : Balades au coeur de la ville...
n°13007
Dav Vador
Posté le 18-12-2001 à 14:32:47  profilanswer
 

Suri a écrit a écrit :

c fait expres la deformation des spheres qui s'eloignent du centre? :D  



Oui et non.
Ca vien du fait que le plan sur lequel je lance mes rayons est un plan et non une (partie de) sphère. Je l'ai laissé kom sa pour 2 raisons:
- sa me facilite le boulo :lol:
- je trouve sa pa moche!

n°33289
Dav Vador
Posté le 19-03-2002 à 15:33:19  profilanswer
 

Version HTML
 
/*==============================================================================\
*                                                                               *
*                       /===========================\                           *
*                       * Raytracing - Tutorial n°1 *                           *
*                       \===========================/                           *
*                                                                               *
*                                                                               *
*        Auteur :   Dav Vador                                                   *
*                 __                                                            *
*               _~\/~_                                                          *
*              |(o)(o)|              Email  :   mchepoil@caramail.com           *
*               \ \/ /                          ~~~~~~~~~~~~~~~~~~~~~           *
*                (^^)                                                           *
*                                                                               *
*            *       .       .     +        .    .  *      .   +             .  *
*             .    .    *      .-------°°°°°°°°-------.           .   .   +     *
*               +       .:::~~°:::O::::(::oo::)::::O:::°~~:::.      *           *
*  <Site>  :        <{{          http://davvador.fr.st         }}>      °   *   *
*                .     '<-(||}-----{#}~~~[##]~~~{#}-----{||)->'      .      .   *
*             *     .     _/           _/ ## \_           \_     .  *     .     *
\================================================
 
==============================*/
 
 
 
 
 
 
I) K'est ce keu c'est ?
***********************
 
  Raytracing (ou raycasting) se traduit en français par "lancer de rayons".
La technique utilisée pour ce type de rendu s'apparente en effet à un lancer de rayons depuis
la caméra, dans toutes les directions. L'application sur PC se traduit par un lancer de rayons  
ayant tous pour origine le centre de la caméra et passant chacun par un pixel de notre écran.
Il faut donc lancer autant de rayons qu'il y a de pixels sur notre écran pour couvrir toute l'image.
 
 
II) Koman sa marche ?
*********************
 
1) Rappels :
============
a) La caméra :
--------------
Elle est déterminée par plusieurs paramètres :
- sa position dans l'espace (xr, yr, zr) et son orientation (rot_x, rot_y, rot_z)
- sa focale f = distance entre le centre de la caméra et son plan de projection (écran)
- sa résolution (res_x, res_y) et le pitch (pitch_x, pitch_y) des pixels = dimensions d'un pixel en unités du repère espace
 
b) Les matériaux :
------------------
Chaque objet est associé à un matériau (plastique, métal, ...) déterminé par :
- une couleur ambiante : celle que l'on voit toujours (même kan l'objet n'est pas éclairé)
- une couleur diffuse : celle que l'on voit seulement kan l'objet est éclairé
- une couleur de réflexion : les reflets seront teintés par cette couleur
- une couleur spéculaire : les reflets des lumières seront teintés par cette couleur
- une série de coefficients pour attribuer plus ou moins d'importance à chacune de ces couleurs
- un coefficient d'opacité : pour les objets transparents
 
2) Mise en oeuvre :
===================
Pour chaque rayon lancé, le but est de trouver l'objet touché le premier par le rayon et d'afficher le pixel associé  
au rayon courant avec la couleur de l'objet trouvé.
Connaissant la position des objets dans l'espace, il ne nous reste qu'à calculer l'équation du rayon et à passer en revue
tous les objets jusqu'à trouver le premier intersecté par le rayon.
 
a) Calcul de l'équation du rayon :
----------------------------------
En fait, il ne nous faut que la direction du rayon, soit un vecteur, étant donné que nous connaissons
déjà son origine.
L'écran étant de taille res_x*pitch_x par res_y*pitch_y et la caméra ayant une focale f,
il nous est facile de trouver les coordonnées dans le repère caméra du pixel de coordonnée (i,j) à l'écran.
Si l'on considère que le pixel (0,0) est en haut à gauche de l'écran, alors ses coordonnées dans le repère caméra sont :
vx = (i - res_x/2)*pitch_x        // Pour que le point au centre de l'écran aie x = 0
vy = (i - res_y/2)*pitch_y        // Pour que le point au centre de l'écran aie y = 0
vz = f
qui sont en fait les coordonnées du vecteur directeur dans le repère caméra.
Il ne nous reste donc plus qu'à effectuer les rotations nécessaires pour que se vecteur aie
la même orientation que la caméra afin d'avoir les coordonnées dans le repère espace.
 
b) Recherche des intersections :
--------------------------------
Pour chaque objet, on va rechercher l'intersection.
S'il y a une intersection, alors celle-ci se fait au point P tel que :
x = alpha*vx + xr
y = alpha*vy + yr
z = alpha*vz + zr
avec alpha >= 0
Il nous faut donc trouver le aplha (noté A) le plus petit possible.
 
* Intersection avec une sphère :
Soit la sphère de centre (x0, y0, z0) et de rayon R.
Soit le rayon lancé depuis (xr, yr, zr) et dirigé par (vx, vy, vz).
 
L'équation de la sphère est : (x-x0)² + (y-y0)² + (z-z0)² = R²
En remplaçant x par A*vx+xr, y par A*vy+yr et z par A*vz+zr, on obtient :
(A*vx + (xr-x0))² + (A*vy + (yr-y0))² + (A*vz + (zr-z0))² = R²
<=> A²(vx² + vy² + vz²) + A*2(vx(xr-x0) + vy(yr-y0) + vz(zr-z0)) + ((x-x0)² + (y-y0)² + (z-z0)² - R²) = 0
qui est une équation du second degré d'inconnue A, donc facile à résoudre.
 
* Intersection avec un plan :
Soit le plan d'équation ax+by+cz+d = 0
En remplaçant x par A*vx+xr, y par A*vy+yr et z par A*vz+zr, on obtient :
A(a*vx + b*vy + c*vz) + (a*xr + b*yr + c*zr + d) = 0
qui est une équation du 1er degré d'inconnue A, donc solution hyper simple à trouver...
 
 
Si Alpha n'existe pas, alors on affiche la couleur de fond (noir par exemple),
sinon, on en déduit facilement la position du point P (voir-ci dessus) et on calcule l'éclairage.
 
 
3) Eclairage :
==============
Soit l'intersection du rayon s'étant produit au point P(xp, yp, zp), sur l'objet O.
 
Dans notre cas, on ne considérera pour le moment que les lumières ambiantes.
L'intensité au point P pour chacune des composantes R, V, B s'écrira donc :
 
IntP = IntA
 
avec  
 
- IntA = Som(pour chak lumière){ca*Sa*Ia},
 

 
- ca est le coefficient d'ambiance de la surface de l'objet O, et est fixé à 1,
 
- Sa est l'intensité d'ambiance de la surface de l'objet O au point P pour chacune des 3 composantes,
 
- Ia est l'intensité des sources lumineuses ambiantes pour chacune des 3 composantes,
 
 
  On impose les contraintes suivantes :
 
- IntA < Max intensité pour chaque composante
 
 
La couleur du pixel à allumer sera donc donnée par IntA.
 
 
III) Divers :
*************
 
  La scène est décrite dans le fichier RTD. Dans cette version du programme, seul les sphères et les plans sont affichés.
Les polygones (triangles) et objets 3DS ne sont pas gérés (calculs d'intersection plus complexes).
Je ne vous ai pas donné le descriptif du chargement du fichier RTD, mais si cela vous intéresse, le code doit être
suffisamment parlant, sinon me contacter...
 
  Le but de ce tuto était simplement de vous familiariser avec le principe du Raytracing, tout
a été réduit à son minimum. Dans le prochain tuto, j'essaierais de mettre en place une illumination plus poussée,
non limitée aux seules lumières ambiantes.
 
  Toutefois, si vous vous sentez suffisamment à l'aise, vous pouvez jeter un oeil aux sources
de la dernière version...
 
  Pour lancer le programme :  
- "./raytracing.exe scene.rtd <image.ppm>" sous Windows (Cygwin)
- "./raytracing.x86 scene.rtd <image.ppm>" sous Linux
 
 
 
Et voilà votre premier rendu...
http://raytracing.fr.st/tuto1/image.gif
 
 
Toutes les sources
 
 
La page HTML du projet

 

[jfdsdjhfuetppo]--Message édité par Dav Vador le 24-04-2002 à 11:52:24--[/jfdsdjhfuetppo]

n°33290
Dav Vador
Posté le 19-03-2002 à 15:42:26  profilanswer
 

Désolé, G pa eu le temps de faire 1 page html, je fais dés keu possible.

n°33311
antp
Super Administrateur
Champion des excuses bidons
Posté le 19-03-2002 à 16:12:26  profilanswer
 

scott a écrit a écrit :

fo koi pour lire les png  




 
IE 5 (le 4 suffirait si ils étaient "dans" une page web), Opera 4, Netscape 4 ou Mozilla.
Si y a des transparences (j'ai pas été voir, mais je pense pas qu'il y en ait) il faut Opera 6 ou Mozilla.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°33424
durandal2
Goatse bless 'Murica
Posté le 19-03-2002 à 21:06:32  profilanswer
 

tiens si tu veux du sinus
 
 
http://durandal2.hn.org/page1.gif
 
http://durandal2.hn.org/page2.gif
 
http://durandal2.hn.org/page3.gif
 
http://durandal2.hn.org/page4.gif
 
http://durandal2.hn.org/page5.gif
 
http://durandal2.hn.org/page6.gif
 
http://durandal2.hn.org/page7.gif
 
http://durandal2.hn.org/page8.gif

 

[jfdsdjhfuetppo]--Message édité par durandal2--[/jfdsdjhfuetppo]

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Graphisme

  Prog Grafik : Lancer de rayons...

 

Sujets relatifs
Programassion Grafik : kréassion d'1 moteur 3D... 
Plus de sujets relatifs à : Prog Grafik : Lancer de rayons...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR