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

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4  5  6  7  8  9  10
Auteur Sujet :

Article: un raytracer de base en C++

n°785541
bjone
Insert booze to continue
Posté le 03-07-2004 à 01:16:34  profilanswer
 

Reprise du message précédent :
il y a deux choses:
 
l'équation de phong: qui donne le spéculaire en fonction du scalaire entre le vecteur de lumière réfléchi par rapport à la normale, et le vecteur de vue (mis à une puissance, etc...)
 
vecteur_reflet_lumière = reflet( vecteur_lumière, vecteur_normal )
// lire "on obtient le vecteur_lumière réfléchi par rapport au vecteur_normal de la surface"
 
coefficient_spéculaire = scalaire( vecteur_reflet_lumière, vecteur_vue)^exposant
 
couleur_spéculaire = couleur_spec_reférence * coefficient_spéculaire
// couleur_spéculaire et couleur_spec_référence sont des "vecteurs" (ie 3 ou 4 composantes RVB/ARVB)
// coefficient_spéculaire est un scalaire (1 seule grandeur qui va moduler toutes les composantes)
 
----------
 
l'équation de blinn:  
 
qui donne le spéculaire en fonction du scalaire entre le vecteur normal, et le vecteur dit "half-way" qui est le vecteur "moyen" entre le vecteur de vue et le vecteur de lumière (donc la somme des deux, divisé par deux)
 
vecteur_half_way = ( vecteur_vue + vecteur_lumière ) / 2
/// avec vecteur_vue et vecteur_lumière normalisés (norme/longueur=1)
 
coefficient_spéculaire = scalaire( vecteur_normal, vecteur_half_way)^exposant


Message édité par bjone le 03-07-2004 à 01:29:24
mood
Publicité
Posté le 03-07-2004 à 01:16:34  profilanswer
 

n°785545
bjone
Insert booze to continue
Posté le 03-07-2004 à 01:24:56  profilanswer
 

généralement, le modèle "classique" utilisé est celui avec blinn, donc dans un raytracer simple, ou que ce soit en OpenGl ou en Direct3D, on a un modèle d'éclairage du style:
 
kd = coefficient d'éclairage diffus
ks = coefficient d'éclairage spéculaire
 
kd = scalaire( vecteur_normal, vecteur_lumière )  
// clampé en [0,1]
 
vecteur_half_way=( vecteur_vue + vecteur_lumière ) / 2
 
ks = scalaire( vecteur_normal, vecteur_half_way) ^ exposant  
// le clamp en [0,1] doit plustôt être avant la mise à la puissance de l'exposant  
// because qqchose de négatif, donc non éclairé, pourrait devenir positif)
 
couleur_pixel = kd * couleur_diffuse + ks * couleur_spéculaire
 
sachant que:
 
pour la couleur_diffuse, elle peut être définie par:
couleur_diffuse = couleur_diffuse_du_matériau * couleur_diffuse_de_la_source_de_lumière
 
et que couleur_diffuse_du_matériau peut être une couleur issue d'une texture (après filtrage)
 
///
accessoirement, désolé si je dis des conneries


Message édité par bjone le 03-07-2004 à 01:26:53
n°785548
bjone
Insert booze to continue
Posté le 03-07-2004 à 01:34:20  profilanswer
 

accessoirement, histoire d'éclaircir des choses, dans le cas d'un raytracer, tout ceci est fait par pixel ou "point d'interêt".
 
pour les solutions temps réel OpenGl/D3D, de base les coefficients diffus et spéculaires sont calculés par vertex, et interpolés séparément le long de la primitive 3D (le triangle), et seul:  
"couleur_pixel = kd * couleur_diffuse + ks * couleur_spéculaire"  
est évalué par pixel (ce qui fait ressortir la polygonalité de l'objet)
 
après, dans le cas de Shaders, rien ne va plus, on évalue n'importe quoi comme on veux, où on veux (modèle d'éclairage choisi, répartition vertex/pixel)


Message édité par bjone le 03-07-2004 à 01:35:42
n°785590
farib
Posté le 03-07-2004 à 11:17:56  profilanswer
 

