티스토리 뷰
OpenGL 2.0은 fixed function pipeline이 없으므로 무조건 GLSL을 사용해야 된다는 것은 익히 알려진 사실이다.
그러면 fixed function pipeline에서 사용하던 어떤 함수들을 사용할수 없을까?
1.0에서 2.0으로 전환하려면 단순하게 GLSurfaceView에서 다음과 같은 문장을 추가하게 되면 2.0을 사용하게 되는 환경으로 전환하게 된다.
setEGLContextClientVersion(2);
그런데 1.0으로 작성한 코드중에 대부분은 다음과 같은 에러가 발생하게 된다.
E/libEGL(7744): called unimplemented OpenGL ES API
이런 에러메세지들의 대부분은 vertex array에서 발생한다.
glEnableClientState, glDisableClientState, glVertexPointer, glTexCoordPointer, glColorPointer, glNormalPointer...
대신에 다음과 같은 함수를 써서 vertex attribute를 사용해야 한다.
glEnableVertexAttribArray, glVertexAttribPointer
그리고 텍스처 합성을 fragment shader에서 하기 때문에 glTexEnv*함수가 전체가 지원이 안된다.
마지막으로 transform 관련 함수가 vertex shader에서 지원하게 되므로 matrix관련 함수가 지원이 되지 않는다.
glMatrixMode, glTranslatef, glRotatef, glScalef, gluPerspective, gluOrtho2D...
http://stackoverflow.com/questions/7777605/opengl-es-1-1-to-2-0-a-major-change
'게임 프로그래밍' 카테고리의 다른 글
Unity3D 안드로이드 프로젝트 Export시 JDK가 없다고 나오는 경우 (0) | 2016.04.14 |
---|---|
Unity3D AngryBots 프로젝트 위치 (0) | 2016.04.14 |
OpenGL 비트맵 폰트 예제 (0) | 2016.04.07 |
Cocos2d-x wide screen 해상도 설정하기 (0) | 2016.04.06 |
Unity3D vs Cocos2d-x 비교 (2) | 2016.04.06 |
- Total
- Today
- Yesterday