首页 > 编程知识 正文

vulkan与opengl对比,opengl和opengl(skia)

时间:2023-05-04 02:46:40 阅读:62624 作者:954

这篇文章介绍了OpenGL ES:新手村的HelloWorld。 我进行了使用OpenGL ES实现图像的展示,并对其中的所有函数进行了说明和说明。 但是,我后来读了OpenGL ES应用开发实践指南iOS卷一书,这样解释清楚地说明了各个函数的作用,而OpenGL ES

OpenGL ES的结构是,只要CPU是万能的手,什么都可以做。设备内的GPU集中在图像处理这一部分,所以尽量把所有的图像处理都交给GPU。但是,如何从代码中调用GPU进行工作这必须用于OpenGL ES。 首先,OpenGL ES是一种软件技术,OpenGL ES部分在CPU上运行,部分在GPU上运行,OpenGL ES跨越两个大处理器。 协调两个区域之间的数据交换。 请参照下图。

那么为什么要使用OpenGL ES呢? 这是困扰我很久的问题。 这里其实有两个理由。

1 .从一个内存区域到另一个内存区域的数据复制非常慢,而且在内存复制过程中CPU和GPU都不行吧。 内存被用于其他用途。 想象一下。 如果不使用OpenGL ES,则如果CPU和GPU直接交换数据,设备可能会发生不可思议的错误。 2 .所有内存访问都相对缓慢。 就是CPU内存读写数据的速度跟不上执行速度。 在术语中添加“数据饥饿”。 上面的问题我已经理解了,OpenGL ES做了什么呢? OpenGL ES为两个内存区域之间的数据交换定义了缓存(buffers )的概念。缓存是图像处理器能够控制和管理的连续的内存区域(RAM)) Hello World的文章阐述了各种缓存函数的说明。 还阐述了总体流程。 程序从CPU内存中复制的数据将包含顶点数据和索引数据并复制到OpenGL ES缓存中。 而且,GPU获得缓存所有权后,在CPU上运行的OpenGL ES不会触摸此缓存。 在理想状态下,GPU可以尽可能高效地读写此缓存区域。 这也是我们可以通过程序实现的。 还有一点,用程序是无法实现的。 但是,它是存在的。那就是图形处理器将处理大量数据的能力异步地同时应用于高速缓存,这意味着GPU使用高速缓存内的数据进行工作的时候,CPU执行的程序可以继续。

OpenGL ES上下文用于配置存储在OpenGL ES特定平台的软件数据结构中的信息。 封装在OpenGL ES上下文中。 hello world降低的EAGLContext对象。 以前OpenGL ES说是状态鸡,但实际上是状态机。 为什么会这样呢? 这是因为一个程序将OpenGL ES设置为值后,该值将一直保持到程序更改此值。 上下文用于保存此值,上下文中的信息可以存储在CPU控制的内存中,也可以存储在GPU控制的内存中。 OpenGL ES根据需要在两个内存空间之间复制信息。 (

如果是OpenGL ES的必备基础知识OpenGL ES的必备知识,我认为最多的是关于线性代数的知识。 我一直在读3D数学基础图形和游戏开发这本书,可以同时写一些博客。 要研究的童鞋请从3D图形入门到放弃去看这个主题。

写完这篇文章,没有其他意思。 一个是自己在看书,看到了几个以前没说过的技术点。第二个原因是我以前写了hello world。 我很清楚函数,但有点省略了与OpenGL ES相关的内容。 所以,我不想给以前写的人留下什么误会,请补上。 而且,读了书之后,我觉得应该从一开始就重新整理一下

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。