Commentaires : Emmanuel Macron se moque des opposants au déploiement de la 5G

C’est sur que si on projete ses textures avec une cartographie UV, on utilise pas Bresenham. Mais qui a dit que c’était la seule façon de faire dans les moteurs de rendus modernes? Un chef de projet chez Unity? une doc technique de chez nVidia?

C’est clair que Bresenham n’a rien à voir avec « un GPU calculant en parallèle chaque pixel dans un sous-quad » … tout à fait, ni avec la pèche à la cuillère ou la flexibilité des queues de vaches … et sinon les devs d’aujourd’hui ne jouent vraiment pas au lego avec des recettes toute faites non plus.

Du coup c’est quoi le problème avec Bresenham pour habiller un polygone? Ca n’est plus hype? Ca ne calcule pas une matrice Jacobienne? Ca n’est pas dans la derniere Cheat Sheet d’un bon pipeline de rendu? Ca n’est pas parallélisable? (lol)
Je crois surtout que ça n’est pas dans la doc, ou dans le catéchisme actuel des industries du jeu ou de l’image.

Oui Bresenham est tout à fait utilisable dans un moteur moderne pour appliquer une texture. Oui aussi pour raycaster ou raytracer. Oui c’est parallélisable, y compris avec du hardware, et je ne fait pas que l’affirmer comme ça en l’air: il aurait fallu assister à la conf IJECE de fevrier 2019 (mais c’est sur, c’est pas le CES ou la nVidia GTC, bien que des ingés de ces derniers étaient là, eux, avec leurs calepins) pour assister par exemple à une POC de line plotting accélérée sur FPGA; ça se trouve bien sur internet " Hardware/software co-design for a parallel three-dimensional bresenham’s algorithm".

Ce serait rigolo que si le raytracing continue comme il a commencé et que rasteriser devienne has been, une prochaine archi d’nVidia ou consors, qui buzze comme les actuelles RTX 3xxx le font, se base sur une vielle recette comme Bresenham ou Siddon accélérée par GPU pour lancer ses rayons. On revivrait un renversement de table à base de vielles techniques comme avec le buz du deep learning.

Bon après, je me connais. Le jour ou ça arrivera, je me mettrai à défendre la rasterisation face à ceux qui m’expliqueront que pour dessiner les cubes du dernier Beat Saber, il faut forcément lancer des rayons ( et il y aura surement un terme anglais plus court pour dire ça, « raytracing-based », sortit de la dernière édition du cathéchisme des faiseurs du marché )

Certes, gagnez vos salaires en pratiquant ce qui se vend sur le marché, mais la meilleure façon de s’élever à ma connaissance, c’est de maitriser les bases (surtout qu’elles se comportent souvent comme un boomerang) :wink:

Salut Nmut, et désolé pour le ton de ma réponse que je viens de relire. Je venais surement de me disputer avec maman ou un truc du genre :sweat_smile:

J’ai été un membre secondaire (surtout une sorte de mascotte parce que j’étais le plus jeune) d’un groupe qui sévissait surtout sur ZX Spectrum et Amiga à l’époque principalement sur San Francisco, meme si je n’y ai jamais mis les pieds à l’époque. La moitié de l’année j’étais sur le campus de Georgia Tech avec mes parents, l’autre moitié en France. Mais j’avais la chance d’avoir un accès à Usenet aussi bien à Atlanta qu’en France. Du coup, j’ai grandis dans tout ça, et aux US, des groups de ~30 membres ou plus, il y en avait, il suffit de regarder les credentials de fin dans les démos. Mais c’est vrai qu’en général, on entendait souvent parler que des fondateurs qui étaient souvent moins de 10.

Mais pour en revenir à notre sujet principal, c’est vrai que j’ai une reaction un peu aigrie quand je lis ce que je prends pour de l’étalage de confiture, surement à tord. Finalement, j’en viens à en faire autant à la fin, je me donne l’effet d’un vieux prof pète-sec :face_with_monocle:

