首页> 中国专利> 一种虚拟场景中的3D模型检测方法及装置

一种虚拟场景中的3D模型检测方法及装置

摘要

本发明适用于人机交互的模型检测领域,提供了一种虚拟场景中的3D模型检测方法及装置,所述方法包括:对应所述交互笔的空间姿态角,于所述虚拟场景中实时映射出一虚拟控制线;对应所述虚拟场景中的每一3D模型,分别构造出一包围体,所述包围体包裹住对应的3D模型;判断所述实时映射的虚拟控制线与3D模型的包围体是否相交;在所述虚拟控制线与3D模型的包围体相交时,判断所述虚拟控制线与相交的包围体对应的3D模型中的任一三角网格是否相交;在所述虚拟控制线与相交的包围体对应的3D模型中的任一三角网格相交时,判定所述虚拟控制线与相交的包围体对应的3D模型相交,以判定检测到3D模型。本发明实施例能够提高3D模型的检测精度。

著录项

  • 公开/公告号CN104102357A

    专利类型发明专利

  • 公开/公告日2014-10-15

    原文格式PDF

  • 申请/专利权人 TCL集团股份有限公司;

    申请/专利号CN201410317624.6

  • 发明设计人 邹英强;邵诗强;邓益群;

    申请日2014-07-04

  • 分类号G06F3/033(20130101);G06T17/00(20060101);

  • 代理机构44237 深圳中一专利商标事务所;

  • 代理人张全文

  • 地址 516006 广东省惠州市仲恺高新技术开发区十九号小区

  • 入库时间 2023-12-17 01:49:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-12-19

    授权

    授权

  • 2015-11-11

    实质审查的生效 IPC(主分类):G06F3/033 申请日:20140704

    实质审查的生效

  • 2014-10-15

    公开

    公开

说明书

技术领域

本发明属于人机交互的模型检测领域,尤其涉及一种虚拟场景中的3D模 型检测方法及装置。

背景技术

随着虚拟现实技术的深入研究与应用,三维可视化显示技术及人机交互技 术的进一步发展,人们可以渲染、设计出各种虚拟现实场景,并对虚拟场景中 的3D模型进行必要控制。而在控制虚拟场景中的3D模型之前,需要检测虚拟 场景中的3D模型。

目前,现有的虚拟场景中的3D模型检测方法主要通过以下方式实现:建 立一个射线簇,再检测建立的射线簇与检测体的相交性,并在检测到某个射线 与检测体相交时,根据检测体与模型的映射关系查找到命中的3D模型。由于 仅通过检测建立的射线簇与检测体的相交性来检测模型,因此检测精度过低。

发明内容

本发明实施例提供了一种虚拟场景中的3D模型检测方法,旨在解决现有 方法在检测3D模型时精度过低的问题。

本发明实施例是这样实现的,一种虚拟场景中的3D模型检测方法,所述 方法包括下述步骤:

对应所述交互笔的空间姿态角,于所述虚拟场景中实时映射出一虚拟控制 线;

对应所述虚拟场景中的每一3D模型,分别构造出一包围体,所述包围体 包裹住对应的3D模型,所述3D模型由多个三角网格组成;

判断所述实时映射的虚拟控制线与3D模型的包围体是否相交;

在所述虚拟控制线与3D模型的包围体相交时,判断所述虚拟控制线与相 交的包围体对应的3D模型中的任一三角网格是否相交;

在所述虚拟控制线与相交的包围体对应的3D模型中的任一三角网格相交 时,判定所述虚拟控制线与相交的包围体对应的3D模型相交,以判定检测到 3D模型。

本发明实施例的另一目的在于提供一种虚拟场景中的3D模型检测装置, 所述装置包括:

虚拟控制线生成单元,用于对应所述交互笔的空间姿态角,于所述虚拟场 景中实时映射出一虚拟控制线;

模型包围体构造单元,用于对应所述虚拟场景中的每一3D模型,分别构 造出一包围体,所述包围体包裹住对应的3D模型,所述3D模型由多个三角网 格组成;

模型包围体的相交性检测单元,用于判断所述实时映射的虚拟控制线与3D 模型的包围体是否相交;

模型三角网格的相交性检测单元,用于在所述虚拟控制线与3D模型的包 围体相交时,判断所述虚拟控制线与相交的包围体对应的3D模型中的任一三 角网格是否相交;

模型检测判定单元,用于在所述虚拟控制线与相交的包围体对应的3D模 型中的任一三角网格相交时,判定所述虚拟控制线与相交的包围体对应的3D 模型相交,以判定检测到3D模型。

在本发明实施例中,由于先对3D模型的包围体进行检测,在判断出交互 笔旋转后在虚拟场景中对应的方向向量与3D模型的包围体相交之后,才检测 交互笔旋转后在虚拟场景中对应的方向向量与3D模型中的任一个三角网格是 否相交,因此减少了运算量,从而有效提高检测虚拟环境场景中3D模型的速 度及精度。

附图说明

图1是本发明第一实施例提供的一种虚拟场景中的3D模型检测方法的流 程图;

图2是本发明第一实施例提供的姿态角的示意图;

图3是本发明第二实施例提供的一种虚拟场景中的3D模型检测装置的结 构图;

图4是本发明第二实施例提供的另一种虚拟场景中的3D模型检测装置的 结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅 仅用以解释本发明,并不用于限定本发明。

本发明实施例中,根据交互笔的空间姿态角,在虚拟场景中实时映射出一 虚拟控制线,以及根据存储的3D模型的顶点数据信息确定3D模型的包围体, 再判断所述虚拟控制线与3D模型的包围体是否相交,并在虚拟控制线与3D模 型的包围体相交时,判断所述虚拟控制线与相交的包围体对应的3D模型中的 任一三角网格是否相交,若相交,判定检测到3D模型。

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

实施例一:

图1示出了本发明第一实施例提供的一种虚拟场景中的3D模型检测方法 的流程图,详述如下:

步骤S11,对应所述交互笔的空间姿态角,于所述虚拟场景中实时映射出 一虚拟控制线。

该步骤中,交互笔是指用户与智能终端交互时使用的一种类似笔的形状的 操作工具,用户通过改变该交互笔的姿态实现与智能终端中的3D模型的互动。

其中,交互笔的姿态角包括交互笔的俯仰角、横滚角和偏航角。参见图2, 在图2中,Xg轴、Yg轴、Zg轴构成的坐标系为地面坐标系,Zg轴垂直于地 面并指向地心,Yg轴在水平面内垂直于Xg轴,其指向按右手定则确定;Xb 轴、Yb轴、Zb轴构成的坐标系为交互笔坐标系,Xb轴在交互笔平面内并平行 于交互笔的设计轴线,Yb轴垂直于交互笔对称平面指向交互笔右方,Zb轴在 交互笔对称平面内,与Xb轴垂直并指向交互笔下方。俯仰角是指交互笔坐标 系的Xb轴与水平面的夹角,当Xb轴的正半轴位于过坐标原点的水平面之上时, 俯仰角为正,否则为负;偏航角是指交互笔坐标系的Xb轴在水平面上的投影 与地面坐标系Xg轴之间的夹角,由Xg轴逆时针转至Xb轴的投影时,偏航角 为正,反之为负;横滚角是指交互笔坐标系Zb轴与通过Xb轴的铅垂面之间的 夹角,交互笔向右滚为正,反之为负。

优选地,在步骤S11,对应所述交互笔的空间姿态角,于所述虚拟场景中 实时映射出一虚拟控制线之前,包括下述步骤:

A1、确定初始的俯仰角和横滚角。该步骤中,通过安装在交互笔上的三轴 陀螺仪、三轴加速度计确定初始的俯仰角和横滚角。

