MIM발표-OpenGL ES_신진수

Download Report

Transcript MIM발표-OpenGL ES_신진수

OpenGL ES
Samsung Software Membership
3D MIM
신진수
INTRODUCTION
•
•
•
•
휴대 단말기 및 임베디드 장치용 공개 표준 API
OpenGL API 기반 - Khronos Group 관리
WebGL, OpenGL for brower, NOKIA, Iphone SDK, Pandora console,
Android 등의 3D 라이브러리
경량의 API + Shader + EGL 로 구성
DIFFERENCE WITH OPENGL
•
모바일 환경의 제약성으로 인한 경량 API
OpenGL
직접 모드 ,Display list (glBegin /
glEnd ), Vertax array 사용
OpenGL ES
Vertex array만 사용
함수 접미어 (Glbyte, Glubyte, Glshort) 사용 안함
•
색상값 – short 사용
색상값 – ubyte 사용
floating point (0.07 = 0.7e -1)
fixed point (0.07 = 0.07)
Transform 등 다수 함수 Double 사용
Double 함수 제거 및 수정
Quad, polygon 사용
삭제, triangle 사용
색상 재질 다양함
GL_AMBIENT_AND_DIFFUSE 지원
그 밖의 다수 API 삭제 및 수정
OPNEGL ES SHADER
•
•
•
OpenGL ES 2.0 API 명세서와 함께 OpenGL ES 2.0 프로그램 구성
Vertex Shader – 정점에서 실행되는 메소드 구현
Fragment Shader – 프래그먼트 실행 메소드 구현
OPNEGL ES SHADER
•
Shader Program - OpenGL ES SL 로 구성
•
Vertex Shader -> varing 변수
–
Attribute, uniforms, Sampler, Shader program 입력
•
Primitive Assembly – 정점들을 점 선 스프라이트 삼각형 조합 및 클리핑
•
Rasterization – 2차원 프래그먼트 집합으로 변환 (깊이, 스텐실, 컬러, 위치)
•
Fragment Shder -> gl_FlagColor
–
•
Varing, Uniforms, Sampler, Shader Program 입력
Per-Fragment Operaton
–
Fragment datar -> pixel Ownership test -> Scissor test -> Stencil and depth test ->
Blending -> Dithering -> framebuffer
EGL
OpenGL ES 2.0 api
OpenGL ES 2.0 SL
EGL library
OS
EGL
•
시스템과 특정 윈도우잉 통신
–
–
•
평면 그리기 타입 구조 질의
–
–
–
•
eglCreateWindowSurface
eglCreatePbufferSurface
렌더링 문맥 생성
–
–
•
•
eglGetConfigs
EGLConfig – 다양한 속성
eglChooseComfig
평면 그리기 생성
–
–
•
eglGetDisplay
초기화 : eglInitialize
eglCreateContext
eglmakeCurrent
다른 렌더링 API사이의 렌더링 동기화
텍스쳐 맵등 렌더링 리소스 관리
AMULATION
•
AMD OpenGL ES Emulator
–
•
http://developer.amd.com/GPU/OPENGL/Pages/default.aspx
Imagination Technologies OpenGL ES 2.0 Emulator
–
http://www.imgtec.com/powervr/insider/sdk/KhronosOpenGLES2xSGX.asp
OPENGL ES DEMO MOVIE
•
WebGL on NOKIA N900
http://www.engadget.com/2009/12/03/nokia-n900-impressively-demoswebgl-3d-graphics/
•
OpenGL ES 2.0 on Iphone
http://www.youtube.com/watch?v=W_AsU-5CsYA
–
DEMO
Q&A