# Nvidia RTX

Nvidia GeForce RTX (Ray Tracing Texel eXtreme) est une plate-forme infographique professionnelle haut de gamme créée par Nvidia, principalement utilisée pour la conception de modèles complexes à grande échelle dans la conception architecturale et de produits, la visualisation scientifique, l'exploration énergétique, les jeux vidéo et la production de films et de vidéos. Nvidia RTX permet le lancer de rayons en temps réel. Historiquement, le lancer de rayons était réservé aux applications non temps réel (comme les effets spéciaux numériques pour le cinéma et dans les rendus photoréalistes), les jeux vidéo devant s'appuyer sur un éclairage direct et une contribution indirecte précalculée pour leur rendu. RTX facilite le développement en infographie de la génération d'images interactives qui réagissent à l'éclairage, aux ombres et aux reflets.
RTX fonctionne sur les processeurs graphiques basés sur les architectures Nvidia Volta, Turing et Ampere, qui utilisent spécifiquement les cœurs Tensor (et les nouveaux cœurs RT sur Turing et ses successeurs) sur les architectures conçues pour accélérer les calculs de lancer de rayons$^,$$^,$.
En mars 2019, Nvidia annonce que certaines cartes des séries GTX 10 (architecture Pascal) et GTX 16 (architecture Turing) permettront la prise en charge de sous-ensembles de la technologie RTX dans les pilotes à venir, bien que les fonctions et les performances soient affectées par leur manque de cœurs matériels spécifiques pour le ray tracing.
En octobre 2020, Nvidia annonce la sortie de la Nvidia RTX A6000, première carte graphique basée sur l'architecture Ampere destinée aux stations de travail professionnelles de la gamme Nvidia RTX et remplaçant la ligne des cartes professionnelles Quadro.
Nvidia travaille avec Microsoft pour intégrer la prise en charge de RTX à l'API DirectX Raytracing (DXR) de Microsoft. RTX est actuellement disponible via Nvidia OptiX et pour DirectX. Pour les architectures Turing et Ampere, il est également disponible pour Vulkan.

## Composants

En plus du lancer de rayons, RTX inclut l'intégration de l'intelligence artificielle, des formats de données standards, la prise en charge de la rastérisation (CUDA) et des API de simulation. La plate-forme NVIDIA RTX comprend les composants suivants :
* fonctionnalités accélérées par IA (NGX) ;
* formats standards (USD et MDL) ;
* rasterisation incluant des shaders avancés ;
* lancer de rayons via OptiX, Microsoft DXR et Vulkan ;
* outils de simulation (CUDA 10, Flex, PhysX).

## Lancer de rayons

Dans le domaine de l'infographie, la technique du lancer de rayons (ray tracing en anglais) permet de créer une image en traçant les rayons projetés à travers les pixels d'un plan de projection et en simulant les effets de leurs collisions avec des objets virtuels. Elle permet d'obtenir des effets avancés qui reflètent mieux les propriétés optiques du monde réel, comme les ombres et les réflexions plus douces et plus réalistes, en comparaison aux techniques traditionnelles de rastérisation qui favorisent les performances au détriment de la précision de rendu.
NVIDIA RTX y parvient grâce à une combinaison d'accélération matérielle et logicielle. Au niveau matériel, les cartes RTX sont dotées de "cœurs RT" à fonction fixe, conçus pour accélérer les opérations mathématiques nécessaires à la simulation des rayons, comme la traversée de la hiérarchie des volumes englobants. L'implémentation logicielle est ouverte aux développeurs d'applications indépendants. Le lancer de rayons étant toujours gourmand en ressources informatiques, de nombreux développeurs choisissent d'adopter une approche de rendu hybride dans laquelle certains effets graphiques, tels que les ombres et les réflexions, sont réalisés à l'aide du lancer de rayons, tandis que le reste de la scène est rendu à l'aide de la technique de rastérisation, plus performante.

## Développement
### API utilisant RTX
#### Nvidia OptiX

Nvidia OptiX fait partie de Nvidia DesignWorks. OptiX est une API de haut niveau, ou "to-the-algorithm", ce qui signifie qu'elle est conçue pour encapsuler l'ensemble de l'algorithme dont le ray tracing fait partie, et pas seulement les calculs de ray tracing eux-mêmes. Ceci rend le moteur OptiX capable d'exécuter l'algorithme global sans modification du côté de l'application.
Outre le rendu d'infographie, OptiX facilite également la conception optique et acoustique, la recherche sur les rayonnements et l'électromagnétisme, les requêtes d'intelligence artificielle et l'analyse des collisions.