ayant entendu dire par JY² sur le topic de DKproject que jamais il n´y aurait de jeu en ray trace.
voici une demo 64ko assez vieille je dirais ( plusieurs années):
Heaven Seven:
http://membres.lycos.fr/Lightness1024/heaven7w.exe
moteur software complet
alors tjs aussi impossible ?
![]()
et meme mieux que ca, un jour j´ai visité le site d´un type qui preparait un rendeur avec radiosité en temps réel.
il avait trouver le moyen d´en faire une approximation en une itération je crois
http://membres.lycos.fr/Lightness1024/HEAVEN7W.EXE
Cette démo est bien connue, et tres belle d´ailleurs. Au passage, le côté " software" est un peu obligé dans le cas de raytracing.
Mais ce n´est aucunement comparable à un jeu ; tout d´abord, il faut prendre en considération les nombreuses simplifications et raccourcis utilisés
(http://www.demoscene.hu/~picard/h7/subsample/subs<BR>ample.html ) que permettent les aprioris sur les différentes scenes
(http://www.demoscene.hu/~picard/h7/parts/parts.ht<BR>ml ).
Ensuite, les scenes sont composées de primitives simples ( ce qui marche bien pour du CSG quoi) : plans, spheres et cylindres. La démo est tres belle, mais va dessiner un modèle 3D de 10000 polygones ( un personnage bien détaillé en gros) avec ça...
Par contre, il existe bien d´autres projets de raytracer temps réel destinés au jeu vidéo ; mais la rapidité exigée demande bien souvent de ne travailler qu´avec des spheres : la qualité de modélisation s´en trouve grandement diminuée...
Donc oui, il existe des choses tres bien en raytracing temps reel, mais il ne faut pas comparer ce qui n´est pas comparable...
un moment on voit une sorte de kioske avec des colonnes et un toit qui se créer en direct dont la forme est tres complexe, ca prouve que le moteur n´est pas limité aux spheres.
( deja rien ke parce ke les colonnes sont des cylindres lol)
cette demo est vieille de nos jours on peu faire de facons ace ke les simplifications soient moins visibles.
bien sur ca s´applique pas encore a un jeu video complet mais une technologie experimentale peut toujours avec du temps etre testée plus tard sur un vrai jeu.
-> voir Outcast !
de plus le topic est ici non pas pour affirmer que des jeux peuvent sortir avec ray tracing, mais pour prouver que le real time ray tracing existe tout court.
http://www.openrt.de/
et particulierement ca
http://www.openrt.de/Gallery/Triple7/
http://www.openrt.de/Galllery/OliverDeussen_Sunflowers/
Un jour on aura du lancer de rayon en tps reel puisque les machines continuent de progresser.
Pr simplifier, on peut dire que la
complexite du lancer de rayon c´est nb_pixel*objets
( si on le fait en bourrin)
Ds ce cas ca reste inferieur a une exponentielle. Et si les ordis continuent a suivre la loi de moore(une exponentielle), un jour la puissance suffira a resoudre ce genre d´algo quadratiques.
J´ajouterais aussi que le lancer de rayon ca reste tres basique et que ca se complexifie vite selon ce que l´on prends en compte. Si on commence a prendre en compte des sources de lumiere surfaciques par ex. De plus, le lancer de rayon ne marhce que pr les objets speculaires. Pr les objets diffus ca marche pas. Ds ce cas faut d´autres techinques encore + couteuses.
La radiosite commence aussi a etre depassee, ca a deja pres de 20ans. Bcp de solutions ont ete proposees et on obtient de + jolis resultats avec des nouvelles techniques.
Maintenant la mode c´est surtout les chemins lumineux qui decoulent du lancer de photon. Au lieu de partir de l´oeil et retrouver la lumiere, on part de la source et on envoie des photons. Ici on voit bien que la complexite explose car theoriquement faudrait en envoyer ds toutes les directions. Donc pr une source de lumiere -> infinite de rayons.
Je crois que la loi de Moore hélas se tarit un peu : il y a 1 an sortaient les pross 3Ghz
je doute hélas que dans 6 mois sorte les 6 Ghz...
La bonne époque est révolue hélas ![]()
Pour le lancer de rayon, comme dit LGV, faut remettre ça dans son contexte :
le camion de pompier, avec les effets de lumiere et la transparence avec le sol, ( qui forme une image magnifique ! ! Je ne me permettrait pas de critiquer le talent graphique du gars qui a fait ça ! !)
mais cette image, pour le moment, je doute qu´on puisse la faire tourner en temps réel aussi jolie ( pour le moment), et encore moins s´il y a d´autres véhicules et une course derriere . ..
t´a raison pour le camion
mais ca ne justifie pas une exclusion totale de toute possibilité de rendu en live.
il est vrai ![]()
L´image du camion de pompier ne tourne pas en tps reel pcq il n´y a pas de materiel adapte. Essayez d´afficher une scene a base de triangle sans utiliser la carte graphique, tout a la main, et voyez combien de fps vs avez. Qd on voit qu´en lancer de rayon on est a des tos interactif, et a la vitesse ou evolue l´informatique, ca arrivera plus tot que vs le pensez
Meme si la loi de moore stagne un peu, le passage a plusieurs proc ( si ca se generalise ds le gd public) ou les tentatives de parallelisation des instructions ds le cpu.
D´ici 2 ou 3ans on pourra commencer a voir des jeux en lancer de rayon. Ca ne sera pas la super qualite des images de synthese ou faut 2h pr faire le rendu, mais ca sera l´equivalent de doom pr la 3d. Ca sera fait en soft. Apres, si ca plait aux constructeurs et au public, p-e qu´on commencera a voir des cartes qui font le lancer de rayon en hard.
Certaines personnes simulent du lancer de rayon sur une carte graphique virtuelle qui pourrait exister a l´aide de plusieurs proc. Ca donne des resultats prometteurs.
Mais ces resultats n´interessent pas encore l´industrie. Ils preferent promouvoir des approximations d´effets ds leur demo pr la derniere carte haut de game...
y´a un point que je ne suis pas... Un rendu software pour une scène triangulée peut se faire avec des performances fort honorables. Maintenant il ne faut pas chercher à comparer ces techniques de rendu tellement elles sont différentes ! Dessiner une surface implicite via une triangulation est une catastrophe, à peu pres autant que faire du raytracing sur un modèle triangulé...
Maintenant, on ne verra pas de carte graphique faire du raytracing pour la simple est bonne raison que cela le cadre de cette technique ; on pourra tres bien avoir " une carte comprenant un processeur programmable destiné à alléger le CPU de calculs divers, entre autre de raycasting". Dans ce cas, ça existe déjà, cf. le langage développé par je-sais-plus-quelle université sur la base du Cg. Par contre une gestion hardware pure, c´est peu envisageable : en triangulé, il suffit de connaitre les données propres à chaque triangle, alors qu´en raytracing il faudrait que la carte connaisse toute l´architecture de la scène : ça reviendrait en transformer la carte graphique en second CPU.
edit :
. .. pour la simple est bonne raison que cela DEPASSE le cadre de cette DERNIERE...
A visiter pour les intéressés :
http://www.realstorm.com/Download.html
Attention aux démos, " petits" PC s´abstenir
LGV> Qd je parle de carte graphique, c´est une nouvelle carte, pas a partir des cartes existantes qui ne sont pas faites pour. Meme si ca existe c´est pas prevu et cest moins efficace.
La memoire n´est pas un pb. on arrive tres bien a faire avec. De plus, il y a moins besoin de bande passante. Un port pci suffit. Pas besoin d´agp 8x pour transmettre 200k triangles a chq frame...
De plus, on peut definir les objet mathematiquement. Pas besoin de 1000triangles pr une sphere, un centre et un rayon suffisent.
Avec la 3d actuelle, on a aussi besoin de toute la scene si on veut des effets...
Comment fais tu de la reflexion si tu n´envoies que les triangles visibles a l´ecran? t´es bien oblige de travailler avec les triangles hors de l´ecran... Je vois pas en quoi c´est une difference avec le lancer de rayon.
En lancer de rayon c´est pareil, t´es pas oblige d envoyer toute la scene, il existe des partitionnement de l´espace..
voila qqs ex ( j´avais pas de liens tt a l´heure).
http://www.saarcor.de/
http://www.piqsoftware.com/projects/freon27/
Il y a egalement plusieurs projets/prototypes/implementations ds des projets de recherche ds des universites.
Le futur c´est le lancer de rayon. On pourra tjrs ajouter des millions de transistors sur une carte graphique, ca sera tjrs de l´approximation pr l´eclairement. Le lancer de rayon permet d´avoir les vrais phenomenes sans faire 150passes pr de l´ombrage ou de la reflexion.
" Le futur c´est le lancer de rayon"
En tout cas PAS pour les jeux..
Soyont realistes, aucune carte 3d permet de faire du raytracing en hardware, et aucune ne le permettra. Pourquoi? Tout simplement car cela ne sert a rien, et serait trop complique a mettre en oeuvre.
On veut certes un rendu de plus en plus realiste dans les jeux, mais de nombreux effets etc ne peuvent pas etre realises ( simplement) si on utilise le raytracing, et les perfs seraient lamentables..
Pour l´info ( je connais le coder), h7 n´est pas que du raytracing, en fait loin de la. Deja tout est en supersampling ( regardez les artefacts sur les bords des sphere) sur lequel est applique une texture avec interp lineaire ou quadratique. Bcp d´objets sont de *vrais* objs 3d ( pas de raytracing), et une gestion toute conne de zbuffer permet de faire les shadows sans utiliser les proprietes du raytracing. Pkoi? Sinon ca serait trop lent. Et non, personne ne veut que la config minimale d un jeu soie le plus gros pc du moment pour que l´on puisse avoir 7 fps...
Et non on ne veut pas non plus de " vrais phenomenes", tout est fake, pour des raisons de vitesse.. Tant que l´utilisateur ne voit pas trop les differences, ca sert a rien de faire du raytracing ( lent et le resultat, avec peux de passes, est minable).
" De plus, on peut definir les objet mathematiquement. Pas besoin de 1000triangles pr une sphere, un centre et un rayon suffisent."
c´est bien pour ça que je dis qu´il ne faut pas comparer ce qui n´est pas comparable...
" Avec la 3d actuelle, on a aussi besoin de toute la scene si on veut des effets...
Comment fais tu de la reflexion si tu n´envoies que les triangles visibles a l´ecran? t´es bien oblige de travailler avec les triangles hors de l´ecran... Je vois pas en quoi c´est une difference avec le lancer de rayon."
et bien je vais te l´expliquer la différence. Dans le cas d´une triangulation, tu dois uniquement connaitre les données propre à chaque triangle ainsi que les ressources utilisées ( textures principalement). Les reflets ne sont jamais de " vrais" reflets mais des env map, le relief du bump ou du disp map, et l´éclairage ( voire plus maintenant) calculé à coup de shaders. Toute la gestion de la scene est entièrement dissociée du processus de rendu, et le renderer se fout bien de l´architecture de ce dernier : jamais un triangle n´aura besoin des données d´un autre pour se dessiner. Par exemple tous les trucs genre ombres portées, mirroirs, etc. sont joysement obtenu à grand coup de transfo de matrice et stencil buffer. Oui le programmeur gère une scène, non l´algo de dessin n´a pas besoin de la connaitre ( on fournit toutes les données pour chaque triangle : il suffit d´utiliser une carte 3D pour s´en convaincre, jamais on ne parle d´objet, par contre on remplit des fluxs de vertices, que la carte considère comme parfaitement indépendants).
Maintenant, dans le cas du raytracer, c´est le processus de rendu qui va justement déterminé tout ça : quand un rayon rencontre un objet, on génère les rayons reflehis/refracté, on poursuit jusqu´à profondeur finie et on blend les couleurs " remontantes" des rayons ainsi généré. Autrement dit, tous les artifices utilisés par une carte 3D sont ici véritablement calculés : plus besoins d´env map, on calcul les VRAIES reflexions, plus besoin de shadow map, on connait le vrai éclairage, etc. Désavantages... c´est lent, on l´a déjà dit, et il faut aussi connaitre toute la scène : on ne raisonne pas par objet mais par rayon, or on est bien incapable de prédire à l´avance les objets que va rencontrer ce rayon et ceux qu´ils génerera.
voilà voilà...
kUfa : fake ? ? où ça ? :D " t´en fous tu blur" ( c)
oups, dsl pour les fautes :/ faudrait vraiment pouvoir éditer... ( en gros : -é +er +s +s et surement d´autres)