Learn OpenGL,一个用于学习现代 OpenGL 的详尽教程资源

一个很受欢迎的 OpenGL 教程网站被称赞为学习实时图形基础知识的异常清晰的方式,例如坐标系、着色器、光照和渲染管线。关于在 2026 年是否仍然值得从 OpenGL 入门,评论者意见分裂:一些人认为它已被弃用、设计糟糕,应该由 Vulkan、WebGPU、Metal 或 DirectX 取代;另一些人则认为它更简单的模型和丰富的学习资料使它非常适合初学者,之后再转向更底层的 API。讨论串还提到了其他学习路径,从软件渲染器和大学风格课程,到更高层的库,以及把 OpenGL 调用映射到更新后端的转换层。

LearnOpenGL 的整体评价

  • 被广泛称赞为一个异常出色、实用的 Modern OpenGL 教程。
  • 尤其受欢迎的原因:
    • 清晰解释样板代码和初始化过程。
    • 逐步讲解顶点/片段着色器、变换、光照、PBR、HDR、阴影等内容。
  • 有些人称它是图形编程初学者的“圣经”,比 Real-Time RenderingPhysically Based Rendering 之类的书更容易入门。
  • 轻微批评:某些初始化示例会在略有不同的配置之间跳转,这会让调试变得更复杂。

OpenGL 现在还值得学吗?

  • 支持 OpenGL 的观点:
    • 被认为是开始硬件加速 3D 最简单的方式;相比 Vulkan/DX12,概念更少,样板代码更少。
    • 很适合教授基础知识:坐标系、网格、投影、着色、多通道渲染。
    • 仍然可以在主流桌面平台上运行(包括通过 Metal/ANGLE/Zink 之类的转换层),而且许多业余/独立引擎仍在使用它。
  • 反对 OpenGL 的观点:
    • 在 macOS/iOS 上已被弃用且版本锁定;没有新特性,并且缺少现代能力(例如 Apple 上没有 SSBOs)。
    • 这个 API 被认为令人困惑且设计糟糕(全局状态、VAOs、驱动中的 GLSL 机制怪癖、驱动错误)。
    • 一些发帖者认为它“已经过时”,并建议改学 Vulkan、WebGPU 或 Metal,尤其是为了长期使用或职业发展。

替代方案和绑定

  • Vulkan/DX12:
    • 被认为很强大,但极其啰嗦,对初学者不友好;样板代码很多(例如内存分配、管线)。
    • 有人认为 Vulkan “过度工程化得毫无必要”,从可用性角度看比 OpenGL 更差。
  • WebGPU:
    • 被建议作为一种现代、跨平台的替代方案;更接近 Metal/DX12,结构更清晰,错误信息更好。
    • 也有人批评它在功能上落后于 OpenGL 4.6,并且继承了一些过时的 Vulkan 设计决策,同时缺乏成熟工具。
  • Metal:
    • 在 macOS 上被推荐为唯一严肃的原生选择;学习曲线更陡,资料对初学者不太友好。
  • 其他层/库:
    • 提到的有:Sokol、SDL3 GPU、RLGL、OpenTK、LWJGL、ANGLE、Zink、MoltenVK;关于可靠性和功能覆盖的看法不一。

学习路径与教学法

  • 有几位建议:
    • 先学 OpenGL(或软件渲染器),以内化核心图形概念。
    • 等基础扎实后,再转向 Vulkan/DX12/Metal/WebGPU。
  • 也有人认为应该完全跳过旧 API,直接学习更新的 API,甚至从计算(CUDA)或软件渲染教程开始。