A2、根据卡尔曼滤波以及所述初始的俯仰角和横滚角迭代确定最终的俯仰 角和横滚角。由于陀螺仪精度高,但长时间会有漂移,而加速度计动态精度差, 但没有长期漂移,因此,为了综合利用两者的优势,可通过卡尔曼滤波做数据 融合,以得到稳定的准确的俯仰角和横滚角。在该步骤中:将初始的俯仰角和 横滚角采用四元数表示,并作为卡尔曼滤波系统的状态量。将姿态运动学方程 作为卡尔曼滤波的状态转移方程,加速度信息作为滤波的观测信息,然后利用 卡尔曼滤波的计算方法进行迭代计算,将初始的俯仰角和横滚角更新为准确、 稳定的俯仰角和横滚角。

其中,四元数都是由实数加上三个元素i、j、k组成,而且它们有如下的 关系:i^2=j^2=k^2=ijk=-1。

A3、根据所述最终的俯仰角和横滚角以及交互笔所在坐标系的x轴、y轴、 z轴的磁场强度分量,确定水平面内的磁场强度分量。该步骤中,交互笔所在 坐标系的x轴、y轴、z轴的磁场强度分量可通过安装在交互笔上的三轴磁力计 获得。假设由三轴磁力计测出的x轴、y轴、z轴的磁场强度分量分别为hx,hy,hz, 确定的最终的俯仰角为θ,横滚角为γ,由于交互笔所在的坐标系xyz绕x轴旋 转,再绕y轴旋转后,交互笔所在的坐标系的xoy平面便于地面坐标系的水平 面XOY重合,因此,利用上述关系可得到如下等式:

HXHYHZ=Rpitch·Rrollhxhyhz,其中,HX、HY、HZ为地面坐标系的水平面内 磁场强度分量,Rpitch=cosθ0-sin010sinθ0cosθ,Rroll=1000cosγsinγ0sinγcosγ

Rpitch为交互笔所在的坐标系xyz绕y轴旋转θ角度后得到的旋转矩阵, Rroll为交互笔所在的坐标系xyz绕x轴旋转γ角度后得到的旋转矩阵。将上述 等式展开,得到:

HX=hx·cosγ+hy·sinγ·sinθ+hz·cosγ·sinθ

HY=hy·cosγ-hz·sinγ

HZ=-hx·sinθ+hy·sinγ·cosθ+hz·cosθ·cosγ

上述的“·”是指内积,通过上面3个公式得到HX、HY

A4、根据确定的水平面内的磁场强度分量确定偏航角。

偏航角=arctan(HY/HX),HX、HY为地面坐标系的水平面内磁场强度分 量。

在确定交互笔的空间姿态角之后,对应所述交互笔的空间姿态角,于所述 虚拟场景中实时映射出一虚拟控制线,具体包括下述步骤:

B1、根据所述交互笔的姿态角确定所述交互笔的旋转矩阵。具体地:B11、 确定交互笔所在坐标系绕y轴旋转θ角度后得到的矩阵,所述θ为俯仰角。由步 骤S11可知,交互笔所在坐标系绕y轴旋转θ角度后得到的矩阵为 Rpitch=cosθ0-sin010sinθ0cosθ.B12、确定交互笔所在坐标系绕z轴旋转α角度后 得到的矩阵,所述α为偏航角。假设交互笔所在坐标系绕z轴旋转α角度后得到 的矩阵为Rz(α),则Rz(α)=cosα-sin0sinαcosα0001.B13、确定交互笔所在坐标系绕x 轴旋转γ角度后得到的矩阵,所述γ为横滚角。由步骤S11可知,交互笔所在坐 标系绕x轴旋转γ角度后得到的矩阵为Rroll=1000cosγsinγ0sinγcosγ.B14、根据确 定的所述交互笔所在坐标系绕y轴旋转θ角度后得到的矩阵、所述交互笔所在 坐标系绕z轴旋转α角度后得到的矩阵以及所述交互笔所在坐标系绕x轴旋转γ 角度后得到的矩阵确定交互笔的旋转矩阵。假设旋转矩阵为R,则 R=Rroll·Rz(α)·Rpitch=Rroll=1000cosγsinγ0sinγcosγcosα-sinα0sinαcosα0001cosθ0-sinθ010sinθ0cosθ展开得到: R=cosθ·cosαcosθ·(-sinα)·cosγ-sinθ·sinγcosθ·sinα·sinγ-sinθ·cosγsinαcosα·cosγcosα·(-sinγ)sinθ·cosαsinθ·(-sinα)·cosγ+cosθ·sinγsinθ·sinα·sinγ+cosθ·cosγ.

