雑に覚えるゲームエンジンとその足回り(VRもちょっとあるよ)

7261f5f3005171a32e23be2cc0a4a5a4?s=47 0cha
June 20, 2017
240

 雑に覚えるゲームエンジンとその足回り(VRもちょっとあるよ)

IWM12の発表資料です。

7261f5f3005171a32e23be2cc0a4a5a4?s=128

0cha

June 20, 2017
Tweet

Transcript

  1. ࡶʹ֮͑ΔήʔϜΤϯδϯ ͱͦͷ଍ճΓɻ VR΋ͪΐͬͱ͋ΔΑɻ མ߹ ܆ ( גࣜձࣾγεςϜ޻๪ΤϜ )

  2. ࣗݾ঺հ མ߹ ܆ , ͓ͪΌ , 0cha αʔόͱ͔PMͱ͔ίϯηϯτͷ഑ઢͱ͔ ςϨϏήʔϜωΠςΟϒ(ॳ୅ϑΝϛίϯͷ1೥ޙഐ) ৽࡞ήʔϜͷͨΊʹ༗څऔಘ͢Δఔ౓ʹ͸ήʔϜ޷͖

    ࠷ۙήʔϜ͕ϦΞϧա͗ͯߴॴڪා঱Λ୐಺Ͱମݧ͠· ͨ͠ɾɾɾ
  3. ා͗ͩ͢Ζɾɾɾɾ

  4. 3DήʔϜͷਐԽ͕͍͢͝

  5. ͓ͬ͞Μ͸ौΊͷ͓ͬ͞Μʹ METAL GEAR SOLID (1998೥) METAL GEAR SOLID 5 (2015೥)

  6. ϗετͬΆ͍ͷ͸ϗετʹ Final Fantasy VII (1997೥) Final Fantasy XV (2016೥) \

    ͏͐ʔʔʔ͍͆͆͆/
  7. Կ͕ੌ͍ͬͯ ͋͘·ͰʮήʔϜʯͳͷͰɺϦΞϧλΠϜͰಈ͔ͤΔ ਓؒͱ͔ಈ෺͸ͱ΋͔͘ɺ໦ͱ͔ंͱ͔ͺͬͱݟ࣮ࣸ PS4 / Xbox Oneͱ͔த਎͸·Μ·PCʹͳΓ·ͨ͠ɻ AMDͷCPUੵΜͰϝϞϦ8GB৐ͬͯGPU΋৐ͬͯΔɻ PS4(FreeBSD 9.0)

    / XBox One(Windows)
  8. ࠓ೔ͷ಺༰ 3DάϥϑΟοΫAPI GPU VR(͕࣌ؒ͋Ε͹)

  9. 3DάϥϑΟοΫAPIͬͯʁ 3Dϓϩάϥϛϯά΍ͬͯΈ͍ͨʂͱࢥͬͨॳ৺ऀͷ લʹग़ͯདྷ͖ͯࡴ͠ʹ͔͔ͬͯ͘Δ΍ͭ 3Dͷඳը͸େྔͷܭࢉ΍खଓ͖ɺCPU΍GPUͷ࿈ܞ ͳͲ͕ඞਢͳͷͰɺͦΕΒΛ্ख͍͜ͱͯ͘͠ΕΔ APIͷਐԽ͕GPUͷਐԽɺͦͷٯ΋͔͠Γͳجװٕज़ Unity΋ଞͷήʔϜΤϯδϯ΋͜ͷٕज़ͷ্Ͱ੒Γཱͬ ͯΔ

  10. ཚཱɻ (ࢄ͍ͬͯͬͨͷ΋੕ͷ਺΄Ͳɻɻɻɻ) Direct3D: Windows༻,ۀքඪ४ ٙࣅDirect3D: Direct3DͬΆ͘ৼΔ෣͏ίϯγϡʔϚ༻ API OpenGL: Windows/macOS/Linux/Android/iOS Metal:

    macOS/iOS Vulkan: OpenGLͱຆͲಉ͡(macOS/iOS͸ɾɾɾ)
  11. ͜͏ͳΔ͔ͳͱ Direct3D: Direct3D12͕ొ৔ɺશ͘৽͍͠෺ʹɻ૬ม ΘΒͣԦऀͷ෩֨ɻ Metal: զ͕ಓΛߦ͘(Metal2ͰVRͱ͔དྷΔΒ͍͠Α) Vulkan: ݹ͍࣮૷ͷOpenGLΛࣺͯͯࠓ෩ͷ࣮૷ʹɻ

  12. Direct3D12ͱVulkanͱMetal ௿Ϩϕϧ(ϨΠϠʔతʹ) ϚϧνίΞCPUΛޮ཰Α͘࢖༻Ͱ͖Δ ඳըʹؔ͢ΔCPUෛՙΛԼ͛ͯଞͷλεΫ΁ׂΓ౰ͯ υϥΠόͰରԠ͍ͯͨ͠ϝϞϦ؅ཧΛϢʔβʔͰ؅ཧ Ͱ͖Δ(͑ɾɾɾʁ) ͦͷଞ͍Ζ͍Ζ(Draw call͕Ͳ͏ͱ͔͸֤ࣗͰʂ)

  13. ͜Μͳײ͡Β͍͠ (ଟ෼) DirectX11/OpenGL DirectX12/Vulkan/Metal ήʔϜ ήʔϜ ɾϝϞϦ؅ཧ ɾεϨου؅ཧ ɾίϚϯυ؅ཧ υϥΠό

    ɾϝϞϦ؅ཧ ɾεϨου؅ཧ ɾίϚϯυ؅ཧ υϥΠό GPU GPU
  14. ͳΔ΄ͲΘ͔ΒΜɾɾɾ ࣮ࡍԿ΍ͬͯΔͷ͔VulkanͷαϯϓϧίʔυΛΈͯΈΑ͏ɻ https://github.com/Pctg-x8/vkTest

  15. ΤάΈ͕ࠅ͍

  16. ಀ͛·͠ΐ͏ɻ ͍ܰؾ࣋ͪͰ౿ΈೖΕͪΌμϝͳྖҬ ૉ௚ʹϚ΢εΆͪʔͰϙϦΰϯग़ͤΔ؀ڥͰੜ͖·͠ΐ ͏ Unityͱ͔ͷήʔϜΤϯδϯ͕Կͱ͔ͯ͘͠ΕΔ (Direct3D12/Vulkan/MetalରԠͯ͠·͢) Direct̏D12 < Vulkan <

    OpenGL < Metal < DirectX11 ॻ͚ͳͯ͘΋ྑ͍͚ͲଘࡏΛೝ͓͖ࣝͯ͠·͠ΐ͏
  17. GPUͬͯͳΜͧ΍

  18. ֆΛग़͢΍ͭ Graphics Processing Unit ฒྻܭࢉ͕ಘҙͳϑϨϯζ(2000ίΞͱ͔৐ͬͯ·͢) 3DήʔϜ, 3DCG, ػցֶशʹඞਢ DirectX౳ͷάϥϑΟοΫAPIͱຶ݄ͷؔ܎ جຊతʹσεΫτοϓPC޲͚(PCI-E઀ଓ)

    NVIDIA(ΤψϰΟσΟΞ) ͱ AMD(ݩATI)ͷ2ڧ
  19. Կ࢖͑͹ྑ͍ͷʁ NVIDIA GeforceγϦʔζ GTX 970, 980, 980Ti GTX1060, 1070, 1080,

    1080Ti, TITAN X AMD RadeonγϦʔζ RX480, 580 R9 280, 390 3ສԁʙ17ສԁ VRίϯςϯπΛָ͠ΉͳΒ
  20. 3DίϯςϯπΛʮ༡Ϳʯ͔ʮ࡞Δʯ͔Ͱબ୒͢ΔGPU ͸ߟ͑·͠ΐ͏ɻͨͩ͠ɺجຊେ͸খΛ݉Ͷ·͢ CPUͷϨʔϯ਺ͱ͔·ͨ෼͔Βͳ͍ݴ༿΋ग़ͯ͘ΔͷͰ ࠓ೔ଟ෼ډΔͰ͋Ζ͏GPUେ޷͖ͳਓͱ͔ʹ૬ஊ͠Α͏ SLI(NVIDIA) / CrossFire(AMD)ٕज़ͰಉܕͷGPUΛ࿈݁͞ ͤΔͳΜͯࣄ΋ग़དྷ·͢ ͨͩ͠2ຕࠩ͠Ͱྑ͘ग़ͯ1.5ഒఔ౓Ͱ͢ Twitterʹ17ສ͢ΔGPUΛ4ຕ৐͚ͬͯΔਓ͕ډ͍ͯҋΛ

    ݟ·ͨ͠ɾɾɾɾ
  21. ҙ஍Ͱ΋ϊʔτͷํ 1080ͱ͔ࡌͬͯΔͷ΋͋Γ·͕͢೤͕ɾɾɾɾ ֎෇͚GPUϘοΫεͳΔ෺͕ग़࢝Ί·ͨ͠ 3ສԁʙ8ສԁఔ౓ͰThunderbolt3Ͱ઀ଓ ΋ͪΖΜGPU͸ผ్༻ҙ ελόͰUnity΍Battlefield΍Γ͍ͨͳΒͲ͏ͧ

  22. ήʔϜΤϯδϯ

  23. ήʔϜΤϯδϯ ͖ͬ͞ͷίʔυॻ͔ͳͯ͘΋ྑ͘ͳΔ෺ ͜Ε͚ͩͰ࡞ͬͯΔਓʹ଍޲͚ͯ৸ΒΕͳ͍ Unity / UnrealEngineͱ͔͕༗໊ ؤுΕ͹ݸਓϨϕϧͰ঎ۀ࡞඼ฒΈͷ෺͕࡞ΕΔ εϚϗΞϓϦ΋։ൃ̤̠ʂ

  24. Unity ଟ෼ଞͷํ͔Β͓࿩͠௖͚ΔͷͰৄࡉ͸ׂѪ Windows/macOS/LinuxʹରԠ ೔ຊޠͷ৘ใ͕๛෋ Ϩʔβʔ୤ໟث ϓϦΩϡΞ

  25. ө૾දݱπʔϧͱͯ͠ͷήʔϜΤϯδϯ ຐ๏࢖͍ϓϦΩϡΞʂޙظED͸Unity͕ࢧ͍͑ͯ·͢

  26. Unreal Engine ϑΥτϦΞϧ(࣮ࣸΈ͍ͨͳ)ͳϨϯμϦϯά(ඳը)͕ಘҙ Unityͱಉ͘͡جຊແྉ Windows/macOS/LinuxʹରԠ Blueprint͍ͬͯ͏QuartzComposerΈ͍ͨͳϏδϡΞϧϓϩά ϥϛϯά΋ಛ௃ FF7ͷϦϝΠΫʹ࢖ΘΕͯΔΒ͍͠ ࢮਆ

  27. ө૾දݱπʔϧͱͯ͠ͷήʔϜΤϯδϯ2 TV൛σεϊʔτ͸Unreal Engine͕ࢧ͍͑ͯ·͢

  28. ࢖ͬͯΈ͍ͯͩ͘͞ ࢠڙͷࠒήʔϜ։ൃऀʹ͕͋͜Εͨਓ ΞΠσΞ͸͋Δ͚ͲϞσϦϯάͱ͔ग़དྷͳ͍ਓ Unity͸ຊ౰ʹAsset͕๛෋ ө૾࡞඼ʹ3DΛऔΓೖΕͯΈ͍ͨਓ Ծ૝௨՟ͷϚΠχϯάʹ๞͖ͯGPU༨ͬͯΔਓ

  29. ౜ಥʹVR͍͖·͢

  30. Virtual Reality ྆؟ࢹࠩ(ࠨӈͰݟ͑ͯΔ૾ͷࠩҟ) ᫔᫓(྆؟ͷ஫ࢹ఺ͱͳ֯͢౓) ӡಈࢹࠩ(ࢹ఺ͷҠಈ) ↑Λར༻ͯ͠ʮཱମࢹʯΛԾ૝ۭؒͰߦ͏

  31. VR͕VRʹͳΔͨΊʹ͸ ߴղ૾౓(ߴ͚Ε͹ߴ͍΄Ͳྑ͍) ௿ϨΠςϯγ(20msҎԼ) ߴϦϑϨογϡϨʔτ(90FPSҎ্) ↑×̎ͷը໘ΛදࣔͰ͖Δػց ↑ͷίϯςϯπΛϨϯμϦϯάͰ͖ΔϚγϯ

  32. Ͱ΋͓ߴ͍ΜͰ͠ΐʁ Oculus Rift 63,800ԁ HTC Vive 107,784ԁ PlayStation VR 57,000ԁ

    ্ه+VR ReadyͳPC 12ສʙఱҪ஌Βͣສԁ ※ PSVR͸PC͸ෆཁɺͰ΋PS4͕ඞཁ ※ VR ReadyͳPC: VRίϯςϯπΛ࠶ੜՄೳͳεϖοΫΛ࣋ͭPCͷ͜ͱ ※ શ෦όϥόϥͰങͬͯফ໣඼අͰߪೖ͕͓קΊ
  33. ͦΜͳVRքʹٹੈओ͕ʂ εϚϗ࣋ͬͯΔਓʔ ͦΕVRσόΠεʹͳΓ·͢ 1000ʙ2000ԁ΄Ͳ༻ҙ͍ͯͩ͘͠͞

  34. Google Cardboard ఱԼͷGoogleઌੜ੡εϚϗΛVRʹ͢Δ΍ͭ Google͸ஈϘʔϧͱϨϯζೋݸͰ͓̺ͬͯݴͬͯΔ AmazonͰ࢓༷Λຬͨ͢෺͕҆ՁͰചͬͯΔ Android΋iOS΋Ͳͬͪ΋͍͚Δ SDK͕ແঈͰެ։தɻUnitiyʹ΋؆୯ʹ૊ΈࠐΊΔ ※iOS༻ʹϏϧυ͢Δʹ͸macOS͕ඞཁͰ͢

  35. VR͕VRʹͳΔͨΊʹ͸ ߴղ૾౓(ߴ͚Ε͹ߴ͍΄Ͳྑ͍) ௿ϨΠςϯγ(20msҎԼ) ߴϦϑϨογϡϨʔτ(90FPSҎ্) ↑×̎ͷը໘ΛදࣔͰ͖Δػց ↑ͷίϯςϯπΛϨϯμϦϯάͰ͖ΔϚγϯ জӘӒҽӷәᒶӶӐҹӊҿҮ

  36. εϚϗͰVR Android͸Vulkan౥ࡌ༧ఆ Google Daydream͕Android7.0Ͱαϙʔτ ৽͍͠VR؀ڥ 20msҎԼ ίϯτϩʔϥ͕࢖͑Δ iOS͸ɾɾɾ

  37. (ۚͷ࿩͔ͯ͠͠ͳ͍ͷʹ) ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