繁体   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