CN109993836B - 一种实现虚拟现实三维烟花形状可控的方法 - Google Patents
一种实现虚拟现实三维烟花形状可控的方法 Download PDFInfo
- Publication number
- CN109993836B CN109993836B CN201910201300.9A CN201910201300A CN109993836B CN 109993836 B CN109993836 B CN 109993836B CN 201910201300 A CN201910201300 A CN 201910201300A CN 109993836 B CN109993836 B CN 109993836B
- Authority
- CN
- China
- Prior art keywords
- dimensional
- particles
- particle
- firework
- virtual reality
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 239000002245 particle Substances 0.000 claims abstract description 89
- 238000004880 explosion Methods 0.000 claims abstract description 21
- 238000004088 simulation Methods 0.000 claims abstract description 17
- 230000000694 effects Effects 0.000 claims abstract description 12
- 238000005070 sampling Methods 0.000 claims abstract description 9
- 238000000605 extraction Methods 0.000 claims abstract description 6
- 238000004422 calculation algorithm Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 8
- 238000013138 pruning Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000003064 k means clustering Methods 0.000 claims description 3
- 239000011163 secondary particle Substances 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 238000007781 pre-processing Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 230000002452 interceptive effect Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 238000007654 immersion Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 241000282414 Homo sapiens Species 0.000 description 1
- 230000003796 beauty Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000004438 eyesight Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000452 restraining effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000004382 visual function Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Architecture (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种实现虚拟现实三维烟花形状可控的方法,包括步骤:读取用户使用手柄绘制的轨迹作为输入,依据轨迹形成二维多边形;对所得二维多边形进行受约束的Delaunay三角化处理,得到初始的二维三角网格;对二维三角网格进行脊线提取,依据脊线对二维三角网格进行双面抬高,膨胀为三维立体的三角网格;对得到的三维立体的三角网格进行粒子采样,得到一个粒子***的参数集合,对所有粒子进行分级聚类,实现多级***;使用粒子***结合逆向动力学进行模拟,在虚拟现实环境中获得与用户绘制轨迹对应形状的烟花效果,实现虚拟现实三维烟花形状可控。上述方法在虚拟现实环境下实现了一套形状可控的虚拟三维烟花模拟***。
Description
技术领域
本发明涉及计算机虚拟现实技术领域,具体涉及一种实现虚拟现实三维烟花形状可控的方法。
背景技术
虚拟现实技术(Virtual Reality,VR)是一种可以创建和体验虚拟世界的计算机仿真***,它利用计算机生成一种模拟环境,是一种多源信息融合的、交互式的三维动态视景和实体行为的***仿真使用户沉浸到该环境中。虚拟现实技术通过使用计算机来模拟一个三维的虚拟场景,用户佩戴上具有可视功能的头盔等设备后可以浏览场景,并可使用手柄等设备与计算机进行交互,从而在视觉、听觉、触觉等感官上产生身临其境的体验。虚拟现实***兼具沉浸感、交互性和构想性,因此可以被用来达到一定的娱乐和科普目的。虚拟现实技术凭借其强大的感官冲击和无以伦比的沉浸感,能向用户传递普通二维屏幕难以表现的信息。目前的虚拟现实技术主要应用于沉浸式体验类游戏,如场景漫游、射击游戏等,以及模拟现实中风险较大的活动,如虚拟手术台、建筑工地安全训练等。虚拟现实的诞生降低了人们的观赏成本,可在千里之外体验极光的灿烂;降低了从事危险工作的压力,可在室内操作矿场训练;又提升了视角效果,戴上头盔便能完全的沉浸在虚拟世界中。
追求真实感不限于科技感的游戏、野外风光的模拟,人们在虚拟现实世界中也期待领略传统美景的魅力。烟花在漫长的历史岁月里陪伴了人们的大小节日,色彩缤纷、形状各异的烟花增添节日的气氛。但各种烟花大会事故的发生和出于环保的呼吁,许多城市已明令禁止燃放烟花爆竹。
为了解决这一缺陷,将传统烟花和虚拟现实技术结合非常有意义,尤其适用于博物馆、科技馆等公众科普机构。这样一个沉浸式形状可控的虚拟三维烟花互动模拟***,应实现在虚拟现实环境中基于用户输入生成对应形状的烟花的效果,从而达到集科普性、娱乐性、互动性为一体的目的。该***要求基于草图的建模、虚拟现实场景、烟花模拟三者的结合,其中Delaunay三角化是基于草图的三维建模的基础。现有研究中这三者单独的成果都很多,但尚未有研究将三者结合起来。
基于笔划或草图的建模技术的目标是,允许用户在建模过程中使用自由手绘草图,包括从粗略模型直到完整细节的构建过程。由于其交互方式直观简单,符合人类原有日常生活中的思考习惯,基于草图建模是最近十多年来计算机图形学中研究的热点建模方法之一。同时,近年的许多研究也使用数据驱动或卷积神经网络的方式生成三维模型。但有些***操作较难、用时较久,以大众人群为用户的需求。通过对类别训练的卷积神经网络存在一定的局限,训练所得的模型不能推广到其他类别,可绘制的种类较少。
虚拟现实技术方面,近年的一些研究将烟花模拟应用到虚拟现实环境中,都不支持烟花形状的可控性,且所用硬件不是沉浸式的虚拟现实设备。有些商业游戏中实现了精美的虚拟现实烟花模拟,但其烟花模式是固定的,不支持用户定制。
发明内容
针对本领域存在的不足之处,本发明提供了一种实现虚拟现实三维烟花形状可控的方法,基于草图的建模、虚拟现实场景、烟花模拟三者结合,使用多边形绘制、受约束的Delaunay三角剖分、脊线提取、网格抬高、烟花采样、多级***等技术,首次在虚拟现实环境下实现了一套形状可控的虚拟三维烟花模拟***。
一种实现虚拟现实三维烟花形状可控的方法,包括步骤:
(1)读取用户使用手柄绘制的轨迹作为输入,依据轨迹形成二维多边形;
(2)对所得二维多边形进行受约束的Delaunay三角化处理,得到初始的二维三角网格;
(3)对二维三角网格进行脊线提取,依据脊线对二维三角网格进行双面抬高,膨胀为三维立体的三角网格;
(4)对得到的三维立体的三角网格进行粒子采样,得到一个粒子***的参数集合,对所有粒子进行分级聚类,实现多级***;
(5)使用粒子***结合逆向动力学进行模拟,在虚拟现实环境中获得与用户绘制轨迹对应形状的烟花效果,实现虚拟现实三维烟花形状可控。
如图1所示,所述步骤(1)的具体步骤可以为读取虚拟现实设备的配套手柄的位置参数,将用户绘制的轨迹曲线作为输入,将轨迹曲线投影到二维平面并按时间采样获取顶点,对获得的点集预处理,将这些点按次序连接,并将轨迹首尾点相连,得到一个首尾相连的封闭二维多边形。
所述的受约束的Delaunay三角化处理包括:
(2-1)采用Divide and conquer算法,计算所述点集的受约束的Delaunay三角剖分;
(2-2)将用户使用手柄绘制的轨迹形成的外边作为约束边,依据约束边来调整三角剖分,若约束边与三角剖分中某一条边相交,则删除三角剖分中该边并***约束边,将剩余的非三角形区域继续三角化;
(2-3)对所有约束边重复步骤(2-2)后,受约束的Delaunay三角化结束,获得所述初始的二维三角网格。
所述的Divide and conquer算法如下:
(I)如图2a所示,将由上述所得封闭二维多边形的顶点组成的点集中所有顶点按照其x坐标进行排序,x坐标相同时,按y坐标排序;
(II)如图2b所示,将排序后的点集持续二等分,直到每个子集中的顶点数不超过三个,将每个子集中的点连接成为三角形(三个顶点)或线段(两个顶点);
(III)对相邻的两个子集进行合并,以图2b中的左边两个子集为例,将合并后的集合中的三角形边分为以下三类:
1、L边:合并前存在于左边子集;
2、R边:合并前存在于右边子集;
3、LR边:合并后产生,连接一个左子集的顶点和一个右子集的顶点;
(IV)第一次合并完成后,合并新生成的子集,如图3所示,首先选取两个新生成的子集的最低点***一条LR0边,然后从右边开始筛选下一条***边的顶点作为候选点,将候选点与最低点连线,并依据连线段和LR0边夹角由小到大排序;依次检查候选点是否满足以下条件:
1、夹角小于180°;
2、该连线段与LR0边的外接圆不包含其他候选点;
如果两个条件都满足,将该候选点作为新LR边的右顶点;如果不满足条件1,则从左侧筛选;如果满足条件1但不满足条件2,则删除候选点到LR0的R边,并检查下一个候选点,选出合适的点或检查完所有候选点;
如图3所示,如果左右两边都有合适的顶点选出,则分别做该顶点与LR0的外接圆,选取外接圆不包含另一候选点的顶点***新LR边,并将新LR边设为LR0,直到两边都不再有候选点时,合并结束,完成所述点集的受约束的Delaunay三角剖分计算。
所述步骤(3)的具体步骤为通过对三角面进行分类并提取确定网格的脊线,然后依据网格的脊线对其进行剪枝并重新三角化,最后对脊线进行提升,以此构造一个包裹脊线和多边形的三维立体的三角网格,使三维立体的三角网格的横截面成立体的椭圆形。这个过程的算法如下:
(3-1)如图4a所示,对得到的二维三角网格中的每个三角形进行检查,并分为以下三类:
T三角形(Terminal triangle终端三角形):具有两个外边的三角形;
S三角形(Sleeve triangle套筒三角形):具有一个外边的三角形;
J三角形(Junction triangle结合三角形):没有外边的三角形;
如图4b所示,初始脊线可通过连接网格内部的边的中点获得。
(3-2)剪枝,即对脊线末端三角形进行重构,对每个终端三角形进行如下检查:设X为一个终端三角形,即X含两个外边和一个内边,以其内边为直径画一个半圆,使两个外边和半圆在内边的同一侧,如图5a所示;如果X的所有三个顶点都位于半圆上或半圆内,则移除内边并将X与内边相邻三角形合并,如图5b所示;如果新合并的三角形是套筒三角形,那么X现在有三个外边和一个新的内边,则再次以内边为直径画一个半圆,并检查所有顶点是否在其中。
这样持续检查下去,直到X的某些顶点位于半圆的外面,如图5c所示,或直到合并的三角形为结合三角形,如图5e所示;若为图5c的情况,则取内边的中点并与X的每个顶点相连,形成如图5d的扇形排布;若为图5e的情况,则取结合三角形的中点与X的每个顶点相连,形成如图5f的扇形排布。
对所有三角形进行剪枝结束后,获得了如图6a所示的在原终端三角形处呈扇形排布的网格。通过连接剩余套筒三角形和结合三角形内边的中点来获得剪枝后的脊线,如图6b所示。最后,在原结合三角形内部将其中点与各边中点相连,获得最终的二维平面网格,如图6c所示。
(3-3)如图7a、7b所示,将脊线的每个顶点进行提升,提升高度为该顶点和直接连接到顶点的外部顶点之间的平均距离。如图7c所示,每个扇形三角形的每个内边缘(不包括脊线)都被转换为四分之一椭圆,***通过将相邻的高边缝合在一起构造一个合适的多边形网格,如图7d所示。最后,将抬高的网格镜像复制到另一侧,使网格闭合和对称,并移除短边和小三角形,得到膨胀完成的封闭三维网格,即膨胀为三维立体的三角网格。
本发明所述的粒子采样的算法包括:
分别计算所得三维立体的三角网格的所有三角面的面积,并进行排序,得到递增序列S={T1,T2,...,Tn},Ti为三角面,area(Ti)为Ti三角面的面积,i=1,2,...,n;
设置N个粒子,为每个粒子生成一个随机数randarea,且area(T1)<randarea<area(Tn),若area(Ti-1)<randarea≤area(Ti),则将该粒子分配给Ti三角面,直至分配完所有N个粒子;
设第j个三角面Tj对应的mj个粒子的集合为Pj,tj1、tj2、tj3是三角面的三个顶点的坐标,Pj中第k个粒子的位置Pjk计算如下:
a=rand(0,1) (1),
b=rand(0,1-a) (2),
c=1-a-b (3),
Pjk=a×tj1+b×tj2+c×tj3 (4),
其中,k=1,2,...,N。
本发明所述的多级***算法包括:
首先对已知的N个粒子进行k-means聚类:
(I)从N个粒子随机选取K个作为质心;
(II)对剩余的每个粒子计算其到每个质心的距离,并将剩余的每个粒子归到与其最近的质心的类;
(III)重新计算已经得到的各个类的质心;
(IV)反复迭代步骤(II)、(III),直至新质心与原质心相等或距离小于指定阈值,结束聚类。
第一次***由一个粒子***完成,粒子数量为K,所有粒子的出发点均为烟花发射点,最终落在对应的质心坐标上消亡,第二次***由K个粒子***完成,每个粒子***粒子数目为N/K,每个二级粒子***的粒子的出发点为上一级对应的质心坐标,终点为该质心对应的N/K个最终粒子的坐标,依据粒子的出发点坐标和终点坐标,应用粒子***进行物理模拟,实现多级***。
由上述过程得到的K个质心坐标即为中间粒子的坐标。
本发明提供了计算当前烟花粒子***的各粒子实时位置并显示的方法。根据上述所得第一次***和第二次***的粒子***参数,对于粒子***中的每个粒子,计算其从发射点到终点的符合重力***的抛物曲线,并时间逐帧更新粒子的位置并显示,并提供多种烟花外观和音效方案,从而得到烟花***的效果。
本发明还提供了一种沉浸式形状可控的虚拟三维烟花互动模拟***,采用了所述的实现虚拟现实三维烟花形状可控的方法,包含了用户自定义制烟花形状、虚拟烟花模拟、西湖苏堤虚拟场景等内容,可随机使用多种烟花外观和音效方案,将用户定制的烟花展示在虚拟场景。
本发明与现有技术相比,主要优点包括:
(1)基于草图的建模、虚拟现实场景、烟花模拟三者结合,使用多边形绘制、受约束的Delaunay三角剖分、脊线提取、网格抬高、烟花采样、多级***等技术,首次在虚拟现实环境下实现了一套形状可控的虚拟三维烟花模拟***。
(2)本发明利用简易的操作向用户展示西子湖畔等场景的风光,并科普粒子***、重力***等计算机和物理知识,同时让用户享受定制随心所欲烟花形状的乐趣。本***具有较强的科普意义和教育意义。
附图说明
图1为步骤(1)的用户输入轨迹(a)以及补全后的多边形(b)示意图;
图2为受约束的Delaunay三角化算法的点集排序(a)和分组(b)示意图;
图3为受约束的Delaunay三角化算法中***新的LR边的示意图;
图4a为对初始的二维三角网格进行分类得到的终端(T)、套筒(S)、结合(J)三角形的示意图;
图4b为初始脊线的示意图;
图5为剪枝的示意图;
图6为剪枝后的三角形排布(a),最终的脊线(b)和网格(c)的示意图;
图7为对二维三角网格进行双面抬高的示意图;
图8为实施例的实现虚拟现实三维烟花形状可控的方法的流程示意图。
具体实施方式
下面结合附图及具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。下列实施例中未注明具体条件的实验方法,通常按照常规条件,或按照制造厂商所建议的条件。
如图8所示,本实施例的实现虚拟现实三维烟花形状可控的方法,包括虚拟场景游览和多边形绘制、网格三角化、脊线提取和网格抬高、粒子采样和聚类模块、多级***和物理模拟五个步骤:
(1)用户佩戴上沉浸式虚拟现实设备,在基于西湖实景的虚拟现实环境中游览,使用手柄绘制用于约束烟花形状的轮廓轨迹。***读取虚拟现实设备的配套手柄的位置参数,将用户绘制的轨迹曲线作为输入,将曲线投影到二维平面并按时间采样获取顶点,对获得的点集预处理,将这些点按次序连接,并将轨迹首尾点相连,便得到一个首尾相连的封闭二维多边形。
(2)***对步骤(1)中所得二维多边形进行受约束的Delaunay三角化,生成二维平面的三角网格:
令步骤(1)中所得轮廓多边形的所有的顶点组成的点集为P。首先将点集P中的所有顶点按照其x坐标进行排序(x坐标相同时,按y坐标排序)。将排序后的点集持续二等分,直到每个子集中的顶点数不超过三个。将每个子集中的点连接成为三角形(三个顶点)或线段(两个顶点)。
第二步对相邻的两个子集进行合并,将合并后的集合中的三角形边分为以下三类:
L边:合并前存在于左边子集;
R边:合并前存在于右边子集;
LR边:合并后产生,连接一个左子集的顶点和一个右子集的顶点。
第一次合并完成后,合并新生成的两个子集。首先选取两个子集的最低点***一条LR0边,然后从右边开始筛选下一条***边的顶点。将候选点与最低点连线,并依据连线和LR0边夹角由小到大排序。依次检查候选点是否满足以下条件:
1、夹角小于180°;
2、该线段与LR0边的外接圆不包含其他候选点;
如果两个条件都满足,将该候选点作为新边的右顶点。如果不满足1,则从左侧筛选。如果满足1但不满足2,则删除候选点到LR0的R边,并检查下一个候选点,选出合适的点或检查完所有候选点。如果两个条件都满足,将该候选点作为新边的右顶点。
如果左右都有合适的顶点选出,则分别做该点与LR0的外接圆,选取外接圆不包含另一候选点的顶点***新的LR边,并将新LR边设为LR0。直到两边都不再有候选点时,合并结束。
依据约束边来调整三角剖分,本***中对应的即是用户输入的外边。若约束边与剖分中某一条边相交,则删除该边并***约束边,将剩余的非三角形区域继续三角化。
对所有约束边重复该过程后,受约束的Delaunay三角化结束,获得基于用户输入轮廓的三角化平面网格。
(3)***对得到的三角网格提取脊线,并依据脊线对网格进行双面抬高,膨胀为三维立体的三角网格:
对得到的三角网格每个三角形进行检查,并分为以下三类:
1、T三角形(Terminal triangle终端三角形):具有两个外边的三角形;
2、S三角形(Sleeve triangle套筒三角形):具有一个外边的三角形;
3、J三角形(Junction triangle结合三角形):没有外边的三角形。
初始脊线可通过连接网格内部的边的中点获得。随后进行剪枝,即对脊线末端三角形进行重构。对每个终端三角形进行如下检查:设X为一个终端三角形,即X含两个外边和一个内边,以其内边为直径画一个半圆,使两个外边和半圆在内边的同一侧,。如果X的所有三个顶点都位于半圆上或半圆内,则移除内边并将X与内边相邻三角形合并。如果新合并的三角形是套筒三角形,那么X现在有三个外边和一个新的内边,则再次以内边为直径画一个半圆,并检查所有顶点是否在其中。
这样持续检查下去,直到X的某些顶点位于半圆的外面,或直到合并的三角形为结合三角形。若为位于半圆的外面的情况,则取内边的中点并与X的每个顶点相连;若为合并的三角形为结合三角形的情况,则取结合三角形的中点与X的每个顶点相连。
对所有三角形进行剪枝结束后,获得了在原终端三角形处呈扇形排布的网格。通过连接剩余套筒三角形和结合三角形内边的中点来获得剪枝后的脊线。在原结合三角形内部将其中点与各边中点相连,获得最终的二维平面网格。
接下来,将脊线的每个顶点按照顶点和直接连接到顶点的外部顶点之间的平均距离成比例地提升。每个扇形三角形的每个内边缘(不包括脊线)都被转换为四分之一椭圆,***通过将相邻的高边缝合在一起构造一个合适的多边形网格。最后,将抬高的网格镜像复制到另一侧,使网格闭合和对称,并移除短边和小三角形,得到成膨胀完成的封闭三维三角网格。
(4)***对得到的三维三角网格进行采样,得到一个粒子***的参数集合,对所有粒子进行分级聚类,实现多级***:
分别计算上述所得三维立体的三角网格的所有三角面的面积,并进行排序,得到递增序列S={T1,T2,...,Tn},Ti为三角面,area(Ti)为Ti三角面的面积,i=1,2,...,n;
设置N=6000个粒子,为每个粒子生成一个随机数randarea,且area(T1)<randarea<area(Tn),若area(Ti-1)<randarea≤area(Ti),则将该粒子分配给Ti三角面,直至分配完所有N个粒子;
设第j个三角面Tj对应的mj个粒子的集合为Pj,tj1、tj2、tj3是三角面的三个顶点的坐标,Pj中第k个粒子的位置Pjk计算如下:
a=rand(0,1) (1),
b=rand(0,1-a) (2),
c=1-a-b (3),
Pjk=a×tj1+b×tj2+c×tj3 (4),
其中,k=1,2,...,N。
(5)依据求得的粒子终点坐标,使用粒子***结合逆向动力学进行模拟,最终在虚拟现实环境中获得与用户绘制轨迹对应形状的烟花效果:
首先对已知的N个最终粒子进行k-means聚类:
1、从N个粒子随机选取K个作为质心;
2、对剩余的每个粒子计算其到每个质心的距离,并把它归到最近的质心的类;
3、重新计算已经得到的各个类的质心
4、迭代步骤2、3直至新的质心与原质心相等或距离小于指定阈值,结束聚类。
指定阈值可以是0.000001。
由上述过程得到的K个质心坐标即为中间粒子的坐标。第一次***由一个粒子***完成,粒子数量为K,所有粒子的出发点均为烟花发射点,最终落在对应的质心坐标上消亡。第二次***由K个粒子***完成,每个***粒子数目为N/K,每个二级粒子***的出发点为上一级对应的质心坐标,***内粒子的终点为该质心对应的N/K个最终粒子的坐标。随后依据所得粒子的出发点坐标和终点坐标,应用粒子***进行物理模拟,使烟花进行多级***。同时,***随机应用多种烟花外观和音效方案,从而达到在虚拟现实环境中展示用户定制形状的烟花的效果。
此外应理解,在阅读了本发明的上述描述内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
Claims (1)
1.一种实现虚拟现实三维烟花形状可控的方法,包括步骤:
(1)读取用户使用手柄绘制的轨迹作为输入,依据轨迹形成二维多边形;
(2)对所得二维多边形进行受约束的Delaunay三角化处理,得到初始的二维三角网格;
(3)对二维三角网格进行脊线提取,依据脊线对二维三角网格进行双面抬高,膨胀为三维立体的三角网格;
(4)对得到的三维立体的三角网格进行粒子采样,得到一个粒子***的参数集合,对所有粒子进行分级聚类,实现多级***;
(5)使用粒子***结合逆向动力学进行模拟,在虚拟现实环境中获得与用户绘制轨迹对应形状的烟花效果,实现虚拟现实三维烟花形状可控;
所述步骤(1)的具体步骤为读取虚拟现实设备的配套手柄的位置参数,将用户绘制的轨迹曲线作为输入,将轨迹曲线投影到二维平面并按时间采样获取顶点,对获得的点集预处理,将这些点按次序连接,并将轨迹首尾点相连,得到一个首尾相连的封闭二维多边形;
所述的受约束的Delaunay三角化处理包括:
(2-1)采用Divide and conquer算法,计算所述点集的受约束的Delaunay三角剖分;
(2-2)将用户使用手柄绘制的轨迹形成的外边作为约束边,依据约束边来调整三角剖分,若约束边与三角剖分中某一条边相交,则删除三角剖分中该边并***约束边,将剩余的非三角形区域继续三角化;
(2-3)对所有约束边重复步骤(2-2)后,受约束的Delaunay三角化结束,获得所述初始的二维三角网格;
所述步骤(3)的具体步骤为通过对三角面进行分类并提取确定网格的脊线,然后依据网格的脊线对其进行剪枝并重新三角化,最后对脊线进行提升,以此构造一个包裹脊线和多边形的三维立体的三角网格,使三维立体的三角网格的横截面成立体的椭圆形;
所述的粒子采样的算法包括:
分别计算所得三维立体的三角网格的所有三角面的面积,并进行排序,得到递增序列S={T1,T2,...,Tn},Ti为三角面,area(Ti)为Ti三角面的面积,i=1,2,...,n;
设置N个粒子,为每个粒子生成一个随机数randarea,且area(T1)<randarea<area(Tn),若area(Ti-1)<randarea≤area(Ti),则将该粒子分配给Ti三角面,直至分配完所有N个粒子;
设第j个三角面Tj对应的mj个粒子的集合为Pj,tj1、tj2、tj3是三角面的三个顶点的坐标,Pj中第k个粒子的位置Pjk计算如下:
a=rand(0,1) (1),
b=rand(0,1-a) (2),
c=1-a-b (3),
Pjk=a×tj1+b×tj2+c×tj3 (4),
其中,k=1,2,...,N;
所述的多级***算法包括:
首先对已知的N个粒子进行k-means聚类:
(I)从N个粒子随机选取K个作为质心;
(II)对剩余的每个粒子计算其到每个质心的距离,并将剩余的每个粒子归到与其最近的质心的类;
(III)重新计算已经得到的各个类的质心;
(IV)反复迭代步骤(II)、(III),直至新质心与原质心相等或距离小于指定阈值,结束聚类;
第一次***由一个粒子***完成,粒子数量为K,所有粒子的出发点均为烟花发射点,最终落在对应的质心坐标上消亡,第二次***由K个粒子***完成,每个粒子***粒子数目为N/K,每个二级粒子***的粒子的出发点为上一级对应的质心坐标,终点为该质心对应的N/K个最终粒子的坐标,依据粒子的出发点坐标和终点坐标,应用粒子***进行物理模拟,实现多级***。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910201300.9A CN109993836B (zh) | 2019-03-18 | 2019-03-18 | 一种实现虚拟现实三维烟花形状可控的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910201300.9A CN109993836B (zh) | 2019-03-18 | 2019-03-18 | 一种实现虚拟现实三维烟花形状可控的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109993836A CN109993836A (zh) | 2019-07-09 |
CN109993836B true CN109993836B (zh) | 2020-11-17 |
Family
ID=67130406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910201300.9A Active CN109993836B (zh) | 2019-03-18 | 2019-03-18 | 一种实现虚拟现实三维烟花形状可控的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109993836B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110415326A (zh) * | 2019-07-18 | 2019-11-05 | 成都品果科技有限公司 | 一种粒子效果的实现方法及装置 |
CN110639204A (zh) * | 2019-10-18 | 2020-01-03 | 网易(杭州)网络有限公司 | 游戏数据处理方法、装置以及终端设备 |
CN112700517B (zh) * | 2020-12-28 | 2022-10-25 | 北京字跳网络技术有限公司 | 生成烟花视觉效果的方法、电子设备、存储介质 |
CN114401443B (zh) * | 2022-01-24 | 2023-09-01 | 脸萌有限公司 | 特效视频处理方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102968813A (zh) * | 2012-10-29 | 2013-03-13 | 北京工商大学 | 一种三角面片网格模型的表面采样方法 |
CN105096387A (zh) * | 2015-07-16 | 2015-11-25 | 青岛科技大学 | 一种二维草图智能三维化处理方法 |
CN108415774A (zh) * | 2018-02-27 | 2018-08-17 | 天津大学 | 一种基于改进烟花算法的软硬件划分方法 |
CN109461205A (zh) * | 2018-09-29 | 2019-03-12 | 北京航空航天大学 | 一种从烟花视频重建三维烟花的方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050151734A1 (en) * | 2004-01-14 | 2005-07-14 | Gubkin Andrew A. | Method and apparatus for rendering, storing and editing voxel objects |
CN101276480B (zh) * | 2008-04-28 | 2011-12-14 | 浙江大学 | 一种生成特定形状烟花的计算机模拟方法 |
CN101609564B (zh) * | 2009-07-09 | 2011-06-15 | 杭州力孚信息科技有限公司 | 一种草图式输入的三维网格模型制作方法 |
-
2019
- 2019-03-18 CN CN201910201300.9A patent/CN109993836B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102968813A (zh) * | 2012-10-29 | 2013-03-13 | 北京工商大学 | 一种三角面片网格模型的表面采样方法 |
CN105096387A (zh) * | 2015-07-16 | 2015-11-25 | 青岛科技大学 | 一种二维草图智能三维化处理方法 |
CN108415774A (zh) * | 2018-02-27 | 2018-08-17 | 天津大学 | 一种基于改进烟花算法的软硬件划分方法 |
CN109461205A (zh) * | 2018-09-29 | 2019-03-12 | 北京航空航天大学 | 一种从烟花视频重建三维烟花的方法 |
Non-Patent Citations (1)
Title |
---|
"K-means聚类算法详解";Soyoger;《https://blog.csdn.net/qq_36330643/article/details/77876910》;20170907;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109993836A (zh) | 2019-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109993836B (zh) | 一种实现虚拟现实三维烟花形状可控的方法 | |
US11790589B1 (en) | System and method for creating avatars or animated sequences using human body features extracted from a still image | |
JP2019149202A (ja) | エクストラミッシブ空間撮像デジタル眼鏡装置または拡張介在ビジョン | |
CN110163054A (zh) | 一种人脸三维图像生成方法和装置 | |
CN109976519A (zh) | 一种基于增强现实的交互显示装置及其交互显示方法 | |
CN106569763A (zh) | 一种图像显示方法及终端 | |
CN104063890A (zh) | 一种人脸卡通动漫形象化方法及*** | |
CN109086798A (zh) | 一种数据标注方法和标注装置 | |
CN109641150B (zh) | 用于创建虚拟对象的方法 | |
CN109147023A (zh) | 基于人脸的三维特效生成方法、装置和电子设备 | |
CN112102480B (zh) | 图像数据处理方法、装置、设备以及介质 | |
Feng et al. | Magictoon: A 2d-to-3d creative cartoon modeling system with mobile ar | |
Jankel et al. | Creative computer graphics | |
CN107832558A (zh) | 数字舞台创意场景智能生成方法 | |
CN107329564B (zh) | 基于手势智能感知和人机协同机制的人机猜拳方法 | |
Cantoni et al. | 3C vision: cues, context and channels | |
CN106980847A (zh) | 一种基于生成与共享ARMark的AR游戏与活动的方法和*** | |
De Carli et al. | Procedural generation of 3D canyons | |
WO2020263232A1 (en) | User interactions in virtual reality | |
CN110163982B (zh) | 一种基于草图检索且形状可控的沉浸式虚拟烟花模拟方法 | |
Islam et al. | Learning character design from experts and laymen | |
Gaisbauer et al. | Procedural Attack! Procedural Generation for Populated Virtual Cities: A Survey. | |
WO2021029164A1 (ja) | 画像処理装置、および画像処理方法、並びにプログラム | |
Cui et al. | Sketch‐based shape‐constrained fireworks simulation in head‐mounted virtual reality | |
Franco et al. | Paper and Pencil Interactive Storytelling Based on Generic Hand-drawn Sketches |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |