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 :

Stocker des données dans une texture ( via l’exemple des automates cellulaires )


Sujet :

OpenGL

  1. #1
    Candidat au Club
    Homme Profil pro
    Lurker
    Inscrit en
    Juillet 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Lurker

    Informations forums :
    Inscription : Juillet 2013
    Messages : 3
    Par défaut Stocker des données dans une texture ( via l’exemple des automates cellulaires )
    Bonsoir !

    J'apprend actuellement à programmer en glsl pour exploiter le gpgpu au sein d'un environnement web.
    Je viens de terminer un prototype d'automate cellulaire en m'inspirant de créations tel que : http://nullprogram.com/blog/2014/06/10/.

    Il s'agit du fameux jeu de la vie ! Les performances sont hallucinantes ( je programme quasi-exclusivement en javascript donc vous comprendrez mon enthousiasme ).
    Dans mon implémentation comme dans l’exemple ci-dessus, chaque cellule est assignée à un pixel et toute la logique est contenue dans le fragment shader. Si l'on écarte les contraintes de temps et de performances, dans le cas présent, il est possible de simuler autant de cellule que le nombre de pixel que le gpu alloue par texture.

    Mais il reste encore 3 composants 8 bits inexploités ( puisque pour le jeu de la vie, il n'y a que 2 états possible ) et j'ai lu sur un blog qu'il serait donc théoriquement possible de stocker 32 cellules par pixels.
    Je suis encore loin de connaitre tous les secrets de la programmation en glsl, mais si je ne me trompe pas, le fragment renvoit uniquement en sortie la propriété Frag_Color qui détermine la couleur du pixel.
    Mais alors, si une seule couleur est exploitable en sortie, comment faire pour rendre la couleur à l'écran des 31 hypothétiques états restants ? L’intérêt serait t-il seulement de pouvoir simuler un plus grand nombre de cellules en arrière-plan ?

    J'espère avoir été comphréhensible !
    Merci !

  2. #2
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 032
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 032
    Billets dans le blog
    12
    Par défaut
    Salut!
    Oui, effectivement, je ne vois pas trop comment afficher ces 31 cellules restantes, à part en ayant un shader de calcul (ton ppremier fragment, que tu peux peut-être envisager de changer en compute?) , et un shader d'affichage, qui dessinera dans une texture 32x32 fois plus grande, à partir de ta texture originale, mais par contre, tu risaues de vite rencontrer les limites de taille de texture, à moins de découper ton affichage en portions de la texture originale.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  3. #3
    Candidat au Club
    Homme Profil pro
    Lurker
    Inscrit en
    Juillet 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Lurker

    Informations forums :
    Inscription : Juillet 2013
    Messages : 3
    Par défaut
    Salut dragonjoker59 et merci pour ta réponse !

    Effectivement, on pourrait utiliser un deuxième shader et rendre le tout sous forme de mosaïque de textures mais bonjour l’implémentation pour un automate qui doit vérifier tout son voisinage !
    Ma question était de m'assurer que j'avais bien compris les fondamentaux ! Actuellement, j'utilise l'astuce pour stocker des états supplémentaires.

    Je retourne m'amuser ! Encore merci !

Discussions similaires

  1. Meilleure méthode pour enregistrer des données dans une BDD via Javascript
    Par Say hello dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/02/2016, 00h09
  2. Réponses: 1
    Dernier message: 10/06/2014, 17h05
  3. Réponses: 12
    Dernier message: 06/08/2010, 15h00
  4. inserrtion des données dans une table via les servlets
    Par melleweb dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 28/11/2007, 10h53
  5. [SQL-Server] Insertion via checkbox des données dans une bdd
    Par agur29 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 27/07/2007, 10h17

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