IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Création d'un générateur de map "intelligent" (un


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 85
    Par défaut Création d'un générateur de map "intelligent" (un
    Bonjour,

    J'aimerais concevoir un générateur de carte en PHP. ça n'est surement pas l'idéal mais bon c'est comme ça.
    Le truc c'est que je ne sais pas trop vers où me tourner pour avoir une carte pas trop bateau.
    Donc je me tourné vers google et j'ai trouvé quelues infos sur comment faire. Le top que j'en ai ressorti est de commencr par une carte d'altitude. Donc on commence par là mais comment faire pour ne pas avoir que des altitudes simpleemnt aléatoire mais quelques chose de relativement réaliste.

    Donc je peine un peu sur la méthde. J'ai pensé à un système qui ferait un changement d'altitude de +- 1 ou aléatoire avec de sprobabilités (25% d'avoir +1, 25 d'avoir -1, 25 d'avoir 0, et 25 d'avoir totalement aléatoire) puis mon idée était de poursuivre en augmentant la probabilité lors de série: 25% d'avoir +1 -> tirage -> +1 -> 40% d'avoir +1 .... en agumentant chaque fois si c'est une série.
    Mais mes idées s'arrête pour l'instant là.

    Si vous avez quelques chose sur le sujet ou votre propre experience....

    Merci de votre aide !

  2. #2
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    générateur de terrains via fractales
    ou encore bump-mapping : tu prend une image et suivant la luminosité ca monte ou ça descend !
    url au hasard : http://www.iktsoft.com/proj/cg/fractals/fractal_land.php

  3. #3
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Ce sujet n'a pas grand chose à voir avec php en effet.
    Je le déplace dans le forum "Algorithmes".
    Si par la suite tu es bloqué avec php, tu posteras dans le forum approprié.
    à+


    Lien tout en bas à gauche de cette fenêtre

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 85
    Par défaut
    En effet c'est de l'algo et pas du php, mea culpa.

    Les fractales m'ont l'air pas mal je vais regarder un peu de ce côté merci.

    Si vous avez d'autres idées

  5. #5
    Membre Expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Par défaut
    Parmi les fractales, plasmas et assimilés, le bruit de Perlin (Perlin Noise) peut être extrèmement satisfaisant pour générer une carte.

    Il présente l'avantage d'être "infini", c'est à dire de pouvoir être généré en tout point du plan ...

    Avant de l'utiliser comme valeur d'altitude, ou pour pouvoir l'utiliser comme valeur "géographique" (hydrographie, couvert végétal ou autre), il peut aussi être intéressant de le passer dans une LUT (Look Up Table), afin de "palettiser" un peu le résultat.

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 85
    Par défaut
    J'ai réalisé une petite ébauche en php du modèle par fractales décrit dans le lien de Mr N.
    L'idée est bien mais j'ai un problème :
    sur une petite carte (9x9) les altitudes sont assez bien équilibrée avec quelques dominances qui ne posent aucun problèmes, ça me va
    Mais dès que je passe à des carte plus grande (20x20 et +) la dominance du 1 s'accentue (j'ai pris des altitudes entre 1 et 10). Sur une carte 33x33 les cases d'altitudes 1 representent plus de 80% de la carte ! et ça continue avec des dimensions plus grandes !
    Les bordures de la carte sont souvent aléatoire et pas mal (sans trop de 1) avec un centre d'altitude (presque unique) de 1 (exepté quelques lignes qui viennent couper par ci par là).

    Bien sur il faut que je l'améliore mais avez-vous une idée d'oû peut provenir cette dominance du 1 ?

    Pour l'instant mon algo ne fait que d'évaluer les moyennes de cases d'altitudes existantes distantes de X de la case en question (ou x est le fameux "step number". En boucle donc selon cette méthode des fractales (comme sur le lien quoi).

    Si vous avez une idée pour corriger un peu ce problème ? J'ai pensé que peut-être un système de "distance" pourrait aider. L'algo prendrait en compte beaucoup plus de case pour chaque moyenne mais + la case est éloignée moins elle est impliquée dans la moyenne.
    Qu'en pensez-vous ?

    Je vais aussi regarder du côté du bruit de Perlin que tu me conseilles, voir de quoi il en ressort.

    Encore merci de votre aide.

  7. #7
    mat.M
    Invité(e)
    Par défaut
    Je conseillerais de retoucher à la main car même s'il existe des méthodes ( fractales et autres ) les motifs finissent par être répétitifs

  8. #8
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 85
    Par défaut
    Oui bien sur la carte finale sera retouchée légerement à la main mais tout de même avoir un générateur permet de faire le gros (car sur une carte de 100x100 ou 200x200 ça devient vite très très gros !)

  9. #9
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Par défaut
    Regarde

  10. #10
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2004
    Messages : 148
    Par défaut
    Salut,

    Tu peux voir un cas concret avec code source ici sur mon site (code en visual basic, mais facile à comprendre)

    Tcho

  11. #11
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 85
    Par défaut
    Ok merci de vos aides je vais potasser tout ça

    Je vous tiens au courant de l'evolution

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/01/2007, 20h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo