我在场景中有一些对象,即使我指定对象A的y = 10(最高对象),从TOP摄像机我可以通过对象A看到底部对象.这是我场景中的图像.

直到今天我才发现一个有趣的属性,它使得模型的顺序很重要,我可能错了.这是另一个图像,我改变了"ship1"的绘制顺序,注意:"ship1"是我的场景,如果我先做ship1.draw();,船会消失(正确),但如果我ship1.draw();在最后,他出现在上面(不正确的).

编辑:我还将我的透视投影类与glm库进行了比较,以确保它不是我的投影矩阵的问题.一切都是正确的.
Edit1:我在git上有我的项目:Arkanoid git存储库(windows,项目已准备好在安装了VS的任何计算机上运行)
Edit2:我不使用法线或纹理.只是顶点和索引.
Edit3:如果场景中的每个对象都使用(共享)来自同一文件的顶点,是否有问题?
Edit4:我还改变了我的Perspective Projection值.我的飞机接近0.0f,现在我接近= 20.0f,远= 500.0f,角度=60º.但没有任何改变,观点确实如此,但深度不是.= /
Edit5:这是我的Vertex和Fragment着色器.
编辑6:随时联系我,我整天都在这里,所以问我什么.目前我正在从零开始重写所有项目.我有两个立方体呈现良好,一个在另一个前面.已经添加了我的类:相机,投影,着色器处理程序.移动到创建和绘制对象的类.
// Vertex shader
in vec4 in_Position;
out vec4 color;
uniform mat4 Model;
uniform mat4 View;
uniform mat4 Projection;
void main(void)
{
color = in_Position;
gl_Position = Projection * View * Model * in_Position;
}
// Fragment shader
#version 330 core
in vec4 color;
out vec4 …Run Code Online (Sandbox Code Playgroud)