Számítógépes grafika: Mi a különbség a csúcs Shader és a pixel Shader között?


Válasz 1:

Grafika Csővezeték

Vertex árnyékolók

  • A csúcsonként egyszer végrehajtott programok, a csővezeték elején.A csúcsokat nem lehet létrehozni vagy elpusztítani.Nem tudja, hogy mely primitívhez tartozik.

Pixel árnyékolók

  • A töredékekenként egyszer végrehajtott programok későn vannak a csővezetékben.Más csúcsokhoz vagy képpontokhoz nem férhet hozzá.Kiszámítja az opacitást, a színt, a z-értéket, a textúra koordinátáit.

Feng árnyékolás

Feng árnyékolás

pixel / pixel;

Phong reflexiós modell

  • Minden csúcsnál alakítsa át a pozíciót és a normál értéket a tárgytérből a világtérbe. Minden pixelnél interpoláljuk és normalizáljuk a felület normál értékét, és összegzzük a különböző világítási összetevőket (környezeti + diffúz + spekuláris) a végső pixel színének kiszámításához.

OpenGL oktatóprogramok

változó vec3N; változó vec3 v; void main (void) {v = vec3 (gl_ModelViewMatrix * gl_Vertex); N = normalizálni (gl_NormalMatrix * gl_Normal); gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; }
változó vec3N; változó vec3 v; void main (void) {vec3 L = normalizálni (gl_LightSource [0] .position.xyz - v); vec3 E = normalizálni (-v); vec3 R = normalizálódik (-visszaverés (L, N)); // ambient vec4 Iamb = gl_FrontLightProduct [0] .ambient; // diffúz vec4 Idiff = gl_FrontLightProduct [0]. diffúz * max (pont (N, L), 0,0); Idiff = bilincs (Iiff, 0,0, 1,0); // specular vec4 Ispec = gl_FrontLightProduct [0] .specular * pow (max (pont (R, E), 0,0), 0,3 * gl_FrontMaterial.shininess); Ispec = bilincs (Ispec, 0,0, 1,0); // teljes szín gl_FragColor = gl_FrontLightModelProduct.sceneColor + bárány + idiff + Ispec; }

Válasz 2:

Mi a Vertex Shader?

Vertex Shader

Ne feledje, hogy a Tessellation és a Geometry árnyékolók opcionálisak.

Vertex Shader bemenetek

attribútumok

Egyenruha

Csak olvasható

pozíciók, normál és UV-koordináták

ÖSSZES

Vertex Shader kimenetek

gl_Position

Csak olvasható

változó / out

attribútumok

változó / out

Egyenruha

Mi az a Fragment Shader (más néven Pixel Shader)?

Egyenruha

raszterez

Bemenetek a Fragment Shaderbe

Csúcs

Mozaik

Geometriai árnyékoló

lakás

változó / out

  • Textúrakoordináták: A textúra () függvény egyik paramétereként használják. Per-Vertex reflexiós vektorok: Környezet-feltérképezéshez, kockaleképezéshez vagy bármilyen reflexiót magában foglaló művelethez használhatók. .Geometrikus koordináták a modellben vagy a nézetben. Világítási intenzitás: A jelenetekben csúcsonkénti megvilágítást használnak. Távolságvektorok csúcsoktól fényforrásokig: Helyi megvilágításhoz / Phong árnyékoláshoz használják.

Fragment Shader kimenetei

vec4

Grafikai árnyékolók: Elmélet és gyakorlat, Második kiadás: Mike Bailey, Steve Cunningham: 9781568814346: Amazon.com: Könyvek


Válasz 3:

Mi a Vertex Shader?

Vertex Shader

Ne feledje, hogy a Tessellation és a Geometry árnyékolók opcionálisak.

Vertex Shader bemenetek

attribútumok

Egyenruha

Csak olvasható

pozíciók, normál és UV-koordináták

ÖSSZES

Vertex Shader kimenetek

gl_Position

Csak olvasható

változó / out

attribútumok

változó / out

Egyenruha

Mi az a Fragment Shader (más néven Pixel Shader)?

Egyenruha

raszterez

Bemenetek a Fragment Shaderbe

Csúcs

Mozaik

Geometriai árnyékoló

lakás

változó / out

  • Textúrakoordináták: A textúra () függvény egyik paramétereként használják. Per-Vertex reflexiós vektorok: Környezet-feltérképezéshez, kockaleképezéshez vagy bármilyen reflexiót magában foglaló művelethez használhatók. .Geometrikus koordináták a modellben vagy a nézetben. Világítási intenzitás: A jelenetekben csúcsonkénti megvilágítást használnak. Távolságvektorok csúcsoktól fényforrásokig: Helyi megvilágításhoz / Phong árnyékoláshoz használják.

Fragment Shader kimenetei

vec4

Grafikai árnyékolók: Elmélet és gyakorlat, Második kiadás: Mike Bailey, Steve Cunningham: 9781568814346: Amazon.com: Könyvek