本发明属于计算机图形学领域,特别是涉及一种数据驱动的自然场景快速过程化建模的方法。
背景技术:
3d建模在影视制作、游戏开发、虚拟现实等领域都是必不可少的环节之一,但是3d建模的过程非常繁琐,对于大规模的自然场景,使用3dmax或者maya等软件会耗费过多的人力和时间资源。过程化建模技术是一种基于规则的建模方法,运用该技术可以对特定的场景或者物体等进行快速的建模,从而大大的提升建模的效率。过程化建模比较适合生成具有重复子结构或自相似特征的物体,如植物、道路、地形、城市等。如果定义合适的语法规则和输入参数,则过程化建模可以生成各种逼真的3d内容。
河流以其多样性和可观赏性,在虚拟场景中可以大大的增强用户体验,对于自然场景来说是不可缺少的一部分。然而由于河流复杂的拓扑结构、丰富的形状几何类型以及它同地形的关联,使用传统建模软件对河流网络进行建模是非常困难的。并且由于传统的过程化建模技术输出内容的不可控性,结合交互式编辑与过程化建模的方法可以增强结果的控制性,但是交互编辑的工作量是不可忽视的。现有的专门针对河流网络的建模方法主要有2种,一种是基于交互式编辑的方法,另一种是传统的过程式生成方法。前者需要考虑河流与地形的复杂的拓扑结构、丰富的形状几何类型以及河流同地形的关联,需要耗费较大的人力工作;后者由于过程式方法的随机性,不能很好的依据参数控制输出结果。如果能在指定的地形上很好的生成符合用户意图河流网格,并且使用尽量少的操作,则对河流网络建模是一个非常大的改进。
技术实现要素:
本发明的目的在于使用较少的交互操作实现在指定地形上的河流网络建模,提出了一种基于单幅图像的河流网络过程式生成方法,该方法使用河流图像作为输入,能够大大简化过程化建模中调整参数的过程,生成逼真的河流网络,并且具有一定的可控性。
实现本发明目的的具体技术方案是:
一种基于单幅图像的河流网络过程式生成方法,该方法包含以下步骤:
a)使用参数模型将自然界中的河流网络的形状特性和几何特性量化的表示出来,具体包括:
i)形状参数模型
使用形状参数
其中,u为该河段的实际长度,d为该河段起始点到终点的直线距离;参数dsm和dsv分别表示所有河段直线距离的期望和方差;参数nb、nc和nl分别表示支流、汇流以及湖泊的个数;参数slm和slv分别表示湖泊大小的期望和方差;
ii)几何参数模型
使用几何参数
ω=ωr×(χrw)λ(2)
h=hr×(χrh)λ(3)
其中ω和h为等级为λ的河道的宽度和深度;参数
b)输入河流网络图片,计算该河流网络的形状参数的值,具体包括:
输入河流网络图片,使用grabcut方法从图像中分割出河流部分,并提取河流网络骨骼结构;标记河流的主流部分并指定河流的起点和终点,遍历河流骨骼结构,并将其表示为有向无环图
c)输入地形高度图,基于河流的形状参数和几何参数过程式的生成地形一致的河流网络,具体包括:
i)待生成河流网络的形状参数
给定待生成河流网络的地形的高度图并指定待生成河流的起始位置ps和终止位置pm,选取的ps的地形高度必须高于pm的地形高度,待生成河流网络的直线距离
待生成河流网络的其余形状参数的值计算如下:
其中对待生成河流网络的河段长度和湖泊大小进行了按场景规模比例计算,
ii)河流网络
河流网络的河段均使用b样条进行插值;在待生成河流网络的地形,首先生成从河流起始位置到终止位置的主流;为使生成的主流符合地形的起伏,使用考虑地形高度的中点位移法对b样条的型值点进行位置调整,选取的型值点约束要求如下:
其中p为待调整型值点的位置,rs和rm为待调整的河段的起点和终点,
①、扩散支流,如果
②、扩散汇流,如果
③、扩散湖泊,如果
d)使用模拟退火算法对生成场景进行优化,具体包括:
在每次优化迭代的过程中,对生成的河流网络
其中ξc和ξl分别为河流弯曲度的距离以及被河流包围的陆地面积的距离;ξc计算如下:
其中ci和
其中
本发明的有益效果:
本发明使用河流的俯视照片或卫星影像等作为输入,提取输入图像的河流特性,并将其运用在新的地形上,具有非常简洁的交互。本发明还使用模拟退火算法对输出结果进行进一步优化,以符合输入图像的河流特性。
总之,应用本发明可以快速地对河流网络进行建模,与传统方法相比,具有更少的用户交互并具有一定的结果可控性。
附图说明
图1为本发明流程图;
图2为本发明考虑地形高度的中点位移法示意图;
图3为本发明使用三种不同的河流参数值生成的对应河流网络图;
图4和图5为本发明使用两个不同的输入河流图像生成的对应河流网络图。
具体实施方式
本发明包括以下步骤:
1)河流参数化模型表示
使用参数模型将自然界中的河流网络的弯曲度、支流、汇流以及相连的湖泊特性量化的表示出来,其中使用形状参数控制河流的网络拓扑特性,使用几何参数控制河道几何特性。
2)输入河流图片参数计算
输入河流网络的俯视图像,使用grabcut方法从图像中分割出河流部分,并提取其骨骼结构,基于河流的网络结构计算河流形状参数。
3)依据参数过程式生成河流网络
输入地形高度图,基于河流的形状参数和几何参数过程式的生成地形一致的河流网络。
4)河流网络优化
评估生成河流网络与输入河流图片的距离函数的值,并使用模拟退火算法迭代优化生成河流网络。
本发明的河流参数化模型表示步骤具体为:
使用形状参数
其中,u为该河段的实际长度,d为该河段起始点到终点的直线距离;参数dsm和dsv分别表示所有河段直线距离的期望和方差;参数nb、nc和nl分别表示支流、汇流以及湖泊的个数;参数slm和slv分别表示湖泊大小的期望和方差。
使用几何参数
ω=ωr×(χrw)λ(2)
h=hr×(χrh)λ(3)
其中ω和h为等级为λ的河道的宽度和深度;参数
本发明的输入河流图片参数计算步骤具体为:
输入河流网络图片,使用grabcut方法从图像中分割出河流部分,并提取河流网络骨骼结构;标记河流的主流部分并指定河流的起点和终点,遍历河流骨骼结构,并将其表示为有向无环图
本发明的过程式生成河流网络步骤具体为:
给定待生成河流网络的地形的高度图并指定待生成河流的起始位置ps和终止位置pm,选取的ps的地形高度必须高于pm的地形高度,待生成河流网络的直线距离
待生成河流网络的其余形状参数的值计算如下:
其中对待生成河流网络的河段长度和湖泊大小进行了按场景规模比例计算,
河流网络的河段均使用b样条进行插值;在待生成河流网络的地形,首先生成从河流起始位置到终止位置的主流;为使生成的主流符合地形的起伏,使用考虑地形高度的中点位移法对b样条的型值点进行位置调整,选取的型值点约束要求如下:
其中p为待调整型值点的位置,rs和rm为待调整的河段的起点和终点,
①、扩散支流,如果
②、扩散汇流,如果
③、扩散湖泊,如果
本发明的优化生成河流网络的步骤具体为:
使用模拟退火框架使得生成河流网络更加符合输入河流网络的特性。在每次优化迭代的过程中,对生成的河流网络
算法1.河流网络优化算法
t=t0
对i从1到n
对j从1到m
对
如果
将
如果δe<0则
否则以概率
t=t×α
算法1中计算两个河流网络
其中ξc和ξl分别为河流弯曲度的距离以及被河流包围的陆地面积的距离;ξc计算如下:
其中ci和
其中
本发明的具体实现过程为:
如图1所示,首先用户提供河流网络的俯视图片,该图片可以为航拍照片或者直接从地理信息系统中下载得到。然后使用grabcut方法分割输入图片并提取河流骨骼结构,从而获取输入河流网络的模型参数。然后结合输入地形高度图过程式生成河流网络,之后迭代使用模拟退火算法对输出场景进行优化,最后得到输出河流网络。
本发明基于单幅图像与输入地形图进行河流网络过程式生成,效果展示说明如下:
图3展示了本发明的参数模型生成场景的多样性,图片左侧为河流网络图,图片右侧为对应的3d场景。图3a、3b、3c展示了本发明在不同的地形上生成了丰富的河流网络,且河流网络变化非常大。
图4展示了在山地地形下输出的河流结果。左上为从googleearth提取的河流图片;右上为在地形高度图上生成的河流网络展示;图片中间和下方为生成的三维场景。可以看出,我们的方法生成的河流很好的沿着地形扩散,并且与输入图像具有很大的相似性。
图5展示了输入图像为具有汇流及多条小型支流的河流网络。本发明在平原地区生成了相似的河流网络。
以上列举的仅是本发明的具体实施例。显然,本发明不限于以上实施例,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。