许多开发者熟记 OpenGL 顶点着色器与片段着色器的语法,能写出独立的 Demo,却卡在“如何将这些零散功能整合成一套可维护、可扩展的渲染系统”这一瓶颈。本套课程正是为了打破这一僵局,它不教基础 API,而是聚焦于工程架构与核心模块的实现逻辑。你需要具备扎实的 C++ 功底,熟悉现代 OpenGL 3.3 及以上版本的编程范式,若此前仅使用过固定管线或从未管理过数百个模型与材质的场景,建议先夯实基础,否则直接跟学容易因环境配置和底层原理断层而感到吃力。

学习路径建议分三阶段推进。第一阶段是理解“引擎骨架”,重点攻克资源管理系统与渲染循环的抽象设计,这是后续所有功能的地基,务必弄懂对象池与引用计数在图形资源管理中的应用;第二阶段深入“核心管线”,细致剖析几何处理、纹理绑定、光照模型的计算流程,此处资料包中的注释代码与实际运行画面强关联,建议边看边改,观察参数变化对最终渲染结果的影响;第三阶段是“实战组装”,将前后两个阶段的模块拼接,实现一个包含动态光源、阴影贴图及后处理效果的中型场景。资料包并非单纯的文件堆砌,而是配套的工程模板,请将其视为“脚手架”,在本地克隆仓库后,严格按照教程顺序逐模块复现,切忌跳过架构设计直接抄录着色器代码,那样无法内化设计思想。

学完这套体系,你的产出不应仅是“看过视频”,而是一个能独立运行、支持多场景切换的渲染引擎原型。这意味着你具备了解决复杂图形问题的能力:能自主设计资产加载流程,处理内存泄漏,并针对低端硬件进行性能降级策略。在职场中,这类具备“造轮子”能力的开发者,在面试时能清晰阐述渲染管线各阶段的数据流向,而非仅靠死记硬背 API 文档。这不仅是技术深度的证明,更是从“应用层程序员”向“图形底层工程师”跃迁的关键一步。若你的作品集长期缺乏大型图形项目支撑,这个从零构建的引擎将是最有力的技术背书,建议在简历中详细描述其架构亮点与性能优化细节,以便在高端岗位竞争中脱颖而出。

课程介绍

适合人群: 熟练掌握OpenGL但是没有做过渲染引擎的同学 期望获得更高薪水,作品较少的同学 对C++熟练掌握,但没设计过架构的同学 需要加强职场技术能力的同学 你将会学到: 如何使用OpenGL从0开始,实现一个图形渲染引擎

课程目录

QQ_1754989442468.png   2025-8-12 17:04 上传 课程介绍: 适合人群: 熟练掌握OpenGL但是没有做过渲染引擎的同学 期望获得更高薪水,作品较少的同学 对C++熟练掌握,但没设计过架构的同学 需要加强职场技术能力的同学 你将会学到: 如何使用OpenGL从0开始,实现一个图形渲染引擎 课程目录:
第1章导学(6分钟3节) 1-1渲染引擎导学[06:36]
第2章渲染知识回顾(2小时38分钟7节) 2-1顶点与几何[24:20] 2-2矩阵与变换回顾[28:25] 2-3纹理复习[25:17] 2-4shader复习[16:33] 2-5material复习[19:39] 2-6光照复习[22:29] 2-7动画复习[21:42]
第3章渲染引擎案例及概览(2小时9分钟8节) 3-1引擎Cmake组织架构[14:37] 3-2triangle案例讲解[19:42] 3-3cube案例讲解[11:56] 3-4materials案例讲解[11:35] 3-5modelLoading案例讲解[16:57] 3-6animation案例[18:52] 3-7引擎架构概览[22:44] 3-8引擎代码概览[13:31]
第4章引擎核心层设计(2小时33分钟9节) 4-1智能指针详解[27:24] 4-2Attribute类数据详解[17:43] 4-3Attribute类接口详解[12:01] 4-4geometry类详解[14:01] 4-5包围球与包围盒[20:05] 4-6Object3D成员参数详解[14:05] 4-7Object3D类型与节点体系[09:27] 4-8Object3D下的矩阵变换[22:14] 4-9Object3DLookAt函数[16:53]
第5章 引擎FrontEnd设计 (2小时43分钟 8节) 5-1material详解[14:02] 5-2camera详解[14:55] 5-3cameralControl详解[28:35] 5-4texture基类详解[16:39] 5-5texture的读取详解[20:19] 5-6sourceCache详解[15:48] 5-7eventDispatcher详解[42:32] 5-8FrontEnd其他类[10:23]
第6章 渲染器基础模块 (2小时48分钟 10节) 6-1DriverWindow窗体初始化[21:07] 6-2DriverWindow尺寸变化回调[11:51] 6-3DriverWindow鼠标事件回调[11:52] 6-4DriverWindow键盘响应[13:16] 6-5渲染流程分析[17:19] 6-6渲染列表构建[26:20] 6-7渲染列表排序[19:21] 6-8视锥体剪裁算法(一)[14:15] 6-9视锥体剪裁算法(二)[16:38] 6-10视锥体剪裁代码详解[16:24]
第7章 引擎顶点属性系统 (2小时28分钟 9节) 7-1渲染场景解析流程[16:26] 7-2VBO 解析架构理论[11:34] 7-3DriverAttributes解析[18:19] 7-4DriverGeometries解析[11:25] 7-5DriverObjects详解[10:43] 7-6VBO与VAO回顾[20:41] 7-7绑定流程前[10:24] 7-8顶点绑定详解(一)[24:30] 7-9顶点绑定详解(二)[24:21]
第8章 Shader管理系统 (3小时14分钟 10节) 8-1Shader管理介绍[27:30] 8-2DriverProgram详解[11:53] 8-3DriverProgramShader处理[20:30] 8-4program创建与参数创建[14:59] 8-5DriverPrograms接口函数[08:19] 8-6DriverMaterials解析[18:05] 8-7Program设置流程[26:55] 8-8Program更新生成流程[13:36] 8-9ShaderChunk完整解析[35:41] 8-10总结与回顾[17:07]
第9章 Uniform系统设计 (2小时53分钟 7节) 9-1Uniform概念与分类[18:22] 9-2Uniform相关接口[32:04] 9-3Uniform系统基础编写思想[14:57] 9-4简单Uniform详解[23:32] 9-5StructuredUniform详解[19:08] 9-6Uniform更新方案设计[26:22] 9-7Uniform设计最终方案[38:50]
第10章 Uniform系统解析 (3小时11分钟 10节) 10-1StructuredUniform外部组织代码[15:34] 10-2PureArrayUniform外部组织代码[16:03] 10-3Uniforms系统总结与外部系统[18:37] 10-4UniformsLib介绍[15:43] 10-5Uniforms更新主逻辑[20:20] 10-6正则表达式案例[19:44] 10-7UniformName的匹配[31:48] 10-8Uniform匹配实现[18:31] 10-9Uniforms系统总结回顾[12:59] 10-10管线设置与绘制[22:38]
第11章 纹理系统解析 (2小时23分钟 9节) 11-1纹理系统技术回顾[12:57] 11-2DriverTextures详解[17:52] 11-3TextureUnit分配功能[17:53] 11-4纹理更新过程[27:44] 11-5CubeMap回顾及FrontEnd[17:06] 11-6DriverBackground解析流程[17:45] 11-7CubeMap的Shader系统[11:26] 11-8CubeMap的Uniform更新[09:43] 11-9纹理系统总结[11:23]
第12章 RenderTarget系统解析 (52分钟 4节) 12-1RenderTarget系统前端[20:30] 12-2RenderTarget实例演示[07:04] 12-3DriverRenderTargets详解[08:31] 12-4RenderTarget的解析[16:24]
第13章 光照系统解析 (1小时54分钟 7节) 13-1光照系统梗概[10:33] 13-2MeshPhongShader解析(一)[32:13] 13-3MeshPhongShader解析(二)[12:38] 13-4光照缓存流程[07:17] 13-5光照系统Uniform设计[14:03] 13-6DriverLights类解析[15:14] 13-7光照系统Uniform建设与更新[22:40]
第14章 阴影系统解析 (2小时4分钟 8节) 14-1阴影技术回顾[14:22] 14-2阴影系统FrontEnd[16:32] 14-3DepthShader解析[09:07] 14-4阴影Shader解析[36:35] 14-5阴影系统Uniform设计[11:52] 14-6Shadow 信息更新[08:53] 14-7DriverShadowMap解析[20:46] 14-8阴影参数实验[06:44]
第15章 模型读取 (1小时13分钟 5节) 15-1模型读取技术系解析[13:01] 15-2模型材质读取[18:44] 15-3节点的解析[12:38] 15-4Mesh的读取与构建[11:52] 15-5uv读取解析[16:47]
第16章 骨骼系统 (2小时5分钟 9节) 16-1插值系统回顾[11:24] 16-2Interpolant类讲解[23:55] 16-3Interpolant不同插值讲解[12:58] 16-4骨骼系统架构(一)[12:22] 16-5骨骼系统架构(二)[08:19] 16-6骨骼动画的Shader[11:21] 16-7骨骼动画类架构解析[15:12] 16-8骨骼数据读取[21:35] 16-9骨骼动画架构总结[08:27]
第17章 动画系统 (1小时22分钟 6节) 17-1动画系统架构解析[17:41] 17-2动画系统类概览[16:13] 17-3动画关键帧读取[13:57] 17-4AnimationAction构造[07:44] 17-5PropertyBinding解析[16:29] 17-6动画系统整体流程