首页> 中国专利> 真实感三维场景的体感交互式绘制系统与方法

真实感三维场景的体感交互式绘制系统与方法

摘要

本发明公开一种真实感三维场景的体感交互式绘制系统与方法,使用多个GPU计算结点组成的并行计算集群,利用GPU并行光线跟踪技术实现对真实感三维场景的绘制。利用单个GPU计算结点内和多个GPU计算结点间的不同并行粒度,充分发挥了GPU计算集群的并行能力。利用Kinect体感传感器来采集参与交互者的景深数据,并据此提取参与交互者的骨骼关节点,用于体感交互控制。本发明可支持单个参与交互者与三维场景中的单个几何对象之间的体感交互,实现使三维交互几何对象招之即来、挥之即去的体感交互效果。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-08-25

    授权

    授权

  • 2015-12-30

    实质审查的生效 IPC(主分类):G06T15/06 申请日:20150721

    实质审查的生效

  • 2015-10-28

    公开

    公开

说明书

技术领域

本发明属于三维图形绘制技术领域,涉及一种真实感三维场景的体感交互式绘制系统 与方法。

背景技术

三维场景绘制通常可以分为离线绘制和实时交互式绘制两种类型。在影视特效制作 中,通常使用离线三维场景绘制技术。使用这类技术绘制的三维场景画面非常逼真,但绘 制时间一般很长。然而在三维电脑游戏中,则需使用实时交互式绘制技术。目前利用这类 技术绘制三维场景画面的速度可以达到实时交互式要求,但画面的真实感往往较差。光线 跟踪经常被用在离线三维场景绘制之中,可以绘制出真实感较强的三维场景画面。光栅化 技术则常见于实时交互式绘制之中,但该技术对各种复杂的间接光照效果的支持不足。把 光线跟踪用于实时交互式绘制之中的难点在于,光线跟踪计算量太大,难以达到实时的绘 制速度。随着GPU并行计算设备的出现,充分利用GPU的并行计算能力,可使光线跟踪 技术也能满足交互式地绘制三维场景的要求。本发明提供一种系统和方法,基于GPU并 行计算技术和Kinect体感传感器,实现对真实感三维场景的体感交互式绘制。基于GPU 计算集群,本系统和方法在不同层次上是实现了不同并行粒度的并行光线跟踪绘制。

发明内容

本系统需要的设备:Kineet体感传感器101、控制与显示计算机102、网络交换机103 和n个GPU计算结点,n=2k,k为大于0的整数;GPU计算结点是软硬件配置完全相同 的安装有英伟达GPU的计算机;Kinect体感传感器101直接连接到控制与显示计算机102; 控制与显示计算机102和所有GPU计算结点通过网络交换机103相互连接在一起;图1 示出了四个GPU计算结点,分别是GPU计算结点A104、GPU计算结点B105、GPU计算 结点C106和GPU计算结点D107,GPU计算结点A104、GPU计算结点B105、GPU计算 结点C106和GPU计算结点D107都通过网络交换机103和控制与显示计算机102相连接。

本方法涉及一种数据结构BLOCK,数据结构BLOCK包含起始行号I1、结束行号I2、 起始列号C1和结束列号C2共四个成员变量。

本方法的实现步骤:

Step001:启动安装在控制与显示计算机102上的交互式绘制控制程序A001;令变量 STATE=0;

Step002:利用交互式绘制控制程序A001,将三维场景模型文件A002通过网络从控制 与显示计算机102传送给各个GPU计算结点,使各个GPU计算结点中各有一份三维场景 模型文件A002的拷贝;利用交互式绘制控制程序A001,将初始虚拟相机参数配置文件 CPAR通过网络从控制与显示计算机102传送给各个GPU计算结点,使各个GPU计算结 点中各有一份初始虚拟相机参数配置文件CPAR的拷贝;初始虚拟相机参数配置文件CPAR 描述了绘制三维场景时使用的虚拟相机的参数;

Step003:启动安装在各个GPU计算结点上的光线跟踪绘制程序A003,加载三维场景 模型文件A002,并根据初始虚拟相机参数配置文件CPAR的内容设置光线跟踪绘制程序 A003的虚拟相机参数;

Step004:如果收到停止绘制命令,转步骤Step011,否则执行如下操作:

利用交互式绘制控制程序A001把绘制三维场景时使用的虚拟相机的整个画面像素区 域分为n块,把每块视为一个画面像素子区域,n个画面像素子区域与n个GPU计算结点 一一对应,所有画面像素子区域拼接在一起即构成完整的虚拟相机的画面像素区域;针对 每个画面像素子区域A004,利用交互式绘制控制程序A001创建一个数据结构BLOCK类 型的变量A005,把变量A005的起始行号I1成员变量赋值为像素子区域A004对应的画面 像素起始行号,把变量A005的结束行号I2成员变量赋值为像素子区域A004对应的画面 像素结束行号,把变量A005的起始列号C1成员变量赋值为像素子区域A004对应的画面 像素起始列号,把变量A005的结束列号C2成员变量赋值为像素子区域A004对应的画面 像素结束列号;把每个画面像素子区域A004对应的数据结构BLOCK类型的变量A005通 过网络传送给每个画面像素子区域A004对应的GPU计算结点的光线跟踪绘制程序A003;

Step005:对n个GPU计算结点中的每个GPU计算结点A006,并行地执行如下操作:

根据GPU计算结点A006收到的BLOCK类型的变量A005,把变量A005的起始行号 I1成员变量的值赋给变量idrb,把变量A005的结束行号I2成员变量的值赋给变量idre, 把变量A005的起始列号C1成员变量的值赋给变量idcb,把变量A005的结束列号C2成 员变量的值赋给变量idce;利用GPU计算结点A006的光线跟踪绘制程序A003,基于GPU 并行光线跟踪技术绘制虚拟相机的第idrb行至第idre行、第ideb列至idce列的像素,并 把虚拟相机的第idrb行至第idre行、第idcb列至idce列的像素的颜色值通过网络传送给 交互式绘制控制程序A001;

Step006:交互式绘制控制程序A001根据在步骤Step004中针对每个画面像素子区域 A004所创建的数据结构BLOCK类型的变量A005的值,确定每个画面像素子区域的起始 行号、结束行号、起始列号和结束列号,并利用画面像素子区域与GPU计算结点的一一 对应关系,把从所有GPU计算结点发来的像素颜色值拼接成完整的虚拟相机的画面A007, 并把画面A007显示在控制与显示计算机102的显示器上;

Step007:利用Kinect体感传感器101获取参与体感交互者的景深数据,在控制与显示 计算机102上,使用骨骼追踪技术获得参与体感交互者的左腕、左肘、左肩、右腕、右肘、 右肩、肩中央、腰脊柱的骨骼关节点的三维坐标;令VR1表示从右肘骨骼关节点指向右腕 骨骼关节点的向量,令VR2表示从右肘骨骼关节点指向右肩骨骼关节点的向量;令VL1 表示从左肩骨骼关节点指向左肘骨骼关节点的向量,令VL2表示从肩中央骨骼关节点指向 腰脊柱骨骼关节点的向量,令VL3表示从左腕骨骼关节点指向左肘骨骼关节点的向量;令 RB等于VR1与VR2的夹角;令LB等于VL1与VL2的夹角,令LA等于VL1与VL3的 夹角;读取Kinect体感传感器输出的连续的30帧参与体感交互者的景深数据,判断其中 是否存在一帧景深数据A008满足如下条件:

条件COND1:根据对景深数据A008的骨骼追踪结果计算得到的RB小于30度;

如果条件COND1得到满足,令变量STATE=1,转步骤Step008,否则进一步判断其 中是否存在一帧景深数据A009满足如下条件:

条件COND2:根据对景深数据A009的骨骼追踪结果计算得到的LB大于80度,且 根据对景深数据A009的骨骼追踪结果计算得到的LA大于130度;

如果条件COND2得到满足,令变量STATE=-1;

Step008:在控制与显示计算机102上,通过网络把STATE的值发送给各个GPU计算 结点上的光线跟踪绘制程序A003;

Step009:对n个GPU计算结点中的每个GPU计算结点A010,做如下操作:

在GPU计算结点A010的光线跟踪绘制程序A003中,利用三维平移变换技术,把三 维场景中的与体感交互者进行交互的几何对象朝着虚拟相机所在位置平移一个大小为 STATE×ΔL的位移,ΔL表示平移长度,为大于零的实数,变量STATE是从控制与显示计 算机102发给GPU计算结点A010的;其中,STATE=1实际上表示与体感交互者进行交 互的几何对象被平移后更靠近虚拟相机所在位置,STATE=-1实际上表示与体感交互者进 行交互的几何对象被平移后更远离虚拟相机所在位置,STATE=0表示与体感交互者进行 交互的几何对象原地不动;

