Ios 如何在OpenGL ES的子像素上绘制三角形?

Ios 如何在OpenGL ES的子像素上绘制三角形?,ios,opengl-es,antialiasing,Ios,Opengl Es,Antialiasing,我试图在OpenGL ES中为两个三角形的缓慢移动设置动画 虽然我的相位偏移是一个浮点,在运行循环的每次迭代中增加0.003f,但我的三角形暂时不移动,然后向右跳一个像素 GLfloat vertices[ ] = { rect.origin.x, rect.origin.y + rect.size.height, rect.origin.x + rect.size.width, rect.origin.y + rect.size.height,

我试图在OpenGL ES中为两个三角形的缓慢移动设置动画

虽然我的相位偏移是一个浮点,在运行循环的每次迭代中增加0.003f,但我的三角形暂时不移动,然后向右跳一个像素

GLfloat vertices[ ] = {
        rect.origin.x, rect.origin.y + rect.size.height,
        rect.origin.x + rect.size.width, rect.origin.y + rect.size.height,
        rect.origin.x, rect.origin.y,
        rect.origin.x + rect.size.width, rect.origin.y
    };

glVertexPointer(2, GL_FLOAT, 0, vertices);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
我确认这些值是带有小数位数的浮点数。例如: 0, 0.003, 0.006, ... 0.3, 0.303, 0.306, ... 等等

因此,OpenGL并没有在像素之间缓慢插值,而是直接向下跳。当我将顶点设置为0.5这样的值时,我将它们放置在两个像素之间。但是设置为0.6也没有效果,也就是0.7,然后它只会捕捉到下一个像素。就好像是将这些值四舍五入到满或可除以0.5。我想在像素之间进行平滑插值,这样当动画移动非常慢时,它看起来很漂亮


我必须怎么做才能在子像素之间插入顶点,而不是仅仅捕捉到一个像素?

你有某种方式来进行抗锯齿吗?在使用内置的多采样抗锯齿支持时,你是否看到了同样的行为:?@Brad Larson即使使用多采样,我也无法在子像素之间定位顶点。请确认,您正在顶点着色器中使用坐标的
highp
精度?这应该是默认值,除非使用
mediump
lowp
精度显式覆盖。我使用的是OpenGL ES 1.0,因此没有顶点着色器。没有设置任何关于精度的内容。