求問有哪些合用的遮擋剔除技術

時間 2021-06-02 13:25:36

1樓:

低端機器的話負擔不起在 cpu 上軟體光柵化,就只能用 pvs 。

效果和場景配置很大關係的。一望無垠大平原這種的話剔不了多少,可以考慮用激進點的 lod 方案。

2樓:MaxwellGeng

基於GPU的演算法:

MaxwellGeng:Hi-Z GPU Occlusion Culling

這套方法的核心在於全面使用GPU做運算,把整個場景都塞到VRAM中,比起Unreal的需要回讀到CPU的做法優化更加徹底,缺陷就是基於GPU的優化常常需要比較新的平台支援,如果僅僅是使用CPU做遮擋剔除,還是建議使用傳統的BSP等方法。

3樓:Shin Wong

戶外有多廣闊?太開闊比如是什麼三角洲那樣的地圖,你們策劃願意給場景加上幾百公尺開外就fog end的霧嗎?願意的話那事情好辦太多啊。

4樓:韋易笑

將場景內相交的多邊形進行切割,保證場景內的三角形沒有相交(如bsp),將螢幕分成8x8的畫素網格,做8x8條從視點開始的射線出去即可,這樣做能保證比較高效。然後對光線進行碰撞檢測看光線落到哪個多邊形上。如果相鄰射線沒有落在同乙個三角形上,那麼以這兩條射線的中點再做出一條新的射線出去,直到相鄰射線落在相同的三角形上或者同乙個畫素上。

這樣相交多邊形中圍繞每束光線的多邊形基本都能被繪製了。效能很好但存在一定誤差,兩束光線中間極小的多邊形可能被錯過。

光柵化線段遮擋法

不同於光柵化z,光柵化z計算量大些,這只是將待渲染多邊形光柵化為有左右兩個端點的水平掃瞄線,然後與同一行的掃瞄線進行比較和切割,只保留最靠近攝像機的線段,如果待繪製線段在該畫素行比較下來全部被其它更靠近攝像機的線段覆蓋了,則該行不可見,三角形所有行不可見則該包圍體不可見。光柵化z適合gpu,這個方法更適合cpu,特別適合解析度很高而多邊形數量不算太高的時候,優化方法是x軸均勻分為8個區間,這樣可以迅速的定位。

八叉樹簡易PVS

說道簡易版本的 PVS,其實就是八叉樹了,這是很多3D引擎的偷懶版本實現:八叉樹組織空間,下面接 BSP, Portal,地形四叉樹lod,先判斷頂層包圍盒在不在視錐,不再就直接退出了,再的話,遞迴八個子節點的包圍盒再不再視錐,不再就直接剔除,再的話再在該節點遞迴下去:

八叉樹建立時先將場景放入個唯一的盒子裡,然後切成八塊,再遞迴切下去,直到單個節點內多邊形數量/模型數量少於閥值。交界處的三角形/模型可以切到兩個葉節點裡或同時屬於兩節點。

先全部放乙個cube裡面,然後切割成八分,遞迴下去:

繼續將節點內多邊形數高於閥值的葉子進行切割遞迴

比如:最終類似:

切割好以後,按照視錐範圍,從頂部開始剔除,不再視錐範圍的直接跳過,根本用不著再往下遞迴它的子節點了。再視錐範圍內才往下遞迴,直到碰到沒有子節點的純粹包含實際多邊形集合的葉子節點,然後渲染出來,這是簡易PVS方法。

不少3D引擎還停留在這種簡陋的做法上,因為實際場景複雜度沒上到一定量的話,用它也可以一戰,只是有些過於簡陋罷了。

上面幾個都是一周內能實現的切實可行的計算方法,建議的話先上簡陋版本,你的瓶頸如果真的出在這裡,octree解決不了,就上其他方法吧。--

5樓:「已登出」

這種可見性剔除是場景管理的一部分

沒有真正的「銀彈」

因為你考慮一下剔除可以有幾個階段

1.最徹底的是連頂點資料都沒有提交就被剔除了對於室內場景來說牆壁會完全遮住大量物體 bsp+portal 顯然可以直接剔除大量物體

對於室外就沒這麼好用了室外一般直接用 octree 粗略的把在視椎體之外的物件剔除並且附帶乙個粗略排序的好處

2.對於上面得出的潛在可能被渲染物體進行從近到遠進行大致的排序然後通過遮擋查詢剔除完全被擋住的物體最後這部分物體才會真正傳入頂點資料並且從近到遠可以減少畫素被多次覆蓋的可能

6樓:

我以前自己寫過這個,基於視覺可見性的遮擋剔除,演算法也很簡單,完全可以手擼。

做乙個1/4螢幕尺寸的buffer(主要是提高速度),把一些模型定義為遮擋體(即可以完全這檔其他物體的物理,比如城牆等),在另外乙個執行緒把他們渲染到自己的buffer上(基本就是自己做光柵化的填充zbuffer),每乙個需要渲染到螢幕的物體(他們都有乙個包圍盒),都會嘗試渲染包圍盒到自己的buffer上,來判斷包圍盒是不是在自己的buffer裡完全不可見(就是逐畫素比較z),如果是則不渲染這個物體到螢幕,如果不是則渲染。

這裡有一些優化策略,是評估渲染到螢幕的目標到底是做遮擋判斷快,還是直接渲染到螢幕快,需要judge一下;還有比如激進的包圍合,保守的遮擋體;還有上面提到的減少軟體渲染buffer的尺寸;還有就是後台執行緒做這個事情。

對於沙盒遊戲,有什麼好的遮擋剔除演算法?

已登出 以前研究過這個問題 我的思路是在體素空間對視椎體 實際上由兩個三稜錐組成 做3D保守光柵化 光柵化結果就是需要渲染的體素 做法和2D保守光柵化類似 當然為了支援更大的體素空間還可以引入八叉樹分多個層次進行 不過不建議深度太深 原因是不利於GPU,每一層需要乙個Pass,並且如果用ArrayL...

有哪些戴著口罩面部遮擋也能人臉識別的技術?

神州明達紅外測溫儀 BQX rl系列測溫型人臉識別終端有口罩識別的功能,除了這個還有人臉識別,體溫檢測 身份檢驗的功能,採用寬動態高畫質人臉識別攝像頭,完全適應強光逆光弱光等苛刻環境。可搭配人臉工地實名制管理系統 人臉門禁考勤管理系統 訪客管理系統等應用管理系統使用。在疫情防控方面,有效降低了測溫時...

有哪些油皮適合用的精華?

桃酥小奈 我覺得身為大慶油田皮的我還是挺有發言權的。油皮蕞大的問題就是會毛孔粗大,長痘痘 特別是夏天出去玩帶妝的臉不一會會就油光滿面好好的妝,叭,全花了 對於我來說化妝才是最難的考驗 油感的護膚品和化妝品是不敢用的 否則和臉油和在一起,油上加油 堪比1 1 1的X龍魚調和油 1.適當清潔 油皮需要注...