什么是攝像機
Unity3D中,攝像機是一個非常非常重要的組件。 他的作用就是:將你設計的場景投影到設備的屏幕上。
攝像機的屬性
1 clear flags
確定屏幕的哪一部分將被清除。
每個攝像機在渲染它視圖的時候都會緩存顏色和深度信息。繪制出來的圖像中那部分沒有被繪制到的部分是空白的,默認的情況下會顯示天空盒的顏色。
當使用多個攝像機的時候,每個都在緩存中存放了它自己的顏色和深度信息,在每個相機渲染的時候會累積更多的數據。在場景中任何特定的攝像機渲染其視圖的時候,可以指定清除標志來清除緩存信息中的不同部分。可選項有sky box,solid color,depth only和dont clear。
<1> Skybox
這是清除標志的默認設置。屏幕的任何空白部分都會顯示攝像機的天空盒,如何當前攝像機沒有設定天空盒,它會默認使用渲染設置中(Eidt->Render Settings)的天空盒。假如默認渲染設置中也沒有設定天空盒,它會退而使用背景色。可以選擇是否將一個天空盒組件添加到攝像機。
<2> Solid Color
屏幕的任何空白部分都會顯示當前攝像機的背景色
<3> Depth Only
如果想要繪制一個玩家的槍而不讓它在環境中不被裁剪,可以設定一個深度為0的相機來繪制環境,同時另一個深度為1的相機單獨繪制這個武器。武器相機的清除標志應該設置成Depth Only。這會保持環境的圖形顯示在屏幕上,但是丟棄所有關於每個對象處於3D空間什么位置的信息。當槍被繪制的時候,被繪制出來的不透明部分會完全覆蓋現有的被繪制的環境圖像,而不管槍離牆壁多近。
為相機使用Depth Only作為清除標志,會使相機僅僅根據相機的深度信息來輸出畫面,比如相機深度為N的清除標志設為Depth only,那么它的輸出會直接覆蓋在所有深度小於N的相機輸出畫面上,而不管在真實的3D環境中,各種對象的z值如何。
<4> Don’t clear
這個模式下不會清除顏色和深度緩存。這會導致下一幀會在上一幀的結果上進行繪制,這個模式在游戲中用得少,一般用於常規的shader中。
不清除的話不過一會屏幕所有的空白區域都會被填滿,完全看不出是什么東西。
2 Background
在沒有天空盒的時候,當所有的元素繪制完成后剩余屏幕的顏色,即那些沒有被元素繪制到的屏幕區域顯示的顏色
3 Culling Mask
用於來設定是否剔除處於某一層的對象。Unity場景中的每一個對象,都被分配了一個層,默認為“default”層。打開層級管理器可以看到初始狀態下分配了8個層,即0-7層是已經被U3D使用,而”default”處於第0層。

攝像機的Culling Mask的可選項就是這些被使用的層,外加兩個完全選項Everthing和Nothing,攝像機Culling Mask的默認選擇是Everything,即不剔除任何層,這個時候所有的層也都被選中,如下圖

假如現在要隱藏處於Background Image層的對象,只需在該列表中取消勾選Background Image即可。
4 Projection
攝像機的投影方式,有透視投影和正交投影兩種。
正交投影:投影線垂直於投影面,也叫平行投影
將攝像機設成正交投影,可以看到它變成了一個立方體

5 Size
當攝像機設成正交投影時,攝像機對應的那個長方體的大小
6 Field of view
視角,透視投影時才有的特性。視角越大,能看到的視野也越大,對應的焦距也越短
7 Clipping Planes
裁剪平面,Near和Far指定了裁剪的區域范圍,即在Near-Far范圍之內的面將被裁剪掉,不進行渲染。
遠近裁剪平面和由Field Of view決定的平面一起構成一個椎體,被稱為相機椎體或視椎體,完全處於該椎體之外的物體將會被剔除,這被稱為椎體剔除。
8 Normalized viewport rect
指定如何將攝像機的視圖繪制到屏幕坐標系上(取值范圍為0-1)
X:攝像機視圖在屏幕上被繪制的水平初始位置
Y:攝像機視圖在屏幕上被繪制的垂直初始位置
W:攝像機視圖輸出圖像占屏幕寬度的比例
H:攝像機視圖輸出圖像占屏幕高度的比例
U3D屏幕的坐標系是以左下角為坐標原點,向右為X軸,向上為Y軸
9 Depth
攝像機在繪制序列中的位置(層級)。有更大深度值的攝像機將會在深度值更小的攝像機上面繪制,即假如兩個相機C1和C2,深度值分別為10和8,假如將攝像機設為在場景中可見,則C1會在C2的上層繪制,會把攝像機C2也繪制到圖像中
10 Rendering Path
用於指定攝像機使用哪種渲染方法,有下面幾種
-
Use Player Settings,攝像機會使用在玩家配置里面指定的渲染路徑
-
Vertex Lit,所有被該攝像機渲染的對象都會被渲染成Vertex-Lit對象
-
Forward,所有的對象都會被渲染為一個材質對應一個通道
-
Deferred Lighting,所有的對象在沒有光照的情況下繪制一次,然后在渲染隊列的末端將所有對象的光照一起繪制,也就是所謂的“延遲光照”技術。
11 Target Texture
可以用於容納攝像機視圖輸出的Render Texture對象的引用,設定這個引用將會禁止攝像機將視圖繪制到屏幕
12 HDR
啟用攝像機的高動態范圍渲染(High Dynamic Range Rendering)
