一种三维场景下视觉相关的模型渐进渲染方法

文档序号:6545679阅读:268来源:国知局
一种三维场景下视觉相关的模型渐进渲染方法
【专利摘要】本发明公开了一种三维场景下视觉相关的模型渐进渲染方法,其主要思路是按照视点和目标的距离,计算视觉相关因子,对模型几何数据和纹理数据进行LOD渲染,采用异步策略和视点相关的排序算法,对模型的渲染过程进行控制,以解决现有大规模三维模型渲染速度慢、占用内存和显存等系统资源过大、渲染面片数量过多、渲染不流畅、视觉突变、效率低下等一系列问题。
【专利说明】一种三维场景下视觉相关的模型渐进渲染方法
【技术领域】
[0001]本发明涉及一种模型渐进渲染方法,尤其涉及一种三维场景下视觉相关的模型渐进渲染方法。
【背景技术】
[0002]在三维场景中,模型用来表现空间实体。三维场景中的模型数据,一般包括几何数据(面片数据)和纹理材质数据(贴图、颜色等),面片数据体现模型的形状,纹理材质数据则使得模型表面更加真实和生动。
[0003]随着卫星遥感技术、航天摄影技术、激光扫描技术和人工建模技术的不断发展,三维模型数据的生产规模越来越大,虚拟现实系统、数字城市、和三维GIS系统要展示的模型数量也越来越多。传统的三维可视化系统,存在着诸多的缺陷:1、数据在系统启动的时候全部加载进来,导致等待时间过长甚至因为超过系统的吞吐能力而无法完成;2、渲染时根据当前场景的需要采用同步加载策略对模型的几何数据和纹理数据进行加载,导致渲染不流畅,容易出现卡顿现象;3、如果采用了异步加载策略,但是将最详细的数据一次加入到系统中,导致显存和显卡的计算资源消耗太大,渲染的面片数量太多,渲染效率低;4、在对模型的加载和渲染过程中,没有对需要加载的数据进行排序,导致加载效率低下;5、没有对模型的纹理和面片数据进行预处理,无法减少模型渲染对显卡、内存的资源损耗;6、有多级显示,但未考虑渐变显示,显示突变,不够柔和。

【发明内容】

[0004]为了解决上述技术所存在的不足之处,本发明提供了一种三维场景下视觉相关的模型渐进渲染方法。
[0005]为了解决以上技术问题,本发明采用的技术方案是:一种三维场景下视觉相关的模型渐进渲染方法,其特征在于:其渲染方法的具体实施步骤如下:
[0006]1、开始渲染模型,首先对所有的三维模型数据进行分析,根据每个模型的中心点坐标和模型的几何体数据进行视口过滤,判断模型是否在当前可视区域内,如果不在当前可视区域直接从渲染队列中剔除;如果在当前可视区域内,那么根据当前场景的视点,计算模型的视觉相关因子α ;
[0007]2、对于每个三维模型计算得到视觉相关因子α,判断是否达到当前场景的可视化指标要求;如果没有达到指标要求,那么把该模型从待渲染队列中剔除;如果三维模型的视觉相关因子达到当前场景的可视化指标要求,那么根据视觉相关因子α计算当前模型的LOD级别m:
[0008]3、判断第m级模型数据是否已经加载,如果没有加载,那么把当前模型的m级LOD几何数据送入加载线程等待加载;
[0009]4、根据视点距离和级别对待加载模型进行排序计算,得到一个模型的优先级队列;按照优先级从文件中读取第m级模型几何数据;[0010]5、在第m级模型数据加载完成后,根据视觉相关因子α获取纹理分辨率β并计算纹理分辨率β ;
[0011]6、由纹理分辨率β和视觉相关因子α计算当前场景需要的纹理LOD级别δ ;
[0012]7、判断当前场景中δ级纹理数据是否已经加载,如果没有加载,那么送入纹理加载线程等待加载;下一步根据视点距离和级别对要读取的纹理进行排序;下一步异步加载线程按照排序结果先后从文件中读取第S级纹理数据;
[0013]8、如果δ级纹理数据已经加载完成,那么将m级模型数据和δ级纹理数据送入显卡准备渲染;
[0014]9、根据纹理和几何数据加载情况设置透明度在显卡中进行渲染,以达到渐变三维渲染效果;
[0015]10、渲染结束。
[0016]本发明采用视觉相关的模型几何数据和纹理数据LOD评价、加载、渲染,以及视觉相关的排序及异步加载方法,保证了视域内距离近的模型优先加载,清晰度更高,距离远的模型延迟加载,精度低,从而有效地解决现有大规模三维模型渲染过程中数据加载缓慢、占用内存和显存等系统资源过大、渲染面片数量过多、渲染不流畅、突变、效率低下等一系列问题。
【专利附图】

【附图说明】
[0017]图1为本发明的模型渲染流程图。
【具体实施方式】
[0018]下面结合附图和【具体实施方式】对本发明作进一步详细的说明。
[0019]如图1所示,其渲染方法的具体实施步骤如下:
[0020]1、开始渲染模型,首先对所有的三维模型数据进行分析,根据每个模型的中心点坐标和模型的几何体数据进行视口过滤,判断模型是否在当前可视区域内,如果不在当前可视区域直接从渲染队列中剔除;如果在当前可视区域内,那么根据当前场景的视点,计算模型的视觉相关因子α ;
[0021]2、对于每个三维模型计算得到视觉相关因子α,判断是否达到当前场景的可视化指标要求;如果没有达到指标要求,那么把该模型从待渲染队列中剔除;如果三维模型的视觉相关因子达到当前场景的可视化指标要求,那么根据视觉相关因子α计算当前模型的LOD级别m:
[0022]3、判断第m级模型数据是否已经加载,如果没有加载,那么把当前模型的m级LOD几何数据送入加载线程等待加载;
[0023]4、根据视点距离和级别对待加载模型进行排序计算,得到一个模型的优先级队列;按照优先级从文件中读取第m级模型几何数据;
[0024]5、在第m级模型数据加载完成后,根据视觉相关因子α获取纹理分辨率β并计算纹理分辨率β ;
[0025]6、由纹理分辨率β和视觉相关因子α计算当前场景需要的纹理LOD级别δ ;
[0026]7、判断当前场景中δ级纹理数据是否已经加载,如果没有加载,那么送入纹理加载线程等待加载;下一步根据视点距离和级别对要读取的纹理进行排序;下一步异步加载线程按照排序结果先后从文件中读取第S级纹理数据;
[0027]8、如果δ级纹理数据已经加载完成,那么将m级模型数据和δ级纹理数据送入显卡准备渲染;
[0028]9、根据纹理和几何数据加载情况设置透明度在显卡中进行渲染,以达到渐变三维渲染效果;
[0029]10、渲染结束。
[0030]上述实施方式并非是对本发明的限制,本发明也并不仅限于上述举例,本【技术领域】的技术人员在本发明的技术方案范围内所做出的变化、改型、添加或替换,也均属于本发明的保护范围。
【权利要求】
1.一种三维场景下视觉相关的模型渐进渲染方法,其特征在于:其渲染方法的具体实施步骤如下: (1)、开始渲染模型,首先对所有的三维模型数据进行分析,根据每个模型的中心点坐标和模型的几何体数据进行视口过滤,判断模型是否在当前可视区域内,如果不在当前可视区域直接从渲染队列中剔除;如果在当前可视区域内,那么根据当前场景的视点,计算模型的视觉相关因子α ; (2)、对于每个三维模型计算得到视觉相关因子α,判断是否达到当前场景的可视化指标要求;如果没有达到指标要求,那么把该模型从待渲染队列中剔除;如果三维模型的视觉相关因子达到当前场景的可视化指标要求,那么根据视觉相关因子α计算当前模型的LOD级别m ; (3)、判断第m级模型数据是否已经加载,如果没有加载,那么把当前模型的m级LOD几何数据送入加载线程等待加载; (4)、根据视点距离和级别对待加载模型进行排序计算,得到一个模型的优先级队列;按照优先级从文件中读取第m级模型几何数据; (5)、在第m级模型数据加载完成后,根据视觉相关因子α获取纹理分辨率β并计算纹理分辨率β ; (6)、由纹理分辨率β和视觉相关因子α计算当前场景需要的纹理LOD级别δ; (7)、判断当前场景中δ级纹理数据是否已经加载,如果没有加载,那么送入纹理加载线程等待加载;下一步根据视点距离和级别对要读取的纹理进行排序;下一步异步加载线程按照排序结果先后从文件中读取第S级纹理数据; (8)、如果δ级纹理数据已经加载完成,那么将m级模型数据和δ级纹理数据送入显卡准备渲染; (9)、根据纹理和几何数据加载情况设置透明度在显卡中进行渲染,以达到渐变三维渲染效果; (10)、渲染结束。
【文档编号】G06T15/00GK103927781SQ201410187408
【公开日】2014年7月16日 申请日期:2014年5月6日 优先权日:2014年5月6日
【发明者】贾庆雷, 马柳青 申请人:苏州中科图新网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1