CN100583141C - 一种多通道的分布式绘制系统与方法 - Google Patents

一种多通道的分布式绘制系统与方法 Download PDF

Info

Publication number
CN100583141C
CN100583141C CN200810117814A CN200810117814A CN100583141C CN 100583141 C CN100583141 C CN 100583141C CN 200810117814 A CN200810117814 A CN 200810117814A CN 200810117814 A CN200810117814 A CN 200810117814A CN 100583141 C CN100583141 C CN 100583141C
Authority
CN
China
Prior art keywords
client
control program
server
program module
opengl
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN200810117814A
Other languages
English (en)
Other versions
CN101334891A (zh
Inventor
王全玉
刘昕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN200810117814A priority Critical patent/CN100583141C/zh
Publication of CN101334891A publication Critical patent/CN101334891A/zh
Application granted granted Critical
Publication of CN100583141C publication Critical patent/CN100583141C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

本发明属于计算机图形虚拟仿真应用领域,涉及一种多通道的分布式绘制系统与方法。本发明采用客户机/服务器结构,系统包括一台客户机、一台或多台服务器以及将它们连接起来的网络。客户机和每台服务器都安装有支持OpenGL库的图形适配器,客户机和每台服务器各自运行相应的软件,每台服务器连接显示器或投影等显示设备。在客户机采用多进程共享场景数据,通过提取并打包各进程的OpenGL绘制命令并分别发送给对应的服务器的方法实现了分布式节点的拼接显示和多视点显示,扩大了系统的适应性和灵活性。

Description

一种多通道的分布式绘制系统与方法
技术领域
本发明涉及计算机图形虚拟仿真应用领域,尤其涉及一种多通道的分布式绘制系统与方法。
背景技术
基于三维场景实时渲染的多通道系统能够提供一种沉浸式虚拟现实与仿真显示环境。基于三维场景实时渲染的多通道系统是由一组单通道的显示系统拼接或组合而成的多通道超宽比例的特殊显示系统。根据需要显示的场景以及所涉及的领域和应用的不同,通常将多通道系统的多投影面间的弧度划分为120、135、180、240、270、360度不等。由于多通道系统的屏幕显示面积巨大,通常将多通道系统用于一些大型的虚拟仿真应用领域,近年来开始向展览展示、工业设计、教育培训、会议中心等专业领域发展。
按照三维场景实时渲染多通道系统的应用,可以将其分为两个方面:一方面是使用单通道小幅场景,产生大尺寸、高分辨率的视觉效果;另一方面用于同时从不同角度的多个视点观测整个场景。这种特殊的多通道视觉系统不仅具有单通道显示系统所不具备的极强的视觉冲击力和震撼力,而且可以让用户同时获得视景的全方位信息,将信息传递能力提高到一个崭新的水平。它的应用领域相当广泛,同时造价也很昂贵。基于PC集群的三维并行绘制技术让以上两种应用的低成本实现成为可能,它可以通过多个联网PC并行绘制三维场景,并从多个通道输出场景,实现了三维场景多通道实时渲染。
此外,随着应用领域的不断拓宽,三维场景的复杂程度越来越高,三维绘制的实时性,流畅性要求也越来越高,场景优化就逐渐成为系统性能提高的手段和人们研究的热点。只有采用得当、高效的优化方法才能让三维场景的绘制更迅速,画面更流畅,才有可能将大型的复杂的三维场景应用到多通道实时渲染上。场景优化对系统性能的影响体现在:绘制帧率、系统的扩展性以及系统应用的广泛性上。
基于PC集群的三维并行绘制系统类型有很多,不同类型的并行图形绘制系统的运行机制和功能侧重点各不相同,在不同的应用环境下系统性能差异很大,并具有明显的个体特征。
目前,较好地实现了大尺寸、高分辨率三维场景显示的并行绘制系统有WireGL、AnyGL等。它们的系统架构为:客户机/服务器(Client/Server),拥有一个客户机和多个服务器。客户机安装有应用程序模块(包括经修改的OpenGL库和应用程序),不负责绘制和显示。修改的OpenGL库截获OpenGL流并打包,然后发送到根据计算分配的服务器上。服务器只负责接收OpenGL流包并进行绘制和显示。这种方法的局限性在于摄像机的拍摄角度始终不能改变,不能实现场景的多角度、全方位观测。
另一种可以同时实现多角度观测三维场景的并行绘制系统为Display Wall,它采用保留模式,系统架构为:主机/从机(Master/Slave),拥有一个Master和多个Slave。Master和Slave都部署有几乎相同的应用程序模块,Master需要设置通道参数并将此参数的相关信息和人机交互中场景的变化信息发送至多个Slave;Slave根据接收到的信息,改变摄像机位置以及虚拟运动对象的位置及属性。Master和Slave通过同步执行应用程序绘制显示场景实现并行绘制。这种方法的局限性在于绘制数据来自本地,导致应用程序、数据信息的更新及移植等难以实现。
发明内容
本发明的目的是针对现有技术的局限性,采用客户机/服务器架构的系统设计,其中,客户机采用多进程共享虚拟三维场景数据方式,通过提取并打包各进程的OpenGL绘制命令并分别发送给对应的服务器的方法实现分布式并行绘制。
为了实现上述目的,本发明提出一种多通道的分布式绘制系统。该系统包括一台客户机、一台或多台服务器、一台或多台显示设备以及将它们连接起来的网络。客户机和每台服务器都安装有支持OpenGL库的图形适配器,客户机和每台服务器各自运行相应的软件,每台服务器连接显示器或投影等显示设备。
客户机中包含两类模块:一个客户机端控制程序模块和若干个客户机端应用程序模块。其中,客户机端控制程序模块中包含控制程序、共享内存区域和虚拟三维场景数据;客户机端的每个应用程序模块中都包含一个修改的OpenGL库和一个应用程序,该应用程序能够调用这个修改的OpenGL库。
每个服务器中都包含一个服务器端应用程序模块,每个服务器端应用程序模块又包含四个子模块:通讯子模块、控制子模块、输入子模块和显示子模块。系统各部分关系如下:
用户从客户机端输入通道设置指令,系统将该指令传送给客户机端控制程序模块。客户机控制程序模块中的控制程序负责接收该指令,根据该指令完成通道的设置;客户机控制程序模块将设置完成后的信息传输给客户机中的每一个客户机端应用程序模块。
客户机端控制程序将虚拟三维场景数据读入到客户机的缓存中,然后创建并映射共享内存区域,再将虚拟三维场景数据写入共享内存区域中,接下来通知客户机中的各个应用程序模块来读取这些虚拟三维场景数据。
各个客户机端应用程序模块先接收从客户机控制程序模块传输过来的通道参数来设置各个摄像机的参数。此外,用户也可以通过服务器端的输入子模块输入控制指令,系统将接收到的控制指令通过网络发送给客户机端,客户机端控制程序模块中的控制程序根据这些指令信息更新其相应的摄像机的参数。
客户机端控制程序模块中的控制程序将各摄像机的参数传送给相应的应用程序,应用程序从共享内存区域中拣选出视域范围内的虚拟三维场景数据,然后通过视锥体裁剪、背面裁剪及遮挡裁剪等方法确定虚拟三维场景的可见部分,剔除不可见部分,最后针对可见部分从修改过的OpenGL库中调用相应的OpenGL绘制指令。每个客户机端应用程序模块中修改的OpenGL库接收到各自所属客户机端应用程序发出的OpenGL绘制指令后,截取这些指令,将其打包并通过网络发送至由用户通过通道参数设置指定的服务器。
每个服务器通过各自服务器端应用程序模块中的通信子模块接收客户机发送过来的对应的应用程序的OpenGL流包,再将其发送给控制子模块,控制子模块对OpenGL流包进行解压,再将解压后得到的数据送入显示子模块。
客户机端控制程序模块负责实现所有的服务器绘制的同步。由客户机端控制程序模块中的控制程序将同步指令信息通过网络发送给每个服务器中的通讯子模块。通信子模块接收客户机发送过来同步指令信息,再将其发送给控制子模块。各个控制子模块根据同步指令完成同步操作,等待客户机端控制程序模块中的控制程序发出绘制命令。当各个服务器接收到客户机端控制程序模块中的控制程序发出的绘制命令后,开始进行图像绘制并显示。
系统实现方法的具体步骤包括:
a在客户机中进行通道设置
将客户机和服务器联成局域网,并在同一个网段内为每台计算机设置不同的IP地址。用户在客户机中通过控制程序模块输入欲设定的通道数量,并选择拼接模式或多视点模式。系统根据通道的数量将应用程序和修改的OpenGL库复制到和通道一一对应的文件夹下。然后,在客户机中设置各通道对应的服务器IP地址,并以配置文件的形式保存在各通道对应的文件夹下。
b在客户机控制程序模块中进行摄像机设置
根据步骤a所设置的通道参数,系统在客户机端根据模式的选择按照透视投影的原理自动或手动来确定摄像机参数。然后,控制程序模块将设置完成后的参数信息传输给客户机中的每一个客户机端应用程序模块。
用户也可以根据步骤a所设置的通道参数,在服务器端手动设置或修改摄像机的参数。具体步骤如下:用户通过人机交互设备输入控制指令,系统将接收到的控制指令通过网络发送给客户机端,客户机端控制程序模块中的控制程序根据这些指令信息更新其相应的摄像机的参数,并进一步将摄像机的参数传送给相应的应用程序。
c在客户机控制程序模块中创建共享内存区
客户机端控制程序模块中的控制程序先将虚拟三维场景数据读入到客户机的内存中,创建并映射共享内存区域,再将虚拟三维场景数据写入共享内存区域中,接下来通知客户机中的各个应用程序模块来读取这些虚拟三维场景数据。
d客户机各应用程序模块形成OpenGL绘制流
各个客户机端应用程序模块先根据经步骤a设置的通道及经步骤b设置的摄像机参数来设置各自对应的服务器及摄像机,再根据摄像机的参数从经步骤c创建的共享内存区域中读取虚拟三维场景数据,然后通过视锥体裁剪、背面裁剪及遮挡裁剪等方法确定虚拟三维场景的可见部分,剔除不可见部分,最后针对可见部分调用修改的OpenGL绘制指令,形成OpenGL绘制流。随后进行步骤e。
e OpenGL绘制流的截取与发送
与一般的OpenGL库不同,这里采用的是现有的经过修改的OpenGL库。经修改的OpenGL库接收到客户机端应用程序模块发出的OpenGL绘制指令后不是立即绘制显示,而是截取这些指令,打包并通过网络发送至由用户通过通道参数设置指定的服务器。
f服务器进行绘制准备
各个服务器首先通过各自服务器端应用程序模块中的通信子模块接收经步骤e发送过来的对应的应用程序的OpenGL绘制流包,然后通过控制子模块对OpenGL绘制流包进行解压,再将解压后得到的数据送入显示子模块。随后进行步骤g。
g客户机控制程序模块的控制程序向所有的服务器发送同步信号
客户机端控制程序模块负责实现所有的服务器绘制的同步。因为由客户机中的各应用程序模块发送过来的OpenGL绘制流包经过网络传输后很难实现同步到达,这种传输的不确定性会造成多个服务器绘制出的场景不一致。因此,系统采用由客户机端控制程序模块的控制程序向所有的服务器发送同步指令的方式来达到绘制图像的同步。随后进行步骤h。
h绘制显示
各个服务器接受客户机端控制程序模块的同步控制,随后开始进行图像绘制。
与现有的技术相比,本发明的优点在于:
A.能够实现多种通道模式,对虚拟三维场景既可以实现超高分辨率拼接显示,又可以实现整个场景的多视角绘制。
B.能够实现并行绘制,提高了绘制效率,扩大了虚拟三维场景的适应性。
C.应用程序集中在客户机上,系统部署方便。
D.虚拟三维场景数据集中存储在客户端,系统数据信息更新比较容易。
附图说明
图1为系统组成图;
图2为本发明的系统组织结构示意图;
图3为本发明实施例1的四个服务器拼接显示摄像机视锥的排列示意图;
图4为本发明实施例2的四个服务器多视点绘制摄像机视锥的排列示意图;
其中1-客户机、2-服务器、3-网络、4-客户机端控制程序模块,5-客户机端应用程序模块、6-共享内存区域、7-控制程序、8-虚拟三维场景数据、9-应用程序、10-修改的OpenGL动态链接库、11-服务器端应用程序模块、12-通讯子模块、13-控制子模块、14-输入子模块、15-显示子模块。
具体实施方式
下面结合附图和实施例对本发明进行详细说明。
本发明以实现4画面拼接模式显示和实现4画面多视点模式显示为例。
如图1所示,为了实现4画面拼接模式显示或4画面多视点模式显示,系统需要部署1台客户机(1)和4台服务器(2),这5台计算机连接在同一个局域网(3)内。该局域网的通讯方式采用TCP/IP协议,在同一个网段内为每台计算机设置不同的IP地址。在客户机端部署两类模块:客户机端控制程序模块(4)和客户机端应用程序模块(5)。
客户机端控制程序模块(4)包括:共享内存区域(6)、控制程序(7)和虚拟三维场景数据(8)。
客户机端控制程序模块通过将虚拟三维场景数据放入共享内存区域的方式将客户机端的虚拟三维场景数据共享给多个客户机端应用程序访问;客户机端控制程序模块还负责根据用户的指令来完成通道的设置,改变摄像机参数;客户机端控制程序模块还负责各个服务器节点绘制的同步。
客户机存放虚拟三维场景数据(8)供客户机端控制程序(7)打开,系统根据通道的数量将应用程序和修改的OpenGL库复制到和通道一一对应的文件夹下,然后,在客户机中设置各通道对应的服务器IP地址,并以配置文件的形式保存在各通道对应的文件夹下。客户机应用程序(9)存放在不同的路径下以便读取不同的配置文件,进而实现客户机应用程序(9)与服务器(2)的一一对应。客户机与服务器间的网络进程通信,主要是OpenGL指令流的发送与接收。
每个服务器部署一个服务器应用程序模块(11),该应用程序模块(11)分成4个子模块:通讯子模块(12)、控制子模块(13)、输入子模块(14)和显示子模块(15)。通讯子模块(12)负责接收客户机应用程序模块(5)从修改的OpenGL库(10)中调用的OpenGL指令以及客户机端控制程序(7)发送的同步指令,并将用户通过输入子模块(14)输入的控制命令发送给客户机对应的应用程序(9)。
实施例1
配置好客户机和服务器的网络环境,客户机的IP地址设置为10.0.0.1,四个服务器的IP地址分别为10.0.0.2~10.0.0.5。在客户机中通过控制程序模块输入通道数量为4,并选择拼接模式。在客户机中建立4个文件夹分别为:1、2、3、4,并将客户机应用程序和修改的OpenGL库分别复制到文件夹1、2、3、4中。上述修改的OpenGL库采用的是WireGL库,WireGL对OpenGL命令进行了扩展,允许OpenGL命令在网络上运行,使用caching策略和严格的优化来降低网络带宽需求和消除网络带宽造成的瓶颈。在4个文件夹中建立4个文本配置文件,文件夹1~4中的配置文件记录IP地址分别为10.0.0.2~10.0.0.5。启动各个服务器的应用程序,然后分别启动每个文件夹下的应用程序。
4个摄像机的布置如图3所示,为了实现无缝拼接,视锥采用透视斜投影矩阵,视锥分别设置为OABDE、OBCEF、ODEGH、OEFHI,其中A、B、C、D、E、F、G、H和I在同一个平面上,4个视锥的远平面在这个平面上;A′、B′、C′、D′、E′、F′、G′、H′和I′也在同一个平面上,4个视锥的近平面在这个平面上。控制程序模块将设置完成后的参数信息传输给客户机中的每一个客户机端应用程序模块。
客户机端控制程序模块中的控制程序先将虚拟三维场景数据scene.3ds读入到客户机的内存中,创建并映射100M的共享内存区域,再将scene.3ds写入共享内存区域中,接下来通知客户机中的各个应用程序模块来读取共享内存中的scene.3ds数据。
客户机端的4个应用程序模块1~4先通过Socket和服务器10.0.0.2~10.0.0.5建立链接。然后,分别按视锥OABDE、OBCEF、ODEGH、OEFHI读取共享内存中的scene.3ds数据,然后通过视锥体裁剪、背面裁剪及遮挡裁剪方法确定虚拟三维场景的可见部分,剔除不可见部分,最后针对可见部分调用WireGL绘制指令,WireGL库接收到客户机端应用程序模块发出的OpenGL绘制指令后不是立即绘制显示,而是截取这些指令并打包,应用程序模块1~4分别将绘制指令包发送到服务器10.0.0.2~10.0.0.5。
服务器10.0.0.2~10.0.0.5通过各自应用程序模块中的通信子模块接收发送过来的应用程序1~4的OpenGL绘制流包,然后通过控制子模块对OpenGL绘制流包进行解压,再将解压后得到的数据送入显示子模块。
客户机端控制程序模块向服务器10.0.0.2~10.0.0.5发送同步信号BeginRender。
服务器10.0.0.2~10.0.0.5接收到同步控制信号BeginRender,开始图像绘制。
实施例2
配置好客户机和服务器的网络环境,客户机的IP地址设置为10.0.0.1,四个服务器的IP地址分别为10.0.0.2~10.0.0.5。在客户机中通过控制程序模块输入通道数量为4,并选择多视点模式。在客户机中建立4个文件夹分别为:1、2、3、4,并将客户机应用程序和修改的OpenGL库分别复制到文件夹1、2、3、4中。上述修改的OpenGL库采用的是WireGL库,WireGL对OpenGL命令进行了扩展,允许OpenGL命令在网络上运行,使用caching策略和严格的优化来降低网络带宽需求和消除网络带宽造成的瓶颈。在4个文件夹中建立4个文本配置文件,文件夹1~4中的配置文件记录IP地址分别为10.0.0.2~10.0.0.5。启动各个服务器的应用程序,然后分别启动每个文件夹下的应用程序。
系统进行多视点模式显示时4个摄像机的布置如图4所示,4个视锥分别设置为OABDE、OBCEF、ODEGH、OEFHI,ABDE、BCEF、DEGH、EFHI分别为视锥的远截面,A′B′D′E′、B′C′E′F′、D′E′G′H′、E′F′H′I′分别为视锥的近截面,每个摄像机的参数就根据观察点O和各个近截面的4个点及远截面的距离来进行设定。
客户机端控制程序模块中的控制程序先将虚拟三维场景数据scene.3ds读入到客户机的内存中,创建并映射100M的共享内存区域,再将scene.3ds写入共享内存区域中,接下来通知客户机中的各个应用程序模块来读取共享内存中的scene.3ds数据。
客户机端的4个应用程序模块1~4先通过Socket和服务器10.0.0.2~10.0.0.5建立链接。然后,分别按视锥OABDE、OBCEF、ODEGH、OEFHI读取共享内存中的scene.3ds数据,然后通过视锥体裁剪、背面裁剪及遮挡裁剪方法确定虚拟三维场景的可见部分,剔除不可见部分,最后针对可见部分调用WireGL绘制指令,WireGL库接收到客户机端应用程序模块发出的OpenGL绘制指令后不是立即绘制显示,而是被WireGL库的OpenGL32.d11拦截,并将被拦截的指令打包,应用程序模块1~4分别将绘制指令包发送到服务器10.0.0.2~10.0.0.5。
服务器10.0.0.2~10.0.0.5通过各自应用程序模块中的通信子模块接收发送过来的应用程序1~4的OpenGL绘制流包,然后通过控制子模块对OpenGL绘制流包进行解压,再将解压后得到的数据送入显示子模块。
客户机端控制程序模块向服务器10.0.0.2~10.0.0.5发送同步信号BeginRender。
服务器10.0.0.2~10.0.0.5接收到同步控制信号BeginRender,开始图像绘制。

Claims (2)

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命令在网络上运行,能够降低网络带宽需求和消除网络带宽造成的瓶颈。
CN200810117814A 2008-08-04 2008-08-04 一种多通道的分布式绘制系统与方法 Expired - Fee Related CN100583141C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200810117814A CN100583141C (zh) 2008-08-04 2008-08-04 一种多通道的分布式绘制系统与方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200810117814A CN100583141C (zh) 2008-08-04 2008-08-04 一种多通道的分布式绘制系统与方法

Publications (2)

Publication Number Publication Date
CN101334891A CN101334891A (zh) 2008-12-31
CN100583141C true CN100583141C (zh) 2010-01-20

Family

ID=40197474

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810117814A Expired - Fee Related CN100583141C (zh) 2008-08-04 2008-08-04 一种多通道的分布式绘制系统与方法

Country Status (1)

Country Link
CN (1) CN100583141C (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101561935B (zh) * 2009-05-22 2012-09-05 南京师范大学 面向GoCAD软件的植入式三维立体显示方法
CN102044089A (zh) * 2010-09-20 2011-05-04 董福田 一种三维模型的自适应化简、渐进传输和快速绘制的方法
CN102651142B (zh) * 2012-04-16 2016-03-16 深圳超多维光电子有限公司 图像渲染方法和装置
EP3995952A1 (en) * 2013-04-19 2022-05-11 Huawei Technologies Co., Ltd. Method for displaying a 3d scene graph on a screen
CN103914868B (zh) * 2013-12-20 2017-02-22 柳州腾龙煤电科技股份有限公司 虚拟现实下的海量模型数据动态调度与实时异步加载方法
CN104504650A (zh) * 2014-12-31 2015-04-08 深圳市航盛电子股份有限公司 基于OpenGL的多路视频拼接方法及系统
CN104751510A (zh) * 2015-04-27 2015-07-01 国家电网公司 一种基于多机协同的三维场景渲染方法
CN108093245B (zh) * 2017-12-20 2020-05-05 浙江科澜信息技术有限公司 一种多屏融合方法、系统、装置和计算机可读存储介质
CN110870976B (zh) * 2018-09-03 2023-04-07 网易(杭州)网络有限公司 一种数据处理的方法及装置
CN110471772B (zh) * 2019-08-19 2022-03-15 上海云绅智能科技有限公司 一种分布式系统及其渲染方法、客户机
CN111158299A (zh) * 2020-03-20 2020-05-15 艾德克斯电子(南京)有限公司 可多通道控制仪器的软件系统及其降低计算机消耗的方法
CN114463476B (zh) * 2022-04-11 2022-06-28 中国空气动力研究与发展中心计算空气动力研究所 可视化并行绘制方法、装置、系统及存储介质

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
三维复杂场景实时绘制技术. 陈雷霆.电子科技大学. 2007
三维复杂场景实时绘制技术. 陈雷霆.电子科技大学. 2007 *
地形场景的并行绘制及多通道图形输出. 徐永志等.计算机工程,第31卷第8期. 2005
地形场景的并行绘制及多通道图形输出. 徐永志等.计算机工程,第31卷第8期. 2005 *
基于OpenGL的三维地形场景绘制及并行方法探讨. 杨菲等.现代计算机,第221期. 2005
基于OpenGL的三维地形场景绘制及并行方法探讨. 杨菲等.现代计算机,第221期. 2005 *
应用多线程并行机制实现大规模三维场景绘制. 迟忠先等.小型微型计算机系统,第25卷第8期. 2004
应用多线程并行机制实现大规模三维场景绘制. 迟忠先等.小型微型计算机系统,第25卷第8期. 2004 *

Also Published As

Publication number Publication date
CN101334891A (zh) 2008-12-31

Similar Documents

Publication Publication Date Title
CN100583141C (zh) 一种多通道的分布式绘制系统与方法
US6803912B1 (en) Real time three-dimensional multiple display imaging system
CN101442653B (zh) 多通道视频播放和大屏幕显示方法
CN101615108B (zh) 多屏拼接装置及其多屏拼接方法
CN107463248A (zh) 一种基于动态捕捉与全息投影的远程交互方法
CN104216671B (zh) 一种在多套拼接显示屏上实现同步协同显示的方法
CN103324453B (zh) 显示器
CN110225224B (zh) 虚拟形象的导播方法、装置及系统
CN102495712A (zh) 一种基于多个显示终端的地图拼接显示方法
CN103106679A (zh) 分布式3d多通道渲染方法、系统和平台
CN105739934A (zh) 多屏拼接显示处理方法和设备
CN101189643A (zh) 3d图像生成和显示系统
CN103049926A (zh) 分布式三维渲染系统
CN106375819A (zh) 用于外围系统和主机设备之间媒体文件传输和实时显示渲染的基于事件的高效同步的系统与方法
Bolshakov et al. Building a system architecture for displaying data in a complex of output devices
WO2024087883A1 (zh) 视频画面渲染方法、装置、设备和介质
CN101383951B (zh) 画面分割装置
JP2001236521A (ja) 画像分割方式による仮想現実システム
CN106796735A (zh) 用于将3d图像多屏幕实时同步的系统
JP3860034B2 (ja) 画像処理装置及び画像処理方法
Leigh et al. An experimental OptIPuter architecture for data-Intensive collaborative visualization
CN112911260B (zh) 一种多媒体展厅沙盘投影展示系统
CN113126770A (zh) 一种基于增强现实的交互式三维布景系统
KR101803475B1 (ko) 초다시점 콘텐츠 생성 시스템
JP2908799B2 (ja) 立体視用画像作成方法および装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100120

Termination date: 20110804