CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Java/libGDX] SpriteBatch

deathnote_
deathnote_
Niveau 9
01 août 2013 à 22:08:47

Bonsoir, étant en train d'étudier le fonctionnement de la librairie libGDX en java, je me suis posé une question à laquelle je n'arrive pas à répondre et ce même après avoir cherché sur le wiki.
Comment fonctionne la classe SpriteBatch, ou plus particulièrement à quoi correspond cette classe, et à quoi sert-elle (j'ai bien compris qu'elle servait à dessiner une texture, mais pourquoi ne pas dessiner à partir d'une texture/sprite directement)?
PS: A quoi correspond aussi les batch.begin() et batch.end()?

Merci d'avance à ceux qui pourront m'éclairer :-)

Pseudo supprimé
Pseudo supprimé 01 août 2013 à 22:17:10

http://code.google.com/p/libgdx/wiki/SpriteBatch

La description est assez claire, si tu as des problèmes pour comprendre n'hésite pas à demander des précisions.

Pour le begin et le end, on retrouve souvent ça que ce soit en 3d ou en 2d: les machines à états aiment bien regrouper les primitives que ce soit pour des questions de sémantique ou d'optimisation.

deathnote_
deathnote_
Niveau 9
01 août 2013 à 22:37:25

Donc, si j'ai bien compris ce qui était expliqué sur cette page SpriteBatch permet de dessiner l'objet chargé dans le gpu de façon plus optimisé et avec plus de libertés / d'options que si l'on aurait dessiner l'objet via une autre classe.
(Si c'est bien ça SpriteBatch est alors une classe spécialisé dans le rendu à l'écran, d'un objet chargé préalablement dans le GPU)

Et les fonctions begin et end permettent de remplir des structures et de faire des appels de fonctions bas niveaux (surement lié à OpenGL), en vu du rendu 2D?

C'est bien ça, ou alors j'ai mal compris?

Pseudo supprimé
Pseudo supprimé 01 août 2013 à 23:01:07

Oui et également de mettre en cache sous forme de texture un rendu géométrique qui pourrait être complexe.

deathnote_
deathnote_
Niveau 9
01 août 2013 à 23:07:08

Ok merci (je suppose que tu parles de la fonction begin dans ton dernier message) :-) en tout cas merci beaucoup pour ton aide.
Sinon dernière question concernant plutôt la culture générale pourquoi elle se nomme SpriteBatch ? (enfaîte je comprends pas trop pourquoi se nom)

En tout cas c'est déjà sympathique de ta pars de m'avoir éclairé.

Pseudo supprimé
Pseudo supprimé 01 août 2013 à 23:10:27

Je fais plus allusion à "Changing textures every few rectangles that are drawn prevents SpriteBatch from batching much geometry. Also, binding a texture is a somewhat expensive operation. For these reasons, it is common to store many smaller images in a larger image and then draw regions of the larger image to both maximize geometry batching and avoid texture changes. See TexturePacker for more information. "

Pour répondre à ta question, probablement parce qu'elle fait un traitement mécanique pour générer un sprite, tout simplement :D

deathnote_
deathnote_
Niveau 9
01 août 2013 à 23:20:34

Ok ok, concernant le nom : tu éclaires quant au fait qu'il y est Sprite dans le nom mais Batch signifie pas regroupement/lot?
Cela signifierait alors que la classe batch (fait un lot) des fonctions liés au rendu? Ou alors que le rendu se fait pas lot (mais alors dans ce cas, par lot de quoi?).

deathnote_
deathnote_
Niveau 9
01 août 2013 à 23:22:13

Ou alors le batch signifierait que l'on exécute toujours les mêmes suites d'instruction pour le rendu, sans contact extérieur avec l'utilisateur?

Pseudo supprimé
Pseudo supprimé 01 août 2013 à 23:36:20

Oui, ça résume l'idée. Après, je serai tenté de te dire de ne pas trop te focaliser sur les noms, en tant qu'architecte, je sais que parfois c'est difficile de trouver l'inspiration pour nommer une fonctionnalité :D

deathnote_
deathnote_
Niveau 9
01 août 2013 à 23:48:28

Ok merci de ton aide en tout cas ;) je retiens la dernière idée dans ce cas (concernant la signification et encore merci, bonne soirée à toi :)

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment