1

C'est en me balladant sur nehe que je tombe sur ça:

http://graphics.cs.uni-sb.de/~sidapohl/egoshooter/

mutlipleReflectiveSpheres.JPG
massive2.JPG
prison.JPG

Un moteur raytracing temps-réel. ooh

Je regarde un peu plus loin pour connaître le truc, car du raytracing temps-réel c'est pas tout les jours qu'on en vois.

Voilà le fameux truc:
runs faster with more computers (about 20 fps@36 GHz in 512x512 with 4xFSAA)


Pas la peine d'optimiser les algorithmes/le code. On arrête les bricolages du genre BSP, PVS, portals, les shadow volumes/shadow maps. On unifie le pipeline graphique et on en fais un raytracer.
Les avantages:
les éclairages et ombrages facile
les reflections et refractions triviales (bon, ça on peut aussi le faire facilement avec les shaders)

Les désavantages:
jcrois que c'est clair triso

Mais bon, la bonne nouvelle:
The solution for fast raytracing is a real hardware capable of raytracing. Saarland University is working on a prototype. It is clocked with 90 MHz and has the raytrace power similiar to a virtual P4-12 GHz. The prototype uses only one pipeline, parallelization can be done. Also more GPUs can be used on one card.


Alors, démarrons le débat:
[sondage=14581]
DaVinci DV3
www.sf.net/projects/dv3sdk

2

Ben de toutes façon c'est clair que le raytacing temps réel ça finira par venir. Si on avait eu les moyens techniques quand on a commencé à faire de la 3d, c'est ce qu'on aurait fait directement. Après, ce n'est qu'une question de temps.

Cela dit, le décor est encore composé de polygones a priori, raytracing ou non. Mais on pourrait ouvrir le champ à la représentation de surfaces non planes parfaites, à condition de définir une manière cohérente de passer leur description au matériel. Cela prendra probablement encore plus de temps.

3

-

4

Ca me fait penser que de Black&White y'a déjà du raytacing en temps réel dans la salle principale du temple (peut-être dans les autres aussi, mais je suis pas sûr). Il faut dire aussi que dans cette salle il n'y a rien d'autre à gérer que l'affichage (l'évolution du jeu est gelée), et que le raytracing est compensé par une géométrie simplifiée.

5

ya pas vraiment de debat a avoir la dessus, pour l'instant le raytracing temps reel c'est bien gentil mais a fps egal c'est de la merde compare au rasterizing. ce qui ne veut _absolument_ pas dire qu'il ne faut pas continuer sur la voie du hardware specialise dans le rt.
y a pas de "passer au raytracing accelere en hardware" ou pas, c'est juste deux trucs != qui progressent en parallele, pour l'instant pour avoir de bons resultats graphiques avec une bonne performance --> rasterizing, en attendant que le rt temps reel se developpe.
et quand a l'unique hardware de raytracing dispo, je me demande comment on peut ne serait-ce que penser a ce que ca puisse rivaliser avec du rasterizing... c'est un truc hyper primaire qui donne des rendus comme les vieilles demos 64k. c'est moche, voire meme immonde, et ca rame.
le truc pour lequel le rt temps reel va devenir interessant c'est pas vraiment pour tout ce qu'il y a sur ces screens, mais plutot pour la global illumination, photon mapping, etc...

au fait, freon 2/7, un hard (en developpement, pour l'instant ils utilisent une emulation soft pour le developper), qui parait bcp plus prometteur point de vue GI, photon mapping:
http://www.piqsoftware.com/projects/freon27/
http://www.piqsoftware.com/projects/freon27/gallery/
Pas la peine d'optimiser les algorithmes/le code. On arrête les bricolages du genre BSP, PVS, portals, les shadow volumes/shadow maps. On unifie le pipeline graphique et on en fais un raytracer.


heu... nan triso
- c'est la peine d'optimiser les algorithmes/le code, encore plus qu'avec le rasterizing (pour l'instant)
- les "bricolages" du genre BSP, PVS, portals? t'appelle ca des bricolages toi? smile si tu fais un RT sans aucun partitionnement d'espace (ce que tu suggere en arretant ces "bricolages"), pour chaque rayon, cad pour chaque pixel a l'ecran si il n'y a aucune reflection/refraction, ni GI ou photon mapping, (et bcp plus sinon) tu dois te farcir les tests de collisions avec _toutes_ les surfaces de ta scene, cad absolument tous les triangles. si t'as une scene d'un million de tris, tu dois tester les collisions entre 1 rayon et 1 millions de triangles pour chaque pixel de l'ecran, et potentiellement enormement plus des que tu commence a avoir des reflections, refractions, lumieres, etc...
tu te rends compte de ce que ca represente? (a moins d'avoir une scene composee de deux spheres en levitation sur un cube tritop). avec un partitionnement un minimum correct de l'espace, tu reduis le nombre de tests par rayon a un nombre bcp plus petit et qui devient independant du nombre total de triangles au fur et a mesure que ce nombre augmente.
c'est d'ailleurs un des gros avantages du rt. tu peux avoir autant de masses de triangles que tu veux, les bottlenecks sont pas la, contrairement au rasterizing (y en a aussi ailleurs biensur, ce que je veux dire c'est que ca n'est pas une bottleneck comparable pour le rt).

et puis les shadow volumes (sux sick.. hem..) ou les shadow maps (rox trilove.. hem..) en quoi c'est des bricolages? au contraire c'est des moyens plutot elegants d'avoir des ombres smile (je trouve) les bricolages apres ca vient dans certaines implementations, mais pour le principe lui meme, je trouve pas du tout que ca soit un bricolage...

pis, LTK, ca fait plusieurs mois que c'est sorti ce truc. si ca t'interesse tu devrais aller jeter un oeil aux forums graphics programming and theory de gamedev, pas que les news de NeHe... deja il a quasiment pas le temps de les updater, mais en plus les "news" sortent un bon bout de temps apres... par ex la page tech d'unreal engine 3, qui a eu une news sur NeHe 1 ou 2 mois apres tritop (je le critique pas hein, me demande comment il fait pour pas laisser tomber son site, mais juste que si tu veux te tenir a jour, c'est pas le meilleur endroit ou aller voir smile)

pis la homepage d'OpenRT c'est par la: http://www.openrt.de/
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

6

Ca me fait penser que de Black&White y'a déjà du raytacing en temps réel dans la salle principale du temple


heu, t sur de ca? quel black&white, le 1 ou le 2 ? O_o
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

7

Le 1, mais il ne me semble pas que ce soit du RT-TR, plutôt une salle bien modelée (pour l'époque) avec de l'environment mapping sur les cadres dorés (ou la boule pour la salle des Dieux) :/ En tous les cas, c'est vrai que le résultat est très correct...

Kochise
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

8

y a pas de "passer au raytracing accelere en hardware" ou pas, c'est juste deux trucs != qui progressent en parallele, pour l'instant pour avoir de bons resultats graphiques avec une bonne performance --> rasterizing, en attendant que le rt temps reel se developpe.


Je sais pas. Les développement sont trop lents. J'ai l'impression que l'on préfère continuer avec du rasterizing que de développer le rt. Il n'y a pas beaucoup de monde intéressé dans une accélération hardware du rt.
heu... nan
- c'est la peine d'optimiser les algorithmes/le code, encore plus qu'avec le rasterizing (pour l'instant)
- les "bricolages" du genre BSP, PVS, portals? t'appelle ca des bricolages toi? si tu fais un RT sans aucun partitionnement d'espace (ce que tu suggere en arretant ces "bricolages"), pour chaque rayon, cad pour chaque pixel a l'ecran si il n'y a aucune reflection/refraction, ni GI ou photon mapping, (et bcp plus sinon) tu dois te farcir les tests de collisions avec _toutes_ les surfaces de ta scene, cad absolument tous les triangles. si t'as une scene d'un million de tris, tu dois tester les collisions entre 1 rayon et 1 millions de triangles pour chaque pixel de l'ecran, et potentiellement enormement plus des que tu commence a avoir des reflections, refractions, lumieres, etc...


Cette implémentation inclus des réflections/réfractions, donc les BSP et les PVS ne sont pas applicables. Si ils parlent d'un prototype d'accélération hardware, ils vont surement faire en sorte que l'on puisse avoir des framerates/resolutions convenables pour des implementation qui font usage de réflections/réfractions. Sinon quel serait l'avantage de faire du raytracing et pourquoi auraient-ils implémenté des réflections/réfractions dans leur engine.

Et oui j'appelle ça du bricolage car c'est du precalculage qui fait en sorte qu'une grosse partie devient statique.

Example: si par example dans un fps tu veux faire un trou dans un mur, ton PVS est foutu.
et puis les shadow volumes (sux .. hem..) ou les shadow maps (rox .. hem..) en quoi c'est des bricolages? au contraire c'est des moyens plutot elegants d'avoir des ombres (je trouve) les bricolages apres ca vient dans certaines implementations, mais pour le principe lui meme, je trouve pas du tout que ca soit un bricolage...


Quand je parle de shadow volumes et de shadow maps, je parle pas de la theorie mais de la pratique. Les shadow maps sont les plus faciles à mettre en oeuvre, mais se sont aussi ceux qui ont le plus de défauts (ex. si l'ombre est dirigé vers le point de vue, la résolution est beaucoup trop basse). Les shadow volumes sont plus précis mais plus gourmands en fill-rate et calcul. Calculere la silhouette d'un modèle de 10 000 polygones est déjà assez lourd (10 000 LdotN). Mais le plus dur reste le remplissage du stencil buffer. C'est un vrai bricolage pour gérer les volumes, savoir jusqu'où il faut les allonger, ...
pis, LTK, ca fait plusieurs mois que c'est sorti ce truc. si ca t'interesse tu devrais aller jeter un oeil aux forums graphics programming and theory de gamedev, pas que les news de NeHe... deja il a quasiment pas le temps de les updater, mais en plus les "news" sortent un bon bout de temps apres... par ex la page tech d'unreal engine 3, qui a eu une news sur NeHe 1 ou 2 mois apres (je le critique pas hein, me demande comment il fait pour pas laisser tomber son site, mais juste que si tu veux te tenir a jour, c'est pas le meilleur endroit ou aller voir )


Je le sais bien mais comme j'étais en période d'examens, je me suis dit que pour voir ce que j'avais raté pendant tout ce temps je ferais bien d'aller voir sur NeHe. Sinon je vais juste voir les nouveaux tutos. Par contren, un truc qu'il me faudrait c'est un site avec des tutos GLSL. Je dis bien DES, pas UN. Si quelqu'un peut m'aider.
DaVinci DV3
www.sf.net/projects/dv3sdk

9

heu, t sur de ca? quel black&white, le 1 ou le 2 ? O_o
Le 1, et oui je suis sûr de ça. Je le tiens de la conférence donnée par le créateur du moteur. La vidéo de la conférence est passée sur gamasutra y'a un an ou deux.

10

Les développement sont trop lents. J'ai l'impression que l'on préfère continuer avec du rasterizing que de développer le rt


mwai :/ bah c'est sur que ya pas bcp de monde qui serait suceptible de dev ca qui va prendre des risques commerciaux (et c'est un tort a mon avis), en tout cas point de vue dev de jeux et autres, ca serait aberrant pour l'instant de penser faire quelquechose en rt qui puisse rivaliser avec le rasterizing a la fois point de vue perfs et qualite de rendu...

