OpenGL ES学习初体验
2018-07-09 本文已影响0人
测试开发雨辰
绪论
- OpenGL定义:OpenGL(全写Open Graphics Library)是个定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图像。OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库。
- OpenGL ES(OpenGL for Embedded Systems)是OpenGL三维图形API的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。
图形基础
- 像素:它是计算机图像的最小构成元素,由三个颜色组件构成:RGB。
- GPU:图形处理单元,结合集合、颜色、灯光以及其他数据而产生一个图像的硬件组件
- 渲染:把程序提供的几何数据转化为屏幕上的图像的过程
OpenGL ES相关知识
1.OpenGL ES原理:OpenGL ES部分运行在CPU上,部分运行在GPU上。OpanGL ES横跨在两个处理器之间,协调两个内存区域之间的数据交换。CPU计算好现实内容提交到GPU,GPU渲染完成后将渲染结果放入帧缓冲区,随后视频控制器按照VSync信号逐行读取帧缓冲区的数据,经过数模转换传递给显示器显示如图:
从一个内存区域复制数据到另一个内存区域速度是相对较慢的,并且在内存复制的过程中,CPU和GPU都不能处理这区域内存,避免引起错误。此外,CPU/GPU执行计算的速度是很快的,而内存访问的速度是相对较慢的,GPU总是受限于内存访问的性能。
-
缓存: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 - 帧缓存: 接收渲染结果的缓冲区叫做缓存(frame buffer),帧缓存不需要初始化,因为渲染指令会在适当的时候替换缓存的内容。前帧缓存(front frame buffer)的特定帧缓存中的颜色元素控制着屏幕显示像素,后帧缓存(back frame buffer)保存渲染结果。