J’ai connu plein de gens bien meilleur que moi, et je ne demande pas à ce qu’on taille un buste en marbre à mon image, mais si je gagne bien ma vie aujourd’hui, c’est justement parce je suis la preuve vivante qu’on peut plus ou moins faire le tour de toute une « stack technique » informatique, du transistor, à son bénéfice fonctionnel final. C’est ce que mes clients achètent.

Peut-être que je suis une bête en voie d’extinction et que les jeunes générations n’ont plus le temps de rattraper l’histoire, quand moi j’en ai vécu une partie (Radio Nostalgie Inside)

1 « J'aime »

Les GPUs, et leurs unités de texture en hardware. Même Larrabee n’a pas pu s’en passer, Intel avait des performances désastreuses sans elles au début (voir le blog de TomF). On peut afficher des textures différemment, mais pas avec la même vitesse. Et pour certaines méthodes : pas avec le même contrôle par les artistes, ce qui n’est pas acceptable dans une production commerciale.

Mais de toute façon : Bresencham, c’est pour approximer le mieux possible une ligne (et étendu à un cercle) sur une grille de pixel. Pas pour afficher une texture.
Donc pour revenir au point de départ : non les moteurs 3D modernes n’utilisent pas Bresencham pour l’affichage de texture.

Le PDF :

Our approach in implementing the 3D-Bresenham algorithm is performed by line segmentation and procedure parallelization. The line is divided into equal-length segments using the ARM A9 Cortex or the processor system (PS) available on the Zynq chip followed by sending them to the FPGA located on the same chip.

Ce n’est pas vraiment Bresencham qui est parallélisé, mais le segment de ligne coupé en n sous-segments, chacun rendu par un core différent. Oui il y a parallélisation, mais ce n’est pas exactement la ligne qu’aurait afficher un seul calcul de Bresencham (car les erreurs pour savoir quand incrémenter sur X ou Y ou Z retombent à zéro à chaque début de sous-segment).

Les GPUs ne font pas de rendu itératif d’un pixel à l’autre, ou d’une ligne après une autre. Ils fonctionnent en exécutant un même pixel shader sur tous les pixels d’un quad, qu’ils soient couvert ou non par un triangle (chacun des shaders units utilisées dans ce quad détermine si le triangle le couvre, puis exécute le pixel shader dessus au besoin). Les PS ou CS tournent indépendamment les uns des autres, en parallèle.

On peut faire du rendu d’une autre façon en utilisant des compute shaders; et il y a déjà de la recherche pour afficher différemment la géométrie (les geometry textures de l’UE4 par ex, les SVO, les shaders générant de la géométrie par CSG, parcourant des SDF etc.) faudrait arrêter de prendre les dévs de moteur 3D pour des idiots. :wink:

Mais pour encore une fois revenir au point de départ : non, pas de Bresenham dans les moteurs modernes :slight_smile:

Les deux sont souvent combinés : la rasterisation est bien plus rapide aujourd’hui pour calculer les premiers rayons (depuis la caméra).
Ça pourrait changer le jour où l’on aura une structure d’accélération de traversée de scène par les rayons plus rapide (ce qui permettrait aussi d’enlever les Z prepass et/ou les Gbuffers pour ceux qui les utilisent encore).

:face_with_monocle: en effet :wink:
Beaucoup de dévs 3D du jeu vidéos viennent de la demoscene. Ou de la recherche universitaire dans ce domaine; ou des deux en même temps.
Mais c’est un monde qui tend à se spécialiser de plus en plus. Auparavant une personne pouvait écrire un moteur 3D entier tout seul (j’en ai écrit, rendu raster soft, raytracing temps-réel, puis utilisant un GPU, renderer de niveaux de Quake à Doom3, soft shadows sur les premières GeForce en 2003 etc.). De nos jours rien que l’éclairage physiquement réaliste ou les ombres demandent énormément de connaissance et R&D personnelle pour être au top.

1 « J'aime »