三维模型调整方法、装置、终端设备及存储介质与流程

文档序号:19531067发布日期:2019-12-27 15:23阅读:191来源:国知局
三维模型调整方法、装置、终端设备及存储介质与流程

本申请涉及计算机技术领域,更具体地,涉及一种三维模型调整方法、装置、终端设备及存储介质。



背景技术:

近年来,随着科技的进步,增强现实(ar,augmentedreality)和虚拟现实(vr,virtualreality)等技术已逐渐成为国内外研究的热点。以增强现实为例,增强现实是通过计算机系统提供的信息增加用户对现实世界感知的技术,其将计算机生成的虚拟对象、场景或系统提示信息等内容对象叠加到真实场景中,来增强或修改对现实世界环境或表示现实世界环境的数据的感知。在ar/vr技术中,虚拟画面都是以三维的效果进行展示,当需要对三维模型进行调整时,由于三维模型容易发生变形,通常需要重新构建三维模型,较为复杂。



技术实现要素:

本申请实施例提出了一种三维模型调整方法、装置、终端设备及存储介质,能够在保持三维gui元素的整体形状上对三维gui元素进行调整,降低调整三维gui元素的复杂度。

第一方面,本申请实施例提供了一种三维模型调整方法,应用于终端设备,方法包括:获取待调整的三维图形用户界面gui元素的切割参数;根据切割参数将待调整的三维gui元素切割成多个区域,并确定多个区域中的调整区域和固定区域,固定区域为待调整的三维gui元素的角区域;获取针对待调整的三维gui元素输入的调整参数;根据调整参数对调整区域的网格信息进行调整,得到调整后的三维gui元素;对调整后的三维gui元素进行显示。

第二方面,本申请实施例提供了一种三维模型调整装置,应用于终端设备,装置包括:切割参数模块、区域确定模块、调整参数获取模块、三维gui元素调整模块以及三维gui元素显示模块,其中,切割参数获取模块用于获取待调整的三维图形用户界面gui元素的切割参数;区域确定模块用于根据切割参数将待调整的三维gui元素切割成多个区域,并确定多个区域中的调整区域和固定区域,固定区域为待调整的三维gui元素的角区域;调整参数获取模块用于获取针对待调整的三维gui元素输入的调整参数;三维gui元素调整模块用于根据调整参数对调整区域的网格信息进行调整,得到调整后的三维gui元素;三维gui元素显示模块用于对调整后的三维gui元素进行显示。

第三方面,本申请实施例提供了一种终端设备,包括:一个或多个处理器;存储器;一个或多个应用程序,其中一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序配置用于执行上述第一方面提供的三维模型调整方法。

第四方面,本申请实施例提供了一种计算机可读取存储介质,计算机可读取存储介质中存储有程序代码,程序代码可被处理器调用执行上述第一方面提供的三维模型调整方法。

本申请实施例提供的方案,在获取到待调整的三维gui元素的切割参数后,可根据该切割参数将待调整的三维gui元素切割成多个区域,并确定多个区域中的调整区域和固定区域,其中,固定区域指的是待调整的三维gui元素的角区域,然后终端设备可以获取针对待调整的三维gui元素输入的调整参数,并根据该调整参数对待调整的三维gui元素的调整区域的网格信息进行调整,进而对调整后的三维gui元素进行显示,将三维gui元素切割成调整区域和固定区域,并且在进行调整时仅对调整区域进行调整,而包含三维gui元素的角区域的固定区域的形状则保持不变,可以在保持三维gui元素的整体形状上对三维gui元素进行调整,降低调整三维gui元素的复杂度。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了一种适用于本申请实施例的应用环境示意图。

图2示出了本申请一个实施例提供的三维模型调整方法的流程图。

图3示出了本申请一个实施例提供的三维模型调整方法中九宫格示意图。

图4示出了本申请一个实施例提供的三维模型调整方法中网格示意图。

图5示出了本申请另一个实施例提供的三维模型调整方法的流程图。

图6示出了本申请另一个实施例提供的三维模型调整方法中步骤s220的流程图;

图7示出了本申请另一个实施例提供的三维模型调整方法中待调整的三维gui元素示意图;

图8示出了本申请另一个实施例提供的三维模型调整方法中待调整的三维gui元素示意图;

图9示出了本申请另一个实施例提供的三维模型调整方法中待调整的三维gui元素示意图;

图10示出了本申请另一个实施例提供的三维模型调整方法中待调整的三维gui元素示意图;

图11示出了本申请另一个实施例提供的三维模型调整方法中待调整的三维gui元素示意图;

图12示出了本申请另一个实施例提供的三维模型调整方法中待调整的三维gui元素示意图;

图13示出了本申请一个实施例提供的三维模型调整装置的框图。

图14示出了本申请一个实施例提供的三维模型调整装置中区域确定模块720的框图。

图15是本申请实施例的用于执行根据本申请实施例的三维模型调整方法的终端设备的框图。

图16是本申请实施例的用于保存或者携带实现根据本申请实施例的三维模型调整方法的程序代码的存储单元。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。

在ar/vr技术中,三维的gui(graphicaluserinterface,图形用户界面)元素是交互界面中不可缺少的元素,例如,三维的按钮、三维的视窗等。为了适应不同的场景,通常需要对三维的gui元素进行拉伸或压缩,由于三维的gui元素是通过多个点和三角面构建的模型,在进行拉伸或压缩等调整时容易产生形变,因此需要重新构建三维gui元素的模型,复杂度高。

发明人经过研究,提出了本申请实施例中的三维模型调整方法、装置、终端设备及存储介质,可以降低调整三维gui元素的复杂度。

下面对本申请实施例提供的三维模型调整方法的应用场景进行介绍。

请参见图1,示出了本申请实施例提供的一种显示系统,包括终端设备100以及交互装置200。

在一些实施例中,终端设备100可以是头戴显示装置、手机、平板电脑、个人计算机等,其中,头戴显示装置可以为一体式头戴显示装置,也可以为与外置电子设备连接的头戴显示装置。终端设备100也可以是与外接式/接入式头戴显示装置连接的手机等智能终端,即终端设备100可作为头戴显示装置的处理和存储设备,插入或者接入外接式头戴显示装置,通过头戴显示装置对虚拟对象300进行显示,其中虚拟对象300可包括图标、表格、选项等三维的gui元素等。

在一些实施例中,用户可通过交互装置200与终端设备100显示的虚拟对象300进行交互,其中,交互装置200可以是键盘、平板电脑、鼠标、手柄等电子设备,但不限于此。作为一种方式,交互装置200上可以设有至少一个交互区域,用户可以通过交互区域对虚拟对象300进行相关控制和交互。其中,交互区域可以包括按键、滚轮和触摸屏等中的至少一种,本申请实施例中交互装置的具体形态结构及尺寸大小不受限制,可以是各种形状,例如正方形、圆形,也可以是各种形态的。作为另一种实施方式,用户也可以通过手势等与虚拟对象300进行交互,此时,终端设备100可以接收用户的手势指令,并根据该手势指令对虚拟对象300进行相应的控制。

在一些实施例中,终端设备100与交互装置200可以通过蓝牙、wifi(wireless-fidelity,无线保真)、zigbee(紫峰技术)等无线通信方式连接,也可以通过数据线等进行有线通信连接,当然,终端设备100与交互设备的连接方式在本申请实施例中并不限定。

请参阅图2,本申请实施例提供了一种三维模型调整方法,应用于终端设备,该方法可以包括:

步骤s110:获取待调整的三维图形用户界面gui元素的切割参数。

在一种实施方式中,终端设备可以获取待调整的三维gui元素的切割参数,该切割参数可以是用户基于待调整的三维gui元素输入的参数,也可以是历史参数,或者也可以是终端设备中预先设置好的参数。其中,gui元素可用于实现用户与终端设备之间的交互,可以为界面中的图形对象,例如,gui元素可包括提示框、弹出框、警告框、对话框、上拉菜单、简易菜单、活动视图、确认弹框、全屏弹框以及模态视图等,这些gui元素下面又可以包含有多个子gui元素。例如,上拉菜单中不仅可以包含有取消子gui元素,而且可以包含有删除子gui元素等,gui元素具体指的是哪些这里不进行明确限制。

在一个实施例中,gui元素可以分为二维gui元素和三维gui元素,其中,三维gui元素可以通过获取欲生成的用户界面在三维空间的x轴方向和y轴方向的尺寸以及z轴方向所分布的层所对应的缩放系数生成。待调整的三维gui元素则指的是终端设备中尺寸或者大小需要被调整的三维gui元素,因此,在获取待调整的三维gui元素的切割参数前,可以先确定待调整的三维gui元素是哪一个,即待调整的三维gui元素可以是用户指定的,也可以是终端设备默认的。例如,三维gui元素对话框就可以作为默认待调整的三维gui元素,主要原因是该三维gui元素会随着会话内容的不断输入,其宽高比例会不断发生改变。而切割参数主要包括用于将待调整的三维gui元素切割为多个区域的水平切割线和垂直切割线,通过切割参数可以将待调整的三维gui元素切割为多个区域,如切割成9个区域,或者切割成27个区域等,但不限于此。

步骤s120:根据切割参数将待调整的三维gui元素切割成多个区域,并确定多个区域中的调整区域和固定区域,固定区域为待调整的三维gui元素的角区域。

在一种实施方式中,终端设备获取到切割参数便可以将待调整的三维gui元素切割成多个区域,而后可以确定这多个区域中哪些区域的宽高比例可调,哪些区域的宽高比例不可调,并将可调的区域称为调整区域,不可调的区域则称为固定区域。本申请实施例中固定区域可为待调整的三维gui元素的角区域,其中角区域指的是包含gui元素的角的区域,例如,gui元素为矩形的三维模型,则角区域可为包含矩形的角的区域。切割参数不相同则待调整的三维gui元素切割成的区域数也不相同,例如,当切割参数包含两条水平切割线和两条垂直切割线的信息时,待调整的三维gui元素可以被切割成9个区域,当切割参数为两条横向线和八条纵向线时,待调整的三维gui元素可以被切割成27个区域,具体将待调整的三维gui元素切割成多少个区域这里不进行明确限制,可以根据实际情况进行切分。

为了更加清楚的说明待调整的三维gui元素的区域划分,以图3所示的九宫格示意图为例,可以对图3给出的9个区域分别进行编号,即这九个区域分别是第1区域、第2区域、第3区域、第4区域、第5区域、第6区域、第7区域、第8区域和第9区域。图3中第1区域、第3区域、第7区域和第9区域为待调整的三维gui元素的角区域,即在对待调整的三维gui元素进行拉伸或者压缩操作时这四个编号对应的区域的形状不发生改变,故可以将这四个区域称为固定区域。第2区域、第4区域、第5区域、第6区域以及第8区域则会随着拉伸或者压缩操作的执行其宽高比例会发生相应的改变,故可以将第2区域、第4区域、第5区域、第6区域以及第8区域称为调整区域。另外,可以根据每个区域的不同位置对第2区域、第4区域、第5区域、第6区域以及第8区域进行进一步的划分,具体的,可以将第2区域和第8区域称为水平调整区域,即在执行水平拉伸或压缩操作时,可以改变第2区域和第8区域的宽高比例;将第4区域和第6区域称为垂直调整区域,即在执行垂直拉伸或压缩操作时,可以改变第4区域和第6区域的宽高比例;而第5区域则可以称为完全调整区域,即在对待调整的三维gui元素进行调整时可以同时对第5区域的宽高比例进行水平和垂直的拉升或压缩操作。

在一种实施方式中,调整区域和固定区域的确定可以根据待调整的三维gui元素的形状特征而定。例如,可以根据需要把待调整的三维gui元素中被拉伸后会出现形变、失真的部分切割在固定区域(如角区域)中,而切割参数则可以根据待调整的三维gui元素的边角区域的形状和尺寸来确定。例如,在实际应用中,待调整的三维gui元素经常有圆角,因此,可以根据圆角的直径确定切割线的位置坐标,从而使得在切割后的待调整的三维gui元素中,圆角被包含在不会被拉伸的固定区域中,从而可以防止出现形变失真的问题。另外,本领域技术人员应当理解,本发明中所提及的“拉伸”指的是增大待调整的三维gui元素的高度和/或宽度,而“压缩”则指的是减小待调整的三维gui元素的高度和/或宽度。

步骤s130:获取针对待调整的三维gui元素输入的调整参数。

在一些实施方式中,针对待调整的三维gui元素输入的调整参数可以是用户根据待调整的三维gui元素的实际情况输入的,也可以是终端设备预先设置好的,或者是历史调整参数。用户可以根据其自身需求对待调整的三维gui元素进行调整,即用户可以针对待调整的三维gui元素输入调整参数,而该调整参数则可以通过鼠标、键盘、触控板等交互装置或者是手势输入。

在一个具体的实施方式中,用户可以通过按压或者移动交互装置来输入调整参数,进而实现对待调整的三维gui元素的调整,在此过程中终端设备可以对待调整的三维gui元素和虚拟指示光标进行实时检测,即虚拟指示光标与待调整的三维gui元素的边界坐标是否有相交,如果待调整的三维gui元素的边界坐标与虚拟指示光标有相交则触发调整参数输入操作,如果待调整的三维gui元素的边界坐标与虚拟指示光标没有相交,则调整参数无法被成功输入,作为一种方式,可通过交互装置移动虚拟指示光标的位置。当调整参数输入操作被成功触发时,则可以通过按压或者移动交互装置来实现对待调整的三维gui元素的调整。

本申请实施例中调整参数可以分为水平调整参数、垂直调整参数以及对角线调整参数,当用户通过水平移动操作对待调整的三维gui元素进行调整时,产生的调整参数即为水平调整参数,具体的,可以通过交互装置移动水平切割线的方式对待调整的三维gui元素进行调整,或者也可以直接拖动gui元素的边界往水平方向移动等;当用户通过垂直移动操作对待调整的三维gui元素进行调整时,产生的调整参数即为垂直调整参数,同理,用户可以通过移动垂直切割线的方式对待调整的三维gui元素进行调整,或者用户也可以直接拖动gui元素的边界往垂直方向移动等;当用户通过对角移动操作对待调整的三维gui元素进行调整时,产生的调整参数即为对角线调整参数,同上,用户可以通过移动对角切割线的方式对待调整的三维gui元素进行调整,或者用户也可以直接拖动gui元素的边界往对角方向移动等。可选地,可结合按压操作和移动操作来输入调整参数,即在确定虚拟指示光标与待调整的三维gui元素的坐标相交时,可以先获取按压操作,在按压操作的基础上再判断是否有移动操作输入,如果有移动操作输入则可以根据移动操作对待调整的三维gui元素进行调整。

通过上述介绍可以知道,调整参数可以包括水平调整参数、垂直调整参数或者对角线调整参数等,而终端设备在获取针对调整三维gui元素输入的调整参数之后可以先检测其获取的调整参数是否是水平调整参数,如果终端设备获取的调整参数为水平调整参数,终端设备则可以进一步判断该水平调整参数是否小于等于第一预设阈值,如果水平调整参数小于等于第一预设阈值,则表明调整参数输入成功,此时则进入步骤s140。如果水平调整参数大于第一预设阈值,则表明调整参数输入失败,此时终端设备则可以通过图像、文本或者语音等方式提示用户调整参数输入失败。例如,终端设备在虚拟环境中可以以文本的方式提示用户,文本的内容可以是“主人您输入的水平调整参数过大,无法进行调整操作,请重新执行调整参数输入操作,或者放弃执行本次操作!”。

另外,如果终端设备获取的调整参数不是水平调整参数,则判断该调整参数是否是垂直调整参数,如果终端设备获取的调整参数为垂直调整参数,终端设备则可以进一步判断该垂直调整参数是否小于等于第二预设阈值,如果垂直调整参数小于等于第二预设阈值,则表明调整参数输入成功,此时则进入步骤s140。如果垂直调整参数大于第二预设阈值,则表明调整参数输入失败,此时终端设备则可以通过图像、文本或者语音等方式提示用户调整参数输入失败。例如,终端设备可以以语音的方式提示用户“垂直调整参数输入过大,无法按照您的要求对待调整的三维gui元素进行调整,麻烦主人请重新执行调整参数输入操作”。

在另一些实施方式中,如果终端设备获取的调整参数不是垂直调整参数,则表明其获取的调整参数为对角线调整参数,此时终端设备则可以进一步判断该对角线调整参数是否小于等于第三预设阈值,如果对角线调整参数小于等于第三预设阈值,则表明调整参数输入成功,此时则进入步骤s140。如果对角线调整参数大于第三预设阈值,则表明调整参数输入失败,此时终端设备则可以通过图像、文本或者语音等方式提示用户调整参数输入失败。例如,终端设备可以以图像的方式提示用户,即可以在虚拟环境中显示红色错误图标以提示用户调整参数输入失败。

需要说明的是,用户也可以通过手势或者键盘等方式输入调整参数值终端设备,而利用手势输入调整参数时则可以通过检测手势的运动轨迹来确定输入的调整参数属于哪一类。例如,终端设备检测到用户的手势是水平向右移动,此时则可以确定输入的调整参数是水平调整参数。而利用键盘输入调整参数时则可以先利用键盘选择需要调整的方向,在此基础上再输入该方向的调整参数。例如,可以通过键盘先输入需要调整的方式是相对终端设备水平向右,而后再通过键盘输入需要调整的大小是放大2倍,此时的调整参数即为水平向右放大2倍。

步骤s140:根据调整参数对调整区域的网格信息进行调整,得到调整后的三维gui元素。

终端设备获取到调整参数后即可根据该调整参数对调整区域的网格信息进行调整,进而得到调整后的三维gui元素。其中的网格信息也可以称为mesh信息,mesh是unity内的一个组件,其指的是模型的网格,mesh的主要属性内容包括顶点坐标(vertex)、法线(normal)、纹理坐标(uv)、三角形绘制序列(triangle)等其他有用属性和功能。顶点坐标(vertex)主要用于存放mesh的每个顶点的空间坐标,假设某mesh有n个顶点,则vertex的大小则为n;法线(normal)主要用于存放mesh每个顶点的法线,其大小与顶点坐标相对应,如normal[i]是顶点vertex[i]的法线;纹理坐标(uv)主要定义了图片上每个点的位置的信息,其可以决定表面纹理贴图的位置,纹理坐标就是将图像上每一个点精确对应到三维gui元素的表面,而uv[i]与vertex[i]对应;三角形序列(triangle)由若干个三角形组成,而三角形的三个点就是顶点坐标里的点,三角形数组的size=三角形的个数*3。例如,mesh信息中有四个顶点分别是0,1,2,3,其中顶点坐标分别是:v0(1,1,0),v1(-1,1,0),v2(1,-1,0),v3(-1,-1,0),这些顶点可组成如图4所示的一个网格。

在一些实施方式中,对待调整的三维gui元素的调整即是对三维gui元素对应的网格信息的调整,通过上述介绍可以知道调整区域可以包括多个网格,因此对调整区域进行调整,主要就是对这些调整区域对应的网格信息的调整。作为一种方式,对待调整的三维gui元素的调整主要是通过调整参数对网格信息中包含的顶点的空间坐标进行调整,进而可以改变待调整三维gui元素调整区域的宽高比例。本申请实施例中网格信息可以集中存储于一个meta文件中,而meta文件是用于辅助管理模型资源的文件,可根据meta中记录的guid(globaluniqueidentifier,全局唯一标识符)来区分不同资源,同时meta还用于记录一些重要的资源信息,如各个资源的inspector的信息等,meta文件实质是一个文本文档,其主要是利用yaml的格式生成的。

步骤s150:对调整后的三维gui元素进行显示。

终端设备根据调整参数对调整区域的网格信息进行调整,得到调整后的三维gui元素后可以对调整后的三维gui元素进行显示,其中,调整后的三维gui元素的位置会随着拉伸或者压缩操作之后三维gui元素的大小进行相应地调整。

本申请实施例提供的三维模型调整方法中通过获取待调整的三维gui元素的切割参数和调整参数来对待调整的三维gui元素进行调整,且在执行调整操作时本申请实施例可以保证只对待调整的三维gui元素中调整区域进行调整,而待调整的三维gui元素中的固定区域则不发生改变,如此不仅可以提高三维gui元素调整的准确性,而且通过本申请可以避免对gui元素的重复建模,同时可以提高构建三维模型的效率,且在一定程度上可以减少终端设备的内存消耗。

请参阅图5,本申请另一实施例提供了一种三维模型调整方法,应用于终端设备,该方法可以包括:

步骤s210:获取待调整的三维图形用户界面gui元素的切割参数。

在一些实施方式中,终端设备可以获取用户针对待调整的三维gui元素输入的切割参数,并将该切割参数作为待调整的三维gui元素对应的切割参数。在另一些实施方式中,终端设备也可以获取待调整的三维gui元素对应的历史切割参数,并可以将该历史切割参数作为待调整的三维gui元素对应的切割参数。

步骤s220:根据切割参数将待调整的三维gui元素切割成多个区域,并确定多个区域中的调整区域和固定区域,固定区域为待调整的三维gui元素的角区域。

通过上述介绍可以知道,针对待调整的三维gui元素可以输入多个切割参数,而这些切割参数又可以包括横向切割线、纵向切割线以及斜向切割线等,且这些切割参数的数量也可以不相同,如图3中切割参数就可以包括两个横向切割线和两个纵向切割线。因横向切割线或者斜向切割的获取与纵向切割线获取类似,因此,本申请实施例只给出了如何获取纵向切割线,以及如何通过纵向切割线对待调整的三维gui元素的情况,且本申请对纵向切割线的数量不做限制。

其中,如图6所示步骤s220可以包括步骤s221至步骤s222。

步骤s221:当第一切割线和第二切割线与待调整的三维gui元素相交时,获取第一切割线和第二切割线与待调整的三维gui元素相交的位置。

在一些实施方式中,切割参数可以包括第一切割线和第二切割线,终端设备获取到待调整的三维gui元素的切割参数时,可以检测该切割参数中的第一切割线和第二切割线是否与待调整的三维gui元素相交,如果第一切割线和第二切割线与待调整的三维gui元素相交,则获取第一切割线和第二切割线与待调整的三维gui元素相交的位置。如果第一切割线和第二切割线与待调整的三维gui元素不相交,则表明待调整的三维gui元素的切割参数获取失败,作为一种方式,终端设备可以提示用户重新输入切割参数,如果在预设时间段内终端设备仍未接收到用户输入的切割参数,则其可以再次发出输入切割参数的提示信息,在此过程中终端设备可以对提示次数进行记录,当提示次数大于预设次数时表明终端设备获取切割参数失败,终端设备结束三维模型调整操作。

在一些实施方式中,终端设备在检测第一切割线和第二切割线与待调整的三维gui元素是否相交时,其可以先获取第一切割线并判断第一切割线是否与待调整的三维gui元素相交,如果第一切割线与待调整的三维gui元素相交,终端设备则获取第二切割线并判断该第二切割线是否与待调整的三维gui元素相交,如果第二切割线与待调整的三维gui元素相交则表明第一切割线和第二切割线与待调整的三维gui元素相交。在另一些实施方式中,终端设备也可以同时获取第一切割线和第二切割线,并判断第一切割线和第二切线是否重合,如果第一切割线与第二切割线重合,则从第一切割线和第二切割线中的任意获取一条切割线,并判断该切割线是否与待调整的三维gui元素相交,如果该切割线与待调整的三维gui元素相交,则表明第一切割线和第二切割线与待调整的三维gui元素相交。

需要说明的是,当确定第一切割线与待调整的三维gui元素相交,而第二切割线与待调整的三维gui元素不相交时,终端设备可以提示用户重新输入切割参数,如果在预设时间段内终端设备未获取到用户输入的切割参数时,可以默认要求重新输入的切割参数与符合条件的切割参数重合。例如,确定第一切割线与待调整的三维gui元素相交,而第二切割线与待调整的三维gui元素不相交时,终端设备发出重新输入第二切割线的提示信息后,在预设时间段内未接收到用户输入的切割参数,此时则可以默认该第二切割线与第一切割线重合,如此也可以保证第二切割线与待调整的三维gui元素相交。

步骤s222:根据第一切割线和第二切割线与待调整的三维gui元素相交的位置将待调整的三维gui元素切割成多个区域,并确定待调整的三维gui元素对应的调整区域和固定区域。

在一些实施方式中,待调整的三维gui元素可以包括gui元素顶点,终端设备获取到第一切割线与第二切割线时可以先检测该第一切割线和第二切割线是否均与待调整的三维gui元素相交,如果相交,可以进一步确定第一切割线和第二切割线是否重合相交于待调整的三维gui元素的同一个gui元素顶点,如果第一切割线和第二切割线重合相交于同一个gui元素顶点时,终端设备则可以获取一个切割点,而该切割点则是通过复制这个相交的gui元素顶点获取的,而后终端设备可以将这个相交的gui元素顶点与切割点之间的区域作为待调整的三维gui元素对应的调整区域。可在切割点与相交的gui元素顶点之间生成连线,该连线与第一切割线、第二切割线可构成该调整区域的三个边,连线可用于拉长或缩短。

