DeadWind UnityShader学习笔记(五)

6
回复
663
查看
打印 上一主题 下一主题
[ 复制链接 ]
排名
39863
昨日变化

6

主题

14

帖子

97

积分

Rank: 9Rank: 9Rank: 9

UID
306031
好友
12
蛮牛币
97
威望
0
注册时间
2018-11-26
在线时间
51 小时
最后登录
2019-9-3

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x

Hello,大家好!!!我们继续上篇的内容。

上一篇我们讲了应用阶段和几何阶段,本篇就讲剩下的光栅化阶段。

光栅化阶段:

光栅化阶段分了四个步骤:三角形设置、三角形遍历、像素着色、合并

三角形设置:光栅化的第一个流水线阶段是三角形设置,这个阶段会计算光栅化一个三角网格所需的信息。具体来说,上一个阶段输出的都是三角网格的顶点,即我们得到的是三角网格每条边的两个端点。但如果要得到整个三角网格对像素的覆盖情况,我们就必须计算每条边上的像素坐标。为了能够计算边界像素的坐标信息,我们就需要得到三角形边界的表示方式。这样一个计算三角网格表示数据的过程就叫做三角形设置。它的输出是为了给下一个阶段做准备。


三角形遍历:三角形遍阶段将会检查每个像素是否被一个三角网格所覆盖。如果被覆盖的话,就会生成一个片元,而这样一个找到哪些像素被三角网格覆盖的过程就是三角形遍。三角形遍历阶段会根据上一个阶段的计算结果来判断一个三角网格覆盖了哪些像素,并使用三角网格3个顶点的顶点信息对整个覆盖区域的像素进行插值。下图展示了三角形遍历阶段的简化计算过程。


这一步的输出就是得到一个片元序列。需要注意的是,一个片元并不是真正意义上的像素,,而是包含了很多状态的集合,这些状态用于计算每个像素的最终颜色。这些状态包括了(但不限于)它的屏幕坐标、深度信息,以及其他从几何阶段输出的顶点信息,例如法线、纹理坐标等。


像素着色:这一阶段在《UnityShader入门精要》讲的是片元着色器(Fragment Shader

片元着色器的输入是上一个阶段对顶点信息插值得到的结果,更具体来说,是根据那些从顶点着色器中输出的数据插值得到的。而它的输出是一个或者多个颜色值。下图显示了这样一个过程。这一阶段可以完成很多重要的渲染技术,其中最重要的技术之一就是纹理采样。为了在片元着色器中进行纹理采样,我们通常会在顶点着色器阶段输出每个顶点对应的纹理坐标,然后经过光栅化阶段对三角网格的3个顶点对应的纹理坐标进行插值后,就可以得到其覆盖的片元的纹渲染流水线坐标了。


合并阶段:这一阶段在OpenGL中称为逐片元操作。这一阶段有几个主要任务。(1)决定每个片元的可见性。这涉及了很多测试工作,例如深度测试、模板测试等。(2)如果一个片元通过了所有的测试,就需要把这个片元的颜色值和已经存储在颜色缓冲区 P的颜色 ,或者说是混合。

这里的合并阶段内容很多涉及的知识点也相对较多,后面会单独开一篇来讲。


所以本篇的内容就讲到这里,内容比较少,但是积少成多。慢慢深入,加油!


本篇参考文献:

《UnityShader入门精要》-- 冯乐乐,人民邮电出版社,2018年3月第11次印刷。请支持正版!




5熟悉之中
828/1000
排名
4111
昨日变化

1

主题

287

帖子

828

积分

Rank: 5Rank: 5

UID
245227
好友
0
蛮牛币
1018
威望
0
注册时间
2017-9-21
在线时间
180 小时
最后登录
2019-9-17
沙发
2019-9-2 09:21:35 只看该作者
你这是在水贴吗?随便找本渲染的书都是这样的内容 , 跟你标题有什么关系
3偶尔光临
299/300
排名
19338
昨日变化
610

2

主题

189

帖子

299

积分

Rank: 3Rank: 3Rank: 3

UID
328743
好友
0
蛮牛币
50
威望
0
注册时间
2019-8-5
在线时间
76 小时
最后登录
2019-9-17
板凳
2019-9-2 10:11:56 只看该作者
6666666666666666666666666
4四处流浪
300/500
排名
14744
昨日变化

0

主题

55

帖子

300

积分

Rank: 4

UID
120059
好友
0
蛮牛币
4
威望
0
注册时间
2015-8-28
在线时间
191 小时
最后登录
2019-9-2
地板
2019-9-2 10:32:26 只看该作者
跟你标题有什么关系,抄的不错
3偶尔光临
299/300
排名
19338
昨日变化
610

2

主题

189

帖子

299

积分

Rank: 3Rank: 3Rank: 3

UID
328743
好友
0
蛮牛币
50
威望
0
注册时间
2019-8-5
在线时间
76 小时
最后登录
2019-9-17
5#
2019-9-3 09:10:37 只看该作者
6666666666666666
4四处流浪
359/500
排名
12481
昨日变化

7

主题

141

帖子

359

积分

Rank: 4

UID
310955
好友
0
蛮牛币
1009
威望
0
注册时间
2019-1-7
在线时间
151 小时
最后登录
2019-9-17
6#
2019-9-4 09:20:09 只看该作者
日常膜拜

1

主题

14

帖子

24

积分

Rank: 1

UID
287303
好友
0
蛮牛币
139
威望
0
注册时间
2018-6-25
在线时间
9 小时
最后登录
2019-9-13
7#
5 天前 只看该作者
UnityShader入门精要
您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则