glBindVertexArray에 해당하는 글 1

Opengl Shader Program Disable

300x250

 

쉐이더 프로그램을 종료하기 위해서는  NULL 또는 0으로 값을 넣어서 종료시켜줘야 합니다.

glUseProgram(NULL); 또는 glUseProgram(0);

 

 

아래 여러 예를 들어볼께요.

예제1 ) 단순 프로그램 종료 예시 입니다.

만약 glUseProgramObjectARB을 사용했다면 똑같이 glUseProgramObjectARB로 사용하면 됩니다.

programID = LoadShaders("VertexShader.txt", "FragmentShader.txt");
glUseProgram(programID);
...
...
...
glUseProgram(NULL);

 

예제2) 여러 버퍼를 바인딩한 경우의 예시

프로그램 사용과 VAO 바인딩, 각종 버퍼를 바인딩 한 경우에는 전부 해제해줘야 한다.

programID = LoadShaders("VertexShader.txt", "FragmentShader.txt");
glUseProgram(programID);

glGenVertexArrays(1, &VAO[0]);  // 1.할당 (앞에 인자는 1개 의미)
glBindVertexArray(VAO[0]);

glGenBuffers(1, &VBO[0]);  // 1.할당 (앞에 인자는 1개 의미)
glBindBuffer(GL_ARRAY_BUFFER, VBO[0]);

glGenBuffers(1, &EBO);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO);

...
...
...
glUseProgram(NULL);
glBindVertexArray(NULL);
glBindBuffer(GL_ARRAY_BUFFER, NULL);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, NULL);

 

 

300x250

댓글()