CN103914869A - 支持骨架个性化编辑的轻量化三维树木模型构建方法 - Google Patents
支持骨架个性化编辑的轻量化三维树木模型构建方法 Download PDFInfo
- Publication number
- CN103914869A CN103914869A CN201410066348.0A CN201410066348A CN103914869A CN 103914869 A CN103914869 A CN 103914869A CN 201410066348 A CN201410066348 A CN 201410066348A CN 103914869 A CN103914869 A CN 103914869A
- Authority
- CN
- China
- Prior art keywords
- branch
- skeleton
- angle
- coordinate
- vector
- 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.)
- Granted
Links
Landscapes
- Processing Or Creating Images (AREA)
Abstract
支持骨架个性化编辑的轻量化三维树木模型构建方法是在提取原始树木模型骨架结构的基础上,通过人机交互个性化编辑树木模型骨架细节,使其形成具有全新骨架结构的三维树木模型。在此基础上采用基于圆台的枝干重构方法,以及基于凸包纹理模板贴图的树冠重构方法,分别对个性化编辑后的三维树木模型的枝干和树冠部分进行轻量化重构,从而快速且多样化地构建面向移动终端的三维树木模型。
Description
技术领域
本发明涉及计算机图形学的轻量化三维树木模型构建方法。
背景技术
三维场景的构建和快速渲染已经成为计算机图形学研究的一个重要研究领域。树木不仅在现实生活环境中随处可见,而且是自然界不可缺少的一种植物类型,同样在虚拟三维场景中也扮演着重要的角色,例如:三维动漫、三维网络游戏、电影特效、园林设计、城市规划和军事模拟等领域。三维树木模型是影响虚拟环境沉浸感和逼真度的重要因素。缺少树木的三维场景将会变得黯然失色,同样在场景中使用逼真的、形态各异的三维树木模型能够大大提高场景的逼真度和真实感,增强用户的视觉感知效果,给人以一种身临其境的感觉。
由于自然界中树木的形态各异、种类繁多、拓扑结构十分复杂,若想构建出视觉效果逼真的三维树木模型,其建模过程非常繁琐且十分耗时。在对不同表现形态的三维树木模型有大量需求的应用领域,如:园林设计、城市规划场等,建模的过程将占据大量的工作时间。同时,利用现存的建模方法构建的三维树木模型,其包含的信息、数据量也非常庞大,这不仅增加了应用系统的存储空间,还加大了三维场景的渲染时间和网络化应用中的模型传输时间。此外,由于当前网络带宽、延时和拥塞等网络因素和移动终端硬件条件的限制,严重影响了三维植物模型在移动终端应用同步操作的实时性。因此,如何能够快速且多样化地构建面向移动终端的三维树木模型,降低三维树木建模的时间开销,已经成为计算机图形学研究中的一个重要研究课题。
发明内容
本发明要克服现有技术的上述缺点,提供一种能够快速且多样化地构建面向移动终端的三维树木模型。
本发明所述的支持骨架个性化编辑的轻量化三维树木模型构建方法,包括下列步骤:
步骤一,从三维树木模型的三角网格数据中获取树木枝干的顶点信息,将枝干部分划分成若干个拓扑结构简单的子树枝,以子树枝为基本处理单元进行骨架提取,并整合所有子树枝的骨架形成完整的树木模型骨架结构;树木枝干模型的骨架提取过程包括以下五个分步骤:
1.1从模型文件中获取树木枝干的顶点信息,包括顶点编号,顶点三维坐标x、y、z的值;
1.2根据树木枝干的顶点信息,建立一个枝干的带权n阶无向连通图G;根据组成每个平面图元的顶点信息可以得到无向连通图G的边(v,v');每条边的权值就是构成这条边的两个顶点(xa,ya,za)和(xb,yb,zb)间的欧式距离d,如公式(1)。
1.3在无向连通图G中选择坐标值z最小的顶点为源点s,采用最短路径算法,计算从源点s出发到图G中所有顶点的最短路径,形成有向带权图G';
1.4将有向带权图G'划分成k个层次,即将每条枝干利用公式(2)平均分成k段(di…dk);
di=dmax/k(i=1,…,k) (2)
dmax为有向带权图G'中所有顶点之间的最大距离,k的值根据树木的品种和树木模型的拓扑层次分别确定;随后,计算有向带权图G'中每一层次的中心节点O和半径R,中心节点即可作为枝干的骨架节点;
1.5依次连接枝干的每个骨架节点,得到树木模型的骨架曲线,即树木模型的枝干骨架结构;
步骤二,根据骨架节点的三维坐标点数据,依次计算每个子树枝的末端骨架节点到父亲树枝骨架节点的距离,选择其中最小距离值的一个骨架节点为子树枝的生长点,连接子树枝末端骨架节点和子树枝的生长点;
p为树枝a末端骨架节点,为了寻找树枝a在主干上的生长点vgrow,则需要求出主干的骨架节点中距离p最近的点;首先利用公式(3)计算出主干上的点vi∈Vskeleton(i=1...n)到点p的距离di,其中n为主干上的顶点数量;
设树枝上两个点p(xp,yp,zp)和vi(xi,yi,zi),则两点之间的距离表示为di:
在所有的距离值di(i=1...n)中,求出距离最小值dmin,可表示为:
dmin=min(di|i=1…n) (4)
则树枝a的生长点vgrow为距离dmin所代表的骨架节点;p点距离主干中的q点最近,q点即为树枝a的生长点。
步骤三,通过鼠标、触摸屏等交互方法编辑三维树木模型的生长点位置,由用户进行生长点拖拽,并根据树枝生长点位置的变化实时平移调整该生长点对应的子树枝;
设原始生长点p坐标为(x,y,z),通过交互式编辑后p’的坐标为(x’,y’,z’)则平移向量为可表示为:
又假设树枝b包含的骨架节点集合为Vskeleton,由于树枝b生长点的位置变化将引起Vskeleton中所有点坐标位置改变,则有:
平移调整后,通过交互式编辑首先将p的位置向左下方移动,移动的向量为树枝b和属于它的子树枝向左移动同样的向量如果将树枝a的生长点q的位置向正下方移动则树枝a和属于他的子树枝同样向下移动
步骤四,用户可以选择向上或向下保持生长角度的子树枝生长方向的调整策略,并根据选择的子树枝生长方向调整策略计算平移调整后子树枝的生长角度,使得经过骨架编辑后子树枝的生长角度与原始状态保持一致;
4.1采用向上保持生长角度策略时,以子树枝与其生长点上端的父亲树枝之间的夹角为树枝生长角度;
θ和分别是树枝a和树枝b的生长角度,也就是树枝a和b与向量和之间的夹角;夹角计算过程如下:
假设向量的坐标为(x1,y1,z1),生长点p和树枝b的中心点o所形成的向量的坐标为(x2,y2,z2),则和之间的夹角θ的余弦值利用公式(7)可求得:
其中,分子为向量和的点积,分母为向量和模的数量积,计算公式分别如下:
然后,将求得的向量之间夹角的余弦值cosθ带入公式(10),求得夹角的弧度值rad,可表示为:
rad=acos(cosθ) (10)
最后,将弧度值rad带入公式(11)转换成向量间的角度θ;
经过骨架编辑平移调整后的骨架结构中,由于树枝b位置的平移,使得树枝b与向量之间的夹角变为θ';运用向上保持生长方向调整策略,调整树枝b与之间的夹角θ',使它与θ相等;同时,由于p位置发生偏移,使得与树枝a之间的夹角发生变化,因此树枝a的所有坐标信息同样也需要进行调整使得夹角为
4.2在向下保持生长角度的策略中,以子树枝与其生长点下端的父亲树枝之间的夹角为树枝生长角度;
树枝b的生长角度为ξ,树枝b与向量之间的夹角,与向上保持生长方向相比,同样是生长点p的位置发生变化;
4.3由于骨架节点坐标均为三维坐标,在进行骨架个性化编辑时所产生的位置偏移也是相对于三维空间的,因此在进行树枝生长方向选择调整时的旋转轴为三维空间任意坐标向量;p原始三维坐标点,p’为旋转后的坐标点,l为旋转轴;
设原始点p坐标为(x,y,z),绕过点Q(x0,y0,z0)的方向向量为的任意坐标轴l,旋转后得到p’的坐标为(x’,y,z’)。p’的计算公式(12)如下所示:
x'=(x-x0)*(nx 2*(1-cosθ)+cosθ)+
(y-y0)*(nx*ny*(1-cosθ)-nzsinθ)+
(z-z0)*(nx*nz*(1-cosθ)+nysinθ)+x0
y'=(x-x0)*(nx*ny*(1-cosθ)+nz*sinθ)+
(y-y0)*(ny 2*(1-cosθ)+cosθ)+
(z-z0)*(ny*nz*(1-cosθ)-nxsinθ)+y0
z'=(x-x0)*(nx*nz*(1-cosθ)-ny*sinθ)+
(y-y0)*(ny*nz*(1-cosθ)+nx*sinθ)+
(z-z0)*(nz 2*(1-cosθ)+cosθ)+z0 (12)
公式12中θ是点p绕旋转轴l的旋转角度,(nx,ny,nz)是旋转轴l的方向余弦,可表示为公式(13),其中|l|为旋转轴向量模。
生长点p经过个性化编辑平移到p’,使得被动树枝a调整自己的生长角度;利用公式(11)求出旋转后树枝a中的所有坐标值。定义旋转坐标轴l的方向向量为和的法向量,且过生长点q。向量的计算公式如下:
步骤5,采用骨架节点和圆台的方式表示三维树木模型,根据一一对应的骨架节点和半径信息来实现枝干模型的重构;
一根树枝由若干圆台表示出来,该圆柱体的底面和顶面具有不同的半径,且圆柱体的上下面以枝干的骨架节点为圆心;根据一一对应的骨架节点和半径信息构造一系列具有不同上、下面的圆柱体来实现树枝模型的重构;
5.1在骨架节点中获取每根树枝的骨架节点的三维坐标点数据和半径信息;
5.2将树枝底向上的骨架节点和半径每两个分为一组,然后,每组中的骨架节点对应圆台的下底和上底中心位置,根据半径信息绘制圆台;
5.3将所有圆台进行拼接构成模型的枝干;
步骤六,通过计算树木模型局部树枝的外部轮廓,用凸包的方式进行表示,然后通过选取已有的纹理模板去填充相应的树枝凸包,实现树木模型整体树冠的重构;
6.1根据树枝包含的子树枝个数和树枝的生长方向将所有纹理进行分类,在每一类纹理中选取一个纹理作为模板纹理;
6.2通过采用增量凸包算法求取局部枝叶三维凸包,并记录三维坐标信息;
6.3根据凸包的三维信息在纹理模板库中选用复合树枝基本信息的纹理进行三维树冠重构。
本发明的优点是:
●根据树木模型枝干层次结构分解三维模型,对每一个子树枝分别利用距离变换的方法进行骨架提取,不仅减小了算法的时间复杂度,而且计算出来的骨架更能体现树木枝干模型的拓扑结构信息。
●采用基于圆台的三维树木枝干模型的轻量化重构方法,以及凸包纹理模板贴图的三维树木树冠模型的轻量化重构方法,不仅能有效地简化三维树木模型、减少模型存储空间和网络传输时间,而且通过三维凸包的计算能够很好地体现原始树木模型的整体拓扑结构,从而使得构建的三维树木模型能够保持较高的视觉质量。
●采用交互式的方法个性化编辑三维树木模型,不仅能够根据用户需求设计树木模型的骨架,而且能够根据模型骨架快速轻量化重构三维树木模型。
●通过采用生长点平移策略和树枝生长角度调整策略,使得个性化编辑后的三维树木模型能够保持树枝间的生长信息和内部结构,更加符合植物的生长规则和力学规律。
附图说明
图1是本发明的流程图
图2a是顶点数据示意图,图2b是无向连通图示意图,图2c是有向带权图示意图,
图2d是层有向带权示意图,图2e是模型骨架示意图
图3a是骨架节点距离示意图,图3b是子树枝的生长点示意图
图4a是原骨架模型示意图,图4b是个性化编辑后的骨架模型示意图
图5a是原始模型示意图,图5b是编辑树枝生长位置示意图,图5c是生长角度调整示意图
图6a是原始模型示意图,图6b是生长角度调整示意图
图7a是三维空间点绕任意轴旋转的示意图,图7b是树枝生长角度调整的示意图
图8a是圆台表示树枝示意图,图8b是原始模型示意图,图8c是重构模型示意图
图9a是原始模型示意图,图9b是凸包效果图,图9c是凸包纹理模板贴图
具体实施方式
支持骨架个性化编辑的轻量化树木建模方法是在提取原始树木模型骨架结构的基础上,通过人机交互个性化编辑树木模型骨架细节,使其形成具有全新骨架结构的三维树木模型。在此基础上采用基于圆台的枝干重构方法,以及基于凸包纹理模板贴图的树冠重构方法,分别对个性化编辑后的三维树木模型的枝干和树冠部分进行轻量化重构,从而形成完整的三维树木模型。支持骨架个性化编辑的轻量化三维树木模型构建过程如图1所示。
步骤一,从三维树木模型的三角网格数据中获取树木枝干的顶点信息,将枝干部分划分成若干个拓扑结构简单的子树枝,以子树枝为基本处理单元进行骨架提取,并整合所有子树枝的骨架形成完整的树木模型骨架结构。
树木枝干模型的骨架提取过程主要包括以下五个步骤,如图2所示。
1.1从模型文件中获取树木枝干的顶点信息,包括顶点编号,顶点三维坐标x、y、z的值,如图2(a)所示。
1.2根据树木枝干的顶点信息,建立一个枝干的带权n阶无向连通图G,如图2(b)所示。根据组成每个平面图元的顶点信息可以得到无向连通图G的边(v,v')。每条边的权值就是构成这条边的两个顶点(xa,ya,za)和(xb,yb,zb)间的欧式距离d,如公式(1)。
1.3在无向连通图G中选择坐标值z最小的顶点为源点s,采用最短路径算法,计算从源点s出发到图G中所有顶点的最短路径,形成有向带权图G',如图2(c)所示。
1.4将有向带权图G'划分成k个层次如图2(d)所示,即将每条枝干利用公式(2)平均分成k段(di…dk)。
di=dmax/k(i=1,…,k) (2)
图2(d)中,dmax为有向带权图G'中所有顶点之间的最大距离,k的值因树木的品种和树木模型的拓扑层次的不同而不同。随后,计算有向带权图G'中每一层次的中心节点O和半径R,中心节点即可作为枝干的骨架节点。
1.5依次连接枝干的每个骨架节点,得到树木模型的骨架曲线,即树木模型的枝干骨架结构。
步骤二,根据骨架节点的三维坐标点数据,依次计算每个子树枝的末端骨架节点到父亲树枝骨架节点的距离,选择其中最小距离值的一个骨架节点为子树枝的生长点,连接子树枝末端骨架节点和子树枝的生长点。
图3为确定树枝生长点的示意图,图3(a)中点p为树枝a末端骨架节点。为了寻找树枝a在主干上的生长点vgrow,则需要求出主干的骨架节点中距离p最近的点。首先需要利用公式(3)计算出主干上的点vi∈Vskeleton(i=1...n)到点p的距离di,其中n为主干上的顶点数量。
设树枝上两个点p(xp,yp,zp)和vi(xi,yi,zi),则两点之间的距离表示为di:
在所有的距离值di(i=1...n)中,求出距离最小值dmin,可表示为:
dmin=min(di|i=1…n) (4)
则树枝a的生长点vgrow为距离dmin所代表的骨架节点。图3(a)中用虚线表示p点到其他骨架节点的距离,从图3(b)中可以看出p点距离主干中的q点最近,所以q点即为树枝a的生长点。
步骤三,通过鼠标、触摸屏等交互方法编辑三维树木模型的生长点位置,由用户进行生长点拖拽,并根据树枝生长点位置的变化实时平移调整该生长点对应的子树枝。
图4为枝干骨架个性化编辑平移调整示意图,其中图4(a)为一个树枝模型经过骨架节点提取后的原始骨架模型示意图。图4(a)中的树枝主干上包含4个子树枝,每一根树枝和属于它的所有子树枝共同组成一个簇,它们的生长位置随着父亲树枝的生长点p位置改变而变化。
设原始生长点p坐标为(x,y,z),通过交互式编辑后p’的坐标为(x’,y’,z’)则平移向量为可表示为:
又假设树枝b包含的骨架节点集合为Vskeleton,由于树枝b生长点的位置变化将引起Vskeleton中所有点坐标位置改变,则有:
平移调整后的结果如图4(b)所示,通过交互式编辑首先将p的位置向左下方移动,移动的向量为树枝b和属于它的子树枝向左移动同样的向量如果将树枝a的生长点q的位置向正下方移动则树枝a和属于他的子树枝同样向下移动
步骤四,用户可以选择向上或向下保持生长角度的子树枝生长方向的调整策略,并根据选择的子树枝生长方向调整策略计算平移调整后子树枝的生长角度,使得经过骨架编辑后子树枝的生长角度与原始状态保持一致。
采用向上保持生长角度策略时,定义树枝的生长角度为子树枝与其生长点上端的父亲树枝之间的夹角为生长角度,如图5(a)中树枝b的生长角度为θ。
图5为向上保持生长方向调整策略,其中图5(a)、(b)和(c)分别为原始模型、编辑树枝生长位置和生长角度调整后模型结构。图5(a)中θ和分别是树枝a和树枝b的生长角度,也就是树枝a和b与向量和之间的夹角。夹角计算过程如下:
假设向量的坐标为(x1,y1,z1),生长点p和树枝b的中心点o所形成的向量的坐标为(x2,y2,z2),则和之间的夹角θ的余弦值利用公式(7)可求得:
其中,分子为向量和的点积,分母为向量和模的数量积,计算公式分别如下:
然后,将求得的向量之间夹角的余弦值cosθ带入公式(10),求得夹角的弧度值rad,可表示为:
rad=acos(cosθ) (10)
最后,将弧度值rad带入公式(11)转换成向量间的角度θ。
图5(b)为图5(a)经过骨架编辑平移调整后的骨架结构图,由于树枝b位置的平移,使得树枝b与向量之间的夹角变为θ'。图5(c)是在图5(b)的基础上运用向上保持生长方向调整策略,调整树枝b与之间的夹角θ',使它与图5(a)中的θ相等。同时,由于p位置发生偏移,使得与树枝a之间的夹角发生变化,因此树枝a的所有坐标信息同样也需要进行调整使得夹角为
在向下保持生长角度的策略中,定义树枝的生长角度为子树枝与其生长点下端的父亲树枝之间的夹角为生长角度,如图6(a)中树枝b的生长角度为ξ。
图6为向下保持生长方向,其原理和向上保持生长方向相同。唯一的不同点是树枝的生长方向评定标准,即为图6(a)中树枝b与向量之间的夹角。与向上保持生长方向相比,同样是生长点p的位置发生变化。
由于骨架节点坐标均为三维坐标,在进行骨架个性化编辑时所产生的位置偏移也是相对于三维空间的,因此在进行树枝生长方向选择调整时的旋转轴为三维空间任意坐标向量。图7(a)为三维空间点绕任意轴旋转的示意图,其中p原始三维坐标点,p’为旋转后的坐标点,l为旋转轴。
设原始点p坐标为(x,y,z),绕过点Q(x0,y0,z0)的方向向量为的任意坐标轴l,旋转后得到p’的坐标为(x’,y,z’)。p’的计算公式(12)如下所示:
x'=(x-x0)*(nx 2*(1-cosθ)+cosθ)+
(y-y0)*(nx*ny*(1-cosθ)-nzsinθ)+
(z-z0)*(nx*nz*(1-cosθ)+nysinθ)+x0
y'=(x-x0)*(nx*ny*(1-cosθ)+nz*sinθ)+
(y-y0)*(ny 2*(1-cosθ)+cosθ)+
(z-z0)*(ny*nz*(1-cosθ)-nxsinθ)+y0
z'=(x-x0)*(nx*nz*(1-cosθ)-ny*sinθ)+
(y-y0)*(ny*nz*(1-cosθ)+nx*sinθ)+
(z-z0)*(nz 2*(1-cosθ)+cosθ)+z0 (12)
公式12中θ是点p绕旋转轴l的旋转角度,(nx,ny,nz)是旋转轴l的方向余弦,可表示为公式(13),其中|l|为旋转轴向量模。
图7(b)为树枝生长角度调整示意图,图中生长点p经过个性化编辑平移到p’,使得被动树枝a调整自己的生长角度。我们可以利用公式(11)求出旋转后树枝a中的所有坐标值。定义旋转坐标轴l的方向向量为和的法向量,且过生长点q。向量的计算公式如下:
步骤5,采用骨架节点和圆台的方式表示三维树木模型,根据一一对应的骨架节点和半径信息来实现枝干模型的重构。
图8(a)中一根树枝可有由若干圆台表示出来,该圆柱体的底面和顶面具有不同的半径,且圆柱体的上下面以枝干的骨架节点为圆心。因此,本文根据一一对应的骨架节点和半径信息构造一系列具有不同上、下面的圆柱体来实现树枝模型的重构。
首先,在骨架节点中获取每根树枝的骨架节点的三维坐标点数据和半径信息。其次,将树枝底向上的骨架节点和半径每两个分为一组。然后,每组中的骨架节点对应圆台的下底和上底中心位置,根据半径信息绘制圆台。最后,将所有圆台进行拼接构成模型的枝干。图8(b)和图8(c)分别为原始枝干模型和根据提取出来的骨架重构的模型。
步骤六,通过计算树木模型局部树枝的外部轮廓,用凸包的方式进行表示,然后通过选取已有的纹理模板去填充相应的树枝凸包,实现树木模型整体树冠的重构。
首先,根据树枝包含的子树枝个数和树枝的生长方向将所有纹理进行分类,在每一类纹理中选取一个纹理作为模板纹理。然后,通过采用增量凸包算法求取局部枝叶三维凸包,并记录三维坐标信息。最后,根据凸包的三维信息在纹理模板库中选用复合树枝基本信息的纹理进行三维树冠重构。具体流程如图9所示。
Claims (1)
1.支持骨架个性化编辑的轻量化三维树木模型构建方法,包括下列步骤:
步骤一,从三维树木模型的三角网格数据中获取树木枝干的顶点信息,将枝干部分划分成若干个拓扑结构简单的子树枝,以子树枝为基本处理单元进行骨架提取,并整合所有子树枝的骨架形成完整的树木模型骨架结构;树木枝干模型的骨架提取过程包括以下五个分步骤:
1.1从模型文件中获取树木枝干的顶点信息,包括顶点编号,顶点三维坐标x、y、z的值;
1.2根据树木枝干的顶点信息,建立一个枝干的带权n阶无向连通图G;根据组成每个平面图元的顶点信息可以得到无向连通图G的边(v,v');每条边的权值就是构成这条边的两个顶点(xa,ya,za)和(xb,yb,zb)间的欧式距离d,如公式(1)。
1.3在无向连通图G中选择坐标值z最小的顶点为源点s,采用最短路径算法计算从源点s出发到图G中所有顶点的最短路径,形成有向带权图G';
1.4将有向带权图G'划分成k个层次,即将每条枝干利用公式(2)平均分成k段(di…dk);
di=dmax/k(i=1,…,k) (2)
dmax为有向带权图G'中所有顶点之间的最大距离,k的值根据树木的品种和树木模型的拓扑层次分别确定;随后,计算有向带权图G'中每一层次的中心节点O和半径R,中心节点即可作为枝干的骨架节点;
1.5依次连接枝干的每个骨架节点,得到树木模型的骨架曲线,即树木模型的枝干骨架结构;
步骤二,根据骨架节点的三维坐标点数据,依次计算每个子树枝的末端骨架节点到父亲树枝骨架节点的距离,选择其中最小距离值的一个骨架节点为子树枝的生长点,连接子树枝末端骨架节点和子树枝的生长点;
p为树枝a末端骨架节点,为了寻找树枝a在主干上的生长点vgrow,则需要求出主干的骨架节点中距离p最近的点;首先利用公式(3)计算出主干上的点vi∈Vskeleton(i=1...n)到点p的距离di,其中n为主干上的顶点数量;
设树枝上两个点p(xp,yp,zp)和vi(xi,yi,zi),则两点之间的距离表示为di:
在所有的距离值di(i=1...n)中,求出距离最小值dmin,可表示为:
dmin=min(di|i=1…n) (4)
则树枝a的生长点vgrow为距离dmin所代表的骨架节点;p点距离主干中的q点最近,q点即为树枝a的生长点。
步骤三,通过鼠标、触摸屏等交互方法编辑三维树木模型的生长点位置,由用户进行生长点拖拽,并根据树枝生长点位置的变化实时平移调整该生长点对应的子树枝;
设原始生长点p坐标为(x,y,z),通过交互式编辑后p’的坐标为(x’,y’,z’)则平移向量为可表示为:
又假设树枝b包含的骨架节点集合为Vskeleton,由于树枝b生长点的位置变化将引起Vskeleton中所有点坐标位置改变,则有:
平移调整后,通过交互式编辑首先将p的位置向左下方移动,移动的向量为树枝b和属于它的子树枝向左移动同样的向量如果将树枝a的生长点q的位置向正下方移动则树枝a和属于他的子树枝同样向下移动
步骤四,用户可以选择向上或向下保持生长角度的子树枝生长方向的调整策略,并根据选择的子树枝生长方向调整策略计算平移调整后子树枝的生长角度,使得经过骨架编辑后子树枝的生长角度与原始状态保持一致;
4.1采用向上保持生长角度策略时,以子树枝与其生长点上端的父亲树枝之间的夹角为树枝生长角度;
θ和分别是树枝a和树枝b的生长角度,也就是树枝a和b与向量和之间的夹角;夹角计算过程如下:
假设向量的坐标为(x1,y1,z1),生长点p和树枝b的中心点o所形成的向量的坐标为(x2,y2,z2),则和之间的夹角θ的余弦值利用公式(7)可求得:
其中,分子为向量和的点积,分母为向量和模的数量积,计算公式分别如下:
然后,将求得的向量之间夹角的余弦值cosθ带入公式(10),求得夹角的弧度值rad,可表示为:
rad=acos(cosθ) (10)
最后,将弧度值rad带入公式(11)转换成向量间的角度θ;
经过骨架编辑平移调整后的骨架结构中,由于树枝b位置的平移,使得树枝b与向量之间的夹角变为θ';运用向上保持生长方向调整策略,调整树枝b与之间的夹角θ',使它与θ相等;同时,由于p位置发生偏移,使得与树枝a之间的夹角发生变化,因此树枝a的所有坐标信息同样也需要进行调整使得夹角为
4.2在向下保持生长角度的策略中,以子树枝与其生长点下端的父亲树枝之间的夹角为树枝生长角度;
树枝b的生长角度为ξ,树枝b与向量之间的夹角,与向上保持生长方向相比,同样是生长点p的位置发生变化;
4.3由于骨架节点坐标均为三维坐标,在进行骨架个性化编辑时所产生的位置偏移也是相对于三维空间的,因此在进行树枝生长方向选择调整时的旋转轴为三维空间任意坐标向量;p原始三维坐标点,p’为旋转后的坐标点,l为旋转轴;
设原始点p坐标为(x,y,z),绕过点Q(x0,y0,z0)的方向向量为的任意坐标轴l,旋转后得到p’的坐标为(x’,y,z’)。p’的计算公式(12)如下所示:
x'=(x-x0)*(nx 2*(1-cosθ)+cosθ)+
(y-y0)*(nx*ny*(1-cosθ)-nzsinθ)+
(z-z0)*(nx*nz*(1-cosθ)+nysinθ)+x0
y'=(x-x0)*(nx*ny*(1-cosθ)+nz*sinθ)+
(y-y0)*(ny 2*(1-cosθ)+cosθ)+
(z-z0)*(ny*nz*(1-cosθ)-nxsinθ)+y0
z'=(x-x0)*(nx*nz*(1-cosθ)-ny*sinθ)+
(y-y0)*(ny*nz*(1-cosθ)+nx*sinθ)+
(z-z0)*(nz 2*(1-cosθ)+cosθ)+z0 (12)
公式12中θ是点p绕旋转轴l的旋转角度,(nx,ny,nz)是旋转轴l的方向余弦,可表示为公式(13),其中|l|为旋转轴向量模。
生长点p经过个性化编辑平移到p’,使得被动树枝a调整自己的生长角度;利用公式(11)求出旋转后树枝a中的所有坐标值。定义旋转坐标轴l的方向向量为和的法向量,且过生长点q。向量的计算公式如下:
步骤5,采用骨架节点和圆台的方式表示三维树木模型,根据一一对应的骨架节点和半径信息来实现枝干模型的重构;
一根树枝由若干圆台表示出来,该圆柱体的底面和顶面具有不同的半径,且圆柱体的上下面以枝干的骨架节点为圆心;根据一一对应的骨架节点和半径信息构造一系列具有不同上、下面的圆柱体来实现树枝模型的重构;
5.1在骨架节点中获取每根树枝的骨架节点的三维坐标点数据和半径信息;
5.2将树枝底向上的骨架节点和半径每两个分为一组,然后,每组中的骨架节点对应圆台的下底和上底中心位置,根据半径信息绘制圆台;
5.3将所有圆台进行拼接构成模型的枝干;
步骤六,通过计算树木模型局部树枝的外部轮廓,用凸包的方式进行表示,然后通过选取已有的纹理模板去填充相应的树枝凸包,实现树木模型整体树冠的重构;
6.1根据树枝包含的子树枝个数和树枝的生长方向将所有纹理进行分类,在每一类纹理中选取一个纹理作为模板纹理;
6.2通过采用增量凸包算法求取局部枝叶三维凸包,并记录三维坐标信息;
6.3根据凸包的三维信息在纹理模板库中选用复合树枝基本信息的纹理进行三维树冠重构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410066348.0A CN103914869B (zh) | 2014-02-26 | 2014-02-26 | 支持骨架个性化编辑的轻量化三维树木模型构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410066348.0A CN103914869B (zh) | 2014-02-26 | 2014-02-26 | 支持骨架个性化编辑的轻量化三维树木模型构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103914869A true CN103914869A (zh) | 2014-07-09 |
CN103914869B CN103914869B (zh) | 2017-02-22 |
Family
ID=51040522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410066348.0A Active CN103914869B (zh) | 2014-02-26 | 2014-02-26 | 支持骨架个性化编辑的轻量化三维树木模型构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103914869B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107247833A (zh) * | 2017-05-27 | 2017-10-13 | 华中科技大学 | 一种云计算下的cae海量数据轻量化方法 |
CN108717723A (zh) * | 2018-04-19 | 2018-10-30 | 浙江大学 | 一种基于草图实现形状保持的树木变形动画方法 |
CN109445868A (zh) * | 2018-09-12 | 2019-03-08 | 深圳市创梦天地科技有限公司 | 一种游戏场景中路段模型的生成方法和装置 |
CN111191169A (zh) * | 2019-12-30 | 2020-05-22 | 吉林动画学院 | 面向网页端的大规模植物群落轻量级建模及可视化方法 |
CN112734930A (zh) * | 2020-12-30 | 2021-04-30 | 长沙眸瑞网络科技有限公司 | 三维模型轻量化方法、系统、存储介质及图像处理装置 |
WO2023272523A1 (zh) * | 2021-06-29 | 2023-01-05 | 西门子股份公司 | 模型重构方法、装置和系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006345695A (ja) * | 2006-09-04 | 2006-12-21 | Tokyo Electric Power Co Inc:The | 送電線下支障樹木自動表示装置 |
CN101246602A (zh) * | 2008-02-04 | 2008-08-20 | 东华大学 | 基于几何骨架的人体姿态重建方法 |
CN101488226A (zh) * | 2008-01-16 | 2009-07-22 | 中国科学院自动化研究所 | 基于单次三维激光扫描的树木测量和重建方法 |
CN101847267A (zh) * | 2010-06-01 | 2010-09-29 | 中国科学院自动化研究所 | 基于深度检索的树木建模方法 |
EP2402906A2 (en) * | 2010-06-30 | 2012-01-04 | Pantech Co., Ltd. | Apparatus and method for providing 3D augmented reality |
CN102306386A (zh) * | 2011-07-19 | 2012-01-04 | 杭州实时数码科技有限公司 | 从单张树木图像快速构建真实感树木模型的方法 |
CN102568027A (zh) * | 2011-12-28 | 2012-07-11 | 浙江工业大学 | 一种像素化的虚拟树木光照影响区域获取方法 |
CN102646287A (zh) * | 2012-03-21 | 2012-08-22 | 浙江工业大学 | 一种基于场景漫游的虚拟森林仿真信息多级联动方法及其系统 |
CN102855661A (zh) * | 2012-08-22 | 2013-01-02 | 浙江工业大学 | 基于空间相似性的大规模森林场景快速生成方法 |
CN103426200A (zh) * | 2013-08-26 | 2013-12-04 | 天津大学 | 基于无人机航拍序列图像的树木三维重建方法 |
-
2014
- 2014-02-26 CN CN201410066348.0A patent/CN103914869B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006345695A (ja) * | 2006-09-04 | 2006-12-21 | Tokyo Electric Power Co Inc:The | 送電線下支障樹木自動表示装置 |
CN101488226A (zh) * | 2008-01-16 | 2009-07-22 | 中国科学院自动化研究所 | 基于单次三维激光扫描的树木测量和重建方法 |
CN101246602A (zh) * | 2008-02-04 | 2008-08-20 | 东华大学 | 基于几何骨架的人体姿态重建方法 |
CN101847267A (zh) * | 2010-06-01 | 2010-09-29 | 中国科学院自动化研究所 | 基于深度检索的树木建模方法 |
EP2402906A2 (en) * | 2010-06-30 | 2012-01-04 | Pantech Co., Ltd. | Apparatus and method for providing 3D augmented reality |
CN102306386A (zh) * | 2011-07-19 | 2012-01-04 | 杭州实时数码科技有限公司 | 从单张树木图像快速构建真实感树木模型的方法 |
CN102568027A (zh) * | 2011-12-28 | 2012-07-11 | 浙江工业大学 | 一种像素化的虚拟树木光照影响区域获取方法 |
CN102646287A (zh) * | 2012-03-21 | 2012-08-22 | 浙江工业大学 | 一种基于场景漫游的虚拟森林仿真信息多级联动方法及其系统 |
CN102855661A (zh) * | 2012-08-22 | 2013-01-02 | 浙江工业大学 | 基于空间相似性的大规模森林场景快速生成方法 |
CN103426200A (zh) * | 2013-08-26 | 2013-12-04 | 天津大学 | 基于无人机航拍序列图像的树木三维重建方法 |
Non-Patent Citations (3)
Title |
---|
FAN JING 等: "Real-time information recombination of complex 3D tree model based on visual perception", 《SCIENCE CHINA INFORMATION SCIENCES》 * |
TIANYANG DONG 等: "A Precise Approach to Exploring The Spatial Distribution for The Zone of Sunlight Influence", 《ADVANCES IN INFORMATION SCIENCES AND SERVICE SCIENCES》 * |
於娇红: "基于互利作用的植物生长建模及仿真", 《中国优秀硕士学位论文全文数据库 基础科学辑》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107247833A (zh) * | 2017-05-27 | 2017-10-13 | 华中科技大学 | 一种云计算下的cae海量数据轻量化方法 |
CN107247833B (zh) * | 2017-05-27 | 2020-05-19 | 华中科技大学 | 一种云计算下的cae海量数据轻量化方法 |
CN108717723A (zh) * | 2018-04-19 | 2018-10-30 | 浙江大学 | 一种基于草图实现形状保持的树木变形动画方法 |
WO2019200683A1 (zh) * | 2018-04-19 | 2019-10-24 | 浙江大学 | 一种基于草图实现形状保持的树木变形动画方法 |
CN109445868A (zh) * | 2018-09-12 | 2019-03-08 | 深圳市创梦天地科技有限公司 | 一种游戏场景中路段模型的生成方法和装置 |
CN111191169A (zh) * | 2019-12-30 | 2020-05-22 | 吉林动画学院 | 面向网页端的大规模植物群落轻量级建模及可视化方法 |
CN111191169B (zh) * | 2019-12-30 | 2021-12-07 | 吉林动画学院 | 面向网页端的大规模植物群落轻量级建模及可视化方法 |
CN112734930A (zh) * | 2020-12-30 | 2021-04-30 | 长沙眸瑞网络科技有限公司 | 三维模型轻量化方法、系统、存储介质及图像处理装置 |
CN112734930B (zh) * | 2020-12-30 | 2024-06-04 | 长沙眸瑞网络科技有限公司 | 三维模型轻量化方法、系统、存储介质及图像处理装置 |
WO2023272523A1 (zh) * | 2021-06-29 | 2023-01-05 | 西门子股份公司 | 模型重构方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103914869B (zh) | 2017-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103914869A (zh) | 支持骨架个性化编辑的轻量化三维树木模型构建方法 | |
CN108717723B (zh) | 一种基于草图实现形状保持的树木变形动画方法 | |
CN104123747B (zh) | 多方式触控三维建模方法和系统 | |
CN107833282B (zh) | 一种地形建模和网格生成方法及装置 | |
CN105976426B (zh) | 一种快速的三维地物模型构建方法 | |
CN103942838A (zh) | 基于点云数据的单树三维建模与形态参数提取的方法 | |
CN103745497B (zh) | 植物生长建模方法和系统 | |
Wang | Landscape design of coastal area based on virtual reality technology and intelligent algorithm | |
CN107330903A (zh) | 一种人体点云模型的骨架提取方法 | |
CN105261062B (zh) | 一种人物分段建模方法 | |
CN104183020B (zh) | 基于带惩罚项的局部二次误差测量的地物网格化简方法 | |
CN108416392A (zh) | 基于som神经网络的建筑物聚类方法 | |
CN104778744A (zh) | 基于Lidar数据的大规模三维森林可视化场景建立技术 | |
CN102496179A (zh) | 一种三维场景的裁剪方法 | |
CN104715507A (zh) | 一种基于曲面片的三维地理实体自动构建方法 | |
Xu et al. | A procedural method for irregular tree models | |
CN108379841A (zh) | 游戏特效的处理方法、装置和终端 | |
CN117516562B (zh) | 一种路网处理方法和相关装置 | |
CN104616335B (zh) | 一种三维角色循环动画的自动累积方法 | |
CN102567465A (zh) | 复眼视觉基础上的三维模型几何相似性搜索方法 | |
CN107240149A (zh) | 基于图像处理的物体三维模型构建方法 | |
CN109102565A (zh) | 一种自动生成虚拟地形的方法 | |
CN106780722B (zh) | 一种同种异态森林场景构建方法及系统 | |
Wang | Application of virtual reality technology in digital tourism | |
KR101295063B1 (ko) | 사실적인 실시간 모델링 시스템 및 방법 |
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 |