D3DDECLMETHOD-Enumeration
Definiert die Vertexdeklarationsmethode, bei der es sich um einen vordefinierten Vorgang handelt, der vom Tessellator (oder einer beliebigen prozeduralen Geometrieroutine für die Vertexdaten während der Tessellation) ausgeführt wird.
Syntax
typedef enum D3DDECLMETHOD {
D3DDECLMETHOD_DEFAULT = 0,
D3DDECLMETHOD_PARTIALU = 1,
D3DDECLMETHOD_PARTIALV = 2,
D3DDECLMETHOD_CROSSUV = 3,
D3DDECLMETHOD_UV = 4,
D3DDECLMETHOD_LOOKUP = 5,
D3DDECLMETHOD_LOOKUPPRESAMPLED = 6
} D3DDECLMETHOD, *LPD3DDECLMETHOD;
Konstanten
-
D3DDECLMETHOD_DEFAULT
-
Standardwert. Der Tessellator kopiert die Vertexdaten (Splinedaten für Patches) unverändert, ohne zusätzliche Berechnungen. Wenn der Tessellator verwendet wird, wird dieses Element interpoliert. Andernfalls werden Vertexdaten in das Eingaberegister kopiert. Der Eingabe- und Ausgabetyp kann ein beliebiger Wert sein, ist aber immer derselbe Typ.
-
D3DDECLMETHOD_PARTIALU
-
Berechnet den Tangenten an einem Punkt auf dem Rechteck oder Dreieckspatch in U-Richtung. Der Eingabetyp kann einer der folgenden sein:
- D3DDECLTYPE_D3DCOLOR
- D3DDECLTYPE_FLOAT3
- D3DDECLTYPE_FLOAT4
- D3DDECLTYPE_SHORT4
- D3DDECLTYPE_UBYTE4
Der Ausgabetyp ist immer D3DDECLTYPE_FLOAT3.
-
D3DDECLMETHOD_PARTIALV
-
Berechnet den Tangenten an einem Punkt auf dem Rechteck oder Dreieckspatch in V-Richtung. Der Eingabetyp kann einer der folgenden sein:
- D3DDECLTYPE_D3DCOLOR
- D3DDECLTYPE_FLOAT3
- D3DDECLTYPE_FLOAT4
- D3DDECLTYPE_SHORT4
- D3DDECLTYPE_UBYTE4
Der Ausgabetyp ist immer D3DDECLTYPE_FLOAT3.
-
D3DDECLMETHOD_CROSSUV
-
Berechnet den Normalwert an einem Punkt auf dem Rechteck oder dreieckigen Patch, indem das Kreuzprodukt von zwei Tangenten verwendet wird. Der Eingabetyp kann einer der folgenden sein:
- D3DDECLTYPE_D3DCOLOR
- D3DDECLTYPE_FLOAT3
- D3DDECLTYPE_FLOAT4
- D3DDECLTYPE_SHORT4
- D3DDECLTYPE_UBYTE4
Der Ausgabetyp ist immer D3DDECLTYPE_FLOAT3.
-
D3DDECLMETHOD_UV
-
Kopieren Sie die U- und V-Werte an einem Punkt auf dem Rechteck oder Dreieckspatch. Dies führt zu einem 2D-Float. Der Eingabetyp muss auf D3DDECLTYPE_UNUSED festgelegt werden. Der Ausgabedatentyp ist immer D3DDECLTYPE_FLOAT2. Der Eingabedatenstrom und der Offset werden ebenfalls nicht verwendet (müssen jedoch auf 0 festgelegt werden).
-
D3DDECLMETHOD_LOOKUP
-
Suchen Sie nach einer Verschiebungskarte. Der Eingabetyp kann einer der folgenden sein:
- D3DDECLTYPE_FLOAT2
- D3DDECLTYPE_FLOAT3
- D3DDECLTYPE_FLOAT4
Für die Texturzuordnungssuche werden nur die X- und Y-Komponenten verwendet. Der Ausgabetyp ist immer D3DDECLTYPE_FLOAT1. Das Gerät muss die Verschiebungszuordnung unterstützen. Weitere Informationen zur Verschiebungszuordnung finden Sie unter Verdrängungszuordnung (Direct3D 9). Diese Konstante wird nur von der programmierbaren Pipeline für N-Patch-Daten unterstützt, wenn N-Patches aktiviert sind.
-
D3DDECLMETHOD_LOOKUPPRESAMPLED
-
Suchen Sie nach einer vorab gestampelten Verschiebungskarte. Der Eingabetyp muss auf D3DDECLTYPE_UNUSED festgelegt werden. Der Streamindex und der Streamoffset müssen auf 0 festgelegt werden. Der Ausgabetyp für diesen Vorgang ist immer D3DDECLTYPE_FLOAT1. Das Gerät muss die Verschiebungszuordnung unterstützen. Weitere Informationen zur Verschiebungszuordnung finden Sie unter Verdrängungszuordnung (Direct3D 9). Diese Konstante wird nur von der programmierbaren Pipeline für N-Patch-Daten unterstützt, wenn N-Patches aktiviert sind. Diese Methode kann nur mit D3DDECLUSAGE_SAMPLE verwendet werden.
Bemerkungen
Der tessellator untersucht die -Methode, um zu bestimmen, welche Daten während der Tessellation aus den Vertexdaten berechnet werden sollen. Mesh-Daten sollten den Standardwert verwenden. Patches können einen der anderen implementierten Typen verwenden.
Vertexdaten werden mit einem Array von D3DVERTEXELEMENT9-Strukturen deklariert. Jedes Element im Array enthält eine Vertexdeklarationsmethode.
Zusätzlich zur Verwendung von D3DDECLMETHOD_DEFAULT kann ein normales Gitter D3DDECLMETHOD_LOOKUP- und D3DDECLMETHOD_LOOKUPPRESAMPLED-Methoden verwenden, wenn N-Patches aktiviert sind.
Anforderungen
Anforderung | Wert |
---|---|
Header |
|
Siehe auch