【Unity】Unity Shader学习笔记(二)渲染管线

article/2025/7/23 8:42:32

文章目录

  • 渲染管线(Randering Pipeline)
  • 渲染流程
  • 可编程渲染管线
    • 应用阶段
      • 把数据加载到显存中
      • 设置渲染状态
      • 调用DrawCall
    • 几何阶段、光栅化阶段


渲染管线(Randering Pipeline)

渲染管线是将网格、纹理等信息从加载到展现在屏幕上的整个过程,也叫做渲染流水线。是给定坐标系、镜头、物体、纹理、光源等信息后如何呈现为二维画面的流程。这些流程以流水线的方式工作。相对于没有流水线的渲染方式,流水线各个环节互相干扰小,渲染效率也高了很多。

下图为有流水线和无流水线的效率比对:
在这里插入图片描述
Shader按管线分类一般分为固定渲染管线和可编程渲染管线。早期GPU遵循固定管线(Existing Fixed Function Pipeline),光源算法相对固定,只能通过贴图来改变,通常只有塑料的质感,无法操作间接光及环境光,早已过时。

下图为常见图形API从固定管线向可编程管线进化的版本:

3D API最后支持固定管线的版本第一个支持可编程管线的版本
OpenGL1.52.0
OpenGL ES1.12.0
DirectX7.08.0

实际上现阶段所使用的渲染管线都是可编程渲染管线,原有的固定渲染管线功能也基本上被新的可编程管线模拟替代,大部分后期发布的显卡都已经彻底移除了固定渲染管线的概念。

渲染流程

渲染的整个流程是由CPU发起的,游戏本身使用CPU判断哪些物体需要渲染,找到需要渲染的物体后逐个调用系统对应的图形API,每一个物体都会调用一次DrawCall,这个DrawCall就是CPU通知显卡开始渲染的过程。当显卡接收到DrawCall后,会对指定的物体进行处理,最终显示在屏幕上。下图为渲染流程概念图:
在这里插入图片描述

可编程渲染管线

渲染管线从概念上划分大致可以分为三个阶段:

  1. 应用阶段(Application Stage);
  2. 几何阶段(Geometry Stage);
  3. 光栅化阶段(Rasterizor Stage)。

每个阶段都有其独有的子流水线。如下图所示:
在这里插入图片描述

应用阶段

应用阶段工作是在CPU中进行的,主要有三大任务:

  1. 准备场景数据(相机、光源、模型等);
  2. 粗粒度剔除(Culling),将不可见物体剔除;
  3. 设置渲染状态,包括材质(漫反射颜色、高光反射颜色等)、纹理、shader等。

这一阶段最重要的工作是输出渲染几何信息,即渲染图元(Rendering Primitives),渲染图元可以是点、线、三角面等几何信息,这些渲染图元将会被传递给下一个阶段。

注意:应用阶段是开发者主导的,与Shader基本无关。

应用阶段又可以大致分为三个阶段:

  1. 把数据加载到显存中;
  2. 设置渲染状态;
  3. 调用DrawCall。

把数据加载到显存中

所有渲染数据都是从硬盘加载到内存中,然后将其中的网格、纹理、顶点位置信息、法线方向、顶点颜色、纹理坐标等数据加载到显存中。这是因为显卡访问显存更快,且大多数显卡对于RAM没有直接访问权。

有部分信息加载到显存(VRAM)后就可以从内存中移除了,但有些数据仍然需要访问,例如:CPU访问网格数据进行碰撞监测。

数据加载完成后,渲染数据将会同时存在于硬盘、内存、显存中,而内存和显存的空间是有限的,所以优秀的开发者应该更多的考虑减少空间占用,减轻硬件负荷,以此提高游戏运行效率。

设置渲染状态

渲染状态定义了网格是如何被渲染的,包括使用哪个顶点着色器/片元着色器、光源属性、材质等。

调用DrawCall

DrawCall是从CPU向GPU发送的一个命令,这个命令指定一个需要被渲染的图元(Primitives)列表,通知GPU将其渲染。

几何阶段、光栅化阶段

几何阶段和光栅化阶段的工作是在GPU中进行的,而GPU只给了部分控制权限。实际上这两个阶段可以分为若干个更小的流水线阶段,这些流水线阶段有GPU来实现,每个阶段提供了不同的可配置性和可编程性。

GPU渲染管线是以接收顶点数据作为入口,这些数据是由应用阶段加载到显存中,再由DrawCall指定的。


更多内容请查看总目录【Unity】Unity学习笔记目录整理


http://chatgpt.dhexx.cn/article/wt1anlpR.shtml

相关文章

Unity渲染管线简介

unity渲染管线分为 Build in Render(内置渲染管线)和Scriptable Render Pipline(可编程渲染线) 1.Build-In Render 内置渲染器(默认)兼容太多,反而不能面面俱到,效果不好 2.Scriptable Render Pipline 可编…

Unity3D 渲染管线全流程解析

目录 渲染管线(流水线,流程) 一、渲染任务 二、三个阶段 1、应用阶段 1-1:数据的准备 1-2:设置渲染状态 1-3:发送DrawCall 2、几何阶段 2-1:顶点着色器 2-2:裁剪 2-3&#xff1a…

unity渲染管线及升级URP

unity渲染管线及升级URP 一,unity渲染管线简介二,通用渲染管线URP三,shader升级URP1,Builtin RP和URP中内置Shader 的对应2,总体结构3,include4,光照模式LightMode5,变体Variants6&a…

Unity2020高清渲染管线

