我使用的是libgdx 0.9.9版.我想在3D空间中使用ParticleEffect以及其他3D模型渲染火焰效果.
我的代码的逻辑流程:
- ModelBatch开始
- 使用ModelBatch在Bullet World中渲染所有3D模型
- ModelBatch结束
- SpriteBatch开始
- 使用SpriteBatch使用ParticleEffect(effect.draw)渲染火焰效果
- SpriteBatch结束
- 使用Stage绘制HUD
问题:火焰效果在3D空间中的某个点上呈现正常.但是当我旋转相机以使3D模型位于相机和火焰效果之间时,火焰效果会渲染3D模型,而不是隐藏在3D模型后面.
我尝试过的事情:
- 我先尝试渲染SpriteBatch然后再渲染3D模型:在这种情况下,火焰效果不可见.我猜测3D模型(图层)正在渲染火焰效果(图层),因此效果不可见.
- 我尝试在步骤1和3之间渲染SpriteBatch,即在modelbatch.begin和modelbatch.end之间渲染SpriteBatch.在这种情况下,根本看不到火焰效果.
- 我尝试将粒子效果渲染为Actor(添加到HUD Stage).正如预期的那样,火焰效果呈现为最顶层HUD层的一部分,同样的问题仍然存在.
- 我尝试过探索贴花,但发现粒子效果不适用于DebcalBatch.我不想在贴花上显示动画火.gif,因此没有尝试.
有没有人遇到类似的问题?任何建议的解决方法都可以使ParticleEffect成为3D世界的一部分,以便在被其他3D模型阻挡时隐藏它?我看过Xoppa在youtube上发布了关于libgdx中3D粒子的视频,但没有提到步骤/解决方案.任何帮助将受到高度赞赏.