一种虚拟现实场景中优化运动图像的方法和装置的制造方法

文档序号:9870910阅读:475来源:国知局
一种虚拟现实场景中优化运动图像的方法和装置的制造方法
【技术领域】
[0001]本发明涉及图像渲染技术领域,特别涉及一种虚拟现实场景中优化运动图像的方法和装置。
【背景技术】
[0002]随着近年来VR(虚拟现实)广为流行,所以国内的很多厂商也逐渐进入这个市场,尤其是移动端的VR市场。我们戴上国外大厂头显的时候,体验十分出色,感觉非常棒,可戴上国产的VR头显,不动的时候还好,一动起来图像就会模糊,让人极度眩晕。
[0003]造成眩晕的主要原因是头部运动和视觉观测到的头部运动的不匹配。这也是VR头显能够从技术上加以改善的部分。其中这一点包括两个部分:帧间延迟和帧内延迟。帧内延迟是造成图像模糊的主要原因。如图1所示,我们可以看到,左边这张图是真实的世界中,一个物体从左往右移动时眼睛看到的情况:随着时间的推移,物体的轨迹是一条线;而右边的图则是任何一种显示器显示出来的情况:物体的图像在每一个点显示一段时间之后,就跳到下一个点;它并非是连续的运动。
[0004]想要让物体的图像更加连续的移动,一个办法,就是降低余晖(Persistence)。低余晖显示对VR头显的意义在于,头动时物体的轨迹更加接近于物理世界的真实轨迹。目前的LCD的基本显示原理:通过让液晶翻转来选择性透过光线。这意味着LCD很难使用低余晖显示。想要解决这个问题,VR头显必须使用主动发光的显示屏,比方说0LED。由于其每个像素都是主动发光的,所以OLED屏幕可以做到低余晖。但是考虑到OLED屏幕的专利及成本等方面,OLED屏幕的应用有一定的局限性。
[0005]另一个办法是提高刷新率。但是目前移动平台的屏幕刷新率只能达到120Hz,而且单纯提高刷屏频率,其他硬件设备性能匹配不上,使得系统性能迅速下降,应用的渲染频率远远不能稳定在较高频率上,这样就会导致刷频时会重复刷同一帧的内容从而形成和60Hz屏幕一样的余晖效果。

【发明内容】

