首页 / 专利库 / 图形技术 / 抗锯齿 / 一种倾斜摄影建模数据在沉浸式显示设备中的应用方法

一种倾斜摄影建模数据在沉浸式显示设备中的应用方法

阅读:280发布:2020-05-13

专利汇可以提供一种倾斜摄影建模数据在沉浸式显示设备中的应用方法专利检索,专利查询,专利分析的服务。并且本 发明 属于计算机技术领域,公开了一种倾斜摄影建模数据在沉浸式显示设备中的应用方法,具体步骤为:根据飞行模拟机视景系统平台架构设计倾斜摄影数据生成调度模 块 ,建立全景绘制平台 软件 结构;利用全景视景实时生成技术对海量倾斜摄影模型进行预处理,通过纹理映射技术构建视景生成内容;视景内容通过快速近似 抗锯齿 算法 进行改进并作 图像处理 。本发明预处理和纹理映射技术的组合可以很好的解决大规模自然场景在沉浸式显示设备中实时调度引起的延迟或卡顿问题,提高视景图像 分辨率 的同时进行快速近似抗锯齿处理极大地改善了视景内容的 质量 。,下面是一种倾斜摄影建模数据在沉浸式显示设备中的应用方法专利的具体信息内容。

1.一种倾斜摄影建模数据在沉浸式显示设备中的应用方法,其特征在于,所述的倾斜摄影建模数据在沉浸式显示设备中的应用方法具体包括以下步骤:
步骤一:根据飞行模拟机视景系统平台架构设计倾斜摄影数据生成调度模,建立全景绘制平台软件结构;
步骤二:利用全景视景实时生成技术对海量倾斜摄影模型进行预处理,通过纹理映射技术构建视景生成内容;
步骤三:视景内容通过快速近似抗锯齿算法进行改进并作图像处理
步骤四:在最后一个渲染通道,将需要渲染的图片作为输入,输出为抗锯齿处理之后的结果图片;
步骤五:采用双线性过滤,利用像素周围四个临近的邻居像素点作双线性插值;求平均结果作为最终的纹理采样值,使得像素之间的过渡更加平滑;
步骤六:判断需要平滑的边缘像素;计算当前片段以及和它直接相邻的四个邻居的亮度值,从而获取最大亮度值以及最小亮度值,相减即可获取亮度对比差值;边缘的亮度对比差值应该相对比较大;如果亮度差值超过了预设的阈值,执行平滑处理;
步骤七:检测出来的边缘像素,通过比较平与垂直梯度差距结果确定该边缘是水平方向还是垂直方向;
步骤八:检测出来的边缘像素,判断该边缘是位于像素的哪一面;针对当前像素,计算该像素所有面的梯度变化,梯度差值最大的地方就是边缘的边界;
步骤九:沿着边缘所在轴线作边缘边界探索;同时在两个方向上以一个像素为单位探索间隔进行,计算新坐标点对应的像素亮度,与上一步计算得出的平均本地亮度进行对比;
如果变化大于亮度梯度变化阈值,那么判断为探索到了对应方向的边缘边界,否则,继续增加偏移量继续探索;
步骤十:通过两个方向分别抵达的坐标来计算距离,并且找到最近的端点并得到最近端点占整个边缘长度的比值;
步骤十一:根据垂直于边缘的方向进行偏移纹理坐标并进行纹理数据读取,实现反走样。
2.如权利要求1所述的倾斜摄影建模数据在沉浸式显示设备中的应用方法,其特征在于,所述步骤二中,当头部发生转动时,根据头部位置的方向和度直接获取对应的视景内容。
3.如权利要求1所述的倾斜摄影建模数据在沉浸式显示设备中的应用方法,其特征在于,所述步骤十中,通过步骤十估算目前像素是位于边缘的中间部位还是距离某个端点比较近,距离某个端点越近,最后得到的纹理坐标偏移量越大。

说明书全文

一种倾斜摄影建模数据在沉浸式显示设备中的应用方法

技术领域

[0001] 本发明属于计算机技术领域,尤其涉及一种倾斜摄影建模数据在沉浸式显示设备中的应用方法。

背景技术

[0002] 目前,业内常用的现有技术是这样的:
[0003] 大规模自然场景的高精度建模是飞行模拟机视景系统亟待解决的重要问题,目前业内主要采用基于卫星图 人工建模和航空倾斜摄影自动三维重建技术。其中航空倾斜摄影法实现了大尺度自然环境的建模自动化,相比 较传统的人工建模方式具有建模生产效率高、超高分辨率、视觉效果好的特点,其技术成熟度逐步达到工业级 应用标准。但由于新旧技术间升级换代的原因,多数图形渲染引擎并不能直接支持倾斜摄影数据的调度和加载, 导致倾斜摄影自动建模技术应用在飞行模拟机领域存在着指标符合性问题。
[0004] 综上所述,现有技术存在的问题是:
[0005] 倾斜摄影自动建模生成的三维模型数据顶点分布不均匀,渲染效率负载不平衡,在三维引擎调度渲染过程 中会出现计算时间片分配不均匀而导致卡顿;现有技术中飞行模拟机视景系统需要采用虚像系统或虚拟现实头 盔等沉浸式显示设备,在硬件上都包含凹凸镜,倾斜摄影生成的三维建模数据显示结果经透镜放大后,在纹理 的边缘处会出现聚集明显的锯齿形走样。
[0006] 解决上述技术问题的难度和意义:
[0007] 倾斜摄影自动建模生成的自然场景与沉浸式设备的结合应用可以降低人工建模的工作量,提高仿真画面的 分辨率和真实度,大幅降低例如飞行仿真训练设备等专业训练器材的开发成本,提高飞行训练效果,并将成果 扩展应用到娱乐和文化体验等普通消费领域。针对该技术的应用过程产生的技术问题,仍存在以下难度:
[0008] 第一,当头部发生转动时,虚拟现实头盔需要重新进行定位和计算对应的视景内容并加载显示。然而飞行 仿真视景中自然场景复杂度较高,内容数据量很大,需要非常强大的硬件支持,即使采用先进的场景调度算法, 依然很难避免由于计算机计算能有限引起的画面卡顿问题。
[0009] 第二,目前市场上的虚拟现实头盔仍然不够成熟,改进空间很大。尤其显示器的分辨率非常有限,距离4K (显示器或显示内容的平达到4000像素的级别,垂直方向达到2000像素的级别)甚至8K的分辨率还很遥 远。加上人眼和显示器之间放置了具有放大功能的透镜,因此,当体验者近距离的观看屏幕时,如果视景内容 画面质量不够高,观看的过程中很容易就可以看到走样现象,产生纱窗效应,从而降低虚拟环境感受的真实可 靠性,破坏沉浸感

发明内容

[0010] 针对现有技术存在的问题,本发明提供了一种倾斜摄影建模数据在沉浸式显示设备中的应用方法。
[0011] 本发明是这样实现的,一种倾斜摄影建模数据在沉浸式显示设备中的应用方法,具体包括以下步骤:
[0012] 步骤一:根据飞行模拟机视景系统平台架构设计倾斜摄影数据生成调度模,建立全景绘制平台软件结构;
[0013] 步骤二:利用全景视景实时生成技术对海量倾斜摄影模型进行预处理,通过纹理映射技术构建视景生成内 容;
[0014] 步骤三:视景内容通过延迟着色技术进行渲染处理;
[0015] 步骤四:在最后一个渲染通道,将需要渲染的图片作为输入,输出为抗锯齿处理之后的结果图片;
[0016] 步骤五:采用双线性过滤,利用像素周围四个临近的邻居像素点作双线性插值。求平均结果作为最终的纹 理采样值,使得像素之间的过渡更加平滑;
[0017] 步骤六:判断需要平滑的边缘像素。计算当前片段以及和它直接相邻的四个邻居的亮度值。从而获取最大 亮度值以及最小亮度值,相减就可以获取亮度对比差值。边缘的亮度对比差值应该相对比较大。如果亮度差值 超过了预设的阈值,执行平滑处理。
[0018] 步骤七:检测出来的边缘像素,通过比较水平与垂直梯度差距结果确定该边缘是水平方向还是垂直方向。
[0019] 步骤八:检测出来的边缘像素,判断该边缘是位于像素的哪一面。针对当前像素,计算该像素所有面的梯 度变化,梯度差值最大的地方就是边缘的边界。
[0020] 步骤九:沿着边缘所在轴线作边缘边界探索。同时在两个方向上以一个像素为单位探索间隔进行,计算新 坐标点对应的像素亮度,与上一步计算得出的平均本地亮度进行对比。如果变化大于亮度梯度变化阈值,那么 判断为探索到了对应方向的边缘边界,否则,继续增加偏移量继续探索。
[0021] 步骤十:通过两个方向分别抵达的坐标来计算距离,并且找到最近的端点并得到最近端点占整个边缘长度 的比值。通过该方法估算目前像素是位于边缘的中间部位还是距离某个端点比较近。距离某个端点越近,就意 味着最后得到的纹理坐标偏移量越大。
[0022] 步骤十一:根据垂直于边缘的方向进行偏移纹理坐标并进行纹理数据读取,实现反走样。
[0023] 进一步,步骤二中,当头部发生转动时,根据头部位置的方向和度直接获取对应的视景内容。
[0024] 综上所述,本发明的优点及积极效果为:
[0025] 本发明预处理和纹理映射技术的组合可以很好的解决大规模自然场景在沉浸式显示设备中实时调度引起 的延迟或卡顿问题,提高视景图像分辨率的同时进行快速近似抗锯齿处理极大地改善了视景内容的质量。由于 全景生成的软件结构考虑了多节点画面生成拼接,本发明的应用为后续倾斜摄影分布式渲染提供架构基础
[0026] 本发明将高精度倾斜摄影建模数据加载进沉浸式显示设备中,融入了虚拟现实元素。此外,针对加载过程 中存在的效率及效果的问题提出一整套完整的解决方案,形成最终的全景绘制平台,达到360°全方位体验高 精度大规模自然场景飞行仿真视景的效果。
[0027] 本发明后处理快速近似抗锯齿算法简单有效,本发明在以飞行仿真视景系统画质本身特点的基础上,针对 反走样FXAA算法进行改进,提出边缘标定FXAA。对视景中的边际线、跑道线等边缘进行程序标定,保证飞 行仿真视景质量的同时,提高画面反走样平滑效率。
[0028] 本发明对倾斜摄影建模数据在沉浸式显示设备中观看时产生的卡顿、延迟等问题进行了原理性分析,利用 全景视景实时生成技术对海量倾斜摄影模型进行预处理,通过纹理映射技术构建视景生成内容。当头部发生转 动时,根据头部位置的方向和角度直接获取对应的视景内容,有效地避免实时视景调度计算量过大的问题。
[0029] 本发明针对沉浸式显示设备的透镜特点引起的走样闪烁和颗粒感等效果问题进行了分析。考虑到海量倾斜 摄影建模数据导致计算性能不足,以提高视景图像分辨率为目标,对倾斜摄影建模中的边缘数据进行择取反走 样。本发明选择对简单有效的快速近似抗锯齿算法进行改进并作图像处理,提出边缘标记快速近似抗锯齿算法, 有效地平滑处理缓解图像走样现象,达到提高观看视景内容质量的目的。
[0030] 改善视景画面的质量,解决画面的卡顿问题,提高虚拟现实头盔体验,不仅可以降低飞行仿真训练的成本 和提高飞行员的飞行训练效果,同样可以应用在军事训练、医疗及游戏等其他领域,应用前景十分广阔。
[0031] 本发明提出的边缘标记FXAA快速近似抗锯齿处理图片的速度最快,可以更大程度上解决倾斜摄影数据在 沉浸式设备中实时显示存在的卡顿问题。通过边缘标记FXAA平滑处理之后飞行仿真视景的走样效果得到了很 好的平滑处理。飞行仿真视景内容的质量得到了很大的提升。附图说明
[0032] 图1是本发明实施例提供的倾斜摄影建模数据在沉浸式显示设备中的应用方法流程图
[0033] 图2是本发明实施例提供的飞行模拟机结构图。
[0034] 图3是本发明实施例提供的全任务飞行模拟机及飞行训练器示意图。
[0035] 图4是本发明实施例提供的飞行模拟机视景系统结构图。
[0036] 图5是本发明实施例提供的视景系统工作原理图。
[0037] 图6是本发明实施例提供的大规模地形和场景地形调度技术图。
[0038] 图7是本发明实施例提供的基于InfiniBand的集中式数据管理流程图。
[0039] 图8是本发明实施例提供的独立高效的碰撞检测(Collision Detection)流程图。
[0040] 图9是本发明实施例提供的视景数据库生成流程图。
[0041] 图10是本发明实施例提供的海量视景数据LOD金字塔示意图。
[0042] 图11是本发明实施例提供的卫生图片上添加机场元素及夜间模式机场灯光建模示意图。
[0043] 图12是本发明实施例提供的机场标志牌快速建模及机场周边建筑快速建模示意图。
[0044] 图13是本发明实施例提供的基于优先级的调度机制与数据预存的策略原理图。
[0045] 图14是本发明实施例提供的倾斜摄影建模数据调度原理示意图。
[0046] 图15是本发明实施例提供的一般绘制VS并行绘制及并行绘制原理图。
[0047] 图16是本发明实施例提供的边缘标记FXAA平滑效果图。
[0048] 图17是本发明实施例提供的倾斜摄影模型数据全景视景生成技术路线示意图。
[0049] 图18是本发明实施例提供的虚拟现实场景的生成过程示意图。
[0050] 图19是本发明实施例提供的左手坐标系与右手坐标系对比示意图。
[0051] 图20是本发明实施例提供的球坐标系几何意义示意图。
[0052] 图21是本发明实施例提供的立方体映射图基本思想示意图。
[0053] 图22是本发明实施例提供的立方体环境映射图的6个面示意图。

具体实施方式

