三維軟件渲染的相關(guān)局限與解決技術(shù)
摘 要:
摘 要:本文以MAYA軟件為例介紹分層處理渲染和加場(chǎng)渲染的局限于解決方案,無(wú)論什么情況,在大型三維動(dòng)畫制作項(xiàng)目的管理上分層渲染和加場(chǎng)渲染都是必要的,盡管在操作上會(huì)稍顯麻煩些,但是會(huì)為成片的修繕和加工提供了更加靈活的機(jī)動(dòng)性。
關(guān)鍵詞:
關(guān)鍵詞:渲染 Z通道 視頻制式
在三維軟件中進(jìn)行渲染可以使用很多方法,因而在渲染的管理上也會(huì)經(jīng)常遇到分層渲染的問(wèn)題。對(duì)于渲染的分層處理無(wú)疑是一件很麻煩的事情。有些分層渲染的處理是為了在后期制作或者修改中更加節(jié)省時(shí)間,有些確實(shí)要求必須這樣去做。
1 分層處理渲染
本文論述以MAYA軟件為例,在MAYA中有很多粒子的渲染是硬件渲染類型,必須使用Window>Rendering Editor>Hardware Render Buffer截屏式渲染才能得到效果。如果要想讓這些被渲染出來(lái)的粒子存在于最終效果中就必須在Hardware Render Buffer中同時(shí)生成Alpha通道,然后在后期軟件制作中與軟件渲染出的圖片或動(dòng)態(tài)素材進(jìn)行合成。另外在MAYA中很多特殊效果最好也是采用分層渲染的方法進(jìn)行處理。例如,PainterEffect、Optifx、Glow和Fur等。還有景深、運(yùn)動(dòng)模糊等也可以使用后期軟件分開處理。這種處理方法不是分層渲染但卻可以提高工作效率。以運(yùn)動(dòng)模糊為例,在后期軟件中的處理速度大概比渲染快100-300倍左右。但是這種方法同時(shí)也帶來(lái)了一些問(wèn)題,在多物體存在的場(chǎng)景中,后期特效無(wú)法處理隱藏在物體后面的物體。就可以使用Z通道(Z-Depth Channel)圖像來(lái)分辨場(chǎng)景中物體的前后關(guān)系。
Z通道雖然可以向我們提供表示遠(yuǎn)近的深度數(shù)據(jù),但同時(shí)也有一定的缺憾。首先Z通道不支持透明,其次即使是由高質(zhì)量設(shè)置生成的Z通道圖像也會(huì)有明顯的鋸齒邊緣。解決的辦法是我們可以用雙倍的大小進(jìn)行渲染,然后將渲染出來(lái)的圖像縮小一倍,這樣操作相當(dāng)于用插值的算法進(jìn)行了一次Anti-Aliasing的反走樣處理。因?yàn)闊o(wú)論是在Photoshop中還是像在例如AfterEffect這樣的后期軟件中,在圖像縮小時(shí)都是利用插值算法的反走樣處理技術(shù)來(lái)處理像素的。那么什么時(shí)候需要Z通道中的透明數(shù)據(jù)那?一般情況下,在后期軟件中想要模擬直射和反射特技時(shí)往往需要遮擋物體的透明數(shù)據(jù),既然Z通道不予提供,還可以使用另外的攝像機(jī)渲染對(duì)應(yīng)的場(chǎng)景作為反射貼圖來(lái)模仿反射效果。無(wú)論如何,在大型三維動(dòng)畫制作項(xiàng)目的管理上分層渲染都是必要的,盡管在操作上會(huì)稍顯麻煩些,但是會(huì)為成片的修繕和加工提供了更加靈活的機(jī)動(dòng)性。總而言之,其對(duì)于工作效率是很大的提高。
2 加場(chǎng)渲染的問(wèn)題
為了適應(yīng)電視廣播及PAL制或NTSC制的視頻要求,需要在使用MAYA進(jìn)行渲染時(shí)需要生成場(chǎng)。通常視頻系統(tǒng)分為兩個(gè)階段來(lái)顯示一幀圖像,第一階段掃描屏幕上一半的熒光體,即從第一行開始的奇數(shù)行;第二階段掃描屏幕上另一半的熒光體,即從第二行開始的偶數(shù)行;這兩個(gè)半幀(Half-Frames)成為場(chǎng)(Field),把他們穿插合并成一幅圖像的過(guò)程稱為隔行掃描(Interlacing)。
由于視頻系統(tǒng)分兩個(gè)階段來(lái)顯示單獨(dú)的幀,因此如果在渲染時(shí)不生成場(chǎng)(即一次渲染一幀圖像的正常渲染),在播放具有快速運(yùn)動(dòng)的視頻素材時(shí)往往會(huì)顯示得不連貫,此時(shí)應(yīng)該進(jìn)行加場(chǎng)渲染,如要生成的動(dòng)畫是不包含快速運(yùn)動(dòng)對(duì)象的視頻素材,可以不加場(chǎng)渲染。生成場(chǎng)的方法有兩種:一種是在MAYA渲染時(shí)設(shè)置成加場(chǎng)渲染;另一種是將視頻素材調(diào)入后期軟件中加場(chǎng)。當(dāng)在軟件中設(shè)置成加場(chǎng)渲染時(shí),MAYA為生成的每一幀產(chǎn)生兩幅圖像,一幅對(duì)應(yīng)奇數(shù)場(chǎng),另一場(chǎng)對(duì)應(yīng)偶數(shù)場(chǎng),且它們是按照時(shí)間的步值數(shù)來(lái)分配的。
盡管在MAYA中設(shè)置加場(chǎng)渲染如此簡(jiǎn)單,但是在MAYA中的加場(chǎng)渲染并不是支持全部對(duì)象。在加場(chǎng)渲染的過(guò)程中涉及到PaintFX和Fur的圖像將不能正確的被生成,而如果使用硬件渲染時(shí)將不具備相應(yīng)的加場(chǎng)功能。要解決這些問(wèn)題就要采用后期軟件加場(chǎng)的辦法。前面提到,奇數(shù)場(chǎng)的分配時(shí)遵循時(shí)間步值得原理,這就告訴我們要在MAYA渲染中做一些特殊的設(shè)置才能保證后期軟件加場(chǎng)的順利完成。需要Render Global Settings中將By Frame設(shè)置成0.5就可以了,這樣才能確保MAYA每隔0.5幀渲染一幅圖像,所產(chǎn)生的奇數(shù)幀作為暫時(shí)的奇數(shù)場(chǎng),偶數(shù)幀作為偶數(shù)場(chǎng),然后調(diào)入后期軟件中進(jìn)行逐行掃描合并。
在處理場(chǎng)渲染或運(yùn)動(dòng)模糊時(shí) 往往需要渲染比正常情況時(shí)多幾倍的幀數(shù),以便于我們?yōu)檫@些序列重新定義時(shí)間,從而省去了很多重新渲染的必要時(shí)間,提高效率。這樣的渲染任務(wù)中,往往是通過(guò)對(duì)By Frame的設(shè)置來(lái)添加中間幀。將By Frame設(shè)置成0.5,表示每0.5幀渲染一幅圖像,渲染2幀則生成4幅圖像,它們的序號(hào)應(yīng)是Name.001、Name.002、Name.003、Name.004。如果將By Frame設(shè)置成>1的數(shù),比如3.則表示每3幀渲染一幅圖像,那么渲染15幀則生成5幅圖像,,它們的序號(hào)應(yīng)是Name.001、Name.004、Name.007、Name.010、Name.013,這樣一來(lái)問(wèn)題就出現(xiàn)了,由于這些序列幀的序號(hào)不是貫通的,在很多后期軟件中不能讀取這種斷開的編號(hào)。解決這類問(wèn)題的方法有很多種,可以通過(guò)手工收縮場(chǎng)景中的動(dòng)畫關(guān)鍵幀或者使用Trax Editor中的Create>Time Wrap來(lái)處理動(dòng)畫的長(zhǎng)度,這需要很精細(xì)地拾取場(chǎng)景中每一條動(dòng)畫曲線,或者將已經(jīng)被賦予動(dòng)畫關(guān)鍵幀的對(duì)象屬性一一挑選出來(lái)加入Character組成Clip,但是實(shí)踐證明,無(wú)論怎樣都很麻煩,在大型場(chǎng)景中甚至很容易出錯(cuò)。
解決這些問(wèn)題的方法就是使用MAYA中的MEL腳本進(jìn)行處理,frameWarpMake就是主程序,它采用一系列的手段分兩種情況查找場(chǎng)景中的動(dòng)畫曲線節(jié)點(diǎn)。一種是查找場(chǎng)景中所有的動(dòng)畫曲線,一種是查找被選擇物體的動(dòng)畫曲線,并使用string what字符串變量作為導(dǎo)入函數(shù)來(lái)判斷和區(qū)分這兩種情況,而后再繼續(xù)創(chuàng)建一個(gè)FrameWrap節(jié)點(diǎn)來(lái)控制對(duì)應(yīng)的動(dòng)畫曲線。
FrameWrap是引導(dǎo)程序,從理論上講它是可有可無(wú)的,但在實(shí)際運(yùn)用中,它使得程序運(yùn)行的名稱和MEL文件的名稱統(tǒng)一起來(lái),是一種規(guī)范的程序?qū)懛ārameWrap引導(dǎo)程序的內(nèi)容只有一個(gè),那就是運(yùn)行FrameWrapMakeUI界面程序,界面程序又調(diào)入主程序,從而使整個(gè)程序得到統(tǒng)一。
本文編號(hào):14534
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/14534.html