LearnOpenGL
简介
LearnOpenGL 是公认的最好的 OpenGL 入门教程,由 Joey de Vries 编写。教程从最基础的三角形渲染开始,逐步深入到高级主题如 PBR、延迟渲染、阴影映射等。
教程最大的特点是每个知识点都有对应的代码示例,你可以边学边练,从零构建一个完整的渲染引擎。教程使用 C++ 和 OpenGL,同时提供了中文版,非常适合中文读者。
LearnOpenGL 覆盖了现代 OpenGL(3.3+)的核心内容,包括:OpenGL 基础、光照模型、模型加载、抗锯齿、高级 OpenGL 技巧等。学完这个教程,你将具备使用 OpenGL 进行实时渲染的能力。
先修要求
- C++ 基础:熟悉 C++ 语法,包括类、指针、STL 容器
- 基本的线性代数:矩阵、向量的基本概念(不需要很深,教程中有回顾)
- 计算机图形学基础概念:了解什么是渲染管线、帧缓冲等基本概念
难度
🌟🌟🌟(中等)
入门部分非常友好,高级部分(PBR、延迟渲染)有一定难度。
学时
约 60-80 小时
- 基础入门:约 20 小时
- 光照和材质:约 15 小时
- 高级主题:约 25-45 小时
课程资源
- 英文原版:learnopengl.com
- 中文版:learnopengl-cn.github.io
- 源代码:GitHub
自学建议
-
一定要动手写代码。 这个教程的核心就是实践。每学一个章节,立刻把代码跑起来,然后尝试修改参数,观察效果变化。
-
不要跳过基础章节。 前几章(OpenGL 基础、着色器、纹理)看似简单,但它们是后续所有高级主题的基础。
-
理解渲染管线的每个阶段。 从顶点输入到片段输出,每个阶段都在做什么,数据如何流转——这是图形学最核心的知识。
-
结合你的 Godot 经验。 Godot 4 的底层也使用 OpenGL/Vulkan 渲染。学完 LearnOpenGL 后,你会更好地理解 Godot 的渲染管线和着色器系统。
-
推荐配合 3Blue1Brown 的线性代数。 如果数学基础不够扎实,建议先补一下 3Blue1Brown 的《线性代数的本质》系列。