OpenGLoader v.0.1

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

Comments are closed.