目录
前言
笔记整理来源:【技术美术百人计划】图形 1.1 渲染流水线_哔哩哔哩_bilibili 霜狼_may大佬的【技术美术百人计划】图形 1.1 渲染流水线
参考相关在读书籍:《shader入门精要》,《GPU阳春白雪与下里巴人》第2章
视传大一在读,纯小白,因为什么都不会,为了自己能更好理解,所以课程中某些一句带过的术语,超级简单的概念,结合百度和看书,在这里做了粗浅补充,有点长。欢迎各位大佬们纠错。
渲染流水线整体流程
序
0.1 什么是流水线
释义:一条每个步骤(并行)由专人完成,从而使整体系统效率变高的生产线。
优点:可以提高单位时间内的生产量,流水线系统中决定生产速度快慢取决于最慢的工序时间(即生产的瓶颈)。
0.2 什么是渲染流水线(图形绘制管线)
释义:即给定视点,三维物体,光源,照明模式,和纹理等元素(由一个三维场景出发),绘制(渲染)一幅二维图像。
渲染流程的三个阶段:
应用阶段——(输出渲染图元)——几何阶段——(输出屏幕空间的顶点信息)——光栅化阶段 (课程中分得更细,把光栅中逐片元划分出来,所以为四个阶段,加上后处理,共五个阶段)
0.3 渲染流程概述
应用阶段:1.准备场景,对象的基本数据;2.为提高渲染性能,做粗粒度剔除,剔除不可见物体;3.设置好每个模型的渲染状态。
几何阶段: 决定绘制的图元是什么,怎样去绘制,在哪里绘制
光栅化阶段:基于几何阶段的输出数据,为像素正确配色,以便绘制完整图像,该阶段进行的都是单个像素的操作,每个像素的信息储存在颜色缓冲器中。
应用阶段
渲染流水线的起点是CPU,即运用阶段
准备基本场景数据
数据准备包括 :
场景物体数据: 物体变换数据(位置,旋转,缩放等)。物体网格数据,顶点位置,UV贴图等。
摄像机参数:位置/方向/远近/裁剪平面,正交/透视,视口比例/尺寸
设置光源/阴影:设置光源(光源类型以及其位置,方向,颜色,范围等),设置阴影(阴影参数,对应光源序号,阴影强度,级联参数,深度偏移,近平面偏移等。)
以及其他全局数据
加速算法粗粒度剔除
可见光裁剪:聚光的光锥和摄像机的视锥体不相交的,不可见的,剔除,不参与渲染
可见场景物体裁剪,八叉树/BSP树/K_D树/BVH/PVH包围盒等(相关算法)
设置渲染状态,准备渲染参数
(以unity为参考相关流程)
绘制设置:使用着色器/合批方式
绘制物体的顺序(可以有多种方式):相对摄像机的距离 / 材质Renderquenue / UI Canvas / 其他方式
渲染目标:FrameBuffer(帧缓冲器ÿ