OpenGl glTexImage2D de données

Je suis en train de lire des nombres décimaux à partir d'un CSV file, qui contient un précalculées de la texture, de la stocker dans un 1 dimensions tableau, et ensuite mettre cette lire les données en 2 dimensions de la texture.
Je dois m'assurer que le code suivant n'est que, parce que j'ai des problèmes d'accès aux données et je ne peux pas comprendre où est l'erreur:

//Allocate memory  
float * image = new float [width * height * 3 ];  
for( int i = 0; i < height; i++)  
    {  
        for( int j = 0; j < width-1; j++)  
            {  
                fscanf( fDataFile, "%f,", &fData );  
                image[ 4 * i * j + 0 ] = fData;  
                image[ 4 * i * j + 1 ] = fData;  
                image[ 4 * i * j + 2 ] = fData;  
            }  
        fscanf( fDataFile, "%f", &fData );  
        image[ 4 * i * width-1 + 0 ] = fData;  
        image[ 4 * i * width-1 + 1 ] = fData;  
        image[ 4 * i * width-1 + 2 ] = fData;  
     }   

Il ne devrait pas être un problème ici, mais ce qui m'inquiète, c'est la suivante:

//create the texture  
glGenTextures(1, &texHandle);  
glBindTexture(GL_TEXTURE_2D, texHandle);   
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_FLOAT, &image[0]); 

Est-il acceptable de donner glTexImage2D le pointeur de ma-tableau unidimensionnel?
la taille du tableau, c'est la largeur*hauteur*3 et la texture du format doit être de la largeur*hauteur avec 3 canaux... de sorte que la taille devrait être d'accord, je suppose?!
Encore mon programme ne fonctionne pas comme prévu et c'est une source potentielle d'erreur.

En fait, la spécification de la texture comme un dimensinal tableau comme vous le faites est une des façons les plus courantes de l'adoption d'une texture en OpenGL. Vous êtes également correct dans la spécification de la largeur et de la hauteur combinée avec le format de pixel (votre déclaration de "3 canaux"). Tout cela semble correct avec ce que vous fournissez ici. Est-ce le cas que la texture ne s'affiche pas sur la géométrie? Avez-vous spécifié un minification du filtre à l'aide de glTexParamter? Si pas, essayez de l'appeler qu'avec GL_NEAREST pour voir si la texture de vos cheveux. Vous pouvez affiner à partir de là.
Hey! Merci pour la rapidité et en encourageant la réponse! Ineed j'en ai trouvé une erreur, lors de la lecture du fichier. avant j'avais un canal alpha, donc j'ai écrit image[ 4 * i * width-1 + 1 ] = fData; au lieu de image[ 3 * i * width-1 + 1 ] = fData; et je suppose que l'erreur est à une autre ligne de code. mais je me sens plus sûr de le trouver maintenant! merci!!!!

OriginalL'auteur molostil | 2013-03-05