崛起中的移動(dòng)圖形
在過(guò)去的幾年里,我們看到了如何把通信和計算能力封裝在一個(gè)小到可以放入口袋的設備中的巨大變化。同時(shí),這些設備的可視能力也有了很大發(fā)展:人們可以使用它拍攝像片和視頻,并且更為重要的是對于圖形來(lái)說(shuō),顯示屏能夠以交互的速率放映高質(zhì)量的彩色圖像。
在采用微處理器對電池消耗和電池性能進(jìn)行管理,以及移動(dòng)設備的圖形能力這兩個(gè)方面都取得巨大進(jìn)步的同時(shí),桌面計算機繼續在帶給終端用戶(hù)多媒體體驗方面領(lǐng)先一步。盡管如此,在未來(lái)的幾年里,這種情況將會(huì )發(fā)生改變。
移動(dòng)圖形應用
在移動(dòng)設備中,哪一種圖形應用更合適?在桌面計算機中,游戲、娛樂(lè )和計算機輔助設計推動(dòng)著(zhù)圖形的發(fā)展。因為效能和功率的限制,在不遠的將來(lái)設計出能夠在移動(dòng)設備上運行的新的賽車(chē)游戲是不太可能的。盡管如此,交互式的娛樂(lè )內容,比如游戲、卡通動(dòng)畫(huà)和諸如此類(lèi)的東西將可能推動(dòng)移動(dòng)設備圖形的發(fā)展,這和桌面的情況是一樣的。盡管單靠圖形本身不能完全表達游戲的許多引人注目的特性,但是它們能夠潤色游戲,使本來(lái)有趣和好玩的游戲變得更具吸引力和令人陶醉。
能量是根本的障礙
雖然有很大的進(jìn)步,移動(dòng)終端的能力在很多方面仍然無(wú)法和桌面計算機相比。它們的運行速度較低,顯示屏的尺寸較小,顯示分辨率較低,運行和存儲程序的內存較小,并且只能短時(shí)間使用這個(gè)設備,因為電池最終要耗盡。造成這些差異的根本原因是能量:桌面計算機的能量來(lái)自于電源插座,而移動(dòng)設備只能使用電池供給能量。
盡管如此,移動(dòng)設備也在發(fā)展。摩爾定律將使移動(dòng)設備具有更大的處理能力,更大的內存和存儲空間。雖然電池技術(shù)的進(jìn)步?jīng)]有遵從摩爾定律(每年大約只提高10%),Gene Frantz定律表明,集成電路的功耗呈指數下降,從而使電池的持續時(shí)間也隨之延長(cháng)。
無(wú)論如何,移動(dòng)終端已經(jīng)在很多方面等同或優(yōu)于10或15年前的家庭電腦。特別值得一提的是,在移動(dòng)設備上實(shí)現一些計算機圖形能力是可以做到的,盡管現在仍處于起步階段。
演變過(guò)程中的啟示
為了適應移動(dòng)設備,傳統的圖形硬件需要改進(jìn)提高,但是根本的性能提高不會(huì )太大。圖形工作站已經(jīng)存在至少20年了,工程師已經(jīng)花費了很多時(shí)間學(xué)習和研究相關(guān)技術(shù)。因此,在這方面已經(jīng)沒(méi)有太大的必要像探索未知領(lǐng)域一樣進(jìn)行創(chuàng )造性的工作。適合桌面計算機的很多東西并不適合于移動(dòng)設備,因為桌面計算機體積太大、價(jià)格太貴、耗電太多。但是,桌面系統的一些方法可以通過(guò)改進(jìn)變成一個(gè)可用于移動(dòng)設備的簡(jiǎn)化版本。另外,桌面系統中高質(zhì)量的圖形效果,已經(jīng)提高了用戶(hù)對圖形質(zhì)量的期望值,無(wú)形中也提高了用戶(hù)對體驗移動(dòng)設備圖形質(zhì)量的期望值。
在軟件方面,工業(yè)領(lǐng)域所作的工作可以用非常神奇來(lái)形容,它們即使在慢速的桌面設備上,也知道通過(guò)如何挖掘圖形硬件的一點(diǎn)一滴性能來(lái)創(chuàng )建滿(mǎn)意的圖形效果。盡管如此,為保證圖形軟件和硬件引擎、圖形內容和圖形應用的快速發(fā)展,針對圖形開(kāi)發(fā)的圖形標準是十分必要的。容易得到的、易學(xué)易用的、可接受的圖形標準將會(huì )促進(jìn)移動(dòng)應用的開(kāi)發(fā)。
制定標準
在現有的開(kāi)發(fā)中,有幾個(gè)適合移動(dòng)圖形的標準。其中一些是應用程序接口(API),一些是表示多邊形、圖像和動(dòng)畫(huà)內容的文件格式,還有一些是兩者的組合。
可變矢量圖形(SVG)是一個(gè)表示2D分層動(dòng)畫(huà)的文件格式標準。SVG支持高質(zhì)量的2D幾何原始形狀,比如Bezier曲線(xiàn)、構成那些曲線(xiàn)的任意多邊形、各種屬性和風(fēng)格的線(xiàn)段,還有后加工和過(guò)濾處理。原始的SVG對于移動(dòng)設備來(lái)說(shuō)太龐大,因此創(chuàng )建了它的子集。SVG Tiny 是一個(gè)針對像移動(dòng)電話(huà)等受限設備的緊湊子集,而SVG Basic是一個(gè)針對靈巧電話(huà)和PDA的稍微大一點(diǎn)的子集。在3GPP修訂版本5中,SVG Tiny已經(jīng)被選定作為MMS(多媒體信息系統)的一部分。因此,將最終能夠在移動(dòng)電話(huà)中發(fā)送和接收2D動(dòng)畫(huà)的矢量圖形信息。
OpenGL是一個(gè)流行的跨平臺的3D圖形編程API,我們在圖形工作站和PC機上非常熟悉。在過(guò)去的10年里,OpenGL發(fā)生了一些變化,但仍保留了它的所有基本特性,其中的一些現在看來(lái)是多余的。還有很多特性實(shí)際當中很少使用。包括Nokia 和 ARM在內的許多公司正在同Khronos合作開(kāi)發(fā)OpenGL ES,一個(gè)針對嵌入式系統的子集。目標是刪除API中不必要的和很少使用的組件,修改它使其更多的考慮移動(dòng)設備的實(shí)際情況,比如缺少專(zhuān)用的浮點(diǎn)硬件(對使用ARM矢量浮點(diǎn)協(xié)處理器內核的硬件是個(gè)例外)和有限的內存容量(包括RAM和ROM)。有一個(gè)針對移動(dòng)設備的低級直接模式的API標準,對于移動(dòng)圖形硬件的開(kāi)發(fā)也是有好處的,因為它提供了一個(gè)硬件和軟件驅動(dòng)都應該支持的最小化功能集合。
低級圖形API允許開(kāi)發(fā)者更低層地接近硬件,在諸如交互式游戲的開(kāi)發(fā)中獲得更高的性能。然而,對于第三方的開(kāi)發(fā)者要想利用這些API,必須開(kāi)放移動(dòng)設備的操作系統,允許用戶(hù)開(kāi)發(fā)和安裝新的應用。盡管形勢正在快速的變化之中,但是傳統的諸如移動(dòng)電話(huà)等嵌入式設備在這一點(diǎn)上是不開(kāi)放的,因為Symbian OS和Java ME(Micro Edition)等開(kāi)放式應用平臺獲得了很大發(fā)展。除了致力于OpenGL ES的開(kāi)發(fā),它是一個(gè)特別適合于Symbian OS平臺上運行的圖形API;諾基亞正在領(lǐng)導著(zhù)針對Java ME平臺的3D API 規范JSR-184的開(kāi)發(fā)。
如果移動(dòng)設備是資源受限的,運行在Java ME平臺上的程序使用的資源是較少的。Java ME程序能夠比所謂的原始程序(C 、C++ 和匯編語(yǔ)言)使用更少的內存,無(wú)論是在動(dòng)態(tài)的運行情況還是在存儲程序的靜態(tài)情況。同時(shí),Java程序需要較多的運行開(kāi)銷(xiāo)。因此,需要大量的附加功能,比如一個(gè)情景圖表表示了對象的結構,它們的外觀(guān)和觀(guān)看這個(gè)情景的快照,還有激活對象的機制和它們的屬性。更高層次的API意味著(zhù)較少的功能調用,因此,執行時(shí)間的很大部分將耗費在臨界速度的內部循環(huán)上,它是以C、匯編或專(zhuān)用硬件實(shí)現的圖形驅動(dòng)。同時(shí),更高層次的庫函數具有更多的功能,這些功能不同的應用可以重復使用,這些應用本身也變得很小。JSR-184是OpenGL ES的補充:它們的描述模式是兼容的,因此,針對OpenGL ES的專(zhuān)用圖形加速硬件,同樣也可以加速JSR-184。
SVG是文件格式和針對動(dòng)畫(huà)的,OpenGL ES是一個(gè)低級的編程API,JSR-184可以認為是兩者的組合。必須承認這樣的事實(shí),大多數的圖形內容不是由編程者創(chuàng )造出來(lái),而是由圖形藝術(shù)家完成的。JSR-184標準定義了它自己的二進(jìn)制(因此變得緊湊)文件格式,這種格式的文件很容易被調入,從而產(chǎn)生情景圖表。簡(jiǎn)單的內容幾乎不需要編程,但是因為Java是一個(gè)完全的編程語(yǔ)言,它的API調用提供了訪(fǎng)問(wèn)情景圖表組件的方法,可以編寫(xiě)任意復雜的程序來(lái)操縱從文件中裝載的圖形對象。
移動(dòng)性帶來(lái)的好處
在計算性能方面,移動(dòng)設備和桌面計算機相比處于劣勢,但移動(dòng)設備也有一些重要的優(yōu)點(diǎn)。很明顯,移動(dòng)設備能夠伴隨你旅行,這意味著(zhù)它總是可以得到的,而不是像桌面計算機那樣必須放在辦公室或手提箱里,很不方便。也可以隨時(shí)使用移動(dòng)設備玩游戲打發(fā)時(shí)間,或網(wǎng)上沖浪等等。移動(dòng)設備可以使人們在需要的時(shí)候獲取信息。例如,導航功能能夠產(chǎn)生所在地周?chē)h(huán)境的3D畫(huà)面,并指示方向。當想要和朋友開(kāi)始一個(gè)特別的游戲比賽,對抗另外一支遠方的隊伍,而這時(shí)你正在酒吧休閑,這時(shí)移動(dòng)平臺會(huì )幫你大忙。
在未來(lái),移動(dòng)設備在一些圖形應用方面會(huì )變成一個(gè)更好更便利的平臺。在現實(shí)中,通過(guò)增加或變換人體周?chē)矬w的外觀(guān),一個(gè)人的感覺(jué)(特別是視覺(jué))將被擴大。如果擴大的現實(shí)真的能夠實(shí)現,提供這種功能的移動(dòng)設備必須時(shí)刻伴隨在你的身邊,而不是被迫進(jìn)入到擴大的現實(shí)。其中核心的部件,如照相機、計算單元和顯示部分已經(jīng)能夠在一個(gè)緊湊的移動(dòng)設備中得到。大約10年以后,我們中的一些人將能夠手里拿著(zhù)自己的個(gè)人“全息駕駛艙” 漫步,這并不是不可想象的事情?!?(于永學(xué)譯)
c++相關(guān)文章:c++教程
評論