
【unity shader 入门精要】CH2 渲染流水线
发布日期:2021-05-07 01:50:06
浏览次数:8
分类:技术文章
本文共 982 字,大约阅读时间需要 3 分钟。
文章目录
渲染流程
应用阶段(CPU)
把数据加载到显存中
硬盘 --> 内存 --> 显存
数据:顶点的位置信息 / 法线方向 / 顶点颜色 / 纹理坐标
设置渲染状态
设置 顶点着色器 / 片元着色器 / 光源属性 / 材质
调用 Draw Call
CPU 通过调用 Draw Call 来告诉 GPU 开始渲染,一个 Draw Call 会指向本次调用需要渲染的图元列表
几何阶段(GPU)
顶点着色器(Vertex Shader)
实现顶点的空间变换(把顶点坐标从模型空间转换到齐次裁剪空间)、顶点着色


曲面细分着色器(Tessellation Shader)
细分图元
几何着色器(Geometry Shader)
逐图元着色 / 产生更多图元
裁剪(Clipping)
裁剪掉不在摄像机视野内的顶点 / 某些三角图元的面片
屏幕映射(Screen Mapping)
转换图元坐标到屏幕坐标系(屏幕坐标系和 z 坐标一起构成窗口坐标系)
光栅化阶段(GPU)
三角形设置
计算光栅化一个三角网格所需的信息
三角形遍历
会检查每个像素是否被一个三角网格所覆盖。如果被覆盖的话,就会生成一个片元 (fragment)
片元着色器
逐片元着色
逐片元操作
- 决定每个片元的可见性(深度测试、模板测试)
- 如果一个片元通过了所有测试,就要把这个片元的颜色值和已经存储在颜色缓冲区中的颜色进行混合
底层
CPU 与 GPU 并行工作——命令缓冲区
减少 Draw Call —— 批处理
固定管线渲染
固定函数的流水线 (Fixed-Function Pipeline),也简称为固定管线,通常是指在较旧的 GPU 上实现的渲染流水线。这种流水线只给开发者提供一些配置操作,但开发者没有对流水线阶段的完全控制权。
固定管线通常提供了一系列接口,这些接口包含了一个函数入口点 (Function Entry Points) 集合,这些函数入口点会匹配 GPU 上的一个特定的逻辑功能。开发者们通过这些接口来控制渲染流水线。换句话说,固定渲染管线是只可配置的管线。一个形象的比喻是,我们在使用固定管线进行渲染时,就好像在控制电路上的多个开关,我们可以选择打开或者关闭一个开关,但永远无法控制整个电路的排布。
其他文章
下一章:
专题文章:
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年03月25日 21时29分37秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
php教程--案例20(用户登录)
2019-03-03
jQuery练习t76
2019-03-03
jQuery练习t78
2019-03-03
jQuery练习t80
2019-03-03
jQuery练习t81
2019-03-03
jQuery中使用animate方法替代其他动画方法
2019-03-03
jQuery练习t85
2019-03-03
jQuery练习t86
2019-03-03
jQuery练习t88
2019-03-03
jQuery练习t90
2019-03-03
jQuery练习t110
2019-03-03
jQuery练习t123
2019-03-03
jQuery练习t167,从0到1
2019-03-03
jQuery练习t271,从0到1
2019-03-03
jQuery练习t310,从0到1
2019-03-03
asp.net代码练习 work015 回调技术
2019-03-03
asp.net代码练习 work016 fileupload文件上传
2019-03-03
asp.net代码练习 work021 DataReader的使用
2019-03-03
PHP7.0--如何使用函数的引用
2019-03-03
Java基础--01--数据类型/方法/数组
2019-03-03