wai, wai, LeGreg parle aussi de Blinn-Phong, mais après, donc je chercherai aussi à la comprendre.
 
 
Mais là, à l'instant H,je cherche à comprendre son implémentation de Phong tout court, et j'avais 2-3 problèmes cf post précédent.
EDIT je viens surtout de me rendre compte que je prenais lightray dans le mauvais sens,  ce qui expliquait mon différent de calcul.
 
j'aurais juste besoin qu'on me confirme qu'il simplifie la réfléctance dans son phong


Message édité par farib le 03-07-2004 à 11:50:34

---------------
Bitcoin, Magical Thinking, and Political Ideology
n°785737
bjone
Insert booze to continue
Posté le 03-07-2004 à 16:03:22  profilanswer
 

à priori vi.

n°786018
farib
Posté le 04-07-2004 à 11:15:26  profilanswer
 

ça n'intéresse que moi, mais j'ai trouvé ça comme doc explicative pour lambert/phong/blinn-phong et c po mal ( enfin ça dit comment ça marche, ça dit pas pourquoi  :D )
 
http://membres.lycos.fr/chateauthi [...] flwww.html


Message édité par farib le 04-07-2004 à 11:24:27

---------------
Bitcoin, Magical Thinking, and Political Ideology
n°786055
LeGreg
Posté le 04-07-2004 à 12:13:28  profilanswer
 

Update :  
Les articles ont été remis à jours et sont disponibles sur mon site web:
 
premiers pas:
http://www.massal.net/article/raytrace/page1.html
éclairage spéculaire (blinn-phong), post processing et antialiasing:
http://www.massal.net/article/raytrace/page2.html
textures (Perlin noise, cubic environment mapping, bump mapping)
http://www.massal.net/article/raytrace/page3.html
Flou (depth of field), Fresnel, blobs (isosurfaces):
http://www.massal.net/article/raytrace/page4.html
HDR, loi de beer, aberration chromatique:
http://www.massal.net/article/raytrace/page5.html
Global ilumination, photon mapping:
http://www.massal.net/article/raytrace/page6.html  
 
Le code et les commentaires y sont plus récents. Vous pouvez continuer à utiliser ce topic pour les questions
et commentaires.
 
Voilà, si vous voulez l'historique du sujet, vous pouvez continuer à lire la suite.
Fin de l'Update  
 

farib a écrit :

j'aurais juste besoin qu'on me confirme qu'il simplifie la réfléctance dans son phong


 
Je ne comprends pas trop ta question. Phong a énoncé cette méthode pour calculer le specular highlight lorsqu'il était étudiant. C'est un modèle empirique (il a observé et il s'est dit qu'il pouvait avoir un truc similaire en prenant la puissance d'un cosinus).
C'est donc une grossière approximation d'un modèle physique qui n'existe pas vraiment.
 
Que veux-tu simplifier la dedans ?
 
La raison pour laquelle l'intensité du lobe spéculaire ne varie pas dans mon équation en fonction de théta (l'angle d'observation) c'est tout simplement parce que Phong ne l'a pas inclu dans son modèle.
 
La justification de ces "modèles" peut se faire à postériori ou compléter à partir des modèles basés sur la physique intégrant les données géométriques (microfacettes) et électromagnétiques (effet de Fresnel que j'ai expliqué un peu plus loin).
 
Est-ce que tu comprends ce que chaque terme représente ?


Message édité par LeGreg le 12-07-2008 à 00:04:25

---------------
voxel terrain render engine | animation mentor
n°786134
bjone
Insert booze to continue
Posté le 04-07-2004 à 13:36:50  profilanswer
 

farib a écrit :

ça n'intéresse que moi, mais j'ai trouvé ça comme doc explicative pour lambert/phong/blinn-phong et c po mal ( enfin ça dit comment ça marche, ça dit pas pourquoi  :D )
 
http://membres.lycos.fr/chateauthi [...] flwww.html


 
http://membres.lycos.fr/chateauthi [...] node7.html
 
bin je crois bien que le monsieur c'est trompé pour blinn, il a mis  ( (S+V)/2 . V )^n alors que vu ça convention de nommage des vecteurs ça devrait être ( (S+V)/2 . N )^n
 
scalaire entre half-way et la normale, pas avec le vecteur vue.


Message édité par bjone le 04-07-2004 à 13:37:26
n°786170
bjone
Insert booze to continue
Posté le 04-07-2004 à 14:04:44  profilanswer
 

farib >> il faut que tu comprennes les divers modèles dont on parle, ont été enrichis par la suite.
 
si tu cherches un peu tu trouveras d'autres pdf avec d'autres variantes.


Message édité par bjone le 04-07-2004 à 14:07:33
n°786179
farib
Posté le 04-07-2004 à 14:40:03  profilanswer
 

t'es sûr ? il fait pas tout a fait le même calcul que legreg en fait


---------------
Bitcoin, Magical Thinking, and Political Ideology
mood
Publicité
Posté le 04-07-2004 à 14:40:03  profilanswer
 

n°786206
bjone
Insert booze to continue
Posté le 04-07-2004 à 15:47:29  profilanswer
 

de base phong, c'est surtout le spéculaire qui est fait à partir du scalaire vue.reflet mis à une puissance...
 
http://www.siggraph.org/education/ [...] ection.htm

n°786225
farib
Posté le 04-07-2004 à 16:07:51  profilanswer
 

oué mais blinn c une astuce pour calculer phong différemment mais plus efficacement, cf ce que le gars dit


---------------
Bitcoin, Magical Thinking, and Political Ideology
n°786234
bjone
Insert booze to continue
Posté le 04-07-2004 à 16:15:43  profilanswer
 

je parles pas de de blinn là...

n°786249
farib
Posté le 04-07-2004 à 16:26:32  profilanswer
 

bjone a écrit :

http://membres.lycos.fr/chateauthi [...] node7.html
 
bin je crois bien que le monsieur c'est trompé pour blinn, il a mis  ( (S+V)/2 . V )^n alors que vu ça convention de nommage des vecteurs ça devrait être ( (S+V)/2 . N )^n
 
scalaire entre half-way et la normale, pas avec le vecteur vue.


---------------
Bitcoin, Magical Thinking, and Political Ideology
n°786252
bjone
Insert booze to continue
Posté le 04-07-2004 à 16:28:38  profilanswer
 


 
ha oki, là oui, mais bon sa formule est fausse pour blinn.

n°786266
farib
Posté le 04-07-2004 à 16:35:17  profilanswer
 

bjone a écrit :

ha oki, là oui, mais bon sa formule est fausse pour blinn.


bein c'est ce que tu avances, t'as vérifié que c'était effectivement faux, ou tu en es sûr à 300 % ?


---------------
Bitcoin, Magical Thinking, and Political Ideology
n°786269
bjone
Insert booze to continue
Posté le 04-07-2004 à 17:00:19  profilanswer
 

bah si tu fais le scalaire entre le vecteur half-way et le vecteur de vue, oui c'est faux à 300%
 
alors après c'est peut-être une glissage de sa part, ou une glissade de mon cerveau (un bon gros glitch, c'est ça le problème avec l'o/c)
 
la seule manière d'avoir un tel produit scalaire proche de 1, c'est d'avoir le vecteur de lumière très proche du vecteur de vue, hors c'est incohérent avec le principe du reflet spéculaire...
 
avec phong tu fais (R.V)^n
avec blinn tu fais (H.N)^n  
 
mais tu fais pas (H.V)^n
 
R.V approche 1 quand le reflet et la vue coincide
H.N approche 1 quand le vecteur médian lumière/vue coincide avec la normale, et donc si le vecteur médian coincide, c'est que le reflet lumière coincide avec le vecteur vue
 
H.V approche 1 quand le vecteur vue et médian coincident, et donc que le vecteur lumière et vue coincide, ce qui est faux vu que l'on veux savoir si le reflet lumière par rapport à la normale coincide avec le vecteur de vue.
 
de plus, le reflet de la lumière se faisant par rapport à la normale N, il est assez logique de retrouver tôt ou tard N dans le calcul, hors avec H.V où H = (V+S)/2, y'a pas tellement de N qui traine...


Message édité par bjone le 04-07-2004 à 17:05:43
n°786277
farib
Posté le 04-07-2004 à 17:19:41  profilanswer
 

bjone a écrit :

pport à la normale N, il est assez logique de retrouver tôt ou tard N dans le calcul, hors avec H.V où H = (V+S)/2, y'a pas tellement de N qui traine...


 :jap:


---------------
Bitcoin, Magical Thinking, and Political Ideology
n°786432
LeGreg
Posté le 04-07-2004 à 22:13:09  profilanswer
 

Farib,
Il y a une théorie qui comprends tous les modeles de reflectance qui s'appelle BRDF (bidirectional reflectance distribution function).
 
La notion de réflectance est bidirectionnelle c'est à dire qu'elle dépend de l'angle d'observation ET de l'angle d'illumination (et n'est la plupart du temps pas isotropique donc les angles doivent etre décrits en 3d plutot qu'en 2d).
 
La vraie illumination perçue dans une direction est donc une intégrale de cette fonction, sur toutes les sources de lumière (directe ou indirecte) et sur tous les angles d'illumination possible.
 
Cette fonction de réflectance peut etre intégrée facilement si l'on simplifie pas mal les hypothèses de départ. L'indépendance par rapport au rayon vue en est une qui définit les matériaux diffus. L'utilisation de lumières ponctuelles ou mono directionnelles (ce qui du point de vue de la surface est équivalent) en est une autre. La simplification de la réponse du matériel en est encore une autre.  
Le modèle de Phong est ultra simple et décrit la réponse du matériel par rapport à une source ponctuelle. Elle n'est pas basé sur la physique et si tu commences à inclure une fonction omega(theta) tu compliques fortement le modèle.
 
La fonction de Phong (ou de Blinn-Phong) est suffisamment simple pour avoir pu être utilisé dans le rendu offline puis temps réel depuis bientot quelques décennies.
Il est maintenant utilisé par pixel dans quelques jeux qui sortent à l'heure actuelle (FarCry, Doom 3 etc..).
 
Si tu veux une idée de la fonction de réflectance un peu plus complexe mais dont le calcul dépasse deux lignes, va à la page 2 de ce topic. C'est là que je décris la fonction de réflectance variable dite "de Fresnel".
Tu peux aussi chercher pour "Cook-Torrance", BRDF, anisotropy, microfacets, sur Google.
 
LeGreg


Message édité par LeGreg le 04-07-2004 à 22:14:15
n°786468
LeGreg
Posté le 04-07-2004 à 22:36:10  profilanswer
 

Farib,
si tu veux vraiment te former la dessus je ne peux que te conseiller
http://www.amazon.com/exec/obidos/ [...] 0?v=glance
 
ça ne remplacera pas un cours que tu pourrais suivre à ton école mais c'est l'un des bouquins de référence.

n°786518
farib
Posté le 04-07-2004 à 23:24:46  profilanswer
 

merci, mais c'est un peu trop mastoc pour moi cet ouvrage, et je suis en train de lire ça   http://www.amazon.fr/exec/obidos/A [...] 65-1588954
 
et au rythme ou je vais, ça va pas vite  :whistle:  
 
 
donc je pense que je me limiterai à ton topic et à gogole, en essayant de poser un peu moins de question si ça vous dérange :o
 
j'écris mon pseudo article à  mon train de sénateur, à en septembre j'aurais peut-être intégré l'intégralité du topic
 
sinon, t'as eu une formation particlière en la matière ?


Message édité par farib le 04-07-2004 à 23:27:11

---------------
Bitcoin, Magical Thinking, and Political Ideology
n°786523
LeGreg
Posté le 04-07-2004 à 23:41:23  profilanswer
 

farib a écrit :


sinon, t'as eu une formation particlière en la matière ?


 
ben j'ai une formation de base en algorithmique, j'ai fait math sup donc j'ai une formation de base en physique et en optique.
J'ai suivi un ou deux cours sur l'imagerie (vision tridimensionelle et synthèse plus des stages) mais la plupart des trucs que j'ai appris je les ai appris par moi-meme pendant mon temps libre.
 
J'ai appris le C++ sur le tas, et là je fais de la prog systeme/graphique temps réel pour une boite en Californie.  
 
Je n'avais jamais écrit un raytracer avant de commencer ce topic. (meme si on m'a déjà posé des questions en entretien sur le raytracing mais une fois que tu connais les bases c'est facile d'y répondre (comment paralléliser un raytracer, résoudre l'intersection rayon/cylindre ou rayon/sphère etc..)).

n°786534
farib
Posté le 04-07-2004 à 23:57:30  profilanswer
 

ouais, bein je vais faire comme toi, apprendre par moi même :o


---------------
Bitcoin, Magical Thinking, and Political Ideology
n°786535
bjone
Insert booze to continue
Posté le 04-07-2004 à 23:57:57  profilanswer
 

comme tout le monde je crois pour ce genre de chose ;)

n°786545
farib
Posté le 05-07-2004 à 00:09:25  profilanswer
 

ouais sauf que moi j'ai chié ma mat sup, j'ai pas fait l'x, et je bosse pas encore dans une boite en califonie :o ( et je redouble ma 3e année de l'esiee parce que j'ai rien foutu de l'année)


Message édité par farib le 05-07-2004 à 00:09:55

---------------
Bitcoin, Magical Thinking, and Political Ideology
n°788746
Dion
Acceuil
Posté le 07-07-2004 à 09:15:47  profilanswer
 

farib a écrit :

ouais sauf que moi j'ai chié ma mat sup, j'ai pas fait l'x, et je bosse pas encore dans une boite en califonie :o


 
Ca aide un peu il est vrai :d

n°789216
red factio​n
Posté le 07-07-2004 à 15:05:33  profilanswer
 

farib a écrit :

ouais sauf que moi j'ai chié ma mat sup, j'ai pas fait l'x, et je bosse pas encore dans une boite en califonie :o ( et je redouble ma 3e année de l'esiee parce que j'ai rien foutu de l'année)


 
si si un bo vaisseau StarWars  :D  
 
[:dehors2]

n°789514
farib
Posté le 07-07-2004 à 19:01:02  profilanswer
 

putain, j'ai commencé un stage (très sympa au demeurant)
 
y'a pas à dire, le travaille ça use, quand je rentre le soir, j'ai pas la force de me reconcentrer sur le raytracer, tout juste la force pour regarder un film


---------------
Bitcoin, Magical Thinking, and Political Ideology
n°795335
farib
Posté le 13-07-2004 à 23:58:05  profilanswer
 

de retour pour faire chier legreg et son implémentation
 
http://membres.lycos.fr/chateauthi [...] node7.html
 
 
y'a un lapsus dans le code de legreg, qu'il a du corriger chez lui mais pas on line vu que j'obtiens la même image
 

Code :
  1. float reflet = 2.0f * (lightRay.dir * n);
  2.   vecteur phongDir = lightRay.dir - reflet * n;
  3.   float phong = _MAX(phongDir * viewRay.dir, 0.0f) ;
  4.   phong = currentMat.specvalue * powf(phong, currentMat.specpower) * coef;
  5.   red += phong * current.red ;
  6.   green += phong * current.green ;
  7.   blue += phong * current.blue;


 
le "* coef" est en trop


---------------
Bitcoin, Magical Thinking, and Political Ideology
n°795373
LeGreg
Posté le 14-07-2004 à 03:34:58  profilanswer
 

