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.
Funkce přebírá jeden nebo více vstupních argumentů; Pomocí následující syntaxe deklarujte jednotlivé argumenty.
| [InputModifier] Název typu [: Sémantic] [InterpolationModifier] [= Initializers] |
[Modifikátor] Název typu [: Sémantický] [: Modifikátor interpolace] [= Inicializátory]]
Pokud existuje více argumentů funkce, jsou oddělené čárkami.
Parametry
| Položka | Popis | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
InputModifier |
Volitelný termín, který identifikuje argument jako vstup, výstup nebo obojí.
Parametry se vždy předávají podle hodnoty. indikuje, že hodnota parametru by měla být zkopírována z volající aplikace před zahájením funkce. out označuje, že poslední hodnota parametru by měla být zkopírována a vrácena volající aplikaci při vrácení funkce. inout je zkratka pro určení obou. Jednotná hodnota pochází z konstantního registru; každé vyvolání shaderu vrcholů nebo pixelového shaderu uvidí stejnou počáteční hodnotu pro jednotnou proměnnou. Globální proměnné se považují za deklarované jednotně. Pro funkce jiné než nejvyšší úrovně je uniforma synonymem v. Pokud není zadáno žádné použití parametru, předpokládá se, že použití parametru je v. |
||||||||||
typ |
Typ argumentu; může být libovolný platný typ HLSL typ. |
||||||||||
názvu |
Řetězec ASCII, který jednoznačně identifikuje název funkce shaderu. |
||||||||||
sémantické |
Volitelný řetězec, který identifikuje zamýšlené použití dat (viz sémantika (DirectX HLSL)). |
||||||||||
InterpolationModifier |
Volitelný modifikátor interpolace , který umožňuje shaderu určit metodu interpolace. Modifikátor interpolace argumentu funkce se vztahuje pouze na argument použitý jako vstup pro funkci shaderu pixelů. |
||||||||||
inicializátory |
Volitelné hodnoty pro inicializaci; k inicializaci datových typů s více komponentou se vyžaduje více hodnot. |
Poznámky
Argumenty funkce jsou uvedeny v seznamu argumentů oddělených čárkami v deklaraci funkce. Stejně jako ve funkcích jazyka C musí mít každý argument deklarovaný název parametru a typ; Argument funkce HLSL může volitelně obsahovat sémantickou, počáteční hodnotu a vstup shaderu pixelů může obsahovat interpolační typ.
Typ argumentu funkce může být struktura, která může obsahovat modifikátor interpolace jednotlivých členů. Pokud má argument funkce také modifikátor interpolace, modifikátor argumentu funkce přepíše modifikátory interpolace deklarované v rámci typu.
Příklady
Tento příklad (z ukázky BasicHLSL10) znázorňuje jednotné a ne uniformní vstupy do funkce shaderu vrcholů.
VS_OUTPUT RenderSceneVS(
float4 vPos : POSITION,
float3 vNormal : NORMAL,
float2 vTexCoord0 : TEXCOORD,
uniform int nNumLights,
uniform bool bTexture,
uniform bool bAnimate )
{
...
}
Tento příklad (z ContentStreaming Sample) používá vstupní strukturu k předání argumentů funkci shaderu pixelů.
VSBasicIn input
struct VSBasicIn
{
float4 Pos : POSITION;
float3 Norm : NORMAL;
float2 Tex : TEXCOORD0;
};
PSBasicIn VSBasic(VSBasicIn input)
{
...
}
Související témata
-
funkcí (DirectX HLSL)