Sdílet prostřednictvím


Vyrovnávací paměti vrcholů (Direct3D 9)

Vyrovnávací paměti vrcholů reprezentované rozhraním IDirect3DVertexBuffer9 jsou vyrovnávací paměti obsahující data vrcholů. Vyrovnávací paměti vrcholů můžou obsahovat libovolný typ vrcholu – transformovaný nebo netransformovaný, litý nebo nesvícený – který lze vykreslit pomocí metod vykreslování v rozhraní IDirect3DDevice9 rozhraní. Vrcholy ve vyrovnávací paměti vrcholů můžete zpracovat a provádět operace, jako jsou transformace, osvětlení nebo generování příznaků výřezu. Transformace se provádí vždy.

Díky flexibilitě vyrovnávacích pamětí vrcholů jsou ideální pracovní body pro opětovné použití transformované geometrie. Můžete vytvořit jednu vyrovnávací paměť vrcholů, transformovat, light a vystřihování vrcholů v ní a vykreslit model ve scéně tolikrát, kolikrát je potřeba, aniž byste ho znovu transformovali, a to i při změnách stavu vykreslení prokládání. To je užitečné při vykreslování modelů, které používají více textur: geometrie se transformuje pouze jednou a potom je možné podle potřeby vykreslit části, prokládání s požadovanými změnami textury. Změny stavu vykreslení provedené po zpracování vrcholů se projeví při příštím zpracování vrcholů.

Popis

Vyrovnávací paměť vrcholů je popsána z hlediska jeho schopností: pokud může existovat pouze v systémové paměti, pokud se používá pouze pro operace zápisu a typ a počet vrcholů, které může obsahovat. Všechny tyto vlastnosti se uchovávají v D3DVERTEXBUFFER_DESC struktuře.

Člen Format je nastaven na D3DFMT_VERTEXDATA indikuje, že se jedná o vyrovnávací paměť vrcholů. Typ identifikuje typ prostředku vyrovnávací paměti vrcholu. Člen struktury využití obsahuje obecné příznaky schopností. Příznak D3DUSAGE_SOFTWAREPROCESSING indikuje, že se má použít vyrovnávací paměť vrcholů se softwarovým zpracováním vrcholů. Přítomnost příznaku D3DUSAGE_WRITEONLY v části Použití indikuje, že paměť vyrovnávací paměti vrcholů se používá pouze pro operace zápisu. Tím se ovladač uvolní, aby data vrcholu umístila do nejlepšího umístění paměti, aby bylo možné rychle zpracovávat a vykreslovat. Pokud se příznak D3DUSAGE_WRITEONLY nepoužívá, ovladač je méně pravděpodobné, že data umístí do umístění, které je neefektivní pro operace čtení. To obětuje určitou rychlost zpracování a vykreslování. Pokud tento příznak není zadaný, předpokládá se, že aplikace provádějí operace čtení a zápisu s daty v rámci vyrovnávací paměti vrcholu.

Fond určuje třídu paměti, která je přidělena pro vyrovnávací paměť vrcholů. Příznak D3DPOOL_SYSTEMMEM označuje, že systém vytvořil vyrovnávací paměť vrcholů v systémové paměti.

Člen Velikost ukládá velikost dat vyrovnávací paměti vrcholů v bajtech. Člen FVF obsahuje kombinaci D3DFVF, které identifikují typ vrcholů, které vyrovnávací paměť obsahuje.

Fond paměti a využití

Vyrovnávací paměti vrcholů můžete vytvořit pomocí metody IDirect3DDevice9::CreateVertexBuffer, která přebírá parametry fondu (třídy paměti) a použití. IDirect3DDevice9::CreateVertexBuffer lze také vytvořit pomocí zadaného kódu FVF pro použití ve zpracování vrcholů pevné funkce nebo jako výstup vrcholů procesu. Podrobnosti najdete v vyrovnávací paměti vrcholů FVF (Direct3D 9).

Příznak D3DUSAGE_SOFTWAREPROCESSING lze nastavit, pokud je pro toto zařízení povolené smíšené zpracování vrcholů (D3DCREATE_MIXED_VERTEXPROCESSING / D3DCREATE_SOFTWARE_VERTEXPROCESSING). D3DUSAGE_SOFTWAREPROCESSING musí být nastaveny tak, aby se vyrovnávací paměti používaly se softwarovým zpracováním vrcholů ve smíšeném režimu, ale nemělo by být nastaveno pro nejlepší možný výkon při použití zpracování vrcholů hardwaru ve smíšeném režimu. (D3DCREATE_HARDWARE_VERTEXPROCESSING). Nastavení D3DUSAGE_SOFTWAREPROCESSING je však jedinou možností, pokud se má použít jedna vyrovnávací paměť s hardwarovým i softwarovým vrcholem zpracování. D3DUSAGE_SOFTWAREPROCESSING je povolená pro smíšená i softwarová zařízení.

Vyrovnávací paměti vrcholů a indexů je možné vynutit zadáním D3DPOOL_SYSTEMMEM, i když se zpracování vrcholů provádí v hardwaru. Toto je způsob, jak se vyhnout příliš velkému množství paměti uzamčené stránkou, když ovladač umístí tyto vyrovnávací paměti do paměti protokolu AGP.

Tato část představuje koncepty nezbytné k pochopení a používání vyrovnávacích pamětí vrcholů v aplikaci Direct3D. Informace jsou rozdělené do následujících částí.

prostředků Direct3D

vykreslování z vyrovnávací paměti vrcholu a indexu (Direct3D 9)

vyrovnávací paměti indexu (Direct3D 9)