一、高清渲染管线加载与环境配置 这里使用2019.3.0f6版本 1、加载高清渲染管线(High Definition RP) 2、创建高清管线脚本文件 3、配置高清渲染管线环境(把色彩空间改为线性空间) 4、把高清渲染管线脚本添加到图形(G…

渲染管线流程

应用阶段--->几何阶段---->光栅化阶段---->逐片元操作----->后处理 1,应用阶段:粗粒度剔除,进行渲染设置,准备基本数据,输出到几何阶段。 2,几何阶段:顶点着色器,曲面细…

渲染管线入门

渲染管线中一些技术名词大部分是英文直译,光看中文很容易被误导。所以我们必须在了解一个技术的具体作用之后,才能了解它到底是什么。这篇博客我主要翻译自Minh Tri Do Dinh的GPUs - Graphics Processing Units一文。也就是一些论坛里推荐给新手阅读的图…

【OpenGL ES】渲染管线

1 前言 渲染管线是指图形渲染流程,涉及到的概念非常多,主要包含图元、片段、光栅化、空间、变换、裁剪、着色器、片段测试、混合等。渲染管线主体流程如下: 为方便读者理解渲染管线,本文将先介绍顶点数据、图元与片段、空间与变换…

渲染管线----通俗易懂向面试官介绍

本文通过简短的语言解释渲染管线,无论是第一次了解渲染管线,还是回顾,都有帮助。 一、完整渲染流程 在介绍渲染管线之前,先全局视角了解一下整个渲染引擎。 整个渲染分为五个阶段,如图 工具阶段、资产调节阶段、应用程…

学习笔记(一)渲染管线

目录 前言 一些疑问 一、什么是渲染管线? 二、为啥这玩意是个流水线? 1.CPU与GPU 2.CPU和GPU数据交互 3.CPU和GPU并行工作 Step1.应用程序阶段(The Application Stage) 一、把数据加载到显存中。 二、设置渲染状态。 三…

计算机图形学笔记(一)渲染管线概述

计算机图形学笔记(一)渲染管线概述 写在前面:因为之前有学习过图形学,博文是对过去知识的拾遗和对学习过程中的总结记录,所以在内容组织上可能不符合逻辑,某些比较熟悉的内容不会体现或简述;在整…

渲染基础-渲染管线(Render-pipeline)

一开始学习计算机图形学的小伙伴们肯定对于渲染管线有一点迷茫,至少当初我就有点迷茫,为了能对后来对计算机图形学感兴趣的萌新小伙伴起到一些帮助,在这里简单讲解一下渲染管线(Render-pipeline)。 该文章还有很多不足…

如何使用SPSS确定建立的回归模型能用于预测分析?

当需要研究一组随机变量与另一组变量的关系时,通常会运用回归分析。通过回归分析构建数学模型,探究两种或两种以上变量之间是否存在关系,若存在关系还可进一步预测未来的数据。 当自变量有多个而因变量只有一个时,则可构建spss多…

如何使用SPSS判断数据的正态分布

当我们应用统计方法对数据进行分析时,会发现许多计量资料的分析方法,例如常用的T检验、方差分析、相关分析以及线性回归等等,都要求数据服从正态分布或者近似正态分布,但这一前提条件往往被使用者所忽略。因此为了保证数据满足上述…

如何使用SPSS进行判别分析

今天将为大家讲解使用spss进行判别分析的相关步骤。 1.Discriminant Analysis判别分析主对话框 如图 1-1 所示 图 1-1 Discriminant Analysis 主对话框 (1)选择分类变量及其范围 在主对话框中左面的矩形框中选择表明已知的观测量所属类…

IBM SPSS Statistics定义变量使用介绍

IBM SPSS Statistics是一款强大的数据分析软件,它可以帮助我们解决很多复杂的统计学问题,使用SPSS的第一步就是要学会如何定义变量,下面让我们走进今天的SPSS入门教程。 一、进入变量视图 在定义变量之前,我们需要进入IBM SPSS …

SPSS使用过程中出现的问题整理 包括因子分析 感谢各位大佬们

spss使用方法整理 包括因子分析 一、遇到问题:spss导入excel数据显示:对于当前服务器语言环境而言,文本值过长二、SPSS数据分析-从EXCEL导入三、因子分析在SPSS中的操作过程及结果解读 一、遇到问题:spss导入excel数据显示:对于当前服务器语言环境而言,文…

通过SPSS使用命令语法实现快速删除变量的步骤

当我们面对一个庞大的数据集的时候,我们想要对该数据集进行一些操作,可能会觉得比较繁琐。为了快速精准的实现数据过滤操作, SPSS是自带了语法功能,通过语法即可快速实现复杂操作。今天小编将通过快速删除变量的操作,让…

SPSS入门教程—相关性分析使用方法

IBM SPSS Statistics为用户提供了三种相关性分析的方法,分别是双变量分析、偏相关分析和距离分析,三种相关分析方法各针对不同的数据情况,接下来我们将为大家介绍如何使用SPSS相关性分析中的距离分析。 一、数据简述 距离分析和其他两类相关…

使用IBM SPSS Statistics的新手应该如何入门

一、什么是IBM SPSS Statistics? IBM SPSS Statistics 是一款强大的统计软件平台,它所提供的数据分析功能,可以帮助企业、个人对各类数据进行切实可行的洞察分析,从而获取有效信息。 二、为什么要进行SPSS数据分析? …

【SPSS】包含多元线性回归、聚类分析、判别分析、主成分、相关系数、非参数秩检验的spss使用方法,含有相关例题,可以解决“数学建模”中数据建模的大部分问题

记录《多元统计分析》关于spss软件的使用,本篇教程不涉及具体模型的推导,通过例题来带领大家入门spss软件,学习软件基本的使用,解决常见数模问题。 本篇所有数据都可以在百度网盘上下载: 链接:https://pan.…