Rastern
Beim Rastern wird ein Grundtyp in ein zweidimensionales Bild konvertiert. Jeder Punkt dieses Bilds enthält Informationen wie Farbe, Tiefe und Texturdaten. Ein Punkt und die zugehörigen Informationen werden als Fragment bezeichnet. Die aktuelle Rasterposition, wie mit glRasterPos* angegeben, wird in dieser Phase auf verschiedene Weise zum Zeichnen von Pixeln und Bitmaps verwendet. Verschiedene Probleme treten beim Rastern von Punkten, Liniensegmenten und Polygonen auf. Darüber hinaus müssen Pixelrechtecke und Bitmaps gerastert werden.
Mit OpenGL steuern Sie die Rasterung mithilfe der folgenden Funktionen:
- Primitive. Steuern Sie, wie Primitive mithilfe von Funktionen gerastert werden, die Dimensionen und Stipplemuster bestimmen: glPointSize, glLineWidth, glLineStipple und glPolygonStipple. Steuern Sie, wie die Vorder- und Rückseite von Polygonen mit glCullFace, glFrontFace und glPolygonMode gerastert werden.
- Pixel. Mehrere Funktionen steuern die Pixelspeicherung und -übertragungsmodi. Die Funktion glPixelStore* steuert die Codierung von Pixeln im Clientspeicher, und glPixelTransfer* und glPixelMap* steuern, wie Pixel verarbeitet werden, bevor sie in den Framebuffer eingefügt werden. Geben Sie ein Pixelrechteck mit glDrawPixels an. Steuern der Rasterung mit glPixelZoom.
- Bitmaps. Bitmaps sind Rechtecke aus Nullen und Einsen, die ein bestimmtes Muster von zu erzeugenden Fragmenten angeben. Jedes dieser Fragmente verfügt über die gleichen zugeordneten Daten. Die glBitmap-Funktion gibt eine Bitmap an.
- Texturspeicher. Wenn die Texturierung aktiviert ist, ordnet texturieren jedem Grundtyp einen Teil eines angegebenen Texturbilds zu. Diese Zuordnung erfolgt mithilfe der Farbe des Texturbilds an der Stelle, die durch die Texturkoordinaten eines Fragments angegeben wird, um die RGBA-Farbe des Fragments zu ändern. Geben Sie ein Texturbild mit glTexImage2D oder glTexImage1D an. Die Funktionen glTexParameter* und glTexEnv* steuern, wie Texturwerte interpretiert und auf ein Fragment angewendet werden.
- Nebel. Um eine Nebelfarbe mit der Nachtexturfarbe eines gerasterten Fragments zu mischen, verwenden Sie einen Mischfaktor, der vom Abstand zwischen dem Blickpunkt und dem Fragment abhängt. Verwenden Sie glFog* , um die Nebelfarbe und den Mischfaktor anzugeben.