2008-10-13 4 views
3

J'utilise OpenGL ES sur un low-resolution, embedded device.Dithering polygones vertex-ombrés ombrés pour enlever les bandes

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

Mon expérience principale est l'utilisation de logiciels de rendu. Avec les moteurs de rendu logiciels, il est courant de délayer mach bands et d'autres artefacts de bandes. Nous le faisons souvent pendant l'étape de quantification du rendu d'une image, où les représentations de couleurs à virgule flottante et de haute précision sont transformées en une sortie de faible précision (généralement avec des composants entiers). Nous obtenons le tramage en arrondissant aléatoirement le composant entier final soit vers le haut, soit vers le bas, afin d'insérer juste le moindre petit bruit dans l'image pour tromper l'œil et voir un mélange continu et lisse entre les couleurs.

Ma question est de savoir si je peux y parvenir en utilisant OpenGL ES? Est-ce que ce genre de juxtaposition fait partie du pipeline OpenGL, ou devrais-je sauter la vertex-coloration et rendre le dégradé à une texture et lui appliquer un peu de bruit?

Répondre

1

Avez-vous essayé glEnable (GL_DITHER)? Normalement, il est initialement activé, mais je n'ai jamais travaillé avec GL ES ou sur un périphérique embarqué. Cela peut aussi dépendre de la profondeur de couleur que vous utilisez dans le frame buffer, vous allez obtenir des artefacts si vous n'avez que 4 bits par canal.

0

Je n'ai jamais entendu parler de l'effet que vous décrivez dans le tuyau OGL. Mes connaissances sont un peu datées à ce stade, cependant, je peux me tromper. Je donnerais le rendu pour texturer un tir si vous le pouvez.

Questions connexes