glPointSize-Funktion
Die glPointSize-Funktion gibt den Durchmesser von rasterisierten Punkten an.
Syntax
void WINAPI glPointSize(
GLfloat size
);
Parameter
-
size
-
Der Durchmesser von gerasterten Punkten. Der Standardwert ist 1.0.
Rückgabewert
Diese Funktion gibt keinen Wert zurück.
Fehlercodes
Die folgenden Fehlercodes können von der glGetError-Funktion abgerufen werden.
Name | Bedeutung |
---|---|
|
größe war kleiner oder gleich 0. |
|
Die Funktion wurde zwischen einem Aufruf von glBegin und dem entsprechenden Aufruf von glEnd aufgerufen. |
Bemerkungen
Die glPointSize-Funktion gibt den rasterisierten Durchmesser von Alias- und Antialiasedpunkten an. Die Verwendung einer anderen Punktgröße als 1.0 hat unterschiedliche Auswirkungen, je nachdem, ob das Punkt-Antialiasing aktiviert ist. Die Punkt-Antialiasing wird durch Aufrufen von glEnable und glDisable mit argument GL_POINT_SMOOTH gesteuert.
Wenn die Punkt-Antialiasing deaktiviert ist, wird die tatsächliche Größe bestimmt, indem die angegebene Größe auf die nächste ganze Zahl gerundet wird. (Wenn die Rundung den Wert 0 ergibt, ist es so, als wäre die Punktgröße 1.) Wenn die abgerundete Größe ungerade ist, wird der Mittelpunkt (x,y) des Pixelfragments, der den Punkt darstellt, als berechnet.
(xw + .5, yw + .5)
Wobei w-Tiefgestellt fensterkoordinaten angeben. Alle Pixel, die innerhalb des quadratischen Rasters der gerundeten Größe mit zentriert (x,y) liegen, bilden das Fragment. Wenn die Größe gerade ist, ist der Mittelpunkt
(xw + .5, yw + .5)
und die Mittelpunkte des gerasterten Fragments sind die halbzahligen Fensterkoordinaten innerhalb des Quadrats der gerundeten Größe mit zentriert (x,y). Allen Pixelfragmenten, die beim Rastern eines nicht antiantialiasierten Punkts erzeugt werden, werden die gleichen zugeordneten Daten zugewiesen. die des Scheitelpunkts, der dem Punkt entspricht.
Wenn antialiasing aktiviert ist, erzeugt die Punktrasterung ein Fragment für jedes Pixelquadrat, das den innerhalb des Kreises liegenden Bereich mit einem Durchmesser schneidet, der der aktuellen Punktgröße entspricht und an den Punkten zentriert ist (xw , yw ). Der Abdeckungswert für jedes Fragment ist der Fensterkoordinatenbereich der Schnittmenge des kreisförmigen Bereichs mit dem entsprechenden Pixelquadrat. Dieser Wert wird gespeichert und im letzten Rasterungsschritt verwendet. Die daten, die jedem Fragment zugeordnet sind, sind die Daten, die dem zu rasterisierenden Punkt zugeordnet sind.
Nicht alle Größen werden unterstützt, wenn punktbezogenes Antialiasing aktiviert ist. Wenn eine nicht unterstützte Größe angefordert wird, wird die nächste unterstützte Größe verwendet. Nur Größe 1.0 wird garantiert unterstützt; andere hängen von der Implementierung ab. Der Bereich der unterstützten Größen und der Größenunterschied zwischen unterstützten Größen innerhalb des Bereichs können abgefragt werden, indem glGet mit Argumenten GL_POINT_SIZE_RANGE und GL_POINT_SIZE_GRANULARITY aufgerufen wird.
Die von glPointSize angegebene Punktgröße wird immer zurückgegeben, wenn GL_POINT_SIZE abgefragt wird. Klemmen und Rundungen für Alias- und Antialiasedpunkte haben keine Auswirkung auf den angegebenen Wert.
Nicht antialiasierte Punktgröße kann auf ein implementierungsabhängiges Maximum geklemmt werden. Obwohl dieses Maximum nicht abgefragt werden kann, darf er nicht kleiner als der Maximalwert für Antialiased-Punkte sein, gerundet auf den nächsten ganzzahligen Wert.
Die folgenden Funktionen rufen Informationen im Zusammenhang mit glPointSize ab:
glGet mit Argument GL_POINT_SIZE
glGet mit Argument GL_POINT_SIZE_RANGE
glGet mit argument GL_POINT_SIZE_GRANULARITY
glIsEnabled mit Argument GL_POINT_SMOOTH
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) |
Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) |
Windows 2000 Server [nur Desktop-Apps] |
Header |
|
Bibliothek |
|
DLL |
|