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

Lazarus Pascal Discussion :

BGRABitmap : Recherche d'un effet fer forgé [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut BGRABitmap : Recherche d'un effet fer forgé
    Bonjour !

    Je travaille sur un petit programme qui dessine un cheval avec la procédure FillPolyAntiAlias(). Je voulais essayer d'obtenir un effet "fer forgé" (enfin c'est moi qui l'appelle comme ça), comme dans cette image.

    Je me suis tourné vers le type TFontShading. En m'appuyant sur ce tutoriel, j'ai réussi à faire un cheval en chocolat, ce qui est encourageant. Ensuite j'ai enlevé le chocolat et j'ai essayé autre chose, qui n'est pas très réussi. Il faut dire que j'ai repris les réglages trouvés dans le tutoriel sans trop les comprendre et sans les modifier. Auriez-vous des suggestions ?
    Images attachées Images attachées  
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  2. #2
    Membre chevronné

    Homme Profil pro
    au repos
    Inscrit en
    Février 2014
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2014
    Messages : 429
    Points : 1 884
    Points
    1 884
    Par défaut
    Bonjour Roland.

    Comme je n'avais jamais utilisé l'éclairage Phong, j'ai profité de ton code pour faire un petit programme permettant la modification en temps réel des paramètres.
    Ainsi tu peux voir l'effet de chacun.

    BGRA Texture.zip

    Cordialement
    Thierry

  3. #3
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Bonjour Thierry !

    Sympa ton programme, excellente idée.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  4. #4
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Mais (comme tu l'as bien compris) ce n'est pas le cheval en chocolat que je veux faire. C'est juste que j'ai repris le code du tutoriel.

    Quant à l'effet que je voulais obtenir, je n'y ai pas encore réussi. À suivre...
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  5. #5
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Ce que je ne comprends pas trop, c'est pourquoi il faut passer une couleur comme paramètre à la méthode TPhongShading.Draw() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      phong.Draw(result, bmp, 20, 0, 0, BGRA(0,0,0));
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  6. #6
    Membre chevronné

    Homme Profil pro
    au repos
    Inscrit en
    Février 2014
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2014
    Messages : 429
    Points : 1 884
    Points
    1 884
    Par défaut
    Cela semble être la couleur d'après laquelle Phong calcule la couleur de l'effet de lumière.
    Tu as donné le noir comme valeur, donc ta partie "lumineuse" est grise (dégradé du noir vers le blanc).

  7. #7
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 552
    Points : 3 918
    Points
    3 918
    Par défaut
    Salut

    Tu pourrais peut-être te débrouiller avec les filtres proposés dans InkScape (Open Source), il y a un choix important et les images sont nativement en format SVG (vectoriel), cela t'éviterait de tout programmer en revenant à des techniques plus simple (déplacer un sprite).

    Cdlt

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  8. #8
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    @ThWilliam

    Bien vu, merci pour l'explication.

    @e-ric

    Merci pour la suggestion. Je vais regarder ce logiciel.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  9. #9
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Voici une image faite avec une commande ImageMagick. C'est quelque chose comme ça que j'avais en tête.
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  10. #10
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 552
    Points : 3 918
    Points
    3 918
    Par défaut
    Ca a de la gueule...

    Cdlt

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  11. #11
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par e-ric Voir le message
    Ça a de la gueule...
    Oui, c'est pas mal. Pour finir la chose, il faudrait faire des essais pour trouver le "bon" réglage. D'où l'intérêt de travailler avec un programme comme celui que Thierry a proposé.

    Autrement je rejoins ta remarque sur InkScape : pour faire des effets sympas sans trop se casser la tête, BGRABitmap n'est peut-être pas l'outil le plus approprié.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  12. #12
    Responsable Lazarus & Pascal

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    Février 2013
    Messages
    1 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 1 436
    Points : 20 855
    Points
    20 855
    Billets dans le blog
    84
    Par défaut
    Citation Envoyé par Roland Chastain Voir le message
    Oui, c'est pas mal. Pour finir la chose, il faudrait faire des essais pour trouver le "bon" réglage. D'où l'intérêt de travailler avec un programme comme celui que Thierry a proposé.

    Autrement je rejoins ta remarque sur InkScape : pour faire des effets sympas sans trop se casser la tête, BGRABitmap n'est peut-être pas l'outil le plus approprié.
    Oui, très beau dessin et très bel effet

    BGRABitmap est vraiment adapté à la programmation d'un effet, pas à l'obtention d'un dessin figé conforme à des besoins précis : après tout, c'est une bibliothèque qui alimente un logiciel élaboré comme Lazpaint... Je la vois donc comme un outil dynamique.
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

  13. #13
    Membre confirmé

    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 140
    Points : 623
    Points
    623
    Par défaut
    Bonjour

    Citation Envoyé par Roland Chastain Voir le message
    Un autre essai où l'on voit déjà un peu mieux le fonctionnement des choses.

    Ce que je ne comprends pas trop, c'est pourquoi il faut passer une couleur comme paramètre à la méthode TPhongShading.Draw() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      phong.Draw(result, bmp, 20, 0, 0, BGRA(0,0,0));
    La couleur est la couleur de la surface de l'objet. L'effet de Phong ajoute par dessus de la lumiere en fonction de la carte des altitudes (le deuxieme parametre).

    Donc si tu transmets en parametre une image de cheval en noir, cela signifie qu'il est plat. Et donc, le seul effet de lumiere que tu peux avoir, c'est le reflet de la lumiere sur la surface.

    Pour arriver a l'effet de lumiere sur les bords, il te faut une carte du cheval dont l'altitude change : il faut qu'il soit blanc au milieu et noir sur les bords avec un degrade de gris entre les deux.

    Pour faire cela, tu peux dessiner un polygone blanc sur un fond noir. Duplique cette image (pour la stocker et l'utilise comme un masque).

    Applique un flou sur l'image, pour avoir un degrade sur les bords.

    Finalement, applique le masque pour rendre transparent ce qui est autour.

    Ainsi tu obtiens une carte des altitudes. Ensuite, tu peux dessiner ton cheval avec cette carte et de n'importe quel couleur.
    Par-delà nos conceptions du bien et du mal se trouve une prairie. Je te rencontrerai là-bas.

  14. #14
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Bonjour !

    Merci pour la méthode. Je vais expérimenter la chose.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  15. #15
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Fait !
    Images attachées Images attachées  
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  16. #16
    Responsable Lazarus & Pascal

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    Février 2013
    Messages
    1 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 1 436
    Points : 20 855
    Points
    20 855
    Billets dans le blog
    84
    Par défaut
    Citation Envoyé par Roland Chastain Voir le message
    Fait !
    Encore plus beau
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

  17. #17
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Merci ! Merci surtout à Johann pour la méthode.

    Voici le code mis au propre.
    Fichiers attachés Fichiers attachés
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  18. #18
    Membre confirmé

    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 140
    Points : 623
    Points
    623
    Par défaut
    Tres joli. Mais c'est un plaisir de partager.

    Pour avoir des bords ronds, on peut mettre le parametre mapAltitude := 3 ou mapAltitude := 2 quand on appelle phong.Draw.
    Images attachées Images attachées  
    Par-delà nos conceptions du bien et du mal se trouve une prairie. Je te rencontrerai là-bas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recherche plugin pour faire rapidement des effets de flous
    Par jonaszrenard dans le forum Flash
    Réponses: 3
    Dernier message: 28/03/2010, 15h35
  2. recherche de lien sur un effet dock/coverflow
    Par tonin10 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 10/07/2008, 07h57
  3. Recherche Effet visuel
    Par DelphiCool dans le forum ASP.NET
    Réponses: 2
    Dernier message: 03/04/2008, 19h26
  4. Réponses: 2
    Dernier message: 01/01/2008, 15h15
  5. Recherche script pour effet "neige"
    Par Hephaistion dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 31/12/2007, 16h24

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