Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názor k článku
Grafické algoritmy implementované v 3D akcelerátoru Voodoo 1

ondra.novacisko.cz aura:39
7. 1. 2010 12:50

Řazení scény má smysl i s pamětí hloubky

celé vlákno

Zdálo by se, že paměť hloubky řeší problém překryvů bez nutnosti řadit scénu. Není to tak úplně pravda.

Velkým zdržovákem všech grafických karet je overdraw, tedy kresba velkých ploch. Dříve uváděný výkon v trianglech za sekundu je tedy zavádějící, zajímavější je číslo udávající počet pixlů za sekundu. Přitom ani to není správně, protože nakreslit pixel na obrazovce může být dost náročné, zejména pokud je to spojeno s komplikovaným výpočtem v pixel shaderu.

Voodoočka ovšem také dost znatelně trpěly na overdraw a pár velkých otexturovaných ploch je umělo vytížit dokonale, než tisíce malých trojúhelníků.

Výhodou Z-testu je také to, že je v celé pipe-line dost vysoko a pokud pixel neuspěje v Z-testu, další operace se vynechají, ušetří se výkon.

Proto má stále smysl řadit scénu odpředu dozadu. Kreslit nejprve objekty nejblíž, a pak objekty nejdal.

Dalším důvodem řazení je alpha-blending. Tady musíme scénu řadit odzadu dopředu. Lze to i dělat obráceně, ale musíme mít k dispozici alpha-buffer.

Proti tomu jde ale řazení scény s ohledem na změnu stavu. Právě tohle je největší problém všech těch grafických engine, které mají různých výkon na stejným HW. Většina dnešních karet dosahují největšího výkonu při proudovém zpracování dat. Pokud ale scénu musím řadit, zvětšuje se množství fragmentů, které nelze zpracovávat proudově, musí se proudy přerušovat. Ušetřený výkon na Z-testu tak můžeme ztratit na přerušování proudu. Univerzální řešení neexistuje.