Opengl Shader Program Disable
윈도우 프로그래밍/OpenGL2022. 11. 29. 13:54
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
'윈도우 프로그래밍 > OpenGL' 카테고리의 다른 글
OpenGL 강좌3 - EBO + VAO + VBO (0) | 2022.10.26 |
---|---|
OpenGL 강좌2 - VBO (VertexBufferObject) (0) | 2022.10.26 |
OpenGL 강좌1 - MFC 윈도우창에 띄우기 (32비트, 64비트 설정 포함) 및 예제코드 (1) | 2022.09.30 |
OpenGl SuperBible 6 [예제 3-9] 지오메트리 쉐이더 (0) | 2020.07.27 |
OpenGl SuperBible 6 [예제 3-8] 테셀레이션 이벨류에이션 쉐이더 (0) | 2020.07.27 |
댓글()