\\ Home : Articoli : Stampa
PerPixelLighting senza Normal Map
Di RobyDx (del 21/01/2007 @ 11:35:22, in Shader Library, linkato 1946 volte)

Nonostante perda gran parte, dell'interesse la perPixelLighting può essere effettuata anche senza una mappa normale, ma sfruttando le normali della mesh. Si perde la gestione del rilievo ma se non serve si ha comunque un miglioramento incredibile dell'illuminazione. La normale luce infatti viene per dire rovinata dal fatto che il calcolo è preciso solo nel vertice mentre il risultato è interpolato nel triangolo. Se non ci sono molti poligoni il modello mostra tutta la sua "triangolatura". Con la perPixelLighting anche un modello con pochi poligoni mostra una illuminazione assolutamente perfetta e pulita come potete vedere. Lo shader usato genera nel vertex shader la posizione del vertice e 4 coordinate texture di cui le prime 3 formate da float3.
La prima conterrà le normali La seconda la luce con una correzione per invertire la direzione lungo Y La terza la posizione del vertice La quarta le normali texture Le normali e la posizione viene trasformata nello spazio worldView (moltiplicazione per la matrice WorldView) Il pixel shader calcola l'illuminazione in base alle normali regole di illuminazione ma il calcolo è fatto nel pixel shader.

Esempio Shader PerPixelLighting

  • VB.Net 2003 o framework 1.1
  • linguaggio usato: HLSL
  • requisiti hardware: VS_2_0, PS_2_0
  • funziona anche in reference

    PerPixelLightingWN.zip 193Kb