簡體   English   中英

如何在渲染box2Dlights時調整視口?

[英]How to adjust the viewport while rendering box2Dlights?

我正在使用Libgdx和Box2Dlights編寫類似於Do not Starve的游戲。 我有一個平面世界,在這個表面上有一些廣告牌。 所以使用透視相機 屏幕法線與表面法線(地面)之間的夾角為45°。 這些物體中的一些向所有方向(篝火)發光。 所以RayHandler類用來處理那些。 設置RayHandler組合矩陣方法需要視口寬度和高度。 透視攝像機視口傳遞給此方法時,渲染的光線一旦其中心離開屏幕就會消失。 只有當它完全離開屏幕(不僅僅是中心)時,應該做些什么才能使光線消失,這樣用戶就不會看到它消失的那一刻? 謝謝。

更新:

方法rayHandler.setCombinedMatrix(camera); 需要OrthographicCamera 我使用的相機是透視 這就是為什么我不可能使用rayHandler.setCombinedMatrix(camera) 我唯一的選擇是使用setCombinedMatrix(Matrix4 combined, float x, float y, float viewPortWidth, float viewPortHeight) 我可以將PerspectiveCamera組合矩陣與其位置和視口傳遞到此處,但是它沒有給出所需的結果,因為它仍然提供了錯誤的視口(可能因為它沒有考慮到相機處於3D空間和是傾向的)。

因為你沒有提供任何代碼只是一些可能對你有幫助的背景:光線處理程序使用剔除來保證安全性能:它不會渲染屏幕上的燈光。 屏幕邊界由輸入計算

rayHandler.setCombinedMatrix(camera);

你必須在rayHandler.updateAndRender()之前通過render()方法調用它來保持最新。

https://github.com/libgdx/box2dlights/wiki/How-To

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM