Računalna grafika: Koja je razlika između vertex shader-a i pixel shadera?


Odgovor 1:

Grafički cjevovod

Vertex shaderi

  • Programi izvedeni jedanput po vertikali, u ranom toku. Ne mogu stvarati ili uništavati vertices.Ne zna kojem primitivnom pripada.

Pixel shaders

  • Programi izvedeni jednom po fragmentu, kasni u cjevovodu. Ne mogu pristupiti drugim vrhovima ili pikselima. Izračunava neprozirnost, boju, z-vrijednost, teksture koordinate.

Feng sjenčanje

Feng sjenčanje

po pikselu;

Model za refleksiju fona

  • Pri svakoj vrhovi, transformirajte položaj i normalno iz prostora objekta u svjetski prostor. Na svakom pikselu interpolirajte i normalizirajte normalnu površinu i zbrojite različite rasvjetne komponente (ambijentalna + difuzna + spekularna) da biste izračunali konačnu boju piksela.

OpenGL tutorijali

varira već3 N; variranje vec3 v; void main (void) {v = vec3 (gl_ModelViewMatrix * gl_Vertex); N = normalizirati (gl_NormalMatrix * gl_Normal); gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; }
varira već3 N; variranje vec3 v; void main (void) {vec3 L = normalizirati (gl_LightSource [0] .position.xyz - v); vec3 E = normalizirati (-v); vec3 R = normalizirati (-reflektirati (L, N)); // ambijent vec4 Iamb = gl_FrontLightProduct [0] .ambient; // difuzni vec4 Idiff = gl_FrontLightProduct [0] .difuz * max (točka (N, L), 0,0); Idiff = stezaljka (Idiff, 0,0, 1,0); // specular vec4 Ispec = gl_FrontLightProduct [0] .specular * pow (max (točka (R, E), 0,0)), 0,3 * gl_FrontMaterial.shininess); Ispec = stezaljka (Ispec, 0,0, 1,0); // ukupna boja gl_FragColor = gl_FrontLightModelProduct.sceneColor + Iamb + Idiff + Ispec; }

Odgovor 2:

Što je Vertex Shader?

Vertex Shader

Imajte na umu da su testeri Tessellation i Geometry opcijski.

Vertex Shader Ulazi

Značajke

uniforme

Samo za čitanje

položaji, normale i uv-koordinate

SVI

Izlazi Vertex Shader

gl_Position

Samo za čitanje

različite / out

Značajke

različite / out

uniforma

Što je fragment Shader (aka Pixel Shader)?

uniforma

Rasterizator

Ulazi u fragment Shader

tjeme

mozaik

Geometrija shader

ravan

različite / out

  • Koordinate teksture: Koristi se kao jedan od parametara u funkciji teksture (). Vektor refleksije Ver-Vertexa: Koristi se u mapiranju okoliša, preslikavanju kocke ili bilo kojoj operaciji koja uključuje odraz. Vektori refrakcije Ver-Vertexa: Koriste se u mapiranju kocke ili u bilo kojoj operaciji koja uključuje refrakcije .Geometrijske koordinate u modelu ili koordinate prikaza. Intenzitet svjetla: Koristi se u scenama pomoću perverzalne rasvjete. Vektori udaljenosti od vrhova do izvora svjetlosti: Koriste se za točkovno osvjetljenje / zasjenjenje Phongom.

Izlazi fragment Shader

vec4

Grafika Shaders: Teorija i praksa, drugo izdanje: Mike Bailey, Steve Cunningham: 9781568814346: Amazon.com: Knjige


Odgovor 3:

Što je Vertex Shader?

Vertex Shader

Imajte na umu da su testeri Tessellation i Geometry opcijski.

Vertex Shader Ulazi

Značajke

uniforme

Samo za čitanje

položaji, normale i uv-koordinate

SVI

Izlazi Vertex Shader

gl_Position

Samo za čitanje

različite / out

Značajke

različite / out

uniforma

Što je fragment Shader (aka Pixel Shader)?

uniforma

Rasterizator

Ulazi u fragment Shader

tjeme

mozaik

Geometrija shader

ravan

različite / out

  • Koordinate teksture: Koristi se kao jedan od parametara u funkciji teksture (). Vektor refleksije Ver-Vertexa: Koristi se u mapiranju okoliša, preslikavanju kocke ili bilo kojoj operaciji koja uključuje odraz. Vektori refrakcije Ver-Vertexa: Koriste se u mapiranju kocke ili u bilo kojoj operaciji koja uključuje refrakcije .Geometrijske koordinate u modelu ili koordinate prikaza. Intenzitet svjetla: Koristi se u scenama pomoću perverzalne rasvjete. Vektori udaljenosti od vrhova do izvora svjetlosti: Koriste se za točkovno osvjetljenje / zasjenjenje Phongom.

Izlazi fragment Shader

vec4

Grafika Shaders: Teorija i praksa, drugo izdanje: Mike Bailey, Steve Cunningham: 9781568814346: Amazon.com: Knjige