国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Unity Camera -- (3)控制相機(jī)能看到的東西

2023-04-26 21:22 作者:vivo119  | 我要投稿

?使用剪裁平面(Clipping Planes)定義相機(jī)可視范圍

? ? ? ? Clipping Planes定義了相機(jī)所能看到的場景范圍。在有些時(shí)候,限制相機(jī)所能看到的范圍是出于風(fēng)格上的考量,但編輯Clipping Planes的主要目的是為了優(yōu)化性能。相機(jī)所需要渲染的東西越少,程序的負(fù)載就越低。

? ? ? ? 相機(jī)的剪裁平面有兩個(gè)參數(shù)值:near(近平面)和far(遠(yuǎn)平面)。near定義了離相機(jī)最近且還能被相機(jī)所渲染的平面所處位置;far則是相反的一個(gè)平面。

? ? ? ? 對(duì)于正交投影相機(jī)來說,遠(yuǎn)近平面呈金字塔形狀,可以在場景視圖中選中了相機(jī)后看到:

? ? ? ? ?對(duì)于正交投影相機(jī)來說,這個(gè)平面是一個(gè)矩形:

? ? ? ? 接下來我們調(diào)整一下clipping planes的參數(shù)(正交投影類型相機(jī)):

? ? ? ? 1. Hierarchy中選中Main Camera,縮放一下場景視圖以便能觀察到相機(jī)整體遠(yuǎn)近平面的情況。

? ? ? ? 2. 在Main Camera的Inspector中,修改一下Clipping Planes里的Far參數(shù),從1000改為100,從100改為10,然后從10改為1。觀察一下場景視圖中相機(jī)的遠(yuǎn)近平面線框的情況以及相機(jī)預(yù)覽窗口的變化。

? ? ? ? 我們可以看到,隨著Far的減小,相機(jī)所能看到的東西也跟著減少。原來能夠被看到的東西,看不見之后,會(huì)用背景做填充(一般是天空盒背景)。

? ? ? ? 3. 在場景視圖中,我們使用移動(dòng)工具,讓相機(jī)沿著z軸向前平移。

? ? ? ? ? ? ?隨著相機(jī)的向前平移,我們可以看到之前不可見的物體,到達(dá)了Far平面范圍內(nèi)后,會(huì)突然跳出來。雖然這種效果可以被刻意用來做一些風(fēng)格化的需求,但一般來說,在游戲或?qū)崟r(shí)應(yīng)用要盡量避免。一般我們會(huì)設(shè)置一個(gè)較大的Far值,讓用戶感受不到這種物體突然消失或突然出現(xiàn)的現(xiàn)象。這里我們將Far設(shè)置回默認(rèn)的1000。

? ? ? ? 4. 近平面參數(shù)Near的意思和Far是類似的,我們也可以調(diào)整一下這個(gè)參數(shù)。但有一個(gè)常見的問題是,當(dāng)角色或某個(gè)游戲物體的模型有部分處于近平面外的時(shí)候,我們可能會(huì)看到物體內(nèi)部的mesh。

? ? ? ? 我們?cè)谝恍?D游戲中可能會(huì)看到這種場景,要解決這種問題,最好是能保證相機(jī)和物體保持一段安全距離, 如果相機(jī)是固定的,也可以調(diào)整一下Near的值。

使用culling masks來隱藏或顯示物體

? ? ? ? 如果有一個(gè)物體處于相機(jī)的Near和Far平面之內(nèi),但我們又要隱藏或顯示它時(shí)該怎么做呢?解決這個(gè)問題有多種方法,對(duì)于相機(jī)來說,有一個(gè)culling masks可以用來實(shí)現(xiàn)這個(gè)功能。

? ? ? ? 1. 場景視圖中,選中紅色的膠囊體,按F聚焦。

? ? ? ? 2. 在膠囊體的Inspector中,選擇Layer?-> Add Layer, 然后將User Layer6設(shè)置為Culled。


? ? ? ? 3. 重新在場景視圖中選擇膠囊體,然后在Inspector中將Culled這個(gè)layer設(shè)置給膠囊體。

? ? ? ? ?4.? 選擇Main Camera,定位到Inspector中,Camera組件中Rendering部分里的Culling Mask選項(xiàng), 將Culled禁用掉。

? ? ? ? ?在場景視圖中,膠囊體還在,但是從相機(jī)預(yù)覽窗口中可以看到,膠囊體消失了。

修改背景類型

? ? ? ? 默認(rèn)情況下,場景會(huì)使用一個(gè)默認(rèn)的天空盒作為背景。這個(gè)天空盒和Directional Light(也是創(chuàng)建場景時(shí)默認(rèn)的平行光源)是綁定的。這兩個(gè)物體一起為場景的環(huán)境光(ambient light)起到了貢獻(xiàn)。雖然天空盒及相關(guān)光照是由天空盒的shader和光照屬性所決定的,但camera可以管理在場景中天空盒是否可見。

? ? ? ? 1.調(diào)整相機(jī)視角,確保相機(jī)能夠看到天空盒。

? ? ? ? 2. 在Inspector中,找到Camera組件的Enviroment部分

? ? ? ? 3. 將Background Type從Skybox修改為Solid Color

? ? ? ? 4. 此時(shí)我們對(duì)比看場景視圖和相機(jī)預(yù)覽視圖,會(huì)發(fā)現(xiàn)場景中,天空盒仍然存在,相機(jī)視圖中顯示的天空是一片藍(lán)色。如果場景中有多個(gè)相機(jī),每個(gè)相機(jī)都可以有不同的背景類型設(shè)置,這一點(diǎn)可以用來實(shí)現(xiàn)一些特殊的效果。

? ? ? ? 5. 點(diǎn)擊Background的顏色條,將顏色修改為其他顏色試試,比如綠色。

? ? ? ? 需要注意的一點(diǎn)是,背景類型選擇為Solid Color,其顏色并不會(huì)對(duì)場景的光照產(chǎn)生影響,這和Skybox是不同的。Solid Color只是簡單的讓相機(jī)停止渲染天空盒并且用一個(gè)我們選擇的顏色替換掉。即便天空盒在相機(jī)中并不可見,任何對(duì)天空盒的修改,仍然會(huì)在環(huán)境中可見。


Unity Camera -- (3)控制相機(jī)能看到的東西的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
商南县| 克拉玛依市| 江津市| 无为县| 潞城市| 徐汇区| 吴堡县| 灌南县| 顺昌县| 康保县| 河北区| 黑龙江省| 海城市| 甘德县| 鲁甸县| 景泰县| 克什克腾旗| 上杭县| 城市| 龙江县| 武宣县| 靖江市| 湖南省| 本溪市| 宝丰县| 屏东县| 东光县| 石渠县| 乌审旗| 新邵县| 明溪县| 土默特左旗| 沂水县| 靖边县| 龙门县| 娱乐| 伊金霍洛旗| 丹江口市| 东乌| 黑山县| 临潭县|