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 :

Geometry shader, impossible de dessiner un rectangle


Sujet :

OpenGL

  1. #61
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    et alors comment vous-faites pour repasser par la même boucle pourcompte=0 à nombre_objets_a_afficher pour afficher les objets ?
    C'est au mieux une technique d'optimisation (pour pas tout tout tester en Viewing frustum culling) , mais ça répond pas à la question : de comment on faire un rendu photo-réaliste.

  2. #62
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2013
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 309
    Points : 105
    Points
    105
    Par défaut
    Citation Envoyé par Kannagi Voir le message
    Oui enfin refaire le moteur de rendu de UE4 , tu imagine bien que c'est tout sauf simple , et que tu trouvera pas forcément la réponse ici
    Pas jusque là mais quelque chose qui s'approche, pour le moment soit j'utilise des véritables arbres en 3D et si j'en mets plus de 10 le programme devient une tortue, soit j'utilise des surfaces croisées mais bof quoi ...

  3. #63
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Citation Envoyé par KevinduC Voir le message
    Pas jusque là mais quelque chose qui s'approche, pour le moment soit j'utilise des véritables arbres en 3D et si j'en mets plus de 10 le programme devient une tortue, soit j'utilise des surfaces croisées mais bof quoi ...
    Avant de vouloir faire un rendu-photoréaliste il faut d'abord régler le problème de la boucle qui permet d'afficher des objets ça fait 2 ou 3 jours que j'ai abordé le problème.
    Un arbre en billboard c'est quoi deux polygones qui forment uin triangle donc ça coûte quasiment rien au GPU surtout s'il y a 10 arbres.
    C'est pas un problème de matrices plutôt ?

    Citation Envoyé par Kannagi Voir le message
    C'est au mieux une technique d'optimisation (pour pas tout tout tester en Viewing frustum culling) , mais ça répond pas à la question : de comment on faire un rendu photo-réaliste.
    On est d'accord que si je veux afficher plusieurs objets dans une boucle soit le GPU soit le CPU vont travailler forcément ?

    Donc si on prend une boucle qui parcourt ne serait-ce que 1000 objets même si on utilise la technique du View Frustum Culling bref calculer si l'objet est contenu dans une zone en 3d ça fait tout de même une boucle.

  4. #64
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    eehh vous êtes certain de maitriser la programmation des jeux vidéos ?
    Non je dis des trucs au pif


    Citation Envoyé par Mat.M Voir le message
    Le rendu photo-réaliste c'est une chose et les techiques d'optimisation c'est une autre.
    KevinduC nous parle de problèmes d'optimisation et de fluidité d'affichage.
    On est d'accord que si je veux afficher plusieurs objets dans une boucle soit le GPU soit le CPU vont travailler forcément ?
    Pourquoi je parle pas vraiment d'octrees pour son rendu , parce que je doute qu'il a un open world a afficher même une grosse map , moi je répond pour son rendu , et que son rendu , même si tu dis "octree" , ben ça permettra pas faire des ombres , des effets de lumiere ,du PBR et j'y passe.

    et pour répondre à :
    Pas jusque là mais quelque chose qui s'approche
    Je pense que ça reste quand même un niveau technique très élevé,c'est très compliqué , y'a tres peu de boite qui est capable de faire un rendu 3D proche de UE4.
    (Et du coup si tu veux des collisions et un rendu proche de UE4 , ben je te conseille d'utiliser UE4 directement )

  5. #65
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Citation Envoyé par Kannagi Voir le message
    Non je dis des trucs au pif
    il faut que KevinduC nous donne plus de code sinon on peut pas résoudre le problème

  6. #66
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2013
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 309
    Points : 105
    Points
    105
    Par défaut
    Je me suis renseigné sur les billboards mais une question me tracasse : Apparemment il s'agit de modéliser une surface de sorte à ce qu'elle soit toujours face à la caméra, mais dans ce cas si je regarde l'arbre de dessus il aura le même aspect que si je le regardais de côté, à moins de changer de texture mais dans ce cas il faut prévoir une texture pour la vue de face, de derrière, de droite, de gauche, de haut, sans compter les intermédiaires ... Est-ce que je me trompe ?

  7. #67
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Non , le billboards , il faut juste faire une surface (un rectangle par exemple) qui est toujours tourné vers la caméra.

  8. #68
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2013
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 309
    Points : 105
    Points
    105
    Par défaut
    Alors comment on gère la texture dans les billboards pour donner l'impression qu'on regarde l'arbre de face, de dessus ...

  9. #69
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    ça c'est pas possible , enfin si , mais je vois pas comment ça peut être correct visuellement , je suis étonné qu'on t'ai dit de faire ça pour un arbre complet , à la limite quelque feuille (faire un peu des deux 3D et billboars )

  10. #70
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2013
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 309
    Points : 105
    Points
    105
    Par défaut
    Ben alors je vois pas de solution face à ce problème ...

  11. #71
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Citation Envoyé par KevinduC Voir le message
    Alors comment on gère la texture dans les billboards pour donner l'impression qu'on regarde l'arbre de face, de dessus ...
    eeehhh on veut bien vous aider mais d'une part il faudrait comprendre les techniques de base et bien les appliquer sinon ce fil de discussion commence à tourner en rond,j'écris juste ça en passant .
    Le plus important c'est de procéder méthodiquement et pas-à-pas.

    Avant de faire du rendu photo-réaliste si vous voulez afficher des billboards il faut appliquer la technique dont parle Kannagi c.a.d. calculer l'angle entre la caméra et l'objet pour qu'il soit orienté face à la caméra.

  12. #72
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2013
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 309
    Points : 105
    Points
    105
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    eeehhh on veut bien vous aider mais d'une part il faudrait comprendre les techniques de base et bien les appliquer sinon ce fil de discussion commence à tourner en rond,j'écris juste ça en passant .
    Le plus important c'est de procéder méthodiquement et pas-à-pas.

    Avant de faire du rendu photo-réaliste si vous voulez afficher des billboards il faut appliquer la technique dont parle Kannagi c.a.d. calculer l'angle entre la caméra et l'objet pour qu'il soit orienté face à la caméra.
    Oui mais ça ne servirait à rien car l'aspect de l'arbre serait le même quelque soit le point de vue

  13. #73
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    si l'aspect de l'arbre change c'est que vous avez un problème de dessiner un rectangle alors donc on en revient à la question du début on n'est pas plus avancé j'ai l'impression

  14. #74
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2013
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 309
    Points : 105
    Points
    105
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    si l'aspect de l'arbre change c'est que vous avez un problème de dessiner un rectangle alors donc on en revient à la question du début on n'est pas plus avancé j'ai l'impression
    Je crois que je me fais mal comprendre : Quand on regarde un arbre de côté ou de haut il n'a pas le même aspect donc comment reproduire cela avec une image identique toujours face à la caméra ?

  15. #75
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Citation Envoyé par KevinduC Voir le message
    Je crois que je me fais mal comprendre : Quand on regarde un arbre de côté ou de haut il n'a pas le même aspect donc comment reproduire cela avec une image identique toujours face à la caméra ?
    Avec une image identique , impossible.
    Et puis c'est pas le but du billboars de faire ça , de représenter de la 3D (justement un billboars c'est de la 2D ) , si tu veux représenter un arbre en 3D , ben tu le fait en 3D

  16. #76
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2013
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 309
    Points : 105
    Points
    105
    Par défaut
    Alors pourquoi vous me parlez de billboards ? Ça sert à quoi ces billboards du coup ?

  17. #77
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Laisse tomber les billboards. Affiche les arbres normalement, avec leur modèle 3d. Prend juste pas des arbres qui ont 10 millions de polygones et ce sera bon. https://www.turbosquid.com/3d-model/free/low-poly/trees
    Si tu as une chute de performances en affichant 10 arbres, le problème n'est certainement pas dans OpenGL.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  18. #78
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2013
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 309
    Points : 105
    Points
    105
    Par défaut
    Citation Envoyé par Bousk Voir le message
    Laisse tomber les billboards. Affiche les arbres normalement, avec leur modèle 3d. Prend juste pas des arbres qui ont 10 millions de polygones et ce sera bon. https://www.turbosquid.com/3d-model/free/low-poly/trees
    Si tu as une chute de performances en affichant 10 arbres, le problème n'est certainement pas dans OpenGL.
    Merci pour le lien. J'ai pensé à ma carte graphique et j'ai fait des tests avec Heaven Benchmark et résultat les animations sont fluides.
    Après je me rends compte que j'ai plus de fluidité lorsque je désactive l'anti-aliasing

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    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 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    J'ai du retard dans la discussion et tant pis pour les octree Mr Mat.M .

    Pour l'histoire des billboards, c'est que la technique n'est pas celle qui vous convient, si vous pouvez passer la caméra au dessus d'eux. Il faut comprendre que chaque technique répond à une, ou au maximum deux problématiques mais que comme c'est de la triche, il y aura évidemment des limites qui se régleront en : on ne laisse pas la possibilité à l'utilisateur.
    Autrement dit, si vous avez des billboards, ne laissez pas passer la caméra par dessus.

    Du coup, je rejoins Bousk : dessinez des arbres en modèles 3D. En plus, avec la technique d'instanciation, vous pouvez en faire encore plus et avec quelques variations de rotation/taille et modèle, ça ne se verra même pas. C'est ce qui se fait dans les jeux vidéos et les experts (et les observateurs) peuvent voir que l'on répète en effet, plein de fois le même modèle.

    Maintenant, j'aimerai revenir sur votre méthodologie. Pour faire le photo réaliste... il faut mettre ensemble pas mal de technique. Je ne vais pas toutes les cités (car je vais en oublier), mais en voici quelques unes :
    • shadow mapping (pour les ombres) et par la suite, shadow mapping répaties sur plusieurs surfaces (j'ai oublié le nom de la technique, pour faire le shadow mapping du soleil) ;
    • lens flare
    • si effet de jour et de nuit, un shader de teintage du rendu ;
    • instanciation (pour avoir plein de modèle dans la scène) ;
    • ... maintenant je vais voir la vidéo
    • god rays ;
    • bloom (c'est un shader) ;


    Et tout ça, ça repose notamment sur :
    • les shaders ;
    • les FBO ;
    • l'instanciation ;
    • le frustrum culling ;
    • les billboards ;
    • du level of detail ;
    • les particules ;
    • skybox
    • multi texturing.


    On voit clairement dans la vidéo la réutilisation du même modèle pour le palmier et le caillou.
    Aussi, ils n'ont pas de physique à gérer .

    Maintenant, il faut une bonne organisation. Je ne sais pas si c'est la meilleure que je vais proposer, mais vous pouvez par exemple essayer chacune des techniques dans un projet bac à sable, pour la prendre en main et comprendre comment elle fonctionne et par la suite, vous pouvez l'intégrer à votre moteur.
    Mais pour réussir un moteur... il faut avoir raté un moteur . C'est comme pour réussir un jeu vidéo, il faut en avoir déjà raté un ou plusieurs . De chaque essai on apprend et à la prochaine itération, on construit mieux, on architecture mieux, afin que tous les éléments s'assemblent correctement.
    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. #80
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2013
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 309
    Points : 105
    Points
    105
    Par défaut
    Merci pour cette explication. J'en profite pour vous dire qu'il y a des moments où je me demande si OpenGL ne se fout pas de moi ... Exemple : J'ai modélisé des routes dans mon projet grâce à Blender, j'en ai deux et cela fait 467200 triangles et le programme est fluide, je viens d'en ajouter une et cela fait 473200 triangles et bien résultat : Le programme fonctionne en une image toutes les trois secondes ... Je la retire et copie une route déjà présente, cela fait 669200 triangles soit bien plus, et là le programme redevient fluide. Je garde que deux routes dont celle que je viens d'ajouter et c'est fluide également. Impossible de tirer des conclusions de cela, le problème ne semble pas venir du nombre de sommets, ni du nombre de textures qui ne dépasse pas 32, ni des textures elles-mêmes ...

    C'est quoi ce bordel ...

Discussions similaires

  1. [C#][Direct3D] Comment dessiner un rectangle
    Par FraktaL dans le forum DirectX
    Réponses: 3
    Dernier message: 26/10/2005, 00h29
  2. Réponses: 14
    Dernier message: 13/10/2005, 15h00
  3. Dessiner un rectangle sur une forme
    Par Neo41 dans le forum MFC
    Réponses: 6
    Dernier message: 13/08/2005, 01h08
  4. [VB.NET] Dessiner plusieurs rectangles.
    Par Emcy dans le forum Windows Forms
    Réponses: 9
    Dernier message: 23/03/2005, 16h57
  5. Dessiner un rectangle avec bords et texte ...
    Par Djedjeridoo dans le forum Composants VCL
    Réponses: 3
    Dernier message: 16/06/2003, 17h17

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