Ue4----渲染流程

文章目录

  • 整体流程
    • 一、应用阶段
      • 1.基本场景数据
      • 2.光源和阴影
      • 3.加速算法 粗粒度剔除
      • 4.渲染设置
      • 5.输出到显存
    • 二、几何阶段
      • 1.顶点着色
      • 2.曲面细分
      • 3.投影
      • 4.裁剪
      • 5.屏幕映射
    • 三、光栅化阶段
      • 1.三角形设置
      • 2.三角形遍历
    • 四、逐片元操作
      • 1.片元着色
      • 2.颜色混合

整体流程

1.应用阶段->几何阶段->光栅化阶段->逐片元处理->后处理
·应用阶段:粗粒度剔除,进行渲染设置,准备基本数据,输出到几何阶段。
·几何阶段:顶点着色器,曲面积分,几何着色器,顶点裁剪,屏幕映射。
·光栅化阶段:三角形(点/线)设置,三角形(点/线)遍历,片段着色器。
·逐片元操作:裁剪测试,透明度测试,深度测试,模板测试,混合。
·后处理。

2.CPU–》--》–》--》–》--》–》--》–》--》–》--》–》--》–》--》–》GPU

应用阶段---------------几何阶段----------------光栅化------------------逐片元操作

准备基本- 顶点着色- 三角形设置 像素着色
场景数据 | Triangle Set Up Fragment Shader
| 可选顶点处理 | |
加速算法 | 三角形遍历 颜色混合
粗粒度剔除 投影 Triangle Traversal Color Blending
| | |
设置渲染状态 剪裁 目标缓冲区
准备渲染参数 Clipping FrameBuffer
| |
调用Draw Call 屏幕映射
输出渲染图元
到显存

一、应用阶段

·准备基本场景数据:场景物体数据,摄像机数据,光源及阴影数据,其他全局数据。
·加速算法粗粒度剔除:碰撞检测,加速算法,遮挡剔除,其他算法。
·设置渲染状态,准备渲染参数:绘制设置,绘制顺序,渲染目标,渲染模式
·调用Draw Call输出渲染图元到显存:顶点数据,其他数据。

1.基本场景数据

·场景物体数据:物体变换数据,位置,旋转,缩放等;物体网格数据,顶点位置,UV贴图。
·光源信息:光源类型,方向光,点光,聚光等。
·摄像机参数|:位置,方向,远近裁剪平面;正交/透视(FOV);视口比例/尺寸等。

2.光源和阴影

·设置光源:方向光,颜色,方向等;点光源,颜色,位置,范围等;聚光源,颜色,位置,方向,内外圆锥角等。
·设置阴影:是否需要阴影,判断该光源可见范围内是否可投射阴影的物体;阴影参数,对应光源序号,阴影强度,级联参数,深度偏移,近平面偏移等。
·逐光源绘制阴影贴图:近平面偏移,逐级联,计算当前光源+级联对应的观察矩阵,投影矩阵,以及对应到阴影贴图里的视口区域,绘制到阴影贴图。

3.加速算法 粗粒度剔除

·可见光裁剪
·可见场景物体裁剪:八叉树,BSP树,KD树,BYH。

4.渲染设置

·绘制设置:使用着色器,合批方式
·绘制物体的顺序(可以有多种方式):相对摄像机的距离,材质RenderQueue,UICanvas,其他方式等。
·渲染目标:FrameBuffer,RenderTexture。
·渲染模式:前向渲染,延迟渲染。

5.输出到显存

·顶点数据:位置,颜色,法线,纹理UV坐标,其他顶点数据。
·其他数据:MVP变换矩阵,纹理贴图,其他数据。

二、几何阶段

1.顶点着色

顶点着色是完全可编程的,通常用于实现顶点的空间变换,顶点着色等功能。它的输入来自CPU,顶点着色器的处理单位是顶点,也就是说输入进来的每个顶点都会调用一次顶点着色器。顶点着色器不可以创建或销毁任何顶点,而且无法得到顶点之间的关系,正是因为这种独立性,GPU可以利用本身的特性并行化处理每一个顶点,这意味着处理会比较快。可依据MVP变换矩阵,完成三位转二维屏幕映射的转换。

2.曲面细分

曲面细分着色器是一个可选着色器,可将模型顶点曲面细分,用于细分图元。

3.投影

根据相机的正交或透视,投影响应的顶点信息到标准画布。

4.裁剪

根据视口范围裁剪掉视口以外的模型和视口以外的点,裁剪物体时会自动给物体生成新的两个点。
Ue4----渲染流程_第1张图片

5.屏幕映射

将投射到画布的画面缩放映射到显示屏幕上

三、光栅化阶段

三角形设置-三角形遍历

1.三角形设置

三角形设置将模型点点投射在画布的片元信息,进行顶点的渐变连线,绘制出三角形。

2.三角形遍历

三角形遍历,将三角形内部的点查找,遍历一个三角形面片(一个像素可能是多个片元的混合)
抗锯齿处理
·SSAA:对图像在原有像素的基础上,放大像素n倍,对放大的图像进行向下降级采样。
·MSAA:在光栅化阶段,把一个样本拆成4个进行精心的计算。
·FXAA:后期处理技术不在渲染阶段。

四、逐片元操作

1.片元着色

利用顶点映射的顶点信息中的顶点颜色,逐片元渐变内部顶点颜色,得到某个顶点颜色,这些颜色在和光照信息,透明信息等混合得到最终颜色。

2.颜色混合

·透明度混合:根据数值大小依次剔除
·颜色混合:记录第一个物体深度值放入深度缓存,然后依次记录下一个物体深度和深度缓存进行比较,最终决定片元呈现那个物体的颜色。

你可能感兴趣的:(UE4-从菜鸟dao小白,ue4,几何学,贴图)