【发布时间】:2019-07-31 09:45:51
【问题描述】:
我正在用 lwjgl(opengl for java)编写一个 GUI 框架。我最近通过渲染几个被圆圈包围的普通矩形来实现圆角矩形。为了渲染圆圈,我使用了 GL11.GL_POINTS。我现在已经到了尝试实现动画和窗口打开动画的地步,我决定将 GL11.glScaled() 从小到正常。这很好用,但不幸的是我的圈子没有调整大小。
我尝试将我的 GL_POINTS 圆形渲染方法更改为使用 TRIANGLE_FAN 的方法,并且效果很好。我的问题是,圆圈看起来一点也不光滑和圆润,如果我增加渲染的三角形,它开始很快滞后。虽然我的电脑一点也不差。
这是我用来用 GL_POINTS 渲染圆圈的代码。
GL11.glEnable(GL11.GL_POINT_SMOOTH);
GL11.glHint(GL11.GL_POINT_SMOOTH_HINT, GL11.GL_NICEST);
GL11.glPointSize(radius);
GL11.glBegin(GL11.GL_POINTS);
GL11.glVertex2d(x, y);
GL11.glEnd();
GL11.glDisable(GL11.GL_POINT_SMOOTH);
这是我用来缩放圆圈的代码
GL11.glPushMatrix();
GL11.glTranslated(x, y, 0);
GL11.glScaled(2.0f, 2.0f, 1);
GL11.glTranslated(-x, -y, 0);
render circles
GL11.glPopMatrix();
我希望圆圈根据我放入 glScaled() 的数字进行缩放
目前它们根本没有重新缩放,只是以正常大小呈现。
【问题讨论】:
标签: java opengl lwjgl opengl-compat