COMPTOIR
  
register

Des méthodes statistiques pour le Ray Tracing, une bonne idée ?

Chez NVIDIA, nul doute que la direction est fière des RTX, qui apportent pour la première fois une touche de lancer de rayon au grand public ; chose auparavant réservée aux rendus 3D. En dépit d'un vrai plus graphique, les performances en prennent un sacré coup - le concurrent rouge ayant officiellement décidé d'attendre les progrès en performance avant de se lancer dans l'aventure. Néanmoins, les idées de manquent pas : après une version TAA, voilà qu'une équipe de recherche mixte NVIDIA / Université de Lund (Suède) a travaillé sur l'application d'une méthode statistique au Ray Tracing : le Monte Carlo.

 

L'idée n'est par contre applicable qu'aux scènes comportant un grand nombre de sources de lumière : il faut en effet les rassembler dans une structure hiérarchique à deux niveaux : BLAS et TLAS (Bottom-Level et Top Level Acceleration Structure), et choisir stochastiquement d'où tirer le rayon en fonction des intensités relatives. Pour parler en français compréhensible, si deux lampes sont proches l'une de l'autre et que l'une d'elles est faiblarde, il convient de quasi-négliger son influence. Empiriquement, les meilleurs résultats sont atteints quand chaque objet capable de rayonner fait partie de son propre BLAS unique : rien de bien surprenant. L'avantage de cette technique réside dans la prise en charge très aisée des lumières dynamiques, car il est extrêmement aisé de maintenir la cohérence de la structure contenant les sources vis-à-vis de la position réelle des objets dans la scène ; et peut même être effectué par le CPU de manière asynchrone : royal !

 

nvidia ray tracing many light sampling blas

Chaque parallélépipède jaune est la racine d'un BLAS, la scène en contenant au total 142.

 

Toute cette théorie est bien belle, mais qu'en est-il des résultats ? Sur papier, la technique semble prometteuse : seuls 6% des rayons sont mal prédits, alors que le temps consacré au BVH peut être réduit d'un facteur 100 à 300 sur une RTX 2080 Ti accompagnée d'un Xeon E5-1650 v4. Reste à savoir si les 6% sont dérangeants  l'oeil, et si cette méthode peut être facilement intégrée dans les pilotes. Des améliorations logicielles majeures à venir dans les années à suivre ?

 

Un poil avant ?

Des failles découvertes (et colmatées) dans un logiciel et des SSD Intel

Un peu plus tard ...

Windows Insiders : optimisation et sécurité de connexion

Les 8 ragots
Les ragots sont actuellement
ouverts à tous, c'est open bar !
par Carbon13, le Samedi 13 Juillet 2019 à 06h30  
par Un adepte de Godwin en Île-de-France le Vendredi 12 Juillet 2019 à 22h48
C'est pas vrai pour la rastérisation justement. Les lumières + ombres sont assez triviales niveau effet mais ça a le mérite de se faire vite (par source) s'il y en a beaucoup, alors que en raytracing, sans ce genre d'optimisation, on multiplie quasiment la quantité de calculs par le nombre de lumières. La rastérisation est par contre très dépendante de la complexité de la scène (du nombre d'objets et de leur niveau de détail), au contraire du RT.
C'est l'inverse justement : en Rastérisation tu dois utiliser des Shadow Maps pour chacune des sources de lumière ce qui fait un encombrement en mémoire loin d'être négligeable, et force a re-rendre la scène pour chaque source, ce qui force les artistes à faire un choix sur quelles sources vont créer des ombres.
En RT tu as une grosse structure de donnée qui peut vérifier la visibilité en tout point et toute direction au prix d'un accès assez lent mais où tu peux appliquer l'énorme optimisation décrite ici.
par Un adepte de Godwin en Île-de-France, le Vendredi 12 Juillet 2019 à 22h48  
par Carbon13 le Vendredi 12 Juillet 2019 à 14h18
L'idée derrière cet article qui est moyennement bien expliquée ici est de par exemple lancer 4 rayons pour évaluer la visibilité par rapport à 2 sources de lumières sur un pixel. Le but est d'évaluer l'influence relative de chaque source sur l'éclairage du pixel : dans notre cas si la 1ere source contribue à 75% de l'intensité lumineuse et la 2eme 25%, on utilisera 3 rayons pour la première et 1 pour la seconde.

Le problème, c'est que dans des cas concrets on est sur plus de 5000 sources lumineuses pour un rayon par pixel et il est complètement irréalisable d'évaluer la contribution de chaque source pour chaque pixel, surtout pour des sources de lumières de formes arbitraires. Cet article présente une nouvelle méthode pour estimer la contribution d'une source de lumière et choisir la bonne à échantillonner. L'avantage de cette méthode c'est que même quand l'estimation de luminosité est fausse, on obtient juste une image avec plus de bruit car le nombre de rayons nécessaire sera mal évalué.

L'énorme avantage du Ray tracing ici c'est qu'on pourrait avoir des ombres sur plus de 5000 sources de lumières ce qui est juste impossible en rastérisation classique sans même parler de leur qualité qui serait largement supérieure.
C'est pas vrai pour la rastérisation justement. Les lumières + ombres sont assez triviales niveau effet mais ça a le mérite de se faire vite (par source) s'il y en a beaucoup, alors que en raytracing, sans ce genre d'optimisation, on multiplie quasiment la quantité de calculs par le nombre de lumières. La rastérisation est par contre très dépendante de la complexité de la scène (du nombre d'objets et de leur niveau de détail), au contraire du RT.
par Nicolas D., le Vendredi 12 Juillet 2019 à 17h59  
par Carbon13 le Vendredi 12 Juillet 2019 à 14h18
L'idée derrière cet article qui est moyennement bien expliquée ici est de par exemple lancer 4 rayons pour évaluer la visibilité par rapport à 2 sources de lumières sur un pixel. Le but est d'évaluer l'influence relative de chaque source sur l'éclairage du pixel : dans notre cas si la 1ere source contribue à 75% de l'intensité lumineuse et la 2eme 25%, on utilisera 3 rayons pour la première et 1 pour la seconde.
 
