国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于漸變紋理貼圖的機(jī)載圖形顯示抗鋸齒方法研究

2022-11-03 03:15黃子碩韓志軍
無線互聯(lián)科技 2022年15期
關(guān)鍵詞:走樣鋸齒顯示器

鄭 悅,何 婕,黃子碩,韓志軍

(1.北京青云航空儀表有限公司,北京 101300;2.空軍駐北京地區(qū)第五軍代表室,北京 101300)

0 引言

當(dāng)今電子機(jī)載設(shè)備在整個(gè)飛行過程中擔(dān)負(fù)著飛行控制、導(dǎo)航、通信等多種任務(wù),尤其是機(jī)載顯示器[1],是新一代航空電子系統(tǒng)實(shí)現(xiàn)綜合化、數(shù)字化和智能化的核心與關(guān)鍵[2],也是人機(jī)交互的橋梁,把多種飛行參數(shù)轉(zhuǎn)換為視覺信息,顯示在顯示器上,飛行員讀取這些信息,做出正確的判斷和決策。 隨著現(xiàn)代飛行技術(shù)的發(fā)展與飛機(jī)性能的日益提高,飛行員需要的信息越來越多,對機(jī)載設(shè)備的顯示質(zhì)量提出了越來越高的要求。

為了更直觀地給飛行員提供顯示信息,要求盡可能用圖形顯示來代替?zhèn)鹘y(tǒng)的座艙機(jī)械儀表[3]。 圖形顯示方式的采用,使得一些復(fù)雜的飛行狀況變得一目了然,顯示方式變得直觀、方便、靈活。 至此,艙內(nèi)圖形顯示開始占據(jù)越來越重要的位置。 20 世紀(jì)70 年代中期,電子化、數(shù)字化的綜合顯示儀表平視儀的研制,讓所有需要顯示的數(shù)據(jù)或消息出現(xiàn)在飛行員平視方向的前方,被認(rèn)為是近代戰(zhàn)斗機(jī)不可缺少的航空電子裝備之一。 隨著技術(shù)的發(fā)展,機(jī)載電子綜合顯示器對機(jī)載圖形顯示軟件的開發(fā)提出了更高的要求,一方面要求圖形生成速度滿足界面更新的要求;另一方面要求提高畫面質(zhì)量,滿足飛行員的視覺要求。 本文首先對機(jī)載圖形軟件的功能和開發(fā)難點(diǎn)進(jìn)行了介紹;其次給出了機(jī)載圖形軟件的開發(fā)流程和方法;為提升圖形顯示質(zhì)量,對幾種圖形畫面反走樣技術(shù)進(jìn)行了分析,并提出了基于紋理貼圖的抗鋸齒方法,對比分析結(jié)果驗(yàn)證了本文所提方法的有效性;最后,對基于OpenGL ES 的機(jī)載圖形軟件開發(fā)進(jìn)行了總結(jié)和展望。

1 機(jī)載圖形軟件介紹

1.1 機(jī)載圖形軟件的功能

目前,機(jī)載綜合顯示器可實(shí)現(xiàn)飛機(jī)姿態(tài)和狀態(tài)信息的動態(tài)實(shí)時(shí)顯示,其典型畫面為姿態(tài)指示(Attitude Indication,AI) 和水平狀態(tài)指示(Horizontal State Indication,HSI)[4]。 AI 和HSI 畫面包括復(fù)雜的天地球圖形和羅盤畫面等,并且要求畫面實(shí)時(shí)反映飛機(jī)的姿態(tài)和航向信息。 典型機(jī)載顯示器產(chǎn)品主畫面如圖1所示。

圖1 機(jī)載顯示器畫面實(shí)例

從圖1 可以看出,典型的機(jī)載顯示器系統(tǒng)為姿態(tài)指示畫面(AI)和水平態(tài)勢指示畫面(HSI)的組合,包括俯仰角、橫滾角、空速、高度、垂直速度、全羅盤、無線電方位指示、數(shù)字顯示、中英文字體等。 由此可見,顯示系統(tǒng)的幾何圖形大多是由點(diǎn)、線、多邊形等組合拼接而成,因此,機(jī)載圖形顯示軟件的基本功能是實(shí)現(xiàn)對點(diǎn)、線、多邊形、字符這些幾何圖形的處理。

