Unity相機公式

2021-09-26 16:07:21 字數 864 閱讀 8322

從相機到一定距離的視錐體橫截面在世界空間中定義為乙個矩形,將可視區域框在內。

有時,這對計算給定距離下該矩形的大小、或找出給定矩形大小時的距離比較有用。

例如,如果一台移動的相機需要始終完整拍攝到乙個物件(如玩家),就不能靠得太近,否則物體的一部分拍不到。

在給定距離的視錐體高度(兩者的單位都為世界單位)可通過下列公式得到:

var frustumheight =

2.0* distance * mathf.

tan(camera.fieldofview *

0.5* mathf.deg2rad)

;

該過程可顛倒,計算出獲得指定視錐體高度的所需距離:

var distance = frustumheight *

0.5/ mathf.

tan(camera.fieldofview *

0.5* mathf.deg2rad)

;

已知高度和距離,計算 fov 角度也是可行的:

var camera.fieldofview =

2* mathf.

atan

(frustumheight *

0.5/ distance)

* mathf.rad2deg;

每個計算式都包含視錐體高度,而這個值可通過寬度輕易獲得(反之亦然):

var frustumwidth = frustumheight * camera.aspect;

var frustumheight = frustumwidth / camera.aspect;

Unity相機自適應背景

在 unity 3d 中可以把攝像機設定為正交。正交攝像機與 unity 3d 中普通攝像機相比沒有透視效果 近大遠小 所以正交相機一般可以用於 2d 遊戲開發或者是 3d 遊戲的 ui 開發。在 2d 遊戲開發中,有時會遇到根據螢幕的解析度對遊戲的背景進行自適應縮放的需求,這就需要對正交攝像機的尺...

Unity學習筆記 相機屬性

clera flag清除標記 skybox 具備天空盒,清除前面繪製的圖形。solid color 具備背景圖效果,清除前面繪製的圖形。depth only沒有背景和天空盒,不清除前面繪製的圖形,清除影象的深度。影象覆蓋 dont clear沒有背景和天空盒,不清除前面繪製的圖形,也不清除圖形深度。...

Unity多個相機混合渲染

渲染層級 1.camera的depth值 2.sortlayer 3.order in layer 三個層級都是值大的遮擋值小的 在場景中新建乙個相機culling mask選擇需要渲染的物體層級 clear flags選擇depth only 例 uicamera,culling mask選擇ui...