DCRC

실습 참고 자료

2016.04.25 16:55

likidas Views:2527

GLfloat vtxBufferData[] =  {

        -0.1f,-0.1f,-0.1f, 1.0, 0.0, 0.0, // triangle 1 : begin

        -0.1f,-0.1f, 0.1f, 1.0, 0.0, 0.0,

        -0.1f, 0.1f, 0.1f, 1.0, 0.0, 0.0, // triangle 1 : end

        -0.1f,-0.1f,-0.1f, 1.0, 0.0, 0.0,

        -0.1f, 0.1f, 0.1f, 1.0, 0.0, 0.0,

        -0.1f, 0.1f,-0.1f, 1.0, 0.0, 0.0,

        

        0.1f, 0.1f,-0.1f, 0.0, 1.0, 0.0, // triangle 3 : begin

        -0.1f,-0.1f,-0.1f, 0.0, 1.0, 0.0,

        -0.1f, 0.1f,-0.1f, 0.0, 1.0, 0.0,  // triangle 3 : end

        0.1f, 0.1f,-0.1f, 0.0, 1.0, 0.0,

        0.1f,-0.1f,-0.1f, 0.0, 1.0, 0.0,

        -0.1f,-0.1f,-0.1f, 0.0, 1.0, 0.0,

        

        0.1f,-0.1f, 0.1f, 0.0, 0.0, 1.0,

        -0.1f,-0.1f,-0.1f, 0.0, 0.0, 1.0,

        0.1f,-0.1f,-0.1f, 0.0, 0.0, 1.0,

        0.1f,-0.1f, 0.1f, 0.0, 0.0, 1.0,

        -0.1f,-0.1f, 0.1f, 0.0, 0.0, 1.0,

        -0.1f,-0.1f,-0.1f, 0.0, 0.0, 1.0,

        

        -0.1f, 0.1f, 0.1f, 1.0, 1.0, 0.0,

        -0.1f,-0.1f, 0.1f, 1.0, 1.0, 0.0,

        0.1f,-0.1f, 0.1f, 1.0, 1.0, 0.0,

        0.1f, 0.1f, 0.1f, 1.0, 1.0, 0.0,

        -0.1f, 0.1f, 0.1f, 1.0, 1.0, 0.0,

        0.1f,-0.1f, 0.1f, 1.0, 1.0, 0.0,

        

        0.1f, 0.1f, 0.1f, 1.0, 0.0, 1.0,

        0.1f,-0.1f,-0.1f, 1.0, 0.0, 1.0,

        0.1f, 0.1f,-0.1f, 1.0, 0.0, 1.0,

        0.1f,-0.1f,-0.1f, 1.0, 0.0, 1.0,

        0.1f, 0.1f, 0.1f, 1.0, 0.0, 1.0,

        0.1f,-0.1f, 0.1f, 1.0, 0.0, 1.0,

        

        0.1f, 0.1f, 0.1f, 0.0, 1.0, 1.0,

        0.1f, 0.1f,-0.1f, 0.0, 1.0, 1.0,

        -0.1f, 0.1f,-0.1f, 0.0, 1.0, 1.0,

        0.1f, 0.1f, 0.1f, 0.0, 1.0, 1.0,

        -0.1f, 0.1f,-0.1f, 0.0, 1.0, 1.0,

        -0.1f, 0.1f, 0.1f, 0.0, 1.0, 1.0

    };

 //1.

    //Generate VAO

    GLuint VertexArrayID;

    glGenVertexArrays(1, &VertexArrayID);


    GLuint VBOs[2];

    glGenBuffers(2, VBOs);

    


 

    glBindVertexArray(VertexArrayID);


    glBindBuffer(GL_ARRAY_BUFFER, vboID);

    glBufferData(GL_ARRAY_BUFFER, sizeof(GLfloat)*36*6, vtxBufferData, GL_STATIC_DRAW);

    


    GLuint posID = glGetAttribLocation(programID, "a_Pos");

    glVertexAttribPointer(posID, 3, GL_FLOAT, GL_FALSE, sizeof(GLfloat)*6, ((GLvoid*)(0)));

    glEnableVertexAttribArray(posID);

    

    GLuint colID = glGetAttribLocation(programID, "a_Col");

    glVertexAttribPointer(colID, 3, GL_FLOAT, GL_FALSE, sizeof(GLfloat)*6, ((GLvoid*)(sizeof(GLfloat)*3)));

    glEnableVertexAttribArray(colID);