日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Unity3D-InstantOC遮挡剔除

發布時間:2024/7/19 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unity3D-InstantOC遮挡剔除 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

InstantOC(插件)

  • 渲染管線
  • 圖形數據在GPU上經過運算處理,最后輸出到屏幕的過程。
  • 對于顯示出來的圖形,CPU與GPU的分工
  • CPU判斷需要顯示的圖形圖像
  • 調用圖形API;
  • ? ? ? ? ? ? ? ?繪制調用(Draw Call):每次引擎準備數據并通知GPU的過程,即每幀調用顯卡渲染物體的次數。即下圖中的Batches

    ???????? ???

    ? ? ? ? ? ?3.到顯卡GPU這,主要做如下處理:

    ? ? ? ? ? ? ? 頂點處理:從CPU接收模型(網格模型)頂點數據,然后做坐標轉換。

    ? ? ? ? ? ? ? 圖元裝配:組裝面,即繪制三角面;

    ? ? ? ? ? ? ? 光柵化:計算面上的像素,為著色提供合理的插值參數;

    ? ? ? ? ? ? ?像素處理:像素著色,寫入緩存;

    ? ? ? ? ? ? ?幀緩存與深度緩存Z-buffer:存儲像素的深度信息,像素離攝像機的距離,進的替代遠的像素;? ? ? ? ? ??

    ?

    • Occlusion Culling(遮擋剔除)
  • 即時遮擋剔除(InstantOC):攝像機視角內看不到的物體進行剔除,減少每幀的渲染數量,在送入渲染流水線;
  • ? ? ? ??

    ? ? ? ?攝像機視野:

    ? ? ? ??

    ? ? ? ??

    ? ? ? ?對上述場景做遮擋剔除,步驟如下:

  • 首先添加一個層IOC_Layer和一個標簽IOC_Tag,將要做動態遮擋剔除的物體加入到該層中和選擇該標簽中,如下。
  • ? ? ? ? ?

    ? ? ? 2. 將InstantOC中的如下圖中的文件拖拽到攝像機上

    ? ? ? ? ?

    ? ? ? 在屬性面板中出現該文件的設置屬性,如下

    ? ? ? ??

    ?

    ? ? ? ?3.設置Layer mask和TAGs分別為IOC_Layer和IOC_Tag

    ? ? ? ? ? ?1)Layer mask:參與遮擋剔除的對象層;

    ? ? ? ? ? ?2)TAGs:為指定的標簽對象自動添加IOClod腳本對象;

    ? ? ? ? ? 3)Sample(采樣):

    ? ? ? ? ? ? ? ? 原理:在攝像機視野范圍內,隨機放出射線,若打到物體上,則該物體需要渲染,若打不到,則取消該物體的Mesh Renderer前的勾(不渲染);

    ? ? ? ? ? ? ? ? 采樣:發出的射線的數量,通常設置在150-500之間;

    ? ? ? ? ? ?4) Rays Fov:射線視野,應大于攝像機視野Field of View。

    ? ? ? ? ? ?5)View Distance:視圖距離,射線長度,參照影響攝像機Clipping Planes-Far數值。

    ? ? ? ? ? ?6)Hide Delay:延遲隱藏,當物體被剔除時延遲的幀數,建議50-100之間。即發射射線的次數,若每次某物體都不可見,則剔除。

    ? ? ? ? ? ?7)PreCull Check:檢查采集信息,建議勾選,提高剔除效率;

    ? ? ? ? ? ?8)Realtime Shadows:實時陰影,如果場景需要實時陰影,確保剔除物體顯示正常的陰影(該功能不穩定)。

    ? ? ?4. 為將需要做遮擋剔除的物體添加盒狀碰撞器,而不是使用物體的實際的面來做射線碰撞。而是使用盒狀的6個面。

    ? ? ? ??

    ? ? ? ??遮擋剔除使用情況:在場景中,物體比較密集,遮擋的物體較多時,可以使用遮擋剔除,否則會真加CPU的負擔。

    ? ? ?5.運行效果(中間被遮擋的不渲染,不可見):

    ? ? ? ??

    ? ? ? ?移動一下前面的物體,后面的又出現了,如下:

    ? ? ? ??

    ? ? ? ? 前后Draw Call對比:可知Batches減少了(30à24),降低了顯卡的負擔。

    ? ? ? ??

    ?

    • LOD(多細節層次Levels of Detail
  • LOD技術指根據物體模型的節點在顯示環境中所處的位置和重要度,決定物體渲染的資源分配,降低非重要物體的面數和細節度,從而獲得高效率的渲染運算。
  • 通過InstantOC中的如下設置來實現
  • ? ? ? ? ??

    ? ? ? ? ? 主要的意思是:一個物體有三個不同精細程度的模型,在0-20距離內,使用精細高的模型,在20-40距離內使用中等精細模型,在40距離以外,使用低精細模型。主要影響下圖中的面數和頂點數。

    ? ? ? ? ? ?

    ? ? ? ? ? 1)添加一個物體作為父對象,有三種不同精細程度的模型作為子對象,并命名為Lod_0Lod_1Lod_2(命名必需為這個)。

    ? ? ? ? ? ?

    ? ? ? ? ? ?2)攝像機添加IOCCam,模型父對象添加盒狀碰撞器

    ? ? ? ? ? ? 3)改變攝像機的位置,可以看到Mesh Renderer前的勾會改變,有勾的會渲染。

    附:
    本文章學習至bilibili-沒有文明的文明-史上最全Unity3D教程

    總結

    以上是生活随笔為你收集整理的Unity3D-InstantOC遮挡剔除的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。