farib a écrit :

je redouble ma 3e année de l'esiee parce que j'ai rien foutu de l'année)


 
moi aussi j'ai redoublé et ça n'est pas un handicap pour apprendre à programmer un raytracer je te rassure.
 
Apparemment la partie la plus dure ce n'est pas de le programmer mais plutot de l'expliquer avec des mots simples :/.

n°795375
LeGreg
Posté le 14-07-2004 à 03:42:51  profilanswer
 

farib a écrit :


le "* coef" est en trop


 
Non il n'est pas en trop.
 
il aurait pu être placé ailleurs je le reconnais
mais en meme temps c'est bien pratique d'avoir ce coefficient unique qui
absorbe la luminosité à travers les différentes phases du raytracing.
 
relis le code dans la boucle principale..

n°795454
farib
Posté le 14-07-2004 à 10:29:49  profilanswer
 

LeGreg a écrit :

Non il n'est pas en trop.
 
il aurait pu être placé ailleurs je le reconnais
mais en meme temps c'est bien pratique d'avoir ce coefficient unique qui
absorbe la luminosité à travers les différentes phases du raytracing.
 
relis le code dans la boucle principale..


pourtant sans ce *coef, j'obtiens la même image que toi  
 
le coef est appliqué à lambert, mais pas à phong
 
edit : si, t'as bien raison, d'après le lien que je donne juste en dessus, le coef s'applique aussi, alors c'est ton image qui est fausse
 
