国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【學(xué)習(xí)筆記】Unity基礎(chǔ)(八)【鏡頭camera組件屬性(clear flag、target texture、occlusion culling、鏡面效果、小地圖等)】

這篇具有很好參考價(jià)值的文章主要介紹了【學(xué)習(xí)筆記】Unity基礎(chǔ)(八)【鏡頭camera組件屬性(clear flag、target texture、occlusion culling、鏡面效果、小地圖等)】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

轉(zhuǎn)載請(qǐng)注明出處:??https://blog.csdn.net/weixin_44013533/article/details/131071235

參考:

  1. 官網(wǎng)手冊(cè) Graphics
  2. 本人使用的unity版本是2021.3.25f

一 鏡頭

1.1 攝像機(jī)的視野

攝像機(jī)所看到的內(nèi)容由它的Transform和 Camera component來定義。Transform position 定義了視點(diǎn),其向前的 (Z) 軸定義視圖方向。Camera 組件的設(shè)置還定義了視圖中區(qū)域的大小和形狀。
unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

參考學(xué)習(xí):

  • 視錐體

為什么我的主鏡頭看不到創(chuàng)建的cube等對(duì)象?

可能原因是攝像機(jī)視點(diǎn)、視圖方向或者視圖區(qū)域與所觀察的對(duì)象不一致導(dǎo)致,調(diào)整相機(jī)transform、fov等參數(shù)

1.2 camera 組件

unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

camera組件屬性

1.2.1 Projection、Size、FOV、FOV Axis、Clipping Planes

unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

camera視野范圍和投影方式等參數(shù)

  1. Projection(投影方式):
  • Perspective(透視投影):模擬人眼視角,遠(yuǎn)處物體較小,近處物體較大,具有透視效果。
    unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記
Perspective camera fov

  • Orthographic(正交投影):不考慮物體距離攝像機(jī)的遠(yuǎn)近,沒有透視效果。
    unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記
Orthographic camera fov

  1. Size(正交投影的大小,只在Orthographic投影模式下可用):
    控制正交投影下視野的大小,數(shù)值越大,可見范圍越廣,物體越小。

  2. FOV Axis(透視投影的視角軸,只在Perspective投影模式下可用):
    決定透視投影的垂直視角或水平視角。

    • Vertical(垂直視角):FOV Axis表示攝像機(jī)視野的上下范圍。
    • Horizontal(水平視角):FOV Axis表示攝像機(jī)視野的左右范圍。
  3. FOV(透視投影的視角,只在Perspective投影模式下可用):
    控制透視投影的視角大小,即攝像機(jī)能夠看到的范圍。
    視角的單位是度(°),數(shù)值越大,可見范圍越廣。

  4. Physical Camera(物理相機(jī))
    啟用 Physical Camera 屬性后,Unity 將使用模擬真實(shí)攝像機(jī)屬性的屬性(Focal Length、Sensor Size 和 Lens Shift)計(jì)算 Field of View。詳情參考:使用物理攝像機(jī) (Physical Camera)

注意事項(xiàng)

api中攝像機(jī)的視野變量Camera.fieldOfView指的是垂直視野,水平視野隨視口寬高比的變化而改變。具體解釋參見:Why only one FOV angle?

1.3 Viewport Rectangle

通過四個(gè)值指示將在屏幕上繪制此攝像機(jī)視圖的位置。在視口坐標(biāo)中測(cè)量(值為 0–1)。
unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

  • X 繪制攝像機(jī)視圖的起始水平位置。
  • Y 繪制攝像機(jī)視圖的起始垂直位置。
  • W 屏幕上攝像機(jī)輸出的寬度。
  • H 屏幕上攝像機(jī)輸出的高度。

(x,y)決定攝像機(jī)視圖矩形左下頂點(diǎn),(w,h)決定攝像機(jī)視圖矩形寬度和高度

1.3.1 Viewport Rectangle實(shí)現(xiàn)分屏效果

unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

Viewport Rectangle實(shí)現(xiàn)分屏效果

1.4 depth 攝像機(jī)深度

unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

在Unity中,攝像機(jī)(Camera)的深度(Depth)是用于控制場(chǎng)景中不同攝像機(jī)渲染順序和層級(jí)關(guān)系的屬性。深度值越小,攝像機(jī)越靠前進(jìn)行渲染,而深度值越大,攝像機(jī)越靠后進(jìn)行渲染。

