美文网首页iOS开发进阶
OpenGL ES学习初体验

OpenGL ES学习初体验

作者: 测试开发雨辰 | 来源:发表于2018-07-09 20:41 被阅读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)保存渲染结果。

    相关文章

      网友评论

        本文标题:OpenGL ES学习初体验

        本文链接:https://www.haomeiwen.com/subject/hftwuftx.html