霜狼老师TA学习笔记 - 渲染流程(光栅化阶段、逐片元操作)

 

对于一个图元,比如一个三角形,我们通过进行三角形设置获得图元的便捷信息,从而获得顶点所覆盖的像素。

三角形遍历就是遍历三角形内所有像素的过程,我们通过应用阶段获取的数据,知道了三个顶点的位置,并通过三角形设置知道了三角形的边界,通过这些数据,我们要筛选出所有片元内的像素点。

在光栅化的最后,我们还会进行抗锯齿的操作,因为对于每个像素点,他不是只属于一个片元,所以我们在每个像素点内取几个采样点,通过判断采样点是不是在三角形内,来确定当前像素需要混合多少片元的颜色。

上一步我们获得了三角形顶点内所有的像素数据,我们通过三个顶点的位置和颜色推出插值函数,并通过这个函数,获取三角形内所有的像素的颜色,之后使用我们计算出的颜色和光照阴影等颜色进行混合,得到最终的像素颜色。

在颜色的混合阶段,我们首先要进行透明度测试,在透明度测试中,透明度小于阈值的点会被裁减掉不被渲染,剩余的点进入到深度测试和模板测试阶段。

在模板测试中,我们比较所有物体的模板值,我们通过设置模板比较的规则,决定什么物体能通过模板测试。为什么要有模板测试呢,因为透明度测试是根据美术设置的透明度进行测试,深度测试是根据游戏内和摄像机的距离进行测试,这两个流程都不能被我们很灵活的控制,所以加入了模板测试,方便灵活控制部分片元是否显示。

在深度测试中,对于每一个片元,我们通过比较深度缓冲中的片元深度,决定是否要进行片元的绘制,我们可以设置片元的比较函数,默认是深度小的覆盖深度大的,深度就可以简单的理解为距离摄像机的长度。

最后我们对通过测试的颜色进行混合,对于不透明物体,根据遮挡关系决定显示谁的颜色,对于透明物体,进行颜色的混合,并输出到屏幕上。

最后一个阶段,我们还可以进行一个屏幕后处理,具体的方法就是我们获得了输出到缓冲的所有像素,并对这些像素进行一个二次处理,比如边缘检测,高斯模糊,通过这些操作,得到更好的画面展示。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值