Direct3D: Porovnání verzí

Smazaný obsah Přidaný obsah
m Upřesnění
m Typo
Řádek 47:
Pro některá data vrcholů je interpolace závislá na stávajícím interpolačním/stínovacím režimu (shading mode). Tyto režimy rozlišujeme dva:
 
''Flat'' – v tomto režimu je barva prvního vrchluvrcholu trojúhelníka použita pro celou jeho plochu, interpolována je pouze mlha.
 
''Gouraud'' – lineární interpolace se provádí mezi všemi třemi vrcholy, poté je aplikována mlha.
Řádek 61:
U plochého (flat) stínování renderuje Direct3D pipeline polygon užitím barvy prvního vrcholu pro celý polygon. 3D objekty renderované při zapnutém plochém stínování mají mezi polygony, které nejsou koplanární, viditelné hrany. Výhodou této metody stínování je jednoduchost a rychlost.
 
Pokud Direct3D renderuje polygon užitím Gouraudova stínování, počítá hodnotu barvy pro každý vrchol přostřednictvímprostřednictvím normálového vektoru vrcholu a parametrů světel. Potom jsou hodnoty barev lineárně interpolovány přes celou plochu polygonu. Výhodou Gouraudova stínování je daleko realističtější výsledek kreslení stínů. Metoda má však samozřejmě i méně příznivé důledkydůsledky ve formě vyšší režie při renderování. Renderování ostrých hran je možné i pomocí Gouraudova stínování a to tak, že splývající vrcholy sousedících polygonů tvořících ostrou hranu mají jiné normálové vektory.
 
== Mlha ==
Řádek 87:
Parametr ''density'' určuje hustotu mlhy a parametr ''d'' je v této funkci opět nezávislá proměnná reprezentující vzdálenost od pozorovatele.
 
Mlha na bázi pixelů je počítána zvlášť pro každý pixel ovadačemovladačem zařízení. Tím se liší od mlhy na bázi vrcholů, která je počítána grafickou pipeline během tranformacítransformací a výpočtů světel. Mlha na bázi pixelů je také někdy nazývaná „tabulková“, protože některé ovladače používají předem vypočítanou tabulku hodnot k určení faktoru mlhy při výpočtech míchání barev užitím hloubky každého pixelu.
 
Naproti tomu pokud program používá mlhu na bázi vrcholů, provede výpočet mlhy pro každý vrchol polygonu a poté interpoluje výsledné barevné hodnoty přes celý povrch polygonu během [[rasterizace]]. Efekty mlhy na bázi vrcholů jsou počítány Direct3D [[Engine|enginem]] pro transformace a světla. Pokud program nepoužívá Direct3D pro transformace a světla, musí sám provádět výpočty mlhy. V tomto případě je třeba vypočtený faktor mlhy předat pomocí alfa-složky barvy odrazu (specular color) pro každý vrchol. Výhodou je, že lze použít jakoukoli funkční závislost hustoty na vzdálenosti, záleží jen na programu, jakou hodnotu do alfa-složky barvy odrazu zapíše. Direct3D použije zapsané hodnoty pro interpolaci přes celý povrch každého polygonu.
Řádek 95:
[[Soubor:D3D_Alpha-Blending.jpg|thumb|Alpha-Blending]]
 
Alpha-blending neboli míchání barev s [[Alfa kanál|alfa-kanálem]] je technika hojně používaná ke zobrazování grafických dat, která obsahují transparentní nebo semi-transparentní pixely. K barevným kanálům [[RGB]] (červená, zelená, modrá) každý pixel alfa-bitmapy ještě navíc obsahuje položku průhlednosti známou jako alfa-kanál. Alfa kánálkanál má typicky tolik bitů jako jednotlivé kanály barev, tedy například u 32-bitových bitmap či textur se užívá formát R8G8B8A8 (pořadí jednotlivých komponent bývá někdy zaměněno). Prostřednictvím 8-bitového alfa-kanálu lze reprezentovat 256 různých úrovní průhlednosti – od 0 (pixel je plně transparentní) do 255 (pixel je zcela neprůhledný).
 
Alpha-blending lze využít více způsoby. Lze použít semi-trasparentní textury s alfa-kanálem, definovat alfa-složku zvlášť pro každý vrchol polygonu, použít alfa-kanál výsledného [[Framebuffer|frame-bufferu]] (tedy alfa-kanál objektů, které již byly vyrenderványvyrenderovány), či tyto techniky i kombinovat, čili například renderovat polygon potažený semi-transparentní texturou, který má navíc pro každý vrchol definovanou jinou alfa-složku. V takovémto případě se pro každý pixel zkombinuje jeho alfa-kanál obsažený v datech textury s výsledkem výpočtu lineární interpolace alfa-složek mezi jednotlivými vrcholy polygonu. Alpha-blending je po inicializaci Direct3D vypnut, proto musí být Direct3D zařízením před použitím explicitně zapnut.
 
== Související články ==