在一个具体实施例中,如图7(a)所示,待调整的三维gui元素201可以包括多个gui元素顶点,终端设备获取到第一切割线l1和第二切割线l2的位置坐标,可以先判断第一切割线l1和第二切割线l2是否均与待调整的三维gui元素201相交,从图7(a)可以明显看出第一切割线l1和第二切割线l2与待调整的三维gui元素201相交,此时可以进一步判断第一切割线l1和第二切割线l2是否是重合相交于待调整的三维gui元素201的同一个gui元素顶点,如gui元素顶点a,从图7(a)可以看出第一切割线l1和第二切割线l2符合上述条件。因此,可以获取一个切割点a’,这个切割点a’是通过复制gui元素顶点a获取的,详细如图7(b)所示,而后可以将gui元素顶点a与切割点a’之间的区域作为对应的调整区域203,而控制顶点a与切割点a’之外的区域则可以作为固定区域,其中,gui元素顶点a与切割点a’之间的连线是水平或者垂直的。在确定待调整的三维gui元素对应的调整区域和固定区域时图8与图7类似,不同之处在于图7中,待调整的三维gui元素201的形状是八边形而图8中待调整的三维gui元素303的形状则是四边形,显然,本申请实施例在对待调整的三维gui元素进行调整时不对待调整的三维gui元素的形状做具体的限制,其可以是八边形也可以是四边形或者也可以是其他的形状,具体可以根据实际情况进行设置。

在另一些实施方式中,待调整的三维gui元素可以包括gui元素边界线,终端设备获取到第一切割线与第二切割线时可以先检测该第一切割线和第二切割线是否均与待调整的三维gui元素相交,如果相交,可以进一步确定第一切割线和第二切割线是否分别相交于待调整的三维gui元素的同一条gui元素边界线,如果第一切割线和第二切割线分别相交于同一个gui元素边界线,终端设备则可以获取两个一个切割点,这两个切割点可以称为第一切割点和第二切割点,其中,第一切割点是第一切割线与gui元素边界线的交点,第二切割点则是第二切割线与gui元素边界线的交点,而后可以将第一切割点与第二切割点之间的区域作为待调整的三维gui元素对应的调整区域。

在一个具体实施例中,如图9(a)所示,待调整的三维gui元素301可以包括多条gui元素边界线,如gui元素边界线l0,终端设备获取到第一切割线l1和第二切割线l2,可以先判断第一切割线l1和第二切割线l2是否均与待调整的三维gui元素301相交,从图9(a)可以明显看出第一切割线l1和第二切割线l2与待调整的三维gui元素301相交,此时可以进一步判断第一切割线l1和第二切割线l2是否分别相交于待调整的三维gui元素的同一条gui元素边界线,即确定第一切割线l1是否与gui元素边界线l0相交,且第二切割线l2是否与gui元素边界线l0相交,从图9(a)可以看出第一切割线l1和第二切割线l2符合上述条件。因此,可以获取两个切割点,这两个切割点分别是b和b’,显然,切割点b是第一切割线l1与gui元素边界线l0的交点而切割点b’则是第二切割线l2与gui元素边界线l0的交点,详细如图9(b)所示,而后可以将切割点b与切割点b’之间的区域作为对应的调整区域302,而切割点b与切割点b’之外的区域则可以作为固定区域。

在另一些实施方式中,待调整的三维gui元素可以包括gui元素边界线,终端设备获取到第一切割线与第二切割线时可以先检测该第一切割线和第二切割线是否均与待调整的三维gui元素相交,如果相交,可以进一步确定第一切割线和第二切割线是否相较于同一条gui元素边界线,且第一切割线和第二切割线是否重合,如果第一切割线和第二切割线相交于同一条gui元素边界线,且第一切割线和第二切割线重合,则获取第一切割线和第二切割线相交于gui元素边界线的交点,并复制该交点得到切割点,而后可以将该交点和切割点之间的区域作为待调整的三维gui元素对应的调整区域。

在一个具体实施例中,如图10(a)所示,待调整的三维gui元素401可以包括多条gui元素边界线,如gui元素边界线l0,终端设备获取到第一切割线l1和第二切割线l2,可以先判断第一切割线l1和第二切割线l2是否均与待调整的三维gui元素401相交,从图10(a)可以明显看出第一切割线l1和第二切割线l2与待调整的三维gui元素301相交,此时可以进一步判断第一切割线l1和第二切割线l2是否分别相交于待调整的三维gui元素301的同一条gui元素边界线l0,同时需确定第一切割线l1和第二切割线l2是否重合,从图10(a)可以看出第一切割线l1和第二切割线l2符合上述条件。此时,可以获取第一切割线l1和第二切割线l2相交于gui元素边界线l0的交点c,并复制该交点c得到切割点c’,详细如图10(b)所示,而后可以将交点c与切割点c’之间的区域作为对应的调整区域402,而交点c与切割点c’之外的区域则可以作为固定区域。

