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 :

Compréhension des distances en OpenGL


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Par défaut Compréhension des distances en OpenGL
    Bonjour,

    en OpenGL j'utilise des dimensions sans vraiment savoir ce que cela représente graphiquement. Par exemple si je fait un cube de 15 de coté, comment je peux savoir ce que cela représente à l'écran ? C'est pas des pixels.

    Je voudrais faire en 3D un panel avec du texte écrit dedans (comme un label dans une interface graphique). Pour ce faire je pense produire une image en mémoire, dessiner le texte dedans avec les fonctions graphiques de mon langage de prédilection (java swing), puis utiliser cette image comme texture que j'applique au panel.

    Cette image je voudrais la recréer en fonction de la distance du panel à la caméra. C'est à dire que si je suis prêt de la caméra de dessine avec une grosse fonte, et si je suis loin avec une petite fonte. C'est comme de faire du dessin vectoriel dans l'espace.

    Mais comment je fais pour savoir quel sera la taille de mon panel en pixel par rapport à la distance à la camera ?

    J'imagine que c'est difficile à expliquer. Une bonne lecture pour le weekend ?

    Merci

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 157
    Billets dans le blog
    152
    Par défaut
    Bonjour,

    Citation Envoyé par Alec6 Voir le message
    en OpenGL j'utilise des dimensions sans vraiment savoir ce que cela représente graphiquement. Par exemple si je fait un cube de 15 de coté, comment je peux savoir ce que cela représente à l'écran ? C'est pas des pixels.
    En effet, ce sont des unités arbitraire. En réalité, la taille à l'écran dépend de votre matrice de projection. Si vous utilisez une projection orthographique, alors, ce sera bien plus facile à déterminer.

    Je voudrais faire en 3D un panel avec du texte écrit dedans (comme un label dans une interface graphique). Pour ce faire je pense produire une image en mémoire, dessiner le texte dedans avec les fonctions graphiques de mon langage de prédilection (java swing), puis utiliser cette image comme texture que j'applique au panel.
    Est-ce que le panel est en surimpression, comme collé à l'écran (comme les GUI et HUD dans les jeux ?). Dans un tel cas, utilisez une matrice de projection orthographique et un viewport de la taille de la fenêtre et le tour est joué (une sorte de mode 2D, dans OpenGL si on peut dire).

    Cette image je voudrais la recréer en fonction de la distance du panel à la caméra. C'est à dire que si je suis prêt de la caméra de dessine avec une grosse fonte, et si je suis loin avec une petite fonte. C'est comme de faire du dessin vectoriel dans l'espace.

    Mais comment je fais pour savoir quel sera la taille de mon panel en pixel par rapport à la distance à la camera ?
    J'ai envie de dire, vous n'avez pas besoin de savoir, vous pouvez vous en sortir en faisant une approximation, je pense.

    J'imagine que c'est difficile à expliquer. Une bonne lecture pour le weekend ?
    J'ai un peu de mal à voir le rendu final que vous souhaitez avoir.
    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 chevronné

    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 311
    Par défaut
    Salut !

    Si ton panel est un quadrilatère ayant une position 3D mais s’affichant toujours face camera alors cela s’appelle un billboard , et il dispose donc d’un pipeline géométrique propre.
    Peu importe le pipeline géométrique, si tu effectues les mêmes calcules que ton vertex shader sur CPU, en y ajoutant le viewport alors tu obtiendras ta taille finale projeté !

    Tous comme LittleWhite je pense que cette taille varie linéairement en fonction de la distance, il donc préférable de déterminer un facteur + constante plutôt que d’effectuer ces lourds calcules matriciel sur CPU.

    Citation Envoyé par Alec6 Voir le message
    Cette image je voudrais la recréer en fonction de la distance du panel à la caméra. C'est à dire que si je suis prêt de la caméra de dessine avec une grosse fonte, et si je suis loin avec une petite fonte. C'est comme de faire du dessin vectoriel dans l'espace.
    Je te mets en garde car cette technique me semble extrêmement coûteuse pour du temps réel.
    Il y plus de 15 ans, les techniques couramment utilisé était une texture fonte contenant tous les caractères pré-rasterisés que l’on mappé sur des polygones, mais a cette époque , les pipelines de rendu n’étés pas programmable et les consoles se branchés sur des télés cathodique a écran bondé avec une résolution de 480p donc difficile d’être exigeant sur le rendu des fonts dans ces conditions.

    Une technique plus récente est l’utilisation d’une texture SDF (Signed Distance Field) initié par Valve

    Il y a aussi le projet GLyphy :


    Cet exemple est également super impressionnant il semble toutefois impossible de compiler toutes les caractères de l’alphabet avec cette technique car chaque Glyph devient une fonction. L’auteur a de plus optimisé la fonte en mutualisant 2 styles de courbe pour chaque lettre

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Par défaut
    Merci pour ces réponses bien complètes.

    Je vais reformuler ma question. Si je veux faire du contribution culling comment je fait pour savoir quelle sera la taille de l'objet à l'écran au prochain rendu ?

  5. #5
    Membre Expert Avatar de Astraya
    Homme Profil pro
    Consommateur de café
    Inscrit en
    Mai 2007
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Consommateur de café
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 050
    Par défaut
    Je vais reformuler ma question. Si je veux faire du contribution culling comment je fait pour savoir quelle sera la taille de l'objet à l'écran au prochain rendu ?
    Soit tu comptes le nombre de pixel dans le pixel shader, soit tu fait une projection 2D d'une boite englobant ton panneaux. Mais ce genre d'optimisation n'est efficace que dans des cas précis...

Discussions similaires

  1. [3D'S MAX] importer des fichiers dans OpenGL
    Par black is beautiful dans le forum OpenGL
    Réponses: 3
    Dernier message: 30/04/2005, 13h45
  2. [DEBUTANTE][ECLIPSE] Pb de compréhension des package SERVLET
    Par fchafia dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 18/02/2005, 16h55
  3. Incohérence des textures sous OpenGL
    Par Nicuvëo / Calëtunda dans le forum OpenGL
    Réponses: 3
    Dernier message: 22/12/2004, 10h27
  4. [FLASH MX] Prob de compréhension des bouttons
    Par WriteLN dans le forum Flash
    Réponses: 13
    Dernier message: 16/10/2003, 17h01
  5. Problème de compréhension des ensembles
    Par Cornell dans le forum Langage
    Réponses: 6
    Dernier message: 07/02/2003, 22h07

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