包含8節(jié)視頻教程
關注7.0萬次
建筑動畫系列教程從理論和實例上講解了如何來制作建筑動畫,如果你之前已經(jīng)掌握了制作靜幀作品,那這個教程可以快速讓你制作建筑動畫作品,老師會講解如何創(chuàng)造優(yōu)秀的建筑動畫,包含眾多技術和知識,比如夜景動畫、四季變化等高端技術。是不可多得的建筑動畫教程。
在這一次的教程中呢,首先我們要梳理一下上次教程的大致內(nèi)容,然后著重分析透明物體的景深制作方法。
此次的教程適合有一定基礎和制作經(jīng)驗的同學,或者已經(jīng)學習了上一次教程內(nèi)容的朋友來觀看。當然個人能力有限,難免有偏頗之處,望指正。
1.手動創(chuàng)建景深材質(zhì)的方法。
在基礎篇中,我們通過渲染層的預制來快速制作景深材質(zhì)。那么如果我想要自己手動鏈接材質(zhì)的話,該怎么去做呢?
手動創(chuàng)建的結(jié)果是跟使用層預制是一樣的,只不過你可能要稍微理解一下節(jié)點的原理與相互的連接方式,這樣你可以更加深刻地理解到我們Z通道的原理。
我們要使用三個節(jié)點,分別是samplerInfo、setRange和multiplyDivide。其中,samplerInfo是用來計算場景中的各種距離法線角度等信息用的,手動連接菲涅爾節(jié)點的時候時常會用到,大家不會陌生。setRange節(jié)點則是一個映射節(jié)點,將原先的綠色變成現(xiàn)在的藍色,把原先的紅色變成現(xiàn)在的黃色。multiplyDivide就是乘除節(jié)點,做一些簡單的乘除運算用的。
我們將samplerInfo節(jié)點的pointCameraZ連接到乘除節(jié)點的input1X,將乘除節(jié)點的input2X設置為-1,運算方式為multiply(乘)。pointCameraZ這個參數(shù)會記錄場景中物體上的點到相機的距離,但是這個距離測出來是負值,所以我們需要乘除節(jié)點,將這個值乘以-1,變成正值來使用。
再將乘除節(jié)點的outPutX連接到setRange節(jié)點的valueX。
然后setRange節(jié)點的oldMin、oldMax,Min和Max這幾個參數(shù),分別代表原來的最小值和最大值,以及將要映射成為的最小值和最大值。
如果你使用層預制去做景深材質(zhì),會默認將samplerInfo節(jié)點的cameraNearClipPlane和cameraFarClipPlane分別連接到oldMin和oldMax,而且這兩個數(shù)值一般是0.1和10000。上一次教程已經(jīng)分析過了,這個參數(shù)在很多時候是非常不合適的。
所以我們手動連節(jié)點的時候,完全不需要去連這個地方,這些參數(shù),全部由我們自己手動控制。使用之前提過的measure tool里的measure distance tool來測出場景的大小。設置合理的參數(shù)。
2.帶alpha通道的透明物體制作景深通道的方法。
對于一些帶透明通道的物體,如果我們直接使用上述方法直接渲染的話,本來該是透明的物體會被渲染成實心的,不是我們想要的結(jié)果。下圖是想要帶透明通道的效果。
(實際經(jīng)常渲染出來實心的效果)
解決這個問題的方法是,在手動連接好zdepth材質(zhì)以后,將我們的alpha通道連入材質(zhì)的透明。但是如果你使用surface shader的話,會發(fā)現(xiàn)得到非常奇怪的結(jié)果。
原因是,surface shader的out color計算方法像是incandescence屬性,是在所有的結(jié)果計算完畢以后再加上out color的數(shù)值。所以,只要你的out color不為0的時候,帶透明的surface shader計算結(jié)果都不是我們預期的結(jié)果。
那么我們要怎么解決這個問題呢?我們會把一個lambert材質(zhì)做成surface shader的效果。具體的做法是將lambert材質(zhì)的diffuse調(diào)為0,ambient color顏色調(diào)到純白。這個時候,我們的lambert材質(zhì)就完全不會受到燈光的影響,看起來跟surface shader完全一樣。這個時候,我們將連接好的zdepth節(jié)點連到我們自己做好的lambert材質(zhì)的color里面,再把我們想要的透明信息輸入到transparency屬性里面,就可以渲染出我們期望的效果了。
3.使用32位圖片流程的重要性
我將一張渲染好的結(jié)果,分別保存為exr文件(雖說是16位,但是具有32位圖片的性質(zhì)),以及png文件(8位圖片)。
對他們使用fl out of focus進行同樣程度的模糊。把合成切換到32bpc,把系統(tǒng)設置改到sRGB色彩空間,勾選linearize working space進入線性工作空間。使整個項目進入線性工作流,這樣可以最大程度發(fā)揮32位圖片的功能。
這個時候你可以觀察到,雖然是同樣內(nèi)容的圖片,但是在進行了同等程度的模糊以后,得到的結(jié)果卻是不同的:
(8位圖片模糊以后的效果)
(32位圖片模糊以后的效果)
可以看出來,主要的區(qū)別在于8位圖片模糊以后,高光沒有我們32位圖片那么亮。主要的原因是,8位圖片會把我們的亮度范圍限定在0-1(0-255)的范圍之內(nèi),而32位的圖片卻沒有這個限制,它們可以擁有無限大的亮度。
所以,當我們把鼠標放在高光點上面的時候,AE的info面板會給我們提供像素的亮度信息,8位圖片最亮就是1了,而32位的這張圖片卻可以高到4。
在模糊以后,圖片上高光的能量會有所分散,于是原先有1的亮度的高光就變得比較暗淡了。但是32位的圖片里,高光本身強度都很大,模糊以后雖然能量分散了,但是還是比8位的要大一些,甚至有些地方的亮度依然有1,為純白色。
從結(jié)果上來看,我們32位圖片在做后期景深的時候,往往由于它承載了更多的信息而能獲得更良好的高光虛化。非常的漂亮。所以,當我們對最終結(jié)果要求比較高的時候,建議大家使用32位圖片來做后期,并且使用完整的線性工作流。
4.帶有折射的物體的后期景深制作
當我們在制作一些有著透明杯子之類的靜物場景,并且想要在后期軟件中制作景深效果的時候。頭疼的問題就來了,如圖所示,當我把焦點設置在杯子上的時候,杯子本身是清晰的,通知透過杯子看到的背景也是清晰的,在真實世界中卻不是這樣。
產(chǎn)生這種效果的原因和之前的類似,因為我們使用的zdepth計算的是模型,也就是把杯子當成一個實心的物體,透過杯子看到的背景被當做是在杯子的表面。所以杯子實的時候,透過杯子看到的背景也實,杯子虛的時候透過杯子看到的背景也虛。
那么我們要怎么解決這個問題呢?
首先我們要明確產(chǎn)生問題的原因在于,使用的z通道,把透過杯子的背景也理解為在杯子上。看圖,杯子本身是透明可以看到后面的東西和地面的,但是z通道因為只計算模型本身,所以會把這些像素都理解是長在杯壁上的。于是計算景深的模糊效果以后,會得到不正確的結(jié)果,尤其是紅色區(qū)域。
可以看到,當我們把焦對準杯子本身的時候,背景已經(jīng)模糊了,然后透過杯子看到的背后的東西依然是清晰的,原因就是這些地方的像素計算的是上圖的z通道,會把它們都理解成在杯子上,于是也是清晰的。這當然是我們不希望看到的結(jié)果。
那如何解決呢。非常的簡單:在渲染z通道的渲染層里,把杯子本身的材質(zhì),改成我們場景里的玻璃材質(zhì),于是在計算z通道的時候,杯子也會發(fā)生折射,也會看到背后物體的深度。就可以得到我們想要的z通道。
這樣的z通道上的黑白信息,就可以比較好地反映像素在場景中真正的深度了。
我們給兩個不同的z通道重新命一下名。原來的z通道叫做normalZdepth,后來做的帶折射的z通道叫做refractiveZdepth。
我們使用refractiveZdepth對我們的圖片進行一個景深模糊,情況比之前好了很多,但依然有新的問題:
當我們把焦點對準杯子最靠近相機的高光處時(圖片紅圈處),杯口處是清晰的,但同時,杯子背后的牙膏居然也是清晰的。明明杯口離我們相機的距離要比牙膏離我們相機的距離近很多,卻被理解成同樣一個深度,都是同樣的清晰。這樣的結(jié)果當然也是不正確的。
產(chǎn)生這樣的偏差的原因是,我們杯子的反射、高光和污漬,并不像折射那樣,反映的是背后的物體,而是說它們本身就附在杯壁上的。所以對于反射、高光和污漬,我們要使用normalZdepth作為它們的深度信息,而折射則要使用refractiveZdepth作為它的深度信息。
那么怎么分別對不同的通道使用不同的景深呢?首先你要在渲染的時候把我們一張完整的渲染圖拆分成幾個渲染通道,可以再后期中重新合成最終渲染效果的。在vray里的設置方法如圖:
然后我們將所有渲染出來的通道(vray里叫element),放到AE的時間條上。因為我們使用的是標準的線性工作流,所以圖層的疊加模式只要全部選擇ADD模式就可以完美地復原我們的beauty pass了。
這個時候,我們對除了refraction以外的通道,全部使用normalZdepth進行景深模糊,而對于refraction通道,我們單獨使用refractiveZdepth進行模糊。這樣,我們就解決了剛才面臨的問題了。
(當我們的牙膏清晰的時候,我們的杯口是模糊的)
(當我們的杯口是清晰的時候,牙膏是模糊的)
但是觀察最后這一章圖片,你會發(fā)現(xiàn)杯子周圍有一圈亮邊。產(chǎn)生的原因是由于折射通道在被模糊以后,范圍擴散了,散到杯子的外面去了。所以我們用一個杯子的alpha通道來遮擋一下。
杯子周圍的白邊消失了,但是感覺alpha切的太生硬了。我們將對杯子進行模糊的效果復制一份到alpha圖層上面去。讓alpha也有一定程度的模糊。
得到一個折中的結(jié)果,當然還可以通過更多的手段對這個alpha通道進行更細微的調(diào)整,來達到更接近我們心理預期的效果。
最終呢,我們得到一個類似這樣的效果。
雖說視覺上或多或少還是有一些問題的。但是畢竟是后期軟件中模擬的結(jié)果。速度比在三維軟件中渲染的要快得多。景深虛化不是特別強烈的情況下,這種制作方法是能夠在一定程度上制作出還比較令人滿意的景深效果的。但是如果景深虛化太厲害,那么畢竟后期軟件,模擬的效果就不會太盡如人意,如果特別想要追求質(zhì)量,那么就只能在三維軟件里面直接渲染景深啦。要多花好多時間哦。
朱峰社區(qū)網(wǎng)頁版(手機掃描-分享-添加到屏幕)
朱峰社區(qū)微信公眾號(微信掃一掃-關注)
未知用戶
2005-2025 朱峰社區(qū) 版權(quán)所有 遼ICP備2021001865號-1
2005-2025 ZhuFeng Community All Rights Reserved
VIP