Systeminterne Funktionen

In der folgenden Tabelle sind die systeminternen Funktionen aufgeführt, die in HLSL verfügbar sind. Jede Funktion enthält eine kurze Beschreibung und einen Link zu einer Referenzseite, die weitere Details zum Eingabeargument und Rückgabetyp enthält.

Name Beschreibung Minimales Shadermodell
abort Beendet den aktuellen Draw- oder Dispatch-Aufruf, der ausgeführt wird. 4
abs Absoluter Wert (pro Komponente).
acos Gibt den Arkuskosinus jeder Komponente von x zurück.
all Testen Sie, ob alle Komponenten von x ungleich null sind.
AllMemoryBarrier Blockiert die Ausführung aller Threads in einer Gruppe, bis alle Speicherzugriffe abgeschlossen sind. 5
AllMemoryBarrierWithGroupSync Blockiert die Ausführung aller Threads in einer Gruppe, bis alle Speicherzugriffe abgeschlossen wurden und alle Threads in der Gruppe diesen Aufruf erreicht haben. 5
beliebig Testen Sie, ob eine Komponente von x ungleich null ist.
asdouble Interpretiert einen Umwandlungswert erneut in einen Double-Wert. 5
asfloat Konvertieren Sie den Eingabetyp in einen Gleitkommawert. 4
asin Gibt den Arkussinus jeder Komponente von x zurück.
asint Konvertieren Sie den Eingabetyp in eine ganze Zahl. 4
asuint Interpretiert das Bitmuster eines 64-Bit-Typs auf einen Uint neu. 5
asuint Konvertieren Sie den Eingabetyp in eine ganze Zahl ohne Vorzeichen. 4
atan Gibt den Arkustangens von x zurück.
atan2 Gibt den Arkustangens von zwei Werten (x,y) zurück.
ceil Gibt die kleinste ganze Zahl zurück, die größer oder gleich x ist.
CheckAccessFullyMapped Bestimmt, ob alle Werte aus einem Sample- Load-Vorgang auf zugeordnete Kacheln in einer gekachelten Ressource zugegriffen haben. 5
clamp Bindet x an den Bereich [min, max].
clip Verwirft das aktuelle Pixel, wenn eine beliebige Komponente von x kleiner als 0 ist.
cos Gibt den Kosinus von x zurück.
cosh Gibt den hyperbolischen Kosinus von x zurück.
countbits Zählt die Anzahl der Bits (pro Komponente) in der Eingabe-Ganzzahl. 5
cross Gibt das Kreuzprodukt von zwei 3D-Vektoren zurück.
D3DCOLORtoUBYTE4 Swizzlet und skaliert Komponenten des 4D-Vektors x, um den Mangel an UBYTE4-Unterstützung in mancher Hardware zu kompensieren.
ddx Gibt die teilweise Ableitung von x in Bezug auf die X-Koordinate des Bildschirmraums zurück.
ddx_coarse Berechnet eine partielle Ableitung mit geringer Genauigkeit in Bezug auf die X-Koordinate des Bildschirmraums. 5
ddx_fine Berechnet ein teilweises Ableitungsergebnis mit hoher Genauigkeit in Bezug auf die X-Koordinate des Bildschirmraums. 5
ddy Gibt die teilweise Ableitung von x in Bezug auf die Y-Koordinate des Bildschirmraums zurück.
ddy_coarse Berechnet eine partielle Ableitung mit geringer Genauigkeit in Bezug auf die Y-Koordinate des Bildschirmraums. 5
ddy_fine Berechnet eine teilweise Ableitung mit hoher Genauigkeit in Bezug auf die Y-Koordinate des Bildschirmraums. 5
degrees Wandelt x von Bogenmaß in Grad um.
determinant Gibt die Determinante der Quadratmatrix m zurück.
DeviceMemoryBarrier Blockiert die Ausführung aller Threads in einer Gruppe, bis alle Speicherzugriffe abgeschlossen sind. 5
DeviceMemoryBarrierWithGroupSync Blockiert die Ausführung aller Threads in einer Gruppe, bis alle Gerätespeicherzugriffe abgeschlossen wurden und alle Threads in der Gruppe diesen Aufruf erreicht haben. 5
distance Gibt den Abstand zwischen zwei Punkten zurück.
dot Gibt das Skalarprodukt zweier Vektoren zurück. 1
dst Berechnet einen Entfernungsvektor. 5
errorf Sendet eine Fehlermeldung an die Informationswarteschlange. 4
EvaluateAttributeCentroid Wertet am Pixelschwerpunkt aus. 5
EvaluateAttributeAtSample Wertet am indizierten Beispielspeicherort aus. 5
EvaluateAttributeSnapped Wertet am Pixelschwerpunkt mit einem Offset aus. 5
exp Gibt den Basis-e-Exponenten zurück.
exp2 Basis-2-Exponente (pro Komponente).
f16tof32 Wandelt den in der unteren Hälfte des Uint gespeicherten Float16-Werts in einen Gleitkommawert um. 5
f32tof16 Konvertiert eine Eingabe in einen Float16-Typ. 5
faceforward Gibt -n * Vorzeichen(Punkt(i, ng)) zurück.
firstbithigh Ruft die Position des ersten festgelegten Bits ab dem Bit mit der höchsten Priorität ab und arbeitet sich nach unten vor, pro Komponente. 5
firstbitlow Gibt die Position des ersten festgelegten Bits ab dem Bit mit der niedrigsten Priorität zurück und arbeitet sich nach oben vor, pro Komponente. 5
floor Gibt die größte ganze Zahl zurück, die kleiner oder gleich x ist.
fma Gibt die doppelpräzisierte, verschmolzene Multiplikations-Addition eines a * b + c zurück. 5
fmod Gibt den Gleitkommarest von x/y zurück.
frac Gibt den Bruchteil von x zurück.
frexp Gibt die Mantissa und den Exponenten von x zurück.
fwidth Gibt abs(ddx(x)) + abs(ddy(x)) zurück
GetRenderTargetSampleCount Gibt die Anzahl der Renderzielbeispiele zurück. 4
GetRenderTargetSamplePosition Gibt eine Beispielposition (x,y) für einen bestimmten Beispielindex zurück. 4
GroupMemoryBarrier Blockiert die Ausführung aller Threads in einer Gruppe, bis alle freigegebenen Gruppenzugriffe abgeschlossen wurden. 5
GroupMemoryBarrierWithGroupSync Blockiert die Ausführung aller Threads in einer Gruppe, bis alle freigegebenen Gruppenzugriffe abgeschlossen wurden und alle Threads in der Gruppe diesen Aufruf erreicht haben. 5
InterlockedAdd Führt eine garantierte atomische Addition eines Werts zur Dest-Ressourcenvariable aus. 5
InterlockedAnd Führt ein garantiertes atomisches and aus. 5
InterlockedCompareExchange Vergleicht atomar die Eingabe mit dem Vergleichswert und tauscht das Ergebnis aus. 5
InterlockedCompareStore Vergleicht atomar die Eingabe mit dem Vergleichswert. 5
InterlockedExchange Weist dem Dest einen Wert zu und gibt den ursprünglichen Wert zurück. 5
InterlockedMax Führt ein garantiertes atomisches max aus. 5
InterlockedMin Führt ein garantiertes atomisches min aus. 5
InterlockedOr Führt ein garantiertes atomisches or aus. 5
InterlockedXor Führt ein garantiertes atomisches xor aus. 5
isfinite Gibt „true“ zurück, wenn x endlich ist, andernfalls „false“.
isinf Gibt „true“ zurück, wenn x +INF oder -INF ist, andernfalls „false“.
isnan Gibt „true“ zurück, wenn x NAN oder QNAN ist, andernfalls „false“.
ldexp Gibt x * 2exp zurück
length Gibt die Länge des Vektors v zurück.
lerp Gibt x + s(y - x) zurück.
lit Gibt einen Beleuchtungsvektor zurück (Umgebung, diffus, Glanz, 1)
log Gibt den Logarithmus mit der Basis e von x zurück.
log10 Gibt den Logarithmus mit der Basis 10 von x zurück.
log2 Gibt den Logarithmus mit der Basis 2 von x zurück.
mad Führt einen arithmetischen Multiplikations-/Additions-Vorgang für drei Werte aus. 5
max Wählt den größeren Wert von x und y aus.
min Wählt den kleineren Wert von x und y aus.
modf Teilt den Wert x in Bruch- und Ganzzahlteile auf.
msad4 Vergleicht einen 4-Byte-Verweiswert und einen 8-Byte-Quellwert und sammelt einen Vektor von 4 Summen. 5
mul Führt die Matrixmultiplizierung mit x und y aus. 1
noise Generiert einen Zufallswert mithilfe des Perlin-Rauschalgorithmus.
normalize Gibt einen normalisierten Vektor zurück.
pow Gibt xyzurück.
printf Sendet eine benutzerdefinierte Shadernachricht an die Informationswarteschlange. 4
Process2DQuadTessFactorsAvg Generiert die korrigierten Tessellationsfaktoren für einen Quad-Patch. 5
Process2DQuadTessFactorsMax Generiert die korrigierten Tessellationsfaktoren für einen Quad-Patch. 5
Process2DQuadTessFactorsMin Generiert die korrigierten Tessellationsfaktoren für einen Quad-Patch. 5
ProcessIsolineTessFactors Generiert die abgerundeten Tessellationsfaktoren für eine Isoline. 5
ProcessQuadTessFactorsAvg Generiert die korrigierten Tessellationsfaktoren für einen Quad-Patch. 5
ProcessQuadTessFactorsMax Generiert die korrigierten Tessellationsfaktoren für einen Quad-Patch. 5
ProcessQuadTessFactorsMin Generiert die korrigierten Tessellationsfaktoren für einen Quad-Patch. 5
ProcessTriTessFactorsAvg Generiert die korrigierten Tessellationsfaktoren für einen Tri-Patch. 5
ProcessTriTessFactorsMax Generiert die korrigierten Tessellationsfaktoren für einen Tri-Patch. 5
ProcessTriTessFactorsMin Generiert die korrigierten Tessellationsfaktoren für einen Tri-Patch. 5
radians Wandelt x von Grad in Bogenmaß um. 1
rcp Berechnet einen schnellen, ungefähren Kehrwert pro Komponente. 5
reflect Gibt einen Spiegelungsvektor zurück. 1
refract Gibt den Brechungsvektor zurück.
reversebits Kehrt die Reihenfolge der Bits pro Komponente um. 5
round Rundet x auf die nächste ganze Zahl auf
rsqrt Gibt 1 / sqrt(x) zurück
saturate Bindet x an den Bereich [0, 1] 1
sign Berechnet das Zeichen von x.
sin Gibt den Sinus von x zurück.
sincos Gibt den Sinus und Kosinus von x zurück.
sinh Gibt den hyperbolischen Sinus von x zurück
smoothstep Gibt eine glatte Hermiteinterpolation zwischen 0 und 1 zurück.
sqrt Quadratwurzel (pro Komponente)
step Gibt (x >= a) zurück? 1 : 0
tan Gibt den Tangens von x zurück
tanh Gibt den hyperbolischen Tangens von x zurück
tex1D(s, t) 1D-Textursuche. 1
tex1D(s, t, ddx, ddy) 1D-Textursuche.
tex1Dbias 1D-Textursuche mit Verzerrung.
tex1Dgrad 1D-Textursuche mit einem Gradienten.
tex1Dlod 1D-Textursuche mit LOD.
tex1Dproj 1D-Textursuche mit projizierter Division.
tex2D(s, t) 2D-Textursuche.
tex2D(s, t, ddx, ddy) 2D-Textursuche.
tex2Dbias 2D-Textursuche mit Verzerrung.
tex2Dgrad 2D-Textursuche mit einem Gradienten.
tex2Dlod 2D-Textursuche mit LOD. 3
tex2Dproj 2D-Textursuche mit projizierter Division.
tex3D(s, t) 3D-Textursuche.
tex3D(s, t, ddx, ddy) 3D-Textursuche.
tex3Dbias 3D-Textursuche mit Verzerrung.
tex3Dgrad 3D-Textursuche mit einem Gradienten.
tex3Dlod 3D-Textursuche mit LOD.
tex3Dproj 3D-Textursuche mit projizierter Division.
texCUBE(s, t) Würfeltextursuche.
texCUBE(s, t, ddx, ddy) Würfeltextursuche.
texCUBEbias Würfeltextursuche mit Verzerrung.
texCUBEgrad Würfeltextursuche mit einem Gradienten.
texCUBElod Würfeltextursuche mit LOD.
texCUBEproj Würfeltextursuche mit projizierter Division.
transpose Gibt die Transponierung der Matrix m zurück. 1
trunc Schneidet Gleitkommawerte auf ganzzahlige Werte ab 1

 

¹ siehe Referenzseite für Einschränkungen.

Komponenten- und Vorlagentypen

Die systeminternen HLSL-Funktionsdeklarationen verwenden Komponententypen und Vorlagentypen für Eingabeparameterargumente und Rückgabewerte. In der folgenden Tabelle sind die verfügbaren Typen aufgeführt.

Diese Vorlagentypen Beschreibung Unterstützen diese Datentypen
Matrix bis zu 16 Komponenten abhängig von der Deklaration Grundlegende HLSL-Typen
Objekt Samplerobjekt sampler, sampler1D, sampler2D, sampler3D, samplerCUBE
Skalar 1 Komponente Grundlegende HLSL-Typen
Vektor Mindestens 1 Komponente, maximal 4 Komponenten (einschließlich) Grundlegende HLSL-Typen

 

Siehe auch

Referenz für HLSL