Sur la mailing list d'ioquake3, Stephan Reiter viens de poster un message concernant son travail : raytracing (ou lancer_de_rayon temps réel d'Elite force, jeu basé sur le moteur de quake 3.
Des vidéos sont disponibles http://youtube.com/watch?v=jLFrP0c7VWw http://youtube.com/watch?v=C_6Icf2m_C4
Le lien sur les archives de la mailing list http://icculus.org/cgi-bin/ezmlm/ezmlm-cgi?50:mss:2281:20080(...)
Il y a de cela plusieurs années, quake 3 avait déjà eu un mode "lancé de rayons", mais il fallait beaucoup de machine. Là, sur un AMD Athlon X2 3800+ ça marche (mais sous une petite résolution)
# compléments
Posté par ndesmoul . Évalué à 10.
http://www.pcper.com/article.php?aid=455
http://www.pcper.com/article.php?aid=506
D'après ce que j'ai compris (je précise que je suis pas spécialiste):
Le raytracing ça permet de faire des choses plus réalistes sans se prendre la tête. Par exemple gérer les ombres est simplissime alors qu'en "rasterisation" (OpenGL/Direct3D) c'est beaucoup moins trivial.
D'autre part le calcul peut être hautement parallélisable puisqu'on dessine pixel par pixel. En gros doubler le nombre de coeur d'un processeur permet d'effectivement (presque) doubler les perfs. La techno peut donc tirer partie de l'évolution actuelle des procs. Intel semble d'ailleurs promouvoir cette techno...
Enfin, pour les résolutions PC standard, la quantité de calcul est plus importante qu'en OpenGL/Direct3D. Mais la durée de calcul augmente beaucoup moins vite qu'en rasterisation avec la complexité de la scène. Ce qui signifie qu'une fois qu'on sera capable de rendre en temps réel un jeux avec une résolution correcte, on sera rapidement à même d'avoir des scènes beaucoup plus complexes que celles actuellement possibles avec les techniques actuels.
Voilà voilà. Le raytracing c'est (peut-être) l'avenir du jeux vidéo.
En plus ça utilise des processeurs généralistes donc pas de problème de drivers! Bon, d'ici que ce soit utilisable...
[^] # Re: compléments
Posté par ナイコ (site web personnel) . Évalué à 2.
En plus ça utilise des processeurs généralistes donc pas de problème de drivers!
Et tu crois que les constructeurs de carte 3D vont laisser faire ?
[^] # Re: compléments
Posté par ndesmoul . Évalué à 3.
D'ailleurs la question serait plutôt: est-ce que nVidia va laisser faire?
ATI maintenant c'est AMD, donc ils sont bien placés pour aller dans les deux directions. Et Intel (qui fait également beaucoup de chipsets graphiques) a tout intérêt à promouvoir cela pour valoriser ses processeurs multi-CPU.
[^] # Re: compléments
Posté par Aldoo . Évalué à 4.
Bon j'exagère, mais je pense que les constructeurs de carte 3D sauront s'adapter et marketer.
Et puis, est-ce que le raytracing ne peut pas aussi tirer partie des GPU actuels ?
[^] # Re: compléments
Posté par Ontologia (site web personnel) . Évalué à 3.
Avec les nouveaux framework du genre NVidia Cuda, tu peux facilement délester le processeur de calculs simple comme addition et multiplications.
D'ailleurs, en bidouillant opengl, tu peux déjà le faire, mais c'est un peu tordu.
Je vais essayer de creuser le concept, je vous en reparlerai.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: compléments
Posté par Gart Algar . Évalué à 2.
> By the way: as far as I gathered, most of the raytracing stuff is CPU
> based. Are there any plans to load tasks to the GPU?
I actually tried that with a GeForce 7 in 2006 and gave a poster
presentation at a raytracing conference. But the idea didn't turn out so
well: With current GPU architectures there's simply too much performance
wasted when communicating CPU<->GPU, especially read-backs are problematic
(even with PCI-Express). A CPU-only implementation running on two cores
outperformed the graphics card by a factor of 4-5. Using the GPU as an
additional processing unit to the CPUs also yields a reduction in
performance due to the associated overhead.
autrement dit (traduction très approximative) que la communication entre le CPU et le GPU consomme trop de ressource par rapport à l'utilisation d'un cœur supplémentaire
[1]http://icculus.org/cgi-bin/ezmlm/ezmlm-cgi?50:mss:2290:jhhho(...)
[^] # Re: compléments
Posté par Ontologia (site web personnel) . Évalué à 3.
Le problème est que ça n'est intéressant que pour des calculs massifs sur de grosses quantités de données, quand l'algo est "utilisable"
Par exemple, on explique comment faire Y = Y + a.X où Y et X sont des vecteurs à n dimension (n très grand) et a un scalaire.
http://www.mathematik.uni-dortmund.de/~goeddeke/gpgpu/tutori(...)
Plus d'infos ici :
http://www.gpgpu.org/developer/index.shtml#conference-tutori(...)
Effectivement, si tu veux veux multiplier 3 matrices et un vecteur, passe ton chemin, vu le bordel que c'est de charger des matrices dans la pile et de les multiplier à coup de glMultMatrixf, c'est forcément lent. Mais si on arrive à bidouiller pour profiter des opérations de très (trop) haut niveau de la carte dispo en openGl, alors oui il y a des choses à faire.
De plus, avec les glShadingLanguage on a un outil plus flexible :
http://www.ozone3d.net/tutorials/mandelbrot_set.php
Donc à voir et ça ne fait que commencer
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
# Mouarf
Posté par goofy . Évalué à 3.
Enfin moi je dis ca, je dis rien ...
[^] # Re: Mouarf
Posté par chimrod (site web personnel) . Évalué à 1.
Par contre sur la vidéo, on voit la représentation par triangles. Dommage, le raytracing permettrait de s'en passer pour les primitives, et cela permettrai de décharger la mémoire en nombre de polygone. Après c'est peut être la charge du processeur qui ne tiendrait pas..
À quand un jeu présentant des images aussi belles que sur l'irtc ? :-)
[^] # Re: Mouarf
Posté par KiKouN . Évalué à 2.
[^] # Re: Mouarf
Posté par chimrod (site web personnel) . Évalué à 1.
Ici on n'a rien de tout ça.. mais peut être est-ce à venir par la suite..
[^] # Re: Mouarf
Posté par KiKouN . Évalué à 2.
[^] # Re: Mouarf
Posté par Gart Algar . Évalué à 1.
Bien sûr le pb reste l'augmentation de la résolution, c'est ce qui demande le plus de puissance. Mais l'avantage, c'est que le lancer de rayons utilise beaucoup les calculs parallèle, et donc trouve sont bonheur dans les nouveaux processeurs a plusieurs cœur.
L'avenir proche est sûrement dans un mélange de rasterisation et de raytracing, permettant ainsi d'aller plus vite avec la 1ère et d'être plus précis avec la 2ème, notamment pour les collisions d'objet 3D
[^] # Re: Mouarf
Posté par ndesmoul . Évalué à 2.
# Bof.
Posté par farib . Évalué à 6.
Par contre, la radiosité en temps réel, là ça va devenir sympa :-)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.