关闭

OpenGL ES2.0之iOS基础<一>

标签: OpenGL ESiOS
309人阅读 评论(0) 收藏 举报
分类:

     因为项目上的原因,最近开始接触如何在iOS上绘制图形,其中所需要用到的知识就是OpenGL ES 2.0(Open Graphics Library for embedded systems)中的相关内容!本篇文章是为了从未接触过的朋友而准备的也是为了自己加深基础概念的印象和将来方便查询,故此有了以下的内容,大神飘过哈。

在开始项目之前,需要对计算机图形学有一定的了解,所以以下会简单的介绍一些在OpenGL ES里边所需要了解的几个概念:

1、OpenGL针对桌面上的图形绘制库。OpenGL ES是针对嵌入式系统平台而从OpenGL 衍生出来的一个精简版图形绘制库。

2、以下是在嵌入式设备(iPhone,iPad,iPod等,另外的android设备上也是类似)的运行过程。

         


  2.1、GPU(图形处理单元):能够结合几何,颜色,灯光和其他数据而产生一个屏幕图像的硬件组件。

  2.2、iOS中的OpenGL ES框架是使用GLKit(iOS5引入的),该框架简化了许多常用的编程任务,同时部分隐藏了OpenGL ES1.0于2.0之间的差异,所以可以较好的提高编程的效率

3、渲染:用3D数据生成2D图像的过程就叫做渲染,其中GPU控制的缓存是高效渲染的关键。

4、为GPU提供需要处理的3D数据:为了在嵌入式设备的屏幕上绘制图像,首先需要做的一件事情就是需要为图形处理硬件(GPU)提供需要处理的3D数据,虽然有各种各样的为GPU提供数据的方式,但是目前为止,最好的一种方式就是使用“缓存”---图形处理器所能够控制和管理的连续RAM。

            其中为缓存提供数据的方式有7个步骤:

1>生成 generate(告诉OpenGL ES为GPU控制的缓存生成一个独一无二的标识符);

2>绑定bind (告诉OpenGL ES接下来的运算使用哪一个缓存);

3>缓存数据buffer data(让OpenGL ES为当前绑定的缓存分配并初始化足够的连续内存,该过程通常是从CPU控制的内存复制数据到分配的内存)

4>启用(Enable)或者禁止(Disable)(告诉OpenGL ES在接下来的渲染中是否使用缓存中的数据);

5>设置指针set Pointers(告诉OpenGL ES在缓存中的数据的类型和所有需要访问的数据的内存偏移);

6>绘图Draw(告诉OpenGL ES使用当前绑定并启用的缓存中的数据渲染整个场景或者某个场景的一部分);

7>删除Delete(告诉OpenGL ES删除以前生成的缓存并释放相关的资源)

  帧缓存:前、后帧缓存。帧缓存是用来接收渲染结果的缓冲区。前帧缓存决定了屏幕上显示的像素颜色,同时和后帧缓存进行切换

          上下文(context):用于配置OpenGL ES的保存在特定平台的软件数据结构中的信息会被封装到一个OpenGL ES的上下文。

5、另外的由于OpenGL ES是在计算机上绘制图形,所以需要对数学中的涉及到的如 笛卡尔坐标系,向量,法向量等概念需要补足,另外设计到线性代数里的矩阵运算,高数里边的设计到向量运算,以及空间解析几何的知识需要数学并灵活运用到算法中


 今天的博客就先暂时告一段落,在接下来的文档中会涉及到一些具体的实例。



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:6394次
    • 积分:145
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:6篇
    • 译文:0篇
    • 评论:12条
    最新评论