攝像機(jī)的深度值是一個(gè)浮點(diǎn)數(shù),默認(rèn)情況下為0。當(dāng)場(chǎng)景中存在多個(gè)攝像機(jī)時(shí),深度值決定了它們的渲染順序。具有較小深度值的攝像機(jī)將先于具有較大深度值的攝像機(jī)進(jìn)行渲染。這樣可以確保在渲染過程中,先渲染背景或底層場(chǎng)景,再渲染前景或覆蓋層場(chǎng)景。

攝像機(jī)的深度還可以用于控制渲染的層級(jí)關(guān)系。通過調(diào)整攝像機(jī)的深度值,可以將特定攝像機(jī)設(shè)置為在其他攝像機(jī)之前或之后進(jìn)行渲染。這對(duì)于實(shí)現(xiàn)復(fù)雜的場(chǎng)景布局、分屏效果或渲染順序的控制非常有用。

1.5 clear flag

每個(gè)攝像機(jī)在渲染其視圖時(shí)都會(huì)存儲(chǔ)顏色和深度信息。屏幕中未繪制的部分為空,默認(rèn)情況下將顯示天空盒。使用多個(gè)攝像機(jī)時(shí),每個(gè)攝像機(jī)都會(huì)在緩沖區(qū)中存儲(chǔ)自己的顏色和深度信息,隨著每個(gè)攝像機(jī)渲染而累積越來越多數(shù)據(jù)。場(chǎng)景中的任何特定攝像機(jī)渲染其視圖時(shí),您可以設(shè)置 Clear Flags 來清除不同的緩沖區(qū)信息集合。為此,請(qǐng)選擇以下四個(gè)選項(xiàng)之一:

1.5.1 Skybox

這是默認(rèn)設(shè)置。屏幕的任何空白部分都將顯示當(dāng)前攝像機(jī)的天空盒。默認(rèn)天空盒可在 Lighting 窗口(菜單:Window> Rendering > Lighting> Environment)中選擇。

unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

Unity設(shè)置默認(rèn)天空盒

或者,可將 Skybox 組件添加到攝像機(jī)。
unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

Rendering>Skybox添加天空盒組件

unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

自己制作或者從unity商店加載天空盒資源

1.5.2 Solid color

屏幕的任何空白部分都將顯示當(dāng)前攝像機(jī)的背景顏色(background屬性)

1.5.3 Depth only、Don’t clear
  • Depth Only 就是僅清除緩存幀中的深度信息。
  • Don’t clear 設(shè)定為這個(gè)值不會(huì)清除任何信息。

unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

Don’t clear與Depth only都會(huì)保留像素顏色值

unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

我這里用深度值更大的camera觀察weapon,但Don’t clear與Depth only表現(xiàn)結(jié)果還是令我比較迷惑

我這里用深度值更大的camera觀察weapon,但Don’t clear與Depth only表現(xiàn)結(jié)果還是令我比較迷惑,于是參考下面這篇博客"探尋 Unity Camera 屬性之 Clear Flags",稍微理解了些:

  1. Depth Only
    清除深度信息后會(huì)發(fā)生什么?渲染過的像素如果沒有需要渲染的物體,則會(huì)保持原來的顏色值;否則會(huì)渲染新的物體顏色值,不論這個(gè)點(diǎn)之前是什么(因?yàn)樯疃戎当?Clear),所有在這個(gè)像素上發(fā)生的 ZTest 默認(rèn)規(guī)則下都會(huì)通過,ZWrite 也會(huì)按照設(shè)定的規(guī)則生效寫入對(duì)應(yīng)的深度值。


    如下圖所示:
    unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記
    之前說 Depth Only 是最常使用的設(shè)定值,官方文檔中介紹的:
    “This is handy when using multiple Cameras to draw different game elements.”
    意義就在此,當(dāng)我們需要使用多個(gè) Camera 渲染不同的物體時(shí),當(dāng)在編輯器 Hierarchy 中為后面 Camera 的 Clear Flags 設(shè)定為該值時(shí),該 Camera 渲染時(shí)由于不會(huì)清除之前 Camera 已渲染的圖像(假定后面的 Camera 的 Depth 值大于前面的 Camera,后執(zhí)行渲染),并且由于清除了深度值,所以不會(huì)因?yàn)楹竺鏀z像機(jī)渲染的物體的深度值大于之前物體的深度值而不太能通過 ZTest,所以圖像會(huì)覆蓋在已有圖像上方。
    unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記
    如上圖,紅藍(lán)黃三個(gè)物體由一個(gè) Camera 渲染,綠色物體由第二個(gè) Camera 渲染(第二個(gè) Camera 的 Depth 值大于第一個(gè)且第二個(gè)的 Clear Flags 設(shè)置為了 Depth Only),可以看出第一個(gè) Camera 渲染的圖像保留在屏幕上,當(dāng)改變綠色物體的 Z 坐標(biāo)時(shí),無論是否大于或小于紅藍(lán)黃物體的 Z 坐標(biāo)都能覆蓋在最上面。

  2. Don’t Clear
    設(shè)定為這個(gè)值不會(huì)清除任何信息。
    所以之前的顏色值會(huì)一直存在于屏幕上,直至新的顏色值替換掉緩存的顏色值。同理深度值也不會(huì)被清除,直至某個(gè)通過了 ZTest 并且 ZWrite 為 On 的像素將深度值更新。


    大致流程: 逐像素 ZTest,通過則寫入新的顏色值,并根據(jù)是否開啟 ZWrite 來確定是否更新深度值,否則舍棄。
    演示如下圖:
    unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記
    對(duì)于使用 ZWrite Off 的 Shader 的物體,在 Don’t Clear 下(注意: 在設(shè)置為該值的同時(shí)關(guān)閉了 Camrea 的 HDR 和抗鋸齒),由于深度值未寫入,所以就算該物體當(dāng)前幀的深度值比較小而渲染在了前方,但是當(dāng)下一幀如果深度值變大之后,比其深度值小的物體渲染時(shí)就算沒有清除之前的顏色緩存,但依舊能通過 ZTest,從而更新像素點(diǎn)的顏色值和深度值。這和開啟 ZWrite 剛好相反。


    如下圖所示,紫色片物體是一個(gè) Sprite,使用了 Sprite-Default.shader,該 Shader 默認(rèn)關(guān)閉了 ZWrite,所以當(dāng)它 Z 坐標(biāo)變大(深度值變大)之后,比其深度值小的物體依舊能在前面顯示出來。
    unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