Cette implémentation inclus des réflections/réfractions, donc les BSP et les PVS ne sont pas applicables.


heu et pourquoi ca serait pas appliquable? que t'aie des reflections/refractions, ou des ombres, ca change strictement rien, c'est juste plus de rayons a tracer, c'est tout... je comprends pas ton "donc".
neutral le PVS de toute facons c'est vieux et depasse (les bsp aussi, y a d'autres formes de partitionnement d'espace infiniment mieux que ces trucs pourris), mais un BSP reste tout a fait utilisable, et c'est _beaucoup_ mieux que ne pas avoir de partitionnement d'espace.
Si ils parlent d'un prototype d'accélération hardware, ils vont surement faire en sorte que l'on puisse avoir des framerates/resolutions convenables pour des implementation qui font usage de réflections/réfractions.


je crois que t'as pas compris un truc, que t'aie aucune reflection/refraction/ombre (sans meme parler de GI ou de photon mapping), ou que t'en aie plein, ca ne change _strictement_ rien point de vue partitionnement, ca n'affecte l'utilisation et l'interet du partitionnement en rien, en fait si, plus t'as de reflex/refract et autres, plus le partitionnement devient indispensable si tu veux garder une bonne performance.
Sinon quel serait l'avantage de faire du raytracing et pourquoi auraient-ils implémenté des réflections/réfractions dans leur engine.

j'ai l'impression que tu te dis "ils ont fait ca, donc y doit y avoir un avantage". il n'y a absolument aucun avantage tant que tu te contente des reflections/refractions, le rasterizing peut faire ca tres bien et bcp plus vite (pour l'instant, uniquement grace au hw re rasterizing bourrin qu'il y a). en fait si il y a un interet dans l'etat actuel: que la vitesse de rendu ne soit pas directement dependante du nombre de triangles, mais ca c'est uniquement possible grace a un partitionnement intelligent de l'espace (ce que visiblement tu considere comme inutile).
le principal interet des rt pour l'instant n'est visible ni implemente dans aucun des shots en question, ni dans le hw, par contre si tu vas voir freon 2/7, t'en aura un appercu: photon mapping et GI.
plus globalement GI, le truc qui est hyper lourd a faire avec des rasterizers. soit tu le fais proprement mais c'est plus temps reel, soit tu te contente d'approximations, par exemple, les spherical harmonics d'ordre 3 ou 4 donnent des resultats potables, voire corrects pour l'ordre 4, mais c'est horrible point de vue memoire, 9 coefficients SH pour l'ordre 3, 16 pour l'ordre 4.
si tu veux du SH par vertex, tu dois avoir une tesselation minimum de la geometrie pour que ca soit utilisable. si c'est pas assez subdivise ca sert a rien d'avoir du SH, ca sera moche. bcp de vertex * bcp de coeffs SH * sizeof(float) (voire sizeof(half) a la limite) == bcp de mem
sinon y a toujours des SH maps, des lightmaps version SH qui au lieu de stocker les couleurs RGB de la lumiere pour chaque lumel, stockent les 9 ou 16 coefficients SH. idem, pour avoir une bonne resolution, grosses SH maps * bcp de coeffs SH == bcp de mem...
surtout que le SH ne marche que pour la geometrie statique et les lumieres dynamiques... des que la geometrie change, tu peux te fourrer les coeffs SH dtc (cherement precalcules, un calcul des coeffs pour une scene relativement simple peut prendre qques heures...).

mais tant que t'en reste a reflections/refractions, et meme ombres, le rt est surement plus elegant, mais point de vue perfs pour l'instant c'est de la merde en boite, et si c'est juste pour se contenter d'avoir des reflections/refractions, je prefere encore rester au rasterizing.
Et oui j'appelle ça du bricolage car c'est du precalculage qui fait en sorte qu'une grosse partie devient statique. Example: si par example dans un fps tu veux faire un trou dans un mur, ton PVS est foutu.


