Salve a tutti,
Inizio col dire che non sono un esperto dell'opengl XD.
Più o meno l'anno scorso ho iniziato un progetto per l'università, praticamente il prof chiedeva di realizzare un gioco utilizzando il C o C++ con le sole librerie SDL o GLUT,ricordando che il progetto non è sul gioco ma sulla grafica.
Io ho deciso di realizzare un gioco automobilistico (con una fisica grezza).
Librerie da installare da apt :
freeglut3-dev freeglut3 libsdl1.2-dev libsdl-image1.2 libsdl-image1.2-dev fglrx-dev
Arrivo al problema :
-più o meno un anno fa avevo quasi completato il progetto su un Ubuntu 9.xx(non ricordo di preciso)
- qualche giorno fa mi sono installata una ubuntu 11.10 (tutto tranquillo ma per compilare ho dovuto aggiungere fglrx-dev)
quindi sono riuscito a sistemare tutto e a compilare:
aggiungendo al compilatore gcc: -lGLU -lglut -lSDL_image -lSDL -lm
fin qui tutto ok.
Avvio il gioco e noto subito una differenza che con il compilato vecchio non c'era, il vetro dell'auto non rende il riflesso e la trasparenza in modo analogo.
Allego la differenza del render:
Render col vecchio compilato
http://imageshack.us/photo/my-images...ndcorretto.png
Render del nuovo compilato
http://imageshack.us/photo/my-images...lenderrore.png
Codice che uso per il blend assieme environment mapping per la realizzazione del vetro.
da notare che l'environment mapping sulla carena dell'auto va tranquillamente senza problemi,
il problema avviene quando è assieme al blend.
codice:
//trasparenza
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE);
//environment mapping
glBindTexture(GL_TEXTURE_2D,blocco->texture);
glEnable(GL_TEXTURE_2D);
glEnable(GL_TEXTURE_GEN_S); // abilito la generazione automatica delle coord texture S e T
glEnable(GL_TEXTURE_GEN_T);
glTexGeni(GL_S, GL_TEXTURE_GEN_MODE , GL_SPHERE_MAP);
glTexGeni(GL_T, GL_TEXTURE_GEN_MODE , GL_SPHERE_MAP);
Vedete la differenza?? che può essere o come posso risolvere? grazie in anticipo XD