Bezeichnung
gl.LineWidth -- setzt die Breite der gerasterten Linien
Übersicht
gl.LineWidth(width)
Beschreibung
gl.LineWidth() gibt die gerasterte Breite sowohl von aliasierten als auch von antialisierten Linien an. Die Verwendung einer anderen Linienbreite als 1 hat unterschiedliche Auswirkungen, je nachdem, ob die Linien-Antialiasing-Funktion aktiviert ist. Um die Linienantialiasing zu aktivieren und zu deaktivieren, rufen Sie gl.Enable() und gl.Disable() mit dem Argument #GL_LINE_SMOOTH auf. Die Linienantialiasing-Funktion ist zunächst deaktiviert.

Wenn die Linienantialiasing-Funktion deaktiviert ist, wird die tatsächliche Breite durch Rundung der gelieferten Breite auf die nächste Ganzzahl bestimmt (wenn die Rundung zum Wert 0 führt, ist es, als ob die Linienbreite 1 wäre). Wenn delta x >= delta y ist, werden in jeder gerasterten Spalte i Pixel gefüllt, wobei i der gerundete Wert der Breite ist. Andernfalls werden in jeder Zeile, die gerastert wird, i Pixel gefüllt.

Wenn Antialiasing aktiviert ist, erzeugt die Linienrasterung für jedes Pixelquadrat ein Fragment, das den innerhalb des Rechtecks liegenden Bereich schneidet. Die Breite ist gleich der aktuellen Linienbreite, dessen Länge gleich der tatsächlichen Länge der Linie ist und das auf das mathematische Liniensegment zentriert ist. Der Abdeckungswert für jedes Fragment ist der Fensterkoordinatenbereich des Schnittpunktes des rechteckigen Bereichs mit dem entsprechenden Pixelquadrat. Dieser Wert wird gespeichert und im letzten Schritt der Rasterung verwendet.

Nicht alle Breiten können unterstützt werden, wenn die Linienantialiasing-Funktion aktiviert ist. Wenn eine nicht unterstützte Breite gewünscht wird, wird die nächstgelegene unterstützte Breite verwendet. Nur die Breite 1 wird garantiert unterstützt, andere sind von der Implementierung abhängig. Ebenso gibt es einen Bereich für aliasierte Linienbreiten. Um den Bereich der unterstützten Breiten und die Größendifferenz zwischen den unterstützten Breiten innerhalb des Bereichs abzufragen, rufen Sie den Befehl gl.Get() mit dem Argumente #GL_LINE_WIDTH_RANGE und #GL_LINE_WIDTH_GRANULARITY auf.

Die durch gl.LineWidth() angegebene Linienbreite wird immer zurückgegeben, wenn #GL_LINE_WIDTH abgefragt wird. Das Festlegen und Runden für aliasierte und antialiatisierte Linien hat keinen Einfluss auf den vorgegebenen Wert.

Die nicht-antialisierte Linienbreite 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 antialiatisierte Linien, gerundet auf den nächsten ganzzahligen Wert.

Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.

Eingaben
width
gibt die Breite der gerasterten Linien an; der Anfangswert ist 1
Fehler
#GL_INVALID_VALUE wird erzeugt, wenn width kleiner oder gleich 0 ist.

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

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

gl.Get() mit dem Argument #GL_LINE_WIDTH_RANGE

gl.Get() mit dem Argument #GL_LINE_WIDTH_GRANULARITY

gl.IsEnabled() mit dem Argument #GL_LINE_SMOOTH


Navigation zeigen