这是因为位图(.bmp)格式将其行倒置存储。我不确定是谁想出了这个方法,但这是文件格式的事情。所以如果你使用自己的.bmp加载器,是需要这么做的。然而,你可以使用已经编写好了的能够为你“翻转”图像的加载器。再次强调,这只是.bmp格式的事情。OpenGL默认支持非翻转图像。以下是一个小技巧:如果你不想改变你的.bmp加载器,你可以告诉OpenGL为你翻转图像。glMatrixMode(GL_TEXTURE); glLoadIdentity(); glScalef(1.0f, -1.0f, 1.0f); glMatrixMode(GL_MODELVIEW); 这就是我所说的“默认情况”。如果您想的话,可以颠倒OpenGL。然而,这只适用于当你仅加载 .bmp 文件时。其他文件格式会正确地存储它们的行。因此,我更喜欢第一种方法 - 使用真正的 .bmp 加载器。 只是为了明确:如果您加载 .bmp 文件,您必须在将其发送到OpenGL之前手动翻转图像(大多数 .bmp 加载器都会这样做),或者将未翻转的图像发送到OpenGL并在渲染代码之前添加上述代码。