Freigeben über


Surface Formats (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 Abschnitt des Bilds darstellt, der als Pixel bezeichnet wird. Die Detailebene eines Bilds wird sowohl durch die Anzahl der Pixel definiert, die zum Darstellen des Bilds erforderlich sind, als auch durch die Anzahl der Bits, die für das Farbspektrum des Bilds erforderlich sind. Beispielsweise wird ein Bild mit einer Breite von 800 Pixeln um 600 Pixel mit 32 Farbbits für jedes Pixel (geschrieben als 800x600x32) detaillierter sein als ein Bild, das 640 Pixel breit und 480 Pixel hoch ist, mit 16 Bit Farbe für jedes Pixel (geschrieben als 640x480x16). Ebenso erfordert das detailliertere Bild eine größere Oberfläche, um die Daten zu speichern. Bei einem 800x600x32-Bild beträgt die Arrayabmessungen der Oberfläche 800x600, und jedes Element enthält einen 32-Bit-Wert, um seine Farbe darzustellen.

Alle Oberflächen weisen eine Größe auf 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 Typ D3DFORMAT definiert. Ein Direct3D-Farbformat wird in die Anzahl der 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 Bit für Grün (G) und 5 Bit für Blau (B) reserviert sind.

Direct3D-Surfaces-