APP下载

基于改进Blinn-Phong光照模型的机载SVS地形着色方法

2024-02-26杨世保赵宝奇冯国昌

电光与控制 2024年2期
关键词:视景着色顶点

俞 键, 杨世保, 赵宝奇, 丁 浩, 冯国昌

(1.中国航空工业集团公司洛阳电光设备研究所,河南 洛阳 471000;2.空装驻洛阳地区第二军事代表室,河南 洛阳 471000)

0 引言

在民用航空领域,低能见度一直是航空安全的主要威胁之一,有30%的致命事故是由能见度不足、飞行员态势感知能力受限,导致飞机撞向地面或者障碍物。合成视景系统(SVS)是一种新型机载视景系统,利用机载数据库、飞机位置及姿态信息生成飞机前方外部场景的三维虚拟视景,能够在低能见度气象条件下,为飞行员提供如同晴朗昼间飞行条件下的驾驶优势。

常用的三维地形着色方法是纹理贴图,文献[1]使用地形、纹理数据库进行了三维地形渲染研究,文献[2]研究使用卫星或航拍得到的图片生成三维地形纹理,文献[3]采用数字高程模型(DEM)数据生成虚拟纹理。但在机载合成视景系统中,嵌入式计算平台资源有限,使用预先生成的纹理贴图着色会占用大量的存储资源,同时需要频繁读取和调度纹理,额外占用内存资源。

随着计算机图形学的发展,使用光照模型进行三维渲染的方法也得到了应用,它渲染的阴影较为真实,是三维渲染的主要发展方向[4-5]。光线追踪(Ray tracing)、路径追踪等全局光照模型是前沿研究热点,但它们主要聚焦于增强场景的真实感,计算量非常大[6-8]。光线追踪的时间复杂度为O(I*N),其中,I是生成的图像中的像素数,N是场景中物体的数量[9-10]。而在三维地形场景中,几何体的数量以百万计,目前的机载嵌入式硬件难以实现光线追踪算法。因此,计算复杂度仅为O(1),模型简单、计算量小、三维显示效果好的局部光照模型成为机载合成视景系统三维地形着色的研究重点。

Rockwell Collins公司的SCHELL等[11]使用局部光照模型Gouraud进行视景系统三维地形着色,能够产生平滑的着色效果。但是,随着对机载合成视景显示分辨率和地形精细度要求的提高,该方法因显示效果比较粗糙,已经逐渐无法满足合成视景系统发展的需求。

综上所述,针对目前机载合成视景应用中,纹理贴图需要大量纹理数据库存储资源、基于光线追踪的全局光照模型对嵌入式软硬件资源要求高、局部光照模型Gouraud着色效果比较粗糙等问题,本文研究了基于Blinn-Phong局部光照模型的三维地形着色方法,针对其在机载合成视景上的应用进行了模型改进,并优化了顶点颜色映射、法向量计算算法。仿真试验结果表明,该方法的显示效果和绘制性能能够满足机载合成视景应用要求。

1 改进Blinn-Phong光照模型

1.1 Blinn-Phong光照模型

Phong光照模型是典型的局部光照模型,Blinn-Phong光照模型以Phong模型为基础,显示效果更柔和,而且由于Blinn-Phong的光照模型省去了计算反射光线的过程,运算速度更快。

Blinn-Phong光照模型基于标记为a,d,s 3种类型的反射分量,可模拟不同的光照效果和材质:

1) a,即环境光反射(Ambient reflection),模拟低级光照,影响场景中的所有物体;

2) d,即漫反射(Diffuse reflection),根据光线的入射角调整物体亮度;

3) s,即镜面反射(Specular reflection),用以展示物体的光泽,观察方向与镜面反射方向越接近,该部分越明显。

Blinn-Phong光照模型计算中涉及的各方向向量见图1。

图1 Blinn-Phong光照模型示意图Fig.1 Diagram of Blinn-Phong illumination model

图中,向量L指光照方向向量取反,N指地表P点的法向量,R代表光反射的方向,V指观察向量,是从地表P点到摄像机的向量。

