狠狠撸

狠狠撸Share a Scribd company logo
3D物件與光源設定
Revised on March 7, 2020
? 內建3D物件
? 3D座標系統
? 光源類型與特性
? 光源屬性
? 光暈效果與眩光效果
? 應用光照貼圖
? 建立3D專案
3D專案
2
? 選單命令GameObject>3D Object可找到內建3D物件
? Cube 立方體
? Sphere 球體
? Capsule 膠囊
? Cylinder 圓柱體
? Plane 平面
? Quad 四邊形
內建3D物件
3
Plane
Quad
Cylinder
Capsule
Cube Sphere
? 由Transform屬性調整物件位置(Position)、角度(Rotation)、及
縮放倍率(Scale)
場景3D座標系統
4 平移場景(Q) 旋轉物體(E) (T)針對一個平面進行移動、旋轉及縮放,在編輯2D
物件時較常使用
移動物體(W) 縮放物體(R)
(Y) 移動、旋轉及縮放物體
? 選單命令Assets> Import Package> Effects
? 勾選LightCookies (光罩素材)
? 勾選LightFlares (眩光素材)
滙入光照效果素材
5
? 光源可以營造遊戲場景明暗與氛圍,使場景中的物體呈現出正確的顏
色,及產生陰影效果
? 新增場景時會?動建立?個方向光(Directional Light)
? 選單命令GameObject> Light加入光源物件
? Directional Light 方向光
? Point Light 點光源
? Spotlight 聚光燈
? Area Light 區域光
光源類型與特性 1/5
6
方向光 點光源 聚光燈 區域光
? Directional Light (方向光)
? ?個位於無限遠處的光源,照射到整個場景,也稱為平行光,會影響場景
中的所有物件,類似?然界中日光的照明效果
? 最不耗費圖形處理器資源
? 因為是無限遠處的光源,Position屬性不會影響照射效果
光源類型與特性 2/5
7
? Point Light (點光源)
? 類似燈泡的照明效果,朝四面八方發出光線,影響其範圍內的所有物件
? 光照效果與光源距離有關,點光源較耗用圖形處理器資源
光源類型與特性 3/5
8
? Spotlight (聚光燈)
? 類似舞台上的探照燈,朝某?方向在錐形範圍照射光線,位於錐形範圍內
的物件會受到光線照射
? 光照效果與光源距離及角度有關,聚光燈較耗用運算資源
光源類型與特性 4/5
9
? Area Light (區域光)
? Area Light是由矩形單?面射出光線,俗稱面燈
? 不能產生即時光照的效果,應用於對靜態物件之光照貼圖烘焙 (Light
baking)
光源類型與特性 5/5
10
? Type
選擇光源類型,不同類型光源所對應的屬性有些差異
? Spot 聚光燈
? Directional 方向光
? Point 點光源
? Area (baked only) 區域光
光源屬性 1/8
11
? 方向光屬性 ? 點光源屬性
光源屬性 2/8
12
? 聚光燈屬性 ? 區域光屬性
光源屬性 3/8
13
? Range
光線照射距離,適用點光源與聚光燈
? Spot Angle
適用聚光燈,聚光燈角度(1~179),用來控制光源投射範圍
? Color
燈光顏色,預設為白光
? Mode
光照計算方式
? Realtime 即時計算光照效果
? Baked 執行光影貼圖時計算光照效果
? Mixed 混用
光源屬性 4/8
14
? Intensity
光源強度,聚光燈與點光源預設值為1,方向光預設值為0.5
? Intensity Multiplier
場景中漫反射環境光(間接光)的強度。設定值小於1,表示每次反射光都會變
暗;高於1的值則使每次反射光會較亮
當陰影環境中(例如洞穴內部)的黑色表面需要更亮才能使細節可見時,就非
常有用
? Cookie
燈光遮罩,光源加上?個有Alpha通道的紋理光罩。如果是聚光燈或方向燈,
可以指定?個2D紋理;如果是點光源,則必須指定?個Cubemap(立方體紋理)
? Cookie Size
縮放Cookie光罩,適用方向光
光源屬性 5/8
15
? Shadow Type
陰影效果
? No Shadow 關閉陰影
? Hard Shadow 輪廓清晰的影子
? Soft Shadow 柔邊輪廓的影子,較耗運算資源
? Strength 陰影強度,1最明顯,0消失
? Resolution 陰影解析度
? Use Quality Settings 套用Edit>Project Settings>Quality設定
? Low Resolution 低解析度
? Medium Resolution 中解析度
? High Resolution 高解析度
? Very High Resolution 超高解析度
光源屬性 6/8
16
? Bias 微調陰影的位置與陰影定義點,避免產生shadow
acne情形。太大的Bias值可能導致GameObject附近
的陰影區域被錯誤地點亮,而造成?個斷開的陰影,
使GameObject看起来好像是離開地面
? Normal Bias 微調陰影的位置與陰影定義點
? Shadow Near Plane 設定渲染陰影光源距離,光距離GameObjects
小於設定值時不會投射陰影
光源屬性 7/8
17
shadow acne bias值太大
? Draw Halo
開啟光源之光暈效果
? Flare
設定光源眩光效果
? Render Mode
光源渲染模式
? Auto 根據附近燈光的亮度和專案Quality設定,在運行時
決定渲染方式
? Important 逐像素進行渲染,可以得到最明顯的視覺效果
? Not Important 快速渲染
? Culling Mask
隱藏遮罩,設定光源影響的圖層
光源屬性 8/8
18
? 新增場景,檔名Lighting
? 建立場景物件
? 選單命令GameObject> 3D Object> Plane
? Position(x, y, z) = (0, 0, 0)
? 選單命令GameObject> 3D Object> Sphere
? Position(x, y, z) = (0, 1, 0)
? Scale(x, y, z) = (2, 2, 2)
? 調整Main Camera
? Position(x, y, z) = (0, 2, -9)
? Rotation (x, y, z) = (5, 0, 0)
光源設定練習 1/4
19
? 設定Directional Light
? Rotation (x, y, z) = (50, -30, 0)
? Intensity = 0.3
? 選單命令GameObject> Light> Spotlight,加入聚光燈
? Position(x, y, z) = (-4, 4, 0)
? Rotation(x, y, z) = (125, -90, 0)
? Spot Angle = 50
? Intensity = 2.5
? Shadow Type = Soft Shadows
光源設定練習 2/4
20
? 選單命令GameObject> Light> Point Light,加入點光源
? Position(x, y, z) = (4, 2.57, 0)
? Color = red
? Intensity = 1.1
光源設定練習 3/4
21
點光源
方向光
聚光燈
? 測試遊戲
? 開啟或關閉個各別光源,觀察結果
光源設定練習 4/4
22
? 新增場景,檔名Flare
? 建立場景物件
? 選單命令GameObject> 3D Object> Plane
? Position(x, y, z) = (0, 0, 0)
? 選單命令GameObject> 3D Object> Sphere
? Position(x, y, z) = (0, 1, 0)
? Scale(x, y, z) = (2, 2, 2)
? 調整攝影機
? Position(x, y ,z) = (0, 2, -9)
? Rotation(x, y, z) = (5, 0, 0)
? 加入Flare Layer元件
眩光效果練習 1/5
23
? 設定方向光
? Rotation(x, y, z) = (50, -30, 0)
? Intensity = 0.3
? Flare = Sun
? 選單命令GameObject> Light> Spotlight,加入聚光燈
? Position(x, y, z) = (-4, 4, 0)
? Rotation(x, y, z) = (125, -90, 0)
? Spot Angle = 50
? Intensity = 2
? Shadow Type = Soft Shadows
? Flare = FlareSmall
眩光效果練習 2/5
24
? 選單命令GameObject> Light> Point Light,加入點光源
? Position(x, y, z) = (4, 3, 0)
? Color = red
? Flare = 50mmZoom
眩光效果練習 3/5
25
點光源
方向光
聚光燈
? Main Camera加入CameraControl腳本程式
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraControl : MonoBehaviour {
public float xSpeed = 1.0f;
public float ySpeed = 1.0f;
private Quaternion rotationEuler;
private float x;
private float y;
void LateUpdate() {
x += Input.GetAxis ("Mouse X") * xSpeed ;
y -= Input.GetAxis ("Mouse Y") * xSpeed ;
rotationEuler = Quaternion.Euler (y, x, 0);
transform.rotation = rotationEuler;
}
}
眩光效果練習 4/5
26
? 測試遊戲
? 移動滑鼠調整攝影機方位,觀察結果
眩光效果練習 5/5
27
? 光照貼圖(Lightmapping)是?種增加靜態場景光照效果的技術
? 事先將光照效果經由計算產生貼圖,渲染到場景中的靜態物件,減少
遊戲執行階段的燈光照明計算,在遊戲執行時以較少的處理器資源就
能使靜態場景看起來更真實
光照貼圖
28
? 場景物件
光照貼圖練習 1/8
29
Sphere
Plane
Area Light - Left
Area Light - Middle
Area Light - Right
Directional Light
? 新增場景,檔名Light baking
? 調整方向光源及攝影機
? Directional Light
? Rotation(x, y, z) = (50, -30, 0)
? Intensity = 0.4
? Main Camera
? Position(x, y ,z) = (0, 4, -10)
? Rotation(x, y, z) = (12, 0, 0)
光照貼圖練習 2/8
30
? 建立場景物件
? 選單命令GameObject> 3D Object> Sphere
? Position(x, y, z) = (0, 1.5, 0)
? Scale(x, y, z) = (3, 3, 3)
? 選單命令GameObject> 3D Object> Plane
? Position(x, y, z) = (0, 0, 0)
? Scale(x, y, z) = (1, 1, 1)
? 加入區域光源
? 選單命令GameObject> Light> Area Light
? Position(x, y, z) = (5, 2, -3)
? Rotation(x, y, z) = (0, 0, 0)
? Width=5, Height=5
? Color = Red
光照貼圖練習 3/8
31
? 選單命令GameObject> Light> Area Light
? Position(x, y, z) = (0, 2, -3)
? Rotation(x, y, z) = (0, 0, 0)
? Width=5, Height=5
? Color = Green
? 選單命令GameObject> Light> Area Light
? Position(x, y, z) = (-5, 2, -3)
? Rotation(x, y, z) = (0, 0, 0)
? Width=5, Height=5
? Color = Blue
光照貼圖練習 4/8
32
? 將要烘焙的物件(Shpere及Plane)設定為Static
? 如有其它光源要加入光照貼圖運算,將其Baking屬性設定為Baked
光照貼圖練習 5/8
33
? 選單命令Window> Rendering> Lighting Settings
? 取消勾選Auto Generate
? 點擊Generate Lighting按鈕,就會運算建立光照貼圖素材並放置於場景
目錄下
光照貼圖練習 6/8
34
? 經過運算所建立之光影貼圖素材
? 執行測試
光照貼圖練習 7/8
35
光照貼圖練習 8/8
36
光照貼圖前
光照貼圖後
光照貼圖後(關閉方向光源)

More Related Content

Unity遊戲程式設計 - 3D物件與光源設定