Was ist eine OpenGL® -Kugel?
Ein Open Graphics Library® (OpenGl®) -PHERE, das auf der grundlegendsten Ebene ein dreidimensionales (3D) -Objekt besteht, das aus einer Reihe von Dreiecken oder Viereckern besteht, deren Scheitelpunkte alle aus einem Mittelpunkt gleich sind. Dies bedeutet, dass der Umriss als perfekter Kreis für den Betrachter erscheint, wenn eine OpenGL®-Kugel aus einem beliebigen Winkel betrachtet wird, obwohl Beleuchtung und Schattierung dem Volumen ein kugelähnlicheres Erscheinungsbild verleihen können. Die Anzahl der Eckpunkte, mit denen eine OpenGl® -Kugel erstellt wird, bestimmt die Glätte des Objekts in seiner Annäherung an eine tatsächliche Kugel, wobei weniger als 12 Punkte ein Objekt erzeugen, das nicht als Kugel betrachtet werden kann. Obwohl eine Kugel in vielen grafischen Anwendungen und Bibliotheken als Form primitiv angesehen wird, hat OpenGl® keine angeborene Funktionalität, um eine Kugel zu rendern, was bedeutet, dass ergänzende Toolkits wie das OpenGL® -Utility -Toolkit (GLUT) verwendet werden müssen, um das Schreiben von Code zu vermeiden, um die Form manuell zu generieren.ICES in OpenGl®, die geringste Anzahl von Punkten, mit denen eine Kugel mit einem gewissen Grad an Glättung erzeugt werden kann, beträgt 12 Punkte, was ein Objekt mit 20 dreieckigen Gesichtern erzeugt, die als icosaahedron bekannt sind. Ohne weitere Verarbeitung hat eine auf diese Weise konstruierte OpenGL® -Kugel sichtbare, scharfe Ecken an den Kanten, die für einige Anwendungen möglicherweise akzeptabel sind. Um eine abgerundete Kugel zu erreichen, muss jedes Gesicht weiter unterteilt werden.
Unterteilen eines iCosaederon, um die Anzahl der Scheitelpunkte zu erhöhen, die es enthält, und eine glattere OpenGL® -Kugel beinhalten, um neue Scheitelpunkte in der Mitte jedes Randes jedes vorhandenen Dreiecks zu erstellen. Dies bedeutet, dass jedes dreieckige Gesicht nun vier Dreiecke enthält. Die Unterteilung kann so weit wie erforderlich fortgesetzt werden, obwohl das Hinzufügen von Punkten exponentiell schnell ein Objekt erstellen kann, das eine hohe Renderzeit aufweist und unhandlich werden kann, um zu übersetzen.
trotz somE der mathematischen Annehmlichkeiten Eine OpenGL® -Kugel bietet Programmierer, wie die Oberflächennormalen, die leicht aus den Scheitelpunktkoordinaten berechnet werden können. Die Texturierung einer Kugel kann einige Komplexitäten darstellen. Die Verwendung einer zweidimensionalen Standardstruktur (2D), die auf die Kugel projiziert wird, bedeutet, dass die oberen und unteren Bereiche des Texturbildes komprimiert werden, da die Form der Dreiecke in der Nähe der Pole der Kugel selbst komprimiert wird. Um dies zu überwinden, kann Cube Mapping verwendet werden oder der Programmierer könnte die Texturkoordinaten manuell für das Objekt erzeugen.
Ein Faktor sollte zur Verwendung einer Versorgungsbibliothek zur Generierung einer OpenGL® -Kugel beachtet werden. Eine durch Glut oder ähnliche Toolkits erzeugte Kugel kann manchmal schwierig sein, innerhalb von OpenGL® selbst zu ändern, zu optimieren und zu verwalten. Aus diesem Grund ist es manchmal vorteilhaft, benutzerdefinierten schriftlichen Code zu verwenden, um eine OpenGL® -Kugel zu generieren, damit er erstellt wird und auf die effizienteste Weise verwendet werden kann wdas Programm.