Uno dei problemi che devo affrontare nel porting (anche se sarebbe corretto parlare di riscriuttura) di FREE!Ship è la gestione grafica del modello. In pratica come disegno le varie viste.In questo caso oltretutto, guardare i sorgenti originali non ha senso: sembrano non usare assolutamente OpenGL e sembrerebbe che l’autore si sia scritto tutta la parte di gestione della grafica, con il risultato di avere 640 Kb di codice che disegna da spulciare. D’altronde non sono riuscito a trovare una libreria 3D che incapsuli le OpenGL che sia abbastanza facile da installare sia su Linux che su Windows, e quindi mi sono ritrovato a fare tutto a manina. Questo approccio ha i suoi vantaggi (è immediatamente portabile visto che lo sto facendo in python) ma anche i suoi svantaggi (uno fra tutti è che si deve scrivere un sacco di codice in più)In ogni caso, visto le difficoltà nel reperire una buona libreria, la migliore che ho trovato è libQGLViewer: è un incubo installarla sotto Windows ma la terrò sotto controllo, mi sono messo di buzzo buono e ho cominciato a scrivere codice. Il risultato di alcune ore di hacking selvaggio è che ho una bella classe, che eredita da QGLWidget e che implementa parte di quello che serve, anche se in maniera tutt’altro che ottimale, ma soprattutto ho un’infrastruttura pronta per proseguire nello sviluppo, nonostante ci siano ancora un po’ di problemi da risolvere (uno su tutti: quando scelgo di mostrare tutti e due i lati dello scafo, viene visualizzato correttamente solo su una vista, a caso per giunta) Per il momento ho messo a punto lo zoom e le viste 2D, anche se queste ultime le devo sistemare per usare, se possibile, glOrtho() al posto di glRotatef(), approccio che mi sembra più corretto.

 Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

   
© 2011 G.R.Y.S. Suffusion theme by Sayontan Sinha