场景图形设计.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
场景图形设计.pdf

多线程,多显示场景图形设计: 一种新的过程模型 作者:Don Burns,2001 译者:王锐,2008 新的设想 场景图形的主要目的是改善场景优化,渲染状态排序和各种其它操作的性能,降低图形 渲染引擎的负荷,并实现复杂场景的“实时”渲染。实时渲染的目标是以足够高的帧速(符 合人眼的交互要求)渲染场景。飞行模拟程序通过窗口输出(out-the-window )的图像生成 频率要求为 60Hz 或者更高,这样显示的内容才不会发生异常。而 30Hz,20Hz 或者 15Hz 的频率则是“可交互”的,即,视口可以交由用户进行操控,并在合适的时间响应用户的输 入。基于这些目标,我们需要参照帧速60Hz 的仿真要求实现我们的设计。我们假定帧速率 恒定,且图形子系统针对垂直消隐时间(vertical blanking time ,即电子枪扫描完一帧之后返 回原点的时间)与渲染交换缓冲区(rendering buffer swap )执行同步的能力恒定。此外,我 们还假定多显示的系统已经实现了同步锁相(genlock ),至少实现了帧锁相(frame lock,借 助硬件使每个显示屏上的帧实现同步),这样就可以实现垂直回描边界(vertical retrace boundary ,即电子枪扫描完一帧之后返回的边界)在所有图形子系统上的同步。 多任务,多显示,单系统绘图的传统方法 使用场景图形实现实时渲染的“传统”方法是实现多个阶段,即:APP (用户阶段), CULL (拣选阶段),DRAW (绘制阶段)。APP 阶段用于更新所有的动态用户数据,包括相 机的位置,以及运动对象的位置和属性变化。CULL 必须跟随在APP 之后,这一阶段中, 首先参照视口锥截体(viewing frustum )中的可见对象,其次参照用于渲染性能的渲染状态, 对场景进行排序。CULL 阶段更新摄像机位置的依赖数据,并为其后的DRAW 阶段构建一 个“显示列表”(display list )。DRAW 阶段仅仅是遍历整个显示列表,并执行OpenGL 的各 种调用,将数据传递给图形子系统进行处理。 在一个具备多个图形子系统的系统中,有必要为每个图形子系统设置CULL 和DRAW 阶段,因为在假定各个视口锥截体均不同的前提下,只有 CULL 阶段能够为每个子系统构 建唯一的“显示列表”。而 APP 阶段则不必设置多个,因为每个视口均会共享同一个 APP 阶段更新的动态数据。 鉴于此,一个具备多图形子系统的系统,要实现多任务的机制,则需要定义过程如下: 一个单处理器的系统需要顺序地执行各个阶段(例如,APP ,CULL_0,DRAW_0 ,CULL_1, DRAW_1 ,CULL_2,DRAW_2 ),而一帧的时间也就相当于这些阶段耗费的总时间。因此, 我们需要实现的任务主要有两个:(1)唯一的 APP 任务,(2 )每个图形子系统各自的 CULL/DRAW 任务。 在多处理器系统中,如果处理器树木足够多的话,那么每一个任务都可以在某一个处理 器上并行地执行。此外,CULL/DRAW 任务也可以分离为两个任务并行地运行。 并行多处理器环境的模型实现主要有两个目标。(1 )分离并行化(Task Division Parallelization ):将一个大型的任务分解成多个可以并行运行的小型任务,以削减运行时间; (2 )集成并行化(Task Aggregation Parallelization ):将一个任务N 次倍乘后,并行地运行 它的每个实例,而不增加运行时间。将 CULL/DRAW 阶段从 APP 阶段分离出来,然后将 CULL 和 DRAW 分离成独立并行的任务,这是一个“分离并行化”的例子。将多个 CULL/DRAW 组合的任务添加给各个图形子系统,这是一个“集成并行化”的例子。 并行地运行各个阶段可能会带来一些问题。首先,各个阶段必须顺序地处理数据。换句 话说,APP 阶段完成

文档评论(0)

尐丶丑 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档