一种交互编辑虚拟人群场景中虚拟个体的方法
技术领域
本发明涉及虚拟现实技术领域,尤其涉及的是一种交互编辑虚拟人群场景中虚拟个体的方法。
背景技术
人是现实世界中最重要和最基本的组成元素之一,虚拟角色对于虚拟世界来说具有同样重要的意义,利用群体模拟技术,在计算机生成空间中创建并模拟现实世界中的群体及其运动,能够极大地提高虚拟世界的真实感和沉浸感。近年来,随着计算机群体模拟技术的不断发展,其应用也越来越广泛,涉及的领域包括模拟训练、计算机游戏动画、影视特效和公共安全辅助设计等。比如,影视画面中可以将包含大量人群活动的场景通过计算机模拟实现,从而提高特效制作的效率并降低制作成本;通过对日常人流或紧急情况下人群的运动过程进行模拟与分析,为建筑物结构设计、大型活动客流管理、公共场所应急预案制定起到很好的指导作用。
目前,已经有许多创作好的虚拟人群场景,可以直接用于许多领域,如娱乐、广告、建筑、教育、游戏及公共安全辅助设计等。但是这些已经创作好的虚拟人群,往往是根据样本来合成的,由于样本随机抽取的关系,场景中人群的疏密,角色的形态都具有一定的随机性,甚至有些显得生硬。因此需要能对已经创作好的虚拟人群做一些微调。
然而,直接使用已有的虚拟人群往往不能随意的修改人群形态、密度、个体的特征,应用时产生诸多不便。
发明内容
本发明提供了一种通过交互编辑虚拟人群场景中虚拟个体的方法,该方法用于交互编辑已经生成的虚拟人群场景,以解决已有的虚拟人群不能随意的修改人群形态、密度、个体的特征的问题。
一种交互编辑虚拟人群场景中虚拟个体的方法,用于编辑已经生成的虚拟人群场景,所述方法包括步骤:
(1)选取人群分布图片,产生密度场灰度图片;
(2)调整所述密度场灰度图片,与所述的虚拟人群场景相适应;
(3)使用密度场灰度图片修改虚拟个体;
(4)进一步编辑虚拟人个体的形态。
其中,所述选取的人群分布图片具有明显的人群和背景之分,便于处理得到参考密度场图片。若采用真实的照片或艺术创作图片,可以保证生成的虚拟人群的真实感,俯瞰且包含完整场景的图片可以为虚拟场景和虚拟人群提供一个较为真实的参考密度。
进一步地,所述步骤(1)还包括步骤:
对选取的人群分布图片做抠图处理,去掉图片背景和人群之外的物体,只保留人群和白色背景;
对所述人群分布图片的每个像素(x,y),根据其RGB颜色值计算出灰度值Gray(x,y)作为参考密度值,其中(x,y)为该像素的坐标。
其中,所述灰度值按照下述公式计算:
Gray(x,y)=R(x,y)*0.299+G(x,y)*0.587+B(x,y)*0.114,其中R(x,y),G(x,y),B(x,y)为所述像素的RGB颜色值。
进一步地,所述步骤(3)还包括步骤:
设定虚拟个体舍弃阀值;
对每个虚拟个体,在密度场灰度图片中找到与其对应的四个像素块,利用双线性插值算法计算出每一个虚拟个体的平均密度值;
舍弃平均密度值小于所述舍弃阀值的虚拟个体。
通过调整所述舍弃阀值的大小,控制虚拟人群的稀疏程度,所述舍弃阀值默认为0.5。根据具体的需求,灵活设置舍弃阀值的大小,用以控制虚拟人群的稀疏程度,方式灵活。
进一步地,所述步骤(4)还包括步骤:
建立一个统一的人物三维模型库,使用角色属性信息对模型进行分类存储,并给模型库建立索引表;
根据虚拟个体的角色属性信息,从模型库中索引得到应的所有满足条件三维人物模型;
将选定的人物模型赋予虚拟个体。
其中所述角色属性信息是性别、姿态信息,通过进一步调节虚拟个体的形态,使具有相同角色属性的虚拟个体可以使用不同的三维人物模型,可选择模型越多,最后的人群场景更加丰富。
本发明交互编辑虚拟人群场景中虚拟个体的方法,通过利用容易获得的真实图片、艺术创作图片等生成密度场灰度图片,再参考密度场灰度图片并利用双线性插值算法给虚拟人群场景中的每个虚拟个体计算出一个平均的密度值,舍弃平均密度小于舍弃阀值的虚拟个体,可以很方便的对虚拟人群的密度进行修改。同时通过建立三维人物模型,根据虚拟人群个体的角色属性信息,从模型库中选取满足条件的三维人物模型,对虚拟人群的形态做出调整,灵活地修改了虚拟人群中的个体形态和个体特征。
附图说明
图1为本发明交互编辑虚拟人群的方法流程图;
图2为本发明密度场灰度图片示例图;
图3为本发明采用的双线性插值法计算虚拟个体密度值的坐标示意图。
具体实施方式
下面结合附图和实施例对本发明技术方案做进一步详细说明,以下实施例不构成对本发明的限定。
本发明为了能够交互地编辑一个虚拟人群场景中的虚拟个体,采用基于密度场灰度图片调整虚拟人群密度分布的方法来编辑修改已有的虚拟人群场景中的虚拟个体,用户可以主动调整虚拟个体的分布。如图1所示,本发明交互编辑虚拟人群场景中的虚拟个体的方法包括以下步骤:
步骤101、用户选择一张所需的人群分布图片作为最终人群分布效果的参考图片,用于处理生成密度场灰度图片。
选择的人群分布图片可以是真实世界的照片、艺术创作图片等,图片具有明显的人群和背景之分,便于处理得到密度场灰度图片,俯瞰且包含完整场景的图片可以为虚拟人群场景提供一个较为真实的参考密度。
具体地,首先对选取的人群分布图片做抠图处理,去掉图片背景和人群之外的物体,最终只保留人群和白色背景,然后对该人群分布图片的每个像素(x,y),根据其RGB颜色值计算出灰度值Gray(x,y)作为参考密度值,公式为:Gray(x,y)=R(x,y)*0.299+G(x,y)*0.587+B(x,y)*0.114,其中(x,y)为该像素的坐标,R(x,y),G(x,y),B(x,y)为所述像素的RGB颜色值。生成密度场灰度图片,如图2所示,图片中每个像素块都有一个固定的灰度值,图片上颜色越深的位置代表该位置密度越大,这张存储了每个像素灰度值的图片就作为密度场灰度图片,为后续步骤调整人群密度分布提供依据,用于后续对虚拟人群的修改。
步骤102、调整密度场灰度图片与已有虚拟人群场景相适应,将密度场图片缩放至与虚拟人群场景相同大小,使虚拟人群中的每个虚拟个体都能够与密度场灰度图片中的某个像素块对应。
步骤103、使用密度场灰度图片修改已有的虚拟人群场景中的虚拟个体。
具体地,对每一个虚拟个体i,其位置为(Px,Py),其中Px,Py代表虚拟个体i在场景中的坐标。在密度场灰度图片中找到与i对应的四个像素块,利用双线性插值算法计算出一个平均密度值sampleDensMap(Px,Py),即:
sampleDensMap(Px,Py)=Bilinear_Interpolation(Q11,Q12,Q21,Q22,Px,Py)。
具体地,Q11代表所有像素块的中心点坐标值小于(Px,Py)集合中,坐标值最大的那个,其所在像素块的灰度值为Gray(Q11)。Q12、Q21、Q22则分别代表Q11所在像素块上方、右方和斜上方的像素块中心点的坐标值,其所在像素块的灰度值分别为Gray(Q12)、Gray(Q21)、Gray(Q22),如图3所示。
若sampleDensMap(Px,Py)<FACTOR,舍弃该虚拟个体,否则保留该虚拟个体。舍弃阀值变量FACTOR的值系统默认为0.5,用户通过调节FACTOR的值来控制虚拟人群的稀疏程度。
遍历所有虚拟个体,直到处理完虚拟人群场景中的每一个虚拟个体为止。
步骤104、用户在通过交互编辑虚拟人群的密度分布后,需要进一步对每个虚拟个体的形态进行编辑修改,通过一个人物三维模型库的支持,可以将每个虚拟个体的性别、外貌、姿态等特征信息灵活地改变成想要的状态。
具体地,建立一个统一的人物三维模型库,使用部分角色属性信息(性别Gender、姿态Pose等)对模型进行分类存储,并给模型库建立索引表。
在具有密度分布形态的虚拟个体集合中,每个虚拟个体都具有性别Gender、姿态Pose等信息,利用这些信息在模型库中索引得到对应的所有满足条件三维人物模型供用户选择,或者由系统自动在多个满足条件的模型中随机选取。然后将选定的人物模型赋予虚拟个体,用于显示。也就是说,具有相同角色属性的虚拟个体可以使用不同的三维人物模型,可选择模型越多,最后的人群场景更加丰富。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。