SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Downloaden Sie, um offline zu lesen
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Three.js로 웹에서 3D 개발하기
JavaScript로 3D 게임을 만들 수 있다?!
2023.05.26
김혜린
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
목차
1 Three.js란?
2 Three.js,어디에사용되고있을까?
3 Three.js로움직이는3D도형그리기
4 Three.js의장점/한계와전망
a table of contents
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 1 Three.js란?
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Three.js란?
Part1
웹 페이지에 3D 객체를 렌더링할 수 있도록 도와주는
JavaScript 오픈소스 라이브러리
WebGL 기술을 바탕으로 렌더링, 카메라, 조명 등의
3D 프로그래밍 기술을 쉽게 사용할 수 있도록 해준다.
https://github.com/mrdoob/three.js
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Three.js란?
Part1
Ricardo Cabello
• 스페인 바르셀로나 출생(현재 일본 거주)
• 디자이너로 커리어를 시작
• ‘데모씬’이라는 컴퓨터 아트 서브 컬쳐에서 활동하면서
재사용 가능한 3D 툴의 필요성을 느껴 Three.js를 만들기 시작
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
웹에서도
쓰고싶어!
WebGL?
Part1
OpenGL(Graphic Library) WebGL
• GPU와 통신하여 2D, 3D 그래픽을 표현
할수있도록해주는API규격또는라이브
러리
• C언어기반
• 무엇을,어떻게그릴지에관한함수들
• 함수를호출하면드라이버를통해GPU와
소통
• VR, CAD, 게임, 시각화, 시뮬레이션 등에
많이사용
• 애플리케이션과 그래픽 카드 사이에서
2D/3D 물체들을 웹페이지에 띄워주는
JavaScript라이브러리
• HTML5canvas요소위에그림
• 모바일브라우저에서도사용가능
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
WebGL?
Part1
Shaders
webGL을통해전송하는요소들
• vertex:점
• fragment:색깔
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Three.js의개념
Part1
어렵고직관적이지못한webGL을편하게쓸수있도록한번더감싼JavaScript라이브러리(==함수들)
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Three.js의개념
Part1
82줄 -> 18줄
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Three.js의개념
Part1
1 Scene을만들어Camera로비춘다.
2 Scene안에원하는(3D)Object들을넣는다.
3 그전체를Renderer로HTMLcanvas안에렌더링한다.
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 2 Three.js, 어디에 사용되고 있을까?
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
일반 웹사이트/서비스
Part2
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
온라인 트리 꾸미기
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
랜딩 페이지(나라 소개)
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
개인 포트폴리오(ex: Bruno Simon)
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
마케팅
Part2
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
GUCCI 제품 소개 페이지
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
캔김치
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
게임
Part2
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
핀볼 게임
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
온라인 기사
Part2
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 3 Three.js로 움직이는 3D 도형 그리기
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Three.js설치하기
Part3
JavaScriptPackageManager이용하기(npm,yarn,pnpm…)
CDN
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
index.html파일
Part3
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Renderer,Scene그리고Camera준비하기
Part3
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
빙글빙글돌아가는정육면체렌더링하기(Mesh,setAnimationLoop)
Part3
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
개체움직이기
Part3
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
외부모델불러오기
Part3
애드온중하나인GLTFLoader를import하여모델을불러올수있습니다.
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
외부모델불러오기
Part3
https://sketchfab.com/
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
외부모델불러오기
Part3
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 4 Three.js의 장점/한계와 전망
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Three.js의장점
Part4
1
2
web에서인터랙티브한/몰입감있는사용자경험을줄수있다.
3
러닝커브가낮다.
가장오래되고큰커뮤니티를가졌고,꾸준히업데이트되고있다.
4 react-three-fiber등으로React에서편하게개발이가능하다.
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Three.js의한계
Part4
1 모델링을하지않으면멋진작품을만들기어렵다.
2 게임개발엔진들보다세세한기능들이부족하다.
3 TypeScript기반이아니다.
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
3D라이브러리의전망
Part4
• 물리엔진내장:게임개발에적합
• 고급기능제공
• 2014년부터TS전환
• Microsoft가후원
W3C,Apple,Mozilla,Microsoft,Google엔지니어들이
함께개발한webGL보다성능향상된API
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
감사합니다
ⓒSaebyeol Yu. Saebyeol’s PowerPoint
참고 자료
https://ko.wikipedia.org/wiki/Three.js
https://pickywicky.co.kr/
http://yahao2512.com/
https://bruno-simon.com/
https://www.bbc.co.uk/news/resources/idt-5136bea2-40b8-45bf-83be-e06babcbc2bf
https://1955horsebit.gucci.com/#/handbags
https://code-masterjung.tistory.com/110
https://fitc.ca/speaker/mrdoob/
https://www.youtube.com/watch?v=sDVIHac66tM
https://medium.com/@su_bak/opengl-%EC%9D%B4%EB%9E%80-ad19cf68c948
https://www.youtube.com/watch?v=6AHpdQCrf_Q
https://pr-o.medium.com/three-js-in-next-js-73d65c2dedb6
https://news.hada.io/topic?id=7624

Weitere ähnliche Inhalte

Was ist angesagt?

심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
devCAT Studio, NEXON
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
devCAT Studio, NEXON
 
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
devCAT Studio, NEXON
 
RとPythonによるデータ解析入門
RとPythonによるデータ解析入門RとPythonによるデータ解析入門
RとPythonによるデータ解析入門
Atsushi Hayakawa
 
A Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time LightingA Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time Lighting
Steven Tovey
 
Hierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingHierachical z Map Occlusion Culling
Hierachical z Map Occlusion Culling
YEONG-CHEON YOU
 

Was ist angesagt? (20)

[KGC2014] DX9에서DX11로의이행경험공유
[KGC2014] DX9에서DX11로의이행경험공유[KGC2014] DX9에서DX11로의이행경험공유
[KGC2014] DX9에서DX11로의이행경험공유
 
「ユニティちゃんを踊らせよう!」モーションキャプチャーデータのアニメーション演出
「ユニティちゃんを踊らせよう!」モーションキャプチャーデータのアニメーション演出「ユニティちゃんを踊らせよう!」モーションキャプチャーデータのアニメーション演出
「ユニティちゃんを踊らせよう!」モーションキャプチャーデータのアニメーション演出
 
마칭 큐브 알고리즘 - ZP 2019 데캠
마칭 큐브 알고리즘 - ZP 2019 데캠마칭 큐브 알고리즘 - ZP 2019 데캠
마칭 큐브 알고리즘 - ZP 2019 데캠
 
ECCV読み会 "Materials for Masses: SVBRDF Acquisition with a Single Mobile Phone ...
ECCV読み会 "Materials for Masses: SVBRDF Acquisition with a Single Mobile Phone ...ECCV読み会 "Materials for Masses: SVBRDF Acquisition with a Single Mobile Phone ...
ECCV読み会 "Materials for Masses: SVBRDF Acquisition with a Single Mobile Phone ...
 
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
 
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
 
smallpt: Global Illumination in 99 lines of C++
smallpt:  Global Illumination in 99 lines of C++smallpt:  Global Illumination in 99 lines of C++
smallpt: Global Illumination in 99 lines of C++
 
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
 
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
 
nlpaper.challenge NLP/CV交流勉強会 画像認識 7章
nlpaper.challenge NLP/CV交流勉強会 画像認識 7章nlpaper.challenge NLP/CV交流勉強会 画像認識 7章
nlpaper.challenge NLP/CV交流勉強会 画像認識 7章
 
KillzoneにおけるNPCの動的な制御
KillzoneにおけるNPCの動的な制御KillzoneにおけるNPCの動的な制御
KillzoneにおけるNPCの動的な制御
 
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
 
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
 
KGC 2014 프로파일러를 이용한 게임 클라이언트 최적화
KGC 2014 프로파일러를 이용한 게임 클라이언트 최적화KGC 2014 프로파일러를 이용한 게임 클라이언트 최적화
KGC 2014 프로파일러를 이용한 게임 클라이언트 최적화
 
멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)
 
RとPythonによるデータ解析入門
RとPythonによるデータ解析入門RとPythonによるデータ解析入門
RとPythonによるデータ解析入門
 
A Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time LightingA Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time Lighting
 
Hierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingHierachical z Map Occlusion Culling
Hierachical z Map Occlusion Culling
 
Precomputed Voxelized-Shadows for Large-scale Scene and Many lights
Precomputed Voxelized-Shadows for Large-scale Scene and Many lightsPrecomputed Voxelized-Shadows for Large-scale Scene and Many lights
Precomputed Voxelized-Shadows for Large-scale Scene and Many lights
 

Ähnlich wie Three.js

[GENDER]10_SCENARIO+PROTOTYPE
[GENDER]10_SCENARIO+PROTOTYPE[GENDER]10_SCENARIO+PROTOTYPE
[GENDER]10_SCENARIO+PROTOTYPE
JY LEE
 
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
MinGeun Park
 
사용자중심
사용자중심사용자중심
사용자중심
지현 이
 

Ähnlich wie Three.js (15)

[GENDER]10_SCENARIO+PROTOTYPE
[GENDER]10_SCENARIO+PROTOTYPE[GENDER]10_SCENARIO+PROTOTYPE
[GENDER]10_SCENARIO+PROTOTYPE
 
SVVR아카데미 7월과정 소개_0620
SVVR아카데미 7월과정 소개_0620SVVR아카데미 7월과정 소개_0620
SVVR아카데미 7월과정 소개_0620
 
월간 리드잇(beta) 2018년 10월호
월간 리드잇(beta) 2018년 10월호월간 리드잇(beta) 2018년 10월호
월간 리드잇(beta) 2018년 10월호
 
Ux Camp Seoul 2014 - 레고에서 발견하는 좋은 제품의 사소함
Ux Camp Seoul 2014 - 레고에서 발견하는 좋은 제품의 사소함Ux Camp Seoul 2014 - 레고에서 발견하는 좋은 제품의 사소함
Ux Camp Seoul 2014 - 레고에서 발견하는 좋은 제품의 사소함
 
SVVR아카데미 3월 교육과정 소개
SVVR아카데미 3월 교육과정 소개SVVR아카데미 3월 교육과정 소개
SVVR아카데미 3월 교육과정 소개
 
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
 
XR콘텐츠 기획자/3D디자이너/개발자 교육
XR콘텐츠 기획자/3D디자이너/개발자 교육XR콘텐츠 기획자/3D디자이너/개발자 교육
XR콘텐츠 기획자/3D디자이너/개발자 교육
 
Web devmobile 8회열린세미나
Web devmobile 8회열린세미나Web devmobile 8회열린세미나
Web devmobile 8회열린세미나
 
Sketch up
Sketch upSketch up
Sketch up
 
JS Game Engines
JS Game EnginesJS Game Engines
JS Game Engines
 
[IGC2015] 방영훈-반도의흔한기획자표류기
[IGC2015] 방영훈-반도의흔한기획자표류기 [IGC2015] 방영훈-반도의흔한기획자표류기
[IGC2015] 방영훈-반도의흔한기획자표류기
 
사용자중심
사용자중심사용자중심
사용자중심
 
OpenJigWare(V02.00.04)
OpenJigWare(V02.00.04)OpenJigWare(V02.00.04)
OpenJigWare(V02.00.04)
 
포트폴리오 김규하
포트폴리오 김규하포트폴리오 김규하
포트폴리오 김규하
 
2013 app design trends
2013 app design trends2013 app design trends
2013 app design trends
 

Mehr von Wonjun Hwang

Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
Wonjun Hwang
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
Wonjun Hwang
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
Wonjun Hwang
 
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
Wonjun Hwang
 
스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)
Wonjun Hwang
 
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
Wonjun Hwang
 
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)
Wonjun Hwang
 

Mehr von Wonjun Hwang (20)

Spring HTTP Client (Kitworks Team Study)
Spring HTTP Client (Kitworks Team Study)Spring HTTP Client (Kitworks Team Study)
Spring HTTP Client (Kitworks Team Study)
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)
 
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
 
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)
 
Nest JS (Kitworks Team Study 이본훈 발표 240315)
Nest JS (Kitworks Team Study 이본훈 발표 240315)Nest JS (Kitworks Team Study 이본훈 발표 240315)
Nest JS (Kitworks Team Study 이본훈 발표 240315)
 
