一区二区三区播放_久久亚洲成人_色婷婷一区二区三区_国产在线精品区_91av国产在线_蜜桃视频网站www


您的位置�中華顯示�(wǎng) > 行業(yè)追蹤 > 市場行情 >

OpenVG API�(fā)威 嵌入式系�(tǒng)繪圖效果更逼真

編輯:admin 2014-04-28 08:51:17 瀏覽�962  來源� 新電�

嵌入�系統(tǒng)顯示效能可望大幅提升。OpenVG應用程式介面(API),由于系以硬體方式處理向量及點陣圖形,可加快繪圖運算速度,并�2D動畫影像更加流暢,呈�(xiàn)更吸睛的視覺效果,因而已逐漸受到嵌入式系�(tǒng)開發(fā)商青睞�

  OpenVG是一種應用程式介�(API),系由Khronos Group所研制,用來顯示向量化格式及點陣影像,并以硬體加速方式操作�

  OpenVG處理兩種主要的上層物件。首先是點陣圖,這是一種記憶體架構,用來儲�/繪制影像。每個x和y座標都對應到一個畫素;而每個畫素都擁有一�Alpha、紅、綠與藍(ARGB)�(shù)值,因此一個解析度200×200的影像就需�200×200(色階深度)個位元組來儲存。點陣圖對于照片畫質(zhì)的繪圖尤其有用。在后面運用范例(Use Case)里所介紹的Coverflow應用,就有影像處理程式碼及功能可供參閱�  

  另一種則是向量格式。向量是一種以起點和終點來描述的數(shù)學算式,根據(jù)各點互連方式,可能還須要加上其他如曲線控制點、弧線半徑、弧度之類的參數(shù)。這種特性讓向量非常適于延展,因為它并不須要靠每一個畫素的資料來呈�(xiàn)影像�  

  �1所描繪的是兩個原本在一般大小時看似無異的圓圈,隨著畫面放大,點陣圖逐漸失真,但向量影像卻仍能保持滑順而清晰的輪廓�  

OpenVG API發(fā)威 嵌入式系統(tǒng)繪圖效果更逼真0

  �1 向量與點陣圖比較

  向量并不一定在所有場合都勝過點陣圖。點陣圖在固定大小時比較清晰,但是在放大后就會變得失真。點陣圖處理起來較快,但是較耗費記憶體。向量則可以在任何縮放尺寸下保有影像畫質(zhì),耗費記憶體也較少。向量影像只能以向量設計工具繪制,點陣圖則可以來自相片、任何影像源,或制圖工具�  

  OpenVG繪圖效能更出�

  理想的OpenVG管線(Pipeline)包括一套八段式的程序。雖然不是所有的實作手段都確實按照這套理想的管線,然而實作的成果卻都應根�(jù)Khronos所定義測試程序,以確保一定的容錯程度。其程序分別為:路徑定義與API參數(shù)的設定;筆劃;轉(zhuǎn)換;畫素�(zhuǎn)換;修剪與遮蔽;著色;影像內(nèi)插;色彩�(zhuǎn)換;混合及防止失真�  

  以全球衛(wèi)星導�(GPS)地圖來說,要呈現(xiàn)可任意縮放的地圖,標準方式就是透過向量。線上有很多種免費的地圖軟體工具,大多數(shù)都允許使用者將地圖匯出為SVG檔案,這個檔案須再解譯,并轉(zhuǎn)換為OpenVG一般的架構,才能繼�(xù)使用�  

  此外,以OpenVG加速過的使用介面,可以�(chǎn)生出流暢、易于延伸的人機介面(HMI),并提供一套完整的動態(tài)字型繪制引擎,具備各種混合及繪制功能�  

  OpenGL可以完成多項繪圖作業(yè),例如字型�2D GUI及HMI等等;而其最大的�(yōu)點為處理多邊形及紋路。OpenGL是點陣圖導向,因此即使是以強大的OpenGL核心做簡易的繪圖,也須耗費寶貴的時間�  

  OpenVG補足了繪圖的需求。它本身就是絕佳的應用,如果配合OpenGL,就能同時管理字型、向量及大部分的2D和虛�3D組件,讓OpenGL核心把時間用在它最擅長的項目上�  

  即使單獨使用OpenVG時,也僅需少量電流及耗用記憶體,便可完成多項作業(yè)。若配合OpenGL使用,OpenVG便可�(zhuǎn)而管理OpenGL核心并不擅長的作�(yè)�  

  點陣影像繪制范例

  以OpenVG處理影像相當簡易,按照以下步驟即可在所需的表面上繪制影像�  

  �1.宣告一個VGImage物件�

  �2.�(chǎn)生一個VGImage,并為VGImage物件指定處理程式�

  �3.以點陣圖資料填滿影像�

  �4.為VG_MATRIX_IMAGE_USER_TO_SURFACE設定矩陣模式,以便轉(zhuǎn)換影�(3×3仿射�(zhuǎn)�)�

  �5.繪制影像�

  對虛擬程式碼亦采取相同步驟:  

  �1.VGImage ovgarticle_image

  �2.ovgarticle_image=vgCreateImage (VGImageFormat format, VGint width, VGint height, VGbitfield allowedQuality)

  �3.vgImageSubData(VGImage image, const void data, VGint dataStride, VGImageFormat dataFormat, VGint x, VGint y, VGint width, VGint height)

  �4.vgSeti(VG_MATRIX_MODE, VG_MATRIX_IMAGE_USER_TO_SURFACE);

  �5.vgDrawImage(ovgarticle_image)

  要進行這種操作,必須了解若干點陣圖特性,例如Stride、位元深度及設置混色之類的API屬性�  

  [@B]向量路徑加速圖形繪制[@C] 向量路徑加速圖形繪�

  路徑構成了向量加速繪圖的核心(�2)。要完全掌握這個概念,必須了解以下觀點:  

OpenVG API發(fā)威 嵌入式系統(tǒng)繪圖效果更逼真1

  �2 向量路徑示意�

  �1.路徑:是一連串以段落串連起來的點�

  �2.點:座標值�

  �3.段落:兩點之間的運算型態(tài),有時需要很多個點才能形成段落的控制值�

  在此用一個簡單的三角路徑來說明。首先,須定義構成整個路徑的段落。構成路徑的段落則須以一連串的指令來描述,并以位元組陣列的方式儲存。每個指令都會消耗一個或多個點�  

  復雜的路徑甚至須要動用到弧線和Bezier曲線的概念,在OpenVG里產(chǎn)生并繪制一個路徑的步驟包括�  

  �1.宣告一個VGPath物件�

  �2.宣告一個區(qū)段和點陣列�

  �3.�(chǎn)生一個空的路徑,以便接收段落資料(vgCreatePath)�

  �4.�圖像段落及點的資料填入路�(vgAppendPathData)�

  �5.繪出路徑(vgDrawPath)�

  Cover Flow動畫范例說明

  最常見但也最為人所注目的動畫,就是2D視角�(zhuǎn)換,�(jīng)常用來呈�(xiàn)音響播放裝置的唱片封靀這種動畫會讓人覺得影像在3D空間中沿著x、y及z軸移動或旋轉(zhuǎn)�  

  這種�(zhuǎn)換并非真正透過3D繪圖處理�(GPU)�3D處理引擎來實�(xiàn)動畫效果,而是先在2D空間中定義,再由OpenVG提供必要的API來達到動畫效果�  

  在數(shù)學觀念里,這種效果稱為�3D投射」,事實上是將一連串�3D點集合對應到一�2D平面上。觀念本身很簡單。試想一下,有一個平坦、方形的物體,譬如一片紙或是一張圖,你可以將這張圖放在面前,讓它看起來是矩形。如果你把紙張挪近些,紙張看起來就會變大,如果移遠些,又會變小。接著嘗試順著垂直軸�(zhuǎn)動一下,�(jié)果當然看起來就不再是矩形。它會出�(xiàn)一些銳角,因此外觀上會像是菱形,甚至會是一直線。這就�3D物體將自身的每個點投影在你眼中的結(jié)果�  

  在繪圖技術里,空間影像處理終究不脫陣列型�(tài)的演算。要展開陣列,你必須以陣列與影像相乘。如果要簡化影像�(zhuǎn)換,也要仰賴陣列乘法。要�(chǎn)生一個Cover Flow動畫,也必須要用到陣列。在OpenVG里,所有的空間處理都要以陣列變換為之�  

  設計關鍵就在于如何得出所需的「透視陣列(Perspective Matrix)」,以便得到3D的效果。這須要用到一些數(shù)學演算。在OpenVG API里也有提供其他設備,可計算出�(chǎn)生透視�(zhuǎn)換所需的陣列�  

  這些OpenVG API的工具函�(shù)可協(xié)助你計算出透視�(zhuǎn)換的陣列,不論是四邊形轉(zhuǎn)換為四邊形,還是把矩形影像轉(zhuǎn)換為給定的四邊形,甚至反向而行。如此一來你就可以將影像中任意一點移動到任何想要的位置。在�(zhí)行Cover Flow動畫時,只須透過這些函數(shù),就可以簡化演算�  

  此外,OpenVG里一共有兩種字型:點陣和向量(�1)。這兩種字型OpenVG API都有辦法處理,也有函�(shù)可以定義和登錄字�(vgCreateFont)。一旦完成,就可以透過vgDrawGlyphs函數(shù)輕松使用字型�  

OpenVG API發(fā)威 嵌入式系統(tǒng)繪圖效果更逼真2

  一旦考量到這些資訊,程式設計師就必須決定要在應用中采用何種字型。通常視不同的繪圖需求,可以混用兩種字型。舉例來說,可縮放的文字就要用向量字型,而大小固定不變的字型,例如按鍵標示,就可以改用點陣字型�  

  OpenVG加速動畫效果制�

  OpenVG的主要優(yōu)勢,就是可以用既有API輕松做出動畫效果。一旦你有了可以繪制的EGL表面,只需要幾行指令就可以讓影像帶到幕前,再加幾行就可以令它動起來�  

  以汽車應用為例,最常見的需求之一就是要做出生動逼真的指針或儀表。直覺化的OpenVG運算可以用最高的畫面刷新速率(�60fps)做到這一點�  

  此外,也可以透過常見的轉(zhuǎn)換來達成延展之類的轉(zhuǎn)換效果。延展不僅可以放大或縮小整體外型,也可以沿著個別的x軸和y軸進行。再以指針動畫為例,通常指針并不會越過儀表板的藍色邊框,只會淡入或淡出�  

  反射則是另一種驚人的效果,同樣可以用OpenVG輕松做到。只要對水平影像做一點通透的光滑表面效果,就可以達到反射的效果。既定函�(shù)可以反轉(zhuǎn)出一個原本不存在的影像�  

  目前已有廠商研制出完全采用向量導向的車用儀表板。在�3兩個展示版本當中,車速表是以大字型展示速度資訊,亦即在將現(xiàn)有字型畫在表面之前,還要先做放大處理。OpenGL都不見得有這種功力�  

OpenVG API發(fā)威 嵌入式系統(tǒng)繪圖效果更逼真3

  �3 以OpenVG開發(fā)之向量車用儀表板示意�

  此外,業(yè)者還研制了簡易的動畫引擎,以便處理延展、旋�(zhuǎn)及轉(zhuǎn)換。透過這種繪圖引擎,儀表板上的每種路徑及點陣影像都可以輕易動畫化� 至于像是GPS逐步�(zhuǎn)�?qū)Ш街惖膹碗s動畫,也可以透過vgInterpolatePath函數(shù)輕易完成�  

  此種函數(shù)可以接收起始及結(jié)束路�(具備類似段落)、終點路徑及你想要加入的�(nèi)插量。終點路徑資料會根據(jù)選定的數(shù)量,以內(nèi)插方式植入至起點和終點之間。如此一來,僅須定義兩個路徑狀�(tài),便可產(chǎn)生出復雜的路徑轉(zhuǎn)換�  

  (本文作者皆任職于飛思卡�)

   

標簽�

關注我�

公眾號:china_tp

微信名稱:亞威資�

顯示行業(yè)頂級新媒�

掃一掃即可關注我�

主站蜘蛛池模板: 久久久久免费精品国产小说色大师 | 一本色道久久综合狠狠躁篇适合什么人看 | 国产一区二区三区视频免费 | 全黄裸片武则天一级第4季 偿还电影免费看 | 午夜精品福利视频 | 在线视频观看国产 | 欧美一区高清 | 草莓福利视频在线观看 | 国产免费最爽的乱淫视频a 毛片国产 | asian裸体佳人pics | 成人午夜免费看 | 色悠悠久久久久 | 欧美一级特黄特色大片免费 | 欧美成在线视频 | 国产毛片毛片毛片 | 7m视频成人精品分类 | 欧美久久久久久久久 | 欧美日韩视频在线播放 | 特级黄色一级毛片 | 欧美亚州| 美女视频大全网站免费 | 久久精品视频2 | 久草在线公开视频 | 国产chinesehd精品91 | 国产精品免费久久久久久 | 免费黄色欧美视频 | 国产超碰人人做人人爱 | 爱操av| 亚洲电影在线播放 | 羞羞色院91精品网站 | xxxxxx视频 | 国产一级91 | av不卡毛片 | 91在线播放国产 | 亚洲一区二区三区91 | 久草在线公开视频 | www日韩在线观看 | 国产精品高潮视频 | 国产成人精品免高潮在线观看 | 媚药按摩痉挛w中文字幕 | 在线观看一区二区三区四区 |