上面提到的"通過了 ZTest 并且 ZWrite 為 On" 表示當(dāng)前像素的深度值通過了深度測(cè)試,并且將其深度值寫入深度緩沖中進(jìn)行更新。這樣的像素會(huì)影響后續(xù)像素的深度測(cè)試,以及確定渲染順序和遮擋關(guān)系。

1.6 target texture

在Camera組件中,Target Texture屬性用于指定攝像機(jī)的渲染目標(biāo)紋理。它決定了攝像機(jī)所渲染的內(nèi)容將被輸出到哪個(gè)紋理上,而不是直接顯示在屏幕上。

通過設(shè)置Target Texture屬性,可以將攝像機(jī)的渲染結(jié)果用作紋理,實(shí)現(xiàn)鏡子、小地圖、實(shí)時(shí)監(jiān)控等效果。

1.6.1 鏡面效果
  1. 創(chuàng)建plane作為鏡子模型

  2. 創(chuàng)建 Renderer Texture
    unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

  3. 創(chuàng)建Camera,將target texture選擇為剛剛的render texture
    unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

  4. 將render texture加入鏡子模型
    unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

  5. 測(cè)試
    unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

鏡面效果初步(左右顛倒了,似乎需要shader編程,先不探究了)

鏡面效果除了用這種Render texture實(shí)現(xiàn),還可以用反射探針、反射材質(zhì)、立方體貼圖(靜態(tài))、屏幕空間反射、實(shí)時(shí)光線追蹤等。

參考:

  1. 攝像機(jī)目標(biāo)紋理渲染(Target Texture)
  2. Unity HDRP中反射設(shè)置的幾種方案
  3. Unity如何制作一面鏡子–使用 Reflection Probe
1.6.2 小地圖效果
  1. 創(chuàng)建一個(gè)頂視角攝像機(jī)
  2. 創(chuàng)建Render Texture,并拖到頂視角相機(jī)的target texture中
  3. UI創(chuàng)建RawImage,texture賦值為上面的render texture
  4. 效果如下
    unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記
簡(jiǎn)易小地圖功能

參考:

  • 教你3個(gè)步驟實(shí)現(xiàn)Unity小地圖(知識(shí)點(diǎn):RenderTexture、Mask、shader)
  • 【學(xué)習(xí)筆記】Unity基礎(chǔ)(七)【uGUI基礎(chǔ)、利用render Texture實(shí)現(xiàn)小地圖功能】

1.7 Occlusion Culling 遮擋剔除

unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

為此攝像機(jī)啟用遮擋剔除 (Occlusion Culling)。遮擋剔除意味著隱藏在其他對(duì)象后面的對(duì)象不會(huì)被渲染,例如,如果對(duì)象在墻后面。

1.7.1 Occlusion窗口

打開window>rendering>Occlusion Culling,可以看到Occlusion窗口的三個(gè)tab:Object、Bake和 Visualization

1.7.1.1 Object選項(xiàng)卡

unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記
會(huì)提示選擇Mesh Renderer或者遮擋區(qū)域:Select a Mesh Renderer or an Occlusion Area from the scene

unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記
選擇任意一個(gè)或多個(gè)renderer,會(huì)有

  • occluder Static(靜態(tài)遮擋物),勾選此選項(xiàng)表示該物體可以充當(dāng)遮擋物體,用于遮擋其他物體并參與遮擋剔除的計(jì)算
  • occludee Static(靜態(tài)被遮擋物),勾選此選項(xiàng)表示該物體可以被遮擋,在遮擋剔除過程中可能會(huì)被剔除不進(jìn)行渲染
1.7.1.2 Bake選項(xiàng)卡

unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

設(shè)置 描述
Smallest Occluder(最小遮擋物) 此參數(shù)定義了在烘焙過程中被視為有效遮擋物的最小大小。較小的值會(huì)更精確地檢測(cè)和生成遮擋物,但會(huì)增加烘焙的復(fù)雜性和時(shí)間。較大的值可能會(huì)導(dǎo)致一些較小的物體或細(xì)節(jié)被忽略。通常情況下,適當(dāng)調(diào)整此參數(shù)可以平衡烘焙的速度和準(zhǔn)確性。
Smallest Hole"(最小孔洞) 此參數(shù)定義了在烘焙過程中被視為有效孔洞的最小大小。較小的值會(huì)更精確地檢測(cè)和處理孔洞,但也會(huì)增加烘焙的復(fù)雜性和時(shí)間。較大的值可能會(huì)導(dǎo)致一些較小的孔洞被錯(cuò)誤地填充。適當(dāng)調(diào)整此參數(shù)可以控制烘焙結(jié)果中的孔洞大小和準(zhǔn)確性。
Backface Threshold(背面閾值) 此參數(shù)定義了哪些表面被視為背面并被排除在遮擋計(jì)算之外。較小的值會(huì)更嚴(yán)格地定義背面,可以更準(zhǔn)確地排除遮擋計(jì)算中的不可見面。較大的值可能會(huì)導(dǎo)致一些可見表面被錯(cuò)誤地排除。適當(dāng)調(diào)整此參數(shù)可以平衡遮擋計(jì)算的準(zhǔn)確性和性能。

Unity 使用 Umbra 庫來執(zhí)行遮擋剔除。詳細(xì)參數(shù)用法,以及有關(guān)烘焙過程、故障排除、優(yōu)化 Umbra等請(qǐng)參考:Unity官方手冊(cè):有關(guān)遮擋剔除的其他資源

1.7.1.3 Scene 視圖中的 Occlusion Culling 彈出窗口

Occlusion Culling 彈出窗口有兩種模式:Edit和 Visualization??梢允褂孟吕藛卧趦烧咧g切換。


unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

Edit模式

設(shè)置 描述
View Volumes 啟用此選項(xiàng)后,Scene 視圖將包含藍(lán)線,這些藍(lán)線顯示遮擋剔除數(shù)據(jù)中的單元格。單元格大小受 Smallest Occluder 設(shè)置的影響:值越小,產(chǎn)生的單元格越多且越小,從而使精度提高并且文件增大。

unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

visualize模式

設(shè)置 描述
Camera Volumes 啟用此選項(xiàng)后,您會(huì)看到黃線,這些黃線指示 Unity 為其生成遮擋剔除數(shù)據(jù)的場(chǎng)景區(qū)域。這取決于場(chǎng)景幾何體以及在場(chǎng)景中使用 Occlusion Areas 選項(xiàng)定義的任何視圖體積 (View Volumes)。當(dāng)攝像機(jī)在黃線之外時(shí),Unity 不會(huì)執(zhí)行遮擋剔除。

您還可以看到灰線,這些灰線指示攝像機(jī)當(dāng)前位置所對(duì)應(yīng)的遮擋剔除數(shù)據(jù)中的單元格以及當(dāng)前單元格中的細(xì)分。Smallest Hole 設(shè)置定義了單元格內(nèi)細(xì)分的最小大?。褐翟叫。總€(gè)單元格產(chǎn)生的細(xì)分越多且越小,從而使精度提高并且文件增大。
Visibility Lines 啟用此選項(xiàng)后,您會(huì)看到綠線,這些綠線指示當(dāng)前選擇的攝像機(jī)可以看到的內(nèi)容。
Portals 啟用此選項(xiàng)后,您可以看到一些線代表遮擋數(shù)據(jù)中單元格之間的連接。當(dāng)前可見的入口是當(dāng)前所選攝像機(jī)可以看到的入口。

參考:
官方手冊(cè):Occlusion Culling 窗口

1.7.2 如何使用Occlusion Culling
  1. 場(chǎng)景中創(chuàng)建足夠數(shù)量對(duì)象(可以全選復(fù)制,不要一個(gè)一個(gè)粘貼),并設(shè)置為static
  2. camera勾選occlusion culling選項(xiàng)
  3. 打開Occlusion窗口:window>rendering>Occlusion Culling
  4. 點(diǎn)擊Bake,烘焙(bake)靜態(tài)物體
  5. visualization查看
    unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記
不使用occlusion烘焙運(yùn)行效果

unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

camera開啟culling,并使用occlusion烘焙預(yù)計(jì)算的運(yùn)行效果,發(fā)現(xiàn)fps都提高了

unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

camera關(guān)閉culling,并使用occlusion烘焙預(yù)計(jì)算的運(yùn)行效果,可以從fps看出比無預(yù)計(jì)算還算好點(diǎn),比有遮擋剔除差點(diǎn)

1.7.3 camera是否開啟occlusion culling選項(xiàng)進(jìn)行烘焙效果對(duì)比

能明顯看出遮擋剔除差異
unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

開啟camera的Occlusion Culling選項(xiàng),occlusion預(yù)計(jì)算后存在視錐體剔除、遮擋剔除

unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

關(guān)閉camera的Occlusion Culling選項(xiàng),occlusion預(yù)計(jì)算后僅存在視錐體剔除,無遮擋剔除

1.7.4 occluder Static、occludee Static 勾選測(cè)試

上面介紹過,選擇renderer時(shí)會(huì)有occluder occludee兩個(gè)選項(xiàng)
unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

occluder occludee

下面實(shí)驗(yàn)下這兩個(gè)選項(xiàng)作用

unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

green對(duì)象occluder不勾選效果

unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

green對(duì)象occluder 、occludee都不勾選效果

unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

直接懵逼了我,occludee勾不勾選沒區(qū)別?

經(jīng)過實(shí)驗(yàn),我發(fā)現(xiàn),只要進(jìn)行烘焙,決定對(duì)象剔除與否跟自己是否勾選occludee無關(guān),只看有沒有其他occluder遮擋攝像機(jī)射線。

我之前以為不勾選occludee就不參與剔除,也就是烘焙后只要在視錐體內(nèi),就一直可見,可測(cè)試發(fā)現(xiàn)也存在遮擋剔除。那存在occludee static選項(xiàng)作用是啥?

以后回過頭再來看看吧。有大佬路過也請(qǐng)給我解解惑!

1.7.5 報(bào)錯(cuò) No Renderers that are marked Static

報(bào)錯(cuò):No Renderers that are marked **static** were found in the scene. Please mark all renderers that will never move as static in the inspector.UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)
解決方法:對(duì)象添加遮擋靜態(tài)。
在開始之前,請(qǐng)確定場(chǎng)景中所有要設(shè)定為靜態(tài)遮擋物 (Static Occluder)(這些游戲?qū)ο蟛粫?huì)移動(dòng),但會(huì)阻擋后面的游戲?qū)ο螅┖挽o態(tài)被遮擋物 (Static Occludee)

適合作為靜態(tài)遮擋物的游戲?qū)ο蟀ㄖ行偷酱笮偷膶?shí)體游戲?qū)ο螅ɡ鐗Ρ诨蚪ㄖ铮?。要被設(shè)定為靜態(tài)遮擋物,游戲?qū)ο蟊仨殱M足以下條件:

  • 具有地形或網(wǎng)格渲染器組件
  • 不透明
  • 在運(yùn)行時(shí)不移動(dòng)

1.8 Culling mask 剔除遮罩

unity物理相機(jī),c#,unity,unity,學(xué)習(xí),筆記

借助剔除遮罩,可使用層來選擇性渲染對(duì)象組。

1.8.1 Frustum Culling(視錐體剔除)、Occlusion Culling(遮罩剔除)與culling mask區(qū)別

它們都是為了減少不必要的渲染工作,提高渲染性能。

  • 視錐體剔除通過判斷物體是否在相機(jī)視野內(nèi)剔除不可見物體
  • 遮擋剔除通過檢測(cè)遮擋關(guān)系剔除被遮擋的物體
  • 剔除遮罩是一種通過設(shè)置掩碼來控制渲染哪些物體的技術(shù)。

拓展:
Unity中使用ComputeShader做視錐剔除(View Frustum Culling)
視錐體剔除(Frustum Culling)算法詳解

1.9 其他camera組件屬性

因以下內(nèi)容涉及渲染管線等知識(shí),我暫時(shí)不研究,內(nèi)容未作驗(yàn)證,請(qǐng)酌情參考

  1. Rendering Path(渲染路徑):
  • Use Graphics Settings(使用圖形設(shè)置):這是默認(rèn)的渲染路徑,它會(huì)使用項(xiàng)目中的全局圖形設(shè)置。該設(shè)置通常是在項(xiàng)目質(zhì)量設(shè)置中配置的。使用此選項(xiàng)可以確保使用一致的圖形設(shè)置進(jìn)行渲染。

  • Forward(前向渲染):該渲染路徑在每個(gè)物體上執(zhí)行一次照明計(jì)算,適用于移動(dòng)設(shè)備和較低性能的硬件。它適用于有限數(shù)量的光源,并且可以在運(yùn)行時(shí)進(jìn)行動(dòng)態(tài)光照計(jì)算。

  • Deferred(延遲渲染):該渲染路徑將照明計(jì)算延遲到后期處理階段,適用于具有大量光源的場(chǎng)景。它可以提供更好的光照效果,但對(duì)于移動(dòng)設(shè)備和較低性能的硬件可能不太適用。

  • Legacy Vertex Lit(傳統(tǒng)頂點(diǎn)光照):這是Unity舊版本中的渲染路徑,不再推薦使用。

  • Legacy Deferred (light prepass)(傳統(tǒng)延遲渲染):這也是Unity舊版本中的渲染路徑,不再推薦使用。

    使用建議:一般情況下,使用默認(rèn)的 “Use Graphics Settings” 渲染路徑即可滿足大多數(shù)項(xiàng)目需求。如果項(xiàng)目需要特定的渲染效果或?qū)π阅苡刑厥庖螅梢愿鶕?jù)具體需求選擇合適的渲染路徑。

  1. Allow HDR(允許高動(dòng)態(tài)范圍):
    該屬性控制攝像機(jī)是否允許渲染高動(dòng)態(tài)范圍(HDR)圖像。啟用此選項(xiàng)可以在渲染過程中使用更大的顏色范圍和更高的亮度級(jí)別,以實(shí)現(xiàn)更逼真的光照效果和色彩表現(xiàn)。

    使用建議:如果項(xiàng)目需要較高的圖像質(zhì)量和光照效果,例如在視覺效果較為重要的游戲或應(yīng)用中,建議啟用 HDR。但請(qǐng)注意,啟用 HDR 可能會(huì)對(duì)性能產(chǎn)生一定影響,因此在移動(dòng)設(shè)備或較低性能的硬件上使用時(shí)需要謹(jǐn)慎。

  2. Allow MSAA(允許多重采樣抗鋸齒):
    該屬性控制攝像機(jī)是否允許使用多重采樣抗鋸齒(MSAA)技術(shù)來減少圖像的鋸齒狀邊緣。

    使用建議:如果項(xiàng)目需要改善圖像的平滑度和邊緣質(zhì)量,建議啟用 MSAA。但請(qǐng)注意,啟用 MSAA 可能會(huì)對(duì)性能產(chǎn)生一定影響,特別是在移動(dòng)設(shè)備或較低性能的硬件上使用時(shí)。

  3. Allow Dynamic Resolution(允許動(dòng)態(tài)分辨率):
    該屬性控制攝像機(jī)是否允許動(dòng)態(tài)調(diào)整渲染目標(biāo)的分辨率,以優(yōu)化性能或適應(yīng)不同的設(shè)備屏幕分辨率。

    使用建議:?jiǎn)⒂脛?dòng)態(tài)分辨率可以幫助提高游戲在不同設(shè)備上的性能和適應(yīng)性。如果你的項(xiàng)目需要在各種設(shè)備上運(yùn)行,并希望在不犧牲圖像質(zhì)量的情況下獲得最佳性能,建議啟用動(dòng)態(tài)分辨率。

  4. Target Display(目標(biāo)顯示):
    該屬性指定攝像機(jī)將渲染到哪個(gè)顯示器。如果項(xiàng)目有多個(gè)顯示器或屏幕,并且需要將渲染內(nèi)容針對(duì)特定顯示器進(jìn)行優(yōu)化或分離,可以使用此屬性。

    使用建議:在大多數(shù)情況下,不需要手動(dòng)設(shè)置目標(biāo)顯示屬性,因?yàn)閁nity會(huì)自動(dòng)將渲染內(nèi)容發(fā)送到主顯示器。只有在特殊需求下,例如多顯示器環(huán)境或VR應(yīng)用中,才需要顯式設(shè)置目標(biāo)顯示。

