欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于渲染圖像的方法和系統(tǒng)的制作方法

文檔序號(hào):6546215閱讀:198來(lái)源:國(guó)知局
用于渲染圖像的方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明總體上涉及用于渲染圖像的方法和系統(tǒng)。具體而言,涉及一種對(duì)包括在層樹(shù)中列出的多個(gè)不透明和至少部分透明層的圖像進(jìn)行渲染的方法。圖像的層樹(shù)的多個(gè)層分為第一列不透明層和第二列至少部分透明層。每一層分配一索引號(hào),并且根據(jù)分配的索引號(hào)來(lái)將列表進(jìn)行排序。確定每一層是否需要渲染,如果這些層由至少一個(gè)不透明層交疊,則對(duì)要渲染的每一層或某些層應(yīng)用掩模。要渲染的層以基于其在各自的已排序的列表中的位置的順序進(jìn)行渲染。
【專利說(shuō)明】用于渲染圖像的方法和系統(tǒng)

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明總體上涉及用于渲染圖像的方法和系統(tǒng)。具體而言,本發(fā)明涉及渲染包括 多個(gè)不透明和至少部分透明層的圖像的方法。

【背景技術(shù)】
[0002] -般而言,在圖形應(yīng)用中,圖形處理單元(GPU)通常是處理管線中最慢的部分,即 瓶頸。例如,在交互式圖形應(yīng)用中,顯示在顯示屏幕上的內(nèi)容必須連續(xù)更新。在圖像改變的 情況下,例如,菜單窗口關(guān)閉,整個(gè)菜單窗口圖像需要在每幀上完全渲染。然而,即使該內(nèi)容 的某些部分并未更新,這種公知的渲染整個(gè)內(nèi)容的方法仍然導(dǎo)致非最優(yōu)的渲染性能。該方 法進(jìn)一步導(dǎo)致能耗的增加,在實(shí)時(shí)應(yīng)用中,尤為如此。另一公知的用于渲染的方法包括使用 染色器算法,其從頂部到底部渲染一層樹(shù),但該方法也是相對(duì)低效的。
[0003] 因此,本發(fā)明的目的在于提供一種至少部分解決上述問(wèn)題的用于渲染圖像的備選 方法及系統(tǒng)。


【發(fā)明內(nèi)容】

