[OpenGL] OpenGL 3.x/4.x + GLSL version 150으로 화면 안나올 때 대처법

OpenGL ES2를 기준으로 작업을 하다보니, GLSL version을 120정도로 놓고 쓰고 있었는데, OpenGL 3/4를 쓸 일이 있어서 GLSL version을 150으로 올렸다. attribute, varying이 in/out으로 바뀌었나보다라고 단순히 생각하고 있었는데, 아무리 해도 화면에 안나온다 ㅠㅠ

OpenGL 3/4를 기반으로 한 소스(https://open.gl/context)를 살펴보면서 비교를 해봤는데도 크게 다른 점이 없는데 화면에는 안나옴… glBindFragDataLocation까지 건드려 보았지만 별 소득이 없음.

결국 알아낸 원인은 VertexArrayObject였다...

OpenGL 3/4에서는 VertexArrayObject가 만들어 지지 않으면 GLSL도 동작 안함 ㅠㅠ OpenGL 2에서는 VertexArrayObject 없어도 동작함.

glGenVertexArrays(1, &vertexArrayObject);
glBindVertexArray(vertexArrayObject);

두줄로 문제 해결

댓글