三维交互式植物建模方法、装置、终端及存储介质
文献发布时间:2023-06-19 11:52:33
技术领域
本申请涉及植物建模技术领域,特别是涉及一种三维交互式植物建模方法、装置、终端及存储介质。
背景技术
植物是自然界最常见的景观之一,例如:树,其结构复杂,在三维游戏、三维动画等虚拟场景中,通过引入真实植物的三维模型,可极大增加场景的真实感;另一方面,构建植物的三维模型和模拟植物的生长过程对探索植物生长规律具有重要意义。然而真实环境中植物的几何结构复杂,使得其三维重建一直是计算机图形学研究中的挑战性问题。
目前对于植物的建模主要还是根据用户在二维平面勾勒出植物草图,通过输入的各项参数推算出植物的三维结构,再完成对植物的三维模型的构建,整个实施过程在二维平面下实现,操作麻烦而且效率低下,用户体验不佳。
发明内容
本申请提供一种三维交互式植物建模方法、装置、终端及存储介质,以解决现有的植物建模方式操作复杂、效率低下的问题。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种三维交互式植物建模方法,包括:获取建模区域,并在建模区域均匀生成标记点;基于预设顶芽的位置,利用空间殖民算法确认预设顶芽的生长方向,并沿生长方向生成初步植物模型;接收到用户的修改指令时,检测修改指令的类型;当修改指令是旋转平移指令时,利用用户输入的旋转平移参数对初步植物模型上选中的枝段进行旋转平移操作;当修改指令是绘制指令时,利用用户输入的绘制参数在初步植物模型上绘制新的枝段;当修改指令是画刷指令时,在用户输入的画刷区域利用空间殖民算法生成新的植物模型。
作为本发明的进一步改进,获取建模区域,并在建模区域均匀生成标记点的步骤,包括:获取用户通过外部设备输入的轮廓区域;将轮廓区域作为建模区域,并在建模区域均匀生成标记点。
作为本发明的进一步改进,利用用户输入的旋转平移参数对初步植物模型上选中的枝段进行旋转平移操作的步骤,包括:通过六自由度手柄获取用户在初步植物模型中选中的枝段,并获取用户在三维空间中的移动轨迹;分析移动轨迹得到旋转参数和平移参数;利用旋转参数和平移参数对选中的枝段进行旋转和平移操作。
作为本发明的进一步改进,利用用户输入的旋转平移参数对初步植物模型上选中的枝段进行旋转平移操作的步骤,包括:通过VR手柄获取用户在初步植物模型中选中的枝段,并获取用户在VR手柄的触摸板上滑动前和滑动后的位置;基于滑动前和滑动后的位置计算旋转角度;根据旋转角度控制选中的枝段旋转。
作为本发明的进一步改进,利用用户输入的绘制参数在初步植物模型上绘制新的枝段的步骤,包括:通过六自由度手柄获取用户在初步植物模型中设定的起始枝段位置,并获取用户在三维空间中的移动轨迹;分析移动轨迹得到绘制参数;利用绘制参数从起始枝段位置绘制三维枝段。
作为本发明的进一步改进,在用户输入的画刷区域利用空间殖民算法生成新的植物模型的步骤,包括:获取用户输入的画刷区域,并在画刷的起始位置生成新的顶芽;在画刷区域生成新的标记点;以新的顶芽为基础,在画刷区域内利用空间殖民算法生成新的植物模型。
作为本发明的进一步改进,以新的顶芽为基础,在画刷区域内利用空间殖民算法生成新的植物模型的步骤,包括:确定每一个新的标记点与画刷中心线距离最近的点,并记录距离以及距离最近的点的绘制方向;基于距离通过正太分布得到每一个新的标记点的权重;利用权重、绘制方向、以及空间殖民算法确定的顶芽的生长方向计算得到最终生长方向;基于最终生成方向在画刷区域生成新的植物模型。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种三维交互式植物建模装置,包括:获取模块,用于获取建模区域,并在建模区域均匀生成标记点;生成模块,用于基于预设顶芽的位置,利用空间殖民算法确认预设顶芽的生长方向,并沿生长方向生成初步植物模型;接收模块,用于接收到用户的修改指令时,检测修改指令的类型;第一修改模块,用于当修改指令是旋转平移指令时,利用用户输入的旋转平移参数对初步植物模型上选中的枝段进行旋转平移操作;第二修改模块,用于当修改指令是绘制指令时,利用用户输入的绘制参数在初步植物模型上绘制新的枝段;第三修改模块,用于当修改指令是画刷指令时,在用户输入的画刷区域利用空间殖民算法生成新的植物模型。
为解决上述技术问题,本申请采用的再一个技术方案是:提供一种终端,该终端包括处理器、与处理器耦接的存储器,其中,存储器存储有用于实现上述三维交互式植物建模方法的程序指令;处理器用于执行存储器存储的程序指令以生成植物的三维模型。
为解决上述技术问题,本申请采用的再一个技术方案是:提供一种存储介质,存储有能够实现上述三维交互式植物建模方法的程序文件。
本申请的有益效果是:本发明通过利用空间殖民算法在建模区域内生成初步植物模型,再根据用户输入的修改指令对初步植物模型直接进行三维层面上的修改,为用户提供了多种对植物模型进行编辑的可交互性操作,其极大的加快了植物建模的速度,提升了建模效率,并且减少了在二维层面进行编辑时需要进行的来回切换操作,使得整个建模过程更流畅,提升了用户体验。
附图说明
图1是本发明第一实施例的三维交互式植物建模方法的流程示意图;
图2是本发明实施例中植物枝段生成的示意图;
图3是本发明实施例中空间殖民算法争夺标记点的生成的示意图;
图4是本发明第二实施例的三维交互式植物建模方法的流程示意图;
图5是本发明实施例中轮廓区域内建模的示意图;
图6是本发明第三实施例的三维交互式植物建模方法的流程示意图;
图7是本发明实施例中植物枝段旋转平移的示意图;
图8是本发明第四实施例的三维交互式植物建模方法的流程示意图;
图9是本发明第五实施例的三维交互式植物建模方法的流程示意图;
图10是本发明实施例中用户绘制枝段的示意图;
图11是本发明第六实施例的三维交互式植物建模方法的流程示意图;
图12是本发明实施例中画刷建模的示意图;
图13是本发明第七实施例的三维交互式植物建模方法的流程示意图;
图14是本发明实施例中画刷建模对比的示意图;
图15是本发明实施例的三维交互式植物建模装置的结构示意图;
图16是本发明实施例的终端的结构示意图;
图17是本发明实施例的存储介质的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。本申请实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
图1是本发明第一实施例的三维交互式植物建模方法的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限。如图1所示,该方法包括步骤:
步骤S1:获取建模区域,并在建模区域均匀生成标记点。
在步骤S1中,该建模区域为一虚拟三维空间,在该建模区域内可以创建三维模型,获取建模区域之后,在该建模区域内生成多个标记点,该多个标记点均匀分布于该建模区域内。本实施例中,该建模区域可以为在进行初始化时的默认虚拟空间,并且,在该建模区域为默认虚拟空间时,用户在使用本实施例的植物建模方法时,需要输入植物建模的枝段数量。
步骤S2:基于预设顶芽的位置,利用空间殖民算法确认预设顶芽的生长方向,并沿生长方向生成初步植物模型。
在步骤S2中,该预设顶芽的位置在建模区域内,基于该预设顶芽的位置在建模区域内利用空间殖民算法确认预设顶芽的生长方向,并沿生长方向生成枝段、新的顶芽和侧芽,直至整个建模区域均已被植物模型覆盖,得到初步植物模型。具体地,空间殖民算法的迭代过程请一并参阅图2,需要理解的是,枝段指的是植物的一段枝段,其上附着植物的芽和叶片,芽包含顶芽和侧芽两种,一棵植物最终通过多次迭代生长得到,如图2所示,当设定预设顶芽的位置后,预设顶芽将空间视为资源并进行争夺,竞争到空间资源的芽将有权利生长为新的枝段。如图3(a)所示,在建模区域内均匀生成多个标记点,而芽在争夺空间时,首先确定自身的占有区和锥型感知区,其中,占有区是指以预设顶芽位置为球心,半径为ρ的一个球形空间;锥型感知区是指以预设顶芽位置为顶点,半径为r的一个锥型区域,在迭代过程中,芽首先删除位于自身占有区内的标记点P1,表示其领域内的空间该该芽独占;然后芽争夺所有位于其锥型感知区内的标记点P2,若锥型感知区内不存在标记点P2,则表示该锥型感知区域内没有空间让该芽生长,若该锥型感知区内存在标记点P2,则获取该芽的下一阶段生长方向
其中,P
其中,μ预先设置,介于0.0~1.0之间,N指标记点的个数。
循环执行上述迭代过程,直至整个建模区域内不再有空间供植物枝段生成,或者是迭代次数达到用户设定的次数,完成植物的初步建模。
步骤S3:接收到用户的修改指令时,检测修改指令的类型。当修改指令是旋转平移指令时,执行步骤S4;当修改指令是绘制指令时,执行步骤S5;当修改指令是画刷指令时,执行步骤S6。
在步骤S3中,用户还可通过输入修改指令对生成的初步植物模型进行建模,使之更符合用户的需求。具体地,修改指令可以通过外部设备输入,该外部设备是指可以会接在三维空间区域内输入三维参数的设备,例如:六自由度手柄、VR手柄等,从而更加方便用户对植物模型进行调整。
步骤S4:利用用户输入的旋转平移参数对初步植物模型上选中的枝段进行旋转平移操作。
在步骤S4中,当修改指令是旋转平移指令时,从该旋转平移指令中获取旋转参数和/或平移参数,以及获取用户通过外部设备在初步植物模型上选中的枝段,再根据旋转参数和/或平移参数直接对选中的枝段进行旋转和/或平移处理。其中,旋转平移指令为用户通过外部设备直接输入,操作方便快捷。
步骤S5:利用用户输入的绘制参数在初步植物模型上绘制新的枝段。
在步骤S5中,当修改指令是绘制指令时,从该绘制指令中获取用户通过外部设备输入的绘制参数,再根据该绘制参数在初步植物模型上绘制新的枝段。
步骤S6:在用户输入的画刷区域利用空间殖民算法生成新的植物模型。
在步骤S6中,当修改指令是画刷指令时,确认用户通过外部设备输入的画刷的起始位置和中点位置,从而确定整个画刷区域,再在该画刷区域内,以起始位置作为新的顶芽的位置,利用空间殖民算法生成新的植物模型,并与初步植物模型之间进行连接,完成对初步植物模型的修改。
本发明第一实施例的三维交互式植物建模方法通过利用空间殖民算法在建模区域内生成初步植物模型,再根据用户输入的修改指令对初步植物模型直接进行三维层面上的修改,为用户提供了多种对植物模型进行编辑的可交互性操作,其极大的加快了植物建模的速度,提升了建模效率,并且减少了在二维层面进行编辑时需要进行的来回切换操作,使得整个建模过程更流畅,提升了用户体验。
在另一些实施例中,该建模区域还可以通过用户进行指定,进而限定植物的生长形状,因此,进一步的,如图4所示,步骤S1具体包括以下步骤:
步骤S10:获取用户通过外部设备输入的轮廓区域。
在步骤S10中,获取用户通过外部设备输入的轮廓区域,该外部设备可以是六自由度手柄、VR手柄等。本实施例中,该轮廓区域为用户根据自身需要绘制的一个区域,如图5所示,植物在进行建模时,仅在该轮廓区域内生成。
步骤S11:将轮廓区域作为建模区域,并在建模区域均匀生成标记点。
在步骤S11中,获取到建模区域后,在该建模区域内均匀生成标记点。
本发明第二实施例的三维交互式植物建模方法在第一实施例的基础上,用户可以通过外部设备直接对植物的建模区域进行限定,操作方便,同时满足了用户对不同形状的植物建模的需求,从而提升了用户体验。
进一步的,为了进一步提升用户的可操作性,降低建模过程的复杂程度,上述实施例的基础上,其他实施例中,如图6所示,步骤S4具体包括以下步骤:
步骤S401:通过六自由度手柄获取用户在初步植物模型中选中的枝段,并获取用户在三维空间中的移动轨迹。
在步骤S401中,请一并参阅图7,用户通过六自由度手柄输入其选中的枝段,再通过手部握住该六自由度手柄进行旋转或平移,从而在三维空间中输入移动轨迹。
步骤S402:分析移动轨迹得到旋转参数和平移参数。
在步骤S402中,通过六自由度手柄采集用户的手部进行旋转或平移时的参数,从而得到旋转参数和平移参数。
步骤S403:利用旋转参数和平移参数对选中的枝段进行旋转和平移操作。
本发明第三实施例的三维交互式植物建模方法在第一实施例的基础上,通过利用六自由度手柄来获取用户的移动轨迹,得到旋转参数和平移参数,使得用户在建模过程中与植物模型之间的交互能力更强,操作更方便、直观,提升了用户的可操作性。
进一步的,为了进一步提升植物枝段旋转时的精确度,上述实施例的基础上,其他实施例中,如图8所示,步骤S4具体包括以下步骤:
步骤S411:通过VR手柄获取用户在初步植物模型中选中的枝段,并获取用户在VR手柄的触摸板上滑动前和滑动后的位置。
在步骤S411中,用户在通过VR手柄选中枝段后,在VR手柄的触摸板上滑动,记录滑动前和滑动后的位置。
步骤S412:基于滑动前和滑动后的位置计算旋转角度。
在步骤S412中,基于滑动前和滑动后的位置计算旋转角度,计算公式为:
其中,P
步骤S413:根据旋转角度控制选中的枝段旋转。
进一步的,本实施例中,用户还可以通过VR手柄选中枝段后,直接进行平移操作,平移的参数通过VR手柄获取用户手部的移动轨迹得到。
本发明第四实施例的三维交互式植物建模方法在第一实施例的基础上,通过用户在VR手柄触摸板上滑动的位置来计算得到旋转角度,其计算得到的旋转角度值更为精确,从而提升了用户控制枝段旋转时的精度。
进一步的,为了进一步提升用户的可操作性,降低建模过程的复杂程度,上述实施例的基础上,其他实施例中,如图9所示,步骤S5具体包括以下步骤:
步骤S51:通过六自由度手柄获取用户在初步植物模型中设定的起始枝段位置,并获取用户在三维空间中的移动轨迹。
在步骤S51中,请一并参阅图10,通过六自由度手柄获取用户在初步植物模型中设定的起始枝段位置,并获取用户在该起始枝段位置后的移动轨迹。
步骤S52:分析移动轨迹得到绘制参数。
步骤S53:利用绘制参数从起始枝段位置绘制三维枝段。
在步骤S52~步骤S53中,通过分析该移动轨迹从而得到绘制参数,基于该绘制参数从该起始枝段位置绘制新的三维枝段,从而完成新的枝段的生成过程。
本发明第五实施例的三维交互式植物建模方法在第一实施例的基础上,通过六自由度手柄直接输入新的枝段的生长轨迹,再沿该轨迹生成新的枝段,操作方便快捷,并且,可供用户根据自身需要快速创建各种形态的枝段,提升了用户体验。
进一步的,为了进一步提升用户的可操作性,降低建模过程的复杂程度,上述实施例的基础上,其他实施例中,如图11所示,步骤S6具体包括以下步骤:
步骤S61:获取用户输入的画刷区域,并在画刷的起始位置生成新的顶芽。
步骤S62:在画刷区域生成新的标记点。
步骤S63:以新的顶芽为基础,在画刷区域内利用空间殖民算法生成新的植物模型。
在步骤S61~步骤S62中,请一并参阅图12,首先获取用户通过外部设备输入的画刷区域,该画刷区域基于三维手势获取,并在画刷的起始位置生成新的顶芽,再沿着画刷的绘制方向,在画刷区域生成新的标记点,最后利用空间殖民算法在该画刷区域生成新的植物模型,并与初步植物模型之间形成连接。
本发明第六实施例的三维交互式植物建模方法在第一实施例的基础上,通过外部设备直接输入画刷区域,再在该画刷区域内生成新的植物模型与初步植物模型之间形成连接,其进一步加快了植物模型的生成效率,不需要用户一个枝段一个枝段的绘制新的枝段,提升了建模的效率。
进一步的,为了避免进行画刷建模时利用空间殖民算法生成的植物枝段过于凌乱,上述实施例的基础上,其他实施例中,如图13所示,步骤S63具体包括:
步骤S631:确定每一个新的标记点与画刷中心线距离最近的点,并记录距离以及距离最近的点的绘制方向。
在步骤S631中,确定画刷区域的画刷中心线,该画刷中心线沿画刷的绘制方向,再确定画刷中心线上,与每一个标记点最近的一个点,记录该点与标记点之间的距离,以及该点的绘制方向。
步骤S632:基于距离通过正太分布得到每一个新的标记点的权重。
步骤S633:利用权重、绘制方向、以及空间殖民算法确定的顶芽的生长方向计算得到最终生长方向。
在步骤S633中,最终生长方向的计算公式为:
其中,
步骤S634:基于最终生成方向在画刷区域生成新的植物模型。
具体请参阅图14,图14为直接利用空间殖民算法生成的植物模型(图14(a)所示)和基于上述最终生长方向生成的植物模型(图14(b)所示)。
本发明第七实施例的三维交互式植物建模方法在第一实施例的基础上,通过引入一个牵引方向
图15是本发明实施例的三维交互式植物建模装置的结构示意图。如图7所示,该装置10包括获取模块11、生成模块12、接收模块13、第一修改模块14、第二修改模块15和第三修改模块16。
获取模块11,用于获取建模区域,并在建模区域均匀生成标记点。
生成模块12,用于基于预设顶芽的位置,利用空间殖民算法确认预设顶芽的生长方向,并沿生长方向生成初步植物模型。
接收模块13,用于接收到用户的修改指令时,检测修改指令的类型。
第一修改模块14,用于当修改指令是旋转平移指令时,利用用户输入的旋转平移参数对初步植物模型上选中的枝段进行旋转平移操作。
第二修改模块15,用于当修改指令是绘制指令时,利用用户输入的绘制参数在初步植物模型上绘制新的枝段。
第三修改模块16,用于当修改指令是画刷指令时,在用户输入的画刷区域利用空间殖民算法生成新的植物模型。
可选地,获取模块11获取建模区域,并在建模区域均匀生成标记点的操作还可以为:获取用户通过外部设备输入的轮廓区域;将轮廓区域作为建模区域,并在建模区域均匀生成标记点。
可选地,第一修改模块14利用用户输入的旋转平移参数对初步植物模型上选中的枝段进行旋转平移操作的操作还可以为:通过六自由度手柄获取用户在初步植物模型中选中的枝段,并获取用户在三维空间中的移动轨迹;分析移动轨迹得到旋转参数和平移参数;利用旋转参数和平移参数对选中的枝段进行旋转和平移操作。
可选地,第一修改模块14利用用户输入的旋转平移参数对初步植物模型上选中的枝段进行旋转平移操作的操作还可以为:通过VR手柄获取用户在初步植物模型中选中的枝段,并获取用户在VR手柄的触摸板上滑动前和滑动后的位置;基于滑动前和滑动后的位置计算旋转角度;根据旋转角度控制选中的枝段旋转。
可选地,第二修改模块15利用用户输入的绘制参数在初步植物模型上绘制新的枝段的操作还可以为:通过六自由度手柄获取用户在初步植物模型中设定的起始枝段位置,并获取用户在三维空间中的移动轨迹;分析移动轨迹得到绘制参数;利用绘制参数从起始枝段位置绘制三维枝段。
可选地,第三修改模块16在用户输入的画刷区域利用空间殖民算法生成新的植物模型的操作还可以为:获取用户输入的画刷区域,并在画刷的起始位置生成新的顶芽;在画刷区域生成新的标记点;以新的顶芽为基础,在画刷区域内利用空间殖民算法生成新的植物模型。
可选地,第三修改模块16以新的顶芽为基础,在画刷区域内利用空间殖民算法生成新的植物模型的操作还可以为:确定每一个新的标记点与画刷中心线距离最近的点,并记录距离以及距离最近的点的绘制方向;基于距离通过正太分布得到每一个新的标记点的权重;利用权重、绘制方向、以及空间殖民算法确定的顶芽的生长方向计算得到最终生长方向;基于最终生成方向在画刷区域生成新的植物模型。
请参阅图16,图16为本发明实施例的终端的结构示意图。如图16所示,该终端60包括处理器61及和处理器61耦接的存储器62。
存储器62存储有用于实现上述任一实施例所述的三维交互式植物建模方法的程序指令。
处理器61用于执行存储器62存储的程序指令以生成植物的三维模型。
其中,处理器61还可以称为CPU(Central Processing Unit,中央处理单元)。处理器61可能是一种集成电路芯片,具有信号的处理能力。处理器61还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
参阅图17,图17为本发明实施例的存储介质的结构示意图。本发明实施例的存储介质存储有能够实现上述所有方法的程序文件71,其中,该程序文件71可以以软件产品的形式存储在上述存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
- 三维交互式植物建模方法、装置、终端及存储介质
- 基于三维地质建模的选线方法、装置、终端及存储介质