Anuncios Google

Problema con las texturas

Hola, pues resulta que estoy con un modelo 3d, y no consigo que las texturas se vean bien, bueno, en el emulador se ven perfectamente, pero en la consola no ¿?

 

La imagen superior es la de la consola, y la inferior la del emulador, no tengo ni idea de porque pasa eso, las texturas son 128X128, no se, estoy un poco verde aún en esto, así que estaré haciendo algo mal, pero no se el que :(

lo que hago es cargar la textura

    glGenTextures(1, &textura...);
    glBindTexture(0, texture..);
    glTexImage2D(......tamaños etc...);

y luego antes de cargar el modelo

glBindTexture(0, texture..);

.....dibujo modelo etc...

Bueno, espero que a alguno de los que controlais este tema podais ayudarme :),

 

saludos!

 


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de copete23

Ok, ya he encontrado el

Ok, ya he encontrado el fallo, era por iniciar el modo 3d con Palib, lo he iniciado normal y ya funciona estupendamente XD, esque quiero utilizar palib para otras cosas, así me ahorro codigo XDDD.

Bueno gracias por la pista WhiteSkull XD si no llegas a decir lo de la version, no caigo XD, supongo que algo parecido le pasaba al NDS3D, porque utilizaba palib.

saludos.

 

Imagen de WhiteSkull

Mmmm.. al final generastes

Mmmm.. al final generastes las UV, glTexCoord2f, o usastes el método de escalar la textura? Si no tienes las coordenadas de textura es posible que sea eso, y si usastes escalamiento prueba bajarte la última versión de libnds...  te lo digo porque cuando me bajé el NDS 3D World Toolset v 1, te trae la demo y el código fuente, la demo se veía perfecta, pero el código cuando lo compilaba se veía todo mal, las texturas rotadas, en otra escala... Y todo fue porque NDS 3D World Toolset, se hizo con una versión vieja...aunq lo tuyp es bien diferente ya que el emulador lo muestra bien... de todas formas prueba lo que te comento

 

Imagen de copete23

Pues al final utilicé 3d

Pues al final utilicé 3d studio, que si las exportaba, por eso no he utilizado el escalado, pero claro, lo raro es eso que en el emu se ven bien, ¿la manera de poner la textura esta bien no?

Imagen de WhiteSkull

Bueno el orden que yo uso,

Bueno el orden que yo uso, es el siguiente...

 

       **** ... Cargamos la texutra, sólo una vez, aunq depende de lo que vayas hacer... ****
 
        glGenTextures(1, &texId); <-- texId, es declarado cómo entero, si usamos varias texturas para un objeto creamos un array, vamos tanton se puede llamar textId como Identificador_de_la_textura, el nombre que quieras ponerle
 
	glBindTexture(GL_TEXTURE_2D, texId);
 
	glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, Ancho_Textura, Alto_Textura, 0, TEXGEN_TEXCOORD | GL_TEXTURE_WRAP_S | GL_TEXTURE_WRAP_T, (u8*)texture); <--- texture es el nombre de nuestra textura
 
 
 
 
    *** ... Cada vez que queramos mostrar un render de la escena ... ****
 
       ...Camaras, luces, accion!!!
 
	glLoadIdentity();
 
	//encuadre de la camara
 
	gluLookAt( posicionx, posiciony, posoicionz, mirahaciax, mirahaciay, mirahaciaz, 0.0, 1.0, 0.0);
 
	//luces
 
	glLight(0, RGB15(31,31,31),0,floattov10(-1.0),0);
 
	glLight(1, RGB15(31,31,31),0,0,floattov10(-1.0));
 
	glLight(2, RGB15(31,31,31),0,0,floattov10(1.0));
 
	//enfoque o perspectiva
 
	glMatrixMode(GL_PROJECTION);
 
	glLoadIdentity();
 
	gluPerspective(30, 256.0 / 192.0, 0.1, 100);
 
	//Asigna caracteristicas de material a todos los objetos
 
	glMatrixMode(GL_MODELVIEW);
 
	glMaterialf(GL_AMBIENT, RGB15(16,16,16));
 
	glMaterialf(GL_DIFFUSE, RGB15(16,16,16));
 
	glMaterialf(GL_SPECULAR, BIT(15) | RGB15(8,8,8));
 
	glMaterialf(GL_EMISSION, RGB15(16,16,16));
 
	glMaterialShinyness();
 
	glPolyFmt(POLY_ALPHA(31) | POLY_CULL_NONE  | POLY_FORMAT_LIGHT0| POLY_FORMAT_LIGHT1| POLY_FORMAT_LIGHT2);
 
 
 
 
       ... y por último, "para cada objeto" esta configuracion... 
 
	glMatrixMode(GL_TEXTURE); // Si deseamos modificar la textura del objeto, por ejemplo hacer un scroll para darle algun  efecto vistocillo 
 
	glLoadIdentity();
 
	//glScalef(-4.0f,-4.0f,-4.0f);
 
	//glScalef(-10.0f,-10.0f,-10.0f);
 
	//glRotatef(-90.0f,0.0f,0.0f,1.0f);
 
 
 
        glMatrixMode(GL_MODELVIEW); // Modificaciones y todo lo relacionado con la malla y sus vertices
 
	glPushMatrix();
 
	glTranslatef(x,y,z); // Colocarlo en un lugar determinado
 
	glRotatef(xrot,1.0f,0.0f,0.0f); // rotarlo sobre el eje x
 
	glRotatef(yrot,0.0f,1.0f,0.0f); // sobre el y
 
	glRotatef(zrot,0.0f,0.0f,1.0f); // sobre el z... o sobre los que quieras, que no es el caso
 
 
 
	glColor3b(255,255,255); // si no tiene textura por defecto se verá blanco o del color que especifiques, por si falla la textura pa ver algo
 
	glBindTexture(0, texId); // Aplicamos la textura a los vertices que se dibujaran
 
	glBegin(...tipo.. QUAD o TRIANGLES... creo que es lo que puede soportar la librería..);
 
        .... dibujamos vertice por vertice... aquí iría el objeto en si
 
        glEnd();
 
       glPopMatrix(1);
 
       ... y luego si ya no hay mas objetos
 
       glflush(); //Vaciamos el buffer

 

 

 

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.