OpenGL 图形学笔记
理解 3D 图形渲染的底层原理。无论上层用的是 Unity、Unreal、Godot 还是 PICO Spatial SDK、WebXR,所有的画面渲染最终都落到 GPU 层面。OpenGL 是最适合学习这些底层概念的入口。
📚 课程结构
第 0 阶段:准备工作
| # | 课程 | 描述 |
|---|
| 01 | 你好,OpenGL! | 图形世界的入口,渲染管线概览 |
| — | 环境搭建指南 | VS Code + CMake + 编译器安装 |
| — | 术语表 | OpenGL 关键术语速查 |
第 1 阶段:入门基础 (Getting Started)
| # | 课程 | 描述 |
|---|
| 02 | 创建窗口 | GLFW 初始化、窗口创建、渲染循环 |
| 03 | 第一个三角形 | VAO/VBO/EBO、绘制基础几何 |
| 04 | 着色器 (Shaders) | GLSL 语法、顶点/片段着色器编写 |
| 05 | 纹理 (Textures) | 纹理映射、纹理单元、坐标变换 |
| 06 | 变换 (Transformations) | 平移/旋转/缩放矩阵、GLM 库 |
| 07 | 坐标系统 | 局部→世界→观察→裁剪→屏幕空间 |
| 08 | 摄像机 (Camera) | 视角矩阵、欧拉角、WASD 移动、鼠标控制 |
| 09 | 入门篇实战回顾 | 综合练习与核心概念总结 |
第 2 阶段:光照 (Lighting)
| # | 课程 | 描述 |
|---|
| 10 | 颜色与基础光照 | Phong 光照模型、环境/漫反射/高光 |
| 11 | 材质 (Materials) | 材质属性定义与光照交互 |
| 12 | 光照贴图 | 漫反射贴图、高光贴图、放射光贴图 |
| 13 | 投光物 (Light Casters) | 平行光/点光源/聚光灯 |
| 14 | 多光源 | 多光源组合与混合照明 |
| 15 | 光照篇实战回顾 | 光照综合练习 |
第 3 阶段:模型加载与高级 OpenGL
| # | 课程 | 描述 |
|---|
| 16 | 模型加载 | Assimp 库、网格与模型类 |
| 17 | 深度测试与模板测试 | 深度缓冲、模板缓冲 |
| 18 | 混合与面剔除 | 透明度混合、背面剔除 |
| 19 | 帧缓冲 (Framebuffers) | 离屏渲染、后期处理效果 |
| 20 | 立方体贴图 (Cubemaps) | 天空盒、环境映射、反射/折射 |
| 21 | 几何着色器与实例化 | 几何着色器基础、高效批量渲染 |
| 22 | 抗锯齿 (Anti-Aliasing) | MSAA 多重采样抗锯齿 |
第 4 阶段:高级光照
| # | 课程 | 描述 |
|---|
| 23 | Blinn-Phong 与 Gamma 校正 | 更高效的光照模型、色彩空间校正 |
| 24 | 阴影映射 (Shadow Mapping) | 阴影生成原理与实现 |
| 25 | 法线贴图与视差贴图 | 表面细节模拟技术 |
| 26 | HDR 与 Bloom | 高动态范围与泛光效果 |
| 27 | 延迟着色 (Deferred Shading) | 高效多光源渲染 |
| 28 | SSAO | 屏幕空间环境光遮蔽 |
第 5 阶段:PBR 与实战
| # | 课程 | 描述 |
|---|
| 29 | PBR 光照理论 | 基于物理的渲染理论基础 |
| 30 | IBL (基于图像的光照) | 环境光照与辐照度映射 |
| 31 | 调试与文字渲染 | OpenGL 调试技巧、文字显示 |
| 32 | 实战:Breakout 游戏 | 2D 游戏引擎构建 |
🔗 参考文档
🎯 学习目标
- 能够从头搭建 OpenGL 渲染环境,绘制 3D 场景并与之交互
- 理解并手写 GLSL 着色器,实现光照、贴图、阴影等效果
- 看到 Unity/Unreal 的渲染设置时,能理解它底层在做什么
- 具备迁移到 Vulkan/DirectX 的概念基础
2 items under this folder.