二 總結(jié)

本節(jié)主要學(xué)習(xí)camera組件的相關(guān)屬性,介紹了投影方式、depth、clear flag等基礎(chǔ)概念,詳細(xì)學(xué)習(xí)了target texture、occlusion culling等知識(shí)。

有關(guān)camera的其他高階內(nèi)容,諸如渲染管線、優(yōu)化等內(nèi)容暫不研究。

下節(jié)計(jì)劃學(xué)習(xí)Cinemachine插件、鏡頭腳本相關(guān),涉及第一第三人稱視角切換、鏡頭跟隨、鏡頭抖動(dòng)等案例。文章來源地址http://www.zghlxwxcb.cn/news/detail-645754.html

到了這里,關(guān)于【學(xué)習(xí)筆記】Unity基礎(chǔ)(八)【鏡頭camera組件屬性(clear flag、target texture、occlusion culling、鏡面效果、小地圖等)】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Unity 學(xué)習(xí)筆記】動(dòng)畫組件和動(dòng)畫控制器

    【Unity 學(xué)習(xí)筆記】動(dòng)畫組件和動(dòng)畫控制器

    動(dòng)畫是一款游戲不可缺少的一部分。在Unity中,我們可以直接使用Unity自帶的動(dòng)畫系統(tǒng)來制作我們想要的動(dòng)畫,其操作相當(dāng)便捷。 幀動(dòng)畫是2D像素游戲的主流,我將以幀動(dòng)畫為例記錄我最近學(xué)習(xí)動(dòng)畫系統(tǒng)的一些收獲。 Unity的動(dòng)畫系統(tǒng)有三個(gè)不可缺少的部分。第一,動(dòng)畫;第二,

    2024年02月07日
    瀏覽(26)
  • 【HuggingFace Transformer庫學(xué)習(xí)筆記】基礎(chǔ)組件學(xué)習(xí):Datasets

    【HuggingFace Transformer庫學(xué)習(xí)筆記】基礎(chǔ)組件學(xué)習(xí):Datasets

    導(dǎo)入包 加載數(shù)據(jù) 加載數(shù)據(jù)集合集中的某一項(xiàng)子集 按照數(shù)據(jù)集劃分進(jìn)行加載 查看數(shù)據(jù)集 查看某一個(gè)數(shù)據(jù) 查看某一些數(shù)據(jù) 查看列名 查看列屬性 數(shù)據(jù)集劃分 可使用 train_test_split 這個(gè)函數(shù) 對(duì)于分類任務(wù),指定標(biāo)簽字段,然后讓這個(gè)數(shù)據(jù)集均衡劃分標(biāo)簽字段 數(shù)據(jù)選取與過濾 數(shù)據(jù)

    2024年01月20日
    瀏覽(20)
  • Unity學(xué)習(xí)筆記--基礎(chǔ)

    Unity學(xué)習(xí)筆記--基礎(chǔ)

    Mathf函數(shù)庫 三角函數(shù) 1.角度和弧度轉(zhuǎn)換 2.三角函數(shù)和反三角函數(shù) 坐標(biāo)系 物體坐標(biāo)系 世界坐標(biāo)系 屏幕坐標(biāo)系 視口坐標(biāo)系(左下角 (0,0)右上角(1,1)) 不同坐標(biāo)系下的相互轉(zhuǎn)換: 向量 向量模長(zhǎng)和單位向量 向量的運(yùn)算的意義 位置+位置 無意義 向量+向量=向量(首尾相連

    2024年02月06日
    瀏覽(31)
  • 【Unity學(xué)習(xí)筆記】DOTween(1)基礎(chǔ)介紹

    【Unity學(xué)習(xí)筆記】DOTween(1)基礎(chǔ)介紹

    本文中大部分內(nèi)容學(xué)習(xí)來自DOTween官方文檔 DOTween是一個(gè)動(dòng)畫插件,Tween是補(bǔ)間的意思。這個(gè)插件以下簡(jiǎn)稱DOT,DOT很方便使用,只需要記住四個(gè)類,三個(gè)方法: 四個(gè)類 Tweener Sequence Tween Nested Tween 三個(gè)方法 DO Set On DOT中的方法名是很統(tǒng)一的,因此我們從前綴就可以大概知道這個(gè)方

    2024年02月11日
    瀏覽(17)
  • 【Azure 架構(gòu)師學(xué)習(xí)筆記】- Azure Databricks (7) --Unity Catalog(UC) 基本概念和組件

    【Azure 架構(gòu)師學(xué)習(xí)筆記】- Azure Databricks (7) --Unity Catalog(UC) 基本概念和組件

    本文屬于【Azure 架構(gòu)師學(xué)習(xí)筆記】系列。 本文屬于【Azure Databricks】系列。 接上文 【Azure 架構(gòu)師學(xué)習(xí)筆記】- Azure Databricks (6) - 配置Unity Catalog 在以前的Databricks中,主要由Workspace和集群、SQL Warehouse組成, 這兩年Databricks公司推出了Unity Catalog(UC)之后,整個(gè)Databricks架構(gòu)都有了

    2024年02月20日
    瀏覽(19)
  • Android學(xué)習(xí)筆記 - Camera(1)

    Android學(xué)習(xí)筆記 - Camera(1)

    在APP開發(fā)中會(huì)有很多業(yè)務(wù)使用到Camera,對(duì)于一些基礎(chǔ)的功能,調(diào)用系統(tǒng)的拍攝功能就可以滿足要求。但是需要自定義UI界面時(shí),例如將攝像頭捕獲的視圖展示在頁面上的時(shí)候就需要使用到Camera這個(gè)類了。 本篇會(huì)介紹哪些知識(shí)點(diǎn): 什么是SurfaceView?有什么作用?何為雙緩沖機(jī)制

    2024年02月03日
    瀏覽(29)
  • 【學(xué)習(xí)筆記】Unity基礎(chǔ)(十)【Unity界面之Scene窗口工具欄】

    【學(xué)習(xí)筆記】Unity基礎(chǔ)(十)【Unity界面之Scene窗口工具欄】

    轉(zhuǎn)載請(qǐng)注明出處:??https://blog.csdn.net/weixin_44013533/article/details/131707918 主要參考: 官方手冊(cè) Scene視圖 注:本文使用的unity版本是2021.3.25f Scene 視圖是正在創(chuàng)建的世界的交互式視圖。Scene 視圖可用于選擇和定位景物、角色、攝像機(jī)、光源和所有其他類型的游戲?qū)ο蟆?本節(jié)將詳細(xì)

    2024年02月06日
    瀏覽(78)
  • Camera和Image sensor技術(shù)基礎(chǔ)筆記(5) -- HDR相關(guān)技術(shù)

    Camera和Image sensor技術(shù)基礎(chǔ)筆記(5) -- HDR相關(guān)技術(shù)

    ????????動(dòng)態(tài)范圍最早是信號(hào)系統(tǒng)的概念,一種信號(hào)系統(tǒng)的動(dòng)態(tài)范圍定義為:最大的信號(hào)不失真的電平和噪聲電平的差,在實(shí)際場(chǎng)景中,多用分貝(dB)為單位來衡量一個(gè)信號(hào)系統(tǒng)的動(dòng)態(tài)范圍。 ????????以上說法可能有些抽象,來看兩個(gè)例子。 ? ? ? ? 1. 假設(shè)有一個(gè)系

    2024年02月12日
    瀏覽(18)
  • 學(xué)習(xí)筆記 -- 從零開始學(xué)習(xí)Android Camera2 -- (1)

    學(xué)習(xí)一個(gè)框架,第一步學(xué)習(xí)肯定是照著代碼看文檔。 既然要看代碼,就要看最權(quán)威的,這里我是代碼是參照https://github.com/android/camera-samples android給的官方示例,結(jié)合官方文檔https://developer.android.com/reference/android/hardware/camera2/package-summary來看,所以首先要先看一遍文檔,然后重

    2024年02月03日
    瀏覽(34)
  • Unity快手上手【熟悉unity編輯器,C#腳本控制組件一些屬性之類的】

    首先了解unity相關(guān)概述,快速認(rèn)識(shí)unity編輯器,然后抓住重點(diǎn)的學(xué):游戲?qū)ο?、組件|C#腳本、預(yù)制體、UI ? 學(xué)習(xí)過程你會(huì)發(fā)現(xiàn),其實(shí)Unity中主要是用c#進(jìn)行開發(fā)。 因?yàn)樵谶@個(gè)過程中,無非就是,對(duì)游戲?qū)ο笸ㄟ^掛載的C#腳本,修改一下組件的一些屬性,控制一下激活之類的操作

    2023年04月13日
    瀏覽(36)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包