在另一些实施方式中,待调整的三维gui元素可以包括gui元素顶点和gui元素边界线,终端设备获取到第一切割线与第二切割线时可以先检测该第一切割线和第二切割线是否均与待调整的三维gui元素相交,如果相交,可以进一步确定第一切割线是否与gui元素边界线相交,且第二切割线是否与gui元素顶点相交,如果第一切割线与gui元素边界线相交,且第二切割线与gui元素顶点相交,则获取第一切割线和gui元素边界线相交的点,并将该点作为第一切割点,而后可以将第一切割点以及与第二切割线相交的gui元素顶点之间的区域作为待调整的三维gui元素对应的调整区域。

在一个具体实施例中,如图11(a)所示,待调整的三维gui元素501可以包括多个gui元素顶点和多条gui元素边界线,如gui元素顶点d和gui元素边界线l0,终端设备获取到第一切割线l1和第二切割线l2,可以先判断第一切割线l1和第二切割线l2是否均与待调整的三维gui元素501相交,从图11(a)可以明显看出第一切割线l1和第二切割线l2与待调整的三维gui元素501相交,此时可以进一步判断第一切割线l1是否与gui元素边界线l0相交,且第二切割线l2是否与gui元素顶点d相交,如果第一切割线l1与gui元素边界线l0相交,且第二切割线l2与gui元素顶点d相交,则获取第一切割线l1与gui元素边界线l0相交的点d’,并将点d’作为第一切割点,详细如图11(b)所示,而后可以将第一切割点d’与gui元素顶点d之间的区域作为待调整的三维gui元素501对应的调整区域502,而切割点d’与切割点d之外的区域则可以作为固定区域。

在另一个具体的实施例中,如图12(a)所示,待调整的三维gui元素601可以包括多个gui元素顶点,如第一gui元素顶点e和第二gui元素顶点e’,终端设备获取到第一切割线l1和第二切割线l2,可以先判断第一切割线l1和第二切割线l2是否均与待调整的三维gui元素601相交,从图12(a)可以明显看出第一切割线l1和第二切割线l2与待调整的三维gui元素601相交,此时可以进一步判断第一切割线l1是否与第一gui元素顶点e相交,且第二切割线l2是否与第二gui元素顶点e’相交,如果第一切割线l1与第一gui元素顶点e相交,且第二切割线l2与第二gui元素顶点e’相交,则将第一gui元素顶点e与第二gui元素顶点e’之间的区域作为待调整的三维gui元素601的对应的调整区域602,而第一gui元素顶点e与第二gui元素顶点e之外的区域则可以作为固定区域,详细如图12(b)所示。

步骤s230:获取针对待调整的三维gui元素输入的调整参数。

步骤s240:根据调整参数对调整区域的网格信息进行调整,得到调整后的三维gui元素。

终端设备将待调整的三维gui元素分割成多个区域后,可以接收用户针对该待调整的三维gui元素输入的调整参数,并基于该调整参数可以对调整区域的网格信息进行调整,如图7(b)中的202即为待调整的三维gui元素201经过调整参数调整后获取的三维gui元素示意图;如图8(b)中的206即为待调整的三维gui元素204经过调整参数调整后获取的示意图;如图9(b)中的303同理为待调整的三维gui元素301经过调整参数调整后得到的示意图;如图10(b)中的403即为待调整的三维gui元素401经过调整参数调整后获取的;如图11(b)中的503即为待调整的三维gui元素501经过调整参数调整后获取的;如图12(b)中的603即为待调整的三维gui元素601经过调整参数调整后获取的。

步骤s250:对调整后的三维gui元素进行显示。

本申请实施例提供的三维模型调整方法中通过获取待调整的三维gui元素的切割参数和调整参数来对待调整的三维gui元素进行调整,尤其是通过引入第一切割线和第二切割线可以更加方便有效的对待调整的三维gui元素进行调整,且在执行调整操作时本申请实施例可以保证只对待调整的三维gui元素中调整区域进行调整,而待调整的三维gui元素中的固定区域则不发生改变,如此不仅可以提高三维gui元素调整的准确性,而且通过本申请可以避免对gui元素的重复建模。

请参阅图13,其示出了本申请实施例提供的一种三维模型调整装置700的结构框图,该装置可以包括:切割参数获取模块710、区域确定模块720、调整参数获取模块730、三维gui元素调整模块740以及三维gui元素显示模块750,其中,切割参数获取模块710用于获取待调整的三维图形用户界面gui元素的切割参数;区域确定模块720用于根据切割参数将待调整的三维gui元素切割成多个区域,并确定多个区域中的调整区域和固定区域,固定区域为待调整的三维控制的角区域;调整参数获取模块730用于获取针对待调整的三维gui元素输入的调整参数;三维gui元素调整模块740用于根据调整参数对调整区域的网格信息进行调整,得到调整后的三维gui元素;三维gui元素显示模块750,用于对调整后的三维gui元素进行显示。

在一些实施例中,切割参数获取模块710获取待调整的三维图形用户界面gui元素的切割参数,可以包括:获取用户针对待调整的三维gui元素输入的切割参数,将切割参数作为待调整的三维gui元素对应的切割参数;或者获取待调整的三维gui元素对应的历史切割参数,并将该历史切割参数作为待调整的三维gui元素对应的切割参数。

