Már megint FSAA (3dfx vs NVIDIA)
Érdemes visszatérni erre az FSAA (Full-Scene Anti Aliasing) témára, mert olvasóinkat is kellően átmozgatta a téma. Kaptam is pár igen érdekes levelet az eljárással kapcsolatban.
Érdemes visszatérni erre az FSAA (Full-Scene Anti Aliasing) témára, mert olvasóinkat is kellően átmozgatta a téma. Kaptam is pár igen érdekes levelet az eljárással kapcsolatban.
"A cikk utolso bekezdeseben szerepel hogy az NVIDIA 5.13-as driverben: "a szoftveres FSAA szinte megeszi a kartya eroforrsait, negyedre ejtve az fps-t". Ez ugyanigy lesz a 3dfx megoldasaban is, hiszen ha korrektul implementalt FSAA-rol van szo akkor (2x2-es meret eseten) negyszeres fillrate kell. Az egyeduli kulonbseg az lesz hogy remelhetoleg a 3dfx hardverbol atlagolja a 4 keppontot, amit itt a CPU-nak kell megtennie, de 4 darab szam osszeadasa es neggyel valo osztasa (2 shift jobbra) igen gyorsan elvegezheto (akar MMX-es utasitasokat is lehet hasznalni). Ez latszik a teszteredmenyeken is, hiszen csak par szazalek elteres van az FSAA-s eredmenyek es a visszintesen, fuggolegesen 2x akkora FSAA nelkuli eredmenyek kozott. A nagy fillrate igenyek miatt van az hogy csak a sokchipes Voodoo-k fogjak hasznalni az FSAA-t, az egychipes pedig nem.
Egyebkent nem igazan vilagos hogy miert orulnek az FSAA-nak ennyire. Eredetileg ez arra lett kitalalva hogy ahol _muszaj_ a kepmeretnek kicsinek lennie ne legyenek lepcsos vonalak, stb... . Ellenben a mai, jo monitoroknak nem problema a megfelelo kepfrissites nagyobb felbontasokon sem, egyszeruen a 800x600 FSAA helyett lehet 1600x1200 hasznalni, hisz ha birja a kartya az egyiket, akkor a masikat is kell hogy tudja. A kepminoseg majdnem ugyanaz lesz es meg speci driver se kell hozza."
Az első dolog amit hozzáfűznék, hogy a Detonator által használt supersampling gyakorlatilag egy az alkalmazott felbontásnál kétszer (területileg négyszer) akkora felbontáson működik. Az, hogy ez négyszeres fillrate-et igényel csak elméleti dolog, ugyanis egy négyszer nagyobb területű kép kiszámolása (dupla akkora felbontás) a gyakorlatban nem negyedeli egy adott játékban elérhető fps-t. Egészen pontosan ez kártyánként változik, például egy G400Max kevésbé "háklis" a nagyobb felbontásokra. A képpontok száma nem egyenesen arányos az fps-sel.
A második dolog ami nagyon fontos, hogy a 3dfx és az NVIDIA által alkalmazott FSAA nem csak abban tér el egymástól, hogy a 3dfx hardveresen, az NVIDIA pedig szoftveresen "szupportálta" az eljárást. Mert míg az NVIDIA által prezentált FSAA a fentiekben leírt módon működik, addig a 3dfx erre a célra a T-Buffer-t használja. A T-Buffer-es FSAA úgy működik, hogy ugyanarról a képkockáról több különböző képet készítenek és ezeket mossák össze, ráadásul a képeket a kártya párhuzamosan rendereli. Mivel a sample képek csak kismértékben eltérőek, illetve azonos geometrián alapulnak, ezért nem osztódik a kártya "leadott" teljesítménye az FSAA-hoz használt sample képek számának arányában. Egy kérdés viszont megválaszolatlan marad: hány képből generál egyet a T-Buffer (állítólag több, mint 4)?
Mivel a fórumunk még pár napig várat magára, ezért összeütöttem egy lev.listát a téma, vagy témák boncolgatására.
"A cikk utolso bekezdeseben szerepel hogy az NVIDIA 5.13-as driverben: "a szoftveres FSAA szinte megeszi a kartya eroforrsait, negyedre ejtve az fps-t". Ez ugyanigy lesz a 3dfx megoldasaban is, hiszen ha korrektul implementalt FSAA-rol van szo akkor (2x2-es meret eseten) negyszeres fillrate kell. Az egyeduli kulonbseg az lesz hogy remelhetoleg a 3dfx hardverbol atlagolja a 4 keppontot, amit itt a CPU-nak kell megtennie, de 4 darab szam osszeadasa es neggyel valo osztasa (2 shift jobbra) igen gyorsan elvegezheto (akar MMX-es utasitasokat is lehet hasznalni). Ez latszik a teszteredmenyeken is, hiszen csak par szazalek elteres van az FSAA-s eredmenyek es a visszintesen, fuggolegesen 2x akkora FSAA nelkuli eredmenyek kozott. A nagy fillrate igenyek miatt van az hogy csak a sokchipes Voodoo-k fogjak hasznalni az FSAA-t, az egychipes pedig nem.
Egyebkent nem igazan vilagos hogy miert orulnek az FSAA-nak ennyire. Eredetileg ez arra lett kitalalva hogy ahol _muszaj_ a kepmeretnek kicsinek lennie ne legyenek lepcsos vonalak, stb... . Ellenben a mai, jo monitoroknak nem problema a megfelelo kepfrissites nagyobb felbontasokon sem, egyszeruen a 800x600 FSAA helyett lehet 1600x1200 hasznalni, hisz ha birja a kartya az egyiket, akkor a masikat is kell hogy tudja. A kepminoseg majdnem ugyanaz lesz es meg speci driver se kell hozza."
Az első dolog amit hozzáfűznék, hogy a Detonator által használt supersampling gyakorlatilag egy az alkalmazott felbontásnál kétszer (területileg négyszer) akkora felbontáson működik. Az, hogy ez négyszeres fillrate-et igényel csak elméleti dolog, ugyanis egy négyszer nagyobb területű kép kiszámolása (dupla akkora felbontás) a gyakorlatban nem negyedeli egy adott játékban elérhető fps-t. Egészen pontosan ez kártyánként változik, például egy G400Max kevésbé "háklis" a nagyobb felbontásokra. A képpontok száma nem egyenesen arányos az fps-sel.
A második dolog ami nagyon fontos, hogy a 3dfx és az NVIDIA által alkalmazott FSAA nem csak abban tér el egymástól, hogy a 3dfx hardveresen, az NVIDIA pedig szoftveresen "szupportálta" az eljárást. Mert míg az NVIDIA által prezentált FSAA a fentiekben leírt módon működik, addig a 3dfx erre a célra a T-Buffer-t használja. A T-Buffer-es FSAA úgy működik, hogy ugyanarról a képkockáról több különböző képet készítenek és ezeket mossák össze, ráadásul a képeket a kártya párhuzamosan rendereli. Mivel a sample képek csak kismértékben eltérőek, illetve azonos geometrián alapulnak, ezért nem osztódik a kártya "leadott" teljesítménye az FSAA-hoz használt sample képek számának arányában. Egy kérdés viszont megválaszolatlan marad: hány képből generál egyet a T-Buffer (állítólag több, mint 4)?
Mivel a fórumunk még pár napig várat magára, ezért összeütöttem egy lev.listát a téma, vagy témák boncolgatására.