NVIDIA propose maintenant OptiX
Le moteur d'éclairage ray-tracing sur le processeur graphique en version finale publique

Le , par dourouc05, Responsable Qt
Bonjour,

Deux mois après la première version beta privée de son moteur de ray tracing sur GPU, NVIDIA nous propose désormais une version publique, la 1.0.0, pour Windows et pour Linux, en 32 et 64 bits. Aucune version pour Mac OS X n'est actuellement prévue. Les versions serveur de Windows ne sont pas officiellement supportées, même si NVIDIA travaille conjointement avec Microsoft pour rapprocher Microsoft Windows HPC Server 2008 et le GPGPU (calcul sur GPU, alias carte graphique).

Actuellement, le moteur ne supporte que les GPU NVIDIA Quadro FX et NVIDIA Tesla, mais, grâce à la future architecture Fermi, les prochains GPU NVIDIA GeForce devraient être compatibles. Remarquez que le moteur se base sur CUDA 2.3 pour l'interfaçage avec le GPU, et que cela ne peut limiter le port vers d'autres GPU compatibles. Ce moteur est utilisable facilement par un langage très répandu : le C.

Il s'agit du premier moteur de ray tracing interactif. Il tire largement profit de l'architecture massivement parallèle des GPU pour offrir un maximum de performances et d'extensibilité, portant la technologie à des niveaux inouïs d'interactivité, pour des utilisations variées et diverses. Ces utilisations ne se limitent pas au jeu vidéo : loin de là, ce moteur peut aussi servir pour le stylisme, la visualisation de design, des effets visuels. Il s'agit aussi d'un idéal pour les disciplines ne nécessitant pas de rendu : le design optique, acoustique et l'analyse de collision, par exemple.

Citation Envoyé par Jeff Brown
This opens the door to a new level of interactive realism. Ray tracing’s inherent parallelism makes it a perfect fit for GPU computing. The OptiX engine makes it easy for developers to exploit that power to create an exciting new class of applications. It enables critical design tasks -- such as examining reflections, refractions and shadow – to be performed now in real-time.


Six mois de tests des versions beta auront permis de fournir un outil facile à utiliser (il diminue drastiquement le temps de développement), déjà fortement optimisé (le développeur peut se limiter aux fonctionnalités : la performance est déjà acquise). Ces performances ne pourront que grimper en flèche : par rapport à l'architecture précédente, l'actuelle permet de doubler les performances, et l'architecture Fermi promet d'encore faire mieux.

Vous pouvez dès maintenant télécharger une version gratuite de ce moteur sur le site de NVIDIA : NVIDIA® OptiX™ ray tracing engine.

Voir aussi :
- NVIDIA OptiX, ou le ray tracing sur GPU
- NVIDIA travaille étroitement avec Microsoft pour préparer une nouvelle technologie GPU
* IRT : un ray tracer interactif
*NVIDIA® OptiX™ ray tracing engine

Source : communiqué de presse.

Quels bénéfices peut donc apporter le GPU aux calculs nécessaires au ray tracing ? Par rapport à une solution basée sur le CPU ?
Les GPU GeForce actuels ne sont-ils pas assez puissants pour gérer ce genre de calculs ? La nouvelle architecture Fermi promet d'apporter des performances inimaginables aujourd'hui : sera-ce suffisant ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Lucyberad Lucyberad - Membre du Club https://www.developpez.com
le 03/11/2009 à 23:53
"Quels bénéfices peut donc apporter le GPU aux calculs nécessaires au ray tracing ? Par rapport à une solution basée sur le CPU ?"
Et par rapport au rendu actuel, la rasterisation?
Avatar de Lio_c Lio_c - Membre à l'essai https://www.developpez.com
le 05/11/2009 à 12:18
Ben puisque la plupart des calculs effectues dans un ray tracer sont vectoriels : produits scalaire etc. Il est clair que l'architecture des cartes graphiques va tirer profit de cela en terme de performance.
En plus, c'est bien niveau communication, Cuda a surement besoin de cela je pense... Enfin, c'est surement l'etape d'avant le remps reel .

_____________________________________
Bases de donnees Embarquees Haute Disponibilite
Avatar de LeGreg LeGreg - Membre expérimenté https://www.developpez.com
le 05/11/2009 à 20:28
Citation Envoyé par Lucyberad  Voir le message
"Quels bénéfices peut donc apporter le GPU aux calculs nécessaires au ray tracing ? Par rapport à une solution basée sur le CPU ?"