在一些实施例中,切割参数可以包括第一切割线和第二切割线,如图14所示区域确定模块720可以包括位置获取单元721和区域切割单元722。其中,置获取单元721用于当第一切割线和第二切割线与待调整的三维gui元素相交时,获取第一切割线和第二切割线与待调整的三维gui元素相交的位置;区域切割单元722用于根据第一切割线和第二切割线与待调整的三维gui元素相交的位置将待调整的三维gui元素切割成多个区域,并确定待调整的三维gui元素对应的调整区域和固定区域。

在一些实施例中,区域确定模块720还用于当第一切割线和第二切割线重合相交于同一个gui元素顶点时,则获取一个切割点,切割点是通过复制相交的gui元素顶点获取的;将相交的gui元素顶点与切割点之间的区域作为待调整的三维gui元素对应的调整区域。

在一些实施例中,区域确定模块720还用于当第一切割线和第二切割线相交于同一条gui元素边界线时,则获取第一切割点和第二切割点,第一切割点是第一切割线与gui元素边界线的交点,第二切割点是第二切割线与gui元素边界线的交点;将第一切割点与第二切割点之间的区域作为待调整的三维gui元素对应的调整区域。

在一些实施例中,区域确定模块720还用于当第一切割线和第二切割线相交于同一条gui元素边界线,且第一切割线和第二切割线重合时,获取第一切割线和第二切割线相交于gui元素边界线的交点,并复制交点得到切割点;将交点与切割点之间的区域作为待调整的三维gui元素对应的调整区域。

在一些实施例中,区域确定模块720还用于当第一切割线与gui元素边界线相交,且第二切割线与gui元素顶点相交时,则获取第一切割线和gui元素边界线相交的点,并将相交的点作为第一切割点;将第一切割点以及与第二切割线相交的gui元素顶点之间的区域作为待调整的三维gui元素对应的调整区域。

本申请实施例提供的三维模型调整方法中通过获取待调整的三维gui元素的切割参数和调整参数来对待调整的三维gui元素进行调整,且在执行调整操作时本申请实施例可以保证只对待调整的三维gui元素中调整区域进行调整,而待调整的三维gui元素中的固定区域则不发生改变,如此不仅可以提高三维gui元素调整的准确性,而且通过本申请可以避免对gui元素的重复建模,同时可以提高构建三维模型的效率,且在一定程度上可以减少终端设备的内存消耗。

请参考图15,其示出了本申请实施例提供的一种终端设备的结构框图。该终端设备800可以是头戴显示装置等能够运行应用程序的终端设备。本申请中的终端设备800可以包括一个或多个如下部件:处理器810、存储器820,其中存储器820中存储有一个或多个应用程序,一个或多个应用程序被配置为由一个或多个处理器810执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。

处理器810可以包括一个或者多个处理核。处理器810利用各种接口和线路连接整个终端设备800内的各个部分,通过运行或执行存储在存储器820内的指令、程序、代码集或指令集,以及调用存储在存储器820内的数据,执行终端设备800的各种功能和处理数据。可选地,处理器810可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器810可集成中央处理器(centralprocessingunit,cpu)、图像处理器(graphicsprocessingunit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器810中,单独通过一块通信芯片进行实现。

存储器820可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory)。存储器820可用于存储指令、程序、代码、代码集或指令集。存储器820可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端设备800在使用中所创建的数据等。

在一个实施例中,终端设备为头戴显示装置,除了包括上述的处理器、存储器及图像采集装置外,还可包括如下一个或多个部件:图像采集装置、显示模组、光学模组、通信模块以及电源。

图像采集装置,用于采集现实物体的图像以及采集目标场景的场景图像。图像采集装置可以为红外相机,也可以是可见光相机,具体类型在本申请实施例中并不作为限定。

显示模组可包括显示控制单元。显示控制单元用于接收处理器渲染后的虚拟内容的显示图像,然后将该显示图像显示并投射至光学模组上,使用户能够通过光学模组观看到虚拟内容。其中,显示模组可以是显示屏或投射装置等,可用于显示图像。

光学模组可采用离轴光学系统或波导光学系统,显示模组显示的显示图像经光学模组后,能够被投射至用户的眼睛。用户在通过光学模组看到显示模组投射的显示图像的同时。在一些实施方式中,用户还能够透过光学模组观察到现实环境,感受虚拟内容与现实环境叠加后的增强现实效果。

通信模块可以是蓝牙、wifi(wireless-fidelity,无线保真)、zigbee(紫峰技术)等模块,头戴显示装置可通过通信模块与终端设备建立通信连接。与终端设备通信连接的头戴显示装置,可以与终端设备进行信息以及指令的交互。例如,头戴显示装置可以通过通信模块接收终端设备的发送的图像数据,根据所接收的图像数据生成虚拟世界的虚拟内容进行显示。

电源可为整个头戴显示装置进行供电,保证头戴显示装置各个部件的正常运行。

请参考图16,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读存储介质900中存储有程序代码,程序代码可被处理器调用执行上述方法实施例中所描述的方法。

该计算机可读存储介质900可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。可选地,计算机可读存储介质900包括非易失性计算机可读介质(non-transitorycomputer-readablestoragemedium)。计算机可读存储介质900具有执行上述方法中的任何方法步骤的程序代码910的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码910可以例如以适当形式进行压缩。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1