Infographie: Quelle est la différence entre les vertex shaders et les pixel shaders?


Réponse 1:

Pipeline graphique

Vertex shaders

  • Programmes exécutés une fois par sommet, au début du pipeline. Impossible de créer ou de détruire des sommets. Ne sait pas à quelle primitive il appartient.

Pixels shaders

  • Programmes exécutés une fois par fragment, en retard dans le pipeline. Impossible d'accéder à d'autres sommets ou pixels. Calcule l'opacité, la couleur, la valeur z, les coordonnées de texture.

Ombrage Feng

Ombrage Feng

par pixel;

Modèle de réflexion Phong

  • À chaque sommet, transformez la position et la normale de l'espace objet en espace mondial À chaque pixel, interpolez et normalisez la surface normale et résumez les différents composants d'éclairage (ambiant + diffus + spéculaire) pour calculer la couleur finale du pixel.

Tutoriels OpenGL

variation de vec3 N; variant vec3 v; void main (void) {v = vec3 (gl_ModelViewMatrix * gl_Vertex); N = normaliser (gl_NormalMatrix * gl_Normal); gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; }
variation de vec3 N; variant vec3 v; void main (void) {vec3 L = normaliser (gl_LightSource [0] .position.xyz - v); vec3 E = normaliser (-v); vec3 R = normaliser (-réfléchir (L, N)); // ambiance vec4 Iamb = gl_FrontLightProduct [0] .ambient; // diffuse vec4 Idiff = gl_FrontLightProduct [0] .diffuse * max (point (N, L), 0,0); Idiff = pince (Idiff, 0,0, 1,0); // vec4 spéculaire Ispec = gl_FrontLightProduct [0] .specular * pow (max (dot (R, E), 0.0), 0.3 * gl_FrontMaterial.shininess); Ispec = pince (Ispec, 0,0, 1,0); // couleur totale gl_FragColor = gl_FrontLightModelProduct.sceneColor + Iamb + Idiff + Ispec; }

Réponse 2:

Qu'est-ce qu'un Vertex Shader?

Vertex Shader

Gardez à l'esprit que les shaders Tessellation et Geometry sont facultatifs.

Entrées de vertex shader

Les attributs

Uniformes

Lecture seulement

positions, normales et coordonnées uv

TOUT

Sorties Vertex Shader

gl_Position

Lecture seulement

variable / hors

Les attributs

variable / hors

Uniforme

Qu'est-ce qu'un Fragment Shader (alias Pixel Shader)?

Uniforme

rasterizer

Entrées dans un fragment Shader

Sommet

Tessellation

Shader de géométrie

plat

variable / hors

  • Coordonnées de texture: utilisé comme l'un des paramètres de la fonction texture (). Vecteurs de réflexion per-vertex: utilisés dans le mappage d'environnement, le mappage de cube ou toute opération impliquant une réflexion vecteurs de réfraction per-vertex: utilisés dans le mappage de cube ou toute opération impliquant des réfractions .Coordonnées géométriques dans les coordonnées du modèle ou de la vue.Intensité lumineuse: Utilisé dans les scènes utilisant un éclairage par sommet.

Sorties d'un fragment Shader

vec4

Graphics Shaders: Theory and Practice, Second Edition: Mike Bailey, Steve Cunningham: 9781568814346: Amazon.com: Livres


Réponse 3:

Qu'est-ce qu'un Vertex Shader?

Vertex Shader

Gardez à l'esprit que les shaders Tessellation et Geometry sont facultatifs.

Entrées de vertex shader

Les attributs

Uniformes

Lecture seulement

positions, normales et coordonnées uv

TOUT

Sorties Vertex Shader

gl_Position

Lecture seulement

variable / hors

Les attributs

variable / hors

Uniforme

Qu'est-ce qu'un Fragment Shader (alias Pixel Shader)?

Uniforme

rasterizer

Entrées dans un fragment Shader

Sommet

Tessellation

Shader de géométrie

plat

variable / hors

  • Coordonnées de texture: utilisé comme l'un des paramètres de la fonction texture (). Vecteurs de réflexion per-vertex: utilisés dans le mappage d'environnement, le mappage de cube ou toute opération impliquant une réflexion vecteurs de réfraction per-vertex: utilisés dans le mappage de cube ou toute opération impliquant des réfractions .Coordonnées géométriques dans les coordonnées du modèle ou de la vue.Intensité lumineuse: Utilisé dans les scènes utilisant un éclairage par sommet.

Sorties d'un fragment Shader

vec4

Graphics Shaders: Theory and Practice, Second Edition: Mike Bailey, Steve Cunningham: 9781568814346: Amazon.com: Livres