이준호과장/ NHN Technology ServicesWebGL의무궁무진한가능성
•What•Now•How•Where 
Contents
What?
초고속그래픽렌더링! 
웹기반GPU제어
While(i--){ // 픽셀처리}
CPU
GPU
DOM 
SVG 
CANVAS 2D 
WEBGL 
Video 
Video 
Video
GPU렌더링을통한 
렌더부하분산Application Performance
Now
IE11 
Safari (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 ShaderVertex ShaderData(Vertex Buffer) 
WebGLAPI
“webgl”, “experimental-webgl”, 
“webkit-3d”, “moz-webgl” 
WebGL초기화 
vargl= canvas.getContext(“webgl”)
Fragment Shader 
Vertex Shader 
Datavarvertices= [ 0.0, 1.0, 0.0, //x,y,z1.0, -1.0, 0.0, -1.0, -1.0, 0.0 ]; 
varbuffer= gl.createBuffer(); 
gl.bindBuffer(gl.ARRAY_BUFFER,buffer); 
gl.bufferData(gl.ARRAY_BUFFER,new Float32Array(vertices));
Fragment Shader 
Vertex Shader 
Data 
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 Shader 
Vertex Shader 
Data 
void main(void) { 
gl_FragColor= vec4(1.0, 1.0, 1.0, 1.0); 
}
shader= gl.createShader(Type); gl.shaderSource(shader, ShaderStr); 
gl.compileShader(shader); 
attribute vec3 aVertexPosition; 
void main(void) { 
gl_Position = vec4(aVertexPosition, 1.0); 
} 
Shader생성 
gl.VERTEX_SHADER 
gl.FRAGMENT_SHADER
추가자료-학습사이트 
Beginning WebGL 
http://www.beginningwebgl.comLearning WebGL 
http://learningwebgl.com/blog/?page_id=1217
추가자료–Framework List 
Khronoshttp://www.khronos.org/webgl/wiki/User_Contributions
추가자료–Framework ListbsWebGL 
http://projectbs.github.io/bsWebGL/ ThreeJS 
http://threejs.org/
Where
Game
BIG DATA 시각화
UI Interface
Q&A
THANK YOU
WebGL의 무궁무진한 가능성

WebGL의 무궁무진한 가능성