跳转至

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 小时

课程资源

自学建议

  1. 一定要动手写代码。 这个教程的核心就是实践。每学一个章节,立刻把代码跑起来,然后尝试修改参数,观察效果变化。

  2. 不要跳过基础章节。 前几章(OpenGL 基础、着色器、纹理)看似简单,但它们是后续所有高级主题的基础。

  3. 理解渲染管线的每个阶段。 从顶点输入到片段输出,每个阶段都在做什么,数据如何流转——这是图形学最核心的知识。

  4. 结合你的 Godot 经验。 Godot 4 的底层也使用 OpenGL/Vulkan 渲染。学完 LearnOpenGL 后,你会更好地理解 Godot 的渲染管线和着色器系统。

  5. 推荐配合 3Blue1Brown 的线性代数。 如果数学基础不够扎实,建议先补一下 3Blue1Brown 的《线性代数的本质》系列。