〇、目标
- 实时绘制:15-60fps
30+才会流畅
- 高分辨率
- CPU负荷很大
物理、AI(npc智能化)、声音、 网络……
- 图形需求
高速内存访问、高带宽、浮点数的运算(Flops,Floating Poing Operation)、矩阵-向量乘积(几个G的Flops)、峰值可达几个T
需要硬件高速处理图形!!!
一、图形硬件的历史
- 90年代中早期
硅图(SGI)主机和工作站
个人主机只有2D图形硬件
- 90年代中期
- PC机显卡:3dfx(Voodoo卡)、nVidia、Matrox、ATI
- 三角形光栅化移入显卡(扫描线算法)
- 推动了大量3D游戏的发展
- 1999
PC-card with TnL(Transform and Lighting)
- NVIDIDA GeForce :Graphics Processing Unit (GPU)
- 现代
图形流水线可支持部分可编程
行业领军:ATI&NVIDIA
三、图形流水线
- 应用
视截体裁剪、场景转换裁剪
- 几何处理——顶点着色器
位置、形状、光线、图元组合、背面剔除)……
- 光栅化(Rasterization)——片段着色器
扫描填充、Fragment Shading、Frame buffer
- 输出
如何才能实现可编程呢?
顶点和片段着色器
顶点的属性坐标——>顶点着色器——>顶点的新的属性坐标——>光栅化(坐标、颜色、深度)——>片段着色器——>新的坐标、颜色、深度
基本操作
SIMD(对四元组做的基本操作)
系统架构:
- 流水线
- 并行
- 并行流水线
早期游戏
《Half Life》、《DOOM》