Почему моя шейдерная программа 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 есть артефакты полос?

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

6
задан Steven Stewart-Gallus 27 August 2012 в 02:54
поделиться