我目前正在尝试使用OpenGL 3.3和C++与GLM,GLFW3和GLEW库进行渲染,但在尝试创建着色器程序时会出错.
顶点信息
(0):错误C5145:必须写入gl_Position
我已经试图找出为什么会发生这种情况并在其他论坛上询问,但没有人知道原因是什么.这个错误可能有三个可能的原点 - 在我的main.cpp中,我创建窗口,上下文,程序,vao等......
#include <GL/glew.h>
#include <GLFW/glfw3.h>
#include <glm/glm.hpp>
#include <iostream>
#include <string>
#include "util/shaderutil.hpp"
#define WIDTH 800
#define HEIGHT 600
using namespace std;
using namespace glm;
GLuint vao;
GLuint shaderprogram;
void initialize() {
glGenVertexArrays(1, &vao);
glBindVertexArray(vao);
glClearColor(0.5, 0.7, 0.9, 1.0);
string vShaderPath = "shaders/shader.vert";
string fShaderPath = "shaders/shader.frag";
shaderprogram = ShaderUtil::createProgram(vShaderPath.c_str(), fShaderPath.c_str());
}
void render() {
glClear(GL_COLOR_BUFFER_BIT);
glUseProgram(shaderprogram);
glDrawArrays(GL_TRIANGLES, 0, 3);
}
void clean() {
glDeleteProgram(shaderprogram);
}
int main(int argc, char** argv) {
if (!glfwInit()) …Run Code Online (Sandbox Code Playgroud)