[0004] 根據(jù)本發(fā)明的第一方面,提供了一種對(duì)包括多個(gè)不透明和至少部分透明層的圖像 進(jìn)行渲染的方法,所述方法包括以下步驟:
[0005] 將所述圖像層樹(shù)的多個(gè)層分為第一列不透明層和第二列至少部分透明的層;
[0006] 為每一層分配索引號(hào);
[0007] 以索引號(hào)的升序方式來(lái)對(duì)第一列進(jìn)行排序;
[0008] 確定每一層是否需要渲染;
[0009] 若答案是肯定的,則對(duì)要渲染的交疊有不透明層的每一層進(jìn)行掩模;以及
[0010] 將每一掩模層以及要渲染的每一附加層以基于其在各自的已排序列表中的位置 的順序進(jìn)行渲染。
[0011] 可基于層在圖像的層樹(shù)中的位置將索引號(hào)分配到該層。
[0012] 在優(yōu)選實(shí)施例中,從圖像的層樹(shù)的頂部開(kāi)始依照遞增的順序分配所述索引號(hào)。
[0013] 在一實(shí)施例中,該方法可包括根據(jù)該列不透明層和透明層生成一列相交的不透明 前景層。
[0014] 此外,在該實(shí)施例中,該方法可包括根據(jù)該列不透明層和透明層生成一列相交的 不透明背景層。
[0015] 對(duì)每一層進(jìn)行掩模的步驟可包括將模板緩沖器從軸對(duì)齊邊界矩形的矩形區(qū)域清 為整數(shù)值0。在其他實(shí)施例中,對(duì)每一層進(jìn)行掩模的步驟可通過(guò)各種其他掩模技術(shù)來(lái)執(zhí)行, 例如深度測(cè)試掩模技術(shù)。
[0016] 對(duì)第一列進(jìn)行排序的步驟包括用穩(wěn)定排序法對(duì)第一列排序。優(yōu)選的,所述穩(wěn)定排 序法包括插入排序法以使得更高的索引號(hào)與列中更早的層關(guān)聯(lián)。
[0017] 可按照與第二列相反的數(shù)值順序?qū)Φ谝涣羞M(jìn)行排序。
[0018] 在一實(shí)施例中,確定每一層是否需要渲染的步驟包括確定圖像是否已改變。
[0019] 在一實(shí)施例中,確定每一層是否需要渲染的步驟包括確定層內(nèi)容是否已改變。
[0020] 在一實(shí)施例中,確定每一層是否需要進(jìn)行渲染的步驟包括確定任一層是否已改 變,例如,確定附加層是否已包括到這些層中。
[0021] 在本實(shí)施例中,該方法可包括確定附加層是否是透明層。如果答案是肯定的,則該 方法可包括通知全部相交的下方層需要進(jìn)行渲染。此外,該方法可包括通知與該附加層相 交的所有透明的前景層。
[0022] 在一示例性實(shí)施例中,該方法可包括確定附加層是否是不透明的。如果答案是肯 定的,則該方法可包括通知與附加層相交的所有透明的前景層。
[0023] 在一實(shí)施例中,確定每一層是否需要渲染的步驟可包括確定位于不透明層前方的 任一透明層是否已改變。
[0024] 在一實(shí)施例中,確定每一層是否需要渲染的步驟可包括確定某層是否已從圖像中 移除。若答案是肯定的,則該方法可包括通知與已移除層相交的全部下方層的步驟,并且, 還通知與已移除層相交的全部透明的前景層。該方法進(jìn)一步可包括通知與移除層相交的透 明的前景層需要進(jìn)行渲染。
[0025] 在一實(shí)施例中,確定每一層是否需要渲染的步驟包括確定一層是否已從圖像中移 除。若答案是肯定的,則該方法進(jìn)一步包括通知與移除層相交的全部下方層。
[0026] 該方法可包括從不透明的全部相交的前景層生成掩模。
[0027] 生成掩模的步驟包括將模板緩沖器從一軸對(duì)齊邊界矩形的矩形區(qū)域清為整數(shù)值 0〇
[0028] 該方法進(jìn)一步包括將全部相交的前景不透明層渲染到具有數(shù)值1的模板緩沖器。
[0029] 本發(fā)明還提供一種用于將具有多個(gè)不透明以及至少部分透明的層的圖像進(jìn)行渲 染的系統(tǒng),所述系統(tǒng)包括:
[0030] 索引模塊,其可操作用以對(duì)每一層分配索引號(hào);
[0031] 分離模塊,其可操作用以將所述圖像的層樹(shù)的多個(gè)層分為第一列不透明層以及第 二列至少部分透明層;
[0032] 排序模塊,其可操作用以依照索引號(hào)的升序來(lái)對(duì)第一列進(jìn)行排序;
[0033] 查詢模塊,其可操作用以確定每一層是否需要渲染;
[0034] 掩模模塊,其可操作用以響應(yīng)于層需要渲染的確定來(lái)對(duì)交疊有不透明層的要渲染 的每一層進(jìn)行掩模;
[0035] 渲染模塊,其可操作用以將每一掩模層以及要渲染的每一附加層以基于其在各自 的已排序列表中的位置的順序進(jìn)行渲染。
[0036] 本發(fā)明還提供一種其中存儲(chǔ)有一系列計(jì)算機(jī)可讀指令的非暫時(shí)性的計(jì)算機(jī)可讀 介質(zhì),該指令用于使處理器對(duì)包括多個(gè)不透明和至少部分透明層的圖像進(jìn)行渲染,其包括 以下計(jì)算機(jī)實(shí)現(xiàn)的步驟:
[0037] 為每一層分配索引號(hào);
[0038] 將所述圖像的層樹(shù)的多個(gè)層分為第一列不透明層和第二列至少部分透明層;
[0039] 以索引號(hào)的升序方式將第一列排序;
[0040] 確定每一層是否需要渲染;
[0041] 若答案是肯定的,則對(duì)交疊有不透明層的要渲染的每一層進(jìn)行掩模;以及
[0042] 將每一掩模的層和要渲染的每一附加層以基于其在各自的已排序列表中的位置 的順序進(jìn)行渲染。

