Co je to OpenGL® Sphere?
Koule Open Graphics Library® (OpenGL®) je na nejzákladnější úrovni trojrozměrný (3D) objekt tvořený řadou trojúhelníků nebo kvadrilaterálů, jejichž vrcholy jsou všechny stejně vzdálené od středového bodu. To znamená, že při pohledu na kouli OpenGL® z jakéhokoli úhlu se obrys objeví jako dokonalý kruh pro diváka, i když osvětlení a stínování může dát svazku více kouli. Počet vrcholů použitých k vytvoření koule OpenGL® určuje hladkost objektu v jeho aproximaci skutečné koule, přičemž méně než 12 bodů vytváří objekt, který nelze považovat za kouli. I když je koule v mnoha grafických aplikacích a knihovnách považována za primitivní tvar, OpenGL® nemá žádnou vrozenou funkci pro vykreslení koule, což znamená, že je třeba použít doplňkové sady nástrojů, jako je sada nástrojů OpenGL® (GLUT), aby se zabránilo psaní kódu. ručně generovat tvar.
Při řešení vrcholů v OpenGL® je nejmenší počet bodů, které lze použít ke generování koule s určitou mírou plynulosti, 12, čímž se vytvoří objekt s 20 trojúhelníkovými plochami známými jako ikosedron. Bez dalšího zpracování bude koule OpenGL® konstruovaná tímto způsobem mít kolem hran viditelné ostré rohy, což může být pro některé aplikace přijatelné. Aby se dosáhlo zaoblené koule, musí být každá tvář dále rozdělena.
Rozdělení icosahedronu pro zvýšení počtu vrcholů, které obsahuje, a vytvoření plynulejší koule OpenGL® zahrnuje vytvoření nových vrcholů ve středu každého okraje každého existujícího trojúhelníku. To znamená, že každá trojúhelníková plocha bude nyní obsahovat čtyři trojúhelníky. Rozdělení může pokračovat tolik, kolik je potřeba, ačkoli exponenciální přidávání bodů může rychle vytvořit objekt, který má vysoký čas vykreslení a může se stát těžko překládat.
Přes některé matematické vymoženosti OpenGL® sphere poskytuje programátory, jako jsou povrchové normály, které lze snadno vypočítat z vrcholných souřadnic, může texturování koule představovat určité složitosti. Použití standardní dvourozměrné (2D) textury promítané na kouli znamená, že horní a dolní oblasti obrazu textury se zkomprimují, protože tvar trojúhelníků poblíž pólů koule se stlačí samy. K překonání tohoto problému by mohlo být použito mapování krychle nebo programátor mohl vygenerovat souřadnice textury ručně pro objekt.
Jeden faktor je třeba poznamenat o použití obslužné knihovny pro generování koule OpenGL®. Koule vytvořená GLUTem nebo podobnými sadami nástrojů může být někdy obtížné modifikovat, optimalizovat a spravovat v samotném OpenGL®. Z tohoto důvodu je někdy užitečné použít vlastní psaný kód pro vygenerování koule OpenGL®, takže je vytvořen a může být použit v programu co nejefektivnějším způsobem.