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

API graphiques Discussion :

Shader CgFx - Simuler un pli et un étirement


Sujet :

API graphiques

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 59
    Points : 11
    Points
    11
    Par défaut Shader CgFx - Simuler un pli et un étirement
    bonjour!

    je suis novice en shader!

    j'aimerais simuler des plis et des étirements sur mon matériau mais je ne sais pas comment m'y prendre.

    Pour simuler un étirement, j'ai modifié les ccordonnées de textures dans le vertex program en les multipliant par un sinus. j'arrivais à voir un résultat. Mais j'ai fais la même chose dans le fragment program, mais ca ne marche pas.

    Je n'ai aucune idée pour simuler des plis. J'ai pensé d'ajouter un offset de déplacement dans une certaine direction mais ca ne marche pas.

    De l'aide s'il vous plaît

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 936
    Points
    4 936
    Par défaut
    bonjour, je ne vois pas ce que tu veux dire par "simuler des plis et des étirements", peux tu expliquer plus?

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 59
    Points : 11
    Points
    11
    Par défaut
    Slt!

    imagine que t'as un tissu avec lequel tu veux envelopper un canapé. Tu auras au milieu de ton canapé une tension qui va se former au niveau du tissu.

    et sur les cotés du canapé, tu auras des plis, juste aux endroits où se trouvent les coutures.

    Moi j'aimerais les simuler de manière réaliste.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 936
    Points
    4 936
    Par défaut
    ok, je crois voir le truc, et tu veux simuler ça comment? avec la géométrie de ton objet, la texture ou les 2?

    ce qui me vient à l'esprit en premier ça serait une simple bump map mais c'est surement pas du tout ce que tu cherches.

    est ce que ça correspond à tes attentes?

  5. #5
    Membre éprouvé 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
    Points : 1 087
    Points
    1 087
    Par défaut
    Ca m'étonnerait toi tu as compris que 3DGirl voulait un effet tissus pour par exemple un canapé. Moi de ce que j'ai compris elle voudrait un objet qui est une toile de tissus. Par exemple un rideau , bon et bien si tu pose ton rideau sur ton canapé le rideau va épouser la forme du canapé et elle veut concevoir cette objet "rideau" (vive l'explication ), dis moi si je me trompe 3DGirl.
    Bon je suis vraiment pas expert dans le domaine mais moi je ferais une grille pour représenter ce tissus. Cette grille fonctionnerait comme les os/jointures d'un squelette tu sais comme pour les animations de personnages. Chaque os et chaque jointure à ses propriétés : son poids, son élasticité... Il te suffit d'attacher tes vertex aux os souhaités. Plus tu mettra d'os/jointures plus tu obtiendra un effet réaliste (ton tissus ne se pliera pas comme du carton ) mais les calculs seront forcement plus coûteux. Est-ce bien ça que tu recherche ?

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 59
    Points : 11
    Points
    11
    Par défaut
    Hey, ne vous battez pas

    J'ai certainement du mal à me faire comprendre mais je vais vous y aider

    Vous comprendrez tout ce que je veux faire en visitant ce site. Ce n'est pas très long à parcourir, il n y a que 3 pages qui vous intéresseront.

    http://www.wrapstyler.fr/fr/download...pstyler-fr.pdf

    A la page 2, vous avez une assise qui a 3 couleurs: vert, rouge et bleue. le rouge et le bleu représentent des déformations du matériau (cuir, tissu, plastique...)

    Et en fonction de la couleur, on a un pli = rouge et une tension ou étirement = bleu, enfin ou l'inverse. Vert = matériau inchangé.

    ces déformations sont sensées représenter l'usure du matériau.

    allez directement sur la dernière page du .pdf, vous pourrez visualisez ce que je veux obtenir par exemple en terme de rendu de Pli

    Je ne peux pas faire un simple bump parce que dans mon code, la finesse du grain de cuir se modifie en jouant justement sur les paramètres de mon bump.

    Pour les tensions (étirement), j'ai pensé justement que je pouvais lissé mon matériau, enfin si c'est du cuir (aplatir le grain). Sauf que pour du tissu, ce n'est même pas imaginable (on ne peut pas lisser un tissu)

    J'espère vous comprenez mieux maintenant

  7. #7
    Membre éprouvé 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
    Points : 1 087
    Points
    1 087
    Par défaut
    Non pas du tout et apparament j'ai dis que des bétises mais d'autres personne que moi auront surement cernées ton problème je l'espère ^^

  8. #8
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 59
    Points : 11
    Points
    11
    Par défaut
    en fait, oxyde356, si tu regardes bien a dernière page du lien que j'ai posté là, tu vas remarquer qu'il y a des déformations sur le tissu.

    Sur cette page, il y a 4 images mais tu as deux images de sièges . Concentres-toi sur les sièges.

    sur la première image, il y a des colorations bleues (déformations) et dans la deuxième image, les zones du tissu correspondantes aux colorations bleues ont des sortes de transformations.

    regardes bien s'il te plaît. Tu as comme des ondes qui se propagent mais se sont des plis en fait.

  9. #9
    Membre éprouvé 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
    Points : 1 087
    Points
    1 087
    Par défaut
    Ah ok je vois, vachement chaud comme truc
    Tu dispose de quelles données ? je suppose que tu as la texture des déformations et que tu dois reproduire l'effet sur la texture diffuse ?

  10. #10
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 59
    Points : 11
    Points
    11
    Par défaut
    Oui en effet c'est chaud

    j'ai une texture pour les déformations, comme ce que tu as vu (vert rouge bleu)
    une texture de normal : normal map et une texture specular map.

  11. #11
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 936
    Points
    4 936
    Par défaut
    pour ma part je passe, je ne comprend strictement rien au aboutissant du truc, désolé et bonne chance

  12. #12
    Membre éprouvé 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
    Points : 1 087
    Points
    1 087
    Par défaut
    A un moment tu dis que tu es arriver à quelques chose avec ton VS (vertex shader) et que tu as voulu faire la même chose sur le PS (pixel shader). Pourquoi tu veux faire un traitement similaire sur deux choses qui n'ont rien à voir ? que veux tu faire sur le pixel shader ?

  13. #13
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 59
    Points : 11
    Points
    11
    Par défaut
    stardeath dit qu'il n'a pas compris ce que j'ai essayé d'expliquer même en montrant un exemple concret. Bon c'est pas grave merci quand même.

    Pour répondre à ta question oxyde356, je ne veux pas faire le même programme sur le vertex et le pixel shader.

    En fait je ne fais rien de particulier dans mon vertex shader.

    c'est dans le pixel shader que je travaille

  14. #14
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 59
    Points : 11
    Points
    11
    Par défaut
    dans mon vertex shader, je fais ceci:

    1 initialisation des données de sortie
    2 transformation de la position des vertex dans l'espace de camera (clip space)
    3 passe le relai des coord. de couleur et de texture au pixel shader
    4 transformation de la position des vertex dans le monde
    5 calcul de la normal dans l'espace local
    6 calcul du vecteur vertex-to-eye dans le monde

    Ensuite c'est le pixel shader qui gère tout, la lumière, la couleur et la texture

  15. #15
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 936
    Points
    4 936
    Par défaut
    Citation Envoyé par 3Dgirl Voir le message
    Tu as comme des ondes qui se propagent mais se sont des plis en fait.
    je ne vois ni onde ni pli, je peux pas deviner ce que je vois pas XD

  16. #16
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2006
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 450
    Points : 1 630
    Points
    1 630
    Par défaut
    Ton probleme est mal pose : tu ne sais pas exactement ce que tu veux. Tu dis que tu veux des "plis" et des "etirements" sur ton tissus mais t'entends quoi par la ? Un plis encore je veux bien me l'imaginer mais un etirement ?! Tu veux agir sur quoi ? Quel effet visuel veux-tu donner ? Le plis, comment veux-tu le faire ? Dans quelle direction ? Avec quelle repartition ? etc.

    De ce que j'ai compris ces visualisations montrent les deformations que tu vas avoir en utilisant un tissus (dus a l'applatissement de ton objet sur un plan). Ces deformations sont directement visualisables si tu affiches ta texture sur le maillage (elle sera plus etiree aux zones d'etirement et ecrasee aux zones de repliement). Donc voila : tu as l'effet visuel directement en utilisant la texture, que veux-tu donc obtenir ? Quel est le besoin du client ? (parce que j'imagine que c'est quelqu'un qui t'a demande de faire ca)
    Je ne réponds à aucune question par MP, posez vos questions sur le forum adéquat.
    Profils : G+ - LinkedIn

  17. #17
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 59
    Points : 11
    Points
    11
    Par défaut
    C'est pas évident du tout de me faire comprendre. Je m'excuse.

    Je suis consciente que je dois directement agir sur la texture. Le client voudrait simuler l'usure du tissu ou du matériau.

    Quand tu prend un tissu que tu étires souvent au même endroit, il fini par se déchirer au niveau de la zone d'étirement ( c'est le cas d'un plastique par exemple).

    Je ne connais pas les termes scientifiques mais si tu prends un sac plastique et que tu tires avec tes mains simultanément, tu verras que le sac s'étire et au fur et à mesure que tu l'étires, il se déchirera.

    Moi, je dois simuler cet étirement sauf que en fonction du matériau, l'effet est différent. Le cuir par exemple s'étire très peu puisque c'est un matériau hyper souple mais il s'étire quand même puisque il fini par s'abîmer comme tout matériau.

    Et quand au pli, j'ai envie de faire de l'aliasing. Je pense que c'est cet effet qu'on visualise dans le dessin du siège en tissu de la dernière page du PDF.

  18. #18
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par 3Dgirl Voir le message
    C'est pas évident du tout de me faire comprendre. Je m'excuse.
    Si si, c'est bon, enfin, pour moi.
    Par contre je ne vois l'utilité ou l'applicabilité d'un sinus. Pour moi, c'est un peu plus compliqué que ça... En gros, il faudrait faire un "pliage UV" (par analogie et opposition à un dépliage UV comme dans les progs 3D, genre Blender, ou on déplie la forme 3D pour se ramener à un forme 2D sur laquelle on va peindre la texture), et en fonction de la déformation des quads jouer sur la couleur de la texture (quad allongé > étirement, quad raccourci > pli).

    D'un autre côté, le seul truc pour lequel j'ai un peu de mal à voir, c'est sur le concept 2D de l'étirement. Tu peux très bien être étiré dans le sens chaine de ton tissu et être "plié" dans le sens trame. Quel phénomène vas-tu représenter dans une telle situation?
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  19. #19
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 59
    Points : 11
    Points
    11
    Par défaut
    j'ai pensé faire de l'aliasing parce pour l'instant c'est la seule idée qui m'est venue en tête pour faire des plis et quand j'ai vu l'exemple de rendu qu'on a sur le site que j'ai donné

    ca ressemblait à de l'aliasing. Je suis vraiment perdue.


    Comme je l'ai dit, je suis vraiment novice. J'essaie de réussir un mini projet dans lequel je n'ai aucune compétence en un laps de temps.

    Plegat, tu as parlé d'un pliage UV. Quel en est le principe?
    les progs 3D, genre Blender,
    je n'ai jamais eu l'occasion d'en faire.

    Comment fait-on un pliage UV? à quoi ça ressemble?

  20. #20
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par 3Dgirl Voir le message
    j'ai pensé faire de l'aliasing parce pour l'instant c'est la seule idée qui m'est venue en tête pour faire des plis et quand j'ai vu l'exemple de rendu qu'on a sur le site que j'ai donné
    L'aliasing sert juste à l'affichage, ça ne permet pas de définir ce que tu veux afficher (d'après ce que j'en sais). Le point de départ est de bien préparer ce que tu veux afficher. Au départ tu parlais de simulation de plis style bump ou normal mapping, alors que dans le pdf c'est juste du color mapping. Si c'est du color mapping, il faut savoir à quoi vont correspondre les couleurs. Tu es avec un tissu, tu as donc deux directions à 90° privilégiés, tu peux donc soit sortir un critère d'allongement/étirement suivant une seule des directions (donc déjà deux possibilités), soit sortir un critère combiné (un tissu étiré sur ses deux directions devrait s'user plus rapidement qu'un tissu étiré sur une seule direction je présume?)

    Citation Envoyé par 3Dgirl Voir le message
    Plegat, tu as parlé d'un pliage UV. Quel en est le principe?
    Tu prends ton objet modélisé en 3D avec des triangles et des quads, et tu le ramènes à une forme 2D en le dépliant (d'où le nom). Pour cela, soit tu aplatis tout comme un sauvage sans réfléchir, soit tu crées des coutures à des endroits stratégiques qui vont permettrent d'étaler la forme sans trop la déformer.
    L'exemple de base, c'est le cube que tu déplies en une forme en croix (le truc qu'on apprend à la maternelle...)


    Citation Envoyé par 3Dgirl Voir le message
    Comment fait-on un pliage UV? à quoi ça ressemble?
    Un petit exemple

    Je n'ai jamais eu l'occasion de regarder la théorie de la chose, je n'ai fait que m'en servir, mais c'est peut-être une piste à explorer... à voir...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

Discussions similaires

  1. Probleme Voyageur de Commerce - Recuit Simulé
    Par dinver dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 21/06/2009, 22h26
  2. Vertex et Pixel Shader
    Par Riko dans le forum OpenGL
    Réponses: 2
    Dernier message: 06/06/2003, 16h45
  3. carte graphique et pixels shader
    Par yeeep dans le forum DirectX
    Réponses: 2
    Dernier message: 26/04/2003, 10h54
  4. Simuler un coup de molette sur un memo...
    Par dynobremo dans le forum Composants VCL
    Réponses: 2
    Dernier message: 28/02/2003, 11h31
  5. Simulation de transmission de paquet entre différent réseaux
    Par MelloW dans le forum Développement
    Réponses: 2
    Dernier message: 12/07/2002, 19h51

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