Pregunta

Estoy usando OpenGL ES en un dispositivo integrado de baja resolución .

He aplicado un degradado de color vertical, usando coloración de vértice, a un polígono grande que sirve como telón de fondo para mi escena renderizada. Puedo ver artefactos de bandas visibles en el gradiente de color.

Mi experiencia principal es usar renderizadores de software. Con los renderizadores de software, es común difuminar bandas de maquinaria y otros artefactos de bandas. A menudo hacemos esto durante el paso de cuantización de renderizar un cuadro, donde las representaciones de colores de punto flotante y alta precisión se transforman en una salida de menor precisión (generalmente con componentes enteros). Logramos difuminar redondeando aleatoriamente el componente entero final hacia arriba o hacia abajo, para insertar solo el más mínimo ruido en la imagen con el cual engañar al ojo para que vea una mezcla continua y suave entre los colores.

Mi pregunta es si puedo lograr esto usando OpenGL ES. ¿Es este tipo de tramado parte de la tubería de OpenGL, o debería omitir la coloración de vértices y renderizar el degradado a una textura y aplicarle un poco de ruido?

¿Fue útil?

Solución

¿Has probado glEnable (GL_DITHER)? Normalmente está habilitado inicialmente, pero nunca he trabajado con GL ES o en un dispositivo integrado. También puede depender de la profundidad de color que esté utilizando en el búfer de cuadros, obtendrá artefactos si solo tiene 4 bits por canal.

Otros consejos

Nunca he oído hablar del efecto que describe estar en la tubería OGL. Sin embargo, mi conocimiento está un poco anticuado en este punto, así que puedo estar equivocado. Le daría una oportunidad al renderizado para texturizar si puede.

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