渲染流程之应用阶段及几何处理阶段

news2024/7/4 5:19:20

需要了解渲染流程(四个阶段),屏幕显示原理(电子枪换行扫描及Vsync信号出现的原因)

什么是图元:

通常是三角形,线段,顶点等图形,所有的复杂几何图形都是由这些构成的

在Android的Surface中用Bitmap来表示。

应用阶段

这个是CPU完全负责的,CPU负责生成图元,后面的其他步骤就是GPU去负责了

对应于安卓移动端来说其实就是onDraw传入的canvas,Java中的Surface就是null,而canvas是在Surface通过lockCanvas得到的画布,onDrawa调用完成后 之后会调用Surface的unLockCanvas释放掉画布(java中的Surface是null,真正做处理的是native的Surface),Native的Surface接收到后转换成Bitmap存储在DisplayList中,稍后会通知RenderThread去做渲染处理

RenderThread接受到之后会从DisplayLis中取出Bitmap通过OpenGl函数库(可直接利用GPU渲染)将数据存储到FrameBuffer中,SurfaceFlinger和Display的关系目前还未明白,之后反正就是屏幕会去FrameBuffer中取出数据进行“画家算法”渲染,由于某些图层是需要在多个图层合成后再进行添加,所以故而出现了离屏渲染,GPU除了单独开辟一块和Display一样大小的FMBuffer空间,还需要开放一块单独的offScreenFmBuffer空间,效率上 如果此时GPU正将像素数据输出到FMBuffer中此时收到离屏渲染的数据时不得不放弃此次所有内容的输出而且还会进行上下文切换造成性能开销。所以在ios上UI 的阴影之类的会造成离屏渲染。(后面分析离屏渲染的解决)

GPU:

几何处理阶段:处理图元

主要工作:计算纹理,光照(后续片段着色器上色用),将图元转换成Virtex并连接,添加额外的Virtex生成更复杂的几何图形

上次将Surface转换成Bitmpa后这个对应的好像就是图元,然后GPU区在对图元进行处理生成新的图元,主要由这些处理器处理:

  • 顶点着色器:将图元中的顶点信息进行视角转换,添加光照信息,增加纹理等操作。

image.png

  • 形状装配:图元中的三角形,线段,点对应三个Vertex,两个Vertex,一个Vertex。这个阶段会将Vertex连接成对应的形状。
  • 几何着色器:添加额外的Vertex,将原始图元转换成新图元,以构建一个不一样的模型,简单说就是通过三角形,线段和点来构建更复杂的几何图形

参考链接:segmentfault.com/a/119000002…

原文:渲染流程之应用阶段及几何处理阶段 - 掘金 (juejin.cn)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1184536.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

oj赛(双周赛第十四次)

目录 神器宝盒 特殊数字 神秘门的密码 找鸭子 银河间的数字之战 小码哥的英语 小码哥的艰难选择 小码哥搭建花圃 科学记数法 世界警察 中转站 安全验证 旅行 计算机的算力比我们强太多了 ,如果是拼单纯的计算力和算力我们毫无胜算 神器宝盒 难度&#…

无线电设备出口欧盟新版RED认证标准指令(EU)2023/2392

2023 年 10 月 4 日,欧盟委员会在欧盟官方公报上发布了指令(EU)2023/2392 号实施决定,其中包含支持无线电设备指令的新协调标准。这些新协调标准涉及国际移动通信、蜂窝网络设备和数字音频广播发射设备等。自发布之日起&#xff0…

表象变换与矩阵元

表象变换 一维粒子哈密顿量 表象中的矩阵元 态的表象变换 不难证明 算符的表象变换 坐标表象 Non-denumerable basis

Linux 安装 Nginx 并配置为系统服务(超详细)

目录 前言安装 Nginx安装依赖项下载Nginx解压Nginx编译和安装防火墙设置启动Nginx 配置 Nginx 为系统服务配置 Nginx 服务文件启动 Nginx 服务设置开机自启动检查 Nginx 状态停止 Nginx 服务重启 Nginx 服务 卸载 Nginx结语 前言 Nginx是一款卓越的高性能Web服务器&#xff0c…

虚拟展厅如何在艺术领域应用,虚拟展厅对艺术展有什么帮助

引言: 随着科技的不断发展,虚拟展厅作为一种新的展示方式,在艺术领域逐渐受到重视和应用。虚拟展厅利用虚拟现实技术,将艺术品展示于虚拟空间中,为观众带来更加身临其境的艺术体验。 一、虚拟展厅在艺术领域的应用 1…

Ozon产品内容评级功能上线,妙手ERP实力助力Ozon卖家全方位打造爆款产品!

产品内容评级,可以直接反映产品质量的高低,也是影响产品排名的关键。具有较高内容评级的产品,将有更大机会显示在搜索结果和类目的前几页中,从而引起买家的关注,促进销售。 为帮助卖家打造高质量产品,妙手…

区块链技术在跑腿服务中的应用与App系统开发

