计算机渲染图片原理,计算机渲染原理与CoreAnimation

2023-10-18 10:50

本文主要是介绍计算机渲染图片原理,计算机渲染原理与CoreAnimation,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、CPU与GPU

计算机中有三个关键硬件:中央处理器CPU,内存和I/O控制芯片,这三个部件几乎就是计算机的核心了,GPU是后来衍生出的专门用来处理绘图运算的处理器

CPU:现在计算机整个运行系统的计算/控制核心,中央处理器

GPU:绘图运算的专用微处理器,是连接计算机和显示终端的纽带

CPU处理复杂的逻辑运算,虽然现在有多核处理器,可以并发,但实际上并不是真正意义上的并发,而是通过时间片的切换来实现的

而GPU是真正意义上的高并发

二、计算机渲染原理

早期的计算机显示方式是随机扫描显示

显示文件>显示处理器>显示器

通过电子光束随机扫描

而光栅扫描是通过像素点逐行扫描显示到显示器上

ee74466f7d63

image.png

流程如下:

将帧缓冲区里的数据交给视频控制器,视频控制器读取信息进行数模转化,然后进行光栅扫描,显示在显示器上

因为人眼有视觉暂留,一般最低每秒16帧就能让人的视觉感觉连贯

三、屏幕撕裂

ee74466f7d63

image.png

屏幕撕裂如何产生的呢?

屏幕撕裂:当视频控制器拿到帧缓冲区数据显示的时候,这一帧的数据还没显示完,新一帧的数据来了,那么就会开始扫描新一阵的数据,所以就会产生屏幕撕裂

为了解决屏幕撕裂问题,就出现了垂直同步Vsync技术+双缓冲区DoubleBuffering,

垂直同步给帧缓冲区加锁,等待显示完成后交换缓冲区处理下一帧数据,但是如果屏幕刷新完成后,缓冲区的数据并没有计算完成(由于CPU和GPU的速度问题导致拿不到framebuffer),屏幕就会重复渲染同一帧数据,这种情况我们成为掉帧,在视觉上的感受就是卡顿,为了减少掉帧次数,所以引入了三缓冲区技术,合理的使用CPU和GPU

掉帧

屏幕重复渲染同一帧数据

ee74466f7d63

掉帧.png

四、Core Animation

CoreAnimation是苹果提供的一套基于绘图的动画框架

ee74466f7d63

image.png

ee74466f7d63

image.png

Core Animation 流水线

ee74466f7d63

ios-core-animation-pipeline-steps.png

app 本身并不负责渲染,渲染则是由一个独立的Render Server 进程负责。

App 通过 IPC 将渲染任务及相关数据提交给 Render Server。Render Server 处理完数据后,再传递至 GPU。最后由 GPU 调用 iOS 的图像设备进行显示。

Core Animation 流水线的详细过程如下:

首先,由 app 处理事件(Handle Events),如:用户的点击操作,在此过程中 app 可能需要更新 视图树,相应地,图层树 也会被更新。

其次,app 通过 CPU 完成对显示内容的计算,如:视图的创建、布局计算、图片解码、文本绘制等。在完成对显示内容的计算之后,app 对图层进行打包,并在下一次 RunLoop 时将其发送至 Render Server,即完成了一次 Commit Transaction 操作。

Render Server 主要执行 Open GL、Core Graphics 相关程序,并调用 GPU

GPU 则在物理层上完成了对图像的渲染。

最终,GPU 通过 Frame Buffer、视频控制器等相关部件,将图像显示在屏幕上。

Core Animation 图层打包->下一次runloop到来提交给RenderServer->RenderServer通过OpenGL等调用GPU->GPU进行渲染流程(顶点着色器、片元着色器等)->下一次runloop到来的时候显示到屏幕上

这篇关于计算机渲染图片原理,计算机渲染原理与CoreAnimation的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/232085

相关文章

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

hdu4407(容斥原理)

题意:给一串数字1,2,......n,两个操作:1、修改第k个数字,2、查询区间[l,r]中与n互质的数之和。 解题思路:咱一看,像线段树,但是如果用线段树做,那么每个区间一定要记录所有的素因子,这样会超内存。然后我就做不来了。后来看了题解,原来是用容斥原理来做的。还记得这道题目吗?求区间[1,r]中与p互质的数的个数,如果不会的话就先去做那题吧。现在这题是求区间[l,r]中与n互质的数的和

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

hdu4407容斥原理

题意: 有一个元素为 1~n 的数列{An},有2种操作(1000次): 1、求某段区间 [a,b] 中与 p 互质的数的和。 2、将数列中某个位置元素的值改变。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.Inpu

hdu4059容斥原理

求1-n中与n互质的数的4次方之和 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWrit

Android 10.0 mtk平板camera2横屏预览旋转90度横屏拍照图片旋转90度功能实现

1.前言 在10.0的系统rom定制化开发中,在进行一些平板等默认横屏的设备开发的过程中,需要在进入camera2的 时候,默认预览图像也是需要横屏显示的,在上一篇已经实现了横屏预览功能,然后发现横屏预览后,拍照保存的图片 依然是竖屏的,所以说同样需要将图片也保存为横屏图标了,所以就需要看下mtk的camera2的相关横屏保存图片功能, 如何实现实现横屏保存图片功能 如图所示: 2.mtk

Spring MVC 图片上传

引入需要的包 <dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.1</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-

Prompt - 将图片的表格转换成Markdown

Prompt - 将图片的表格转换成Markdown 0. 引言1. 提示词2. 原始版本 0. 引言 最近尝试将图片中的表格转换成Markdown格式,需要不断条件和优化提示词。记录一下调整好的提示词,以后在继续优化迭代。 1. 提示词 英文版本: You are an AI assistant tasked with extracting the content of

寻迹模块TCRT5000的应用原理和功能实现(基于STM32)

目录 概述 1 认识TCRT5000 1.1 模块介绍 1.2 电气特性 2 系统应用 2.1 系统架构 2.2 STM32Cube创建工程 3 功能实现 3.1 代码实现 3.2 源代码文件 4 功能测试 4.1 检测黑线状态 4.2 未检测黑线状态 概述 本文主要介绍TCRT5000模块的使用原理,包括该模块的硬件实现方式,电路实现原理,还使用STM32类