JS Event Loop (Kitworks Team Study 김동현 발표)
JS Event Loop (Kitworks Team Study 김동현 발표)JS Event Loop (Kitworks Team Study 김동현 발표)
JS Event Loop (Kitworks Team Study 김동현 발표)
 
Java Optional (Kitworks Team Study 김성호 발표)
Java Optional (Kitworks Team Study 김성호 발표)Java Optional (Kitworks Team Study 김성호 발표)
Java Optional (Kitworks Team Study 김성호 발표)
 
XSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team StudyXSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team Study
 
Flutter & Firebase (2) Kitworks Team Study
Flutter & Firebase (2) Kitworks Team StudyFlutter & Firebase (2) Kitworks Team Study
Flutter & Firebase (2) Kitworks Team Study
 
PWA
PWAPWA
PWA
 
얕은복사,깊은복사
얕은복사,깊은복사얕은복사,깊은복사
얕은복사,깊은복사
 
Go언어로 디스코드 봇 만들기
Go언어로 디스코드 봇 만들기Go언어로 디스코드 봇 만들기
Go언어로 디스코드 봇 만들기
 
완전 유용한 CSS 모음
완전 유용한 CSS 모음완전 유용한 CSS 모음
완전 유용한 CSS 모음
 
2024 개발 트렌드
2024 개발 트렌드2024 개발 트렌드
2024 개발 트렌드
 
디바운싱과 쓰로틀링
디바운싱과 쓰로틀링디바운싱과 쓰로틀링
디바운싱과 쓰로틀링
 

