一种运行OpenGL应用程序的图形渲染系统的制作方法

文档序号:6617802阅读:191来源:国知局
专利名称:一种运行OpenGL应用程序的图形渲染系统的制作方法
技术领域
本实用新型涉及计算机图形学的渲染技术,特别是指一种运行OpenGL应 用程序的图形渲染系统。
技术背景计算才几在绘制图形的过程中,渲染有着很大的计算量,特别是遇到复杂的 图形需要渲染的时候,其渲染过程的漫长往往成为实现其功能的瓶颈。而目前 在高性能计算领域,基于微机集群的高性能计算系统的性能,在现有网络技术 的基础上,已经达到甚至超过了传统SMP架构下的计算系统的性能,因此完 全可以利用微机集群的高性能的运算能力来解决上述问题。可是,目前大多数 应用OpenGL(开放图形库,Open Graphics Library)的图形应用程序仍然使用传 统单机式计算和渲染,并不支持"多通道图形分布式渲染",使得微机集群高性 能运算能力的优势根本无法得到发挥,导致图形渲染的速度慢。 实用新型内容本实用新型的目的是提供一种运行OpenGL应用程序的图形渲染系统,提 高计算机渲染图形的速度。一种运行C^enGL应用程序的图形渲染系统,主控机通过以太网络连接多 个图形渲染^U;所述主控机包括图形库应用程序指令流的获取装置;所述渲g包括指令流的解析装置和显卡;所述指令流由所述获取装置通过所述以太网络和所述解析装置到达所述 显卡。该系统所述获取装置包括顺序连接的指令流拦截单元、緩存器、指令流分 析单元和指令流压缩单元,并且所述指令流拦截单元与所述主控机中的集成虚 拟显示映射管理器相连接。该系统所述解析装置包括顺序连接的指令流解压缩单元、緩存器和指令流
执行单元;所述指令流解压缩单元通过所述以太网络连接所述指令流压缩单 元,所述指令流4丸行单元连接所述显卡。该系统所述渲染机包含有与所述显卡相连接的显卡驱动模块,所述显卡连 接有显示终端。该系统所述显示终端拼接各个渲染机所渲染的部份图形。该系统所述显示终端是投影仪。应用本实用新型的技术,克服了现有大多数OpenGL图形应用程序在单机 上计算渲染能力受限的不足,本实用新型不仅可以使OpenGL图形应用程序利 用图形群集的高性能计算优势,提高自身计算和渲染能力;而且能方便得与现 有的OpenGL图形应用程序结合起来,不必对原有的程序源代码进行修改。