[0006]鉴于现有技术由于帧内延迟导致的虚拟现实场景图像模糊的问题,提出了本发明的一种虚拟现实场景中优化运动图像的方法和装置,以便克服上述问题或者至少部分地解决上述问题。
[0007]依据本发明的一个方面,提供了一种虚拟现实场景中优化运动图像的方法,该方法包括:
[0008]渲染线程逐帧渲染待显示的内容,渲染过程中处于渲染状态,每渲染完一帧内容后进入等待状态;
[0009]送屏线程按照与屏幕刷新率相同的频率,逐帧读取所述渲染线程最新的渲染结果;
[0010]所述送屏线程根据读取结果判断所述渲染线程的状态,当判断所述渲染线程处于等待状态时,则将读取结果处理后送到屏幕上进行显示,并唤醒所述渲染线程,当判断所述渲染线程处于渲染状态时,则执行一次清屏操作;
[0011]处于等待状态的所述渲染线程被唤醒后进行下一帧内容的渲染。
[0012]可选地,所述送屏线程根据读取结果判断所述渲染线程的状态包括:
[0013]在渲染结果中设置帧变量,所述渲染线程每渲染完成一帧内容后所述帧变量的值加一;
[0014]所述送屏线程获取所述渲染结果中的所述帧变量,判断所述帧变量的值是否与上一次读取的渲染结果中的帧变量的值相同,若不同则判断所述渲染线程处于等待状态,若相同则判断所述渲染线程处于渲染状态。
[0015]可选地,该方法还包括:
[0016]设置条件变量;
[0017]所述渲染线程每渲染完一帧内容后进入等待状态包括:利用所述条件变量在渲染完成一帧内容后阻塞所述渲染线程;
[0018]所述当判断所述渲染线程处于等待状态时,唤醒所述渲染线程包括:当判断所述渲染线程处于等待状态时,向所述条件变量发送唤醒信号,所述条件变量根据所述唤醒信号唤醒所述渲染线程。
[0019]可选地,该方法还包括:
[0020]设置互斥锁,所述互斥锁用于保护所述条件变量的改变。
[0021]依据本发明的另一个方面,提供了一种虚拟现实场景中优化运动图像的装置,该装置包括:
[0022]渲染处理单元和送屏显示单元;
[0023]所述渲染处理单元,适于通过渲染线程逐帧渲染待显示的内容,渲染过程中所述渲染线程处于渲染状态,每渲染完一帧内容后所述渲染线程进入等待状态;
[0024]送屏显示单元,适于通过送屏线程按照与屏幕刷新率相同的频率,逐帧读取所述渲染线程最新的渲染结果;
[0025]所述送屏显示单元,进一步适于通过所述送屏线程根据读取结果判断所述渲染线程的状态,当判断所述渲染线程处于等待状态时,则将读取结果处理后送到屏幕上进行显示,并唤醒所述渲染线程,当判断所述渲染线程处于渲染状态时,则执行一次清屏操作;
[0026]所述渲染处理单元,进一步适于使处于等待状态的所述渲染线程被唤醒后进行下一帧内容的渲染。
[0027]可选地,所述渲染处理单元,进一步适于在渲染结果中设置帧变量,所述渲染线程每渲染完成一帧内容后所述帧变量的值加一;
[0028]所述送屏显示单元,进一步适于通过所述送屏线程获取所述渲染结果中的所述帧变量,判断所述帧变量的值是否与上一次读取的渲染结果中的帧变量的值相同,若不同则判断所述渲染线程处于等待状态,若相同则判断所述渲染线程处于渲染状态。
[0029]可选地,该装置还包括:
[0030]设置单元,用于设置条件变量;
[0031 ]所述渲染处理单元,进一步适于利用所述条件变量在渲染完成一帧内容后阻塞所述渲染线程;
[0032]所述送屏显示单元,进一步适于当判断所述渲染线程处于等待状态时,向所述条件变量发送唤醒信号,所述条件变量根据所述唤醒信号唤醒所述渲染线程。
[0033]可选地,所述设置单元,进一步适于设置互斥锁,所述互斥锁用于保护所述条件变量的改变。
[0034]综上所述,本发明的技术方案通过渲染完成后阻塞渲染线程,并在读取最新渲染结果后判断渲染线程的状态,当渲染线程处于等待状态时,将读取结果处理后送到屏幕上进行显示,并唤醒渲染线程,当判断渲染线程处于渲染状态时,执行一次清屏操作,使渲染线程和送屏线程异步刷新,有效地解决了在提高屏幕刷新率时带来的系统性能下降和渲染频率跟不上的问题,从而有效地降低了余晖效果,改善了运动情况下图像模糊的问题。
【附图说明】
[0035]图1为真实世界物体运动轨迹和显示器显示的物体运动轨迹比较示意图;
[0036]图2为本发明一个实施例提供的一种虚拟现实场景中优化运动图像的方法流程图;
[0037]图3为本发明另一个实施例提供的一种虚拟现实场景中优化运动图像的方法流程图;
[0038]图4为本发明一个实施例提供的一种虚拟现实场景中优化运动图像的装置示意图;
[0039]图5为本发明另一个实施例提供的一种虚拟现实场景中优化运动图像的装置示意图。
【具体实施方式】
[0040]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0041]图2为本发明一个实施例提供的一种虚拟现实场景中优化运动图像的方法流程图。如图2所示,该方法包括:
[0042]步骤SI10,渲染线程逐帧渲染待显示的内容,渲染过程中处于渲染状态,每渲染完一帧内容后进入等待状态。
[0043]步骤S120,送屏线程按照与屏幕刷新率相同的频率,逐帧读取渲染线程最新的渲染结果。
[0044]步骤S130,送屏线程根据读取结果判断渲染线程的状态,当判断渲染线程处于等待状态时,则将读取结果处理后送到屏幕上进行显示,并唤醒渲染线程,当判断渲染线程处于渲染状态时,则执行一次清屏操作。
[0045]步骤S140,处于等待状态的渲染线程被唤醒后进行下一帧内容的渲染。
[0046]本发明的技术方案通过渲染完成后阻塞渲染线程,并在读取最新渲染结果后判断渲染线程的状态,当渲染线程处于等待状态时,将读取结果处理后送到屏幕上进行显示,并唤醒渲染线程,当判断渲染线程处于渲染状态时,执行一次清屏操作,使渲染线程和送屏线程异步刷新,每一次的清屏操作,带来的效果如同OLED屏中的灭屏,通过这种方式来降低余晖,有效地解决了在提高屏幕刷新率时带来的系统性能下降和渲染频率跟不上的问题,从而有效地降低了余晖效果,改善了运动情况下图像模糊的问题。
[0047]图3为本发明另一个实施例提供的一种虚拟现实场景中优化运动图像的方法流程图,如图3所示,该方法包括:
[0048]步骤S210,渲染线程逐帧渲染待显示的内容,渲染过程中处于渲染状态,每渲染完一帧内容后进入等待状态,其中,在渲染结果中设置帧变量,渲染线程每渲染完成一帧内容后帧变量的值加一。
[0049]步骤S220,送屏线程按照与屏幕刷新率相同的频率,逐帧读取渲染线程最新的渲染结果。
[0050]步骤S230,送屏线程获取渲染结果中的帧变量,判断帧变量的值是否与上一次读取的渲染结果中的帧变量的值相同。
[0051]步骤S240,当帧变量值相同时,送屏线程判断渲染线程处于渲染状态,执行一次清屏操作。
[0052]步骤S250,当帧变量值不同时,送屏线程判断渲染线程处于等待状态,将读取结果处理后送到屏幕上进行显示,并唤醒渲染线程。
[0053]步骤S260,处于等待状态的渲染线程被唤醒后进行下一帧内容的渲染。
[0054]通过设置帧变量,在
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1