iOS开发进阶

OpenGL ES学习初体验

2018-07-09  本文已影响0人  测试开发雨辰

绪论

  1. OpenGL定义:OpenGL(全写Open Graphics Library)是个定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图像。OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库。
  2. OpenGL ES(OpenGL for Embedded Systems)是OpenGL三维图形API的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。

图形基础

  1. 像素:它是计算机图像的最小构成元素,由三个颜色组件构成:RGB。
  2. GPU:图形处理单元,结合集合、颜色、灯光以及其他数据而产生一个图像的硬件组件
  3. 渲染:把程序提供的几何数据转化为屏幕上的图像的过程

OpenGL ES相关知识

1.OpenGL ES原理:OpenGL ES部分运行在CPU上,部分运行在GPU上。OpanGL ES横跨在两个处理器之间,协调两个内存区域之间的数据交换。CPU计算好现实内容提交到GPU,GPU渲染完成后将渲染结果放入帧缓冲区,随后视频控制器按照VSync信号逐行读取帧缓冲区的数据,经过数模转换传递给显示器显示如图:

屏幕快照 2018-07-09 下午8.13.25.png
从一个内存区域复制数据到另一个内存区域速度是相对较慢的,并且在内存复制的过程中,CPU和GPU都不能处理这区域内存,避免引起错误。此外,CPU/GPU执行计算的速度是很快的,而内存访问的速度是相对较慢的,GPU总是受限于内存访问的性能。
  1. 缓存:OpenGL ES为两个内存区域间的数据交换定义了缓存(buffers)的概念。缓存指的是图形处理器能够控制和管理连续的RAM。程序从CPU的内存复制到OpenGL ES的缓存。提供数据给缓存需要7个步骤,如下图:


    屏幕快照 2018-07-09 下午8.29.01.png
    屏幕快照 2018-07-09 下午8.29.16.png
    屏幕快照 2018-07-09 下午8.29.35.png
  2. 帧缓存: 接收渲染结果的缓冲区叫做缓存(frame buffer),帧缓存不需要初始化,因为渲染指令会在适当的时候替换缓存的内容。前帧缓存(front frame buffer)的特定帧缓存中的颜色元素控制着屏幕显示像素,后帧缓存(back frame buffer)保存渲染结果。
上一篇下一篇

猜你喜欢

热点阅读