Arvutigraafika: Mis vahe on tipptasemel varjunditel ja pikselivarjutajatel?


Vastus 1:

Graafika torujuhe

Vertexi varjurid

  • Programme, mis käivitatakse tipu kohta üks kord, juba varakult. Ei tohi tippe luua ega hävitada.Ei tea, millisesse primitiivsesse süsteemi see kuulub.

Pikselivarjud

  • Programmid täidetakse üks kord fragmendi kohta, torustiku hilinemisega.Muudele tippudele või pikslitele juurde ei pääse.Arutab läbipaistmatuse, värvi, z-väärtuse, tekstuuri koordinaadid.

Fengi varjutamine

Fengi varjutamine

piksli kohta;

Phongi peegeldusmudel

  • Muutke igas tipus positsioon ja normaalne objektiruumist maailmaruumi. Iga piksli korral interpoleerige ja normaliseerige pinna normaalväärtus ning pikslite lõpliku värvi arvutamiseks summutage erinevad valgustuskomponendid (ümbritsev + hajus + spekulaarne).

OpenGL-i õpetused

varieeruv vec3N; varieeruv vec3 v; tühine pea (tühine) {v = vec3 (gl_ModelViewMatrix * gl_Vertex); N = normaliseerida (gl_NormalMatrix * gl_Normal); gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; }
varieeruv vec3N; varieeruv vec3 v; tühine pea (tühine) {vec3 L = normaliseerida (gl_LightSource [0] .positsioon.xyz - v); vec3 E = normaliseerida (-v); vec3 R = normaliseerub (-peegeldus (L, N)); // ambient vec4 Iamb = gl_FrontLightProduct [0] .ambient; // hajus vec4 Idiff = gl_FrontLightProduct [0]. hajuti * max (punkt (N, L), 0,0); Idiff = klamber (Idiff, 0,0, 1,0); // specular vec4 Ispec = gl_FrontLightProduct [0] .spetsiifiline * pow (max (punkt (R, E), 0,0), 0,3 * gl_FrontMaterial.shininess); Ispec = klamber (Ispec, 0,0, 1,0); // koguvärv gl_FragColor = gl_FrontLightModelProduct.sceneColor + Iamb + Idiff + Ispec; }

Vastus 2:

Mis on Vertex Shader?

Vertex Shader

Pidage meeles, et Tessellation ja Geometry varjurid on valikulised.

Vertex Shaderi sisendid

Atribuudid

Vormiriietus

Loe ainult

positsioonid, normaalid ja UV-koordinaadid

KÕIK

Vertex Shaderi väljundid

gl_Position

Loe ainult

varieeruv / väljas

Atribuudid

varieeruv / väljas

Ühtne

Mis on Fragment Shader (teise nimega Pixel Shader)?

Ühtne

rasteriseerija

Sisendid fragmendivarjurisse

Vertex

Tessellatsioon

Geomeetria varjutaja

tasane

varieeruv / väljas

  • Tekstuuri koordinaadid: kasutatakse tekstuuri () funktsiooni ühe parameetrina.Per-Vertexi peegeldusvektorid: kasutatakse keskkonna kaardistamisel, kuubi kaardistamisel või mis tahes peegeldusega seotud toimingul.Per-Vertexi murdumisvektorid: kasutatakse kuubi kaardistamisel või muudes murdumisoperatsioonidega seotud toimingutes. .Geomeetrilised koordinaadid mudeli- või vaatekoordinaatides.Valgustugevus: kasutatakse stseenides, kasutades tipupealset valgustust. Tugevusvektorid tippudest valgusallikateni: kasutatakse kohtvalgustuseks / Phongi varjutamiseks.

Fragmentvarjundi väljundid

vec4

Graafikavarjurid: teooria ja praktika, teine ​​trükk: Mike Bailey, Steve Cunningham: 9781568814346: Amazon.com: raamatud


Vastus 3:

Mis on Vertex Shader?

Vertex Shader

Pidage meeles, et Tessellation ja Geometry varjurid on valikulised.

Vertex Shaderi sisendid

Atribuudid

Vormiriietus

Loe ainult

positsioonid, normaalid ja UV-koordinaadid

KÕIK

Vertex Shaderi väljundid

gl_Position

Loe ainult

varieeruv / väljas

Atribuudid

varieeruv / väljas

Ühtne

Mis on Fragment Shader (teise nimega Pixel Shader)?

Ühtne

rasteriseerija

Sisendid fragmendivarjurisse

Vertex

Tessellatsioon

Geomeetria varjutaja

tasane

varieeruv / väljas

  • Tekstuuri koordinaadid: kasutatakse tekstuuri () funktsiooni ühe parameetrina.Per-Vertexi peegeldusvektorid: kasutatakse keskkonna kaardistamisel, kuubi kaardistamisel või mis tahes peegeldusega seotud toimingul.Per-Vertexi murdumisvektorid: kasutatakse kuubi kaardistamisel või muudes murdumisoperatsioonidega seotud toimingutes. .Geomeetrilised koordinaadid mudeli- või vaatekoordinaatides.Valgustugevus: kasutatakse stseenides, kasutades tipupealset valgustust. Tugevusvektorid tippudest valgusallikateni: kasutatakse kohtvalgustuseks / Phongi varjutamiseks.

Fragmentvarjundi väljundid

vec4

Graafikavarjurid: teooria ja praktika, teine ​​trükk: Mike Bailey, Steve Cunningham: 9781568814346: Amazon.com: raamatud