java - 在 OpenGL 中使用 GL_QUADS 渲染时,形状的一部分丢失

标签 java opengl

我正在尝试使用 GL_QUADS 渲染一个正方形,但每次渲染时都会有一个三角形缺失 enter image description here

这是我的代码:

gl.glPushMatrix();
gl.glBegin(GL.GL_QUADS);
gl.glVertex3d(pts2d.get(0).x, extra[0],pts2d.get(0).y);
gl.glVertex3d(pts2d.get(1).x,extra[0],pts2d.get(1).y);
gl.glVertex3d(pts2d.get(0).x, portalHeight,pts2d.get(0).y);
gl.glVertex3d(pts2d.get(1).x,portalHeight,pts2d.get(1).y);
gl.glEnd();
gl.glPopMatrix();

我正在使用 JOGL,这些点是创建正方形的正确点,我只是不知道为什么会切掉一个三角形。

最佳答案

请注意,OpenGL 对四边形的排序与对等三角形带的排序不同。这就是我的意思。

组成四边形三角形条的四个顶点按以下顺序指定:

0 2
1 3

四边形按以下顺序指定:

0 3
1 2

看出区别了吗?它围绕四边形的表面逆时针(或顺时针,取决于您的缠绕顺序)。它不是从上到下、从左到右。

关于java - 在 OpenGL 中使用 GL_QUADS 渲染时,形状的一部分丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12879207/

相关文章:

java - 将字符串转换为 "_"

java - Hibernate逆向工程-多对多关系

java - 数组初始化非法? ( java )

java - 在不使用 pro-guard 的情况下在 android 中使用 native 库时减小 .apk 文件的大小

c - 在 C 或 GLSL 中乘以矩阵?

c++ - OpenGL+GLUT 没有填充最左上角的多边形?

windows - 如何让自定义视频媒体/流接收器在媒体基础中请求 RGB32 帧?

java - OpenGL、Java 和内存管理

opengl - 了解 glVertexAttribPointer?

java - 如何让 Graphics.drawString 从边界底部绘制?