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
雑に覚えるゲームエンジンとその足回り(VRもちょっとあるよ)
Search
0cha
June 20, 2017
0
300
雑に覚えるゲームエンジンとその足回り(VRもちょっとあるよ)
IWM12の発表資料です。
0cha
June 20, 2017
Tweet
Share
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.8k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.1k
A designer walks into a library…
pauljervisheath
207
24k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
How to Ace a Technical Interview
jacobian
279
23k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
A Tale of Four Properties
chriscoyier
160
23k
Transcript
ࡶʹ֮͑ΔήʔϜΤϯδϯ ͱͦͷճΓɻ VRͪΐͬͱ͋ΔΑɻ མ߹ ܆ ( גࣜձࣾγεςϜΤϜ )
ࣗݾհ མ߹ ܆ , ͓ͪΌ , 0cha αʔόͱ͔PMͱ͔ίϯηϯτͷઢͱ͔ ςϨϏήʔϜωΠςΟϒ(ॳϑΝϛίϯͷ1ޙഐ) ৽࡞ήʔϜͷͨΊʹ༗څऔಘ͢ΔఔʹήʔϜ͖
࠷ۙήʔϜ͕ϦΞϧա͗ͯߴॴڪාΛͰମݧ͠· ͨ͠ɾɾɾ
ා͗ͩ͢Ζɾɾɾɾ
3DήʔϜͷਐԽ͕͍͢͝
͓ͬ͞ΜौΊͷ͓ͬ͞Μʹ METAL GEAR SOLID (1998) METAL GEAR SOLID 5 (2015)
ϗετͬΆ͍ͷϗετʹ Final Fantasy VII (1997) Final Fantasy XV (2016) \
͏͐ʔʔʔ͍͆͆͆/
Կ͕ੌ͍ͬͯ ͋͘·ͰʮήʔϜʯͳͷͰɺϦΞϧλΠϜͰಈ͔ͤΔ ਓؒͱ͔ಈͱ͔͘ɺͱ͔ंͱ͔ͺͬͱݟ࣮ࣸ PS4 / Xbox Oneͱ͔த·Μ·PCʹͳΓ·ͨ͠ɻ AMDͷCPUੵΜͰϝϞϦ8GBͬͯGPUͬͯΔɻ PS4(FreeBSD 9.0)
/ XBox One(Windows)
ࠓͷ༰ 3DάϥϑΟοΫAPI GPU VR(͕࣌ؒ͋Ε)
3DάϥϑΟοΫAPIͬͯʁ 3DϓϩάϥϛϯάͬͯΈ͍ͨʂͱࢥͬͨॳ৺ऀͷ લʹग़ͯདྷ͖ͯࡴ͠ʹ͔͔ͬͯ͘Δͭ 3Dͷඳըେྔͷܭࢉखଓ͖ɺCPUGPUͷ࿈ܞ ͳͲ͕ඞਢͳͷͰɺͦΕΒΛ্ख͍͜ͱͯ͘͠ΕΔ APIͷਐԽ͕GPUͷਐԽɺͦͷٯ͔͠Γͳجװٕज़ UnityଞͷήʔϜΤϯδϯ͜ͷٕज़ͷ্ͰΓཱͬ ͯΔ
ཚཱɻ (ࢄ͍ͬͯͬͨͷͷ΄Ͳɻɻɻɻ) Direct3D: Windows༻,ۀքඪ४ ٙࣅDirect3D: Direct3DͬΆ͘ৼΔ͏ίϯγϡʔϚ༻ API OpenGL: Windows/macOS/Linux/Android/iOS Metal:
macOS/iOS Vulkan: OpenGLͱຆͲಉ͡(macOS/iOSɾɾɾ)
͜͏ͳΔ͔ͳͱ Direct3D: Direct3D12͕ొɺશ͘৽͍͠ʹɻ૬ม ΘΒͣԦऀͷ෩֨ɻ Metal: զ͕ಓΛߦ͘(Metal2ͰVRͱ͔དྷΔΒ͍͠Α) Vulkan: ݹ͍࣮ͷOpenGLΛࣺͯͯࠓ෩ͷ࣮ʹɻ
Direct3D12ͱVulkanͱMetal Ϩϕϧ(ϨΠϠʔతʹ) ϚϧνίΞCPUΛޮΑ͘༻Ͱ͖Δ ඳըʹؔ͢ΔCPUෛՙΛԼ͛ͯଞͷλεΫׂΓͯ υϥΠόͰରԠ͍ͯͨ͠ϝϞϦཧΛϢʔβʔͰཧ Ͱ͖Δ(͑ɾɾɾʁ) ͦͷଞ͍Ζ͍Ζ(Draw call͕Ͳ͏ͱ͔֤ࣗͰʂ)
͜Μͳײ͡Β͍͠ (ଟ) DirectX11/OpenGL DirectX12/Vulkan/Metal ήʔϜ ήʔϜ ɾϝϞϦཧ ɾεϨουཧ ɾίϚϯυཧ υϥΠό
ɾϝϞϦཧ ɾεϨουཧ ɾίϚϯυཧ υϥΠό GPU GPU
ͳΔ΄ͲΘ͔ΒΜɾɾɾ ࣮ࡍԿͬͯΔͷ͔VulkanͷαϯϓϧίʔυΛΈͯΈΑ͏ɻ https://github.com/Pctg-x8/vkTest
ΤάΈ͕ࠅ͍
ಀ͛·͠ΐ͏ɻ ͍ܰؾ࣋ͪͰ౿ΈೖΕͪΌμϝͳྖҬ ૉʹϚεΆͪʔͰϙϦΰϯग़ͤΔڥͰੜ͖·͠ΐ ͏ Unityͱ͔ͷήʔϜΤϯδϯ͕Կͱ͔ͯ͘͠ΕΔ (Direct3D12/Vulkan/MetalରԠͯ͠·͢) Direct̏D12 < Vulkan <
OpenGL < Metal < DirectX11 ॻ͚ͳͯ͘ྑ͍͚ͲଘࡏΛೝ͓͖ࣝͯ͠·͠ΐ͏
GPUͬͯͳΜͧ
ֆΛग़ͭ͢ Graphics Processing Unit ฒྻܭࢉ͕ಘҙͳϑϨϯζ(2000ίΞͱ͔ͬͯ·͢) 3DήʔϜ, 3DCG, ػցֶशʹඞਢ DirectXͷάϥϑΟοΫAPIͱຶ݄ͷؔ جຊతʹσεΫτοϓPC͚(PCI-Eଓ)
NVIDIA(ΤψϰΟσΟΞ) ͱ AMD(ݩATI)ͷ2ڧ
Կ͑ྑ͍ͷʁ NVIDIA GeforceγϦʔζ GTX 970, 980, 980Ti GTX1060, 1070, 1080,
1080Ti, TITAN X AMD RadeonγϦʔζ RX480, 580 R9 280, 390 3ສԁʙ17ສԁ VRίϯςϯπΛָ͠ΉͳΒ
3DίϯςϯπΛʮ༡Ϳʯ͔ʮ࡞Δʯ͔Ͱબ͢ΔGPU ߟ͑·͠ΐ͏ɻͨͩ͠ɺجຊେখΛ݉Ͷ·͢ CPUͷϨʔϯͱ͔·͔ͨΒͳ͍ݴ༿ग़ͯ͘ΔͷͰ ࠓଟډΔͰ͋Ζ͏GPUେ͖ͳਓͱ͔ʹ૬ஊ͠Α͏ SLI(NVIDIA) / CrossFire(AMD)ٕज़ͰಉܕͷGPUΛ࿈݁͞ ͤΔͳΜͯࣄग़དྷ·͢ ͨͩ͠2ຕࠩ͠Ͱྑ͘ग़ͯ1.5ഒఔͰ͢ Twitterʹ17ສ͢ΔGPUΛ4ຕ͚ͬͯΔਓ͕ډ͍ͯҋΛ
ݟ·ͨ͠ɾɾɾɾ
ҙͰϊʔτͷํ 1080ͱ͔ࡌͬͯΔͷ͋Γ·͕͕͢ɾɾɾɾ ֎͚GPUϘοΫεͳΔ͕ग़࢝Ί·ͨ͠ 3ສԁʙ8ສԁఔͰThunderbolt3Ͱଓ ͪΖΜGPUผ్༻ҙ ελόͰUnityBattlefieldΓ͍ͨͳΒͲ͏ͧ
ήʔϜΤϯδϯ
ήʔϜΤϯδϯ ͖ͬ͞ͷίʔυॻ͔ͳͯ͘ྑ͘ͳΔ ͜Ε͚ͩͰ࡞ͬͯΔਓʹ͚ͯ৸ΒΕͳ͍ Unity / UnrealEngineͱ͔͕༗໊ ؤுΕݸਓϨϕϧͰۀ࡞ฒΈͷ͕࡞ΕΔ εϚϗΞϓϦ։ൃ̤̠ʂ
Unity ଟଞͷํ͔Β͓͚͠ΔͷͰৄࡉׂѪ Windows/macOS/LinuxʹରԠ ຊޠͷใ͕๛ Ϩʔβʔໟث ϓϦΩϡΞ
ө૾දݱπʔϧͱͯ͠ͷήʔϜΤϯδϯ ຐ๏͍ϓϦΩϡΞʂޙظEDUnity͕ࢧ͍͑ͯ·͢
Unreal Engine ϑΥτϦΞϧ(࣮ࣸΈ͍ͨͳ)ͳϨϯμϦϯά(ඳը)͕ಘҙ Unityͱಉ͘͡جຊແྉ Windows/macOS/LinuxʹରԠ Blueprint͍ͬͯ͏QuartzComposerΈ͍ͨͳϏδϡΞϧϓϩά ϥϛϯάಛ FF7ͷϦϝΠΫʹΘΕͯΔΒ͍͠ ࢮਆ
ө૾දݱπʔϧͱͯ͠ͷήʔϜΤϯδϯ2 TV൛σεϊʔτUnreal Engine͕ࢧ͍͑ͯ·͢
ͬͯΈ͍ͯͩ͘͞ ࢠڙͷࠒήʔϜ։ൃऀʹ͕͋͜Εͨਓ ΞΠσΞ͋Δ͚ͲϞσϦϯάͱ͔ग़དྷͳ͍ਓ UnityຊʹAsset͕๛ ө૾࡞ʹ3DΛऔΓೖΕͯΈ͍ͨਓ Ծ௨՟ͷϚΠχϯάʹ͖ͯGPU༨ͬͯΔਓ
ಥʹVR͍͖·͢
Virtual Reality ྆؟ࢹࠩ(ࠨӈͰݟ͑ͯΔ૾ͷࠩҟ) (྆؟ͷࢹͱͳ֯͢) ӡಈࢹࠩ(ࢹͷҠಈ) ↑Λར༻ͯ͠ʮཱମࢹʯΛԾۭؒͰߦ͏
VR͕VRʹͳΔͨΊʹ ߴղ૾(ߴ͚Εߴ͍΄Ͳྑ͍) ϨΠςϯγ(20msҎԼ) ߴϦϑϨογϡϨʔτ(90FPSҎ্) ↑×̎ͷը໘ΛදࣔͰ͖Δػց ↑ͷίϯςϯπΛϨϯμϦϯάͰ͖ΔϚγϯ
Ͱ͓ߴ͍ΜͰ͠ΐʁ Oculus Rift 63,800ԁ HTC Vive 107,784ԁ PlayStation VR 57,000ԁ
্ه+VR ReadyͳPC 12ສʙఱҪΒͣສԁ ※ PSVRPCෆཁɺͰPS4͕ඞཁ ※ VR ReadyͳPC: VRίϯςϯπΛ࠶ੜՄೳͳεϖοΫΛ࣋ͭPCͷ͜ͱ ※ શ෦όϥόϥͰങͬͯফඅͰߪೖ͕͓קΊ
ͦΜͳVRքʹٹੈओ͕ʂ εϚϗ࣋ͬͯΔਓʔ ͦΕVRσόΠεʹͳΓ·͢ 1000ʙ2000ԁ΄Ͳ༻ҙ͍ͯͩ͘͠͞
Google Cardboard ఱԼͷGoogleઌੜεϚϗΛVRʹ͢Δͭ GoogleஈϘʔϧͱϨϯζೋݸͰ͓̺ͬͯݴͬͯΔ AmazonͰ༷Λຬ͕ͨ҆͢ՁͰചͬͯΔ AndroidiOSͲ͍͚ͬͪΔ SDK͕ແঈͰެ։தɻUnitiyʹ؆୯ʹΈࠐΊΔ ※iOS༻ʹϏϧυ͢ΔʹmacOS͕ඞཁͰ͢
VR͕VRʹͳΔͨΊʹ ߴղ૾(ߴ͚Εߴ͍΄Ͳྑ͍) ϨΠςϯγ(20msҎԼ) ߴϦϑϨογϡϨʔτ(90FPSҎ্) ↑×̎ͷը໘ΛදࣔͰ͖Δػց ↑ͷίϯςϯπΛϨϯμϦϯάͰ͖ΔϚγϯ জӘӒҽӷәᒶӶӐҹӊҿҮ
εϚϗͰVR AndroidVulkanࡌ༧ఆ Google Daydream͕Android7.0Ͱαϙʔτ ৽͍͠VRڥ 20msҎԼ ίϯτϩʔϥ͕͑Δ iOSɾɾɾ
(ۚͷ͔ͯ͠͠ͳ͍ͷʹ) ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