CN102799435B - 一种3d控件交互方法及系统 - Google Patents
一种3d控件交互方法及系统 Download PDFInfo
- Publication number
- CN102799435B CN102799435B CN201210245917.9A CN201210245917A CN102799435B CN 102799435 B CN102799435 B CN 102799435B CN 201210245917 A CN201210245917 A CN 201210245917A CN 102799435 B CN102799435 B CN 102799435B
- Authority
- CN
- China
- Prior art keywords
- control object
- control
- coordinate
- position coordinate
- relative
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明适用电视技术领域,提供了一种3D控件交互方法及系统,包括:进入并渲染预设的3D控件交互场景,接收用户对上述任一3D控件物体的移动操作指令,对任一3D控件物体进行移动,获取第一3D控件物体的原始位置坐标,获取用户操作的第一3D控件物体屏幕移动向量,根据屏幕移动向量与第一位置坐标计算移动后第一3D控件物体的第二位置坐标,当第二位置坐标与第二3D控件物体的原始位置坐标满足预设条件时,对第一3D控件物体与第二3D控件物体进行渲染,以实现一个3D控件物体相对于另一个3D控件物体的移进或移出操作。本发明降低了3D控件移动过程的计算复杂性及3D控件裁剪过程中裁剪区域的计算复杂性,提高了操作的响应速度。
Description
技术领域
本发明属于电视技术领域,尤其涉及一种3D控件交互方法及系统。
背景技术
由于3D图形具有较强的立体真实感,拥有3D图形效果的控件(如图标等)越来越受到用户的喜爱。在家电行业,新兴起的3D智能电视通常也是采用3D主界面,在界面上添加丰富的3D动画效果吸引用户的眼球。然而现有的3D电视与用户进行交互的效果不佳,比如只是在观看3D视频时候才能呈现3D效果,在3D交互方面有待改进。
一般来说,智能电视中3D控件的交互效果显示都是通过3D引擎软件模拟出来的,而3D控件状态的变化需要占用大量的CPU计算,例如,将3D控件移动至相应的控件容器,对3D控件进行裁剪等,若模拟过程中事件线程处理该事件的时间过长会导致系统的应用程序无响应(ApplicationNotResponding,ANR)产生,降低了3D显示装置的显示效果。
发明内容
本发明实施例的目的在于提供一种3D控件交互方法,旨在解决由于现有技术无法提供一种有效的3D控件交互方法,导致系统响应速度较慢的问题。
本发明实施例是这样实现的,一种3D控件交互方法,所述方法包括下述步骤:
A、进入并渲染预设的3D控件交互场景,所述3D控件交互场景包括至少两个3D控件物体,所述3D控件物体具有控件大小属性与装载、被装载方法;
B、接收用户对上述任一3D控件物体的移动操作指令,对所述任一3D控件物体进行移动,将被操作的3D控件物体记为第一3D控件物体,获取所述第一3D控件物体的原始位置坐标,将所述原始位置坐标记为第一位置坐标,相对于第一3D控件物体操作的3D控件物体记为第二3D控件物体,获取用户操作的第一3D控件物体屏幕移动向量,根据所述屏幕移动向量与第一位置坐标计算移动后所述第一3D控件物体的第二位置坐标;
C、检测所述第一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控件物体的移进或移出操作。
本发明实施例在接收用户对任一3D控件物体的移动操作指令时,获取用户操作的第一3D控件物体屏幕移动向量,根据屏幕移动向量与第一位置坐标计算移动后第一3D控件物体的第二位置坐标,从而提高了控件移动后位置坐标的获取速度,当第二位置坐标与第二3D控件物体的原始位置坐标满足预设条件时,根据第一3D控件物体与第二3D控件物体的大小关系,对第一3D控件物体与第二3D控件物体进行渲染,实现了一个3D控件物体相对于另一个3D控件物体的移进或移出操作,从而提高了3D控件与可作为交互容器的3D控件之间交互操作的效果,并且提高响应速度,进而提高了3D显示装置的显示效果。
附图说明
图1是本发明实施例一提供的3D控件交互方法的实现流程图;
图2是本发明实施例二提供的3D控件交互方法的实现流程图;
图3是本发明实施例三提供的3D控件交互方法的实现流程图;
图4是本发明实施例四提供的3D控件交互方法的实现流程图;
图5是图4的3D控件裁剪示意图;以及
图6是本发明实施例五提供的3D控件交互系统的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下结合具体实施例对本发明的具体实现进行详细描述:
实施例一:
图1示出了本发明实施例一提供的3D控件交互方法的实现流程,详述如下:
在步骤S101中、进入并渲染预设的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控件物体。
在步骤S102中、接收用户对步骤S101中任一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控件物体的变换,例如,3D控件物体的缩放、旋转等操作,为了方便对第一3D控件物体的移动进行统一处理,提高位置变化后第一3D物体坐标的计算速度,第一3D控件物体的位置坐标以四维向量[x,y,z,1]表示,其中,x为第一3D控件物体的x轴坐标,y为第一3D控件物体的y轴坐标,z为第一3D控件物体的z轴坐标,1为向量第四维的值。根据第一3D控件物体的屏幕移动向量,生成移动操作的转换矩阵过程如下:
(1)当第一3D控件物体发生平移变化时,生成移动操作的转换矩阵 其中,dx为3D控件沿x轴平移的距离,dy为3D控件沿y轴平移的距离,dz为3D控件沿z轴平移的距离。
(2)当所述第一3D控件物体发生缩放变化时,生成移动操作的转换矩阵 其中,Sx为3D控件沿x轴缩放的倍数,Sy为3D控件沿y轴缩放的倍数,Sz为3D控件沿z轴缩放的倍数。
(3)当所述第一3D控件物体围绕x轴旋转时,生成移动操作的转换矩阵 其中,θ为旋转的角度。
(4)当所述第一3D控件物体围绕y轴旋转时,生成移动操作的转换矩阵 其中,θ为旋转的角度。
当所述第一3D控件物体围绕z轴旋转时,生成移动操作的转换矩阵 其中,θ为旋转的角度。
计算第一3D控件物体的第二位置坐标时,只要将第一3D控件物体的第一位置坐标与对应的转换矩阵作乘法运算,就可以获得第一3D控件物体的第二位置坐标。当操作的第一3D控件物体既发生了平移,又发生了缩放时,只要乘以相应的转换矩阵就可以实现相应的操作。因此,在本发明实施例中,只要通过乘以相应的转换矩阵就可获得第一3D控件物体位置变换后的坐标,降低了矩阵位置变换过程中新位置坐标的计算复杂度,提高了第一3D控件物体的操作的响应速度。
在步骤S103中、检测第一3D控件物体的第二位置坐标,当第二位置坐标与第二3D控件物体的原始位置坐标满足预设条件时,根据第一3D控件物体与第二3D控件物体的大小关系,对第一3D控件物体与第二3D控件物体进行渲染,以实现一个3D控件物体相对于另一个3D控件物体的移进或移出操作。所述的移进或者移出的操作在于根据用户对控件的操作动作判断用户的操作意向,并根据用户的操作意向实现一个3D控件物体相对于另一个3D控件物体的移进或移出操作。
在本发明实施例中,第一3D控件物体的第二位置坐标与第二3D控件物体的原始位置坐标满足的预设条件可以是第一3D控件物体的第二位置坐标与第二3D控件物体原始位置坐标之间的距离达到预设的阈值,也可以是第一3D控件物体在第二位置坐标的有效平面区域与第二3D控件物体的有效平面区域的重叠比例达到预设的重叠比例。其中,有效平面区域是指3D控件物体在屏幕上投影形成的二维平面区域。例如,当移动后两个3D控件物体中的一个的有效平面区域完全叠加在另一个的有效平面区域上,则重叠比例为100%,当重叠比例为80%时,表明第一3D控件物体的有效平面区域的80%叠加在第二3D控件物体的有效平面区域上。优选地,所述预设的重叠比例的100%。
本发明实施例在接收用户对任一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控件物体。
图2示出了本发明实施例二提供的3D控件交互方法的实现流程,详述如下:
在步骤S201中,进入并渲染预设的3D控件交互场景,所述3D控件交互场景包括至少两个3D控件物体,所述3D控件物体具有控件大小属性与装载、被装载方法。
在步骤S202中,接收用户对步骤S201中任一3D控件物体的移动操作指令,对所述任一3D控件物体进行移动,获取第一3D控件物体的原始位置坐标。
在本发明实施例中,将被操作的3D控件物体记为第一3D控件物体,将第一3D控件物体的原始位置坐标记为第一位置坐标,相对于第一3D控件物体操作的3D控件物体记为第二3D控件物体,所述的第二3D控件物体可以为3D场景中其他不被操作的3D控件物体中的一个。
在步骤S203中,获取用户操作的第一3D控件物体屏幕移动向量,根据屏幕移动向量与第一位置坐标计算移动后第一3D控件物体的第二位置坐标,所述第一3D控件物体与第二3D控件物体原始坐标从属于全局坐标系,第二位置坐标与第二3D控件物体的原始位置坐标满足预设条件。
在本发明实施例中,第一3D控件物体与第二3D控件物体原始位置坐标从属于全局坐标系,在计算移动后第一3D控件物体的第二位置坐标时,其计算方法与实施例一中的计算方法相同,只需将第一3D控件物体的原始位置坐标(全局坐标)与相应的转换矩阵即可得到第二位置坐标(全局坐标),在此不再赘述。第一3D控件物体的第二位置坐标与第二3D控件物体的原始位置坐标满足的预设条件可以是第一3D控件物体的第二位置坐标与第二3D控件物体原始位置坐标之间的距离达到预设的阈值,优选地,预设条件为第一3D控件物体在第二位置坐标的有效平面区域与第二3D控件物体的有效平面区域的重叠比例达到预设的重叠比例。
在步骤S204中,当判断第一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控件物体的坐标存在如下转换关系: 其中M1为全局坐标系下的3D控件物体的坐标、M2为相对坐标系下的3D控件物体的坐标、 为表示相对坐标系的矩阵:其中r11、r12、r13、r21、r22、r23、r31、r32、r33、Δx、Δy、Δz预设的数值。因此,可得 通过该等式,在已知第一3D控件物体的第二位置坐标(全局坐标)以及表示第二3D控件物体相对坐标系的矩阵时,即可获得第一3D控件物体在第二3D控件物体相对坐标系下的相对坐标。
在步骤S205中,当判断第一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控件物体在第一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控件物体。
图3示出了本发明实施例三提供的3D控件交互方法的实现流程,详述如下:
在步骤S301中,进入预设的3D控件交互场景,当第一3D控件物体从属于第二3D控件物体的相对坐标系时,根据预设的3D控件渲染顺序,渲染第一3D控件物体为3D控件,第二3D控件物体为3D交互容器,并且3D控件内置与3D交互容器中。
在本发明实施例中,3D控件物体具有控件大小属性与装载、被装载方法。
在步骤S302中,将3D控件在3D交互容器相对坐标系中的原始坐标设置为第一位置坐标,对3D控件进行移动,获取3D控件的屏幕移动向量,根据屏幕移动向量以及第一位置坐标计算3D控件在3D交互容器相对坐标系下的第二位置坐标。
在本发明实施例中,在计算移动后第一3D控件物体的第二位置坐标时,其计算方法与实施例一、二中的计算方法相同,只需将第一3D控件物体的原始位置坐标(相对坐标)与相应的转换矩阵即可得到第二位置坐标(相对坐标),在此不再赘述。
在步骤S303中,当3D控件的第二位置坐标与3D交互容器的原始位置坐标满足预设条件时,获取3D控件在全局坐标系下的全局坐标,并将3D控件的坐标设置为全局坐标。
在本发明实施例中,当3D控件的第二位置坐标与3D交互容器的原始位置坐标满足预设条件时,将3D控件在3D交互容器相对坐标系中的相对坐标(第二位置坐标)转换为全局坐标系下的全局坐标,以获得3D控件在全局坐标系下的全局坐标,并将3D控件的坐标设置为全局坐标。其中,3D控件的第二位置坐标与3D交互容器的原始位置坐标满足的预设条件可以是3D控件的第二位置坐标与3D交互容器原始位置坐标之间的距离达到预设的阈值,优选地,预设条件为3D控件物体在第二位置坐标的有效平面区域与第二3D控件物体的有效平面区域的重叠比例达到预设的重叠比例,优选地,预设的重叠比例为0.5。其中,获取3D控件在全局坐标系下的全局坐标的方法已在实施二中描述,在此不再赘述。
在步骤S304中,根据3D控件的全局坐标以及预设的3D控件渲染顺序对3D控件进行渲染,使得3D控件呈现移出3D交互容器的效果。
在本发明实施例中,当第一3D控件物体从属于第二3D控件物体的相对坐标系时,则表明在未进行移动操作前,第一3D控件物体位于第二3D控件物体内部,通过移动操作将第一3D控件物体移出第二3D控件物体后,将第一3D控件物体的相对坐标转换为全局坐标,并根据3D控件的全局坐标以及预设的3D控件渲染顺序对3D控件进行渲染,使得3D控件呈现移出3D交互容器的效果,从而降低了第一3D控件物体移出第二3D控件物体过程中的复杂度,提高了用户交互操作的响应速度。
实施例四:
图4示出了本发明实施例四提供的3D控件交互方法的实现流程,详述如下:
在步骤S401中,进入并渲染预设的3D控件交互场景,所述3D控件交互场景包括至少两个3D控件物体,所述3D控件物体具有控件大小属性与装载、被装载方法。
在步骤S402中,接收用户对步骤S201中任一3D控件物体的移动操作指令,对所述任一3D控件物体进行移动,获取第一3D控件物体的原始位置坐标。
在步骤S403中,获取用户操作的第一3D控件物体屏幕移动向量,根据屏幕移动向量与第一位置坐标计算移动后第一3D控件物体的第二位置坐标,所述第一3D控件物体与第二3D控件物体原始坐标从属于全局坐标系,第二位置坐标与第二3D控件物体的原始位置坐标满足预设条件。
在步骤S404中,当判断第一3D控件物体的大小小于第二3D控件物体的大小时,将第一3D控件物体渲染为3D控件,第二3D控件物体渲染为3D交互容器。
在步骤S405中,当判断第一3D控件物体的大小大于第二3D控件物体的大小时,将第二3D控件物体渲染为3D控件,第一3D控件物体渲染为3D交互容器。
在本发明实施例中,步骤S401至步骤S405的实施方式与步骤S201至步骤S205对应相同,在此不再赘述。
在步骤S406中,当3D控件在3D交互容器相对坐标系中的相对坐标发生改变时,获取3D控件在3D交互容器相对坐标系中的相对坐标发生改变后的相对坐标,当该相对坐标满足预设的裁剪条件时,根据3D控件与3D交互容器的大小、3D控件与3D交互容器的位置关系生成裁剪区域,对3D控件进行裁剪。
在本发明实施例中,当对移入3D交互容器中的3D控件或位于3D交互容器中的3D控件进行移动时,若3D控件被其它控件或3D交互容器边缘遮住时,需要对遮住部分进行裁减。首先,获取3D控件在3D交互容器相对坐标系中的相对坐标发生改变后的相对坐标,当该相对坐标满足预设的裁剪条件时,例如当3D控件的某一组成部分的相对坐标超出了3D交互容器时,根据3D控件与3D交互容器的大小、3D控件与3D交互容器的位置关系生成裁剪区域,对3D控件进行裁剪。在具体实施过程中,可通过OpenGL对超出裁剪区域的3D控件进行隐藏,从而减少3D控件裁剪时的计算时间。
具体地,设置3D交互容器所封闭的空间为裁剪区域,对3D控件超出所述裁剪区域的部分进行隐藏。裁剪区域可以是一个3D交互容器的窗口,作为示例地,如图5所示,其中20为一个3D交互容器,其封闭的空间为裁剪区域,21为屏幕(例如,电视机的屏幕),22为3D控件。图中3D控件22超出裁剪区域20的部分已被裁剪。
在本发明实施例中,当3D控件在3D交互容器相对坐标系中的相对坐标发生改变后,若满足预设的裁剪条件,则根据3D控件与3D交互容器的大小、3D控件与3D交互容器的位置关系生成裁剪区域,并对3D控件进行裁剪,达到了较佳的视觉效果,同时简化了3D控件的裁剪复杂性,提高了3D控件对交互操作的响应速度。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。
实施例五:
图6示出了本发明实施例五提供的3D控件交互系统的结构,为了便于说明,仅示出了与本发明实施例相关的部分,该3D控件交互系统6包括:
交互场景渲染单元61,用于进入并渲染预设的3D控件交互场景,所述3D控件交互场景包括至少两个3D控件物体,所述3D控件物体具有控件大小属性与装载、被装载方法;
3D控件物体移动单元62,用于接收用户对交互场景渲染单元61中任一3D控件物体的移动操作指令,对所述任一3D控件物体进行移动,将被操作的3D控件物体记为第一3D控件物体,获取第一3D控件物体的原始位置坐标,将原始位置坐标记为第一位置坐标,相对于第一3D控件物体操作的3D控件物体记为第二3D控件物体,所述的第二3D控件物体可以为3D场景中其他不被操作的3D控件物体中的一个。获取用户操作的第一3D控件物体屏幕移动向量,根据屏幕移动向量与第一位置坐标计算移动后第一3D控件物体的第二位置坐标。
操作实现单元63,用于检测第一3D控件物体的第二位置坐标,当第二位置坐标与第二3D控件物体的原始位置坐标满足预设条件时,根据第一3D控件物体与第二3D控件物体的大小关系,对第一3D控件物体与第二3D控件物体进行渲染,以实现一个3D控件物体相对于另一个3D控件物体的移进或移出操作。所述的移进或者移出的操作在于根据用户对控件的操作动作判断用户的操作意向,并根据用户的操作意向实现一个3D控件物体相对于另一个3D控件物体的移进或移出操作。
本发明实施例在3D控件交互操作中,实现了较佳的3D交互效果,在智能电视上,实现通过用户的手势操作,对桌面应用图标或者其他物体对象进行有空间感的移动与管理,提高了用户体验。另一方面通过将3D控件的全局坐标转换为3D交互容器相对坐标系下的相对坐标,可以有效地减少3D控件移动等交互操作过程中新坐标的计算过程,提高了交互操作的响应速度,并当3D控件在3D交互容器相对坐标系中的相对坐标发生改变后的相对坐标满足预设的裁剪条件时,通过隐藏3D控件超出裁剪区域的部分对3D控件进行裁剪,降低了3D控件裁剪过程中裁剪区域的计算复杂性,提高了操作的响应速度,简化了3D控件的裁剪过程。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种3D控件交互方法,其特征在于,所述方法包括下述步骤:
A、进入并渲染预设的3D控件交互场景,所述3D控件交互场景包括至少两个3D控件物体,所述3D控件物体具有控件大小属性与装载、被装载方法;
B、接收用户对上述任一3D控件物体的移动操作指令,对所述任一3D控件物体进行移动,将被操作的3D控件物体记为第一3D控件物体,获取所述第一3D控件物体的原始位置坐标,将所述原始位置坐标记为第一位置坐标,相对于第一3D控件物体操作的3D控件物体记为第二3D控件物体,获取用户操作的第一3D控件物体屏幕移动向量,根据所述屏幕移动向量与第一位置坐标计算移动后所述第一3D控件物体的第二位置坐标;
C、检测所述第一3D控件物体的第二位置坐标,当所述第二位置坐标与第二3D控件物体的原始位置坐标满足预设条件时,根据所述第一3D控件物体与第二3D控件物体的大小关系,对所述第一3D控件物体与第二3D控件物体进行渲染,以实现一个3D控件物体相对于另一个3D控件物体的移进或移出操作;
所述根据所述屏幕移动向量与第一位置坐标计算移动后所述第一3D控件物体的第二位置坐标的步骤包括:
根据所述第一3D控件物体的屏幕移动向量,生成移动操作的转换矩阵;
将所述第一3D控件物体的第一位置坐标与所述转换矩阵作乘法运算,以获得所述第一3D控件物体的第二位置坐标。
2.如权利要求1所述方法,其特征在于,当所述第一3D控件物体与第二3D控件物体原始位置坐标从属于全局坐标系时,所述步骤C包括:
当判断第一3D控件物体的大小小于第二3D控件物体的大小时,将所述第一3D控件物体渲染为3D控件,所述第二3D控件物体渲染为3D交互容器;
当判断第一3D控件物体的大小大于第二3D控件物体的大小时,将所述第二3D控件物体渲染为3D控件,所述第一3D控件物体渲染为3D交互容器。
3.如权利要求2所述方法,其特征在于,将所述第一3D控件物体渲染为3D控件,所述第二3D控件物体渲染为3D交互容器的步骤包括
获取所述第一3D控件物体在所述第二3D控件物体相对坐标系下的相对坐标,并将所述第一3D控件物体的坐标设置为所述相对坐标;
根据所述第一3D控件物体的相对坐标以及预设的3D控件渲染顺序将所述第一3D控件物体渲染为3D控件,所述第二3D控件物体渲染为3D交互容器,并使得3D控件呈现移入所述3D交互容器中的效果。
4.如权利要求2所述方法,其特征在于,将所述第二3D控件物体渲染为3D控件,所述第一3D控件物体渲染为3D交互容器的步骤包括
获取所述第二3D控件物体在所述第一3D控件物体相对坐标系下的相对坐标,并将所述第二3D控件物体的坐标设置为所述相对坐标;
根据所述第二3D控件物体的相对坐标以及预设的3D控件渲染顺序将所述第二3D控件物体渲染为3D控件,所述第一3D控件物体渲染为3D交互容器,并使得3D控件呈现移入所述3D交互容器中。
5.如权利要求1所述方法,其特征在于,当所述第一3D控件物体从属于第二3D控件物体的相对坐标系时,
所述步骤A中进入并渲染预设的3D控件交互场景包括:
根据预设的3D控件渲染顺序,渲染第一3D控件物体为3D控件,所述第二3D控件物体为3D交互容器,并且所述3D控件内置于所述3D交互容器中;
所述步骤B包括:
将所述3D控件在3D交互容器相对坐标系中的原始位置坐标设置为第一位置坐标,对所述3D控件进行移动,获取所述3D控件的屏幕移动向量,根据所述屏幕移动向量以及所述第一位置坐标计算3D控件在3D交互容器相对坐标系下的第二位置坐标;
所述步骤C包括:
当所述3D控件的第二位置坐标与所述3D交互容器的原始位置坐标满足预设条件时,获取所述3D控件在全局坐标系下的全局坐标,并将所述3D控件的坐标设置为所述全局坐标;
根据所述3D控件的全局坐标以及预设的3D控件渲染顺序对所述3D控件进行渲染,使得3D控件呈现移出所述3D交互容器的效果。
6.如权利要求1至5任意一项所述方法,其特征在于,所述根据所述第一3D控件物体的屏幕移动向量,生成移动操作的转换矩阵的步骤包括:
当所述第一3D控件物体发生平移变化时,生成移动操作的转换矩阵
当所述第一3D控件物体发生缩放变化时,生成移动操作的转换矩阵
当所述第一3D控件物体围绕x轴旋转时,生成移动操作的转换矩阵
当所述第一3D控件物体围绕y轴旋转时,生成移动操作的转换矩阵
当所述第一3D控件物体围绕z轴旋转时,生成移动操作的转换矩阵
所述x为所述第一3D控件物体的x轴坐标,所述y为所述第一3D控件物体的y轴坐标,所述z为所述第一3D控件物体的z轴坐标,dx为所述第一3D控件物体沿x轴平移的距离,dy为所述第一3D控件物体沿y轴平移的距离,dz为所述第一3D控件物体沿z轴平移的距离,Sx为所述第一3D控件物体沿x轴缩放的倍数,Sy为所述第一3D控件物体沿y轴缩放的倍数,Sz为所述第一3D控件物体沿z轴缩放的倍数,θ为旋转的角度。
7.如权利要求3或4所述方法,其特征在于,所述步骤C之后,所述方法还包括:
当所述3D控件在所述3D交互容器相对坐标系中的相对坐标发生改变时,获取所述3D控件在所述3D交互容器相对坐标系中的相对坐标发生改变后的相对坐标,当该相对坐标满足预设的裁剪条件时,根据所述3D控件与3D交互容器的大小、所述3D控件与3D交互容器的位置关系生成裁剪区域,对所述3D控件进行裁剪。
8.如权利要求7所述方法,其特征在于,根据所述3D控件与3D交互容器的大小、所述3D控件与3D交互容器的位置关系生成裁剪区域,对所述3D控件进行裁剪的步骤包括:
设置所述3D交互容器所封闭的空间为裁剪区域;
对所述3D控件超出所述裁剪区域的部分进行隐藏。
9.如权利要求1所述方法,其特征在于,在步骤B中,所述接收用户对上述任一3D控件物体的移动操作指令的步骤之后,对所述任一3D控件物体进行移动的步骤之前,还包括:
对所述移动操作的输入区域进行碰撞检测,确定所述移动操作操作的3D控件物体。
10.如权利要求1所述方法,在步骤C中,所述预设条件为:
所述第一3D控件物体在所述第二位置坐标的有效平面区域与所述第二3D控件物体的有效平面区域的重叠比例达到预设的重叠比例。
11.如权利要求2所述方法,其特征在于,所述的3D控件还维护一相对参考系,在该相对参考系下,所述的3D控件关联至少一个3D子控件。
12.如权利要求11所述方法,其特征在于,所述3D控件继承所述3D交互容器的交互特征,所述3D子控件继承所述3D控件的交互特征,所述3D控件与3D子控件实现如3D交互容器与3D控件的交互方法。
13.一种基于权利要求1所述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控件物体的第二位置坐标。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210245917.9A CN102799435B (zh) | 2012-07-16 | 2012-07-16 | 一种3d控件交互方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210245917.9A CN102799435B (zh) | 2012-07-16 | 2012-07-16 | 一种3d控件交互方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102799435A CN102799435A (zh) | 2012-11-28 |
CN102799435B true CN102799435B (zh) | 2016-07-13 |
Family
ID=47198552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210245917.9A Expired - Fee Related CN102799435B (zh) | 2012-07-16 | 2012-07-16 | 一种3d控件交互方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102799435B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107426601B (zh) * | 2017-07-21 | 2020-02-07 | 青岛海信电器股份有限公司 | 一种智能电视中ui控件的显示方法及装置 |
CN107436765A (zh) * | 2017-07-27 | 2017-12-05 | 青岛海信电器股份有限公司 | 视图控件的处理方法和装置 |
CN109448117A (zh) * | 2018-11-13 | 2019-03-08 | 北京旷视科技有限公司 | 图像渲染方法、装置及电子设备 |
US11216149B2 (en) | 2019-03-15 | 2022-01-04 | Samsung Electronics Co., Ltd. | 360° video viewer control using smart device |
CN110278445A (zh) * | 2019-07-05 | 2019-09-24 | 浙江开奇科技有限公司 | 基于5g网络的影像处理方法、移动终端及系统 |
CN114419230A (zh) * | 2022-01-21 | 2022-04-29 | 北京字跳网络技术有限公司 | 一种图像渲染方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102298517A (zh) * | 2010-06-24 | 2011-12-28 | 联发科技股份有限公司 | 电子交互装置以及电子装置的实时交互方法 |
CN102541537A (zh) * | 2011-12-01 | 2012-07-04 | 厦门雅迅网络股份有限公司 | 一种具有环绕效果的菜单容器控件的实现方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5532112A (en) * | 1978-08-28 | 1980-03-06 | Seiko Instr & Electronics Ltd | Vector clipping system in graphic information processing device |
-
2012
- 2012-07-16 CN CN201210245917.9A patent/CN102799435B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102298517A (zh) * | 2010-06-24 | 2011-12-28 | 联发科技股份有限公司 | 电子交互装置以及电子装置的实时交互方法 |
CN102541537A (zh) * | 2011-12-01 | 2012-07-04 | 厦门雅迅网络股份有限公司 | 一种具有环绕效果的菜单容器控件的实现方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102799435A (zh) | 2012-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102799435B (zh) | 一种3d控件交互方法及系统 | |
US9927870B2 (en) | Virtual reality system with control command gestures | |
Chang et al. | Efficient collision detection using a dual OBB-sphere bounding volume hierarchy | |
EP3044757B1 (en) | Structural modeling using depth sensors | |
CN102253713B (zh) | 面向三维立体影像显示系统 | |
KR102555214B1 (ko) | 혼합 현실에서 동적 가상 콘텐츠들을 생성하기 위한 디바이스 및 방법 | |
CN106575160A (zh) | 根据用户视点识别动作的界面提供方法及提供装置 | |
US20150067603A1 (en) | Display control device | |
US20140298258A1 (en) | Switch List Interactions | |
WO2013118373A1 (ja) | 画像処理装置、画像処理方法及びプログラム | |
CN103049934A (zh) | 三维视景仿真系统中的漫游模式实现方法 | |
US20080252661A1 (en) | Interface for Computer Controllers | |
KR20140145217A (ko) | 공간정보를 이용한 3차원 가상 모델링 시스템 및 그 방법 | |
JP2012190428A (ja) | 立体映像視覚効果処理方法 | |
EP3594906B1 (en) | Method and device for providing augmented reality, and computer program | |
Sreeni et al. | Haptic rendering of cultural heritage objects at different scales | |
KR101428577B1 (ko) | 적외선 동작 인식 카메라를 사용하여 화면상에 네추럴 유저 인터페이스 기반 입체 지구본을 제공하는 방법 | |
EP2779116A2 (en) | Smooth manipulation of three-dimensional objects | |
CN114327174A (zh) | 虚拟现实场景的显示方法、光标的三维显示方法和装置 | |
CN105745688B (zh) | 动态工作平面3d渲染环境 | |
CN115516517A (zh) | 用于构建三维几何图形的方法和装置 | |
CN109933195B (zh) | 基于mr混合现实技术的界面立体式展示方法及交互系统 | |
Kim et al. | Hardware based 2.5 D haptic rendering algorithm using localized occupancy map instance | |
CN114373064B (zh) | 一种vrar内容编辑方法、装置、设备及介质 | |
CN116883619A (zh) | 网格生成方法、装置、计算机可读存储介质及电子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160713 |
|
CF01 | Termination of patent right due to non-payment of annual fee |