发明内容
本发明实施例提供了一种三维图形图像多屏同步播放方法、设备及系统,用以在处理多设备共同处理大型三维场景时,多设备可以精确的达到同步输出的效果。
本发明实施例提供了一种渲染同步控制方法,该方法包括:
由同步设备生成用于指示各渲染设备之间渲染同步的同步指令,每个同步指令包括用于指示渲染设备帧号同步的同步帧号;
由所述同步设备向各渲染设备广播所述同步指令;
其中,每次广播同步指令前,所述同步设备需先接收到所有所述渲染设备在渲染到与上一个同步指令中包含的同步帧号相等的帧号后返回的表征上一个同步指令完成的响应消息。
在本发明上述实施例中,从同步设备的角度介绍了一种方法,通过本发明方法可以实现各渲染设备的渲染同步,各渲染设备等待同步设备的同步指令,渲染设备只有在接收到同步指令后才进行渲染,而由于每个同步指令均包含有同步帧号,那么渲染设备在渲染累加到同步帧号时,表示当前同步指令完成,返回响应消息,等待下一个同步指令继续进行渲染,在本发明上述方法中,其实是通过同步设备发布的指令,将原有的渲染设备不间断的渲染进行分成阶段性的同步过程,在每一个同步指令结束的时候等待接收下一个同步指令,等于是一次同步的实现,尤其在三维场景帧率较高渲染时,这种间隔一段帧数同步的方法既可以保证整个三维渲染的整体同步,又不会使设备的处理压力过大。
在上述实施例的基础上,所述同步设备按照预设的帧数间隔设置同步指令中的同步帧号,每个当前发送的同步指令中的同步帧号等于前一个发送的同步指令中的同步帧号与帧数间隔之和。
本发明实施例中,同步设备设置了帧数间隔的概念,目的就是用于固定同步指令之间的间隔,帧数间隔的设置长度也就决定了多长时间同步一次,该帧数间隔可以根据同步的精确度设置,需求的同步度越高,帧数间隔设置越小,同步的次数越多,对服务器的压力也会随之增大。
在上述实施例的基础上,所述同步设备在广播首个同步指令后,启动第二计数单元,所述第二计数单元按照渲染频率进行累加计数;
在所述第二计数单元的数值等于当前广播的同步指令中包括的同步帧号时,所述第二计数单元完成工作,等待下一个同步指令;
等待全部所述渲染设备返回了表征此同步指令完成的响应消息后,再广播下个同步指令,所述第二计数单元继续工作。
在本发明实施例中,设置了第二计数单元用于按照渲染设备的渲染频率进行计数,这其实是为同步设备下发同步指令又设置了一个限制条件,目的是为了让同步设备下发同步指令的时刻更加精准,让同步设备不仅在接收到了所有渲染设备返回了响应消息的前提下下发下一个同步指令,而且只有在计数器的数字与当前同步指令中的同步帧号一致时,才下发同步指令,设置的双重条件保证了同步设备下发的指令精确。
在上述实施例的基础上,该方法还包括:
在接收到所有所述渲染设备发送的表征加载三维模板完成的响应消息时,向各渲染设备广播播放动画指令。
在本发明上述实施例中,同步设备还可以在各渲染模块均完成三维模板加载的情况下,下发播放动画指令,由于通过本发明上述各实施例达到了渲染设备之间的同步渲染效果,在此前提下,让各渲染设备加载三维模板进行渲染显然也是同步的。
本发明实施例还提供了一种渲染同步方法,该方法包括:
渲染设备每次在接收到同步设备广播的同步指令时,从与上一个同步指令中包含的同步帧号帧号相等处继续进行渲染,并进行帧号累加;
在帧号累加到与当前同步指令中包含的同步帧号帧号相等时向同步设备返回对应的响应消息。
在本发明实施例中,渲染设备根据同步设备的指示进行实际渲染过程的进行,每次只渲染到与当前同步指令中的同步帧号相等的帧号处,即返回响应消息,等待下一个同步指令的下发。本发明实施例相当于将渲染设备的整个渲染过程分阶段进行,在渲染设备为多个的情况下,每个阶段的结束时相当于实现了一次同步的进行。
在上述实施例的基础上,渲染设备每次在接收到同步设备广播的同步指令时,从与上一个同步指令中包含的同步帧号帧号相等处继续进行渲染,并进行帧号累加,具体包括:
接收到同步指令;
按照预设的渲染频率从与上一个同步指令中包含的同步帧号帧号相等处继续进行渲染,且每次渲染完成后进行实际帧号的相应累加。
在本发明上述实施例中,设置了渲染频率,渲染设备均按照此频率进行渲染,所有的渲染设备均按照一致的频率进行渲染可达到同步效果。
在上述实施例的基础上,在帧号累加到与当前同步指令中包含的同步帧号帧号相等时向同步设备返回对应的响应消息,具体包括:
在所述实际帧号与当前同步指令中包含的同步帧号帧号相等时向同步设备返回对应的响应消息。
在上述实施例中,表征渲染设备实际渲染帧号的实际帧号与同步帧号相等时,返回对应的响应消息,等待下个同步指令的到达。
在本发明上述实施例的基础上,更佳地,采用第一计数单元对渲染过程进行计数,在每渲染完一帧后所述第一计数单元累加计数,在所述第一计数单元的数值等于当前接收到的同步指令中包括的同步帧号时,向同步设备返回响应消息。
在本发明实施例中,设置了计数单元对渲染设备的实际帧号进行累加,上述第一计数单元在渲染完一帧画面后都会对帧号进行累加计数,用于辅助渲染设备计算当前渲染到的帧数,在所述第一计数单元的数值等于当前接收到的同步指令中包括的同步帧号时,表征已经完成当前同步任务,向同步设备返回响应消息。
本发明实施例还提供了一种三维模板动画播放方法,该方法包括:
在接收到表征所有渲染设备加载三维模板完成的上报消息后,向各渲染设备广播播放动画指令,所述播放动画指令包括用于保证各渲染设备同步播放的延迟帧号,所述延迟帧为所述渲染设备的当前实际帧号与预设的延迟帧数之和;
当渲染设备接收到播放动画指令,且在自身的实际帧号与此延迟帧相等时,开始进行三维模板动画的播放。
在本发明上述实施例中,提供了一种基于上述渲染同步方法的输出方法,由于在渲染同步方法中证明了各个渲染设备是能够实现帧渲染同步的,所以在渲染设备加载了三维模板的情况下,可实现模板动画播放的同步效果,而且设置了延迟帧,这样就避免了各个渲染设备可能由于接收的播放动画指令时间不同导致的输出不同步问题,播放延迟帧相当于设置给各个渲染设备的接收缓冲时间,在延迟帧范围内保证所有的渲染设备均接收到了播放动画指令,再进行模板动画播放输出,这样保证了各渲染设备的渲染首帧输出同步,又由于渲染同步方法保证了渲染过程中的同步,所以本发明实施例的在进行三维模板渲染并输出的整体过程同步。
本发明实施例提供了一种同步设备,该同步设备包括:
生成模块,用于生成指示各渲染设备之间渲染同步的同步指令,每个同步指令包括用于指示渲染设备帧号同步的同步帧号;
发送模块,用于向各渲染设备广播所述同步指令,其中,每次广播同步指令前,所述同步设备需先接收到所有所述渲染设备在渲染到与上一个同步指令中包含的同步帧号相等的帧号后返回的表征上一个同步指令完成的响应消息;
接收模块,用于接收所述响应消息。
本发明实施例提供了一种渲染设备,该渲染设备包括:
接收模块,用于渲染设备每次在接收到同步设备广播的同步指令时,从与上一个同步指令中包含的同步帧号帧号相等处继续进行渲染,并进行帧号累加;
发送模块,用于在帧号累加到与当前同步指令中包含的同步帧号帧号相等时向同步设备返回对应的响应消息。
本发明实施例还提供了一种渲染同步播放系统,该系统包括:
同步设备,用于向各渲染设备广播用于指示各渲染设备之间渲染同步的同步指令,每次广播同步指令前,需先接收到所有所述渲染设备返回的表征上一个同步指令完成的响应消息,每个同步指令包括用于指示渲染设备帧号同步的同步帧号;
多个渲染设备,用于渲染设备每次在接收到同步设备广播的同步指令时,从与上一个同步指令中包含的同步帧号帧号相等处继续进行渲染,并进行帧号累加;在帧号累加到与当前同步指令中包含的同步帧号帧号相等时向同步设备返回对应的响应消息。
在本发明实施例中,提供了一种渲染同步播放系统,设置的同步设备通过的发送同步指令将每个渲染设备的渲染整个过程拆分为多个子过程,渲染设备只有在接收到同步指令后才能进行渲染,而由于每个同步指令均包含有同步帧号,那么渲染设备在渲染到同步帧号时,表示当前同步指令完成,返回响应消息,等待下一个渲染命令继续进行渲染,在本发明系统中,其实是通过同步设备发布的同步指令,将原有的渲染设备不间断的渲染进行分成阶段性的渲染过程,等于在每一个同步指令结束的时候由于接收下一个同步指令,等于是一次同步的实现,尤其是在处理高频率要求的三维场景渲染时,这种间隔一段帧同步的方法可以保证系统整体的同步压力不会太大,且能保证三维渲染的整体同步。
本发明实施例还提供了一种三维模板动画多屏播放系统,该系统包括:
同步设备,用于在接收到表征所有渲染设备加载三维模板完成的上报消息后,向各渲染设备广播播放动画指令,所述播放动画指令包括用于保证各渲染设备同步播放的延迟帧号,所述延迟帧为所述渲染设备的当前实际帧号与预设的延迟帧数之和;
多个渲染设备,用于接收到播放动画指令,且在自身的实际帧号与此延迟帧相等时,开始进行三维模板动画的渲染,并将渲染结果实时输出给各自连接的播放设备进行播放;
播放设备,用于实时接收所述渲染设备输出的渲染结果,并播放。
由于实现了多个渲染设备的同步渲染,使得本系统能够实现多屏的同步播放。
本发明实施例通过设置的同步设备向所有的渲染设备阶段性的统一发送同步指令,该同步指令中包含了渲染的同步帧号,使得每个渲染设备在执行一次同步指令后接收到下个同步指令时才会继续渲染,达到了每间隔一段帧就进行一次同步的效果,是一种阶段性的同步,达到了通过同步过程中多次同步达到整体渲染过程和输出过程的精确同步。
具体实施方式
由于现有技术在处理大屏幕或超大屏幕的视频处理过程中,不管采用单机或多机操作均不能达到输出的精确同步问题。
未解决现有技术的上述问题,本发明实施例提供了一种三维图形图像多屏同步播放方法、设备及系统,用以在处理多设备共同处理大型三维场景时,多设备可以精确的达到实时同步输出的效果。
首先,本发明实施例提供了一种渲染同步控制方法,如图1所示,在同步设备侧,该方法包括:
S101,由同步设备生成用于指示各渲染设备之间渲染同步的同步指令,每个同步指令包括用于指示渲染设备帧号同步的同步帧号;
S102,由所述同步设备向各渲染设备广播所述同步指令;
S103,其中,每次广播同步指令前,所述同步设备需先接收到所有所述渲染设备在渲染到与上一个同步指令中包含的同步帧号相等的帧号后返回的表征上一个同步指令完成的响应消息。
在本发明上述实施例中,从同步设备的角度介绍了一种方法,通过本发明方法可以实现各渲染设备的渲染同步,各渲染设备等待同步设备的同步指令,渲染设备只有在接收到同步指令后才进行渲染,而由于每个同步指令均包含有同步帧号,那么渲染设备在渲染累加到同步帧号时,表示当前同步指令完成,返回响应消息,等待下一个同步指令继续进行渲染,在本发明上述方法中,其实是通过同步设备发布的指令,将原有的渲染设备不间断的渲染进行分成阶段性的同步过程,在每一个同步指令结束的时候等待接收下一个同步指令,等于是一次同步的实现,尤其在三维场景帧率较高渲染时,这种间隔一段帧数同步的方法既可以保证整个三维渲染的整体同步,又不会使设备的处理压力过大。
为了更清楚的理解本发明技术方案,提供一个本发明方法的简单应用场景:
将同步设备和渲染设备均当做是独立的设备时,二者首先进行初始化,此时向渲染设备发送同步间隔配置及频率,并发送当前初始化帧号,此时渲染设备收到同步配置,并响应初始化完成消息。当渲染设备完成初始化后同步设备会自动的间隔性的向各渲染设备发送同步指令,而渲染设备根据该指令进行渲染且帧号做相应累加,这样实际上渲染设备是在初始化后,就已经实现了同步,这样在三维模板加载后,渲染输出,实现了动画播放的同步。
对于上述出现的三维模板进行解释,三维模板是一种文件的格式,将需要渲染的三维整体场景以字幕、图形、动画、图像、视频的形式由三维软件制作成三维模板,提供给渲染设备进行渲染。
在上述实施例的基础上,所述同步设备按照预设的帧数间隔设置同步指令中的同步帧号,每个当前发送的同步指令中的同步帧号等于前一个发送的同步指令中的同步帧号与帧数间隔之和。
例如,一个同步指令中的同步帧号S1=10,如果帧数间隔为T=20,则下一个同步指令中的同步帧号S2=S1+T=10+20=30。
本发明实施例中,同步设备设置了帧数间隔的概念,目的就是用于固定同步指令之间的间隔,帧数间隔的设置长度也就决定了多长时间同步一次,该帧数间隔可以根据同步的精确度设置,需求的同步度越高,帧数间隔设置越小,同步的次数越多,对服务器的压力也会随之增大。
值得注意的是,合理的设置帧数间隔可以在达到一定的同步效果的情况下,避免当同步频率过高时,同步数据发送频繁的问题,不会使服务器及网络的压力过大。
在上述实施例的基础上,所述同步设备在广播首个同步指令后,启动第二计数单元,所述第二计数单元按照渲染频率进行累加计数;
在所述第二计数单元的数值等于当前广播的同步指令中包括的同步帧号时,所述第二计数单元完成工作,等待下一个同步指令;
等待全部所述渲染设备返回了表征此同步指令完成的响应消息后,再广播下个同步指令,所述第二计数单元继续工作。
在本发明实施例中,设置了第二计数单元用于按照渲染设备的渲染频率进行计数,这其实是为同步设备下发同步指令又设置了一个限制条件,目的是为了让同步设备下发同步指令的时刻更加精准,让同步设备不仅在接收到了所有渲染设备返回了响应消息的前提下下发下一个同步指令,而且只有在计数器的数字与当前同步指令中的同步帧号一致时,才下发同步指令,设置的双重条件保证了同步设备下发的指令精确。
在上述实施例的基础上,该方法还包括:
在接收到所有所述渲染设备发送的表征加载三维模板完成的响应消息时,向各渲染设备广播播放动画指令。
在本发明上述实施例中,同步设备还可以在各渲染模块均完成三维模板加载的情况下,下发播放动画指令,由于通过本发明上述各实施例达到了渲染设备之间的同步渲染效果,在此前提下,让各渲染设备加载三维模板进行渲染显然也是同步的。
本发明实施例还提供了一种渲染同步方法,在渲染设备侧,如图2所示,该方法包括:
S201,渲染设备每次在接收到同步设备广播的同步指令时,从与上一个同步指令中包含的同步帧号帧号相等处继续进行渲染,并进行帧号累加;
S202,在帧号累加到与当前同步指令中包含的同步帧号帧号相等时向同步设备返回对应的响应消息。
在本发明实施例中,渲染设备根据同步设备的指示进行实际渲染过程的进行,每次只渲染到与当前同步指令中的同步帧号相等的帧号处,即返回响应消息,等待下一个同步指令的下发。本发明实施例相当于将渲染设备的整个渲染过程分阶段进行,在渲染设备为多个的情况下,每个阶段的结束时相当于实现了一次同步的进行。
可以理解的是,所述渲染设备每渲染完成一帧画面后,输出到与各自渲染设备分别连接的输出设备实时显示。
在上述实施例的基础上,渲染设备每次在接收到同步设备广播的同步指令时,从与上一个同步指令中包含的同步帧号帧号相等处继续进行渲染,并进行帧号累加,具体包括:
接收到同步指令;
按照预设的渲染频率从与上一个同步指令中包含的同步帧号帧号相等处继续进行渲染,且每次渲染完成后进行实际帧号的相应累加。
在本发明上述实施例中,设置了渲染频率,渲染设备均按照此频率进行渲染,所有的渲染设备均按照一致的频率进行渲染可达到同步效果。
在上述实施例的基础上,在帧号累加到与当前同步指令中包含的同步帧号帧号相等时向同步设备返回对应的响应消息,具体包括:
在所述实际帧号与当前同步指令中包含的同步帧号帧号相等时向同步设备返回对应的响应消息。
在上述实施例中,表征渲染设备实际渲染帧号的实际帧号与同步帧号相等时,返回对应的响应消息,等待下个同步指令的到达。
采用第一计数单元对渲染过程进行计数,在每渲染完一帧后所述第一计数单元累加计数,在所述第一计数单元的数值等于当前接收到的同步指令中包括的同步帧号时,向同步设备返回响应消息。
在本发明实施例中,设置了计数单元对渲染设备的实际帧号进行累加,上述第一计数单元在渲染完一帧画面后都会对帧号进行累加计数,用于辅助渲染设备计算当前渲染到的帧数,在所述第一计数单元的数值等于当前接收到的同步指令中包括的同步帧号时,表征已经完成当前同步任务,向同步设备返回响应消息。
可以理解的是,上述各实施例中设置的第一计数器与第二计数器在理想情况下,应一致按照相同的频率进行计数,使得渲染设备第一计数单元与同步设备第二记数单元帧号在每时每刻都相同。
另外,需要说明的是,同步设备设置第二计数单元,与渲染设备里设置的计数单元所不同的是,同步设备中的计数单元起到的目的是在同步设备侧模拟进行帧号累加计数,在第二计数单元的数值等于当前广播的同步指令中包括的同步帧号时,且所有渲染设备都返回了表征此同步指令完成的响应消息后,满足了这两个条件的前提下,才能下发下一个同步指令,可以理解的是,这里的同步间隔是为控制同步速度,保证在任意的硬件配置环境下稳定工作。
同步设备在第二计数单元的数值等于当前广播的同步指令中包括的同步帧号,停止计数进入等待状态时,应设置一个超时等待时间,避免因为渲染设备中的某一个发生故障,长时间未返回响应消息而导致整个渲染过程的中断,在超过等待时间后,同步设备即使未接收到全部渲染设备返回的响应消息,也继续广播下一个同步指令,保证整体任务的进行。
基于上述同步方法,本发明实施例还提供了一种三维模板动画播放方法,如图3所示,该方法包括:
S301,在接收到表征所有渲染设备加载三维模板完成的上报消息后,向各渲染设备广播播放动画指令,所述播放动画指令包括用于保证各渲染设备同步播放的延迟帧号,所述延迟帧为所述渲染设备的当前实际帧号与预设的延迟帧数之和;
S302,当渲染设备接收到播放动画指令,且在自身的实际帧号与此延迟帧相等时,开始进行三维模板动画的播放。
在本发明上述实施例中,提供了一种基于上述渲染同步方法的输出方法,由于在渲染同步方法中证明了各个渲染设备是能够实现帧渲染同步的,所以在渲染设备加载了三维模板的情况下,可实现模板动画播放的同步效果,而且设置了延迟帧,这样就避免了各个渲染设备可能由于接收的播放动画指令时间不同导致的输出不同步问题,播放延迟帧相当于设置给各个渲染设备的接收缓冲时间,在延迟帧范围内保证所有的渲染设备均接收到了播放动画指令,再进行模板动画播放输出,这样保证了各渲染设备的渲染首帧输出同步,又由于渲染同步方法保证了渲染过程中的同步,所以本发明实施例的在进行三维模板渲染并输出的整体过程同步。
对播放延迟帧的概念进行一下解释,由于在广播播放动画指令时,所有的渲染设备可能不是同一时间接收到的命令,如果不设置播放延迟帧渲染设备的输出就有可能不会同步,播放延迟帧是为了保证所有渲染设备可以同步进行动画渲染而设定的,播放延迟帧的作用是让所有的渲染设备均在同一帧时开始进行三维模板动画的播放,已达到同步输出的目的。在发送时同步设备可以获得当前渲染设备的实际帧号,在该数值的基础上加上预设的延迟帧数即为延迟帧。
在上述实施例的基础上,在接收到表征所有渲染设备加载三维模板完成的上报消息后,向各渲染设备广播播放动画指令,具体包括:
同步设备向所有渲染设备广播模板加载指令;
渲染设备在接收到所述模板加载指令后进行三维模板的加载,并在加载解析完成后,向所述同步设备返回表征加载完成的上报消息;
所述同步设备在接收到所有渲染设备返回的上报消息后,进行模板动画播放动画指令的广播。
在本实施例中各渲染设备是根据加载指令进行模板的加载,且在所有模板加载完成后,返回上报消息以通知同步设备各个渲染设备已经加载模板完毕了。
本发明实施例还可包括模板的卸载过程,具体为:在所述三维模板动画播放完成后,同步设备向所有所述渲染设备广播卸载指令;
渲染设备在接收到所述卸载指令后,进行所述三维模板的卸载,并在卸载成功后,向所述同步设备返回用于表征三维模板卸载成功的响应消息。
与模板的加载过程相似,模板的卸载过程也是通过卸载指令进行的。
为了更好的理解本发明上述渲染同步方法及三维模板动画播放方法的工作过程,现提供一个详细的两个方法同时使用的实施例:
首先为两个方法中提到的一些预设数值代入一些具体数值以便更好理解:
帧数间隔:20帧
S401,同步设备和各渲染设备进行初始化系统配置(配置帧数间隔,为第二计数单元配置同步频率,通过广播为各渲染设备配置同步频率);
S402,同步设备向各渲染设备广播首次同步指令,根据帧数间隔,同步帧号为20帧;
S403,各渲染设备在每次接收到首个同步指令时,根据同步帧号,按照渲染频率渲染计数到20帧,向同步设备返回响应消息,等待下个同步指令继续渲染;
S404,在需要进行三维模板渲染时,同步服务器向各渲染设备广播加载指令;
S405,各渲染设备完成三维模板的加载后,向同步设备返回表征加载完成的上报消息;
S406,在同步设备收到所有渲染模板返回的响应消息后,广播播放模板动画指令;
S407,各渲染设备在接收到播放动画指令后,根据延迟帧的设置,当同步渲染设备的第一计数器和实际帧号与延迟帧的帧数相等时,在同一帧开始三维模板动画的播放;
S408,在所述三维模板动画播放完成后,同步设备向所有所述渲染设备广播卸载指令;
S409,渲染设备在接收到所述卸载指令后,进行所述三维模板的卸载,并在卸载成功后,向所述同步设备返回用于表征卸载成功的响应消息。
本发明实施例还提供了一种同步设备,如图4所示,该同步设备包括:
生成模块1,用于生成指示各渲染设备之间渲染同步的同步指令,每个同步指令包括用于指示渲染设备帧号同步的同步帧号;
发送模块2,用于向各渲染设备广播所述同步指令,其中,每次广播同步指令前,所述同步设备需先接收到所有所述渲染设备在渲染到与上一个同步指令中包含的同步帧号相等的帧号后返回的表征上一个同步指令完成的响应消息;
接收模块3,用于接收所述响应消息。
本发明实施例提供的同步设备通过的发送同步指令将渲染设备的渲染整个过程拆分为多个子过程,渲染设备只有在接收到同步指令后才能进行渲染,而由于每个同步指令均包含有同步帧号,那么渲染设备在渲染到同步帧号时,表示当前同步指令完成,返回响应消息,等待下一个渲染命令继续进行渲染,在本发明上述方法中,其实是通过同步设备发布的同步指令,将原有的渲染设备不间断的渲染进行分成阶段性的渲染过程,等于在每一个同步指令结束的时候由于接收下一个同步指令,等于是一次同步的实现,尤其是在处理高频率要求的三维场景渲染时,这种间隔一段帧同步的方法保证设备间同步压力不会太大,且能保证三维渲染的整体同步。
在本发明上述实施例的基础上,所述同步设备按照预设的帧数间隔设置同步指令中的同步帧号,每个当前发送的同步指令中的同步帧号等于前一个发送的同步指令中的同步帧号与帧数间隔之和。
在本发明上述实施例的基础上,所述同步设备还包括第二计数单元,具体用于:
在广播首个同步指令后,启动第二计数单元,所述第二计数单元按照渲染频率进行累加计数;
在所述第二计数单元的数值等于当前广播的同步指令中包括的同步帧号时,所述第二计数单元完成工作,等待下一个同步指令;
等待全部所述渲染设备返回了表征此同步指令完成的响应消息后,再广播下个同步指令,所述第二计数单元继续工作。
在本发明上述实施例的基础上,该同步设备还包括指令播放模块,具体用于:
在接收到所有所述渲染设备发送的表征加载三维模板完成的响应消息时,向各渲染设备广播播放动画指令。
本发明实施例还提供了一种渲染设备,如图5所示,该渲染设备包括:
接收模块4,用于渲染设备每次在接收到同步设备广播的同步指令时,从与上一个同步指令中包含的同步帧号帧号相等处继续进行渲染,并进行帧号累加;
发送模块5,用于在帧号累加到与当前同步指令中包含的同步帧号帧号相等时向同步设备返回对应的响应消息。
在本发明实施例中,渲染设备根据同步设备的指示进行实际渲染过程的进行,每次只渲染到与当前同步指令中的同步帧号相等的帧号处,即返回响应消息,等待下一个同步指令的下发。本发明实施例相当于将渲染设备的整个渲染过程分阶段进行,在渲染设备为多个的情况下,每个阶段的结束时相当于实现了一次同步的进行。
在上述实施例的基础上,所述渲染设备每渲染完成一帧画面后,输出到与各自渲染设备分别连接的输出设备实时显示。
在上述实施例的基础上,所述接收模块,具体用于:
接收到同步指令;
按照预设的渲染频率从与上一个同步指令中包含的同步帧号帧号相等处继续进行渲染,且每次渲染完成后进行实际帧号的相应累加。
在上述实施例的基础上,所述发送模块,具体用于:
在所述实际帧号与当前同步指令中包含的同步帧号帧号相等时向同步设备返回对应的响应消息。
在上述实施例的基础上,所述渲染设备还设有第一计数单元,用于对渲染过程进行计数,在每渲染完一帧后所述第一计数单元累加计数,在所述第一计数单元的数值等于当前接收到的同步指令中包括的同步帧号时,所述渲染设备向同步设备返回响应消息。
本发明实施例还提供了一种渲染同步播放系统,如图6所示,该系统包括:
同步设备,用于向各渲染设备广播用于指示各渲染设备之间渲染同步的同步指令,每次广播同步指令前,需先接收到所有所述渲染设备返回的表征上一个同步指令完成的响应消息,每个同步指令包括用于指示渲染设备帧号同步的同步帧号;
多个渲染设备,用于渲染设备每次在接收到同步设备广播的同步指令时,从与上一个同步指令中包含的同步帧号帧号相等处继续进行渲染,并进行帧号累加;在帧号累加到与当前同步指令中包含的同步帧号帧号相等时向同步设备返回对应的响应消息。
在本发明实施例中,提供了一种渲染同步播放系统,设置的同步设备通过的发送同步指令将每个渲染设备的渲染整个过程拆分为多个子过程,渲染设备只有在接收到同步指令后才能进行渲染,而由于每个同步指令均包含有同步帧号,那么渲染设备在渲染到同步帧号时,表示当前同步指令完成,返回响应消息,等待下一个渲染命令继续进行渲染,在本发明系统中,其实是通过同步设备发布的同步指令,将原有的渲染设备不间断的渲染进行分成阶段性的渲染过程,等于在每一个同步指令结束的时候由于接收下一个同步指令,等于是一次同步的实现,尤其是在处理高频率要求的三维场景渲染时,这种间隔一段帧同步的方法可以保证系统整体的同步压力不会太大,且能保证三维渲染的整体同步。
本发明实施例还提供了一种三维模板动画多屏播放系统,如图7所示,该系统包括:
同步设备,用于在接收到表征所有渲染设备加载三维模板完成的上报消息后,向各渲染设备广播播放动画指令,所述播放动画指令包括用于保证各渲染设备同步播放的延迟帧号,所述延迟帧为所述渲染设备的当前实际帧号与预设的延迟帧数之和;
多个渲染设备,用于接收到播放动画指令,且在自身的实际帧号与此延迟帧相等时,开始进行三维模板动画的渲染,并将渲染结果实时输出给各自连接的播放设备进行播放;
播放设备,用于实时接收所述渲染设备输出的渲染结果,并播放。
由于实现了多个渲染设备的同步渲染,使得本系统能够实现多屏的同步播放。如图中所示,一个渲染设备在需要的情况下可以同时连接多个播放设备进行拆分播放。
优选地,该系统还可以包括检测报警模块,用于对各个所述渲染设备是否正常工作进行检测,在任一所述渲染设备发生故障时,自动切换备用渲染设备继续完成渲染工作。
由于在正常的工作中,渲染设备有可能因为各种原因发生故障,导致其不能正常的渲染三维模板,影响整体的渲染效果,所以,设置的检测报警模块可以实时地检测各个渲染设备是否正常工作,对于发生故障的渲染设备及时切换备用渲染设备继续完成渲染工作。
一般地,检测报警模块对渲染设备是否正常工作可以通过渲染设备的CPU和GPU的内存占用来进行判断,因为如果任一渲染设备的CPU或GPU内存占用过高,说明负荷大,极有可能已经发生异常,或发生异常的风险很高,需要进行备用渲染设备的切换,具体地,可以为每个渲染设备安装检测报警模块,检测报警模块每隔一段时间收集渲染设备的CPU和GPU内存占用情况,并向上级管理设备上报,例如同步设备,在渲染设备GPU或CPU内存占用过高时,可以自动或由人工进行备用渲染设备的切换
更佳地,为了保证各个渲染设备接收同步指令的实时性和稳定性。所述渲染设备优选通过串口接收同步指令。
通过上述具体实施例,及各实施例的介绍,本发明的思想是通过设置的同步设备多次下发的同步指令,使渲染设备与同步设备同步,即可实现各个渲染设备同步,只有在所有渲染设备均完成了前一个同步指令的基础上,才会收到下个同步指令,相当于完成每个同步指令后均实现了一次同步,达到了通过渲染过程中多次同步达到整体渲染过程和输出过程的精确同步,这样在后续的三维模板渲染输出并显示时,也能实现多屏画面同步输出的效果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。