在三维图形绘制技术中,将三维图像转换为二维屏幕所需要的阶段。阶段负责处理最初提供的信息,就像用于描述要呈现的内容的几何原语的端点(顶点)或控制点的属性一样。3D图形中典型的基元是线和三角形。每个顶点提供的属性类型包括x-y-z坐标、RGB值、透明度、纹理、反射率和其他特征。
图形渲染就像一条制造流水线,每个阶段都在前一个阶段的基础上增加一些东西。在图形处理器中,所有阶段都是并行工作的。由于这种管道架构,今天的图形处理单元(gpu)每秒执行数十亿次几何计算。它们被越来越多地设计为具有更大的内存和更多的阶段,因此可以同时处理更多的数据。
对于游戏玩家来说,全速逼真的渲染是目标,而人体皮肤和面部表情是最困难的。尽管市场上总是有更快的适配器、更大的内存和更先进的电路,可以更逼真地呈现3D动作,但到目前为止,还没有一款游戏能让人相信屏幕上出现了真人,除了可能只有几秒钟。
系统接口,用于发送和接收数据和命令。
将每个顶点转换为2D屏幕位置,并且可以应用照明来确定其颜色。一个可编程的顶点着色器使应用程序能够执行自定义转换的效果,如扭曲或变形的形状。
这将删除在2D屏幕视图中不可见的图像部分,例如对象的背面或应用程序或窗口系统覆盖的区域。
顶点被收集并转换为三角形。生成的信息将允许后期准确地生成与三角形相关的每个像素的属性。
三角形被称为“片段”的像素填充,如果像素没有变化或被隐藏,这些像素可能会或不会出现在帧缓冲区中。
移除场景中被其他物体隐藏(遮挡)的像素。
基于颜色、雾度、纹理等,计算每个栅格化像素的值。
这个阶段为片段添加纹理和最终的颜色。也称为“片段着色器”,可编程像素着色器使应用程序能够结合像素的属性,如颜色,深度和屏幕上的位置,以用户定义的方式与纹理生成自定义的着色效果。
将最终的片段颜色,其覆盖范围和透明度与帧缓冲区中存储在相关2D位置的现有数据进行数学组合,以生成存储在该位置的像素的最终颜色。输出是像素的深度(Z)值。
帧缓冲控制器接口到用于保存屏幕上显示的实际像素值的物理内存。帧缓冲存储器也经常用于存储图形命令、纹理以及与每个像素相关的其他属性。