渲染流程之光栅化阶段及像素处理阶段

Rasterization 光栅化阶段:图元转换为像素,生成片段。

定义

把物体的数学描述以及与物体相关的信息转换为屏幕上用于对应位置的像素及用于填充像素的颜色这个过程成为光栅化

主要工作: 将得到的新图元(添加额外的Virtex和计算图元的信息)转换成像素,超过像素中心店即为有效,将这个图元所需的像素信息生成一个片段(需要覆盖哪些像素区域)
主要目的:

将几何渲染之后的图元信息转换为像素(分配深度值和颜色将像素转换为二维图像产生的是片元),后续显示子屏幕上。根据图元信息计算中每个图元所覆盖的像素信息。根据是否跨过这个像素的中心店遍历出这个图元所需要覆盖的像素区域及深度值

片段是渲染一个像素所需要的所有数据也叫片元

像素处理阶段:处理像素,得到位图Bitmap。

主要工作

处理像素点,给这些像素进行上色(片段着色器做的事情)和处理片段位置(测试与混合采用“画家算法”)。这些处理后的像素点就是Bitmap位图

片段着色器:给每一个像素赋予正确的颜色,颜色的信息是通过顶点,纹理,光照信息得到的;对片段进行才叫,丢掉超出视图意外的所有像素(没有跨过中心店的像素就不需要绘制),该阶段处理纹理,光照等复杂信息,这部分也是整个系统的性能瓶颈

测试与混合:叫做Merging阶段,处理片段前后位置以及透明度。

根据片段的深度值z坐标判断片段前后位置(采用“画家算法进行渲染”,之前提供的离屏渲染也就是这个阶段),计算透明度alpha值,片段混合得到最终效果(如果需要针对之前的单个图层片段进行处理,那么就不可以了必须使用离屏渲染 将这部分图层延后合成处理)

这些点进行不同排列和染色组成不同的图样。当放大位图时就可以看到无数个单个方块

这些方块的来历:CPU计算出图元,之后GPU拿到图元进行坐标转换,计算纹理光照,对图元添加额外的Virtex以便生成更复杂的几何图形和;连接这些Virtex图元就是由这些Virtex构成的; 将图元转换成像素【覆盖过中心点的像素才是有用的需要进行渲染的】,对这些像素进行上色和采用画家算法进行合成图层缓存到back buffer中,等待Display取进行渲染)

如果想要更真实,就需要足够多的顶点和颜色,相应的也会产生更大的开销; 但是为了提高生产效率和执行效率,开发者可以使用纹理来表现细节,纹理是一个2D图片。纹理可以直接作为图形渲染的第五阶段的输入。

这些流程是GPU的一些流水线程序、应用阶段是CPU做处理,而几何处理阶段和光栅化处理阶段里面的细节比如片段着色器,顶点着色器,这些着色器可以由开发者自己配置,着色器可以由多种语言编写。GPU厂商会提供OpenGl来实现,OpenGl提供了GLSL着色器语言。

原文链接:渲染流程之光栅化阶段及像素处理阶段 - 掘金 (juejin.cn)

你可能感兴趣的:(计算机视觉,人工智能)