簡體   English   中英

在Java 3D場景中繪制不明顯的健康欄

[英]Drawing unobscured health bars in a Java 3D scene

所以我正在開發一個Java 3D游戲,我正在實現在單位上方懸停的健康欄。

我開始在設備位置上方的3D點處繪制四邊形,並應用Billboard行為使其始終面向相機。

但我堅持的問題是,健康酒吧有時會被其他風景遮擋。

所以我正在考慮以下選項:

  1. 覆蓋健康條像素的Z /深度緩沖區值,使渲染器認為它們比之后呈現的任何內容更接近相機。

    我嘗試了renderingAttributes.setDepthTestFunction(RenderingAttributes.ALWAYS) 雖然它使渲染器在早先在同一區域繪制的任何東西上繪制健康欄,但是當稍后在健康欄上繪制其他場景時,它也無濟於事。

    在Java 3D中有更好的方法嗎?

  2. 將健康條的3D位置投影到相機前面的2D平面上。 聽起來可行,但在我開始重新發明所需的所有數學之前,也許有人可以指出現有的解決方案。

  3. 從Java 3D切換到類似LWJGL或jMonkeyEngine的東西(不僅僅是針對這個問題,還有關於Java 3D死機等的一般抱怨)。 雖然我甚至不確定他們是否對這個特殊問題更靈活。 從我所看到的,游戲開發中最嚴重的錯誤之一是在開發中期切換引擎。

使用畫家的算法 :在繪制場景的其余部分繪制健康欄(當然,關閉Z測試)。

暫無
暫無

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

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