Real- Time Rendering-图形渲染管线(The graphics rendering pipeline)

news2024/10/5 22:21:39

1、图像渲染管线描述的是什么

        图像渲染管线的主要功能是决定在给定虚拟相机,三维物体,光源,照明模式以及纹理等诸多条件的情况下,生成或者绘制一幅二维图像的过程。

        渲染图像的位置,形状是由他们的几何形状,环境特性,摄像机位置决定。而物体的外观是由材质特性,光源,纹理和着色模型确定。

2、图像渲染管线分为那几部分

  1. 应用程序阶段(The application stage)
  2. 几何阶段(The Geometry stage)
  3. 光栅化阶段(The Rasterizer stage)
  4. 像素处理(Pixel Processing)

        要点:

  • 每个阶段本身也可能是一条管线,如图中的几何阶段。还可以对有的阶段或者部分的并行化处理,如光栅化阶段。应用程序孙然是一个单独的过程,但是依然可以对之进行管线化或者并行化处理。
  • 最慢的管线阶段决定绘制速度,即图像的更新速度,这种速度用FPS表示,也就是每秒绘制的图像数量。                        

     应用程序阶段是由应用驱动,因此常搭载在CPU上运行的应用程序上,这些CPU包含多个核心,他们能够并行执行多个线程。使得GPU可以高效运行各种各样的应用阶段负责的任务。几何处理阶段主要处理变换,投影以及其他类型的几何处理。这个阶段主要去计算需要绘制什么,如何去绘制,还有在哪里绘制。几何阶段通常处于包含很多可编程核心以及固定功能硬件的图像处理单元中(GPU。光栅化阶段通常会读取三个顶点作为输入来构造三角形,并且找到所有的被认为在三角形内部的像素。最后的像素处理阶段,对每一个像素执行程序决定他们的颜色,并进行深度测试来决定是否可见,可能也会执行一些每个像素的操作,如计算颜色与之前的颜色进行混合。光栅化和像素处理是完全在GPU上进行处理的阶段。   

        2.1 应用程序阶段

        应用程序阶段的通常实现的方法有碰撞检测,加速算法,输入检测,动画,力反馈以及纹理动画,变换仿真,几何变形,以及一些不在其他阶段执行的计算,如层次视锥裁剪等。主要的任务是:将需要在屏幕上显示的集合体(渲染图元 rendering primitive, 点 线和三角形),摄像机的位置,光照移交到几何处理阶段。应用程序阶段是基于软件的方式实现的,开发者能对该阶段发生的事情完全控制。虽然该阶段不能像几何和光栅化分为几个阶段,但可以在几个并行处理器上同时执行,提高性能。超标量体系结构,同一阶段,同一时间做不同的几件事情。

        2.2 几何阶段

        GPU上的几何处理阶段负责大部分的逐多边形和逐顶点的操作。这个阶段可以为分为

  • 模型视点变换 Model & view transform
  • 顶点着色 vertex shading 

2.2.1 模型视点变换

        一个模型需要在多个不同的空间或者坐标系统中进行切换。最初模型位于模型空间。每个模型都有相应的模型空间。每个模型都拥有一个模型变换用来变换位置和方向,单个模型可能关联多个模型变换。即允许一个模型的多个复制体在不同的位置,方向和大小,而不需要复制基本几何。

        模型变换的是模型的顶点和法向量。物体对象的坐标是模型坐标,经过模型变换后的物体可以说是处于世界坐标系下。世界坐标系是唯一的,所有经过模型变换的模型都位于时间坐标系下。此外,仅仅被相机看到的模型才会被渲染。为了便于投影和裁剪,通过视图变换来变换相机和相应的模型。视图变换的目的是将相机放置原点并对准方向,使他看向Z轴的负方向,Y轴指向上方,X轴指向右边。通过这种方式勾画的空间称作相机空间。下图展示视图变换影响相机和模型的例子:

        总之,模型和视图变换分为模型变换和视图变换,模型变换目的是将模型变换到合适的渲染空间中去,视图变换的目的是将摄像机放置于坐标原点,方便后续流程。

        2.2.2 顶点着色

        渲染一张真实的图像,不仅仅需要对象的位置和形状,还需要对他们的外观进行建模。包括每个对象的材质,光源在对象上的效果。决定灯光在材料上的效果就是所说的着色(shading)。着色过程涉及在对象上各个点处计算着色方程。这些计算一些在你几何阶段期间在模型的顶点上执行,而其他计算可以在每个像素光栅化期间执行。可以在每个顶点存储一些材料数据,如点的位置,法向量,颜色或者其他计算着色所需的数据。顶点着色的结果(颜色,项链,纹理坐标或者其他种类的着色数据)传递到光栅化和像素处理阶段,进一步插值和计算表面颜色。

        通常,着色认为在世界空间中进行,实际中,将相关实体(相机和光照)转换到其他空间(模型或者相机空间)中也可得到正确结果。这是因为着色过程中所有实体变换到相同空间,着色计算中的诸多光源,模型和相机的相对位置不变。

        总结:顶点的着色阶段在于确定模型上顶点处材质的光照效果。

        2.2.3 投影 projection

        光照处理后,渲染系统就进行投影操作,即将视体变换到一个单位立方体中,左上角(-1,-1,-1),右下角(1,1,1)。这个单位立方体也称作规范立方体(CVV canonical view volume)。

        主要有二种投影算法:

  • 正交投影 (orthographic projection)
  • 透视投影  (perspective proection)

        二种投影算法的主要区别:

  •  正交投影的视体通常是一个矩形,正交投影变换将这个视体变换成单位立方体。主要特点是原先平行的线在变换后依旧平行。这个变换是平移和缩放的组合。

Real-Time Rendering 4th Edition 实时渲染第四版 第二章 图形渲染管线(The Graphics Rendering Pipeline)-CSDN博客

https://github.com/QianMo/Game-Programmer-Study-Notes/tree/master/Content/《Real-Time%20Rendering%203rd》读书笔记/Content/BlogPost02

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

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

相关文章

使用GoQuery实现头条新闻采集

概述 在本文中,我们将介绍如何使用Go语言和GoQuery库实现一个简单的爬虫程序,用于抓取头条新闻的网页内容。我们还将使用爬虫代理服务,提高爬虫程序的性能和安全性。我们将使用多线程技术,提高采集效率。最后,我们将展…

火锅食材店配送小程序商城的作用是什么

每个城市中都有大量火锅店、自助转转店,当然还包括个人在家中涮菜,其对火锅食材的需求量非常高,而在市场中也有很多专营店或超市经营,行业中也不乏头部品牌。 对火锅食材店来说,长期经营及生意好的因素除了食品新鲜质…

移动端之Unity嵌入Android项目开发

目录 前言1 搭建开发环境2 创建Unity项目 2.1 新建项目2.2 Unity构建配置2.3 Android环境相关配置2.4 导出Unity库文件3 创建Android项目 3.1 新建Android项目3.2 Android环境相关配置3.2 导入Unity相关的库3.3 Android中跳转到Unity视图4 进阶扩展 4.1 包体积优化 4.1.1 mono…

Babylonjs学习笔记(六)——贴图的使用

书接上回,这里讨论贴图的运用!!! // 创建球网格const ball MeshBuilder.CreateSphere(ball,{diameter:1},scene)ball.position new Vector3(0,1,0)// 创建PRB材质const ballMat new PBRMaterial(pbr,scene)// albedoTexture 反…

通过实例理解Go Web身份认证的几种方式

在2023年Q1 Go官方用户调查报告[1]中,API/RPC services、Websites/web services都位于使用Go开发的应用类别的头部(如下图): 我个人使用Go开发已很多年,但一直从事底层基础设施、分布式中间件等方向,Web应用开发领域涉及较少&…

14 结构性模式-适配器模式

1 适配器模式介绍 适配器模式(adapter pattern )的原始定义是:将类的接口转换为客户期望的另一个接口,适配器可以让不兼容的两个类一起协同工作。 2 适配器模式原理 3 适配器模式应用实例 /*** SD卡接口**/ public interface SDCard {//读取SD卡Strin…

【Docker】什么是Docker?看这一篇干货文章就够了!

目录 前言 容器技术的起源 容器技术 vs 虚拟机 什么是容器 什么是docker 如何使用docker docker的底层实现 总结 前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或…

斯德博STOBER伺服驱动器维修MDS5040A

STOBER斯德博驱动器常见故障维修如下: 当伺服驱动器给出移动指令而机床不移动,则伺服器维修故障原因可能是:机械传动卡住。如果故障发生在垂直轴控制时,则故障为伺服电动机的电磁制动回路。伺服电动机及动力线有断相故障或伺服电…

2024通信保研-电磁场电磁波复习

标量场的梯度的旋度恒等于0,旋度的散度等于0。 旋度: rot ⁡ F ( e x ∂ ∂ x e y ∂ ∂ y e z ∂ ∂ z ) ( e x F x e y F y e z F z ) e x ( ∂ F z ∂ y − ∂ F y ∂ z ) e y ( ∂ F x ∂ z − ∂ F z ∂ x ) e x ( ∂ F y ∂ x − ∂ F x …

『Jmeter入门万字长文』 | 从环境搭建、脚本设计、执行步骤到生成监控报告完整过程

『Jmeter入门万字长文』 | 从环境搭建、脚本设计、执行步骤到生成监控报告完整过程 1 Jmeter安装1.1 下载安装1.2 Jmeter汉化1.2.1 临时修改1.2.2 永久修改 1.3 验证环境 2 测试对象2.1 测试对象说明2.2 测试对象安装2.2.1 下载安装2.2.2 启动测试对象服务2.2.3 访问测试对象2.…

JAVA 版多商家入驻 直播带货 商城系统 B2B2C 商城源码之 B2B2C产品概述 商城免费搭建

涉及平台 平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务) 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis …

美团圈圈私域社群app拉新怎么做,申请推广渠道

首先说下美团私域社群app拉新申请渠道,可以通过“聚量推客”进行申请聚量推客首码邀请:000000 1、流程:用户点击活动专属链接进入扫码进群页面,长按二维码进入美团圈 圈多重福利群,用户首次进群且保持 10 天不退群即符…

地方门户系统源码 同城信息系统源码 家政外卖跑腿同城信息门户源码

地方门户系统源码 同城信息系统源码 家政外卖跑腿同城信息门户源码 系统介绍: 一:系统 后台设置:菜单列表 管理员管理:角色管理,操作日志,禁止访问IP段列表,管理员登录日志 二:设置 基础设置:站点设置,附件设置&a…

转岗项目经理后,我是如何分析需求的

项目经理有一项工作就是需求分析,需求的本质是根据认知进行假设,然后给出判断。如果需求分析的结果出了问题,那么产品也必然会失败。本文针对如何进行需求分析展开分析,希望能对你有所启发。 一、什么是需求 为什么要明确需求的…

笔记本触摸板怎么开?教你5个实用方法!

“新买了一个笔记本,但是触摸板一直无法打开,应该怎么进行操作呢?有什么方法可以打开笔记本触摸板吗?” 为了方便办公和使用笔记本,笔记本电脑上通常都会有一个触摸板。我们可以用它代替鼠标,更好地进行操作…

可视化沟通解析

如果我们去吃饭看到如下菜单 我想对于当事人而言,这个绝对不是点菜吃饭,而是一场韩语考试。 但是我们看到如下这个菜单会怎么样 如果我们看到这种菜单,即使我们不知道菜的名字我们也能很快的做出我们想要的选择,那样得到的菜不会…

JVM进阶(2)

一)方法区: java虚拟机中有一个方法区,该区域被所有的java线程都是共享,虚拟机一启动,运行时数据区就被开辟好了,官网上说了方法区可以不压缩还可以不进行GC,JAVA虚拟机就相当于是接口,具体的HotSpot就是虚…

IDEA 2023.2.2 使用 Scala 编译报错 No scalac found to compile scala sources

一、问题 scala: No scalac found to compile scala sources 官网 Bug 链接 二、临时解决方案 Incrementality Type 先变成 IDEA 类型 Please go to Settings > Build, Execution, Deployment > Compiler > Scala Compiler and change the Incrementality type to …

STM32MP157D BSP

一,全志R16、IMX6ULL和STM32MP157D启动相关 1,IMX6ULL是EMMC启动后,通过uboot fat命令的load进内存进行启动测试 2,openedv应该也是参考的官方的板子,类似调试口等均应该是一致的,所以目前就是用正点原子…

网络扫描与网络监听

前言:前文给大家介绍了网络安全相关方面的基础知识体系,以及什么是黑客,本篇文章笔者就给大家带来“黑客攻击五部曲”中的网络扫描和网络监听 目录 黑客攻击五部曲 网络扫描 按扫描策略分类 按照扫描方式分类 被动式策略 系统用户扫描 …