发明内容
本发明的实施例的目的是提供一种虚拟三维图像显示系统及方法,由此通过对使用者进行状态判断,不同的状态下调用不同的传输函数,从而提高图像渲染引擎的运算能力。
本发明的实施例提供了一种虚拟三维图像显示方法,包括以下步骤:惯性测量单元获取使用者头部的实时状态数据;姿态解算单元对上述实时状态数据进行处理得到姿态解算数据;判断单元对姿态解算数据进行分析,从而判断使用者的状态;传输函数调整单元根据使用者的状态调用不同的传输函数;场景渲染单元根据调用的传输函数进行场景渲染,在使用者的显示端显示虚拟三维图像。
本发明的实施例提供了一种虚拟三维图像显示方法,包括以下步骤:状态获取单元获取使用者头部的实时状态数据;位姿预测单元对上述头部实时状态数据进行处理得到位姿解算数据,根据位姿解算数据对使用者头部的位姿进行预测得到位姿预测数据;判断单元对位姿解算数据以及位姿预测数据进行分析,从而判断使用者的状态;传输函数调整单元根据使用者的状态调用不同的传输函数;场景渲染单元根据调用的传输函数进行场景渲染,在使用者的显示端显示虚拟三维图像。
根据本发明的实施例,判断单元对姿态解算数据进行分析,从而判断使用者的状态的步骤包括:在判断单元中预设判断阈值;判断单元根据姿态解算数据与预设判断阈值进行比较确定使用者的状态。
根据本发明的实施例,传输函数调整单元根据使用者的状态调用不同的传输函数的步骤包括:向传输函数调整单元中预设对应判断单元中预设的不同状态结果的传输函数;判断单元判断出的状态结果输入传输函数调整单元中,传输函数调整单元根据状态结果调用对应的传输函数。
根据本发明的实施例,同一阈值两侧的状态对应的两个传输函数之间存在指数或/和线性关系。
根据本发明的实施例,传输函数调整单元中所有的传输函数均对图像的关键部分进行标注,场景渲染单元调用任一传输函数进行渲染均可清晰显示关键部分的图像。
根据本发明的实施例,状态获取单元获取使用者头部的实时状态数据的步骤包括:状态获取单元获取使用者头部的位置实时数据;以及状态获取单元获取使用者头部的姿态实时数据。
根据本发明的实施例,位姿预测单元对上述头部实时状态数据进行处理得到位姿解算数据,根据位姿解算数据对使用者头部的位姿进行预测得到位姿预测数据的步骤包括:在位姿解算模块中预设预测函数以及预测时间;将位姿解算数据以及预测时间带入预测函数中进行计算,从而计算出位姿预测数据。
本发明的实施例提供了一种虚拟三维图像显示系统,包括:惯性测量单元,所述惯性测量单元用于获取使用者头部的实时状态数据;姿态解算单元,所述姿态解算单元用于对上述实时状态数据进行处理得到姿态解算数据;判断单元,所述判断单元用于对姿态解算数据进行分析,从而判断使用者的状态;传输函数调整单元,所述传输函数单元根据使用者的状态调用不同的传输函数;以及场景渲染单元,所述场景渲染单元根据调用的传输函数进行场景渲染,在使用者的显示端显示虚拟三维图像。
本发明的实施例提供了一种虚拟三维图像显示系统,包括:状态获取单元,所述状态获取单元用于获取使用者头部的实时状态数据;位姿预测单元,所述位姿预测单元用于对上述实时状态数据进行处理得到位姿解算数据,并根据位姿解算数据对使用者头部的位姿进行预测得到位姿预测数据;判断单元,所述判断单元用于对位姿解算数据以及位姿预测数据进行分析,从而判断使用者的状态;传输函数调整单元,所述传输函数调整单元根据使用者的状态调用不同的传输函数;以及场景渲染单元,所述场景渲染单元根据调用的传输函数进行场景渲染,在使用者的显示端显示虚拟三维图像。
根据本发明的实施例,判断单元中预设有判断阈值,判断单元根据姿态解算数据与预设判断阈值进行比较确定使用者的状态。
根据本发明的实施例,传输函数调整单元中预设有对应判断单元中预设的不同状态结果的传输函数;判断单元判断出的状态结果输入传输函数调整单元中,传输函数调整单元根据状态结果调用对应的传输函数。
根据本发明的实施例,判断单元中同一阈值两侧的状态对应传输函数调整单元中预设的两个传输函数之间存在指数或/和线性关系。
根据本发明的实施例,传输函数调整单元中预设的所有传输函数均对图像的关键部分进行标注,场景渲染单元调用任一传输函数进行渲染均可清晰显示关键部分的图像。
根据本发明的实施例,所述状态获取单元包括:位置测量单元,所述位置获取单元用于获取使用者头部的位置数据;以及惯性测量单元,所述惯性测量单元用于获取使用者头部的姿态数据。
根据本发明的实施例,位姿预测单元中预设有预测函数以及预测时间;将位姿解算数据以及预测时间带入预测函数中进行计算,从而计算出位姿预测数据。
具体实施方式
下面结合说明书附图来说明本发明的具体实施方式。
实施例1
如图1所示,本发明实施例提供的虚拟三维图像显示方法及系统,用以优化图像渲染引擎(GPU)的运算方式,提高GPU的运算效率,本发明的虚拟三维图像显示方法主要包括以下步骤:
S101惯性测量单元获取使用者头部的实时状态数据。
所述惯性测量单元包括陀螺仪以及加速度计,陀螺仪可以测量使用者头部的角速度数值;加速度计可以测量使用者头部的加速度数值,加速度计测量的加速度数值包含重力加速度。
S102姿态解算单元对上述实时状态数据进行处理得到姿态解算数据。
所述姿态解算单元对上述测量到的实时角速度数值进行积分,通过积分角速度可以得到使用者头部的实时姿态数据;为减小角速度积分的误差,可以通过加速度计中测量的加速度数值来矫正实时姿态数据中与重力方向相关的姿态偏差,经过矫正后的实时姿态数据即为姿态解算数据。
S103判断单元对姿态解算数据进行分析,从而判断使用者的状态。
姿态解算数据中的实时角速度大小,可以用于判断使用者头部的状态,在判断单元中以角速度预设有判断阈值,判断阈值的数量、大小均不做限定,例如,角速度<0.001时,使用者头部为注视状态;角速度>5时,使用者头部为快速浏览状态。阈值将角速度划分为不同的区间,每一个区间对应一种状态,状态的种类以及命名均不作限定,例如,注视状态、快速浏览状态等。判断单元将姿态解算数据中的实时角速度大小与判断阈值进行比较,得出实时角速度所在区间,所在区间对应的状态即为使用者的状态结果。
S104传输函数调整单元根据使用者的状态调用不同的传输函数。
在虚拟现实技术中,传输函数是密度值对颜色的一个映射函数,传输函数将三维数据中的不同的点根据其密度值映射成为颜色信息(RGB),映射的颜色不作限定,例如,在人体的三维数据中,人体的骨骼、肌肉以及血管的密度不同,根据传输函数,使用者可以将骨骼密度值范围内的点映射为红色(RGB:255,0,0),将肌肉密度值范围内的点映射为绿色(RGB:0,255,0),将血管密度值范围内映射为蓝色(RGB:255,0,0),在经过传输函数映射后,人体的三维数据就变为了具有颜色信息的三维数据,在经过渲染后就可以呈现具有色彩区分的图像。不同的传输函数代表不同的映射,简单的传输函数将大部分密度值设置为同一颜色,在进行图像渲染时图像渲染引擎的需要计算的数据量少,计算速度快,能够加速图像渲染;复杂的传输函数对每个密度值范围都进行不同的颜色设定,在进行图像渲染时图像渲染引擎需要计算的数据量大,计算速度慢,但复杂的传输函数渲染出的图像画面质量高。。
使用者完成判断阈值的预设后,在传输函数调整单元中对应不同的状态预设对应的传输函数。在判断单元完成状态判断后,状态结果输入传输函数调整单元中,传输函数调整单元调用与状态结果对应的传输函数,并将传输函数输入场景渲染单元中。
使用者头部处于运动状态时,使用者的眼球处在浏览画面的状态,运动状态下的眼球捕捉画面的能力降低,在眼球处在浏览画面的状态时,使用者对于图像的清晰度的要求低,此时只需要使用较为简单的传输函数进行图像渲染即可满足使用者浏览画面的要求。同一阈值两侧的状态对应的两个传输函数之间应存在指数或/和线性关系,若相邻状态的两个传输函数之间的差距过大,使用者通过显示端看到的图像会引起锯齿甚至发生撕裂,画面引起锯齿或发生撕裂会严重影响使用者的画面观看效果,因此同一阈值两侧的状态对应的两个传输函数之间应当存在指数或/和线性关系。
使用者头部处于静止状态时,使用者注视画面,此时对画面的分辨率和清晰度要求高,此时需要选取较为复杂的传输函数进行图像渲染,这个传输函数需要能够渲染出画面质量高的画面满足使用者注视画面的要求,优选地,使用者头部处于静止状态时,可以选用按照全局传输函数来设置传输函数,此时的传输函数所渲染出的图像每个部分的清晰度相同,能够清晰显示图像。
使用者处于任何状态时,使用者对于图像中的关键部分都很敏感,使用者不希望因传输函数的改变导致关键部分的观察出现模糊。因此,使用者在预设传输函数时,将传输函数中关于关键部分的显示进行标注,无论使用者处于什么状态,经过任一传输函数渲染后的图像均可以清晰显示关键部分的图像。
优选地,使用者处于运动状态时,传输函数可以仅对关键部分进行渲染,在设置传输函数时可以将图像的其余部分的透明度提高或直接进行默认绘制。
S105场景渲染单元根据调用的传输函数进行场景渲染,在使用者的显示端显示虚拟三维图像。
如图2所示,为实现上述虚拟三维图像显示方法,本发明的实施例提供一种虚拟三维图像显示系统,该虚拟三维图像显示系统包括:
惯性测量单元,所述惯性测量单元用于获取使用者头部的实时状态数据;姿态解算单元,所述姿态解算单元用于对上述实时状态数据进行处理得到姿态解算数据;判断单元,所述判断单元用于对姿态解算数据进行分析,从而判断使用者的状态;传输函数调整单元,所述传输函数单元根据使用者的状态调用不同的传输函数;以及场景渲染单元,所述场景渲染单元根据调用的传输函数进行场景渲染,在使用者的显示端显示虚拟三维图像。
其中,判断单元中预设有判断阈值,判断单元根据姿态解算数据与预设判断阈值进行比较确定使用者的状态,得出状态结果。
状态结果输入进入传输函数调整单元中,传输函数调整单元中对应状态结果预设有传输函数,状态结果输入进入传输函数调整单元后,传输函数调整单元识别状态结果并调用与该状态结果对应的传输函数,将调用的传输函数输入值场景渲染单元中,场景渲染单元根据该传输函数进行画面渲染。
使用者设置传输函数时,为保证系统稳定运行,保证系统渲染的画面的质量,同一阈值两侧的状态对应的两个传输函数应存在指数或/和线性关系,传输函数之间存在指数或/和线性关系,保证系统渲染的画面不会发生锯齿或撕裂。
使用者设置传输函数时,对所有传输函数都进行图像关键部分的标注,无论使用者处于什么状态,任一的传输函数均可以清晰地显示关键部分的图像。
实施例二
使用者除了可能会进行头部转动之外,可能还会进行位置的移动,实施例二的显示方法与实施例一的显示方法从S104传输函数调整单元根据使用者的状态调用不同的传输函数之后均相同,在此不做叙述,仅对实施例二的方法与实施例一的方法不同之处进行叙述。
如图3所示,本发明的实施例公开了一种虚拟三维图像显示方法,其包括以下步骤:
S201状态获取单元获取使用者头部的实时状态数据。
状态获取单元除了能够获取使用者的实时姿态数据(实时角速度数据以及实时加速度数据)外,还可以获取使用者的实时位置数据,状态获取单元获取的实时位置数据为使用者的实时三维坐标,获取的方式不作限定,例如使用者的实时三维坐标是通过视觉定位或激光定位获得的。
S202位姿预测单元对上述头部实时状态数据进行处理得到位姿解算数据,根据位姿解算数据对使用者头部的位姿进行预测得到位姿预测数据。
位姿预测单元对上述头部实时状态数据进行处理得到位姿解算数据的步骤包括实施例一中对姿态解算单元的工作过程,除此之外还包括位置解算的过程,位姿预测单元收集头部实时位置数据,位置数据中包括位置信息与速度信息。位姿解算数据包括位置解算数据与姿态解算数据。
根据位姿解算数据对使用者头部的位姿进行预测得到位姿预测数据的步骤包括在位姿解算模块中预设函数以及预测时间;将位姿解算数据以及预测时间带入预测函数中进行计算,从而计算出位姿预测数据。
上述预测函数包括位置预测函数与姿态预测函数,其中位置预测函数对使用者的位置信息进行预测;姿态预测函数对使用者的姿态进行预测。位置预测有多种方式,本发明对位置预测函数不作限定,例如可以根据如下公式进行计算:
式中S0代表使用者头部的实时位置;v0代表使用者头部的位移速度;a代表使用者头部的位移加速度;t代表预测时间;St代表使用者头部的预测位置。
优选地,位姿预测单元在进行位置预测时可能会因为计算误差的累计出现一些误差数据,此时位置预测可以根据使用者位置的历史信息进行优化,本发明对历史信息进行优化的方式不作限定,例如选取使用者最近的3个历史位置数据求取平均值作为当前位置再代入位置预测函数中进行预测。历史信息优化后的位置预测数据可以去除预测过程中产生的误差数据,优化位置预测数据。
姿态预测函数的预测方法可以根据以下公式进行预测:
Q0×dq=Qt;
式中Q0代表使用者头部的初始位姿;dq代表使用者头部的姿态变化量;Qt代表使用者头部的预测位姿,其中Q0、dq以及Qt均为四元数(四元数为拥有三个虚部和一个实部的复数,例如q=1+2i+3j+4k,四元数在坐标轴中也可以表示为q=((x,y,z),w)=(v,w),其中x、y、z为虚部,v为向量,w为实部)。
其中dq是根据使用者的实时角速度以及预测时间得到的,具体计算过程如下:
将角速度放置于空间坐标系中并将角速度分解为x方向的角速度、y方向的角速度以及z方向的角速度;将分解后的角速度与预测时间一起转变为一个四元数(预测时间为该四元数中的一项),计算出角速度的模的大小;将角速度的模与预测时间相乘在除以2得到变化值;求取变化值的正弦值与余弦值;变化值的正弦值与角速度三个方向的分量相乘得到姿态变化量dq(四元数)中的x、y、z;变化量的余弦值即为姿态变化量dq的w,从而求出了姿态变化量dq。
S203判断单元对位姿解算数据以及位姿预测数据进行分析,从而判断使用者的状态。
判断单元中预设的判断阈值相较于实施例一来说,除了有角速度外还有位移速度,判断阈值的大小、数量不做限定,但角速度与位移速度同时都会影响判断单元的状态判断结果。例如,位移速度>5m/s或角速度>5时,使用者处于移动状态;位移速度<0.02m/s且角速度<0.001时,使用者处于静止状态。
S204传输函数调整单元根据使用者的状态调用不同的传输函数。
S205场景渲染单元根据调用的传输函数进行场景渲染,在使用者的显示端显示虚拟三维图像。
S204与S205步骤与实施例一相同,这里不再赘述。
参照图4,为实现本实施例中的虚拟三维图像显示方法,设计了一种虚拟三维图像显示系统,包括:
状态获取单元,所述状态获取单元用于获取使用者头部的实时状态数据;位姿预测单元,所述位姿预测单元用于对上述实时状态数据进行处理得到位姿解算数据,并根据位姿解算数据对使用者头部的位姿进行预测得到位姿预测数据;判断单元,所述判断单元用于对位姿解算数据以及位姿预测数据进行分析,从而判断使用者的状态;传输函数调整单元,所述传输函数调整单元根据使用者的状态调用不同的传输函数;以及场景渲染单元,所述场景渲染单元根据调用的传输函数进行场景渲染,在使用者的显示端显示虚拟三维图像。
其中,状态获取单元包括位置测量单元,所述位置获取单元用于获取使用者头部的位置数据;以及惯性测量单元,所述惯性测量单元用于获取使用者头部的姿态数据。
位姿预测单元中预设有预测函数以及预测时间,将位姿解算数据以及预测时间带入预测函数中进行计算,从而计算出位姿预测数据。位子单元中的预测函数包括位置预测函数与姿态预测函数,得出的位姿预测数据进入判断单元中进行使用者状态判断。
传输函数调整单元与场景渲染单元均与实施例一中相同,在此不再赘述。
本发明提供的两个实施例中的虚拟三维图像显示方法相比于现有的虚拟三维图像显示方法的优点在于:本发明的方法能够通过改变传输函数来降低GPU在成像过程中的计算负担,优化GPU的运算效率。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。