+ Répondre à la discussion Actualité déjà publiée
  1. #1
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    septembre 2003
    Messages
    4 921
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : septembre 2003
    Messages : 4 921
    Points : 10 469
    Points
    10 469

    Par défaut Découvrez la programmation 3D en VBA/VB6 avec OpenGL 1.1

    Bonjour à tous!

    Je vous invite à une découverte de la programmation 3D avec OpenGL 1.1.

    Faîtes vos premiers pas dans la programmation 3D avec votre langage VBA ou VB6 préféré.

    Voici un aperçu de ce que vous pouvez obtenir en suivant ce tutoriel :




    Vous pouvez ajoutez vos commentaires sur cet articles à la suite de ce message.


  2. #2
    Rédacteur

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    octobre 2004
    Messages
    9 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : octobre 2004
    Messages : 9 502
    Points : 32 138
    Points
    32 138

    Par défaut

    Comme on dit souvent :


    Une fonctionnalité tellement inutile ... et donc totalement indispensable

    Beau boulot

    Après ça on va encore dire, qu'Access est limité

  3. #3
    Rédacteur/Modérateur

    Avatar de Philippe JOCHMANS
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2005
    Messages
    19 507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : mai 2005
    Messages : 19 507
    Points : 47 174
    Points
    47 174

    Par défaut

    Bonjour

    Que dire de plus à part

    Philippe
    Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
    Vous pouvez consulter mes articles sur Access et PowerPoint et n'oubliez pas de consulter les FAQs MS Office

  4. #4
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    septembre 2003
    Messages
    4 921
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : septembre 2003
    Messages : 4 921
    Points : 10 469
    Points
    10 469

    Par défaut

    Bonjour à tous,

    Cet article de découverte de la programmation 3D avec OpenGL 1.1 a été mis à jour.
    En plus du langage VBA, il est désormais applicable à Visual Basic 6 (VB6).

    Pensez-vous intégrer OpenGL dans vos applications VB6 ou VBA?
    Cet article vous a-t-il été utile?

    pour vos commentaires.

    A suivre dans le prochain tutoriel : l'utilisation des extensions.
    Vertex Buffer Objects, Texture 3D, Shaders, ...
    A bientôt.

  5. #5
    Membre averti Avatar de toss.net
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juillet 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : juillet 2009
    Messages : 338
    Points : 377
    Points
    377

    Par défaut

    Bonjour,
    Oui super ! J'ai un projet de changement de dessin en opengl (utilisé qu'en 2d) et ce tuto tombe bien... nous avons encore bcp de logiciels sous VB6 et donc ce tuto et pour nous toujours d'actu !
    ________________________________________
    Si ma réponse te satisfait, clique sur la main verte merci
    Microsoft MVP Client Development
    MCPD - Windows Phone Developer

    Mon blog de dév : http://www.peug.net
    Mes logiciels pro : http://www.sodeasoft.com
    Mes applications : http://www.windowsphone.com/.../eblm

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    avril 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : avril 2010
    Messages : 2
    Points : 3
    Points
    3

    Par défaut

    Bonjour,

    Tout d'abord bravo pour ce tuto qui m'a permis de découvrir la 3D opengl sous VB6.
    J'aurais juste une question :
    Sous VB6, quelle méthode utiliser pour faire la même chose dans un contrôle PictureBox d'un formulaire déjà existant ?
    J'ai besoin d'un picturebox opengl que je pourrai contrôler avec des boutons par exemple.
    Merci d'avance.

  7. #7
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    septembre 2003
    Messages
    4 921
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : septembre 2003
    Messages : 4 921
    Points : 10 469
    Points
    10 469

    Par défaut

    Bjr,

    Citation Envoyé par lulu29 Voir le message
    Sous VB6, quelle méthode utiliser pour faire la même chose dans un contrôle PictureBox d'un formulaire déjà existant ?
    J'ai besoin d'un picturebox opengl que je pourrai contrôler avec des boutons par exemple.
    Vous pouvez ajoutez cette fonction InitOpenGLPicture au module clOpengGLFormVB6 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    '---------------------------------------------------------------------------------------
    ' Initialise OpenGL pour la PictureBox pPicture
    '---------------------------------------------------------------------------------------
    Public Function InitOpenGLPicture(pPicture As PictureBox) As Boolean
    ' Handle de la fenêtre
    gHwnd = pPicture.hWnd
    ' Contexte d'affichage gdi32
    gHdc = pPicture.hdc
    ' Initialise opengl
    InitOpenGLPicture = PrivInitOpenGL
    End Function
    Et appelez cette fonction en donnant la pictureBox en paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    oGl.InitOpenGLPicture Me.Picture1
    (à la place de oGl.InitOpenGL Me)

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    avril 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : avril 2010
    Messages : 2
    Points : 3
    Points
    3

    Par défaut gluDisk

    Bonjour,
    Grâce à vos conseils ma petite appli est en bonne voie mais je cale sur "gludisk".
    J'ai créé un cône avec glucylinder et je voudrais fermer sa base par un disque.
    Quand je veux créer une quadrique rien ne s'affiche, voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ' Disque
    glPushMatrix
    Dim lQuad4 As Long
    glColor3VB vbRed
    glTranslated x0 - 200, y0, z0
    glRotated 45, 0, 1, 0
    lQuad4 = gluNewQuadric
    gluDisk lQuad4, 30, 0, 10, 10
    gluDeleteQuadric lQuad4
    glPopMatrix
    Je ne vois pas pourquoi cela ne marche pas ?
    Merci d'avance.

  9. #9
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    septembre 2003
    Messages
    4 921
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : septembre 2003
    Messages : 4 921
    Points : 10 469
    Points
    10 469

    Par défaut

    Citation Envoyé par lulu29 Voir le message
    Bonjour,
    Grâce à vos conseils ma petite appli est en bonne voie mais je cale sur "gludisk".
    J'ai créé un cône avec glucylinder et je voudrais fermer sa base par un disque.
    Quand je veux créer une quadrique rien ne s'affiche, voici le code :
    bjr,

    peut-être un problème d'orientation qui rend la face invisible (si culling activé)?

    Tester avec avant le gluDisk :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gluQuadricOrientation lQuad4, GLU_INSIDE
    (ou GLU_OUTSIDE, je ne sais plus trop dans quel sens ça se passe)

    Sinon pour un problème purement openGL il y a le forum OpenGL sur lequel tu auras sans doute plus de réponses (avec des gens plus expérimentés que moi )

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    mars 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2006
    Messages : 14
    Points : 16
    Points
    16

    Par défaut

    bravo
    on peut donc refaire "2001 Odyssée de l'espace"
    rebravo

  11. #11
    Invité
    Invité(e)

    Par défaut

    Bonjour,

    Félicitation pour ce magnifique article. Il m'a pas mal appris le VBA au travers de l'OPENGL, ainsi que l'utilisation des API.

    Bravo !


    P.S.:
    Personne n'a donné de points sauf en 1ère page Pour un travail aussi énorme !

  12. #12
    Invité
    Invité(e)

    Par défaut

    Bonjour,

    J'ai un petit problème en Excel 64 bit. Est-ce que quelqu'un a réussi à rendre compatible Open GL en 64 bit ?
    Dans le module de classe clOpenGLUserForm, j'ai un problème sur la fonction PrivDisplay à la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    glReadPixels 0, 0, gWidth, gHeight, gFormat, GL_UNSIGNED_BYTE, ByVal lBmBits
    Ca ne passe pas. Fermeture d'Excel.
    A ce stade:
    - gFormat = 32993 (GL_BGRA)
    - gHeight = 242
    - gWidth = 483
    - GL_UNSIGNED_BYTE = 5121
    - lBmBits = 0^
    Testé avec les déclarations:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Declare PtrSafe Sub glReadPixels Lib "opengl32" (ByVal x As Long, ByVal y As Long, ByVal width As Long, ByVal height As Long, ByVal format As Long, ByVal ptype As Long, pixels As Any)
    'ou alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Declare PtrSafe Sub glReadPixels Lib "opengl32" (ByVal x As Long, ByVal y As Long, ByVal width As Long, ByVal height As Long, ByVal format As Long, ByVal ptype As Long, pixels As LongPtr)
    Mais beug. Si quelqu'un a réussi a faire le module de classe en 64 bit, ça serait classe qui montre la déclaration glReadPixels. Si il est censé lire en mémoire, le beug vient peut être (surement même) d'une autre fonction finalement.

    Voilà, a+ et merci par avance.

  13. #13
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    septembre 2003
    Messages
    4 921
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : septembre 2003
    Messages : 4 921
    Points : 10 469
    Points
    10 469

    Par défaut

    Bonjour,

    Citation Envoyé par Nouveau2 Voir le message
    J'ai un petit problème en Excel 64 bit. Est-ce que quelqu'un a réussi à rendre compatible Open GL en 64 bit ?
    Je suis un peu en retard, j'y travaille depuis hier.

  14. #14
    Membre à l'essai
    Homme Profil pro
    Ingénieur civil junior
    Inscrit en
    août 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur civil junior
    Secteur : Transports

    Informations forums :
    Inscription : août 2013
    Messages : 31
    Points : 23
    Points
    23

    Par défaut

    Bonjour Arkham46,

    Je trouve ton tutoriel très intéressant et super bien monté.

    Toutefois, en faisant quelques recherches supplémentaires sur le net, j'ai beaucoup de difficulté à trouver des sources d'information autre que ton tutoriel. Je remarque que peu de gens utilisent VBA pour faire des dessins en 3D.

    Connais-tu d'autres sites web qui traitent le même sujet?
    Aussi, y a-t-il des endroits où je peux trouver les commandes à utiliser pour OpenGL 3.X.X ?

    Merci pour ta réponse et bonne journée!

  15. #15
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    septembre 2003
    Messages
    4 921
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : septembre 2003
    Messages : 4 921
    Points : 10 469
    Points
    10 469

    Par défaut

    Bonjour,

    On ne trouve effectivement pas grand chose pour OpenGL en VBA.
    Il y a bien une librairie vbogl.tlb pour VB6 mais c'est très vieux et je n'ai pas testé pour VBA.

    Pour OpenGL 3 je vais y venir après avoir fait le travail sur la version 64 bits.

    L'article date d'il y 5 ans, il y a un rafraichissement à prévoir.

  16. #16
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    juin 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : juin 2010
    Messages : 1
    Points : 1
    Points
    1

    Par défaut OpenGL et VB6

    J'urilise OpenGL dans une pictureBox. Je veux savoir si c'est possible de dessiner avec des outils VB6 (cercle, ligne) par dessus l'image créé par OpenGL.

    Merci

    Jacquelin Hardy

  17. #17
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    avril 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2011
    Messages : 32
    Points : 30
    Points
    30

    Par défaut Fixer l'emplacement de la fenêtre freeglut ?

    Bonjour,

    Merci beaucoup pour ce tutoriel qui sert toujours!

    Je voudrais intégrer une visu 3D dans un formulaire qui contient des contrôles vb6 (boutons, zones de texte, picturebox, onglets, etc. J'ai essayé d'afficher ma visu 3D dans une picturebox avec le module de classe proposé, mais sans y parvenir (et puis on perd le zoom à la molette).

    Pour ne pas parler "en l'air", j'ai fait une version simplifiée du code que vous pouvez télécharger ici : http://www.cjoint.com/c/GEveVvNXTyP

    Je me dis qu'il y a peut-être moyen de placer et dimensionner précisément la fenêtre FreeGlut au-dessus d'une zone de la fenêtre VB6 pour avoir accès à l'une et à l'autre? Voudriez-vous me dire si c'est possible et m'indiquer des pistes? Je cherche depuis plusieurs jours sans succès.

    Bien cordialement,
    Renaud.

Discussions similaires

  1. Découvrez la programmation 3D en VBA/VB6 avec OpenGL 1.1
    Par Arkham46 dans le forum Vos contributions VB6
    Réponses: 4
    Dernier message: 24/11/2009, 07h21
  2. Découvrez la programmation 3D en VBA/VB6 avec OpenGL 1.1
    Par Arkham46 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 24/11/2009, 07h21
  3. Est-il possible de créer un programme VB6 avec VS 2008 ?
    Par beegees dans le forum EDI/Outils
    Réponses: 2
    Dernier message: 20/06/2008, 19h41
  4. Réponses: 2
    Dernier message: 11/12/2007, 08h38
  5. [VBA] Problème avec composant VB6
    Par Diablo_22 dans le forum Général VBA
    Réponses: 8
    Dernier message: 16/03/2006, 20h41

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