SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
쉽게 풀어보는
WebGL
projectBS 오명운
웹지엘이냐 웹지Hell이냐..
Naver D2 발표
목 차
• WebGL, 뭐냐?
• WebGL, 왜 써?
• WebGL, 어따 써?
• WebGL, 할 수 있나?
• WebGL, 맛만 보자
• WebGL, 뛰어들기
WebGL, 뭐냐?
 웹 브라우저에서
 아무런 플러그인 없이
 3D 그래픽을 그릴 수 있는
 사실 상의 표준 3D 그래픽 라이브러리
WebGL은 뭐다?
 W3C에서 관리하지 않음
• 당연히 W3C HTML5 스펙에 WebGL 없음
사실 상의 표준?
사실 상의 표준?
사용률 기준 글로벌 브라우저
75% 거의 다 WebGL 지원
WebGL, 왜 써?
 GPU를 쓴다
• 그리는 성능 그 자체가 뛰어나다
• CPU에게 더 많은 여유를 준다
더 훨씬 나은 성능X
그리는 성능 그 자체
CPU vs GPU
http://youtu.be/-P28LKWTzrI
그리는 성능 그 자체
Canvas2D vs WebGL
CPU에게 더 많은 여유
 non-blocking
• JavaScript는
• WebGL API인 gl.draw***() 호출로
• 그리기를 GPU에 위임하고
• 그리기 결과 대기 없이
• 바로 다음 라인의 JavaScript 수행
WebGL, 어따 써?
게임.. 너무 당연하다
Data Visualization
Big Data → Realtime Big Data
이모 : 고모
=
엄마 : ??
Ent. Java Architecture : 제니퍼소프트
=
Realtime Big Data : Data Visualization
이모 : 고모
=
엄마 : 아빠
Data Visualization 사례
https://developers.google.com/events/io/sessions/327631300
다양한 웹 기반 에디터
 Text Editor
 Graph Editor
 IDE
 Photoshop
 AfterEffect
 음악 편집
 뮤직 비디오
설치형 Native App보다
Cloud형 Web App이 좋은 점
유지 관리성 ↑
과금 편리성 ↑
불법 복제 손실 ↓
외쿡 일자리
WebGL, 할 수 있나?
환경은 이미 지원
남은 건 공부
 GLSL(OpenGL Shading Language)
 수학(행렬, 삼각함수, …)
쉽게 쓰기
 Three.js
 Screen.js
 PhiloGL
 GLGE
 … 많음
WebGL 계의
jQuery
WebGL, 맛만 보자
큰 흐름
Hello Triangle
Canvas에서 WebGL Context 가져오기
Viewport 초기화
Shader 소스 컴파일, Shader Program 생성
삼각형 정보 생성
Shader Program에 삼각형 정보 전달 및 gl.draw***() 호출
Shader 소스 작성
요 세 놈은
소스가 늘 거의 같다
(딱히 할 게 없다)
WebGL, 뛰어들기
사랑스런 우리말
 http://www.bswebgl.com/
 https://github.com/hanmomhanda/WebGL
-Study/
 https://developer.mozilla.org/ko/docs/W
eb/WebGL (목차만 우리말)
울렁스런 외국말
 http://beginningwebgl.com/
 http://learningwebgl.com/blog/?page_id=
1217
 https://developer.mozilla.org/en-
US/docs/Web/WebGL
볼거리
 http://www.chromeexperiments.com/webgl/
 https://developer.mozilla.org/ko/demos/ta
g/tech:webgl
 http://webglsamples.org/
어쩌면 소모임을 만들지도..
Q&A는
시원하게 생략!!
감사합니다!

Weitere ähnliche Inhalte

Was ist angesagt?

WebSocketのキホン
WebSocketのキホンWebSocketのキホン
WebSocketのキホン
You_Kinjoh
 
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
devCAT Studio, NEXON
 
훌륭한 개발자로 성장하기
훌륭한 개발자로 성장하기훌륭한 개발자로 성장하기
훌륭한 개발자로 성장하기
Changyol BAEK
 
AWS 기반 마이크로 프론트엔드 아키텍처 구축하기
AWS 기반 마이크로 프론트엔드 아키텍처 구축하기AWS 기반 마이크로 프론트엔드 아키텍처 구축하기
AWS 기반 마이크로 프론트엔드 아키텍처 구축하기
Eunsu Kim
 

Was ist angesagt? (20)

JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例
 
軽くRDB再入門とGraph DB 入門
軽くRDB再入門とGraph DB 入門軽くRDB再入門とGraph DB 入門
軽くRDB再入門とGraph DB 入門
 
Introduction to three.js
Introduction to three.jsIntroduction to three.js
Introduction to three.js
 
Three.js
Three.jsThree.js
Three.js
 
WebSocketのキホン
WebSocketのキホンWebSocketのキホン
WebSocketのキホン
 
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴
 
프론트엔드 개발자를 위한 Layer Model
프론트엔드 개발자를 위한 Layer Model프론트엔드 개발자를 위한 Layer Model
프론트엔드 개발자를 위한 Layer Model
 
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
 
2015-10-31 クラウドネイティヴ時代の運用を考える 〜 ドキュメント駆動運用へ
2015-10-31 クラウドネイティヴ時代の運用を考える  〜 ドキュメント駆動運用へ2015-10-31 クラウドネイティヴ時代の運用を考える  〜 ドキュメント駆動運用へ
2015-10-31 クラウドネイティヴ時代の運用を考える 〜 ドキュメント駆動運用へ
 
훌륭한 개발자로 성장하기
훌륭한 개발자로 성장하기훌륭한 개발자로 성장하기
훌륭한 개발자로 성장하기
 
삶이편해지는_백엔드_개발자_지식.pdf
삶이편해지는_백엔드_개발자_지식.pdf삶이편해지는_백엔드_개발자_지식.pdf
삶이편해지는_백엔드_개발자_지식.pdf
 
NAVER TECH CONCERT_FE2019_오늘부터 나도 FE 성능분석가
NAVER TECH CONCERT_FE2019_오늘부터 나도 FE 성능분석가NAVER TECH CONCERT_FE2019_오늘부터 나도 FE 성능분석가
NAVER TECH CONCERT_FE2019_오늘부터 나도 FE 성능분석가
 
AWS 기반 마이크로 프론트엔드 아키텍처 구축하기
AWS 기반 마이크로 프론트엔드 아키텍처 구축하기AWS 기반 마이크로 프론트엔드 아키텍처 구축하기
AWS 기반 마이크로 프론트엔드 아키텍처 구축하기
 
React vac pattern
React vac patternReact vac pattern
React vac pattern
 
빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x
 
파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)
 
[SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론
[SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론[SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론
[SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론
 
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
 
SPA時代のOGPとの戦い方
SPA時代のOGPとの戦い方SPA時代のOGPとの戦い方
SPA時代のOGPとの戦い方
 

Ähnlich wie 쉽게 풀어보는 WebGL

윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
devCAT Studio, NEXON
 
드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서
draghome
 

Ähnlich wie 쉽게 풀어보는 WebGL (20)

WebGL
WebGLWebGL
WebGL
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
 
2013 W3C HTML5 Day Conferences:HTML5 Game App 개발 및 이슈
2013 W3C HTML5 Day Conferences:HTML5 Game App 개발 및 이슈2013 W3C HTML5 Day Conferences:HTML5 Game App 개발 및 이슈
2013 W3C HTML5 Day Conferences:HTML5 Game App 개발 및 이슈
 
(알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막
(알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막(알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막
(알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막
 
그루비 소개 발표자료 - 김연수
그루비 소개 발표자료 - 김연수그루비 소개 발표자료 - 김연수
그루비 소개 발표자료 - 김연수
 
JS Game Engines
JS Game EnginesJS Game Engines
JS Game Engines
 
[스마트스터디]스마트스터디처럼 Django 쓰지 마세요
[스마트스터디]스마트스터디처럼 Django 쓰지 마세요[스마트스터디]스마트스터디처럼 Django 쓰지 마세요
[스마트스터디]스마트스터디처럼 Django 쓰지 마세요
 
지금까지 상상한 Web 표현의한계를넘자 WebGL
지금까지 상상한 Web 표현의한계를넘자 WebGL지금까지 상상한 Web 표현의한계를넘자 WebGL
지금까지 상상한 Web 표현의한계를넘자 WebGL
 
HTML5 관점에서 본 2015년 웹개발 트렌드 및 인사이트
HTML5 관점에서 본 2015년 웹개발 트렌드 및 인사이트HTML5 관점에서 본 2015년 웹개발 트렌드 및 인사이트
HTML5 관점에서 본 2015년 웹개발 트렌드 및 인사이트
 
Html5 ie9
Html5 ie9Html5 ie9
Html5 ie9
 
무식하게 배우는 gradle
무식하게 배우는 gradle무식하게 배우는 gradle
무식하게 배우는 gradle
 
지금 우리에게 필요한 것은
지금 우리에게 필요한 것은지금 우리에게 필요한 것은
지금 우리에게 필요한 것은
 
[부스트캠퍼세미나]권혁우_REST는 바이바이_ GraphQL과 함께하는 칼퇴시대
[부스트캠퍼세미나]권혁우_REST는 바이바이_ GraphQL과 함께하는 칼퇴시대[부스트캠퍼세미나]권혁우_REST는 바이바이_ GraphQL과 함께하는 칼퇴시대
[부스트캠퍼세미나]권혁우_REST는 바이바이_ GraphQL과 함께하는 칼퇴시대
 
Saturday Azure Live 1701 Azure WebApp 개념원리
Saturday Azure Live 1701 Azure WebApp 개념원리Saturday Azure Live 1701 Azure WebApp 개념원리
Saturday Azure Live 1701 Azure WebApp 개념원리
 
웹 기반 하이퍼포먼스 그래픽 처리 - 문경두
웹 기반 하이퍼포먼스 그래픽 처리 - 문경두웹 기반 하이퍼포먼스 그래픽 처리 - 문경두
웹 기반 하이퍼포먼스 그래픽 처리 - 문경두
 
[세미나] 20160520 Gradle
[세미나] 20160520 Gradle[세미나] 20160520 Gradle
[세미나] 20160520 Gradle
 
2020년 7월 19일 개발 이야기 정리
2020년 7월 19일 개발 이야기 정리2020년 7월 19일 개발 이야기 정리
2020년 7월 19일 개발 이야기 정리
 
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
 
드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서
 
Golang+on+analytics+and+blockchain
Golang+on+analytics+and+blockchainGolang+on+analytics+and+blockchain
Golang+on+analytics+and+blockchain
 

쉽게 풀어보는 WebGL