本發(fā)明涉及圖像處理領(lǐng)域,具體而言,涉及一種對象的渲染方法和裝置。
背景技術(shù):
:在游戲、動漫等領(lǐng)域中時常用到pr和npr技術(shù),pr(photorealisticrendering)即照片真實級渲染,是指通過對真實物理光影的研究,做出真實世界的渲染效果;npr(non-photorealisticrendering)即非照片真實級渲染,是指通過研究畫家透過畫筆勾勒出的抽象意境,做出與該抽象意境類似的渲染效果,是計算機圖形學(xué)的一類,主要用于模擬藝術(shù)式繪畫風(fēng)格,也用于發(fā)展新繪制風(fēng)格。和傳統(tǒng)的追求真實感的計算機圖形學(xué)不同,npr受到油畫、素描、技術(shù)圖紙以及動畫卡通的影響,所以目前在該領(lǐng)域發(fā)展較多而且較成熟的一般與西方繪畫藝術(shù)有關(guān),如素描畫、鋼筆畫、碳筆畫、水彩畫、卡通畫等,對于中國水墨畫的研究則較少。上述的npr技術(shù)往往應(yīng)用于實時渲染,在實時渲染時計算機實時生成圖像,每秒鐘生成足夠的幀,從而可以通過渲染得到的圖像和用戶產(chǎn)生交互。實時渲染主要包括如下幾個步驟:步驟1,計算cpu基于3d幾何空間對實時3d圖像(即三維圖形)進行處理,進行輪廓邊的查找;步驟2,計算機cpu鎖住z-buffer進行逐個輪廓邊頂點比較剔除,也即進行輪廓邊頂點的可視性剔除,僅保留可見輪廓邊頂點;步驟3,連接輪廓邊頂點成筆劃,具體是cpu進行逐個可見輪廓邊頂點位置比較,進行筆劃連接;步驟4,筆劃裹上畫家筆觸,例如以帶有alpha通道的紋理,作為貼圖貼到一個三角形上用來產(chǎn)生筆觸。上述的z-buffer(z緩存)是在為物件進行著色時,執(zhí)行“隱藏面消除”工作的一項技術(shù),所以隱藏物件背后的部分就不會被顯示出來。在上述實時處理的過程中,所有的步驟均是由計算機cpu完成,且進行實時渲染時處理的是三維圖像、在進行輪廓邊頂點的可視性剔除是通過z-buffer實現(xiàn),需要進行大量的數(shù)據(jù)運算處理,由于是基于cpu進行一系列的關(guān)鍵處理,且數(shù)據(jù)處理量較大,所以對cpu的運算資源量消耗較大,使得在cpu性能相對較低的電腦上運行實時渲染會相當(dāng)吃力。針對相關(guān)技術(shù)中進行實時渲染時對計算機cpu的運算資源消耗量較大的技術(shù)問題,目前尚未提出有效的解決方案。技術(shù)實現(xiàn)要素:本發(fā)明實施例提供了一種對象的渲染方法和裝置,以至少解決相關(guān)技術(shù)中進行實時渲染時對計算機cpu的運算資源消耗量較大的技術(shù)問題。根據(jù)本發(fā)明實施例的一個方面,提供了一種對象的渲染方法,包括:獲取對目標(biāo)對象進行圖像采集得到的二維圖像;在二維圖像的所有像素點中識別出第一像素點集合,其中,第一像素點集合中的像素點為目標(biāo)對象的輪廓上的點;通過調(diào)用圖像處理器在第一像素點集合中識別出一個或多個第二像素點集合,其中,每個第二像素點集合中的像素點用于指示目標(biāo)對象的輪廓中的一條線段;分別將每個第二像素點集合中的像素點連接成目標(biāo)對象的輪廓中的一條線段,并按照預(yù)定渲染方式顯示連接得到的每條線段。根據(jù)本發(fā)明實施例的另一方面,還提供了一種對象的渲染裝置,包括:獲取單元,用于獲取對目標(biāo)對象進行圖像采集得到的二維圖像;第一識別單元,用于在二維圖像的所有像素點中識別出第一像素點集合,其中,第一像素點集合中的像素點為目標(biāo)對象的輪廓上的點;第二識別單元,用于通過調(diào)用圖像處理器在第一像素點集合中識別出一個或多個第二像素點集合,其中,每個第二像素點集合中的像素點用于指示目標(biāo)對象的輪廓中的一條線段;渲染單元,用于分別將每個第二像素點集合中的像素點連接成目標(biāo)對象的輪廓中的一條線段,并按照預(yù)定渲染方式顯示連接得到的每條線段。在本發(fā)明實施例中,處理器直接獲取對目標(biāo)對象進行圖像采集得到的二維圖像,在二維圖像的所有像素點中識別出用于表征目標(biāo)對象的輪廓的第一像素點集合,通過調(diào)用圖像處理器在第一像素點集合中識別出一個或多個第二像素點集合,分別將每個第二像素點集合中的像素點連接成目標(biāo)對象的輪廓中的一條線段,并按照預(yù)定渲染方式顯示連接得到的每條線段,由于處理的是二維圖形,故而處理的數(shù)據(jù)量會大量減小,同時將頂點查詢這類負荷較重的數(shù)據(jù)處理任務(wù)交由圖像處理器完成,可以解決相關(guān)技術(shù)中進行實時渲染時對計算機cpu的運算資源消耗量較大的技術(shù)問題,進而達到降低實時渲染時計算機cpu的運算資源消耗量的技術(shù)效果。附圖說明此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:圖1是根據(jù)本發(fā)明實施例的對象的渲染方法的硬件環(huán)境的示意圖;圖2是根據(jù)本發(fā)明實施例的一種可選的對象的渲染方法的流程圖;圖3是根據(jù)本發(fā)明實施例的一種可選的目標(biāo)對象的示意圖;圖4是根據(jù)本發(fā)明實施例的一種可選的目標(biāo)對象的示意圖;圖5是根據(jù)本發(fā)明實施例的一種可選的物體邊緣紋理的示意圖;圖6是根據(jù)本發(fā)明實施例的一種可選的輪廓線上的像素點的示意圖;圖7是根據(jù)本發(fā)明實施例的一種可選的輪廓線上的頂點的示意圖;圖8是根據(jù)本發(fā)明實施例的一種可選的筆畫的示意圖;圖9是根據(jù)本發(fā)明實施例的一種可選的筆畫帶的示意圖;圖10是根據(jù)本發(fā)明實施例的一種可選的筆觸的示意圖;圖11是根據(jù)本發(fā)明實施例的一種可選的渲染圖像的示意圖;圖12是根據(jù)本發(fā)明實施例的多種可選的筆觸的示意圖;圖13是根據(jù)本發(fā)明實施例的一種可選的渲染圖像的示意圖;圖14是根據(jù)本發(fā)明實施例的一種可選的對象的渲染裝置的示意圖;以及圖15是根據(jù)本發(fā)明實施例的一種終端的結(jié)構(gòu)框圖。具體實施方式為了使本
技術(shù)領(lǐng)域:
的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當(dāng)屬于本發(fā)明保護的范圍。需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。實施例1根據(jù)本發(fā)明實施例,提供了一種對象的渲染方法的方法實施例??蛇x地,在本實施例中,上述對象的渲染方法可以應(yīng)用于如圖1所示的由服務(wù)器102和終端104所構(gòu)成的硬件環(huán)境中。如圖1所示,服務(wù)器102通過網(wǎng)絡(luò)與終端104進行連接,上述網(wǎng)絡(luò)包括但不限于:廣域網(wǎng)、城域網(wǎng)或局域網(wǎng),終端104并不限定于pc、手機、平板電腦等。本發(fā)明實施例的對象的渲染方法可以由服務(wù)器102來執(zhí)行,也可以由終端104來執(zhí)行,還可以是由服務(wù)器102和終端104共同執(zhí)行。其中,終端104執(zhí)行本發(fā)明實施例的對象的渲染方法也可以是由安裝在其上的客戶端來執(zhí)行。圖2是根據(jù)本發(fā)明實施例的一種可選的對象的渲染方法的流程圖,如圖2所示,該方法可以包括以下步驟:步驟s202,獲取對目標(biāo)對象進行圖像采集得到的二維圖像;步驟s204,在二維圖像的所有像素點中識別出第一像素點集合,第一像素點集合中的像素點為目標(biāo)對象的輪廓上的點;步驟s206,通過調(diào)用圖像處理器在第一像素點集合中識別出一個或多個第二像素點集合,每個第二像素點集合中的像素點用于指示目標(biāo)對象的輪廓中的一條線段;步驟s208,分別將每個第二像素點集合中的像素點連接成目標(biāo)對象的輪廓中的一條線段,并按照預(yù)定渲染方式顯示連接得到的每條線段。通過上述步驟s202至步驟s208,處理器直接獲取對目標(biāo)對象進行圖像采集得到的二維圖像,在二維圖像的所有像素點中識別出用于表征目標(biāo)對象的輪廓的第一像素點集合,通過調(diào)用圖像處理器在第一像素點集合中識別出一個或多個第二像素點集合,分別將每個第二像素點集合中的像素點連接成目標(biāo)對象的輪廓中的一條線段,并按照預(yù)定渲染方式顯示連接得到的每條線段,由于處理的是二維圖形,故而處理的數(shù)據(jù)量會大量減小,同時將頂點查詢這類負荷較重的數(shù)據(jù)處理任務(wù)交由圖像處理器完成,可以解決相關(guān)技術(shù)中進行實時渲染時對計算機cpu的運算資源消耗量較大的技術(shù)問題,進而達到降低實時渲染時計算機cpu的運算資源消耗量的技術(shù)效果。上述的步驟s202至步驟s208可以在處理器中執(zhí)行,如在計算機、移動設(shè)備的中央處理器cpu中執(zhí)行。上述的目標(biāo)對象可以為人物、動物、物體、環(huán)境等具象化的特征,在實際應(yīng)用中,該目標(biāo)對象可以為一個或多個;二維圖形具體可以為深度紋理圖片,或者攜帶每個像素的深度值的二維圖片;上述的輪廓是指目標(biāo)對象的邊沿,如茶壺、人物等與自然環(huán)境或者其它物相區(qū)分的輪廓線;第一像素點集合中保存的像素點即所有識別出的輪廓上的點;第二像素點集合中保存的為識別出的屬于同一線段的所有像素點。上述的預(yù)定渲染方式包括但不局限于素描畫、鋼筆畫、炭筆畫、水彩畫、卡通畫以及水墨畫等渲染方式。上述的方法主要用于非照片真實級npr渲染,但不局限于此。在步驟s202提供的技術(shù)方案中,獲取對目標(biāo)對象進行圖像采集得到的二維圖像包括:獲取采集到的類型為深度紋理類型的二維圖像,其中,類型為深度紋理類型的二維圖像中攜帶有像素點的深度值。具體地,可直接渲染目標(biāo)對象得到該目標(biāo)對象的深度紋理。在步驟s204提供的技術(shù)方案中,在二維圖像的所有像素點中識別出第一像素點集合包括:對于二維圖像的所有像素點中的每個像素點,執(zhí)行以下步驟,其中,每個像素點在執(zhí)行以下步驟時被記為當(dāng)前像素點:獲取當(dāng)前像素點的深度變化值,其中,深度變化值用于指示當(dāng)前像素點的多個相鄰像素點之間的深度變化程度;在當(dāng)前像素點的深度變化值大于等于預(yù)定的深度變化閾值的情況下,確定當(dāng)前像素點為第一像素點集合中的像素點。在獲取當(dāng)前像素點的深度變化值時,可以通過如下方式實現(xiàn):獲取第一濾波器對多個相鄰像素點進行第一過濾處理得到的第一深度變化值,其中,第一深度變化值用于表示多個相鄰像素點之間在第一方向上的深度變化程度;獲取第二濾波器對多個相鄰像素點進行第二過濾處理得到的第二深度變化值,其中,第二深度變化值用于表示多個相鄰像素點之間在第二方向上的深度變化程度,第二方向與第一方向不同;根據(jù)第一深度變化值和第二深度變化值確定當(dāng)前像素點的深度變化值??蛇x地,獲取第一濾波器對多個相鄰像素點進行第一過濾處理得到的第一深度變化值包括:獲取第一濾波器按照第一公式進行第一過濾處理得到的第一深度變化值,其中,第一公式用于計算多個相鄰像素點中在第一方向上相鄰的像素點的第一深度參數(shù)之和,第一深度參數(shù)為在第一方向上相鄰的像素點的深度值與對應(yīng)的影響因子的乘積。對于當(dāng)前像素點而言,一般包括與之相鄰并且圍繞在當(dāng)前像素點周圍的8個像素點,可以將當(dāng)前像素點記為s11,那么其左上角的像素點為s00,正上方的像素點為s01,右上角的像素點為s11,正左側(cè)的像素點為s10,正右側(cè)的像素點為s12,左下角的像素點為s20,正下方的像素點為s21,右下角的像素點為s22。上述的第一方向可以為縱向,第一公式為sobelx=s00+2*s10+s20-s02-2*s12-s22,sobelx表示第一深度變化值,s00、s10、s20、s02、s12、s22為對應(yīng)位置的像素的深度值,系數(shù)1、2、1、-1、-2、-1為相應(yīng)像素的影響因子。可選地,獲取第二濾波器對多個相鄰像素點進行第二過濾處理得到的第二深度變化值包括:獲取第二濾波器按照第二公式進行第二過濾處理得到的第二深度變化值sobely,其中,第二公式用于計算多個相鄰像素點中在第二方向上相鄰的像素點的第二深度參數(shù)之和,第二深度參數(shù)為在第二方向上相鄰的像素點的深度值與對應(yīng)的影響因子的乘積。上述的第二方向可以為橫向,第二公式為sobely=s00+2*s01+s02-s20-2*s21-s22,sobely表示第二深度變化值,s00、s01、s02、s20、s21、s22為對應(yīng)位置的像素的深度值,1、2、1、-1、-2、-1為相應(yīng)像素的影響因子??蛇x地,根據(jù)第一深度變化值和第二深度變化值確定當(dāng)前像素點的深度變化值包括:將當(dāng)前像素點的深度變化值設(shè)置為第一深度變化值的平方與第二深度變化值的平方之和。在確定了第一深度變化值sobelx和第二深度變化值sobely之后,可以按照如下公式確定當(dāng)前像素點的深度變化值edgesqr。edgesqr=(sobelx*sobelx+sobely*sobely)。在步驟s206提供的技術(shù)方案中,通過調(diào)用圖像處理器在第一像素點集合中識別出一個或多個第二像素點集合包括:發(fā)送頂點查詢請求至圖像處理器,其中,頂點查詢請求中攜帶有第一像素點集合中像素點的位置信息和深度信息;接收圖像處理器的響應(yīng)信息,其中,響應(yīng)信息用于指示第一像素點集合中像素點是否屬于第二像素點集合。上述的圖像處理器gpu具備頂點紋理處理功能,在使用該功能時,將模型的所有頂點以畫點的方式向gpu進行查詢,如果該頂點是在輪廓線上,那么就把它繪制出來,否則不繪制,這個結(jié)果會以查詢結(jié)果(即響應(yīng)信息)的方式反饋給cpu,最終就會得到哪些頂點在輪廓線上的第二像素點集合。在本申請的實施例中,cpu的處理復(fù)雜度和模型有關(guān),如果模型頂點少,則可以以很高的fps(每秒傳輸幀的數(shù)量)運行,但是如果模型頂點較多的模型則會相當(dāng)吃力,如果采用gpu來進行處理,由于gpu是專用于圖像處理的處理器,可通過硬件加速的方式加快處理速度,將cpu解放出來,降低對其處理資源的占用,從而可以實現(xiàn)較高的fps(每秒傳輸幀數(shù))。在步驟s208提供的技術(shù)方案中,分別將每個第二像素點集合中的像素點連接成目標(biāo)對象的輪廓中的一條線段包括:按照預(yù)設(shè)條件將第二像素點集合中的像素點串聯(lián)成一條線段,其中,一條線段至少包括一個筆畫,預(yù)設(shè)條件用于指示每個筆畫包括的像素點數(shù)目、筆畫長度以及筆畫包括的相鄰的像素點間的轉(zhuǎn)角角度中的至少之一。具體可在cpu中將得到的輪廓線頂點進行串聯(lián)成筆畫,串聯(lián)后可以根據(jù)一個筆畫的頂點數(shù)目,筆畫長度,頂點之間的轉(zhuǎn)角角度來決定如何將筆畫進行斷連,最后形成獨立的筆畫。可選地,按照預(yù)定渲染方式顯示連接得到的每條線段包括:將每個筆畫擴展成為筆畫帶;使用與預(yù)定渲染方式對應(yīng)的筆觸對筆畫帶進行繪制,其中,預(yù)定渲染方式包括素描畫、鋼筆畫、炭筆畫、水彩畫、卡通畫以及水墨畫。具體可應(yīng)用筆觸將筆畫的頂點在屏幕空間擴展成筆畫帶,為套用筆觸做準(zhǔn)備,然后給每個筆畫帶套用相應(yīng)的筆觸,最終得到滿足需求的圖像。本發(fā)明還提供了一種優(yōu)選實施例,該優(yōu)選實施例如圖3所示,需要對游戲中的如圖4所示的黑色橢圓(即目標(biāo)對象)進行渲染:步驟s302,獲取物體的輪廓線。上述的步驟s302可以通過兩個子步驟實現(xiàn),具體如子步驟s3022和s3024所示。步驟s3022,獲取深度紋理,可以直接渲染物體得到物體的深度紋理,具體如圖4所示。步驟s3024,通過使用過濾器進行過濾處理得到輪廓線像素。繪制與屏幕大小相同的矩形框,對得到的深度紋理圖片進行采樣,在pixelshader中按照如下方式進行處理。表1示出的為橫向過濾器對深度紋理進行過濾所使用的矩陣。表110-120-210-1表2示出的為縱向過濾器對深度紋理進行過濾所使用的矩陣。表2121000-1-2-1需要說明的是,表1和表2中示出的影響因子為可選的,具體可以根據(jù)實際需求進行選取。表3示出的為當(dāng)前像素及相鄰像素的位置關(guān)系以及像素的深度值,其中深度值所在的表格的位置即該像素的位置,表3中s11表示當(dāng)前像素,具有與之相鄰的8個像素。表3s00s01s02s10s11s12s20s21s22利用表1示出的矩陣與表3示出的矩陣執(zhí)行矩陣相乘可以得到實際的用于過濾的第一公式sobelx=s00+2*s10+s20-s02-2*s12-s22,sobelx表示第一深度變化值,s00、s10、s20、s02、s12、s22為對應(yīng)位置的像素的深度值;利用表2示出的矩陣與表3示出的矩陣執(zhí)行矩陣相乘可以得到實際的第二公式sobely=s00+2*s01+s02-s20-2*s21-s22,sobely表示第二深度變化值,s00、s01、s02、s20、s21、s22為對應(yīng)位置的像素的深度值。在確定了第一深度變化值sobelx和第二深度變化值sobely之后,可以按照如下公式確定當(dāng)前像素點的深度變化值edgesqr。edgesqr=(sobelx*sobelx+sobely*sobely)。采用橫向和縱向過濾器對深度紋理進行過濾,逐像素處理,并且對當(dāng)前像素的周圍8個像素也進行采樣,s11表示當(dāng)前像素,edgesqr表示當(dāng)前像素周圍像素的值的變化程度,如果edgesqr大于一個閥值n,則說明當(dāng)前像素周圍的像素的值變化激烈,由于是使用深度信息得到的,那么說明當(dāng)前像素周圍像素的深度變化激烈,則說明當(dāng)前像素是物體的輪廓。輸出到輪廓紋理上,如果edgesqr小于閥值n,那么說明當(dāng)前像素不是物體的輪廓,則向紋理輸出0。對圖4所示的深度紋理進行過濾處理得到輪廓線像素如圖5所示,圖5中橢圓線條即得到的物體邊緣紋理。步驟s304,獲取模型的輪廓頂點,具體是通過中央處理器cpu調(diào)用圖像處理器gpu進行查詢來實現(xiàn)。上述的gpu具備頂點紋理處理功能,使用該功能時,將模型的所有頂點以畫點的方式向gpu進行查詢,具體可以將如圖6所示的所有頂點發(fā)送給gpu進行查詢(其中虛線連接的頂點為實際上在輪廓線上的頂點,但是對于cpu而言其并不知曉),如果該頂點是在輪廓線上,那么就把它繪制出來,否則不繪制,這個結(jié)果會以查詢結(jié)果的方式反饋給cpu,最終就會得到哪些頂點在輪廓線上的列表,具體如圖7所示,最終可以通過gpu識別出所有頂點中在輪廓線上的頂點。步驟s306,處理輪廓線,連成筆畫。在cpu中將得到的輪廓線頂點進行串聯(lián)成筆畫,串聯(lián)后可以根據(jù)一個筆畫的頂點數(shù)目,筆畫長度,頂點之間的轉(zhuǎn)角角度來決定如何將筆畫進行斷連,最后形成獨立的筆畫,如圖8所示。步驟s308,生成最終筆畫??蓱?yīng)用筆觸將筆畫的頂點在屏幕空間擴展成筆畫帶,為套用筆觸做準(zhǔn)備,具體如圖9所示,然后給每個筆畫帶套用如圖10所示的筆觸,最終得到的結(jié)果如圖11所示??梢蕴子玫墓P觸有很多風(fēng)格,如圖12所示,通過套用對應(yīng)的風(fēng)格的筆觸可以擴展得到最終的顯示風(fēng)格。風(fēng)格化的npr效果對游戲藝術(shù)性的提升有很大的幫助,能夠加強游戲的本身氣質(zhì)??蛇x地,本發(fā)明還提供了一種優(yōu)選實施例,具體實施場景可以應(yīng)用于動漫制作等,例如待渲染的對象為茶壺,那么可以應(yīng)用上述圖3的步驟對茶壺的深度紋理進行處理,具體實施方式與上述的對游戲中橢圓的處理方式相同,在此不再贅述。通過cpu執(zhí)行相關(guān)處理,并調(diào)用gpu進行頂點識別,然后進行線條處理、利用筆觸進行繪制,即可得到如圖13所示的茶壺。在相關(guān)技術(shù)中,需要使用幾何空間輪廓線查找技術(shù),在原有的模型的頂點數(shù)據(jù)上加入幾何空間輪廓線查找所必須的雙法線信息,這是需要先遍歷這個模型的所有面,找出共享邊,并在邊上存儲兩個共享面的法線信息。這個操作是在渲染前進行預(yù)先處理的,只需要處理一次,但計算量很大,非常消耗處理性能。在本申請的技術(shù)方案中,基于顯卡的特性進行高效處理,將以前的預(yù)計算、cpu和gpu交互等高開銷的操作優(yōu)化掉,大大提升了運行的效率。去除預(yù)處理計算(即上述的輪廓線查找),降低系統(tǒng)復(fù)雜度,并可以針對一切原始模型進行直接處理;另外,使用gpu特性進行查詢,大大高效于相關(guān)技術(shù)中鎖住z-buffer進行逐輪廓邊頂點比較剔除這種低效操作,從而可以降低cpu的開銷。需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時進行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實施例的方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺終端設(shè)備(可以是手機,計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。實施例2根據(jù)本發(fā)明實施例,還提供了一種用于實施上述對象的渲染方法的對象的渲染裝置。圖14是根據(jù)本發(fā)明實施例的一種可選的對象的渲染裝置的示意圖,如圖14所示,該裝置可以包括:獲取單元142、第一識別單元144、第二識別單元146以及渲染單元148。獲取單元142,用于獲取對目標(biāo)對象進行圖像采集得到的二維圖像;第一識別單元144,用于在二維圖像的所有像素點中識別出第一像素點集合,其中,第一像素點集合中的像素點為目標(biāo)對象的輪廓上的點;第二識別單元146,用于通過調(diào)用圖像處理器在第一像素點集合中識別出一個或多個第二像素點集合,其中,每個第二像素點集合中的像素點用于指示目標(biāo)對象的輪廓中的一條線段;渲染單元148,用于分別將每個第二像素點集合中的像素點連接成目標(biāo)對象的輪廓中的一條線段,并按照預(yù)定渲染方式顯示連接得到的每條線段。需要說明的是,該實施例中的獲取單元142可以用于執(zhí)行本申請實施例1中的步驟s202,該實施例中的第一識別單元144可以用于執(zhí)行本申請實施例1中的步驟s204,該實施例中的第二識別單元146可以用于執(zhí)行本申請實施例1中的步驟s206,該實施例中的渲染單元148可以用于執(zhí)行本申請實施例1中的步驟s208。此處需要說明的是,上述模塊與對應(yīng)的步驟所實現(xiàn)的示例和應(yīng)用場景相同,但不限于上述實施例1所公開的內(nèi)容。需要說明的是,上述模塊作為裝置的一部分可以運行在如圖1所示的硬件環(huán)境中,可以通過軟件實現(xiàn),也可以通過硬件實現(xiàn)。通過上述模塊,獲取對目標(biāo)對象進行圖像采集得到的二維圖像,在二維圖像的所有像素點中識別出用于表征目標(biāo)對象的輪廓的第一像素點集合,通過調(diào)用圖像處理器在第一像素點集合中識別出一個或多個第二像素點集合,分別將每個第二像素點集合中的像素點連接成目標(biāo)對象的輪廓中的一條線段,并按照預(yù)定渲染方式顯示連接得到的每條線段,由于處理的是二維圖形,故而處理的數(shù)據(jù)量會大量減小,同時將頂點查詢這類負荷較重的數(shù)據(jù)處理任務(wù)交由圖像處理器完成,可以解決相關(guān)技術(shù)中進行實時渲染時對計算機cpu的運算資源消耗量較大的技術(shù)問題,進而達到降低實時渲染時計算機cpu的運算資源消耗量的技術(shù)效果。上述的目標(biāo)對象可以為人物、動物、物體、環(huán)境等具象化的特征,是實際應(yīng)用中,該目標(biāo)對象可以為一個或多個;二維圖形具體可以為深度紋理圖片,或者攜帶每個像素的深度值的二維圖片;上述的輪廓是指目標(biāo)對象的邊沿,如茶壺、人物等與自然環(huán)境或者其它物相區(qū)分的輪廓線;第一像素點集合中保存的像素點即所有識別出的輪廓上的點;第二像素點集合中保存的為識別出的屬于同一線段的所有像素點。上述的預(yù)定渲染方式包括但不局限于素描畫、鋼筆畫、炭筆畫、水彩畫、卡通畫以及水墨畫等渲染方式。上述的裝置主要用于非照片真實級npr渲染,但不局限于此??蛇x地,獲取單元還用于獲取采集到的類型為深度紋理類型的二維圖像,其中,類型為深度紋理類型的二維圖像中攜帶有像素點的深度值。具體地,可直接渲染目標(biāo)對象得到該目標(biāo)對象的深度紋理。可選地,第一識別單元還用于對于二維圖像的所有像素點中的每個像素點,執(zhí)行以下步驟,其中,每個像素點在執(zhí)行以下步驟時被記為當(dāng)前像素點:獲取當(dāng)前像素點的深度變化值,其中,深度變化值用于指示當(dāng)前像素點的多個相鄰像素點之間的深度變化程度;在當(dāng)前像素點的深度變化值大于等于預(yù)定的深度變化閾值的情況下,確定當(dāng)前像素點為第一像素點集合中的像素點。可選地,第一識別單元包括:第一獲取模塊,用于獲取第一濾波器對多個相鄰像素點進行第一過濾處理得到的第一深度變化值,其中,第一深度變化值用于表示多個相鄰像素點之間在第一方向上的深度變化程度;第二獲取模塊,用于獲取第二濾波器對多個相鄰像素點進行第二過濾處理得到的第二深度變化值,其中,第二深度變化值用于表示多個相鄰像素點之間在第二方向上的深度變化程度,第二方向與第一方向不同;確定模塊,用于根據(jù)第一深度變化值和第二深度變化值確定當(dāng)前像素點的深度變化值。上述的第一獲取模塊還用于獲取第一濾波器按照第一公式進行第一過濾處理得到的第一深度變化值,其中,第一公式用于計算多個相鄰像素點中在第一方向上相鄰的像素點的第一深度參數(shù)之和,第一深度參數(shù)為在第一方向上相鄰的像素點的深度值與對應(yīng)的影響因子的乘積。對于當(dāng)前像素點而言,一般包括與之相鄰并且圍繞在當(dāng)前像素點周圍的8個像素點,可以將當(dāng)前像素點記為s11,那么其左上角的像素點為s00,正上方的像素點為s01,右上角的像素點為s11,正左側(cè)的像素點為s10,正右側(cè)的像素點為s12,左下角的像素點為s20,正下方的像素點為s21,右下角的像素點為s22。上述的第一方向可以為縱向,第一公式為sobelx=s00+2*s10+s20-s02-2*s12-s22,sobelx表示第一深度變化值,s00、s10、s20、s02、s12、s22為對應(yīng)位置的像素的深度值,1、2、1、-1、-2、-1為相應(yīng)像素的影響因子。上述的第二獲取模塊還用于獲取第二濾波器按照第二公式進行第二過濾處理得到的第二深度變化值sobely,其中,第二公式用于計算多個相鄰像素點中在第二方向上相鄰的像素點的第二深度參數(shù)之和,第二深度參數(shù)為在第二方向上相鄰的像素點的深度值與對應(yīng)的影響因子的乘積。上述的第二方向可以為橫向,第一公式為sobely=s00+2*s01+s02-s20-2*s21-s22,sobely表示第二深度變化值,s00、s01、s02、s20、s21、s22為對應(yīng)位置的像素的深度值,1、2、1、-1、-2、-1為相應(yīng)像素的影響因子??蛇x地,確定模塊還用于將當(dāng)前像素點的深度變化值設(shè)置為第一深度變化值的平方與第二深度變化值的平方之和。可選地,第二識別單元包括:發(fā)送模塊,用于發(fā)送頂點查詢請求至圖像處理器,其中,頂點查詢請求中攜帶有第一像素點集合中像素點的位置信息和深度信息;接收模塊,用于接收圖像處理器的響應(yīng)信息,其中,響應(yīng)信息用于指示第一像素點集合中像素點是否屬于第二像素點集合。上述的圖像處理器gpu具備頂點紋理處理功能,在使用該功能時,將模型的所有頂點以畫點的方式向gpu進行查詢,如果該頂點是在輪廓線上,那么就把它繪制出來,否則不繪制,這個結(jié)果會以查詢結(jié)果(即響應(yīng)信息)的方式反饋給cpu,最終就會得到哪些頂點在輪廓線上的第二像素點集合??蛇x地,渲染單元還用于按照預(yù)設(shè)條件將第二像素點集合中的像素點串聯(lián)成一條線段,其中,一條線段至少包括一個筆畫,預(yù)設(shè)條件用于指示每個筆畫包括的像素點數(shù)目、筆畫長度以及筆畫包括的相鄰的像素點間的轉(zhuǎn)角角度中的至少之一。具體可在cpu中將得到的輪廓線頂點進行串聯(lián)成筆畫,串聯(lián)后可以根據(jù)一個筆畫的頂點數(shù)目,筆畫長度,頂點之間的轉(zhuǎn)角角度來決定如何將筆畫進行斷連,最后形成獨立的筆畫??蛇x地,渲染單元還用于將每個筆畫擴展成為筆畫帶;使用與預(yù)定渲染方式對應(yīng)的筆觸對筆畫帶進行繪制,其中,預(yù)定渲染方式包括素描畫、鋼筆畫、炭筆畫、水彩畫、卡通畫以及水墨畫。具體可應(yīng)用筆觸將筆畫的頂點在屏幕空間擴展成筆畫帶,為套用筆觸做準(zhǔn)備,然后給每個筆畫帶套用相應(yīng)的筆觸,最終得到滿足需求的圖像。在本申請的技術(shù)方案中,基于顯卡的特性進行高效處理,將以前的預(yù)計算、cpu和gpu交互等高開銷的操作優(yōu)化掉,大大提升了運行的效率。去除預(yù)處理計算,降低系統(tǒng)復(fù)雜度,并可以針對一切原始模型進行直接處理;另外,使用gpu特性進行查詢,大大高效于相關(guān)技術(shù)中鎖住z-buffer進行逐輪廓邊頂點比較剔除這種低效操作,從而可以降低cpu的開銷。此處需要說明的是,上述模塊與對應(yīng)的步驟所實現(xiàn)的示例和應(yīng)用場景相同,但不限于上述實施例1所公開的內(nèi)容。需要說明的是,上述模塊作為裝置的一部分可以運行在如圖1所示的硬件環(huán)境中,可以通過軟件實現(xiàn),也可以通過硬件實現(xiàn),其中,硬件環(huán)境包括網(wǎng)絡(luò)環(huán)境。實施例3根據(jù)本發(fā)明實施例,還提供了一種用于實施上述對象的渲染方法的服務(wù)器或終端。圖15是根據(jù)本發(fā)明實施例的一種終端的結(jié)構(gòu)框圖,如圖15所示,該終端可以包括:一個或多個(圖中僅示出一個)處理器1501、存儲器1503、以及傳輸裝置1505(如上述實施例中的發(fā)送裝置),如圖15所示,該終端還可以包括輸入輸出設(shè)備1507。其中,存儲器1503可用于存儲軟件程序以及模塊,如本發(fā)明實施例中的方法和裝置對應(yīng)的程序指令/模塊,處理器1501通過運行存儲在存儲器1503內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實現(xiàn)上述的方法。存儲器1503可包括高速隨機存儲器,還可以包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態(tài)存儲器。在一些實例中,存儲器1503可進一步包括相對于處理器1501遠程設(shè)置的存儲器,這些遠程存儲器可以通過網(wǎng)絡(luò)連接至終端。上述網(wǎng)絡(luò)的實例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動通信網(wǎng)及其組合。上述的傳輸裝置1505用于經(jīng)由一個網(wǎng)絡(luò)接收或者發(fā)送數(shù)據(jù),還可以用于處理器與存儲器之間的數(shù)據(jù)傳輸。上述的網(wǎng)絡(luò)具體實例可包括有線網(wǎng)絡(luò)及無線網(wǎng)絡(luò)。在一個實例中,傳輸裝置1505包括一個網(wǎng)絡(luò)適配器(networkinterfacecontroller,nic),其可通過網(wǎng)線與其他網(wǎng)絡(luò)設(shè)備與路由器相連從而可與互聯(lián)網(wǎng)或局域網(wǎng)進行通訊。在一個實例中,傳輸裝置1505為射頻(radiofrequency,rf)模塊,其用于通過無線方式與互聯(lián)網(wǎng)進行通訊。其中,具體地,存儲器1503用于存儲應(yīng)用程序。處理器1501可以通過傳輸裝置1505調(diào)用存儲器1503存儲的應(yīng)用程序,以執(zhí)行下述步驟:獲取對目標(biāo)對象進行圖像采集得到的二維圖像;在二維圖像的所有像素點中識別出第一像素點集合,其中,第一像素點集合中的像素點為目標(biāo)對象的輪廓上的點;通過調(diào)用圖像處理器在第一像素點集合中識別出一個或多個第二像素點集合,其中,每個第二像素點集合中的像素點用于指示目標(biāo)對象的輪廓中的一條線段;分別將每個第二像素點集合中的像素點連接成目標(biāo)對象的輪廓中的一條線段,并按照預(yù)定渲染方式顯示連接得到的每條線段。處理器1501還用于執(zhí)行下述步驟:獲取當(dāng)前像素點的深度變化值,其中,深度變化值用于指示當(dāng)前像素點的多個相鄰像素點之間的深度變化程度;在當(dāng)前像素點的深度變化值大于等于預(yù)定的深度變化閾值的情況下,確定當(dāng)前像素點為第一像素點集合中的像素點。采用本發(fā)明實施例,處理器直接獲取對目標(biāo)對象進行圖像采集得到的二維圖像,在二維圖像的所有像素點中識別出用于表征目標(biāo)對象的輪廓的第一像素點集合,通過調(diào)用圖像處理器在第一像素點集合中識別出一個或多個第二像素點集合,分別將每個第二像素點集合中的像素點連接成目標(biāo)對象的輪廓中的一條線段,并按照預(yù)定渲染方式顯示連接得到的每條線段,由于處理的是二維圖形,故而處理的數(shù)據(jù)量會大量減小,同時將頂點查詢這類負荷較重的數(shù)據(jù)處理任務(wù)交由圖像處理器完成,可以解決相關(guān)技術(shù)中進行實時渲染時對計算機cpu的運算資源消耗量較大的技術(shù)問題,進而達到降低實時渲染時計算機cpu的運算資源消耗量的技術(shù)效果??蛇x地,本實施例中的具體示例可以參考上述實施例1和實施例2中所描述的示例,本實施例在此不再贅述。本領(lǐng)域普通技術(shù)人員可以理解,圖15所示的結(jié)構(gòu)僅為示意,終端可以是智能手機(如android手機、ios手機等)、平板電腦、掌上電腦以及移動互聯(lián)網(wǎng)設(shè)備(mobileinternetdevices,mid)、pad等終端設(shè)備。圖15其并不對上述電子裝置的結(jié)構(gòu)造成限定。例如,終端還可包括比圖15中所示更多或者更少的組件(如網(wǎng)絡(luò)接口、顯示裝置等),或者具有與圖15所示不同的配置。本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令終端設(shè)備相關(guān)的硬件來完成,該程序可以存儲于一計算機可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:閃存盤、只讀存儲器(read-onlymemory,rom)、隨機存取器(randomaccessmemory,ram)、磁盤或光盤等。實施例4本發(fā)明的實施例還提供了一種存儲介質(zhì)??蛇x地,在本實施例中,上述存儲介質(zhì)可以用于執(zhí)行對象的渲染方法的程序代碼。可選地,在本實施例中,上述存儲介質(zhì)可以位于上述實施例所示的網(wǎng)絡(luò)中的多個網(wǎng)絡(luò)設(shè)備中的至少一個網(wǎng)絡(luò)設(shè)備上。可選地,在本實施例中,存儲介質(zhì)被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:s11,獲取對目標(biāo)對象進行圖像采集得到的二維圖像;s12,在二維圖像的所有像素點中識別出第一像素點集合,其中,第一像素點集合中的像素點為目標(biāo)對象的輪廓上的點;s13,通過調(diào)用圖像處理器在第一像素點集合中識別出一個或多個第二像素點集合,其中,每個第二像素點集合中的像素點用于指示目標(biāo)對象的輪廓中的一條線段;s14,分別將每個第二像素點集合中的像素點連接成目標(biāo)對象的輪廓中的一條線段,并按照預(yù)定渲染方式顯示連接得到的每條線段??蛇x地,存儲介質(zhì)還被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:s21,獲取當(dāng)前像素點的深度變化值,其中,深度變化值用于指示當(dāng)前像素點的多個相鄰像素點之間的深度變化程度;s22,在當(dāng)前像素點的深度變化值大于等于預(yù)定的深度變化閾值的情況下,確定當(dāng)前像素點為第一像素點集合中的像素點??蛇x地,本實施例中的具體示例可以參考上述實施例1和實施例2中所描述的示例,本實施例在此不再贅述??蛇x地,在本實施例中,上述存儲介質(zhì)可以包括但不限于:u盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。上述實施例中的集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在上述計算機可讀取的存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在存儲介質(zhì)中,包括若干指令用以使得一臺或多臺計算機設(shè)備(可為個人計算機、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。在本發(fā)明的上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的客戶端,可通過其它的方式實現(xiàn)。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本
技術(shù)領(lǐng)域:
的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。當(dāng)前第1頁12