• Viernes 8 de Noviembre de 2024, 23:04

Autor Tema:  Color De Un Pixel  (Leído 3386 veces)

Nagisa

  • Miembro MUY activo
  • ***
  • Mensajes: 119
  • Nacionalidad: es
    • Ver Perfil
Color De Un Pixel
« en: Jueves 7 de Julio de 2005, 08:00 »
0
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!!
   

visualcubb

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Color De Un Pixel
« Respuesta #1 en: Jueves 7 de Julio de 2005, 23:18 »
0
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
"Y conocereis la verdad y la verdad os hará libres" juan 8:32



http]
[url=http://www.openglubb.info]http]