en fait il faut obtenir
 
http://f.desoras.free.fr/outputpasbest.png
 
et non pas  
http://small.massal.net/phong.png


Message édité par farib le 14-07-2004 à 10:59:28

---------------
Bitcoin, Magical Thinking, and Political Ideology
n°795478
farib
Posté le 14-07-2004 à 10:52:01  profilanswer
 

pour continuer sur le blinn phong, effectivement le gars dont j'avais donné le lien avait fait un lapsus
 http://www.iiens.net/themes/autre3 [...] n_main.htm
voir la remarque sur blinn
 
Blinn introduirait un vecteur H = (Ui + Uv) / 2 -> méthode de mon gars remise en cause par bjone
(même si je pense que H = ( Ui + Uv  ) / ||Ui + Uv|| serait plus acceptable) => méthode legreg
 
et remplace Ur . Uv par N . H, comme l’angle (N,H) est la moitié de b, l’effet obtenu est donc du même type. (plus on regarde dans la direction de réflexion, plus on est ébloui)
 
les deux sont d'accords


---------------
Bitcoin, Magical Thinking, and Political Ideology
n°795488
LeGreg
Posté le 14-07-2004 à 11:00:06  profilanswer
 

farib a écrit :

pourtant sans ce *coef, j'obtiens la même image que toi  
 
le coef est appliqué à lambert, mais pas à phong


 
tu m'as l'air bien sûr de toi.
 
Tu sais coef c'est un coéfficient global qui détermine l'affaiblissement de la transmission après les divers rebonds (j'y inclus aussi la moyenne pondérée sur plusieurs fragments de pixels).
 
J'imagine que tu vas rencontrer des problèmes très très rapidement à ce rythme-là.
 
Pour ce qui est du code posté et des images, bien évidemment le code et les images correspondent parfaitement. Meme s'il y a des ajouts à chaque sous-article bien entendu.

n°795493
farib
Posté le 14-07-2004 à 11:02:31  profilanswer
 

LeGreg a écrit :


Pour ce qui est du code posté et des images, bien évidemment le code et les images correspondent parfaitement. Meme s'il y a des ajouts à chaque sous-article bien entendu.


http://forum.hardware.fr/forum2.ph [...] =0#t795454
 
y'a quiproquo, tu me tends des pièges  :whistle:  

LeGreg a écrit :


J'imagine que tu vas rencontrer des problèmes très très rapidement à ce rythme-là.


 
je fais avec les moyens du bord


Message édité par farib le 14-07-2004 à 11:11:45

---------------
Bitcoin, Magical Thinking, and Political Ideology
n°795512
LeGreg
Posté le 14-07-2004 à 11:12:48  profilanswer
 

Désolé mais je ne vois toujours pas où est ton problème et pourquoi *coef t'embête.

n°795513
farib
Posté le 14-07-2004 à 11:15:49  profilanswer
 

LeGreg a écrit :

Désolé mais je ne vois toujours pas où est ton problème et pourquoi *coef t'embête.


 
compare les deux images, elles sont pas pareil. Je te le dis, coef ne m'embete plus (j'avais lu trop vite, et finalement j'ai trouvé une page qui explique bien en détail comment "coef" se retrouve effectivement partout)  
 
mais dans l'image que toi tu as générée et postée, ce dit coef a été oublié (puisque les circonstances m'ont amené à rendre la même image)
(et y'a une sorte de réflection parfaite à l'infini sans atténuation...)
 
donc, me fiant à cette image, j'ai été induit en erreur


Message édité par farib le 14-07-2004 à 11:19:48

---------------
Bitcoin, Magical Thinking, and Political Ideology
n°795520
LeGreg
Posté le 14-07-2004 à 11:21:41  profilanswer
 

huh ?
comment une "autre" page peut expliquer comment fonctionne ce raytracer en question ?
 
Je rappelle que le coef en question n'a rien à voir avec le modèle d'éclairage de Phong ou de Blinn ou de Lambert ou de quoi que ce soit. C'est juste une constante de blending passée de rayon en rayon et je doute qu'il y ait deux raytracers qui écrivent les choses de manière identique.
 
Si tu n'utilises pas les mêmes données c'est normal que tu n'obtiennes pas la même image. Elles sont juste là à titre d'illustration dans le topic.
 
