CH2 The Graphics Rendering Pipeline —— Real-time Rendering

"A chain is no stronger than its weakest link." -- Anonymous
> The main function of the pipeline is to generate, or render, a two-dimensional image, given a virtual camera, three-dimensional objects, light sources, shading equations, textures, and more.

管线的速度由最慢的那个环节决定
> real-time rendering pipeline : application, geometry, rasterizer

> 如何计算渲染速度。假设输出设备的刷新频率是60Hz,渲染管线的瓶颈阶段已知为62.5ms。首先计算最大渲染速度为1/0.0625 = 16fps。然后,60Hz的频率意味着,渲染速率可以为60Hz,60/2=30Hz,60/3=20Hz,60/4=15Hz,60/5=12Hz,等等。所以选择15Hz作为最大的渲染速率。
应用程序阶段由应用程序驱动。主要由CPU来执行任务,多核CPU可以实现并行处理(多线程)来提高速度。这些任务包括:碰撞检测,全局加速算法,动画,物理模拟等等。
> 几何阶段处理转换,映射等。该阶段主要计算画什么,如何画,以及画在哪儿。主要在GPU上执行。
> 光栅阶段负责像素点的计算以及渲染。在GPU上执行。

2.3 The Geometry Stage

该阶段可以进一步划分为几个功能阶段:model and view transform, vertex shading, projection, clipping, and screen mapping.
有些情况下,几个连续的功能阶段组成一个管线阶段(与其他管线阶段并行执行);或者,一个功能阶段可以划分为几个小的管线阶段。


2.3.1 Model and View Transform
每个模型都可以有多个实例,每个实例与一个模型转换相关联,决定了其在世界坐标系中的位置,大小,面向等。
视图转换用来转换到摄像机坐标系。

2.3.2 Vertex Shading
> The operation of determining the effect of a light on a material is known as shading(着色).
> 着色方程的计算:some of these computations are performed during the geometry stage on a model's vertices, and others may be performed during per-pixel rasterization。
> 顶点包含的信息可以是所有与着色计算有关的信息。顶点着色的结果作为光栅阶段的输入,进行插值。

2.3.3 Projection
> 映射是将视景体映射到一个单位立方体((-1,-1,-1), (1,1,1)^3).
> 有正交投影(平行投影)和透视投影两种。

> 投影后的模型处在 normalized device coordinates.
> 之所以称为投影是因为:转换之后z坐标分量不再作为坐标存储,而是作为深度值

2.3.4 Clipping
> 只有在单位体中的部分会保留。由硬件实现。

2.3.5 Screen Mapping
> 映射到屏幕空间(x1,y1), (x2,y2).

> DX 9.0 及以前的版本使用 0.0作为像素点中心,[0,9]范围的像素,对应于[-0.5, 9.5);OpenGL和DX 10以后的版本则以0.5为中心,[0,9]对应[0.0, 10.0).
> d = floor(c), c = d +0.5.d为离散像素点索引,c为浮点值。

2.4 The Rasterizer Stage

> 光栅阶段的目标是:以几何阶段得到的顶点数据(经过转换和映射,以及相关着色数据)为输入,计算对象覆盖的像素的颜色。

> Z-buffer algorithm, optional alpha and stencil tests.

Conclusion
> 其他形式的管线:离线渲染管线。
> micropolygon pipelines(film production), ray tracing renderers(academic research and predictive rendering applications such as architectural previsualization).

声明:文中图片来源自Real-time Rending 3rd.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

superbin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值