亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種渲染模型殘影效果的方法

文檔序號:6556847閱讀:247來源:國知局
專利名稱:一種渲染模型殘影效果的方法
技術領域
本發(fā)明涉及動畫制作方法,尤其涉及一種渲染模型殘影效果的方法。
背景技術
當前,越來越多的游戲和動畫都在追求特色,各種華麗的特效應運而生,其中,渲染出殘影效果就是一種可以使游戲或動畫更富有炫目表現力的手段。殘影效果是指在一幀畫面中既可以看到物體在本幀畫面中的影像又可以看到顏色逐漸變淺的物體在以前幀中的影像。參見圖1和圖2,圖1和圖2分別是在一幀畫面中渲染的8個無殘影效果和有殘影效果的物體的示意圖。從圖1和圖2中可以看到,殘影效果可以使物體更有表現力。
通常情況下,渲染是以像素為單位,根據像素的顏色、透明度和位置等在屏幕上一一繪制各個像素,每一屏幕的內容可以看作是一幀畫面。在一幀畫面中渲染物體或者稱為模型(Model)的殘影效果,常常采用的方法是首先,計算模型在當前幀之前的各個幀中的位置以及每個位置相對于當前幀應該具有的透明度;然后將按照所計算的位置和透明度渲染模型,使之形成殘影。也就是說,如果在一幀畫面中渲染一個具有n-1個殘影的模型,那么首先需要計算模型在前n-1幀中的位置以及每個位置相對于當前幀應該具有的透明度;然后按照所計算的位置和透明度渲染模型,形成n-1個殘影。每次在進行下一幀的渲染時,需要將屏幕上當前幀的所有內容清掉,于是,需要重新計算模型的位置和透明度,然后再進行一一渲染。
按照現有的這種渲染方法,當在連續(xù)的n幀中都需要渲染有殘影效果的模型時,每一幀都需要計算前面幀中所有模型的位置和透明度,然后一一渲染,也就是說,每一幀都需要重復地渲染多個模型,由于渲染是以像素為單位進行的,對于復雜的模型來說,多次渲染,開銷很大,尤其是在主要瓶頸是模型渲染的三維(3D,3 Dimension)場景的渲染中,在每一幀中都對模型進行多次渲染會造成很大的負荷。

發(fā)明內容
有鑒于此,本發(fā)明的目的在于提供一種渲染模型殘影效果的方法,每幀只渲染一次模型,只產生很小的開銷。
為了實現上述發(fā)明目的,本發(fā)明提供一種渲染模型殘影效果的方法,包括設定所需渲染的殘影個數,該方法包括A、創(chuàng)建透明的離屏表面,將需要渲染殘影效果的模型渲染到離屏表面上;B、改變離屏表面上模型的顏色,使離屏表面上模型的顏色變淺;C、將需要渲染殘影效果的模型渲染到步驟B所述的離屏表面上,遮蓋離屏表面上已有的模型;D、判斷是否達到預先設定的殘影個數,如果未達到,返回執(zhí)行步驟B;否則,結束本過程。
步驟B中所述改變離屏表面上模型的顏色,為在離屏表面上渲染與離屏表面大小相同的、透明度不為零的平面,同時調用函數使離屏表面的透明度變?yōu)殡x屏表面當前透明度乘以平面的透明度。在所述步驟B之后,該方法進一步包括改變所述平面的透明度,調整殘影的長度。
步驟B中所述改變離屏表面上模型的顏色,為設置離屏表面上組成模型的像素的表示顏色的RGB值。
在所述步驟B之后,該方法進一步包括調整離屏表面上組成模型的像素的RGB值來調節(jié)離屏表面上模型顏色變淺的程度,調整殘影的長度。
在設置離屏表面上組成模型的像素的表示顏色的RGB值,使離屏表面上模型的顏色變淺之后,該方法進一步包括在離屏表面上渲染與離屏表面大小相同的、透明度不為零的平面,同時調用函數使離屏表面的透明度變?yōu)殡x屏表面當前透明度乘以平面的透明度。在渲染所述平面之后,該方法進一步包括改變所述平面的透明度,調整殘影的長度。
步驟C中所述遮蓋離屏表面上已有的模型,為調用函數取消表示像素遠近關系的Zbuffer。
從以上技術方案可以看到,本發(fā)明所提供的渲染模型殘影效果的方法具有以下有益效果本發(fā)明通過創(chuàng)建透明的離屏表面,將需要渲染殘影效果的模型先渲染到離屏表面上,在接下來每一幀的渲染中,通過使離屏表面上模型的顏色變淺來形成殘影,而不必一一計算模型在以前各幀中的位置和透明度,于是,每一幀只需要渲染一次模型,只產生很小的開銷,對于解決主要瓶頸是模型渲染的3D場景渲染非常有效。另外,由于每幀只渲染一次模型,不用計算以前各幀模型的位置和透明度,效率也因此得到提高。


