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
広大なフィールドを気持ちよく駆け抜けるための技術.pdf
Search
akatsukinewgrad
August 04, 2022
0
570
広大なフィールドを気持ちよく駆け抜けるための技術.pdf
akatsukinewgrad
August 04, 2022
Tweet
Share
More Decks by akatsukinewgrad
See All by akatsukinewgrad
2023/1/25_QAテスター meet up!
akatsukinewgrad
0
130
成果発表資料.pdf
akatsukinewgrad
0
2k
正規表現とReDoS.pdf
akatsukinewgrad
0
550
Unityで大量のオブジェクト_を吹き飛ばしたい.pdf
akatsukinewgrad
0
610
新卒2年目が思う1年目の学び.pdf
akatsukinewgrad
0
530
障害訓練の取り組みについて.pdf
akatsukinewgrad
0
700
7分でわかるアカツキゲームス
akatsukinewgrad
0
570
Bitcoinだけでスマートコントラクト.pdf
akatsukinewgrad
1
920
齋田.pdf
akatsukinewgrad
0
1k
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Producing Creativity
orderedlist
PRO
347
40k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
Designing Experiences People Love
moore
142
24k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
Transcript
広⼤なフィールドを 気持ちよく駆け抜けるための技術 Akatsuki Games / Client Engineer ⽩狐 (WhiteFox)
Self Introduction )/നޅ ͼΌͬ͜ ଔΫϥΠΞϯτΤϯδχΞ झຯ λΠϐϯάʢΨνɺಛʹຊޠϩʔϚࣈʣ
ฏۉLFZTɺτοϓεϐʔυLFZT େձͰ༏উ͠จ෦Պֶେਉडͨ͜͠ͱ͋Δ Իήʔ ΞʔέʔυԻήʔ͕͖ʢࣗڥ͋Γʣ ͓͍͍͠৯Λ୳͢ ͝൧͞ΜɺεΠʔπళΛ։͢Δͷ͕͖ ˛ຖมΘΔࣗ࡞ΞΠίϯ ΠϥετɺΩϟϥσβ झຯͰͬͯΔ ˛ݚमͰΧδϡΞϧͳ %ήʔϜ੍࡞ʹॳઓ
Φʔϓϯϫʔϧυʂ ΦʔϓϯϫʔϧυྲྀߦΓͰ͢ΑͶʂ Φʔϓϯϫʔϧυͷఆׂٛͱᐆດ ։͔ΕͨϚοϓɺγʔϜϨεͳϚοϓ͙Β͍ͷҙຯͰଊ͍͑ͯͩ͘͞ ࠷ۙϞόΠϧͷεϖοΫͰ ϦονͳάϥϑΟοΫͰ༡Δ
ΞΧπΩήʔϜεͷࠓͷ৽ଔݚमͰʜʜ 514 5IJSE1FSTPO4IPPUJOH Λ ʙਓνʔϜͰिؒఔͰ࡞ ˠ࣮ࡍʹઌഐΤϯδχΞʹ༡ΜͰ͍͍ͨͩͨ ࠓճݚम࣌ʹ࣮ࡍʹࢼͨ͠ άϥϑΟοΫෛՙܰݮͷํ๏Λ͍͔ͭ͘հ͠·͢ʂ ˛514࡞ͷ࣮ࡍͷը໘ɻ6*ʹ6OJUZष͕ͬͨ͞ ɹͪΌΜͱ༡ͨ
४උ ϑΟʔϧυͷ࡞ 6OJUZͷ5FSSBJOΛ͏ ى෬ͷ͋ΔܗʹΛͨ͘͞Μੜ͢ l4UBOEBSE"TTFUTzʹೖ͍ͬͯͨ#SPBEMFBG ϓϨΠϠʔ͕ૢ࡞Ͱ͖ΔΩϟϥΫλʔΛ༻ҙ
l4UBSUFS"TTFUT5IJSE1FSTPO$IBSBDUFS$POUSPMMFSz ͱ͍͏'3&&ͷΞηοτΛར༻ ຊεϥΠυͰ͜ͷ͕΄΅ͳ͍ঢ়ଶΛ ʮॳظঢ়ଶʯͱݺͿ͜ͱʹ ϑϥελϜΧϦϯάͷΈద༻͞Ε͍ͯ·͢ʢઆ໌ޙड़ʣ
ॳظঢ়ଶͰεϚϗͰςετϓϨΠ ݕূ "OESPJE ͱ നޅͷJ1IPOF9ͰςετϓϨΠ ʢ"OESPJEͷεϖοΫׂͱऑ͍ʣ 1SP fi
MFSͰύϑΥʔϚϯεΛܭଌ "OESPJEGQTલޙ J1IPOF9GQTʙGQTఔ ؾ࣋ͪΑ͘ۦ͚ൈ͚ΔͲ͜ΖͰͳ͍
ಈ࡞͕ॏ͍ཧ༝ ϙϦΰϯͷඳը͕ଟ͗͢Δʂ ˞ϙϦΰϯ͜͜Ͱɺ%ΦϒδΣΫτΛߏ͢Δʮ໘ʯ ʢྫཱํମਖ਼ํܗͷϙϦΰϯ͕ͭʣ ࠓճͷ߹ɺओʹʮʯͷϙϦΰϯ͕ଟ͍ 7FSUT
ը໘ʹඳը͞ΕΔΦϒδΣΫτͷͷ߹ܭ ࠓճສఔ 5SJT Ͱߏ͞Εͨࡾ֯ܗͷϙϦΰϯͷ߹ܭ ࠓճສఔ 1$ͩͱ͍͚Δ͕ɺϞόΠϧͰݫ͍͠
ղܾࡦ ɾ-0% ɾΧϦϯά ࠓճ6OJUZଆͰઃఆͰ͖Δͪ͜ΒͷೋͭΛհ͠·͢ʂ ˞%ϞσϧΛ͍͡ΔΞϓϩʔνɺͪΖΜ༗ޮͰ͢ ɹݚमͰ#MFOEFSͰϞσϧΛ͍ͬͯ͡ϙϦΰϯܰݮͱ͔Γ·͕ͨ͠ɺ ɹΤϯδχΞͷٕज़ͱ͍͏ΑΓΞʔςΟετ͞ΜدΓͷͳͷͰׂѪ͠·͢
LOD (Level of Detail)
-0% -FWFMPG%FUBJM Χϝϥ͔ΒͷڑʹΑͬͯϞσϧͦͷͷΛมߋ Χϝϥ͔Βԕ͍ΦϒδΣΫτ΄Ͳૈ͍ΦϒδΣΫτΛදࣔ ࣗಈతʹૈ͘දࣔͯ͘͠ΕΔΘ͚Ͱͳࣗ͘લͰϞσϧΛ༻ҙ͢Δ
-0% -FWFMPG%FUBJM 4UBOEBSE"TTFUTʹ͋ͬͨ#SPBEMFBGͷ σϑΥϧτઃఆͷ-0%Ϟσϧͱ ύϥϝʔλΛར༻ Ϟσϧʢ࣭ߴɺதɺɺۃʣ ॳظঢ়ଶ͔Β-0%Λద༻ͨ͠ͱ͜Ζ
ϙϦΰϯ͕ສˠສʙສ·Ͱ ݮʂ "OESPJEGQTˠGQTʙGQTલޙ J1IPOF9GQTୡʂʂ
-0%ద༻લޙͷϓϨʔը໘ #FGPSF "GUFS ΛڽΒͤ"GUFSͷํૈ͍ඳ͕ࣸ͋ΔͱΘ͔Δͷͷ ϓϨʔʹເதͩͱؾʹͳΒͳͦ͞͏
ΧϦϯά(Culling )
ϑϥελϜΧϦϯά 6OJUZͷΧϝϥʢϑϥελϜ<ਲ਼ମ>ΧϦϯάʣ Χϝϥͷਖ਼໘ํʹਲ਼ମ͕ݱΕΔ ͜ͷਲ਼ମͷ෦ͷΦϒδΣΫτ͚ͩඳը͠ɺ ͦͷ֎෦ʹ͋ΔΦϒδΣΫτશ෦ඳըΛ͠ͳ͍
ਲ਼ମͷܗઃఆͰมߋՄೳ ϑϥελϜΧϦϯά 6OJUZଆͰσϑΥϧτͰͬͯ͘ΕΔʂ
ΦΫϧʔδϣϯΧϦϯά ΦΫϧʔδϣϯΧϦϯά Χϝϥʢਲ਼ମ෦ʣͷΦϒδΣΫτͷ͏ͪ खલͷΦϒδΣΫτʹશʹӅΕ͍ͯΔͷ ඳը͠ͳ͍
ద༻ͯ͠ϓϨΠϠʔ͔ΒݟͨʹมԽͳ͍
ΦΫϧʔδϣϯΧϦϯάద༻ޙ ॳظঢ়ଶʢϑϥελϜΧϦϯάͷΈʣ͔Β ΦΫϧʔδϣϯΧϦϯάΛద༻ -0%ద༻͠ͳ͍ ΦΫϧʔδϣϯσʔλͱݺΕΔσʔλΛੜ͢Δࡍͷ ύϥϝʔλσϑΥϧτ
ϙϦΰϯ ສˠສʙສఔʹ "OESPJEGQTˠGQTʙGQT J1IPOF9GQTʙGQTʹ ΧϝϥͷํʹΑͬͯඳը͞ΕΔΦϒδΣΫτͷ͕ มΘΔͨΊ͔ͳΓΒ͖ͭ͋Δ (16ෛՙݮΔ͕ɺःṭఆܭࢉͰ$16ෛՙ૿͑Δ
ҙ ύϑΥʔϚϯε͔֬ʹେࣄ͕ͩΞʔςΟετ͞Μͱͷ࿈ܞඞཁ ˠΤϯδχΞ͕উखʹΦϒδΣΫτͷݟͨͷ࣭Λམͱ͍͍ͯ͠ͷͰͳ͍ ˠݟͨͱύϑΥʔϚϯεΛཱ྆Ͱ͖Δ͍͍Ԙകͷͱ͜ΖΛ୳͢
·ͱΊ ৽ଔݚमͰ514Λ࡞ͬͨ ΤϯδχΞઢͰΦʔϓϯϫʔϧυ࣮࣌ʹ͑Δٕज़Λհ ࣮ࡍʹϑΟʔϧυΛ࡞͠ɺඳըͷෛՙ͕ܰݮ͞Εͨ͜ͱΛ֬ೝͨ͠
͓·͚ɿΤϯδχΞͷੈքΦʔϓϯϫʔϧυ ֶशϧʔτ͕ଟ༷ ɾࠃՈࢼݧͳͲͷΑ͏ʹඞͣ௨Βͳ͚Ε͍͚ͳ͍ϙΠϯτ͋·Γͳ͍ ɾܾΊΒΕͨγφϦΦ͕ͳ͍͔ΒΈΜͳ͍࣋ͬͯΔٕज़༷ʑ ࣗΒΞΫγϣϯΛى͜͢΄Ͳੈք͕͕͍ͬͯ͘ ɾಡॻͰٕࣝज़Λशಘ
ɾେֶͷߨٛɾ࣮शɾ5"ɾ0" ɾίϯϐϡʔλؔͷαʔΫϧɺίϛϡχςΟ׆ಈʢϦϞʔτͰ0,ʣ ɾڝϓϩ ɾ։ൃίϯϖʢϦϞʔτͰ0,ʣ ɾػցֶशϋοΧιϯ ɾਓPSগਓνʔϜͰήʔϜɺΞϓϦͳͲΛ։ൃͯ͠ϦϦʔε ͳͲͳͲʜ ˠͪΐͬͱͨ͠ҰาͰʮΓ͍ͨ͜ͱʯʮಌΕͷਓʯ͕ݟ͔ͭΔ͔ ˠίϩφՒͰϦϞʔτͷΠϕϯτʹੵۃతʹࢀՃ