SoloCodigo
Programación Específica => Programación de Videojuegos => OpenGL => Mensaje iniciado por: Uvatha en Jueves 20 de Octubre de 2005, 18:40
-
Hola a todos,
os planteo dos cuestiones, la primera de ámbito práctico y la segunda teórica.
1-He seguido diversos tutoriales (sobre todo los de NeHe Productions) i consiguo hacer programas que carguen diversas texturas, pero las funciones que uso sólo me sirven si el número de píxels de las dimensiones del archivo a cargar son 64, 128, 256 o 512. Necesito cargar archivos con mayor resolución, os escribo el código (en java) que uso a tal efecto. Sabéis como puedo añadir más píxeles?
Función:
public boolean CargaTexturas()
{
String titleNames[]={"bcn.PNG","barcelona.PNG","cajero.PNG"};//vector d'estrings con los ficheros
gl.glGenTextures(3,texture);
for (int i=0;i<3;i++)//tantos bucles como texturas
{
PngTextureLoader texLoader = new PngTextureLoader(gl, glu);
if(codeBase!=null)
texLoader.readTexture(codeBase, titleNames);
else
texLoader.readTexture(titleNames);
if(!texLoader.isOk())
{
return false;
}
gl.glBindTexture(GL_TEXTURE_2D, texture);
gl.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,GL_LINEAR);
gl.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
gl.glTexImage2D(GL_TEXTURE_2D,
0,
3,
texLoader.getImageWidth(),
texLoader.getImageHeight(),
0,
GL_RGB,
GL_UNSIGNED_BYTE,
texLoader.getTexture());
}
return true;
}
Segunda cuestión (para los que han tenido moral de llegar a esta línea) : mi intencion es hacer un programa que muestre por pantalla mapas topográficos. La única manera que se me ocurre es crear un polígono o un sólido y poner en una de sus caras el mapa que me interesa como una textura. Pese a que los resultados son aceptables, se me antoja un poco enrevesado y poco efectivo (y con un resultado poco profesional) para poder manipular mapas. Sabéis de algún otro método para mostrar las imágenes de alta resolución por pantalla y poder manipularlas?
Muchas gracias de todo corazón, ya que no tengo gente cercana que domine OpenGL y me cuesta mucho avanzar cuando estoy encayadol
Un saludo.
Uvatha
-
Deberias poder cargar cualquier textura que sea potencia de 2, .... 256, 512, 1024, 2048, .....
Para el mapa quizas lo mejor seria 4 cuadrados del tamaño de la pantalla y desplazarse por el, cuando llegas al limite, los cuadros que quedan ocultos se desplazan al lado contrario y se actualizan con la nueva textura.
La verdad es que es dificil explicarlo.
-
Hola,
gracias por las indicaciones, he conseguido cargar archivos de todos esos tamaños e incluso de proporciones combinadas (256*512,512-1024, etc). Lo de cargar archivos más grandes, aunque aún no lo he puesto en práctica, ya entiendo la sugerencia.
He ido provando y me surgen una serie de dudas: programando en Java, sólo consigo cargar archivos .png (de los cuales nunca había oído hablar), al programar en C consigo cargar bmp y tga.
Por motivos de reducción de espacio, querría cargar archivos jpeg, es posible? implica cargar de faena al procesador?
Gracias y un saludo.
Uvatha.