2016-03-31 12 views
-1

Je suis en train de développer un petit crawler dunguen et parce que je n'ai que 200 fps sur le bureau, j'ai vraiment besoin de réparer mon code :). Mon jeu utilise un algorithme pour créer différents niveaux avec différentes pièces et ainsi de suite. Parce que les pièces ont des murs, je les contourne et crée des bodys. Sur une carte de 50x50 il ya beaucoup de corps maintenant et tous sont calculés et rendus en même temps :(J'utilise aussi Box2d Lights et le rayhandler pour créer des ombres, tout le monde projette des ombres :)Libgdx || Box2D Frustum du corps Culling?

Y at-il un moyen de mettre en œuvre l'abattage frustum? Et si oui comment :) Des échantillons de code? Existe-t-il d'autres moyens d'améliorer le taux fps sur bodys?

Nous vous remercions de votre attention :)

+0

Eh bien, je ne pense pas que le ralentissement est dû au fait des corps, parce que je pouvais pour exécuter un de mes projets à 60fps avec plus de 3000 corps. Le ralentissement pourrait être causé par votre rendu ??? De plus, vous avez mentionné que vous «calculez et restituez» en même temps? Qu'est-ce que ça veut dire? S'il vous plaît montrer du code ou clarifier. – Fish

+0

Ce que je n'ai pas mentionné est, que j'utilise aussi des lumières box2d et rayhandler, les corps jette aussi la lumière :) – genaray

+0

200 fps? Même 60 devrait suffire ... – Sebastian

Répondre

1

Je sais que cette question est un peu vieux. Mais il semble que ce soit le premier hit en ce qui concerne le truquage de troncs avec box2d et/ou libgdx. Et comme je l'ai créé un tutoriel que je souhaite poster ici, peuvent venir les gens dans le besoin peuvent utiliser

http://erqdev.com/2017/02/26/frustum-culling-with-box2d/

+1

Votre tutoriel est génial! Merci pour cela :) – genaray

+0

De rien. Je fais des choses dans le futur, en particulier pour libGDX et box2D. Serait heureux, si vous revenez! (effet d'aimant, radar ..) – Keey

0

Je pense que le plus grand impact sur la performance dans votre cadre est box2dlights (mais pour être sûr que vous devriez faire un peu de profilage). Box2dLights a en effet une logique d'abattage qui n'est pas parfaite mais qui fait des choses basiques. Pour améliorer les performances de box2dlights vous pouvez:

  • Réduire le nombre de rayons
  • Faire le RayHandler petits
  • OIR
  • Set quelques lumières à X-Ray (ne sera pas des ombres)
  • Réduire la nombre d'objets (par exemple fusionner de petites pièces de mur ou quelque chose)