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. #41
    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
    Vulkan ? C'est plus rapide que OpenGL ? Si c'est le cas je crois que ça m'intéresse. Comment ça marche ? Il y a aussi des VBOs ? Des instanciations ? On peut aussi gérer les shaders ? Les effets d'ombres, reflets et éclairage ?

  2. #42
    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
    Vulkan ... c'est "pire" (à prendre en main) .
    Voici un premier guide pour vous : https://vulkan.developpez.com/tutori...plet-debutant/

    Vulkan, c'est OpenGL, mais en plus bas niveau. On peut tout faire comme ce que l'on fait en OpenGL, mais avec plus de "précision" (et encore plus de possibilités de se tirer une balle dans le pied). Mais, vous avez déjà une base, donc la migration devrait pouvoir le faire. Eh oui, il y a toujours les shaders et vous pourrez faire tous les rendus que vous souhaiterez (car ce n'est pas l'API qui détermine si on peut faire des ombres et autres).
    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. #43
    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 379
    Points
    20 379
    Par défaut
    Citation Envoyé par KevinduC Voir le message
    Comment ça marche ? Il y a aussi des VBOs ? Des instanciations ? On peut aussi gérer les shaders ? Les effets d'ombres, reflets et éclairage ?
    je n'ai pas regardé en détail cette API mais,sauf erreur de ma part, je pense que le collectif Khronos s'est inspiré de Microsoft avec son Direct3d 10 et versions supérieures où tout le code concernant le rendu est délégué à du code HLSL ( High Sha
    Donc oui si vous voulez migrer sous Vulkan il faudra faire principalement du code GPU et gérer les shaders.
    En programmant les Shaders on programme directement le GPU.
    L'avantage de Vulkan, je n'y suis pas allé voir mais je pense que c'est comme Direct3d 11 ou 12 c'est possible de faire du multithreading avec du code GPU sur la carte graphique.
    Par contre ça demande plus de temps d'apprentissage c'est un bon moyen pour s'occuper lors des longues soirées d'hiver.

  4. #44
    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
    Ouch ! Pour transposer mes projets et libs en Vulkan ça va être long !

  5. #45
    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
    je n'ai pas regardé en détail cette API mais,sauf erreur de ma part, je pense que le collectif Khronos s'est inspiré de Microsoft avec son Direct3d 10 et versions supérieures où tout le code concernant le rendu est délégué à du code HLSL
    Donc oui si vous voulez migrer sous Vulkan il faudra faire principalement du code GPU et gérer les shaders.
    En programmant les Shaders on programme directement le GPU.
    L'avantage de Vulkan, je n'y suis pas allé voir mais je pense que c'est comme Direct3d 11 ou 12 c'est possible de faire du multithreading avec du code GPU sur la carte graphique.
    Par contre ça demande plus de temps d'apprentissage c'est un bon moyen pour s'occuper lors des longues soirées d'hiver.
    Bah je ne pense pas du tout qu'il s'inspire de DX10 , techniquement l'équivalent de Vulkan , c'est DX12.

    Ensuite , c'est une lib de AMD qui a inspiré Kronos , mais c'est plus une API qui se veut proche du hardware , ce qui n'est pas le cas de DX10.

  6. #46
    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 379
    Points
    20 379
    Par défaut
    Citation Envoyé par KevinduC Voir le message
    Ouch ! Pour transposer mes projets et libs en Vulkan ça va être long !
    c'est malheureusement le prix à payer si vous voulez développer un jeu qui ressemble à Call of Duty ou Far Cry
    cependant une fois la technologie un peu maitrisée c'est un bon investissement je pense.

  7. #47
    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
    J'ai déjà un problème, j'ai bien ajouté "vulkan-1.lib" à mon linker mais Code::Blocks ne trouve pas vkEnumerateInstanceExtensionProperties()

  8. #48
    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 laisse tomber Vulkan, c'est incompatible avec Mingw et je viens de passer les 3 dernières heures à tenter de compiler un code tout simple avec Visual Studio mais c'est plein d'erreurs de liage incompréhensibles

  9. #49
    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
    Ne pas réussir du premier coup, avoir des erreurs, en informatique, ... c'est la routine. Ce qui fait un bon "informaticien" ou un bon programmeur, c'est de savoir chercher, d'apprendre en continu et de la persévérance.
    Bref, ici, c'est un forum d'entraide. Si vous voulez de l'aide, expliquez nous votre problème. Je pars du principe que vous avez suivi le tutoriel que j'ai conseillé plus haut et qui permet une installation avec Visual Studio, mais peut être il n'est pas aussi bon que je le pensais.
    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. #50
    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
    J'ai réussi à faire fonctionner Vulkan finalement mais sous Code::Blocks. Perso je garde une image très moyenne de Visual Studio, je n'ai jamais autant galéré pour faire tourner une lib en 10 ans de programmation ! Je suis le tuto mais avec Code::Blocks au lieu de Visual Studio, c'est vraiment particulier, rien à voir avec OpenGL. Rien que pour créer une instance Vulkan c'est délicat

  11. #51
    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 permets de revenir vers vous : C'est un peu hors sujet car ma question est plutôt d'ordre mathématique, je me suis aperçu que c'était principalement un calcul de physique qui ralentissait mon programme : Dans le jeu on est censé contrôler un véhicule et pour que ce dernier suive la route il faut que le programme calcule en permanence si la voiture se trouve ou non sur tel ou tel triangle composant chaque route. Pour cela j'utilise un calcul d'angles qui passe par la fonction acos() et c'est apparemment cette dernière qui est coûteuse car dès que je la supprime le programme augmente considérablement. J'ai essayé de remplacer cette fonction par l'utilisation d'une map qui contient les valeurs des angles pour des cosinus allant de -1 à 1 mais il s'est avéré que ce n'était pas plus rapide. Est-ce que vous auriez des astuces pour déterminer si un point est dans un triangles sans passer par des cos, sin, acos, racines ... ?

  12. #52
    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
    Ah ben acos est effectivement super long.

    Tu n'as pas besoin de faire acos pour faire des collisions point/triangle , il suffit juste de savoir si ton point est entre deux coté.
    en image ça donne ça :


    Sinon 5seconde sur google et j'ai ça :
    http://www.jeffreythompson.org/colli.../tri-point.php

    Bref je te déconseille de refaire un moteur physique , si tu n'as pas les bagages nécessaire en terme d’optimisation , et il me semble que c'est pas la première fois que tu as des soucis de ce coté là....

    Apres bien sur , si tu fait ton test de collision avec 100 000 triangle , ça m’étonne pas que c'est long ,et ça peut importe l'algo x)

  13. #53
    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
    Citation Envoyé par Kannagi Voir le message
    Apres bien sur , si tu fait ton test de collision avec 100 000 triangle , ça m’étonne pas que c'est long ,et ça peut importe l'algo x)
    En effet, il serait judicieux de faire un pré filtrage avec une boîte de collision (ou plus simplement une sphère ).

    Après, je n'ai pas compris. La raison de ces tests, c'est pour que la voiture ne traverse pas le sol? ou pour qu'elle ne sorte pas de la route?
    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. #54
    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 le lien. C'est une forme de gravité, pour que la voiture monte et descende en même temps que la route.

    En effet, il serait judicieux de faire un pré filtrage avec une boîte de collision (ou plus simplement une sphère )
    Ça permettrait de faire un premier test de manière optimisée si je comprends bien ? Parce que pour le moment il n'y a que deux routes mais lorsqu'il y en aura 50 ce sera pas la même chose ...

    Edit : Est-ce que vous pourriez me dire svp comment on peut en arriver à réaliser cela :



    Des arbres, des ombres, un soleil réaliste et tout cela est fluide

  15. #55
    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
    Malheureusement l'algorithme avec la forum de Héron ne fonctionne qu'une fois sur deux, je suis entrain de vérifier s'il n'y a pas une erreur dans la formule mais je ne la trouve nulle part, je ne trouve que des formules différentes qui passent par les longueurs des côtés, et calculer ces longueurs reviendraient à passer par les fonctions sqrt() et pow() et je préfère éviter

  16. #56
    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
    Des arbres, des ombres, un soleil réaliste et tout cela est fluide
    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

    Malheureusement l'algorithme avec la forum de Héron ne fonctionne qu'une fois sur deux
    Je t'ai donné deux algo , sur la méthode de heron ne te va pas, tu peux utiliser la première qui est facile à implémenter , mais un peu plus gourmande en calcul ,vu que ça demande de faire quelque div et if.

  17. #57
    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 379
    Points
    20 379
    Par défaut
    Citation Envoyé par KevinduC Voir le message
    Edit : Est-ce que vous pourriez me dire svp comment on peut en arriver à réaliser cela :
    comme je l'ai écris dans un message précédent il faut trouver une technique de hiérarchie spatiale peut-être avec des octrees.
    J'aurais bien aimé que mr LittleWhite nous en dise plus là-dessus...

  18. #58
    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
    Qu'est-ce que les octrees exactement ? J'ai beau chercher je ne trouve aucune explication précise

  19. #59
    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
    comme je l'ai écris dans un message précédent il faut trouver une technique de hiérarchie spatiale peut-être avec des octrees.
    Alors le octrees ,c'est pas une technique de rendu ,c'est juste une partition de l'espace pour tester qu'une partie des collisions.

    Et donc oui pour les collisions, il faut utiliser des octrees mais pas que , il faut simplifier les box de collisions et utiliser des algo rapide (donc les acos/cos et compagnie faut oublier ).

  20. #60
    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 379
    Points
    20 379
    Par défaut
    Citation Envoyé par Kannagi Voir le message
    Alors le octrees ,c'est pas une technique de rendu ,c'est juste une partition de l'espace pour tester qu'une partie des collisions.
    et alors comment vous-faites pour repasser par la même boucle pourcompte=0 à nombre_objets_a_afficher pour afficher les objets ?
    Citation Envoyé par KevinduC Voir le message
    Qu'est-ce que les octrees exactement ? J'ai beau chercher je ne trouve aucune explication précise
    je conseille de télécharger le code source de Irrlicht 3d et de s'en inspirer.

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