Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
gocon-2022-spring_sponsor-session.pdf
Cluster Inc.
April 27, 2022
Technology
0
410
gocon-2022-spring_sponsor-session.pdf
Cluster Inc.
April 27, 2022
Tweet
Share
More Decks by Cluster Inc.
See All by Cluster Inc.
cluster_SwiftUI
clusterinc
0
470
cluster_Android_JetpackCompose
clusterinc
0
470
AvatarMakerを支える技術 / cluster_avatarmaker_engineering
clusterinc
0
950
clusterでLOD対応したときの話 / cluster LOD
clusterinc
0
800
クラスター会社紹介資料 / We are hiring
clusterinc
3
71k
Other Decks in Technology
See All in Technology
tfcon-2022-cpp
cpp
5
4.6k
[SRE NEXT 2022]ヤプリのSREにおけるセキュリティ強化の取り組みを公開する
mmochi23
1
270
プロダクション環境の信頼性を損ねず観測する技術
egmc
4
310
Power BI Premiumでデータ準備!
hanaseleb
1
180
暗号資産ウォレット入門(MetaMaskの入門~NFTの購入~詐欺の注意事項など)
kayato
2
150
株式会社オプティム_採用会社紹介資料 / optim-recruit
optim
0
5.2k
Microsoft Power Automate で 始めるRPAと自動化
taikiyoshida
0
1.9k
Adopting Kafka for the #1 job site in the world
ymyzk
1
250
エンタープライズにおけるSRE立ち上げとNew Relic選定に至った背景とは / SRE Startup and New Relic in the Enterprise
tomoyakitaura
2
130
GitHub 엔터프라이즈 어카운트 소개 및 엔터프라이즈 서버 구축 경험
posquit0
1
130
ITエンジニアを取り巻く環境とキャリアパス / A career path for Japanese IT engineers
takatama
0
560
A Conditional Point Diffusion-Refinement Paradigm for 3D Point Cloud Completion
takmin
0
180
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
316
22k
Product Roadmaps are Hard
iamctodd
34
6.1k
For a Future-Friendly Web
brad_frost
164
7.4k
Designing for humans not robots
tammielis
241
23k
Why You Should Never Use an ORM
jnunemaker
PRO
47
5.5k
The Mythical Team-Month
searls
208
39k
From Idea to $5000 a Month in 5 Months
shpigford
372
44k
Faster Mobile Websites
deanohume
294
28k
Making the Leap to Tech Lead
cromwellryan
113
6.9k
Streamline your AJAX requests with AmplifyJS and jQuery
dougneiner
125
8.5k
A designer walks into a library…
pauljervisheath
196
16k
A Modern Web Designer's Workflow
chriscoyier
689
180k
Transcript
ϝλόʔεΛࢧ͑Δٕज़ ʙUGCʹᷓΕΔ3DۭؒͷϦΞϧλΠϜ௨৴Λࢧ͑ΔGoʙ Ϋϥελʔגࣜձࣾ thara 2022-04-23 Go Conference 2022 Spring (Online)
Cluster, Inc. All Rights Reserved. ࣗݾհ 2 thara • Tomochika
Hara (ݪ Ѫ) • ѪݝࡏॅϦϞʔτϫʔΧʔ • ࢠͷ • झຯ • NESΤϛϡϨʔλ࣮ @zetta1985
Cluster, Inc. All Rights Reserved. ϝλόʔεϓϥοτϑΥʔϜ cluster ͱ 3
Cluster, Inc. All Rights Reserved. ϝλόʔεϓϥοτϑΥʔϜ cluster ͱ 4
Cluster, Inc. All Rights Reserved. ϝλόʔεϓϥοτϑΥʔϜ cluster ͱ 5
Cluster, Inc. All Rights Reserved. ࠓ͢͜ͱ 6 • ϝλόʔεΛߏ͢Δཁૉٕज़ •
ϝλόʔεϓϥοτϑΥʔϜͷόοΫΤϯυͱGo • room serverͷมભͱ෦ΞʔΩςΫνϟ
ϝλόʔεΛߏ͢Δཁૉٕज़
Cluster, Inc. All Rights Reserved. ϝλόʔεΛߏ͢Δཁૉٕज़ 8 3࣍ݩͷԾۭؒ UGC ΤίγεςϜ
Cluster, Inc. All Rights Reserved. 3࣍ݩͷԾۭؒ 9 • Unity3d •
ϦΞϧλΠϜಉظ • Ξόλʔͷ࢟ใ • ϘΠενϟοτ • ϞϊͷҐஔɾ͖
Cluster, Inc. All Rights Reserved. UGC ( = User Generated
Contents) 10 • Ξόλʔ • ϫʔϧυ • Ϋϥϑτ
Cluster, Inc. All Rights Reserved. ΤίγεςϜ 11 • ΞϓϦ௨՟ •
UGCͷചങ • Πϕϯτνέοτ • ΠϕϯτͰͷ͛મ
ϝλόʔεϓϥοτϑΥʔϜͷόοΫΤϯυͱGo
Cluster, Inc. All Rights Reserved. શମߏ 13
Cluster, Inc. All Rights Reserved. શମߏ 14 6($ ΤίγεςϜ ࣍ݩͷԾۭؒ
Cluster, Inc. All Rights Reserved. APIαʔόʔ 15 The Go gopher
was designed by Renée French. • Ϣʔβʔೝূ • ϑϨϯυ • UGCཧ • ೖࣨཧ • ܾࡁ
Cluster, Inc. All Rights Reserved. UGCύΠϓϥΠϯ 16 The Go gopher
was designed by Renée French. • VRM, glTF • reduction • native texture
Cluster, Inc. All Rights Reserved. glTF 17 • JSONʹΑΔ3DϞσϧγʔϯΛදݱ͢ΔσʔλϑΥʔϚοτ •
૬ޓӡ༻ɾ༰ྔɾϥϯλΠϜॲཧͷޮԽ • ʮ3Dʹ͓͚ΔJPEGʯ IUUQTHJUIVCDPN,ISPOPT(SPVQHM5'CMPCNBJOTQFDJ fi DBUJPO fi HVSFTHM5'@3(#@+VOFTWH
Cluster, Inc. All Rights Reserved. VRM 18 • ϓϥοτϑΥʔϜඇґଘͷ3DΞόλʔϑΝΠϧϑΥʔϚοτ •
glTF-2.0Λϕʔεʹ͍ͯ͠Δ • ώϡʔϚϊΠυɾඪ४ͷإૢ࡞ɾҰਓশࢹ࠶ݱɾϥΠηϯε IUUQTWSNEFW
Cluster, Inc. All Rights Reserved. VRMΛGoͰѻ͏ 19 https://github.com/qmuntal/gltf ΛϕʔεʹVRMʹରԠ type
VRMExtension struct{ ... } func init() { gltf.RegisterExtension("VRM", func(data []byte) (interface{}, error) { var vrm VRMExtensio n err := json.Unmarshal(data, vrm ) return vrm, er r } ) } func DecodeVRM(raw []byte) (*gltf.Document, *VRMExtension, error) { var doc gltf.Documen t if err := gltf.NewDecoder(bytes.NewReader(raw)).Decode(&doc); err != nil { // error handling } return &doc, doc.Extensions["VRM"].(*VRMExtension), nil }
Cluster, Inc. All Rights Reserved. reduction/GPU native texture 20 func
(c *converter) bufferViewImage ( src *gltf.Document, index uint32, dst *gltf.Document) (uint32, string, error) { bv := src.BufferViews[index ] buf, err := modeler.ReadBufferView(src, bv ) if err != nil { // error handling } // reduction & GPU native texture encoding converted, mimeType, err := converter.Convert(buf ) if err != nil { // error handling } newIndex := modeler.WriteBufferView(dst, gltf.TargetNone, converted ) return newIndex, mimeType, nil }
Cluster, Inc. All Rights Reserved. room server 21 The Go
gopher was designed by Renée French.
room serverͷมભͱ෦ΞʔΩςΫνϟ
Cluster, Inc. All Rights Reserved. pubsubͷΈ (room serverҎલ) 23 •
ۭؒಉظͰ͋Ε͜ΕͰे • messageͷׯবͰ͖ͳ͍ • = ࣮ݱͰ͖Δػೳʹ੍ݶ
Cluster, Inc. All Rights Reserved. pubsubͷΈ (room server) 24 •
୯ʹMQTTΛ͠ΌΔ͚ͩͷ GoTCPαʔόʔ • hack͢ΔͨΊͷԼ
Cluster, Inc. All Rights Reserved. Actor 25 • client͝ͱͷॲཧ͕Մೳʹ •
messageͷfiltering • LOD • Ξόλʔ࢟ใ • ϘΠε
Cluster, Inc. All Rights Reserved. Actor 26
Cluster, Inc. All Rights Reserved. Actor + global state 27
• globalͳঢ়ଶΛߋ৽Մೳʹ • ϫʔϧυΫϥϑτ • = ஔ͍ͨϞϊͷӬଓԽ
Cluster, Inc. All Rights Reserved. Actor + global state 28
Cluster, Inc. All Rights Reserved. Next…? 29 • ͍ͩͿͷཧղ͕ਐΜͩ •
൚༻తͳ݁߹͔ΒɺΑΓҙຯ Λ࣋ͬͨߏ • ߋͳΔ௨৴ྔݮ • UDPϕʔεͷಠࣗϓϩτίϧ
·ͱΊ
Cluster, Inc. All Rights Reserved. ·ͱΊ 31 • ϝλόʔεΛߏ͢Δཁૉٕज़ •
3࣍ݩͷԾۭؒ • UGC • ΤίγεςϜ • clusterͰͦͷόοΫΤϯυΛ Go Ͱ࣮ݱͯ͠·͢
IUUQTSFDSVJUDMVTUFSNVFOHJOFFS
Thanks for Listening