WebGL의 무궁무진한 가능성

35
이준호 과장 / NHN Technology Services WebGL 무궁무진한 가능성

description

#한국 웹 20주년 국제 콘퍼런스 GPU를 활용한 고성능 그래픽 표현력을 통해 웹의 가치를 한 단계 끌어올릴 수 있는 WebGL에 대해서 소개합니다.

Transcript of WebGL의 무궁무진한 가능성

Page 1: WebGL의 무궁무진한 가능성

이준호 과장 / NHN Technology Services

WebGL의무궁무진한 가능성

Page 2: WebGL의 무궁무진한 가능성

•What• Now

• How

•Where

Contents

Page 3: WebGL의 무궁무진한 가능성

What?

Page 4: WebGL의 무궁무진한 가능성

초고속 그래픽 렌더링!웹기반 GPU제어

Page 5: WebGL의 무궁무진한 가능성

While(i--){

// 픽셀처리

}

Page 6: WebGL의 무궁무진한 가능성

CPU

Page 7: WebGL의 무궁무진한 가능성

GPU

Page 8: WebGL의 무궁무진한 가능성

DOM SVG CANVAS 2D WEBGL

Video Video Video

Page 9: WebGL의 무궁무진한 가능성

GPU렌더링을 통한

렌더 부하 분산

Application Performance

Page 10: WebGL의 무궁무진한 가능성
Page 11: WebGL의 무궁무진한 가능성
Page 12: WebGL의 무궁무진한 가능성
Page 13: WebGL의 무궁무진한 가능성

Now

Page 14: WebGL의 무궁무진한 가능성

IE11Safari (Mac)

Page 15: WebGL의 무궁무진한 가능성

http://www.koreahtml5.kr/jsp/infoSquare/browserUseStatsKor.jsp?type_code_LIST=USST0002&os_code=all&search_type=D&search_date=201406

85.9% +

Page 16: WebGL의 무궁무진한 가능성

How

Page 17: WebGL의 무궁무진한 가능성

화면출력

Fragment Shader

Vertex Shader

Data(Vertex Buffer)

WebGL API

Page 18: WebGL의 무궁무진한 가능성

“webgl”, “experimental-webgl”, “webkit-3d”, “moz-webgl”

WebGL 초기화

var gl = canvas.getContext(“webgl”)

Page 19: WebGL의 무궁무진한 가능성

Fragment ShaderVertex ShaderData

var vertices = [ 0.0, 1.0, 0.0, //x,y,z1.0, -1.0, 0.0,

-1.0, -1.0, 0.0 ];

var buffer= gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER, buffer);

gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertices));

Page 20: WebGL의 무궁무진한 가능성

Fragment ShaderVertex ShaderData

attribute vec3 aVertexPosition;void main(void) {

gl_Position = vec4(aVertexPosition, 1.0);}

0 1 0 1 -1 0 …. -1 -1 0}}}

Attribute : aVertexPosition -> Vertex Shader

aVertexPosition(0,1,0)

}

aVertexPosition(1,-1,0)

}aVertexPosition

(-1,-1,0)

}

Page 21: WebGL의 무궁무진한 가능성

Fragment ShaderVertex ShaderData

void main(void) {

gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);}

Page 22: WebGL의 무궁무진한 가능성

shader = gl.createShader(Type);

gl.shaderSource(shader, Shader Str);

gl.compileShader(shader);

attribute vec3 aVertexPosition;void main(void) {

gl_Position = vec4(aVertexPosition, 1.0);}

Shader 생성gl.VERTEX_SHADER

gl.FRAGMENT_SHADER

Page 23: WebGL의 무궁무진한 가능성
Page 24: WebGL의 무궁무진한 가능성

추가 자료 - 학습사이트

Beginning WebGLhttp://www.beginningwebgl.com

Learning WebGLhttp://learningwebgl.com/blog/?page_id=1217

Page 25: WebGL의 무궁무진한 가능성

추가 자료 – Framework List

Khronoshttp://www.khronos.org/webgl/wiki/User_Contributions

Page 26: WebGL의 무궁무진한 가능성

추가 자료 – Framework List

bsWebGLhttp://projectbs.github.io/bsWebGL/

ThreeJShttp://threejs.org/

Page 27: WebGL의 무궁무진한 가능성
Page 28: WebGL의 무궁무진한 가능성
Page 29: WebGL의 무궁무진한 가능성

Where

Page 30: WebGL의 무궁무진한 가능성

Game

Page 31: WebGL의 무궁무진한 가능성

BIG DATA 시각화

Page 32: WebGL의 무궁무진한 가능성

UI Interface

Page 33: WebGL의 무궁무진한 가능성

Q&A

Page 34: WebGL의 무궁무진한 가능성

THANK YOU

Page 35: WebGL의 무궁무진한 가능성