1.2 機(jī)載圖形軟件開發(fā)面臨的難題

機(jī)載圖形顯示軟件用于產(chǎn)生飛機(jī)的各種飛行參數(shù)畫面,接收并處理接收到的指令和繪圖數(shù)據(jù),實(shí)時(shí)完成繪圖工作,產(chǎn)生相應(yīng)的字符和圖形,并形成視頻信號送至液晶顯示器。 在設(shè)計(jì)和實(shí)現(xiàn)機(jī)載圖形顯示軟件時(shí),需綜合考慮以下問題。

(1)實(shí)時(shí)性問題。 圖形處理器每生成一幅畫面均需要計(jì)算和掃描整幅屏幕,在單位時(shí)間內(nèi)要處理和顯示的像素很多,而機(jī)載顯示器是對實(shí)時(shí)性要求很高的系統(tǒng)。 飛機(jī)的飛行狀態(tài)變化快,座艙內(nèi)圖形顯示出現(xiàn)可覺察的延遲或讀數(shù)誤差,都有可能釀成重大飛行事故,所以圖形軟件要保持畫面顯示的連續(xù)性,數(shù)據(jù)顯示的實(shí)時(shí)性,才能保證飛行的安全性。

(2)顯示效果問題。 基于液晶顯示器的圖形顯示畫面中都有各種各樣的走樣問題,如:直線、多邊形旋轉(zhuǎn)的鋸齒,字符顯示模糊。 如何優(yōu)化圖形顯示效果,在縮短處理時(shí)間的同時(shí),提升圖形顯示效果,是機(jī)載圖形顯示研究的重要問題。

2 機(jī)載圖形軟件的開發(fā)介紹

機(jī)載圖形顯示技術(shù)經(jīng)過了幾十年的發(fā)展,至今已形成了若干典型的圖形處理軟件、技術(shù)和開發(fā)平臺。目前,圖形顯示開發(fā)軟件大部分是基于OpenGL 庫,其優(yōu)點(diǎn)在于用戶不必從底層開始開發(fā),只需將工作集中于設(shè)計(jì)和實(shí)現(xiàn)圖形軟件功能。 OpenGL 庫雖然功能全面,但過于龐大,函數(shù)很多但使用有限。 因此,現(xiàn)在針對嵌入式圖形的開發(fā)大多使用OpenGL ES 庫。

對于機(jī)載圖形軟件的開發(fā),傳統(tǒng)方法是手工編碼開發(fā)圖形軟件,利用匯編或C 等語言開發(fā)繪圖函數(shù),或直接調(diào)用OpenGL 等圖形API 開發(fā),該方法對開發(fā)各方面的可控性良好,對源代碼具有完全訪問權(quán),便于歸檔及測試。 缺點(diǎn)是開發(fā)時(shí)圖形效果不可見,只有下載至硬件環(huán)境中才能看到,需要較多的人力資源,而且開發(fā)過程很容易出錯(cuò)。

現(xiàn)代方法更多使用高級圖形建模軟件,具有功能強(qiáng)大的用戶交互單元即圖形用戶接口(GUI),開發(fā)者可在上位機(jī)通過點(diǎn)、線等基礎(chǔ)圖元直觀地建模,可直接看到開發(fā)結(jié)果,并且圖形可動態(tài)顯示,無需編寫代碼,繪制完成后可根據(jù)需要生成OpenGLOpenGL ES 代碼,開發(fā)簡易快捷。 這樣的建模軟件以VAPS 及其套件CCG(C Code Generator)和IDATA 為代表,本文在機(jī)載圖形軟件開發(fā)過程中使用的是IDATA 軟件。 IDATA開發(fā)界面如圖2 所示。

圖2 IDATA 開發(fā)界面

典型的IDATA 工程文件包括3 個(gè)部分:

(1)Make 文件。 主要用于工程的編譯,包括各庫文件、文件的聲明和編譯路徑。

(2)C/Cpp 文件。 邏輯控制文件,包括變量聲明和顯示任務(wù)調(diào)用函數(shù)。 IDATA 必須在安裝有VC 編譯器的系統(tǒng)下才能正常運(yùn)行。

(3)Xml 文件。 圖形定義文件,包括所有界面元素的名稱、位置、顏色、相關(guān)變量等信息。

IDATA 工具由以下4 部分組成:

(1)Font Creator。 用來定制儀表中的文字、符號等。

(2)IDATAModeler。 核心開發(fā)工具,對界面的圖形和內(nèi)部邏輯關(guān)系進(jìn)行開發(fā),全部基于圖形化開發(fā)。

(3)TestDataGenerator。 定義和修改測試數(shù)據(jù)。

(4)IDATALayout Edit。 將 Modeler 生成的模塊進(jìn)行排版和組合,并生成輸出文件。

IDATA 能夠?qū)D形顯示繪圖代碼和處理邏輯控制代碼分離,使兩者之間的聯(lián)系轉(zhuǎn)而由資深定義的基于時(shí)間驅(qū)動的通信協(xié)議所取代。 因此,使用IDATA 工具開發(fā)的軟件后期的顯示更改和邏輯更改相互獨(dú)立、互不影響。 成功地劃分了飛機(jī)制造商的設(shè)計(jì)任務(wù),有利于座艙顯示系統(tǒng)硬件更新?lián)Q代、軟件移植升級以及人機(jī)交互接口標(biāo)準(zhǔn)化。

IDATA 座艙顯示系統(tǒng)具有更好的開放性、跨平臺性和可重用性,其特性使得它非常適用于嵌入式系統(tǒng)、設(shè)備顯示和仿真應(yīng)用的開發(fā)。 無需進(jìn)行費(fèi)時(shí)的代碼生成和編譯連接,減少了應(yīng)用到仿真和其他數(shù)據(jù)顯示及可視化應(yīng)用中的圖形開發(fā)和集成時(shí)間。

IDATA 軟件具有的優(yōu)勢包括:(1)開發(fā)流程短,具有良好的圖形界面,操作簡單,易于掌握。 (2)支持OpenGLES 標(biāo)準(zhǔn),包括:紋理映射、深度、模板遮蓋、裁剪、平滑渲染、反走樣、alpha 混合、視頻紋理以及3D 顯示。 (3)跨平臺特性,以及支持OpenGL ES庫,非常適合用來進(jìn)行嵌入式、設(shè)備顯示和仿真應(yīng)用的開發(fā)。 (4)生成的程序是一種經(jīng)優(yōu)化的OpenGL 實(shí)現(xiàn),最大限度地提高了圖形軟件的效率。

具體開發(fā)流程為:用IDATA 開發(fā)顯示器的所有畫面,設(shè)置畫面中各圖元運(yùn)動方式或顯示邏輯,繪制完畢后生成OpenGL ES 代碼模型,基于此模型在WindRiver WorkBench 開發(fā)環(huán)境下繼續(xù)開發(fā),將發(fā)送來的各種數(shù)據(jù)與模型關(guān)聯(lián),并編寫數(shù)據(jù)發(fā)送、按鍵控制、液晶屏狀態(tài)控制等邏輯代碼,軟件開發(fā)完畢后,編譯生成目標(biāo)碼,并下載至顯示器產(chǎn)品,軟件在Vxworks 系統(tǒng)中運(yùn)行。 具體流程如圖3 所示。

圖3 圖形軟件開發(fā)流程

圖3 可以看出,用IDATA 生成的OpenGL ES 畫面模型是圖形軟件的基礎(chǔ),為了提高畫面顯示質(zhì)量和生成速度,需要對OpenGL ES 有一定了解。

OpenGL ES 是簡化了的OpenGL,OpenGL ES 是一種面向嵌入式系統(tǒng)(包括手持式設(shè)備、飛機(jī)儀器、車輛等)的全功能2D 與3D 圖形的跨平臺圖形應(yīng)用編程接口庫。 OpenGL ES 具體包括幾何處理、光柵化、紋理映射、片元處理以及幀緩沖技術(shù)等。

根據(jù) OpenGL ES 核心庫的定義,繪制流程先對幾何頂點(diǎn)數(shù)據(jù)(包括模型的頂點(diǎn)集、線集、多邊形集)進(jìn)行處理,包括逐個(gè)頂點(diǎn)操作和圖元組合、運(yùn)算器等,即對頂點(diǎn)進(jìn)行變換,通過世界坐標(biāo)變換定義顯示內(nèi)容,再通過視口變換定義顯示位置,對圖元進(jìn)行剪裁以適合視區(qū)大小,在此基礎(chǔ)上再對幾何圖元進(jìn)行處理。

在之后的光柵化過程中,通過點(diǎn)、直線、多邊形的二維描述,產(chǎn)生一系列的圖元,將所有圖元進(jìn)行逐個(gè)片元操作處理,再將處理結(jié)果作為像素存儲在幀緩存中,送至顯示器進(jìn)行顯示。

在開發(fā)嵌入式圖形顯示軟件中,如何在保證畫面實(shí)時(shí)性的前提下,提高畫面生成質(zhì)量,一直都是機(jī)載圖形軟件開發(fā)的難點(diǎn)。

3 機(jī)載圖形畫面反走樣技術(shù)研究

3.1 反走樣技術(shù)介紹

除了圖形畫面生成速度,畫面質(zhì)量也是圖形開發(fā)人員關(guān)注的重點(diǎn)。 一般在畫面中非水平且非垂直的直線和多邊形,或多或少都會呈現(xiàn)鋸齒狀邊界,這是因?yàn)橹本€、多邊形邊界在數(shù)學(xué)中描述是連續(xù)的,但在光柵顯示設(shè)備上表現(xiàn)直線、多邊形等,必須在離散位置采樣。由于采樣的不充分,造成信息失真叫做走樣,也就是鋸齒感。 用于減少或消除這種效果的技術(shù),被稱為反走樣技術(shù)也可稱為抗鋸齒技術(shù)[5-6]。 鋸齒邊緣效果如圖4 所示。

圖4 鋸齒邊緣效果

3.2 OpenGL ES 抗鋸齒函數(shù)

一般使用OpenGL ES 庫的開發(fā)人員,都會使用函數(shù)來減小點(diǎn)、線、多邊形的鋸齒效果。 OpenGL ES 庫中,可以使用全屏抗鋸齒的函數(shù)來實(shí)現(xiàn)平滑線和多邊形的邊緣。 其過程簡單描述為把圖像映射到緩存并放大,可以選擇放大倍數(shù),比如2 或4,倍數(shù)越大抗鋸齒的效果越好;再對放大后的圖像像素進(jìn)行采樣,一般選取2 個(gè)或4 個(gè)鄰近像素,把這些采樣混合起來后,生成最終像素,令每個(gè)像素?fù)碛朽徑袼氐奶卣?像素與像素之間的過渡色彩,令圖形的邊緣色彩過渡趨于平滑;再把最終像素還原回原來大小的圖像,并保存到幀緩存也就是顯存中,替代原圖像存儲起來,最后輸出到顯示器,顯示出一幀畫面。 這樣就等于把一幅模糊的大圖,通過細(xì)膩化后再縮小成清晰的小圖,放大像素還原過程如圖5 所示。

圖5 放大像素還原過程

