Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
three.js基礎
Search
kaidouji85
November 18, 2017
Technology
2
610
three.js基礎
秋のJavaScript祭 in mixi 2017発表資料
kaidouji85
November 18, 2017
Tweet
Share
More Decks by kaidouji85
See All by kaidouji85
一発芸!!なんちゃってローカライズ
kaidouji85
0
59
AWSだけでネット対戦できるブラウザゲームを作った話
kaidouji85
0
57
GitHub CopilotでJavaScript開発効率を爆上げする
kaidouji85
0
100
Serverless + Fargate構成で継続的デリバリーの速度を劇的に改善した話
kaidouji85
0
890
サーバーレスアーキテクチャこそ"ヘキサゴナルアーキテクチャ"
kaidouji85
0
99
サーバーレスでターンベース制のネット対戦ゲームを作った話
kaidouji85
0
610
CDKで構築したFargateのデプロイ時間を改善した話
kaidouji85
2
540
ブラウザゲームで視聴者参加型のゲーム配信
kaidouji85
0
340
JSだけでバックエンド環境構築、IaC、自動デプロイまでやってみた話
kaidouji85
0
360
Other Decks in Technology
See All in Technology
初めてAWSを使うときのセキュリティ覚書〜初心者支部編〜
cmusudakeisuke
1
240
Firestore → Spanner 移行 を成功させた段階的移行プロセス
athug
1
450
AWSを利用する上で知っておきたい名前解決のはなし(10分版)
nagisa53
10
3k
AIエージェント開発用SDKとローカルLLMをLINE Botと組み合わせてみた / LINEを使ったLT大会 #14
you
PRO
0
100
これでもう迷わない!Jetpack Composeの書き方実践ガイド
zozotech
PRO
0
320
未経験者・初心者に贈る!40分でわかるAndroidアプリ開発の今と大事なポイント
operando
5
370
ガチな登山用デバイスからこんにちは
halka
1
240
【初心者向け】ローカルLLMの色々な動かし方まとめ
aratako
7
3.4k
おやつは300円まで!の最適化を模索してみた
techtekt
PRO
0
290
開発者を支える Internal Developer Portal のイマとコレカラ / To-day and To-morrow of Internal Developer Portals: Supporting Developers
aoto
PRO
1
440
職種の壁を溶かして開発サイクルを高速に回す~情報透明性と職種越境から考えるAIフレンドリーな職種間連携~
daitasu
0
150
EncryptedSharedPreferences が deprecated になっちゃった!どうしよう! / Oh no! EncryptedSharedPreferences has been deprecated! What should I do?
yanzm
0
230
Featured
See All Featured
The Language of Interfaces
destraynor
161
25k
Context Engineering - Making Every Token Count
addyosmani
1
35
GraphQLとの向き合い方2022年版
quramy
49
14k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Music & Morning Musume
bryan
46
6.8k
Writing Fast Ruby
sferik
628
62k
Done Done
chrislema
185
16k
4 Signs Your Business is Dying
shpigford
184
22k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
The Cost Of JavaScript in 2023
addyosmani
53
8.9k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.1k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Transcript
UISFFKTجૅ ळͷ+BWB4DSJQUࡇJONJYJ ɹ༎հ
ࣗݾհ ༎հ ϓϩάϥϚʔͬͯ·͢ +4େ͖Ͱ͢
ΞδΣϯμ UISFFKTͱ UISFFKTಛ༗ͷ֓೦ ήʔϜϧʔϓ UJQT ·ͱΊ
ΞδΣϯμ UISFFKTͱ UISFFKTಛ༗ͷ֓೦ ήʔϜϧʔϓ UJQT ·ͱΊ
UISFFKTͱ ϒϥβͰ%͕ൺֱత༰қʹ͑ΔϥΠϒϥϦ ྺ࢙͕͍ͷͰɺใ͕ൺֱతଟ͍ ·ͣ؆୯ͳαϯϓϧΛݟͯ·͠ΐ͏
αϯϓϧ ެࣜνϡʔτϦΞϧͷIFMMPXPSME<>
var scene = new THREE.Scene(); var camera = new THREE.PerspectiveCamera(
75, window.innerWidth/ window.innerHeight, 0.1, 1000 ); var renderer = new THREE.WebGLRenderer(); renderer.setSize( window.innerWidth, window.innerHeight ); document.body.appendChild( renderer.domElement ); var geometry = new THREE.BoxGeometry( 1, 1, 1 ); var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } ); var cube = new THREE.Mesh( geometry, material ); scene.add( cube ); camera.position.z = 5; var render = function () { requestAnimationFrame( render ); cube.rotation.x += 0.1; cube.rotation.y += 0.1; renderer.render(scene, camera); }; render();
Կ͜Ε ҙຯ͔Μͳ͍
େৎͰ͢
UISFFKTಛ༗ͷ֓೦
ήʔϜϧʔϓ
͜ΕΛΒͳ͍͔Β ͘͠ݟ͑Δ͚ͩ
ΞδΣϯμ UISFFKTͱ UISFFKTಛ༗ͷ֓೦ ήʔϜϧʔϓ UJQT
ઌ΄Ͳͷശ͕ճ͍ͬͯΔαϯϓϧͰɺ Կݸͷ֓೦͕͋ΔͰ͠ΐ͏͔ʁ
ਖ਼ղݸͰ͢ 3FOEFS 4DFOF $BNFSB (FPNFUSZ .FTI .BUFSJBM
UISFFKTͷओͳऀ 3FOEFS 4DFOF $BNFSB (FPNFUSZ .FTI .BUFSJBM
UISFFKTͷओͳऀ 3FOEFS 4DFOF $BNFSB (FPNFUSZ .FTI .BUFSJBM
3FOEFS ϒϥβʹ%ը໘Λඳը͢Δͷ 3FOEFSҎԼύϥϝʔλͰ%ඳը͠·͢ 4DFOF %ମ͕ஔ͔Ε͍ͯΔੈք $BNFSB 3FOEFSΛࣸਅʹྫ͑Δͱ͔Γ͍͢Ͱ͢
3FOEFS 4DFOF $BNFSB
UISFFKTͷओͳऀ 3FOEFS 4DFOF $BNFSB (FPNFUSZ .FTI .BUFSJBM
$BNFSB %ۭؒΛࡱӨ͢ΔΧϝϥͰ͢ ݱ࣮ͷΧϝϥಉ༷ɺ༻్ʹԠͯ͡৭ʑͳͷ͕ ͋Γ·͢ αϯϓϧίʔυͰ1FSTQFDUJWF$BNFSB<> ಁࢹӨΧϝϥ Λ͍ͬͯ·͢
UISFFKTͷओͳऀ 3FOEFS 4DFOF $BNFSB (FPNFUSZ .FTI .BUFSJBM
4DFOF %ϞσϧɺޫݯͳͲΛஔ͢ΔͷͰ͢ %ۭؒͷੈքͦͷͷͰ͢
UISFFKTͷओͳऀ 3FOEFS 4DFOF $BNFSB (FPNFUSZ .FTI .BUFSJBM
.FTI %ۭؒʹஔ͢ΔମͰ͢ ΩϟϥΫλʔɺՈɺϏϧͳͲͷഎܠͳͲ͕ .FTIʹ֘͠·͢
.FTI (FPNFUSZ .BUFSJBM ܗঢ় ɹ৭ ɹࡐ࣭ ɹςΫενϟ
UISFFKTͷओͳऀ 3FOEFS 4DFOF $BNFSB (FPNFUSZ .FTI .BUFSJBM
(FPNFUSZ ମͷܗঢ়σʔλ αϯϓϧϓϩάϥϜͰཱํମΛ͍ͬͯΔ ଞʹฏ໘ɺٿମͳͲجຊతͳܗ͕ ༻ҙ͞Ε͍ͯΔ
UISFFKTͷओͳऀ 3FOEFS 4DFOF $BNFSB (FPNFUSZ .FTI .BUFSJBM
.BUFSJBM ମͷࡐ࣭ΛܾΊΔͷ ৭ɺޫͷࣹ۩߹ɺෆಁ໌ͳͲΛઃఆͰ͖Δ ςΫενϟͷઃఆΛ͢Δͷ͜͜
ΞδΣϯμ UISFFKTͱ UISFFKTಛ༗ͷ֓೦ ήʔϜϧʔϓ UJQT ·ͱΊ
ήʔϜϧʔϓͱ ήʔϜը໘ΛΞχϝʔγϣϯͤ͞ΔΈ ήʔϜը໘ύϥύϥອըͷཁྖͰɺ ΞχϝʔγϣϯΛ͍ͯ͠Δ ύϥύϥອըΛϓϩάϥϜͰ࠶ݱ͢Δͱɺ ແݶϧʔϓʹͳΔ
SFRVFTU"OJNBUJPO'SBNF ϒϥβͰήʔϜϧʔϓΛ࣮ݱ͢Δͱ͖ʹ ͏ؔ<> ಈ͖ͱͯ͠ɺϒϥβը໘࠶ඳըલʹ ొͨ͠ίʔϧόοΫؔΛݺͿͱݴ͏ͷ
ήʔϜϧʔϓ࣮ݱํ๏ var render = function () { requestAnimationFrame( render );
cube.rotation.x += 0.1; cube.rotation.y += 0.1; renderer.render(scene, camera); }; render(); ᶃSFOEFSΛ࣮ߦ ᶄSFRVFTU"OJNBUJPO'SBNFʹSFOEFSΛొ ᶅSFOEFS͕ؔऴྃ͢Δ ᶆϒϥβ࠶ඳըલʹSFOEFS͕ݺΕΔ ᶃʹΔ
Ҏ্Λ౿·্͑ͨͰ αϯϓϧίʔυΛݟ·͢
var scene = new THREE.Scene(); var camera = new THREE.PerspectiveCamera(
75, window.innerWidth/ window.innerHeight, 0.1, 1000 ); var renderer = new THREE.WebGLRenderer(); renderer.setSize( window.innerWidth, window.innerHeight ); document.body.appendChild( renderer.domElement ); var geometry = new THREE.BoxGeometry( 1, 1, 1 ); var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } ); var cube = new THREE.Mesh( geometry, material ); scene.add( cube ); camera.position.z = 5; var render = function () { requestAnimationFrame( render ); cube.rotation.x += 0.1; cube.rotation.y += 0.1; renderer.render(scene, camera); }; render();
var scene = new THREE.Scene(); var camera = new THREE.PerspectiveCamera(
75, window.innerWidth/ window.innerHeight, 0.1, 1000 ); var renderer = new THREE.WebGLRenderer(); renderer.setSize( window.innerWidth, window.innerHeight ); document.body.appendChild( renderer.domElement ); var geometry = new THREE.BoxGeometry( 1, 1, 1 ); var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } ); var cube = new THREE.Mesh( geometry, material ); scene.add( cube ); camera.position.z = 5; var render = function () { requestAnimationFrame( render ); cube.rotation.x += 0.1; cube.rotation.y += 0.1; renderer.render(scene, camera); }; render(); ऀͷॳظԽ
var scene = new THREE.Scene(); var camera = new THREE.PerspectiveCamera(
75, window.innerWidth/ window.innerHeight, 0.1, 1000 ); var renderer = new THREE.WebGLRenderer(); renderer.setSize( window.innerWidth, window.innerHeight ); document.body.appendChild( renderer.domElement ); var geometry = new THREE.BoxGeometry( 1, 1, 1 ); var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } ); var cube = new THREE.Mesh( geometry, material ); scene.add( cube ); camera.position.z = 5; var render = function () { requestAnimationFrame( render ); cube.rotation.x += 0.1; cube.rotation.y += 0.1; renderer.render(scene, camera); }; render(); ήʔϜϧʔϓ
ΞδΣϯμ UISFFKTͱ UISFFKTಛ༗ͷ֓೦ ήʔϜϧʔϓ UJQT ·ͱΊ
ࠓհ͢Δ5JQT ςΫενϟΞχϝʔγϣϯ )6%ϨΠϠ ࣗ࡞ϞσϧಡΈࠐΈํ๏
5JQT࡞ྫ ൃදऀͷझຯϓϩάϥϜ<>
ࠓհ͢Δ5JQT ςΫενϟΞχϝʔγϣϯ )6%ϨΠϠ ࣗ࡞ϞσϧಡΈࠐΈํ๏
ςΫενϟΞχϝͱ ಡΜͰࣈͷ͝ͱ͘ɺςΫενϟΛ Ξχϝʔγϣϯͤ͞Δ͜ͱ εϓϥΠτΩϟϥΫλʔͷΞχϝʔγϣϯɺ ը໘ΤϑΣΫτͳͲʹ༻͞Ε͍ͯΔ
ςΫενϟΞχϝʹ ඞཁͳ͜ͱ
ඞཁͳॴΛΓऔΔ
ϑϨʔϜ੍ޚ
ςΫενϟΞχϝ࣮ݱํ๏ ඞཁͳॴΛΓऔΔ ˠUISFFKTଆͰ͋ΔઃఆΛ͢Δ<> ϑϨʔϜ੍ޚ ˠUXFFOKTΛ͏<>
ςΫενϟΛը૾ϧʔϓλΠϓʹઃఆ ॎɺԣͷഒΛʮΞχϝίϚʯʹઃఆ ඳըελʔτҐஔΛௐͯ͠ɺҙϑϨʔϜΛදࣔ ԣഒ ॎഒ Φϑηοτ9 Φϑηοτ:
UXFFOKTͱ ͋ΔΛYʙYʹZඵͰมԽͤ͞Δɺ ͱ͍͏ॲཧΛߦ͏ͷ DSFBUFKTͷϑϨʔϜ੍ޚػೳΛɺผϥΠϒϥϦ ͱͯ͠Γग़ͨ͠ͷ
ࠓհ͢Δ5JQT ςΫενϟΞχϝʔγϣϯ )6%ϨΠϠ ࣗ࡞ϞσϧಡΈࠐΈํ๏
)6%ͱ )FBE6Q%JTQMBZͷུশ ΧϝϥϨϯζʹுΓ͍ͯදࣔ͞ΕͯΔͷ ྫ͑ήʔδɺΞΠίϯͳͲ
)6%࣮ݱํ๏ UISFFKTʹϨΠϠʔػೳͳ͍ %ɺ)6%ʹTDFOFɺDBNFSBΛ༻ҙ͢Δ SFOEFSͷBVUP$MFBSGBMTFʹͯ͠ɺ %ɺ)6%ͷॱ൪ʹϨϯμϦϯά͢Δ<>
%༻4DFOF %༻$BNFSB )6%༻4DFOF )6%༻$BNFSB 3FOEFS
ࠓհ͢Δ5JQT ςΫενϟΞχϝʔγϣϯ )6%ϨΠϠ ࣗ࡞ϞσϧಡΈࠐΈํ๏
UISFFKTϞσϧϑΝΠϧࣄ UISFFKTઐ༻ϞσϧϑΝΠϧͱͯ͠ɺ KTPOܗࣜͷͷ͕͋Δ UISFFKTଆͰNFUBTFRVPJBɺNNEΛಡΈࠐΉ ϓϥάΠϯ͕͋Δ ݸਓతʹϓϥάΠϯແ͠ͰಡΈࠐΊΔͷͰɺ KTPOϑΝΠϧͷํ͕͖
ઐ༻KTPOϑΝΠϧʹ͍ͭͯ NFUBTFRVPJBͩͱඪ४ͰKTPOΤΫεϙʔτʹ ରԠ͍ͯ͠Δ ҆ఆ͍ͯ͠Δ͕ɺςΫενϟ্͕ԼٯʹͳΔ ෆ۩߹͕͋Δ
.FUBTFRVPJB UISFFKT ࣮ࡍͷঢ়
ෆ۩߹ͷճආࡦ ը૾ϑΝΠϧΛ্Լɺࠨӈٯʹ͢Ε ͳ͘දࣔͰ͖·͢ .FUBTFRVPJBެࣜ##4Ͱ࣭ͨ͠Βɺ ˢͷΑ͏ͳճΛ͖·ͨ͠
ΞδΣϯμ UISFFKTͱ UISFFKTಛ༗ͷ֓೦ ήʔϜϧʔϓ UJQT ·ͱΊ
·ͱΊ UISFFKTͱϒϥβͰ%දݱΛ͢ΔͨΊͷ ϥΠϒϥϦͰ͋Δ ·ͣUISFFKTͷऀɺήʔϜϧʔϓʹ͍ͭͯ ཧղ͠Α͏ ςΫενϟΞχϝɺ)6%ɺࣗ࡞ϞσϧऔΓࠐΈ Λͯ͠ɺ࡞ʹ՚Λఴ͑Α͏
͝ਗ਼ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠
ࢀߟจݙ <>UISFFKTެࣜνϡʔτϦΞϧ IUUQTUISFFKTPSHEPDTJOEFYIUNMNBOVBM JOUSPEVDUJPO$SFBUJOHBTDFOF <>1FSTQFDUJWF$BNFSB IUUQTXXXBUXJLJKQUISFFKTQBHFT IUNM
ࢀߟจݙ <>XJOEPXSFRVFTU"OJNBUJPO'SBNF IUUQTEFWFMPQFSNP[JMMBPSHKBEPDT8FC "1*8JOEPXSFRVFTU"OJNBUJPO'SBNF <>UJQT࡞ྫ IUUQTHPPHMEOZ23#
ࢀߟจݙ <>ςΫενϟΞχϝͷઃఆ IUUQTHJUIVCDPNLBJEPVKJTUVEZUISFFKTCMPC CDCFDFGDFFBDCF TSDUFYUVSFUFYUVSFBOJNBUJPOKT <>UXFFOKT༻ྫ IUUQTHJUIVCDPNLBJEPVKJTUVEZUISFFKTCMPC CDCFDFGDFFBDCF TSDBSNEP[FSTIJOCSFBWFSKT
ࢀߟจݙ <>)6%ϨΠϠ࣮ݱํ๏ IUUQTHJUIVCDPNLBJEPVKJTUVEZUISFF KTCMPC CDCFDFGDFFB DCFTSDCBUUMFJOEFYKT