Share via


Surface-Formate (Direct3D 9)

In Direct3D werden alle zweidimensionalen (2D)-Bilder durch einen linearen Speicherbereich dargestellt, der als Oberfläche bezeichnet wird. Eine Oberfläche kann als 2D-Array betrachtet werden, bei dem jedes Element einen Farbwert enthält, der einen kleinen Teil des Bilds darstellt, der als Pixel bezeichnet wird. Die Detailebene eines Bilds wird sowohl durch die Anzahl von Pixeln definiert, die zum Darstellen des Bilds benötigt werden, als auch durch die Anzahl der Bits, die für das Farbspektrum des Bilds benötigt werden. Beispielsweise ist ein Bild, das 800 Pixel breit und 600 Pixel hoch ist, mit 32 Bits Farbe für jedes Pixel (geschrieben als 800x600x32) detaillierter als ein Bild, das 640 Pixel breit und 480 Pixel hoch ist, mit 16 Bit Farbe für jedes Pixel (geschrieben als 640 x 480x16). Ebenso erfordert das detailliertere Bild eine größere Oberfläche, um die Daten zu speichern. Bei einem 800x600x32-Bild sind die Arrayabmessungen der Oberfläche 800 x 600, und jedes Element enthält einen 32-Bit-Wert zur Darstellung seiner Farbe.

Alle Oberflächen haben eine Größe und speichern eine bestimmte Anzahl von Bits, die Farbe darstellen. Die Bits, die Farbe darstellen, werden in einzelne Farbelemente unterteilt: Rot, Grün und Blau. In Direct3D werden alle Farbelemente durch den aufgezählten D3DFORMAT-Typ definiert. Ein Direct3D-Farbformat wird in die Anzahl von Byes unterteilt, die für jede Farbe reserviert sind. Beispielsweise wird ein 16-Bit-Farbformat in Direct3D als D3DFMT_R5G6B5 definiert, wobei 5 Bit für Rot (R), 6 Bits für Grün (G) und 5 Bit für Blau (B) reserviert sind.

Direct3D-Oberflächen