OpenGL_ES

OpenGL ES学习笔记(一):相关基本概念

2016-10-09  本文已影响948人  Theodore_Pratt
  • 注:这篇文集是针对《OpenGL ES应用开发实践指南 iOS卷》的学习笔记。

图形渲染原理及问题

  1. 图像显示过程:把程序提供的几何数据转换为屏幕上的图像的过程叫做渲染。CUP处理图形数据->传递给GPU->GPU渲染图形数据为2D的平面图像显示到屏幕。
  2. 使用现代硬件渲染3D图形的速度几乎完全取决于不同的内存区域被访问的方式。
  3. 从内存的一个区域将数据拷贝到另一个区域是相对较慢的,更糟糕的是,除非非常小心,在内存复制发生的时候GPU和CPU都不能把内存另作他用。因此内存区域之间的数据交换需要尽量避免。
  4. 所有的内存访问都是相对较慢的。CPU大约每秒一亿次运算,但只能每秒读写内存200万次,GPU理想状态下每秒执行数亿次运算,但是却只能每秒访问内存2亿次。GPU和CPU总是处于“数据饥饿”状态。
  5. 概括最新OpenGL ES和以前的OpenGL版本之间的差异的一种方式是:最新的为了支持新改进的方法抛弃了旧式的低效内存复制操作的支持。

缓存:提供数据的最好方式

OpenGL ES为两个内存区域间的数据交换定义了缓存(buffers)概念。即图形处理器能够控制和管理连续的RAM。缓存的概念解决了上面3中的问题。几乎所有的程序提供给GPU的数据都应该放入缓存中。

帧缓存

概念:GPU需要知道应该在内存中的哪个位置存储渲染出来的2D图像像素数据。就像GPU提供数据的缓存一样,接收渲染结果的缓冲区叫做帧缓存(frame buffer)。

OpenGL ES的上下文

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

一个3D场景的几何数据

几何数据是相对于3D坐标系定义的。

坐标系

矢量

点、线、三角形

小结

上一篇下一篇

猜你喜欢

热点阅读