小编Bha*_*ikh的帖子

在libgdx中的3D空间中渲染SpriteBatch + ParticleEffect?

我使用的是libgdx 0.9.9版.我想在3D空间中使用ParticleEffect以及其他3D模型渲染火焰效果.

我的代码的逻辑流程:

  1. ModelBatch开始
  2. 使用ModelBatch在Bullet World中渲染所有3D模型
  3. ModelBatch结束
  4. SpriteBatch开始
  5. 使用SpriteBatch使用ParticleEffect(effect.draw)渲染火焰效果
  6. SpriteBatch结束
  7. 使用Stage绘制HUD

问题:火焰效果在3D空间中的某个点上呈现正常.但是当我旋转相机以使3D模型位于相机和火焰效果之间时,火焰效果会渲染3D模型,而不是隐藏在3D模型后面.

我尝试过的事情:

  1. 我先尝试渲染SpriteBatch然后再渲染3D模型:在这种情况下,火焰效果不可见.我猜测3D模型(图层)正在渲染火焰效果(图层),因此效果不可见.
  2. 我尝试在步骤1和3之间渲染SpriteBatch,即在modelbatch.begin和modelbatch.end之间渲染SpriteBatch.在这种情况下,根本看不到火焰效果.
  3. 我尝试将粒子效果渲染为Actor(添加到HUD Stage).正如预期的那样,火焰效果呈现为最顶层HUD层的一部分,同样的问题仍然存在.
  4. 我尝试过探索贴花,但发现粒子效果不适用于DebcalBatch.我不想在贴花上显示动画火.gif,因此没有尝试.

有没有人遇到类似的问题?任何建议的解决方法都可以使ParticleEffect成为3D世界的一部分,以便在被其他3D模型阻挡时隐藏它?我看过Xoppa在youtube上发布了关于libgdx中3D粒子的视频,但没有提到步骤/解决方案.任何帮助将受到高度赞赏.

3d particle-system libgdx spritebatch

6
推荐指数
1
解决办法
1308
查看次数

标签 统计

3d ×1

libgdx ×1

particle-system ×1

spritebatch ×1