【專利附圖】

【附圖說(shuō)明】
[0043] 僅以舉例的方式并參照附圖來(lái)描述本發(fā)明,附圖中:
[0044] 圖1顯示了使用時(shí)在顯示屏幕上顯示內(nèi)容的表示方式;
[0045] 圖2顯示了根據(jù)本發(fā)明的一方面用于渲染圖像的系統(tǒng)的模塊;
[0046] 圖3顯示了根據(jù)本發(fā)明的另一方面渲染圖像方法的流程;
[0047] 圖4顯不了根據(jù)圖2和圖3的排序到兩個(gè)列表的層的不意圖;以及
[0048] 圖5a和圖5b顯示了圖3中方法的示例性實(shí)施例。

【具體實(shí)施方式】
[0049] 在以下說(shuō)明中,出于解釋的目的而闡述了許多具體細(xì)節(jié),以提供對(duì)本發(fā)明實(shí)施例 的徹底理解。然而,對(duì)本領(lǐng)域的技術(shù)人員來(lái)說(shuō)顯而易見(jiàn)的是,本發(fā)明可以不用這里的具體細(xì) 節(jié)或者所描述的特定方式來(lái)實(shí)施。
[0050] 在附圖的圖1中,參考數(shù)字10總體表示用于顯示裝置(未示出)的顯示屏幕。還 參考圖2,用于渲染圖像的系統(tǒng)由參考數(shù)字20表示。顯示裝置可以是移動(dòng)裝置或者個(gè)人計(jì) 算機(jī)。顯示屏幕10包括顯示為頁(yè)面圖標(biāo)13、編輯圖標(biāo)14、撤銷圖標(biāo)15和文件圖標(biāo)16的圖 標(biāo)12。通過(guò)點(diǎn)擊圖標(biāo)12中的一個(gè),為用戶提供在顯示屏幕上顯示為對(duì)由用戶提供的輸入動(dòng) 作的確認(rèn)的可視化顯示。因此,無(wú)論何時(shí)用戶點(diǎn)擊圖標(biāo)12中的一個(gè),特定的顯示屏幕10就 得相應(yīng)更新。例如,在圖1中,當(dāng)用戶點(diǎn)擊編輯圖標(biāo)14時(shí),顯示屏幕被認(rèn)為是損壞的,因此 其應(yīng)當(dāng)被重新繪制。在本示例中,當(dāng)點(diǎn)擊編輯圖標(biāo)14時(shí),顯示由參考數(shù)字17表示的下拉菜 單。當(dāng)下拉菜單17關(guān)閉時(shí),菜單所在的區(qū)域必須要進(jìn)行重新繪制,從而產(chǎn)生交疊有菜單的 顯示屏幕。在使用中,系統(tǒng)20(見(jiàn)圖2)和方法28(見(jiàn)圖3)渲染由下拉菜單17所描述的圖 像,以及通過(guò)最小化過(guò)度繪制來(lái)渲染由下拉菜單17的關(guān)閉表示的圖像。具體來(lái)說(shuō),系統(tǒng)20 和方法28通過(guò)確保在渲染特定層之前將圖像的層分為不透明層和透明層來(lái)以最優(yōu)的方式 渲染圖像。
[0051] 參考附圖中的圖2,參考數(shù)字20總體上表示用于渲染包含多個(gè)不透明和至少部分 透明層的圖像的系統(tǒng)。該系統(tǒng)在下文中稱為圖像渲染系統(tǒng)20,并且包括圖像渲染處理器 21,其定義對(duì)應(yīng)于由處理器21執(zhí)行的功能任務(wù)的多個(gè)概念模塊22、23、24、25、26和27。這 些模塊包括索引模塊22、分離模塊23、排序模塊24、查詢模塊25、掩模模塊26和渲染模塊 27〇
[0052] 在多數(shù)圖形應(yīng)用中,無(wú)論何時(shí)顯示屏幕的內(nèi)容有任何改變,顯示屏幕就得相應(yīng)地 重繪或者更新。因此,由圖像表示的內(nèi)容需要經(jīng)過(guò)重繪處理。圖像首先轉(zhuǎn)化為圖形,該圖形 又由多個(gè)層表示。這些層包括不透明層和透明層。系統(tǒng)20通過(guò)其索引模塊22將索引號(hào)分 配到全部的透明和不透明層。分離模塊23配置為將圖像的層樹(shù)的多個(gè)層分為不透明層的 第一列表和透明層的第二列表。然后,排序模塊24以索引號(hào)的升序方式對(duì)層的不透明列表 進(jìn)行排序。可以理解的是,可以用不同的排序方法對(duì)列表進(jìn)行排序。一旦列表被排序,查詢 模塊25便會(huì)詢問(wèn)多個(gè)層,以判斷該多個(gè)層是否需要渲染。在這些層需要渲染的情況下,掩 模模塊26對(duì)要渲染的交疊有透明層的每一層進(jìn)行掩模。然后,渲染模塊27將每一掩模層 以及要渲染的每一附加層以基于其在各自的已排序列表中的位置的順序進(jìn)行渲染。
[0053] 參考用以說(shuō)明渲染圖像的方法28的圖3、圖4、圖5a和圖5b,進(jìn)一步描述模塊22、 23、24、25、26和27。圖4顯不了排序?yàn)閮蓚€(gè)列表的層的不意圖,而圖5a和圖5b顯不了進(jìn) 行渲染的圖像的示例性實(shí)施例。
[0054] 具體參考圖2、圖3、圖4、圖5a和圖5b,方法28包括將索引號(hào)分配到層樹(shù)35 (見(jiàn)圖 4)上的每一層的步驟(在框29中)。索引號(hào)的分配由索引模塊22完成。具體來(lái)說(shuō),依據(jù) 層在層樹(shù)35上的外觀來(lái)給層樹(shù)上的每一層分配遞增的索引號(hào)。索引號(hào)按照從圖像的層樹(shù) 的頂端到層樹(shù)的底部遞增的順序分配。例如,如圖4所示,第一不透明層35. 1 (在頂行中) 分配有索引號(hào)1,并且隨后的不透明層35. 2分配有索引號(hào)2。在樹(shù)35中由不透明層35. 1 表示的更高節(jié)點(diǎn)分配有更低的索引號(hào),即索引號(hào)1。在隨后的不透明層35. 2之后,存在第一 透明層35. 3,并且其分配有索引號(hào)1而不是3,因?yàn)槠錇樾骂愋偷膶印?br> [0055] -旦層已分配有索引號(hào),那么方法28就將層劃分為第一和第二列表(在框30 中)。該劃分操作由分離模塊23完成。第一和第二列表分別表不不透明列表和透明列表。 圖4顯示了不透明列表由參考數(shù)字36表示,透明列表由參考數(shù)字37表示。
[0056] 在本說(shuō)明書(shū)的上下文中,透明層可意味著特定透明層覆蓋的區(qū)域取決于層的下方 像素值。透明層可用下述公式來(lái)定義:
[0057] C0 = aaCA+(l - a a) Cb
[0058] 其中,
[0059] C。為在特定像素坐標(biāo)處的輸出顏色值;
[0060] cA為在特定像素坐標(biāo)處的要渲染的透明層顏色;
[0061] Cb為在特定像素坐標(biāo)處的現(xiàn)有顏色;
[0062] a a為在特定像素坐標(biāo)處的CA的透明值,其在當(dāng)前的顏色值和透明層顏色值之間 有效地混合。例如,a a = 1. 〇可表示完全不透明像素值,而a a = 〇. 〇表示完全透明像素 值。因此,透明層定義為根據(jù)A的阿爾法信道在A和B之間混合的多個(gè)層的復(fù)合結(jié)果。本 領(lǐng)域技術(shù)人員可以理解,不透明層不依賴于下方的像素值。
[0063] 系統(tǒng)可從透明層和不透明層生成(未示出)一列相交的不透明前景層和一列相交 的不透明背景層。因此,每一層包括兩列:一列針對(duì)相交的背景層,而另一列針對(duì)相交的前 景層。這種相交列表可在從圖形轉(zhuǎn)化到層期間生成,使得根據(jù)全部下方的前景層完成軸對(duì) 齊邊界矩形測(cè)試。
[0064] 方法28通過(guò)排序模塊24以降序方式對(duì)不透明列表進(jìn)行排序(在框31中)。也就 是說(shuō),不透明列表以與透明列表相反的數(shù)值順序排序。在一優(yōu)選的實(shí)施例中,采用稱為穩(wěn)定 排序的常用方法對(duì)不透明列表36進(jìn)行排序。具體而言,不透明列表36采用插入式排序方 法進(jìn)行排序,使得已分配有更高的索引號(hào)的層設(shè)置為不透明列表36中的更早的層。如圖4 所示,在不透明列表36上顯示的第一不透明層顯示為不透明數(shù)字3。
[0065] 在框32中,該方法包括確定是否每一層需要渲染的步驟。具體而言,查詢模塊25 詢問(wèn)這些層以確定其是否需要渲染。存在各種特定層需要渲染的原因。在示例性實(shí)施例中, 可能在圖像改變的位置處需要渲染。例如,在圖像形式為屏幕上顯示的下拉菜單的情況下, 圖像可通過(guò)關(guān)閉下拉菜單而發(fā)生改變。在其他情況下,如果圖像為可點(diǎn)擊的方框的形式,那 么該圖像可在點(diǎn)擊方框的時(shí)候改變。因此,對(duì)圖像的任何改變將導(dǎo)致圖像的層需要渲染。
[0066] 在其他情況下,如果圖像已發(fā)生改變,那么這種層的改變將導(dǎo)致層需要渲染從而 更新這種改變。例如,層可在附加層包括在層中時(shí)發(fā)生改變。附加層可檢測(cè)其是否為透明 的或者不透明的。如果附加層是透明的,將通知全部相交的下方層需要進(jìn)行渲染。另外,可 通知與附加層相交的透明的全部前景層。如果附加層是不透明的,那么可通知全部前景層 存在與附加層相交的透明層。
[0067] 在其他示例性實(shí)施例中,確定層是否需要渲染可包括確定設(shè)置在不透明層前的任 意透明層是否已改變。在其他備選實(shí)施例中,確定層是否需要渲染可包括確定層是否從圖 像中移除。如果發(fā)現(xiàn)層已從圖像中移除,那么應(yīng)通知與已移除層相交的全部下方層需要進(jìn) 行渲染。另外,也應(yīng)當(dāng)通知與已移除層相交的透明前景層需要進(jìn)行渲染。
[0068] 色彩緩沖器(視頻/屏幕存儲(chǔ)器)中的數(shù)據(jù)根據(jù)之前的渲染結(jié)果而被保存下來(lái)。 在使用雙緩沖器(或者三個(gè)緩沖器)來(lái)顯示從存儲(chǔ)器(緩沖器A)到屏幕(緩沖器B)的像 素的硬件上,需要將緩沖器的內(nèi)容從緩沖器A拷貝到緩沖器B,而不是將緩沖器反轉(zhuǎn)。這是 一種GPU通常支持的交換機(jī)制,因?yàn)榭煽截惥彌_器數(shù)據(jù)而不是將緩沖器反轉(zhuǎn)。
[0069] 以下算法描述了渲染標(biāo)識(shí)如何針對(duì)層列表中的每一層而被觸發(fā)的,其中,假設(shè)有 關(guān)相交層的信息是已知的:
[0070] forciich Layer in LayerList LaycrObscrvcRcndcri layer) LaycrObscrvcRcndcrCLayer layer) TriggcrlntcrscctingForcgroundTranspiircntLaycrs ^ Flase If laycr.contcntC'hangcdO laycr.RendcrRcquircd ^ True If layer,transformationChanged() laycr.RendcrRcquircd ^ True TriggcrlnicrscciingForcgroundTransparentLayers _ True TriggcrlntcrscctingBackgroundlaycrs _ True If laycr.RendcrRcquircd True AND laycr.isTransparcnt() Triggei'lntei'sectingR)i'egR)uiKn lansparentLayers _ True I f 1 ay cr. R end erReq u i red foreach Layer foregroundLayer in layerintersectmgForegroundLaycrs()//Intcrsecting ti'ansparcnt hiycrs in current and previous frame if foreground Layer. isTransparentO AND foreground Laycr.RendcrRcquircd False forcgroundLaycr.RcndcrRcquircd _ True LaycK)bscrveRender(foregroundLayer) If TriggcrlntcrscctingBackgroundLayers foreach Layer backgroundLaycr in Layer. IntcrscctingF3ackgroiint]Laycrs()/Vintcrsccting layers in current and previous frame
[0071] if backgroundLayer.RenderRequired = False backgroundLaycr.RcnderRequired = True LayerObscrvcRcndcribackground Layer)
[0072] 參照上述算法,查詢模塊25將確定每一層是否需要渲染。在特定層需要渲染的情 況下,在所述特定層上設(shè)置標(biāo)識(shí)。在層上設(shè)定標(biāo)識(shí)用以指示需要渲染的層。標(biāo)識(shí)的狀態(tài)例 如可以是"否"或者"是",其中,"否"表示特定層不需要渲染,而"是"表示特定層需要渲染。
[0073] 若背景層的標(biāo)識(shí)為"否",則該層與獨(dú)立的不透明層和相交的透明層相交。若獨(dú)立 的不透明層的標(biāo)識(shí)為"否",則該獨(dú)立的不透明層與背景層相交。若相交的透明層的標(biāo)識(shí)指 示為"是",則該相交的透明層與背景層相交。根據(jù)該算法,相交的透明層將觸發(fā)相交的不透 明層以進(jìn)行渲染,從而也會(huì)導(dǎo)致標(biāo)識(shí)狀態(tài)的改變。以下說(shuō)明該改變。
[0074] 背景層的標(biāo)識(shí)改變?yōu)?是"。獨(dú)立的不透明層的標(biāo)識(shí)指示"否"的狀態(tài),因?yàn)楠?dú)立的 不透明層不與透明層相交。在這種情況下,相交的透明層的標(biāo)識(shí)指示為"是"。這意味著背 景層相應(yīng)地應(yīng)得到渲染??偠灾瑧?yīng)通知與已移除層相交的全部下方層需要進(jìn)行渲染。
[0075] 參考圖5a,一旦已識(shí)別出層需要渲染,則在框33中掩模模塊26根據(jù)不透明的全部 相交的前景層38. 1和38. 3而生成相交掩模38. 4。在示例性的實(shí)施例中,層38. 1和38. 3 均為不透明的,因此,隨后由層38. 1和38. 3二者對(duì)層38. 2進(jìn)行掩模。相交掩模通過(guò)將模 板緩沖器從軸對(duì)齊的邊界矩形的矩形區(qū)域清為整數(shù)值〇生成。隨后,全部相交的前景不透 明層渲染到具有數(shù)值1的模板緩沖器中。最后,當(dāng)在屏幕上渲染單個(gè)層時(shí),執(zhí)行接受具有模 板數(shù)值〇的全部片段的模板測(cè)試函數(shù)。本領(lǐng)域技術(shù)人員將會(huì)理解,掩模模塊26可使用其他 不同的掩模技術(shù),以對(duì)需要渲染的層進(jìn)行掩模。在一不例性實(shí)施例中,該掩模技術(shù)可以為稱 為深度測(cè)試掩模技術(shù)的技術(shù)。
[0076] 在圖5b中,不透明和透明層表示為參考數(shù)字39。具體來(lái)說(shuō),層39. 2用層39. 3而 不是用層39. 1進(jìn)行掩模,因?yàn)閷?9. 2中的像素需要進(jìn)行渲染以保證層39. 1正確地進(jìn)行渲 染。這是由于層39. 1對(duì)層39. 2具有依賴性。通過(guò)計(jì)算層依賴性并基于層依賴性,僅將必 須的層進(jìn)行渲染,這保證了僅針對(duì)幀的子區(qū)域執(zhí)行更新。
[0077] 所舉例說(shuō)明的本發(fā)明的有益效果在于在渲染圖像的同時(shí)提高性能并減少功率。
[0078] 應(yīng)該理解的是,本發(fā)明所公開(kāi)的實(shí)施例不限于這里所公開(kāi)的特定結(jié)構(gòu)、處理步驟 或材料,而應(yīng)當(dāng)延伸到相關(guān)領(lǐng)域的普通技術(shù)人員所理解的這些特征的等同替代。還應(yīng)當(dāng)理 解的是,在此使用的術(shù)語(yǔ)僅用于描述特定實(shí)施例的目的,而并不意味著限制。
[0079] 說(shuō)明書(shū)中提到的"一個(gè)實(shí)施例"或"實(shí)施例"意指結(jié)合實(shí)施例描述的特定特征、結(jié) 構(gòu)或特性包括在本發(fā)明的至少一個(gè)實(shí)施例中。因此,說(shuō)明書(shū)通篇各個(gè)地方出現(xiàn)的短語(yǔ)"一個(gè) 實(shí)施例"或"實(shí)施例"并不一定均指同一個(gè)實(shí)施例。
[0080] 為了方便,在此使用的多個(gè)項(xiàng)目、結(jié)構(gòu)單元、組成單元和/或材料可出現(xiàn)在共同列 表中。然而,這些列表應(yīng)解釋為該列表中的每個(gè)元素分別識(shí)別為單獨(dú)唯一的成員。因此,該 列表中沒(méi)有一個(gè)成員可僅基于它們出現(xiàn)在共同列表中而沒(méi)有反面指示便被解釋為相同列 表的任何其它成員的實(shí)際等同。另外,在此還可以連同針對(duì)各元件的替代一起來(lái)參照本發(fā) 明的各種實(shí)施例和示例。應(yīng)當(dāng)理解的是,這些實(shí)施例、示例和替代并不解釋為彼此的等同 物,而被認(rèn)為是本發(fā)明的單獨(dú)自主的代表。
[0081] 此外,所描述的特征、結(jié)構(gòu)或特性可以任何其他合適的方式結(jié)合到一個(gè)或多個(gè)實(shí) 施例中。在下面的描述中,提供一些具體的細(xì)節(jié),例如長(zhǎng)度、寬度、形狀等,以提供對(duì)本發(fā)明 的實(shí)施例的全面理解。然而,相關(guān)領(lǐng)域的技術(shù)人員將明白,本發(fā)明無(wú)需上述一個(gè)或多個(gè)具體 的細(xì)節(jié)便可實(shí)現(xiàn),或者也可采用其它方法、組件、材料等實(shí)現(xiàn)。在其它示例中,周知的結(jié)構(gòu)、 材料或操作并未詳細(xì)示出或描述以免模糊本發(fā)明的各個(gè)方面。
[0082] 雖然上述示例用于說(shuō)明本發(fā)明在一個(gè)或多個(gè)應(yīng)用中的原理,但對(duì)于本領(lǐng)域的技術(shù) 人員來(lái)說(shuō),在不背離本發(fā)明的原理和思想的情況下,明顯可以在形式上、用法及實(shí)施的細(xì)節(jié) 上作各種修改而不用付出創(chuàng)造性勞動(dòng)。因此,本發(fā)明由所附的權(quán)利要求書(shū)來(lái)限定。
【權(quán)利要求】
1. 一種對(duì)包括多個(gè)不透明層和至少部分透明層的圖像進(jìn)行渲染的方法,其中,所述方 法包括以下步驟: 將所述圖像的層樹(shù)的多個(gè)層分為第一列不透明層和第二列至少部分透明層; 為每一層分配索引號(hào); 以索引號(hào)的升序方式來(lái)對(duì)第一列進(jìn)行排序; 確定每一層是否需要渲染; 若答案是肯定的,則對(duì)要渲染的交疊有不透明層的每一層進(jìn)行掩模;以及 將每一掩模層以及要渲染的每一附加層以基于其在各自的已排序列表中的位置的順 序進(jìn)行?宣染。
2. 如權(quán)利要求1所述的方法,其中,基于層在圖像的層樹(shù)中的位置將索引號(hào)分配到該 層。
3. 如權(quán)利要求1或2所述的方法,其中,從圖像的層樹(shù)的頂部開(kāi)始按照遞增的順序分配 所述索引號(hào)。
4. 如上述權(quán)利要求中任一項(xiàng)所述的方法,其中,所述方法進(jìn)一步包括根據(jù)該列不透明 層和透明層生成一列相交的不透明前景層的步驟。
5. 如上述權(quán)利要求中任一項(xiàng)所述的方法,其中,對(duì)每一層進(jìn)行掩模的步驟包括將模板 緩沖器從軸對(duì)齊邊界矩形的矩形區(qū)域清為整數(shù)值0。
6. 如權(quán)利要求1至4中任一項(xiàng)所述的方法,其中,對(duì)每一層進(jìn)行掩模的步驟包括使用深 度測(cè)試掩模技術(shù)。
7. 如上述權(quán)利要求中任一項(xiàng)所述的方法,其中,所述方法還包括根據(jù)該列不透明層和 透明層生成一列相交的不透明背景層的步驟。
8. 如上述權(quán)利要求中任一項(xiàng)所述的方法,其中,對(duì)不透明的第一列進(jìn)行排序的步驟包 括用穩(wěn)定排序法對(duì)不透明的第一列進(jìn)行排序,其中,該穩(wěn)定排序法包括插入排序法以使得 更高的索引號(hào)與列中更早的層關(guān)聯(lián),其中,按照與透明的第二列相反的數(shù)值順序?qū)Σ煌该?的第一列進(jìn)行排序。
9. 如上述權(quán)利要求中任一項(xiàng)所述的方法,其中,確定每一層是否需要渲染的步驟包括 確定圖像是否已改變。
10. 如上述權(quán)利要求中任一項(xiàng)所述的方法,其中,確定每一層是否需要渲染的步驟包括 確定層內(nèi)容是否已改變。
11. 如上述權(quán)利要求中任一項(xiàng)所述的方法,其中,確定每一層是否需要進(jìn)行渲染的步驟 可包括確定任一層是否已改變,其中,這些層在附加層已包括到這些層中時(shí)發(fā)生改變。
12. 如權(quán)利要求11所述的方法,其中,所述方法包括確定附加層是否是透明的,其中, 響應(yīng)于附加層是透明的確定,所述方法還包括通知全部相交的下方層需要進(jìn)行渲染,并通 知與該附加層相交的所有透明的前景層。
13. 如權(quán)利要求11或12所述的方法,其中,所述方法還包括確定附加層是否為不透明, 其中,響應(yīng)于附加層是不透明的確定,通知與該附加層相交的所有下方層,并通知與該附加 層相交的所有透明的前景層。
14. 一種用于將具有多個(gè)不透明和至少部分透明層的圖像進(jìn)行渲染的系統(tǒng),其中,所述 系統(tǒng)包括: 索引模塊,其可操作用以為每一層分配索引號(hào); 分離模塊,其可操作用以將所述圖像的層樹(shù)的多個(gè)層分為第一列不透明層和第二列至 少部分透明層; 排序模塊,其可操作用以依照索引號(hào)的升序?qū)Φ谝涣羞M(jìn)行排序; 查詢模塊,其可操作用以確定每一層是否需要渲染; 掩模模塊,其可操作用以響應(yīng)于層需要渲染的確定來(lái)對(duì)交疊有不透明層的要渲染的每 一層進(jìn)行掩模; 渲染模塊,其可操作用以將每一掩模層以及要渲染的每一附加層以基于其在各自的已 排序的列表中的位置的順序進(jìn)行渲染。
【文檔編號(hào)】G06T1/00GK104143171SQ201410196756
【公開(kāi)日】2014年11月12日 申請(qǐng)日期:2014年5月9日 優(yōu)先權(quán)日:2013年5月10日
【發(fā)明者】托馬斯·沃洛蒂寧, 阿列克謝·弗拉索夫 申請(qǐng)人:正謂有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
莱西市| 恩施市| 日照市| 宝兴县| 青浦区| 磐安县| 大理市| 肥东县| 区。| 五台县| 巩义市| 博客| 阿合奇县| 德化县| 南安市| 航空| 兖州市| 黄浦区| 武威市| 台东市| 确山县| 平安县| 朝阳区| 会昌县| 鞍山市| 温州市| 壶关县| 乌鲁木齐县| 日土县| 栾川县| 光泽县| 安达市| 靖州| 黔西县| 抚州市| 高台县| 喀什市| 泸定县| 星子县| 溧水县| 枣强县|