零.前言
虽然没想到这么快就开启了OpenGL大坑,但是DirectX学得差不多了,基本内容都有过一遍,是时候两者相互对照着学了,这样自己对图形学的知识会更加精进一步,等后面大师级别就会学OSG和图形学基本原理,看看论文什么的
一.简介
OpenGL(Open Graphics Library,开放式图形库)是用于渲染2D 3D场景的跨语言跨平台的应用编程接口(API),这个接口由350个不同的函数调用组成
由于不同操作系统的差异,OpenGL上下文(类似WinSDK和MFC的关系)的创建过程和IO处理相当复杂,所以freeglut(代替不再维护的GLUT) GLFW是专门用来创建OpenGL窗口
先学freeglut兼容过去的版本,再学GLFW是未来框架的趋势
另外SDL QT也是用OpenGL渲染的
OpenGL ES就是专门为嵌入式设备设计的
WebGL主要应用于网页上
OpenGL可以在三维空间中绘制各种图元(点 直线 多边形等),还支持光照和着色 纹理贴图 混合透明 动画 特殊效果等
OpenGL并不包含任何窗口管理 用户交互 文件I/O等
二.OpenGL库
1.glew和glad
glew(The OpenGL Extension Wrangler Library)是对底层OpenGL接口的封装,可以让你的代码跨平台。
glad与glew作用相同,可以看作它的升级版。
2.Freeglut(glut)和glfw
Freeglut(OpenGL Utility Toolkit)主要用于创建OpenGL上下文、接收一些鼠标键盘事件等等。
glfw(Graphics Library Framework)是Freeglut升级版,作用基本一样
通常来说glad和glfw配合使用,glad + glfw
glew和Freeglut配合使用,glew + Freeglut
四.OpenGL历史
1992年 OpenGL第一个版本
2004年 OpenGL第二个版本