Skip to content

Latest commit

 

History

History
47 lines (33 loc) · 2.21 KB

gpu.md

File metadata and controls

47 lines (33 loc) · 2.21 KB

GPU

图形渲染

GPU流水线

  • 顶点处理
  • 图元处理
  • 栅格化
  • 片段处理
  • 混合处理

顶点处理

  • 图形渲染的第一步是顶点处理。
  • 构成多边形建模的每一个多边形呢,都有多个顶点(Vertex)。这些顶点都有一个在三维空间里的坐标。
  • 但是屏幕是二维的,所以在确定当前视角的时候,需要把这些顶点在三维空间里面的位置,转化到屏幕这个二维空间里面。这个转换的操作,就被叫作顶点处理。

图元处理

  • 图元处理,其实就是要把顶点处理完成之后的各个顶点连起来,变成多边形。
  • 转化后的顶点,仍然是在一个三维空间里,只是第三维的 Z 轴,是正对屏幕的"深度"。所以针对这些多边形,需要做一个操作,叫剔除和裁剪(Cull and Clip),把不在屏幕里面,或者一部分不在屏幕里面的内容给去掉,减少接下来流程的工作量。

栅格化

  • 屏幕分辨率是有限的。一般是通过一个个像素(Pixel)来显示出内容的。
  • 对于做完图元处理的多边形,把它们转换成屏幕里面的一个个像素点。这个操作,就叫作栅格化。
  • 栅格化操作,有一个特点和上面的顶点处理是一样的,就是每一个图元都可以并行独立地栅格化。

片段处理

  • 在栅格化变成了像素点之后,图还是"黑白"的。还需要计算每一个像素的颜色、透明度等信息,给像素点上色。
  • 片段处理操作,同样也可以每个片段并行、独立进行,和上面的顶点处理和栅格化一样。

混合处理

  • 把不同的多边形的像素点"混合(Blending)"到一起。
  • 可能前面的多边形可能是半透明的,那么前后的颜色就要混合在一起变成一个新的颜色。或者前面的多边形遮挡住了后面的多边形,那么只要显示前面多边形的颜色就好了。
  • 最终,输出到显示设备。