版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
虚拟现实技术导论第1章概论本讲大纲3.1虚拟现实模型3.2虚拟现实几何建模3.3虚拟现实物理建模3.4虚拟现实行为建模3.5虚拟现实建模的特点与评价指标3.6几何建模例——点云化简3.7物理建模例——虚拟人体运动合成3.8物理建模例——基于SPH的热带气旋建模3.9习题3.1虚拟现实模型模型“模型”是一个人为构造的物体,以便使人们容易观察现实世界中的物体,例如:物理模型、数学模型……。换言之,“模型”是对物体全部或部分属性的一个抽象。对象模型对象模型是构建虚拟环境的基础,也是实物虚化的重要组成部分。一般的,主要包括几何形状、表面信息、物理特性、变化属性等。对象模型几何形状描述对象形状的几何模型包含了点的位置信息和拓扑结构信息,主要由点、线、面等几何元素组成。例如,使用一些现有的图形库来表现对象的几何外形:大小、方向和位置等对象外表的真实感主要取决于其颜色、光照和纹理等。通过纹理元素的色彩、明暗度和透明度的变化来表现对象的表面细节,能够减少多边形的数量和增加对象在场景中的真实感。目前,投影法和参数表示法是两种常用的表面纹理映射方法。表面信息为了保证视景表示和对象物体在虚拟环境中运动的合理性,经常需要建立对象物体的某些物理模型,使得场景中的对象遵循客观的物理规律,从而生成具有一定真实感和逼真性的三维视景。一般赋予对象物体的物理特性主要有质量、动量、冲量、转动惯量、光滑度、柔韧性和可塑性等。物理特性与变化属性几何模型从数学的角度,对于一个物体的几何表示要考虑物体自身的特征,例如:
有界性、封闭性刚性:物体在刚性变换(平移、旋转等)下是否保持不变规则性:一个物体中的点或线具有相同的性质光滑:……计算机图形学与虚拟现实中,采用“几何模型”的概念描述现实中的物体的几何形状,对物体几何方面的属性进行了抽象。“几何模型”是物体模型的一个子集。几何模型的表示方法基本几何元素包括:点、边、面、体。主要表示方法线框表示:结构简单,用顶点和邻边表示形体表面表示:在上述基础上,增加面,从而可以满足对面的操作参数曲面三角形表示实体表示点表示……实体表示又称为结构立体几何表示,一般直接用立体基元表示对象物体,体积表示具有简洁、可靠的特性,而且有时很容易计算。空间占有表示和结构立体几何表示(CSG)是两种主要的体积表示方法,其中CSG方法将物体表示为一个三维体积基元的集合和一个布尔运算集:并、交及差,其体积基元有块、圆柱体、圆锥体和球等。表面或边界法以Euler定理为基础的结构规则,即如果V是多面体的顶角数,E是边缘数,F是面数,则V–E+F=2,推广到非简单连接体为V–E+F=2(B–H),其中B是体的个数,H是“孔”或“柄”的个数。所以在表面或边界法中,体结点描述景物结构,面结点描述表面特征,边缘结点提供面,边缘和顶角间的拓扑信息,顶角结点描述三维顶角的位置等。模型的组织方法(数据结构)数据结构主要是为了描述拓扑关系(即顶点连接关系、面片连接关系等)在设计数据结构时,空间与速度总是一对矛盾。线形表、树、图都是可以考虑的结构,在具体构建时,可以使用数组也可以使用指针精心的设计这样的数据结构对于绘制有很大的好处往往高效的算法是以对存储空间的占用为代价的绘制过程实际是对上述数据结构的遍历。关键是如何快速的遍历,查找挑选出需要显示的物体,将这些内容交给底层进行绘制模型的组织方法(数据结构)模型的组织方法(数据结构)对于“任意”情况,数据结构可能需要存储额外的信息。例如,如果对构成物体的多边形的边数不加限制,每个面表必须显式存储每个多边形边的数量,而且涉及到大量的内存的申请与释放对多边形的凸凹不加限制,额外计算量也很大所以,对多边形构成的物体,往往对多边形的类型加以约束,例如采用三角形描述(最简单的一种凸多边形)任意的多边形可以按照一定的方法划分为多个三角形(计算几何)[关键是算法的效率问题]基于三角面片的模型表示三个顶点的空间坐标用途:空间变换,投影三个顶点的法向量(或面片的整个法向量)用途:光照计算三个顶点的纹理坐标或颜色用途:显示颜色信息VR中采用的几何表示方法虚拟现实领域普遍采用的表示方法是表面多边形(三角形网格)表示法,即以一组表面多边形来存储物体的描述,用多边形描述的通常被称为“标准图形物体”。由于所有表面以线性方程形式加以描述,大大简化并加速了表面的绘制和显示。也就是说,所有的三维模型都将由点、线、面来构造。3.2虚拟现实几何建模几何建模几何建模形状建模外观建模结构建模物理建模刚体建模柔性体建模流体建模行为建模形状建模要描述虚拟对象的形状,最基本的任务是利用点、线、面等基本几何元素表征虚拟对象的外边界。目前最常用的形状建模方式可分为显式表示与隐式表示两种。其中,显式表示是指使用点云、网格、体素等表征虚拟对象外边界的位置与拓扑信息;隐式表示则是指使用曲线曲面等参数方程、距离场(Distancefield)、水平集(Levelset)等方法描述虚拟对象的外边界。外观建模虚拟对象的外观是指区别于其他虚拟对象的质地特征,如表面反照率、纹理等影响虚拟对象真实感的特征。如果不考虑存储和计算的开销,通过增加虚拟对象形状多边形的方法可以表征出十分逼真的表面,但由于VR对计算和显示实时性要求高,实际系统中普遍采用纹理映射(TextureMapping)等技术刻画虚拟对象的外观。采用纹理映射技术,一方面可增加细节层次以及虚拟对象的真实感;二是可减少多边形的数量,在不影响实时性的同时,增强了虚拟对象和场景的真实效果。结构建模除了要模拟虚拟对象的形状和外观,很多时候还需描述虚拟对象的空间结构信息,以体现虚拟对象内部结构或虚拟对象之间的空间关系。以虚拟人体为例,可使用骨架结构表示各关节间的关系,并应用于人体动画、人体运动分析、不同人体的匹配等。对复杂的工业装备来说,可建立各个组成部分(亦称部件)的结构关系,从而对不同部分进行控制,以满足虚拟装配、拆装维护等要求。几何建模几何建模的常用方法程序构造——利用函数、点线面直接采集——三维扫描仪、视觉建模工具——利用软件几何建模几何建模的常用方法程序构造——利用函数、点线面直接采集——三维扫描仪、视觉建模工具——利用软件几何建模几何建模的常用方法程序构造——利用函数、点线面直接采集——三维扫描仪、视觉建模工具——利用软件几何建模中涉及的基本概念层次细节(LOD)自由度(DOF)实例透明纹理映射材质动画序列层次细节技术(LevelofDetail,LOD)LOD技术用一组复杂程度(常常以多边形数来衡量)各不相同的层次模型来描述对象,并在运行过程中根据一些主客观标准在这些LOD模型进行切换,从而能够实时改变场景的复杂度。当视点变化时,所选取的细节模型可能各不相同,并在模型切换的瞬间产生跳跃的感觉,此时就需要使用过渡算法(比如,瞬时关闭技术和形状过渡技术)来实现其中的过渡。LOD在地形表示中的应用
显示地形最理想的情况是仅仅显示所需的细节,而用户却认为地形是在以最高的分辨率显示。因此,那些由许多小平面以最高的分辨率建模的地形,我们希望能够用较少的较大的小平面不断地代替,直到整个地形被降低为在所需范围内的最低表示分辨率。层次结构的四叉树表示NPSNET(NavalPostgraduateSchoolNetwork)使用了四叉树的存储策略来实现LOD。它采用了一种动态模式,可以动态地调整分辨率和帧速率,即当帧速率降低到某一门限值以下时,调整分辨率边界值,则较多的地形自动以相对低的分辨率显示;相反地,当帧速率超过某一门限值时,较多的地形自动以相对高的分辨率显示。
1km*1km的地形块地形块的四叉树表逸夫馆中某窗户的LOD模型15-0米时选用高级LOD:96个多边形的窗子,全部几何建模35-15米时选用中级LOD:34个多边形的窗子,部分使用纹理视点距窗子75-35范围时选用低级LOD:2个多边形的窗子,全部使用纹理视点在室外时仅使用逸夫馆外观模型1800个三角形视点位于某一楼层时,当前楼层中的实体按距离标准选用LOD模型,其它楼层的大部分实体暂不绘制室外室内某一楼层远距离中距离近距离
0个0个2个34个96个自由度(DegreeOfFree,DOF)纹理贴图纹理贴图是一个用图像、函数或其它数据源来改变表面在每一处的外观的过程。例如,我们不必用精确的几何去表现一块砖墙,而只需把一幅砖墙的图像贴到一个多边形上。除非观察者非常靠近墙,否则我们并不会觉得缺少几何细节(例如发现砖头和泥浆在同一表面上)。既节省了大量的造型工作量,也节省了内存空间,加快了绘制速度。“Allittakesisfortherenderedimagetolookright”——JimBlinn纹理贴图可能的缺陷但是,贴了纹理的砖墙还会出现并非由于缺少几何细节而出现的不真实的缺陷。但是:砖是发亮的(shiny),但是泥浆不是。但我们会发现砖和泥浆同样发亮。为了生成更真实的效果,我们还需要一张镜面高光纹理贴图。但是:砖不是平的,其表面通常是粗糙的。我们还需要凹凸纹理(Bumpmapping)广义纹理贴图(GeneralizedTexturing)纹理贴图可看成是一种有效的改变物体表面属性的一种方法。颜色、高光、凹凸、反射、透明度等等都可采用纹理贴图。从贴图图像中取出相应的值代入光亮度计算方程。计算物体空间位置用投影函数计算(u,v)用对应函数找到纹素应用值变换函数改变方程或Fragment值单个纹理的广义贴图流水线采用该复杂流水线的原因:每一步都可给用户提供有用的控制砖墙纹理贴图的流水线——计算空间位置砖墙纹理贴图的流水线——投影函数投影函数把三维空间点转化为纹理坐标。常用的投影函数:Spherical,Cylindrical,PlanarProjections,参数曲面的(u,v)映射其它:如根据表面法向来确定6个平面投影方向sphericalcylindricalplanar应用应用应用(u,v)砖墙纹理贴图的流水线——对应函数对应函数把参数空间的值转化为纹理空间的位置。第一种对应函数:用API选择一部分纹理(子纹理)进行纹理映射。另一种对应函数:用矩阵变换。由于OpenGL支持4X4矩阵操作,任何API的应用层都可采用这类变换,如平移、旋转、比例变换、错切等ImageTexturing在硬件图形加速卡中,纹理图像的大小经常为2m×2n(或者2m×2m)的纹素,其中m和n为非负整数。不同的图形卡有不同的纹理大小上限。若投影得到的象素数目比原始纹理大,则需要把纹理图像放大(magnification);若投影得到的象素数目比原始纹理小,则需要把纹理图像缩小(minification);OpenGL
mipmapsMipmaps(使用Bi-linear
Interpolation)材质(materials)几何建模的准则严格按照真实数据建立比例对应的几何模型一般应建立各模型部件的不同层次细节,以求得漫游性能与模型质量间的均衡效果使用最少的多边形获取相同的视觉效果在建模阶段即对具有运动特征的模型部件进行优化的数据组织,定义基本运动参数几何建模的常见问题过于注重实体几何尺寸、表面特性的构建,忽略了更为重要的场景数据库整体结构的优化设计。Z值争夺问题T型相交问题使用凹多边形表示实体表面Z值争夺问题多边形位置重叠造成的Z值争夺。即两个多边形在空间位置上具有相同的深度值(Z值),导致图形系统进行场景显示时使用Z-BUFFER消隐算法无法正确判断哪一个多边形应该优先显示,引起画面闪烁。解决此类问题的方法有多种,如多边形剪切、子面设置等。NNN是否已经扫描了所有多边形是否计算了此多边形所有的像素数YYY帧缓冲区置成背景色Z缓冲区置成最小Z值扫描当前多边形把Z(x,y)存入Z缓冲区中的(x,y)处把多边形在(x,y)处的亮度值存入缓冲区中的(x,y)处移到下一个像素计算多边形在该像素的深度值Z(x,y)移到下一个多边形Z(x,y)是否大于Z缓冲区在(x,y)处的值多边形剪切算法T型多边形组合T型多边形组合。此类问题常见于由二维CAD电子图板经拉伸操作构成的三维模型中。其导致画面闪烁的原因与Z值争夺相似。应在建模过程中避免T型多边形组合的出现。使用凹多边形表示实体表面使用凹多边形表示实体表面。大多数图形系统都明确规定,不能使用凹多边形绘制实体表面。一般地,图形系统对实体表面的凹多边形进行自动切分,将一个凹多边形分解为多个凸多边形。3.3虚拟现实物理建模物理建模物理建模(Physically-basedModeling,PBM)是虚拟现实中比较高层次的建模,它有机融入物理模型,将虚拟对象的物理属性加以体现。近年来,除了静态的物理属性,越来越多物理学中动态过程,如人体运动解算、流体计算、燃烧计算等与VR结合,在虚拟环境中实现了面部表情的模拟、织物的模拟、爆炸的模拟等。根据虚拟对象的物理性质,可大致分为刚体建模、柔性体建模与流体建模。刚体建模刚体建模适用于仅需考虑位置与方向的改变,而不需要考虑形变的虚拟对象,建模所涉及的内容主要包括刚体的运动、碰撞检测以及连接和约束等问题。刚体建模——刚体的运动仅包含一个部件的刚体运动较为简单,可以采用牛顿第二定律等刻画其运动参数及运动。对于包含多个部件的刚体,如人体、手等,相对较为复杂。在刻画多个部件的刚体运动时,以人体运动为例,可以有关键帧方法、运动学方法和动力学方法等。后两者分别通过使用运动学和动力学方法建立人体运动的物理模型。与运动学方法相比,动力学方法需指定的参数较少,而且对复杂运动过程的模拟更为逼真,但计算量较大,运动控制的难度较大。刚体建模——碰撞检测刚体的碰撞检测主要针对对刚体运动中的碰撞进行分析,为加速计算,一般采用树结构对虚拟环境中的虚拟对象进行组织,通过空间剖分法或层次包围盒法建立树结构。空间剖分的策略有均匀剖分、BSP树、kd树和八叉树等,适用于分布比较稀疏均匀的几何对象间的碰撞检测。层次包围盒法利用形状简单的包围盒刻画复杂的虚拟对象,包围盒的结构有层次包围球树、AABB(Aligned-axisBoundingBox)层次树、OBB(OrientedBoundingBox)层次树等,适用于复杂环境中的碰撞检测。八叉树空间剖分AABB层次树刚体建模——连接和约束连接和约束建模铰链类型的虚拟对象(如门窗、转动的机械臂)在多个约束情况下的关联运动问题。关联运动一般可分为前向关联运动和反向关联运动,前向关联运动研究给出关联运动中每个关节的角度和长度,求解关节末端所能到达的位置;反向关联运动研究的是给定某个位置,确定已知关节模型的可达性。柔性体建模柔性体不同于刚体,在外力的作用下会产生形变,建模难度更大。柔性体建模主要关注动力学模型及其迭代求解方法。柔性体建模中常用的动力学模型有连续体模型、弹簧-质点模型等。柔性体建模——连续体模型连续体模型使用本构模型描述不同材料的物理特性,如弹性力、阻尼力等,再使用有限元方法模拟不同形变下的力或能量。此外,为得到更加理想的物理模拟效果,还可使用力传感、视觉传感器等采集实际材料的力-形变关系,更加准确地描述虚拟对象的静态与动态特性。连续体模型主要用于虚拟现实中布料、毛发、松软组织、人体器官、肌肉、面部表情的模拟。柔性体建模——弹簧-质量模型弹簧-质点模型将柔性体表面视为离散的质点与连接质点的弹簧组成的规则网格结构。质点间通过弹簧相连,受到弹簧弹力和阻尼力,遵循胡克定律,即当实际长度大于松弛长度时,弹簧将对两端的质点产生相向的拉力;反之,在外力作用下变形后,有恢复原样(松弛状态)的倾向。柔性体建模——流体建模流体建模主要使用计算流体力学模型,如使用纳维-斯托克斯(Navier-Stokes,NS)方程建模流体的运动。NS方程常见的迭代求解方法有基于网格的方法和无网格的方法。基于网格的方法主要使用拉格朗日网格或欧拉网格模拟流体在固定网格单元上的运动,是目前流体模拟的主要方法。但是,基于网格的方法容易产生网格畸变导致计算误差过大。此外,该方法难以模拟大形变现象,如动态裂纹扩展、流固耦合等。无网格的方法通过使用一系列任意分布的节点(或粒子)来求解具有各种边界条件的NS方程,节点或粒子之间不需要网格进行连接,因此不仅可以保证计算的精度,还可降低计算的难度。基于网格的流体仿真无网格(SPH)的流体仿真3.4虚拟现实行为建模行为建模VR中的行为建模主要研究虚拟环境中自治对象建模方法,如游戏中由计算机控制的角色,元宇宙中的人工智能生成的智能体等。早期工作中,行为建模的研究主要在军事仿真领域,如ModSAF、STOW、WARSIM2000等分布式虚拟战场环境中的计算机生成兵力。随着VR研究与应用的发展,行为建模已拓展到公共安全、教育、文化娱乐等众多领域,如应急仿真规划系统(EmergencySimulationProgram,ESP)等。近年来,随着数字孪生和元宇宙等的兴起,各类VR应用对自治对象行为的智能水平提出了越来越高的要求。这一领域属于与人工智能的交叉研究范畴,与生成式人工智能(ArtificialIntelligenceGeneratedContent,AIGC)和应用都有密切的关联,虽进展缓慢但却是未来VR发展的重要关注点。行为建模根据自治对象的类型,可以将行为建模分为个体建模与群体建模两类。其中,群体又有聚合类对象和自治对象组织两类。聚合类对象包括多个个体,但可以使用多种解析度来表示。例如,既可以将其当作整体单一的对象,也可将其看作多个个体。根据具体的事件对群体的影响,可以采用不同的解析度。例如,在考察高温对人群行为的影响时,可以将人群看作一个整体来建模;但在考察火灾对人群行为的影响时,需要采用高解析度来建模不同的个体。聚合体对象行为建模主要内容包括计算模型、多解析度表现方法,以及聚合、解聚规则等。行为建模根据自治对象的类型,可以将行为建模分为个体建模与群体建模两类。其中,群体又有聚合类对象和自治对象组织两类。自治对象组织的行为建模更加复杂。自治对象组织是若干独立存在个体的组织,其中每个个体进行自主决策,同时服从组织的控制。因此,自治对象的行为表现为个体行为和整体组织行为两个层面,不同层面对行为建模的要求不同。常用行为建模方法有限状态自动机自治对象的简单反应性行为可以采用有限状态自动机进行建模。其中,自治对象每种可能的反应动作表示为一个状态,发生的事件控制状态间的转换。采用有限状态自动机是军事仿真中常用的行为建模方法。面向专家系统的建模方法将自治对象看成一个近似的专家系统,将其行为建模看作知识的获取、表示和推理系统建立的过程,比较适合个体和群体的建模。对确定性知识,采用基于逻辑、规则、框架的表示,以及相应的推理系统;对不确定性知识,可采用模糊逻辑、神经网络、基于范例的推理和贝叶斯方法等。此外,还可使用强化学习等方法以提高自治对象的求解复杂问题的能力。基于专家系统的方法基于Agent的建模方法将人工智能中关于Agent的研究引入VR中,适用于个体和群体的行为建模。相较上述方法,基于Agent的建模方法一方面能够描述个体对象的自主性、自治性和智能性等特征,如建模个体对象的信念、意图、愿望等;另一方面Agent之间的通信、协商、协作等可以描述自治对象组织的协作特性。目前,基于Agent的行为建模已得到越来越多的应用。基于Agent的方法3.5虚拟现实建模的特点与评价指标虚拟现实建模的特点由于要实时操控和处理虚拟对象,虚拟现实建模方法与传统计算机辅助设计中以几何造型为主的建模有所不同。例如,在计算机辅助设计中,往往通过增加模型的几何复杂度来提高建模的准确度。但在VR中,更倾向于使用纹理、层次细节等技术来提升虚拟对象的逼真度。虚拟现实建模的内容相较传统计算机图形学中的建模更为丰富,除对虚拟对象的外形、表观、结构等信息进行表征外,还建模了虚拟对象的物理属性、行为属性等,从而为用户提供具有沉浸感的交互体验。虚拟现实建模的特点差异虚拟现实建模计算机辅助设计建模计算机图形学建模特点具有真实感、实时性和交互性,考虑交互性和实现意图;模型细节比较少,可以提高实时性具有准确性,较少考虑实时性和交互性;模型细节较多,可以牺牲实时性来获得较高的精度具有真实感,较少考虑实时性和交互性;模型细节较多,渲染效果可以预先计算用户亲身体验虚拟环境,身临其境,能够交互,无时限限制,可真实详尽地展示能够交互,不考虑沉浸感能够交互,较少考虑沉浸感应用主要用于仿真,需要对用户输入做出反应,如飞行训练、游戏和视景仿真等主要用于工业制造与仿真计算,如机械零件设计、芯片电路仿真等主要用于影视、流媒体、电子游戏等,以预先设计好的演示为主虚拟现实建模评价指标真实感真实感是度量虚拟对象感知精确程度的指标,包括但不限于视觉真实感、触觉真实感等;实时性虚拟现实应用要求虚拟对象或场景的显示帧率不低于某一阈值,否则会影响用户的视觉感知质量;交互延迟虚拟现实应用对交互延迟有高的要求。响应时间太长会大大影响用户的体验;易用性虚拟现实应用对交互延迟有高的要求。响应时间太长会大大影响用户的体验;……3.6几何建模例——点云化简点云化简点云的质量取决于采样密度,然而较大的采样密度往往导致虚拟对象的几何复杂度上升,不利于存储与处理。特别对于存储与计算资源有限的设备,如移动终端,大规模点云往往导致较高的交互延迟,降低了用户的视觉体验。因此,需要引入点云的化简技术对其进行优化。现有点云化简算法迭代法迭代法是指不断的从点云中去掉按某种标准计算的贡献值或误差值最小的点,直到误差或贡献值达到阈值为止,从而得到一个子集作为简化结果。该方法类似于渐近网格的简化方法。这类方法较为简单高效,但是不能保证全局采样点的均匀分布。聚类法是指把输入点集按照一定规则进行聚类,划分成一些小的子集,这些小的子集不能超过给定的上限范围,如直径的大小等。如采用基于采样点层次结构的聚类简化方法,该方法通过空间二分将点集递归地进行划分聚类。也有方法通过PCA找到关键点,然后进行聚类,从而得到保持几何特征的简化结果。这类方法简单且快速,但是误差较大,且因为没有优化策略,所以结果通常会包含很多多余的点。聚类法粒子仿真法是指通过施加点的斥力使点的分布均匀化的方法。该方法首先在表面随机分布需要的粒子数,然后通过点的斥力移动粒子的位置直到达到平衡。该类方法能较好地控制采样密度,但是由于收敛速度较慢,处理大规模数据时效率较低。粒子仿真法上述三类方法在简化过程中,将点云中的点看成单纯几何意义上的点,且不能预先指定逼近误差,因此简化效果往往不能准确表示虚拟对象的结构,并且难以收敛。基于Splats的点云简化方法在简化过程中考虑到点云的绘制图元的几何空间影响,并能用预先指定的全局误差进行控制,得到了较好的简化效果。以常见的点的绘制图元splat为例,首先在指定全局误差下,生成每个采样点的最大splat;然后采用贪心算法选择能覆盖整个表面的最小子集;最后通过全局优化算法使所有的splat均匀分布。基于绘制图元的方法相较上述三类方法能够取到较好的简化结果,但是计算复杂,时间开销较大。改进的算法思想基于MLS和splat的点云化简方法的核心思想是使用MLS投影算子计算splat的中心点,使得splat与其覆盖范围内的原始点云采样的点的子集之间的误差和最小。由此得到一个代表邻域的误差最小的splat。通过上述方法获得的所有splat的中心点的集合,就是一个化简后的点云。整个算法包括两个步骤:首先,为每个原始点云的采样点创建对应的splat集;其次,通过贪心算法选择一组能够覆盖整个模型且数量最小的splat集合。选择标准是循环选取覆盖点数增值最大的splat,直到选择的splat集合能够覆盖所有的输入采样点集。算法实现创建splat集合MLS投影计算splat中心点Splat覆盖区域Splat最小集选择算法算法实现MLS投影计算splat中心点MLS是根据邻域点进行局部多项式逼近的方法,MLS投影表示将点投影到MLS逼近的表面上。对输入点进行MLS投影可以得到代表邻域的误差最小的点,将其作为splat中心点,可以得到误差最小的代表邻域的splat面,从而得到分布更加合理的splats集。算法实现MLS投影计算splat中心点
接下来,使用协方差分析来评估法线,其原理主要基于主成分分析。首先根据待求点𝑥及其邻域点计算其协方差矩阵𝐶,如下所示:
协方差矩阵表示了点邻域内采样点的分布情况,对其进行特征值分析可以评估其局部表面的属性。
算法实现splats覆盖区域获得splat的法线和中心点之后,需要知道每个splat的覆盖面积,这取决于预先指定的全局最大误差阈值。用splat来代表其覆盖的邻域范围,则邻域点中某点的误差即点到splat在法线方向上的距离算法实现splats覆盖区域
算法实现splats最小集选择选择算法的目的是获取能覆盖整个表面的最小splats集。具体地,通过贪心算法不断地选取覆盖点数增值最大的splat,直到选择的splat子集能够覆盖所有的输入采样点。
算法实现splats最小集选择算法
实验结果首先,使用少量的点验证MLS投影的效果,实验结果如图所示。其中,绿色点表示点(蓝色点)的最近20个邻域点,(红色点)是点的MLS投影点。
可看出,MLS投影点比点更适合用来代表的邻域。实验结果接着,在不同几何复杂度的点云上进行了化简实验,化简结果如表所示。可以看出,算法可以有效地化简模型,且计算时间较短。模型输入点数
简化后的点数简化时间(s)bunny35,9450.2477180.1864130.051,559110.023,150100.014,6166santa75,7810.1638760.022,52540horse100,0000.18901110.051,695740.023,459490.015,40643igea134,3450.051,0823290.022,9501220.015,494136armadillo172,9740.29,7372150.116,7292230.0525,764229dragon437,6450.0122,576831实验结果右图展示了化简后的点云的绘制结果。其中,图(a)~图(d)是原始虚拟对象;图(e)~图(h)是使用算法化简后的虚拟对象。可以看出,经过算法化简的点云在点数减少的同时能够保持原始虚拟对象的几何特性。实验结果使用点数规模更大的点云进行了实验。可以看出,算法对于大规模点云同样具有良好的简化效果。实验结果该图展示了不同的全局最大误差阈值对点云化简的绘制效果的影响。其中,图(a)~(c)为基于splat的绘制;图(d)~(f)为基于球的绘制,每个球的半径等于splat的半径。从图中可以看出,所选择的splat子集在不同全局最大误差下均能有效覆盖虚拟对象的表面。3.7物理建模例——虚拟人体运动合成人体骨架系统构建在人体骨架系统构建方面,有两种通用标准,分别是:VRML使用的H-Anim标准MPEG提出的虚拟人体标准H-Anim标准是一种用于描绘拟人动画的3D虚拟人体模型标准。该标准规定虚拟人体由Humanoid、Joint、Segment、Site、Displacer等节点组成。MPEG标准与之不同,在MPEG中,虚拟人体模型由一组节点组成。其中,顶层节点BodyNode至少包括两个子节点:人体的运动参数和表示人体模型定义的参数。人体运动参数包含296个描述虚拟人体骨架拓扑结构的参数,这些参数可被应用于MPEG兼容的虚拟人体几何模型,并生成相同的虚拟人体运动。关节运动描述
关节运动描述为了方便对虚拟人体骨架模型的运动进行描述,一般规定两种坐标系:一种是用于描述根节点位置和朝向的世界坐标系(也称为绝对坐标系),另一种是关节的局部坐标系(也称为相对坐标系)。以下图手臂刚体结构为例,
基于运动图的虚拟人体运动合成所谓运动合成,是指对无序的运动捕获数据进行组织,进而根据需求对其中的若干个数据序列进行某种方式的连接与融合,得到新的运动数据序列。运动图是一种基于图的运动片段组织方式,本质上是由节点和边组成的有向图,其中的“节点”对应于静态的人体骨架系统(也可称为人体姿态),而“边”对应于连接姿态的运动片段。用户通过搜索运动图就能合成出逼真的运动序列。
算法思想基于运动图的交互式运动合成方法首先使用一种基于特征的人体运动捕获数据自动分割方法将原始运动数据进行分割;然后,基于分割的运动数据片段构建运动图;最后,在实时运动控制过程中,利用运动图生成符合环境约束的运动,用户可以实时改变运动轨迹,控制虚拟人体沿着指定的轨迹运动。特别地,在控制虚拟人体沿着新轨迹运动时,采用对路径曲线弧长参数化的方法,求得原始运动在目标轨迹上的位置和朝向,从而将虚拟人体重定位到目标轨迹曲线上,完成路径合成部分。
算法设计算法包含四个模块:虚拟化身物理模型构建模块运动图构建模块交互式轨迹编辑模块虚拟化身运动控制模块算法设计虚拟化身物理模型构建模块将从运动捕捉设备获取的数据存储为ASF/AMC格式,并进行解析。ASF/AMC格式的运动捕获数据文件主要包含两部分。其中,ASF格式文件记录人体骨架数据,AMC格式文件记录运动数据。ASF格式文件给出了人体骨架模型,并设定了初始姿态。ASF格式文件包括捕获系统说明、度量单位、文档描述、根节点信息、关节信息、关节之间的层次结构等6部分。AMC格式文件与ASF格式文件的内容相对应,以帧为单位记录了每一帧中根关节的平移和旋转向量,以及其他各个关节在各个自由度方向上的旋转,在ASF文件中,旋转以欧拉角的形式给出。
算法设计虚拟化身物理模型构建模块从ASF格式数据文件构建虚拟人体的骨架模型所构建的骨架模型包含31个关节点,各个关节点之间采用树形的组织形式;整个人体运动模型有一个根节点,它是整个人体骨骼树结构的根节点。根节点由6个维度构成,分别是三个方向的平移量和三个方向的旋转量,三个方向的平移量决定了该骨骼运动树所表示的人体运动姿态的位置,而三个方向的旋转量决定了该骨骼运动树所表示的人体运动姿态的朝向。其余各个子节均有1到3个自由度,表示在其父节点所表征的局部坐标系下该关节点的旋转。此外,ASF格式文件结构给出了虚拟人体的初始姿态以及各个关节的局部坐标系信息。
算法设计虚拟化身物理模型构建模块从骨架模型构建出虚拟人体的层次树骨架模型中的每个关节点都成为层次树的一个节点。其中,每个节点存储着关节的自由度以及相应的运动描述信息。
算法设计运动图构建运动片段分割。对运动捕获数据进行合理分割是构建运动图的前提和基础。以双足运动为例,将人与环境接触的关键姿态称为关键帧,如双足运动中脚接触地面的时刻,关键帧体现了该运动的运动特征。利用关键帧将运动数据分割为若干个运动片段,为构建运动图提供基础。
首先,计算一只脚(左脚或者右脚)在所有运动数据帧中的全局坐标系下的绝对位置,取脚在高度方向的坐标值;接着,寻找所选脚的第一个关键帧,即开始迈第一步的帧数,选择依据是梯度由负变为正并且当前全局位置在全局最低点位置的10%邻域内;然后,找到所选脚的第二个关键帧,即第一步的最高点的帧数,选择依据是梯度由正变为负并且当前全局位置在全局最高点位置的10%邻域;最后,寻找所选脚的第三个关键帧,即第一步的结束帧,选择依据同第一个关键帧的选取方法。
算法设计运动图构建构建运动图
算法设计交互式轨迹编辑基于所构建的运动图,使用交互式的轨迹编辑来控制虚拟人体的运动合成,从而使之按照预设的轨迹进行平滑运动。具体地,使用Kochanek-Bartels样条函数对虚拟人体的轨迹进行拟合。
在修改虚拟人体运动轨迹的时候,首先调整视点,通过拖动鼠标对轨迹进行编辑;修改轨迹操作完成后,将视点恢复,原始运动轨迹得到修改。
视点调整以后调整运动轨迹
视点还原以后的轨迹示意图
算法设计虚拟化身运动控制在求解虚拟人体在目标轨迹上每一帧的根节点的坐标位置和方向的时候,采用基于轨迹弧长参数化的方法来解决。将虚拟人体的位置以弧长为单位映射到目标轨迹上,使得相同的时间内移动相同的距离,从而保证虚拟人体在目标轨迹上移动的速度与在原始轨迹上的速度一致。当目标轨迹长度与原始轨迹长度不一致的时候,不能保证运动结束在轨迹末端。因此,需要根据目标轨迹长度合成新的运动,使得运动可以进行到轨迹末端,这就需要利用上面生成得到的运动图进行合成。
实验结果运动合成的效果下图展示了运动数据自动分割方法结果。通过对运动捕获数据进行自动分割,得到了四个单位步长的运动数据片段,从左往右依次是左腿跑、右腿跑、左腿走与右腿走。
实验结果运动合成的效果基于上述运动图构建方法,利用自动分割得到的单位步长运动数据片段合成如下运动序列。实验结果交互式制定运动轨迹合成运动已知原始运动捕获数据,通过交互指定运动轨迹使得虚拟人体沿着新轨迹运动
。3.8物理建模例——基于SPH的热带气旋建模算法思想自Lucy和Gingold和Monaghan等分别提出了光滑质点流体动力学(SmoothedParticleHydrodynamics,简称SPH)方法,并且成功地应用于天体物理领域之后,SPH法已经被应用于冲击波模拟、流体动力学、水下爆炸仿真模拟、高速碰撞等材料动态响应的数值模拟等领域。然而,SPH在计算过程中对步长的要求比较苛刻。Miles和Matthias在2013年在设计了PBF(Positionbasedfluid,基于位置的流体)算法,通过求解一组位置约束,从而强制保证不可压缩性。与传统S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度绿色有机蔬菜直销合作供货合同范本3篇
- 2024年标准化焊条供应协议模板版B版
- 2024年甲乙双方合作开发新软件之技术服务合同
- 2025版智能制造股权合作及知识产权保护合同协议范本
- 2024年生活垃圾处理与清运标准协议样式版B版
- 2025年生态农业设施建设用块石采购合同3篇
- 2024年版公司股权转让合同标准格式版B版
- 2024年跨国航空货运代理协议
- 2025版离婚抚养费支付及子女综合素质提升协议书3篇
- 二零二五年城市综合体办公楼租赁合同2篇
- 慈溪市2024-2025学年四上数学期末教学质量检测模拟试题含解析
- 2024-2025学年佛山市南海区六上数学期末达标检测试题含解析
- 2024年浙江省单独考试招生文化课考试数学试卷真题(含答案详解)
- 2025年高考化学二、三轮复习策略讲座
- 2022年高考数学试卷(上海)(秋考)(空白卷)
- 湖南省长沙市2023-2024学年四年级上册期末数学试题
- 山东省济南市语文小升初2024年模拟试题与参考答案
- 装配式建筑复习试题及答案
- 空气动力学仿真技术:湍流模型:k-ε湍流模型原理与应用
- 榛子食品深加工生产项目可行性研究报告-2024年重点项目
- 支撑梁拆除安全协议书
评论
0/150
提交评论