/OpenGLDemo

Primary LanguageCMIT LicenseMIT

OpenGL Demo

OpenGL 体验

01 画一个简单的三角形

02 画一个简单的圆形

03 画一个简单的矩形

在基本清楚了 OpenGL的使用的条件下, 整理了shader的compile和Link, 统一管理了uniform和attribute,使用VBO 代替了原来的客户端数据。 初学难点:VBO的理解。

04 一张贴图和线条

在需要使用 多个坐标点的情况下, 使用了VAO来管理VBO。 简单的做到了渲染多个不一样的图形。 初学难点:1.VAO的理解和切换。2.需要将原始的本地图片转换为可渲染的位图, 理解纹理的绘制方式。3.本例子依旧使用了一个program,在以后的例子中会使用多个。

05 多张纹理贴图

使用多张纹理贴图,可以对glsl编程,对图片处理(显示方式、图片磨皮等)。 初学难点:1.理解纹理单元在opengl的存在方式,glActiveTexture是选择当前纹理的意思。

06 纹理贴图的旋转

使用glsl旋转贴图 初学难点:使用旋转矩阵转换图片的坐标,有图形学基础的不难。

07 一个可旋转的立体菱锥形

在整合之前的画图,贴图之后,绘制一个可旋转的立体菱锥形。 初学难点:1.立体图形贴图,2.图形的透视矩阵,平移,旋转。矩阵计算。

08 09 觉得好玩,又做了两个立方体

使用学过的VAO做了多个相同的立方体

10 获取摄像信息并实时绘制

使用CoreVideo 获取摄像,拿到CMSampleBufferRef后绘制。 初学难点:开始直接将CMSampleBufferRef转换为位图显示,效率底。可使用CVOpenGLESTextureCacheRef对图片缓存,再取出来使用,和使用纹理贴图一样。

11 绘图

使用opengl完成绘图功能,实现了清除全部、重绘所有步骤,撤销前一个步骤的功能。 初学难点:1.输入绘制信息的时候,两个点之间做填充处理。2.因为需要撤销功能,存储了之前的画图步骤。

12 绘制可旋转地球仪

初学难点:需要理解地球仪贴图的坐标计算。

13 绘制可旋转地球仪并加上线

线和地球仪使用的不同shader,有多个program。

14 解析显示YUV格式的文件

理解YUV之后,解析一张YUV格式的文件