human
J'ai remarqué que certains jeux mentionnent l'exigence d'un "pixel shader 3.0 ou supérieur". Qu'est-ce qu'un pixel shader et s'agit-il d'une exigence logicielle ou matérielle
gpt
Réponse simple
Les pixel shaders sont de petits programmes qui peuvent effectuer des opérations sur un seul pixel à l'écran, contrairement aux geometry shaders et vertex shaders qui travaillent sur les primitives géométriques (triangles) qui composent tout ce que vous voyez à l'écran. L'utilisation la plus courante des pixel shaders est le 'shading', une approximation de l'éclairage du monde réel. Le modèle de shading le plus couramment utilisé est Phong.
Les pixel shaders sont exécutés sur votre carte vidéo, donc votre carte vidéo doit les prendre en charge. Chaque nouvelle version offre plus de fonctionnalités, donc une ancienne carte vidéo ne pourra pas exécuter les shaders plus récents. Une nouvelle version de la spécification des pixel shaders (par exemple, Pixel Shader 3.0) est généralement publiée pour chaque nouvelle version de DirectX (plus précisément, Direct3D).
Exigences logicielles
Vous devez avoir la version correcte de Direct3D (ou OpenGL) installée pour utiliser les shaders. Par exemple, Pixel Shader 4.0 nécessite au moins Direct3D 10. Normalement, vous n'avez pas à vous en soucier, chaque jeu qui utilise Direct3D installera la version correcte pour vous lors de l'installation du jeu. Les seules exceptions sont Direct3D 10 et ultérieur, qui ne fonctionneront pas sur Windows XP ou antérieur. Vous aurez besoin d'au moins Windows Vista pour jouer à un jeu qui utilise Direct3D 10 ou 11.
Wikipedia fournit une belle liste des versions des pixel shaders, de la version de Direct3D dont vous avez besoin et des types de cartes graphiques qui fonctionnent avec eux.

Réponse technique
Les étapes 'standard' d'un pipeline de rendu 3D sont les suivantes (quelque peu simplifiées) :

* Transformation (Déplacement, rotation et mise à l'échelle de tous les objets de la scène)
* Éclairage
* Projection ('Écrasement' du monde 3D dans un plan 2D)
* Clipping (Suppression de tout ce qui est en dehors du champ de vision)
* Rasterisation (Conversion des graphiques vectoriels (triangles, etc.) en graphiques raster (pixels))
* Texturage
* Affichage

Les pixel shaders sont utilisés comme une alternative à la phase de texturage standard. Pendant la rasterisation, chaque triangle est converti en pixels. Ces pixels n'ont pas encore leur couleur finale, mais ils ont plusieurs paramètres associés. Cela inclut la couleur de base, les coordonnées de texture, les informations d'éclairage, etc. Le pixel shader est un petit programme qui prend ces paramètres et les utilise pour calculer la couleur finale telle qu'elle est affichée à l'écran. Le pixel shader a accès à toutes les données de texture et peut les utiliser pour faire des choses intéressantes comme mélanger deux textures (pour créer un aspect 'sale'), utiliser une texture comme une carte de relief (pour simuler un relief) ou simuler des réflexions.
Matériel
Du côté matériel, les pixel shaders sont exécutés sur des 'unités de shader', de petits processeurs sur votre GPU. Chaque unité de shader est essentiellement un CPU très simple, mais une carte vidéo moderne peut en contenir des milliers (une AMD Radeon HD6990 en contient plus de 3000). Les anciens GPU avaient des unités de shader différentes pour différentes tâches : les pixel shaders étaient exécutés sur des parties différentes du système que les vertex shaders. Les GPU modernes ont des 'unités de shader unifiées' qui peuvent effectuer toutes ces opérations.