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格式的文件