Question

J'utilise OpenGL ES sur un appareil intégré à faible résolution .

J'ai appliqué un dégradé de couleur vertical, utilisant la coloration de vertex, à un grand polygone servant de fond à la scène rendue. Je peux voir des artefacts de bandes visibles dans le dégradé de couleurs.

Mon expérience principale consiste à utiliser des convertisseurs de logiciels. Avec les moteurs de rendu logiciel, il est courant de perdre des bandes mach et d'autres artefacts de bande. Nous le faisons souvent lors de l'étape de quantification du rendu d'une image, où les représentations de couleurs à haute précision et à virgule flottante sont transformées en une sortie de précision inférieure (généralement avec des composants entiers). Nous réalisons le dithering en arrondissant de manière aléatoire la composante entière finale vers le haut ou vers le bas, pour n’insérer que le moindre bruit dans l’image, afin de tromper l’œil pour obtenir une image continue et uniforme des couleurs.

Ma question est de savoir si je peux atteindre cet objectif avec OpenGL ES? Ce type de dithering fait-il partie du pipeline OpenGL ou dois-je ignorer la coloration de vertex et rendre le dégradé en une texture et lui appliquer un peu de bruit?

Était-ce utile?

La solution

Avez-vous essayé glEnable (GL_DITHER)? Il est normalement activé initialement, mais je n'ai jamais travaillé avec GL ES ni sur un périphérique intégré. Cela peut également dépendre de la profondeur de couleur que vous utilisez dans le tampon d'images. Vous obtiendrez des artefacts si vous ne disposez que de 4 bits par canal.

Autres conseils

Je n’ai jamais entendu parler de l’effet que vous décrivez comme étant dans le tuyau OGL. Ma connaissance est un peu datée à ce stade, cependant, donc je peux me tromper. Je donnerais le rendu à la texture un coup si vous le pouvez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top