Step010:转步骤Step004;

Step011:停止绘制。

有益效果

本发明提供了一种真实感三维场景的体感交互式绘制系统与方法。本发明提供的系统 使用多个GPU计算结点构成一个并行计算集群,在交互式绘制控制程序的控制下,利用 GPU并行光线跟踪技术进行真实感三维场景绘制。本发明提供的方法可以在两个不同的并 行粒度层次上实现并行光线跟踪绘制。第一个并行粒度层次是单个GPU计算结点内的并 行,第二个并行粒度层次是多个GPU计算结点间的并行。本发明提供的系统和方法,可 以支持单个人与三维场景中的单个几何对象之间的体感交互;本系统和方法可以识别参与 体感交互者的左右手臂的体态,达到用右臂使三维场景的参与交互的几何对象招之即来、 用左臂使三维场景的参与交互的几何对象挥之即去的体感交互效果。本发明提供的系统和 方法能使多个GPU计算结点获取体感传感器的动作输入指令,并对参与体感交互者的动 作做出响应。

附图说明

图1为真实感三维场景的体感交互式绘制系统的硬件组成示意图。

具体实施方式

为了使本方法的特征和优点更加清楚明白,下面结合具体实施例对本系统和方法作进 一步的描述。在本实施例中,考虑一个房间三维场景,在房间里的半空中有一个飞碟,房 间里有桌子、椅子和柜子,飞碟几何对象是和参与体感交互者进行体感互动的三维几何对 象;当参与体感交互者使用右臂做出招引动作时,飞碟就飞向虚拟相机所在位置,即飞向 参与体感交互者;当参与体感交互者使用左臂做出挥臂动作时,飞碟就向远离虚拟相机所 在位置的方向移动,即飞离参与体感交互者。在本实施例中,令k=3。

本系统需要的设备:Kinect体感传感器101、控制与显示计算机102、网络交换机103 和n个GPU计算结点,n=2k,k为大于0的整数;GPU计算结点是软硬件配置完全相同 的安装有英伟达GPU的计算机;Kinect体感传感器101直接连接到控制与显示计算机102; 控制与显示计算机102和所有GPU计算结点通过网络交换机103相互连接在一起;图1 示出了四个GPU计算结点,分别是GPU计算结点A104、GPU计算结点B105、GPU计算 结点C106和GPU计算结点D107,GPU计算结点A104、GPU计算结点B105、GPU计算 结点C106和GPU计算结点D107都通过网络交换机103和控制与显示计算机102相连接。

本方法涉及一种数据结构BLOCK,数据结构BLOCK包含起始行号I1、结束行号I2、 起始列号C1和结束列号C2共四个成员变量。

本方法的实现步骤:

Step001:启动安装在控制与显示计算机102上的交互式绘制控制程序A001;令变量 STATE=0;

Step002:利用交互式绘制控制程序A001,将三维场景模型文件A002通过网络从控制 与显示计算机102传送给各个GPU计算结点,使各个GPU计算结点中各有一份三维场景 模型文件A002的拷贝;利用交互式绘制控制程序A001,将初始虚拟相机参数配置文件 CPAR通过网络从控制与显示计算机102传送给各个GPU计算结点,使各个GPU计算结 点中各有一份初始虚拟相机参数配置文件CPAR的拷贝;初始虚拟相机参数配置文件CPAR 描述了绘制三维场景时使用的虚拟相机的参数;

Step003:启动安装在各个GPU计算结点上的光线跟踪绘制程序A003,加载三维场景 模型文件A002,并根据初始虚拟相机参数配置文件CPAR的内容设置光线跟踪绘制程序 A003的虚拟相机参数;

Step004:如果收到停止绘制命令,转步骤Step011,否则执行如下操作:

利用交互式绘制控制程序A001把绘制三维场景时使用的虚拟相机的整个画面像素区 域分为n块,把每块视为一个画面像素子区域,n个画面像素子区域与n个GPU计算结点 一一对应,所有画面像素子区域拼接在一起即构成完整的虚拟相机的画面像素区域;针对 每个画面像素子区域A004,利用交互式绘制控制程序A001创建一个数据结构BLOCK类 型的变量A005,把变量A005的起始行号I1成员变量赋值为像素子区域A004对应的画面 像素起始行号,把变量A005的结束行号I2成员变量赋值为像素子区域A004对应的画面 像素结束行号,把变量A005的起始列号C1成员变量赋值为像素子区域A004对应的画面 像素起始列号,把变量A005的结束列号C2成员变量赋值为像素子区域A004对应的画面 像素结束列号;把每个画面像素子区域A004对应的数据结构BLOCK类型的变量A005通 过网络传送给每个画面像素子区域A004对应的GPU计算结点的光线跟踪绘制程序A003;

