Le pipeline fixe est en quelque sorte un vertex shader préprogrammé
dans la carte graphique. Selon les données disponibles dans le vertex
qu'il reçoit en entrée et les paramètres de la carte graphique, il fera
différentes choses. Evidemment, cela limite grandement les possibilités
par rapport à un vertex shader. Les données du vertex sont également
peu flexibles. Ainsi, les couleurs seront obligatoirement au format
RGBA (rouge, vert, bleu et alpha), les coordonnées du vertex doivent
contenir quatre composantes (X, Y, Z et W), etc.
Si les données nécessaires au rendu entrent dans cette norme, et que
l'algorithme de rendu est conforme à ce qu'il peut effectuer, le
pipeline fixe a de grandes chances d'être plus performant qu'un vertex
shader réalisant les mêmes opérations. Il est en effet très probable
qu'un circuit dédié soit présent dans le GPU et qu'il sera utilisé par
le pipeline fixe, alors qu'un vertex shader demanderait plus de travail
de la part du GPU, à cause de sa flexibilité. C'est la raison pour
laquelle les développeurs qui programment les cartes graphiques
n'utilisent pas les vertex shaders dans toutes les situations, mais
uniquement lorsqu'ils ont besoin de la flexibilité offerte par ceux-ci.
Cliquez pour agrandir
Malgré sa simplicité face aux vertex shaders, le pipeline fixe est tout
de même capable de bien des choses. Il suffit de regarder les jeux qui
n'exploitent pas les shaders pour s'en rendre compte, et il y en a
encore beaucoup.
Pourtant, il ne fait pas grand chose. D'abord, il transforme les
coordonnées du vertex (sa position) à l'aide de matrices, qui
définissent la translation, la rotation ou encore l'échelle à appliquer
aux coordonnées. Ensuite, il peut effectuer de simples calculs au
niveau de l'éclairage, en se basant sur la position de la lumière et la
normale du vertex.
Ceci n'empêche pas de réaliser des effets comme du bump mapping, des
éclairages dynamiques ou encore des ombres, mais ceci correspond plus
au pixel pipeline, dont nous parlerons plus tard. Il n'y a pas grand
chose de plus à dire sur le pipeline fixe, nous pouvons donc passer au
pipeline programmable, qui est un chapitre beaucoup plus imposant.