Three.js

  • 1. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Three.js로 웹에서 3D 개발하기 JavaScript로 3D 게임을 만들 수 있다?! 2023.05.26 김혜린
  • 2. ⓒSaebyeol Yu. Saebyeol’s PowerPoint 목차 1 Three.js란? 2 Three.js,어디에사용되고있을까? 3 Three.js로움직이는3D도형그리기 4 Three.js의장점/한계와전망 a table of contents
  • 3. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 1 Three.js란?
  • 4. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Three.js란? Part1 웹 페이지에 3D 객체를 렌더링할 수 있도록 도와주는 JavaScript 오픈소스 라이브러리 WebGL 기술을 바탕으로 렌더링, 카메라, 조명 등의 3D 프로그래밍 기술을 쉽게 사용할 수 있도록 해준다. https://github.com/mrdoob/three.js
  • 5. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Three.js란? Part1 Ricardo Cabello • 스페인 바르셀로나 출생(현재 일본 거주) • 디자이너로 커리어를 시작 • ‘데모씬’이라는 컴퓨터 아트 서브 컬쳐에서 활동하면서 재사용 가능한 3D 툴의 필요성을 느껴 Three.js를 만들기 시작
  • 6. ⓒSaebyeol Yu. Saebyeol’s PowerPoint 웹에서도 쓰고싶어! WebGL? Part1 OpenGL(Graphic Library) WebGL • GPU와 통신하여 2D, 3D 그래픽을 표현 할수있도록해주는API규격또는라이브 러리 • C언어기반 • 무엇을,어떻게그릴지에관한함수들 • 함수를호출하면드라이버를통해GPU와 소통 • VR, CAD, 게임, 시각화, 시뮬레이션 등에 많이사용 • 애플리케이션과 그래픽 카드 사이에서 2D/3D 물체들을 웹페이지에 띄워주는 JavaScript라이브러리 • HTML5canvas요소위에그림 • 모바일브라우저에서도사용가능
  • 7. ⓒSaebyeol Yu. Saebyeol’s PowerPoint WebGL? Part1 Shaders webGL을통해전송하는요소들 • vertex:점 • fragment:색깔
  • 8. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Three.js의개념 Part1 어렵고직관적이지못한webGL을편하게쓸수있도록한번더감싼JavaScript라이브러리(==함수들)
  • 9. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Three.js의개념 Part1 82줄 -> 18줄
  • 10. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Three.js의개념 Part1 1 Scene을만들어Camera로비춘다. 2 Scene안에원하는(3D)Object들을넣는다. 3 그전체를Renderer로HTMLcanvas안에렌더링한다.
  • 11. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 2 Three.js, 어디에 사용되고 있을까?
  • 12. ⓒSaebyeol Yu. Saebyeol’s PowerPoint 일반 웹사이트/서비스 Part2
  • 13. ⓒSaebyeol Yu. Saebyeol’s PowerPoint 온라인 트리 꾸미기
  • 14. ⓒSaebyeol Yu. Saebyeol’s PowerPoint 랜딩 페이지(나라 소개)
  • 15. ⓒSaebyeol Yu. Saebyeol’s PowerPoint 개인 포트폴리오(ex: Bruno Simon)
  • 16. ⓒSaebyeol Yu. Saebyeol’s PowerPoint 마케팅 Part2
  • 17. ⓒSaebyeol Yu. Saebyeol’s PowerPoint GUCCI 제품 소개 페이지
  • 18. ⓒSaebyeol Yu. Saebyeol’s PowerPoint 캔김치
  • 19. ⓒSaebyeol Yu. Saebyeol’s PowerPoint 게임 Part2
  • 20. ⓒSaebyeol Yu. Saebyeol’s PowerPoint 핀볼 게임
  • 21. ⓒSaebyeol Yu. Saebyeol’s PowerPoint 온라인 기사 Part2
  • 23. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 3 Three.js로 움직이는 3D 도형 그리기
  • 24. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Three.js설치하기 Part3 JavaScriptPackageManager이용하기(npm,yarn,pnpm…) CDN
  • 25. ⓒSaebyeol Yu. Saebyeol’s PowerPoint index.html파일 Part3
  • 26. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Renderer,Scene그리고Camera준비하기 Part3
  • 27. ⓒSaebyeol Yu. Saebyeol’s PowerPoint 빙글빙글돌아가는정육면체렌더링하기(Mesh,setAnimationLoop) Part3
  • 28. ⓒSaebyeol Yu. Saebyeol’s PowerPoint 개체움직이기 Part3
  • 29. ⓒSaebyeol Yu. Saebyeol’s PowerPoint 외부모델불러오기 Part3 애드온중하나인GLTFLoader를import하여모델을불러올수있습니다.
  • 30. ⓒSaebyeol Yu. Saebyeol’s PowerPoint 외부모델불러오기 Part3 https://sketchfab.com/
  • 31. ⓒSaebyeol Yu. Saebyeol’s PowerPoint 외부모델불러오기 Part3
  • 32. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Part 4 Three.js의 장점/한계와 전망
  • 33. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Three.js의장점 Part4 1 2 web에서인터랙티브한/몰입감있는사용자경험을줄수있다. 3 러닝커브가낮다. 가장오래되고큰커뮤니티를가졌고,꾸준히업데이트되고있다. 4 react-three-fiber등으로React에서편하게개발이가능하다.
  • 34. ⓒSaebyeol Yu. Saebyeol’s PowerPoint Three.js의한계 Part4 1 모델링을하지않으면멋진작품을만들기어렵다. 2 게임개발엔진들보다세세한기능들이부족하다. 3 TypeScript기반이아니다.
  • 35. ⓒSaebyeol Yu. Saebyeol’s PowerPoint 3D라이브러리의전망 Part4 • 물리엔진내장:게임개발에적합 • 고급기능제공 • 2014년부터TS전환 • Microsoft가후원 W3C,Apple,Mozilla,Microsoft,Google엔지니어들이 함께개발한webGL보다성능향상된API
  • 36. ⓒSaebyeol Yu. Saebyeol’s PowerPoint 감사합니다
  • 37. ⓒSaebyeol Yu. Saebyeol’s PowerPoint 참고 자료 https://ko.wikipedia.org/wiki/Three.js https://pickywicky.co.kr/ http://yahao2512.com/ https://bruno-simon.com/ https://www.bbc.co.uk/news/resources/idt-5136bea2-40b8-45bf-83be-e06babcbc2bf https://1955horsebit.gucci.com/#/handbags https://code-masterjung.tistory.com/110 https://fitc.ca/speaker/mrdoob/ https://www.youtube.com/watch?v=sDVIHac66tM https://medium.com/@su_bak/opengl-%EC%9D%B4%EB%9E%80-ad19cf68c948 https://www.youtube.com/watch?v=6AHpdQCrf_Q https://pr-o.medium.com/three-js-in-next-js-73d65c2dedb6 https://news.hada.io/topic?id=7624