Step005:对n个GPU计算结点中的每个GPU计算结点A006,并行地执行如下操作:

根据GPU计算结点A006收到的BLOCK类型的变量A005,把变量A005的起始行号 I1成员变量的值赋给变量idrb,把变量A005的结束行号I2成员变量的值赋给变量idre, 把变量A005的起始列号C1成员变量的值赋给变量idcb,把变量A005的结束列号C2成 员变量的值赋给变量idce;利用GPU计算结点A006的光线跟踪绘制程序A003,基于GPU 并行光线跟踪技术绘制虚拟相机的第idrb行至第idre行、第idcb列至idce列的像素,并 把虚拟相机的第idrb行至第idre行、第idcb列至idce列的像素的颜色值通过网络传送给 交互式绘制控制程序A001;

Step006:交互式绘制控制程序A001根据在步骤Step004中针对每个画面像素子区域 A004所创建的数据结构BLOCK类型的变量A005的值,确定每个画面像素子区域的起始 行号、结束行号、起始列号和结束列号,并利用画面像素子区域与GPU计算结点的一一 对应关系,把从所有GPU计算结点发来的像素颜色值拼接成完整的虚拟相机的画面A007, 并把画面A007显示在控制与显示计算机102的显示器上;

Step007:利用Kinect体感传感器101获取参与体感交互者的景深数据,在控制与显示 计算机102上,使用骨骼追踪技术获得参与体感交互者的左腕、左肘、左肩、右腕、右肘、 右肩、肩中央、腰脊柱的骨骼关节点的三维坐标;令VR1表示从右肘骨骼关节点指向右腕 骨骼关节点的向量,令VR2表示从右肘骨骼关节点指向右肩骨骼关节点的向量;令VL1 表示从左肩骨骼关节点指向左肘骨骼关节点的向量,令VL2表示从肩中央骨骼关节点指向 腰脊柱骨骼关节点的向量,令VL3表示从左腕骨骼关节点指向左肘骨骼关节点的向量;令 RB等于VR1与VR2的夹角;令LB等于VL1与VL2的夹角,令LA等于VL1与VL3的 夹角;读取Kinect体感传感器输出的连续的30帧参与体感交互者的景深数据,判断其中 是否存在一帧景深数据A008满足如下条件:

条件COND1:根据对景深数据A008的骨骼追踪结果计算得到的RB小于30度;

如果条件COND1得到满足,令变量STATE=1,转步骤Step008,否则进一步判断其 中是否存在一帧景深数据A009满足如下条件:

条件COND2:根据对景深数据A009的骨骼追踪结果计算得到的LB大于80度,且 根据对景深数据A009的骨骼追踪结果计算得到的LA大于130度;

如果条件COND2得到满足,令变量STATE=-1;

Step008:在控制与显示计算机102上,通过网络把STATE的值发送给各个GPU计算 结点上的光线跟踪绘制程序A003;

Step009:对n个GPU计算结点中的每个GPU计算结点A010,做如下操作:

在GPU计算结点A010的光线跟踪绘制程序A003中,利用三维平移变换技术,把三 维场景中的与体感交互者进行交互的几何对象朝着虚拟相机所在位置平移一个大小为 STATE×ΔL的位移,ΔL表示平移长度,为大于零的实数,变量STATE是从控制与显示计 算机102发给GPU计算结点A010的;其中,STATE=1实际上表示与体感交互者进行交 互的几何对象被平移后更靠近虚拟相机所在位置,STATE=-1实际上表示与体感交互者进 行交互的几何对象被平移后更远离虚拟相机所在位置,STATE=0表示与体感交互者进行 交互的几何对象原地不动;

Step010:转步骤Step004;

Step011:停止绘制。

在步骤Step004中,可以采用等分的方法把绘制三维场景时使用的虚拟相机的整个画 面像素区域等分成n个子区域,各子区域包含相同的像素行数和相同的像素列数,也可以 根据基于光线跟踪的三维场景GPU集群绘制系统的负载均衡方法来确定各个子区域的画 面像素起始行号、画面像素结束行号、画面像素起始列号和画面像素结束列号。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号