heu deja, tu peux reconstruire des branches du BSP a la volee assez rapidement, ensuite comme dit plus haut, le BSP est obsolete depuis heu.. bah depuis que les Z-buffers sont supportes en hardware, le seul avantage par rapport a d'autres partitionnement d'espace que ca avait c'est que ca te donnait un tri en Z gratuit avec le parcours de l'arbre. le PVS c'est mignon mais ca date enormement aussi, maintenant t'as des equivalents de pvs completement dynamiques avec l'occlusion culling (soft ou hard).
Quand je parle de shadow volumes et de shadow maps, je parle pas de la theorie mais de la pratique. Les shadow maps sont les plus faciles à mettre en oeuvre, mais se sont aussi ceux qui ont le plus de défauts (ex. si l'ombre est dirigé vers le point de vue, la résolution est beaucoup trop basse).

la tu parles des shadowmaps basiques, qui sont effectivement bcp plus simples a mettre en oeuvre que des shadow volumes "basiques".
par contre si on considere la grande famille des shadow maps, ce n'est pas elles qui ont le plus de defauts.
ce dont tu parle, avec le pbl de resolution, je suppose que c'est le pbl du dueling frustra? qui est juste que si tu regarde une surface ombree avec la lumiere rasante de devant, la resolution de la shadow map sera tres elevee sur les parties eloignees, et tres faible sur les parties proches.
ca c'est du a la projection naive de la shadow map. pour remedier a ca t'as les PSM (perspective shadow maps), qui ont une projection non uniforme (uniforme en post perspective space), de sorte que la resolution est plus elevee pres de l'observateur, et plus faible pour les parties eloignees de l'observateur. pour (tenter d') obtenir un ratio entre shadow map texels / frame buffer pixels le plus constant possible sur toute la shadow map.
et les PSM sont bcp plus chiantes a implementer que les shadow maps normales, et plus chiantes que les shadow volumes, et ont tjrs bcp de pbls, notemment un flickering des ombres, et une perte de resol dans certains cas
t'as aussi les TSM (trapezoidal shadow maps). les TSM elles englobent le view frustum avec un trapeze, et remappent le trapeze et le view frustum sur un carre, ca resulte en une utilisation bien meilleure de la resol de la shadow map, ca te donne des shadow maps excellentes, ca elimine pleins de problemes, ya plus de flicker, t'as tous les avantages des shadow maps, et aucun de leurs inconvenients.
et contrairement aux shadow volumes, tu peux te permettre d'avoir des polycounts tres eleves sans te soucier du cout de l'extraction de silhouette, et tu peux avoir des surfaces alpha testees qui produiront de bonnes ombres (pas comme les shadow volumes).
Les shadow volumes sont plus précis mais plus gourmands en fill-rate et calcul. Calculere la silhouette d'un modèle de 10 000 polygones est déjà assez lourd (10 000 LdotN). Mais le plus dur reste le remplissage du stencil buffer. C'est un vrai bricolage pour gérer les volumes, savoir jusqu'où il faut les allonger, ...


heu pas necessairement plus precis non, les shadow maps peuvent etre aussi precises (cf TSM), mais c'est pas forcement une bonne chose, ca te donne des ombres "precises" sans doute, mais immondes, on dirait des lames de rasoirs. et les soft shadows avec les shadow volumes... aheum... comment dire... smile 2 fps sur une 9800... ? cheeky
<troll>de tte facons les shadow volumes ca pue</troll>
wink

heu pour les tutos GLSL, j'ai pas de liens sous la main dsl, mais c'est tres tres proche de Cg et HLSH hein... (et pour eux t'en trouvera plein)
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

11

spectras> OK
EDIT: au fait LTK, tu peux tjrs aller jeter un oeil sur gpgpu.org, ils ont peut etre des trucs (cf la page dev de nvidia, nouveaux tutos dont des versions GLSL)
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

12

heu et pourquoi ca serait pas appliquable? que t'aie des reflections/refractions, ou des ombres, ca change strictement rien, c'est juste plus de rayons a tracer, c'est tout... je comprends pas ton "donc".


ben au debut j'avais pensé à ça:
PVSRT.PNG

le PVS ne reduit pas le nombre de collision a calculer dans ce cas là. Mais c'est vrai que si on élimine le miroir dans la salle III on pourrait éliminer une salle, j'y avais pas pensé. Mais bon, imagine un fps ou l'on aurait la possibilité d'utiliser des materiaux réfléchissant pour les skins. Je vois pas comment je ferais, recalculer un PVS a chaque frame en fonction des positions des jouers? Mais bon c'est vrai que t'as raison, le partionnement peut encore servir.
le principal interet des rt pour l'instant n'est visible ni implemente dans aucun des shots en question, ni dans le hw, par contre si tu vas voir freon 2/7, t'en aura un appercu: photon mapping et GI.


j'y avais aussi pensé, mais bon c'est vraiment fort lourd comme calcul pour l'appliquer de façon correcte et en temps réel. J'ai déjà vu une implementation avec le calcul de photon mapping complètement déplacé vers le GPU et pour renderiser la boite de Cornell avec des paramètres
capable de donner une image acceptable ça prenais 64,3 secondes.
ca c'est du a la projection naive de la shadow map. pour remedier a ca t'as les PSM (perspective shadow maps), qui ont une projection non uniforme (uniforme en post perspective space), de sorte que la resolution est plus elevee pres de l'observateur, et plus faible pour les parties eloignees de l'observateur. pour (tenter d') obtenir un ratio entre shadow map texels / frame buffer pixels le plus constant possible sur toute la shadow map.


les PSM je connaissait et comme tu le dis, en pratique c'est caca. Par contre les TSM je connaissait pas, tu pourrais me passer des liens, ça a l'air pas mal comme technique.
heu pas necessairement plus precis non, les shadow maps peuvent etre aussi precises (cf TSM), mais c'est pas forcement une bonne chose, ca te donne des ombres "precises" sans doute, mais immondes, on dirait des lames de rasoirs. et les soft shadows avec les shadow volumes... aheum... comment dire... 2 fps sur une 9800... ?


c'est vrai que ça donne des lames de rasoirs, et c'est pas moi non plus qui va commencer a renderiser 8+ shadow volumes par ombre où d'autres techniques lentes pour simuler la pénombre. Par contre, si tu fais du calcul d'illumination par pixel, tu peux avoir de bons résultats sur les extremités en utilisant des shadow volumes et en faisant une passe par source de lumière. C'est la technique utilisé dans Doom3 je crois.
http://www.doomworld.com/php/screenie.php?dir=/doom3_051303/&number=1
Ca donne un dégradé à l'extrimité de l'ombre. Mais toujours pas de pénombre.

Sinon un autre avantage avec le rt c'est qu'on peut utiliser des équations mathématiques pour définir des surfaces à la place de triangles, le meilleur example est la sphère, le test de collision est beaucoup plus rapide et donne de meilleurs résultats. Si on utilise un maximum de surfaces de bases, ça reduirait le temp de calcul considérablement. Plus besoin de LOD pour ce genre de surfaces en plus. Mais bien sur ça rend plus difficile le texure mapping sad

./11 -> je connais déjà GPGPU.org mais c'est plus des papers que des tutos. Mais merci quand même. Je pense que je vais m'acheter l'orange book finalement.
DaVinci DV3
www.sf.net/projects/dv3sdk

13

sBibi> tiens j'ai retrouvé la vidéo de la conférence (format realplayer).
Il le dit à la minute 50 à peu près.
Si tu regardes la vidéo : la présentation du jeu commence minute 28. Il présente le slap de la créature minute 38. Et il fait un démonstration de combat minute 40 environ.

14

j'y avais aussi pensé, mais bon c'est vraiment fort lourd comme calcul pour l'appliquer de façon correcte et en temps réel.


mais c'est bcp plus commode, propre, et flexible/puissant de faire ca avec un rt qu'avec un rasterizer, et ca sera un grand avantage compare aux rasterizers quand les hardware de raytracing le gereront.
ben au debut j'avais pensé à ça:
[img] le PVS ne reduit pas le nombre de collision a calculer dans ce cas là. Mais c'est vrai que si on élimine le miroir dans la salle III on pourrait éliminer une salle, j'y avais pas pensé. Mais bon, imagine un fps ou l'on aurait la possibilité d'utiliser des materiaux réfléchissant pour les skins. Je vois pas comment je ferais, recalculer un PVS a chaque frame en fonction des positions des jouers? Mais bon c'est vrai que t'as raison, le partionnement peut encore servir.


heu oue mais la le seul pbl c'est que tu raisonne en mode rasterizing ou t'as une notion de pvs pour le point de vue, la si il y devait y avoir une histoire de pvs, ca serait un pvs par rayon, donc a chaque fois que tu trace un rayon (soit les rayons root castes traces depuis la camera et passant par un pix du plan de projection de l'ecran, soit les rayons traces a partir des points d'intersections de != surfaces (tes miroirs)).
mais y a pas d'histoire de pvs, je suis d'accord sur le fait qu'un pvs sert a rien, quand je t'ai quote plus haut c'etait pour la phrase en general, quand t'impliquais par bsp que le partitionnement pouvait jarter sans pbl.
la pour chaque nouveau rayon t'as juste quelques tests de collisions avec des boites (ou spheres) englobantes a faire avant d'arriver a un set relativement faible de surfaces a tester.

j'y avais aussi pensé, mais bon c'est vraiment fort lourd comme calcul pour l'appliquer de façon correcte et en temps réel. J'ai déjà vu une implementation avec le calcul de photon mapping complètement déplacé vers le GPU et pour renderiser la boite de Cornell avec des paramètres capable de donner une image acceptable ça prenais 64,3 secondes.


oue bah le photon mapping sur le gpu c'est pas encore vraiment utilisable non grin
j'ai des exemples un peu moins gore que le tien point de vue temps de calcul, mais ils sont fait sur des scenes relativement petites, et surtout, ils sont faits progressivement.

radiosite sur le GPU: http://www.cs.unc.edu/~coombe/research/radiosity/
ils calculent des lightmaps a la volee. dl la video, on voit bien le refinement progressif (j'ai pas regarde en detail comment ils faisaient, mais on dirait qu'ils font plus ou moins une iteration de radiosite par frame)
sinon pour le photon mapping: http://graphics.stanford.edu/papers/photongfx/
mais bon, la c'est pareil, des que tu bouge la lumiere ou les objets, la (les?) photon map est invalidee, et ils doivent la recalculer, ca rend bizarre le lag qu'il y a... et c'est bizarre pke j'ai l'impression que des que la vue bouge ils doivent la recalculer aussi, comme si elle etait en screenspace, ou dependante de la vue trifus (g pas regarde l'article, ils l'expliquent peut etre... (surement))
c'est vrai que ça donne des lames de rasoirs, et c'est pas moi non plus qui va commencer a renderiser 8+ shadow volumes par ombre où d'autres techniques lentes pour simuler la pénombre. Par contre, si tu fais du calcul d'illumination par pixel, tu peux avoir de bons résultats sur les extremités en utilisant des shadow volumes et en faisant une passe par source de lumière. C'est la technique utilisé dans Doom3 je crois.
http://www.doomworld.com/php/screenie.php?dir=/doom3_051303/&number=1 Ca donne un dégradé à l'extrimité de l'ombre. Mais toujours pas de pénombre.


je sais pas comment c'est fait dans doom3, mais ca ca se fait tout seul si tu attenue les lumieres en fct de la distance, c'est sur ca rend deja mieux que les ombres completement sharp et uniformes, mais c'est quand meme tres sharp et uniforme grin
perso chuis pas trop fan des choix techniques qui ont ete faits pour doom3, ms bon, ca n'engage que moi smile
les PSM je connaissait et comme tu le dis, en pratique c'est caca. Par contre les TSM je connaissait pas, tu pourrais me passer des liens, ça a l'air pas mal comme technique.


heu je posterai le lien tout a l'heure, je l'ai pas sous la main la
Sinon un autre avantage avec le rt c'est qu'on peut utiliser des équations mathématiques pour définir des surfaces à la place de triangles

oui, ca c'est sur que c'est bien. par contre pour les applications pratiques, plutot que des spheres/tores/cones/cylindres/plans et autres formes simples, ce qui est bcp plus interessant c'est les patch de bezier ou les SubD/nurbs, par ex pour le terrain. et le texturing est pas tellement plus complique que ca (plus complique que pour un plan c'est sur grin), surtt si c'est gere en hard (mais la encore, c'est pas le cas pour l'instant)
mais pour les surfaces c'est pas l'argument le plus pesant en faveur du rt a mon avis. le hardware graphique actuel est deja capable de subdiviser des surfaces parametriques, et il va probablement evoluer favorablement dans ce sens. avec l'addition des vertex textures dans les VS3.0, ca te permet deja de faire des trucs pas mal du tout.
je sais plus si un constructeur de GPU a deja implemente la tesselation anisotropique pour les patch, mais en tout cas si c'est pas deja fait ca va pas tarder... faudrait que je me renseigne pour la tesselation aniso tiens...

In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

15

spectras> ok, thx, j'irai voir ce soir smile
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

16

C'est quoi les structures de données mieux que les BSPs ?
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

17

ca depend pour quoi, les BSP sont toujours bien pour avoir un tri en Z gratuit des faces, dans un sens ou dans l'autre, mais puent point de vue dynamique et split des polygones. et manque de peau, maintenant le tri en Z des faces sert plus a rien vu qu'il y a les Z-buffers hardware (sauf pour les faces alpha blendees qui ont quand meme besoin d'etre triees, ou ca peut encore avoir un interet).
t'as des octrees, des kd-trees, des AABB trees, des sphere trees, des loose octrees, loose AABB-trees, des ABT (adaptive binary tree, une version de loose AABB trees).
et ca depend tellement de ce pour quoi tu veux l'utiliser que y a pas de "meilleur" systeme. si tu veux partitionner un terrain avec heightmap les quadtrees sont tres bien, mais ca suxera pour partitionner une cathedrale de 10 millions de polys... bref..
(surtout qu'il n'y a pas que l'aspect graphique, mais en general les structures de partitionnement sont aussi utilisees pour les collisions, d'ailleurs dans le cas du rt, cf les collisions avec les rayon).
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

18

(sauf pour les faces alpha blendees qui ont quand meme besoin d'etre triees, ou ca peut encore avoir un interet)
Ben les faces transparentes tu les dessinne en dernier avec le z write désactivé non ? Si t'as pas trop d'objets avec transparence ou que tu fais que des transformations simples, tu perds pas grand chose en vitesse normalement.

19

spectras> non, ca c'est bon que pour les faces blendees en additif, ou tu te contrefous de l'ordre Z, y a pas d'alpha qui entre en jeu, la je parlais des faces _alpha_ blendees, ou la couleur finale est donnee avec couleur_d'origine * A + couleur_frame_buffer * B, ou l'alpha de la source ou du frame buffer entre en compte dans A ou dans B.
comme tu peux avoir certaines parties totalement opaques et certaines parties totalement transparentes sur la surface, t'es oblige de les afficher d'arriere en avant, surtout que
la couleur finale est completement dependante de l'ordre dans lequel tu les affiche.
par contre les faces alpha testees elles ont pas besoin de tri, elles peuvent etre affichees comme les faces normales avec les zwrites actives sans pbl...
Si t'as pas trop d'objets avec transparence ou que tu fais que des transformations simples, tu perds pas grand chose en vitesse

bah de tte facons tu perds rien en vitesse, t'en gagne dans le cas des faces additives, vu que t'as pas de tri a faire comme si le zbuffer etait active (le tri a de ttes facons un overhead insignifiant si tu utilise la coherence d'une frame a l'autre, en gardant l'ordre de tri de la frame d'avant, il y aura tres peu de faces a retrier d'une frame a l'autre, un coup de radix sort les premieres frame, pis merge sort pour celles d'apres, ou meme un truc encore plus balau, je sais pas comment ca s'appelle, qui a normalement des perfs minables, qui fait des passes dans le tableau a trier tant qu'il est pas trie, et qui swap deux elements des qu'il en trouve qui ont besoin d'etre swappes, et t'as un cout de tri insignifiant).
et dans le cas des faces alpha blendees, t'as pas de pertes de perfs non plus, vu que tu les affiches d'avant en arriere, ton zbuffer te sert a rien et cull aucun fragment de toutes facons.
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

20

ou meme un truc encore plus balau, je sais pas comment ca s'appelle, qui a normalement des perfs minables, qui fait des passes dans le tableau a trier tant qu'il est pas trie, et qui swap deux elements des qu'il en trouve qui ont besoin d'etre swappes,

un des nom de ce tri est "bubble sort" mais ça doit pas être le terme technique.

Salut,
comme vous avez l'air relativement calé en hard, je me permet de vous poser cette question un peu hors contexte, mais pas trop car mon but est d'en faire du ray tracing :
Savez vous comment lire à partir du gpu le buffer contenant les normales et celui des pîxels ( le buffer RGB quoi ) ?
Ah oui et le zbuffer pour déprojeter et donc trouver les positions spaciales des points ?

21

un des nom de ce tri est "bubble sort" mais ça doit pas être le terme technique.

je vois pas quel terme il peut y avoir pour le bubble sort... ce dont je parlais peut effectivement etre compare a un bubble sort, bien que legermenet modifie pour favoriser le meilleur des cas...

Savez vous comment lire à partir du gpu le buffer contenant les normales et celui des pîxels ( le buffer RGB quoi ) ? Ah oui et le zbuffer pour déprojeter et donc trouver les positions spaciales des points ?

tu n'as pas de buffer de normales dans lequel tu peux lire au meme titre que dans une texture/frame buffer. les normales sont specifiques au vertex stream courant que le GPU est en train d'afficher, et la seule particularite pour comment les recuperer depend de l'API que t'utilise...

pour lire les valeurs rgba des fragments (== "pixels" si le FSAA est a 1 sample par pixel), tu dois soit faire un render to texture, soit un copy to texture.
pour le rtt: - creer un nouveau render target, le binder en tant que render target courant, - afficher ce que tu veux, - re-binder le frame buffer normal, et binder l'ancien render target dans une texture unit, - rendre ce que tu veux, et tu accede aux pixels comme dans une texture normale.
pour le ctt: rendu normal, copie du frame buffer dans une texture, bind de la texture, re-rendu de ton truc final...

idem pour le z-buffer, quoique suivant ton hardware, c'est legerement plus subtil pour aller lire le z-buffer.

et heu biensur, je suppose que tu veux faire tout ca dans un vertex (sm3.0 minimum), ou pixel shader? (n'importe quelle version)
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

22

les normales sont specifiques au vertex stream courant que le GPU est en train d'afficher, et la seule particularite pour comment les recuperer depend de l'API que t'utilise...

Ennuyeux ça... Comment faire sachant que j'utilise opengl ?
pour lire les valeurs rgba des fragments (== "pixels" si le FSAA est a 1 sample par pixel), tu dois soit faire un render to texture, soit un copy to texture.

Effectivement, je suis sun peu con. C'est une bonne façon.
idem pour le z-buffer, quoique suivant ton hardware, c'est legerement plus subtil pour aller lire le z-buffer.

gluUnProject c'est pas pile ce qu'il faut ? ou alors glu n'est pas aussi portable que gl ?

Mais si ça se trouve toute ma démarche est stérile à la base :
Je me disais que si je peux isoler les positions, normales, couleurs et material ( pour ça je dois pouvoir me démerder en écrivant puis lisant dans le stencil buffer à la fin, non ? ) je pourrais réduire chaque coûteuse opération de raytracing uniquement aux n = résolution_with x résolution_height pixels qui subsitent à la fin.
Mais peut être est-ce encore trop pour approcher du ray tracing en temps réel.

et heu biensur, je suppose que tu veux faire tout ca dans un vertex (sm3.0 minimum), ou pixel shader? (n'importe quelle version)

p'tet ben qu'oui, p'tet ben qu'on !
En fait je ne comprends pas ce que tu veux dire : un vertex sm3.O minimum ? c'est quoi ?
et pixel shader j'ai une vague notion de ce que c'est mais n'en ai jamais utilisé. Ou alors à l'insu de mon plein gré et alors dans ce cas j'ai rien compris à ce que ce terme recouvre ( pour moi c'est un script décrivant une façon d'éclairer une scène et qui peut en outre être compilé ( comment et à quel niveau ? ) pour être plus rapide ).
En gros, moi je fais ça, http://der.hund.free.fr, et je voudrais pouvoir faire du ray tracing sans avoir à me prendre la tête avec des extensions GL particulières à la [censure]con[/censure] ( qui ne sont jamais compatibles d'une carte à l'autre ) ou quoi que ce soit d'autre de lourd et/ou non multi platerforme afin de rendre l'éclairage plus joli, plus réel surtout.
Beaucoup d'ambition pour pas grand chose...

23

der
:
les normales sont specifiques au vertex stream courant que le GPU est en train d'afficher, et la seule particularite pour comment les recuperer depend de l'API que t'utilise...
Ennuyeux ça... Comment faire sachant que j'utilise opengl ?

heuu... trifus petite, question, tes objets, tu les affiche comment? glVertex3f/glTexCoord3f/glNormal3f/etc.. ou bien autre chose? (chais pas pk mais je sens venir le gl*3f grin)
idem pour le z-buffer, quoique suivant ton hardware, c'est legerement plus subtil pour aller lire le z-buffer.
gluUnProject c'est pas pile ce qu'il faut ? ou alors glu n'est pas aussi portable que gl ?


oula.. tu veux en faire quoi de ton Z-buffer? tu veux le rapatrier de la vram en system ram et l'utiliser avec le CPU, cad y acceder a la main depuis ton programme? si c'est ca et que c'est pareil pour le color buffer (rgb(a)), tu peux utiliser glReadPixels directement...

Mais si ça se trouve toute ma démarche est stérile à la base : Je me disais que si je peux isoler les positions, normales, couleurs et material ( pour ça je dois pouvoir me démerder en écrivant puis lisant dans le stencil buffer à la fin, non ? ) je pourrais réduire chaque coûteuse opération de raytracing uniquement aux n = résolution_with x résolution_height pixels qui subsitent à la fin.


1- j'ai rien compris
2- le stencil buffer vient foutre quoi la dedans? trifus (je vois pas son utilite sans doute pke j'ai pas compris triso)
Mais peut être est-ce encore trop pour approcher du ray tracing en temps réel.


de tte facons, quand le raytracing temps reel deviendra vraiment interessant, ca sera quand du hardware specialise pour le raytracing sera sur le marche (rien avoir avec les cartes actuelles qui font uniquement du rasterizing), bien que tu puisse faire du raytracing dans un pixel shader avec les ps3.0
et heu biensur, je suppose que tu veux faire to ut ca dans un vertex (sm3.0 minimum), ou pixel shader? (n'importe quelle version)

p'tet ben qu'oui, p'tet ben qu'on ! En fait je ne comprends pas ce que tu veux dire : un vertex sm3.O minimum ? c'est quoi ?


sm3.0 comme shader model 3.0, la version 3.0 des vertex shaders, norme DirectX (pour l'instant, seules les GF6800 supportent les vs et ps 3.0, les X800 le supportent pas)
et pixel shader j'ai une vague notion de ce que c'est mais n'en ai jamais utilisé. Ou alors à l'insu de mon plein gré et alors dans ce cas j'ai rien compris à ce que ce terme recouvre

( pour moi c'est un script décrivant une façon d'éclairer une scène et qui peut en outre être compilé ( comment et à quel niveau ? ) pour être plus rapide ).


heu.. non. un pixel ou vertex shader doit etre compile de toutes facons. et c'est une sorte de micro programme que tu envoies a ta carte graphique. tant qu'il est actif, le vertex shader actuel s'execute pour chaque vertex qui est affiche, et le pixel shader actuel (appelle a tort pixel shader par Direct3D, malheureusement ca s'est popularise, dans OpenGL c'est "vertex program" pour vertex shader et "fragment program" pour pixel shader), s'execute pour chaque fragment genere par le rasterizer de la carte...

tu les ecrits soit en asm (et tu les compile et les envoie a la carte via une extension d'OpenGL), soit en Cg (le langage de Nvidia, qui n'est _pas_ specifique a nvidia, ca marche tres bien sur les ATI aussi...), qui est un mix entre le C et le C++, soit en GlSL (l'equivalent du HLSL de Direct3D), qui est tres proche de Cg point de vue syntaxe.

et tu devrais chercher des tutoriaux sur google si ca t'interesse... t'en trouve a la pelle...
En gros, moi je fais ça, http://der.hund.free.fr, et je voudrais pouvoir faire du ray tracing sans avoir à me prendre la tête avec des extensions GL particulières à la [censure]con[/censure]


si t'aime pas les extensions, utilise D3D, et si tu peux pas utiliser D3D pke t'es pas sous windows, je crois que c'est dtcbpafad...
justement les extensions GL c'est ce qui fait toute la puissance de gl compare a direct3d (avis totalement personnel et as objectif biensur grin)
( qui ne sont jamais compatibles d'une carte à l'autre )

heu... non neutral
c'est un peu le principe des extensions vendor specific d'etre compatibles qu'avec une _marque_ de cartes (bien que tu aies certaines extensions ATI qui soient supportees par Nvidia), mais il y a aussi toutes les extensions normalisees, approuvees par l'ARB (Architectural Review Board), et qui commencent par ARB_, ou bien les extensions os specific, qui dependent pas des cartes, mais de l'os, bref...
ou quoi que ce soit d'autre de lourd et/ou non multi platerforme afin de rendre l'éclairage plus joli, plus réel surtout. Beaucoup d'ambition pour pas grand chose...


heu sans vouloir etre mechant, vu tes screenshots, c'est pas du raytracing qui va ameliorer quoi que ce soit point de vue qualite graphique, le raytracing c'est pas un truc magique qui prend des trucs moches pour en faire des trucs jolis... tu peux faire beaucoup beaucoup mieux que ce que t'as avec du rasterizing normal, et ca sera bcp plus rapide a qualite egale que n'importe quelle forme de fake raytracing que tu pourra faire via gl...
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

24

chais pas pk mais je sens venir le gl*3f

bien senti ! Si c'est une hérésie et bien je suis prêt à faire le terrible sacrifice d'une utilisation de glVertex3fv ou glIndexXX, si tant est que ce soit ce que tu étais sur le point de conseiller dans le cadre de ce que je cherche à faire. Si ce n'est pas le cas et bien que me conseilles tu ?
oula.. tu veux en faire quoi de ton Z-buffer? tu veux le rapatrier de la vram en system ram et l'utiliser avec le CPU,
heu... oui... je sens à ton ton que c'était très con... ok c'était pas ma journée pour les questions.
cad y acceder a la main depuis ton programme?
heu... toujours oui. Sinon ce serait suicidaire de faire ce "rapatriment" pour rien, non ?
tu peux utiliser glReadPixels directement...
d'ac, merci. C'est ce que j'utilise pour prendre les screenshots ( pourris donc ). Mais comme c'était ultra ultra lent ( presque une seconde ) je pensais que ça ne conviendrait jamais mais ça doit être en grande partie du à la sauvegarde en png qui n'est pas un format utlra rapide à créer je suppose.
Je me disais que si je peux isoler les positions, normales, couleurs et material ( pour ça je dois pouvoir me démerder en écrivant puis lisant dans le stencil buffer à la fin, non ? )
1- j'ai rien compris 2- le stencil buffer vient foutre quoi la dedans?    (je vois pas son utilite sans doute pke j'ai pas compris   )

Si jeux veux faire du ray tracing il me faut, pour chacuns des pixels :
1 : la position du point correspondant dans l'espace, d'où l'utilisation de gluUnproject
2 : ce point appartenait à une surface et avait à ce titre une normale précise à cette position. J'en ai besoin , il me semble que c'est important pour les calculs.
3 : en fait, je il est probable que connaitre le RGB buffer ne soit pas du tout utile. Honte sur moi d'avoir posé la question.
4 : et enfin ce que vient foutre le stencil buffer : il faut aussi que je sache comment était la matière ( si elle refletait, quel était son shininess, etc... ) et pour cela je me suis dit que faire écrire dans le stencil buffer une valeur qui correspondrait dans mon moteur au material utilisé pour ensuite le relire et savoir comment opérer le ray tracing pouvait être une bonne idée.
<toute ta partie sur l'explication des vertex shaders>

Mis à part l'aspect technique sur à-quoi-ressemble-le-langage-du-script et à quel moment était-ce compilé, c'est en gros ce que j'avais compris.
Moralité : je m'exprime très mal !
si t'aime pas les extensions, utilise D3D

D3D ? rien que ces trois lettres accolées me donnent la nausée.
( qui ne sont jamais compatibles d'une carte à l'autre )
heu... non    c'est un peu le principe des extensions vendor specific d'etre compatibles qu'avec une _marque_ de cartes (bien que tu aies certaines extensions ATI qui soient supportees par Nvidia), mais il y a aussi toutes les extensions normalisees, approuvees par l'ARB

Ok, désolé, je reprends :
"qui ne sont pas toujours compatibles d'une carte à l'autre". ex celles qui commencent par NV_, 'NV' comme... tada : NVidia !
J'ai bon là ?
le raytracing c'est pas un truc magique qui prend des trucs moches pour en faire des trucs jolis...

Non ? Sans déconner ! Quelle déception...
heu sans vouloir etre mechant, vu tes screenshots, c'est pas du raytracing qui va ameliorer quoi que ce soit point de vue qualite graphique [...] tu peux faire beaucoup beaucoup mieux que ce que t'as avec du rasterizing normal, et ca sera bcp plus rapide a qualite egale que n'importe quelle forme de fake raytracing que tu pourra faire via gl...

Tu n'es pas particulièrement méchant. Mais ton ton est quand même insidieusement méprisant, reconnais le. Cela dit moi je reconnais que les models sont pourris ( à part celui de mario qu'on ne voit pas bien. mais c'est pas moi qui l'ai fait, c'est le vrai mesh du jeu Mario64 ), que les décors sont vides, les textures mal choisies, etc...
Pour que tu comprennes bien tout :
1 ) j'ai donner l'adresse cette page pour te monter à quel point certains décors sont minuscules et pourraient se preter plus facilement à du raytracing.
2 ) Je ne suis pas infographiste, j'ai fait les models en une nuit juste pour avoir quelque chose d'un peu plus visuel pour débuger que des cubes pour représenter les différentes partie du corps.

Bon, maintenant que :
1 ) tu m'as donné un cours sur la syntaxe des vertex shaders
2 ) tu m'as repris sur les extensions GL
3 ) tu m'as fais comprendre - sans être méchant - que mes snaps étaient moches ( ce qui je reconnais absolument sans complexe ) et que du raytracing n'y changerait jamais rien,
4 ) de toutes façons, mon idée n'aboutirait jamais...
est-ce que tu veux bien, s'il te plait, si jamais tu sais comment faire, m'expliquer comment réunir en opengl les données suivantes pour chaque pixel :
1 ) position dans l'espace; gluUnproject, c'est bon ou c'est une idée trop conne et ça ne fonctionnera pas ?
2 ) normale; (???)
3 ) RGB; éventuellement optionnel, dans le cas contraire tu confirmes l'utilisation de glReadPixel ? pas trop lent pour mon fake ray tracing ?
4 ) material utilisé; Moi sans jamais l'avoir utilisé j'avais pensé au stencil buffer. Mais si c'est pas viable non plus comme solution je suis sincèrement ouvert à toute autre.
Voila.
J'espère avoir été assez humble dans ma demande ?
M'accorderas tu te partager ton savoir sans te foutre de mon idée pendant encore 20 posts ?

