Slip the surly bonds of earth, to touch the face of God

开始QT+OpenGL开发

最近因为学习数字几何处理,开始了对openGL的研究。有一个课下任务是写一个类似Photoshop的程序(当然功能没那么丰富),可以处理三维obj文件的读取和显示,并且能够进行简单的操作,诸如选取邻接点,邻接面片等,也包括高级一点的类似高斯滤波等功能。

其实很早就想学一下计算机图形编程了,也想做一下图形界面的工作,只是苦于没有好的契机,再加上研究生在图所读,这些东西不会说不过去。因此我就开始了OpenGL+QT的自学之路。

《开始QT+OpenGL开发》

QT、OpenGL、glut、glew、glfw

简单讲QT就是C/C++语言下的图形界面编程工具,微软自己有mfc,不过那个跨平台支持不好(说的好像我要做跨平台工具似的?),做出来的UI也不是很美观(或者说我不喜欢?),qt有一个QT Designer工具可以很容易地设计美观易用的界面。

OpenGL就是一个跨平台的图形应用程序编程接口,一直以为还得安装,原来显卡驱动里就已经自带对OpenGL的支持了,我的GTX1080可以支持OpenGL4.5。跟OpenGL处于竞争关系的就是大名鼎鼎的DirectX,相信喜欢玩游戏的你对他并不陌生。DirectX是微软出的,用于windows下的图形和游戏开发,现在大部分PC平台的大型游戏都是用的DX接口,最新版是win10支持的DirectX12。但是为什么OpenGL跨平台支持比竞争对手好这么多而且还开源,却没有PC大型游戏用呢?一个原因是微软比较卑鄙?,在自家windows上推广DX的同时不道德地打压OpenGL,果然还是牛x的公司有话语权。

glut是一个OpenGL的工具包,可以做一些窗口、键鼠操作、复杂物体建模的事情,但是比较老了,最近更新还是90年代的,像我这种人是最讨厌使用万年不更新的东西的,可是没办法,glfw这种更现代的工具包好像跟QT的窗口管理有些冲突(我没测试),而且毕竟glut不更新了,各种教程、例子都不会存在版本兼容性的问题?,还是用它吧,说不定以后会用更新的工具包。

glut毕竟很老了,大部分实现的都是OpenGL1.0的基本功能,而GLEW则是OpenGL2.0之后的一个工具包,古老的OpenGL还在使用固定管线,而现代化的OpenGL已经使用Shader了(虽然到底两个有啥区别,还是学习一段时间后再说吧)。

glfw就更现代了,轻量级开源跨平台,完全符合我对软件的选择风格,支持OpenGL和OpenGL ES(移动设备上的OpenGL),在不久的将来肯定要学一学。

资源

网上有一些学习OpenGL的资源,然后youtube上也有一些不错的教程,推荐几个我看还不错的吧。

Learn OpenGL:不错的开始,环境什么的配置很详细,内容也比较新。

官方的教程:有中文版的,内容主要是OpenGL3之后的东西。

QT + OpenGL with interface:youtube上的视频,对于QT和OpenGL的初学者非常友好,基本看过他的视频就走过了初学时很容易走歪的道路。不过视频没声音?

点赞

发表评论

电子邮件地址不会被公开。