Quest-ce quun pixel shader?


Meilleure réponse

Les shaders sont des programmes spécialisés utilisés par le matériel graphique pour produire des images. Ils sont généralement subdivisés en programmes plus petits qui gèrent différents aspects du processus de rendu matériel.

Il existe plusieurs variétés différentes mais les plus courants sont les shaders pixel et vertex .

Les vertex shader est responsable de lapplication de toute modification à la géométrie dentrée. Habituellement, cela signifie projeter une géométrie 3D sur le plan de projection 2D de limage de sortie, mais parfois vous pouvez ajouter une sorte de mouvement procédural ou de déformation à la géométrie ici aussi.

Le pixel shader prend la sortie du vertex shader et génère les pixels qui apparaîtront dans limage finale. La plupart du temps, cela est basé sur une variation de l équation de rendu , comparant la direction de face du pixel avec les directions des sources lumineuses et les propriétés de la surface , mais il peut sagir dune fonction de bruit aléatoire, dune simulation complexe ou dun lancer de rayons.

La partie la plus différente de la programmation ordinaire est que les vertex et les pixels shaders sont extrêmement parallélisé. Chaque vertex shader sexécutera sur chaque sommet des données dentrée en même temps; chaque pixel shader fonctionnera sur chaque pixel de limage finale en même temps. Cela signifie quil est difficile de faire quelque chose sur un pixel en fonction de létat dun autre – tous les pixels fonctionneront en même temps indépendamment les uns des autres. Les effets qui doivent être conscients du contexte doivent souvent exécuter plusieurs shaders de pixels lun après lautre, stockant les résultats dans des images temporaires.

Cela vous donne un aperçu décent et très basique de son fonctionnement:

Réponse

Un «pixel shader» (qui est un mauvais nom pour un «fragment shader») est un petit programme qui sexécute plusieurs fois en parallèle sur le GPU pour déterminer la couleur des fragments. En termes simples, les fragments sont conceptuellement très similaires aux pixels, doù le nom de confusion.

Lorsque la géométrie est soumise pour le dessin, les sommets sont transformés par le «vertex shader». Le pipeline construira des primitives telles que des triangles ou des lignes, et une fois quelles ont été projetées sur lécran et coupées, le rastériseur calculera tous les «  pixels qui seront touchés et interpolera toutes les valeurs entre les sommets telles que les couleurs, les coordonnées de texture ou les normales. . Le shader de fragment est exécuté pour chacun des fragments afin de déterminer la couleur finale. Dautres opérations telles que le test de profondeur / alpha / stencil sont effectuées, puis les fragments peuvent éventuellement être moyennés ensemble dans le cas de lanticrénelage multi-échantillons, avant de devenir finalement de véritables couleurs de pixels à écrire ou à fusionner dans la mémoire tampon de lécran.

Image tirée de ici .

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *