Ako vytvoriť kocku v OpenGL?

Pridajte nasledujúce príkazy na zmenu veľkosti kocky o 2 pozdĺž osi x
Pridajte nasledujúce príkazy na zmenu veľkosti kocky o 2 pozdĺž osi x, 2 pozdĺž osi y, otočenie kocky o 180 stupňov okolo osi y a preloženie kocky o 0,1 pozdĺž osi x.

OpenGL je výkonný 3D programovací nástroj, ktorý sa používa na kreslenie zložitých trojrozmerných scén z jednoduchých primitívov. Tento článok vás naučí, ako nakresliť jednoduchú kocku, ktorú môžete otáčaním zobraziť v troch rozmeroch!

Na tento projekt budete potrebovať editor kódu a určité znalosti programovania v jazyku C.

Časť 1 z 3: počiatočné nastavenie

  1. 1
    Nainštalujte opengl a začnite podľa týchto krokov pri inštalácii opengl do vášho systému. Ak už máte OpenGL a nainštalovaný kompatibilný kompilátor C, môžete tento krok preskočiť a prejsť na ďalší.
  2. 2
    Vytvorte dokument. Vytvorte nový súbor vo svojom obľúbenom editore kódu a uložte ho ako mycube.c
    Začnite podľa týchto krokov pri inštalácii opengl do vášho systému
    Nainštalujte opengl a začnite podľa týchto krokov pri inštalácii opengl do vášho systému.
  3. 3
    Pridajte #obsahuje. Toto sú základné položky, ktoré budete pre svoj program potrebovať. Je dôležité si uvedomiť, že v skutočnosti existujú rôzne zahrnutia, ktoré sú potrebné pre rôzne operačné systémy. Nezabudnite zahrnúť všetky tieto položky, aby ste zaistili, že váš program je univerzálny a môže fungovať pre akéhokoľvek používateľa.
    // Zahŕňa #include <stdio.h> #include <stdarg.h> #include <math.h> #define GL_GLEXT_PROTOTYPES #ifdef _APPLE_ #include <GLUT/glut.h> #else #include <GL/glut.h> #koniec Ak 
  4. 4
    Pridajte funkčné prototypy a globálne premenné. Ďalším krokom je deklarovanie niektorých prototypov funkcií.
    // Funkčné prototypy void display (); void specialKeys (); // Globálne premenné double rotate_y = 0; dvojité otočenie_x = 0; 
  5. 5
    Nastavte funkciu main ().
    • int main (int argc, char* argv []) {// Inicializácia GLUT a spracovanie užívateľských parametrov glutInit (& argc, argv); // Požiadajte okno s dvojitou vyrovnávacou pamäťou o skutočnú farbu pomocou Z-bufferu glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); 
    • Toto vyhlásenie nastavuje vaše prostredie. Pri písaní programov OpenGL je dôležité mať na pamäti, že musíte o všetko požiadať. To vyžaduje, aby ste lepšie porozumeli tomu, ako váš program funguje a čo musíte zahrnúť, aby ste získali požadované funkcie. V tomto riadku nastavíte zobrazenie s dvojitým ukladaním do vyrovnávacej pamäte, farbou RGB a vyrovnávacou pamäťou Z.
    • Dvojité ukladanie do vyrovnávacej pamäte je technika používaná v grafických programoch na odstránenie problému, ktorý vzniká v dôsledku kreslenia obrázkov na obrazovku. Pri každom prekreslení scény musíte najskôr vymazať zobrazenie a potom sa nakreslia nové informácie. Bez dvojitého ukladania do vyrovnávacej pamäte budete pozorovať efekt blikania, pretože obrazovka sa opakovane vymazáva a prekresľuje.
    • Tento problém je stanovená pomocou pridanie druhej vyrovnávacej pamäte čerpať do. Pri tejto metóde sa obrázok nakreslí do prvej vyrovnávacej pamäte a táto vyrovnávacia pamäť sa vám zobrazí. Ďalší rámec sa nakreslí do druhého vyrovnávacej pamäte a keď je to hotové, dve vyrovnávacie pamäte si vymenia miesta. Okamžite uvidíte druhú vyrovnávaciu pamäť, ale skrytá pred nami, prvá vyrovnávacia pamäť sa vymazáva a prekresľuje s tretím rámcom, ktorý sa po dokončení zamení.
    • Vo svojom okne tiež chcete povoliť systém farieb RGB.
    • Z-buffering je spôsob, akým získate požadované 3D efekty. OpenGL používa trojrozmerný súradnicový systém s osami x, y a z. Na to, aby bol predmet bližšie k vám, sa však jeho poloha na osi z zvýši, ale aby vyzeral ďalej, jeho poloha na osi z sa zníži.
  6. 6
    Vytvorte okno. Ďalším krokom je vytvorenie okna, v ktorom nakreslíte kocku. V tomto návode sa okno nazýva „Úžasná kocka“.
    // Vytvorenie okna glutCreateWindow ("Úžasná kocka"); 
  7. 7
    Povoliť test hĺbky. OpenGL je striktný jazyk v tom, že nepredpokladá, že sú povolené nejaké špeciálne funkcie. Aby sa váš program správne zobrazoval v 3-rozmeroch pomocou vyrovnávacej pamäte Z, na ktorú ste sa pozerali predtým, musíte povoliť hĺbkový test. Ako budete pokračovať v skúmaní OpenGL, objavíte mnoho funkcií, ktoré budete musieť povoliť, vrátane osvetlenia, textúr, orientácie na porážku a mnohých ďalších.
    // Povoliť test hĺbky Z-buffera glEnable (GL_DEPTH_TEST); 
    Ako nakresliť jednoduchú kocku
    Tento článok vás naučí, ako nakresliť jednoduchú kocku, ktorú môžete otáčaním zobraziť v troch rozmeroch!
  8. 8
    Pridajte funkcie spätného volania. Tu sú funkcie spätného volania, pre ktoré ste predtým napísali prototypy. Zakaždým, keď prejdete hlavnou slučkou, budú tieto funkcie vyvolané. Funkcia displeja prekreslí scénu na základe akýchkoľvek zmien premenných, ktoré boli vykonané od predchádzajúceho hovoru. Funkcia specialKeys nám umožňuje interakciu s programom.
    // Funkcie spätného volania glutDisplayFunc (zobrazenie); glutSpecialFunc (specialKeys); 
  9. 9
    Spustite hlavnú slučku. Tým sa vyvolá hlavná funkcia, kým program neukončíte, aby sa umožnili animácie a interakcia s používateľom.
    // Odovzdanie kontroly GLUT pre udalosti glutMainLoop (); // Návrat do OS návrat 0; } 

Časť 2 z 3: funkcia display ()

  1. 1
    Pochopte účel tejto funkcie. V tejto funkcii bude vykonaná všetka práca pri kreslení vašej kocky. Všeobecnou myšlienkou vašej kocky je nakresliť všetkých šesť strán jednotlivo a umiestniť ich do príslušnej polohy.
    • Koncepčne bude každá strana nakreslená definovaním štyroch rohov a nechaním OpenGL spojí čiary a vyplní ju vami definovanou farbou. Nasledujú kroky, ako to urobiť.
  2. 2
    Pridajte príkaz glclear (). V prvom kroku je potrebné vziať v tejto funkcii, je jasné, farby a Z vyrovnávacej pamäte. Bez týchto krokov môžu byť pod novými kresbami stále viditeľné staré kresby a nakreslené objekty by neboli na správnom mieste na obrazovke.
    void display () {// Čistá obrazovka a Z-buffer glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
  3. 3
    Pridajte glbegin () a glend (). OpenGL definuje objekty ako kombinácie rôznych polygónov. Použitie glBegin () príkaz, efektívne odložil ceruzku, ktorá bude čerpať tvar. Ak chcete zdvihnúť ceruzku a začať nový tvar, musíte použiť príkaz glEnd (). V tomto tutoriáli použijete GL_POLYGON na nakreslenie každej strany kocky, ale na vytvorenie ďalších tvarov je možné použiť aj ďalšie možnosti parametrov, ako napríklad GL_LINE, GL_QUAD alebo GL_TRIANGLE.
    • Tu budete začínať od prednej časti svojej kocky. Neskôr pridáte farbu na všetkých 6 strán.
    • // Viacfarebná strana - PREDNÁ glBegin (GL_POLYGON); // V nasledujúcom kroku budú pridané vrcholy glEnd (); 
    Všeobecnou myšlienkou vašej kocky je nakresliť všetkých šesť strán jednotlivo
    Všeobecnou myšlienkou vašej kocky je nakresliť všetkých šesť strán jednotlivo a umiestniť ich do príslušnej polohy.
  4. 4
    Pridajte glvertex3f (). Keď ste uviedli, že chcete začať s mnohouholníkom, musíte definovať vrcholy objektu. glVertex má niekoľko foriem v závislosti od toho, čo chcete s objektom robiť.
    • Prvá je, v koľkých dimenziách pracujete. 3 vyššie v glVertex3f hovorí, že kreslíte v 3 dimenziách. Je tiež možné pracovať v 2 alebo 4 rozmeroch. F vyššie v glVertex3f hovorí, že pracujete s číslami s pohyblivou rádovou čiarkou. Môžete tiež použiť krátke, celé alebo dvojité čísla.
    • Všimnite si, že tieto body sú definované proti smeru hodinových ručičiek. V tejto chvíli to nie je veľmi dôležité, ale keď začnete pracovať s osvetlením, textúrami a orientáciou na porážku, bude to veľmi dôležité, takže si zvyknite definovať svoje body teraz proti smeru hodinových ručičiek.
    • Pridajte sčítanie vrcholov medzi riadky glBegin () a glEnd ().
    • // Viacfarebná strana - PREDNÁ glBegin (GL_POLYGON); glVertex3f (-0,5, -0,5, -0,5); // P1 glVertex3f (-0,5, 0,5, -0,5); // P2 glVertex3f (0,5, 0,5, -0,5); // P3 glVertex3f (0,5, -0,5, -0,5); // P4 glEnd (); 
  5. 5
    Pridajte glcolor3f (). glColor funguje podobným spôsobom ako glVertex. Body môžete definovať ako šortky, celé čísla, štvorhry alebo plávajúce čísla. Každá farba má hodnotu od 0 do 1. Všetky 0 spôsobia, že bod bude čierny a všetky 1 body budú biele. 3 v glColor3f () sa vzťahuje na farebný systém RGB bez alfa kanála. Alfa farby definuje jej priehľadnosť. Ak chcete zmeniť úroveň alfa, použite glColor4f () s tým, že posledný parameter bude mať hodnotu 0 až 1 pre nepriehľadné až priehľadné.
    • Keď zavoláte glColor3f (), každý vrchol nakreslený od tohto bodu bude mať túto farbu. Ak teda chcete, aby všetky štyri vrcholy boli červené, jednoducho nastavte farbu raz pred príkazmi glVertex3f () a všetky vrcholy budú červené.
    • Predná strana definovaná nižšie ukazuje, ako definovať novú farbu pre každý vrchol. Keď to urobíte, môžete vidieť zaujímavú vlastnosť farieb OpenGL. Pretože každý vrchol mnohouholníka má svoju vlastnú farbu, OpenGL farby automaticky zmieša! Nasledujúci krok ukáže, ako priradiť štyri vrcholy rovnakou farbou.
    • // Viacfarebná strana - PREDNÁ glBegin (GL_POLYGON); glColor3f (1,0, 0,0, 0,0); glVertex3f (0,5, -0,5, -0,5); // P1 je červená glColor3f (0,0, 1,0, 0,0); glVertex3f (0,5, 0,5, -0,5); // P2 je zelená glColor3f (0,0, 0,0, 1,0); glVertex3f (-0,5, 0,5, -0,5); // P3 je modrá glColor3f (1,0, 0,0, 1,0); glVertex3f (-0,5, -0,5, -0,5); // P4 je purpurový glEnd (); 
  6. 6
    Zvládnite ostatné strany. Zistite, aké bude umiestnenie každého vrcholu pre ostatných päť strán kocky, ale pre jednoduchosť tieto boli vypočítané za vás a sú zahrnuté v konečnej funkcii display () nižšie.
    • // Biela strana - SPÄŤ glBegin (GL_POLYGON); glColor3f (1,0, 1,0, 1,0); glVertex3f (0,5, -0,5, 0,5); glVertex3f (0,5, 0,5, 0,5); glVertex3f (-0,5, 0,5, 0,5); glVertex3f (-0,5, -0,5, 0,5); glEnd (); // Fialová strana - SPRÁVNE glBegin (GL_POLYGON); glColor3f (1,0, 0,0, 1,0); glVertex3f (0,5, -0,5, -0,5); glVertex3f (0,5, 0,5, -0,5); glVertex3f (0,5, 0,5, 0,5); glVertex3f (0,5, -0,5, 0,5); glEnd (); // Zelená strana - VĽAVO glBegin (GL_POLYGON); glColor3f (0,0, 1,0, 0,0); glVertex3f (-0,5, -0,5, 0,5); glVertex3f (-0,5, 0,5, 0,5); glVertex3f (-0,5, 0,5, -0,5); glVertex3f (-0,5, -0,5, -0,5); glEnd (); // Modrá strana - TOP glBegin (GL_POLYGON); glColor3f (0,0, 0,0, 1,0); glVertex3f (0,5, 0,5, 0,5); glVertex3f (0,5, 0,5, -0,5); glVertex3f (-0,5, 0,5, -0,5); glVertex3f (-0,5, 0,5, 0,5); glEnd (); // Červená strana - BOTTOM glBegin (GL_POLYGON); glColor3f (1,0,0,0, 0,0); glVertex3f (0,5, -0,5, -0,5); glVertex3f (0,5, -0,5, 0,5); glVertex3f (-0,5, -0,5, 0,5); glVertex3f (-0,5, -0,5, -0,5); glEnd (); glFlush (); glutSwapBuffers (); } 
    • Chceme tiež pridať dva posledné riadky kódu pre túto funkciu. Jedná sa o glFlush (); a glutSwapBuffers (); ktoré nám poskytujú efekt dvojitého ukladania do vyrovnávacej pamäte, o ktorom ste sa dozvedeli skôr.

Časť 3 z 3: Interaktivita používateľov

  1. 1
    Pridajte špeciálne klávesy (). Ste takmer hotoví, ale v súčasnosti môžete kocku nakresliť, ale nemôžete ju otáčať. Za týmto účelom vytvoríte funkciu specialKeys (), ktorá nám umožní stlačiť klávesy so šípkami a otočiť kocku!
    • Z tohto dôvodu ste deklarovali globálne premenné rotate_x a rotate_y. Keď stlačíte šípku doprava a doľava, funkcia rotate_y sa zvýši alebo zníži o 5 stupňov. Podobne, keď stlačíte klávesy so šípkou nahor a nadol, rotate_x sa zodpovedajúcim spôsobom zmení.
    • void specialKeys (int key, int x, int y) {// Šípka doprava - zvýši rotáciu o 5 stupňov, ak (kláves == GLUT_KEY_RIGHT) rotate_y += 5; // Šípka doľava - zníženie rotácie o 5 stupňov inak, ak (kláves == GLUT_KEY_LEFT) rotate_y - = 5; else if (key == GLUT_KEY_UP) rotate_x += 5; else if (key == GLUT_KEY_DOWN) rotate_x -= 5; // Žiadosť o aktualizáciu displeja glutPostRedisplay (); } 
  2. 2
    Pridajte glrotate (). Vaše posledné vyhlásenie je pridať príkaz, ktorý bude otáčať váš objekt. Vráťte sa späť na funkciu display () a pred PREDNÚ stranu pridajte tieto riadky:
    • // Reset transformácií glLoadIdentity (); // Rotate when user changes rotate_x and rotate_y glRotatef (rotate_x, 1,0, 0,0, 0,0); glRotatef (rotate_y, 0,0, 1,0, 0,0); // Viacfarebná strana - PREDNÁ.... 
    • Najprv si všimnite, že syntax glRotatef () je podobná syntaxi glColor3f () a glVertex3f (), ale vždy vyžaduje 4 parametre. Prvým parametrom je stupeň rotácie, ktorý sa má použiť. Nasledujúce tri parametre definujú, ktorá os sa má otáčať, pričom prvá je os x, druhá os y a tretia os z. Teraz sa musíte otáčať iba okolo osi x a y.
    • Všetky transformácie, ktoré napíšete do svojho programu, vyžadujú podobné riadky. Koncepčne si to môžete predstaviť ako otáčanie predmetu okolo osi x o hodnotu definovanú pomocou rotate_x a následné otáčanie okolo osi y otáčaním_y. OpenGL však kombinuje všetky tieto príkazy do jednej maticovej transformácie. Pri každom volaní funkcie zobrazenia, môžete vytvoriť transformačný matice a glLoadIdentity () zaručí, že budete začať s novou matricou v každom priechode.
    • Ďalšie transformačné funkcie, ktoré môžete použiť, sú glTranslatef () a glScalef (). Tieto funkcie sú podobné funkciám glRotatef () s tou výnimkou, že na preklad alebo zmenu veľkosti objektu vyžadujú iba 3 parametre, hodnoty x, y a z.
    • Aby ste získali správny efekt pri aplikácii všetkých troch transformácií na jeden objekt, musíte ich použiť v správnom poradí. Vždy ich napíšte v poradí glTranslate, glRotate, potom glScale. OpenGL v zásade aplikuje transformácie spôsobom zdola nahor. Aby ste to pochopili, skúste si predstaviť, ako by vyzerala jednoduchá kocka 1x1x1 s transformáciami, keby ich OpenGL aplikoval zhora nadol a keby ich OpenGL použil zdola nahor.
    Ako môžem nájsť súradnice tejto kocky
    Ako môžem nájsť súradnice tejto kocky?
  3. 3
    Pridajte nasledujúce príkazy na zmenu veľkosti kocky o 2 pozdĺž osi x, 2 pozdĺž osi y, otočenie kocky o 180 stupňov okolo osi y a preloženie kocky o 0,1 pozdĺž osi x. Uistite sa, že ste ich usporiadali rovnako ako predchádzajúce príkazy glRotate () v správnom poradí, ako je popísané vyššie. (Ak si nie ste istí, urobí sa to v konečnom kóde na konci tutoriálu.)
    // Ostatné transformácie glTranslatef (0,1, 0,0, 0,0); glRotatef (180, 0,0, 1,0, 0,0); glScalef (2,0, 2,0, 0,0); 
  4. 4
    Skompilujte a spustite svoj kód. Za predpokladu, že ako kompilátor používate gcc, spustite tieto príkazy z terminálu na kompiláciu a testovanie programu.
    V systéme Linux: gcc cube.c -o cube -lglut -lGL./ mycube V systéme Mac: gcc -o foo foo.c -framework GLUT -framework OpenGL./ mycube V systéme Windows: gcc -Wall -ofoo foo.c -lglut32cu - lglu32 -lopengl32./ mycube 
  5. 5
    Skontrolujte svoj kompletný kód. Malo by to byť takto:
    // // Súbor: mycube.c // Autor: Matt Daisley // Vytvorené: 22 5012 // Projekt: Zdrojový kód pre Make a Cube v OpenGL // Popis: Vytvorí okno OpenGL a nakreslí 3D kocku // To používateľ sa môže otáčať pomocou klávesov so šípkami // // Ovládacie prvky: Šípka doľava - Otočiť doľava // Šípka doprava - Otočiť doprava // Šípka hore - Otočiť nahor // Šípka nadol - Otočiť nadol // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // Obsahuje // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #include <stdio.h> #include <stdarg.h> #include <math.h> #define GL_GLEXT_PROTOTYPES #ifdef _APPLE_ #include <GLUT/glut.h> #else #include <GL/glut. h> #endif // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // Funkčné prototypy // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - prázdne zobrazenie (); neplatné špeciálne klávesy ();// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // Globálne premenné // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - dvojité otočenie_y = 0; dvojité otočenie_x = 0; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // displej () Funkcia spätného volania // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - prázdne zobrazenie () {// Čistá obrazovka a Z -buffer glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Reset transformácií glLoadIdentity (); // Ostatné transformácie // glTranslatef (0,1, 0,0, 0,0); // Nie je zahrnuté // glRotatef (180, 0,0, 1,0, 0,0); // Nie je zahrnuté // Rotate when user changes rotate_x and rotate_y glRotatef (rotate_x, 1,0, 0,0, 0,0); glRotatef (rotate_y, 0,0, 1,0, 0,0); // Ostatné transformácie // glScalef (2,0, 2,0, 0,0); // Nie je súčasťou // Viacfarebná strana - PREDNÁ glBegin (GL_POLYGON);glColor3f (1,0, 0,0, 0,0); glVertex3f (0,5, -0,5, -0,5); // P1 je červená glColor3f (0,0, 1,0, 0,0); glVertex3f (0,5, 0,5, -0,5); // P2 je zelená glColor3f (0,0, 0,0, 1,0); glVertex3f (-0,5, 0,5, -0,5); // P3 je modrá glColor3f (1,0, 0,0, 1,0); glVertex3f (-0,5, -0,5, -0,5); // P4 je purpurový glEnd (); // Biela strana - SPÄŤ glBegin (GL_POLYGON); glColor3f (1,0, 1,0, 1,0); glVertex3f (0,5, -0,5, 0,5); glVertex3f (0,5, 0,5, 0,5); glVertex3f (-0,5, 0,5, 0,5); glVertex3f (-0,5, -0,5, 0,5); glEnd (); // Fialová strana - SPRÁVNE glBegin (GL_POLYGON); glColor3f (1,0, 0,0, 1,0); glVertex3f (0,5, -0,5, -0,5); glVertex3f (0,5, 0,5, -0,5); glVertex3f (0,5, 0,5, 0,5); glVertex3f (0,5, -0,5, 0,5); glEnd (); // Zelená strana - VĽAVO glBegin (GL_POLYGON); glColor3f (0,0, 1,0, 0,0); glVertex3f (-0,5, -0,5, 0,5); glVertex3f (-0,5, 0,5, 0,5); glVertex3f (-0,5, 0,5,-0,5); glVertex3f (-0,5, -0,5, -0,5); glEnd (); // Modrá strana - TOP glBegin (GL_POLYGON); glColor3f (0,0, 0,0, 1,0); glVertex3f (0,5, 0,5, 0,5); glVertex3f (0,5, 0,5, -0,5); glVertex3f (-0,5, 0,5, -0,5); glVertex3f (-0,5, 0,5, 0,5); glEnd (); // Červená strana - BOTTOM glBegin (GL_POLYGON); glColor3f (1,0, 0,0, 0,0); glVertex3f (0,5, -0,5, -0,5); glVertex3f (0,5, -0,5, 0,5); glVertex3f (-0,5, -0,5, 0,5); glVertex3f (-0,5, -0,5, -0,5); glEnd (); glFlush (); glutSwapBuffers (); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // // Funkcia spätného volania specialKeys () // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - neplatné špeciálne klávesy (kláves int, int x, int y) {// šípka doprava - zvýšenie rotácie o 5 stupňov, ak (kláves == GLUT_KEY_RIGHT) rotate_y += 5;// Šípka doľava - zníženie rotácie o 5 stupňov inak, ak (kláves == GLUT_KEY_LEFT) rotate_y - = 5; else if (key == GLUT_KEY_UP) rotate_x += 5; else if (key == GLUT_KEY_DOWN) rotate_x -= 5; // Žiadosť o aktualizáciu displeja glutPostRedisplay (); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // hlavná () funkcia // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - int main (int argc, char* argv []) {// Inicializujte GLUT a spracujte užívateľské parametre glutInit (& argc, argv); // Požiadajte okno s dvojitou vyrovnávacou pamäťou o skutočnú farbu pomocou Z-bufferu glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); // Vytvorenie okna glutCreateWindow ("Úžasná kocka"); // Povoliť test hĺbky Z-buffera glEnable (GL_DEPTH_TEST); // Funkcie spätného volania glutDisplayFunc (zobrazenie); glutSpecialFunc (specialKeys); // Odovzdanie kontroly GLUT pre udalosti glutMainLoop ();// Návrat do OS návrat 0; } 

Otázky a odpovede

  • Ako môžem nájsť súradnice tejto kocky?
    Skúste nájsť súradnice štvorca. Môže to pomôcť, pretože štvorec je dvojrozmerný, zatiaľ čo kocka je trojrozmerný.

FacebookTwitterInstagramPinterestLinkedInGoogle+YoutubeRedditDribbbleBehanceGithubCodePenWhatsappEmail