il faut en effet les rassembler dans une structure hiérarchique à deux niveaux : BLAS et TLAS (Bottom-Level et Top Level Acceleration Structure), et choisir stochastiquement d'où tirer le rayon en fonction des intensités relatives. Pour parler en français compréhensible, si deux lampes sont proches l'une de l'autre et que l'une d'elles est faiblarde, il convient de quasi-négliger son influence.
C'est peut-être pas clair, mais ça y est
par Thibaut G., le Vendredi 12 Juillet 2019 à 15h03  
par Ragoteur Traceur en Île-de-France le Vendredi 12 Juillet 2019 à 13h15
Non seulement le RT à la nVidia fait s'écrouler les perfs, mais en plus on a pas du vrai RT, celui ou TOUS les pixels de l'image sont calculés avec du RT, la solution nVidia c'est on en lance quelques-un sur quelques pixels et on déduit avec de l'IA le résultat pour ceux adjacents.

On aurait du full RT ça tournerait à une image toutes les 3 secondes sur la + puissante des nVidia en 1080p.

C'est la ou je comprend la non précipitation d'AMD, qui doit s'y mettre plus sur la pression de la clientèle qui à cause du lavage de cerveau effectué a fini par croire que le RT de nVidia c'est le même RT des films Disney ou chaque image était calculé pendant des heures sur des baies de calculateurs.
bravo Jemporte quel beau ramassis de connerie, comme d'hab. Premièrement PERSONNE et pas NVIDIA n'a fait croire à du full RT puisque dès le départ elles ont bien été vendues comme faisant du RT Hybride. Là tu bashes et c'est toi qui passe pour un âne pour rester poli. Ne cherche pas à raconter n'importe quoi pour te donner de l'importance, là tu divagues et c'ets flagrant.
Ensuite tu comprends AMD, mais c'est surtout qu'AMD est en retard technologique, en partie comblé avec le RDNA. Inutile de dire que le RT chez AMD n'est pas le cheval de bataille, le fossé se creusant avec son concurrent. D'ailleurs il est obligé de s'y mettre puisque les consoles le feront, sur pression du milieu. il le fera avec ses moyens et surtout l epêu de temps dont il dispose pour l'intégrer, mais le fait est qu'une accélération hardware est beaucoup plus efficace qu'une soupe logicielle comme tu la défends. Rappelle moi comment s'appelle une carte 3D ? Une carte accélératrice.
Message de Carbon13 supprimé par un modérateur : t'étais trop énervé t'as couillé :D
par Carbon13, le Vendredi 12 Juillet 2019 à 14h18  
L'idée derrière cet article qui est moyennement bien expliquée ici est de par exemple lancer 4 rayons pour évaluer la visibilité par rapport à 2 sources de lumières sur un pixel. Le but est d'évaluer l'influence relative de chaque source sur l'éclairage du pixel : dans notre cas si la 1ere source contribue à 75% de l'intensité lumineuse et la 2eme 25%, on utilisera 3 rayons pour la première et 1 pour la seconde.

Le problème, c'est que dans des cas concrets on est sur plus de 5000 sources lumineuses pour un rayon par pixel et il est complètement irréalisable d'évaluer la contribution de chaque source pour chaque pixel, surtout pour des sources de lumières de formes arbitraires. Cet article présente une nouvelle méthode pour estimer la contribution d'une source de lumière et choisir la bonne à échantillonner. L'avantage de cette méthode c'est que même quand l'estimation de luminosité est fausse, on obtient juste une image avec plus de bruit car le nombre de rayons nécessaire sera mal évalué.

L'énorme avantage du Ray tracing ici c'est qu'on pourrait avoir des ombres sur plus de 5000 sources de lumières ce qui est juste impossible en rastérisation classique sans même parler de leur qualité qui serait largement supérieure.
par Ragoteur Traceur en Île-de-France, le Vendredi 12 Juillet 2019 à 13h15  
Non seulement le RT à la nVidia fait s'écrouler les perfs, mais en plus on a pas du vrai RT, celui ou TOUS les pixels de l'image sont calculés avec du RT, la solution nVidia c'est on en lance quelques-un sur quelques pixels et on déduit avec de l'IA le résultat pour ceux adjacents.

On aurait du full RT ça tournerait à une image toutes les 3 secondes sur la + puissante des nVidia en 1080p.

C'est la ou je comprend la non précipitation d'AMD, qui doit s'y mettre plus sur la pression de la clientèle qui à cause du lavage de cerveau effectué a fini par croire que le RT de nVidia c'est le même RT des films Disney ou chaque image était calculé pendant des heures sur des baies de calculateurs.
par un medecin des campagnes en Auvergne-Rhône-Alpes, le Vendredi 12 Juillet 2019 à 10h13  
et oui, quand on active le Ray trace dans les jeux rt, on se prend genre du -40% en terme de fps dans la face c'est ce que j'ai vu sur certains tests dans battelfield, en 4k çà risque de ramer,avec une 2080 rtx !, donc faut redescendre en resolution inferieure ou sacrifier d'autres reglages, Amd a tout le temps devant lui,en plus faut avoir Windows version 1809 direct x 12 pour activer le Ray Tracing