Edit: en clair les images ne sont pas contractuelles. Pour chaque rendu j'ai modifié les valeurs d'exposition, d'AA etc.. Et le code a gagné en complexité au fur et à mesure. Donc seul l'image qui est produit par le "programme" est la "vraie" image. Les seules choses que je peux te garantir c'est que  
1- le * coef a toujours été là c'est le fondement du raytracer.
2- le code qui a été posté n'est pas physiquement correct mais visuellement plausible. Et simple. (enfin j'espère)


Message édité par LeGreg le 14-07-2004 à 11:27:11
n°795671
farib
Posté le 14-07-2004 à 14:04:26  profilanswer
 

bon, zou, j'ai fait l'anti-aliasing et àa a marché sans broncher.
 
Par contre, si je comprend bien ce que c'est, je n'arrive pas à comprendre pourquoi ça arrive et comment ça se fait qu'effectivement on puisse le corriger.
 
On ne touche pas à la résolution, mais on réajuste de facon plus précise le calcul de la lumière. ( comme si la résolution de calcul était plus élevée, sauf qu'on ne garde pas cette résolution supérieure
 
-> pourquoi finalement ne pas garder cette résolution supérieure ?


Message édité par farib le 14-07-2004 à 14:06:56

---------------
Bitcoin, Magical Thinking, and Political Ideology
n°795844
LeGreg
Posté le 14-07-2004 à 19:41:54  profilanswer
 

farib a écrit :

-> pourquoi finalement ne pas garder cette résolution supérieure ?


 
je te rappelle que ce n'est pas moi qui décide de la résolution à laquelle tu vas afficher ces images.
 
1 - je n'ai pas d'autres moyen pour augmenter la résolution apparente que d'augmenter le nombre de samples pris par pixel.
2 - l'oeil humain est apparemment aussi sensible aux effets d'escaliers qu'aux effets du changements de résolution.
 
bref de manière générale c'est mieux avec que sans, meme si on peut utiliser des méthodes moins couteuse qu'un simple supersampling.


Message édité par LeGreg le 29-02-2008 à 20:22:15

---------------
voxel terrain render engine | animation mentor
n°795845
LeGreg
Posté le 14-07-2004 à 19:42:33  profilanswer
 

Update :  
Les articles ont été remis à jours et sont disponibles sur mon site web:
 
premiers pas:
http://www.massal.net/article/raytrace/page1.html
éclairage spéculaire (blinn-phong), post processing et antialiasing:
http://www.massal.net/article/raytrace/page2.html
textures (Perlin noise, cubic environment mapping, bump mapping)
http://www.massal.net/article/raytrace/page3.html
Flou (depth of field), Fresnel, blobs (isosurfaces):
http://www.massal.net/article/raytrace/page4.html
HDR, loi de beer, aberration chromatique:
http://www.massal.net/article/raytrace/page5.html
Global ilumination, photon mapping:
http://www.massal.net/article/raytrace/page6.html  
 
Le code et les commentaires y sont plus récents. Vous pouvez continuer à utiliser ce topic pour les questions
et commentaires.
 
Voilà, si vous voulez l'historique du sujet, vous pouvez continuer à lire la suite.
Fin de l'Update  
 

farib a écrit :

sinon, j'arrive po à faire fonctionner blinn en utilisant le modèle (S+V)/2*N  (l'autre produit scalaire marche)


 
tu as du t'emmeler dans le sens (et la signification) de tes vecteurs..


Message édité par LeGreg le 12-07-2008 à 00:04:45

---------------
voxel terrain render engine | animation mentor
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  6  7  8  9  10

Aller à :
Ajouter une réponse
 

Sujets relatifs
c koi un nombre entier en base octale ou hexadécimale ??Phpbb et base de données
Formulaire de modification d'une base mysqlTransformer/Intégrer un XLS dans une base SQL/mySQL
[PHP] question de base sur la structure du if...then...else ?[SGBD] Base de données sans serveur ?
ResourceBundle basé sur un fichier situé à une url spécifiqueformulaire --> direction email à la place de la base mySQL
Temps de transfert Base Access ...SQL serveurplacé un element sous plusieurs catégorie dans une base de donnéés
Plus de sujets relatifs à : Article: un raytracer de base en C++


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