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

OpenGL Discussion :

Generer une route aleatoire


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif Avatar de bobyboby
    Inscrit en
    Septembre 2008
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 108
    Par défaut Generer une route aleatoire
    Coucou,

    petite explication d'abord

    je developpe un petit jeu, le background est une route qui defile de haut en bas indefiniement. J'aimerais generer cette route aleatoirement. J'ai pense d'abord a simplement generer des points et tracer des courbes de bezier, mais j'aimerais que la route soit un peu plus jolie qu'un trait tout blanc

    Est ce que quelqu'un a une petite idee de comment s'y prendre pour generer cette route? a partir de textures? ou mapper une texture sur les points de la courbe?

    EDIT: Je viens d'avoir une idee tordue si on oublie la generation aleatoire (je me creerai une dizaine de routes moi meme): creer la route complete avec photoshop ou autre, recuperer les coordonnees de la courbe decrite par la route, et passer les 2 a openGL. possible ou completement idiot?


    je developpe ca avec openGL ES.

    Merci!

  2. #2
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 60
    Par défaut yop
    si tu as une courbe de bézier ,
    tu peut par exemple déformé un rectangle subdivisé sur l'axe vertical relativement a la courbe

    sinon tu fait comme une heightmap ,sauf que tu n'a besoin que d'une ligne.

  3. #3
    Membre chevronné
    Inscrit en
    Février 2008
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2008
    Messages : 413
    Par défaut
    Bonjour,

    EDIT: Je viens d'avoir une idee tordue si on oublie la generation aleatoire (je me creerai une dizaine de routes moi meme): creer la route complete avec photoshop ou autre, recuperer les coordonnees de la courbe decrite par la route, et passer les 2 a openGL. possible ou completement idiot?
    Je pencherais plutôt pour cette idée, mais plutôt que d'envoyer les coordonnées (ce qui peut vite s'avérer compliqué), vous pouvez faire ca:

    - un fichier image avec la route et le décor tels qu'on les verra à l'écran
    - un 2eme fichier, par exemple noir et blanc, où le noir correspond à la route, le blanc au reste

    Dans OpenGL, vous chargez les 2 textures, puis pour savoir si un pixel est sur la route ou pas, regardez la couleur correspondante dans la 2eme texture.

  4. #4
    la_tupac
    Invité(e)
    Par défaut
    Pas bête c'est ce qu'on apelle du splatting mais la texture de route doit être uniforme. Par example si on utilise une texture avec des lignes blanches qui vont dans le sens de la route, elle ne suiveront pas la courbe de la route.
    ex:


    Je pense que la meilleur solution reste de créer des blocs (ligne droite, virage à gauche, à droite, un pont pourquoi pas ...) et les assembler aléatoirement ou selon un script au fur et à mesure du scrolling.

  5. #5
    Membre actif Avatar de bobyboby
    Inscrit en
    Septembre 2008
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 108
    Par défaut
    Ok merci pour vos idées je vais mixer un peu de tout je posterai ca quand ca avance, ou quand ca avance pas

  6. #6
    Membre très actif Avatar de oxyde356
    Homme Profil pro
    Ingénieur Recherche Imagerie
    Inscrit en
    Février 2006
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Recherche Imagerie

    Informations forums :
    Inscription : Février 2006
    Messages : 797
    Par défaut
    Je vote pour la solution de la_tupac. Tu créer plein de sprites de routes différents, tu y ajoute un petit script pour dire quel type de route et compatible avec quel type de route, histoire que tout soit bien connecter et puis tu peux y glisser des probabilités si tu as envie qu'un type de route sorte plus souvent que d'autres.

  7. #7
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 539
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 539
    Par défaut
    Citation Envoyé par bobyboby Voir le message
    Est ce que quelqu'un a une petite idee de comment s'y prendre pour generer cette route? a partir de textures? ou mapper une texture sur les points de la courbe?

    Merci!
    je crois que c'est la meilleure méthode ; il faut tracer des courbes de bézier puis quand tu as les points intermédiaires de la courbe tu affiches des blocs de manière aléatoire de parts et d'autres de chaque point.
    Mais attention il faut faire cela tous les 5 ou 10 points de la courbe.
    Le problème c'est si tu veux un motif avec une ligne au milieu comme le dit la_tupac

  8. #8
    Membre chevronné
    Homme Profil pro
    Ingénieur 3D
    Inscrit en
    Avril 2008
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur 3D

    Informations forums :
    Inscription : Avril 2008
    Messages : 400
    Par défaut
    La solution d'ubenz me semble quand meme la meilleur. Il faut suivre une courbe de bezier et projeter des points de chaque coté. Au final, on se retrouve avec un espece de quad strip qu'on peut dessiner et texturer sans probleme avec opengl. C'est ultra rapide, et ca rend quand meme beaucoup mieux que 3 bitmaps mis bout a bout.

  9. #9
    Membre très actif Avatar de oxyde356
    Homme Profil pro
    Ingénieur Recherche Imagerie
    Inscrit en
    Février 2006
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Recherche Imagerie

    Informations forums :
    Inscription : Février 2006
    Messages : 797
    Par défaut
    Perso je préfère le old school ^^

Discussions similaires

  1. generer une serie de nombres aleatoires
    Par franc82 dans le forum C++
    Réponses: 6
    Dernier message: 29/03/2007, 18h20
  2. Generer des objets aleatoirement sur une carte
    Par K20 dans le forum Langage
    Réponses: 13
    Dernier message: 24/12/2005, 16h19
  3. assert ou generer une exception
    Par onap dans le forum C++
    Réponses: 2
    Dernier message: 01/12/2004, 16h49
  4. generer une image bitmap a partir d'une scene OGL
    Par FreshLog dans le forum OpenGL
    Réponses: 4
    Dernier message: 01/07/2003, 11h29
  5. [VB.Net] Comment generer une page html dynamiquement ?
    Par Anonymous dans le forum ASP.NET
    Réponses: 3
    Dernier message: 13/03/2003, 10h22

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