三维渲染基础知识

一、GPU与CPU
既然要学习图形渲染,那么我们首先得了解CPU与GPU,可以参考CPU与GPU的设计区别
CPU与GPU架构
上图中,绿色表示计算单元,橙红色的是存储单元,橙黄色的是控制单元。
可以看出,CPU中包含了大量的Cache,还有复杂的控制逻辑和许多优化电路,计算功能只占一小部分,而GPU中有众多的计算单元和超长的流水线,其控制单元很少并且省去了Cache(高速缓冲存储器,一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问)。
总结来说,
Cache,local memory:CPU>GPU
Threads(线程数):GPU>CPU
Registers:GPU>CPU 多寄存器可以支持非常多的Thread,Thread需要用到register,thread数目大,register数目也得多。
SIMD Unit(单指令多数据流,以同步方式,在同一时间内执行同一条指令): GPU > CPU。
作为显卡的“心脏”,GPU是为执行复杂的数学和几何计算而设计的,而这些计算是图形渲染必不可少的。
二、线程与进程
上面提到了线程,那我们来了解一下线程与进程。
线程是进程中执行运算的最小单元,亦即执行处理机调度的基本单位。
进程是表示资源分配的基本单位,又是调度运行的基本单位。
进程与线程的关系:
(1)一个线程只能属于一个进程,而一个进程可以有多个线程。线程是操作系统识别的最小执行和调度单位。
(2)资源分配给进程,同一进程的线程共享该进程的所有资源。
(3)处理机分给线程,即真正在处理机上运行的是线程。
(4)线程在执行过程中,需要协作同步,不同进程的线程间要利用消息通信的方法实现同步。
如果还想进一步了解,可以参考进程与线程的区别
三、并行渲染
基于PC集群计算资源的并行渲染,以其性价比高、兼容性好、扩展灵活等特点,成为虚拟现实实时显示研究的新方向。
1、典型的图形流水线
图形处理过程通常用流水线模型进行描述,图形处理流水线与CPU流水线的概念相似,它将整个图形处理过程划分为多个流水阶段,以流水线的方式分阶段实现图形计算。典型的图形流水线如下:
典型的图形流水线
2.并行渲染流水线
图形生成中的几种基本的并行类型包括:功能上的并行、数据并行和时间上的并行性。
(1)基于数据分解的并行
基于功能分解的并行是在同一数据流上,同时执行渲染过程的不同阶段,而基于数据分解的并行则是将数据分布到多个数据流中,并用多个渲染单元同时来处理这些数据。基于数据分解的并行算法最大的有点是算法的可扩展性比较好,能够取得较高的加速比。基于数据分解的并行算法又分为:物体分割并行算法和图像分割并行算法。
(2)基于功能分解的并行
一种获得并行的方法是把整个渲染过程分解成几个不同的子功能阶段,每一个阶段可以顺序处理不同的数据。如果每个处理单元完成一个子功能,并且在处理单元之间建立起一条顺序连接的数据通道,实际上就形成了一个渲染流水线。
流水线并行方法存在着两个明显的缺陷。首先流水线速度存在明显的瓶颈,其整体的速度取决于流水线中最慢的一级,流水线的设计应尽量避免瓶颈的出现。最重要的是流水线的加速比受限于流水线级数,而功能上的分解是有很大限制的,要想取得更高的加速比,一般要同其他并行方法结合使用,如SGI的Reality Engine图形渲染系统。
(3)基于时间分解的并行
在计算机动画的生成过程中,有成百上千的高质量图形需要渲染,这种情况下每一帧的渲染速度可能不是最重要的,人们关心的是整个动画的渲染时间。这样就可以利用时间上的分解来实现并行,动画序列的每一帧是任务分配的基本单元,每一个处理器单独完成其中的几帧图像。
3.并行图形渲染系统分类
并行图形渲染系统中,场景渲染由PC集群中担任渲染任务的PC节点完成,每个PC节点上的图形处理卡都是一条完整的图形渲染流水线,包括几何处理和光栅化两个基本过程,担任渲染任务的节点称之为渲染服务器。渲染时,场景数据需要按照一定的任务划分策略分配到不同的渲染服务器上,这个数据划分和分配的过程称为归属判断。Molnar等人根据归属判断发生的方式和时机,将并行渲染系统归为三类:sort-first、sort-middle、sort-last。
(1)sort-first
sort-first类并行图形渲染系统的归属判断发生在几何处理之前,最终显示屏幕的图像空间被划分为多个区域分配给不同的渲染服务器。渲染每一帧前先根据场景几何数据在显示屏幕上的投影,确认负责处理的渲染服务器,然后将相应数据发送到此渲染服务器处理,渲染完成后将所有的渲染服务器的结果拼接成最终显示图像。sort-first的优点是各条渲染流水线完整而独立,故特别有利于构建集群式并行图形渲染系统。归属判断是此类并行图形渲染系统的主要开销和瓶颈所在。
(2)sort-middle
sort-middle的归属判断发生在几何处理之后、光栅化之前,即在几何处理阶段每个服务器处理整个场景数据的一部分,几何处理之后的输出按照屏幕分块送入相应流水线的光栅化处理阶段
sort-middle类并行图形渲染系统要求得到渲染流水线几何处理后、光栅化之前的中间结果进行重分布,而PC集群所采用的商业图形卡一般将几何处理和光栅化功能集成在一起,很难得到流水线的中间结果,这限制了sort-middle类系统在PC集群上的应用。
(3)sort-last类系统不对图像空间进行划分,只将场景数据等分为若干子集,子集的划分不受空间范围的限制,保证三角面片数量大致相等以保持负载平衡即可,这使sort-last得归属判断与sort-first和sort-middle不同。每个数据子集进入相应服务器的渲染流水线进行几何处理合成后得到最终的显示结果。sort-last最大的优点是简明,场景数据的不均匀分布引起的负载失衡较小,但增加了一个像素合成的处理步骤。像素的传输和合成是sort-last并行图形渲染系统的主要开销和瓶颈所在。三种流水线组织方式比较
以上关于并行渲染部分参考《分布式虚拟装配环境下资源管理与基于集群计算资源的并行化渲染技术研究》

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Estelle_Z

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

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

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

打赏作者

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

抵扣说明:

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

余额充值