首先需要知道的是,目前国内互联网上并行地流行两种类型的OpenGL教程:古老的固定流水线与现代的可编程流水线。这可以说是两种完全不同的模式,如果在寻找学习资料时不加区分,很容易被他们搅得一头雾水。
固定流水线的一般特点是使用glut库,大量使用glbegin、glend这一类状态机函数;可编程流水线的一般特点是使用glfw库,大量申请与绑定缓冲区(如顶点缓冲区),使用GLSL语言进行渲染控制。
再比如物体拾取,要识别鼠标点击了画面中哪一个模型:固定流水线采用picking机制,使用矩阵来进行拾取;而可编程流水线采用帧缓冲对象fbo进行拾取,这里的思想完全不一样。
我在这个地方卡了很久,没人告诉我有两种模式,tm宝贵的时间都浪费了…
大家一定要记住有两种完全不同的编程模式,网上很少有文章去区别他们,导致两种完全不同的路线同时出现在网络上。
另外建议学习现代流水线,不要费力去学习古老的固定流水线了!!!
学习资料
IHNF的博客该作者对各种OpenGL实现方式的认识颇为深刻,本系列文章是对他的拙劣模仿。
另外他使用QT作为GUI框架,使用QT creator作为编程IDE,而我打算用VS作为IDE。
learnopengl现代可编程流水线经典教程
环境搭建
本系列文章采用VS+QT+OpenGL的环境&#