【摘要】 本发明属于计算机图形虚拟仿真应用领域,涉及一种多通道的分布式绘制 系统与方法。本发明采用客户机/服务器结构,系统包括一台客户机、一台或多 台服务器以及将它们连接起来的网络。客户机和每台服务器都安装有支持 OpenGL库的图形适配器,客户机和每台服务器各自运行相应的软件,每台服务 器连接显示器或投影等显示设备。在客户机采用多进程共享场景数据,通过提 取并打包各进程的OpenGL绘制命令并分别发送给对应的服务器的方法实现了分 布式节点的拼接显示和多视点显示,扩大了系统的适应性和灵活性。。微信 【专利类型】发明授权 【申请人】北京理工大学 【申请人类型】学校 【申请人地址】100081北京市海淀区中关村南大街5号 【申请人地区】中国 【申请人城市】北京市 【申请人区县】海淀区 【申请号】CN200810117814.8 【申请日】2008-08-04 【申请年份】2008 【公开公告号】CN100583141C 【公开公告日】2010-01-20 【公开公告年份】2010 【授权公告号】CN100583141C 【授权公告日】2010-01-20 【授权公告年份】2010.0 【发明人】王全玉; 刘昕 【主权项内容】1、一种多通道的分布式绘制系统,包括一台客户机、一台或多台服务器、 一台或多台显示设备以及将它们连接起来的网络,其特征在于: 客户机中包含两类模块:一个客户机端控制程序模块和若干个客户机端应 用程序模块,其中,客户机端控制程序模块中包含控制程序、共享内存区域和 虚拟三维场景数据;客户机端的每个应用程序模块中都包含一个修改的OpenGL 库和一个应用程序,该应用程序能够调用这个修改的OpenGL库; 每个服务器中都包含一个服务器端应用程序模块,每个服务器端应用程序 模块又包含四个子模块:通讯子模块、控制子模块、输入子模块和显示子模块; 所述修改的OpenGL库要能够满足OpenGL命令在网络上运行,能够降低 网络带宽需求和消除网络带宽造成的瓶颈; 系统各部分关系如下: 用户从客户机端输入通道设置指令,系统将该指令传送给客户机端控制程 序模块,客户机控制程序模块中的控制程序负责接收该指令,根据该指令完成 通道的设置;客户机控制程序模块将设置完成后的信息传输给客户机中的每一 个客户机端应用程序模块; 各个客户机端应用程序模块接收从客户机控制程序模块传输过来的通道参 数来设置各个摄像机的参数;用户还可以通过服务器端的输入子模块输入控制 指令,系统将接收到的控制指令通过网络发送给客户机端,客户机端控制程序 模块中的控制程序根据这些指令信息更新其相应的摄像机的参数; 客户机端控制程序将虚拟三维场景数据读入到客户机的缓存中,然后创建 并映射共享内存区域,再将虚拟三维场景数据写入共享内存区域中,接下来通 知客户机中的各个应用程序模块来读取这些虚拟三维场景数据; 客户机端控制程序模块中的控制程序将各摄像机的参数传送给相应的应用 程序,应用程序从共享内存区域中拣选出视域范围内的虚拟三维场景数据,然 后通过视锥体裁剪、背面裁剪及遮挡裁剪等方法确定虚拟三维场景的可见部分, 剔除不可见部分,最后针对可见部分从修改过的OpenGL库中调用相应的 OpenGL绘制指令;每个客户机端应用程序模块中修改的OpenGL库接收到各自 所属客户机端应用程序发出的OpenGL绘制指令后,截取这些指令,将其打包 并通过网络发送至由用户通过通道参数设置指定的服务器; 每个服务器通过各自服务器端应用程序模块中的通信子模块接收客户机发 送过来的对应的应用程序的OpenGL流包,再将其发送给控制子模块,控制子 模块对OpenGL流包进行解压,再将解压后得到的数据送入显示子模块; 客户机端控制程序模块负责实现所有的服务器绘制的同步,由客户机端控 制程序模块中的控制程序将同步指令信息通过网络发送给每个服务器中的通讯 子模块,通信子模块接收客户机发送过来同步指令信息,再将其发送给控制子 模块,各个控制子模块根据同步指令完成同步操作,等待客户机端控制程序模 块中的控制程序发出绘制命令,当各个服务器接收到客户机端控制程序模块中 的控制程序发出的绘制命令后,开始进行图像绘制并显示。 微信 【当前权利人】北京理工大学 【当前专利权人地址】北京市海淀区中关村南大街5号 【统一社会信用代码】12100000400009127B 【家族被引证次数】18