Intereting Posts
Android: троллейбусы Maven с ADT 14 Android: медленная производительность с использованием большого изображения в ImageView Получить номер телефона входящего вызова в Android Как создать новый плейлист с помощью ContentResolver Проблема с Android Pitch and Roll Сертификат RapidSSL не поддерживается на планшете Android Нетрадиционные и изворотливые Android аварии во время загрузки JNI / OpenGL ES Как отправить BroadCast из одного приложения в другое приложение Невозможно сделать статическую ссылку на нестатический метод (Android getApplicationContext ()) Что такое ffmpeg-проигрыватели с открытым исходным кодом для iOS / Android? Как заставить GridView прокручивать вверх, используя клавиатуру в Android TV Отладчик Eclipse для зависания виртуального устройства Android? Невозможно масштабировать Drawable с помощью ScaleDrawable Предотвращение несанкционированного удаления приложения для Android Как запустить AccessibilityService?

Почему моя шейдерная программа openGL для очков имеет артефакты группировки?

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

Фрагментный шейдер ниже.

#version 110 precision mediump float; void main() { float dist = distance(gl_PointCoord.xy, vec2(0.5, 0.5)); // Edge value is 0.5, it should be 1. // Inner most value is 0 it should stay 0. float inner_circle = 2.0 * dist; float circle = 1.0 - inner_circle; vec4 pixel = vec4(1.0, 0.0, 0.0, inner_circle * circle ); gl_FragColor = pixel; } 

Вот менее интересный шейдер вершин, который, как я думаю, не является причиной проблемы.

 #version 110 attribute vec2 aPosition; uniform float uSize; uniform vec2 uCamera; void main() { // Square the view and map the top of the screen to 1 and the bottom to -1. gl_Position = vec4(aPosition, 0.0, 1.0); gl_Position.x = gl_Position.x * uCamera.y / uCamera.x; // Set point size gl_PointSize = (uSize + 1.0) * 100.0; } 

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

PS Кстати, это для Android Acer Iconia планшета.

Android GLSurfaceView по умолчанию использует поверхность RGB565. Либо включите сглаживание ( glEnable(GL_DITHER) ), либо установите пользовательский EGLConfigChooser чтобы выбрать конфигурацию поверхности RGBA или RGBX с 8 бит на канал.