Ray Tracing versus rendu basé sur objet?

19

Les cours d'introduction aux graphiques ont généralement un projet qui vous demande de créer un traceur de rayons pour rendre une scène. De nombreux étudiants en graphisme qui entrent à l'école supérieure disent vouloir travailler sur le lancer de rayons. Et pourtant, il semble que le lancer de rayons soit un champ mort dans des lieux comme SIGGRAPH, etc.

Le lancer de rayons est-il vraiment le meilleur moyen de rendre une scène avec précision avec tous les éclairages souhaités, etc., et est-ce seulement la performance lente (en lecture non interactive) des traceurs de rayons qui les rend inintéressants, ou y a-t-il autre chose?

Suresh
la source
Peut-être que le lancer de rayons est un fait accompli.
Dave Clarke
Je pense que le titre de la question doit être édité, Raytracing est un rendu basé sur des pixels, peut-être qu'il devrait être reformulé comme `` Raytracing vs Object-based Rendering '' ou `` Raytracing vs Rasterization ''
aaecheve
Je vais modifier le titre.
Suresh
@DaveClarke: Vous ne savez pas ce que cela signifie?
Suresh
Plus de recherches à faire - je devrais éviter l'argot.
Dave Clarke

Réponses:

11

Le lancer de rayons est un algorithme très agréable et intuitif, et c'est une façon plus réaliste physiquement de décrire l'illumination d'une scène que la pixellisation, mais:

  • Le lancer de rayons est lent, surtout si vous souhaitez implémenter les effets les plus réalistes qui le distinguent de la pixellisation (par exemple, réfraction, réflexion, flou de mouvement, ombres douces) car cela implique de créer beaucoup plus de rayons par pixel.
  • La plupart des gens ne peuvent pas faire la différence entre les effets réels et les faux, ce qui, à mon avis, est le point clé. Le but d'un algorithme de rendu pratique est de créer une représentation photoréaliste d'une scène de la manière la plus efficace, et à l'heure actuelle, la rastérisation, bien qu'elle utilise beaucoup de hacks, y parvient très bien.
  • Il existe de nombreuses autres limites pratiques du lancer de rayons par rapport à un rendu de pixellisation: mauvais anticrénelage et mappage de déplacement, instanciation limitée, etc.

Même dans les applications non interactives, telles que les films, Raytracing est très peu utilisé en raison de ses limites. Pixar n'a commencé à utiliser Raytracing dans les voitures, et uniquement pour certains effets de réflexion spécifiques ( Ray Tracing pour le film «Cars» ).

Voici un excellent article qui décrit plus en détail l'état actuel de Raytracing et ses avantages et inconvénients: State of Ray Tracing (dans les jeux) .

aaecheve
la source
8

Le lancer de rayons de base a un problème majeur lié à la lumière ambiante. La plupart des modèles d'éclairage traitent la lumière ambiante comme un facteur constant imprégnant l'éther. Bien que le lancer de rayons soit idéal pour calculer les réflexions, il souffre d'instabilité numérique et de tests d'intersection de surface compliqués. Le traçage des rayons peut ne pas fonctionner correctement avec le rendu accéléré par le matériel, car la récursivité joue un rôle majeur dans la détermination de l'éclairage pour un pixel particulier. Le lancer de rayons de base est très coûteux en calcul.

La radiosité gère mieux la lumière ambiante en ce qu'elle traite tous les objets de l'environnement comme des sources de lumière, produisant un modèle d'éclairage qui est en quelque sorte plus réaliste que le lancer de rayons. Avec une solution de radiosité, il y a un nombre fixe de polygones dans une scène, et le calcul se prête à l'accélération matérielle.

En fin de compte, le ray trancing n'est pas le meilleur moyen de rendre une scène, mais c'est un composant d'une bonne stratégie de rendu. Le coût de calcul élevé et un mauvais éclairage ambiant sont des impacts majeurs contre le lancer de rayons. En tant que sujet de recherche, les travaux sont en cours , mais semblent se concentrer sur l'accélération matérielle.

John Percival Hackworth
la source
Notez que l'une des façons les plus courantes de faire de la radiosité (en particulier, de gérer tous les aspects spéculaires de la radiosité et des fonctions générales de radiance) implique le lancer de rayons! En effet, le lancer de rayons et la radiosité sont tous deux des approximations de l'équation de rendu.
Steven Stadnicki
Vrai que. Une approche de radiosité de base (comment ça se passe pour un oxymore?) A besoin de quelque chose comme le lancer de rayons pour la spécularité et la réflexion.
John Percival Hackworth
4

Je ne dirais pas que le ray-tracing / path-tracing est mort ... quoi qu'il en soit, il y a eu un regain d'intérêt populaire dans le domaine en raison du parallélisme inhérent des nombreux algorithmes associés dans ce domaine, combiné à la vitesse de Systèmes basés sur GPU qui permettent de calculer des millions de rayons par seconde. À cela s'ajoute la flexibilité du pipeline de rendu que des langages plus génériques tels que CUDA et OpenCL permettent aux développeurs de tirer parti des fonctionnalités parallèles du GPU sans avoir à utiliser explicitement le pipeline graphique OpenGL comme les techniques initiales du GPGPU. Voici quelques exemples notables de la recherche continue de traçage de voies principales:

  • La recherche de Daniel Pohl et d'autres membres du groupe Intel Advanced Render
  • Le moteur Optix de Nvidia
  • SIGGRAPH, l'année dernière, comprenait quelques cours sur la synthèse d'images de Monte Carlo ainsi qu'une discussion sur les dernières techniques d'estimation de la densité de photons.

Enfin, vous avez beaucoup de recherches sur les techniques d'optimisation du problème d'éclairage global, y compris l'éclairage global basé sur des points, la cartographie des photons et les optimisations associées, la modélisation d'apparence avancée (y compris les méthodes basées sur les données), la mise en cache de l'irradiance, etc., etc.

Jason
la source