|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Bannato
Iscritto dal: Oct 2007
Messaggi: 452
|
Problema texture con visual studio 2005!...mi sono proprio stufato.
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! Ultima modifica di doctorAle85 : 31-12-2007 alle 15:27. |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: May 2005
Messaggi: 5930
|
Secondo te tutto questo è da Computer Grafica o da Programmazione?
Io propenderei per la seconda, in tal caso prova a postare nell'apposita sezione.
__________________
http://cosedialex.blogspot.com/ |
![]() |
![]() |
#3 | |
Bannato
Iscritto dal: Oct 2007
Messaggi: 452
|
Quote:
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 |
|
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:57.