2013-01-25 3 views
1

OpenGL을 배우려고 시도한 것은 이번이 처음입니다. 책의 예를 따르고 있습니다. OS X 10.8에서 Xcode를 사용하고 있습니다. 코드는 다음과 같습니다.Xcode 실행 파일이 glsl 파일을 찾을 수 없습니다.

#include "Angel.h" 

const int numPoints = 5000; 
typedef vec2 point2; 

void init(){ 

    point2 points[numPoints]; 
    point2 vertices[3] = { 
     point2(-1.0, -1.0), point2(0.0, 1.0), point2(1.0, -1.0) 
    }; 

    points[0] = point2(0.25, 0.5); 

    for (int k = 1; k < numPoints; k++) { 
     int j = rand()%3; 
     points[k] = (points[k-1]+vertices[j])/2.0; 
    } 

    GLuint program = InitShader("vertex.glsl", "fragment.glsl"); 
    glUseProgram(program); 

    GLuint abuffer; 
    glGenVertexArraysAPPLE(1, &abuffer); 
    glBindVertexArrayAPPLE(abuffer); 

    GLuint buffer; 
    glGenBuffers(1, &buffer); 
    glBindBuffer(GL_ARRAY_BUFFER, buffer); 
    glBufferData(GL_ARRAY_BUFFER, sizeof(points), points, GL_STATIC_DRAW); 

    GLuint location = glGetAttribLocation(program, "vPosition"); 
    glEnableVertexAttribArray(location); 
    glVertexAttribPointer(location, 2, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET(0)); 

    glClearColor(1.0, 1.0, 1.0, 1.0); 

} 


void display(){ 
    glClear(GL_COLOR_BUFFER_BIT); 
    glDrawArrays(GL_POINTS, 0, numPoints); 
    glFlush(); 
} 

int main(int argc, char** argv){ 
    glutInit(&argc, argv); 
    glutInitDisplayMode(GLUT_RGBA); 
    glutInitWindowSize(640, 480); 

    glutCreateWindow("Sierpinski Gasket"); 

    init(); 
    glutDisplayFunc(display); 
    glutMainLoop(); 

    return 0; 
} 

컴파일됩니다. 그러나 그것을 실행하려고하면 창이 나타나지 않습니다. 이 문제는 init() 함수를 호출 할 때 발생합니다. 창이 없으면 검정색 배경이 나타납니다. 그것으로, 창문이 없습니다. 코드는 here입니다. 는 쉐이더 파일을 찾을 수 없습니다 있기 때문에

UPDATE는 분명히 프로그램은 라인 GLuint program = InitShader("vertex.glsl", "fragment.glsl");에 종료된다. 파일을 사용하도록 프로그램에 지시하려면 어떻게해야합니까? 나는 .h.cpp 같은 폴더에 .glsl 파일을 가지고 있지만 Xcode가 프로젝트를 빌드 할 때 실행 파일이 .glsl 파일과 같은 위치에 있지 않다는 것을 의미합니다. Xcode에서 이것을 어떻게 해결할 수 있습니까?

답변

관련 문제