[发明专利]一种多通道的分布式绘制系统与方法无效
| 申请号: | 200810117814.8 | 申请日: | 2008-08-04 |
| 公开(公告)号: | CN101334891A | 公开(公告)日: | 2008-12-31 |
| 发明(设计)人: | 王全玉;刘昕 | 申请(专利权)人: | 北京理工大学 |
| 主分类号: | G06T1/00 | 分类号: | G06T1/00;G06T17/00;H04L29/08 |
| 代理公司: | 北京理工大学专利中心 | 代理人: | 张利萍 |
| 地址: | 100081北*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 通道 分布式 绘制 系统 方法 | ||
1、一种多通道的分布式绘制系统,包括一台客户机、一台或多台服务器、一台或多台显示设备以及将它们连接起来的网络,其特征在于:
客户机中包含两类模块:一个客户机端控制程序模块和若干个客户机端应用程序模块,其中,客户机端控制程序模块中包含控制程序、共享内存区域和虚拟三维场景数据;客户机端的每个应用程序模块中都包含一个修改的OpenGL库和一个应用程序,该应用程序能够调用这个修改的OpenGL库;
每个服务器中都包含一个服务器端应用程序模块,每个服务器端应用程序模块又包含四个子模块:通讯子模块、控制子模块、输入子模块和显示子模块;
所述修改的OpenGL库要能够满足OpenGL命令在网络上运行,能够降低网络带宽需求和消除网络带宽造成的瓶颈;
系统各部分关系如下:
用户从客户机端输入通道设置指令,系统将该指令传送给客户机端控制程序模块,客户机控制程序模块中的控制程序负责接收该指令,根据该指令完成通道的设置;客户机控制程序模块将设置完成后的信息传输给客户机中的每一个客户机端应用程序模块;
各个客户机端应用程序模块接收从客户机控制程序模块传输过来的通道参数来设置各个摄像机的参数;用户还可以通过服务器端的输入子模块输入控制指令,系统将接收到的控制指令通过网络发送给客户机端,客户机端控制程序模块中的控制程序根据这些指令信息更新其相应的摄像机的参数;
客户机端控制程序将虚拟三维场景数据读入到客户机的缓存中,然后创建并映射共享内存区域,再将虚拟三维场景数据写入共享内存区域中,接下来通知客户机中的各个应用程序模块来读取这些虚拟三维场景数据;
客户机端控制程序模块中的控制程序将各摄像机的参数传送给相应的应用程序,应用程序从共享内存区域中拣选出视域范围内的虚拟三维场景数据,然后通过视锥体裁剪、背面裁剪及遮挡裁剪等方法确定虚拟三维场景的可见部分,剔除不可见部分,最后针对可见部分从修改过的OpenGL库中调用相应的OpenGL绘制指令;每个客户机端应用程序模块中修改的OpenGL库接收到各自所属客户机端应用程序发出的OpenGL绘制指令后,截取这些指令,将其打包并通过网络发送至由用户通过通道参数设置指定的服务器;
每个服务器通过各自服务器端应用程序模块中的通信子模块接收客户机发送过来的对应的应用程序的OpenGL流包,再将其发送给控制子模块,控制子模块对OpenGL流包进行解压,再将解压后得到的数据送入显示子模块;
客户机端控制程序模块负责实现所有的服务器绘制的同步,由客户机端控制程序模块中的控制程序将同步指令信息通过网络发送给每个服务器中的通讯子模块,通信子模块接收客户机发送过来同步指令信息,再将其发送给控制子模块,各个控制子模块根据同步指令完成同步操作,等待客户机端控制程序模块中的控制程序发出绘制命令,当各个服务器接收到客户机端控制程序模块中的控制程序发出的绘制命令后,开始进行图像绘制并显示。
2、一种多通道的分布式绘制系统的实现方法,其特征在于具体步骤包括:
a 在客户机中进行通道设置
将客户机和服务器联成局域网,并在同一个网段内为每台计算机设置不同的IP地址,用户在客户机中通过控制程序模块输入欲设定的通道数量,并选择拼接模式或多视点模式,系统根据通道的数量将应用程序和修改的OpenGL库复制到和通道一一对应的文件夹下,然后,在客户机中设置各通道对应的服务器IP地址,并以配置文件的形式保存在各通道对应的文件夹下;
b 在客户机控制程序模块中进行摄像机设置
根据步骤a所设置的通道参数,系统在客户机端根据模式的选择按照透视投影的原理自动或手动来确定摄像机参数;用户还可以通过服务器端的输入子模块输入控制指令,系统将接收到的控制指令通过网络发送给客户机端,客户机端控制程序模块中的控制程序根据这些指令信息更新其相应的摄像机的参数;然后,控制程序模块将设置完成后的参数信息传输给客户机中的每一个客户机端应用程序模块;
c 在客户机控制程序模块中创建共享内存区
客户机端控制程序模块中的控制程序先将虚拟三维场景数据读入到客户机的内存中,创建并映射共享内存区域,再将虚拟三维场景数据写入共享内存区域中,接下来通知客户机中的各个应用程序模块来读取这些虚拟三维场景数据;
d 客户机各应用程序模块形成OpenGL绘制流
各个客户机端应用程序模块先根据经步骤a设置的通道及经步骤b设置的摄像机参数来设置各自对应的服务器及摄像机,再根据摄像机的参数从经步骤c创建的共享内存区域中读取虚拟三维场景数据,然后通过视锥体裁剪、背面裁剪及遮挡裁剪等方法确定虚拟三维场景的可见部分,剔除不可见部分,最后针对可见部分调用修改的OpenGL绘制指令,形成OpenGL绘制流,随后进行步骤e;
e OpenGL绘制流的截取与发送
与一般的OpenGL库不同,这里采用的是现有的经过修改的OpenGL库,经修改的OpenGL库接收到客户机端应用程序模块发出的OpenGL绘制指令后不是立即绘制显示,而是截取这些指令,打包并通过网络发送至由用户通过通道参数设置指定的服务器;
f 服务器进行绘制准备
各个服务器首先通过各自服务器端应用程序模块中的通信子模块接收经步骤e发送过来的对应的应用程序的OpenGL绘制流包,然后通过控制子模块对OpenGL绘制流包进行解压,再将解压后得到的数据送入显示子模块,随后进行步骤g;
g 客户机控制程序模块的控制程序向所有的服务器发送同步信号,随后进行步骤h;
h 绘制显示
各个服务器接受客户机端控制程序模块的同步控制,随后开始进行图像绘制;
该方法中所述修改的OpenGL库要能够满足OpenGL命令在网络上运行,能够降低网络带宽需求和消除网络带宽造成的瓶颈。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810117814.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:复杂形状陶瓷件的叠层制备法
- 下一篇:水煤浆添加剂的合成及使用方法





