Qt5和OpenGL一概述
阿新 • • 發佈:2020-10-22
從Qt5開始,OpenGL不再是單獨模組,而是作為QtGUI核心的一部分。因為QtQuick基於該api實現。Qt作為基本的GUI開發框架,整合了2d和3d圖形技術。
我們知道,OpenGL本身只提供平臺無關的畫圖功能,而不包含特定平臺的視窗處理功能。而Qt中基本的視窗管理類為QWindow和QWidget就可以作為OpenGL畫圖的視窗(二者原本就支援2d畫圖,只是後來增加了OpenGL支援),在Qt5前期的版本(Qt5.0——Qt5.3)中,並沒有QOpenGLWindow和QOpenGLWidget兩個類,直到Qt5.4才出現。在這之前,需要自己繼承QWindow,通過setSurfaceType(
Qt5使用現代的OpenGL即可程式設計渲染管線,所以示例程式已經見不到以前的基於固定管線函式的程式碼。在新的OpenGL下,以前一些方便的函式功能幾乎都被glsl代替,而且需要自己實現這些功能。雖然比較靈活,但一定程度上增加了學習曲線。
基於glsl的基本渲染管線:
基於glsl和QOpenGLWindow、QOpenGLWidget的OpenGL程式設計步驟如下:
轉載於:https://my.oschina.net/assange/blog/540458