渲染管线概述

了解一下渲染管线的主要流程

CPU应用阶段

1、剔除Culling

视锥剔除(Frustum Culling)
层级剔除(Layer Culling Mask)、遮挡剔除(Occlusion Culling)等等

2、渲染顺序

渲染队列 RenderQueue
不透明队列(RenderQueue<2500)
按摄像机距离从前到后排序
透明队列(RenderQueue>2500)
按摄像机距离从后到前排序

3、绘制draw call
打包数据Batch

模型信息:顶点坐标、法线、UV、切线、顶点色、索引列表
变换矩阵:世界变换矩阵、VP矩阵:根据摄像机位置和fov等参数设置
灯光、材质参数:Shader、材质参数、灯光参数

GPU应用阶段

1、顶点处理(MVP处理)

模型空间(Model Space)—[Model Matrix]—> 世界空间(World Space)—[View Matrix]—> 视角空间(View Space)–-[Project Matrix]—> 裁剪空间(Clip Space)

2、图元装配及光栅化

裁剪操作(View Frustum Clipping) ----> NDC(标准设备坐标)---->背面剔除(Back Face Culling) —视口转换—> 屏幕坐标 ----> 图元装配(Primitive Assembly) ----> 光栅化(Rasterzation)----> 片元

3、片元处理

纹理技术

纹理采样、纹理过滤机制、Mipmap、纹理寻址模式、纹理压缩模式

光照计算

光照组成:直接光照、间接光照
光照模型:Phong光照模型、基本框架(直接光漫反射+直接光镜面反射+间接光漫反射+间接光镜面反射等)

4、输出合并

最重要的任务:处理遮挡关系、处理半透明混合
通俗地讲:片元通过重重考验到达像素点位置的过程 (片元数据 Color,Depth—>Alpha测试—>模板测试 Stencil Test—>深度测试 Depth Test—>混合 Blending—>帧缓冲区 Color,Depth,Stencil)
其中,
帧缓冲区 FrameBuffer

颜色缓冲区 Color Buffer
深度缓冲区 Depth Buffer
模板缓冲区 Stencil Buffer

深度测试 Depth Test

ZWrite 深度写入
ZTest 深度测试

混合 Blending

从后到前
关闭ZWrite

Blend SrcAlpha OneMinusSrcAlpha

Alpha Blend = SrcColor * SrcAlpha + DestColor * (1.0 - SrcAlpha)

Blend SrcAlpha One

Soft Additive = SrcColor * SrcAlpha + DestColor * 1.0

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值