圖1是在一幀畫面中渲染的8個無殘影效果的物體的示意圖;圖2是在一幀畫面中渲染的8個有殘影效果的物體的示意圖;圖3是根據本發(fā)明實施例的渲染方法的流程圖;圖4A至圖4D是根據本發(fā)明實施例的渲染殘影效果的示意圖;圖5A至圖5C是根據本發(fā)明實施例的通過調整透明度改變殘影長度的效果示意圖。
具體實施例方式
為了使本發(fā)明的特征和優(yōu)點更加清楚明白,下面參照附圖結合具體實施例對本發(fā)明作進一步的描述。
本發(fā)明的主要思想是首先創(chuàng)建透明的離屏表面(surface),將需要渲染殘影效果的模型渲染到離屏表面上,在進行接下來每一幀的渲染之前,使離屏表面上模型的顏色變淺,形成殘影,然后再將需要渲染殘影效果的模型渲染到離屏表面上,于是,就可以出現模型的殘影效果。
具體地,以在3D場景中渲染具有殘影效果的黑色球模型為例,也就是說,在本發(fā)明的實施例中,需要渲染殘影效果的模型是黑色球,組成該黑色球模型的所有像素的透明度為1,顏色為黑色。根據3D場景的需要,預先設定所需渲染的殘影個數n。參見圖3和圖4A至圖4D,圖3是根據本發(fā)明實施例的渲染方法的流程圖;圖4A至圖4D是根據本發(fā)明實施例的渲染殘影效果的示意圖。具體過程和操作步驟如下步驟301、創(chuàng)建透明的離屏表面,將需要渲染殘影效果的模型渲染到所創(chuàng)建的離屏表面上;所謂離屏表面就是一種獨立于屏幕的表面,如同一張薄膜覆蓋在屏幕上,可以與整個屏幕一樣大小,因為需要渲染殘影的模型不一定能充滿整個離屏表面,為了在場景渲染時調用離屏表面不影響場景中的其它物體和模型,所以,所創(chuàng)建的離屏表面必須是透明的,也就是透明度為零,無顏色。將黑色球渲染到離屏表面上時,由于渲染是以像素為單位進行的,所以在渲染黑色球模型的每個像素時,都調用已有函數,使離屏表面的透明度等于所渲染的像素的透明度,于是黑色球所覆蓋的離屏表面的區(qū)域透明度變?yōu)?,顏色為黑色,于是,在離屏表面上就形成一個黑色球,如圖4A所示。隨后,可以在進行場景渲染時,調用離屏表面,將其渲染到3D場景中,形成第一幀畫面。
步驟302、使渲染在離屏表面上的模型的顏色變淺;步驟301中在離屏表面上渲染了模型本身,下面將制作模型殘影。調整離屏表面上模型的顏色,使之變淺,作為殘影,而不用像現有技術那樣,首先計算模型的位置和透明度,再渲染模型的殘影。具體地,可以在離屏表面上渲染一個與離屏表面大小相同的、透明度為alpha的平面,渲染該平面的同時,調用已有函數,該函數表示渲染完該平面之后離屏表面的透明度等于渲染之前離屏表面的透明度乘以所渲染的平面的透明度alpha,于是,在渲染這樣一個平面后,離屏表面上透明度為零的區(qū)域,透明度仍然保持不變,而透明度不為零的區(qū)域,也就是被黑色球模型覆蓋的區(qū)域,透明度乘以alpha,這相當于將離屏表面上黑色球的透明度降低alpha,于是在離屏表面上的黑色球由于透明度的降低,顏色變淺,如圖4B所示。另外,也可以直接設置或調整離屏表面上已經渲染的模型像素的RGB(RRed,GGreen,BBlue)值,使離屏表面上的模型顏色變淺,其中不同的RGB值表示不同的顏色。同樣地,還可以在渲染與離屏表面大小相同的、透明度為alpha的平面后,再調整離屏表面上已經渲染的模型像素的RGB值;反過來,適當調整模型像素的RGB值后,再渲染與離屏表面大小相同的、透明度為alpha的平面同樣適用。
步驟303、將待渲染殘影效果的模型渲染到離屏表面上,使剛渲染的模型遮蓋離屏表面上已有的模型;經過步驟302之后,離屏表面上已經有一個顏色變淺的球,再渲染黑色球模型時,會首先根據屬性Zbuffer的值判斷各個像素的遠近關系,Zbuffer是屏幕上每個像素都具有的值,用于表示像素的遠近關系,Zbuffer的值越小,表示呈現在屏幕上的像素距離觀察者越近,于是,有可能出現離屏表面上顏色變淺的球呈現在屏幕上時距離觀察者更近,從而導致遮蓋黑色球的情況,事實上,在最終希望得到的場景中,應該是模型遮蓋模型的殘影,也就是黑色球應該遮蓋顏色變淺的球,所以,渲染黑色球時利用已有函數取消Zbuffer,不去判斷各個像素的遠近關系,使新渲染的黑色球遮蓋顏色變淺的球,如圖4C所示。隨后,在進行場景渲染時,調用離屏表面,將其渲染到3D場景中,就可以形成又一幀的畫面。
步驟304、判斷是否達到預先設定的殘影個數n,如果不是,返回執(zhí)行步驟302;否則,結束本過程。
當達到預先設定的殘影個數n時,說明渲染完畢,結束本過程。當沒有達到預定設定的殘影個數n時,說明還需要繼續(xù)渲染,此時,返回執(zhí)行步驟302,繼續(xù)在離屏表面上渲染與離屏表面大小相同且透明度為alpha的平面,同時調用函數,使渲染該平面后,離屏表面上透明度為零的區(qū)域,透明度保持不變,而透明度不為零的區(qū)域,透明度上再乘以alpha,于是,離屏表面上越是先渲染的球顏色越淺,因此形成層次關系良好的殘影,然后取消Zbuffer,再將黑色球模型渲染到離屏表面上。重復執(zhí)行步驟302和步驟303,直至達到預先設定的殘影個數n,就可以看到如圖4D所示的殘影效果。
經過以上步驟就可以在離屏表面上實現渲染殘影效果的目的,并且可以在渲染3D場景的同時隨時調用離屏表面,在3D場景中形成殘影效果。
從以上步驟可以看到,本發(fā)明實施例中每一幀只需要渲染一次模型,雖然增加了創(chuàng)建離屏表面、使離屏表面上渲染的模型顏色變淺以及調用離屏表面的步驟,但是增加這樣步驟的開銷遠遠小于在一幀中多次渲染模型的開銷,尤其是在3D場景的渲染中,本發(fā)明提供的方法非常有效。
另外,參見圖5A至圖5C,圖5A至圖5C是根據本發(fā)明實施例的通過調整渲染在離屏表面上的平面的透明度改變殘影長度的效果示意圖,透明度的值越小所形成的殘影長度越長,相反,透明度的值越大所形成的殘影長度越短,所以圖5B中渲染在離屏表面上的平面的透明度值最小,圖5A的次之,圖5C的最低。類似地,通過改變離屏表面上模型顏色變淺的程度,比如調整離屏表面上模型像素的RGB值,同樣可以調整最終形成的殘影長度。另外,在采用渲染平面使離屏表面上模型的顏色變淺的情況下,還可以同時調整平面的透明度和模型像素的RGB值,以改變殘影長度。
以上僅以在3D場景中渲染黑色球的殘影為例,對本發(fā)明所提供的方法進行描述,然而,本發(fā)明所提供的方法同樣適合其它游戲、動畫等場景中各種模型殘影的渲染。
以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。
權利要求
1.一種渲染模型殘影效果的方法,其特征在于,設定所需渲染的殘影個數,該方法包括A、創(chuàng)建透明的離屏表面,將需要渲染殘影效果的模型渲染到離屏表面上;B、改變離屏表面上模型的顏色,使離屏表面上模型的顏色變淺;C、將需要渲染殘影效果的模型渲染到步驟B所述的離屏表面上,遮蓋離屏表面上已有的模型;D、判斷是否達到預先設定的殘影個數,如果未達到,返回執(zhí)行步驟B;否則,結束本過程。
2.根據權利要求1所述的方法,其特征在于,步驟B中所述改變離屏表面上模型的顏色,為在離屏表面上渲染與離屏表面大小相同的、透明度不為零的平面,同時調用函數使離屏表面的透明度變?yōu)殡x屏表面當前透明度乘以平面的透明度。
3.根據權利要求2所述的方法,其特征在于,在所述步驟B之后,該方法進一步包括改變所述平面的透明度,調整殘影的長度。
4.根據權利要求1所述的方法,其特征在于,步驟B中所述改變離屏表面上模型的顏色,為設置離屏表面上組成模型的像素的表示顏色的RGB值。
5.根據權利要求1、2或4所述的方法,其特征在于,在所述步驟B之后,該方法進一步包括調整離屏表面上組成模型的像素的RGB值來調節(jié)離屏表面上模型顏色變淺的程度,調整殘影的長度。
6.根據權利要求4所述的方法,其特征在于,在所述步驟B之后,該方法進一步包括在離屏表面上渲染與離屏表面大小相同的、透明度不為零的平面,同時調用函數使離屏表面的透明度變?yōu)殡x屏表面當前透明度乘以平面的透明度。
7.根據權利要求6所述的方法,其特征在于,在渲染所述平面之后,該方法進一步包括改變所述平面的透明度,調整殘影的長度。
8.根據權利要求1所述的方法,其特征在于,步驟C中所述遮蓋離屏表面上已有的模型,為調用函數取消表示像素遠近關系的Zbuffer。
全文摘要
本發(fā)明公開一種渲染模型殘影效果的方法。該方法包括設定所需渲染的殘影個數,創(chuàng)建透明的離屏表面,將需要渲染殘影效果的模型渲染到離屏表面上;重復以下步驟直至達到預先設定的殘影個數改變離屏表面上模型的顏色,使離屏表面上模型的顏色變淺,將需要渲染殘影效果的模型渲染到離屏表面上,遮蓋離屏表面上已有的模型。本發(fā)明所提供的方法每幀只渲染一次模型,只產生很小的開銷,效率較高。
文檔編號G06T15/00GK101025828SQ20061005820
公開日2007年8月29日 申請日期2006年2月24日 優(yōu)先權日2006年2月24日
發(fā)明者劉皓 申請人:騰訊科技(深圳)有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1