光源是每一個場景的重要組成部分,網格模型和材質紋理決定了場景的形狀和質感,光源則決定了場景環境的明暗、色彩和氛圍。每個場景中可以使用一個以上的光源,合理地使用光源可以創造完美的視覺效果。
uniity提供了4種類型的光源
1、Directional light:方向光源,類似於自然界中日光的照明效果
2、Point light:點光源,類似燈泡的照明效果
3、Spotlight:聚光燈,類似射燈的照明效果
4、Area Light:區域光/面光源
創建過程如下圖:
光源的參數信息:
Type:類型,光源的類型
Range:範圍,該項用於控制光線從光源對象的中心發射的距離,只有點光源和聚光燈有該參數
Color:顏色,該項用於調節光源的顏色
Intensity:強度,該項用於控制光源的強度,聚光燈以及點光源的默認值是1,方向光默認值是0.5
Cookie:該項用於爲光源指定擁有alpha通道的紋理,使光線在不同的地方有不同的亮度
Cookie Size:該項用於控制縮放Cookie投影,只有方向光有該參數
Shadow Type:陰影類型,可以選擇No Shadows(關閉陰影)、Hard Shadows(硬陰影)以及Soft Shadows(軟陰影),只有Directional light光源纔可以開啓陰影
Draw Halo:繪製光暈
Flare:耀斑/眩光,該項用於爲光源指定耀斑/鏡頭光暈的效果
Render Mode:渲染模式,該項用於指定光源的渲染模式,有三項可供選擇,Auto:自動,根據光源的亮度以及運行時質量設置的設置來確定光源渲染模式;Important:重要,光源逐像素進行渲染;No Important:不重要,光源總是以最快的速度進行渲染
Culling Mask:剔除遮蔽圖,選中層所關聯的遊戲對象將受到光源照射的影響
Lightmapping:光照貼圖
OK,下面我們看看具體的案列
先導入已經製作好的場景,如下圖:
我們依次打開菜單欄GameObject->Create Other->Directional light,爲場景添加一個方向光,此時你會發現場景明亮了許多,如下圖:
我們想模擬午後陽光效果,所以在檢索視圖中我們修改光源的顏色,並設置強度爲0.8,並且添加陰影,在Shadows Type中我們選擇Hard Shadows(硬陰影),如下圖:
接下來我們介紹下攝像機
正如電影中的鏡頭用來將故事呈現給觀衆一樣,Unity的攝像機用來將遊戲世界呈現給玩家,遊戲場景中至少有一臺攝像機,也可以有多臺,多臺攝像機可以創建雙人分屏效果或高級的自定義效果。
Unity中支持兩種類型的攝像機,分別是perspective(透視)以及Orthographic(正交)攝像機,可以理解爲用在3D和2D上,我們來看下攝像機的屬性,如下圖:
我們看下Camera組件的參數
Clear Flags:清除標記,決定屏幕的哪部分將被清除,該項一般用於使用多臺攝像機來描繪不同遊戲對象的情況,有3種模式
Skybox:天空盒,該模式爲默認設置,在屏幕中空白的部分將顯示當前攝像機的天空盒,如果當前攝像機沒有設置天空盒,它會默認使用Background背景色。
Solid Color:純色,選擇該模式屏幕上的空白部分將顯示當前攝像機的背景色。
Depth only:僅深度
Don't Clear:不清除
Background: 背景,該項用於設置背景顏色
Culling Mask:剔除遮罩,依據遊戲對象所指定的層來控制攝像機所渲染的遊戲對象
Projection:投射方式
Perspective:透視,攝像機將用透視的方式來渲染遊戲對象
Orthographic:正交,攝像機將用無透視的方式均勻地渲染遊戲對象
Field of view:視野範圍,只針對透視模式,該項用於控制攝像機的視角寬度,以及縱向的角度尺寸
Clipping Planes:剪裁平面,攝像機開始渲染於停止渲染之間的距離
View Port Rect:標準視圖矩形,用四個數值來控制該攝像機的視圖將繪製在屏幕的位置以及大小,該項使用屏幕座標系,數值在0-1之間
Depth:深度,該項用於控制攝像機的渲染順序,較大值的攝像機將被渲染在較小值的攝像機之上
Rendering Path:渲染路徑
Target Texture:目標紋理
HDR:高動態光照渲染
下面我們來看看如何在場景中實現畫中畫
導入現有的場景,在該場景中已經有了一個名爲Camera的攝像機,Deth深度爲0,攝像機視野包括了場景中的橋,如下圖:
接下來我們新創建一個Camera,命名爲Camera01,然後調整攝像機的視野範圍,跟第一個攝像機有所區別,然後Deth設爲1,然後我們我們點擊Play按鈕,發現出現的第二個攝像機的畫面,如下圖:
爲了使該相機佔用屏幕的一部分來實現畫中畫的效果,接下來對ViewPortRect屬性進行編輯,改爲0.6,0.58,1,1,單擊Play按鈕,如下圖: