Java lwjgl平面边界
我想让白色的正方形有蓝色的边框。我做了双平面,但看到这样的结果似乎奇怪的凌乱的白色和蓝色 在3D Java lwjgl中,有没有好方法为正方形创建边框Java lwjgl平面边界,java,opengl,lwjgl,Java,Opengl,Lwjgl,我想让白色的正方形有蓝色的边框。我做了双平面,但看到这样的结果似乎奇怪的凌乱的白色和蓝色 在3D Java lwjgl中,有没有好方法为正方形创建边框 float d = 1; float f = 1; glColor3f(0, 0, 1); glBegin(GL_QUADS); glVertex3f(-d, f, -f); glVertex3f(-d, -f, -f); glVertex3f(-d, -f, f); glVerte
float d = 1;
float f = 1;
glColor3f(0, 0, 1);
glBegin(GL_QUADS);
glVertex3f(-d, f, -f);
glVertex3f(-d, -f, -f);
glVertex3f(-d, -f, f);
glVertex3f(-d, f, f);
glEnd();
float d = 1;
float f = 0.9f;
glColor3f(1, 1, 1);
glBegin(GL_QUADS);
glVertex3f(-d, f, -f);
glVertex3f(-d, -f, -f);
glVertex3f(-d, -f, f);
glVertex3f(-d, f, f);
glEnd();
奇怪的凌乱的白色和蓝色
听起来像:
Z-fighting,也称为缝合,是3D渲染中的一种现象
当两个或多个基本体在
z缓冲区。在共面多边形中尤其普遍,其中
两个面基本上占据相同的空间,两个面都不在前面。
受影响的像素使用一个多边形或
其他任意的,以由测量精度决定的方式
z缓冲区。它也可以随着场景或摄影机的更改而变化,从而导致
一个多边形“赢得”z测试,然后是另一个多边形,依此类推。总体
效果是两个多边形的闪烁、嘈杂的光栅化
“战斗”给屏幕像素上色。这个问题通常是由
有限的亚像素精度以及浮点和定点
舍入错误
在渲染第二个四边形之前的某个时间,通过glDisable(GL_depth_TEST)禁用深度测试。您描述的工件听起来像是通常所说的“深度战斗”或“z战斗”。如果在启用深度测试的情况下绘制共面多边形,则会发生这种情况 原因是渲染管道中的所有计算都以有限的精度进行。因此,虽然理论上两个共面多边形在任何给定像素上具有相同的深度,但由于精度/圆角效应,其中一个多边形的深度通常会稍大一些。哪一个稍微靠前可能会在像素之间发生变化,导致典型的伪影 要解决此问题,您有许多选项: