一種嵌入式操作系統(tǒng)三維圖形制作軟件的制作方法
【專利摘要】本發(fā)明屬于嵌入式操作系統(tǒng)三維圖形制作軟件領(lǐng)域,具體涉及一種用于車載導(dǎo)航系統(tǒng)、手機(jī)、嵌入式瀏覽器、數(shù)控機(jī)床等領(lǐng)域的嵌入式操作系統(tǒng)三維圖形制作軟件。一種嵌入式操作系統(tǒng)三維圖形制作軟件,由PicoGL函數(shù)庫,GUI Qt/Embedded,鼠標(biāo)鍵盤,Linux開發(fā)環(huán)境四部分組成;其中PicoGL程序庫完成對三維圖形的構(gòu)建,對三維環(huán)境的渲染;Qt/Embedded作為PicoGL的GUI,使PicoGL三維模型通過共享內(nèi)存的通信方式與Qt/Embedded的圖像信息交互、命令信息交,在嵌入式開發(fā)平臺上Linux開發(fā)環(huán)境內(nèi)完成整個三維圖形制作軟件的開發(fā)。本發(fā)明能夠在嵌入式開發(fā)平臺上完成三維圖形的繪制、三維環(huán)境的渲染、三維動畫的顯示以及人機(jī)互動的功能。
【專利說明】
一種嵌入式操作系統(tǒng)三維圖形制作軟件
技術(shù)領(lǐng)域
[0001]本發(fā)明屬于嵌入式操作系統(tǒng)三維圖形制作軟件領(lǐng)域,具體涉及一種用于車載導(dǎo)航系統(tǒng)、手機(jī)、嵌入式瀏覽器、數(shù)控機(jī)床等領(lǐng)域的嵌入式操作系統(tǒng)三維圖形制作軟件。【背景技術(shù)】
[0002]嵌入式系統(tǒng)的應(yīng)用日益廣泛,越來越普及,可以說無處不在。任何一個人可能都有從小到大的嵌入式電子產(chǎn)品,小到1?3、1^4、^^、手機(jī),大到平板電腦、家電設(shè)備以及軍工產(chǎn)品。而在工業(yè)控制領(lǐng)域中,搭載嵌入式設(shè)備和技術(shù)的數(shù)控機(jī)床、工業(yè)機(jī)械臂、工業(yè)機(jī)器人以及其他的智能控制系統(tǒng)正逐漸影響和改變傳統(tǒng)的工業(yè)加工方式。這其中,以ARM微處理器、 Linux操作系統(tǒng)為主的嵌入式控制設(shè)備在整個嵌入式行業(yè)中占據(jù)了很高的比例,而且以很高的速度快速增長。ARM微處理器到2001年就幾乎已經(jīng)壟斷了全球RISC芯片市場,成為業(yè)界實(shí)際的RISC芯片標(biāo)準(zhǔn)。
[0003]目前,基于嵌入式系統(tǒng)的圖形圖像應(yīng)用已成為嵌入式開發(fā)領(lǐng)域中一個非常重要的部分,例如手持設(shè)備下的圖形界面、手機(jī)游戲、電子地圖等等。尤其是3D程序的開發(fā),因?yàn)槭芟抻谇度胧皆O(shè)備相對有限的硬件和軟件資源,更是給開發(fā)人員帶來了巨大的困難和挑戰(zhàn)。 為此,如何在當(dāng)前普遍流行的嵌入式系統(tǒng)上建立3D程序開發(fā)平臺并以該平臺為基礎(chǔ)進(jìn)行3D 程序的開發(fā),最終向上層的3D應(yīng)用程序開發(fā)人員提供一套完整的三維圖形接口是此嵌入式操作系統(tǒng)三維圖形制作軟件解決的關(guān)鍵問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于提供一種包括三維圖形創(chuàng)建部分,三維環(huán)境渲染部分,三維動畫顯示部分以及人機(jī)互動部分,在ARM11嵌入式開發(fā)平臺Linux操作系統(tǒng)下完成的一種嵌入式操作系統(tǒng)三維圖形制作軟件。
[0005]本發(fā)明的目的是這樣實(shí)現(xiàn)的:
[0006]一種嵌入式操作系統(tǒng)三維圖形制作軟件,由PicoGL函數(shù)庫,GUI Qt/Embedded,鼠標(biāo)鍵盤,Linux開發(fā)環(huán)境四部分組成;其中PicoGL程序庫完成對三維圖形的構(gòu)建,對三維環(huán)境的渲染;Qt/Embedded作為PicoGL的⑶I,使PicoGL三維模型通過共享內(nèi)存的通信方式與 Qt/Embedded的圖像信息交互、命令信息交,在嵌入式開發(fā)平臺上Linux開發(fā)環(huán)境內(nèi)完成整個三維圖形制作軟件的開發(fā)。
[0007]用PicoGL函數(shù)庫完成對三維圖形基本圖元的創(chuàng)建,并將這些基本圖元通過函數(shù)庫中的坐標(biāo)轉(zhuǎn)換函數(shù)實(shí)現(xiàn)復(fù)雜三維圖形的設(shè)計(jì)工作,完成圖形繪制工作后,將圖形幀緩存通過共享內(nèi)存的通信方式映射至Linux環(huán)境下的內(nèi)存塊,完成圖像幀緩存的映射;采用共享內(nèi)存的方式,讀取Qt/Embedded的指令,完成對PicoGL創(chuàng)建好的三維圖形的操作。
[0008]將Qt/Embedded作為PicoGL函數(shù)庫的⑶I顯示,通過嵌入式⑶I將OpenGL ES的圖形顯示出來。
[0009]本發(fā)明的有益效果在于:
[0010]本發(fā)明能夠在嵌入式開發(fā)平臺上完成三維圖形的繪制、三維環(huán)境的渲染、三維動畫的顯示以及人機(jī)互動的功能?!靖綀D說明】
[0011]圖1是本發(fā)明裝置整體結(jié)構(gòu)組成框圖?!揪唧w實(shí)施方式】
[0012]下面將結(jié)合附圖舉例對本發(fā)明做更詳細(xì)的描述:
[0013]本發(fā)明提供了一套基于嵌入式操作系統(tǒng)的三維圖形制作軟件。系統(tǒng)采用ARM11 (S3C6410)作為嵌入式開發(fā)平臺,搭載Linux操作系統(tǒng),并在Qt/Embedded中結(jié)合PicoGL (OpenGL ES)程序庫完成嵌入式開發(fā)平臺下Qt/Embedded框架內(nèi)的三維圖形制作軟件的開發(fā)。該嵌入式操作系統(tǒng)三維圖形制作軟件包括四部分:PicoGL函數(shù)庫部分,Qt/Embedded GUI部分,鼠標(biāo)、鍵盤交互部分,Linux操作系統(tǒng)部分。PicoGL函數(shù)庫用來提供基本三維圖元的繪制和三維場景的渲染,Qt/Embedded用來作為PicoGL輸出的⑶I,用來顯示三維圖像和渲染后的三維場景,鼠標(biāo)、鍵盤用來和三維圖形進(jìn)行人機(jī)互動。本發(fā)明能夠在嵌入式開發(fā)平臺上完成三維圖形的繪制、三維環(huán)境的渲染、三維動畫的顯示以及人機(jī)互動的功能。
[0014]本發(fā)明可以通過鼠標(biāo)、鍵盤調(diào)用嵌入式開發(fā)平臺的底層驅(qū)動,然后應(yīng)用程序根據(jù)驅(qū)動傳來的信息進(jìn)行設(shè)定三維圖形的運(yùn)動學(xué)參數(shù),三維圖形的漫游環(huán)境,控制三維圖形的運(yùn)動過程,從而實(shí)現(xiàn)與三維仿真場景的人機(jī)互動功能。[〇〇15]嵌入式三維圖形創(chuàng)建部分,采用PicoGL集成庫設(shè)計(jì)基本圖元,然后將基本圖元通過坐標(biāo)轉(zhuǎn)換函數(shù)組合成復(fù)雜的三維圖形,并在自由部分添加自由度,從而完成整個三維構(gòu)型的創(chuàng)建,并通過內(nèi)存共享通信技術(shù)將三維構(gòu)型映射到指定的內(nèi)存塊空間。
[0016]嵌入式三維環(huán)境渲染部分,采用PicoGL的環(huán)境渲染功能完成對光照的處理,使得仿真環(huán)境更加真實(shí),從而完成嵌入式三維環(huán)境的渲染工作,并將渲染后的信息通過內(nèi)存共享通信技術(shù)將環(huán)境映射到指定的內(nèi)存塊空間。
[0017]嵌入式三維動畫顯示部分,將指定內(nèi)存塊空間渲染之后的三維構(gòu)型通過讀取共享內(nèi)存的信息,將信息讀取到Qt/Embedded的中央窗口,并設(shè)定好顯示模式,將渲染之后的三維構(gòu)型在中央窗口顯示出來,并在設(shè)定定時器的刷新頻率,進(jìn)而刷新中央窗口,實(shí)現(xiàn)三維動畫顯示。
[0018]人機(jī)互動部分,通過Qt/Embedded的鼠標(biāo)、鍵盤處理函數(shù)捕捉鼠標(biāo)、鍵盤的具體操作,并通過共享內(nèi)存的通信方式完成對整個視景的操作和對三維構(gòu)型的操作。[〇〇19] 如圖1所示,本發(fā)明包括PicoGL三維圖像處理模塊,Qt/Embedded三維圖像顯示模塊,鼠標(biāo)、鍵盤人機(jī)互動模塊。
[0020] PicoGL三維圖像處理模塊,PicoGL采用了操作tty設(shè)備的方法讓終端獨(dú)占 framebuff er設(shè)備,然后再輸出圖形,從而達(dá)到穩(wěn)定輸出的目的。由于PicoGL并不具備良好的交互性,因此,在此基礎(chǔ)上進(jìn)行改進(jìn)。通過在PicoGL中tk.c文件下開辟一塊800*480*2的共享內(nèi)存,用來映射當(dāng)前的圖像緩存,并在Glx.c文件下的函數(shù)int fbdev_glXMakeCurrent (FBDevGLXContext*ctx)中將共享內(nèi)存指向ctx_>screen,并關(guān)閉tty設(shè)備,避免獨(dú)占 framebuf f er。這就完成了三維圖像到共享內(nèi)存的映射。[0021 ] Qt/Embedded三維圖像顯示模塊,在Qt/Embedded中,打開在PicoGL中開辟的共享內(nèi)存,并在坑/^11^6(1(16(1的中央窗口上聲明:?01'1]^1:_1^1316格式的(>)11]^86,將指針口_1311;1^指向 800*480大小的共享內(nèi)存空間緩沖區(qū),然后在?_1&以1上將共享內(nèi)存上的圖像以固定的格式在當(dāng)前窗口顯示出來。[〇〇22]鼠標(biāo)、鍵盤人機(jī)互動模塊,為了實(shí)現(xiàn)與三維圖形的交互,同樣開辟一塊內(nèi)存來進(jìn)行鼠標(biāo)、鍵盤的通信。
【主權(quán)項(xiàng)】
1.一種嵌入式操作系統(tǒng)三維圖形制作軟件,由PicoGL函數(shù)庫,GUI Qt/Embedded,鼠標(biāo) 鍵盤,Linux開發(fā)環(huán)境四部分組成,其特征在于:其中PicoGL程序庫完成對三維圖形的構(gòu)建, 對三維環(huán)境的渲染;Qt/Embedded作為PicoGL的⑶I,使PicoGL三維模型通過共享內(nèi)存的通 信方式與Qt/Embedded的圖像信息交互、命令信息交,在嵌入式開發(fā)平臺上Linux開發(fā)環(huán)境 內(nèi)完成整個三維圖形制作軟件的開發(fā)。2.根據(jù)權(quán)利要求1所述的一種嵌入式操作系統(tǒng)三維圖形制作軟件,其特征在于:用 PicoGL函數(shù)庫完成對三維圖形基本圖元的創(chuàng)建,并將這些基本圖元通過函數(shù)庫中的坐標(biāo)轉(zhuǎn) 換函數(shù)實(shí)現(xiàn)復(fù)雜三維圖形的設(shè)計(jì)工作,完成圖形繪制工作后,將圖形幀緩存通過共享內(nèi)存 的通信方式映射至Linux環(huán)境下的內(nèi)存塊,完成圖像幀緩存的映射;采用共享內(nèi)存的方式, 讀取Qt/Embedded的指令,完成對PicoGL創(chuàng)建好的三維圖形的操作。3.根據(jù)權(quán)利要求1所述的一種嵌入式操作系統(tǒng)三維圖形制作軟件,其特征在于:將Qt/ Embedded作為PicoGL函數(shù)庫的⑶I顯示,通過嵌入式⑶I將OpenGL ES的圖形顯示出來。
【文檔編號】G06T19/00GK106023320SQ201610423393
【公開日】2016年10月12日
【申請日】2016年6月16日
【發(fā)明人】朱齊丹, 封大偉, 呂曉龍, 蔡成濤
【申請人】哈爾濱工程大學(xué)