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 :

Dessiner des tags sur les murs d'un labyrinthe


Sujet :

OpenGL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut Dessiner des tags sur les murs d'un labyrinthe
    Bonjour,

    Je suis sur un jeu de labyrinthe 3D et je souhaiterais ajouter des tags dans les murs texturés comme l'image avec tag.
    Comment faire ?

    Il y a l'image sanstag qui est l'originale et avectag avec des tags ajoutés à la main pour vous montrer.

    Quelle est la meilleure méthode à utiliser ?

    Pour le tapis vert au sol, alors je dessine une primitive avec texture transparente par dessus.
    Je voudrais faire différemment pour les murs.

    Merci

    Original :
    Nom : sanstag.png
Affichages : 287
Taille : 659,8 Ko

    Avec Tag (ajouté à la main bien sûr) :
    Nom : avectag.png
Affichages : 286
Taille : 658,2 Ko

  2. #2
    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,

    La technique qu'il vous faut s'appelle "decals", cela permet de gérer notamment les impacts des balles dans les murs dans les jeux vidéo.
    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.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut
    Si j'ai bien compris , le mode decals consiste à tracer une primitive paralléle au mur decaler de 0.001 (on va dire Z)
    avec une texture transparente ????

  4. #4
    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
    Je pense qu'il y a plusieurs façons de faire. Autrement, oui, il faut utiliser `glPolygonOffset()` afin de dire à OpenGL qu'il y a un décalage. Mais mis à part ça, il faut dessiner la texture au même endroit (vous pouvez donc réutiliser la géométrie de votre mur).
    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. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Je pense qu'il y a plusieurs façons de faire. Autrement, oui, il faut utiliser `glPolygonOffset()` afin de dire à OpenGL qu'il y a un décalage. Mais mis à part ça, il faut dessiner la texture au même endroit (vous pouvez donc réutiliser la géométrie de votre mur).
    Est t'il propre/correcte de tracer (avec une texture transparente) une primitive strictement paralléle à mon mur espacé par exemple de 0.001 sans passer par la glPolygonOffset ????

  6. #6
    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
    Je dirai que non, pas vraiment. D'une, l'utilisateur pourrait voir la différence, dans un tel cas, de deux, car la fonction glPolygonOffset est faite pour ça et ne déplace pas visuellement la texture, l'offset n'étend appliqué que dans les cas de vérification du tampon de profondeur.
    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. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Je dirai que non, pas vraiment. D'une, l'utilisateur pourrait voir la différence, dans un tel cas, de deux, car la fonction glPolygonOffset est faite pour ça et ne déplace pas visuellement la texture, l'offset n'étend appliqué que dans les cas de vérification du tampon de profondeur.
    Cette fonction 'glPolygonOffset' est t'elle deprécié ? si oui utilise quoi à la place ?
    Dois-je changer mon shader (vertex, fragment) ?
    si oui qu'est ce que dois je changer ?

    Je ne suis pas expert en 3d opengl.

    Merci.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut
    J'ai tester cette fonction avec comme paramètre -20,-10 , ça semble fonctionner.
    Par contre si je met des valeurs trop haute , la vue 3d bug et trop basse ça ne marche pas correctement.

    Ca va me servir beaucoup .

    Virtualbox opengl prend en charge cette fonction.

    Faudrait comme même que je le teste une machine hôte.

    Merci.

  9. #9
    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
    Lorsque vous avez un doute, vous devez lire la documentation : https://registry.khronos.org/OpenGL-...onOffset.xhtml
    En OpenGL/DirectX/Vulkan (et aussi avec d'autres technologies, mais ici, c'est presque la seule chose que l'on a ), la documentation, c'est la base, la première chose que l'on regarde et que l'on essaie de comprendre.
    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.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut
    Ce thread n'est plus en mode résolut car ça ne marche pas !.
    J'ai un gros soucis :
    Quand je vais trop prés de la primitive tracé en décalé j'ai ça.

    Je ne sais pas quoi faire !

    En plus la primitive décrivant le panneau Ori .... est paralléle au mur (primitive avec texture fleur) avec ecart nulle.

    Nom : s2.png
Affichages : 173
Taille : 1,93 Mo
    Nom : s1.png
Affichages : 174
Taille : 1,65 Mo

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut
    J'ai employé la fonction glDepthMask en lui passant GL_FALSE et puis
    rappeler la fonction glDepthMask en lui passa,t GL_TRUE une fois le
    cadre tracé -> Même problème .
    Donc problème non résolut.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par yann458 Voir le message
    J'ai employé la fonction glDepthMask en lui passant GL_FALSE et puis
    rappeler la fonction glDepthMask en lui passa,t GL_TRUE une fois le
    cadre tracé -> Même problème .
    Donc problème non résolut.
    J'ai employé la fonction glDepthMask en lui passant GL_FALSE et puis
    employé glPolygonOffset avec des valeurs élevé
    rappeler la fonction glDepthMask en lui passant GL_TRUE, ça à l'air de fonctionner.
    Quand je fais le même operation sans désactivé le depthmask, alors la vue est buggé .

    Question :
    Est ce propre de faire du decals avec des valeurs assez elevé dans glPolygonOffset(factor,units) en DéSACTIVANT le depthmask avec la fonction glDepthMask ?

  13. #13
    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
    Si vous désactivez le test de profondeur, il n'y a plus de raison de faire de glPolygonOffset (enfin, je crois). Ce qui est affiché sans test de profondeur, sera toujours affiché par dessus tout le reste.
    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.

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Si vous désactivez le test de profondeur, il n'y a plus de raison de faire de glPolygonOffset (enfin, je crois). Ce qui est affiché sans test de profondeur, sera toujours affiché par dessus tout le reste.
    Ne pas confondre glDepthMask et glDisable(GL_DEPTH_TEST)

  15. #15
    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
    J'ai cherché sur Internet et il semble que la méthode pour faire des decals ne soit pas celle que je pensais. Après, est-ce que vous avez besoin de tags que le joueur puisse dessiner, ou juste des tags pour décorer ?
    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.

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    J'ai cherché sur Internet et il semble que la méthode pour faire des decals ne soit pas celle que je pensais. Après, est-ce que vous avez besoin de tags que le joueur puisse dessiner, ou juste des tags pour décorer ?
    Ce serait plutôt des tags pour décorer.

  17. #17
    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
    Dans ce cas là, pas besoin de decals, vous pouvez simplement configurer vos sprites et utiliser du multitexturing (appliquer plusieurs textures sur une même géométrie) pour le rendu.
    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.

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Dans ce cas là, pas besoin de decals, vous pouvez simplement configurer vos sprites et utiliser du multitexturing (appliquer plusieurs textures sur une même géométrie) pour le rendu.
    Excusez-moi Je n'ai pas bien compris le terme 'Configurer vos sprites' ?
    Pour le terme 'utiliser du multitexturing (appliquer plusieurs textures sur une même géométrie) pour le rendu.' si j'ai bien compris il va falloir modifier le shader pour combiner 2 textures (texture original,(tag,decoration etc...) ????

  19. #19
    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, il faudra modifier le shader pour utiliser les informations de deux textures. Évidemment, il faudra aussi modifier le code et les appels OpenGL de manière adéquate.
    J'ai utiliser le mot sprite par erreur. Je voulais dire, vous pourrez configurer les tags à l'avance (dans votre fichier de niveau). Et comme c'est par avance, pas besoin de faire de decals, juste le multi texturing devrait suffire.
    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.

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut
    Les deux textures devront être la même taille ? contenant des tags ?
    Si je veux par exemples dessiner 3 tags je vais devoir mettre les 3 tags dans la même texture n°2 combiner au texture n°1 (origine) ?

Discussions similaires

  1. [Tags] Impossibilité d'ajouter des tags à un post créé
    Par yahiko dans le forum Blogs du Club
    Réponses: 2
    Dernier message: 12/02/2015, 16h22
  2. [XL-2010] Ajouter des tags à des images
    Par rogerfon dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/06/2014, 12h34
  3. [OL-2007] ajouter des tags au mails
    Par cladsam dans le forum Outlook
    Réponses: 1
    Dernier message: 12/07/2012, 16h02
  4. Ajouter des tag a un répertoire
    Par airod dans le forum Général Python
    Réponses: 2
    Dernier message: 19/02/2011, 19h37
  5. Ajouter des Tags
    Par krull dans le forum Zend_Db
    Réponses: 1
    Dernier message: 16/02/2007, 13h51

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