Share via


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
D3D9Types.h

Siehe auch

Direct3D-Enumerationen