OpenGL学习之路——安装
Posted amybklp
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenGL学习之路——安装相关的知识,希望对你有一定的参考价值。
我是在学习Qt的过程中,接触到2D、3D制图,也看到很多项目中会将Qt和OpenGL结合起来做开发,同时也对Qt里面的坐标系统云里雾里,遂决定两者结合起来学一下。
OpenGL是一个图形API,并不是一个独立的平台,因为我是基于QT C++平台,所以也选择了C++来作为OpenGL的工作语言。
首先搭建OpenGl的环境,就去网上找到一个视频教程:基于SDL2.0的库,照着视频配置了环境,敲了一通代码,敲得云里雾里,着色的时候出现Bug,没有理论支持,搜索解决不了所以决定先更换环境。
SDL2.0安装环境为 Win10 + VS2017 + SDL2-devel-2.0.10-VC+glm-0.9.9.6+glew-2.1.0-win32,将lib库和include文件夹抽取出来,方便项目调用,dll库放入执行文件夹内。
1)在调试三角形的时候,VS报错,发现还需要一个包:glutdlls37beta,而这步在教程里并没有出现
2)调试着色环境的时候,bug解决不了,怀疑和视频中的版本不一致导致,决定找一个详细的教程。
根据以下教程进行重新开始:
https://learnopenglcn.github.io/01%20Getting%20started/01%20OpenGL/
基于glfw-3.3+GLAD+VS2017
1)CMake生成GLFW工程文件(win32),VS2017直接编译GLFW.sln工程(x86 + debug)
2)GLAD是在线服务,选择OpenGl版本的时候,可以下载glview工具来查看你的显卡支持的OpenGl版本,我的是Version4.3
github上的这篇教程很详细,基本按照步骤来做,我用的VS2017 版本些许出入也并没有影响编译。
教程里说GLFW替代了GLEW,我个人对SDL2和GLFW的区别也查了一下相关资源
上下文与窗口包
OpenGL 上下文(英语:OpenGL context)的创建过程相当复杂,在不同的操作系统上也需要不同的做法。因此很多游戏开发和用户界面库都提供了自动创建 OpenGL 上下文的功能,其中包括SDL、Allegro、SFML、FLTK、Qt等。也有一些库是专门用来创建 OpenGL 窗口的,其中最早的便是GLUT,后被freeglut取代,比较新的也有GLFW可以使用。
-
以下包可以用来创建并管理 OpenGL 窗口,也可以管理输入,但几乎没有除此以外的其它功能:
-
GLFW——跨平台窗口和键盘、鼠标、手柄处理;偏向游戏
-
freeglut——跨平台窗口和键盘、鼠标处理;API 是 GLUT API 的超集,同时也比 GLUT 更新、更稳定
-
GLUT——早期的窗口处理库,已不再维护
-
支持创建 OpenGL 窗口的还有一些“多媒体库”,同时还支持输入、声音等类似游戏的程序所需要的功能:
-
Allegro 5——跨平台多媒体库,提供针对游戏开发的 C API
-
SDL——跨平台多媒体库,提供 C API
-
SFML——跨平台多媒体库,提供 C++ API;同时也提供 C#、Java、Haskell、Go 等语言的绑定
-
窗口包
-
FLTK——小型的跨平台 C++ 窗口组件库
-
Qt——跨平台 C++ 窗口组件库,提供了许多 OpenGL 辅助对象,抽象掉了桌面版 OpenGL 与 OpenGL ES 之间的区别
-
wxWidgets——跨平台 C++ 窗口组件库
Qt中已经封装好OpenGL,并且和GUI以及IO相关的处理Qt更便捷,结合教程学习起来更轻松一些。
以上是关于OpenGL学习之路——安装的主要内容,如果未能解决你的问题,请参考以下文章