Java libgdx粒子系统Z坐标

Java libgdx粒子系统Z坐标,java,transformation,libgdx,particle-system,Java,Transformation,Libgdx,Particle System,我想使用Z坐标在3D中渲染粒子效果。我尝试使用贴花而不是精灵来实现自己的ParticleEffect,但没有成功 有没有其他方法可以使用Z坐标渲染ParticleEffect?也许通过操纵SpriteBatch的变换矩阵 更新: 工作代码 // update projection each frame since my camera is moving spriteBatch.setProjectionMatrix(camera3d.projection); for (ParticleEffe

我想使用Z坐标在3D中渲染粒子效果。我尝试使用贴花而不是精灵来实现自己的ParticleEffect,但没有成功

有没有其他方法可以使用Z坐标渲染ParticleEffect?也许通过操纵SpriteBatch的变换矩阵

更新:

工作代码

// update projection each frame since my camera is moving
spriteBatch.setProjectionMatrix(camera3d.projection);

for (ParticleEffect effect : effects){
    spriteBatch.setTransformMatrix(camera3d.view);
    spriteBatch.getTransformMatrix().translate(x,y,z); // different for each effect
    spriteBatch.getTransformMatrix().scale(0.1f,0.1f,0.1f); //optional
    spriteBatch.begin();

    effect.draw(spriteBatch, delta);

    spriteBatch.end();
    spriteBatch.getTransformMatrix().idt();
}

如果3D效果是视差效果,即粒子垂直面向摄影机,则确实可以设置SpriteBatch的变换矩阵

batch.getTransformMatrix().idt().translate(0, 0, z);
batch.begin();
... do your rendering here
batch.end();
// reset the matrix, so you can use the batch for other stuff
batch.idt();

对于透视效果,还必须使用透视投影。应对这一要求的最简单方法是使用透视摄影机而不是正交摄影机。

您的游戏是2d还是3d?“使用Z坐标”是什么意思?粒子在屏幕上以不同的大小渲染?你能展示一下你的屏幕截图吗?我的游戏是3d的,但libgdx的ParticleEffect是2d的(只使用X和Y,不使用Z),因为它在内部使用精灵(2d),在绘图时使用SpriteBatch。我希望效果在透视图上部分显示在近物体的后面和远物体的前面。谢谢,这是最后的提示!我已经用工作代码更新了这个问题。顺便说一下,谢谢你的libgdx!