Freigeben über


Texturkoordinatenverarbeitung (Direct3D 9)

Das folgende Diagramm zeigt den Pfad, den die Texturkoordinaten von ihrer Quelle über die Verarbeitung und zum Rasterizer nehmen.

Diagramm des Pfads für Texturkoordinaten von einer Quelle zum Rasterisierer

Es gibt zwei Quellen, aus denen das System Texturkoordinaten zeichnen kann. Für eine bestimmte Texturphase können Sie Texturkoordinaten verwenden, die im Vertexformat enthalten sind (D3DFVF_TEX1 bis D3DFVF_TEX8), oder Sie können automatisch von Direct3D generierte Texturkoordinaten verwenden. Ausführliche Informationen zum letzteren Fall finden Sie unter Automatisch generierte Texturkoordinaten (Direct3D 9). Wenn der D3DTSS_TEXTURETRANSFORMFLAGS Zustand der Texturphase für die aktuelle Texturphase auf D3DTTFF_DISABLE (Standardeinstellung) festgelegt ist, werden Eingabekoordinaten nicht transformiert. Wenn D3DTSS_TEXTURETRANSFORMFLAGS> auf einen anderen Wert festgelegt ist, wird die Transformationsmatrix für diese Phase auf die Eingabekoordinaten angewendet.

Der enumerierte D3DTEXTURETRANSFORMFLAGS-Typ definiert gültige Werte für den D3DTSS_TEXTURETRANSFORMFLAGS Texturphasenzustand. Mit Ausnahme des flags D3DTTFF_DISABLE, das die Texturkoordinatentransformation umgeht, konfigurieren die in dieser Enumeration definierten Werte die Anzahl der Ausgabekoordinaten, die das System an den Rasterizer übergibt. Die D3DTTFF_COUNT1 durch D3DTTFF_COUNT4 Flags weist das System an, ein, zwei, drei oder vier Elemente aus den Ausgabekoordinaten an den Rasterizer zu übergeben.

Das flag D3DTTFF_PROJECTED ist besonders: Es teilt dem System mit, dass die Texturkoordinaten für eine projizierte Textur gelten. Kombinieren Sie das flag D3DTTFF_PROJECTED mit einem anderen Member von D3DTEXTURETRANSFORMFLAGS , um den Rasterizer anzuweisen, alle Elemente durch das letzte Element zu dividieren, bevor die Rasterung erfolgt. Beispielsweise können Sie bei expliziter Verwendung von Texturkoordinaten mit drei Elementen oder wenn transformation zu einer Texturkoordinate mit drei Elementen führt, die D3DTTFF_COUNT3 und D3DTTFF_PROJECTED-Flags kombinieren, um zu bewirken, dass der Rasterizer die ersten beiden Elemente durch das letzte teilt, sodass 2D-Texturkoordinaten erzeugt werden, die für eine 2D-Textur erforderlich sind.

Hinweis

Mit Ausnahme von kubischen Umgebungszuordnungen und Volumentexturen können Rasterizer Texturen nicht mithilfe von Texturkoordinaten mit mehr als zwei Elementen behandeln. Wenn Sie mehr Elemente angeben, als zum Adressieren der aktuellen Textur für diese Phase verwendet werden können, werden die überflüssigen Elemente ignoriert. Dies gilt auch für die Verwendung von 2D-Texturkoordinaten für eine 1D-Textur.

 

Weitere Informationen finden Sie in den folgenden Themen.

Texturkoordinaten