OpenGL: ¿color impreciso?

votos
1

Intento seguir las instrucciones de esta página:
http://www.opengl.org/resources/faq/technical/color.htm
sobre la representación de primitivas con un color único

Revisé la cantidad de bits para cada color y el resultado fue 8 para cada uno.
Al llamar:

 glColor3ui(0x80000000, 0, 0xFF000000);

y leyendo el pixel con glReadPixels () obtengo el color: 0xFFFE007F
que corresponde a R=0x7F, G=0, B=0xFE
Los dos bits inferiores de Rojo y Azul son incorrectos.

¿Porqué es eso?
Estoy usando una nueva tarjeta nVidia en una computadora portátil Dell con los controladores más recientes

Publicado el 15/12/2008 a las 11:01
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
1

¿Has hecho esto también?

In either event, you'll need to ensure that any state that could
affect the final color has been disabled. The following code will
accomplish this:

glDisable (GL_BLEND); glDisable (GL_DITHER);
glDisable (GL_FOG); glDisable (GL_LIGHTING);
glDisable (GL_TEXTURE_1D); glDisable (GL_TEXTURE_2D);
glDisable (GL_TEXTURE_3D); glShadeModel (GL_FLAT); 

También verifique si su búfer glReadPixels tiene 24/32 bits.

Respondida el 15/12/2008 a las 11:07
fuente por usuario

votos
3

Resulta que las preguntas frecuentes tienen un error.

La documentación de glColor establece que: "Los componentes de color entero sin signo, cuando se especifique, se correlacionan linealmente con valores de coma flotante de modo que el valor representable más grande se asigne a 1,0 (intensidad completa) y 0 a 0,0 (intensidad cero)".
Esto realmente sugiere que para obtener un blanco de intensidad completa debería llamar:

glColor3ui(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF);

y no

glColor3ui(0xFF000000, 0xFF000000, 0xFF000000);

como lo sugiere la FAQ.
Y eso explica por qué 0xFF000000 asignado a 254.

He presentado un informe de error a las personas que supuestamente mantienen las preguntas frecuentes

Respondida el 15/12/2008 a las 11:28
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more