Vi avevo avvertito che stavo lavorando ad un piccolo progetto didattico. Sono quindi lieto di annunciarvi che finalmente è disponibile una versione funzionante di questa piccola libreria.
OpenGLoader è un semplicissimo mesh-loader (sistema che si occupa di caricare in memoria la struttura 3D di un oggetto scritta in un file) scritto in C++ che potete utilizzare per caricare dei modelli pre-costruiti all’interno delle vostre applicazioni. Questa libreria non ha affatto intenzione di sostituirsi a librerie professionali ma vuole essere una via estremamente breve per inserire mesh complessi in programmi di complessità medio-bassa.
Il primo intento di OpenGLoader è di essere istruttivo. Il sorgente è volutamente semplice, super modulare e “all-inclusive” ovvero non fa uso di alcuna libreria esterna (escluse le OpenGL, ovviamente).
Il secondo intento è di essere estremamente veloce da usare. Infatti una mesh può essere caricata con 2 comandi:
gloDLInitFile("/home/davide/scimmia_tr.obj", gloReader::GLO_OBJ);
GLuint dl;
gloDLRead(&dl);
La sintassi è estremamente semplice: si inizializza il tutto con gloDLInitFile passando come parametro la posizione e il formato del file. Poi si genera un display-list tramite gloDLRead.
Per chi non conoscesse le display list vi dico che per essere disegnate basta dare questi comandi:
glColor3f(1.0, 1.0, 1.0);
glCallList(dl);
glFlush();
Il programma è ancora molto immaturo, funziona ma non è stato ancora testato a dovere e, inoltre, credo che dia ancora qualche problema di memory-leak dato che quell’aspetto lo devo ancora valutare accuratamente. Quindi usatelo per giocarci ma vi sconsiglio ancora di usarlo per applicazioni “serie”.
La versione inoltre è estremamente limitata rispetto alle caratteristiche che ho programmato per la versione completa. Ecco alcune limitazioni:
- Non supporta la decodifica delle texture.
- Non supporta la decodifica dei materiali.
- Supporta esclusivamente i file nel formato .OBJ.
- Output solamente sotto forma di display-list.
Tuttavia questo basta e avanza per poter usare, ad esempio, Blender per costruire modelli, esportarli in OBJ e importarli nella vostra applicazione.
Detto questo vi lascio alla pagina di git-hub dove trovate il codice sorgente e il download della documentazione delle API. In attesa che completi una documentazione più dettagliata.
REPO GIT
Vi avevo avvertito che stavo lavorando ad un piccolo progetto didattico. Sono quindi lieto di annunciarvi che finalmente è disponibile una versione funzionante di questa piccola libreria. OpenGLoader è un...
Recent Comments