開啟OpenGL ES 庫全屏抗鋸齒,可以對每幀畫面中的線和多邊形邊緣進(jìn)行上述的抗鋸齒處理,使渲染效果顯得更為逼真和自然。 這種方法優(yōu)勢是簡單直接,但缺點(diǎn)是比較消耗資源。 比如在實(shí)際產(chǎn)品中,一幅480×480 像素的畫面生成時(shí)間為20 ms,開啟了4 倍抗鋸齒效果后,由于圖形在繪制時(shí)被擴(kuò)大了4 倍來做抗拒鋸齒處理,其生成時(shí)間也延長了4 倍左右,這樣會延長畫面生成時(shí)間,影響畫面實(shí)時(shí)性。

使用函數(shù)全屏抗鋸齒的方法,操作簡單,可以對全屏幕的畫面做到優(yōu)化鋸齒的效果,但對硬件資源要求高,消耗很大。 可以用在CPU 速度快,屏幕大,但分辨率不高的條件下,進(jìn)而提升全屏優(yōu)化效果。

3.3 算法抗鋸齒

除了使用現(xiàn)有函數(shù)達(dá)到優(yōu)化鋸齒的目的,更直接的是使用反走樣算法[7-11]。 介紹一個(gè)常用算法思想,對于一個(gè)采樣點(diǎn),一般單像素采樣直線得到的顏色值只有 0 和1 兩種,這時(shí)可以增加色深等級,即賦予采樣點(diǎn)不同的灰度等級,通過采樣點(diǎn)灰度值的不同,能讓直線的邊緣平滑化到理想的程度。

按照通常的采樣方式,線段通過的像素會被完全涂純色,有了灰度級別后,可以使相關(guān)聯(lián)的上下像素以不同灰度表示采樣結(jié)果。 灰度值取決于像素點(diǎn)與中心線的相對位置關(guān)系,距離中心線越近,灰度值越高,相反,距離越遠(yuǎn)灰度值越低,其實(shí)現(xiàn)方法如圖6 所示。

圖6 灰度顏色填充示意

這樣的做法讓線條或矩形有一種邊緣顏色漸變效果,從而達(dá)到降低鋸齒感效果。 采用反走樣算法生成的有寬度的直線效果如圖7 所示。 該反走樣算法可以在直線的邊緣和端點(diǎn)處達(dá)到平滑鋸齒效果。 但算法抗鋸齒需要有一定數(shù)學(xué)基礎(chǔ)的開發(fā)人員使用,還需要長期研究和對各種情況的歸納總結(jié),才能達(dá)到良好的效果,這對開發(fā)者要求很高。

圖7 算法反走樣效果

3.4 基于漸變紋理貼圖的抗鋸齒方法

在做實(shí)際嵌入式圖形項(xiàng)目中,使用OpenGL ES 函數(shù)抗鋸齒軟件實(shí)時(shí)性差,而應(yīng)用軟件獲取圖元端點(diǎn)坐標(biāo)和顏色往往受到限制,導(dǎo)致使用算法抗鋸齒比較困難。 因此,本文提出了一種基于漸變紋理貼圖抗鋸齒的方式,在保證畫面實(shí)時(shí)性的前提下,可實(shí)現(xiàn)優(yōu)化鋸齒的效果。

通常情況下,在繪圖時(shí)各種形狀的圖元填充使用的都是純色,而紋理是由一幅圖像構(gòu)成,此圖像內(nèi)容可以為多種顏色的混合。 畫面生成時(shí),可以將此圖像填充到需要的填充圖元中,此過程稱作紋理貼圖。 簡單來說,是開發(fā)者給畫面中圖元繪制各種衣服,這樣可以將各種顏色混合的圖片或各種仿真照片貼入畫面的相應(yīng)位置,達(dá)到各種顯示效果。 紋理貼圖的方式在游戲中大量使用,從而讓游戲場景更加逼真。

實(shí)際項(xiàng)目中,畫面中有很多矩形需要做移動或旋轉(zhuǎn)動作,例如當(dāng)純白色矩形旋轉(zhuǎn)到一定角度時(shí),邊緣鋸齒感會很嚴(yán)重,如圖8 所示。 紋理貼圖優(yōu)化鋸齒的方法,基本思路在于繪制填充紋理時(shí),將紋理繪制為漸變色,紋理邊緣色應(yīng)接近背景色,如圖9 所示的填充紋理,其用于背景為黑色、需要填充為白色的矩形圖元,比如俯仰、橫滾、羅盤刻度線等。

