Bonjour,


J'essaie d'implémenté une bete addition de matrice à l'aide d'un GPU en OpenGL. Pour ce faire, je me base sur le tutoriel suivant :

http://www.mathematik.uni-dortmund.d.../tutorial.html


J'arrive sans probleme a "envoyer" des données sous forme de texture RGBA par contre, c'est au moment de la lecture que j'ai plus de probleme, je ne recupère que les quatres composantes de mon premier point (sur les 4 que compose ma matrice).

Ma texture est du type suivant : rect_arb_rgba_32 et je construit mes données résultat à l'aide du shader suivant (celui du tuto modifié )

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
 
    rect_arb_rgba_32.name      = "TEXRECT - float_ARB - RGBA - 32";
    rect_arb_rgba_32.texTarget      = GL_TEXTURE_RECTANGLE_ARB;
    rect_arb_rgba_32.texInternalFormat   = GL_RGBA32F_ARB;
    rect_arb_rgba_32.texFormat      = GL_RGBA;
    rect_arb_rgba_32.shader_source   = \
   "float4 saxpy ("\
   "in float2 coords : TEXCOORD0, "\
   "uniform samplerRECT textureY, "\
   "uniform samplerRECT textureX, "\
   "uniform float alpha )  : COLOR { "\
   "float4 y = texRECT (textureY, coords); "\
   "float4 x = texRECT (textureX, coords); "\
        "float4 result;"
        "result.x = y.x + x.x;"\
        "result.y = y.y + x.y;"\
        "result.z = y.z + x.z;"\

   "return result; }";

J'envoie mes données sur la texture à l'aide de la ligne suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
glTexSubImage2D(textureParameters.texTarget,0,0,0,texSize,texSize,textureParameters.texFormat,GL_FLOAT,data);
et je tente de les récupérer à l'aide de la commande suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
glTexImage(GL_TEXTURE_RECTANGLE, 0, GL_RGBA, GL_FLOAT, data)
ou data est un int tab[]

Je pense que le probleme vient de ma lecture des résultats, par contre je ne vois ce qui coince dans ce que j'ai écrit...

Merci pour votre aide


++Beleys