SoloCodigo

Programación Específica => Programación de Videojuegos => OpenGL => Mensaje iniciado por: Nagisa en Jueves 7 de Julio de 2005, 08:00

Título: Color De Un Pixel
Publicado por: Nagisa en Jueves 7 de Julio de 2005, 08:00
Hola!!

Mi pregunta es si hay alguna forma de poder obtener el colo que tiene un pixel en particular de la escena final.

Estoy haciendo un programa que trabaja con colores a nivel de pixel; para ponerlo es sencillo, por que simplemente creo un punto (GL_POINTS), establezco el color (glColor*()) y despues dibujo el punto (glVertex*()).

Para hacer lo contrario se me habia ocurrido llevar una matrix, con una posicion por cada pixel posible, pero como seria enorme mi duda es si hay alguna funcion de OpenGL que te lo de directamente (tipo el Graphics.GetColor() de Java).

Muchas gracias!!
Título: Re: Color De Un Pixel
Publicado por: visualcubb en Jueves 7 de Julio de 2005, 23:18
Hola, usa esta función: glReadPixels();
y Funciona así:

glReadPixels(0,0,sw,sh,format,GL_UNSIGNED_BYTE,pdata);

donde los primeros 2 parametros indican el valor de ventana inicial, los otros 2 los valores finales de posicion de tu ventana, el format indica si vas a leer rgb o rgba, el penultimo indica en qué tipo de datos vas a guardar los colores y el ultimo es un arreglo para guardar lo que leiste.

En tu caso sería algo así:
unsigned char colores[3];
glReadPixels(0,0,1,1,GL_RGB,GL_UNSIGNED_BYTE,colores);

Y listo.

Espero que esto te ayude.

http://www.openglubb.info (http://www.openglubb.info)