PDA

View Full Version : Problema texture con visual studio 2005!...mi sono proprio stufato.


doctorAle85
31-12-2007, 15:20
Scusate, ho un grosso problema con vs2005!
Sto facendo delle prove... in particolare, ho aperto un progetto .dsw originariamente creato con visual c++ 6.0, e va tutto bene...perchè me lo converte in visual studio solution...e quando vado a compilare e ad eseguire nn da alcun problema!...questo progetto originariamente creato con vc++6 carica 2 texture, una per lo sfondo e una per una sfera!

Il problema sorge in in questo caso... ho provato a creare un nuovo progetto da vs2005, cercando di farlo identico a quello di vc++ 6...identico nel senso che ho ricreato le stesse classi dell'altro progetto e ho copiato e incollato il codice di ogni classe! Dato che il progetto originario utilizza delle texture con estensione .tga le ho copiate nella cartella del mio nuovo progetto, precisamente nella cartella "data" che poi viene richiamata nel codice

if (!X.LoadTextureTGA("data/map.tga"))
{
printf("failed to load X texture!\n");
exit(0);
}
sky.LoadTGA("data/skymap.tga", GL_LINEAR, GL_LINEAR);


Se vado a compilare il progetto nn da nessun errore...ma quando lo vado ad eseguire mi dice che non esiste il file map.tga!

precisamente in esecuzione mi dice "data/map.tga does not exists. failed to open X texture!"

NB. La texture map è quella applicata sulla sfera X. Per la sfera X è stato creato un file .h (sfere.h) per creare altre sfere in seguito (non ho usato direttamente dei comandi per generare le sfere perchè sul progetto originario era fatto così)! ...All'inizio ovviamente c'è un include!

Per quanto riguarda sky all'inizio viene dichiarato un tipo Texture sky, e viene utilizzata un'intestazione texture.h!...La texture skymap.tga è quella che viene caricata per lo sfondo!

Questa texture però non da problemi!

Il metodo in cui viene disegnato lo sfondo è questo (poi viene richiamato in un metodo draw):
void DrawBackground()
{
// -- inizio modalità ortografica
glMatrixMode(GL_PROJECTION); //seleziona projection matrix
glPushMatrix(); //memorizza projection matrix
glLoadIdentity(); //resetta projection matrix
glOrtho(0, width, 0, height, -1, 1); //imposta coordinate orto
glMatrixMode(GL_MODELVIEW); //seleziona modelview matrix

glPushMatrix();
glLoadIdentity();

glDepthMask(GL_FALSE); // disabilita scrittura z-buffer

glColor3f(1.f, 1.f, 1.f);
glBindTexture(GL_TEXTURE_2D, skymap.ID);
glBegin(GL_QUADS); // disegna lo sfondo
glTexCoord2f(0, 0); glVertex3f(0, 0, 0);
glTexCoord2f(1, 0); glVertex3f(width, 0 , 0); // ad ogni vertice corrisponde un texel
glTexCoord2f(1, 1); glVertex3f(width, height, 0);
glTexCoord2f(0, 1); glVertex3f(0, height, 0);
glEnd();
glBindTexture(GL_TEXTURE_2D, 0);

glPopMatrix(); // ripristina la projection matrix vecchia
glMatrixMode(GL_PROJECTION);
glPopMatrix();
glDepthMask(GL_TRUE); // abilita scrittura z-buffer
// -- fine modalità ortogonale
}

Com'è possibile che con il progetto originario non mi da l'errore e questo fatto direttamente da vs2005 si?

Altra cosa curiosa:
Se provo a mettere tra commento il codice in cui viene caricata la texture map.tga quando vado ad eseguire il progetto compare la sfera, ma è grigia, così come lo sfondo!!!...quindi non si vede neanche il cielo! com'è possibile?...nel caso di prima in cui mi dava errore invece non si vedeva niente perchè il programma si bloccava con l'errore!

Zimmemme
31-12-2007, 15:42
Secondo te tutto questo è da Computer Grafica o da Programmazione?
Io propenderei per la seconda, in tal caso prova a postare nell'apposita sezione.

doctorAle85
31-12-2007, 15:58
Secondo te tutto questo è da Computer Grafica o da Programmazione?
Io propenderei per la seconda, in tal caso prova a postare nell'apposita sezione.

Dipende dal punto di vista!
Può riguardare tutti e due gli aspetti...
ora lo metto in programmazione.

Chiedo a qualche mod di chiudere il topic che l'ho messo in programmazione!
grazie