2013-05-10 1 views
1

Я хочу изучить OpenGl, и я следую учебному курсу в http://ogldev.atspace.co.uk/ nicole tutorial 1,2 были переданы. , но в учебнике 3, то есть в треугольнике, я получил ошибку. код компилируется, но всегда запускается ошибка создания шейдерного типа. и я знаю его, возможно, потому, что я использую окна. , но кто-нибудь может мне помочь? или кто-нибудь может дать мне сайт, который разрабатывает openGl в окнах?ошибка создания шейдерного типа 35663

это код

 
    /* 
    Tutorial 03 - First triangle 
    */

#include <stdio.h> 
#include <GL/glew.h> 
#include <GL/freeglut.h> 
#include "math_3d.h" 

GLuint ВБО;

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; }

кроме того, сообщ ошибка, ТНХ к @kilon, которые напоминают мне , так жаль, что я не могу загрузить непосредственно картину сообщ ошибки в моем компьютере. только здесь

error msg

+1

вам также необходимо вставить сообщение об ошибке, чтобы сделать правильный вопрос – Kilon

ответ

0

если вы используете .vsh и .fsh файлы, попробуйте добавить его в проект:

Go to your project -> Targets -> Build Phases -> Copy Bundle Recourses 

и добавить эти два файла.

Надеюсь, что эта помощь.

UPD: эта работа для Mac OS (Xcode).

Смежные вопросы