Java 像素渲染白色(OpenGL)

Java 像素渲染白色(OpenGL),java,opengl,lwjgl,lighting,Java,Opengl,Lwjgl,Lighting,我试图在我的窗口背景中获得非着色器每像素照明。它应该在左上角渲染为完全白色,在左下角渲染为完全黑色,但实际上它是带有黑色边缘的白色。出于某种原因,除了最右边缘和最下边缘之外的所有像素都是完全白色(边缘为黑色))。为什么渲染不正确 glViewport(0, 0, Display.getWidth(), Display.getHeight()); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0, 2

我试图在我的窗口背景中获得非着色器每像素照明。它应该在左上角渲染为完全白色,在左下角渲染为完全黑色,但实际上它是带有黑色边缘的白色。出于某种原因,除了最右边缘和最下边缘之外的所有像素都是完全白色(边缘为黑色))。为什么渲染不正确

    glViewport(0, 0, Display.getWidth(), Display.getHeight());

    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0, 2000, 2000, 0, 1, -1);
    glMatrixMode(GL_MODELVIEW);

    if (lighting != 0)
        glDeleteLists(lighting, 1);

    lighting = glGenLists(1);

    glNewList(lighting, GL_COMPILE);

    glDisable(GL_TEXTURE_2D);

    glBegin(GL_POINTS);
    for (int x = 1; x <= 2000; x++)
    {
        for (int y = 1; y <= 2000; y++)
        {
            double dist = new Point(x, y).distance(new Point(0, 0));
            double brightness = 1 - (1 / 2000 * dist); //I tried just "1 / 2000 & dist" instead, but that just renders black everywhere

            glColor3d(brightness, brightness, brightness);

            glVertex2f(x, y);
        }
    }
    glEnd();

    glEndList();
glViewport(0,0,Display.getWidth(),Display.getHeight());
glMatrixMode(GL_投影);
glLoadIdentity();
格洛托(0,2000,2000,0,1,-1);
glMatrixMode(GLU模型视图);
如果(照明!=0)
glDeleteLists(照明,1);
照明=glGenLists(1);
glNewList(照明、总图编辑);
glDisable(GL_纹理_2D);
glBegin(总分);

对于(int x=1;x看看你在这里做什么:为什么?啊,它烧起来了!你为什么要这样做?使用着色器!天哪。这正是图形卡发明的目的。还要记住,OpenGL中的颜色是[01]而不是[0255],而
1/2000
是整数算术(你想要
1.0/2000.0
)@Dave 1.如果我使用OpenGL 1.12以外的任何功能,我可能会切换到着色器。谢谢!这解决了问题!