Download - ICON 2011 Introduction to OpenGL ES
![Page 1: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/1.jpg)
OpenGL ES 쉽게 입문하기
김 성 완
부산 게임 아카데미
![Page 2: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/2.jpg)
자기 소개
홈페이지: www.g-matrix.pe.kr
블로그: blog.naver.com/kaswan
Twitter ID: idgmatrix
부산에서 3D 게임 프로그래밍을 가르칩니다.
물리학을 전공했고, 늦은 나이에 기상학 공부중.
소프트웨어 렌더러 g-Matrix3d Neo 개발자.
구닥다리 게임 개발자로서 대표작: 예전 미리내에서 출시한 Full Metal Jacket
![Page 3: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/3.jpg)
OpenGL ES 란?
![Page 4: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/4.jpg)
OpenGL ES
• OpenGL ES (Embedded System)
–저수준 2D & 3D Graphics API
–주로 휴대용 기기에 내장하기 위한 OpenGL
–데스크탑 PC용 OpenGL을 축약한 버전
![Page 5: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/5.jpg)
어떤 기기에?
![Page 6: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/6.jpg)
![Page 7: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/7.jpg)
OpenGL ES for iOS
• 그런데 저는 애플빠 입니다.^^
– Apple II (1983)
– Macintosh LC (1993)
– iMac
– MacBook pro
– iPod touch
– iPhone 4
– iPad 2
![Page 8: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/8.jpg)
OpenGL ES for iOS
• OpenGL ES 1.0
• OpenGL ES 1.1
– iPhone, iPhone 3G
• OpenGL ES 2.0
– iPhone 3GS, iPhone 4, iPhone 4S
– iPad, iPad2
![Page 9: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/9.jpg)
![Page 10: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/10.jpg)
![Page 11: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/11.jpg)
id Software
![Page 12: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/12.jpg)
OpenGL 탄생 (1992)
![Page 13: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/13.jpg)
![Page 14: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/14.jpg)
Architecture Review Board
• 3Dlabs, Compaq, Evans & Sutherland, Hewlett-Packard, IBM, Intel, Microsoftand SGI. (2000)
![Page 15: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/15.jpg)
OpenGL ARB
• 1992 Architecture Review Board
• 2003 MS quit
• 2006 pass to Khronos Group
![Page 16: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/16.jpg)
![Page 17: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/17.jpg)
![Page 18: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/18.jpg)
산업 공개 표준
![Page 19: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/19.jpg)
OpenGL ES 입문
![Page 20: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/20.jpg)
OpenGL ES 쉽게 입문하기?
![Page 21: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/21.jpg)
OpenGL ES 쉽게 입문하기?
• 여러분 이거 다 새빨간 거짓말이란 거 잘아시죠?!
![Page 22: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/22.jpg)
그래도 쉬운 건 있다?
• Java 언어는 배우기 쉬운 언어이다!
![Page 23: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/23.jpg)
그래도 쉬운 건 있다?
• Java 언어는 C++보다 배우기 쉬운 언어이다!
![Page 24: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/24.jpg)
공부는 어떻게?
![Page 25: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/25.jpg)
![Page 26: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/26.jpg)
![Page 27: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/27.jpg)
![Page 28: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/28.jpg)
OpenGL First?
![Page 29: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/29.jpg)
OpenGL 은 어디에나
![Page 30: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/30.jpg)
OpenGL 입문
![Page 31: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/31.jpg)
1.0 ~ 4.2
![Page 32: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/32.jpg)
EX CEO of MS
![Page 33: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/33.jpg)
OpenGL vs DirectX
![Page 34: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/34.jpg)
John Carmack 의 선택
![Page 35: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/35.jpg)
Chris Hecker
• An Open Letter to Microsoft: Do the Right Thing for the 3D Game Industry
![Page 36: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/36.jpg)
OpenGL -> OpenGL ES
• OpenGL 1.3 -> OpenGL ES 1.0
• OpenGL 1.5 -> OpenGL ES 1.1
• OpenGL 2.0 -> OpenGL ES 2.0
![Page 37: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/37.jpg)
OpenGL vs OpenGL ES
• No support for glBegin or glEnd. Instead, use vertex arrays and vertex buffer objects
• Supported rasterization primitives are points, lines and triangles. Quads are not supported
• There is no polynomial evaluation stage
• Blocks of fragments can be sent directly to individual fragment operations
• There is no support for display lists
![Page 38: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/38.jpg)
• Gldouble (X)
• GLU 가 지원되지 않는다
• 인덱스 값이 16비트이다.
![Page 39: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/39.jpg)
![Page 40: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/40.jpg)
PowerVR Insider SDK
![Page 41: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/41.jpg)
![Page 42: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/42.jpg)
![Page 43: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/43.jpg)
OpenGL ES로 포팅하기
![Page 44: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/44.jpg)
Xcode로 iOS용 개발하기
![Page 45: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/45.jpg)
Xcode 4.2
![Page 46: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/46.jpg)
![Page 47: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/47.jpg)
OpenGL ES 2.0
![Page 48: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/48.jpg)
![Page 49: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/49.jpg)
![Page 50: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/50.jpg)
WebGL?
• OpenGL ES 2.0 for the Web
![Page 51: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/51.jpg)
Internet Explorer
![Page 52: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/52.jpg)
WebGL을 지원하라고?
![Page 53: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/53.jpg)
못해!
![Page 54: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/54.jpg)
IE 만 있나?
![Page 55: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/55.jpg)
![Page 56: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/56.jpg)
![Page 57: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/57.jpg)
WebGL
• WebGL was created initially at Mozilla, standardized by the Khronos Group, and supported by Google.
• It's built into Chrome and Firefox right now, giving those browsers a way to display hardware-accelerated 3D graphics useful for games and other visually rich tasks.
![Page 58: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/58.jpg)
Google Chrome
![Page 59: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/59.jpg)
![Page 60: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/60.jpg)
![Page 61: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/61.jpg)
![Page 62: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/62.jpg)
Rendering Pipeline
![Page 63: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/63.jpg)
PIPELINE
![Page 64: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/64.jpg)
Transform
![Page 65: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/65.jpg)
glFrustum
![Page 66: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/66.jpg)
![Page 67: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/67.jpg)
![Page 68: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/68.jpg)
![Page 69: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/69.jpg)
Lighting
![Page 70: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/70.jpg)
Phong Lighting Model
![Page 71: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/71.jpg)
Shading Language
![Page 72: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/72.jpg)
GLSL
• OpenGL Shading Language
• Pixar Renderman
• HLSL (DirectX)
• Cg (Nvidia)
![Page 73: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/73.jpg)
Shader Program
![Page 74: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/74.jpg)
![Page 75: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/75.jpg)
Software Rendering
• Software Renderer: g-Matrix 3D Neo
![Page 76: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/76.jpg)
부산게임아카데미
![Page 77: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/77.jpg)
![Page 78: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/78.jpg)
![Page 79: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/79.jpg)
질문?
![Page 80: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/80.jpg)
![Page 81: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/81.jpg)
![Page 82: ICON 2011 Introduction to OpenGL ES](https://reader036.vdocuments.net/reader036/viewer/2022062317/5a66b2837f8b9a21208b46b3/html5/thumbnails/82.jpg)