找回密碼
 注冊帳號

掃一掃,訪問微社區

相機

2015-1-6 07:41| 發布者: 楊炎| 查看: 1433| 評論: 0|原作者: 蠻牛|來自: unity3d腳本manual

摘要: 相機相機 (camera)是為玩家捕捉并展示世界的一種設備。通過自定義和操作相機,可以使您的游戲演示真正與眾不同。您可以在一個場景中使用無數臺相機。這些相機可以設置為在屏幕的任何位置或只在某些部分按任何順序進 ...

相機

相機 (camera)是為玩家捕捉并展示世界的一種設備。通過自定義和操作相機,可以使您的游戲演示真正與眾不同。您可以在一個場景中使用無數臺相機。這些相機可以設置為在屏幕的任何位置或只在某些部分按任何順序進行渲染

unity 靈活的相機 (camera) 對象

屬性

屬性:

功能:

清除標記 (clear flags)

確定要清除屏幕的哪些部分。在使用多臺“相機”(camera) 繪制不同游戲元素時會很方便。

背景 (background)

在將視線內的所有元素都繪制好且無天空盒之后應用于剩余屏幕的顏色

剔除遮蔽圖 (culling mask)

添加或刪除“相機”(camera) 渲染的對象層。在檢視器 (inspector) 中為對象分配層。

投影 (projection)

切換相機的模擬透視功能。

透視 (perspective)

相機將用完全透視的方式來渲染對象。

正交 (orthographic)

相機將用無透視感的渲染方法均勻渲染對象。

大小 (size)(選擇“正交”(orthographic) 時)

設置為正交 (orthographic) 時相機視口的大小。

視野 (field of view)(選擇“透視”(perspective) 時)

“相機”(camera) 視角的寬度,沿局部坐標的 y 軸進行測量(以度為單位)。

裁剪平面 (clipping planes)

相機到開始渲染和停止渲染的距離。

近點 (near)

即將繪制時距離相機最近的點。

遠點 (far)

即將繪制時距離相機最遠的點。

規范化視口矩形 (normalized view port rect)

表示該相機視圖在屏幕上的繪制位置的四個值,在屏幕坐標 (screen coordinates) 中(值 0 到 1)。

x

繪制相機視圖的水平起始位置。

y

th繪制相機視圖的垂直起始位置。

w(寬度)(width)

相機輸出到屏幕上的寬度。

h(高度)(height)

相機輸出到屏幕上的高度。

深度 (depth)

相機在繪圖順序中的位置。擁有較大值的相機將會繪制在擁有較小值相機之上。

渲染路徑 (rendering path)

定義相機使用什么渲染方法的選項。

使用玩家設置 (use player settings)

該相機將使用玩家設置 (player settings) 中設定的任意一個渲染路徑 (rendering path)。

頂點光照 (vertex lit)

該相機渲染的所有對象都將作為頂點光照 (vertex-lit) 的對象來渲染。

正向渲染 (forward)

所有對象都將按每種材質一個通道的方式進行渲染

延時光照 (deferred lighting)(僅限 unity 專業版)

所有對象都將無照明繪制一次,然后所有對象的照明都將在渲染隊列末端一起渲染。

目標紋理 (target texture)(僅限 unity 專業版)

參考將包含“相機”(camera) 視圖輸出的渲染紋理。該引用將禁用相機 (camera) 的屏幕渲染功能。

高動態范圍 (hdr)

啟用該相機的高動態范圍 (high dynamic range) 渲染。

詳細信息

要將游戲呈現給玩家,相機是必不可少的。可以對相機進行自定義、腳本化或父子化,從而實現可以想到的任何效果。在拼圖游戲中,可以讓相機 (camera) 處于靜止狀態,以看到拼圖的全視圖。在第一人稱射擊游戲中,可以將相機 (camera) 父子化至玩家角色,并將其放置在與角色眼睛等高的位置。在競速游戲中,您可能希望讓相機追隨玩家的車輛。

您可以創建多個相機 (camera),并為每臺相機指定不同的深度 (depth)。 相機按照低深度 (depth)到高深度 (depth).進行繪制。換而言之,深度 (depth)為 2 的相機 (camera) 會繪制在深度為 1 的相機上方。您可以調節規范化視口矩形 (normalized view port rectangle)的屬性值改變相機 (camera) 在屏幕上的視圖大小和位置。這樣可以創建多個像導彈相機、地圖視圖、后視鏡等這樣的微視圖。

渲染路徑

unity 支持不同的渲染路徑 (rendering path)。您應該根據游戲內容和目標平臺/硬件進行選擇。不同的渲染路徑有不同的功能和性能特點,這些功能和性能特點主要影響燈光 (lights) 和陰影 (shadows)。

您可以在“玩家設置”(player settings) 中選擇項目使用的渲染路徑 (rendering path)。此外,您可以為每個相機 (camera) 覆蓋渲染路徑。

有關渲染路徑的更多信息,請查看看渲染路徑頁面。

清除標記

每臺相機 (camera) 在渲染視圖時儲存顏色和深度信息。沒有繪制的屏幕是空白的,在默認狀態下會顯示天空盒。使用多個相機 (camera) 時,每個相機都會在緩存區儲存各自的顏色和深度信息,并在渲染時累積更多數據。當場景中的任何相機渲染視圖時,可以設置清除標記 (clear flags) 以清除緩存區信息中不同的收集數據。可以通過以下四個選項之一來完成:

天空盒

這是默認設置。屏幕上所有空白部分都將顯示當前相機 (camera) 的天空盒。如果當前相機 (camera) 沒有設置天空盒,則會默認為渲染設置(編輯 (edit) -> 渲染設置 (render settings))) 中所選的天空盒。之后會回到也可為相機添加背景顏色 (background color)。也可為相機添加天空盒組件。如果要創建新的天空盒 (skybox),請使用該向導。

純色

屏幕上所有空白部分都將顯示當前相機 (camera) 的背景背景顏色 (background color)

深度模式

如果要繪制玩家的槍而又不讓其在環境中被裁剪掉,可以將深度 (depth)為 0 的相機 (camera) 設置用于繪制環境,而另一個深度 (depth)為 1 的相機用于單獨繪制武器清除標記 (clear flags)應設置為深度模式 (depth only)。這將使得環境圖像一直顯示在屏幕上,但會丟掉每個對象在三維空間中的位置的所有信息。槍繪制完后,不透明部分將完全覆蓋所有已繪制部分,無論槍與墻的距離有多近。

清除完相機前的深度緩存后,槍的繪制便完成了。

不清除

該模式既不清除顏色,也不清除深度緩存。其結果是,每幀繪制在下一幀之上,形成拖影效果。這在游戲中不常用,最好是與自定義著色器一同使用。

裁剪平面

遠剪裁平面 (clip plane)屬性決定了相機 (camera) 視圖的開始位置和結束位置。這兩個平面與相機 (camera) 方向垂直,并從相機位置開始度量。近平面 (near plane)平面是即將渲染的最近位置,而遠平面 (far plane)平面是最遠位置。

裁剪平面還決定了深度緩存精度如何在場景上分布。一般而言,為了得到更高的精度,應該將近平面 (near plane)平面移得盡可能遠。

請注意:近、遠裁剪平面和相機視野確定的平面一起構成的區域就是俗稱的相機平截頭體 (frustum)。unity 確保在您渲染對象時,那些完全在這個平截頭體之外的對象將不會顯示。這稱之為平截頭體剔除 (frustum culling)。無論您的游戲中是否使用了遮擋剔除 (occlusion culling),都會出現平截頭體剔除 (frustum culling)。

for出于性能原因,您可能需要盡早剔除小對象。例如,與大型建筑相比,小石塊和碎片可以在短得多的距離內不可見。要做到這一點,將小對象放在隔離層中并用camera.layerculldistances腳本函數設置每一層的剔除距離。

剔除遮蔽圖

剔除遮蔽圖使用層來選擇性地渲染數組對象。有關層的使用的更多信息,請點這里。

通常較好的做法是,將用戶界面 (user interface) 放在不同的層上,然后使其自我渲染,同時用獨立的相機 (camera) 渲染用戶界面層。

為了使 ui 在其他相機 (camera) 視圖上方顯示,您還需要將清除標記 (clear flags)設置為深度模式 (depth only),并確保 ui 相機 (camera) 的深度 (depth) 高于其他相機 (camera)。

規范化視口矩形

規范化視口矩形 (normalized viewport rectangles)專門用于定義當前相機視圖繪制在屏幕上的哪一部分。您可以在屏幕右下角放置地圖視圖,或者在左上角放置彈頭視圖。只需一點設計,您就可以利用視口矩形 (viewport rectangle)創建一些獨特的行為。

使用規范化視口矩形 (normalized viewport rectangle)可輕松創建雙人分屏效果。創建兩個相機后,將兩個相機的 h 值都改成 0.5,然后將玩家甲的 y 值設為 0.5,玩家乙的 y 值設為 0。這樣,玩家甲的相機將從屏幕中間向上顯示,而玩家乙的相機將從底部開始并在屏幕中間停止。

使用規范化視口矩形 (normalized viewport rectangle)創建的雙人顯示

正交

將相機 (camera) 設置為正交 (orthographic)會去掉相機視圖中的所有透視效果。這在制作等距或二維游戲時非常有用。

請注意:霧是使用正交相機模式均勻渲染的,因此可能得不到期待的效果。有關上述原因的更多信息,請參閱渲染設置組件參考。

透視相機

正交相機。這里的對象不會因距離遠而變小!

渲染紋理

只有 unity 高級版才能使用此功能。該功能可以將相機視圖放在可以應用于另一個對象的

相關閱讀

文章點評
相關文章
女校游泳队彩金