Le gain est la vitesse bien entendu. La programmabilité des GPU était plus dure jusqu'a récemment (il y a quelques années), mais là ça décolle (dans le domaine du "high performance computing" ou HPC).

Citation Envoyé par Lucyberad  Voir le message
Et par rapport au rendu actuel, la rasterisation?

La rasterisation n'est pas le "rendu actuel", rasterisation et raytracing sont tous les deux de très vieilles techniques. Malheureusement ils ont tous les deux leurs avantages et leurs inconvénients. Pour du hardware classique (y compris sur CPU), la rasterisation repose sur la capacité de remplir des surfaces rapidement (avec un faible overdraw), rendu de surface éventuellement programmable mais essentiellement "local". Le raytracing repose sur la facilité à faire diverger des rayons (pour un rendu plus exact de réflexion, réfraction) mais nécessite de "traverser" une scène rayon par rayon pour trouver des intersections. Le hardware massivement parallèle qui peut faire de la rasterisation est généralement peu cher et aux performances assez stables et prévisibles.

L'un des reproches du raytracing appliqué à tout est que les premier rayons issus de la caméra sont très cohérents et donc bénéficient peu de l'avantage de faire diverger des rayons, ce qui fait que pour la première intersection la rasterisation (qui pour être large comprend des methodes plus alambiquées styles REYES) est plus efficace. Pour les rayons suivants, si la configuration le permet le raytracing prend l'avantage en terme de rendu de la réalité. Mais il y a un coût important à "boostrapper" le rendu. Ou il faudrait faire un rendu hybride mais cela impose un hardware qui soit bon aux deux algorithmes en même temps ce qui est couteux et donc il faire des compromis sur la performance de l'un ou de l'autre.

Pour les jeux vidéo, la rasterisation a encore un bel avenir, tout simplement parce que le rendu des jeux repose encore beaucoup sur les "premieres intersection" et que la performance prime (rendu à 30fps de scènes complexes y compris sur des PC équipées de cartes pas très puissantes) <- le monde des jeux n'est pas rempli de sphères chromées. Il y a ou il y aura des éléments de ray casting/tracing par-ci par là, par exemple pour le rendu de certains éléments volumétriques (brouillard, rendu à base de voxels), du parallax mapping, les ombres (ambient occlusion), et tout ce qui peut passer par l'imagination des développeurs dans le futur lointain ou proche.

Pour le ray tracing temps réel made in Nvidia, il faudra s'attendre à ce qu'il soit pas mal utilisé par l'industrie. Parmi les premiers clients sont par exemple l'industrie automobile qui fait des rendu de voiture où la qualité des réflexions sont importantes pour juger de ce que cela donnera en vrai <- mettre des GPUs très chers en parallèle pour atteindre la qualité et la performance voulue n'est pas une dépense très importante pour une entreprise dont les produit génère des milliards de dollars. Mais évidemment cela va se démocratiser (la rasterisation va également progresser en qualité et vitesse dans le même intervalle ainsi que la résolution native des écrans). Peut-être que le jeu à être principalement raytracé sera un jeu de voiture ?

LeGreg
Avatar de Lucyberad Lucyberad - Membre du Club https://www.developpez.com
le 05/11/2009 à 21:38
C'est vrai, c'est pas neuf mais c'est le standard.
Standard qui se résume par: Rasterisation = temps réel / Ray Tracing = rendu "bake" du film d'animation par exemple.

Au moins, la solution Nvidia pourrait permettre de diminuer le temps de rendu des films d'animations... ne serait-ce que Pixar qui a raconté qu'ils mettent 6h par frame et plus de 30 pour des scènes chargées...

Sinon, outre le rendu, le problème est (à mon goût) plus basé sur le fait qu'on ne puisse faire de temps réel avec des nurbs (des modèles sur des formes et non des maillages, un peu à la "ZBrush-style" qui simule la forme par un maillage très fin).
Le ray tracing à l'avantage de faire un rendu parfait du principe lumineux réel qui est l'un des deux grandes difficulté avec le modelage précis. Reste que LeGreg a raison, les jeux ne sont pas fait que de boules chromées et transparente...
Offres d'emploi IT
Ingénieur test h/f
Sogeti - Régions - Est - Alsace - Est Alsace
Ingénieur d'étude et développement h/f
SYSTEMX - Provence Alpes Côte d'Azur - Nice (06000)
Responsable d'études / data scientist H/F
DCNS - Ile de France - Bagneux (03460)

Voir plus d'offres Voir la carte des offres IT
Responsable bénévole de la rubrique 2D - 3D - Jeux : LittleWhite -