当前位置: 首页 > 知识库问答 >
问题:

LWJGL/OpenGL——不绘制基本四边形

丌官利
2023-03-14

我到处都找过了,我似乎无法让OpenGL绘制一个简单的四边形。窗口在正确的颜色背景下显示得很好,但OpenGL就是不会绘制框。我正在使用OpenGL 4.4.0-构建20.19.15.4463窗口大小为1920x1080

这是我目前拥有的代码

在Main.java:

public void init(){
    if(glfwInit() != true){
        System.err.println("GLFW failed to initialize");
    }
    glfwWindowHint(GLFW_RESIZABLE, GL_TRUE);
    //TODO change name.
    window = glfwCreateWindow(width, height, "GameName", NULL, NULL);
    if(window == NULL){
        System.err.println("Window failed to be created");
    }

    GLFWVidMode vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor());
    glfwSetWindowPos(window, 100, 100);
    glfwMakeContextCurrent(window);
    glfwShowWindow(window);
    GL.createCapabilities();

    glClearColor(0.0f, 0.5f, 1.0f, 1.0f);
    glEnable(GL_DEPTH_TEST);


    //set up projection matrix; allows us to draw.
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0, width, height, 0, 1, -1);
    glMatrixMode(GL_MODELVIEW);


    testBox = new EntityBox(3, Color.RED);//just to test right now

    System.out.println("OpenGL: "+ glGetString(GL_VERSION));

}
public void update(){
    glfwPollEvents();

}
public void render(){
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glLoadIdentity();
    glfwSwapBuffers(window);
    testBox.draw();
}

在实体框中:

public void draw(){
    glColor3f(1.0f, 0.0f, 0.0f);
    glBegin(GL_QUADS);
        glVertex2f(0,0);
        glVertex2f(0,100);
        glVertex2f(100,0);
        glVertex2f(100,100);
    glEnd();
}

共有1个答案

钱志
2023-03-14

我修正了:glClear需要

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

不知道为什么,因为我是tole depth_buffer,如果你想要3d的话。和

glfwSwapBuffers(window);

绘制后需要调用

 类似资料:
  • 我正在绘制一个纹理四边形,但使用的纹理是以前绑定的纹理,即使我试图绑定一个新纹理。 在GuiHandler中创建纹理。Java语言 渲染代码 有人知道为什么使用先前绑定的纹理而不是正确的纹理吗?P、 我正在使用LWJGL

  • 我目前一直在学习顶点数组和VBO的b/c,我目前了解到它比“立即”渲染更好/更快(比如使用glBegin),尽管这要容易得多。我做了一个小程序(实际上只是一个测试),它创建了一个按钮,当你将鼠标悬停在按钮上时,它会改变颜色,但是每当我启动它时,程序就会崩溃,并出现以下错误消息: }

  • 我能够创建一个窗口,并清除到所需的颜色。但无法在左下角绘制正方形。

  • 我已经试着让这段代码工作了一段时间,但我仍然不知道我做错了什么。(LWJGL-Java) 我曾尝试在网上查看其他人的代码,但我找不到任何重大区别。事实上,我学会了将OpenGL与C结合使用,所以我的大脑可能会被它卡住,这可能就是我找不到错误的原因。 这是init(调用一次) 这是渲染函数: 着色器: 顶点: Framgent公司:

  • 我是最新版本的OpenGL的新手,我试图通过以下教程来学习它:http://open.gl/drawing 然而,我正在使用LWJGL的最新版本,并尽最大努力将其OpenGL与教程一样使用。然而,应该绘制的白色三角形却不是。 这是我的代码: 我的着色器与本教程的着色器相同,但无论如何都会为了便于阅读而发布它们: 。蓄意杀伤 .vert 代码运行,但都是黑色的。有什么想法吗?

  • 我想画一个球体并对它进行纹理,我用三角形来画它,当我试图对它进行纹理时,有些三角形没有被覆盖 我用这个函数来生成坐标