最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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)遵守國家法律
阿拉尔市| 曲周县| 英山县| 临澧县| 德江县| 淮阳县| 腾冲县| 宣恩县| 奉新县| 三原县| 万年县| 武强县| 资兴市| 青州市| 新沂市| 湄潭县| 苍山县| 东港市| 湘阴县| 长春市| 阳山县| 布尔津县| 仲巴县| 永吉县| 长武县| 孝义市| 新建县| 怀集县| 托克逊县| 平乐县| 平山县| 台北市| 临安市| 建德市| 荆州市| 老河口市| 深水埗区| 永顺县| 福贡县| 南木林县| 开原市|