Pregunta

Me disculpo de antemano si esta pregunta parece confuso. El comportamiento que estoy viendo no tiene sentido para mí.

Tengo un búfer de fotograma renderizado de una textura. Me hacen rectángulos sólidos de color rojo, verde, azul de variar la opacidad de esta textura. a continuación, se renderiza la textura de la pantalla (Framebuffer 0). El Framebuffer unido a la textura es persistente, y en cada render bucle que dibujar rectángulos más a la textura -., Finalmente, llenando la pantalla

He encontrado que si no me puse a glColor() blanco 100% de opacidad antes de dibujar la textura a la pantalla, no se brindará rectángulos de colores particulares. Esto es, si glColor(1.f, 0.f, 0.f, 1.f) se establece antes de dibujar la textura, se extraerán sólo los rectángulos azules.

No entiendo por qué el color actual tendría un efecto en la prestación de la textura (que supongo es como un blit). He intentado varias llamadas texParameter(...) en vano, pero estoy adivinando.

Gracias.

¿Fue útil?

Solución

Entre otras cosas, glColor () Establece el color utilizado para un vértice. Cuando se dibuja el rectángulo texturizado, cada muestra Texel se multiplica por el color de vértice. Bueno, en realidad, un interpoloation lineal de los vértices de la primitiva que es simplemente el color de vértice si todos los vértices tienen el mismo color.

Este tutorial explica las implicaciones de todo esto muy bien:

http://www.falloutsoftware.com/tutorials/gl/gl4.htm

La única parte extraña aquí es su afirmación de que glColor (1, 0, 0, 1) hace que sólo rectángulos azules que se pueden extraer. Yo esperaría que para ser sólo rectángulos rojos si los parámetros a glColor son de color rojo, verde, azul y alfa. Con suerte hay un error tipográfico o el orden de los parámetros es diferente, tal que el rojo = 0, verde = 0, azul = 1 y alfa = 1.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top