B2、根据所述交互笔的旋转矩阵、预设的虚拟场景中的原点以及预设的交 互笔的初始方向向量,在虚拟场景中实时渲染出所述交互笔旋转后对应的虚拟 控制线。该步骤中,假设预设的交互笔的初始方向向量为交互笔旋转后在 虚拟场景中对应的方向向量(即实时映射的虚拟控制线)为R为旋转矩阵, 则其中“·”表示内积运算。若确定了虚拟场景中的原点,则可确定 交互笔旋转后在虚拟场景中对应的方向向量(即实时映射的虚拟控制线)所在 的位置。具体地,在预设的虚拟场景中的原点,将所述交互笔旋转后在虚拟场 景中对应的方向向量绘制为指定长度的虚拟控制线。该步骤中,可利用图形渲 染工具OpenGL,在预设的虚拟场景中的原点沿着交互笔旋转后在虚拟场景中 对应的方向向量方向,绘制出一条一定长度的虚拟控制线,从而将交互笔的 空间姿态信息通过虚拟控制线实时呈现出来,便于用户直观获知交互笔的当前 状态。

步骤S12,对应所述虚拟场景中的每一3D模型,分别构造出一包围体,所 述包围体包裹住对应的3D模型,所述3D模型由多个三角网格组成。

该步骤中,由于每个3D模型由多个三角网格组成,因此,3D模型的顶点 数据信息为组成该3D模型的多个三角网格对应的顶点数据信息。构建一个3D 模型的包围体时,比较该3D模型中各个定点数据信息,判断哪个坐标是3D模 型在x轴的最大顶点坐标、最小顶点坐标;判断哪个坐标是3D模型在y轴的 最大顶点坐标、最小顶点坐标;判断哪个坐标是3D模型在z轴的最大顶点坐 标、最小顶点坐标。在确定上述列举的6个坐标后,该6个坐标就作为该3D 模型的包围体的顶点坐标。

步骤S13,判断所述实时映射的虚拟控制线与3D模型的包围体是否相交。

其中,所述判断所述实时映射的虚拟控制线与3D模型的包围体是否相交 的步骤具体包括:

C1、确定所述虚拟控制线对应的函数f(x,y,z),f(x,y,z)任一点在x轴、y 轴、z轴的分量为fx(x,y,z)、fy(x,y,z)、fz(x,y,z)。该步骤中,虚拟控制线对应 的函数f(x,y,z)通过预设的虚拟场景中的原点。

C2、判断f(x,y,z)任一点在x轴、y轴、z轴的分量fx(x,y,z)、fy(x,y,z)、fz(x,y,z) 是否都满足以下条件:

min x≤fx(x,y,z)≤max x;

min y≤fy(x,y,z)≤max y;

min z≤fz(x,y,z)≤max z;

其中,所述min x、max x、min y、max y、min z、max z为所述包 围体的顶点坐标。该步骤中, min x、max x、min y、max y、min z、max z分别为3D模型在x轴的最 小顶点坐标、最大顶点坐标;在y轴的最小顶点坐标、最大顶点坐标;在z轴 的最小顶点坐标、最大顶点坐标。

C3、在f(x,y,z)任一点在x轴、y轴、z轴的分量fx(x,y,z)、fy(x,y,z)、fz(x,y,z) 都满足上述条件时,判定所述虚拟控制线与3D模型的包围体相交,否则,判 定所述虚拟控制线与3D模型的包围体不相交。该步骤中,一旦检测到虚拟控 制线与某个3D模型的包围体相交,即可排除虚拟控制线与其他剩余的3D模型 相交的可能性,即不必去检测虚拟控制线与其他3D模型的包围体是否相交, 从而大大加快了3D模型的检测速度,并且,由于根据虚拟控制线的顶点的坐 标与3D模型的包围体的坐标判断虚拟控制线和包围体的相交性,因此,判断 结果不会受到3D模型是否被遮挡的影响,从而能够提高虚拟场景中被遮挡3D 模型的检测效率。