ah oui, dernière chose, je te promets de :
1 ) si ça n'aboutit à rien de mettre cette mention dans le read-me : "merci à sBibi d'avoir essayé de me montrer que le ray tracing à ma sauce n'était pas possible"
2 ) et si ça marche de mettre : "merci à sBibi de m'avoir aiguillé pour mon fake ray tracing", que j'appelerai d'ailleurs 'frt' en ton honneur.
Evidement, pas de panique, tout ça seulement si tu es d'accord. Je n'associerais jamais mon jeu - pourri ou pas là n'est pas la question - au nom de quelqu'un sans son accord.

merci pour ton aide.

25

flemme de lire tous ces posts, mais pour ton site, les accents ne passent pas parce qu'il est en UTF-8, essaye d'ouvrir le fichier avec Notepad et de faire "Enregistrer sous" -> "Codage : ANSI" (si tu es sous windows)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

26

lol... v repondre a l'envers la je crois wink
merci pour ton aide.

mais je t'en prie cheeky
Tu n'es pas particulièrement méchant. Mais ton ton est quand même insidieusement méprisant, reconnais le.

bah, tu sais c'est assez dur de dire des trucs comme ca sans que la personne le prenne mal, c'est juste etre realiste. tu veux utiliser du raytracing pour quoi? rajouter des reflections/refractions? neutral si c'est juste pour ca, vu la simplicite de tes scenes, tu peux le faire en software (si c'est pas deja fait), ca t'apprendra beaucoup plus que des bidouilles avec gl. enfin tu fais ce que tu veux, je veux pas te donner l'impression de chercher a te decourager, donc fait comme tu le sens. (si t'avais dit que tu voulais utiliser des methodes de rt pour faire du photon mapping ou une forme quelconque de global illumination, la ok, mais pour des scenes comme ca, a part a but educatifs, je vois pas du tout l'interet (et dans le cas ou c'est un but educatif, ca t'approterait bcp plus de le faire en soft... bref))
Cela dit moi je reconnais que les models sont pourris ( à part celui de mario qu'on ne voit pas bien. mais c'est pas moi qui l'ai fait, c'est le vrai mesh du jeu Mario64 ), que les décors sont vides, les textures mal choisies, etc...

ah y a des textures a part le ciel? trifus j'avais l'impression que c'etait tout en flat... smile
Pour que tu comprennes bien tout :
1 ) j'ai donner l'adresse cette page pour te monter à quel point certains décors sont minuscules et pourraient se preter plus facilement à du raytracing. 2 ) Je ne suis pas infographiste, j'ai fait les models en une nuit juste pour avoir quelque chose d'un peu plus visuel pour débuger que des cubes pour représenter les différentes partie du corps.


j'avais compris, si je t'ai fait ces commentaires c'est juste parceque je trouvais ca deplace de vouloir utiliser du raytracing en esperant que ca ameliorerait la qualite gfx...
Bon, maintenant que : 1 ) tu m'as donné un cours sur la syntaxe des vertex shaders

heu... t'appelle ca un cours sur la syntaxe des vertex shaders toi? j'appelle ca 2-3 petites infos seulement... neutral si tu veux des cours/tutos, cf google comme j'ai dit plus haut...
2 ) tu m'as repris sur les extensions GL
3 ) tu m'as fais comprendre - sans être méchant - que mes snaps étaient moches ( ce qui je reconnais absolument sans complexe ) et que du raytracing n'y changerait jamais rien, 4 ) de toutes façons, mon idée n'aboutirait jamais...

non, que l'effort necessaire a son aboutissement n'en valait vraiment pas la peine vu le resultat que ca donnerait...
est-ce que tu veux bien, s'il te plait, si jamais tu sais comment faire, m'expliquer comment réunir en opengl les données suivantes pour chaque pixel : 1 ) position dans l'espace; gluUnproject, c'est bon ou c'est une idée trop conne et ça ne fonctionnera pas ?


si tu as recupere ton Z-buffer, oui tu peux recuperer la position dans l'espace a chaque fragment avec un gluUnproject (bien que je sois pas particulierement fan des fonctions de glu, surtout celle la qui est une fonction de 4-5 lignes a refaire, mais bon...)
2 ) normale; (???)

non, les normales, tu peux pas, ou bien au lieu de rendre des couleurs, tu les stockes dans ton buffer RGB, y te faut un shader pour ca...

[quote3 ) RGB; éventuellement optionnel, dans le cas contraire tu confirmes l'utilisation de glReadPixel ? pas trop lent pour mon fake ray tracing ?[/quote]
de toute facons si j'ai bien compris ce que tu veux faire, ca serait juste utiliser la carte pour calculer les positions de chaque pixel a l'ecran, et apres recuperer toutes ces infos et faire le raytracing sur le CPU?
si c'est ca je confirme l'utilisation de glReadPixels, oui, par contre pour le "pas trop lent", ca sera de toutes facons plus lent que de le faire en software... et t'as pas vraiment d'autres moyens si tu veux le faire sur le CPU que de faire un readback du frame buffer..
4 ) material utilisé; Moi sans jamais l'avoir utilisé j'avais pensé au stencil buffer. Mais si c'est pas viable non plus comme solution je suis sincèrement ouvert à toute autre.

stocke le dans l'alpha de ton frame buffer, ca te donne 256 materiaux possibles.

J'espère avoir été assez humble dans ma demande ? M'accorderas tu te partager ton savoir sans te foutre de mon idée pendant encore 20 posts ?

c'est ennervant les gens qui se rabaissent je vois pas ce que vient foutre une quelconque humilite la dedans, tu poses des questions c'est tout (et tu t'obstine, c'est ton droit wink)... et je me fous pas de ton idee, juste parceque je l'ai critiquee, ca veut pas dire que je m'en fous ou que je me fous de toi (dans le sens moquerie), inutile de le prendre mal... tu veux t'obstiner dans ton idee, tres bien. tu te rendra compte apres par toi meme qu'elle est a jeter de toute facons (pas la peine de prendre mal ces derniers mots non plus roll), et c'est sans doute mieux comme ca, meme si ca te fait perdre du temps... au moins ca t'apprendra des trucs que t'aurais pas appris si t'etais directement passe a autre chose.
ah oui, dernière chose, je te promets de :
1 ) si ça n'aboutit à rien de mettre cette mention dans le read-me : "merci à sBibi d'avoir essayé de me montrer que le ray tracing à ma sauce n'était pas possible"
2 ) et si ça marche de mettre : "merci à sBibi de m'avoir aiguillé pour mon fake ray tracing", que j'appelerai d'ailleurs 'frt' en ton honneur. Evidement, pas de panique, tout ça seulement si tu es d'accord. Je n'associerais jamais mon jeu - pourri ou pas là n'est pas la question - au nom de quelqu'un sans son accord.

pas la peine de te fatiguer, si tu devais faire ca, j'imagine meme pas la tete deton fichier de thanks, faudrait que tu remercie tous les gens qui t'ont donne 2-3 minuscules conseils de rien du tout, donc non merci, je prefere pas, et j'en ai rien a foutre d'etre dans des thanks...
Ok, désolé, je reprends :
"qui ne sont pas toujours compatibles d'une carte à l'autre". ex celles qui commencent par NV_, 'NV' comme... tada : NVidia ! J'ai bon là ?

trioui \o/\o/\o/
bien senti ! Si c'est une hérésie et bien je suis prêt à faire le terrible sacrifice d'une utilisation de glVertex3fv ou glIndexXX, si tant est que ce soit ce que tu étais sur le point de conseiller dans le cadre de ce que je cherche à faire. Si ce n'est pas le cas et bien que me conseilles tu ?

y a pas d'"heresie" ou de pas heresie... les glVertex* et autres sont tres pratiques pour faire des tests vite fait, un avantage compare a Direct3D. par contre espere pas avoir un truc rapide avec smile
regarde dans la direction de glVertexPointer, glNormalPointer, etc, et de glDrawElements/glDrawRangeElements... enfin bon vu le nombre de vertex que tu dois avoir dans tes scenes je pense pas que ca change grand chose, et les bottlenecks viendront certainement pas de la smile (dans le cas ou t'aurais beaucoup de vertex, t'as aussi les extensions pour les VAR, et les VBO (si tu veux savoir ce que c'est cherche un peu, j'ai la flemme d'expliquer la... tu trouvera tout ce dont t'as besoin sur le site SGI dans la extensions registry...))
heu... oui... je sens à ton ton que c'était très con... ok c'était pas ma journée pour les questions.

c'est pas necessairement tres con, c'est juste horriblement lent smile mais de toutes facons si tu veux faire ton rt sur le CPU, t'as pas d'autres moyens...
d'ac, merci. C'est ce que j'utilise pour prendre les screenshots ( pourris donc ). Mais comme c'était ultra ultra lent ( presque une seconde ) je pensais que ça ne conviendrait jamais mais ça doit être en grande partie du à la sauvegarde en png qui n'est pas un format utlra rapide à créer je suppose.

je pense plutot que ca vient de l'encodage en png, bien que les readpixels soient tres lent, ca atteint jamais vraiment la seconde, a part pour des resolutions inhumaines avec du FSAA, et encore...
t'as quoi comme config? (carte gfx/AGP ?)

Si jeux veux faire du ray tracing il me faut, pour chacuns des pixels :
1 : la position du point correspondant dans l'espace, d'où l'utilisation de gluUnproject
2 : ce point appartenait à une surface et avait à ce titre une normale précise à cette position. J'en ai besoin , il me semble que c'est important pour les calculs.
3 : en fait, je il est probable que connaitre le RGB buffer ne soit pas du tout utile. Honte sur moi d'avoir posé la question. 4 : et enfin ce que vient foutre le stencil buffer : il faut aussi que je sache comment était la matière ( si elle refletait, quel était son shininess, etc... ) et pour cela je me suis dit que faire écrire dans le stencil buffer une valeur qui correspondrait dans mon moteur au material utilisé pour ensuite le relire et savoir comment opérer le ray tracing pouvait être une bonne idée.


t1 mais pourquoi "Honte sur moi d'avoir posé la question" ??!! si tu sais pas un truc c'est normal de poser des questions... neutral
pour le reste, cf au dessus

D3D ? rien que ces trois lettres accolées me donnent la nausée.

