Strumenti Utente



tutorial_qt:opengl_02_vbo_qopenglbuffer

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
Ultima revisione Entrambe le parti successive la revisione
tutorial_qt:opengl_02_vbo_qopenglbuffer [2015/01/27 07:22]
mickele
tutorial_qt:opengl_02_vbo_qopenglbuffer [2015/05/05 14:41]
mickele
Linea 1: Linea 1:
-====== Qt e OpenGL: Vertex Buffer Object la classe QOpenGLBuffer ======+====== Qt e OpenGL: Vertex Buffer Object con la classe QOpenGLBuffer ======
  
 Abbiamo visto nei precedenti articoli come accedere ala funzionalità di OpenGL derivando le classi [[tutorial_qt:opengl_01|QWindow]] e [[tutorial_qt:opengl_01bis|QOpenGLWidget]]. Abbiamo visto nei precedenti articoli come accedere ala funzionalità di OpenGL derivando le classi [[tutorial_qt:opengl_01|QWindow]] e [[tutorial_qt:opengl_01bis|QOpenGLWidget]].
Linea 94: Linea 94:
 Qualora siate interessati ad approfondire i comandi appena visti vi rimando al tutorial di Wikibooks disponibile all'indirizzo [[http://en.wikibooks.org/wiki/OpenGL_Programming/Modern_OpenGL_Tutorial_02|en.wikibooks.org/wiki/OpenGL_Programming/Modern_OpenGL_Tutorial_02]]. Qualora siate interessati ad approfondire i comandi appena visti vi rimando al tutorial di Wikibooks disponibile all'indirizzo [[http://en.wikibooks.org/wiki/OpenGL_Programming/Modern_OpenGL_Tutorial_02|en.wikibooks.org/wiki/OpenGL_Programming/Modern_OpenGL_Tutorial_02]].
  
-===== I VBO alla Qt-way: la classe QOpenGLBuffer =====+===== I VBO secondo la Qt-way: la classe QOpenGLBuffer =====
  
 Adesso analizziamo l'utilizzo dei VBO con le librerie Qt. Ci serviremo della classe [[http://doc.qt.io/qt-5/qopenglbuffer.html|QOpenGLBuffer]]. Adesso analizziamo l'utilizzo dei VBO con le librerie Qt. Ci serviremo della classe [[http://doc.qt.io/qt-5/qopenglbuffer.html|QOpenGLBuffer]].
Linea 117: Linea 117:
     m_vertexVBO->create();     m_vertexVBO->create();
  
-Col metodo setUsagePattern possiamo definire la tipologia di dati che stiamo trasmettendo, ad esempio se si tratti di dati costanti o che cambieranno, di modo da ottimizzare l'impiego delle risorse di sistema. Nel nostro caso abbiamo a che fare con valoriuseremo perciò+Col metodo setUsagePattern definiamo quante volte i dati in questione verranno letti e reimpostati nel coso del prgramma, di modo da ottimizzare l'impiego delle risorse di sistema. Nel nostro caso abbiamo a che fare con valori che verranno impostati una volta ma letti molte volte; useremo perciò
  
     m_vertexVBO->setUsagePattern( QOpenGLBuffer::StaticDraw );     m_vertexVBO->setUsagePattern( QOpenGLBuffer::StaticDraw );
Linea 164: Linea 164:
     glDrawArrays(GL_TRIANGLES, 0, 3);     glDrawArrays(GL_TRIANGLES, 0, 3);
  
 +Al link [[http://ingegnerialibera.altervista.org/blog-file/opengltut02-02.zip|ingegnerialibera.altervista.org/blog-file/opengltut02-02.zip]] troverete il codice finale con tutte le modifiche fin qui viste.
  
-Al link [[http://ingegnerialibera.altervista.org/blog-file/opengltut02-02.zip|ingegnerialibera.altervista.org/blog-file/opengltut02-02.zip]] troverete il codice funzoinante con tutte le modifiche fin qui viste. +Se confrontiamo i due diversi approcci (quello generale con l'impiego delle API OpenGL e quello specifico delle librerie Qt) notiamo che il principale vantaggio della classe QOpenGLBuffer non sia tanto nella riduzione del codice, quanto nella sua maggior leggibilità.
- +
-Se confrontiamo i due diversi approcci (quello generale con l'impiego diretto delle API OpenGL e quello specifico delle librerie Qt) notiamo che il principale vantaggio della classe QOpenGLBuffer non sia tanto nella riduzione del codice, quanto nella sua maggior leggibilità.+
  
 ===== Facciamo girare il triangolo! ===== ===== Facciamo girare il triangolo! =====
Linea 201: Linea 200:
 Nel codice disponibile all'indirizzo [[http://ingegnerialibera.altervista.org/blog-file/opengltut02-03.zip|ingegnerialibera.altervista.org/blog-file/opengltut02-03.zip]] troverete che la rotazione si interrompe o riprende al click del mouse sulla finestra. Lascio a voi l'analisi di questa piccola variante sul tema. Nel codice disponibile all'indirizzo [[http://ingegnerialibera.altervista.org/blog-file/opengltut02-03.zip|ingegnerialibera.altervista.org/blog-file/opengltut02-03.zip]] troverete che la rotazione si interrompe o riprende al click del mouse sulla finestra. Lascio a voi l'analisi di questa piccola variante sul tema.
  
-===== Post correlati =====+===== Potrebbero interessarti anche... =====
  
-  * [[tutorial_qt:opengl_01|Qt e Opengl: Introduzione]] +Un elenco degli altri articoli disponibili sull'argomento
-  * [[tutorial_qt:opengl_01bis|Qt e Opengl: Intro alla classe QOpenGLWidget]]+<blog related> 
 +</blog>
  

tutorial_qt/opengl_02_vbo_qopenglbuffer.txt · Ultima modifica: 2015/05/05 14:42 da mickele

Facebook Twitter Google+ Digg Reddit LinkedIn StumbleUpon Email