我的 OpenGL 应用程序出现问题。当我没有启用 DEPTH_TEST 时,它绘制得很好(除了错误的绘制顺序),但如果我启用它,一切都会开始闪烁。OpenGL 不会给出任何错误。我也没有忘记glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);。我对导致我的问题的原因一无所知。任何帮助,将不胜感激。
#include <iostream>
#include <SDL2\SDL.h>
#include <GL\glew.h>
#include <glm\glm.hpp>
#include <glm\gtc\matrix_transform.hpp>
#include <fstream>
#include <string>
#include "vertexdata.h"
#define WIDTH 800
#define HEIGHT 600
std::string filetobuf(const char*);
int main(int, char**) {
// Init the window with an OpenGL context
SDL_Window *window;
SDL_Init(SDL_INIT_EVERYTHING);
window = SDL_CreateWindow("SDL window", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, WIDTH, HEIGHT, SDL_WINDOW_OPENGL);
SDL_GLContext context = SDL_GL_CreateContext(window);
glewInit();
// Create the shaders
std::string vertexsourceString = filetobuf("tutorial2.vert");
std::string fragmentsourceString = filetobuf("tutorial2.frag");
const char* vertexsource …Run Code Online (Sandbox Code Playgroud)