0
在我的ThreeJS應用程序中,如果該對象靠近視圖的中心(並且對象比預定量更近),則視圖擺動以居中對象。我知道所有物體和觀察者(相機)的緯度/經度。但是,我不知道是否有另一個像牆一樣的物體。ThreeJS對象在視圖中?
有沒有辦法讓ThreeJS告訴我該物體是否可以從相機看到?
這個答案似乎是除了它的一個很好的方式爲ThreeJS的早期版本,我不能找到webglObjects陣列以及更高版本的等價物:https://github.com/mrdoob/three.js/issues/3627#issuecomment-20763458
ThreeJS域剔除似乎並沒有得到答案因爲它只告訴我相機是否指向正確的方向,而不是物體的視圖被阻擋。
Raycaster解決方案不好,因爲目標對象不是一個點,它的寬度和高度。
實現我自己的遮擋剔除似乎超出了我的能力,除非某個地方有樣本(我無法找到)。
有什麼建議嗎?
您鏈接到的代碼將無濟於事。 Three.js對它的對象執行簡單的平截頭體剔除,它不會進行手動遮擋剔除。這就是z緩衝區的用途。 –
解決這個問題的實用方法(取決於您的確切要求)是繼續研究基於Raycaster的解決方案:投射多條射線(不僅僅是中心)以合理估計目標對象是否被遮擋。 –
謝謝,這就是我要做的。我會嘗試將物體的光線投射回相機(哪個*是一個點)。 – Carbonsink