LWJGL 3:OpenGL Quad 渲染不正确
LWJGL 3: OpenGL Quad is not rendered properly
每当我 运行 这个时,window 就会弹出,我会看到这个。
(When I run the game, I see this)
如果您只需创建一个新的 Java 项目,导入 OpenGL、GLFW 和 LWJGL,以及原生的,然后复制代码(删除包),就可以重新创建
import static org.lwjgl.glfw.GLFW.*;
import static org.lwjgl.opengl.GL11.*;
import org.lwjgl.opengl.GL;
public class Game {
public static void main (String[] args) {
if(glfwInit() != true) {
System.err.println("GLFW Failed to initialize!");
System.exit(1);
}
long window = glfwCreateWindow(640,480,"Game", 0, 0);
glfwShowWindow(window);
glfwMakeContextCurrent(window);
GL.createCapabilities();
while(!glfwWindowShouldClose(window)) {
glfwPollEvents();
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_QUADS);
glVertex2d(-0.5,0.5);
glVertex2d(0.5,0.5);
glVertex2d(-0.5,-0.5);
glVertex2d(0.5,-0.5);
glEnd();
glfwSwapBuffers(window);
}
glfwTerminate();
}
}
您以错误的顺序绘制了四边形的顶点。尝试
glVertex2d(0.5,0.5);
glVertex2d(-0.5,0.5);
glVertex2d(-0.5,-0.5);
glVertex2d(0.5,-0.5);
对于面向您的四边形(或三角形),您通常按逆时针顺序绘制它们(这称为 "winding"),对于背对您的四边形(这称为 "winding"),您通常按顺时针顺序绘制它们。在你的例子中,你把它们画成了一个无效的字母 "Z"。
每当我 运行 这个时,window 就会弹出,我会看到这个。 (When I run the game, I see this)
如果您只需创建一个新的 Java 项目,导入 OpenGL、GLFW 和 LWJGL,以及原生的,然后复制代码(删除包),就可以重新创建
import static org.lwjgl.glfw.GLFW.*;
import static org.lwjgl.opengl.GL11.*;
import org.lwjgl.opengl.GL;
public class Game {
public static void main (String[] args) {
if(glfwInit() != true) {
System.err.println("GLFW Failed to initialize!");
System.exit(1);
}
long window = glfwCreateWindow(640,480,"Game", 0, 0);
glfwShowWindow(window);
glfwMakeContextCurrent(window);
GL.createCapabilities();
while(!glfwWindowShouldClose(window)) {
glfwPollEvents();
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_QUADS);
glVertex2d(-0.5,0.5);
glVertex2d(0.5,0.5);
glVertex2d(-0.5,-0.5);
glVertex2d(0.5,-0.5);
glEnd();
glfwSwapBuffers(window);
}
glfwTerminate();
}
}
您以错误的顺序绘制了四边形的顶点。尝试
glVertex2d(0.5,0.5);
glVertex2d(-0.5,0.5);
glVertex2d(-0.5,-0.5);
glVertex2d(0.5,-0.5);
对于面向您的四边形(或三角形),您通常按逆时针顺序绘制它们(这称为 "winding"),对于背对您的四边形(这称为 "winding"),您通常按顺时针顺序绘制它们。在你的例子中,你把它们画成了一个无效的字母 "Z"。