Voglio rendere un effetto particellare in 3D usando la coordinata Z. Ho cercato di implementare un proprio ParticleEffect usando Decals invece di Sprites senza successo.libgdx particle system Coordinata Z
C'è qualche altro modo per rendere un ParticleEffect usando la coordinata Z? Forse manipolando la trasformazione Matrix di SpriteBatch?
Aggiornamento:
codice funzionante
// 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();
}
Il tuo gioco è 2D o 3D? Cosa significa "usare la coordinata Z"? Che le particelle rendono in diverse dimensioni sullo schermo? Puoi mostrare uno screenshot di quello che hai? –
Il mio gioco è 3d, ma ParticleEffect di libgdx è per 2d (usa solo X e Y, no Z) perché usa Sprites (2d) internamente e SpriteBatch per disegnare. Voglio che l'effetto appaia parzialmente dietro agli oggetti vicini e davanti a oggetti lontani nel rispetto della prospettiva. – kromit