首页 > 其他分享 >虎书 第一章 图形流水线

虎书 第一章 图形流水线

时间:2023-05-20 16:33:48浏览次数:33  
标签:模型 显示器 虎书 第一章 GPU 流水线 图形 像素

图形流水线

1.GPU

在了解图形流水线之前,我们先了解一下电脑是如何将图像绘制到屏幕上的。GPU的功能最简单、直接的描述就是:它处理需要显示输出的数据。一旦计算机系统中有GPU,人们在显示器上看到的一切都是它计算的结果。

一块现代GPU的工作流程基本是这样的:
\(①\)获得三维模型,这些模型是用顶点坐标和色彩信息组成的(CPU)
\(②\)对这些顶点的位置进行一系列的变换,然后投影到帧缓存上(GPU)
投影的同时,GPU根据显示器的大小和分辨率对投影结果进行裁剪、光栅化;每个帧缓存里的像素或者像素多边形的色彩经过GPU的一系列变换;最后的结果被GPU输出到显示器上。

这一系列的工作是先后有序、不可颠倒的,前面步骤的输出是后面步骤的输入。我们把这一连串的图形处理任务形象地称为图形流水线(graphics pipeline),或者图形管线。图形流水线的入口是顶点坐标和颜色信息,输出的是一帧适合当前显示器显示的图像。流水线以较高的频率工作(须高于显示器的刷新频率),其间不断有数据从中流过,同时连续的一帧帧图像被输出到显示器上。

2.图形流水线

图形流水线是GPU工作的通用模型。它以某种形式表示的三维场景为输入,输出二维的光栅图像(Raster Images)到显示器,也就是位图。下面依次解释图形流水线中的关键步骤。

1)图形流水线的起点是一个三维模型。可以是我们从三维建模软件中导出的模型,也可以是逆向扫描得到的模型。这些模型都是顶点数据,例如每一个点中都应该带有 RGB 的向量数据。

2)顶点可以用来形成多边形,从而拟合出近似的表面。最常用的是三角化(triangulation),即每相邻的三个点组成一个三角形。接下来每个顶点要经过一系列的逐顶点操作(per-vertex operation)

3)由于显示输出的需要,用户会定义一个视口(view port),即观察模型的位置和角度。然后,模型被投影到与视口观察方向垂直的平面上。这个投影变换(projection transformation)也是硬件加速的。根据视域的大小,投影的结果有可能被裁剪(clipping)掉一部分。

4)接受模型投影的平面是一个帧缓存(frame buffer),它是一个由像素(pixels)定义的光栅化平面。光栅化(rasterization)的过程,实际上就是决定帧缓存上的哪些像素该取怎样的值。通过采样和插值,光栅化器(rasterizer)会决定一幅最接近原投影图像的位图。

5)这些像素或者由像素连成的片段还须经历一些逐片段操作(per-fragment operation),也就是说,它们的颜色也可以根据算法改变。另外,纹理映射(texturing或texture mapping)在这一阶段也会覆盖某些像素的值。另外,对于投影和光栅化的结果,还要判断片段的可见性,也就是遮挡探测(occlusion detection)。

6)最后帧缓存里的结果被刷新到显示器上。该过程以较高的帧频率重复,用户就能在显示器上看到连续的图形变换。

本文截取了GPU图形流水线 中部分内容。

标签:模型,显示器,虎书,第一章,GPU,流水线,图形,像素
From: https://www.cnblogs.com/yangshusen/p/17417384.html

相关文章

  • GitHub创建Github Action流水线来定时发送天气预报给email
     1、基本原理curlwttr.incurlwttr.in/Shanghaicurlwttr.in/wuhan   2、参考文章基于GITHUBACTION的定时任务,真香!https://blog.csdn.net/qq_40748336/article/details/110749375上文参考的文章GitHubActions入门教程_阮一峰http://www.ruanyifeng.com/blo......
  • 第一章 MySQL体系结构和存储引擎
    1.1定义数据库和实例数据库:物理操作系统文件或其他形式文件类型的集合实例:MySQL数据库由后台线程以及一个共享内存区组成在MySQL数据库中,实例与数据库的关系通常是一一对应的,即一个实例对应一个数据库,一个数据库对应一个实例MySQL数据库实例在系统上的表现就是一个进程MySQL......
  • 第一章:可靠性,可扩展性,可维护性
    现今很多应用程序都是数据密集型(data-intensive)的,而非计算密集型(compute-intensive)的。数据密集型应用标准组件:存储数据,以便自己或其他应用程序之后能再次找到(数据库(database))记住开销昂贵操作的结果,加快读取速度(缓存(cache))允许用户按关键字搜索数据,或以各种方式对数据进......
  • 第一章
      ......
  • 西门子S7-1200流水线贴膜机项目程序,有KTP700触摸屏组态操作界面。
    西门子S7-1200流水线贴膜机项目程序,有KTP700触摸屏组态操作界面。程序包含.上下气缸控制,夹紧气缸控制,输送带电机控制,贴膜伺服控制旋转电机控制等类容。适合简单控制工艺及运动控制初学者参考,程序打开版本TIAV14及以上。ID:328675516835226......
  • PLC做配方三轴螺丝机程序 配合流水线使用的三轴吸钉式自动锁螺丝机 (就是用流水线到位
    PLC做配方三轴螺丝机程序配合流水线使用的三轴吸钉式自动锁螺丝机(就是用流水线到位信号启动,螺丝机打完再输出信号:)显控触摸屏加三菱FX3GA已经在设备上使用。用PLC做的配方,打螺丝颗数1-10颗最大存储70个产品数据颗数和数据数程序可以改ID:1418656656907646......
  • 烘箱流水线4路加热PID控制温度的案例程序,程序结构清晰明了,USS通讯控制V20变频器,含PLC
    烘箱流水线4路加热PID控制温度的案例程序,程序结构清晰明了,USS通讯控制V20变频器,含PLC程序,SMAT700IE触摸屏程序,电气图纸全套,电气BOM。实际项目应用的程序。注意是程序,不是设备元器件,西门子SMART200PLC。ID:5519657417647111......
  • SIEMENS/西门子SMART200 PLC, 烘箱流水线4路加热PID控制温度的案例程序,程序结构清晰明
    SIEMENS/西门子SMART200PLC,烘箱流水线4路加热PID控制温度的案例程序,程序结构清晰明了,USS通讯控制V20变频器,含PLC程序,SMAT700IE触摸屏程序,电气图纸全套,电气BOM。实际项目应用的程序。注意是程序,不是设备元器件。ID:3914667918281682......
  • 第一章 Ansible 基础介绍及安装
    1.1Ansible基础介绍Ansible是一个开源自动化运维平台。Ansible是一个可以在Ansibleplaybook中在完美描述IT应用架构的简单的自动化语言。它也是一个运行AnsiblePlaybook的自动化引擎。Ansible可以管理强大的自动化任务,并且可以适应许多不同的工作流和环境。同时,Ansible的新......
  • 第一章 概论
    1.冯·诺依曼计算机:①五大组成部分:运算器、存储器、控制器、I/O设备②指令和数据以同等地位存放于存储器中,可按地址寻访③指令和数据用二进制表示④指令由操作码和地址码组成⑤存储程序⑥以运算器为中心......