Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Instruktionsmodifierare påverkar resultatet av instruktionen innan den skrivs in i målregistret.
Det här avsnittet innehåller referensinformation för instruktionsmodifierare som implementeras av pixelskuggningsversion 2_0 och senare.
| Namn | Syntax | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
|---|---|---|---|---|---|---|
| Centroid | _centroid | x | x | x | x | x |
| Partial_Precision | _Pp | x | x | x | x | x |
| Mättnad | _suttit | x | x | x | x | x |
Centroid
Centroidmodifieraren är en valfri modifierare som klämmer fast attributinterpolation inom primitivens intervall när ett flersampelpunktscentrum inte täcks av primitiven. Detta kan ses i Centroid Sampling.
Du kan använda centroidmodifieraren för en sammansättningsinstruktion som du ser här:
dcl_texcoord0_centroid v0
Du kan också använda centroidmodifieraren på en semantisk som du ser här:
float4 TexturePointCentroidPS( float4 TexCoord : TEXCOORD0_centroid ) : COLOR0
{
return tex2D( PointSampler, TexCoord );
}
Dessutom kommer alla indatafärgregister (v#) som deklarerats med en färgsemantik automatiskt att ha centroid tillämpad. Toningar som beräknas från attribut som samplas centroid är inte garanterade att vara korrekta.
Partiell precision
Den partiella precisionsinstruktionsmodifieraren (_pp) anger områden där partiell precision är acceptabel, förutsatt att den underliggande implementeringen stöder den. Implementeringar är alltid fria att ignorera modifieraren och utföra de berörda åtgärderna med full precision.
Den _pp modifieraren kan ske i två kontexter:
- I en strukturkoordinatdeklaration för att möjliggöra överföring av texturkoordinater till pixelskuggaren i partiell precisionsform. Detta gör det till exempel möjligt att använda strukturkoordinater för att vidarebefordra färgdata till pixelskuggningen, vilket kan vara snabbare med partiell precision än med full precision i vissa implementeringar. I avsaknad av den här modifieraren måste strukturkoordinaterna skickas med full precision.
- På alla instruktioner inklusive instruktioner för texturbelastning. Detta indikerar att implementeringen tillåts köra instruktionen med partiell precision och lagra ett partiellt precisionsresultat. I avsaknad av en explicit modifierare måste instruktionen utföras med full precision (oavsett indataprecision).
Exempel:
dcl_texcoord0_pp t1
cmp_pp r0, r1, r2, r3
Mätta
Den mättade instruktionsmodifieraren (_sat) mättar (eller klämmer fast) instruktionsresultatet till intervallet [0, 1] innan du skriver till målregistret.
Den _sat instruktionsmodifieraren kan användas med alla instruktioner förutom frc - ps, sincos - ps, och eventuella tex* instruktioner.
För ps_2_0, ps_2_x och ps_2_sw kan _sat instruktionsmodifieraren inte användas med instruktioner som skrivs till utdataregister (Färgregister för utdata eller utdatadjupsregister). Den här begränsningen gäller inte för ps_3_0 och senare.
Exempel:
dp3_sat r0, v0, c1
Relaterade ämnen