[英]Drawing unobscured health bars in a Java 3D scene
所以我正在开发一个Java 3D游戏,我正在实现在单位上方悬停的健康栏。
我开始在设备位置上方的3D点处绘制四边形,并应用Billboard行为使其始终面向相机。
但我坚持的问题是,健康酒吧有时会被其他风景遮挡。
所以我正在考虑以下选项:
覆盖健康条像素的Z /深度缓冲区值,使渲染器认为它们比之后呈现的任何内容更接近相机。
我尝试了renderingAttributes.setDepthTestFunction(RenderingAttributes.ALWAYS)
。 虽然它使渲染器在早先在同一区域绘制的任何东西上绘制健康栏,但是当稍后在健康栏上绘制其他场景时,它也无济于事。
在Java 3D中有更好的方法吗?
将健康条的3D位置投影到相机前面的2D平面上。 听起来可行,但在我开始重新发明所需的所有数学之前,也许有人可以指出现有的解决方案。
从Java 3D切换到类似LWJGL或jMonkeyEngine的东西(不仅仅是针对这个问题,还有关于Java 3D死机等的一般抱怨)。 虽然我甚至不确定他们是否对这个特殊问题更灵活。 从我所看到的,游戏开发中最严重的错误之一是在开发中期切换引擎。
使用画家的算法 :在绘制场景的其余部分后绘制健康栏(当然,关闭Z测试)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.