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

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

    Informations forums :
    Inscription : septembre 2003
    Messages : 5 116
    Points : 11 376
    Points
    11 376

    Par défaut

    Bonjour à tous!

    Voici un article sur la programmation des extensions OpenGL, en VB6/VBA

    Cet article décrit l'utilisation de quelques extensions fréquemment utilisées :
    - Les VBO (vertex buffer objects) pour améliorer les performances
    - Les textures 3D pour réaliser des textures continue sur un volume
    - Les shaders, largement utilisés pour programmer des effets graphiques

    Les exemples développés sont assez simples, mais ouvrent la porte à de nombreuses possibilités en 3D sous Visual Basic.

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


  2. #2
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    janvier 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : janvier 2018
    Messages : 2
    Points : 3
    Points
    3

    Par défaut VB6 & Shaders

    Bonjour,

    Je recherche a utiliser les sharders en VB6 avec des textures. J'ai fais quelques tests mais impossible de récupérer une texture dans le fragment shaders.
    Je n'arrive pas "à faire passer" la texture pour la retrouver dans la variable "uniform sample2D texture" afin d'utiliser ses pixels.

    Basé sur le tuto: http://arkham46.developpez.com/artic...e=page_4#LVIII, j'ai créé un programme Fragment, compilé et lié.
    Il fonctionne puisque j'arrive à afficher des pixels unitaire avec.

    J'ai essayé de passer la texture stockée dans "ldata" (du tuto) mais je n'y arrive pas. J'ai utilisé ces quelques lignes pour injecter la texture:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Dim TextureHandle As Long
     TextureHandle = glGetUniformLocation(gProgram, "texture")
     glEnableVertexAttribArray TextureHandle
     glVertexAttribPointer TextureHandle, 3, GL_RGB, False, 0, ByteToFloat(ldata)
    Avec ByteToFloat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Public Function ByteToFloat(InArray() As Byte) As Single
     
     'Convert byte array to IEEE float
     
     Dim PtrSource1 As Long
     Dim PtrSource2 As Long
     Dim PtrSource3 As Long
     Dim PtrSource4 As Long
     Dim PtrDest As Long
     Dim DestVal As Single
     
     'Memory location of float value
     PtrDest = VarPtr(DestVal)
     
     PtrSource1 = VarPtr(InArray(0))
     PtrSource2 = VarPtr(InArray(1))
     PtrSource3 = VarPtr(InArray(2))
     PtrSource4 = VarPtr(InArray(3))
     
     CopyMemory ByVal PtrDest, ByVal PtrSource1, 1
     CopyMemory ByVal PtrDest + 1, ByVal PtrSource2, 1
     CopyMemory ByVal PtrDest + 2, ByVal PtrSource3, 1
     CopyMemory ByVal PtrDest + 3, ByVal PtrSource4, 1
     
     ByteToFloat = CDbl(DestVal)
     
     End Function
    Auriez-vous une idée ? merci d'avance pour votre aide.

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    janvier 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : janvier 2018
    Messages : 2
    Points : 3
    Points
    3

    Par défaut

    J'ai trouvé mon erreur: il faut passer la texture comme une texture "normal" (cf tuto précédant) et la sélectionner également normalement afin qu'elle puisse être utilisée dans le sharders.
    Il ne faut donc pas l'importer à travers un pointer...

Discussions similaires

  1. Article sur les extensions OpenGL
    Par LittleWhite dans le forum OpenGL
    Réponses: 6
    Dernier message: 12/10/2010, 10h52
  2. Utilisez les extensions OpenGL en VB6 & VBA
    Par Arkham46 dans le forum Microsoft Office
    Réponses: 0
    Dernier message: 08/12/2009, 16h53
  3. Les extensions OpenGL et Quake3
    Par sebh dans le forum Moteurs 3D
    Réponses: 17
    Dernier message: 25/08/2006, 09h55

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