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

 C Discussion :

comment programmer un effet neon sur les contours d'une image?


Sujet :

C

  1. #21
    Membre actif

    Homme Profil pro
    autre
    Inscrit en
    Juillet 2015
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juillet 2015
    Messages : 176
    Points : 202
    Points
    202
    Par défaut
    Bonjour, je m’appelle Léon. Avant, j’étais moche. Ma vie était sans intérêt. Je me retrouvais sur tous les sites, dans tous les forums, utilisé pour exprimer des émotions ridicules…
    Images attachées Images attachées  

  2. #22
    Membre actif

    Homme Profil pro
    autre
    Inscrit en
    Juillet 2015
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juillet 2015
    Messages : 176
    Points : 202
    Points
    202
    Par défaut
    Mais depuis que j’ai rencontré mon ami Néon, c’est la fête tous les jours*!!!! Vous aussi, venez rencontrer Néon, votre vie deviendra lumineuse*!!! VIVE NEON*!!!!

    (ouais….bon….ça se voit que je suis content de mon algo?...)
    Images attachées Images attachées  

  3. #23
    Membre actif

    Homme Profil pro
    autre
    Inscrit en
    Juillet 2015
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juillet 2015
    Messages : 176
    Points : 202
    Points
    202
    Par défaut
    Voilà comment se comporte la fonction avec une autre forme :
    Images attachées Images attachées   

  4. #24
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Je ne crois pas que cela a été dit, mais en 3D temps réel (donc avec le GPU), le flou lumineux se fait souvent par un down scale sur plusieurs niveaux de la résolution de l'image lumineuse (ce qui fait un floutage de l'image) puis une fusion.
    Bien sûr, une passe de flou gaussien c'est toujours la base.
    Exemple sur DOOM : https://jeux.developpez.com/articles...udy/doom/#LI-R
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #25
    Membre actif

    Homme Profil pro
    autre
    Inscrit en
    Juillet 2015
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juillet 2015
    Messages : 176
    Points : 202
    Points
    202
    Par défaut
    Bonjour LittleWhite. Si je comprends bien l article, il faut appliquer l effet une fois que la forme est dessinée et non appliquer l effet pour chaque pixel qu on est en train de dessiner.

  6. #26
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    En effet, mais il ne faut pas oublier que la 3D impose des contraintes différentes aux votre, sachant que pour les formes 3D, elles sont dessinées par triangle.
    Du coup, moi, je prendrai votre image finale (image de luminance) et j'appliquerai l'effet en post traitement.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #27
    Membre actif

    Homme Profil pro
    autre
    Inscrit en
    Juillet 2015
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juillet 2015
    Messages : 176
    Points : 202
    Points
    202
    Par défaut
    pour flouter l'impression de fumée et donner une impression de dégradé continu?

  8. #28
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Arf, je me suis mal exprimé. Je parlais (bêtement d'image finale), l'image avec la couleur du néon, sur fond noir, mais sans l'effet néon.
    Genre celle-ci : https://www.developpez.net/forums/at...age/leon1.png/ et vous lui appliquée la technique que j'ai mentionnée.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  9. #29
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 252
    Points : 649
    Points
    649
    Par défaut
    Président Léon-Néon

    T'as raison d'être content de toi car Léon-Néon en jète. Un festival de couleurs et l'effet fuménoïde est original. Par contre j'ai l'impression qu'avec les formes non linéaires tu perds le rendu laser. Physiquement ça devrait ressembler au tube contenant le gaz permettant l'émission de lumière. Mais par l'aléatoire t'obtiens bien un éclairage des zones alentours. Une forme de radiance ? Lumière diffuse, émise… Enfin l'idée est là !

    Traitement d'images temps réel vs. fondamental

    Merci pour l'article les techniques d'id Software sont toujours un régal ! En effet agrandir/rétrécir une image plusieurs fois permet de la flouter et d'ailleurs pour s'en rendre compte il suffit de le faire avec un simple logiciel d'édition d'images. Par contre les algos supportées ne le sont pas toujours par les cartes graphiques limitées à du bilinéaire & Cie. Je pense aussi que l'astuce verrait ses limites par rapport à un vrai flou gaussien.

    Sinon dans ce cas je trouverai dommage de s'éloigner des fondamentaux. C'est pas un hasard si j'ai mentionné le traitement d'images car à partir de là ça permet d'avoir accès à plein de trucs utiles : Déterminer le contour, épaissir les formes… En plus la base est la même que pour le flou.

    Après tout dépend de tes besoins et envies ! En plus les résultats obtenus sont vraiment sympas.

  10. #30
    Membre actif

    Homme Profil pro
    autre
    Inscrit en
    Juillet 2015
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juillet 2015
    Messages : 176
    Points : 202
    Points
    202
    Par défaut
    Hello et merci pour vos conseils et tes compliments.
    Bon, trève de satisfaction, je me prends une belle claque quand justement je veux expérimenter ce que vous appelez les fondamentaux.
    C'est à dire le traitement d'image (contour, épaississement etc.).
    J'en arrive à la convolution d'image.
    J'ai posté un autre sujet sur ce forum, mais en fait je crois que les deux sont liés.
    Je ne cesse de modifier une fonction de convolution, mais rien ne marche comme je voudrais : quand je compare mes résultats avec ceux de google, cela n'a rien à voir.

    Je publie ici ma fonction une nouvelle fois modifiée, mais les résultats sont mauvais.

    Aurais tu une seconde de ton temps pour y jeter un oeil et me dire où ca merdoie?
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    image image_filter_aux1 (image* I, int* K, int kCols, int kRows, int divisor, unsigned char transparence, int luminosite, bool inverse_colour)
    {
     /*kCols = nb de colonnes du kernel, kRows = nb de lignes du kernel*/
     int kCenterX = kCols / 2;
     int kCenterY = kRows / 2;
     int i, j, m, mm, n, nn, ii, jj;
     
     
     
    image J = image_create ((*I)->w, (*I)->h, 0xFF0000FF);
     
     for(j=0; j < (*I)->h ; j++)            
     {
     
        for(i=0; i < (*I)->w; i++)         
        {
     
         byte r, g, b;
         colour_get_rgb ((*I)->pixel[j * (*I)->w + i], &r, &g, &b);
            for(m=0; m < kRows; m++)    
            {
                mm = kRows - 1 - m;      
     
                for(n=0; n < kCols; n++) 
                {
                    nn = kCols - 1 - n;
     
     
                    ii = i + (nn - kCenterX);
                    jj = j + (mm - kCenterY);
     
     
                    if( ii >= 0 && ii < (*I)->w && jj >= 0 && jj < (*I)->h )
                     {
                       byte rr, gg, bb;
                       colour_get_rgb ((*I)->pixel [jj * (*I)->w + ii], &rr, &gg, &bb); 
     
     
     
                       r += (rr * (K[mm * kRows + nn]));
                       g += (gg * (K[mm * kRows + nn]));
                       b += (bb * (K[mm * kRows + nn]));
     
                       /*
                       r /= divisor;
                       g /= divisor;
                       b /= divisor;
                       */
     
                       if (r < 0) r = 0; if (r > 255) r = 255;
                       if (g < 0) g = 0; if (g > 255) g = 255;
                       if (b < 0) b = 0; if (b > 255) b = 255;  
     
                       J->pixel[j * J->w + i] = make_colour (r, g, b, 0xff);
     
                       /*image_putpixel_alpha(J->pixel + j * J->w + i, r, g, b, transparence);*/
                     }   
                }
            }
        }
     }
     
    if (inverse_colour)
     { 
      for (j = 0; j < J->h; j++)
       {
        for (i = 0; i < J->w; i++)
         {
          byte rrr, ggg, bbb;
          colour_get_rgb (J->pixel[j * J->w + i], &rrr, &ggg, &bbb);
          J->pixel[j * J->w + i] = make_colour (255 - rrr, 255 - ggg, 255 - bbb, 0xff);
          if (J->pixel[j * J->w + i] == 0xfffffff) J->pixel[j * J->w + i] = 0xff0000ff;
         }
       }
     }   
       return J;
    }

  11. #31
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Il te faut des images de tests, précisément définies pour que tu puisses calculer toi-même, à la main, l'image résultat.

    Par exemple, des images ultra contrasté: un rectangle de 8 pixels de haut par 16 de long, blanc sur la moitié gauche, noir sur la moitié droite.
    La même avec les combinaisons de couleurs entre blanc, noir, rouge, bleu et vert.
    Puis avec des formes un peu moins tranchées une ligne en travers d'un bloc, une tache, etc.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  12. #32
    Membre actif

    Homme Profil pro
    autre
    Inscrit en
    Juillet 2015
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juillet 2015
    Messages : 176
    Points : 202
    Points
    202
    Par défaut
    OK. Tests en vue!

  13. #33
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 252
    Points : 649
    Points
    649
    Par défaut Connaissances & technique simplifiée de flou
    Si ça peut te rassurer t'es pas le seul à rencontrer des difficultés. C'est normal car le traitement d'images ça peut être compliqué surtout que certaines connaissances en math sont nécessaires. Les matrices sont-elles tes amies ? Les tableaux tu aimes ? Pour le flou gaussien une recherche rapide a retourné des discussions utiles alors je te conseille de faire de même. Je vais jeter un coup d'œil à ton autre discussion mais si tu bloques je connais une technique pour simplifier le processus même si le résultat est moins puissant.

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/12/2016, 17h55
  2. Dessiner les contours d'une image
    Par kabylie dans le forum Images
    Réponses: 2
    Dernier message: 22/12/2011, 17h56
  3. Renforcer les contours dans une image
    Par Chatbour dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 27/04/2009, 14h00
  4. Réponses: 4
    Dernier message: 11/09/2008, 15h21
  5. Comment faire un tail -f sur les logs binaires mysql-bin ?
    Par mediaforest dans le forum Requêtes
    Réponses: 8
    Dernier message: 24/09/2005, 12h34

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