前言
我的环境是macOS High Sierra + Xcode 10 + glfw + glew, 相关的配置方法请参考这篇博客.
关于OpenGL我还是零基础, 所以本文所说的仅是我个人目前的理解, 所以欢迎讨论和纠错.
关于OpenGL
OpenGL是一个用于进行图形绘制的库 (OpenCV是用于图像处理的库), 一些高级语言和框架中的几何绘制以及GUI组件的绘制实际上都是对OpenGL的调用.
OpenGL是一个底层的库, 所以它的代码非常繁琐, 比如你需要写好几十行代码才能画出一条线. 这使得它的学习门槛比较高 (我大二的时候想自学结果被劝退), 但是优点是速度快且灵活度高.
OpenGL的绘制过程类似于源代码的编译过程, 分为多个模块, 其中每一个模块都是一个Shader.
编译过程 (忽略预处理和链接过程)
OpenGL绘制过程 (简略版)