Ertelenmiş aydınlatmayı düşünün. Özetle, ertelenmiş aydınlatma, bir ekran alanı ışık haritasını hesaplamak için ertelenmiş gölgelendirmenin indirgenmiş bir versiyonunu kullanan bir tekniktir. İkinci geçişte geometri, ekran bilgisi ışık haritası kullanılarak aydınlatma bilgisi olarak yeniden oluşturulur.
Bu teknik, daha az öznitelik gerektiğinden G-Tamponunun boyutunu azaltmak için kullanılır. Ayrıca G-Buffer ve ekran alanı ışık haritasının ekrandan daha düşük çözünürlükte olması avantajını da satın alır.
Sıkı bir GLES 2.0 tabanlı oluşturucu (deneysel olmasına rağmen) uyguladım ve G-Buffer'ı bir RGBA dokusuna kadar kaynatmayı başardım (evet, bir renderbuffer yerine texture2D kullandım). Ekran alanı normal haritasını + alfa kanalındaki derinlik tamponunu (hatırladığım kadarıyla bir logaritma kullanılarak sıkıştırılmış) içeriyordu.
(Denilen pozisyon nitelikleri Dünya burada) bir perspectivic projeksiyonda, yani gerçeği kullanarak aydınlatma geçişi sırasında hesaplanabilir .xy değerine bölünmesi .Z böylece,:
x yfr u s t u m= x yw o r l d/ zw o r l d
Ben pozisyon özniteliğinin xy yaparak yaklaşık :
x yw o r l d= x yfr u s t u m∗ zw o r l d
Not: Projeksiyon matrisinin ayarlarına bağlı olarak daha fazla ayar yapmak zorunda kaldım.
Ayrıca değer belirterek ı atlamak için yetenekli olduğu yani, .z ı yeniden inşa edebileceğine beri normal vektörlerin bileşenini .z gelen .xy normal vektör böylece normalize edildiğinden:
x2+ y2+ z2----------√= 1x2+ y2+ z2= 1z2= 1 - ( x2+ y2)z= 1 - ( x2+ y2)-----------√
Bu tekniği kullanarak, RGBA G-Buffer'ımdaki başka bir kanalı serbest bırakabildim ve ekran alanı spekülatif haritasını (veya isterseniz parlaklığı) saklamak için bunu kullandım.