[go: up one dir, main page]

CN109697002B - 一种在虚拟现实中对象编辑的方法、相关设备及系统 - Google Patents

一种在虚拟现实中对象编辑的方法、相关设备及系统 Download PDF

Info

Publication number
CN109697002B
CN109697002B CN201711005203.XA CN201711005203A CN109697002B CN 109697002 B CN109697002 B CN 109697002B CN 201711005203 A CN201711005203 A CN 201711005203A CN 109697002 B CN109697002 B CN 109697002B
Authority
CN
China
Prior art keywords
target
target object
adsorption plane
determining
grid
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.)
Active
Application number
CN201711005203.XA
Other languages
English (en)
Other versions
CN109697002A (zh
Inventor
张天翔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201711005203.XA priority Critical patent/CN109697002B/zh
Publication of CN109697002A publication Critical patent/CN109697002A/zh
Application granted granted Critical
Publication of CN109697002B publication Critical patent/CN109697002B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04806Zoom, i.e. interaction techniques or interactors for controlling the zooming operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2016Rotation, translation, scaling

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Architecture (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明实施例公开了一种在虚拟现实中对象编辑的方法、相关设备及系统。本发明实施例方法包括:处理设备接收输入设备检测的选择对象的操作;根据选择对象的操作确定待编辑的目标对象;确定目标对象在空间编辑区域的目标吸附平面;接收输入设备检测的移动对象的操作;根据移动对象的操作确定目标对象的目标位置;将目标对象移动至目标位置并通过显示设备显示。本发明实施例还提供了一种处理设备及系统,用于快速对对象进行编辑,提供了一种简单的编辑对象的方法。

Description

一种在虚拟现实中对象编辑的方法、相关设备及系统
技术领域
本发明涉及计算机领域,尤其涉及一种在虚拟现实中对象编辑的方法、相关设备及系统。
背景技术
虚拟现实(Virtual Reality,缩写:VR)技术是一种可以创建和体验虚拟世界的计算机仿真系统,它利用计算机生成一种模拟环境,是一种多源信息融合的、交互式的三维动态视景和实体行为的系统仿真,使用户沉浸到该环境中。
在虚拟现实中,常常需要对虚拟现实中的对象进行编辑。例如,对物体进行移动,旋转,缩放等。传统方法中,通过Unity3D引擎来实现物体的编辑,Unity3D是一个创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的游戏引擎,现有技术中的Unity3D虽然可以做到VR下的物体编辑,但操作难度较高。例如,通过Unity3D对物体进行编辑,需要用户了解Unity3D的菜单,视图界面等,理解场景中的坐标系统,输入系统等;学习资源导入方面的基本元素:网格,材质,贴图,动画等。
传统方式中VR中对对象进行编辑,由于操作复杂,普通用户难以掌握。
发明内容
本发明实施例提供了一种在虚拟现实中对象编辑的方法、相关设备及系统,用于快速对对象进行编辑,提供了一种简单的编辑对象的方法。
第一方面,本发明实施例提供了一种在虚拟现实中对象编辑的方法,包括:
接收选择对象的操作;
根据所述选择对象的操作确定待编辑的目标对象;
确定所述目标对象在空间编辑区域的目标吸附平面;
接收所述输入设备检测的移动对象的操作;
根据所述移动对象的操作确定所述目标对象的目标位置;
将所述目标对象移动至所述目标位置并通过显示设备显示。
第二方面,本发明实施例提供了一种处理设备,包括:
第一接收模块,用于接收选择对象的操作;
对象确定模块,用于根据所述第一接收模块接收的所述选择对象的操作确定待编辑的目标对象;
吸附平面确定模块,用于确定所述对象确定模块确定的所述目标对象在空间编辑区域的目标吸附平面;
第二接收模块,用于接收所述输入设备检测的移动对象的操作;
位置确定模块,用于根据所述第二接收模块接收的所述移动对象的操作确定的所述目标吸附平面的交点确定所述目标对象的目标位置;
移动模块,用于将所述目标对象移动至所述位置确定模块确定的所述目标位置并通过显示设备显示。
第三方面,本发明实施例提供了一种处理设备,包括:
存储器,用于存储计算机可执行程序代码;
收发器,以及
处理器,与所述存储器和所述收发器耦合;
其中所述程序代码包括指令,当所述处理器执行所述指令时,所述指令使所述处理设备执行第一方面的方法。
第四方面,本发明实施例提供了虚拟现实系统,包括:
包括:显示设备、输入设备和处理设备,所述显示设备和所述输入设备均与所述处理设备连接;
所述输入设备检测选择对象的操作;
所述处理设备接收所述输入设备检测的选择对象的操作;
所述处理设备根据所述选择对象的操作确定待编辑的目标对象;
所述处理设备确定所述目标对象在空间编辑区域的目标吸附平面;
所述处理设备接收所述输入设备检测的移动对象的操作;
所述处理设备根据所述移动对象的操作生成射线,并将所述射线的数据发送至所述显示设备;
所述显示设备显示所述射线;
所述处理设备根据所述射线与所述目标吸附平面的交点确定所述目标对象的目标位置;
所述处理设备将所述目标对象移动至所述目标位置;
所述显示设备显示所述目标对象移动至所述目标位置。
从以上技术方案可以看出,本发明实施例具有以下优点:
处理设备接收输入设备检测的选择对象的操作;然后,根据选择对象的操作确定待编辑的目标对象;确定目标对象在空间编辑区域的目标吸附平面;接收输入设备检测的移动对象的操作;根据移动对象的操作确定目标对象的目标位置;将目标对象移动至目标位置并通过显示设备显示。本发明实施例可以快速对对象进行编辑,提供了一种简单的编辑对象的方法,计算量小,并且对象的编辑方法简单,普通用户就可以简单掌握。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例中虚拟现实系统的示意图;
图2为本发明实施例中吸附平面的示意图;
图3为本发明实施例中一种虚拟现实中对象编辑的方法的一个实施例的步骤示意图;
图4为本发明实施例中显示设备中显示的一个场景示意图;
图5为本发明实施例中空间编辑区域的示意图;
图6为本发明实施例中一个场景示意图;
图7为本发明实施例中确定交点的侧视场景示意图;
图8为本发明实施例中确定交点的侧视场景示意图;
图9为本发明实施例中交点所位于的网格的中心位置示意图;
图10为本发明实施例中偏移向量的示意图;
图11为本发明实施例中目标网格的侧视示意图;
图12为本发明实施例中偏移向量的侧视示意图;
图13为本发明实施例中目标对象移动至目标位置的场景示意图;
图14为本发明实施例中目标对象移动至目标位置的侧视示意图;
图15为本发明实施例中确认放置目标对象的场景示意图;
图16为本发明实施例中目标对象移动至目标位置的侧视示意图;
图17为本发明实施例中平移方向示意图;
图18为本发明实施例中编辑模式的一个场景示意图;
图19为本发明实施例中对象旋转方向的示意图;
图20为本发明实施例中一种处理设备的一个实施例的结构示意图;
图21为本发明实施例中一种处理设备的另一个实施例的结构示意图;
图22为本发明实施例中一种处理设备的另一个实施例的结构示意图;
图23为本发明实施例中一种处理设备的另一个实施例的结构示意图;
图24为本发明实施例中一种处理设备的另一个实施例的结构示意图;
图25为本发明实施例中一种处理设备的另一个实施例的结构示意图;
图26为本发明实施例中一种处理设备的另一个实施例的结构示意图;
图27为本发明实施例中一种处理设备的另一个实施例的结构示意图。
具体实施方式
本发明实施例提供了一种在虚拟现实中对象编辑的方法、相关设备及系统,用于快速对对象进行编辑,提供了一种简单的编辑对象的方法。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供了一种在虚拟现实中对象编辑的方法,应用于虚拟现实VR系统,请结合图1进行理解,图1为VR系统示意图,该VR系统包括显示设备101、输入设备102和处理设备103,输入设备102和显示设备101均与处理设备103连接。在一个应用场景中,该处理设备103可以为计算机,手机,掌上电脑等。该显示设备101可以为VR头显(虚拟现实头戴式显示设备)。也可以成为VR眼镜、VR头盔等。VR头显是一种利用头戴式显示器将人的对外界的视觉、听觉封闭,引导用户产生一种身在虚拟环境中的感觉。该输入设备102是一种能把真实世界的环境数据映射到虚拟世界的设备,是输入用户指令到VR系统的设备,该输入设备可以为传感手套,传感手柄等等。
本发明实施例中提供了一种对于VR系统中的虚拟的对象进行编辑的方法,本发明实施例中的编辑可以包括移动,缩放,旋转等等。输入设备检测选择对象的操作,例如,该选择对象的操作为通过输入设备选择VR中的对象,该对象可以为VR中的床,箱子,桌子等等;该输入设备检测到用户输入的选择对象的操作,生成相应的操作数据,然后,该输入设备将该操作的数据传输给处理设备,处理设备根据该操作的数据确定待编辑的目标对象;处理设备计算该目标对象的空间编辑区域,并确定目标对象在空间编辑区域的目标吸附平面;当输入设备在实际环境中的位置发生改变,该输入设备检测到移动对象的操作,该输入设备将移动的操作的数据传输给处理设备,处理设备根据接收到的移动对象的操作的数据生成射线,并将射线的数据发送至显示设备,显示设备显示射线;处理设备根据射线与目标吸附平面的交点确定目标对象的目标位置,将目标对象移动至目标位置;显示设备显示目标对象移动至目标位置。
为了方便理解,首先对本发明实施例中涉及的词语进行解释说明。
吸附平面:根据在真实场景中,物体按照各自的属性,应该放置的平面,该吸附平面可以根据物体的属性进行预先设置。例如,床、桌子放置在地面,壁画放置在墙壁,吊灯吸附在天花板。
在虚拟场景中,可以使用X,Y,Z加上正负号的形式来表示可编辑区域的六个面,该可编辑区域可以理解为一个长方体区域,该可编辑长方体区域的六个面均可以作为吸附平面,请结合体图2和下表1理解吸附平面,图2为吸附平面的示意图:
表1
Figure BDA0001441811580000061
一个对象,也可以理解为在虚拟空间中的一个物体,该物体可以有N个吸附平面,N为大于或者等于1的正整数,不同的物体可能有不同数量的吸附平面。如上表1所示,床、桌子的属性为吸附地面,吸附地面对应的吸附平面为(-Z)平面,吊灯的属性为吸附天花板,吸附天花板对应的吸附平面为(+Z)平面,壁画的属性为吸附墙壁,吸附墙壁对应的吸附平面可以为(+X),(-X),(+Y),(-Y)四个平面中的一个,也就是说,物体的属性与吸附平面具有对应关系,若确定了物体的属性,就可以根据该属性与该对应关系确定该物体的属性。上表1中的例子可以看出,壁画可以对应4个吸附平面,当一个物体对应的吸附平面大于1个时,可以预先设定一个该物体的预置吸附平面,在用户没有对该物体进行旋转的操作时,该物体的吸附平面为该预置的吸附平面。例如,可以设定吊灯对应的预置吸附平面为(-X),若该“吊灯”围绕Y轴旋转90度,则该吊灯对应的吸附平面为(+Y)。
需要说明的是,上述表1中是通过X,Y,Z加上正负号的形式来表示6个吸附平面只是举例说明,并不造成对本发明实施例中的限定性说明。例如,可以用A、B、C、D、E、F不同的字母来表示不同的吸附平面,只要能区分编辑区域的不同平面即可,形式多样,此处不一一进行穷举。
下面请参阅图3所示,本发明实施例提供了一种在虚拟现实中对象编辑的方法的一个实施例,本实施例是以处理设备为执行主体进行说明,具体的步骤流程包括:
步骤301、处理设备接收输入设备检测的选择对象的操作。
输入设备检测到用户输入的选择对象的操作,输入设备将选择对象的操作的数据发送给处理设备,该处理设备接收到该输入设备检测的选择对象的操作。
请结合体图4进行理解,图4为显示设备中显示的一个场景示意图。在一个应用场景中,显示设备显示菜单中所包括的物体,用户在显示设备中看到菜单中的物件,例如,该菜单中物件包括床、眼镜、桌子和壁画等等,用户操作输入设备(如传感手柄),处理设备接收到输入设备检测到的选择对象的操作,根据该选择对象操作生成射线,该显示设备显示该射线。
步骤302、处理设备根据选择对象的操作确定待编辑的目标对象。
在虚拟环境中,该射线选中目标对象,例如,该射线指向“床”,该目标对象为“床”,当处理设备确定了目标对象后,该VR系统进入对该目标对象的编辑模式。
步骤303、处理设备根据目标对象计算空间编辑区域,空间编辑区域被划分为多个网格区域。
处理设备确定了目标对象后,该处理设备计算该目标对象的空间编辑区域。请结合图5和图6进行理解,图5为空间编辑区域的示意图,图6为场景示意图。在一个应用场景中,该可以设置一个长方体作为该空间编辑区域,然后对该长方体的长宽高作等分,形成三维空间中的网格结构,该网格的每一个等分格子边长可以为0.5m。需要说明的是,空间编辑区域中的网格的大小此处只是为了方便而举例说明,并不造成对本发明的限定性说明。
需要说明的是,步骤303为可选步骤,并不是每一次对目标对象进行编辑时都执行,本步骤在初始化的过程中执行一次,在初始化完成后,也就是已经计算完该目标对象的空间编辑区域后,在后续的编辑过程中,可以不执行。
步骤304、处理设备确定目标对象在空间编辑区域的目标吸附平面。
移动目标对象并将该目标对象放置在合适的位置,需要确定出该目标的吸附平面,可以理解的是,“床”需要放置在地面上,而不能放置在天花板上,而“吊灯”需要放置在天花板上,不能放置在墙壁上,因此,需要确定该目标对象空间编辑区域的吸附平面。
该处理设备确定目标对象的属性,然后,根据该属性与吸附平面的对应关系确定出该目标对象的目标吸附平面。
该目标吸附平面为预置吸附平面,可以理解的是,目标对象对应的吸附平面的数量至少为一个。
在一种情况中,目标对象的吸附平面只有一个,例如,当目标对象为“床”时,“床”只有一个吸附平面(-Z)平面,该(-Z)平面为预置吸附平面。
在另一种情况中,目标对象的吸附平面至少有两个。例如,当目标对象为“壁画”时,由于该“壁画”的吸附平面有4个,可以为(+X)平面,(-X)平面,(+Y)平面或(-Y)平面,预先设置该“壁画”的预置吸附平面为(+X)平面,也就是说,在选定了目标对象之后,若用户没有对该“壁画”进行旋转,则该目标对象的目标吸附平面为预置吸附平面。
在另一种情况中,目标对象对应的吸附平面的数量至少为两个,该目标吸附平面为目标对象旋转之后的吸附平面,且可以设置该目标对象每次旋转的角度为90度。首先,处理设备根据目标对象的属性及属性与吸附平面的对应关系确定预置吸附平面,如处理设备确定“壁画”的预置吸附平面为(+X)平面,处理设备接收输入设备检测的旋转对象的操作,然后,处理设备根据旋转对象的操作确定目标对象在预置吸附平面的基础上进行旋转之后所对应的目标吸附平面。例如,输入设备检测用户输入的旋转“壁画”的操作,“壁画”相应的围绕Y轴旋转90度,当“壁画”旋转之后,对应的目标吸附平面为(-Y)平面。
步骤305、处理设备接收输入设备检测的移动对象的操作。
用户进行移动对象的操作,例如,用户手握输入设备(如手柄),改变手柄在实际环境中的位置,输入设备检测到移动对象的操作,生成移动对象的操作的数据,然后将该操作的数据发送给处理设备,处理设备接收输入设备检测的移动对象的操作。
步骤306、处理设备根据移动对象的操作生成射线并通过显示设备显示。
处理设备根据该移动对象的操作生成射线,然后通过该显示设备显示该射线,也就是说,显示设备显示当前的虚拟场景的同时显示该射线,用户通过该显示设备看见一条射线。
在一个应用场景中,用户在一个实际空间中,例如,用户在一个房间中,头戴VR头显,手握传感手柄,用户将该传感手柄指向真实房间的地面,VR头显中显示射线指向虚拟空间中的地面,用户将该传感手柄指向真实房间的天花板,VR头显中显示射线指向虚拟空间中的天花板。
步骤307、处理设备根据射线与目标吸附平面的交点确定目标对象的目标位置。
在显示设备显示的虚拟空间中,该目标位置为用户希望将该目标对象放置的位置。
针对用户的操作情况,可能会有两种情况:
1、请结合图7进行理解,图7为确定交点的侧视场景示意图。用户操作正确,该虚拟设备指向了目标吸附平面,该射线与目标吸附平面有交点,例如,“床”的目标吸附平面为(-Z)平面,用户通过输入设备进行操作,该射线指向地面(-Z)平面,射线a与(-Z)平面的交点为o。
2、请结合图8进行理解,图8为确定交点的侧视场景示意图。用户操作不准确,该虚拟设备未指向目标吸附平面,该射线与目标吸附平面没有交点,例如,该射线指向了天花板(+Z)平面,也就是说,在此种情况中,射线与目标吸附平面没有交点,可以对该射线取镜像,如图8所示,射线b的镜像射线为c,镜像射线c的交点为d。
在第一种可能的实现方式中,处理设备确定射线与目标吸附平面的交点,处理设备将交点确定为目标位置,该目标位置为目标对象放置的位置。
在第二种可能的实现方式中,处理设备确定射线与目标吸附平面的交点,本实施例中,以上述图7中所示的情况为例进行说明。然后,处理设备计算交点所位于的网格的中心位置,请结合图9进行理解,图9为交点所位于的网格的中心位置示意图。网格交点o所在的网格用g表示,在目标吸附平面上,网格g的中心位置用f表示,该交点所位于的网格的中心位置为点f。
然后,处理设备根据网格的中心位置与偏移向量计算目标对象的目标位置,目标对象的目标位置由如下公式1计算得出:
P_center=P_exp+V_offset,其中,P_center为目标位置,V_offset为偏移向量,P_exp为网格g的中心位置。
其中,偏移向量为目标网格上与目标吸附平面对应的侧面上的中心点到目标对象上的预置点的向量,目标网格为容纳目标对象的包围盒的最小网格区域。请结合图10进行理解本发明实施例中的偏移向量,图10为偏移向量的示意图。
该偏移向量的计算方式还可以有两种实现方式:
1、预先计算方式:在本步骤307之前,具体计算偏移向量的方法包括:
步骤i:处理设备根据每个对象的属性确定每个对象的N个吸附平面,N为大于或者等于1的正整数,例如,在一个场景中,物品菜单中包括多个对象,如床、桌子、壁画、吊灯等等,处理设备根据每个对象的属性确定每个对象的N个吸附平面,例如,床的吸附平面为(-Z)平面,桌子的吸附平面为(-Z)平面,壁画的吸附平面可以为(+X)平面,(-X)平面,(+Y)平面或(-Y)平面,吊灯的吸附平面为(+X)平面。需要说明的是,本实施例中的多个对象为为了方便说明而举的例子,并不造成对本发明的限定性说明。
步骤j:处理设备计算待选择的多个对象中的每个对象的包围盒。
请结合图10进行理解,图10为包围盒的示意图。包围盒1002为容纳对象1001的最小长方体空间区域。
处理设备计算床的包围盒,壁画的包围盒,桌子的包围盒,吊灯的包围盒。
步骤k:处理设备根据包围盒计算目标网格,目标网格1101为容纳包围盒1002的最小网格区域。
请结合图11进行理解,图11为目标网格的侧视示意图。处理设备计算多个对象中每个对象的目标网格。
步骤l:处理设备确定每个对象的N个吸附平面中的每个吸附平面所对应的目标网格的侧面。
请结合图11进行理解,“床”有一个吸附平面,“床”的吸附平面为(-Z)平面,在目标网格1101中,与(-Z)平面对应的侧面11011为底面,需要说明的,本实施例中,目标网格的侧面可以理解为目标网格的某一个面。
本实施例中,以多个对象中的“床”为例进行说明,其他的对象可以参照“床”进行理解。
步骤m:处理设备计算偏移向量,该偏移向量为该目标网格的侧面的中心点至对象上的预置点的向量。
请结合图12进行理解,图12为偏移向量的侧视示意图。该偏移向量为对象的包围盒的目标面与该目标网格的侧面对齐时,该目标网格的侧面(如底面)的中心点1201至对象上的预置点1202的向量1203。
本发明实施例中,该预置点可以为对象上的一个预先设置的任一点,该预置点可以为对象的中心点,本实施例中,该预置点以中心点为例进行说明。
预先计算了多个对象对应的偏移向量,然后,在从多个对象对应的偏移向量中选择目标对象对应的偏移向量。
2、实时计算方式:
在第二种可以实现的方式中,不需要在该步骤307之前,计算所有对象的偏移向量,而是在本步骤中,直接计算目标对象偏移向量,具体方法如下:
步骤o:处理设备根据目标对象的属性确定目标对象的目标吸附平面,例如,在一个场景中,目标对象为床,处理设备确定“床”的吸附平面为(-Z)平面。
步骤p:处理设备计算目标对象的每个对象的包围盒。
步骤q:处理设备根据目标对象的包围盒计算目标网格。
步骤r:处理设备确定目标对象的目标吸附平面所对应的目标网格的侧面。
请结合图11进行理解,“床”有一个吸附平面,“床”的吸附平面为(-Z)平面,在目标网格1101中,与(-Z)平面对应的侧面11011为底面,需要说明的,本实施例中,目标网格的侧面可以理解为目标网格的某一个面。
步骤m:处理设备计算目标对象对应的偏移向量,该偏移向量为该目标网格的侧面的中心点至对象上的预置点的向量。
步骤308、处理设备将目标对象移动至目标位置并通过显示设备显示。
在第一种实现方式中,请结合图13进行理解,图13为目标对象移动至目标位置的场景示意图。
处理设备计算目标对象1306的包围盒1301;确定与目标吸附平面1302对应的目标侧面1303;将目标侧面1303与目标吸附平面进行重叠处理,且目标侧面1303的中心点1304对应射线与目标吸附平面的交点1305。
在第二种实现方式中,请结合图14和图15进行理解,图14为目标对象移动至目标位置的侧视示意图,图15为确认放置目标对象的场景示意图。为处理设备将目标对象上的预置点(如中心点)移动到目标位置1501。
需要说明的是,在该种实现方式中,空间编辑区域中的网格提供对齐标准,由于计算偏移向量需要确定两个点的坐标,即起点坐标和终点坐标,确定终点坐标为对象上的预置点,起点坐标为目标网格的侧面的中心点,目标网格至少包括一个正方体网格,该目标网格的侧面的中心点就为正方体的侧面的中心点。因此,在图9对应的场景中,需要根据交点o计算该交点所位于的网格的中心位置为点f。
需要注意的是,根据上述公式1算出的中心位置有可能会不合法,即导致容纳物体的目标网格处于编辑区域之外,此时需要将物体的位置移动到最近的合法位置,即保证用于容纳目标对象的目标网格完全处于编辑区域之内的位置,请结合图16进行理解,图16为目标对象移动至目标位置的侧视示意图。
最后,确定目标对象与其他已放置的对象的相交情况。如果相交(即物体模型相交,和/或者,目标对象所属的目标网格与已放置的对象所属的网格相交),则将目标对象以红色包围框显示,并不允许玩家确认放置。如果没有相交则将物体以绿色包围框显示,允许确认放置。
本发明实施例中,用户可以快速对对象进行编辑,计算量小,并且对象的编辑方法简单,普通用户就可以简单掌握,操作方式可以符合用户的直觉习惯。
进一步的,上述实施例是对对象的移动放置的方法,在上述实施例的基础上,本发明实施例还提供了另一个实施例,在本实施例中,提供了对目标对象精细编辑的方法,如平移,旋转,缩放。
1、平移:
本实施例可以为基于Gizmo的精细编辑模式。该精细编辑模式下,用户可以自由调整物体的位置、旋转和缩放。请结合图17和图18进行理解,图17为平移方向示意图,图18为编辑模式的一个场景示意图。对象可以在X,Y,Z三个轴中的每个轴上的正负两个方向上平移,因此,一共有6个移动方向。该6个移动方向分别为+X方向,-X方向,+Y方向,-Y方向,+Z方向,-Z方向,本发明实施例中提供了6个指向不同轴向的箭头作为用于平移目标对象的平移Gizmo1801。
输入设备检测到用户输入的选择平移对象的操作,输入设备根据该选择平移对象的操作生成操作数据,并将该操作数据发送至处理设备,然后,处理设备根据该操作数据生成射线,该射线指向“向上”(+Z方向)的箭头,处理设备确定对该目标对象的平移方向为+Z方向,并根据该操作数据生成第一位置坐标,该第一位置坐标为该平移Gizmo的坐标(“向上”箭头的坐标,记作“P_Gizmo”);例如,用户选择向上的箭头,则处理设备确定目标对象(如棋盘)的平移方向为向Z轴的正方向移动,而X和Y轴坐标不会改变。
处理设备计算目标对象上的预置点的第二位置坐标(记作“P_Center”),该预置点可以为目标对象上的中心点。
当用户在真实环境中上下移动该输入设备的位置,例如,用户将该输入设备向上平移,输入设备检测到用户输入的平移对象的操作,输入设备生成操作数据,并将该操作数据发送给处理设备,该处理设备根据该操作数据生成用于平移目标对象的射线,并根据该操作数据计算第三位置坐标,第三位置坐标在平移操作对应的坐标轴(如X轴)上,该坐标轴视作一条空间直线,该射线也视作一条空间直线,对应坐标轴与射线之间具有最短距离,例如,在X轴上的第三位置坐标(记作“P_Near”)与射线上的目标点之间的距离为两条空间直线之间的最短距离,则确定第三位置坐标。
处理设备根据第一位置坐标,第二位置坐标和第三位置坐标计算目标对象进行平移之后预置点的第四位置坐标(记作“P_New”);计算该第四位置坐标的具体公式2如下:
P_New=P_Center+P_Near-P_Gizmo;
处理设备将目标对象的预置点在平移方向上移动至第四位置坐标并通过显示设备显示。
2、旋转:
对象可以绕X,Y,Z这三个轴进旋转,请结合图19进行理解,图19为对象旋转方向的示意图。每个轴对应的包围盒四条棱外各设置了一个用于旋转对象的旋转Gizmo(如图18中拐角状Gizmo1802),其中,X轴对应的旋转旋Gizmo1901,Y轴对应的旋转Gizmo1902,Z轴对应的旋转Gizmo1903,旋转Gizmo一共12个。
这种方式可以让玩家对物体的某一项属性单独进行编辑。
处理设备接收输入设备检测的选择旋转对象的操作;玩家可以通过射线选中12个旋转Gizmo中的任意一个旋转Gizmo,然后转动手柄来进行针对性编辑。
处理设备根据选择旋转对象的操作确定对目标对象的旋转方向并根据选择旋转对象的操作记录目标对象当前的第一旋转分量(记作“R”)及输入设备当前的第一欧拉角,该第一欧拉角包括Pitch值和Yaw值,Pitch值为输入设备绕X轴旋转的角度的初始值,记作“R_Pitch”,Yaw值为输入设备绕Y轴旋转的角度的初始值记作“R_Yaw”;
处理设备检测输入设备检测的旋转对象的操作。例如,当用户选中Y轴对应的旋转Gizmo并上下转动输入设备(如手柄)时,物体会绕着Y轴进行旋转,在其他轴上的旋转角度保持不变。
处理设备根据旋转对象的操作计算输入设备旋转之后的第二欧拉角,该第二欧拉角包括输入设备旋转之后的Pitch和Yaw值,旋转之后的Pitch,记作“R_NewPitch”,旋转之后的Yaw值记作“R_NewYaw”;
处理设备根据第一旋转分量、第一欧拉角和第二欧拉角计算目标对象旋转之后的第二旋转分量,计算第二旋转分量的计算公式3如下:
R_New=R+k×(R_NewPitch+R_NewYaw-R_Pitch-R_Yaw);其中k是灵敏系数,用户可以自定义设置,k×(R_NewPitch+R_NewYaw-R_Pitch-R_Yaw)为旋转值。
处理设备将目标对象在第一旋转分量的基础上旋转第二旋转分量并通过显示设备显示。
3、缩放
缩放与旋转的原理相似,缩放可以只设置一个缩放Gizmo(图18中左侧立方体Gizmo1803)。
处理设备接收输入设备检测的选择缩放对象的操作,例如,在一个应用场景中,用户选择缩放Gizmo,也可以理解为,用户输入了缩放指令。
处理设备根据选择缩放对象的操作记录目标对象当前的第一空间大小(记作“M”),当前的空间大小为目标对象未进行缩放之前该目标对象的体积,并记录输入设备当前的第三欧拉角,该第三欧拉角包括Pitch值和Yaw值,Pitch值为输入设备绕X轴旋转的角度的初始值,记作“R_Pitch”,Yaw值为输入设备绕Y轴旋转的角度的初始值记作“R_Yaw”。
处理设备接收输入设备检测的缩放对象的操作,例如,用户旋转该输入设备,该输入设备检测到缩放目标对象的操作。
处理设备根据缩放对象的操作计算输入设备旋转之后的第四欧拉角,该第四欧拉角包括输入设备旋转之后的Pitch和Yaw值,旋转之后的Pitch,记作“R_NewPitch”,旋转之后的Yaw值记作“R_NewYaw”;
处理设备根据第一空间大小、第三欧拉角和第四欧拉角计算目标对象缩放之后的第二空间大小,计算第二空间大小的计算公式4如下:
M_New=M×k×(R_NewPitch+R_NewYaw-R_Pitch-R_Yaw);其中k是灵敏系数,用户可以自定义设置;k×(R_NewPitch+R_NewYaw-R_Pitch-R_Yaw)为根据用户转动输入设备而计算的缩放值。
处理设备将目标对象在第一空间大小的基础上进行缩放到第二空间大小并通过显示设备显示。
本发明实施例中,可以大幅提升VR下对于对象进行编辑操作的便利程度,本发明实施例中提供的编辑方法可以让普通玩家快速方便地进行物体摆放,也可以细致地调节物体的位姿和缩放属性,使得玩家在VR中自由编辑物体。
请参阅图20所示,本发明实施例提供了一种处理设备2000的一个实施例,应用于虚拟现实VR系统,VR系统包括显示设备、输入设备和处理设备,处理设备包括:
第一接收模块2001,用于接收输入设备检测的选择对象的操作;
对象确定模块2002,用于根据第一接收模块2001接收的选择对象的操作确定待编辑的目标对象;
吸附平面确定模块2003,用于确定对象确定模块2002确定的目标对象在空间编辑区域的目标吸附平面;
第二接收模块2004,用于接收输入设备检测的移动对象的操作;
第一生成模块2005,用于根据第二接收模块2004接收的移动对象的操作生成射线并通过显示设备显示;
位置确定模块2006,用于根据第一生成模块2005生成的射线与吸附平面确定模块2003确定的目标吸附平面的交点确定目标对象的目标位置;
移动模块2007,用于将对象确定模块2002确定的目标对象移动至位置确定模块2006确定的目标位置并通过显示设备显示。
可选的,空间编辑区域包括多个空间网格,位置确定模块2006,还用于确定射线与目标吸附平面的交点;
计算交点所位于的网格的中心位置;
根据网格的中心位置与偏移向量计算目标对象的目标位置,偏移向量为目标网格上与目标吸附平面对应的侧面上的中心点到目标对象上的预置点的向量,目标网格为容纳目标对象的包围盒的最小网格区域。
处理设备请参阅图21所示,在图20对应的实施例的基础上,本发明实施例还提供了另一个处理设备2100的实施例包括:
位置确定模块2006还包括交点确定单元20061和位置确定单元20062;交点确定单元20061,用于确定射线与目标吸附平面的交点;
位置确定单元20062,用于将交点确定单元20061确定的交点确定为目标位置。
处理设备可选的,移动模块2007还用于:
计算目标对象的包围盒;
确定与目标吸附平面对应的目标侧面;
将目标侧面与目标吸附平面进行重叠处理,且目标侧面的中心点对应交点。
请参阅图22所示,在图20对应的实施例的基础上,本发明实施例还提供了另一个处理设备2200的实施例还包括第一计算模块2008;第一计算模块2008,用于根据目标对象计算空间编辑区域,空间编辑区域被划分为多个网格区域。
处理设备可选的,目标对象对应的吸附平面的数量至少为一个,吸附平面确定模块2003,还用于根据目标对象的属性及属性与吸附平面的对应关系确定预置吸附平面;
接收输入设备检测的旋转对象的操作;
根据旋转对象的操作确定目标对象在预置吸附平面的基础上进行旋转之后所对应的目标吸附平面。
请参阅图23所示,在图22对应的实施例的基础上,本发明实施例还提供了另一个处理设备2300的实施例:
处理设备还包括:第一确定模块2009,第二计算模块2010,第三计算模块2011和第四计算模块2012和第二确定模块2013;
第一确定模块2009,用于根据每个对象的属性确定每个对象的N个吸附平面,N为大于或者等于1的正整数;
第二计算模块2010,用于计算待选择的多个对象中的每个对象的包围盒;
第三计算模块2011,用于根据第二计算模块2010计算的包围盒计算目标网格,目标网格为容纳包围盒的最小网格区域;
第二确定模块2013,用于确定第一确定模块2009确定的每个对象的N个吸附平面中的每个吸附平面所对应的第三计算模块2011计算的目标网格的侧面;
第四计算模块2012,用于计算偏移向量,偏移向量为第二确定模块2013确定的目标网格的侧面的中心点至目标对象上的预置点的向量;
位置确定模块2006,还用于根据第一生成模块2005生成的射线与吸附平面确定模块2003确定的目标吸附平面的交点及第四计算模块2012计算的偏移向量确定目标对象的目标位置。
请参阅图24所示,在图20对应的实施例的基础上,本发明实施例还提供了另一个处理设备2400的实施例:还包括第三接收模块2014,平移方向确定模块2015,第二生成模块2016,第五计算模块2017,第四接收模块2018,第六计算模块2019,第五计算模块2017第七计算模块2020和平移模块2021;
第三接收模块2014,用于接收输入设备检测的选择平移对象的操作;
平移方向确定模块2015,用于根据第三接收模块2014接收的选择平移对象的操作确定对目标对象的平移方向;
第二生成模块2016,用于根据第三接收模块2014接收的选择平移对象的操作生成第一位置坐标;
第五计算模块2017,用于计算目标对象上的预置点的第二位置坐标;
第四接收模块2018,用于接收输入设备检测的平移对象的操作;
第六计算模块2019,用于根据第四接收模块2018接收的平移对象的操作计算第三位置坐标;
第七计算模块2020,用于根据第二生成模块2016生成的第一位置坐标,第五计算模块2017计算的第二位置坐标和第六计算模块2019计算的第三位置坐标计算目标对象进行平移之后预置点的第四位置坐标;
平移模块2021,用于将目标对象的预置点在平移方向确定模块2015确定的平移方向上移动至第七计算模块2020计算的第四位置坐标并通过显示设备显示。
请参阅图25所示,在图20对应的实施例的基础上,本发明实施例还提供了另一个处理设备2500的实施例:还包括第五接收模块2022,旋转方向确定模块2023,第一记录模块2024,第六接收模块2025,第八计算模块2026,旋转分量计算模块2027和旋转模块2028;
第五接收模块2022,用于接收输入设备检测的选择旋转对象的操作;
旋转方向确定模块2023,用于根据第五接收模块2022接收的选择旋转对象的操作确定对目标对象的旋转方向;
第一记录模块2024,用于根据第五接收模块2022接收的选择旋转对象的操作记录目标对象当前的第一旋转分量及输入设备当前的第一欧拉角;
第六接收模块2025,用于接收输入设备检测的旋转对象的操作;
第八计算模块2026,用于根据第六接收模块2025接收的旋转对象的操作计算输入设备旋转之后的第二欧拉角;
旋转分量计算模块2027,用于根据第一记录模块2024记录的第一旋转分量、第一欧拉角和第八计算模块2026计算的第二欧拉角计算目标对象旋转之后的第二旋转分量;
旋转模块2028,用于将目标对象在第一旋转分量的基础上旋转第二旋转分量并通过显示设备显示。
请参阅图26所示,在图20对应的实施例的基础上,本发明实施例还提供了另一个处理设备2600的实施例:还包括:
第七接收模块2029,用于接收输入设备检测的选择缩放对象的操作;
第二记录模块2030,用于根据第七接收模块2029接收的选择缩放对象的操作记录目标对象当前的第一空间大小并记录输入设备当前的第三欧拉角;
第八接收模块2031,用于接收输入设备检测的缩放对象的操作;
第九计算模块2033,用于根据缩放对象的操作计算输入设备旋转之后的第四欧拉角;
第十计算模块2034,用于根据第二记录模块2030记录的第一空间大小、第三欧拉角和第九计算模块2033计算的第四欧拉角计算目标对象缩放之后的第二空间大小;
缩放模块2035,用于将目标对象在第二记录模块2030记录的第一空间大小的基础上进行缩放到第十计算模块2034计算的第二空间大小并通过显示设备显示。
进一步的,图20至图26中的处理设备是以功能模块的形式来呈现。这里的“模块”可以指特定应用集成电路(application-specific integrated circuit,ASIC),电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,图20至图26中的处理设备可以采用图27所示的形式。各模块可以通过图3的处理器、收发器和存储器来实现。
本发明实施例还提供了另一种处理设备,如图27所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该处理设备可以为包括手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、电脑等。
图27示出的是与本发明实施例提供的终端相关的处理设备的部分结构的框图。参考图27,处理设备包括:收发器2710、存储器2720、输入单元2730、显示单元2740、音频电路2760、无线保真(wireless fidelity,WiFi)模块2770、处理器2780、以及电源2790等部件。本领域技术人员可以理解,图27中示出的处理设备结构并不构成对处理设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图27对处理设备的各个构成部件进行具体的介绍:
收发器2710可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1180处理;另外,将设计上行的数据发送给基站。通常,收发器2710包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,收发器2710还可以通过无线通信与网络和其他设备通信。
存储器2720可用于存储软件程序以及模块,处理器2780通过运行存储在存储器2720的软件程序以及模块,从而执行处理设备的各种功能应用以及数据处理。存储器2720可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据处理设备的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器2720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元2730可用于接收输入的数字或字符信息,以及产生与处理设备的用户设置以及功能控制有关的键信号输入。具体地,输入单元2730可包括触控面板2731以及其他输入设备2732。触控面板2731,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板2731上或在触控面板2731附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板2731可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器2780,并能接收处理器2780发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板2731。除了触控面板2731,输入单元2730还可以包括其他输入设备2732。具体地,其他输入设备2732可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元2740可用于显示由用户输入的信息或提供给用户的信息以及处理设备的各种菜单。显示单元2740可包括显示面板2741,可选的,可以采用液晶显示器(LiquidCrystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板2741。进一步的,触控面板2731可覆盖显示面板2741,当触控面板2731检测到在其上或附近的触摸操作后,传送给处理器2780以确定触摸事件的类型,随后处理器2780根据触摸事件的类型在显示面板2741上提供相应的视觉输出。虽然在图27中,触控面板2731与显示面板2741是作为两个独立的部件来实现处理设备的输入和输入功能,但是在某些实施例中,可以将触控面板2731与显示面板2741集成而实现处理设备的输入和输出功能。
音频电路2760、扬声器2761,传声器2762可提供用户与处理设备之间的音频接口。音频电路2760可将接收到的音频数据转换后的电信号,传输到扬声器2761,由扬声器2761转换为声音信号输出。
处理器2780是处理设备的控制中心,利用各种接口和线路连接整个处理设备的各个部分,通过运行或执行存储在存储器2720内的软件程序和/或模块,以及调用存储在存储器2720内的数据,执行处理设备的各种功能和处理数据,从而对处理设备进行整体监控。可选的,处理器2780可包括一个或多个处理单元;优选的,处理器2780可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器2780中。
WiFi属于短距离无线传输技术,处理设备可以通过WiFi模块2770可以接收输入设备发送的数据,或者向显示设备发送数据。
蓝牙模块2750,属于短距离无线传输技术,处理设备也可以通过蓝牙模块2750可以接收输入设备发送的数据,或者向显示设备发送数据。
处理设备还包括给各个部件供电的电源2790(比如电池),优选的,电源可以通过电源管理系统与处理器2780逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
在本发明实施例中,该处理设备所包括的处理器2780还具有使该处理设备执行方法实施例中的方法步骤。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述方法实施例中所述的方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种在虚拟现实中对象编辑的方法,其特征在于,包括:
接收选择对象的操作;
根据所述选择对象的操作确定待编辑的目标对象;
根据所述目标对象计算空间编辑区域,所述空间编辑区域被划分为多个网格区域;
确定所述目标对象在所述空间编辑区域的目标吸附平面,所述目标吸附平面为根据所述目标对象的属性与吸附平面的对应关系确定的;
接收输入设备检测的移动对象的操作;
根据所述移动对象的操作确定所述目标对象的目标位置;
将所述目标对象移动至所述目标位置并通过显示设备显示;
其中,所述根据所述移动对象的操作确定所述目标对象的目标位置,包括:
根据所述移动对象的操作生成射线;
根据所述射线与所述目标吸附平面的交点确定所述目标对象的目标位置;
其中,所述根据所述射线与所述目标吸附平面的交点确定所述目标对象的目标位置,包括:确定所述射线与所述目标吸附平面的交点;
计算所述交点所位于的网格的中心位置;
根据所述网格的中心位置与偏移向量计算所述目标对象的目标位置,所述偏移向量为目标网格上与所述目标吸附平面对应的侧面上的中心点到所述目标对象上的预置点的向量,所述目标网格为容纳所述目标对象的包围盒的最小网格区域。
2.根据权利要求 1 所述的方法,其特征在于,所述将所述目标对象移动至所述目标位置,包括:
计算所述目标对象的包围盒;
确定与所述目标吸附平面对应的目标侧面;
将所述目标侧面与所述目标吸附平面进行重叠处理,且所述目标侧面的中心点对应所述交点。
3.根据权利要求 1 所述的方法,其特征在于,所述目标对象对应的吸附平面的数量至少为一个,所述根据所述目标对象的属性及所述属性与吸附平面的对应关系确定所述目标对象的目标吸附平面,包括:根据所述目标对象的属性及所述属性与吸附平面的对应关系确定预置吸附平面;
接收所述输入设备检测的旋转对象的操作;
根据所述旋转对象的操作确定所述目标对象在所述预置吸附平面的基础上进行旋转之后所对应的目标吸附平面。
4.根据权利要求 3 所述的方法,其特征在于,所述接收选择对象的操作之前,所述方法还包括:根据每个对象的属性确定所述每个对象的 N 个吸附平面,所述 N 为大于或者等于 1 的正整数;
计算待选择的多个对象中的每个对象的包围盒;
根据所述包围盒计算目标网格,所述目标网格为容纳所述包围盒的最小网格区域;
确定每个对象的 N 个吸附平面中的每个吸附平面所对应的目标网格的侧面;
计算偏移向量,所述偏移向量为所述目标网格的侧面的中心点至所述目标对象上的预置点的向量;
根据所述射线与所述目标吸附平面的交点计算所述目标对象的目标位置包括:
根据所述射线与所述目标吸附平面的交点及所述偏移向量计算所述目标对象的目标位置。
5.根据权利要求 1 至 4 中任一项权利要求所述的方法,其特征在于,所述将所述目标对象移动至所述目标位置并通过显示设备显示之后,所述方法还包括:
接收所述输入设备检测的选择平移对象的操作;
根据所述选择平移对象的操作确定对所述目标对象的平移方向并根据所述选择平移对象的操作生成第一位置坐标;
计算所述目标对象上的预置点的第二位置坐标;
接收所述输入设备检测的平移对象的操作;
根据所述平移对象的操作计算第三位置坐标;根据所述第一位置坐标,所述第二位置坐标和所述第三位置坐标计算所述目标对象进行平移之后所述预置点的第四位置坐标;
将所述目标对象的预置点在所述平移方向上移动至所述第四位置坐标并通过所述显示设备显示。
6.根据权利要求 1 至 4 中任一项权利要求所述的方法,其特征在于,将所述目标对象移动至所述目标位置并通过所述显示设备显示之后,所述方法还包括:
接收所述输入设备检测的选择旋转对象的操作;
根据所述选择旋转对象的操作确定对所述目标对象的旋转方向并根据所述选择旋转对象的操作记录所述目标对象当前的第一旋转分量及输入设备当前的第一欧拉角;
检测所述输入设备检测的旋转对象的操作;
根据所述旋转对象的操作计算所述输入设备旋转之后的第二欧拉角;
根据所述第一旋转分量、所述第一欧拉角和所述第二欧拉角计算所述目标对象旋转之后的第二旋转分量;
将所述目标对象在所述第一旋转分量的基础上旋转第二旋转分量并通过所述显示设备显示。
7.根据权利要求 1 至 4 中任一项权利要求所述的方法,其特征在于,将所述目标对象移动至所述目标位置并通过所述显示设备显示之后,所述方法还包括:
接收所述输入设备检测的选择缩放对象的操作;
根据所述选择缩放对象的操作记录所述目标对象当前的第一空间大小并记录所述输入设备当前的第三欧拉角;
接收所述输入设备检测的缩放对象的操作;
根据所述缩放对象的操作计算所述输入设备旋转之后的第四欧拉角;
根据所述第一空间大小、所述第三欧拉角和所述第四欧拉角计算所述目标对象缩放之后的第二空间大小;
将所述目标对象在所述第一空间大小的基础上进行缩放到第二空间大小并通过所述显示设备显示。
8.一种应用于虚拟现实中对象编辑的设备,其特征在于,包括:
第一接收模块,用于接收选择对象的操作;
对象确定模块,用于根据所述第一接收模块接收的所述选择对象的操作确定待编辑的目标对象;
吸附平面确定模块,用于根据所述对象确定模块确定的所述目标对象计算空间编辑区域,所述空间编辑区域被划分为多个网格区域,还用于确定所述目标对象在空间编辑区域的目标吸附平面,所述目标吸附平面为根据所述目标对象的属性与吸附平面的对应关系确定的;
第二接收模块,用于接收输入设备检测的移动对象的操作;
第一生成模块,用于根据所述移动对象的操作生成射线并通过显示设备显示;
位置确定模块,用于根据所述第二接收模块接收的所述移动对象的操作确定的所述目标吸附平面的交点确定所述目标对象的目标位置;
所述位置确定模块,还用于确定所述射线与所述目标吸附平面的交点;
计算所述交点所位于的网格的中心位置;根据所述网格的中心位置与偏移向量计算所述目标对象的目标位置,所述偏移向量为目标网格上与所述目标吸附平面对应的侧面上的中心点到所述目标对象上的预置点的向量,所述目标网格为容纳所述目标对象的包围盒的最小网格区域;
移动模块,用于将所述目标对象移动至所述位置确定模块确定的所述目标位置并通过显示设备显示。
9.一种处理设备,其特征在于,包括:
存储器,用于存储计算机可执行程序代码;
收发器,以及
处理器,与所述存储器和所述收发器耦合;
其中所述程序代码包括指令,当所述处理器执行所述指令时,所述指令使所述处理设备执行如权利要求 1 至 7 中任一项所述的方法。
10.一种虚拟现实系统,其特征在于,包括:显示设备、输入设备和处理设备,所述显示设备和所述输入设备均与所述处理设备连接;
所述输入设备检测选择对象的操作;
所述处理设备接收所述输入设备检测的选择对象的操作;
所述处理设备根据所述选择对象的操作确定待编辑的目标对象;
所述处理设备根据所述目标对象计算空间编辑区域,所述空间编辑区域被划分为多个网格区域;
所述处理设备确定所述目标对象在所述空间编辑区域的目标吸附平面,所述目标吸附平面为根据所述目标对象的属性与吸附平面的对应关系确定的;
所述处理设备接收所述输入设备检测的移动对象的操作;
所述处理设备根据所述移动对象的操作生成射线,并将所述射线的数据发送至所述显示设备;
所述显示设备显示所述射线;
所述处理设备根据所述射线与所述目标吸附平面的交点确定所述目标对象的目标位置;
所述处理设备将所述目标对象移动至所述目标位置;
所述显示设备显示所述目标对象移动至所述目标位置;
其中,所述根据所述射线与所述目标吸附平面的交点确定所述目标对象的目标位置,包括:确定所述射线与所述目标吸附平面的交点;
计算所述交点所位于的网格的中心位置;
根据所述网格的中心位置与偏移向量计算所述目标对象的目标位置,所述偏移向量为目标网格上与所述目标吸附平面对应的侧面上的中心点到所述目标对象上的预置点的向量,所述目标网格为容纳所述目标对象的包围盒的最小网格区域。
CN201711005203.XA 2017-10-23 2017-10-23 一种在虚拟现实中对象编辑的方法、相关设备及系统 Active CN109697002B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711005203.XA CN109697002B (zh) 2017-10-23 2017-10-23 一种在虚拟现实中对象编辑的方法、相关设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711005203.XA CN109697002B (zh) 2017-10-23 2017-10-23 一种在虚拟现实中对象编辑的方法、相关设备及系统

Publications (2)

Publication Number Publication Date
CN109697002A CN109697002A (zh) 2019-04-30
CN109697002B true CN109697002B (zh) 2021-07-16

Family

ID=66229367

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711005203.XA Active CN109697002B (zh) 2017-10-23 2017-10-23 一种在虚拟现实中对象编辑的方法、相关设备及系统

Country Status (1)

Country Link
CN (1) CN109697002B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110322571B (zh) * 2019-05-30 2023-08-11 腾讯科技(上海)有限公司 一种页面处理方法、装置及介质
CN110381111A (zh) * 2019-06-03 2019-10-25 华为技术有限公司 一种显示方法、位置确定方法及装置
CN111429580A (zh) * 2020-02-17 2020-07-17 浙江工业大学 基于虚拟现实技术的空间全方位仿真系统及方法
CN113554724A (zh) * 2020-04-24 2021-10-26 西安诺瓦星云科技股份有限公司 图形缩放吸附方法及其装置
CN111757081B (zh) * 2020-05-27 2022-07-08 海南车智易通信息技术有限公司 用于虚拟场景的移动限制方法、客户端、服务器及计算设备
CN111782053B (zh) * 2020-08-10 2023-04-28 Oppo广东移动通信有限公司 模型编辑方法、装置、设备及存储介质
CN112203076B (zh) * 2020-09-16 2022-07-29 青岛小鸟看看科技有限公司 Vr系统中多摄像头曝光中心点的对齐方法、系统
CN114404989B (zh) * 2021-12-13 2024-12-24 杭州闪电玩网络科技有限公司 游戏设计交互界面的显示方法、系统、装置和介质
CN114332294A (zh) * 2021-12-28 2022-04-12 杭州安恒信息技术股份有限公司 一种图形吸附线的生成方法、系统、电子设备及存储介质
CN114327063B (zh) * 2021-12-28 2024-08-16 亮风台(上海)信息科技有限公司 目标虚拟对象的交互方法、装置、电子设备及存储介质
US20240193884A1 (en) * 2022-12-12 2024-06-13 Microsoft Technology Licensing, Llc Empty Space Matrix Condensation

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105264461A (zh) * 2013-05-13 2016-01-20 微软技术许可有限责任公司 虚拟对象与表面的交互
CN105912110A (zh) * 2016-04-06 2016-08-31 北京锤子数码科技有限公司 一种在虚拟现实空间中进行目标选择的方法、装置及系统
CN106055090A (zh) * 2015-02-10 2016-10-26 李方炜 利用移动装置的虚拟现实和增强现实控制
CN106575153A (zh) * 2014-07-25 2017-04-19 微软技术许可有限责任公司 虚拟现实环境内基于注视的对象放置
CN107111979A (zh) * 2014-12-19 2017-08-29 微软技术许可有限责任公司 三维可视化系统中的带辅助的对象放置
CN107229393A (zh) * 2017-06-02 2017-10-03 三星电子(中国)研发中心 虚拟现实场景的实时编辑方法、装置、系统及客户端

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10338688B2 (en) * 2015-12-24 2019-07-02 Samsung Electronics Co., Ltd. Electronic device and method of controlling the same
US11221750B2 (en) * 2016-02-12 2022-01-11 Purdue Research Foundation Manipulating 3D virtual objects using hand-held controllers

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105264461A (zh) * 2013-05-13 2016-01-20 微软技术许可有限责任公司 虚拟对象与表面的交互
CN106575153A (zh) * 2014-07-25 2017-04-19 微软技术许可有限责任公司 虚拟现实环境内基于注视的对象放置
CN107111979A (zh) * 2014-12-19 2017-08-29 微软技术许可有限责任公司 三维可视化系统中的带辅助的对象放置
CN106055090A (zh) * 2015-02-10 2016-10-26 李方炜 利用移动装置的虚拟现实和增强现实控制
CN105912110A (zh) * 2016-04-06 2016-08-31 北京锤子数码科技有限公司 一种在虚拟现实空间中进行目标选择的方法、装置及系统
CN107229393A (zh) * 2017-06-02 2017-10-03 三星电子(中国)研发中心 虚拟现实场景的实时编辑方法、装置、系统及客户端

Also Published As

Publication number Publication date
CN109697002A (zh) 2019-04-30

Similar Documents

Publication Publication Date Title
CN109697002B (zh) 一种在虚拟现实中对象编辑的方法、相关设备及系统
Mendes et al. A survey on 3d virtual object manipulation: From the desktop to immersive virtual environments
CN102830795B (zh) 利用运动传感装置的远程控制
KR102249577B1 (ko) Hud 객체 설계 및 방법
WO2020114271A1 (zh) 图像渲染方法、设备及存储介质
JP5752715B2 (ja) デバイスレスな拡張現実およびインタラクションのためのプロジェクタおよび深度カメラ
US20150193979A1 (en) Multi-user virtual reality interaction environment
CN112313605A (zh) 增强现实环境中对象的放置和操纵
US20120208639A1 (en) Remote control with motion sensitive devices
US20190050132A1 (en) Visual cue system
CN114138106B (zh) 混合虚拟现实桌面计算环境中的状态之间的转换
CN103324400A (zh) 一种在3d模型中展示菜单的方法及装置
CN108920053A (zh) 一种对齐方法及移动终端
JP2014521174A (ja) 動的壁紙の生成方法及び生成装置
CN111445563A (zh) 一种图像生成的方法以及相关装置
CN108089713A (zh) 一种基于虚拟现实技术的室内装修方法
US20180165877A1 (en) Method and apparatus for virtual reality animation
Sun et al. Enabling participatory design of 3D virtual scenes on mobile devices
CN110717993A (zh) 一种分体式ar眼镜系统的交互方法、系统及介质
Muhammad Nizam et al. A Scoping Review on Tangible and Spatial Awareness Interaction Technique in Mobile Augmented Reality‐Authoring Tool in Kitchen
JP5767371B1 (ja) 仮想空間平面上に配置したオブジェクトを表示制御するゲーム・プログラム
GB2533777A (en) Coherent touchless interaction with steroscopic 3D images
CN116301494A (zh) 工具栏交互方法、装置、计算机可读存储介质及电子设备
Caruso et al. Interactive augmented reality system for product design review
CN114327174A (zh) 虚拟现实场景的显示方法、光标的三维显示方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant