Hlavní navigace

GLUT (9): vykreslování trojrozměrných těles

Pavel Tišnovský

Knihovna GLUT podporuje přímé vykreslování základních trojrozměrných těles. Použití mají tato tělesa zejména při testování nastavení kamery, osvětlení nebo materiálů. Lze je však použít v téměř libovolné 3D aplikaci. Další informace o vykreslování jsou uvedeny v textu, který popisuje osmnáctý ukázkový příklad.

Vykreslování základních trojrozměrných těles

Ukázkový příklad číslo 18

V tomto příkladu je ukázán způsob vykreslování základních trojrozměrných těles pomocí funkcí knihovny GLUT. Lze provést výběr z devíti typů těles, kde každé může být zobrazeno jako drátový model nebo polygonový model. Celkem tedy existuje 18 typů těles, které lze pomocí knihovny GLUT vytvořit a zobrazit. Pro vytvoření každého typu tělesa se používá volání zvláštní funkce:

glutWireCube(size); vytvoří drátový model krychle. Parametr size udává délku hrany krychle.

glutSolidCube(si­ze); vytvoří polygonový model krychle. Parametr size udává délku hrany krychle.

glutWireSphere(ra­dius, slices, stacks); vytvoří drátový model koule. Parametr radius udává poloměr koule, parametry slicesa stacks počet rozdělení koule na poledníky a rovnoběžky.

glutSolidSphe­re(radius, slices, stacks); vytvoří polygonový model koule. Význam parametrů je stejný jako u předchozí funkce.

glutWireCone(base, height, slices, stacks); vytvoří drátový model kužele s kruhovou podstavou. Parametr base udává poloměr základny, height udává výšku kužele a parametry slices astacks počet rozdělení kužele na čtyřúhelníkové plošky.

glutSolidCone(base, height, slices, stacks); vytvoří polygonový model kužele. Význam parametrů je stejný jako u předchozí funkce.

glutWireTorus(r1, r2, sides, rings); vytvoří drátový model torusu s vnitřním poloměrem r1, vnějším poloměrem r2 a dělením na sides x rings plošek.

glutSolidTorus(r1, r2, sides, rings); vytvoří polygonový model torusu s parametry stejnými jako u předchozí funkce.

glutWireTetra­hedron() a glutSolidTetra­hedron() vytvoří drátový resp. polygonový model pravidelného čtyřstěnu (jedno z tzv. dokonalých těles). Poloměr je roven odmocnině ze tří, umístění do počátku souřadné soustavy.

glutWireOctahe­dron() a glutSolidOcte­hedron() vytvoří drátový resp. polygonový model pravidelného osmistěnu (jedno z tzv. dokonalých těles). Poloměr je roven 1.0, umístění do počátku souřadné soustavy.

glutWireDodeca­hedron() a glutSolidDode­cahedron() vytvoří drátový resp. polygonový model pravidelného dvanáctistěnu (jedno z tzv. dokonalých těles). Poloměr je roven odmocnině ze tří, umístění do počátku souřadné soustavy.

glutWireIcosa­hedron() a glutSolidIcosa­hedron() vytvoří drátový resp. polygonový model pravidelného dvacetistěnu (jedno z tzv. dokonalých těles). Poloměr je roven 1.0, umístění do počátku souřadné soustavy.

glutWireTeapot(si­ze) a glutSolidTeapot(si­ze) vytvoří drátový resp. polygonový model čajové konvice používaný v mnoha demonstračních a testovacích aplikacích v 3D počítačové grafice. Parametr size udává velikost tohoto modelu.

Po spuštění příkladu lze pomocí myši vybraným tělesem rotovat. Po stisknutí levého tlačítka myši se zobrazí menu s výběrem objektů. Po stisknutí pravého tlačítka myši lze vybraný objekt přibližovat nebo vzdalovat od pozorovatele. Klávesou [f] lze provést přepnutí do režimu full-screen. Aplikaci lze ukončit stisknutím klávesy ESC.

K dispozici je zdrojový kód osmnáctého příkladu a zdrojový kód se zvýrazněnou syntaxí.

ukázka osmnáctého příkladu

Našli jste v článku chybu?