Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我在lwjgl中的多维数据集不';无法正确渲染_Java_Opengl_Lwjgl - Fatal编程技术网

Java 我在lwjgl中的多维数据集不';无法正确渲染

Java 我在lwjgl中的多维数据集不';无法正确渲染,java,opengl,lwjgl,Java,Opengl,Lwjgl,我按照问题的顶部答案提供的OpenGL教程进行了操作,但我的立方体拒绝渲染正面和背面,所有其他面都进行渲染,金字塔也存在同样的问题。以下是源代码: public void render(){ GL11.glMatrixMode(GL11.GL_PROJECTION); GL11.glLoadIdentity(); GL11.glOrtho(0, Display.getDisplayMode().getWidth(), 0, Display.getDisplayMode()

我按照问题的顶部答案提供的OpenGL教程进行了操作,但我的立方体拒绝渲染正面和背面,所有其他面都进行渲染,金字塔也存在同样的问题。以下是源代码:

public void render(){
    GL11.glMatrixMode(GL11.GL_PROJECTION);
    GL11.glLoadIdentity();
    GL11.glOrtho(0, Display.getDisplayMode().getWidth(), 0, Display.getDisplayMode().getHeight(), -1, 1);
    GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_STENCIL_BUFFER_BIT); //clear screen

    //Center square according to screen size
    GL11.glPushMatrix();
    if(Display.wasResized()){
        MX = 0; //MX is mouse X position
        MY = 0; //MY is mouse Y position
    }
    if((MX == 0 && MY ==0)){
        GL11.glTranslatef((Display.getWidth()/2), (Display.getHeight()/2), 0.0f);
    }else{
        GL11.glTranslatef(MX+50, MY+50, 0.0f);
    }
    GL11.glRotatef(angle, 0.0f,1.0f,0.5f); //Angle is the angle of the quads rotation
    GL11.glBegin(GL11.GL_QUADS);

    GL11.glColor3f(0.0f,1.0f,0.0f);
    GL11.glVertex3f(50.0f, 50f, -50f);
    GL11.glVertex3f(-50.0f, 50f, -50f);
    GL11.glVertex3f(-50.0f, 50f, 50f);
    GL11.glVertex3f(50.0f, 50f, 50f);

    GL11.glColor3f(0.0f,0.5f,0.0f);
    GL11.glVertex3f(50.0f, -50f, 50f);
    GL11.glVertex3f(-50.0f, -50f, 50f);
    GL11.glVertex3f(-50.0f, -50f, -50f);
    GL11.glVertex3f(50.0f, -50f, -50f);

    GL11.glColor3f(1.0f,0.0f,0.0f);
    GL11.glVertex3f(50.0f, 50f, 50f);
    GL11.glVertex3f(-50.0f, 50f, 50f);
    GL11.glVertex3f(-50.0f, -50f, 50f);
    GL11.glVertex3f(50.0f, -50f, 50f);

    GL11.glColor3f(1.0f,1.0f,0.0f);
    GL11.glVertex3f(50.0f, -50f, -50f);
    GL11.glVertex3f(-50.0f, -50f, -50f);
    GL11.glVertex3f(-50.0f, 50f, -50f);
    GL11.glVertex3f(50.0f, 50f, -50f);

    GL11.glColor3f(0.0f,0.0f,1.0f);
    GL11.glVertex3f(-50.0f, 50f, 50f);
    GL11.glVertex3f(-50.0f, 50f, -50f);
    GL11.glVertex3f(-50.0f, -50f, -50f);
    GL11.glVertex3f(-50.0f, -50f, 50f);

    GL11.glColor3f(1.0f,0.0f,1.0f);
    GL11.glVertex3f(50.0f, 50f, -50f);
    GL11.glVertex3f(50.0f, 50f, 50f);
    GL11.glVertex3f(50.0f, -50f, 50f);
    GL11.glVertex3f(50.0f, -50f, -50f);

    GL11.glEnd();
    GL11.glPopMatrix();
}

在我看来,这是一个深度问题。立方体的正面脱离了平截头体的正面,背面被剪掉了

GL11.glOrtho(0, Display.getDisplayMode().getWidth(), 0, Display.getDisplayMode().getHeight(), -1, 1);
请注意1(最后一个参数),任何超过该参数的内容都将被删除

GL11.glOrtho(0, Display.getDisplayMode().getWidth(), 0, Display.getDisplayMode().getHeight(), -1, 1);

实际上,您看到的是立方体的一部分,它确实被拉伸了。

我们可以做一个屏幕截图吗。我知道这不是深度筛选。你能看到立方体的边吗?你希望看到另一面吗?如果你旋转它会发生什么?(增加旋转呼叫的角度)谢谢!我只需将Znear和Zfar设置为100,我的显示器就能完美地处理旋转的三维立方体!谢谢