![source: imgur.com](https://i.imgur.com/XGZ7GbB.png)
![enter image description here](https://istack.dev59.com/F6kSm.webp)
编辑1:
private float FOV = 70;
private float NEAR_PLANE = .1f;
private float FAR_PLANE = 1000f;
private void createProjectionMatrix() {
float aspectRatio = (float) Display.getWidth() / (float) Display.getHeight();
float y_scale = (float) ( (1f/ Math.tan(FOV/2f))*aspectRatio );
float x_scale = y_scale / aspectRatio;
float frustum_length = FAR_PLANE - NEAR_PLANE;
projectionMatrix = new Matrix4f();
projectionMatrix.m00 = x_scale;
projectionMatrix.m11 = y_scale;
projectionMatrix.m22 = -((FAR_PLANE + NEAR_PLANE) / frustum_length);
projectionMatrix.m23 = -1;
projectionMatrix.m32 = -((2*NEAR_PLANE * FAR_PLANE) / frustum_length);
projectionMatrix.m33 = 0;
}
Z_near,Z_far
值以及您的平均网格大小(三角形)。尝试降低Z_far / Z_near
,例如增加几次Z_near应该会有所帮助。 - Spektre