Bezeichnung
gl.PointSize -- gibt den Durchmesser der gerasterten Punkte an
Übersicht
gl.PointSize(size)
Beschreibung
gl.PointSize() gibt den gerasterten Durchmesser von aliasierten und antialiatisierten Punkten an. Die Verwendung einer anderen Punktgröße als 1 hat unterschiedliche Auswirkungen, je nachdem, ob die Punkt-Antialiasing-Funktion aktiviert ist. Um Punktantialiasing zu aktivieren und zu deaktivieren, rufen Sie gl.Enable() und gl.Disable() mit dem Argument #GL_POINT_SMOOTH auf. Die Punktantialiasing-Funktion ist zunächst deaktiviert.

Wenn die Punktantialiasing-Funktion deaktiviert ist, wird die tatsächliche Größe durch Rundung der gelieferten Größe auf die nächste Ganzzahl bestimmt (wenn die Rundung zu dem Wert 0 führt, ist es, als ob die Punktgröße 1 wäre). Wenn die gerundete Größe ungerade ist, dann wird der Mittelpunkt (x,y) des Pixelfragments, das den Punkt repräsentiert, wie folgt berechnet

 
(xw + 0.5, yw + 0.5)

wobei w-Indizes Fensterkoordinaten angeben. Alle Pixel, die innerhalb des quadratischen Rasters der abgerundeten Größe liegen und auf (x,y) zentriert sind, bilden das Fragment. Wenn die Größe gleich ist, ist der Mittelpunkt

 
(xw + 0.5, yw + 0.5)

und die Zentren des gerasterten Fragments sind die halb ganzzahligen Fensterkoordinaten innerhalb des Quadrats der abgerundeten Größe, zentriert auf (x,y). Allen Pixelfragmenten, die beim Rastern eines nicht-antialisierten Punktes erzeugt werden, werden die gleichen zugehörigen Daten zugewiesen, die des dem Punkt entsprechenden Scheitelpunktes.

Wenn Antialiasing aktiviert ist, erzeugt die Punktrasterung für jedes Pixelquadrat ein Fragment, das den Bereich schneidet, der innerhalb des Kreises liegt und einen Durchmesser hat, der gleich der aktuellen Punktgröße ist und auf den Punkt (xw,yw) zentriert ist. Der Abdeckungswert für jedes Fragment ist der Fensterkoordinatenbereich des Schnittpunktes des kreisförmigen Bereichs mit dem entsprechenden Pixelquadrat. Dieser Wert wird gespeichert und im letzten Schritt der Rasterung verwendet. Die jedem Fragment zugeordneten Daten sind die Daten, die dem zu rasternden Punkt zugeordnet sind.

Nicht alle Größen werden unterstützt, wenn die Punktantialiasing-Funktion aktiviert ist. Wenn eine nicht unterstützte Größe angefordert wird, wird die nächstgelegene unterstützte Größe verwendet. Nur die Größe 1 wird garantiert unterstützt, andere sind von der Implementierung abhängig. Um den Bereich der unterstützten Größen und die Größendifferenz zwischen den unterstützten Größen innerhalb des Bereichs abzufragen, rufen Sie gl.Get() mit den Argumenten #GL_POINT_SIZE_RANGE und #GL_POINT_SIZE_GRANULARITY auf.

Die durch gl.PointSize() angegebene Punktgröße wird immer zurückgegeben, wenn #GL_POINT_SIZE abgefragt wird. Das Befestigen und Runden für aliasierte und antialiatisierte Punkte hat keinen Einfluss auf den angegebenen Wert.

Eine nicht-antialisierte Punktgröße kann auf ein implementierungsabhängiges Maximum festgelegt werden. Obwohl dieses Maximum nicht abgefragt werden kann, darf es nicht kleiner sein als der Maximalwert für Antialiaspunkte, gerundet auf den nächsten ganzzahligen Wert.

Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.

Eingaben
size
gibt den Durchmesser der gerasterten Punkte an; der Anfangswert ist 1
Fehler
#GL_INVALID_VALUE wird erzeugt, wenn size kleiner oder gleich 0 ist.

#GL_INVALID_OPERATION wird erzeugt, wenn gl.PointSize() zwischen gl.Begin() und gl.End() ausgeführt wird.

Verbundene get-operationen
gl.Get() mit dem Argument #GL_POINT_SIZE

gl.Get() mit dem Argument #GL_POINT_SIZE_RANGE

gl.Get() mit dem Argument #GL_POINT_SIZE_GRANULARITY

gl.IsEnabled() mit dem Argument #GL_POINT_SMOOTH


Navigation zeigen