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

2500 récursions... trop ?

Aldebran
Aldebran
Niveau 10
22 mars 2012 à 22:33:25

"Seulement, lorsque les "PARTIES" de l'images sont trop grandes, j'ai un StackOverflow."

Dans l'algo que je te présente il n'y a pas d'appel récursif, donc pas de stack overflow.

VisionElf
VisionElf
Niveau 10
22 mars 2012 à 22:37:09

Ah oui, désolé j'ai lu trop vite :rouge:

Bon je vais tester toussa :o))

[stefo]
[stefo]
Niveau 13
22 mars 2012 à 22:38:31

Non mais, c'est n'importe quoi tu rejette tous sur les autres alors que c'est clairement toi qui a perdu ton calme...

Et en attendant, il nous a toujous pas donné d'élément de réponse :hap:
C'est irritant de voir quelqu'un qui ne répond jamais concrètement aux questions. Répondre aux questions par d'autres questions sont un excellent moyen de partir en HS total (on s'en fiche de savoir pourquoi il veut faire ça).

Sinon es-tu sur d'avoir le même algo qu'Aldebran ? Car j'ai beau regardé, je ne vois pas de récursion =/

[stefo]
[stefo]
Niveau 13
22 mars 2012 à 22:38:58

Ca poste vite ici :hap:

godrik
godrik
Niveau 30
22 mars 2012 à 22:40:47

(notons que j'ai fourni cet algo et du pseudo-C# en premiere page de ce topic...)

https://www.jeuxvideo.com/forums/1-47-62795-1-0-1-0-2500-recursions-trop.htm#message_62881

VisionElf
VisionElf
Niveau 10
22 mars 2012 à 22:45:28

Oui godrik merci beaucoup :)

Je l'ai regardé mais comme je l'ai dis j'ai rien encore essayé :p)

tbop2
tbop2
Niveau 10
22 mars 2012 à 23:08:33

Tout le monde a perdu son temps et ses neuronnes car on attendu la deuxième page avant d'enfin savoir pourquoi tu voulais faire ça et quelle était l'idée sous-jacente (et c'est toujours pas 100% clair si tu veux savoir... pourquoi vouloir prendre des sprites sur internet au lieu de les découper toi-même ?). Excuse moi mais ta problématique s'apparente de plus en plus à du traitement du signal que de ce que l'on est en droit d'attendre d'une problématique de jeu ou d'éditeur de sprites.
Le point sur le calme ça c'était bien pour ma pomme si ça peut te rassurer.

Je n'ai pas compris la signification de ton screenshot et le rapport avec la question cela-dit :S

VisionElf
VisionElf
Niveau 10
22 mars 2012 à 23:18:57

Du Traitement de signal ? WTF ?

Pourquoi je les découpes pas ?
Parce que c'est trop long...
J'utilise quelques fonctions supplémentaire qui permettent de décaler toussa, à la main ça serait une véritable corvée.
Et puis on s'en fous un peu du pourquoi, de plus ça m'entraine un peu quoi :(

Tu m'as demander à quoi ça sert, je t'ai répondu + montré à quoi ça sert. C'est tout :(

En fait au départ, je demande juste pourquoi ça me faisais un StackOverflow... je demandais pas qu'on me recode mon algo, qu'on sache ce que je faisais ou quoi.

En général un StackOverflow ça n'arrive pas à 10 000 situations communes...

J'ai eu ma réponse, mais après quand j'ai essayer d'expliquer ce que je faisais vite fait, il y eu des personnes me disant que c'était trop facile.
Et là ça a commencer à partir en cacahouette :(

Donc non, faut pas aller à la 2e page pour comprendre. Le premier post suffit, sauf si le StackOverflow peut se montrer à 15000 situations.

tbop2
tbop2
Niveau 10
22 mars 2012 à 23:42:34

"on s'en fiche de savoir pourquoi il veut faire ça"

Ah oui ?

Parce qu'il n'y a qu'un seul angle d'attaque à un problème ? On a tout entendu sur ce topic. Donc comment savoir si l'auteur voit le problème de la bonne manière sans avoir quel était le constat initial ?

Et quand bien même on connait le constat comment répondre sans avoir un peu plus de précision nécessaires ? Le traitement doit être fait un real-time ou pas ? Sur quelle machine ? Sur une grande base de données ? Sur des images très grandes ? Sur des spritesheet aléatoires dont on ne connait rien ? Tient c'est marrant rien que l'intitulé du problème montre qu'une approche récursive naïve faisait exploser n'importe quel CPU courant par exemple (pourtant l'algorithme est bien juste !)
L'OP se pointe avec un problème autre certes.... mais sans savoir les tenants aboutissants comment savoir se c'était là la seule solution ? S'il n'est pas en train de se compliquer la vie et celle de son cache pour rien ? S'il est sur la bonne voie ?

Alors si tu avances que la réponse - et donc sa complexité - est la-même pour toutes ces configurations qui sont toujours laissées pour floues.... Wahou.

"Du Traitement de signal ? WTF ? "
Je suis sûrement bête mais je n'ai toujours pas compris ce que tu voulais faire ! En tout cas ça n'est toujours pas clairement expliqué VisionElf !
J'ai un screenshot qui me montre une bounding box dans une spritesheet... soite mais qu'est-ce qu'on doit en déduire ? Un autre qui me montre un ring de boxe ok... Qu'est-ce qu'on doit en déduire ?

Alors je vais te dire ce que j'ai cru comprendre, ce qui soit dit en passant va donc être la première tentative d'explication de ce problème qu'on aura eu sur ce thread.
Tu as une banque de données énorme de spritesheet que tu comptes télécharger sur le net. Tu veux réutiliser ces spritesheet et donc identifier un à un tous les sprites présents sur ces sprites sheet sans absolument rien connaitre, et avec tous les cas fréquents où ces sprites sont décomposables en plusieurs "territoires non-alpha" sans pour autant être de différents sprites.

Donc en gros c'est un cas très général de calcul de densité alpha avec détection de motifs potentiellement placés d'une façon un peu logique dans l'espace et peut-être périodique.

Et ben excuse-moi mais une des solutions que j'ai en-tête ferait appel à un calcul de densité alpha en (x, y), puis filtrage, puis application d'un seuil peut-être puis si je ne m'abuse une auto-corrélation (pour tenter d'isoler des motifs périodiques dans l'espace), puis enfin computer tout ça intelligemment pour avoir des zones rectangulaires qui semblent bien respecter tout cela....

Tout ça pour ne pas avoir à découper des sprites de street fighter, je me demande si soit en effet tu cherches pas à te compliquer la vie pour rien dans le cadre du pourquoi que tu mentionnes soit que j'ai décidément rien compris (ce qui est amha plus proche de la vérité actuelle des choses quand je vois que d'autres s'adonnent déjà à donner des algorithmes).
Dans tous les cas avant d'exposer un tel algorithme permet moi de m'assurer que j'ai bien compris la question quand même.

Maintenant que tu as le fond de mes pensées j'espère enfin avoir acquéri le mérite d'avoir les tiennes sur ce problème :)

tbop2
tbop2
Niveau 10
22 mars 2012 à 23:43:07

Désolé pour les fautes :(

VisionElf
VisionElf
Niveau 10
23 mars 2012 à 00:23:10

Ah mon avis tu ne comprends rien, parce que moi déjà je te comprends même pas.

Tu me parle de Traitement de signal, je ne sais même pas ce que c'est, après tu m'explique vaguement avec ça :
"Et ben excuse-moi mais une des solutions que j'ai en-tête ferait appel à un calcul de densité alpha en (x, y), puis filtrage, puis application d'un seuil peut-être puis si je ne m'abuse une auto-corrélation"
Ah ok, cool, j'ai encore plus rien compris.
Je ne sais pas si ton truc est compatible avec C#, mais soit.

Y'a une chose que je voudrais ajouter pour finir.
Si je ne donne pas de précisions, alors soit tu réponds à ma question comme bon te semble et ensuite je te corrige si jamais j'ai mal expliqué, soit tu ne réponds pas et dans ce cas, tant pis pour moi j'ai envie de dire.
Soit tu essaye de comprendre SI TU VEUX, mais assume que c'est toi qui te fait perdre ton propre temps.
(Et pas obliger d'être agressif comme tu l'a été)

tbop2
tbop2
Niveau 10
23 mars 2012 à 00:48:27

"Si je ne donne pas de précisions, alors soit tu réponds à ma question comme bon te semble et ensuite je te corrige si jamais j'ai mal expliqué, "

C'est ce que je viens de faire à l'instant tu exagères un peu quand même là ! Et ben une fois de plus tu trouves le moyen de ne toujours pas apporter une seule description de ton problème après 3 pages et au moins 4 posts de ma part.

"Soit tu essaye de comprendre SI TU VEUX, mais assume que c'est toi qui te fait perdre ton propre temps."
Ben j'essaye toujours de comprendre pourquoi tu ne veux toujours pas expliquer ton problème, le vrai, pas celui de la récursivité.
Je veux aussi comprendre pourquoi tu ne réponds jamais à mes questions, même les plus simples par exemple sur le cas de la gestion des sprites qui ne sont pas uniformément en une densité alpha non-nulle... Question qui va de toute façon très vite se poser et donc mettre fin à l'algorithme d'approximation première qui ne fonctionne que dans le cas d'un sprite déjà "pré-isolé".

Mais l'agressivité était peut-être pas mérité une fois de plus mais tu l'as bien cherché quand même.
Maintenant on peut peut être en finir avec ce sujet car ça fait deux posts que j'ai fait main basse là-dessus mais... tout de même dingue je ne sais toujours pas ce que tu veux faire car tu ne veux toujours pas expliquer ton problème c'est quand même un peu fou non ? Pourquoi tant de réticences à la fin ?

tbop2
tbop2
Niveau 10
23 mars 2012 à 00:51:21

"Ah ok, cool, j'ai encore plus rien compris. "

Et comment tu veux que je le sache ? Tu me demandes une solution sans en dire plus sur toi, ton niveau, ce que tu veux faire. Encore une fois je crois que tu as une vision bien simple et naive de ton problèmet que malgré tous les efforts que je mets en jeu pour te le faire réaliser tu ne veux toujours pas sortir de ta position du : "je n'explique pas pourquoi je veux faire ca, quels sont les cas que doivent gérer l'algorithme, tiens voila un screenshot avec deux combattants sur une arene".

J'ai expliqué juste qu-dessus ce que je pensais avoir compris de ton problème. Si c'est faux alors pourquoi ne pas avoir au moins tenté d'expliquer les parties que j'avais mal comprises ?

VisionElf
VisionElf
Niveau 10
23 mars 2012 à 01:10:18

Bon j'avoue que j'ai été un peu dur dans mon dernier post.

J'ai aussi oublié de dire que je travaillait avec XNA (enfin pas dans mon Editeur de Sprites)

En XNA, pour afficher une image on donne une texture (le fichier complet), une position (+ taille) et un deuxième rectangle qui correspond à l'emplacement de la texture, dans le fichier complet.

Mon logiciel, va tout simplement créer ces 2e rectangles pour moi, et les mettre dans une liste qui va être successivement défilée pour faire les animations.

Le but de mon algo dont on parle, est de créer ces rectangles avec la meilleure précision, en cliquant tout simplement sur le sprite qu'on veut insérer. Il va calculer alors automatiquement la bounding box, qui va déterminer le rectangle et ensuite me l'enregistrer dans un fichier que je peux ouvrir dans mon jeu.

That's all.

Y'a aucune notion de traitement de signal, de auto-corrélation, de filtrage etc...

C'est juste des rectangles, et mon logiciel permet de les trouver tout seul (il permet aussi d'avoir un aperçu et d'autres trucs utiles pour mon jeu)

Sinon pour le screenshot, c'était uniquement là pour te montrer que oui, c'était exploitable dans un jeu
C'était pour répondre à ta phrase :
"je peine toujours à voir une finalité exploitable dans un jeu"
Ou alors je l'ai mal comprise...

tbop2
tbop2
Niveau 10
23 mars 2012 à 01:33:04

Yay enfin la discussion commence nom de nom.

Oui d'accord je sais ce qu'est XNA, une bounding box, un spritesheet... donc passons là-dessus.

" en cliquant tout simplement sur le sprite qu'on veut insérer."

Ouah 4 heures après on a enfin l'explication. Tu te rends compte que cette simple précision du clic que l'utilisateur doit faire change toute la complexité du problème ?!
Qui sans ça, si, je persiste à dire qu'il fallait faire intervenir du traitement du signal de niveau L2 - L3 (d'ailleurs comment peux tu affirmer que cela n'a rien à voir avec le traitement du signal si tu ne connais toi-même pas le traitement du signal ? ;) )

Ya juste un mega hic dans ton histoire qui va vraisemblablement faire que ça ne va pas fonctionner en tout cas pas avec les algo qu'ont t'a donné.
Et on aurait pû te le dire une fois de plus si tu avais expliqué plus tôt ce que tu voulais faire et qu'est-ce qui t'amenais à vouloir trouver une bounding box comme gentiment demandé.

C'est qu'il y a une énorme différence entre trouve le rectangle de surface minimale pouvant inclure une forme précise.... Et la bounding box effective d'un sprite ! Donc en fonction du sprite et de son itération dans l'animation le rectangle minimale ne sera pas le même que l'autre... Et donc ça fausse tout, à moins d'inclure la notion de point chaud à tes images que tu devras là-aussi sélectionner à la main en prenant le risque de te tromper...
Au lieu de tout simplement identifier très clairement la taille des bounding box pour un sprite avec une petite calculatrice et des mathématiques du collège qui te feraient perdre beaucoup moins de temps... ou alors à la limite de faire de la sélection rectangulaire avec dimensions du rectangle fixes... mais encore une fois faut pas se tromper au niveau de la sélection car ça se joue au pixel près !

tbop2
tbop2
Niveau 10
23 mars 2012 à 01:34:36

Dingue le nombre de fautes que je fais ce soir.... il est décidément temps d'aller se coucher. J'espère que tu visionneras le gros hic qui va se dérouler dans ton petit éditeur d'ici là :ok:

caelacanthe
caelacanthe
Niveau 10
23 mars 2012 à 01:51:42

+1 tbop2, même en prenant le centre de chacune des bounding box, tu n'auras jamais un personnage centré de la même façon dans le rectangle. :peur:

godrik
godrik
Niveau 30
23 mars 2012 à 03:35:17

VisionElf,

De facon general, les gens qui viennent avec un probleme precis et un algorithme complique ont choppe un algo au pif sur le web et essaye de l'appliquer a leur probleme. Comme ils ne savent qu'a moitie ce qu'ils font, ils finissent par avoir un algorithme qui fonctionne mais qui ne resouds pas le probleme de haut niveau.

C'est pour cela que tbop2 a demander plus d'explication, parcequ'il a flairer que la methode que tu utilise n'est probablement pas bien adapte au probleme reel que tu te pose et qu'il y a probablement une solution plus simple ou plus efficace.

En particulier ici, les sprites que tu vas obtenir vont etre certainement decaler puisque tous les sprites d'une animation n'ont pas forcement la meme taille.

VisionElf
VisionElf
Niveau 10
23 mars 2012 à 08:58:59

Je sais très bien que mon algo n'est pas le meilleur et le plus optimisé.
Dans ce cas, pourquoi ne pas m'expliquer gentiment une autre méthode au lieu de tourner en rond ? :(

"le rectangle minimale ne sera pas le même que l'autre"
Et ?
Mon logiciel gère ça, pourquoi essayer de le prendre en compte, vu que ça n'a rien à voir avec l'algo de base ? (A moins que vous voulez essayer d'optimiser TOUT mon logiciel à la place de juste mon algo :( , je ne suis pas contre, après tout... mais ça n'a rien avoir avec le post de base :hap: )

Ici, le rectangle rends effectivement le sprite décalé, mais avec mon log, je peux le recaler là où il faut :
http://img813.imageshack..us/img813/7226/spreditor1.png
Pareil ici :
http://img27.imageshack.uk.us/img27/8117/spreditor2.png

"Au lieu de tout simplement identifier très clairement la taille des bounding box pour un sprite avec une petite calculatrice et des mathématiques du collège qui te feraient perdre beaucoup moins de temps..."

Ce sprite je l'ai fait en 10sec grâce à mon logiciel.
A la main ça m'aurai pris beaucoup plus de temps... donc oui, je persiste à dire que mon logiciel est utile.
(A moins qu'encore je n'ai pas compris ce que tu voulais dire ?)

Je vois pas en quoi les mathématiques du collèges viennent intervenir dans la détection d'une bounding box...
J'ai jamais vu ça perso :(

tbop2
tbop2
Niveau 10
23 mars 2012 à 14:13:25

"Dans ce cas, pourquoi ne pas m'expliquer gentiment une autre méthode au lieu de tourner en rond ?"

Je sens la mauvaise foi de retour en toi jeune padawan, la force obscure t'egare.... n'est-ce pas juste ce que l'on a essaye de faire pendant trois pages ? Au moins pour ma part. Et comme l'a dit Godrick, ayant flaire le manque de precision sur les tenants et aboutissants de l'histoire je t'avais rapidemment demande d'eclaircir ces points sombres avant de me faire gentiment ramasser.
Et une autre methode on t'en a donne quelques autres au passage soit dit en passant qui sont toutes differentes car reposent sur plusieurs interpretations possibles de ton probleme.

Oui donc c'est bien ce que j'ai dit tu definis a la fois la bounding box et son point chaud dans ce cas la aucun probleme (mais ne l'ayant pas precise comment voulait tu que l'on devine une fois de plus ????!!!!). Ton algo va vraisemblablement pas tout le temps marcher dans le cas de sprites en deux elements cela dit. Il faut dans ce cas-la fournir un redimensionnement de la bounding box par "l'exterieur" plutot que par "l'interieur" comme cette technique du click que tu utilises. Donc tu devrais definir un rectangle approximatif autour d'un sprite qui se reajusterait a celui-ci par exemple.

"Je vois pas en quoi les mathématiques du collèges viennent intervenir dans la détection d'une bounding box"
Generalement en mesurant a la va vite la boundinb box globale d'une ligne sprite puis en divisant par le nombre de sprite jusqu'a ce que ca tombe sur un nombre rond doit avoir de bonnes chances de te donner une boundinx box adaptee pour tous les sprites de la ligne. C'est pas 100% fiable mais ca doit fonctionner dans 95% des cas. Donc mesure d'un distance puis division entiere c'est bien niveau college :)

Cela dit les algo de bouding box dans une zone donnee sont pas beaucoup plus compliques que des maths de college.

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