关于 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), 查找相关资料后导入对应文件