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.
Efekt lze použít k ukládání informací nebo k vykreslení pomocí skupiny stavu. Každá technika určuje určitou sadu vrcholových shaderů, trupových shaderů, doménových shaderů, geometrických shaderů, pixelových shaderů, výpočetních shaderů, stav shaderu, vzorkovníku a stavu textury, stav zobrazení bezobslužného přístupu a další stav kanálu. Jakmile tedy stav uspořádáte do efektu, můžete efekt, který je výsledkem tohoto stavu, zapouzdřit tím, že ho vytvoříte a vykreslíte.
Existuje několik kroků pro přípravu efektu pro vykreslení. První je kompilace, která kontroluje kód podobný HLSL proti syntaxi jazyka HLSL a pravidlům rámce efektu. Efekt z aplikace můžete zkompilovat pomocí volání rozhraní API nebo můžete efekt zkompilovat offline pomocí nástroje kompilátoru efektů fxc.exe. Jakmile se efekt úspěšně zkompiluje, vytvořte ho voláním jiné (ale velmi podobné) sady rozhraní API.
Po vytvoření efektu existují dva zbývající kroky pro jeho použití. Nejprve je nutné inicializovat hodnoty stavu efektu (hodnoty proměnných efektu) pomocí řady metod pro nastavení stavu, pokud nejsou inicializovány v HLSL. U některých proměnných to lze provést jednou při vytvoření efektu; ostatní musí být aktualizovány pokaždé, když vaše aplikace volá smyčku vykreslování. Jakmile nastavíte proměnné efektu, dáte modulu runtime pokyn, aby efekt vykreslil použitím techniky. Tato témata jsou podrobněji popsána níže.
Přirozeně existují aspekty výkonu pro použití účinků. Tyto aspekty jsou z velké části stejné, pokud nepoužíváte efekt. Například minimalizace množství změn stavu a uspořádání proměnných podle frekvence aktualizace. Tyto taktiky slouží k minimalizaci množství dat, která je potřeba odeslat z procesoru do GPU, a proto minimalizují potenciální problémy se synchronizací.
V této části
| Námět | Popis |
|---|---|
|
Kompilovat efekt |
Po vytvoření efektu je dalším krokem kompilace kódu pro kontrolu problémů se syntaxí. |
|
Vytvořit efekt |
Efekt je vytvořen načtením zkompilovaného bajtového kódu efektu do architektury efektů. Na rozdíl od efektů 10 musí být efekt před vytvořením efektu zkompilován. Efekty načtené do paměti lze vytvořit voláním D3DX11CreateEffectFromMemory. |
|
Nastavte stav efektu |
Některé konstanty efektu je potřeba inicializovat pouze. Po inicializaci se stav efektu nastaví na zařízení pro celou smyčku vykreslování. Při každém zavolání smyčky vykreslování je potřeba aktualizovat další proměnné. Základní kód pro nastavení proměnných efektu je uveden níže pro každý typ proměnných. |
|
Použijte techniku |
Když jsou konstanty, textury a stav shaderu deklarované a inicializované, jedinou věcí, kterou zbývá udělat, je nastavit stav efektu v zařízení. |