赵新政OpenGL全家桶资源介绍:
本课程是一套从零开始学OpenGL的课程,内容很扎实,适合那些想彻底搞懂图形学底层原理、想自己能写出渲染引擎的人。
课程分成三个递进的部分。
第一部分是小白入门OpenGL详解
从最基础的工程配置开始,先讲光照模型,漫反射、镜面反射、环境光这些一个一个来,代码跟着写一遍就明白了。然后把代码架构重新整理,封装成Object、Material、Mesh、Light这些类,后面用起来就顺手多了。接下来会讲到点光源、探照灯,还有IMGUI怎么用。模型加载这块用了Assimp库,从编译配置到把模型里面的节点、几何数据、贴图都解析出来,每一步都有。深度测试、模板测试、颜色混合、面剔除这些渲染管线里的关键环节都单独拎出来讲清楚了,每个都有对应的代码实验。帧缓冲那块会做反相、灰度、卷积、模糊这些后处理效果。立方体贴图做天空盒和环境光照,球面贴图也有涉及。实例化绘制用来优化大量物体的渲染,最后有一个完整的草地作品,把风动效果、云层效果、房子模型都整合到一起,算是把前面的知识点串起来了。
第二部分是计算机图形学
从0开始构建一个OpenGL软光栅,这个就深入到更底层了。不依赖OpenGL的API,直接用C++和Windows GDI在屏幕上画东西。从窗体创建、画直线、画彩色三角形开始,然后自己实现纹理映射、双线性插值、UV坐标、Wrap模式。矩阵和线性代数这部分讲得很细,从向量到矩阵运算、逆矩阵、空间变换、视图矩阵、投影矩阵全部自己推导一遍,然后代码实现。渲染管线是自己搭的,VBO、VAO、EBO这些概念自己写代码实现,Shader也是自己设计的类。后面还有多边形裁剪、透视修正、面剔除、深度缓冲、颜色混合这些算法都手写一遍。光照模型Lambert自己实现,模型加载用Assimp,Mesh和Model类自己写。这一部分学完,你对图形学的理解会深很多。
第三部分是OpenGL渲染引擎——设计与实践
这套课程相当于手把手带你写一个完整的渲染引擎。从顶点的封装、矩阵变换、纹理、材质、光照、动画这些基础模块开始复习,然后进入引擎架构。引擎用CMake组织,包含大量的案例,triangle、cube、material、modelLoading、animation这些都有。代码里面涉及智能指针、Attribute数据管理、Geometry、Object3D节点体系、包围盒包围球、摄像机控制、事件分发、窗口驱动。渲染流程包括渲染列表构建、排序、视锥体裁剪。VBO和VAO的驱动层封装、Shader管理、材质系统、Uniform系统都讲得很深入。纹理系统包含了CubeMap和RenderTarget,光照系统有Phong着色、阴影映射,模型加载和骨骼动画也都有完整的实现。整个引擎架构清晰,学完你大概就知道一个工业级的渲染引擎是怎么组织的。
适合人群
如果你是学计算机图形学的学生,或者做游戏开发、引擎开发、ARVR相关的工程师,想真正搞懂图形学底层,而不是只会调API,那这套课程会很对胃口。它不浮于表面,该推的公式会推,该手写的代码会写,该封装的架构会封装。学完以后你不仅能写出自己的渲染Demo,还能看懂市面上主流引擎的渲染代码。
资源目录:
├──课程1.小白入门OpenGL详解 | ├──100_草地作品-云层效果(二).mp4 549.04M | ├──101_草地作品-云层效果(三).mp4 495.37M | ├──102_102 进阶OpenGL-草地作品-加入房子效果.mp4 497.51M | ├──10_Specular镜面反射实现代码.mp4 157.32M | ├──11_解决背面入射光的高光问题.mp4 190.00M | ├──12_镜面光斑大小调整与强度调整.mp4 195.76M | ├──13_环境光加入.mp4 102.05M | ├──14_法线矩阵(normalMatrix)理论与实践.mp4 246.34M | ├──15_代码架构设计理论.mp4 76.41M | ├──16_Object类设计与实践.mp4 207.13M | ├──17_Material类设计与实践.mp4 100.76M | ├──18_Mesh类设计与实践.mp4 102.10M | ├──19_Light类及子类设计与实践.mp4 81.50M | ├──1_项目文件夹介绍与工程配置.mp4 156.00M | ├──20_Renderer设计与实践(一).mp4 272.01M | ├──21_Renderer设计与实践(二).mp4 440.53M | ├──22_架构使用Demo演示.mp4 229.23M | ├──23_高光蒙版理论与实验.mp4 258.65M | ├──24_点光源理论介绍.mp4 108.79M | ├──25_实践:点光源实现的准备工作.mp4 258.69M | ├──26_实践:点光源效果与实验.mp4 344.47M | ├──27_探照灯(SpotLight)理论与初步实践.mp4 273.18M | ├──28_探照灯(SpotLight)模糊边界.mp4 275.88M | ├──29_Shader结构的封装(一).mp4 342.38M | ├──2_代码架构概览.mp4 186.82M | ├──30_Shader结构的封装(二).mp4 492.01M | ├──31_实践:光源数组.mp4 446.38M | ├──32_IMGUI配置讲解.mp4 517.96M | ├──33_IMGUI案例讲解.mp4 269.40M | ├──34_父子级关系理论与实践(一).mp4 134.95M | ├──36_认识建模(理解概念即可).mp4 143.53M | ├──37_架构-基于场景渲染.mp4 322.96M | ├──38_模型读取前准备工作.mp4 345.73M | ├──39_Assimp库编译与配置.mp4 201.42M | ├──3_反射的分类详解.mp4 166.22M | ├──40_Assimp库数据结构介绍.mp4 91.04M | ├──41_模型解析-Node架构.mp4 459.52M | ├──42_模型解析-几何数据读取.mp4 421.65M | ├──43_模型材质-贴图导出.mp4 89.89M | ├──44_模型材质-纹理类新增功能(一).mp4 179.85M | ├──45_模型材质-纹理新增功能(二).mp4 185.90M | ├──46_模型材质-材质贴图读取.mp4 559.16M | ├──47_模型材质-解析贴图函数与高光蒙版解析.mp4 456.03M | ├──48_深度检测详解-FragCoord.mp4 130.32M | ├──49_深度检测详解-depthMask与封装.mp4 321.52M | ├──4_漫反射理论详解.mp4 149.41M | ├──50_深度测试详解-典型的Bug解析.mp4 84.54M | ├──51_深度检测详解-线性深度值.mp4 469.60M | ├──52_深度检测详解-zFighting.mp4 438.93M | ├──53_深度检测详解-polygonOffset封装.mp4 136.99M | ├──54_模板测试-理论与API(一).mp4 254.47M | ├──55_模板测试-理论与API(二).mp4 189.77M | ├──56_模板测试-代码实验.mp4 419.40M | ├──57_模板测试-代码封装.mp4 332.44M | ├──58_颜色混合-基础理论.mp4 203.48M | ├──59_颜色混合-初步实验.mp4 165.46M | ├──5_Geometry类的Box加入法线.mp4 327.75M | ├──60_颜色混合-为什么要关闭深度写入?.mp4 210.07M | ├──61_颜色混合-材质封装.mp4 237.34M | ├──62_颜色混合-模型设置透明度.mp4 135.59M | ├──63_颜色混合-渲染排序逻辑.mp4 454.67M | ├──64_颜色混合-透明度蒙版.mp4 198.94M | ├──65_颜色混合-小草建模过程(1).mp4 169.70M | ├──66_颜色混合-小草渲染.mp4 108.16M | ├──67_面剔除-理论与实验.mp4 117.65M | ├──68_面剔除-封装材质.mp4 133.98M | ├──69_帧缓冲-什么是Framebuffer.mp4 125.02M | ├──6_Geometry类的球与平面加入法线.mp4 156.37M | ├──70_帧缓冲-API介绍.mp4 145.40M | ├──71_帧缓冲-创建覆盖屏幕矩形.mp4 312.30M | ├──72_帧缓冲-创建FBO代码实现.mp4 259.56M | ├──73_帧缓冲-双Pass渲染代码实现.mp4 175.83M | ├──74_帧缓冲-帧缓冲封装.mp4 295.92M | ├──75_帧缓冲-反相与灰度.mp4 139.38M | ├──76_帧缓冲-卷积操作.mp4 177.99M | ├──77_帧缓冲-模糊实现.mp4 273.52M | ├──78_立方体贴图-概念解析.mp4 200.32M | ├──79_立方体贴图-制作蒙鼓人.mp4 247.75M | ├──7_diffuse光照实现.mp4 352.83M | ├──80_立方体贴图-Cubemap纹理创建.mp4 426.93M | ├──81_立方体贴图-天空盒效果实现.mp4 533.82M | ├──82_立方体贴图-环境光照模拟.mp4 343.40M | ├──83_球面贴图-球面贴图是什么?.mp4 330.99M | ├──84_HDRI图片-资源获取与转化.mp4 65.23M | ├──85_球形贴图-代码实验.mp4 199.66M | ├──86_实例绘制-概念解析.mp4 124.52M | ├──87_实例绘制-Uniform更新策略.mp4 491.56M | ├──88_实例绘制-属性更新参数策略.mp4 198.83M | ├──89_实例绘制-属性参数策略实现.mp4 302.85M | ├──8_高光反射理论解析.mp4 198.86M | ├──90_草地作品-作品介绍.mp4 408.18M | ├──91_草地作品-草模型原理讲解.mp4 178.63M | ├──92_草地作品-实例加载与几何更改.mp4 406.86M | ├──93_草地作品-新建材质与统一材质.mp4 293.78M | ├──94_草地作品-透明蒙版与透明排序.mp4 580.02M | ├──95_草地作品-随机旋转与法线矩阵.mp4 188.94M | ├──96_草地作品-位置作为UV进行贴图.mp4 666.00M | ├──97_草地作品-风力(一).mp4 451.58M | ├──98_草地作品-风力(二).mp4 959.72M | ├──99_草地作品-云层效果(一).mp4 869.30M | └──9_求视线方向代码实践.mp4 275.13M ├──课程2.计算机图形学—从0开始构建一个OpenGL软光栅 | ├──103_课程导学.mp4 77.77M | ├──104_课程成果展示.mp4 51.81M | ├──105_CMake工程配置(一).mp4 39.06M | ├──106_CMake工程配置(二).mp4 59.13M | ├──107_windowsAPI介绍.mp4 38.76M | ├──108_windows窗体构建.mp4 51.03M | ├──109_实践:窗体构建与代码架构.mp4 72.53M | ├──110_windowsGDI介绍.mp4 40.45M | ├──111_实践:绘图环境与实例.mp4 92.44M | ├──112_brensenham直线绘制算法.mp4 159.35M | ├──113_实践:直线算法代码.mp4 96.57M | ├──114_实践:彩色直线绘制实践.mp4 78.19M | ├──115_线性代数-向量基础.mp4 63.12M | ├──116_线性代数-向量叉乘专题.mp4 69.15M | ├──117_实践:向量类代码设计.mp4 45.05M | ├──118_实践:向量功能函数代码设计.mp4 55.30M | ├──119_实践:三角形扫描线绘制算法及代码设计.mp4 25.67M | ├──120_三角形重心插值算法.mp4 32.11M | ├──121_实践:彩色三角形绘制.mp4 24.38M | ├──122_实践:图片读取与显示.mp4 66.75M | ├──123_ 实践:颜色混合与半透明绘制.mp4 31.29M | ├──124_uv坐标详解.mp4 24.57M | ├──125_实践:uv坐标系统代码.mp4 74.18M | ├──126_双线性插值算法详解.mp4 33.79M | ├──127_实践:双线性插值实现.mp4 50.49M | ├──128_纹理的Wrap属性.mp4 23.47M | ├──129_实践:Wrap代码设计实现.mp4 24.66M | ├──130_矩阵理论基础.mp4 21.44M | ├──131_矩阵的行、列视图.mp4 53.73M | ├──132_矩阵行列式计算.mp4 27.73M | ├──133_矩阵行列式基本性质.mp4 30.47M | ├──134_行列式性质与矩阵化简.mp4 31.45M | ├──135_矩阵行列式几何意义.mp4 51.48M | ├──136_矩阵的逆矩阵计算.mp4 36.95M | ├──137_实践:矩阵类代码设计.mp4 56.89M | ├──138_实践:矩阵功能函数代码设计.mp4 175.70M | ├──139_二维空间变换.mp4 32.61M | ├──140_三维空间变换.mp4 28.06M | ├──141_绕任意轴旋转矩阵计算.mp4 59.66M | ├──142_视图变换矩阵推导.mp4 65.28M | ├──143_矩阵变换与基向量.mp4 70.20M | ├──144_实践:空间变换代码.mp4 122.42M | ├──145_正交投影矩阵推导.mp4 55.63M | ├──146_透视投影矩阵推导.mp4 76.87M | ├──147_屏幕空间变换矩阵推导.mp4 28.06M | ├──148_实践:实现三维旋转的三角形.mp4 45.52M | ├──149_渲染管线概念与设计.mp4 77.45M | ├──150_几何信息存储-VBO.mp4 39.86M | ├──151_几何信息存储-VAO与EBO.mp4 53.05M | ├──152_实践:程序重构(构建渲染管线).mp4 79.64M | ├──153_实践:VAO~VBO代码编写.mp4 95.29M | ├──154_图形状态机设计.mp4 38.45M | ├──155_实践:顶点数据操作接口.mp4 92.00M | ├──156_Draw流程与Shader设计.mp4 32.27M | ├──157_实践:Shader类编写.mp4 78.08M | ├──158_实践:Draw函数及三角形绘制案例.mp4 146.91M | ├──159_多边形剪裁-前置几何知识.mp4 24.01M | ├──160_多边形剪裁算法.mp4 76.08M | ├──161_实践:多边形剪裁算法实现.mp4 236.52M | ├──162_透视修正推导与设计.mp4 93.52M | ├──163_实践:透视修正代码.mp4 36.40M | ├──164_实践:面剔除算法讲解与代码.mp4 96.90M | ├──165_实践:深度检测理论与代码.mp4 102.84M | ├──166_实践:颜色混合原理与代码.mp4 57.20M | ├──167_实践:纹理系统设计与实现.mp4 122.76M | ├──168_摄像机系统设计.mp4 26.45M | ├──169_实践:摄像机类实现代码.mp4 207.26M | ├──170_Lambert光照模型介绍.mp4 37.97M | ├──171_实践:Lambert光照代码.mp4 111.38M | ├──172_模型与Assimp介绍.mp4 72.44M | ├──173_Mesh系统设计.mp4 66.85M | ├──174_实践:Mesh类代码实现.mp4 64.55M | ├──175_实践:Model类编写(一).mp4 103.81M | └──176_实践:Model类编写(二).mp4 182.04M ├──课程3.OpenGL渲染引擎-设计与实践 | ├──177_顶点与几何.mp4 80.29M | ├──178_矩阵与变换回顾.mp4 91.88M | ├──179_纹理复习.mp4 78.91M | ├──180_shader复习.mp4 46.61M | ├──181_material复习.mp4 56.62M | ├──182_光照复习.mp4 70.53M | ├──183_动画复习.mp4 56.73M | ├──184_引擎Cmake组织架构.mp4 63.51M | ├──185_triangle案例讲解.mp4 88.82M | ├──186_cube案例讲解.mp4 67.80M | ├──187_materials案例讲解.mp4 71.38M | ├──188_modelLoading案例讲解.mp4 162.08M | ├──189_animation案例.mp4 105.77M | ├──190_引擎架构概览.mp4 57.70M | ├──191_引擎代码概览.mp4 62.19M | ├──192_智能指针详解.mp4 118.49M | ├──193_Attribute类数据详解.mp4 86.40M | ├──194_Attribute类接口详解.mp4 69.39M | ├──195_geometry类详解.mp4 62.96M | ├──196_包围球与包围盒.mp4 93.23M | ├──197_Object3D成员参数详解.mp4 64.95M | ├──198_Object3D类型与节点体系.mp4 47.60M | ├──199_Object3D下的矩阵变换.mp4 113.46M | ├──200_Object3DLookAt函数.mp4 83.50M | ├──201_material详解.mp4 68.45M | ├──202_camera详解.mp4 75.56M | ├──203_cameralControl详解.mp4 150.92M | ├──204_texture基类详解.mp4 73.20M | ├──205_texture的读取详解.mp4 86.65M | ├──206_sourceCache详解.mp4 63.87M | ├──207_eventDispatcher详解.mp4 214.26M | ├──208_FrontEnd其他类.mp4 43.27M | ├──209_DriverWindow窗体初始化.mp4 117.71M | ├──210_DriverWindow尺寸变化回调.mp4 65.41M | ├──211_DriverWindow鼠标事件回调.mp4 55.46M | ├──212_DriverWindow键盘响应.mp4 68.98M | ├──213_渲染流程分析.mp4 99.26M | ├──214_渲染列表构建.mp4 141.45M | ├──215_渲染列表排序.mp4 93.47M | ├──216_视锥体剪裁算法(一).mp4 45.70M | ├──217_视锥体剪裁算法(二).mp4 57.67M | ├──218_视锥体剪裁代码详解.mp4 75.57M | ├──219_渲染场景解析流程.mp4 87.56M | ├──220_VBO 解析架构理论.mp4 47.30M | ├──221_DriverAttributes解析.mp4 107.44M | ├──222_DriverGeometries解析.mp4 64.49M | ├──223_DriverObjects详解.mp4 56.68M | ├──224_VBO与VAO回顾.mp4 76.94M | ├──225_绑定流程前.mp4 53.70M | ├──226_顶点绑定详解(一).mp4 126.97M | ├──227_顶点绑定详解(二).mp4 163.33M | ├──228_Shader管理介绍.mp4 95.09M | ├──229_DriverProgram详解(一).mp4 67.22M | ├──230_DriverProgramShader处理.mp4 140.16M | ├──231_program创建与参数创建.mp4 97.37M | ├──232_DriverPrograms接口函数.mp4 57.15M | ├──233_DriverMaterials解析.mp4 106.26M | ├──234_Program设置流程.mp4 163.42M | ├──235_Program更新生成流程.mp4 83.96M | ├──236_ShaderChunk完整解析.mp4 159.72M | ├──237_总结与回顾.mp4 65.30M | ├──238_Uniform概念与分类.mp4 67.63M | ├──239_Uniform相关接口.mp4 147.06M | ├──240_Uniform系统基础编写思想.mp4 61.80M | ├──241_简单Uniform详解.mp4 141.34M | ├──242_StructuredUniform详解.mp4 64.72M | ├──243_Uniform更新方案设计.mp4 114.47M | ├──244_Uniform设计最终方案.mp4 177.65M | ├──245_StructuredUniform外部组织代码.mp4 74.04M | ├──246_PureArrayUniform外部组织代码.mp4 98.64M | ├──247_Uniforms系统总结与外部系统.mp4 81.14M | ├──248_UniformsLib介绍.mp4 81.79M | ├──249_Uniforms更新主逻辑.mp4 117.10M | ├──250_正则表达式案例.mp4 77.50M | ├──251_UniformName的匹配.mp4 174.44M | ├──252_Uniform匹配实现.mp4 113.61M | ├──253_Uniforms系统总结回顾.mp4 88.02M | ├──254_管线设置与绘制.mp4 139.57M | ├──255_纹理系统技术回顾.mp4 61.62M | ├──256_DriverTextures详解.mp4 110.37M | ├──257_TextureUnit分配功能.mp4 102.54M | ├──258_纹理更新过程.mp4 173.23M | ├──259_CubeMap回顾及FrontEnd.mp4 74.20M | ├──260_DriverBackground解析流程.mp4 105.92M | ├──261_CubeMap的Shader系统.mp4 59.62M | ├──262_CubeMap的Uniform更新.mp4 64.25M | ├──263_纹理系统总结.mp4 52.72M | ├──264_RenderTarget系统前端.mp4 100.21M | ├──265_RenderTarget实例演示.mp4 44.24M | ├──266_DriverRenderTargets详解.mp4 56.41M | ├──267_RenderTarget的解析.mp4 106.50M | ├──268_光照系统梗概.mp4 51.58M | ├──269_MeshPhongShader解析(一).mp4 184.92M | ├──270_MeshPhongShader解析(二).mp4 75.33M | ├──271_光照缓存流程.mp4 51.55M | ├──272_光照系统Uniform设计.mp4 59.06M | ├──273_DriverLights类解析.mp4 96.73M | ├──274_光照系统Uniform建设与更新.mp4 147.70M | ├──275_阴影技术回顾.mp4 53.02M | ├──276_阴影系统FrontEnd.mp4 88.16M | ├──277_DepthShader解析.mp4 69.87M | ├──278_阴影Shader解析.mp4 225.13M | ├──279_阴影系统Uniform设计.mp4 51.52M | ├──280_Shadow 信息更新.mp4 62.55M | ├──281_DriverShadowMap解析.mp4 134.87M | ├──282_阴影参数实验.mp4 166.82M | ├──283_模型读取技术系解析.mp4 42.07M | ├──284_模型材质读取.mp4 110.70M | ├──285_节点的解析.mp4 63.77M | ├──286_Mesh的读取与构建.mp4 68.30M | ├──287_uv读取解析.mp4 94.58M | ├──288_插值系统回顾.mp4 36.81M | ├──289_Interpolant类讲解.mp4 91.51M | ├──290_Interpolant不同插值讲解.mp4 60.10M | ├──291_骨骼系统架构(一).mp4 47.00M | ├──292_骨骼系统架构(二).mp4 30.42M | ├──293_骨骼动画的Shader.mp4 66.58M | ├──294_骨骼动画类架构解析.mp4 74.32M | ├──295_骨骼数据读取.mp4 139.76M | ├──296_骨骼动画架构总结.mp4 25.99M | ├──297_动画系统架构解析.mp4 59.38M | ├──298_动画系统类概览.mp4 83.83M | ├──299_动画关键帧读取.mp4 76.95M | ├──300_AnimationAction构造.mp4 41.17M | ├──301_PropertyBinding解析.mp4 95.63M | └──302_动画系统整体流程.mp4 96.87M

