Java LWJGL的透明度问题

Java LWJGL的透明度问题,java,opengl,graphics,3d,lwjgl,Java,Opengl,Graphics,3d,Lwjgl,我正在用LWJGL用Java创建一个CAD应用程序。一切都很好,但是,绘制的东西是透明的(不是透明的,但是你可以看到前面和后面,这使得移动形状时非常混乱) 您可以在下图中看到我的意思: 我要把里面/后面的线盖住。简单地说,前面的东西应该覆盖后面的一切,而不是透明的。有什么解决方案/技巧吗 编辑: 一些代码 public static void main(String[] args) { Window window = new Window(); ini

我正在用LWJGL用Java创建一个CAD应用程序。一切都很好,但是,绘制的东西是透明的(不是透明的,但是你可以看到前面和后面,这使得移动形状时非常混乱)

您可以在下图中看到我的意思:

我要把里面/后面的线盖住。简单地说,前面的东西应该覆盖后面的一切,而不是透明的。有什么解决方案/技巧吗

编辑: 一些代码

 public static void main(String[] args)
    {
        Window window = new Window();
        initDisplay();
        gameLoop();
        cleanUp();
    }

public static void initDisplay()
    {
        try {
            Display.setDisplayMode(new DisplayMode(800,600));
            Display.create();
        } catch (LWJGLException e) {
            e.printStackTrace();
        }

    }

public static void gameLoop()
    {
        cam = new Camera(70f,(float)(Display.getWidth()/Display.getHeight()),0.3f,1000f);
        x=0;
        while(!Display.isCloseRequested())
        {
            glClear(GL_COLOR_BUFFER_BIT);
            glLoadIdentity();
            cam.useView();

                updateKeys();
            glPushMatrix();
            {
HERE's THE PART FOR DRAWING
}
glEnd();
glPopMatrix();
            Display.update();

如果你有一个深度缓冲区来处理这类事情,那会很有帮助。否则,显示的内容只是最后绘制的内容

当然,如果您使用深度缓冲区,您的线条(我假设是线框覆盖)将不可见,因为默认深度测试是
GL_LESS
,它们将生成(大致)与其覆盖的曲面相同的深度。
GL_LEQUAL
的深度测试将大大有助于解决该问题,但最终,当您试图覆盖这样的线框时,通常需要一个小的深度偏移来防止深度冲突


作为将来的参考
这里是用于绘图的部分
在诊断问题时没有太大用处。

尝试设置显示配置public static void setDisplayConfiguration(浮动伽马、浮动亮度、浮动对比度)设置显示配置不起作用:(它只是将整个显示变为白色。它可以进行调整。使用它可以解决问题。谢谢。使用“这是用于绘制的零件”我的意思是这只是顶点信息,但下次我会考虑您的建议:)