Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
En effekt kan användas för att lagra information eller för att återge med hjälp av en grupp tillstånd. Varje teknik anger en uppsättning hörnskuggor, skrovskuggare, domänskuggor, geometriska skuggningar, pixelskuggare, beräkningsskuggor, skuggningstillstånd, exempel- och strukturtillstånd, osorterat åtkomstvytillstånd och annat pipelinetillstånd. Så när du har organiserat tillståndet i en effekt kan du kapsla in återgivningseffekten som är resultatet av det tillståndet genom att skapa och återge effekten.
Det finns några steg för att förbereda en effekt för rendering. Den första är kompilering, som kontrollerar HLSL-liknande kod mot HLSL-språksyntaxen och reglerna för effektramverket. Du kan kompilera en effekt från ditt program med HJÄLP av API-anrop eller kompilera en effekt offline med hjälp av effektkompileringsverktyget fxc.exe. När effekten har kompilerats skapar du den genom att anropa en annan (men mycket liknande) uppsättning API:er.
När effekten har skapats finns det två återstående steg för att använda den. Först måste du initiera effekttillståndsvärdena (värdena för effektvariablerna) med hjälp av ett antal metoder för att ange tillstånd om de inte initieras i HLSL. För vissa variabler kan detta göras en gång när en effekt skapas. andra måste uppdateras varje gång programmet anropar återgivningsloopen. När effektvariablerna har angetts instruerar du körningen att återge effekten genom att använda en teknik. De här ämnena beskrivs mer detaljerat nedan.
Naturligtvis finns det prestandaöverväganden för användning av effekter. Dessa överväganden är i stort sett desamma om du inte använder en effekt. Saker som att minimera mängden tillståndsändringar och organisera variablerna efter uppdateringsfrekvens. Den här taktiken används för att minimera mängden data som måste skickas från processorn till GPU:n och därmed minimera potentiella synkroniseringsproblem.
I det här avsnittet
| Ämne | Beskrivning |
|---|---|
|
kompilera en effekt |
När en effekt har skapats är nästa steg att kompilera koden för att söka efter syntaxproblem. |
|
Skapa en Effekt |
En effekt skapas genom att den kompilerade effektens bytekod läses in i effektramverket. Till skillnad från Effekter 10 måste effekten kompileras innan effekten skapas. Effekter som läses in i minnet kan skapas genom att anropa D3DX11CreateEffectFromMemory. |
|
Ange effekttillstånd |
Vissa effektkonstanter behöver bara initieras. När initieringen har gjorts anges effektens tillstånd för enheten för hela renderingsloopen. Andra variabler måste uppdateras varje gång återgivningsloopen anropas. Den grundläggande koden för att ange effektvariabler visas nedan för var och en av typerna av variabler. |
|
Tillämpa en teknik |
Med konstanterna, texturerna och skuggningstillståndet deklarerade och initierade är det enda som återstår att göra att ange effekttillståndet på enheten. |