关于 OpenGL 编程中的部分过程的记录。
# 环境配置
# 绘制流程
图形学的一般渲染管线包括:
顶点数据处理 -> 顶点着色器 -> 细分着色器 -> 几何着色器 -> 剪切 -> 光栅化 -> 片元着色器
# OpenGL 概述
# OpenGL 中的数据类型
OpenGL 中可以不采用 C/C++ 原生的数据类型,如 int , float 等。取而代之的是 OpenGL 中自定义的数据类型。一般采用 GL* 表示,如 GLuint (unsigned int 形式), GLboolean (boolean 形式) 等。
# OpenGL 中的函数类型
OpenGL 中对对象的操作有四种基本的函数类型:
void glGen*()形式的函数负责进行 OpenGL 对象名称的分配。类似于一个指针变量的分配。void glBind*()形式的函数负责进行对象绑定。void glDelete*()形式的函数负责对象的释放。GLboolean glls*()形式的函数负责检查某个名称是否被分配为对象。
# 向 GPU 中传递数据
该步骤是在 GPU 显存中进行顶点数据存储的过程。
# Reference
VBO, VAO, EBO 理解
# 键盘回调处理
glut 用来实现键盘操作的 API.
extern void APIENTRY glutKeyboardFunc(void (*func)(unsigned char key, int x, int y)); // 获取键盘按下操作  | |
extern void APIENTRY glutKeyboardUpFunc(void (*func)(unsigned char key, int x, int y)); // 获取按键抬起操作  | 
关于键的描述,可以采用 ASCII 码表示的按键直接采用 ASCII 码表示其索引,其余定义了常量,例如:
| 常量 | 含义 | 
|---|---|
GLUT_KEY_F1 | F1 | 
GLUT_KEY_UP | 上方向键 (似乎不管用?) | 
这是一个参考:GLUT 键盘控制(glutKeyboardFunc 和 glutSpecialFunc)
# References
- CG 大作业 11.14
assimp 安装 Assimp + VSCODE + OpenGL + MinGW 环境配置全攻略- LearnOpenGL: Assimp
 - OpenGl 导入读取多个 3D 模型 并且添加鼠标控制移动旋转
 - 需要做的事情
- 确定导入模型的方式 (Assimp), 查找相关资料后导入对应文件
- 一步步学 OpenGL3.3+: 这是一个很棒的知乎专栏
- Import Model: 对应的油管视频
 
 - 三维模型格式转换神器 - assimp
 - [OpenGL] 使用 Assimp 导入模型 (Qt)
 - 参考以上两者的 import 思路
 - 通过 assimp 库读取多种格式的模型:一个 op 写的,也不错
 
 - 一步步学 OpenGL3.3+: 这是一个很棒的知乎专栏
 - 想明白数据结构
- Model Loading
 - VBO, VAO, EBO 理解
 
 - GLM 的使用
 - 键鼠事件处理
 - 变换矩阵再次熟悉
- OpenGL 场景漫游
 - OpenGL 3.3 教程翻译,源代码还没仔细看
 
 
 - 确定导入模型的方式 (Assimp), 查找相关资料后导入对应文件