Domanda

Sto usando OpenGL ES su un dispositivo incorporato a bassa risoluzione .

Ho applicato un gradiente di colore verticale, usando la colorazione del vertice, a un grande poligono che fa da sfondo alla mia scena renderizzata. Riesco a vedere chiari artefatti di bande visibili nella sfumatura di colore.

La mia esperienza principale è l'uso di renderer software. Con i renderer software è comune cercare mach bands e altri manufatti di banding. Spesso lo facciamo durante la fase di quantizzazione del rendering di un fotogramma, in cui le rappresentazioni dei colori in virgola mobile e ad alta precisione vengono trasformate in un output di precisione inferiore (di solito con componenti interi). Otteniamo il dithering arrotondando casualmente il componente intero finale in alto o in basso, per inserire solo il più piccolo rumore nell'immagine con cui ingannare l'occhio nel vedere un continuo e una sfumatura uniforme tra i colori.

La mia domanda è se posso raggiungere questo obiettivo con OpenGL ES? Questo tipo di dithering fa parte della pipeline OpenGL o dovrei saltare la colorazione dei vertici e rendere il gradiente su una trama e applicare un po 'di rumore su di essa?

È stato utile?

Soluzione

Hai provato glEnable (GL_DITHER)? Normalmente è inizialmente abilitato, ma non ho mai lavorato con GL ES o su un dispositivo incorporato. Può anche dipendere dalla profondità del colore che stai usando nel frame buffer, otterrai artefatti se hai solo 4 bit per canale.

Altri suggerimenti

Non ho mai sentito dell'effetto che descrivi essere nella pipe OGL. A questo punto, però, la mia conoscenza è un po 'datata, quindi potrei sbagliarmi. Darei un rendering alla trama se puoi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top