图1为本实用新型实施例获取装置示意图; 图2为本实用新型实施例解析装置示意图; 图3为本实用新型实施例主控机与渲染机连接关系示意图; 图4为本实用新型实施例工作原理流程示意图; 图5为^^实用新型实施例中需要渲染的平面矩形。
具体实施方式
本实用新型提供了 一种运行OpenGL应用程序的图形渲染系统,该系统可 以分为获取装置、以太网、解析装置。其中,获取装置如图1所示,包括指令流拦截单元(101),指令流緩存器 (102),指令流分析单元(103)、指令流压缩单元(104)。其中,由于主控机(301)上集成了集成虚拟显示映射管理器(VR Mapper Manager, Virtual Reality Mapper Manager)技术,指令流拦截单元(101)可以利 用该虚拟显示映射管理器来实现应用编程接口钩子(API Hook, Application Programming Interface )技术,拦截图形应用程序的API指令流;所述应用编程 接口钩子技术通常包括修改IAT表,修改函数表头,以及替换动态链接库等三 种;所述的指令流是若干条指令,指令流是上述若干条指令的形象描述。指令流緩存器(102):用于暂时存放拦截的指令流,指令流在指令流緩存 器(102)中 一般按照队列或者是堆栈的形式存放。
指令流分析单元(103):从"指令流緩存器(102),,中取出指令流,按照通道 和视点加以分析,并进行分流;所述的视点是指观察图形的方向,即当观察点位于三维空间中不同的位置 时,所看到的图形。所述的通道可以看作是图形选取的区域,即选取一块区域,然后对该区域 进行渲染。具体依擴什么标准进行指令流的分类由设计人员自行设定,指令流分析单 元(103)将分类后的指令流发送给指令流压缩单元(104)。指令流压缩单元(104):位于主控机的指令流压缩单元(104)把接收的分类 后的指令流打包压缩形成数据包,准备传输。解析装置如图2所示,包括指令流解压缩单元(202)、指令流緩存器(203)、 指令流执行单元(201)、还可以附加一个显卡驱动模块(204)。指令流解压缩单元(202),以及指令流緩存器(203)和上述主控机中的可以 是同一种单元,这样就减少了研发、制作的成本。渲染机中的指令流解压缩单 元(202)用于把4妄收到的数据包重新解压缩;压缩与解压缩互为逆过程。指令流执行单元(201):把指令流解析成显卡识别的绘图指令并提交给显卡 驱动模块(204)。显卡驱动模块(204):可以是一个软件的驱动程序,用于驱动显卡,接收指 令流执行单ib(201)发送来的绘图指令,驱动显卡进行绘图。显卡显卡硬件按照收到的绘图指令绘制相应的图形。每一个渲染机(303)的显卡负责绘制的部份图形完成之后,由显示终端(304) 进行拼接;例如投影仪可以通过调整各自的投影区域、色彩、亮度等参数来完 成各个部份图形最终的拼接和投影。由上述描迷可以知道,本实用新型主要包括获取装置和解析装置两个部 分,如图3所示,上述两者通过网络连接;其中获取装置安装在主控机(301)上, 主控机(301)是一个高性能计算机,并运行OpenGL图形应用程序,负责各个渲 染机(303)的调度,基于OpenGL分配技术,可将图形在主控机(301)上的渲染分 配到多个渲染才几(303)进行渲染;解析装置位于渲染机(303)上,渲染机(303)通 常是一个高性能图形工作站,通过网络接受主控机(301)的绘制指令流,并由
解析装置完成绘制,并显示在显示终端(304)上。以太网的网络交换机(302)用 于完成主控才凡(301)和渲染机(303)之间的连接。如图4所示,描述主控机(301)上的获取装置与渲染机(303)上的解析装置配 合工作的工作原理和流程。在主控才/U(301)上,只需要采用已有的VR Mapper Manager技术就能够在不 改动基于OpmGL的图形应用程序源代码的基础上将获取装置运行在主控机 (301)上,VR Mapper Manager是OpenGL动态链接库(dll, dynamic link library) 在应用层的"映射或代理",实际上,OpenGL的图形应用程序仍然是调用 OpenGL库函数来完成渲染任务,而对位于上层的应用程序仍然保持OpenGL 接口不变,实现了对上层应用程序的透明。这样,对于OpenGL应用程序,使 用配置好的VR Mapper Manager就等同于使用经过重新配置的OpenGL API,这 些OpenGL API调用的指令流被指令流拦截单元(101)拦截,指令流拦截单元 (101)将拦截到的指令流暂时存放在指令流緩存器(102)中;指令流分析单元 (103)从指令流緩存器(102)中提取指令流,并按照通道和视点加以分析、分流, 分流后的指令流被送入指令流解压缩单元(202);指令流解压缩单元(202)将分 流后的指令流进^f亍打包压缩,即把指令流压缩在一个个的网络数据包中,每一 个数据包的标志位也标识了接收该数据包的渲染机(303),并可以由获取装置 向主控机(301)请求通过以太网络发送上述的网络数据包。主控机(301)将上述数据包发送给以太网的网络交换机(302),网络交换机 (301)则根据数据包中的标识将每一个数据包发送给对应的渲染机(303),渲染 机(303)#收后,由解析装置处理。解析装置的指令流解压缩单元(202)将数据包解压缩,解压缩是压缩的逆过 程,因此该单元的设计与获取装置的指令流解压缩单元(202)相同;解压缩后 的指令流存放在指令流緩存器(203)中;指令流执行单元(201)从指令流緩存器 (203)中提取指令流,才艮据指令流,解析成对应的显卡可以识别的指令,并发 送给显卡驱动4莫块(204);显卡驱动模块(204)根据该指令驱动显卡渲染对应的 图形。由显卡具体完成绘制图形的任务,并显示在显示终端(304)上;如以上所述, 每一个显示终端(304)均显示出对应的渲染机负责渲染的图形,多个渲染机就
实现了多路绘制的并行进行,得到最终需要渲染的图形。以图5所示的对平面矩形的渲染为例,不失一般性,以图中的虚线将该平 面矩形分割为等同的A、 B、 C三个部份图形分别进行渲染,对A进行渲染的指 令流在主控机(301)上被获取装置拦截,存入緩存器,并经过分析、打包后通 过网络发送给目标渲染机(303),该渲染机(303)的解析装置接收后,緩存在指 令流緩存器(203)中,指令流执行单元(201)从指令流緩存器(203)中提取指令流, 根据指令流,解析成对应的显卡可以识别的指令,并发送给显卡驱动模块 (204);显卡驱动^^块(204)执行上述指令由显卡渲染对应的图形,并显示在显 示终端(304)上。应用本实用新型中的获取装置、解析装置,可以在OpenGL应用程序实现 多路分布式湩染的同时,而不用对原OpenGL应用程序^:出代码级改动,整体 环境配置简单。克服了现有大多数OpenGL图形应用程序在单机上计算渲染能 力受限的不足,本实用新型不仅可以使OpenGL图形应用程序利用图形群集的 高性能计算优势,提高自身计算和渲染能力,而且能方便得与现有的OpenGL 图形应用程序结合起来。以上所述仅是本实用新型的优选实施方式,应当指出,对于本技术领域的 普通技术人员来说,在不脱离本实用新型原理的前提下,还可以做出若干改进 和润饰,这些改进和润饰也应视为本实用新型的保护范围。
权利要求1.一种运行OpenGL应用程序的图形渲染系统,其特征在于,主控机通过以太网络连接多个图形渲染机;所述主控机包括图形库应用程序指令流的获取装置;所述渲染机包括指令流的解析装置和显卡;所述指令流由所述获取装置通过所述以太网络和所述解析装置到达所述显卡。
2. 根据权利要求1所述的系统,其特征在于,所述获取装置包括顺序连 接的指令流拦截单元、緩存器、指令流分析单元和指令流压缩单元,并且所述 指令流拦截单元与所述主控机中的集成虚拟显示映射管理器相连接。
3. 根据权利要求l所述的系统,其特征在于,所述解析装置包括顺序连接的指令流解压縮单元、緩存器和指令流执行单元;所述指令流解压缩单元通过 所述以太网络连接所述指令流压缩单元,所述指令流执行单元连接所述显卡。
4. 根据权利要求1或3所述的系统,其特征在于,所述渲染机包含有与 所述显卡相连,接的显卡驱动模块,所述显卡连接有显示终端。
5. 根据权利要求4所述的系统,其特征在于,所述显示终端拼接各个渲 染机所渲染的部份图形。
6. 根据权利要求5所述的系统,其特征在于,所述显示终端是投影仪。
专利摘要本实用新型提供一种运行OpenGL应用程序的图形渲染系统,主控机通过以太网络连接多个图形渲染机;所述主控机包括图形库应用程序指令流的获取装置;所述渲染机包括指令流的解析装置和显卡;所述指令流由所述获取装置通过所述以太网络和所述解析装置到达所述显卡。应用本实用新型的技术,充分利用微机集群高性能运算能力的优势,提高了图形渲染的速度。
文档编号G06T1/20GK201035617SQ200720148918
公开日2008年3月12日 申请日期2007年4月25日 优先权日2007年4月25日
发明者祝广涛, 钦传军 申请人:北京赛四达科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1