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

DirectX Discussion :

[DX9 C++] Fond étoilé


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 76
    Par défaut [DX9 C++] Fond étoilé
    J'essaie de faire un fond étoilé pour un jeu de vaisseau spatial. J'ai donc commencé par faire simple en reprennant un code. Celui ci subdivise l'espace en plusieur cube afin d'afficher seulement ceux qui sont proches.

    Afin de simuler un mouvement, j'ai fait en sorte que chaque étoiles soit une ligne qui s'agrandit ou rétrécis grâce aux vertex shader.

    Le résultat est relativement acceptable cependant j'ai deux problèmes, le premier étant la taille de mon vertex buffer (17000 vertices quand même) alors qu'avec seulement des points on doit aussi pouvoir le faire (donc seulement 7000), le second étant que le fichier effect ne se soucie pas de l'offset que j'ai spécifié dans le DrawPrimitive, et il affiche mes 17000 lignes, ceci est sans doute du au fait que dans le set stream je met l'intégralité du VertexBuffer.

    Bref je suis certain que ma solution actuelle est mauvaise et malgré mes recherches sur google, je ne trouve pas de renseignement sur le sujet. Si quelqu'un pourrait me renseigner j'en serais bien heureux.

  2. #2
    Membre éclairé
    Avatar de funkydata
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 515
    Par défaut
    Je n'arrive pas trop à voir ce que tu veux faire
    Tes etoiles bougent de quelle manière ?
    Mouvement vers la caméra quand celles ci avancent ou mouvement avec la caméra quand celles-ci tournent ? Ou les 2 ?
    Je pourrais certainement te donner quelques indications quand j'aurais une idée plus précise de l'animation que tu comptes réaliser

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 76
    Par défaut
    En gros je veux faire le même effet que dans les jeux habituels dans l'espace. C'est à dire les étoiles qui sont des points lorsqu'on reste immobile deviennent des lignes lorsqu'on bouge. Je ne sais pas si c'est réaliste (je ne suis jamais allé dans l'espace) mais c'est joli.

    Sinon, actuellement j'ai plein d'étoiles positionnées qui ne bougent pas. L'effet de ligne est produit par les deux vertices qui composent l'étoile comme j'avais expliqué. Je donne simplement au vertex shader la velocité de la position de la camera pour savoir dans quelle direction orienté mes lignes: un des vertices vas dans un sens l'autre dans le sens opposé.

    En fait, je crois que cette solution est mauvaise et qu'il doit etre possible grâce au pixel shader de faire la ligne a partir d'un pixel simple.

  4. #4
    Membre éclairé
    Avatar de funkydata
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 515
    Par défaut
    Ah oui je vois maintenant... comme ça, à froid, je pense que le mieux est de gérer ca avec un système de particules. 1 emitter est 1 etoile et quand un mouvement est appliqué les particules sont émises dans le sens inverse du déplacement... tu émet x particules (3, 5 ou 10 par exemple) quand la caméra se deplace suivant la vitesse ou la longeur de la trainée que tu veux donner en appliquant un alpha de plus en plus grand suivant l'age de la particule. Je pense que tu peux obtenir de bon resultats visuels en procédant ainsi tout en gardant des perfs dans la mesure ou tes particules auront une texture de taille trés trés réduite.
    Mais si j'ai une autre idée quand j'y aurais mieux réfléchi je te ferais signe

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 76
    Par défaut
    Avec deux vertices par étoiles j'ai déjà 17000 vertices, je n'ose même pas imaginer avec 3, 5 ou 10 vertices. Enfin tu m'as donné une idée avec ce système de particule.

    En effet, je pense placer un systeme de particule en face de la camera. Chaque particule étant une étoile. Ca va simplifier la division spatial qui en plus limitait mon aire de déplacement.

    Par contre je me vois mal emmettre des lignes et encore moins des systèmes de particules. Enfin je vais voir d'abord se que ça donne avec un simple systeme avec une texture d'étoile.

  6. #6
    Membre éclairé
    Avatar de funkydata
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 515
    Par défaut
    Je comprends pas que tu doives utiliser autant de vertices pour un simple affichage d'etoiles Si j'en crois ce que tu écris tu devrais donc en théorie avoir 4250 étoiles en simultané sur l'écran dans ta scène. J'ai fait il y a quelques temps une scène de ce genre et si j'avais 1000 vertices à l'écran pour gérer l'effet c'était le bout du monde

Discussions similaires

  1. TDBGRID - Couleur de fond d'une seule cellule
    Par cgo dans le forum Bases de données
    Réponses: 5
    Dernier message: 11/09/2009, 10h16
  2. le type const char* const * et fltk en toile de fond
    Par dambriscard dans le forum C++
    Réponses: 4
    Dernier message: 04/07/2007, 16h18
  3. [VB6] [Graphisme] Image de fond stretchable dans mdiform
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 17/02/2003, 10h45
  4. Changer la couleur de fond de l'écran
    Par tnk dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 19/01/2003, 01h37
  5. dans le fond, la compilation...
    Par deltapositive dans le forum C++Builder
    Réponses: 5
    Dernier message: 17/09/2002, 12h14

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