lol... et t'as une raison particuliere? a part que c'est fait par microsoft et que ca tourne pas sur ton linux? smile
(si jamais discutter avec un pro-D3D te bloquait (toi je sais pas, mais certains reagissent comme ca en tout cas, pareil dans l'autre sens), je te "rassure", j'utilise GL...)
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

27

tu trouvera tout ce dont t'as besoin sur le site SGI dans la extensions registry
Il me semblait que les VBO avaient été intégrés à OpenGL lui-même à partir de OpenGL1.3 ou 1.4 ? (d'ailleurs au passage, der si tu n'as pas le OpenGL Programming Guide (le Red Book), file vite l'acheter, c'est LE bouquin incontournable sur OpenGL).
lol... et t'as une raison particuliere? a part que c'est fait par microsoft et que ca tourne pas sur ton linux? (si jamais discutter avec un pro-D3D te bloquait (toi je sais pas, mais certains reagissent comme ca en tout cas, pareil dans l'autre sens), je te "rassure", j'utilise GL...)
Bah moi j'ai des raisons d'ordre technique : direct3d c'est pete-couilles à utiliser. Pour plusieurs raisons :
- les noms de fonction à la con. Bon ok opengl les a aussi.
- c'est du COM. Ca veut dire qu'il faut savoir comment COM marche si tu veux pas t'emmeler les pinceaux notamment avec la gestion de la mémoire.
- l'intégration à l'OS rend la chose difficile à débugger. Combien de fois j'ai été obligé de rebooter pour débloquer un prog buggé en cours de développement... (et pourtant je me suis borné à quelques programmes "éducatifs", genre shadow volumes, moteurs de particules et strings).
- pas de cohérence dans l'accès au matos. Je veux dire : quand la carte supporte pas une certaine fonction (pas extension hein) opengl, opengl l'émule. Direct3d non, ce qui complique le code (ou restreint le nombre de configs qui marchent).
- bon évidemment, y'a toujours la portabilité. SDL+OpenGL et hop ça roule sur une dizaine de plateformes.

28

Il me semblait que les VBO avaient été intégrés à OpenGL lui-même à partir de OpenGL1.3 ou 1.4 ?

comme dit sur irc, l'extension registry est quand meme une excellente doc (je trouve), surtout que je parlais pas uniquement de VBO la, mais aussi des VAR.
Bah moi j'ai des raisons d'ordre technique : direct3d c'est pete-couilles à utiliser. Pour plusieurs raisons :
- les noms de fonction à la con. Bon ok opengl les a aussi. - c'est du COM. Ca veut dire qu'il faut savoir comment COM marche si tu veux pas t'emmeler les pinceaux notamment avec la gestion de la mémoire.

mwai, a la limite. pour ce qui concerne COM: j'en ai jamais fait, si tu le dis... wink
- l'intégration à l'OS rend la chose difficile à débugger. Combien de fois j'ai été obligé de rebooter pour débloquer un prog buggé en cours de développement... (et pourtant je me suis borné à quelques programmes "éducatifs", genre shadow volumes, moteurs de particules et strings).

ca par contre, les pro-DirectX donnent l'argument contraire: c'est bcp plus facile a debugger qu'OpenGL (et quand je debuggais mon gestionnaire d'input sous win avec DirectInput, je te garantis que c'est tres utile wink), il faut activer le mode debug de DirectX, et l'integration a l'IDE (dans le cas de VC++ en tout cas), se fait tres bien, tu te recupere des tas d'infos de debug que t'envoie DirectX pendant que le prog tourne... enfin j'ai trouve ca assez pratique en tout cas, et pas besoin d'utiliser un debugger OpenGL particulier (je me suis jamais servi d'un truc comme ca de ttes facons...)
- pas de cohérence dans l'accès au matos. Je veux dire : quand la carte supporte pas une certaine fonction (pas extension hein) opengl, opengl l'émule. Direct3d non, ce qui complique le code (ou restreint le nombre de configs qui marchent).

hein? O_o justement d'apres ce que j'avais cru comprendre, du moment que t'as une fonctionalite dispo dans DirectX, elle marcherait toujours, quitte a etre emulee en software. tu es vraiment sur de ce que t'as dit? pke ca m'etonne quand meme...
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

29

Bon, on avance...


avant que j'oublie, merci Pollux
Pollux
pour ton site, les accents ne passent pas parce qu'il est en UTF-8, essaye d'ouvrir le fichier avec Notepad et de faire "Enregistrer sous" -> "Codage : ANSI" (si tu es sous windows)

non je ne suis pas sous windows et encore plus énnervant : avant ça fonctionnait très bien (?!?).


Il semble que ta propre ironie t'echappe un peu, ou alors c'est le concepte que tu ne piges pas. Donc je me permets de clarifier un peu :
bah, tu sais c'est assez dur de dire des trucs comme ca sans que la personne le prenne mal, c'est juste etre realiste.

Si,si, il suffit de dire : "moi je ne trouve pas ça beau" j'aurrais jamais rien dis surout que moi non plus je trouve pas ça beau et que c'est pas ce que je recherche pour l'instant. Tu vas peut-être finir pas le comprendre ça...
En revanche ce que tu semble oublier c'est ta petite phrase inutile, que je recite : "le raytracing c'est pas un truc magique qui prend des trucs moches pour en faire des trucs jolis".
Je ne te demande pas si le raytracing c'est magique et si ça va faire que le rendu pourri que j'avais va devenir un décor sublime aux couleurs chatoyantes d'un seul coup de glBaguetteMagique, mais, attention, lis bien :
Eh dis, comment on fait du raytracing à l'aide d'opengl ? ( mes question était moins générales que ça, mais bon... c'est pour te simplifier mon propos )
Alors, t'excite pas... j'ai bien vu que tu avais commencé à me répondre. D'où le début de ce post "bon on avance...". Mais lentement, très lentement... il faut t'arracher chaque détail un par un. Et tout ça au prix de ton insidieuse ironie. C'est dur à supporter pour pas grand chose.

je pense plutot que ca vient de l'encodage en png

C'est ce que je venais de dire. On est d'accord sur un truc. Question au passage : Pourquoi avoir utilisé le terme "plutôt", qui introduit un désacord, alors que tu vas dans le même sens que mon propos ?
ah y a des textures a part le ciel? j'avais l'impression que c'etait tout en flat...

Il me semble qu'on voit quand même que le sol a une texture - quand on a un peu l'habitude - même si on se rend compte qu'elle est ridiculement petite (32x32 c'est pas grand et de plus elle est assez étirée mais c'était juste pour un test).
De plus, si vraiment tu as du mal à voir la texture sur le bras du perso ( T'emballe pas c'est pas terrible non plus; C'était pour tester l'enregistrement des UV dans mon format de personnage ) regarde à droite de ton navigateur tu vas y trouver un truc vertical appellé "barre de défilement" ou "ascenseur" qui va te permettre de constater que, plus bas dans la page, il y a des textures plus visibles. Si celles la tu ne les voiens pas non plus, je ne peux rien faire d'autre. Astuce : parfois une molette centrale sur ta souris te permet de faire la même chose sans même bouger la main. Alors ? hum... on dit merci qui ?
Eh, idem que toi, c'était pas méchant, juste une petite taquinerie entre amis; T'avais pas l'air d'avoir bien pris le temps de tout voir avant de faire une critique ( positive ou négative, le mot "critique" n'est pas forcement péjoratif ). Ca m'agace d'autant plus que ce site n'était pas supposé être publique ( référencé par aucun navigateur et aucun lien nulpart, sauf ici maintenant ).
j'avais compris, si je t'ai fait ces commentaires c'est juste parceque je trouvais ca deplace de vouloir utiliser du raytracing en esperant que ca ameliorerait la qualite gfx...

Effectivement c'était terriblement déplacé ( j'en rougis encore ). En général on s'en sert soit pour les effet sonores soit pour plomber gratuitement le nombre d'images seconde, comme ça, juste pour rigoler.

J'espère avoir été assez humble dans ma demande ?
je vois pas ce que vient foutre une quelconque humilite la dedans,

C'est vrai, tu ne voies pas ? Ca consiste à jouer avec le fait que certaines personnes sont très orgueilleuses. Etre humble flatte leur orgueil par contraste. Apparement tu n'as pas ce travers. Bon point pour toi.
Essaye, ça a parfois des effets très drôles.
pas la peine de te fatiguer, si tu devais faire ca, j'imagine meme pas la tete deton fichier de thanks, faudrait que tu remercie tous les gens qui t'ont donne 2-3 minuscules conseils de rien du tout,

T'inquiête pas pour mon "thanks", jusqu'à présent il y aurrait que quatre cinq personnes dedans. Ca va, ça reste soutenable. Et mes questions ne concernent que l'opengl. Les reste je me demerde comme un grand.
Pourquoi tu présuposes pas que j'ai demandé des centaines de trucs à des centaines de gens ? T'as l'air sympa comme gars mais t'as le préjugé facile; Et faux ici en l'occurence.
et j'en ai rien a foutre d'etre dans des thanks...

ça et "c'est ennervant les gens qui se rabaissent"... tu vas finir par devenir mon idole ! ( "J'en ai rien a foutre d'être ton idole smile" beeuuu )

Bon revenons à la partie technique et résumons :
maintenenant je sais que :
- on peut récupérer les normales mais en les écrivant dans le buffer RGB, ce qui va à priori me demander deux pass ( exact ? ). Quel dommage que tu ne m'aies pas dit ça plus tôt. Quel dommage aussi que tu n'aies pu que juste faire allusion au shader sans même le nommer. Cela dit en lisant entre les lignes de tes infos distribuées au compte goute ( ferais-tu parti de ces gens qui ne savent pas bien syntétiser un idée, une explication... ) j'ai cru comprendre que je pourrais trouver un site qui réference toutes les extensions GL en googelant un peu avec [ SGI extensions registry ].
- il existe des fonctions ( glVertexPointer, glNormalPointer, glDrawElements/glDrawRangeElements ) plus rapides que glVertex3f, glNormal3f & co. La encore la même question me brûle les lèvres : pourquoi, en plus de "chais pas pk mais je sens venir le gl*3f" ne pas avoir pris le temps d'ajouter juste ces quelques mots : "si tu veux regarde du coté de glVertexPointer, glNormalPointer, glDrawElements, glDrawRangeElements, c'est plus rapide". Si j'avais pas eu l'idée de poser la question j'aurais eu donc le droit à la petite pique ironique sans avoir droit l'explication.
C'est vachement pédagogique comme démarche !!!
- Il existe un moyen de récupérer le material en le glissant à la place du composant alpha. Mais que c'est donc limité à 256 matériaux. Relou ça aussi.
tout bien pesé je comprends désormais mieux tes réticences du début.
Désolé j'accepte les "non c'est pas une bonne idée de faire ça" que si on y ajoute les explications précises qui satisfassent toutes mes interrogations. C'est chiant mais c'est comme ça.
si jamais discutter avec un pro-D3D te bloquait

Pas du tout. Je hais windows mais jamais je ne reprocherai à qui que ce soit d'utiliser du "made in microsoft" ( je le déconseille c'est tout ).
D'abord Chacun fait ses choix et je les respecte tous.
Ensuite J'imagine qu'il y a des gens qui ne programment ( programment ou autres trucs d'ailleurs ) que sous windows car c'est l'ordi de la famille et qu'ils ne peuvent installer linux ou bien car ils n'osent pas se lancer dans Linux (c'est vrai que c'est flippant au début et même un certain temps après) ou ils ne connaissent tout simplement pas autre chose.
Rien n'est ridicule ou condamnable à mes yeux chez ces gens. En revanche je déteste la politique commerciale mensongère de microsoft. Ex classique : ils clament que leur daube et sécurisé alors qu'il faut acheter ( ou au moins télécharger même gratuitement ) firewall et antivirus pour ne pas se faire bouffer en deux minutes sur le net.
Je m'égare...


bref, désolé d'avoir perturbé ce thread. Si jamais tu te sens la force et l'envie de rajouter quelque chose ( de technique ) n'hésite pas. Je suis toujours preneur.
Moi j'abandonne, ça me prend trop temps de blablater. Mais merci quand même pour le tien ( de temps ) passé à répondre.
Une dernière chose... maintenant qu'on se connait bien, je peux t'appeller sBibi sPhoque ? On te l'avait sûrement déjà faite mais c'était trop tentant.
bye

à plus

30

bah, tu sais c'est assez dur de dire des trucs comme ca sans que la personne le prenne mal, c'est juste etre realiste.

Si,si, il suffit de dire : "moi je ne trouve pas ça beau" j'aurrais jamais rien dis surout que moi non plus je trouve pas ça beau et que c'est pas ce que je recherche pour l'instant. Tu vas peut-être finir pas le comprendre ça... En revanche ce que tu semble oublier c'est ta petite phrase inutile, que je recite : "le raytracing c'est pas un truc magique qui prend des trucs moches pour en faire des trucs jolis".


si c'est la dessus que t'as tilte, desole mais tel que tu presentais les choses, ca faisait tres "je veux implementer du raytracing parceque ca a l'air trop cool et trop beau".
Je ne te demande pas si le raytracing c'est magique et si ça va faire que le rendu pourri que j'avais va devenir un décor sublime aux couleurs chatoyantes d'un seul coup de glBaguetteMagique, mais, attention, lis bien :
Eh dis, comment on fait du raytracing à l'aide d'opengl ? ( mes question était moins générales que ça, mais bon... c'est pour te simplifier mon propos ) Alors, t'excite pas... j'ai bien vu que tu avais commencé à me répondre. D'où le début de ce post "bon on avance...". Mais lentement, très lentement... il faut t'arracher chaque détail un par un. Et tout ça au prix de ton insidieuse ironie. C'est dur à supporter pour pas grand chose.

rhooo, mon insidieuse ironie, qu'est-ce qu'il faut pas entendre ^^
cf en dessous pour la reponse au reste
je pense plutot que ca vient de l'encodage en png
C'est ce que je venais de dire. On est d'accord sur un truc. Question au passage : Pourquoi avoir utilisé le terme "plutôt", qui introduit un désacord, alors que tu vas dans le même sens que mon propos ?

le "plutot" se referrait a ca: "Mais comme c'était ultra ultra lent ( presque une seconde ) je pensais que ça ne conviendrait jamais", sous entendu c'etait ultra lent a cause du readpixel, et ce que j'ai dit allait dans le sens de ce que t'as dit juste apres, il est ou le probleme? neutral
ah y a des textures a part le ciel? j'avais l'impression que c'etait tout en flat...

Il me semble qu'on voit quand même que le sol a une texture - quand on a un peu l'habitude - même si on se rend compte qu'elle est ridiculement petite (32x32 c'est pas grand et de plus elle est assez étirée mais c'était juste pour un test).
De plus, si vraiment tu as du mal à voir la texture sur le bras du perso ( T'emballe pas c'est pas terrible non plus; C'était pour tester l'enregistrement des UV dans mon format de personnage ) regarde à droite de ton navigateur tu vas y trouver un truc vertical appellé "barre de défilement" ou "ascenseur" qui va te permettre de constater que, plus bas dans la page, il y a des textures plus visibles. Si celles la tu ne les voiens pas non plus, je ne peux rien faire d'autre. Astuce : parfois une molette centrale sur ta souris te permet de faire la même chose sans même bouger la main. Alors ? hum... on dit merci qui ? Eh, idem que toi, c'était pas méchant, juste une petite taquinerie entre amis;

ooh, ca alors #treeek# un nouveau #copaing#
chuis trop content cheeky
j'ai vu tous tes screens, j'aurais du preciser: texture potable, mais bon je crois que j'ai compris que c'est pas la qualite graphique que tu cherche, enfin tu es toujours libre de refaire une tirade la dessus aussi ^^ (aussi, je suis pas sur de a quoi servent les fleches haut/bas et pgup pgdwn de mon clavier, tu pourrais m'eclairer? trifus)
T'avais pas l'air d'avoir bien pris le temps de tout voir avant de faire une critique ( positive ou négative, le mot "critique" n'est pas forcement péjoratif ). Ca m'agace d'autant plus que ce site n'était pas supposé être publique ( référencé par aucun navigateur et aucun lien nulpart, sauf ici maintenant ).

justement si, j'avais meme pris le temps de lire les commentaires, t'as l'air de conclure bien vite trilove

j'avais compris, si je t'ai fait ces commentaires c'est juste parceque je trouvais ca deplace de vouloir utiliser du raytracing en esperant que ca ameliorerait la qualite gfx...
Effectivement c'était terriblement déplacé ( j'en rougis encore ). En général on s'en sert soit pour les effet sonores soit pour plomber gratuitement le nombre d'images seconde, comme ça, juste pour rigoler.

oh, ou bien aussi: pour avoir des vagues trucs qu'on appelle global illumination (+area lights), perpixel reflections, refractions, soft shadows, et autres, pour pouvoir augmenter considerablement le polycount des scenes en augmentant tres peu le temps de calcul, etc... mais vu qu'il m'avait semble que tu voulais rester en temps reel, j'en avais deduit que tu n'esperais pas avoir ce genre de choses triroll
C'est vrai, tu ne voies pas ? Ca consiste à jouer avec le fait que certaines personnes sont très orgueilleuses. Etre humble flatte leur orgueil par contraste. Apparement tu n'as pas ce travers. Bon point pour toi. Essaye, ça a parfois des effets très drôles.

hahaha cheeky
oue je dois etre tres orgueilleux, t'as raison top
(et j'"essaye" beaucoup plus souvent que tu ne l'imagine smile)
pas la peine de te fatiguer, si tu devais faire ca, j'imagine meme pas la tete deton fichier de thanks, faudrait que tu remercie tous les gens qui t'ont donne 2-3 minuscules conseils de rien du tout,

T'inquiête pas pour mon "thanks", jusqu'à présent il y aurrait que quatre cinq personnes dedans. Ca va, ça reste soutenable. Et mes questions ne concernent que l'opengl. Les reste je me demerde comme un grand. Pourquoi tu présuposes pas que j'ai demandé des centaines de trucs à des centaines de gens ? T'as l'air sympa comme gars mais t'as le préjugé facile; Et faux ici en l'occurence.

bah, comme toi quelques quotes au dessus happy
et par quelques minuscules conseils, j'englobais tous ceux qui seront encore a venir si tu continue ton projet un minimum de temps, tous les forums ou tu peux lire des conseils qui t'aident sans qu'ils te soient directement addresses, tous les auteurs de tutos que t'as lus et qui t'ont ete utiles, de livres, etc.. et puis tant qu'a faire les auteurs de ton compilateur pour qu'ils t'aient aides a pouvoir compiler ton truc triso
et j'en ai rien a foutre d'etre dans des thanks...

ça et "c'est ennervant les gens qui se rabaissent"... tu vas finir par devenir mon idole ! ( "J'en ai rien a foutre d'être ton idole smile" beeuuu )

comment t'as devine? smile
Bon revenons à la partie technique et résumons :
maintenenant je sais que : - on peut récupérer les normales mais en les écrivant dans le buffer RGB, ce qui va à priori me demander deux pass ( exact ? ). Quel dommage que tu ne m'aies pas dit ça plus tôt.

tu l'as pas demande. tu t'attends a quoi? a ce que je t'explique de A a Z comment implementer un raytracer avec OpenGL? genial... neutral
Quel dommage aussi que tu n'aies pu que juste faire allusion au shader sans même le nommer. Cela dit en lisant entre les lignes de tes infos distribuées au compte goute ( ferais-tu parti de ces gens qui ne savent pas bien syntétiser un idée, une explication... )

c'est tres possible, j'en suis vraiment desole triso
j'ai cru comprendre que je pourrais trouver un site qui réference toutes les extensions GL en googelant un peu avec [ SGI extensions registry ].

t'aurais prefere que je te donne l'url directement c'est ca? wink
- il existe des fonctions ( glVertexPointer, glNormalPointer, glDrawElements/glDrawRangeElements ) plus rapides que glVertex3f, glNormal3f & co. La encore la même question me brûle les lèvres : pourquoi, en plus de "chais pas pk mais je sens venir le gl*3f" ne pas avoir pris le temps d'ajouter juste ces quelques mots : "si tu veux regarde du coté de glVertexPointer, glNormalPointer, glDrawElements, glDrawRangeElements, c'est plus rapide". Si j'avais pas eu l'idée de poser la question j'aurais eu donc le droit à la petite pique ironique sans avoir droit l'explication.

tu veux savoir pourquoi? parceque j'ai deja eu a faire a des charmantes personnes tres agreables qui te disent apres "heuu oui j'utilise deja glDrawElements, biensur, quelle question, tu me prend vraiment pour un con", et en fait tu te rends compte apres qu'elles utilisaient pas du tout ca, et qu'elles font ca pour tout. et je ne supporte pas ce genre de personnes, c'est con hein? smile enfin apparemment t'as pas l'air d'etre comme ca, mais je te connaissais pas avant (d'ailleurs je pense pas pouvoir pretendre te connaitre maintenant non plus mais bon ^^)
C'est vachement pédagogique comme démarche !!!

t'imagine meme pas la subtilite cheeky
- Il existe un moyen de récupérer le material en le glissant à la place du composant alpha. Mais que c'est donc limité à 256 matériaux. Relou ça aussi.
tout bien pesé je comprends désormais mieux tes réticences du début. Désolé j'accepte les "non c'est pas une bonne idée de faire ça" que si on y ajoute les explications précises qui satisfassent toutes mes interrogations. C'est chiant mais c'est comme ça.

256 materiaux, c'est pas le plus genant, et si je te donne tous les inconveniants maches, que je te dise directement comment faire, ca devient facile pour toi, mais chiant pour moi (premier mauvais point vu de mon cote cheeky). en plus de ca, ca t'aide peut etre en apparence dans l'immediat, mais proceder de l'autre maniere, ca t'encourage a chercher plus par toi meme, a essayer differentes approches, et a reflechir, ce que tu a bcp moins a faire quand on te donne les reponses toutes machees.
ceci dit, etre relativement critique et avoir cette facon de proceder a ses inconvenients: tu passe pour un connard aupres de certaines personnes... wink
maintenant, tu peux t'en foutre, ou le prendre tres au serieux et chercher a ce que les autres aient la meilleure image possible de toi. je prefere m'en foutre tongue
si jamais discutter avec un pro-D3D te bloquait

Pas du tout. Je hais windows mais jamais je ne reprocherai à qui que ce soit d'utiliser du "made in microsoft" ( je le déconseille c'est tout ).
D'abord Chacun fait ses choix et je les respecte tous. Ensuite J'imagine qu'il y a des gens qui ne programment ( programment ou autres trucs d'ailleurs ) que sous windows car c'est l'ordi de la famille et qu'ils ne peuvent installer linux ou bien car ils n'osent pas se lancer dans Linux (c'est vrai que c'est flippant au début et même un certain temps après) ou ils ne connaissent tout simplement pas autre chose

