我想学习OpenGl,并按照http://ogldev.atspace.co.uk/中的教程进行操作 很好的教程1,2已通过。 但是在教程3上,这是一个三角形,我得到了错误。代码是编译但运行总是得到错误创建着色器类型。我知道它可能是因为我使用的是Windows。 但任何人都可以帮助我吗?或者任何人都可以给我在windows中开发openGl的网站?
这是代码
/* Tutorial 03 - First triangle */#include <stdio.h> #include <GL/glew.h> #include <GL/freeglut.h> #include "math_3d.h"
GLuint VBO;
static void RenderSceneCB() { glClear(GL_COLOR_BUFFER_BIT); glEnableVertexAttribArray(0); glBindBuffer(GL_ARRAY_BUFFER, VBO); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0); glDrawArrays(GL_TRIANGLES, 0, 3); glDisableVertexAttribArray(0); glutSwapBuffers(); } static void InitializeGlutCallbacks() { glutDisplayFunc(RenderSceneCB); } static void CreateVertexBuffer() { Vector3f Vertices[3]; Vertices[0] = Vector3f(-1.0f, -1.0f, 0.0f); Vertices[1] = Vector3f(1.0f, -1.0f, 0.0f); Vertices[2] = Vector3f(0.0f, 1.0f, 0.0f); glGenBuffers(1, &VBO); glBindBuffer(GL_ARRAY_BUFFER, VBO); glBufferData(GL_ARRAY_BUFFER, sizeof(Vertices), Vertices, GL_STATIC_DRAW); } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA); glutInitWindowSize(1024, 768); glutInitWindowPosition(100, 100); glutCreateWindow("Tutorial 03"); InitializeGlutCallbacks(); // Must be done after glut is initialized! GLenum res = glewInit(); if (res != GLEW_OK) { fprintf(stderr, "Error: '%s'\n", glewGetErrorString(res)); return 1; } glClearColor(0.0f, 0.0f, 0.0f, 0.0f); CreateVertexBuffer(); glutMainLoop(); return 0; }
另外还有错误消息msg,thx到@kilon提醒我 ,很抱歉,我无法直接上传我的电脑中的错误信息图片。 就在这里
答案 0 :(得分:0)
如果您使用.vsh和.fsh文件,请尝试将其添加到您的项目中:
Go to your project -> Targets -> Build Phases -> Copy Bundle Recourses
并添加这两个文件。
希望得到这个帮助。
UPD:适用于Mac OS(Xcode)。