Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Body zadané pro vrcholy se často neshodují přesně s pixely na obrazovce. Když k tomu dojde, Direct3D použije pravidla rastrování trojúhelníku k rozhodnutí, které pixely se vztahují na daný trojúhelník.
Toto je zjednodušený úvod do pravidel rasterizace. Další podrobnosti najdete v tématu Pravidla rasterizace. Viz také fáze rasterizátoru (RS) .
Pravidla rasterizace trojúhelníku
Direct3D používá konvenci vyplňování zprava doleva a shora dolů pro vyplňování geometrie. Jedná se o stejnou konvenci, která se používá pro obdélníky v GDI a OpenGL. V Direct3D je středem pixelu rozhodující bod. Pokud je střed uvnitř trojúhelníku, pixel je součástí trojúhelníku. Středy pixelů jsou v celočíselné souřadnici.
Tento popis pravidel trojúhelníkové rasterizace, která používá Direct3D, nemusí nutně platit pro veškerý dostupný hardware. Testování může odhalit menší odchylky v implementaci těchto pravidel.
Následující obrázek znázorňuje obdélník, jehož levý horní roh je v (0, 0) a jehož pravý dolní roh je v (5, 5). Tento obdélník vyplní 25 pixelů, stejně jako byste očekávali. Šířka obdélníku je definována jako pravá mínus vlevo. Výška je definována jako spodní minus horní.
V konvenci vyplňování v levém horním rohu horní určuje svislé umístění vodorovných úseků a vlevo určuje vodorovné umístění pixelů v úseku. Okraj nemůže být horní okraj, pokud není vodorovný. Obecně platí, že většina trojúhelníků má pouze levý a pravý okraj. Následující obrázek znázorňuje horní okraj a pravý okraj.
Konvence vyplňování vlevo nahoře určuje akci, kterou Direct3D provede, když trojúhelník prochází středem pixelu. Následující obrázek znázorňuje dva trojúhelníky, jeden v (0, 0), (5, 0) a (5, 5) a druhý na (0, 5), (0, 0) a (5, 5). První trojúhelník v tomto případě získá 15 pixelů (zobrazený černobílý), zatímco druhý získá pouze 10 pixelů (zobrazený šedě), protože sdílený okraj je levý okraj prvního trojúhelníku.
Pokud definujete obdélník s jeho levým horním rohem (0,5, 0,5) a jeho pravém dolním rohem (2,5, 4,5), je středový bod tohoto obdélníku (1,5, 2,5). Když rasterizér Direct3D teseluje tento obdélník, střed každého pixelu je jednoznačně uvnitř každého ze čtyř trojúhelníků a není potřeba konvence vyplňování vlevo nahoře. Na následujícím obrázku je vidět toto. Pixely v obdélníku jsou označeny podle trojúhelníku, ve kterém je Direct3D obsahuje.
Pokud obdélník přesunete na předchozím obrázku tak, že jeho levý horní roh bude v bodě (1.0, 1.0), jeho pravý dolní roh v bodě (3.0, 5.0) a jeho středový bod na (2.0, 3.0), Direct3D použije konvenci vyplňování z levého-horního rohu. Většina pixelů v tomto obdélníku stíhá ohraničení mezi dvěma nebo více trojúhelníky, jak ukazuje následující obrázek.
U obou obdélníků jsou ovlivněny stejné pixely, jak je znázorněno na následujícím obrázku.
Pravidla bodu a čáry
Body se vykreslují stejně jako bodové sprity, které se vykreslují jako čtyřúhelníky zarovnané na obrazovce, a proto dodržují stejná pravidla jako mnohoúhelníkové vykreslování.
Pravidla vykreslování řádků, která nejsou antialiased, jsou přesně stejná jako pravidla pro řádky GDI.
pravidla bodového spritu
Bodové sprites a patch primitiva jsou rasterizované, jako by primitiva byla nejprve tesselovaná do trojúhelníků a výsledné trojúhelníky rasterizované.
související témata