Wat is een OpenGL® -bol?
Een open grafische bibliotheek® (OpenGL®) bol, op het meest elementaire niveau, is een driedimensionaal (3D) object dat bestaat uit een reeks driehoeken of vierhoeken waarvan de hoekpunten allemaal opeensomend zijn vanuit een middelpunt. Dit betekent dat, wanneer een OpenGL®-bol vanuit elke hoek wordt bekeken, de omtrek verschijnt als een perfecte cirkel voor de kijker, 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, met minder dan 12 punten die een object creëren dat niet als een bol kan worden beschouwd. Hoewel een bol in veel grafische toepassingen en bibliotheken als een vorm wordt beschouwd, heeft OpenGL® geen aangeboren functionaliteit om een bol weer te geven, wat betekent dat aanvullende toolkits zoals de OpenGL® Utility Toolkit (GLUT) moeten worden gebruikt om te voorkomen dat code het schrijven van de vorm handmatig genereert.ICES in OpenGL®, de minste hoeveelheid punten die kan worden gebruikt om een bol met een zekere mate van gladheid te genereren, is 12, waardoor een object ontstaat met 20 driehoekige gezichten die bekend staan als een icosaHedron. Zonder verdere verwerking zal een OpenGL® -bol die op deze manier is gebouwd, zichtbare scherpe hoeken rond de randen hebben, wat voor sommige toepassingen acceptabel kan zijn. Om een meer afgeronde bol te bereiken, moet elk gezicht verder worden onderverdeeld.
Onderverdeling van een icosaëder om het aantal hoekpunten dat het bevat te vergroten en een soepelere OpenGL® -bol vormen omvat het maken van nieuwe hoekpunten in het midden van elke rand van elke bestaande driehoek. Dit betekent dat elk driehoekig gezicht nu vier driehoeken zal bevatten. De onderverdeling kan zoveel doorgaan als nodig is, hoewel het exponentieel toevoegen van punten snel een object kan maken met een hoge weergave en kan log worden om te vertalen.
Ondanks SOME van de wiskundige gemakken Een OpenGL® -bol voorziet in programmeurs, zoals de oppervlaktienormalen die gemakkelijk kunnen worden berekend uit de hoekpuntcoördinaten, het texturen van een bol kan enkele complexiteiten presenteren. Het gebruik van een standaard tweedimensionale (2D) textuur die op de bol wordt geprojecteerd, betekent dat de boven- en onderste gebieden van het textuurafbeelding worden gecomprimeerd, omdat de vorm van de driehoeken nabij de polen van de bol zelf wordt gecomprimeerd. Om dit te overwinnen, kan kubusmapping worden gebruikt of de programmeur kan de textuurcoördinaten handmatig genereren voor het object.
Er moet één factor worden opgemerkt over het gebruik van een hulpprogramma -bibliotheek voor het genereren van een OpenGL® -bol. Een bol gegenereerd door glut of soortgelijke toolkits kan soms moeilijk te wijzigen, optimaliseren en beheren zijn binnen OpenGL® zelf. Om deze reden is het soms voordelig om aangepaste geschreven code te gebruiken om een openGL® -bol te genereren, zodat deze wordt gemaakt en kan worden gebruikt op de meest efficiënte manier Within het programma.