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
Postato su 29-02-2020