多分辨率LOD模型的简化算法
- 格式:doc
- 大小:691.50 KB
- 文档页数:7
LOD制作流程一、什么是LODLOD(Level of Detail,细节级别)是一种用于优化三维模型性能的技术,它通过在远离相机的地方减少模型的细节程度,从而提高渲染速度。
LOD制作流程指的是制作具有多个细节级别的三维模型的过程。
二、LOD制作的流程概述LOD制作的流程可以分为以下几个步骤:1.确定细节级别划分策略2.创建不同细节级别的模型3.优化模型的顶点数和面数4.生成LOD模型文件5.测试和优化LOD模型性能下面将逐步详细介绍每个步骤。
三、确定细节级别划分策略根据场景需求和性能要求,需要确定细节级别的划分策略。
一般可以根据模型在场景中的远近来划分细节级别,即远离相机的部分使用低细节级别的模型,靠近相机的部分使用高细节级别的模型。
四、创建不同细节级别的模型根据细节级别划分策略,需要创建不同细节级别的模型。
通常会先创建高细节级别的模型,然后逐步减少细节,创建中等和低细节级别的模型。
需要注意的是,不同细节级别的模型在整体外观上应该保持一致。
五、优化模型的顶点数和面数为了提高渲染性能,需要对模型进行优化,减少顶点数和面数。
可以使用多边形减面工具、简化工具等工具来进行模型优化。
在进行优化时需要注意保持模型的整体形状和细节。
六、生成LOD模型文件在完成模型的细节级别划分和优化后,需要将不同细节级别的模型导出为LOD模型文件。
常见的LOD模型文件格式有LODGroup、LODTree等。
在生成LOD模型文件时,需要设置每个细节级别对应的距离范围。
七、测试和优化LOD模型性能完成LOD模型的制作后,需要对其进行测试和优化,以确保渲染性能的提升。
可以通过在不同距离下测试模型的渲染性能,根据性能测试结果对细节级别划分和优化进行调整,以达到最佳的性能和视觉效果。
八、总结LOD制作流程是一种优化三维模型性能的重要方法。
通过确定细节级别划分策略、创建不同细节级别的模型、优化模型的顶点数和面数、生成LOD模型文件以及测试和优化LOD模型性能,可以提高三维模型的渲染效率,提升用户体验。
三维模型减少面数原理三维模型减少面数原理什么是三维模型?三维模型(3D模型)是指用数学方法描述物体外形和内部构造的一种模型。
它可以通过计算机生成,用于虚拟现实、游戏开发、工程设计等领域。
面数的重要性在三维模型中,面数是指构成模型的三角形面片的数量。
面数的多少直接影响到模型的显示效果、计算性能和渲染速度。
较高的面数会增加计算机的负担,导致模型的渲染速度变慢,而减少面数可以提高渲染效率。
为什么需要减少面数?减少三维模型的面数有以下几个原因: 1. 提高性能:减少面数可以减轻计算机的负担,提高模型的渲染速度和交互性能。
2. 降低存储开销:面数越多,占用的存储空间就越大,减少面数可以降低三维模型在存储上的开销。
3. 简化模型:面数过多的模型在某些情况下会显得过于细节丰富,减少面数可以简化模型,使其更易于处理、编辑和观察。
三维模型减少面数的原理减少三维模型的面数可以通过以下原理来实现:基于网格简化方法基于网格简化方法是减少面数的常用方法之一。
它将原始的高分辨率模型通过一系列的优化算法进行简化,以得到低面数的模型。
这些优化算法包括顶点合并、边塌陷和面抽取等操作。
1.顶点合并:将模型中距离很近的顶点合并成一个顶点,从而减少面数。
合并顶点时通常会考虑到模型的形状和曲率,以保证简化后的模型与原始模型的形状尽可能接近。
2.边塌陷:将模型中距离很近的边塌陷成一条边,以减少面数。
边塌陷时需要考虑到边的长度和曲率,以避免模型形状的明显变形。
3.面抽取:通过合并相邻的面来减少面数。
面抽取时需要考虑到模型的光滑度和细节重要性,以保证简化后的模型在视觉上仍然保持合理的质量。
基于LOD技术LOD(Level of Detail)技术是一种将三维模型按照不同的细节级别进行表示和渲染的方法。
通过在不同距离范围内使用不同面数的模型,可以实现在远距离时使用低面数的模型,在近距离时使用高面数的模型,以提高性能和视觉体验。
LOD技术通过在模型的不同部分之间进行过渡和切换,以实现细节级别的平滑切换。
ue5 lod距离UE5 LOD距离是指在虚幻引擎5(Unreal Engine 5)中,用来控制模型细节层次的参数。
LOD(Level of Detail)是一种游戏开发中常用的技术,用于在不同距离下显示不同细节的模型,以提高游戏性能。
在UE5中,LOD距离的设置可以影响游戏中模型的显示效果和性能表现。
LOD距离的设置主要是为了在不同距离下显示不同细节的模型,以达到在远距离观察时减少细节并提高性能的目的。
在游戏开发中,模型的细节包括模型的多边形数量、纹理的分辨率、材质的复杂度等等。
在远距离观察时,由于玩家无法近距离观察模型,因此可以适当地减少模型的细节,以提高游戏的性能。
在UE5中,LOD距离的设置可以通过调整LOD Group的属性来完成。
LOD Group是一种用于管理模型细节层次的组件,它可以控制模型在不同LOD距离下的显示效果。
在LOD Group的属性中,可以设置不同LOD级别的距离范围和显示效果。
一般来说,距离越远的LOD级别,模型的细节越低,性能表现越好。
而距离越近的LOD 级别,模型的细节越高,性能表现越差。
在使用UE5进行游戏开发时,合理设置LOD距离是非常重要的。
如果LOD距离设置过小,会导致在远距离观察时模型细节不足,影响游戏的视觉效果。
而如果LOD距离设置过大,会导致在近距离观察时性能下降,影响游戏的流畅度。
因此,开发者需要根据游戏的需求和目标平台的性能来合理设置LOD距离。
除了在游戏开发中使用LOD距离来提高性能外,LOD距离还可以用于游戏设计中的一些特殊效果。
例如,在开放世界游戏中,可以通过设置LOD距离来模拟远处的景观,以增加游戏的广阔感。
在战争类游戏中,可以通过设置LOD距离来控制远处敌人的细节,以增加游戏的紧张感。
总的来说,UE5 LOD距离是游戏开发中常用的一种技术,用于在不同距离下显示不同细节的模型,以提高游戏性能和视觉效果。
合理设置LOD距离可以在不影响游戏体验的情况下提高游戏的性能,而不合理的设置则可能导致游戏的性能下降或视觉效果不佳。
3dtiles lod原理及实现
LOD也称为层次细节模型,是一种实时三维计算机图形技术,最先由Clark于1976年提出,其工作原理是:视点离物体近时,能观察到的模型细节丰富;视点远离模型时,观察到的细节逐渐模糊。
系统绘图程序根据一定的判断条件,选择相应的细节进行显示,从而避免了因绘制那些意义相对不大的细节而造成的时间浪费,同时有效地协调了画面连续性与模型分辨率的关系。
在3DTiles LOD原理实现过程中,视点离物体近时,能观察到的模型细节丰富;视点远离模型时,观察到的细节逐渐模糊。
通过采用不同的LOD层次表现物体的远近,能够减少不必要的细节,在不影响视觉效果的情况下降低了数据量。
在实际应用中,为了实现超大场景的三维模型3DTiles格式顶层构建,并实现快速整体展现,通常需要完成以下几个步骤:- 数据预处理:对原始三维场景数据进行预处理,包括数据格式转换、网格简化、纹理压缩等操作。
这些操作可以减小数据体积,减少加载和渲染时间。
- 场景切割:将整个场景按照地理位置或功能进行切割,并生成3DTiles格式的数据。
切割后的数据可以根据优先级动态加载,以实现快速整体展现。
- 顶层构建:在切割后的数据中,选择其中一个区域作为顶层构
建,该区域包含整个场景的概览信息。
通过对该区域进行高精度建模、纹理映射等操作,能够生成高质量的3DTiles格式的顶层构建数据。
- 加载与渲染:通过前端JavaScript库(如CesiumJS、three.js等)加载并渲染3DTiles格式的数据。
在加载时,采用基于LOD的策略,只加载当前视点附近的数据,并根据观察距离和角度调整显示的精度,从而提高整体展现效率。
LOD(Level of Detail)细节层次模型是一种用于描述三维模型细节的方法。
它将一个三维模型分成多个层次或细节级别,每个级别代表了不同的模型精度或细节程度。
在细节层次模型中,模型的每个层次都包含一些特定的几何数据,例如顶点坐标、法线向量和纹理坐标等。
细节层次模型主要包含以下几个层次:最低层次(Lowest Level):最低层次包含最基本的模型信息,通常是一个简化的模型,只包含少量的顶点和面片。
这个层次的模型通常用于在远处和低分辨率情况下呈现,以提高渲染的效率。
中间层次(Intermediate Levels):中间层次包含更多的模型细节和精度,比最低层次更加复杂。
这些层次的模型通常用于近距离观察和中等分辨率情况下的渲染,以提高模型的真实感。
最高层次(Highest Level):最高层次包含模型的全部细节和精度,包括每个顶点的具体位置和法线方向等信息。
这个层次的模型通常用于特别近距离观察和高分辨率情况下的渲染,以获得最大的真实感和细节展现。
在渲染过程中,根据需要调整模型的细节级别,以在不同的视图和渲染环境中获得最佳的表现。
这种层次化的细节管理方式可以提高渲染的效率,同时保证模型在不同情况下都具有逼真的外观。
一种简单、快速、高效的多边形减面算法-回复这个主题,我将为大家介绍一种简单、快速和高效的多边形减面算法。
在计算机图形学中,多边形的减面是对多边形进行细分,以减少多边形的数量,从而提高渲染和图形处理的性能。
减面算法可以应用于多种应用领域,如计算机游戏开发、科学可视化以及计算机辅助设计等。
1. 什么是多边形减面算法?多边形减面算法是一种将复杂的多边形网格转换为简化的网格的过程。
简化后的网格由较少数量的多边形组成,这样可以减少计算和渲染的负担。
减面算法主要通过删除多边形的一些顶点或边,来达到减少多边形数量的目的。
减面算法通常会尽量保持原始模型的形状和外观,同时保证性能的提升。
2.为什么要使用多边形减面算法?多边形减面算法对于大规模多边形网格的处理非常有用。
当处理复杂的三维模型时,由于多边形数量的增加,计算和渲染的时间复杂度也会增加。
减面算法可以将多边形的数量减少到更合理的范围内,从而提高计算和渲染的效率。
此外,在一些特定的应用场景中,如虚拟现实和实时交互式应用程序中,减面算法能够帮助提高实时性能和响应速度。
3. 常见的多边形减面算法有哪些?常见的多边形减面算法有多种,如简化网格、三角化和LOD(Level ofDetail)等。
简化网格算法通过不断地合并相邻的多边形,以降低网格的复杂度。
三角化算法将多边形网格转化为由三角形组成的网格,从而减少了多边形的数量。
LOD算法根据观察者的距离和视野来选择性地显示模型的不同细节级别,以达到减少多边形数量的目的。
4. 简单、快速和高效的多边形减面算法是什么?在这篇文章中,我们将介绍一种简单、快速和高效的多边形减面算法,即迭代减面算法。
迭代减面算法是一种基于简化网格的思想,通过迭代地合并相邻的多边形,以减少整个网格的数量。
该算法具有以下步骤:步骤1:初始化首先,将原始的多边形网格加载到算法中,并计算每个多边形的面积。
将所有多边形存储在一个数据结构中,如有向图或半边数据结构。
基于四叉树的视点相关LOD地形仿真算法研究雷军环;曾凡喜;吴名星【摘要】针对大地形的实时显示问题,研究了基于四叉树的视点相关LOD地形算法,提出了基于最小二乘法的粗糙度求取算法,并在此基础上建立了有效的基于块的节点简化准则,通过该准则提出了消除T型裂缝、解决地形突起现象的方法,实现了精简网格而必要的细节没有损失.仿真实验证明该方法能够能够流畅连贯的实现大地形的实时绘制.【期刊名称】《制造业自动化》【年(卷),期】2010(032)008【总页数】5页(P211-214,228)【关键词】LOD;地形绘制;四叉树【作者】雷军环;曾凡喜;吴名星【作者单位】长沙民政学院,计算机系,长沙,410004;中南大学,计算机与科学系,长沙,410007;空军工程大学,理学院,西安,710061;长沙民政学院,计算机系,长沙,410004【正文语种】中文【中图分类】TP3910 引言当要求可视化的地形过大,那么同时处理的信息量就比较大,怎样实现精简网格数据而又不影响显示质量,实现对大规模地形实时显示也是一个难点问题。
细节层次模型(Level of Detail)等技术的应用便成为解决这一难题的有效技术途径层次。
细节(LOD)技术[1]是一种符合人的视觉特性的技术。
采用LOD技术来绘制地形,在不降低表现效果的前提下,可以尽量减少三角形的数目,大大提高图形绘制效率,实现地形的实时交互可视化。
近十几年来,国内外大批学者致力于LOD地形模型的研究,促进了LOD地形模型的发展,Lindstrom等人于1996年提出了基于四叉树连续细节层次模型(Continuous Level of Detail)的构建算法[2],是基于规则格网类的具有代表性的研究成果之一。
Duchaineau等人于1997年提出的自适应优化网格算法(Real-time Optimally Adapting Meshes)是另一种有显著影响的算法[3]。
lod制作流程LOD制作流程:LOD(Level of Detail)是一种优化模型质量和性能的方法。
在游戏和其他计算机图形应用程序中,LOD允许不同细节级别的模型更改,从而在不影响画面质量的情况下提高性能。
以下是LOD制作流程的具体步骤:1. 模型创建可使用任何3D建模工具(例如Maya、Max、Blender等)创建模型。
在此过程中,要考虑到最高细节级别(LOD0),并将该级别导出为.obj或.fbx格式。
2. 导入并制作LOD导入模型后,使用LOD生成工具来制作不同级别的模型。
这些工具允许您轻松制作模型的低分辨率版本,并将其保存在不同的LOD层次结构中。
常见的LOD级别是LOD0到LOD3,其中LOD3是最低分辨率。
3. 细节层级和多边形减少制作每个LOD时,需考虑尽可能减少多边形数量,同时保持足够的准确性。
为此,可以使用多边形减少工具,例如Simplygon或Unity中的ProBuilder。
在减少多边形数量时,需要注意不要使细节丢失太多,最好是通过手动调整保留细节来实现。
4. 设置纹理细节可以设置不同LOD级别的纹理。
通常,较高级别的LOD会使用高分辨率纹理,而较低级别的LOD会使用低分辨率纹理。
这样可以保持画面质量,同时降低显存使用量,提高性能。
5. 技术细节在LOD制作过程中,还需要注意以下技术细节:- 使用正确的距离和画面面积来过渡不同LOD之间的模型。
- 考虑LOD的渲染顺序以最大程度地提高性能。
- 在LOD切换时,要避免不必要的变形。
总结LOD制作是一种必要的技术,在游戏和其他计算机图形应用程序中广泛应用。
通过适当的LOD制作流程,可以实现画面质量和性能的平衡。
最终的目标是提供最佳的用户体验,同时在不影响帧率和画面质量的情况下,提高程序的性能。
LOD技术概述:虚拟现实中场景的生成对实时性要求很高,LOD技术是一种有效的图形生成加速方法。
本文主要介绍了LOD技术的研究内容、LOD模型的生成算法以及LOD模型在虚拟场景生成中的选择。
最后,对LOD技术未来的研究方向作了展望。
一、引言虚拟现实技术是一种逼真地模拟人在自然环境中视觉、听觉、触觉及运动等行为的人机交互技术。
它融合了计算机图形学、多媒体技术、人工智能、人机接口技术、数字图像处理、网络技术、传感器技术以及高度并行的实时计算技术等多个信息技术分支。
它的主要特征是沉浸感、交互性和想象力。
它的要害技术包括:环境建模技术、立体声合成和立体显示技术、触觉反馈、交互技术、系统集成技术。
虚拟现实中最重要的是人可以在随意变化的交互控制下感受到场景的动态特性,也就是虚拟现实系统要求随着人的活动即时生成相应的图形画面。
有两种重要指标衡量用户对虚拟环境的沉浸效果和程度:一是动态特性,自然的动态特性要求每秒生成和显示30帧图形画面,至少不能少于10帧,否则将会产生严重的不连续和跳动感。
另一个指标是交互延迟,系统的图形生成对用户的交互动作做出反应的延迟时间不应大于0.1秒,最多不能大于1/4秒。
以上两种指标均依靠于系统生成图形的速度。
显而易见,图形生成速度是虚拟现实的重要瓶颈。
图形生成的速度主要取决于图形处理的软硬件体系结构,非凡是硬件加速器的图形处理能力以及图形生成所采用的各种加速技术。
虽然现今的图形工作站得益于高速发展的CPU和专用图形处理器性能得到很大的提高,但距离VR的需求仍有相当大的差距。
考虑到VR对场景复杂度几乎无限制的要求,在高质量图形的实时生成要求下,如何从软件着手,减少图形画面的复杂度,已成为VR 图形生成的主要目标。
1976年,Clark[1]提出了细节层次(LevelsofDetail,简称LOD)模型的概念,认为当物体覆盖屏幕较小区域时,可以使用该物体描述较粗的模型,并给出了一个用于可见面判定算法的几何层次模型,以便对复杂场景进行快速绘制。
lod渲染规则LOD渲染规则LOD(Level of Detail)渲染是一种在计算机图形学中常用的技术,用于根据观察者的距离和角度,动态地调整模型的细节级别,以优化渲染性能。
在本文中,我们将介绍LOD渲染规则的原理和应用。
一、LOD渲染的原理1.1 距离判断LOD渲染的核心思想是根据观察者与模型的距离来决定显示的细节级别。
通常,观察者与模型的距离越近,显示的细节级别越高;反之,距离越远,显示的细节级别越低。
这样可以保证在远处观察模型时,不浪费计算资源来渲染不必要的细节。
1.2 角度判断除了距离外,观察者与模型之间的角度也是LOD渲染的考量因素之一。
当观察者的角度与模型接近垂直时,需要显示更多的细节;而当观察者的角度与模型接近水平时,可以显示较低级别的细节。
这样可以在不同的观察角度下提供更好的渲染效果。
二、LOD渲染的应用2.1 游戏开发在游戏开发中,LOD渲染是一种常见的优化技术。
通过动态地调整模型的细节级别,可以在保证画面质量的同时提高渲染性能,使游戏更加流畅。
特别是在大型开放世界游戏中,LOD渲染可以减轻GPU的负担,提高帧率,提供更好的游戏体验。
2.2 虚拟现实在虚拟现实应用中,LOD渲染同样发挥着重要的作用。
通过根据用户的视觉焦点来调整模型的细节级别,可以提高虚拟现实环境的真实感。
当用户聚焦于某个物体时,系统可以动态地增加该物体的细节级别,使其更加逼真。
而当用户的视线离开时,系统又会自动降低细节级别,以提高渲染效率。
2.3 建筑设计LOD渲染在建筑设计领域也有广泛的应用。
在建筑模型的渲染过程中,根据观察者与模型的距离和角度,系统可以自动调整显示的细节级别。
这样可以在建筑设计过程中提高效率,减少不必要的计算开销。
同时,在展示建筑模型时,LOD渲染可以提供更好的视觉效果,使观众更好地理解设计意图。
三、LOD渲染的实现方式3.1 几何LOD几何LOD是一种常用的LOD渲染实现方式。
它通过控制模型的顶点数量和面片数量来实现细节级别的调整。
obj通过lod处理生成3dtiles的思路
通过LOD(Levels of Detail)处理将OBJ模型生成3D Tiles的思路大致如下:
模型拆分:首先,将原OBJ模型通过网格划分拆分为多个子模型。
拆分的难点可能包括如何将单个纹理拆分为多个纹理、纹理的重组以及UV坐标的重新计算。
LOD数据处理:接下来,对拆分后的网格模型进行LOD数据处理。
处理方式可以采用四叉树原则,主要对步骤1处理的模型进行分级,减面和模型四叉树拆分。
生成b3dm格式数据:然后,对每一级得出的数据生成对应的
b3dm格式的模型数据。
b3dm是一种用于存储3D模型的格式。
生成tileset.json文件:接着,遍历所有生成的模型数据文件,生成一个tileset.json文件。
这个文件用于描述3D Tiles的层级结构和元数据。
数据验证:最后,使用Cesium Git项目的分支3d-tile来检验生成的3D Tiles数据的正确性。
经过实践验证,这个思路是可行的。
通过这种方式,可以生成多级别的3D Tiles,以便在不同的视距和细节层次上显示模型,从而提高渲染效率和视觉效果。
lod数据建模标准"Lod" 通常指的是"Level of Detail",在计算机图形学和虚拟现实中,它是一种用于描述模型的细节层次的概念。
LOD 数据建模标准是为了在不同的距离或观察条件下优化性能和资源利用而制定的一组规则和标准。
以下是一些LOD 数据建模的常见标准:1.层次结构:LOD 模型通常是按照层次结构建模的,从粗糙的表示到细节的表示。
这种层次结构可以是树状的,每个节点代表不同层次的细节。
2.距离切换:LOD 模型应该根据观察者的距离切换不同层次的细节。
在远处,可以使用较低层次的模型,而在接近时则需要更高层次的细节。
3.性能优化:LOD 模型的目标是提高性能,因此在设计时应该考虑到渲染和计算的效率。
这可能涉及减少多边形数量、使用纹理映射等优化技术。
4.平滑过渡:切换不同层次的细节时,应该确保过渡是平滑的,以避免在切换时出现明显的跳跃或闪烁。
5.适应性:LOD 模型应该能够适应不同的硬件和性能要求。
这意味着在不同设备上或在不同性能水平上都能够提供合适的细节层次。
6.动态LOD:一些LOD 模型是动态的,可以根据运行时条件进行调整。
例如,根据屏幕上的对象数量和距离来动态调整LOD。
7.数据格式标准:使用标准的数据格式,以便不同软件和平台能够正确解释和渲染LOD 模型。
8.文档和元数据:为LOD 模型提供详细的文档和元数据,以便开发人员能够理解模型的结构、细节层次和如何有效使用它。
这些标准可以根据特定应用和场景的要求而有所不同。
在游戏开发、虚拟现实、模拟等领域,LOD 数据建模标准是优化性能和资源利用的关键因素之一。
多分辨率LOD模型的简化算法
摘要:对HOPPE视区裁剪算法中包围球的建立方法进行了改进,提出一种基于视角变化和LOD技术的视区动态包围球裁剪算法。
使用该算法构造基于TIN 地形的多分辨率LOD模型,避免了节点误判及大量无谓的节点分解计算,提高了实时漫游地形建模速度。
关键词:地形可视化;HOPPE算法;TIN地形;LOD模型;简化
1引言
地形是人类社会赖以生存并从事一切实践活动的根基。
地形可视化技术是计算机图形学的一个重要应用领域
和研究方向,一直是人们的研究热点。
在图形三维显示中,往往采用不规则三角网(TIN:Triangulated Irregular Network)表示地形表面,如图1。
地形漫游建模的特点:准确性。
观察者能根据某一时刻,所观察到的部分地形,判断其在整张地形图中的位置。
要求生成的模型要在一定的视觉误差范围内;真实性。
地形表面模型的生成应根据相对观察者视点的远近,给予多分辨率,距离视点远的分辨率低,距离视点近分辨率高。
目前,基于当前计算机硬件的发展现状,对于实现具有特征的大数据量地形实时漫游,既要保持视觉效果,又要提供较高的刷新频率,仍是一大难题。
从建模的角度来解决大数据量地形的实时显示问题,是目前解决这个问题的重要方法[1]。
其中,构造、简化地形表面的多分辨率LOD模型是一个非常重要的手段。
细节层次模型(Layer of Details,LOD)是一种表达多种不同精度水平的数字高程模型。
LOD技术利用人眼的视觉冗余特性,按照视线方向和距离视点的远近及地物本身的复杂程度不同,对地形场景的不同部分采用不同程度的细节层次进行描述。
这种描述方法,不仅符合人眼的视觉观察特性,更大大的减小的地形绘制过程中需要处理的三角形数量,加速了地形的实时绘制速度。
本文主要对TIN地形进行视区裁剪时,常使用的HOPPE算法进行改进,提出一种基于视角变化和LOD技术的视区动态包围球裁剪算法。
使用该算法构造基于TIN地形的多分辨率LOD模型,避免了节点误判及大量无谓的节点分解计算,提高了实时漫游地形建模速度。
2HOPPE算法
观察者在漫游大规模TIN地形时,只看到视区内的部分地形,因此需要对TIN地形进行视区裁剪。
当处理的数据量很大时,会消耗大量的处理时间,导致渲染的速度非常慢,一般处理复杂地形景观在裁剪上花掉的时间大约占整个处理时间的1/3。
因此,一个适合与地形实时动态裁剪算法,对于地形表面模型的建立和实时漫游都是意义重大的。
常见的裁剪方式有点的裁剪、区域裁剪。
在计算机图形学中,常选用包围球作为区域进行裁剪[2],例如HOPPE包围球算法。
选取需判断的TIN地形上某一节点作为球心,设置足够大的半径建立球体,将地形节点完全包围在球体只内,如图2。
利用球体作为包围盒,计算球体的中心和6个裁剪平面的距离(d)时,如果这些距离都大于球体的半径(r),则地形在视图体之外;否则,该地形在视图体之内;如果这些距离不都大于球体的半径,则该地形和视图体相交。
其基本原理可如图3所示:
如上图所示,V0表示地形完全在视图体之外,直接判断,不需要进行地形各节点绘制;V1表示地形完全在视图体之内,直接判断,标注其所有节点在视区之内;对于V2,表示地形与视图体相交,一部分处于视图体之内,一部分处于视图体之外,那么需要对地形进行可视区或可见性裁剪,即对地形进行分解操作,以判断哪一部分节点处于视图体之内,哪一部分节点处于视图体之外。
Hoppe采用包围球算法,该算法建立的包围球夸大了节点占据的空间,因此往往会认为实际上位于视区之外的节点也与视区相交,造成了节点误判,如图4(V1为误判节点)。
另外,视点移动或者方向的改变都会引起视觉上节点分辨率的改变,因此,为避免接边裂缝的产生,需要对分辨率发生变化的节点进行快速有效的判断,进而对这部分节点进行重新构网,建立包围球。
3改进的简化算法
本文提出的改进算法基于LOD技术,依据观察视角的变化,构造地形节点包围球[3],将包围球随视角的变化反映为包围球半径在投影平面上的投影的变化。
其原理如图5所示:
图5中,地形节点包围球半径为r,球心O与视点的距离为d,视角为θ,O’为视点在投影面上的投影点,视点与投影平面的距离为z0,包围球半径在投影平面上的投影为r’,则r’=r’z0/d,且tanθ/2=r’/z0。
由于球体的特性,那么只要判断球体内各地形节点点坐标,若|x|r’或|y|>r’,则位于视图体外。
基于视角的地形节点包围球的建立就是上述思想的逆向。
首先根据视角θ
与视点到投影面的距离z0,求得视角θ的视野范围的半径r’,此即为将要建立的地形节点包围球半径r在投影面上的投影,由上述的公式即可求得r的大小。
如果知道了分辨率等级,那么可以构建相应得视图体和地形节点包围球。
如图6所示:
图6中,z0为视点到投影平面的距离,V0、V1为两个地形节点包围球,半径分别为r0、r1,球心分别为O0、O1,视点到O0、O1的距离分别为d0、d1,r0、r1在投影平面上的投影分别为r0’、r1’,易知,r0’= r0·z0/d0 ,r1’’= r1·z0/d1·r1。
基于此种方法,建立的节点包围球投影如图7所示:
图7中,表示了两个节点包围球在XOY上的投影,O为视点在投影面的投影点,节点包围球在XOY平面上的投影为两个同心圆,r0’、r1’分别为其圆的半径,L0和L1分别表示两级分辨率。
由于视角的变化,视图体和地形节点包围球都是根据视角变化动态建立的,不同包围球内的节点分辨率也不同。
根据上述分析,当|x|<r0且|y|<r0,则节点分辨率为L0,当r0<|x|<r1且r0<|y|<r1,则节点分辨率为L1,其中r0、r1分别为r0’、r1’所对应的地形节点包围球半径。
采用此种方法,视图体裁剪与LOD构造同时进行,这样就避免了在判断节点与视图体
空间位置关系时可能造成的误判,极大地减小了地形实时绘制时的计算量。
4实验结果分析
4.1实验环境
利用OpenGL 在P4 1.6G,512M DDR,Windows 2000,VC6.0环境中进行检测实验。
4.2实验目的
对比采用改进算法实时建模和HOPPE算法建模速度,如表1。
本算法利于快速建立大型TIN地形的多分辨率LOD模型。
在此基础上,还可进一步简化,较好地反应运动中地形表面的变化趋势,解决不同层次网格边界出现裂缝问题,鉴于篇幅,不再详述。
参考文献:
[1]杜莹.大规模场景中多分辨率地形TIN模型.测绘学院学报,2005(2).
[2]王宏武.球面线要素的多分辨率实时简化方法.地理信息世界,2008(2).
[3]陈园园.基于视点相关的大规模地形的生成和漫游.贵州工业大学学报(自然科学版),2005(5).。