区块链技术为跑腿服务App系统带来了新的可能性,如支付安全、合同自动化、透明性等。本文将介绍如何在一个简单的跑腿服务App系统中应用区块链技术。 智能合约 智能合约是区块链的核心概念之一。它是在区块链上运行的自动化合同,可以自动执行、管理和验…

【测开求职】面试题:MySQL 吐血整理

​数据库是测开工程师面试中必考的部分,如果没有mysql基础,或者学习过但是忘记了,可以先看第二个部分的MySQL语法,有部分大厂会要求写查询语句。本篇文章包含本次求职过程中遇到的所有MySQL问题,亲测应付各个大厂的测开…

护网行动基本介绍(红蓝队经验分享)

什么是护网行动? 护网行动是一场网络安全攻防演练。是针对全国范围的真实网络目标为对象的实战攻防活动。 护网行动从2016年开始,护网行动是一场由公安部组织的网络安全攻防演练,目的是针对全国范围的真实网络目标为对象的实战攻防活动&…

Sulfo-CY3 azide水溶性荧光探针 星戈瑞

Sulfo-CY3 azide 是一种荧光探针,在水中具有良好的溶解性,使其在生物实验中易于使用和处理。在适当的储存条件下,Sulfo-CY3 azide 可以保持较长时间的稳定性,减少荧光信号衰减的影响Sulfo-CY3 azide 通常与具有炔基修饰的生物分子…

Python爬取汽车之家二手车数据并作可视化

大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 课程亮点: 1、系统分析目标网页 2、html标签数据解析方法 3、海量数据一键保存 获取二手车数据 环境介绍: python 3.8 pycharm 2022.3专业版 requests >>>…

【计算机网络】如何让客户端构造一个HTTP请求

文章目录 前言1. 在浏览器搜索栏中输入 URL2. 一些特殊的 HTML 标签触发GET请求3. form 表单构造 HTTP 请求4. ajax 构造 HTTP 请求5. postman 构造 HTTP 请求5.1 进入 postman 网站下载 postman5.2 打开 postman 前言 前面我们学习了关于 HTTP 的相关知识,HTTP 是…

幼猫罐头哪个品牌好?性价比高的幼猫主食罐头推荐

这些年来在宠物店的工作中,我发现许多铲屎官会在猫咪约2个月大时将它们带回家喂养。然而,他们可能对如何为这个阶段的幼猫提供适当的营养感到困惑。事实上,幼猫所需的营养成分与成年猫是相同的。一只健康的成年猫需要摄入高蛋白、中高脂肪和低…

【Springboot】Springboot引入JWT实现登录校验以及常见的错误解决方案

文章目录 前言一、JWT简单介绍二、token校验设计思路三、使用步骤Springboot部署JWT引入依赖:创建登录实体类后端:LoginController.java路由守卫函数 四、问题 前言 项目版本: 后端: Springboot 2.7、 Mybatis-plus、Maven 3.8.1…

Kubernetes 服务质量 - QoS

Author:rab 目录 前言一、QoS 类为 Guaranteed 的 Pod1.1 概述1.2 案例 二、QoS 类为 Burstable 的 Pod2.1 概述2.2 案例 三、QoS 类为 BestEffort 的 Pod3.1 概述3.2 案例 总结 前言 前面提到了 Kubernetes 的准入控制策略,那你有没有想过一个问题&…

指针基础知识

指针的概念&#xff1a;一个变量的地址称为该变量的指针。如果有一个变量专门用来放其他变量的地址&#xff08;指针&#xff09;&#xff0c;这个变量被称为“指针变量”。 指针就是内存地址&#xff0c;指针变量就是存储地址的变量。 代码示例&#xff1a; #include <s…

基于element-ui封装可配置表单组件

“vue”: “^2.7.13” “element-ui”: “^2.15.7” 代码地址 【说明】 该组件时使用vue3&#xff08;vue2.7&#xff09;语法封装&#xff0c;使用时可用vue2语法使用也可以使用vue3语法使用 一、vue2语法使用案例 基础用法 <template><div class"form-demo…

Kubernetes平台部署Grafana Loki Promtail系统

部署结构图&#xff1a; Loki 是主服务&#xff0c;负责存储日志和处理查询promtail 是代理&#xff0c;负责收集日志并将其发送给 lokiGrafana 用于 UI 展示 只要在应用程序服务器上安装promtail来收集日志然后发送给Loki存储&#xff0c;就可以在Grafana UI界面通过添加Lok…

网络工程师回顾学习(第二部分)

第六章&#xff1a;网络互连与互联网 需要掌握&#xff1a; &#xff08;1&#xff09;网络互连设备 &#xff08;2&#xff09;网络互连的基本原理和关键技术 &#xff08;扩展&#xff1a;TCP/IP协议簇&#xff09; &#xff08;3&#xff09;Internet协议及其提供的网络…

【python海洋专题四十】海洋指数画法--单色填充图

【python海洋专题四十】海洋指数画法–单色填充图 【python海洋专题四十】海洋指数画法–单色填充图 数据:AMO_index 图像展示: 图片 往期推荐 图片 【python海洋专题一】查看数据nc文件的属性并输出属性到txt文件 【python海洋专题二】读取水深nc文件并水深地形图 【p…