1. 程式人生 > >遊戲製作之路(26)Camera(攝像機)的清除標誌Depth only

遊戲製作之路(26)Camera(攝像機)的清除標誌Depth only

在前面學習了天空盒和純背景顏色的清除方法,這兩個方法都比較常用的,一般情況下使用這兩個選項,就基本滿足了。但是你或許有點好奇心,像一個小學生一樣,不斷地為什麼,比如為什麼太陽會發亮,為什麼月亮只有晚上才看到,為什麼老師要讓我背書等等問題,多問為什麼,的確是一個好學生的樣子。因而,繼續來追問下一個清除選項depth only,這個選項從字面上來說,或者從風水師的角度來解釋,就是與深度相關的,但它有一個定語only,only就是唯一,經常聽英語歌會聽到only you這樣的歌詞。深度與唯一聯在一起,就是僅僅清除深度資訊了。
因此,depth only就是表示當一幀新畫面顯示時,它會根據攝像機的深度資訊來顯示新畫面與舊畫面。理解這句話,或許不太明確,比如說有兩個攝像機,一個攝像機照著大海,一個攝像機照著美女,大海的攝像機的深度是-1, 美女的攝像機的深度是0,根據深度來顯示,就是先顯示-1的內容,再顯示0的內容。這樣無論-1裡的內容怎麼變化,都是當作一個背景,0攝像機就可以設定為深度更新,這樣就可以把美女與大海融合到一起了。

為了理解這個深度清除的作用,我們來建立一個例子,當我們使用照相機來拍攝一些花草時,可以讓花的背景為模糊不清,花是清楚的,如下圖:

像這樣的畫面,照相機很容易就做到了。但是在遊戲裡,怎麼樣做到呢?

其實可以採用雙攝像機的方式來實現,並且其中一個攝像機的清除標誌為depth only。比如設定主攝像機如下:

你仔細地看到上面場景裡的攝像機顯示的,只有一個球和地板,沒有看到立方體,因為立方體是採用另外一個攝像機Camera1來顯示的,兩個攝像機組合之下,就可以把裡面的東西全部顯示了。再為看一下攝像機Camera1的設定:

可以看到攝像機Camera1的設定clear flags為depth only,它的clulling mask為cube層,這個cube層是可以設定遊戲物件在那一層裡面,cube是層的名稱。並且看到depth是0,而主攝像機為-1,所以0攝像機的內容永遠顯示在前面,-1攝像機的內容永遠顯示在後面。

從上圖也可以看到,當沒有執行模糊指令碼時,這兩個攝像機的內容都是清晰的,接著下來,執行一下游戲,應用模糊的功能到主攝像機,就可以把背景進行模糊處理了,最終的效果如下:

從上圖可以看到,背景的地板和圓球都已經模糊不清,但前面的立方體還是非常清楚的,達到虛化背景的效果。因而可以使用多個攝像機來實現不同的特技,也可以顯示近景的物體,比如官方解釋槍在靠近物體時會導致顯示不完整的情況:

如果你想繪製一個玩家的槍,又不讓它內部環境被裁剪,你會設定深度為0的相機繪製環境,和另一個深度為1的相機單獨繪製武器。武器相機的清除標誌(Clear Flags )應設定 為depth only。這將保持環境的圖形顯示在螢幕上,但會丟棄所有關於每個物件在三維空間中的位置的資訊。當槍被繪製出來,不透明的部分將完全覆蓋任何已繪製的事物,而不管槍到牆之間如何接近。

通過本文,你應該學會了不同攝像機的深度作用和概念。

Unity5.x遊戲基礎入門
http://edu.csdn.net/course/detail/4810
TensorFlow API攻略
http://edu.csdn.net/course/detail/4495
TensorFlow入門基本教程
http://edu.csdn.net/course/detail/4369