HTML

gondolataim elsősorban játékfejlesztésről

Elsősorban játékfejlesztés magyarul: az enginem fejlesztése során felmerülő problémák, ötletek, tévutak stb dokumentálása, amely számomra és talán mások számára is hasznos lehet később Másodsorban gondolatok szavakban...

Kapcsolat:
aalberik 'at' gmail 'dot' com

Haletető

Galéria

Címkék

Összes

Linkblog

Naptár

április 2024
Hét Ked Sze Csü Pén Szo Vas
<<  < Archív
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

forward vs deferred shading

2009.03.29. 17:12 :: syam

az elmúlt napokban nagyon felkeltette érdeklődésem a deferred shading, mert eddig

-a spatialgraphban tárolni kellett a fény-modell/pályaelem összetartozást valamint mindezt karban is kellett tartani
-minden egyes fényforrás egy (ill. még egy, ha árnyék is tartozik hozzá) renderelési menetet jelentett grafikai oldalról
-ha történetesen tsbm (és esetleg pom) is kerül rá akkor ugyanolyan jellegű átalakításokat többször is el kellett elvégezni, ami nagy felületek esetén eléggé fill rate pazarló
-vertexadatokat minden egyes esetben ujra el kellett küldeni és azokra lefutott az adott vertex program is
-rendereléskor polygon offsetet (vagy position invariantot) kellett alkalmazni a z-fightokat elkerülendő és additiv blendet

most nézzük milyen előnyekkel és hátrányokkal jár a deferred technika
hátrányok:
- legalább 3 texturára (és mrt-re) van szükség, ami fragmentenként "sok" adat kiirását jelenti szín bufferekbe; ez az egyik legszűkebb kereszmetszet
- az árnyalás elvégzése is elég költséges eljárás (-bár ez függ a fényforrás típusától- mivel minden számítást per-fragment tudunk csak elvégezni) és hasonlóan a forward shadinghez itt is additiv blend szükséges
- a transzparens felületeket nem lehet deferred shadinggel együtt használni, azokra továbbra is a forward rendering szabályai érvényesek vagy depth peeling
- extrém módon kell ügyelni a fill rate-re!!!!!
előnyök:
- nincs szükség többmenetes renderelésre a jelenet árnyalt megjelenítéséhez vagyis minden (vertex és fragment) számítást csak egyszer kell elvégezni (hi poly tesszelláció lehetséges!!)
- nincs szükség nagy felületek felültesszellálására az árnyalás miatt (egy nagy felületen látszódó kocka egy kisméretü pontfénnyel megvilágítva lehuzza fill ratet és ezen csak scissor testtel + depth clamppel lehetett javítani)
- mivel minden fragment minden árnyaláshoz szükséges paramétere (legalább a pozició és a normál) elérhető világ koordinátákban ezért nagyon egyszerű a fényforrásokat kezelni, hiszen funkcionálisan csak egy sikidom renderelését igénylik a képernyőre
- az árnyékok (shadowmap, shadow volume) ugyanugy használhatók, mint a forward renderingben

természetesen számos renderelési lépés áttervezését igényli ez a technika hiszen teljesen szét kell választani az árnyalást és az árnyalást előkészítő lépéseket
(valamint erősen ajánlott egy nagy teljesítményű videokártya)

Szólj hozzá!

Címkék: deferred shading forward shading

A bejegyzés trackback címe:

https://sakura7.blog.hu/api/trackback/id/tr971033324

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása