Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
1. OpenGL: Široko používaná, výkonná a relatívne nízka úroveň knižnice. Poskytuje vám veľkú kontrolu, ale vyžaduje viac manuálnej práce.
* Zastúpenie: Spravidla budete reprezentovať svoju sieť pomocou vrcholov (3D súradnice) a tvárí (indexy do vrcholového poľa definujúce trojuholníky alebo iné polygóny). Môže to vyzerať:
`` C
typedef struct {
float x, y, z;
} Vrchol;
typedef struct {
nepodpísané int a, b, c; // Indexy do poľa vrcholu
} Tvár;
// príklad zaostrte dáta
Vrcholy vrcholy [] ={
{0,0F, 0,0F, 0,0F},
{1,0F, 0,0F, 0,0F},
{0,0F, 1,0F, 0,0F},
// ... viac vrcholov
};
Tváre tváre [] ={
{0, 1, 2}, // trojuholník definovaný vrcholmi 0, 1 a 2
// ... viac tvárí
};
`` `
* OpenGL kód (zjednodušený): Toto je vysoko zjednodušený príklad. Kontrola chýb a podrobnejšie nastavenie sú vynechané pre stručnosť.
`` C
#include
// ... Údaje o vrchole a tvári, ako je uvedené vyššie ...
void display () {
GlClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glbegin (gl_triangles); // alebo gl_quads, gl_polygon v závislosti od vašich tvárí
pre (int i =0; i
glvertex3fv (&vrcholy [tváre [i] .b]);
glvertex3fv (&vrcholy [faces [i] .c]);
}
glend ();
glflush ();
}
int main (int argc, char ** argv) {
glutinit (&argc, argv);
// ... nastavenie okna ...
glutdisplayfunc (displej);
glutmainloop ();
návrat 0;
}
`` `
* klady: Jemnozrnná kontrola, široko podporovaná, dobrý výkon.
* nevýhody: Krivka strmejšieho učenia, viac podrobnejšieho kódu, vyžaduje riadenie stavu OpenGL.
2. GLFW + Glad + OpenGL: Je to modernejší prístup ako použitie iba GLUT. GLFW spracováva tvorbu a vstup okna, zatiaľ čo radosť načíta funkcie OpenGL. Všeobecne sa to uprednostňuje pred GLUT pre nové projekty.
* klady: Čistejšia architektúra ako GLUT, lepšia podpora viacerých platforiem.
* nevýhody: O niečo zložitejšie nastavenie.
3. Knižnice na vyššej úrovni: Tieto abstraktné veľkú časť detailov OpenGL s nízkou úrovňou.
* SDL2 (Simple DirectMedia Layer): Zatiaľ čo predovšetkým pre 2D, SDL2 sa môže použiť s OpenGL na 3D vykreslenie. Zjednodušuje správu okna a vstupov.
* drahý imgui: Vynikajúce na vytváranie používateľských rozhraní (používateľského rozhrania) na vrchu vašej 3D vizualizácie, ktorá vám umožní pridať ovládacie prvky, informačné displeje atď.
4. Ostatné knižnice: Existuje mnoho ďalších 3D grafických knižníc, ale môžu si vyžadovať viac závislostí alebo mať konkrétne úvahy o udeľovaní licencií.
Kroky na vizualizáciu:
1. Vyberte knižnicu: Vyberte OpenGL (s GLFW a odporúčanými odporúčanými) alebo možnosť vyššej úrovne na základe vašich skúseností a požiadaviek na projekt.
2. Nastavte vývojové prostredie: Nainštalujte vybranú knižnicu a jej závislosti (ako kompilátor, linker atď.).
3. Predstavujte vaše údaje o sieťach: Štruktúrujte svoje údaje o vrchole a tvári, ako je to znázornené na vyššie uvedenom príklade. Tieto údaje môžete načítať zo súboru (napr. OBJ, STL).
4. Napíšte kód vykresľovania: Použite funkcie knižnice na vytvorenie okna, nastavenie kontextu OpenGL, shaderov načítania (ak používate shadery, ktoré sú bežné s moderným OpenGL) a nakreslite sieť.
5. kompiláciu a spustenie: Zostavte svoj kód C a vykonajte ho, aby ste videli 3D vizualizáciu.
Pamätajte, že efektívne 3D grafické programovanie zahŕňa programovanie Shader (GLSL pre OpenGL) na riadenie osvetlenia, materiálov a ďalších vizuálnych efektov. Pred pridaním zložitosti začnite jednoduchým príkladom na vykreslenie základnej siete. Existuje veľa tutoriálov OpenGL, ktoré vám pomôžu naučiť sa základy.