首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在libgdx的三维空间中渲染SpriteBatch + ParticleEffect?

在libgdx的三维空间中渲染SpriteBatch + ParticleEffect?
EN

Stack Overflow用户
提问于 2014-01-04 17:57:38
回答 2查看 1.5K关注 0票数 6

我使用的是libgdx版本0.9.9。我想渲染一个火灾的效果,使用ParticleEffect在3D空间,以及其他三维模型。

我的代码的逻辑流:

  1. ModelBatch开始
  2. 使用ModelBatch渲染子弹世界中的所有三维模型
  3. ModelBatch结束
  4. SpriteBatch开始
  5. 使用ParticleEffect (effect.draw)使用SpriteBatch呈现火灾效果
  6. SpriteBatch结束
  7. 使用阶段绘制HUD

问题是:火的效果是在三维空间的一点上渲染得很好。但是当我旋转相机,使一个3D模型位于相机和火灾效果之间时,火效应呈现在三维模型之上,而不是隐藏在三维模型后面。

我尝试过的事情:

  1. 我试着先渲染SpriteBatch,然后渲染3D模型:在这种情况下,火灾效果是不可见的。我猜想3D模型(图层)正在渲染火灾效果(图层),因此效果是不可见的。
  2. 我尝试在步骤1和步骤3之间呈现SpriteBatch,即在modelbatch.begin和modelbatch.end之间呈现SpriteBatch。在这种情况下,火灾的影响是看不见的。
  3. 我已经尝试将粒子效果渲染为一个演员(添加到HUD阶段)。正如预期的那样,火效果呈现为最顶层HUD层的一部分,同样的问题仍然存在。
  4. 我试过探索十进制,但发现粒子效应不适用于DebcalBatch。我不想在Decal上显示动画火.gif,因此没有尝试它。

有没有人遇到过类似的问题?有什么建议可以让ParticleEffect成为3D世界的一部分,这样当被其他3D模型阻止时,它就会被隐藏?我看过Xoppa在youtube上发布的一段关于libgdx中3D粒子的视频,但是没有提到任何步骤/解决方案。任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-03 03:10:11

SpriteBatch没有按以下呈现顺序显示的原因:

  1. 用SpriteBatch渲染粒子效应
  2. 渲染三维模型

因为3d模型是由一个天穹组成的,它与SpriteBatch重叠,因此完全隐藏了它。我从上面第二步渲染的3D模型中取出了天穹,并在粒子效应之前渲染它。

下面的渲染命令对我来说是很好的:

  1. 用ModelBatch渲染天穹
  2. 用SpriteBatch渲染粒子效应
  3. 使用ModelBatch呈现其余的模型

这样,粒子效应就在天空的前面,而在三维模型的后面。

票数 0
EN

Stack Overflow用户

发布于 2014-01-06 22:34:54

如果您想让火出现在后面而不是顶部,您需要先呈现sprite批。问题似乎在于,当屏幕在3D中呈现时,屏幕正在清理自己。有几种方法可以解决这个问题。

您可以尝试确保只有第一个进程清除屏幕。

这是代码:

代码语言:javascript
复制
Gdx.graphics.getGL20().glClearColor( 1, 0, 0, 1 );
Gdx.graphics.getGL20().glClear( GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT );

不幸的是,如果你的3D渲染器在内部调用,而你无法控制它,那么你就陷入了困境。(我不知道你用了多少库代码或你自己的代码)

我建议将两者都呈现为框架缓冲区对象,然后您可以将来自两个框架缓冲区对象的图像以2D纹理形式呈现到屏幕上。然后,如果你想要的话,你可以在它们之间使用混合,或者你可以设置alpha或者禁用混合,这样一个在另一个上面,只需要确保你按照你想要的顺序呈现它们。

http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/graphics/glutils/FrameBuffer.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20924559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档