본문 바로가기

iOS개발팁

아이폰 OpenGL ES 튜토리얼 시작

안녕하세요. 모바일앱을 개발하며 소소한 즐거움을 찾고 있는 철이(@skyfe)입니다. 아이폰개발 튜토리얼을 꾸준히 올리고자 하는 소망이 있기에 글을 써보려고 합니다. :) 그 시작으로 OpenGL ES 에 대해 다루려고 합니다. 참고로 OpenGL ES 1.x 를 중심으로 시작해서 OpenGL ES 2.x 의 내용을 다루겠습니다.


아이폰의 OpenGL ES

습관은 무서운 것 같습니다. MS Windows플랫폼에서 10년이상 개발을 하다 Mac OS X상에서 프로그래밍 하려니 많은 것이 익숙치 않더군요. 그 중  코어 애니메이션의 레이어 개념이 익숙치 않았습니다. Mac OS X 의 AppKit과 아이폰의 UIKit의 레이어 개념이 크게 다르지 않으니 아이폰 얘기만 하도록 하겠습니다.

아이폰에서 동작하는 OpenGL ES는 코어 애니메이션과 뗄 수 없는 관계입니다. 아이폰상의 UIKit은 성능을 위해서 모든 뷰에 레이어를 제공합니다. 아래 그림처럼 뷰 밑에 레이어가 있다고 생각하시면 됩니다.



레이어를 제공하는 이유는 뷰를 캐쉬하기 위함인데요. 뷰를 캐쉬해 이미지처럼 쓰면서 부드럽고 역동적인 애니메이션 효과를 내는 것입니다.

자세한 내용은 애플의 코어 애니메이션 개발자 문서를 읽어 보시길 바랍니다. OpenGL ES와 코어애니메이션과 뗄 수 없는 관계라고 한 것은 OpenGL ES가 레이어 상에서 동작하기 때문입니다. 코어 애니메이션이 기본적으로 제공하는 레이어에는 CALayer  외에도 CAEAGLLayer 가 있는데 바로 이 레이어 상에서 OpenGL ES 가 동작하는 것입니다. 따라서 OpenGL ES를 사용하려는 UIView 객체는 반드시 CAEAGLLayer를 반환하는 코드를 작성해야 합니다.  코드 작성법은 OpenGL ES 프로그래밍의 바탕 코드를 작성할 때 알아보겠습니다.

오늘은 아주 짧아 아쉽지만 다음 튜토리얼에서 뵙겠습니다. 다음 시간에는 OpenGL ES 프로그래밍 바탕 코드 작성 튜토리얼을 진행하겠습니다.

'iOS개발팁' 카테고리의 다른 글

아이폰과 아이패드 구분하기  (0) 2010.07.29
아이폰 OpenGL ES 튜토리얼 01  (9) 2010.07.19
ObjC 객체의 retainCount 이야기  (0) 2010.07.16
아리송한 ObjC의 레퍼런스 카운트  (2) 2010.07.15
트윗 WWDC10  (0) 2010.06.19