首页/新闻资讯/正文
深入解析Shader渲染管线:从三维场景到屏幕图像的全过程

 2025年02月06日  阅读 2

摘要:基本概念渲染管道的概述什么是渲染管道?渲染管道(渲染管道)这是计算机图形中用于将三维场景转换为最终屏幕图像的过程它由一系列阶段和操作组成,每个阶段和操作负责执行特定任务输入收集数据和纹理信息的逐步处理最终生成视觉图像的过程简单理解:渲染管道(管道...

基本概念渲染管道的概述

什么是渲染管道?

渲染管道(渲染管道)

这是计算机图形中用于将三维场景转换为最终屏幕图像的过程

它由一系列阶段和操作组成,每个阶段和操作负责执行特定任务

输入收集数据和纹理信息的逐步处理

最终生成视觉图像的过程

简单理解:渲染管道(管道)是将数据分阶段转换为屏幕图像的过程

渲染管道中的数据是什么意思?

渲染管道(管道)是将数据分阶段转换为屏幕图像的过程。

这里的数据是指:

1。顶点数据:模型的顶点坐标,正常向量,纹理坐标等。

2。纹理数据:纹理图,等。

3。照明数据:照明参数,光源信息等。

方案中的相关数据

渲染管道中的阶段性是什么意思?

渲染管道(管道)是将数据分阶段转换为屏幕图像的过程。

这里的阶段是指:

渲染管道分为3个阶段

应用阶段1>几何阶段1>等级阶段

数据在每个阶段进行处理

最终目标是让我们在屏幕上查看最终图像

总结

渲染管道

(管道)是将数据分阶段转换为屏幕图像的过程

数据是放置在游戏场景中的模型,光源,相机等的数据。

阶段是渲染管道中的三个阶段:应用阶段 - >几何阶段1>栅格化阶段

通过这三个数据处理阶段,可以在屏幕上看到最终图像

应用阶段

必备的CPU和GPU

CPU:中央处理器,负责一般计算任务,例如算术操作,逻辑操作,数据传输等,并管理和计划计算机资源(游戏开发中的游戏逻辑处理)

GPU:图形处理器,一种专门用于图形和并行计算的处理器

图形卡是配备GPU的硬件设备。图形卡中包含一个或多个GPU芯片,还包含视频内存(使用

存储图像数据),显示接口,视频解码器等(游戏开发中的渲染相关处理)

CPU主要涉及操作系统管理,程序执行,一般计算等。

GPU主要处理图形渲染,图像处理等。

渲染管道在申请阶段做什么

渲染管道应用程序级别中的大多数内容与渲染无关(例如:游戏逻辑处理,动画更新,物理模拟,场景管理等)

应用阶段完成后,随后的几何阶段和栅格化阶段将开始处理与图形渲染相关的数据和操作。

应用阶段汇总到渲染管道中,因为应用阶段为后续渲染管道提供了最重要的内容 - 数据

应用阶段的主要负责人是CPU。在此阶段,渲染所需的数据将传递给GPU在接下来的两个阶段进行处理。

在应用阶段渲染的准备工作是什么?

1排除无形对象数据(例如:将对象排除在摄像机的角度之外)

2准备与模型相关的数据(顶点,正常,切线,地图,着色器等)

3将数据加载到视频内存中

4设置渲染状态(设置网格需要使用哪个着色器,材料,光源属性等)

5。致电(CPU通知GPU使用相关数据和渲染状态渲染)

渲染管道的应用阶段(管道)

主要是由CPU领导的舞台

最重要的任务:提供后续的渲染数据

例如:

顶点,正常,切线,纹理坐标,转换矩阵,材料属性等。

在申请阶段,您可以根据Uity规则开发游戏

注意优化。如果CPU太多,您可以使用批处理处理技术来优化。

关于

一次,实际上是渲染GPU的CPU命令

为什么太多影响性能?

主要性能瓶颈是由CPU引起的

在每个呼叫之前,CPU需要向GPU发送大量内容,包括数据,状态,命令等。

如果太多了,CPU将花费大量时间进行提交,导致CPU超负荷并使玩家感到卡住

使用批处理处理可以有效地降低和提高性能

网格(可以将静态对象合并到网格中)

材料(在不同网格之间共享一种材料)

3。合并图片集(在2D游戏和UI中,可以将多个图片合并为一张大图)

ETC。

几何阶段

知识的必备图像

元素:

在渲染管道中,元素是指几何数据的基本单元,这是形成几何体的最小可绘制单元

元素可以是点,线或三角形。在渲染管道的几何阶段,顶点数据将合并为元素

这些原语将在随后的栅格化阶段转换为像素,并最终在屏幕上显示

你主要在做什么?

渲染管道的几何阶段主要由GPU主导,不能具有绝对的控制,但是GPU已为我们打开了一些控制。

几何阶段主要是:基于应用阶段的数据输入的顶点坐标转换和裁缝不可见的原始词。

顶点着色器:

它处理CPU从应用程序阶段传递的与顶点相关的数据。输入的每个顶点将一次在顶点着色器中调用逻辑。

顶点着色器需要执行的主要任务:

1。坐标转换 - 变换,正常变换,纹理坐标转换等。

2。用于处理顶点的其他属性的顶点属性处理,例如顶点颜色,透明度,切线向量等,可用于实现顶点动画,阴影,照明和其他效果。

3。顶点插值计算顶点属性的插值

ETC。

可以自定义顶点着色器

表面细分着色器,几何设计着色器:

它们是可选的着色器,需要硬件和驱动程序支持才能使用

因此,在学习过程中不会给出任何详细的解释

庄稼:

裁剪阶段将自动裁剪不在视野和部分视野中的元素(点,线,三角形)。可以执行一些配置,但通常不需要处理,并且渲染管道将自动处理。

屏幕映射:

将输入3D坐标系的元素坐标转换为屏幕坐标系

在渲染管道(管道)的几何阶段,最重要的工作是处理顶点,协调转换和裁剪屏幕外的元素

最重要的是将模型的顶点从其本地坐标转换为最终屏幕坐标

通过自定义**顶点着色器,执行一些操作,您可以实现不同的性能效果

例如:水涟漪,织物等

栅格化阶段

知识的必备品 - 像素

像素:

像素是计算机图形中的基本概念,它是构成图像的最小可控单元。

具有表示图像中颜色和其他信息的位置和属性

这是两位图像中的一个点,每个像素在屏幕上占据固定位置

例如,公共显示分辨率为:1920×1080,这意味着宽度为1920像素,高度为1080像素。

必须有一块知识

电影:

在渲染管道中,单元格是指在栅格阶段产生的像素或像素片段。

芯片单元是渲染管道中像素级操作和计算的基本单元。

每个单元格代表屏幕上的像素,并具有位置信息和相关属性

例如:颜色,深度值,正常等。

栅格化的主要目的是什么?

渲染管道的栅格化阶段以GPU为主,不能具有绝对的控制。 GPU已开放一些控制权。

栅格化阶段的主要工作:计算基于几何阶段的信息输入的每个元素覆盖物的像素覆盖物,并计算它们的这些像素的颜色,等等。

三角设置:

几何阶段的栅格化阶段的数据输入主要是三角网格的顶点信息,而您所获得的只是三角形网格每个边缘的两个端点信息。

如果要获得整个三角网格的像素覆盖率,则必须计算每个边缘上的像素坐标。为了能够计算三角形边界像素像素的像素的坐标信息,您必须获得三角形边界的表示。

在三角设置阶段,GPU主要起作用:计算三角形网格的表示数据

三角遍历(扫描变换):

此阶段主要检查每个像素是否被基于三角形设置中计算的三角网格数据覆盖。

如果覆盖了,将生成片段(包括屏幕坐标,深度,正常等)

在三角形遍历阶段,GPU主要起作用:根据三角网格信息获得由它们覆盖的片段序列。

碎片着色器(像素着色器)

主要完成三角形遍历的输入芯片序列中每一部分(像素)的颜色计算和属性处理

芯片着色器需要执行的主要任务:

1。计算计算芯片的照明效果

2。纹理映射:根据片段在纹理中的位置对纹理进行采样,将纹理颜色映射到片段以实现表面图效应

3。材料属性处理量表根据材料的特性,例如颜色,透明度,反射率等,将细胞的最终颜色和透明度量化。

4。阴影计算 - 基于光源之类的信息,计算单元是否在阴影中,影响其最终颜色

ETC。

芯片着色器完全可以编程

逐片操作(输出合并阶段):

主要完成芯片元件着色器输出数据的各种处理和计算(最终颜色,正常,纹理坐标,深度等)

分段操作的主要任务是:

1。确定每个单元格的可见性,例如深入测试,模板测试

2。如果通过了所有测试,则需要合并芯片的颜色值和存储在颜色缓冲区中的颜色(混合)

ETC。

逐芯片操作是**可配置的**

在渲染管道(管道)的栅栏化阶段,最重要的工作是:

芯片(像素)的最终处理以确定芯片(像素)是否在屏幕上渲染,并确定芯片最终渲染的颜色效应

通过指定所需的片段着色器可以实现不同的性能效果。

例如:现实的水面影响,火焰,黑白,模糊和其他效果

总结

应用阶段:

CPU数据:顶点,地图,照明等。

几何阶段:

GPU计算数据:顶点计算,坐标转换,裁剪等。

栅格化阶段:

GPU计算数据:细胞序列生成,是否渲染,决定呈现颜色等。

发展

这是什么

也就是说,着色器

是用于描述如何渲染和计算图形外观的程序

主要用于控制图形的颜色,照明,纹理和其他视觉效果

着色器通常用着色器语言编写,提供指令和语法

用于编写描述图形外观的代码,例如照明,纹理地图,阴影,反射等。

简单理解:它是一个着色器,它是用于编写图形性能效果的程序代码(可以理解为网页的CSS)

该开发主要集中于几何阶段着色器,栅格化阶段式窗口着色器数据,以确定最终的渲染效果

简单理解:通过

如何学习

与数学相关的知识

主要内容是:

与向量相关的知识

线性代数相关的知识(学习矩阵计算相关的知识)

在着色器中,我们需要使用这些知识来完成协调转换和其他相关工作

关于语法的知识

发展:需要学习

语法在

着色开发CG语言等。

着色器发展相关的知识

渲染管道的本质是最终将数据渲染为屏幕图像

必须了解一些针对效果处理的计算规范,例如:

如何计算照明效果的颜色

如何从图片中获得纹理颜色

应如何计算和处理透明效果和阴影效果

ETC。

其他基本概念

开发游戏时,可以将不同的图形接口程序用于不同的平台(操作系统)

其中,最常用的图形接口程序是:

1。(跨平台,几乎所有平台都可以使用)

2.DX(对于相关平台,)

3。(对于苹果相关的平台,苹果的Mac OS)

4.DEB GL(有关网页相关)

图形接口程序主要用于命令硬件完成相关图像渲染的工作

图形接口程序(,DX等)主要用于控制和管理渲染管道过程。

通过图形接口程序提供的API,可以配置和操纵渲染管道中的某些阶段

设置输入数据,控制图形处理,应用各种渲染效果,并最终实现图形渲染和呈现。

图形接口程序充当开发人员和图形硬件之间的中间层,带来了开发人员的渲染命令和设置

转换硬件可以理解和执行的说明

简单的理解:

图形接口程序(,DX等)为渲染管道(管道)提供了控制和管理功能,该功能是开发人员处理硬件的中间层。

与图形接口程序的关系

(着色器)是一个小程序,用于自定义渲染数据的处理,从而确定最终渲染效果。

图形接口程序(,DX等)为开发提供了各种APL。开发需要不同的开发语言来调用有关不同图形接口程序的相关API。

图形接口程序连接程序的各个阶段和渲染管道,并将我们的数据和说明传递给硬件(GPU等),从而实现了图形渲染的最终渲染。

简单的理解:它是图形接口程序(,DX等)的一部分

不同的图形接口程序对开发的影响

使用了不同的着色器语言

:glsl()

DX:HLSL(高)

:msl()

:glsl es(es)

坐标系的不同起源

,,:原点位于屏幕的左下角

DX:原点位于屏幕的左上角(注意:最新的DX12可以更改为左下角的原点)

不同的图形接口程序对开发的影响

1。渲染管道(管道)和图形接口程序之间的关系

图形接口程序(Open GL,DX等)为渲染管道(管道)提供控制和管理功能,这是开发人员处理硬件的中间层。

2。与图形接口程序的关系

)是图形接口程序的一部分

3。不同的图形界面程序对开发的影响

不同的开发语言和不同的坐标系起源

参考

唐教师介绍

版权声明:本文为 “博览广文网” 原创文章,转载请附上原文出处链接及本声明;

原文链接:http://wen.bjhwtx.com/post/1329.html

标签:
关于我们
Zblog应用中心有大量的插件和模板,其功能强大,只要会一点HTML+CSS+JS,就可以轻而易举地制作出美观的模板。集成Z-Blog应用中心功能,可以简单地从后台下载你想要的主题模板和插件。
扫码关注
联系方式
全国服务热线:0755-888866601
Q Q:888866602
Email:wx888866603@qq.com
地址:深圳市南山区海雅缤纷国际大厦04
Copyright 云天市蓝天科技有限公司 版权所有 备案号:粤ICP备98989988号