推广

音视频开发之旅(七) OpenGL ES 基本概念

iseeyu2年前 (2024-02-21)推广126

图片来源 OpenGL(一) OpenGL入门

图片来源 [Android官方文档]

那为什么需要OpenGL ES 这个桥梁呐?能不能CPU和GPU直接交互呐?

数据从一块内存复制到另一块内存中,传递速度是非常慢的,CPU主要处理逻辑控制,GPU在逻辑运算方面比较强大,可以高并行处理图形数据和复杂算法,我们对比看下CPU和GPU的内部结构

图片来源 OpenGL(一) OpenGL入门

二、基本流程和概念

OpenGL ES 3.0 实现了具有可编程着色功能的图形管线,有两个规范组成:OpenGL ES 3.0 API 和 GLSL着色器语言。在学习这些规范之前,我们先了解下相关的基本概念

2.1 渲染的基本流程

图片来源 LearnOpenGL CN

OpenGL在处理Shader时,和其他编译器一样。通过编译、链接等步骤,生成了着⾊器程序(glProgram),着⾊器程序同时包含了顶点着⾊器和⽚段着⾊器的运算逻辑。在OpenGL进行绘制的时候,⾸先由顶点着⾊器对传⼊的顶点数据进行运算。再通过图元装配,将顶点转换为图元。然后进行光栅化,将图元这种⽮量图形,转换为栅格化数据。最后,将栅格化数据传入⽚段着⾊器中进行运算。⽚段着色器会对栅格化数据中的每⼀个像素进行运算,并决定像素的颜⾊。

2.2 管线

它是一系列数据处理的过程,将应用程序的数据最终转换到渲染的图像。下图展示了OpenGL ES 图形管线

图片来源:《OpenGL ES 3.0 编程指南》

2.3 顶点

OpenGL ES 的基本元素有点、线、三角形,就像盖钢架结构的房子一样,先确定好位置,搭出框架,OpenGL ES 也需要确定好位置即顶点

图片来源 通俗易懂的 OpenGL ES 3.0(一)入门必备知识

2.4 纹理

纹理通常是一张图片,也可以用来存储大量的数据,这些数据可以发送到着色器。我们这个章节了解下纹理作为一张图片的意义。
那么为什么需要纹理呐?
我们可以为每个顶点添加颜色来丰富图像的细节,如果想让图形开起来更加有趣真实,我们就必须有足够的顶点从而指定足够多的颜色,但这会产生很多额外开销。使用纹理可以避免这个

你可以想象纹理是一张绘有砖块的纸,无缝折叠贴合到你的3D的房子上,这样你的房子看起来就像有砖墙外表了。因为我们可以在一张图片上插入非常多的细节,这样就可以让物体非常精细而不用指定额外的顶点。

图片来源LearnOpenGL CN

下面是一张怀旧滤镜的纹理图

2.5 顶点着色器(VertexShader)

顶点着色器一般用来处理图形每个顶点的变换,例如 平移、缩放、旋转、投影等
顶点着色器是OpenGL ES中用于计算顶点属性的程序,每个顶点都会并行的执行一次顶点着色器程序。

2.6 图元装配

图元(Primitive)是点、线、三角形等基本几何对象,图元的每个顶点被发送到顶点着色器处理,而图元装配就是把这些顶点做合成图元

2.7 光栅化

光栅化是把顶点数据转换为片元的过程。将有基本元素(点、线、三角形)组成的几何图元变为二维图像的过程。
这个过程包含两部分内容

  1. 确定视图坐标中哪些区域被基本图元占用
  2. 分配一个颜色值和一个深度值到各个区域

2.8 片段着色器(FragmentShader)

片段着色器又叫片元着色器,用来处理图形中每个像素点颜色计算和填充

2.9 逐片段操作

在逐片段操作阶段,每个片段上会执行 像素归属测试、裁剪测试、模版和深度测试、混合、抖动

在测试阶段之后,如果像素依然没有被剔除,那么像素的颜色将会和帧缓冲区中颜色附着上的颜⾊进⾏混合,混合的算法可以通过OpenGL的函数进行指定。但是OpenGL提供的混合算法是有限的,如果需要更加复杂的混合算法,一般可以通过像素着色器进行实现,当然性能会⽐比原⽣的混合算法差一些.

参考

《音视频开发进阶指南》
《OpenGL ES 3.0 编程指南》
LearnOpenGL CN
OpenGL(一) OpenGL入门
通俗易懂的 OpenGL ES 3.0(一)入门必备知识

收获

  1. 了解OpenGL ES的版本和android系统兼容性
  2. 了解OpenGL ES在手机CPU和GPU之间的桥梁作用
  3. 了解OpenGL ES中顶点、着色器、图元装配、光栅化等基本概念
  4. 了解OpenGL ES的图形管线渲染的流程

感谢你的阅读

下一篇我们学习实践OpenGL ES开发的语言GLSL的使用,欢迎关注“音视频开发之旅”,一起学习成长。

欢迎交流

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://www.0291.com.cn/post/56930.html

相关文章

阿维塔快速渠道布局,聚力为用户打造全新智慧生活方式 ...

阿维塔快速渠道布局,聚力为用户打造全新智慧生活方式 ...

今天的消费越来越多元化。汽车模式的转变,本质上是汽车产业运行的核心向用户转变的一种具象化表现。而在中国广袤的土地上,不会有任何一种模式能够包打天下,区域市场的多元化,决定了汽车销售不会是某种形式一枝独秀,而一定是多元模式共生并存。在这一点上,阿维塔从一开始就有非常清晰的认知...

618该从哪里入手提高网络营销转化率。

618该从哪里入手提高网络营销转化率。

电商平台一年一度的618大促活动即将拉开帷幕,我们应该从哪里入手提高的转化呢?除了进口,我们应该锁住出口,也就是着陆页面,可以让你的转化暴增,不信来看看吧: 双十一天猫成交额1682亿! 羡慕吗?如果我能有这么多的钱,从现在开始我就要做一个草履虫! 言归正传。还有几天就要618了,各大平台都在...

搜索引擎页面优化排名维度。

搜索引擎页面优化排名维度。

密度 对于关键词的密度,大家众说纷纭,今也没有个固定的标准,所以每个站长在对待关键词密度的时候总是有点犹豫不定,加多了怕被搜索引擎认为作弊,加少了怕无法达到关键词优化。尽量的把我们网站的关键词密度控制在5%左右,上下浮动不要超过1%。般情况下,只要是让关键词分布的比较合理,比较自然,这样般都不会有...

如何做好软文营销,软文代写总结经验分享

洛希网络科技认为要做好,必须把握好三个核心要素,即产品卖点、软文主题和素材,撰写的营销软文才有转化效果。产品卖点一定是最具优势的核心卖点;软文主题就是怎么对这个核心卖点进行包装;内容素材就是让软文主题具体实现的材料。软文代写之所以受到很多主的青睐,正是因为软文代写团队深谙这...

怎么优化网站关键词。

怎么优化网站关键词。

新站优化一般三个月内都是没有排名的,就算有排名,也仅仅是伪排名。也就可以说可有可无的,或许今天有排名,明天没了,一个星期有排名,不过还是会掉下去的。这是为什么?这是因为百度百度处理数据的时候,有些人网站掉下去了,你的也就上来了,然后百度处理数据到你的时候,你的排名也就不见了。也就是说,在三个月内,你...

淘宝客服分流权重值是什么意思(天猫客服分流权重值)

淘宝客服分流权重值是什么意思(天猫客服分流权重值)

很多大型淘宝店铺都有自己的客服团队的,每个淘宝店的客服团队人数都也是不一样的。不过既然成立了客服团队,那么客服组里最少也要有3-5个人的,这还是针对一些中型的淘宝店铺。...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片