场景图形设计

场景图形设计

ID:37833159

大小:731.90 KB

页数:11页

时间:2019-06-01

场景图形设计_第1页
场景图形设计_第2页
场景图形设计_第3页
场景图形设计_第4页
场景图形设计_第5页
资源描述:

《场景图形设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、多线程,多显示场景图形设计:一种新的过程模型作者:DonBurns,2001译者:王锐,2008新的设想场景图形的主要目的是改善场景优化,渲染状态排序和各种其它操作的性能,降低图形渲染引擎的负荷,并实现复杂场景的“实时”渲染。实时渲染的目标是以足够高的帧速(符合人眼的交互要求)渲染场景。飞行模拟程序通过窗口输出(out-the-window)的图像生成频率要求为60Hz或者更高,这样显示的内容才不会发生异常。而30Hz,20Hz或者15Hz的频率则是“可交互”的,即,视口可以交由用户进行操控,并在合适的时间响应用户的输入。基于这些目标,我们需要

2、参照帧速60Hz的仿真要求实现我们的设计。我们假定帧速率恒定,且图形子系统针对垂直消隐时间(verticalblankingtime,即电子枪扫描完一帧之后返回原点的时间)与渲染交换缓冲区(renderingbufferswap)执行同步的能力恒定。此外,我们还假定多显示的系统已经实现了同步锁相(genlock),至少实现了帧锁相(framelock,借助硬件使每个显示屏上的帧实现同步),这样就可以实现垂直回描边界(verticalretraceboundary,即电子枪扫描完一帧之后返回的边界)在所有图形子系统上的同步。多任务,多显示,单系统

3、绘图的传统方法使用场景图形实现实时渲染的“传统”方法是实现多个阶段,即:APP(用户阶段),CULL(拣选阶段),DRAW(绘制阶段)。APP阶段用于更新所有的动态用户数据,包括相机的位置,以及运动对象的位置和属性变化。CULL必须跟随在APP之后,这一阶段中,首先参照视口锥截体(viewingfrustum)中的可见对象,其次参照用于渲染性能的渲染状态,对场景进行排序。CULL阶段更新摄像机位置的依赖数据,并为其后的DRAW阶段构建一个“显示列表”(displaylist)。DRAW阶段仅仅是遍历整个显示列表,并执行OpenGL的各种调用,将

4、数据传递给图形子系统进行处理。在一个具备多个图形子系统的系统中,有必要为每个图形子系统设置CULL和DRAW阶段,因为在假定各个视口锥截体均不同的前提下,只有CULL阶段能够为每个子系统构建唯一的“显示列表”。而APP阶段则不必设置多个,因为每个视口均会共享同一个APP阶段更新的动态数据。鉴于此,一个具备多图形子系统的系统,要实现多任务的机制,则需要定义过程如下:一个单处理器的系统需要顺序地执行各个阶段(例如,APP,CULL_0,DRAW_0,CULL_1,DRAW_1,CULL_2,DRAW_2),而一帧的时间也就相当于这些阶段耗费的总时间

5、。因此,我们需要实现的任务主要有两个:(1)唯一的APP任务,(2)每个图形子系统各自的CULL/DRAW任务。在多处理器系统中,如果处理器树木足够多的话,那么每一个任务都可以在某一个处理器上并行地执行。此外,CULL/DRAW任务也可以分离为两个任务并行地运行。并行多处理器环境的模型实现主要有两个目标。(1)分离并行化(TaskDivisionParallelization):将一个大型的任务分解成多个可以并行运行的小型任务,以削减运行时间;(2)集成并行化(TaskAggregationParallelization):将一个任务N次倍乘后

6、,并行地运行它的每个实例,而不增加运行时间。将CULL/DRAW阶段从APP阶段分离出来,然后将CULL和DRAW分离成独立并行的任务,这是一个“分离并行化”的例子。将多个CULL/DRAW组合的任务添加给各个图形子系统,这是一个“集成并行化”的例子。并行地运行各个阶段可能会带来一些问题。首先,各个阶段必须顺序地处理数据。换句话说,APP阶段完成对数据的处理之后,CULL阶段才可以开始使用这些数据。同样,DRAW阶段也不可以在CULL完成数据生成之前使用这些数据。不过,APP阶段不需要等待CULL和DRAW阶段的工作完成,就可以开始下一帧的数据

7、处理工作,因此,系统管线流程的设计如下图所示。此外,各个阶段之间共享的数据也需要进行保护和缓存。由之前的阶段写入的数据,不可以被同时发生的其它并行阶段读取。这样场景图形软件就需要引入复杂的数据管理功能。以上所述是SGIIrisPerformer在九十年代提出的一种框架结构。在当时它是合适的,但是现在已经有些过时。实时且具备窗口输出(out-the-window)的飞行模拟系统需要60Hz的帧速率,也就是说,每个阶段只有16.667毫秒的时间来完成其任务。1990年,SGI开始开发实时图形系统,它所使用的处理器速度是现在处理器的1/60。由于图形

8、系统与图形处理器的能力成比例相关,APP和CULL阶段所需的时间负荷并不是相同的。上图所示的系统设计中,APP和CULL阶段被假定可能占用整整一帧的时

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。