步骤S14,在所述虚拟控制线与3D模型的包围体相交时,判断所述虚拟控 制线与相交的包围体对应的3D模型中的任一三角网格是否相交。

当确定与某个3D模型的包围体相交后,接下来进行虚拟控制线与3D模型 的三角网格的具体相交性检测。

其中,所述在所述虚拟控制线与3D模型的包围体相交时,判断所述虚拟 控制线与相交的包围体对应的3D模型中的任一三角网格是否相交的步骤具体 包括:

假设3D模型中任一三角网格对应的三角形的参数方程为 (1-u-v)V0+uV1+vV2,其中,(1-u-v)、u、v分别为三角形三个顶点的权重;V0,V1,V2为三角形三个顶点的坐标;

根据预设的虚拟场景中的原点、所述虚拟控制线以及3D模型中的任一三 角网格的三个顶点坐标,判断u、v是否满足以下条件:u≥0,v≥0,u+v≤1, 若满足,判定所述虚拟控制线与相交的包围体对应的3D模型中的所述任一三 角网格相交,否则,判定所述虚拟控制线与相交的包围体对应的3D模型中的 所述任一三角网格不相交。

假设预设的虚拟场景中的原点为O,虚拟控制线的方向为D,则该虚拟控 制线可以表示为O+D·t(该表达式与上述C1出现的f(x,y)都能表示控制线), t≠0。由于3D模型的每个三角网格的顶点都存储在顶点数组中,因此可按照 顶点的存储顺序,依次对每个三角网格进行相交性检测。假设某个三角网格的 顶点分别为V0,V1,V2,且u,v分别是顶点V1,V2的权重,则三角网格的参数方程可 以表示为(1-u-v)V0+uV1+vV2,当满足u≥0,v≥0,u+v≤1的时候,判定与该三角网 格相交。而判断u、v是否满足上述条件,则需先确定u、v的值,具体通过以下 步骤确定u、v的值:

根据O+D·t=(1-u-v)V0+uV1+vV2等式求出未知数t,如果t不为零,则说 明虚拟控制线与该三角网格相交,即检测到具体的3D模型了。根据 O+D·t=(1-u-v)V0+uV1+vV2可得线性方程组:

-DV1-V0V2-V0tuv=o-V0,令E1=V1-V0,E2=V2-V0,T=o-V0得到 -DE1E2tuv=T,由克莱姆法则得tuv=1|-DE1E2|TE1E2-DTE2-DE1T

其中,“||”表示矩阵的行列式。

再根据混合积公式|a b c|=a×b·c=-a×c·b,其中,“×”表示外积计算, “·”表示内积计算。tuv=1|-DE1E2|TE1E2-DTE2-DE1T式可以改成:

tuv=1|D×E2·E1|T×E1·E2D×E2·TT×E1·D,令P=D×E2,Q=T×E1

最终可化简为tuv=1|P·E1|Q·E2P·TQ·D

根据上述最终简化的公式得到u、v的计算公式,然后可以通过下述方法来 确认u、v是否符合“u≥0,v≥0,u+v≤1”这一条件:

令ε是一个非常接近0的正浮点数,令det=|P·E1|,若det<ε,立即结束 与当前三角网格的相交性判断,进入与下一个三角网格的判断。若det≥ε,则 令u′=P·T,若u′<0或u′>det,判定最终计算出的u值不符合条件,则立即 跳出当前的判断,进入与下一个三角网格的判断。若u′≥0或u′≤det,令v′=Q·D, 若v′<0或u′+v′>det,判定最终计算出的v值不符合条件,则立即跳出当前的 判断,进入与下一个三角网格的判断。否则,若det≥ε、u′≥0或u′≤det,且v′≤0 或u′+v′≤det时,即可判断该虚拟控制线与某个具体的三角网格相交。

