分享

GPU的工作流程

 贫穷的小悍马 2013-01-06
一. 几何处理几何单元
几何过程以CPU泵送顶点信息为起点
CPU根据
程序的需要生成构成模型的所有顶点输送给GPU几何单元接收到顶点坐标之后把这些点按照坐标要求摆放在其设置的可视空间按照正确的规则将顶点连接起来之后,物体的外形也就被确定下来了。然后进行初步的蒙皮和打光

pixel shadervertex shader顶点着色器,DirectX10 unified shader硬件的执行效率理论100%
DirectX 11 compute shader 打破几何关联性,通用计算走向可能

目的:
把描述图形的数学方程转化成虚拟空间的“实在”的物体



二. 光栅化

将空间立体物体图形转变成具有透视特效的平面图形,也即将立体模型进行一次三维坐标向二维坐标的变换。同时也是减轻了后续流水线中像素处理与纹理贴图单元的工作负担。



目的:将三维图形转化为二维图像,使之能在显示器上正确显示

材质操作(纹理贴图单元TMU,Texture Mapping Unit

程序员们会事先制作包含很多色彩和图案的材质库,每片材质都会有规则的可以坐标度量的尺寸。接下来,他们还会在程序中为物体表面规定好特定的色彩和图案特征以及适应类别范围。当光栅化完成之后,每个多边形新具备的坐标将成为确定它“形状”的新参数,材质单元根据事先规定好的特征范围去材质库中进行查询,然后再根据形状参数确定预制材质中截取的部分,最后把这些材质拷贝出来覆盖到对应区域之上,这就是材质操作的全部内容。


目的:使物体具有
真实的纹理效果,同时也是使虚拟物体达到真实效果的主要途径。



四. Pixel shader(像素着色器)

预先制作的材质并不能充分地反映出现场真实的光影效果
,为了描述光线与物体作用特效对物体的影响,出现了Pixel shaderPixel shader对无法满足最终显示要求的贴图进行像素级别的修改,实现表面光照反应、次表面/界面间发生的半反射、散射以及折射等等传统贴图很难实时随意且正确呈现的视觉效果

目的:使物体具有
准确的视觉效果,包括光线照射等纹理贴图完成不了效果。

五. ROPs(Render Output Unit渲染输出单)
(1)ROP单元渲染过程: 首先,拾取好的材质以及由shader处理完成的像素会被传送到对应的z/stencil buffer,ROP单元会对这些纹理和像素进行z/stencil检查(也就是前后遮蔽关系检查),对于深度和模板信息的判断能够让ROP做出让哪些像素被显示出来的决定,这不仅能够避免完全遮挡的像素被错误的显示在前面,同时也能够减少后续的输出部分的压力。


(2)ROP单元AA(Anti-Aliasing,抗锯齿操作:对高对比度颜色之间形成的亮线进行重采样和像素级的颜色混合操作,达到弱化锯齿的效果,如下图。



目的:将前几个单元完成的效果混合并附加抗锯齿,最后输出。
 
一图总结全部过程

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多