Сглаживание gouraud-заштрихованных полигонов вершинного цвета для удаления полос - PullRequest
3 голосов
/ 13 октября 2008

Я использую OpenGL ES на встроенном устройстве с низким разрешением .

Я применил вертикальный градиент цвета, используя раскраску вершин, к большому многоугольнику, который служит фоном для моей отрисованной сцены. Я вижу четкие видимые артефакты полос в цветном градиенте.

Мой основной опыт - использование программных рендеров. В программных средствах рендеринга распространено выделение полос Маха и других артефактов обвязки. Мы часто делаем это на этапе квантования рендеринга кадра, где плавающая точка, высокоточные представления цветов преобразуются в выходные данные с более низкой точностью (обычно с целочисленными компонентами). Мы достигаем сглаживания путем случайного округления конечного целочисленного компонента вверх или вниз, чтобы вставить в изображение лишь малейший кусочек шума, чтобы обмануть глаза и увидеть непрерывные и плавные сочетания цветов.

Мой вопрос заключается в том, могу ли я добиться этого с помощью OpenGL ES? Является ли этот тип дизеринга частью конвейера OpenGL, или я должен пропустить раскраску вершин и визуализировать градиент текстуры и наложить на нее немного шума?

Ответы [ 2 ]

1 голос
/ 15 октября 2008

Вы пробовали glEnable (GL_DITHER)? Обычно он изначально включен, но я никогда не работал с GL ES или на встроенном устройстве. Это также может зависеть от глубины цвета, которую вы используете в буфере кадров, вы получите артефакты, если у вас только 4 бита на канал.

0 голосов
/ 13 октября 2008

Я никогда не слышал о том эффекте, который вы описываете, будучи в трубе OGL. Однако мои знания немного устарели, поэтому я могу ошибаться. Если бы вы могли, я бы дал рендер для рендеринга текстуры.

...