WebGL의 무궁무진한 가능성

Post on 01-Jul-2015

628 views 1 download

description

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

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

이준호 과장 / NHN Technology Services

WebGL의무궁무진한 가능성

•What• Now

• How

•Where

Contents

What?

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

While(i--){

// 픽셀처리

}

CPU

GPU

DOM SVG CANVAS 2D WEBGL

Video Video Video

GPU렌더링을 통한

렌더 부하 분산

Application Performance

Now

IE11Safari (Mac)

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

85.9% +

How

화면출력

Fragment Shader

Vertex Shader

Data(Vertex Buffer)

WebGL API

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

WebGL 초기화

var gl = canvas.getContext(“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));

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)

}

Fragment ShaderVertex ShaderData

void main(void) {

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

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

추가 자료 - 학습사이트

Beginning WebGLhttp://www.beginningwebgl.com

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

추가 자료 – Framework List

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

추가 자료 – Framework List

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

ThreeJShttp://threejs.org/

Where

Game

BIG DATA 시각화

UI Interface

Q&A

THANK YOU