IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement 2D, 3D et Jeux Discussion :

NVIDIA annonce son moteur de lancer de rayon NVIRT [News]


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2006
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 450
    Points : 1 630
    Points
    1 630
    Par défaut NVIDIA annonce son moteur de lancer de rayon NVIRT
    Lors du banquet de la conférence i3D 2009 qui s'est déroulée à Boston, Austin Robinson du groupe de recherche NVIDIA a annoncé la sortie à la mi-printemps d'une nouvelle API nommée NVIRT (NVIDIA Ray-Tracing engine) qui, comme son nom l'indique, sera un moteur de lancer de rayon. Ce sera une API basée sur CUDA, la toute nouvelle API de NVIDIA pour faire du calcul général sur les cartes graphiques et NVSG , le graphe de scène proposé par NVIDIA.

    Cette annonce d'un outil permettant de calculer facilement des algorithmes de lancer de rayon sur des GPUs est une première mondiale dans l'industrie. Les algorithmes de lancer de rayon sont de plus en plus utilisés dans l'industrie du jeu vidéo (pour les moteurs physiques ou algorithmes de rendu sophistiqués), mais également pour des simulations physiques plus générales utiles pour les industries de pointes (aéronautique, aérospatiale, etc.) ou dans le domaine de l'IA. A l'heure actuelle, seul CUDA permet de créer un moteur de lancer de rayon exécuté entièrement sur GPU mais NVIDIA veut nous proposer une API plus adaptée et qui sera très flexible.

    NVIRT devrait être une architecture de type pipeline mais plus sophistiquée que OpenGL et DirectX. En effet, il y aurait deux types d'objets qui seront traités : les rayons et les objets qui représenteront nos modèles 3D si nous voulons faire du rendu.

    Les objets pourront être stockés dans des structures accélératrices différentes elles-même pouvant être contenues dans d'autres structures accélératrices. C'est apparemment l'implantation de la structure méta-hiérarchique de Jim Arvo. Vous pourrez ainsi choisir de stocker vos géométries statiques dans un K-D-Tree qui est long à construire mais très efficace et vos géométries dynamiques dans un BVH qui est moins efficace mais très rapide à mettre-à-jour. Au niveau du type de modélisation pour les objets que NVIRT pourra supporter, rien n'est sûr mais il semblerait que n'importe quelle modélisation soit possible (triangles, surfaces paramétriques telles que les NURBS, etc.).

    Pour les rayons, différentes politiques d'intersections seront possibles par soucis d'efficacité et des résultats différents nous seront fournis :
    • un booléen indiquant si une intersection a eu lieu (utile pour les rayons d'ombre) ;
    • la plus proche intersection (rayon partant des yeux, de réfraction ou de réflexion) ;
    • toutes les intersections rencontrées (utile pour gérer des objets transparents).


    Des shaders permettant de faire du shading ou de générer de nouveaux rayons (rayons de réfraction ou de réflexion par exemple) pourront être fournis. Apparemment il y aurait un type de shader qui génèrera les rayons primaires, un type de shader différent pour chaque politique d'intersection des rayons et un autre type pour les rayons qui n'ont pas eu d'intersections. Ces derniers seront programmés dans le langage CUDA.

    Tout ceci semble prometteur mais tout n'est pas rose. NVIRT étant basé sur CUDA, il en hérite toutes ses limitations à savoir qu'il ne peut être exécuté que sur des cartes CUDA compatibles (geforce 8 et plus) et ne peut accéder directement aux buffers des APIs graphiques (il est nécessaire de faire une copie sur le GPU, certe très rapide mais pouvant devenir problématique) et qu'actuellement le coût de changement de contexte (passage de CUDA vers OpenGL/DirectX et vice-versa) est non négligeable bien qu'NVIDIA ait promis une amélioration très importante dans un futur proche pour ce dernier point.

    Néanmoins, tout ceci est fort intéressant pour l'avenir du lancer de rayon en temps réel ou le rendu hybride rasterisation/lancer de rayon comme il se fait de plus en plus dans les jeux-vidéos et nous pourrons espérer que ceci va donner des idées au groupe de standardisation Khronos et qu'il va s'atteler à faire une API standardisée tout comme l'a été OpenCL pour CUDA.

    Sources :

    Real Time Rendering : http://www.realtimerendering.com/blo...reating-games/
    ompf.org : http://ompf.org/forum/viewtopic.php?f=16&t=1239
    Icare3D : http://www.icare3d.org/blog_techno/g...and_nvirt.html
    Zest for graphics : http://zestforgraphics.blogsome.com/...-el-i3d-nvirt/
    i3D 2009 : http://graphics.cs.williams.edu/i3d09/

    D'autres actualités sur le blog de la rubrique 2D/3D/Jeux

  2. #2
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Excellent ça, vivement que ça arrive... Merci pour la news

  3. #3
    Membre habitué
    Profil pro
    Travail non informatique
    Inscrit en
    Décembre 2010
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Travail non informatique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 102
    Points : 179
    Points
    179
    Par défaut Vraiment ?
    Bonjour.
    "... le rendu hybride rasterisation/lancer de rayon, comme il se fait de plus en plus dans les jeux-vidéos..."
    Ah bon ?
    A ma connaissance, c'est DirectX et un peu encore de l'OpenGL (en déclin).
    Rares sont les jeux utilisant le lancer de rayon (3 à ma connaissance : un jeu d'échecs ne connaissant pas toutes les règles et ne sauvegardant pas les options élémentaires, un jeu de tir en vue subjective à la musique mêlée de bruit blanc, et un jeu de bowling au gameplay difficile à prendre en main).
    A ma connaissance aucun n'a de rendu mixte, ou hybride.

  4. #4
    Membre actif
    Avatar de Mikmacer
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 116
    Points : 241
    Points
    241
    Par défaut
    Citation Envoyé par RedGuff Voir le message
    Bonjour.
    "... le rendu hybride rasterisation/lancer de rayon, comme il se fait de plus en plus dans les jeux-vidéos..."
    Ah bon ?
    A ma connaissance, c'est DirectX et un peu encore de l'OpenGL (en déclin).
    Rares sont les jeux utilisant le lancer de rayon (3 à ma connaissance : un jeu d'échecs ne connaissant pas toutes les règles et ne sauvegardant pas les options élémentaires, un jeu de tir en vue subjective à la musique mêlée de bruit blanc, et un jeu de bowling au gameplay difficile à prendre en main).
    A ma connaissance aucun n'a de rendu mixte, ou hybride.
    Plusieurs jeux utilisent le lancé de rayons, mais pas nécéssairement pour le ray-tracing, mais pour certains effets graphique ou pour des tests de collisions. Par exemple, le SSAO utilise plusieurs lancé de rayon dans l'environnement(limitif de la vue) afin de calculer l'occlusion.

    Par contre, je suis dernièrement tombé sur une démo qui vient tout juste de sortir, où on mélange ray-tracing et rasterization pour le rendu, le ray tracing n'est seulement qu'utiliser pour la réflexion. C'est fait à partir d'une idée assez ingénieuse (Je n'entrerai pas dans les détails technique ^^) On peut voir la démo ici :
    [ame="http://www.youtube.com/watch?v=AQaS0ucxK4A"]YouTube - Serenity Engine - Real Time Global Illumination and Ray Tracing[/ame]

  5. #5
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 086
    Points : 8 005
    Points
    8 005
    Par défaut
    Moi je me suis amusé récemment a essayer de faire un jeu de billard jouables avec Optix uniquement. (Y'a un post quelques part sur ce forum d'ailleurs

    Évidemment j'ai fait mon système pour pouvoir choisir le nombre de passes par images, afin de rendre plus fluide, ou plus beau...

    Voila une ou 2 petite vidéo de l'engin en question pour ceux qui seraient interessés :





    Les grosses saccades sont dut au fait que j'augmente (trop) le nombre de passes...

  6. #6
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2006
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 450
    Points : 1 630
    Points
    1 630
    Par défaut
    Citation Envoyé par RedGuff Voir le message
    Bonjour.
    "... le rendu hybride rasterisation/lancer de rayon, comme il se fait de plus en plus dans les jeux-vidéos..."
    Ah bon ?
    A ma connaissance, c'est DirectX et un peu encore de l'OpenGL (en déclin).
    Rares sont les jeux utilisant le lancer de rayon (3 à ma connaissance : un jeu d'échecs ne connaissant pas toutes les règles et ne sauvegardant pas les options élémentaires, un jeu de tir en vue subjective à la musique mêlée de bruit blanc, et un jeu de bowling au gameplay difficile à prendre en main).
    A ma connaissance aucun n'a de rendu mixte, ou hybride.
    Ici une presentation faite a la conference GDC 2011 la semaine derniere:

    http://nvidia.fullviewmedia.com/gdc2...eometrics.html

    Ils presentent le port de Enligthen sur Optix (le nouveau nom pour NVirt) , un framework utilise par le moteur Frostbite pour la partie pre-processing et CUDA pour la partie runtime. Cette techno est utilisee pour faire Battefield 3 qui n'est pas encore sortie.

    A ma connaissance c'est la premiere utilisation de Optix dans l'industrie du jeu video.

Discussions similaires

  1. OpenGL et le lancer de rayon
    Par Premium dans le forum OpenGL
    Réponses: 7
    Dernier message: 06/12/2006, 18h04
  2. Lancer de rayon
    Par Bethoring dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 29/11/2005, 23h28
  3. Lancer de Rayon
    Par Wyatt dans le forum OpenGL
    Réponses: 3
    Dernier message: 05/05/2005, 14h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo