如何在 OpenGL (lwjgl) 中修复 "cropping" 形状?
How to fix "cropping" shapes in OpenGL (lwjgl)?
我正在做一个关于 OpenGL 3D 的项目。我有几个数字,当我旋转相机(场景)时,数字似乎超出了它(或超出了视口)
正常情况:
裁剪图:
如何增加可视区域?或者在这种情况下可以做什么?
现在我正在尝试:
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glDepthFunc(GL_LEQUAL);
glfwPollEvents();
glPushMatrix();
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
GL11.glViewport(0, 0, width, height);
GL11.glMatrixMode(GL11.GL_PROJECTION);
glLoadIdentity();
但是没有带来结果。
物体似乎被当时正射投影的近平面裁剪了。更改近平面以解决问题。
正交投影矩阵由glOrtho
.
设置
默认投影矩阵是Identity matrix。这和你做的一样
GL11.glOrtho(-1, 1, -1, 1, 1, -1);
增加近平面和远平面的距离来解决问题。例如:
GL11.glMatrixMode(GL11.GL_PROJECTION);
glLoadIdentity();
GL11.glOrtho(-1, 1, -1, 1, 10, -10);
我正在做一个关于 OpenGL 3D 的项目。我有几个数字,当我旋转相机(场景)时,数字似乎超出了它(或超出了视口)
正常情况:
裁剪图:
如何增加可视区域?或者在这种情况下可以做什么?
现在我正在尝试:
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glDepthFunc(GL_LEQUAL);
glfwPollEvents();
glPushMatrix();
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
GL11.glViewport(0, 0, width, height);
GL11.glMatrixMode(GL11.GL_PROJECTION);
glLoadIdentity();
但是没有带来结果。
物体似乎被当时正射投影的近平面裁剪了。更改近平面以解决问题。
正交投影矩阵由glOrtho
.
默认投影矩阵是Identity matrix。这和你做的一样
GL11.glOrtho(-1, 1, -1, 1, 1, -1);
增加近平面和远平面的距离来解决问题。例如:
GL11.glMatrixMode(GL11.GL_PROJECTION);
glLoadIdentity();
GL11.glOrtho(-1, 1, -1, 1, 10, -10);