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

OpenSceneGraph Discussion :

Découper une surface


Sujet :

OpenSceneGraph

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juin 2022
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2022
    Messages : 14
    Points : 23
    Points
    23
    Par défaut Découper une surface
    Bonjour

    J'aurais besoin d'aide.

    J'ai une surface créer avec de geometry et j'aimerais découper une partie de la surface pour y placer un objets sans que la surface se retrouve a l'intérieur de l'objet (j'ai un bateau ouvert et la surface bleu traverse le bateau et est donc visible a l'intérieur). (Voir image)Nom : Capture4.png
Affichages : 108
Taille : 7,2 Ko
    Pour cela j'ai 4 points d'angle et je voudrais supprimer les geometry et primitives se trouvant a l'intérieur de ces 4 coins. (le carré blanc sur l'image)

    Pour cela comment pourrais-je procéder ?

    Une solution serait d'obtenir la position de ces 4 points dans un shader et de supprimer les fragments se trouvent a l'intérieur avec la méthode "discrad" en glsl si je me trompe pas? (Cependant je n'ai pas de connaissance suffisante avec les shaders ^^')

    Ou avez-vous d'autres suggestions ?

    Merci d'avance
    Cordialement

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    26 656
    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 656
    Points : 216 696
    Points
    216 696
    Billets dans le blog
    109
    Par défaut
    Bonjour,

    Cela était déjà possible avant les shaders avec le tampon de stencil. Par conséquent, je pense que le plus simple est de regarder dans cette direction.
    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 à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juin 2022
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2022
    Messages : 14
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Bonjour,

    Cela était déjà possible avant les shaders avec le tampon de stencil. Par conséquent, je pense que le plus simple est de regarder dans cette direction.

    Bonjour

    Oui merci j'ai utiliser un shader directement pour découper un quadrangle a une position donné, maintenant j'aimerais savoir s'il est possible de passer dynamiquement plusieurs position différentes, j'ai essayer de changer la position en redonnant le vec3 a différent moment mais sa modifier juste l'emplacement du quadrangle déjà découper.

    J'ai également essayer avec un tableau de vec3 mais sa donne pas le résultat voulue (sa supprime tout l'objet directement XD).

    Sinon je pourrais me tourner vers la tessellation ?

    Merci
    Cordialement

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    26 656
    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 656
    Points : 216 696
    Points
    216 696
    Billets dans le blog
    109
    Par défaut
    Avec un shader, il faut utiliser une texture afficher de dire où dessiner et ou ne pas dessiner. L'avantage, c'est que l'on peut utiliser une multiplication à la place d'une condition, améliorant ainsi la vitesse d'exécution (même si vous n'en avez pas trop à vous en préoccuper). La texture sera générée est transmise par le CPU (le code C/C++). Mais, en réalité, cette solution revient à coder un stencil buffer.
    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 à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juin 2022
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2022
    Messages : 14
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Avec un shader, il faut utiliser une texture afficher de dire où dessiner et ou ne pas dessiner. L'avantage, c'est que l'on peut utiliser une multiplication à la place d'une condition, améliorant ainsi la vitesse d'exécution (même si vous n'en avez pas trop à vous en préoccuper). La texture sera générée est transmise par le CPU (le code C/C++). Mais, en réalité, cette solution revient à coder un stencil buffer.
    Bonjour

    Désolé du temps de réponse, j'ai regardé l'exemple osgReflect, qui nous offre un code qui créer un reflet du cessna.osg en utilisant les Stencil buffer. Si j'ai bien compris ils redessinent le cessna sur un plan mais je suppose qu'on modifiant le code l'effet inverse est possible ? 🤔

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    26 656
    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 656
    Points : 216 696
    Points
    216 696
    Billets dans le blog
    109
    Par défaut
    Pour un reflet (la méthode "oldschool"), on va dessiner une fois la scène, de manière classique. Puis, on dessine à nouveau la scène, mais on définit un stencil buffer pour ne pas dessiner sur la partie que l'on ne veut pas (le haut, ou tout ce qui n'est pas réfléchissant) et on redessine la scène avec une coordonnée Y inversé (pour faire un miroir en Y).
    Je n'ai pas regardé l'exemple d'OSG, mais j'imagine que c'est ça .
    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 à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juin 2022
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2022
    Messages : 14
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Pour un reflet (la méthode "oldschool"), on va dessiner une fois la scène, de manière classique. Puis, on dessine à nouveau la scène, mais on définit un stencil buffer pour ne pas dessiner sur la partie que l'on ne veut pas (le haut, ou tout ce qui n'est pas réfléchissant) et on redessine la scène avec une coordonnée Y inversé (pour faire un miroir en Y).
    Je n'ai pas regardé l'exemple d'OSG, mais j'imagine que c'est ça .
    Oui c'est exactement sa dans l'exemple d'OSG 🤔
    Je vais essayer cette méthode (pour l'instant le shader fonctionne comme je le souhaite )

  8. #8
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juin 2022
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2022
    Messages : 14
    Points : 23
    Points
    23
    Par défaut
    C'EST BON J'AI REUSSI 🥳

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

Discussions similaires

  1. Découper une surface en verre
    Par sidahmed dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 22/02/2011, 15h21
  2. [VMR9][D3D9]ecrire un texte sur une surface
    Par drizztfr dans le forum DirectX
    Réponses: 2
    Dernier message: 13/11/2003, 15h06
  3. Effet Fade In / Fade Out sur une surface DirectDraw
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 08/09/2002, 17h37
  4. Sauvegarder une surface dans un fichier
    Par Freakazoid dans le forum DirectX
    Réponses: 6
    Dernier message: 18/08/2002, 15h23
  5. Redimensionnement d'une surface
    Par Freakazoid dans le forum DirectX
    Réponses: 4
    Dernier message: 01/07/2002, 22h01

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