小编Doc*_*ock的帖子

OpenGL 3.3/GLSL和C++错误:"必须写入gl_Position"

我目前正在尝试使用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)

c++ opengl glew glsl glfw

4
推荐指数
2
解决办法
1万
查看次数

标签 统计

c++ ×1

glew ×1

glfw ×1

glsl ×1

opengl ×1