Skip to content
Hoodad edited this page Jan 4, 2013 · 12 revisions

En snabb och enkel överblick av buffrarna

GBuffers

RenderTarget 1 R8G8B8A8

Diffuse texture skrivs till RT1 på kanalerna R8G8B8, A8 lämnas till förslagvis specular nivån.

RenderTarget 2 R8G8B8A8

Objektets normal skrivs till RT2 på kanalerna R8G8B8, A8 lämnas tom.

  • Ett optimerings förslag är att endast skriva X&Y för att sedan återskapa Z när man ska hämta ut normalen. En detaljerad beskrivning av metoden finns listad här, där finns även en detaljerad beskrivning av prestandan längst ner på sidan.

De olika passen

Pass 1 (aka Base pass)

I det första passet ska alla objekt ritas ut och fylla de olika buffrarna.

  • Diffuse, antal kanaler 3
  • Normal, antal kanaler 3 (Möjligtvis 6 kanaler beroende på SSAO/Normalmaps. Komprimera?)
  • Specular, antal kanaler 1 (Antagligen 3-4)
  • Emissive, antal kanaler 1

Mer: Position/Velocity/Linear depth/...

Pass 2 (aka Shadow pass)

Här kommer alla ljuskällor som kastar skuggor rita om ut sina skuggor till lika shadow maps. OBS! All geometri som ska kasta skuggor kommer behöva ritas en gång till.

http://asawicki.info/news_1283_cascaded_shadow_mapping.html

Pass 3 (aka Light pass)

Ljuset kommer använda de fyllda buffrarna (Diffuse, Normal, Specular, Emissive, ShadowMaps) till att rita resultaten till en egen ljusbuffer.

Pass 4 (Post processing & alt. partiklar)

Beroende på vad för efter effekter vi kommer fyllas denna på artikel på efterhand.

Förslag, i utritningsordning:

  • SSAO, alt. SSDO
  • (Utritning av partiklar kan tänkas behöva göras här om de inte ska påverkas av/påverka ambient occlusion, men påverkas av ljus/linseffekter som de nedan)
  • Lätt Bloom, alt. Glow på emissive (både och?)
  • Depth Of Field + Fog
  • Colour Correction
  • Lätt Chromatic Aberration

Pass 5 (Debug)

Rita ut debug-data. Bounding volumes och ray casts, t.ex.

Pass 6 (GUI)

LibRocket, AntTweakBar.