gilimcce
Messages postés33Date d'inscriptionjeudi 2 septembre 2004StatutMembreDernière intervention27 septembre 2004
-
21 sept. 2004 à 11:34
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 2004
-
21 sept. 2004 à 20:12
Désolé de remettre ce sujet, mais le suicide est proche....
Si quelqu'un y comprend qq chose....
Je suis revenu a quelque chose de basique :
un pointeur simple sur unsigned char pour la variable texture qui contient les pixels de mon image.
Je n'ai pas d'erreur de desallocation, mais la fonction gluBuild2DMipmaps ne mappe pas... pourtant des données lui sont transmises et elles me semblent contigues.
Je vous livre le code. J'espere que qq un aura la synthese qu'il m'a manque.
Merci....
///////////////////// MAIN ////////////////////////
// rearrangement de l'image scannee dans le tableau de texture 3D
// ici nous sommes en niveau de gris, donc on copie le meme octet dans
// chacune des 3 cases RGB
for (i=0;i<t_height;i++)
for (j=0;j<t_width;j++)
{
texture[i*t_width*3+j*3 ] = image_gris[i*t_width+j];
texture[i*t_width*3+j*3+1] = image_gris[i*t_width+j];
texture[i*t_width*3+j*3+2] = image_gris[i*t_width+j];
}
gilimcce
Messages postés33Date d'inscriptionjeudi 2 septembre 2004StatutMembreDernière intervention27 septembre 2004 21 sept. 2004 à 11:56
Tu sais... j'aurais vraiment aimé
mais en fait le problème remonte à loin :
Dans un premier tps, j'enregistrais mon image dans 1 tableau
3D de dimensions finies [720][1440][3]...
mais à terme, les dimensions de mes images peuvent varier (selon la planète que je souhaite modéliser), donc allocation dynamique, et c'est là que rien ne va plus
Après un problème de non contiguité des donnée, j'ai eu un problème de désallocation, puis maintenant... ça. Mon corps reste gris, pas de texture mappée.
gilimcce
Messages postés33Date d'inscriptionjeudi 2 septembre 2004StatutMembreDernière intervention27 septembre 2004 21 sept. 2004 à 14:49
Bonjour djil,
ne pas aboutir n'est nullement envisageable.
Les bases... c'est pas ma formation, mais je m'efforce
de faire qq chose de clair et efficace. Merci d'y contribuer.
*Pt_width = t_width;
*Pt_height =t_height;
Oui... ça paraît (c'est) plus "sensé".
Dans le corps principal, les valeurs étaient toutefois transmises.
Concernant le cast du malloc :
en fait, j'utilise new... mais pour tester mes allocations (et les problèmes qu'elles posaient en les libérant) j'utilise une routine
Lors de mes précédents posts, tu m'indiquait que gluBuild2DMipmaps attendait un pointeur sur des données contigues. Je pensais lui fournir dans ce dernier code...
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 21 sept. 2004 à 16:51
et c'est bien ce que tu fais, donc si il y a un probleme, ca vient d'ailleur
"Oui... ça paraît (c'est) plus "sensé".
Dans le corps principal, les valeurs étaient toutefois transmises.
"
mouai, alors c'est vraiment bizar vu que tu ne les affecte pas, tu fais seulement une affactation entre 2 pointeurs a porté local
de toute facon fais toujours comme ca
*Pt_width = t_width;
*Pt_height =t_height;
la tu modifi bien les variable (dont les pointeur contienne l'adresse)
pour comprendre l'arithmetque des pointeur suffit de connaitre les operateur unaire * et &, le typage des pointeurs (et void*), le type ptrdiff_t pour stocker une difference entre deux pointeurs et la strategie des decalage d'adresse (indexation tableau, champ de struct...)
par contre tu es sur de ton code jpeg ? je connais pas la libjpeg mais je vois pas comment tu passes les données dans le buffer pointé par ligne ?
gilimcce
Messages postés33Date d'inscriptionjeudi 2 septembre 2004StatutMembreDernière intervention27 septembre 2004 21 sept. 2004 à 18:54
Argh...........
j'étais pourtant sur d'avoir testé les valeurs en sortie.....
mais finalement c'est bien ça.
*Pt_width = t_width;
*Pt_height =t_height;
clap, clap.
concernant le remplissage du buffer pointant sur ligne :
chaque ligne scannée lui est rajouté tant qu'on a pas
atteint le nbre total de lignes...
mais j'imagine que tu avais deviné. Je ppourrais pas te donner
plus de détail.
Mais ça marche, enfin.
:big)
vais passer une bonne nuit.
A tout hasard, tu aurais vu mon autre message ds OpenGL
à propos des ombrages automatiques que je souhaitrais modifier ?
On me propose de coder des shader opengl... en assembleur.
Je souhaite utiliser une autre loi de diffusion que celle utilisée (non adaptée aux planètes) mais comment la court-circuiter ?
Merci.