Computer grafica: qual è la differenza tra shader di vertici e pixel shader?


Risposta 1:

Pipeline grafica

Shader di vertici

  • Programmi eseguiti una volta per vertice, all'inizio della pipeline. Non è possibile creare o distruggere vertici. Non sa a quale primitiva appartiene.

Pixel shader

  • Programmi eseguiti una volta per frammento, in ritardo nella pipeline. Impossibile accedere ad altri vertici o pixel. Calcola l'opacità, il colore, il valore z, le coordinate della trama.

Feng Shading

Ombreggiatura Feng

per pixel;

Modello di riflessione Phong

  • Ad ogni vertice, trasforma la posizione e la normale dallo spazio degli oggetti allo spazio del mondo. Ad ogni pixel, interpola e normalizza la normale della superficie e riassumi i diversi componenti di illuminazione (ambiente + diffuso + speculare) per calcolare il colore finale del pixel.

Tutorial OpenGL

variando vec3 N; variando vec3 v; void main (void) {v = vec3 (gl_ModelViewMatrix * gl_Vertex); N = normalizza (gl_NormalMatrix * gl_Normal); gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; }
variando vec3 N; variando vec3 v; void main (void) {vec3 L = normalize (gl_LightSource [0] .position.xyz - v); vec3 E = normalizza (-v); vec3 R = normalizza (-reflect (L, N)); // ambient vec4 Iamb = gl_FrontLightProduct [0] .ambient; // diffuse vec4 Idiff = gl_FrontLightProduct [0] .diffuse * max (punto (N, L), 0.0); Idiff = clamp (Idiff, 0.0, 1.0); // specular vec4 Ispec = gl_FrontLightProduct [0] .specular * pow (max (punto (R, E), 0.0), 0.3 * gl_FrontMaterial.shininess); Ispec = morsetto (Ispec, 0.0, 1.0); // total color gl_FragColor = gl_FrontLightModelProduct.sceneColor + Iamb + Idiff + Ispec; }

Risposta 2:

Che cos'è uno shader di vertice?

Vertex Shader

Tieni presente che gli shader di tassellatura e geometria sono opzionali.

Vertex Shader Inputs

attributi

Uniformi

Sola lettura

posizioni, normali e coordinate uv

TUTTI

Vertex Shader Output

GL_POSITION

Sola lettura

variando / out

attributi

variando / out

Uniforme

Che cos'è un frammento shader (aka Pixel Shader)?

Uniforme

rasterizer

Ingressi a un frammento di shader

Vertice

Tassellazione

Geometry shader

piatto

variando / out

  • Coordinate texture: utilizzate come uno dei parametri nella funzione texture (). Vettori di riflessione per vertici: utilizzati nella mappatura ambientale, nella mappatura dei cubi o in qualsiasi operazione che coinvolga la riflessione. Vettori di rifrazione per vertici: utilizzati nella mappatura dei cubi o qualsiasi operazione che comporta rifrazioni Coordinate geometriche nel modello o coordinate della vista. Intensità della luce: usata nelle scene usando l'illuminazione per vertice. Vettori di distanza dai vertici alle fonti di luce: usata per l'illuminazione spot / Phong shading.

Output di un frammento di shader

vec4

Graphics Shaders: Theory and Practice, Seconda Edizione: Mike Bailey, Steve Cunningham: 9781568814346: Amazon.com: Libri


Risposta 3:

Che cos'è uno shader di vertice?

Vertex Shader

Tieni presente che gli shader di tassellatura e geometria sono opzionali.

Vertex Shader Inputs

attributi

Uniformi

Sola lettura

posizioni, normali e coordinate uv

TUTTI

Vertex Shader Output

GL_POSITION

Sola lettura

variando / out

attributi

variando / out

Uniforme

Che cos'è un frammento shader (aka Pixel Shader)?

Uniforme

rasterizer

Ingressi a un frammento di shader

Vertice

Tassellazione

Geometry shader

piatto

variando / out

  • Coordinate texture: utilizzate come uno dei parametri nella funzione texture (). Vettori di riflessione per vertici: utilizzati nella mappatura ambientale, nella mappatura dei cubi o in qualsiasi operazione che coinvolga la riflessione. Vettori di rifrazione per vertici: utilizzati nella mappatura dei cubi o qualsiasi operazione che comporta rifrazioni Coordinate geometriche nel modello o coordinate della vista. Intensità della luce: usata nelle scene usando l'illuminazione per vertice. Vettori di distanza dai vertici alle fonti di luce: usata per l'illuminazione spot / Phong shading.

Output di un frammento di shader

vec4

Graphics Shaders: Theory and Practice, Seconda Edizione: Mike Bailey, Steve Cunningham: 9781568814346: Amazon.com: Libri