问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

OpenGL ES基础理论 (一) —— 缓存、帧缓存、上下文与坐标系等

发布网友 发布时间:2022-12-28 10:27

我来回答

1个回答

热心网友 时间:2023-11-13 21:51

程序会将3D场景数据保存到硬件RAM中,嵌入式系统的*处理单元有专门为其分配的RAM,在图形处理的过程中,GPU也有专门为其分配的RAM,使用现代硬件渲染3D图形的速度几乎弯完全取决于不用的内存区块被访问的方式。

先看一下下图。

OpenGL ES 是 一 种 软 件 技 术。OpenGL ES 部分运行在 CPU 上,部分运行在 GPU 上。 OpenGL ES 横跨在两个处理器之间,协调两个内存区域之间的数据交换。上图中箭头代表了与3D渲染相关硬件组件之间的数据交换,每个箭头也代表着一个渲染性能的瓶颈。

从一个内存区域复制数据到另一个内存区域速度是相对较慢的。更糟糕的是,除非非常小心,在内存复制发生的时候 GPU 和 CPU 都不能把内存另作它用。因此内存区域之间的数据交换需要尽量避免。

最新的 OpenGL ES 为了支持新改进的方法抛弃了对于旧式的低效的内存复制操作的支持。

OpenGL ES 为两个内存区域间的数据交换定义了 缓存(buffers) 的概念。缓存是指图形处理器能够控制和管理的连续 RAM。程序从 CPU 的内存复制数据到 OpenGL ES 的缓存。在 GPU 取得一个缓存的所有权以后,运行在 CPU 中的程序理想情况下将不 再接触这个缓存。通过控制独占的缓存,GPU 就能够尽可能以最有效的方式读写内存。 图形处理器把它处理大量数据的能力异步同时地应用到缓存上,这意味着在 GPU 使用 缓存中的数据工作的同时,运行在 CPU 中的程序可以继续执行。

几乎所有的程序提供给GPU的数据都应该放入缓存中,为缓存提供数据,需要如下7个步骤:

理想情况下,每个生成的缓存都可以使用一个相当长的时间。下面看一下上面几个步骤的OpenGL ES的C语言函数的实现。

GPU 需要知道应该在内存中的哪个位置存储渲染出来的 2D 图像像素数据。就像 为 GPU 提供数据的缓存一样,接收渲染结果的缓冲区叫做帧缓存 (frame buffer) 。程 序会像任何其他种类的缓存一样生成、绑定、删除帧缓存。但是帧缓存不需要初始 化,因为渲染指令会在适当的时候替换缓存的内容。帧缓存会在被绑定的时候隐式开 启,同时 OpenGL ES 会自动地根据特定平台的硬件配置和功能来设置数据的类型和偏移。

可以同时存在很多帧缓存,并且可以通过 OpenGL ES 让 GPU 把渲染结果存储到 任意数量的帧缓存中。但是,屏幕显示像素要受到保存在前帧缓存 (front frame buffer) 的特定帧缓存中的像素颜色元素的控制。程序和操作系统很少会直接渲染到前帧缓存中,因为那样会让用户看到正在渲染中的还没渲染完成的图像。相反,程序和操作系统 会把渲染结果保存到包括后帧缓存 (back frame buffer) 在内的其他帧缓存中。当渲染后的后帧缓存包含一个完成的图像时,前帧缓存与后帧缓存几乎会瞬间切换。后帧缓存会变成新的前帧缓存,同时旧的前帧缓存会变成后帧缓存。

用于配置 OpenGL ES 的保存在特定平台的软件数据结构中的信息会被封装到一个 OpenGL ES 上下文(context)中。上下文中的 信息可能会被保存在 CPU 所控制的内存中,也可能会被保存在 GPU 所控制的内存中。 OpenGL ES 会按需在两个内存区域之间复制信息,知道何时发生复制有助于程序的优化。

OpenGL ES 总是开始于一个矩 形的笛卡儿坐标系,如下图所示。

OpenGL ES 坐标是以浮点数来存储的。现代 GPU 对浮点运算做了专门的优化,即 使是使用其他数据类型的顶点也会被转换成浮点值。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...玩网页游戏当输入完用户名,密码 点登入时 网页会自动关闭,就是点下... 一看电影网页游戏就掉线 771天津到无锡在那个火车站上车 天津1469次火车到无锡哪个火车站?求解 天津西到无锡东的G211途经哪些站? k5268次列车途经站点 java.applet描述 小动物之星禁止跳舞成就怎么完成 小动物之星如何解锁禁止跳舞 小动物之星蕉驴不焦虑成就怎么做 小动物之星蕉驴不焦虑成就完成方 小动物之星农场奇遇的完成方法 iOS中的OpenGL:基础概念 怎么把wps表格打印铺满 词语造句:用一系列造句(约30个) 跑龙套造句六年级 最近电脑上有什么电影可以看? 不要恐怖片! 最好是动作片啊比如美国队长啊特工啊这些的,最好是好莱坞 灿烂不同意义造句? 泥的组词大全(约50个) 泥的词语解释_泥是什么意思? 用搀着造句(大约30个左右) 形容喝酒的成语句子,诗句古诗词名言 用泥醉造句(大约30个左右) 低字开头的四字成语 用低回造句,和意思 词语造句:用低回造句(约30个) word怎么把字体复制 新华辽宁图像采集公众号系统繁忙 用凡作造句(大约30个左右) 词语造句:用凡是造句(约30个) 我想问一下e3系列cpu性价比哪个高 用似非造句(大约30个左右) 用如花似锦造句(大约30个左右) 计算机图形学(OPENGL):基础光照 炸红薯丸子是怎么做的 直接用硝酸银溶液做电镀液体电镀不锈钢丝(直径0.35MM)。会不会容易脱落... 如何培养孩子的专注力及自控力 pack it up造句 pack it upの例文 "pack it up"是什麼意思 一建的通过率是多少 一建灯具抽检比例多少 一建定金比例最高是多少 沙雕网名能笑死人的沙雕网名能笑死人的有哪些 锐不可当什么意思?有什么历史典故?反义词和近义词是什么? 互瞄电视蓝牙设置显。无法配对 用遒劲造句(大约30个左右) 500uA电流表怎样改为220V交流电压表? 感谢恩师的古诗词句 微信怎么禁用检测热键介绍 骁龙8Gen2处理器已经超越苹果A15了吗? 苹果11pro比苹果12出得晚吗? 求QQ呢称的使用技术,一些后面不显示时间啊之类的技术 用斩下造句(大约30个左右) 用船舵造句(大约30个左右)