[0054] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。 应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0055] 下面结合附图对本发明的应用原理作详细说明;
[0056] 如图1所示,本发明实施例提供的倾斜摄影建模数据在沉浸式显示设备中的应用方法包括以下步骤:
[0057] S101:根据飞行模拟机视景系统平台架构设计倾斜摄影数据生成调度模块,建立全景绘制平台软件结构;
[0058] S102:利用全景视景实时生成技术对海量倾斜摄影模型进行预处理,通过纹理映射技术构建视景生成内容;
[0059] S103:视景内容通过快速近似抗锯齿算法进行改进并作图像处理:立方体空间某一视点6幅方向图经过环 境映射技术处理之后生成全景图。将拍摄到的各视点方向图片作为输入,通过相应合成算法流程处理之后得到 输出——全方位视景图像;接着,选择合理的空间模型,例如球体、圆柱体或者多面体,立方体模型全景空间 由六张正方形纹理构成,完全对称的正方体模型,便于全方位图像数据存储及屏幕显示,同时相对于球面模型 和柱面模型避免了扭曲和变形
[0060] 全景图的一般生成过程为:1)获取图像序列;2)选取投影模型;3)图像局部对准;4)图像融合。
[0061] S104:在几何图形处理之后对图形进行纹理贴图和光照计算以及着色等处理流程,即图形渲染。前向渲染 属于是标准的图形渲染,图元经过渲染流水线的每一个渲染器,最终显示在屏幕上。几何反走样及纹理反走样 都是基于前向渲染方式实现的,被称为前处理反走样。延迟渲染则是将对象的渲染统一放到图形流水线的最后 进行处理,在渲染之前增加了隐藏面消除过程,利用几何缓冲区(G-Buffer)来保存几何图形的颜色、法线及 世界坐标等等数据信息,将光照计算一次性完成。在图形的渲染过程中,光照计算是非常复杂也是非常耗时的, 延迟渲染将光照计算集中进行,极大的提高了渲染效率。在最后一个渲染通道,将需要渲染的图片作为输入, 输出为抗锯齿处理之后的结果图片;
[0062] S105:采用双线性过滤,利用像素周围四个临近的邻居像素点作双线性插值;求平均结果作为最终的纹理 采样值,使得像素之间的过渡更加平滑;
[0063] S106:判断需要平滑的边缘像素;计算当前片段以及和它直接相邻的四个邻居的亮度值,从而获取最大亮 度值以及最小亮度值,相减即可获取亮度对比差值;边缘的亮度对比差值应该相对比较大;如果亮度差值超过 了预设的阈值,执行平滑处理;
[0064] S107:检测出来的边缘像素,通过比较水平与垂直梯度差距结果确定该边缘是水平方向还是垂直方向;
[0065] S108:检测出来的边缘像素,判断该边缘是位于像素的哪一面;针对当前像素,计算该像素所有面的梯度 变化,梯度差值最大的地方就是边缘的边界;
[0066] S109:沿着边缘所在轴线作边缘边界探索;同时在两个方向上以一个像素为单位探索间隔进行,计算新坐 标点对应的像素亮度,与上一步计算得出的平均本地亮度进行对比;如果变化大于亮度梯度变化阈值,那么判 断为探索到了对应方向的边缘边界,否则,继续增加偏移量继续探索;
[0067] S110:通过两个方向分别抵达的坐标来计算距离,并且找到最近的端点并得到最近端点占整个边缘长度的 比值;
[0068] S111:根据垂直于边缘的方向进行偏移纹理坐标并进行纹理数据读取,实现反走样。
[0069] 步骤S102中,本发明实施例提供的当头部发生转动时,根据头部位置的方向和角度直接获取对应的视景内 容。
[0070] 步骤S110中,通过估算目前像素是位于边缘的中间部位还是距离某个端点比较近,距离某个端点越近,就 意味着最后得到的纹理坐标偏移量越大。
[0071] 下面结合具体实施例对本发明的应用原理进行进一步说明;
[0072] 实施例1;
[0073] (一)全景绘制平台软件结构
[0074] 1、飞行模拟机视景平台架构
[0075] (1)飞行模拟机
[0076] 飞行模拟机包括实时仿真计算机系统、视景系统、模拟座舱、教员台系统、音响与通讯系统、仪表系统、 环境保障系统、操作负荷系统及运动平台等。其具体结构如图2所示。飞行模拟机主要有全任务飞行模拟机(Flight Simulation Device)和飞行训练器(Flight Training Device)。
[0077] 如图2所示,本发明实施例提供的飞行模拟机结构图。
[0078] 全任务飞行模拟机可以模拟飞行器绝大部分的飞行任务,用于训练飞行员以获取、拓展、保持其飞行技能 的飞行训练设备。
[0079] 能复现空中飞行环境,用于起飞、着陆、爬升、转弯、机动飞行等驾驶技术训练,还可模拟、复现一些真 实飞机上难以实现的故障(发动机停车、高空失速等),用于训练飞行员处理非正常情况的能力。能够尽可能 真实地再现或模拟航空器驾驶感觉的系统,已经被广泛地运用于民用和军用飞机做飞行员和机组成员培训。
[0080] 飞行训练器结构较为简单,进行某些系统的专训练和一般的飞行训练(过程训练等)。
[0081] 飞行训练器是封闭式或开放式座舱内对仪表、设备、系统控制板、开关控制器一比一对应赋值,不要求 提供运动系统和视景系统,属于简易飞行模拟机。
[0082] (2)飞行模拟机视景系统平台
[0083] 飞行模拟机视景系统则用来提供逼真的视觉暗示,主要由图像生成计算机(IG)和视景显示系统及视景数 据库子系统部分组成。IG决定视景内容的丰富程度、逼真度、清晰度等,视景显示系统决定视景系统的沉浸感 和纵深感。IG系统主要分为场景模拟模块、气象模拟模块、底层渲染引擎及特情模拟模块。视景显示子系统分 为显示模块及校正融合模块。视景数据库子系统分为三维自动建模模块和碰撞检测解算模块以及地形和大场景 管理模块。如图4所示。
[0084] 如图4所示,本发明实施例提供的飞行模拟机视景系统结构图。
[0085] 本发明视景系统本身工作原理与模拟机其他模块交互原理。视景系统内部,视景接口与IG系统实时通信交 换数据,DMS则对IG系统、视景接口及视景显示系统起到监控管理的作用,IG系统将光栅化的图像传输到视 景显示系统即可进行仿真视景的显示。
[0086] 如图5所示,本发明实施例提供的视景系统工作原理图。
[0087] 1)视景显示系统
[0088] 对于桌面型视景显示系统,具有以下特点:1,成本低,无需校正融合。2,占用空间小,便于安装拆卸。3, 画面沉浸感比一般显示器强。对于实像投影型视景显示系统,具有以下特点:1,校正融合进行无缝拼接。2, 背投、正投两种投影方式。3,柱幕、球幕以及半球穹顶多种结构。4,多通道、视场角不受限时。5,配置灵活。 6,景深感不如虚像。
[0089] 对于准直虚像型视景显示系统,具有以下特点:1,校正融合进行无缝拼接。2,沉浸感强。3,上下视场角 受限制(<=60°)。4,造价较高。对于视景显示系统的校正融合模块,分为手调式校正融合和自动校正融合。
[0090] 所有这些方式的体验效果远远不及大型全景实时交互平台。相对于传统的绘制平台,大型全景实时交互平 台拥有360度的视觉范围,并且通过实时交互来提高体验效果。本发明将采用Oculus来进行飞行仿真视景漫游, 以达到更好的360度沉浸体验感受。
[0091] 2)视景数据库子系统
[0092] 针对视景数据库,由于地形规模较大,因此必须采取合理的策略才能取得良好的效果。首先,如图6所示, 对于地形和大场景的管理调度进行划分,分为实物级的机场3D对象建模、机场周围15公里内的照片级地形建 模、飞行重点区域高分辨率地形建模以及覆盖全球范围的地形低精度建模。通过对不同类型场景建模,有效地 改善和提高飞行仿真视景加载效率。其次,基于InfiniBand(无限带宽技术)的集中式数据管理,实现高的可靠 性、可用性、可扩展性和高的性能。可以提供高带宽、低延迟的传输,保证数据中心在局部故障时仍能正常运 转。另外,拥有独立高效的碰撞检测(Collision Detection)模块。
[0093] 如图6所示,本发明实施例提供的大规模地形和场景地形调度技术图。
[0094] 如图7所示,本发明实施例提供的基于InfiniBand的集中式数据管理流程图。
[0095] 如图8所示,本发明实施例提供的独立高效的碰撞检测(Collision Detection)流程图。
[0096] 2、倾斜摄影数据生成调度设计
[0097] (1)海量视景数据生成算法
[0098] 数字高层模型DEM已经是国家空间数据的基础框架数据,表现了地面的连续起伏变化,又适合进行数学 分析模拟,已经在各大领域得到了广泛的应用,视景数据库的生成过程如图9。本发明提出将地景高程纹理与 影像纹理按分辨率成倍递增的方式构造为若干个层次。构造后的所有层的高程纹理与影像纹理分别呈“金字 塔”状,“金字塔”最顶端为分辨率最低的I_0层,最底端则为分辨率最高的I_N层。如图10所示。按照特定 条件进行对应纹理加载即可。
[0099] 如图9所示,本发明实施例提供的视景数据库生成流程图。
[0100] 如图10所示,本发明实施例提供的海量视景数据LOD金字塔示意图。
[0101] (2)大规模自然场景快速自动建模
[0102] 1)基于彩色图像识别的城市地景快速自动建模
[0103] 对于基于彩色图像识别的城市地景建模的生成过程,首先,运行颜色边缘识别程序,进行边缘连接,提取 目标边界,接着构建自下而上的等级系统,确定封闭轮廓,寻找2D特征的候选屋顶。之后,识别建筑物的3D 特征,以图像的色彩和亮度为辅助,利用几何投影原理和图像信息估算建筑物高度及其他特征值。最后使用朴 素贝叶斯分类算法,从候选屋顶中提取全局优秀的屋顶。
[0104] 2)机场快速建模
[0105] 对于机场建模过程,首先通过机场编辑软件,生成dat文件,并进行机场数据存储。再利用机场生成软件, 生成FLT文件和机场模型,最后使用Creator修改完善即可。
[0106] 如图11所示,本发明实施例提供的卫生图片上添加机场元素及夜间模式机场灯光建模示意图。
[0107] 图中,左为卫生图片上添加机场元素;右为夜间模式机场灯光建模。
[0108] 如图12所示,本发明实施例提供的机场标志牌快速建模及机场周边建筑快速建模示意图。
[0109] 图中,左为机场标志牌快速建模;右为机场周边建筑快速建模。
[0110] (3)倾斜摄影建模数据调度设计
[0111] 针对倾斜摄影建模数据本身的特点及将倾斜摄影建模数据加载入沉浸式显示设备中存在的卡顿及延时问 题,本发明设计出基于优先级的调度机制与数据预存的策略实现大规模场景数据调度。
[0112] 大规模场景仿真当中,经常存在场景数据量过大无法一次性调入内存的情况,这就需要通过外存算法来解 决。外存算法指的是在读入数据的过程中,数据可以同时被调入到系统的内存和硬盘,而且可以实时交互。可 以有效地解决大规模场景仿真数据量庞大导致的内存不够的问题。
[0113] 计算机运行的过程中,绘制的同时对下一视点进行预测并利用多线程技术预先从外存调度可能需要的数据。 增量式数据更新,采用局部数据页动态更新算法,根据视点与数据页几何中心偏移量,实现大规模场景实时漫 游,并采用多线程将更新的数据预先从硬盘读入内存,减缓延迟现象。
[0114] 为了避免计算量过大,只加载圆形区域内的场景数据,使用LOD技术加载大规模场景。假设LOD共4层, 分别为1_0,1_1,1_2,1_3层,1_0层分辨率最低。
[0115] 虚线区域:真实视锥体
[0116] 黄色区域:LOD 1_0层绿色区域:LOD 1_1层
[0117] 红色区域:LOD 1_2层紫色区域:LOD 1_3层
[0118] 如图13所示,本发明实施例提供的基于优先级的调度机制与数据预存的策略原理图。
[0119] 如图14所示,本发明实施例提供的倾斜摄影建模数据调度原理示意图。
[0120] 3、全景绘制平台结构设计
[0121] 在文化科技方面,以虚拟现实技术为基础构建数字化旅游,为用户提供以沉浸性、交互性和构想性为基本 特征的高级人机交互界面,使人沉浸在虚拟境界中,并通过语言、手势等自然方式与之进行实时交互,创建一 种适人化的多维信息空间,具有广阔的应用前景。
[0122] 在航空领域,对飞行员的驾驶模拟培训、空中交通管理中塔台和机场管制人员进行模拟培训、机场运行方 案设计规划及验证评估、机场塔台选址、高度设计评估,跑道、滑行道、停机位等设计评估、飞行程序设计验 证及体验等问题,同样可以通过虚拟现实系统来实现。
[0123] 如图3所示,全景实时交互绘制平台是由三个子系统平台构成:全景实时渲染子系统、群体交互子系统、 大规模校正融合子系统。
[0124] 全景实时渲染子系统:全景实时渲染子系统负责根据本地资源与实时交互的分析结果对虚拟场景进行渲染, 其中包含了并行绘制模块、自然环境模块、骨骼动画模块、高级粒子模块、三维音效模块等
[0125] 群体交互子系统:群体交互子系统实时的感知各个个体的行为(运动、声音),并对获得的信息进行处理, 其中包含了容错匹配模块、自适应降噪模块、互动控制信号识别模块
[0126] 大规模校正融合子系统:大规模矫正融合子系统包含几何校正模块、色彩校正模块与边缘融合模块
[0127] (1)飞行仿真全景绘制平台背景
[0128] 为了满足针对国家在科技文化产业以及虚拟现实、仿真训练等领域的重大需求,本课题综合虚拟现实、增 强现实、人机交互、计算机视觉计算机图形学等多种技术,旨在研制出一套高真实感的全景绘制平台,这一 在视觉、行为等各方面体验与真实世界一致的全景绘制虚拟现实系统的构建具有重大的现实意义。
[0129] 近年来,大量应用迫切需要可以突破时间、空间以及客观各种限制的虚拟现实系统,使得用户可以在任意 时间和地点体验各种事件,训练提高应对现实世界中小概率突发事件的能力,科学准确的进行决策制定和评估。 这就要求提供与客观世界尽量一致的虚拟现实或增强现实环境,使得用户可以在视觉、行为等各方面的体验上, 获得和真实世界类似的感受。
[0130] 在科普教育、教学、展示展览等领域中,通常使用传统的方式来显示数字内容,如使用投影或大型LED屏 幕。这种方式的体验效果远远不及大型全景绘制平台。相对于传统的绘制平台,大型全景绘制平台拥有360度 的视觉范围,能快速、方便地展现出优秀的全景视景内容,全景绘制平台就是为这类内容而设计的开发平台。
[0131] (2)全景绘制平台研究内容
[0132] 本发明的主要研究内容包括:
[0133] 1)并行绘制技术
[0134] 图形绘制一般以流水线作业的方式分阶段实现图形计算,将整个图形处理过程划分为多个流水阶段。其流 水线的组织方式决定了图形绘制过程存在着可并行性。在此,我们采用基于集群构建并行图形绘制系统,基于 集群构建并行图形绘制系统是重要研究方向,从而有效地混合Sort-first、Sort-middle和Sort-last使用这3种方 式实现并行绘制。
[0135] 在实现动态负载平衡算法方面,动态负载平衡算法在进程执行过程中对任务进行动态调整,可适应进程状 态的动态变化,采用适当的调整策略,可使处理器连续执行任务,能达到最理想的并行效果。其可行的算法包 括:Roble算法、median-cut算法、自顶向下分解算法、基于时间反馈的负载平衡算法以及基于节点迁移的负载 平衡算法。
[0136] 在基于数据包围盒动态任务划分策略方面,在每次动态划分开始前获得一些概要的几何图元分布信息,主 要为获得场景数据包围盒,采用基于数据包围盒的KD树动态划分策略,依次对最长坐标轴进行分割,将空间 一分为二,在划分的子空间数大于进程个数时停止。
[0137] 如图15所示,本发明实施例提供的一般绘制VS并行绘制及并行绘制原理图。
[0138] 图中:左为一般绘制VS并行绘制图;右为并行绘制原理图。
[0139] 2)立方体全景拼接技术
[0140] 全景视频拼接在传统的独立摄像机视频基础上,对多个摄像机视频进行实时的视频拼接融合,通过图像配 准与图像融合技术形成大场景的监视视频,实现在一个画面中实现对整个观察场面的感知。实现基于多路高清 摄像机的全景拼接技术,通过相邻摄像机视频间的配准与融合,形成一个超宽视场超高清的全景视频。
[0141] 对于全方位视景纹理映射技术,主要有球面、柱面以及立方体面全景映射,由于球面扭曲变形,柱面无上 下底视野受到极大限制,因此最终选择立方体面全景映射来完成全方位视景内容映射过程。
[0142] 3)边缘标记反走样平滑技术
[0143] 对于反走样算法的选取,由于硬件抗锯齿原理以提高采样量扩大图片分辨率为基础,因此时间空间消耗过 大,本发明将采取后处理抗锯齿进行飞行视景全景平滑。FXAA是一种简单且快速高效的反走样算法,在后续 的实验当中可以明显看出,因此可以更好的提高倾斜摄影模型数据飞行仿真全景的运行效率,本发明则在FXAA 的基础上添加程序边缘标记,在片段着色器中直接对标记边缘进行FXAA平滑处理:1,摆脱硬件限制;2,根 据感兴趣区域局部处理;3,提升效率。相比于原始FXAA减少了大量的判断以及平滑工作,大大的提升了反 走样处理效率,同时取得良好的平滑效果。
[0144] 如图16所示,本发明实施例提供的边缘标记FXAA平滑效果图。
[0145] (3)全景绘制平台技术路线框架
[0146] 根据如上基本原理讲述,下面为本发明设计的整体倾斜摄影模型数据飞行仿真全景视景生成软件架构设计 图,如图17所示。按照既定路线,在路线上的每一个节点处对飞行仿真视景内容进行上下左右前后六个面的全 方位视景内容录制,即完成全景空间内容的获取。通过全景纹理映射技术,将六个方向的视景内容合成对应节 点飞行仿真视景全景图。将全景图交给片段着色器处理,片段着色器中的边缘标记FXAA算法会对已标记边缘 进行提取和平滑处理。接着,将经过反走样处理之后的连续全景图合成飞行仿真视景全景空间。最后,将飞 行仿真全景内容加载到沉浸式显示设备中即可进行360°飞行仿真视景沉浸式体验。同时,当头部发生转动时, 沉浸式显示设备可以相应的从飞行仿真视景全景空间获取相应的视角视景内容。
[0147] 如图17所示,本发明实施例提供的倾斜摄影模型数据全景视景生成技术路线示意图。
[0148] 4、小结
[0149] 首先详细阐述飞行模拟视景总体平台架构,尤其对飞行仿真视景显示系统及飞行仿真视景数据库子系统做 了重点介绍。之后对倾斜摄影数据的生成调度设计思路做了原理性描述,其中包括海量视景数据的生成、倾斜 摄影数据的自动建模以及倾斜摄影建模数据的调度。最后对整体全景视景生成软件设计结构进行了概述,其中 包括飞行仿真全景绘制平台的背景、分析内容。同时,针对倾斜摄影建模数据高精度、顶点分布不均匀的特点 提出整套全景绘制平台技术路线。
[0150] (二)全方位飞行仿真视景生成
[0151] 倾斜摄影建模数据在沉浸式显示设备显示过程中存在效率问题。倾斜摄影模型数据精度较高且数据量庞大, 造成倾斜摄影建模数据在沉浸式显示设备显示的过程中资源调度困难,卡顿现象严重,本发明将针对该问题采 取对应的解决方法。首先对飞行仿真视景场景预处理,按照预设路线飞行并针对飞行路线每一个节点对应的全 景空间拍摄保存,最后采用立方体环境映射技术构建飞行仿真全景视景。带上Oculus Rift DK2配合全景播放即 可体验全方位飞行仿真视景漫游。通过倾斜摄影建模数据预处理和立方体环境映射技术巧妙的避免了实时仿真 系统资源调度困难的问题,同时又保证了全方位视景的观看效果。
[0152] 虚拟现实场景的生成过程如图18所示。首先,将拍摄到的各视点方向图片作为输入,通过相应合成算法流 程处理之后得到输出——全方位视景图像;接着,选择合理的空间模型,例如球体、圆柱体或者多面体,本发 明采用立方体空间模型,再将连续帧全景图组织为全景空间。用户即可在指定的全景空间中进行漫游,而且可 以环视周围,仰望上方以及俯视下面。
[0153] 如图18所示,本发明实施例提供的虚拟现实场景的生成过程示意图。
[0154] (1)立方体全景映射
[0155] 环境映射(Environment Mapping,EM)技术是通过纹理图像来呈现物体对象表面的反射效果或透射效果,也被 称为反射贴图(Reflection Mapping,RM),通过选定反射模型,利用反射物体对光线的反射原理,通过反射模型表 面纹理即可反映真实场景的全方位360°影像,这幅呈现全方位真实场景的图像即为全景图(Panorama Image)。
[0156] 合成全景图的原始数据图获得途径主要分为2种,一种是通过专业的拍摄设备,比如说全景摄像机。设备 易于操作,不需要程序复杂处理,然而设备本身成本较高;第二种是使用普通相机进行局部图像的拍摄,之后 再经过投影,拼接形成整张全景图。对拍摄的要求非常高,通常需要借助一些辅助设备,比
[0157] 如三脚架等才能完成拍摄。但是费用比较低,仍然是目前的主流方式。对于本次实验而言,采用第二种方 式,因为在三维视景系统中,很容易进行摄像机位置和角度的掌控,不像人工进行拍摄那样容易产生各种误差, 对后期图片处理造成不便。
[0158] 全景图像包含从视点出发周围全方位的环境视景内容。全景图主要有球面模型、柱面模型以及立方体模型 全景图。不同模型对应的全景图,映射处理过程中的难易差距很大。球面模型全景图是呈现全方位视景的最好 方案,但是球面模型全景图属于非均匀采样,投影结果会存在严重的扭曲,南北极的表现最为明显。且球面投 影缺乏合适的计算机存储方式;柱面模型全景图的方式,优势在于柱面模型原始图像数据容易获得,但是很难 真正很好的应用起来,这种没有上下底的柱面明显存在的视觉限制是不可避免的;立方体模型全景空间由六张 正方形纹理构成,完全对称的正方体模型,便于全方位图像数据存储及屏幕显示,同时相对于球面模型和柱面 模型避免了扭曲和变形。
[0159] 全景图的一般生成过程为:1)获取图像序列;2)选取投影模型;3)图像局部对准;4)图像融合。
[0160] 1)坐标系统
[0161] 在进行几何变换的过程中,对于World Space而言,因为定义的是物理世界位置的客观空间,而左手坐标系 和右手坐标系只是提供了两种不同的描述空间的方法,但是描述的却是同一个世界,就像真实世界中的时钟, 不管通过左手坐标系还是右手坐标系描述,都是按照顺时针方向进行旋转的。但是,视点在进行观察世界空间 的时候,能看到什么事物就取决于所使用的坐标系了,这也是OpenGL和DirectDX的最主要的区别。
[0162] 坐标系统分为左手坐标系系统(Left-handed coordinate system)和右手坐标系系统(Right-handed coordinate)。 RenderMan方式(一个计算机图像渲染体系)默认的坐标系统是左手坐标系:+x轴向右,+y轴向上,+z轴向 前,此外,坐标轴的正向旋转为顺时针。OpenGL中的默认坐标系系统是右手坐标系:+x轴向右,+y轴向上, -z轴向前,此外,坐标轴的正向旋转是逆时针。通常情况下,大部分世界坐标系和物体坐标系是右手坐标系, 而左手坐标系通常用于摄像机。
[0163] (2)直角坐标与球坐标转换
[0164] 三维直角坐标系是利用直角坐标(x,y,z)表示空间中一个点的位置的三维正交坐标系,球坐标系则是利用球 坐标(r,θ,φ)来表示一个点的位置的三维正交坐标系。如图20所示描述了球坐标的几何意义:假设点P在三维 空间的球坐标为(r,θ,φ),原点为O,原点到目标点之间的径向距离为r,天顶角(θ)为OP与+z轴的夹角,方位角 (φ)为OP的在xOy平面上的投影与+x轴的夹角,则0≤r,0≤θ≤π,0≤φ<2π,其中θ=0或者θ=π时,失 去意义。
[0165] 按照如上定义,直角坐标(x,y,z)转球坐标(r,φ,θ)计算公式为:
[0166]
[0167]
[0168] θ=cos-1z/r
[0169] 同理,球坐标(r,φ,θ)转直角坐标(x,y,z)的计算公式为:
[0170]
[0171]
[0172] z=r cosθ
[0173] 如图19所示,本发明实施例提供的左手坐标系与右手坐标系对比示意图。
[0174] 图中:(a)x轴正方向旋转(A)x轴正方向旋转(b)y轴正方向旋转(B)y轴正方向旋转(c)z轴正方 向旋转(C)z轴正方向旋转;
[0175] 如图20所示,本发明实施例提供的球坐标系几何意义示意图。
[0176] (3)立方体全景映射
[0177] 立方体环境映射是Ned Greene在1986年研究设计出来的,相对而言是最古老也是环境映射技术里面比较 准确的映射技术。立方体映射需六张对应角度的纹理图像。每一幅图像代表以立方体中心作为视点出发投影到 的一个面。本发明中的立方体映射基本思想如图21所示,立方体映射图六个面示意图如图22所示。很容易想 象到可以从立方体的中心出发,向上、向下、向左、向右、向前、向后六个方向分别投影,从而将六幅投影结 果图像还原成立方体内部的六个面,将很容易形成周围环境的全景图。需要声明以下几点:
[0178] (1)以场景中心为视点出发点;
[0179] (2)将周围场景的二维图像记录在以视点为中心的立方体六个面上。
[0180] (3)忽略发射方向不明显的扭曲变形,假设反射物体无限小。
[0181] (4)物体不能反射自身;
[0182] 如图21所示,本发明实施例提供的立方体映射图基本思想示意图。
[0183] 立方体环境映射步骤如下:
[0184] (1)准备立方体环境纹理
[0185] (2)求反射物体表面像素法向量
[0186] (3)通过人眼到物体表面向量及像素点法向量,求像素点反射向量
[0187] (4)利用步骤3得到的反射向量,获取反射向量对应的纹理像素数据
[0188] (5)使用得到的纹理值来绘制像素
[0189] 虽然图22的立方体映射图看起来是一张图,实际上在应用当中,立方体映射会使用六张独立的映射图, 每一张对应立方体的一个面。立方体映射图的形成过程中,假设周围环境是距离立方体中心无穷远,并且立方 体被看作是无穷小,所以用来纹理查询的反射向量的起点可以被看作是具有相同的原点,即视点。通常立方体 映射图的坐标及展开图如图22所示,此外,Renderman和NVIDIA的立方体映射图的硬件实现使用了不同的立 方体坐标描述。
[0190] 如图22所示,本发明实施例提供的立方体环境映射图的6个面示意图。
[0191] 立方体环境映射的基本信息以及每个面上对应的纹理坐标。立方体外面是右手坐标系系统,立方体里面采 用的是左手坐标系系统。这样可以使得立方体的展开图更加直观易懂,可以让中间的四张展开图形成全景无缝 信息,每个面的命名根据坐标系统中x,y,z轴的指向分别进行命名为+x面、-x面、+y面、-y面、+z面和 -z面。
[0192] 相比于球面映射,立方体映射的纹理查询方法要简单一些。对于球面映射,最终渲染出来的环境图是由视 点的位置来决定的,随着视点的变换,反射物上面的映射图也会随之改变,计算过程也会有所改变。与球面映 射不同,立方体环境映射过程是基于片段进行而非基于顶点。
[0193] 立方体环境映射的具体过程如下:
[0194] (1)根据视点和反射物点位置,计算并获取经过反射之后的反射向量,假设该反射向量位于物体空间, 为R(Rx,Ry,Rz)
[0195] R=U′-2(N′·U′)N′
[0196] (2)根据光线反射原理及R的计算公式可以计算得到立方体顶点处反射向量,对于顶点间的区域,则需 要根据顶点反射向量作线性插值获取。以单个像素为间隔递增,计算每个像素本身的反射向量。这也是球面模 型环境映射与立方体模型环境映射本质区别之一,球面模型环境映射反射向量基于顶点而立方体环境映射的反 射向量基于像素。
[0197] (3)反射向量确定之后,根据反射向量计算顶点的纹理坐标。计算并比较反射向量分量绝对值的最大值, 根据结果确定反射向量与立方体的相交面,然后根据如下公式计算纹理坐标S,T。
[0198]
[0199]
[0200] 计算公式中S,T代表纹理坐标,ma代表反射向量分量绝对值最大的值,sc和tc按照表进行查找即可。比 如说,反射向量为(0.5,0.5,1),现在计算需要的是反射向量的方向,而不是大小,不需要单位化,所以可以用(2,2,4) 来代替进行计算。因为1是反射向量三个分量中绝对值最大的,即Rz最大,通过查表,则该sc取+Rx,因为立 方体+Rz面上,+x轴方向与纹理坐标+u轴的方向指向一致,同理,在+Rz面上,+y与-t指向一致。查表获取sc、 tc的值,然后就可以将纹理坐标规范处理到(0,1)区间内,就得到了纹理坐标S,T。
[0201] 表1:立方体发射向量与纹理坐标的对应关系查询表
[0202]
[0203] 该立方体环境映射算法已经被图形硬件广泛支持。
[0204] (4)立方体环境映射的优点
[0205] (1)立方体映射相对于球体映射更为简单。通常情况下,球体映射是通过立方体投影到球体,然后 将球体展开来形成球体映射图,如果是使用立方体映射图,明显就不需要再次投影;
[0206] (2)立方体映射实现简单,且相对于其他球体等映射方式,明显立方体映射会有较少的扭曲和变形。
[0207] (3)立方体映射可以实现视点独立,视点发生变化时,立方体环境映射不需要重新计算每帧纹理映 射图像,因为立方体的像素法线是通过顶点法线线性差值获得。
[0208] 2、基于Oculus Rift的全方位视景漫游准备
[0209] 3、全方位视景生成算法实验效果分析
[0210] (1)飞行仿真视景图像预处理
[0211] 设定相机参数之后相机即可按照既定路线上节点飞行,每一个节点处进行六个方向(上、下、左、右、 前、后)视景内容拍摄保存,每幅图像保存的分辨率为1920*1920,图像大小大多位于1M到5M之间。 如图4-10所示,即为飞行过程中某节点对应的正方体全景空间内从一个视点出发对应的六个面。对应的正 方体全景空间视景展开图。需要注意的是,由于飞行过程中倾斜摄影模型数据加载较慢,第一次飞行直接 进行视景预处理会造成拍摄图像不完整。通常情况下,在相机完成飞行路线之后(即倾斜摄影模型数据加 载完成)第二次飞行过程中进行视景内容录制。
[0212] 本发明是实施例提供的全景空间内一个视点观察到的六个面示意图。
[0213] 从左至右,从上至下,图片依次为空间的左、右、上、下、前、后。
[0214] (3)立方体全景合成
[0215] 在算法的实现过程中,分别进行了定义,正方体分为前后左右上下六个面,分别对应s_texture_1、 s_texture_0、s_texture_5、s_texture_4以及s_texture_2和s_texture_3。
[0216] 示例图顺序是按照飞行路线每隔一定时间间隔进行拍摄,保存的每幅全方位视景空间图像的分辨率为 11520*6480,即大于8k的分辨率(4kUHDTV-7680*4320),单张全景图大小大多在20M到35M之间, 从而达到保证全方位飞行仿真视景质量目的的第一步。实验当中的空间占用数据整理如表2,实验当中的 耗时数据整理如表3。
[0217] 表2实验空间消耗数据整理
[0218]
[0219] 表3实验耗时数据
[0220]
[0221] (3)Oculus Rift全方位飞行仿真漫游
[0222] 按照Oculus Rift DK2的组装以及相关软件安装过程准备工作完成后,即可带上Oculus Rift DK2体验 全方位飞行仿真视景,飞行仿真视景场景漫游过程中随着头部位置及方向变换看到不同的场景。由于无法 直接拍摄带上Oculus RiftDK2时眼睛看到的真实全方位飞行仿真虚拟场景,通过手机拍摄目镜面显示的场 景图。
[0223] 4、总结
[0224] 主要介绍全方位倾斜摄影建模数据飞行仿真视景的生成过程与效果分析。主要包括立方体全景映射细 节过程及基于Oculus RiftDK2的全方位视景观看准备工作以及全方位视景生成算法实验结果和结果分析。 立方体全景映射细节中主要讲述了坐标系统、直角坐标系与球坐标系转换关系以及立方体全景映射算法流 程和立方体环境映射的优缺点。基于Oculus Rift DK2的全方位视景观看准备小节中主要讲述了Oculus Rift DK2 Runtime安装以及Oculus Rift DK2的组装和个性化配置,最后,主要讲述了Virtual Desktop软件安装。 本发明实验过程中使用全方位视景生成算法每一步及最终的视景内容处理结果。其中包括飞行仿真视景图 像的预处理、立方体全景合成以及立方体全景观看,即基于Oculus Rift DK2沉浸式显示设备的全景视景观 看效果。实验结果表明,通过飞行仿真视景内容预处理及环境映射技术可以极大的提高倾斜摄影建模数据 飞行仿真视景在沉浸式显示设备中的漫游效率,解决大规模自然场景实时飞行仿真计算量过大引起的卡顿 及延迟问题。
[0225] (三)快速近似抗锯齿算法改进——边缘标记FXAA
[0226] 倾斜摄影建模数据在沉浸式显示设备显示过程中存在观看画质问题。目前一线沉浸式显示设备分辨率 多为1080*1200,双目合在一起为2160*1200,分辨率有限,观看过程中极易产生锯齿感和颗粒感,使得 倾斜摄影建模数据在沉浸式显示设备中的漫游效果受到极大的影响,因此提高倾斜摄影建模数据视景内容 质量将是改善显示效果直接有效地途径。目前计算机计算性能有限,本发明将提高飞行仿真视景场景图像 分辨率,同时选择简单有效的快速近似抗锯齿算法进行视景图像处理,快速检测边缘并平滑处理以缓解视 景内容的走样现象,达到通过沉浸式显示设备高画质漫游全方位飞行仿真视景场景的目的。
[0227] 1、延迟着色技术
[0228] 为了提高图形的视觉真实程度,通常情况下会在几何图形处理之后对图形进行纹理贴图和光照计算以  及着色等处理流程,即图形渲染。常见的渲染模式有前向渲染(Forward Shading又叫做立即渲染)和延迟 着色(Deferred Shading)。VS(Vertex Shader)表示顶点着色器,GS(Geometry Shader)表示几何着色器, FS(Fragment Shader)表示片段着色器。
[0229] 前向渲染属于是标准的图形渲染,图元经过渲染流水线的每一个渲染器,最终显示在屏幕上。几何反 走样及纹理反走样都是基于前向渲染方式实现的,被称为前处理反走样。延迟渲染则是将对象的渲染统一 放到图形流水线的最后进行处理,在渲染之前增加了隐藏面消除过程,利用几何缓冲区(G-Buffer)来保存 几何图形的颜色、法线及世界坐标等等数据信息,将光照计算一次性完成。在图形的渲染过程中,光照计 算是非常复杂也是非常耗时的,延迟渲染将光照计算集中进行,极大的提高了渲染效率,目前已经被广泛 的应用在实时渲染中。通常将这种基于延迟渲染流程的反走样算法叫做后处理反走样,后处理反走样已经 成为目前反走样算法的发展主流。
[0230] 2、边缘标记快速近似抗锯齿
[0231] 目前的后处理反走样技术主要分为边缘分走样和混合反走样。边缘反走样算法技术的主要思路是先提 取图像的边缘数据信息,然后针对边缘数据信息做反走样处理;混合反走样技术则是在边缘反走样的基础 之上,利用像素细分的思想针对提取出来的边缘再做反走样处理。各种后处理反走样技术优缺点对比如表 4。快速近似抗锯齿,该算法快速且高效。快速近似抗锯齿可以非常容易的加到现有的渲染器中,直接被 应用在最后一个渲染通道即可,将需要渲染的图片作为输入,输出即为抗锯齿处理之后的结果图片。
[0232] 主要的思想就是先要在需要渲染的图片当中检测出边缘信息然后进行平滑。按照FXAA技术开发者 Timothy Lottes的说法,GeForce GTX 480利用FXAA处理一帧1920×1200分辨率画面时所需时间不到1 毫秒。FXAA 3相比于FXAA 1有很明显的性能优势,GeForce GTX 480DX11默认设置下使用FXAA 3 Quality处理典型的720p分辨率画面只需要大约0.21毫秒。
[0233] 本发明则针对FXAA进行边缘标记优化,由于FXAA会对整张图片的每个元素都进行边缘判断,因 此,为了减少FXAA的过渡平滑现象,本发明采用边缘标记的方式对FXAA进行优化处理,当片段着色 器进行平滑处理时,只需要对标记的边缘进行平滑即可。经实验结果表明,边缘标记FXAA可以大大提高 反走样处理效率,减少走样处理的时间。
[0234] 表4:后处理抗锯齿算法比较分析
[0235]
[0236] (1)前提条件
[0237] 首先假设整个场景已经被渲染到一幅和窗口分辨率大小相同的纹理图像中,一个覆盖整个窗口的矩形 将被渲染来显示这张纹理图像。针对矩形当中的每一个像素,片段着色器都会通过FXAA算法对其进行计 算处理。对于本发明,为了保证图片质量的同时提高反走样平滑效率,需要进行FXAA平滑处理的像素已 被程序提前标定。
[0238] (1)亮度(luma)
[0239] 针对FXAA算法来说,片段着色器中的大部分计算都是依赖于从纹理图像中读取到的像素亮度数据, 且灰度级别处于0到1之间。亮度值(luma)是根据像素颜色红(red)蓝(blue)绿(green)组成部分加权计算 得来,对于权重大小的选取,则是依据人眼对于每种波长范围的敏感度确定,计算公式如下:
[0240]
[0241] (2)纹理滤波
[0242] 程序中纹理读取过程中,通常采用0到1之间的浮点数纹理坐标来获取纹理图像对应像素数据。但是 在每个维度上,纹理图像都只能具有有限的像素数量,每个像素都有固定的颜色及亮度值,但是如果纹理 坐标读取的位置刚好落在两个像素之间呢?一个像素未必刚好对应一个纹素,即使时在像素和纹理像素尺 寸完全相等的情况下,也未必存在一一对应的关系。因此需要使用特定的滤波方式来计算最终的纹理值, 如果缺少纹理滤波的过程或者使用不当都有可能造成锯齿或者闪烁等明显的走样现象。针对不同的纹理滤 波方式,计算过程及计算量各有差异,纹理滤波结果也各不相同。纹理过滤模式从简单到复杂依次有最近 点采样(Nearest Point Sampling)、双线性过滤(Bilinear Filtering)、三线性过滤(Trilinear)以及各向异性过滤 (Anisotropic Filtering)。
[0243] 本发明实验过程采用双线性过滤(Bilinear Filtering)。大多数情况下,纹理图像在屏幕上显示的时候都 很难和保存的纹理完全一样没有任何损失,因此,有一些像素就不得不使用经过特殊处理之后进行表示, 双线性过滤器则是利用像素周围四个临近的邻居像素点作双线性插值。求平均结果作为最终的采样值,通 过双线性过滤之后,像素之间的过渡就更加平滑。
[0244] (2)判断需要平滑像素
[0245] 输入只需要一张纹理图像、纹理坐标以及纹理图像尺寸,输出只有一个就是RGB颜色。下面使用8*5 的像素格子作为一个简单的例子来说明整个算法运作过程,现在把焦点放在用红色圈出来的像素上。
[0246] 原理,首先,为了检测边缘,需要计算当前片段以及和它直接相邻的四个邻居的亮度值。从而获取最 大亮度值(lumaMax)以及最小亮度值(lumaMin),相减就可以获取亮度对比差值(lumaRange)。很明显,如果 是边缘,亮度对比差值应该相对比较大。所以,如果亮度差值比在一定的范围内 (EDGE_THRESHOLD_MAX),抗锯齿处理就不需要被执行。如果亮度差值超过了预设的阈值,就应该执 行平滑处理。此外,颜色比较暗淡的区域抗锯齿相对而言不太明显,所以当亮度对比差值低于一定阈值 (EDGE_THRESHOLD_MIN)的时候,也不需要再做抗锯齿平滑处理。阈值常量推荐取值为 EDGE_THRESHOLD_MIN=0.0312;EDGE_THRESHOLD_MAX=0.125。
[0247] 特定元素及其周围像素情况,最大亮度值为1,最小亮度值为0,所以亮度差值为1,因为1>max(1* 0.125,0.0312),所以需要进行FXAA处理。
[0248] (3)估算梯度并判断边缘方向
[0249] 针对检测出来的边缘像素,需要再次通过计算确定该边缘是水平(edgeHorizontal)方向还是垂直(edgeVertical)方向。为了确定边缘的方向,需要计算中心像素的亮度以及它周围的8个像素来计算一系列 的亮度差值。计算公式如下:
[0250] 水平方向:
[0251] |(upleft-left)-(left-downleft)|+2*|(up-center)-(center-down)|+ |(upright-right)-(right-downright)|
[0252] 垂直方向:
[0253] |(upright-up)-(up-upleft)|+2*|(right-center)-(center-left)|+ |(downright-down)-(down-downleft)|
[0254] 通过比较水平与垂直梯度差距结果很容易就可以确定边缘方向。
[0255] edgeHorizontal=|-2*0+0+1|+2*|-2*0+0+1|+|-2*0+1+0|=4,
[0256] edgeVertical=|-2*0+0+0|+2*|-2*1+1+1|+|-2*0+0+0|=0。因此,边缘的方向是水平的。
[0257] (4)判断边缘面
[0258] 在确定边缘是水平或者垂直之后,那么就需要判断该边缘是位于像素的哪一面,比如是在像素的上侧 还是下侧,左侧或者右侧。当前像素未必一定刚好在边缘的边界处,下一步就是判断边缘的方向,正交与 边缘方向的地方,才是真的边缘的边界。针对当前像素,计算该像素所有面的梯度变化,那么梯度差值 (gradient)最大的地方很可能就是边缘的边界。
[0259] 依照图例,gradient1=0-0=0,gradient2=1-0=1,因此像素上方的亮度梯度较大,且经计算得 gradientScaled=0.25。
[0260] 最后,沿着这个方向按照半个像素的间隔进行移动并计算此像素点平均本地亮度(lumaLocalAverage)。
[0261] 对应例子当中,平均本地亮度lumaLocalAverage=0.5*(1+0)=0.5,同时纹理坐标沿着y轴正方向 平移半个像素,接下来将要沿着边缘继续探索。
[0262] (5)迭代探索边缘端点
[0263] 确定边缘像素以及边缘的方向之后,就可以沿着边缘所在轴线作边缘边界探索。同时在两个方向上以 一个像素为单位探索间隔进行,计算新坐标点对应的像素亮度,与上一步计算得出的平均本地亮度进行对  比。如果变化大于亮度梯度变化阈值
(gradientScaled),那么我们就已经探索到了对应方向的边缘边界,否 则,继续增加偏移量(offset)继续探索。
[0264] 依据图例,lumaEnd1=0.5-0.5=lumaEnd2=0.0
[0265] 最好的情况就是,现在lumaEnd1和lumaEnd2刚好在边缘的边界处,纹理坐标uv1,uv2刚好是对应 的纹理坐标。依照举的例子,可以得到lumaEnd1=1-0.5=0.5≥gradientScaled,因此左侧探索已经达 到了边缘边界。对于右侧,需要在迭代两次才能满足条件。
[0266] (6)估算偏移量
[0267] 现在可以通过两个方向分别抵达的坐标来计算距离,并且找到最近的端点并得到最近端点占整个边缘 长度的比值。这样就可以大概猜测到目前像素是位于边缘的中间部位还是距离某个端点比较近。距离某个 端点越近,就意味着最后得到的纹理坐标偏移量越大。
[0268] 依照举的例子,distance1=2,distance2=4,因此边缘的左边界端点距离中心像素比较近,且pixelOffset =-2/6+0.5=0.1666。
[0269] 此外,还需要再检查一下,保证得到的端点的亮度变化和当前像素的亮度是连贯的。否则可能就探索 的太远了。
[0270] 针对例子中选择的中心像素的亮度,最后的亮度不是负数,而且(0.5<0.0)!=isLumaCenterSmaller, 因此偏移量的计算有效。
[0271] (7)最终颜色读取
[0272] 所有都处理完成之后,只需要根据垂直于边缘的方向进行偏移纹理坐标并进行纹理数据读取即。
[0273]
[0274] 对于实示例中研究的像素,最终的亮度强度值为0.1666*1+(1-0.1666)*0≈0.1666。当我们 对每个像素都做过处理之后。
[0275] 综上所示,平滑处理是对标记所有的像素都依据与边缘的接近度进行平滑处理。首先检测边缘像素, 确定之后估算梯度并计算边缘方向,方向定下来通过计算选择边缘线,即边缘相对像素而言位于那一边。 确定边缘线之后就开始迭代探索边缘边界,直到达到边界或者迭代上限停止,获取边界边缘纹理坐标可计 算取得偏移量。此外,需要检测是否探索过度,以防超过了探索边缘边界。以及判断是否存在单点高亮像 素或者过暗像素的情况,如果存在,需要做平滑处理。
[0276] 3、边缘标记FXAA算法实验结果分析
[0277] (1)单方向图像快速近似抗锯齿算法效果对比
[0278] 分别展示了针对某一视点对应的方向图中跑道和森林在采用边缘标记快速近似抗锯齿算法前后图像 效果对比,颗粒感和锯齿感被改善。
[0279] (2)全景图像快速近似抗锯齿算法效果对比
[0280] 展示了立方体空间某一视点6幅方向图经过环境映射技术处理之后生成全景图采用边缘标记快速近似 抗锯齿算法前后图像效果对比,可见在边缘标记快速近似抗锯齿算法处理之后,视景图像中的边缘可以被 很好地平滑处理,当通过沉浸式显示设备进行飞行仿真视景漫游的过程中,颗粒感大大降低。
[0281] (3)局部图像快速近似抗锯齿算法效果对比
[0282] 经过快速近似抗锯齿算法处理之后图像锯齿明显的被平滑处理,飞行仿真视景图像质量得到极大的改 善。
[0283] (4)反走样处理前后实验结果数据对比
[0284] 本发明提出的边缘标记FXAA快速近似抗锯齿处理图片的速度最快,可以更大程度上解决倾斜摄影数 据在沉浸式设备中实时显示存在的卡顿问题。
[0285] 边缘标记FXAA平滑全景空间前后的飞行仿真视景内容闪烁次数每分钟观察统计图。优化前飞行仿真 视景每分钟的闪烁次数在30到60次范围内波动,优化后飞行仿真视景每分钟的闪烁次数在0到10次范 围内波动,且相对非常稳定,不会有大的波动。可见通过边缘标记FXAA平滑处理之后飞行仿真视景的走 样效果得到了很好的平滑处理。保证渲染效率地同时,飞行仿真视景内容的质量也得到了很大的改善。
[0286] 快速近似抗锯齿改进算法——边缘标记FXAA整体实现及效果展示分析。首先详细阐述边缘标记快速 近似抗锯齿算法流程步骤,其中包括延迟着色技术概念及边缘标记快速近似抗锯齿算法详解两个部分。第 三小节主要针对本发明采用的边缘标记快速近似抗锯齿算法的实验结果对比及分析总结,配合有实例图进 行阐述说明,同时,将硬件反走样、FXAA、TXAA及边缘标记FXAA的实验数据结果进行对比,以及边 缘标记FXAA前后闪烁次数进行对比。实验结果表明,采用边缘标记快速近似抗锯齿算法可以很好的进行 图形边缘的平滑处理,颗粒感和锯齿感明显改善,闪烁次数明显降低,有效地提高倾斜摄影建模数据在沉 浸式显示设备漫游过程中的图像质量,弥补目前市面上沉浸式显示设备分辨率不足的缺陷,给体验者提供 更加投入的沉浸式飞行仿真视景漫游体验。
[0287] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的 任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