由于同一个三角网格存在正面和反面,在与三角网格的检测过程中,只检 测与三角网格正面的相交,可以节省一半检测时间,当检测到与某个具体三角 网格相交时,记录交点及对应3D模型的包围体的编号,检测完毕。

步骤S15,在所述虚拟控制线与相交的包围体对应的3D模型中的任一三角 网格相交时,判定所述虚拟控制线与相交的包围体对应的3D模型相交,以判 定检测到3D模型。

该步骤中,在3D模型的所有三角网格中,只要判断出虚拟控制线与其中 任意一个三角网格相交了,即可立即判断出虚拟控制线已经检测到某个具体的 3D模型,不再进行后续的相交检测。

在本发明第一实施例中,搜集交互笔的姿态角信息,根据搜集的交互笔的 姿态角确定所述交互笔的旋转矩阵,再根据所述交互笔的旋转矩阵、预设的虚 拟场景中的原点以及预设的交互笔的初始方向向量,在虚拟场景中实时映射出 一虚拟控制线,最后根据存储的3D模型的顶点数据信息确定3D模型的包围体 之后,判断所述虚拟控制线与3D模型的包围体是否相交、判断所述虚拟控制 线与相交的包围体对应的3D模型中的任一三角网格是否相交,以便判断是否 检测到3D模型。由于先对3D模型的包围体进行检测,在判断出虚拟控制线与 3D模型的包围体相交之后,才检测虚拟控制线与3D模型中的任一个三角网格 是否相交,因此减少了运算量,从而有效提高检测虚拟环境场景中3D模型的 速度及精度。

实施例二:

图3示出了本发明第二实施例提供的一种虚拟场景中的3D模型检测装置 的结构图,为了便于说明,仅示出了与本发明实施例相关的部分。

该虚拟场景中的3D模型检测装置包括:虚拟控制线生成单元31、模型包 围体构造单元32、模型包围体的相交性检测单元33、模型三角网格的相交性检 测单元34、模型检测判定单元35。其中:

虚拟控制线生成单元31,用于对应所述交互笔的空间姿态角,于所述虚拟 场景中实时映射出一虚拟控制线。

其中,交互笔的姿态角包括交互笔的俯仰角、横滚角和偏航角,交互笔的 姿态角通过以下方式确定:

图4示出了本发明另一实施例提供的一种虚拟场景中的3D模型检测装置 的结构图,此时,所述虚拟场景中的3D模型检测装置包括:

初始俯仰角和横滚角确定单元36,用于确定交互笔初始的俯仰角和横滚 角。其中,通过安装在交互笔上的三轴陀螺仪、三轴加速度计确定初始的俯仰 角和横滚角。

最终俯仰角和横滚角确定单元37,用于根据卡尔曼滤波以及所述初始的俯 仰角和横滚角迭代确定最终的俯仰角和横滚角。将初始的俯仰角和横滚角采用 四元数表示,并作为卡尔曼滤波系统的状态量。将姿态运动学方程作为卡尔曼 滤波的状态转移方程,加速度信息作为滤波的观测信息,然后利用卡尔曼滤波 的计算方法进行迭代计算,将初始的俯仰角和横滚角更新为准确、稳定的俯仰 角和横滚角。

磁场强度分量确定单元38,用于根据所述最终的俯仰角和横滚角以及交互 笔所在坐标系的x轴、y轴、z轴的磁场强度分量,确定水平面内的磁场强度分 量。

偏航角确定单39元,用于根据确定的水平面内的磁场强度分量确定偏航 角。

优选地,虚拟控制线生成单元31包括:

旋转矩阵确定模块311,用于根据所述交互笔的姿态角确定所述交互笔的 旋转矩阵。该交互笔的旋转矩阵包括交互笔所在坐标系绕y轴旋转θ角度后得 到的矩阵,所述θ为俯仰角;交互笔所在坐标系绕z轴旋转α角度后得到的矩阵, 所述α为偏航角;交互笔所在坐标系绕x轴旋转γ角度后得到的矩阵,所述γ为 横滚角。

虚拟控制线渲染模块312,用于根据所述交互笔的旋转矩阵、预设的虚拟 场景中的原点以及预设的交互笔的初始方向向量,在虚拟场景中实时渲染出所 述交互笔旋转后对应的虚拟控制线。假设预设的交互笔的初始方向向量为交互笔旋转后在虚拟场景中对应的方向向量(即实时映射的虚拟控制线)为R为旋转矩阵,则其中“·”表示内积运算。

模型包围体构造单元32,用于对应所述虚拟场景中的每一3D模型,分别 构造出一包围体,所述包围体包裹住对应的3D模型,所述3D模型由多个三角 网格组成。

其中,3D模型的包围体是由3D模型在x轴的最大顶点坐标、最小顶点坐 标、在y轴的最大顶点坐标、最小顶点坐标、在z轴的最大顶点坐标、最小顶 点坐标这6个坐标组成。

模型包围体的相交性检测单元33,用于判断所述实时映射的虚拟控制线与 3D模型的包围体是否相交。

具体地,模型包围体的相交性检测单元单元33包括:

向量函数确定模块331,用于确定所述虚拟控制线对应的函数f(x,y,z), f(x,y,z)任一点在x轴、y轴、z轴的分量为fx(x,y,z)、fy(x,y,z)、fz(x,y,z)。

相交条件判断模块332,用于判断f(x,y,z)任一点在x轴、y轴、z轴的分 量fx(x,y,z)、fy(x,y,z)、fz(x,y,z)是否都满足以下条件:

min x≤fx(x,y,z)≤max x;

min y≤fy(x,y,z)≤max y;

min z≤fz(x,y,z)≤max z。

其中,所述min x、max x、min y、max y、min z、max z为所述包 围体的顶点坐标。其中,min x、max x、min y、max y、min z、max z分 别为3D模型在x轴的最小顶点坐标、最大顶点坐标;在y轴的最小顶点坐标、 最大顶点坐标;在z轴的最小顶点坐标、最大顶点坐标。

包围体相交判断模块333,用于在f(x,y,z)任一点在x轴、y轴、z轴的分 量fx(x,y,z)、fy(x,y,z)、fz(x,y,z)都满足上述条件时,判定所述虚拟控制线与3D 模型的包围体相交,否则,判定所述虚拟控制线与3D模型的包围体不相交。

模型三角网格的相交性检测单元34,用于在所述虚拟控制线与3D模型的 包围体相交时,判断所述虚拟控制线与相交的包围体对应的3D模型中的任一 三角网格是否相交。

具体地,模型三角网格的相交性检测单元34包括:

顶点权重值范围判断模块341,用于在3D模型中任一三角网格对应的三角 形的参数方程为(1-u-v)V0+uV1+vV2时,根据预设的虚拟场景中的原点、所述虚 拟控制线以及3D模型中的任一三角网格的三个顶点坐标,判断u、v是否满足 以下条件:u≥0,v≥0,u+v≤1,其中,(1-u-v)、u、v分别为三角形三个顶 点的权重;V0,V1,V2为三角形三个顶点的坐标。

三角网格相交性判定模块342,用于在u、v满足u≥0,v≥0,u+v≤1时, 判定所述虚拟控制线与相交的包围体对应的3D模型中的所述任一三角网格相 交,在u、v不满足u≥0,v≥0,u+v≤1时,判定所述虚拟控制线与相交的包 围体对应的3D模型中的所述任一三角网格不相交。

具体的检测过程与实施例一的相同,此处不再赘述。

模型检测判定单元35,用于在所述虚拟控制线与相交的包围体对应的3D 模型中的任一三角网格相交时,判定所述虚拟控制线与相交的包围体对应的3D 模型相交,以判定检测到3D模型。

在本发明第二实施例中,由于先对3D模型的包围体进行检测,在判断出 虚拟控制线与3D模型的包围体相交之后,才检测虚拟控制线与3D模型中的任 一个三角网格是否相交,因此减少了运算量,从而有效提高检测虚拟环境场景 中3D模型的速度及精度。

本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤 是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机 可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发 明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明 的保护范围之内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号