圖8 純白色填充矩形旋轉(zhuǎn)角度后效果

圖9 漸變色的填充紋理

用漸變色的紋理貼圖,填充到之前的純白色矩形,旋轉(zhuǎn)一定角度后,由于填充顏色為漸變色,并且外圈邊緣色為接近背景的顏色,這樣可以消隱鋸齒,其效果如圖10 所示,可以看出有明顯的優(yōu)化鋸齒效果。

圖10 使用漸變色紋理矩形旋轉(zhuǎn)角度后效果

在實(shí)際產(chǎn)品中,羅盤刻度使用了純白色填充矩形,而未使用漸變紋理貼圖,其羅盤繪制效果如圖11 所示,可以看出有角度的矩形刻度有明顯的鋸齒痕跡。

圖11 純白色刻度的羅盤效果

將此方法應(yīng)用在實(shí)際顯示器產(chǎn)品中,顯示效果明顯改善,如圖12 所示為使用了漸變色紋理貼圖后,另一個(gè)項(xiàng)目的羅盤顯示效果,可以看到有角度的矩形刻度邊緣很平滑,大部分鋸齒感被消除,優(yōu)化效果等同于使用算法抗鋸齒的效果。

圖12 使用了漸變色紋理刻度的羅盤效果

采用紋理貼圖抗鋸齒方法,不僅可以避免使用OpenGL 函數(shù)全屏抗鋸齒而產(chǎn)生的時(shí)間消耗,并且可以僅對需要圖元進(jìn)行抗鋸齒優(yōu)化,相對于算法抗鋸齒來說,紋理貼圖更加簡單直觀,不用開發(fā)人員研究復(fù)雜的算法,直接繪制帶有抗鋸齒效果的貼圖,不僅縮短了開發(fā)的時(shí)間,還減小了開發(fā)的難度。 與OpenGL ES 全屏抗鋸齒方法相比,基于紋理貼圖的抗鋸齒方法的畫面質(zhì)量與開啟全屏4 倍抗鋸齒的效果相當(dāng),但其畫面生成速度與不開啟全屏抗鋸齒方法接近。 因此,基于紋理貼圖的抗鋸齒方法可以在保證圖形生成速度的基礎(chǔ)上,實(shí)現(xiàn)更好的抗鋸齒效果。

4 結(jié)語

本文提出了一種基于漸變紋理貼圖抗鋸齒的方法,在機(jī)載圖形軟件開發(fā)中具有一定的應(yīng)用價(jià)值,經(jīng)多型機(jī)載類產(chǎn)品試驗(yàn)驗(yàn)證,本文所提方法不僅可以保障畫面顯示的實(shí)時(shí)性,而且具有較好的畫面質(zhì)量。 但還有許多有待研究之處,具體如下:(1)對于其他OpenGL ES 片元操作方式還有待研究,可以嘗試其他的操作方法或者算法,在不影響畫面生成速度的情況下,實(shí)現(xiàn)其他形狀的不規(guī)則的區(qū)域顯示。 (2)貼圖抗鋸齒的方法雖然效果很好,但應(yīng)用略顯局限,只能應(yīng)用于線條和矩形圖元,對于其他多邊形和不規(guī)則圖形,還需研究相應(yīng)算法來進(jìn)行反走樣。

猜你喜歡
走樣鋸齒顯示器
“雙減”,如何確保落地實(shí)施不走樣
猛犸殺手——鋸齒虎
把顯示器“穿”在身上
基于G-Buffer的深度學(xué)習(xí)反走樣算法
一種新型點(diǎn)陣顯示器的設(shè)計(jì)
中國生殖健康(2018年1期)2018-11-06
感應(yīng)式帶電顯示器抗干擾處理
一種免測量的鋸齒磨削方法*
傷口多了就是鋸
趣味數(shù)獨(dú)4則