首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

技术分享|带着头显在虚拟世界种树,只需用手柄刷一下

- 正文开始 -

逼真的树木模型在计算机和VR应用中起着重要的作用。目前,我们通常使用二维输入设备来建立交互式三维树木模型。但由于三维植物具有复杂的结构,由二维草图生成三维树木模型的方法效率低下,且所得出的树木模型也不理想。

利用传统的建模软件进行人工建模的效率低下,因此人们开发了许多建模方法来自动生成真实的树木模型。其中,过程建模(Procedural Modeling)是这些建模方法中的一种重要形式。过程建模方法中假设树木具有递归和重复的体系结构,并采用基于规则或自组织的策略进行建模。虽然这些方法可以生成不同种类的树木模型,但用户很难得到所需要特定形状树木的模型。

为了有效地控制植物的形状,人们也提出了许多交互式植物建模方法。例如:基于草图的方法(Sketch-based Method)从二维草图中推断三维结构。然而,现有的交互系统通常基于鼠标或数字笔等传统的2D输入设备,然而由于植物模型具有复杂的3D结构,这些设备对用户来说往往是不方便的。

本文中给出了一种利用VR设备简化交互式三维树木模型的建模方法,并且实现用户与模型可以连续灵活交互。并且提出了五种创建树木的模型的主要机制(如图1所示),即:自动生长、旋转和平移树枝、素描树枝、树叶密度以及剪影编辑

图 1 交互式树木建模的操作与结果

研究现状

/ 相关工作 /

人们提出了许多能够有效地创建树木模型的建模方法,例如:基于规则的过程建模(Rule-based Procedural Modeling)、点云(Point Clouds)或基于图像的方法(Image-based Method)等等。

Prusinkiewicz等人提出了几个可以使用不同的规则和参数来创建各种树木的模型的L系统,然而为特定品种的树木设计与其对应且合适的规则是相当困难的。为了解决这一问题,Deussen和Lintermann开发了Xfrog系统,该系统将基于规则的方法与几何建模相结合。Runions等人设计了在三维包络中随机分配点,并使用这些点对植物进行建模的空间定殖方法。Pałubicki等人扩展了空间定殖算法,并提出了两种用于生成更逼真的植物的光分配机制。还有科学家提出了更多改进方法,然而,这些方法都只能自动创建树木的模型,并不满足某些游戏设计师对于树木结构控制的要求。

为了更有效地控制植物的结构,科学家们开发了交互式树木建模。Okabe等人使用树木的二维草图,并通过尽可能扩大分支之间的距离来生成三维模型。Tan等人设计了一种草图方法,从一幅图像中重建树木模型。通过绘制草图,标记叶片区域和可见枝条,来合成树木模型。Chen等人根据从模型数据库中获得的参数,通过马尔可夫随机场,将用户绘制的草图转换为三维树木模型。但由于这些基于草图的方法都涉及复杂的参数分析,计算效率十分低下。

为了简化参数分析,增加用户与模型的直接交互,Longay等人用多点触摸平板电脑接口开发了一个使用过程建模的交互树木建模的系统。在此基础上,Eling,Yang等人建立了一个选择和推荐系统,可根据2D输入笔画来推荐树木模型。

然而,使用传统的2D输入设备(如鼠标、数字笔或平板电脑等)与3D树木模型直接交互是不方便的。Onishi等人利用交互式L系统,通过一些手势来获得树的三维骨架。然而,这种方法依然是通过改变L系统的字符串来编辑模型,并不是直接操作模型。

/ 改进的过程建模法 /

Palubicki等人提出了一种基于空间定殖算法的过程建模法。在他们的方法中,使用一系列随机均匀生成的标记点来表示树木可用于生长的空间。与多路树作为数据结构的概念相似,此方法将树描述为分层的自下而上的组织结构。两个节点之间的连接称为internode。一个与叶和芽相关的internode构成单体。如果有可用空间,则每个活动芽可能会产生一系列的单体。该方法假定每个芽被半径为ρ的球形区域围绕,并具有以感知角度θ和半径r为特征的圆锥形感知体积(见图2(a))。

图 2 空间定殖 (a)芽的感知量和占有区 (b)两个芽之间的标记竞争 (c)本文改进的竞争策略

选取。如果一个标记同时被多个芽竞争,它将与最近的芽相关联(参见图2(b))。则芽生长的方向可以由下述方程确定:,其中为由芽和标记的位置i生成的归一化向量。

如图2(b)所示,树芽倾向于向远离彼此的方向生长,这样可以有效防止建模时出现树枝重叠生长的问题。这种方法生成的树木虽然逼真,但是将每个标记与芽建立关联是一项浩大的工程,必然会导致巨大的点云与复杂的计算。

为了在VR设备中更快地建模树,本文改进了使用加权和引导标记的空间定殖方法。在每一次迭代中,每个芽将在距离内产生固定数量的标记(参见图3)。

图 3 红色的标记仅在芽周围生成

当一个芽生成了一个新的标记i时,我们可以计算出。而且标记i的权重可以由正态分布得出,即,其中,表示i与父芽之间的距离。如图2(c)所示,蓝色与红色标记由芽A与芽B生成。此方法并非将标记与最近的芽相关联,而也会使芽A趋向于避开芽B的方向生长。整合重力后,最终生长方向可以写为:,其中M为位于感知空间中的标记数量芽A,但由芽B产生。为重力的方向。在修改参数后,可以得到各种逼真的树木模型,如图4所示。

图 4 不同参数下生成的树木模型

优点分析

虚拟现实将用户浸入虚拟环境中,并能够利用3D手势为用户提供灵活和连续的交互。利用这一特点,本文中给出了一种利用VR设备简化交互式三维树木模型的建模,并实现用户与模型灵活连续交互的系统(如图 5所示)。该系统包含用于显示的HMD和用于交互的6自由度运动控制器(如图6所示)。

图 5 交互式树木建模系统

此系统允许用户使用运动控制器来操纵树木模型进行平移与翻转运动,同时用户可以通过头部旋转来改变他们的位置,而不是使用鼠标调整相机。

图 6 六自由度运动控制器的触摸板

用户可以使用3D画笔和模型的预期轮廓来改变树木的生长方向趋势。并且在使用画笔建模的过程中,所有的建模参数可以使用触摸板来改变。

综上述,交互式树木建模系统的优点包括以下两个方面:

(1)改进了使用引导和加权标记的过程建模方法,可以更快地为VR设备生成设计师所需要的树木模型;

(2)使用6自由度运动控制器,用户可以直接用3D手势编辑树木结构,并绘制三维树木骨架。交互式树木建模系统相比于传统的2D输入设备具有更灵活、更方便的优点。

操作方法与算法概述

本文章所提出建模系统的界面如图7所示。

图 7 建模系统界面

利用图6所示,六自由度运动控制器可以实现3D编辑、3D草图绘制等操作来构建树木模型。在本节将详细介绍控制器的使用操作方法。

/ 3D编辑 /

一般情况下,直接使用控制器的变换可以大致满足旋转精度的要求。然而对于一些高精度的情况来说,这是不够的,因为旋转手腕的程度很难控制。因此,本文提供了一种替代的方法,精确旋转使用触摸屏的控制器。此外,这种方法也适用于一些功能较弱的三自由度控制器。具体而言,用户通过在空间中移动控制器来转换树的选定部分,并通过在触摸板上滑动手指来旋转该部分(见图 8)。旋转角度,其中与分别是滑动前滑动后所对应的位置。代表了坐标原点。指示了旋转方向,此处代表向量叉乘。,。

图 8 用控制器实现精准旋转

/ 3D草图绘制 /

本文建立了基于六自由度运动控制器的草图系统。使用控制器,用户可以使用3D手势直接绘制3D骨架笔画,如图9所示。

图 9 使用六自由度控制器直接用3D手势绘制草图

此外,类似于3D编辑,本文还为一些功能较弱的三自由度控制器提供了一个基于触摸屏的附加版本。通过计算从按压位置P到触摸板中心u的距离,将其映射为一个之间的角度,即。如图10所示,角度用于围绕视界和当前位置所定义的轴来旋转二维绘图平面。用户可以通过在这个平面上绘制三维骨架草图。因此,可以直接使用六自由度控制器实现与三维草图相似的效果。

图 10 用触摸板旋转绘图平面,绘制深度

/ 3D画刷与基于剪影的建模 /

本文提出了一个使用六自由度控制器以达到更快建模,更易于控制与树木模型交互的方法。此系统允许用户能够直接刷3D笔画,并在移动控制器时轻松地用触摸板改变参数。

3D画刷

用户可以利用3D画刷来引导树木的生长方向,树木将在用户绘制的草图所生成的标记空间内生长,如图11所示。

图 11 用3D画刷创建的树木模型

图 12 无/有画刷指导所生成的树木模型

若仅仅使用过程建模方法,所生成的树木会出现过于随机与复杂的问题,如图12(a)所示。

为了使树的结果更加可控,需先计算从i到笔画的距离,然后记录下笔画的方向(参见图13)。之后,标记i将会根据与正态分布被赋予一定的权重。在这种情况下,最终芽生长方向可以由下述方程描述:。结果,分支将随着笔触而更合适地生长,如图12(b)所示。

图 13 标记的权重分布(蓝色越深,权重越高)。

此外,素描操作不限于二维平面。使用运动控制器,建模人员可以直接用3D手势绘制笔触。此外,参数例如画笔的半径和标记的密度,可以直接通过触摸板随时改变(参见图14)。

图 14左:标记的密度可以通过触摸板连续改变 右:触控板控制标记的密度和画笔的半径这两种参数的方法

基于剪影的建模

Longay等人和Wang等人应用Teddy-like方法从二维剪影草图中构造一个三维船体,可以用于指导树木的生长。然而,检查每个标记是否在船体内需要大量时间。

本文描述了一种简单且更快的方法来生成VR平台轮廓内的标记。在绘制剪影草图后,首先将其投影到一个二维二进制掩模图像中。掩模图像的大小与轮廓的包围盒相同。然后逐个遍历像素,只在半径为的三维球内的被遮挡住的像素周围随机生成标记点(参见图15)。为了在边缘平滑地分配标记,使用Logistic函数来描述。在像素x处可以定义为:,其中R为最大半径,k决定函数倾斜的程度。表示5×5邻域内x周围未遮挡像素的数量。这些参数的典型值为:R=10和k=0.4。所有的标记都可以很容易地被转换回原来的坐标系,并产生反向变形。可以通过这些标记来指导树的生长。图16展示了本方法得到的一些结果。

图 15 用于在剪影中生成标记的掩码图像

图 16 基于轮廓的建模示例

算法比较

本文开发了一种基于Pico Neo一体机的交互式建模系统,该系统包含一个HMD和一个六自由度运动控制器。通过交替使用控制器,用户很容易操纵树的三维结构并且创造复杂的艺术模型。如图17所示,用户首先调整选定树部分的位置和方向,然后在模型上刷两笔,即可生成其所想要的植物模型。

图 17 操作过程及结果

与表1中列出的现有交互系统相比,本文给出的系统可以直接操作3D结构,为用户提供更方便、更灵活的操作。例如,图18显示了本文方法与Chen’s基于草图的方法(Chen’s sketch-based method)的比较。

图 18 草图创建的树与Chen’s method的比较 (a)由二维草图生成的树木模型,侧视图中枝干通常是直的 (b)由本文方法生成的树木模型 (c)由本文生成的树木模型可以随意弯曲枝干,用户可以在建模期间使用触摸板随时更改参数,而目前现有系统中参数调整和建模操作需要单独执行。

此外,为了克服VR设备计算资源的不足,本文提出了一种改进的过程建模方法。计算时间的比较如图 19所示。在相同环境和参数的前提下,本文的方法可以达到相同的效果,但使用的内存较少,运行速度更快。

图 19 使用Palubicki方法建模的时间以及本文改进的空间定殖方法建模时间的比较。(在本实验中,每个芽产生大约1300个标记点。)

表 1 现有树木建模方法与本文方法比较

结论

本文建立了一个使用头戴式显示器和六自由度运动控制器的交互式树木建模系统。首先引入了一种改进的过程树建模算法,利用引导和加权标记对树进行更快的建模。此外,本系统基于六自由度运动控制器,为用户灵活调整或定义三维树结构提供了几种有效的交互。所有的交互操作都是在考虑VR设备的性能后实现的。与二维输入设备相比,用户可以通过3D手势方便地对树进行建模。使用带有运动控制器的3D编辑器,用户可以同时且连续地进行平移和旋转,这是传统的2D输入设备难以实现的。此外,我们的系统支持由3D草图直接绘制3D树木分支。使用手绘草图所给出的3D画笔和剪影,用户可以用特定的形状直接指导树木的生长方向。

在未来,系统可以改进为由两个控制器来实现交互。此外,可以探索基于运动控制器或其他VR输入设备(如Leap Motion和VR手套等)的树木建模系统

- 致谢 -

感谢赵金辉同学对本文进行了校对

本文部分图片和文字来自公开文献

如有使用不当之处请私信告知

- END -

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210107A0094K00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券