Wat is een OpenGL®-bol?
Een Open Graphics Library® (OpenGL®) -bol, op het meest basale niveau, is een driedimensionaal (3D) object dat bestaat uit een reeks driehoeken of vierhoeken waarvan de hoekpunten allemaal op gelijke afstand van een middelpunt staan. Dit betekent dat, wanneer een OpenGL®-bol vanuit elke hoek wordt bekeken, de omtrek als een perfecte cirkel voor de kijker verschijnt, hoewel verlichting en schaduw het volume een meer balachtig uiterlijk kunnen geven. Het aantal hoekpunten dat wordt gebruikt om een OpenGL®-bol te maken, bepaalt de gladheid van het object in de benadering van een werkelijke bol, waarbij minder dan 12 punten een object creëren dat niet als een bol kan worden beschouwd. Hoewel een bol in veel grafische toepassingen en bibliotheken als primitief wordt beschouwd, heeft OpenGL® geen aangeboren functionaliteit om een bol te maken, wat betekent dat aanvullende toolkits zoals de OpenGL® utility toolkit (GLUT) moeten worden gebruikt om te voorkomen dat code wordt geschreven om de vorm handmatig te genereren.
Wanneer het gaat om hoekpunten in OpenGL®, is het minste aantal punten dat kan worden gebruikt om een bol met enige mate van gladheid te genereren 12, waardoor een object met 20 driehoekige vlakken wordt gecreëerd die bekend staan als een icosaëder. Zonder verdere verwerking zal een op deze manier geconstrueerde OpenGL®-bol zichtbare scherpe hoeken rond de randen hebben, die voor sommige toepassingen acceptabel kunnen zijn. Om een meer afgeronde bol te krijgen, moet elk gezicht verder worden onderverdeeld.
Het onderverdelen van een icosaëder om het aantal hoekpunten dat het bevat te vergroten en een vloeiendere OpenGL®-bol te vormen, omvat het maken van nieuwe hoekpunten in het midden van elke rand van elke bestaande driehoek. Dit betekent dat elk driehoekig vlak nu vier driehoeken zal bevatten. De onderverdeling kan zoveel doorgaan als nodig is, hoewel het exponentieel toevoegen van punten snel een object met een hoge weergavetijd kan creëren en moeilijk te vertalen kan worden.
Ondanks enkele van de wiskundige gemakken biedt een OpenGL®-bol programmeurs, zoals de oppervlaktestandaardalen die gemakkelijk kunnen worden berekend op basis van de hoekpuntcoördinaten, kan het structureren van een bol enige complexiteit vertonen. Het gebruik van een standaard tweedimensionale (2D) textuur die op de bol wordt geprojecteerd, betekent dat de bovenste en onderste delen van het textuurbeeld worden gecomprimeerd, omdat de vorm van de driehoeken nabij de polen van de bol zelf wordt gecomprimeerd. Om dit te verhelpen, kan kubustoewijzing worden gebruikt of kan de programmeur de textuurcoördinaten voor het object handmatig genereren.
Eén factor moet worden opgemerkt bij het gebruik van een hulpprogramma-bibliotheek voor het genereren van een OpenGL®-bol. Een bol gegenereerd door GLUT of vergelijkbare toolkits kan soms moeilijk te wijzigen, optimaliseren en beheren binnen OpenGL® zelf. Om deze reden is het soms handig om op maat geschreven code te gebruiken om een OpenGL®-bol te genereren, zodat deze wordt gemaakt en op de meest efficiënte manier binnen het programma kan worden gebruikt.