Blinn-Phong模型的算式为

(1)

式中,漫反射Ld为

(2)

镜面反射Ls通过V和L的半程向量H与法向量N的夹角α来计算,即

(3)

环境光La为

La=KaIa

(4)

其中:Kd为漫反射系数;Ks为镜面反射系数;Ka为环境光反射系数;Ia为光强;r为光源到地表P点的距离;u为高光衰减指数。

1.2 模型在机载合成视景系统中的应用问题

在机载合成视景系统中,一般认为太阳光线是方向光,场景中任何位置入射光方向相同且入射光强不变。以方向光模拟太阳光源,使用Blinn-Phong光照模型进行地形着色仿真,在部分场景下,可能发生明显的地形高光反射(见图2),影响三维地形显示效果。

图2 Blinn-Phong光照模型着色效果Fig.2 A typical Blinn-Phong illumination model shading effects

通过分析可知,当模拟太阳光照时,I/r2近似为固定值,通过半程向量与地表法向量的夹角α计算镜面反射分量Ls。式(3)中,当角α接近于0°时,cosα接近于1,Ls分量达到最大,镜面反射效果明显。

模型中的镜面反射分量产生的地形高光,会给飞行员观察合成视景显示的内容带来干扰,并导致飞行员视觉疲劳。因此,需要对Blinn-Phong光照模型进行改进。

1.3 模型在机载合成视景系统应用上的改进

在机载合成视景系统中,飞行员主要的关注点不是地形的高光(镜面反射部分),而是通过不同高程的颜色和地形阴影来判断地形的高度和起伏程度,因此可以消除地形高光以减少对飞行员的干扰。

分析式(3)可知,通过控制高光衰减指数u,或者改进模型的方法可以消除镜面反射Ls造成的地形高光。改变不同高光衰减指数u的着色效果见图3,地形上依旧有部分山脊出现高光,改变u无法消除地形高光。

图3 不同高光衰减指数u的着色效果Fig.3 Shading effect of different index u

对镜面反射模型Ls进行改进,算式为

(5)

式中,Rh为与地形高程相关的系数。

本文对Blinn-Phong光照模型进行改进,简化了镜面反射计算模型,一方面避免地形高光影响飞行员观察合成视景地形,另一方面改进后的模型能减少地形阴影计算复杂度,提高机载合成视景绘制帧率。改进后的模型着色效果见图4。

图4 改进后Blinn-Phong光照模型着色效果Fig.4 Effect of the improved Blinn-Phong illumination model

2 地形着色优化

基于改进Blinn-Phong光照模型的机载合成视景三维地形着色数据流见图5。

图5 地形着色数据流图Fig.5 Data stream of terrain shading

首先,从地形数据库中获取顶点DEM数据并进行处理,根据顶点高程数据进行颜色映射,根据顶点三维坐标进行法向量计算,然后,将顶点颜色、坐标、法向量通过OpenGL管线传递给改进后的Blinn-Phong光照模型进行渲染绘制。

2.1 顶点颜色映射优化

根据AC 20-167A[12]和RTCA DO-371[13]的要求,合成视景地形需要通过不同的颜色来表征海拔或绝对高度。文献[3]编辑生成颜色映射表来生成纹理图片,如图6所示,该方法的缺点是需要借助第三方工具,并且额外生成纹理图片,占用系统软硬件资源。

图6 文献[3]通过生成纹理图片完成顶点颜色映射Fig.6 Literature [3] completes vertex color mapping by generating texture images

基于降低机载嵌入式平台资源占用的需求,本文引入基于地形高度的颜色色带,作为地形着色程序的配置文件输入,能在不更改主程序的情况下进行配色方案更新,使顶点颜色映射方案适用于PFD(Primary Flight Display)或HUD(Head Up Display)。相比于文献[3]的方法,本文方法能节约3*N*MByte的存储资源(3表示顶点颜色为24 bit,N表示每个地块的顶点个数,M表示地形块数)。

优化后的顶点颜色映射流程如下。

1) 根据水体数据库中包含的水体地形信息,对地形数据库中属于水体的顶点进行标记,然后将地形的高程DEM数据与合成视景色带进行映射。

假设合成视景色带长度为L,色带上按照高程增加方向,任一点i的颜色为CRGB,i(i=0,1,…,L),色带对应的高度范围为G。

2) 如果顶点a不属于水体中的地形顶点,a的原始DEM高程数据为H(a),顶点a的颜色Col(a)与色带映射关系为

Col(a)=CRGB,i

(6)

式中,

(7)

3) 如果顶点a属于水体中的地形顶点,选取Col(a)=(Ri*0.2,Gi*0.2,221.0),其中,Ri,Gi分别表示RGBi的红、绿通道分量。

2.2 顶点法向量计算优化

由于合成视景DEM数据是基于规则矩形网格的形式组织,一般会将整块DEM数据划分成小块进行调度。因此,需要考虑以划分后的小块地形为单位进行地形着色渲染。但是,使用改进后的Blinn-Phong光照模型在划分后的地块边缘进行着色时,发现地块边缘过渡衔接不平滑,相邻地块存在色差,表现为颜色断层,影响合成视景地形的显示效果,如图7所示。

图7 法向量计算优化前的着色效果图Fig.7 Shading effect before normal vector calculation optimization

经分析,由于地形数据被划分成矩形网格进行处理和绘制,在计算网格边缘顶点法向量时,仅考虑了地块内相邻顶点来计算该点的法向量,在地块衔接绘制时,相邻地块的光照模型着色结果不统一,会出现明显色差。

本文优化了顶点法向量计算算法,将顶点分为地块内部、地块边缘和地块顶角3种情况,分别进行法向量计算,消除相邻地块顶点着色结果的色差。优化后的顶点法向量计算流程如下。

1) 如果需要计算划分后的地块内部任一顶点P的法向量,地形DEM顶点数据的平面位置关系如图8所示。

图8 地块内部顶点P法向量计算Fig.8 Normal vector calculation of vertex P inside the block

与点P相邻的顶点有A,B,C,D,E和F(每个顶点坐标为(xi,yi,zi))6个顶点,构成了△DAP,△PBC,△PEB,△PAE,△PCF和△DPF共6个三角形。计算过程以三角形△DAP法向量计算为例,叉乘时要注意法向量方向的正确性(垂直地面朝上),使得光照计算结果统一。具体算式为

(8)

则顶点P法向量为

(9)

2) 如果需要计算划分后的地块边缘任一顶点P(不在地块4个顶角)的法向量,地形DEM顶点数据的平面位置关系如图9所示。

图9 地块边缘(不在地块4个顶角)顶点P法向量计算Fig.9 Normal vector calculation of vertex P at the edge(not vertexes) of the block

注意划分地块时,要使相邻地块边缘存在顶点重叠,也就是D1和D、B1和B顶点坐标相同,一方面在地形绘制时避免地形衔接“裂缝”,另一方面只需要额外从相邻的地块读取A1,E1两个顶点的坐标,参与P点法向量的计算。

顶点P法向量为

(10)

3) 如果需要计算划分后的地块边缘任一顶点P(位于地块4个顶角)的法向量,地形DEM顶点数据的平面位置关系如图10所示。需要额外从对角的地块Z读取A3,E3,B3这3个顶点的坐标,参与点P法向量的计算。

图10 地块边缘(位于地块4个顶角)顶点P法向量计算Fig.10 Normal vector calculation of vertex P in the four vertexes of the block

顶点P法向量为

(11)

图7所示问题优化后的着色效果如图11所示。可以看到,经过优化,地块衔接处已经没有明显色差,颜色过渡平滑。

图11 法向量计算优化后的着色效果Fig.11 Shading effect after normal vector calculation optimization

3 试验结果与分析

在PC仿真平台上对纹理贴图着色、Blinn-Phong光照模型着色以及基于改进Blinn-Phong光照模型的地形着色方法进行了对比试验。其中,纹理贴图着色方法调用纹理数据库绘制地形,Blinn-Phong光照模型作为对比方法引入本次试验。

主要从显示效果和绘制性能两方面对基于改进Blinn-Phong光照模型的机载合成视景地形着色方法与其他两种方法进行对比评价。

数据方面,试验采用的DEM数据精度为3″,即分辨率为90 m。使用900个经纬度地块的数据,DEM数据总量为2475 MiB,地形采样点个数约为12.96亿。

3.1 显示效果对比

选取某地高度5000 m、航向180°的位置,对3种着色效果进行对比,在这个位置的视场内地形从海拔160 m到2000 m连续变化,跨越的高程颜色映射范围较广,并且地形复杂,多山且高低起伏不平,能够很好地体现着色算法的效果差异。

基于驾驶舱主飞行显示器(PFD)合成视景系统彩色三维地形显示的需求,进行了纹理贴图、Blinn-Phong光照模型及改进Blinn-Phong光照模型的三维地形着色方法绘制效果对比,如图12所示。

图12 基于PFD的显示效果对比Fig.12 Display effect comparison based on PFD

在基于PFD的合成视景山体轮廓和阴影显示效果上,图12(b)中的山体地形产生大面积高光,影响飞行员观察山体轮廓。图12(c)中的山体地形着色效果和图12(a)纹理着色比较接近,阴影自然,地形着色柔和,颜色过渡平滑。

基于驾驶舱平视显示器(HUD)合成视景系统绿色三维地形显示的需求,进行了纹理贴图、Blinn-Phong光照模型及改进Blinn-Phong光照模型的三维地形着色方法绘制效果对比,如图13所示。

图13 基于HUD的显示效果对比Fig.13 Display effect comparison based on HUD

在基于HUD的合成视景山体轮廓和阴影显示效果上,图13(b)中的山体地形产生了局部绿色亮斑,与周围地形差异较大,地形轮廓比较杂乱。图13(c)中的山体地形着色效果和图13(a)纹理着色比较接近,显示效果较好。

综上所述,基于改进Blinn-Phong光照模型的着色方法和纹理贴图着色效果接近,优于Blinn-Phong光照模型地形着色效果。

3.2 绘制性能对比

基于同一组动态激励及数据库,在PC仿真平台上实现了纹理贴图、Blinn-Phong光照模型及改进Blinn-Phong光照模型等3种合成视景三维地形着色方法,各运行1 h,采集CPU占用率、帧率、GPU占用率、内存占用、存储占用等性能指标,如图14所示。

图14 3种地形着色方法绘制性能Fig.14 Performance statistics of three methods

计算3种合成视景着色方法绘制性能平均值,对比结果见表1。

表1 绘制性能平均值对比Table 1 Average rendering performance comparison

由表1可以看出,改进Blinn-Phong光照模型相比纹理贴图着色大幅减少了内存、存储占用,该方法额外进行了实时地形三维着色计算,CPU占用率、GPU占用率有所上升,平均帧数有所下降,但仍能保持较高的显示帧率。改进Blinn-Phong光照模型较改进之前,各项绘制性能都有显著优化。

4 结束语

本文对纹理贴图、基于光线追踪的全局光照模型等三维地形着色方法的局限性进行了分析,设计了一种基于改进Blinn-Phong光照模型的机载合成视景系统地形着色方法,改进了光照模型,优化了顶点颜色映射、法向量计算算法。试验结果表明,基于改进Blinn-Phong光照模型地形着色方法的显示效果和纹理贴图着色接近,大幅减少了内存和存储资源占用,并且绘制性能优于改进前,满足机载合成视景系统要求,为进一步在机载平台上的工程应用奠定了基础。

猜你喜欢

视景着色顶点
蔬菜着色不良 这样预防最好
过非等腰锐角三角形顶点和垂心的圆的性质及应用(下)
苹果膨大着色期 管理细致别大意
关于顶点染色的一个猜想
10位画家为美术片着色
vega及其在战场环境视景仿真系统中的应用
全回转拖轮运动建模与视景仿真
Thomassen与曲面嵌入图的着色
基于Vortex与Vega Prime的车辆模拟器动力学与视景仿真
基于STK的卫星实时视景仿真系统设计