Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 2. The Graphics Rendering Pipeline 图形绘制流水线

Similar presentations


Presentation on theme: "Chapter 2. The Graphics Rendering Pipeline 图形绘制流水线"— Presentation transcript:

1 Chapter 2. The Graphics Rendering Pipeline 图形绘制流水线
金小刚 浙江大学CAD&CG国家重点实验室,教I 三楼

2 主要内容 流水线的主要功能是根据给定的虚拟摄像机、三维物体、光源、光照模型、纹理等绘制一幅二维图像。
A chain is no stronger than its weakest link 流水线的速度是由最慢的部分(bottleneck)而非最快部分决定的。 我们这章主要集中讲功能(function)而非具体实现(implementation)。

3 Each stage may be a pipeline
Architecture(体系结构) Three conceptual stages: Application Geometry Rasterizer Each stage may be a pipeline

4 Application Stage(应用层):CPU
用软件来实现,用户可完全控制(而其它层则建立在硬件之上) 应用层的输出为Rendering primitives(如点、线和三角形) Processes:碰撞检测、纹理动画、基于变换的动画、Morphing、响应输入设备(键盘、鼠标、VR头盔)的操作等

5 The Geometry Stage(几何层)
主要处理大部分多边形和顶点操作 Model & view Transform Lighting Projection Clipping Screen Mapping 几何层可进一步细分为上述功能层

6 Model and View Transform
Model space World space Model transform Model coordinates World coordinates Camera or eye space View transform Camera coordinates

7 Lighting and Shading 用光照方程计算模型每个顶点的颜色(根据法向、光源、材料、纹理等)
模型通常用三角形表示(大部分图形硬件支持) 光亮度插值技术:主要是Gouraud shading

8 Projection 光照计算后的下一步是投影变换,把视域体(view volume)变换为一单位立方体
两种投影方法:正交投影(orthographic or parallel projection)和透视投影(perspective projection) 正交投影:视域体从长方体变换为单位立方体。特点:平行线在变换后仍是平行线 透视投影:视域体从平头锥体变换为单位立方体。物体离摄像机越远,在屏幕上的投影越小,与人的视觉系统相符

9 Clipping 只有全部或部分可见的物体需要传到光栅化层。 完全可见:直接传到光栅化层; 完全不可见:不需要绘制; 部分可见:需要裁剪
由于裁剪在投影变换之后,只需把几何对单位立方体裁剪,使得裁剪变得简单。

10 新顶点 单位立方体 x x Clipping z z 新顶点

11 Screen Mapping 单位立方体 (x2,y2) Screen mapping Test OOO (x1,y1)

12 The Rasterizer Stage(光栅化层)
目的:计算每个象素的颜色。 处理Per-pixel operations 每个象素的信息存在颜色缓存(color buffer) 采用双buffer技术:绘制在back buffer进行,当绘制完成后,再交换到front buffer 在该层解决可见性问题: 大部分图形硬件采用Z-buffer技术 Z-buffer:存贮离摄像机最近点场景的Z值

13 Z-buffer 算法 如果某象素新的Z值比Z-buffer中的原有值小,则用新的Z值和颜色更新该象素;
优点:简单、可用硬件实现、与物体绘制顺序无关。算法复杂度为O(n) 但处理透明物体困难。

14 光栅化层中的buffer Color buffer: 每个象素的颜色值 Z buffer:每个象素的Z值
Alpha buffer: 每个象素的不透明度 Stencil buffer(模板缓冲区) : 用来产生特效的强大工具。是OpenGL的一部分,通常每个象素包含1~8 Bits。基本体素可用各种函数绘制到模板缓冲区,然后用其内容来控制绘制到Color buffer和Z buffer的几何体素。 例子:先把一填充园绘制到模板缓冲区,后续的几何体素只有在填充园区域内绘制,而其它区域不绘制。

15 光栅化层中的buffer(续) Frame buffer:常指系统中所有的buffer,但有时仅指Color buffer和Z buffer
Accumulation buffer(累积缓存): 1990由Haeberli和Akeley提出。在该缓存内,图像可以通过一系列操作累积。 实例:用来产生运动模糊(motion blur)、反走样、软影、景深(depth of field)效果。

16 总 结 CPU GPU Application Geometry Rasterizer 硬件加速
总 结 CPU GPU Application Geometry Rasterizer 硬件加速 硬件加速从流水线的末端开始,然后逐步往高层发展,目前有些应用层的工作已经可以用可编程硬件来实现。 硬件实现的唯一好处:速度! 在实时绘制中,速度是关键!

17 Graphics Pipeline: GPU
CPU GPU Graphics State Vertex Processor Pixel Processor Application Vertex Processor Assembly & Rasterization Pixel Processor Video Memory (Textures) Vertices (3D) Xformed, Lit Vertices (2D) Fragments (pre-pixels) Final pixels (Color, Depth) Render-to-texture Note: Vertex processor does all transform and lighting Pipe widths vary Intra-GPU pipes wider than CPUGPU pipe Thin GPUCPU pipe Many caches and FIFOs not shown Soon: render-to-vertex-array Here’s what’s cool: Can now program vertex processor! Can now program pixel processor!

18 Graphics Pipeline: GPU
CPU Geometry Storage Geometry Processor Rasterizer Fragment Processor Framebuffer Texture Storage + Filtering Vertices Pixels

19 Texture Storage + Filtering
Possible Bottlenecks CPU transfer transform raster texture fragment frame buffer CPU Geometry Storage Geometry Processor Rasterizer Fragment Processor Framebuffer Texture Storage + Filtering CPU/Bus Bound Vertex Bound Pixel Bound


Download ppt "Chapter 2. The Graphics Rendering Pipeline 图形绘制流水线"

Similar presentations


Ads by Google