九月份都快過去了,學生們也都開學了,我想校園也會熱鬧許多吧,在CSDN上也相應地熱鬧了一些。中秋節也過去了,自己身邊還有很多沒有吃完的月餅,於是將月餅作為早餐每天早上吃一個,希望這樣不會浪費。
這個月的事情比較多,又比較忙,所以這麼晚才能抽出時間寫出一篇。這回介紹一下Qt對OpenGL的支援情況,話說半月前,我參加了上海地區的Qt研討會,Digia那邊的工程師介紹了一下Qt的發展情況,以及QML、Qt for Android、Boot to Qt的情況,讓我們這些初學者們對Qt有了新的認識,現在Qt的模組非常龐大,Qt的貢獻者有很多,使用Qt的人就更多了,估計有好幾百萬吧,它們或多或少使用著Qt的相關技術或部分技術,可以說,Qt正在默默地改變軟體開發,使用Qt的人一定會越來越多的。
會上工程師回答了在座提出的各種問題,客觀地說,有些問題實在是非常深奧,都扯上嵌入式那邊去了,我只有聽的份了。然後工程師回答了我一個關於Qt5和Graphics-View的問題,目前可以說處於這樣的一種狀態吧,Qt的QWidget大家族已經成熟,不會得到太大的發展了,而隨著Qt5的發展,新的介面類會嶄露頭角,比如QWindow、QSurface、QScreen這些類。但現在的狀況(Qt5.2即將出了),這些類和模組並不會對現有的GUI模組造成威脅,更不用說取代Qt4的GUI(在Qt5是QtGui和QtWidgets)模組了。自Qt4.4起,Qt擁有了Graphics-View架構,使用這個架構可以更加輕鬆地在視窗中嵌入任意你想要繪製的元素。但是據我所知,Qt5的那些類無法和Graphics-View架構進行整合,對於想要利用Qt中Graphics-View架構的同行們,只能退回Qt4的類進行開發了,Qt5的這些類對於建立純OpenGL還是有利的。
在qt-project論壇上,有人提問如何?底層是OpenGL渲染,上層是控制項,其實Qt中有一個非常有代表性的例子程式,它叫boxes,看了它的人想必都會覺得它非常驚豔吧。以前沒有時間去研究,這會兒我話了大概一個月的空餘時間將其研究出來,並仿製了一個小程式,與君共勉。
此程式使用了Qt的core、gui、widgets和opengl模組,渲染了一個3ds模型。建模水平爛,就先湊合吧。下面是程式的:
示範程式:這裡
程式原始碼:這裡