il y a aussi ceux qui ont un certain marche, avec une clientele type, qui ont 95% de leurs futur utilisateurs potentiels qui n'ont qu'un windows, et les 5% restant qui ont un de leurs os qui est windows, ceux qui ont des contraintes de temps et qui n'ont pas le temps de re-implementer sous gl 3600 tools deja implementes dans directX, bref, ceux qui ont des contraintes et qui ne font pas ce qu'ils veulent cheeky
Rien n'est ridicule ou condamnable à mes yeux chez ces gens. En revanche je déteste la politique commerciale mensongère de microsoft. Ex classique : ils clament que leur daube et sécurisé alors qu'il faut acheter ( ou au moins télécharger même gratuitement ) firewall et antivirus pour ne pas se faire bouffer en deux minutes sur le net. Je m'égare...

oui wink
bref, désolé d'avoir perturbé ce thread. Si jamais tu te sens la force et l'envie de rajouter quelque chose ( de technique ) n'hésite pas. Je suis toujours preneur. Moi j'abandonne, ça me prend trop temps de blablater. Mais merci quand même pour le tien ( de temps ) passé à répondre.

ca me prend du temps aussi, mais je prefere repondre quand meme pour que les choses soient claires wink
Une dernière chose... maintenant qu'on se connait bien

oue, c'est vrai, on a ceuilli des patates ensembles en maternelle, on est super potes et tout, ouee tritop copaing!
je peux t'appeller sBibi sPhoque ? On te l'avait sûrement déjà faite mais c'était trop tentant.

c'est fou ce que t'es original der wink

<mode=ykizar>
matologue tritop
</mode>
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina