Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GDC2017に関する報告

Fadis
April 18, 2017

 GDC2017に関する報告

2月末にサンフランシスコで行われたGame Developers Conferenceのセッションの様子を大雑把に解説します

Fadis

April 18, 2017
Tweet

More Decks by Fadis

Other Decks in Programming

Transcript

  1. GDC2017ʹؔ͢Δใࠂ
    NAOMASA MATSUBAYASHI

    View Slide

  2. DirectX12
    And (how to avoid) Death
    by a Thousand Cuts
    ͜ͷηογϣϯͷൃදऀ
    Jurjen Katsman (Nixxes)
    GDC VaultͷURL
    http://www.gdcvault.com/play/1024384/Advanced-Graphics-
    Tech-How-to

    View Slide

  3. %JSFDU9͸೉͍͠

    View Slide

  4. ΞʔϦʔΞμϓλʔͷ໋॓
    Α͘(16͕ϋϯά͢Δ͕ϩΫͳσόοάखஈ͕ͳ͍
    ೥ॳ಄ͷঢ়گ
    υΩϡϝϯτ͕εΧεΧ
    υϥΠόͷ඼࣭͸ʜ
    Ͳͷ(16ϕϯμʔͱ΋௕ి࿩Λ͢Δࣄʹͳͬͨ
    σόοάϨΠϠ͕࣌ʑӕΛͭ͘
    ࠷ۙ͸΋͏গ͠Ϛγʹͳ͍ͬͯΔ͔΋͠Εͳ͍

    View Slide

  5. ύΠϓϥΠϯ͸ࣄલʹ࡞Ζ͏
    ೖྗετϦʔϜΛมߋ
    γΣʔμΛมߋ
    ঢ়ଶΛมߋ
    υϥΠό (16
    ඳը ύΠϓϥΠϯΛੜ੒
    ࣮ߦ
    ύΠϓϥΠϯͷมߋ͸େ͖ͳΦʔόʔϔου
    ࠓ·Ͱ
    ύΠϓϥΠϯ੾Γସ͑
    ΦϑϥΠϯ
    ϨϯμϦϯά࣌

    View Slide

  6. ύΠϓϥΠϯ͸ࣄલʹ࡞ͬͯอଘ͓ͯ͜͠͏
    ύΠϓϥΠϯΛੜ੒
    ύΠϓϥΠϯΛอଘ
    υϥΠό (16
    ύΠϓϥΠϯΛϩʔυ
    ࣮ߦ
    ͜Ε͔Β
    ඳը
    ύΠϓϥΠϯ੾Γସ͑ ύΠϓϥΠϯ੾Γସ͑
    ύΠϓϥΠϯ͸ࣄલʹ࡞Ζ͏
    ΦϑϥΠϯ
    ϨϯμϦϯά࣌

    View Slide

  7. ίετ͕ϋʔυ΢ΣΞʹΑͬͯେ͖͘ҟͳΔ
    όϦΞͷίετ͕ߴ͍ϋʔυ΢ΣΞͰ΋
    ੑೳ͕ग़ΔΑ͏ʹ
    ࠷খͷόϦΞͰࡁΉΑ͏৺͕͚Δඞཁ͕͋Δ
    όϦΞ
    ͦͷ࣮ࠩʹഒ

    ࣌ؒ
    4.$6
    ظ

    View Slide

  8. %JSFDU9Ͱ͸
    ϝϞϦΛͲͷΑ͏ʹ࢖͏͔Λ൑அ͢Δͷ͸υϥΠό
    Ϣʔβ͸ϦιʔεΛ࡞Γ͍ͨ࣌
    ࡞Γ͍ͨ਺͚ͩυϥΠόʹཁٻ͢Ε͹Α͔ͬͨ
    ϦιʔεΛ࡞੒
    υϥΠό
    (16
    ϦιʔεΛ࡞੒
    ϦιʔεΛ࡞੒
    ϝϞϦϒϩοΫΛ֬อ
    ϝϞϦ؅ཧ

    View Slide

  9. υϥΠό
    %JSFDU9Ͱ͸
    ϝϞϦΛͲͷΑ͏ʹ࢖͏͔Λ൑அ͢Δͷ͸Ϣʔβ
    Ϧιʔε͝ͱʹ
    ΞϥΠϯ͞ΕͨϝϞϦϒϩοΫΛ֬อ͢Δͱ
    ͋ͬͱ͍͏ؒʹϝϞϦΛ࢖͍੾Δ
    ϝϞϦϒϩοΫΛ֬อ
    ϝϞϦϒϩοΫΛ֬อ
    ϝϞϦϒϩοΫΛ֬อ
    ϝϞϦ؅ཧ
    ͭ·Γ͜Ε͸TCSLͰ
    NBMMPD͸ࣗ෼Ͱ࡞Εͱݴ͍ͬͯΔ
    (16

    View Slide

  10. (16
    (16ϝϞϦʹϦιʔε͕৐Γ੾Βͳ͍࣌
    ԿΛεϫοϓΞ΢τͤ͞Δ͔ΛܾΊΔͷ΋Ϣʔβ
    .BLF3FTJEFOU
    &WJDU
    ࠓඞཁͳϦιʔεΛ(16ϝϞϦʹ໭͢
    ͙͢ʹඞཁͳ͍ϦιʔεΛγεςϜϝϞϦʹಀ͕͢
    ϝϞϦ؅ཧ
    ͨͩ͠&WJDU͸ϦιʔεΛ
    γεςϜϝϞϦʹಀ͕͢ࣄΛڐՄ͢Δ͚ͩͰ
    ௚ͪʹγεςϜϝϞϦʹҠಈͤ͞ΔΘ͚Ͱ͸ͳ͍
    γεςϜ
    ϝϞϦ

    View Slide

  11. ίϚϯυϦετ
    $PNNBOE-JTU͸ͨ͘͞Μ࡞ΕΔ
    $PNNBOE"MMPDBUPS͸ͨ͘͞Μ࡞ͬͯ͸͍͚ͳ͍
    εϨουʹ͖ͭݸͷ$PNNBOE"MMPDBUPSΛ࡞ͬͯ
    ෳ਺ͷ$PNNBOE-JTUͰ࢖͍·Θͦ͏

    View Slide

  12. σΟεΫϦϓλώʔϓ
    %JSFDU9Ͱ͸
    σΟεΫϦϓλώʔϓ͸ෳ਺࡞ΕΔࣄʹͳ͍ͬͯΔ
    ϋʔυ΢ΣΞʹ͸
    σΟεΫϦϓλώʔϓ͸͔ͭ͠ͳ͍
    ҟͳΔσΟεΫϦϓλώʔϓΛ࢖͏λεΫ͸
    ಉ࣌ʹ࣮ߦͰ͖ͳ͍
    /7*%*"΋".%΋σΟεΫϦϓλώʔϓ͸
    શͯͷίϚϯυΩϡʔͰͭʹ͢ΔࣄΛਪ঑͍ͯ͠Δ

    View Slide

  13. ϚϧνίΞϨϯμϦϯά
    ෳ਺ͷεϨουͰίϚϯυϦετΛ࡞ͬͯ
    ίϚϯυΩϡʔʹੵΉ͜ͱ͕Ͱ͖Δ
    ͕
    ࠓ೔ͷϨϯμϦϯάͰॏཁͳͷ͸
    ՄೳͳݶΓίϚϯυΛ·ͱΊͯ
    $16ͷ࢓ࣄΛݮΒ͢ࣄͰ͋Δ఺Λ๨Εͯ͸͍͚ͳ͍
    ίϚϯυϦετͷ࡞੒͕ෳ਺ͷεϨουͰͰ͖ͯ΋
    ͦͷҝʹόον͕ࡉ੾ΕʹͳΔͱ
    ݁Ռͱͯ͠ύϑΥʔϚϯεͷ௿ԼΛট͘ࣄ͕͋Δ

    View Slide

  14. "TZODDPNQVUF
    ".%ͷݹ͍ϋʔυ΢ΣΞͰ
    ࣮ߦͨ࣌͠ͷಈ͖͕ո͍͠
    ௿ίετͳϑΣϯε͕ͳ͍
    ࢖͍ॴ͸ͨ͘͞Μ͋Γͦ͏͕ͩ

    View Slide

  15. 4-Jͱ͔$SPTT'JSFͱ͔ݺ͹Ε͍ͯͨ
    ෳ਺ͷ(16ͰϨϯμϦϯά͢Δख๏͕
    ϕϯμඇґଘͰͰ͖ΔΑ͏ʹͳͬͨ
    .VMUJ(16
    ֤(16ʹผʑͷॲཧΛͤ͞Δ͜ͱ΋
    ग़དྷΔࣄʹͳͬͯΔ͚Ͳ೉͗ͯ͢͠ఘΊͨ

    View Slide

  16. ϚΠΫϩιϑτ͸%JSFDU9Λਪ͍ͨ͠
    (16԰΋%JSFDU9Λਪ͍ͨ͠
    ։ൃऀ΋%JSFDU9Λਪ͍ͨ͠
    Ϣʔβ͸%JSFDU9ͷόʔδϣϯͱ͔Ͳ͏Ͱ΋͍͍
    ϢʔβʹΘ͔Δར఺Λࣔ͢ඞཁ͕͋Δ
    ࢢ৔ʹग़্͢Ͱͷ՝୊
    ͔͠͠%JSFDU9͕ҖྗΛൃش͢Δͷ͸
    ͍͔ͭ͘ͷ৚͕݅ἧͬͨ৔߹ʹݶΒΕΔ

    View Slide

  17. ͦ͏Ͱ͸ͳ͍
    ஫ҙਂ͘ઃܭ͞ΕͨΞϓϦέʔγϣϯ͸
    ͔֬ʹ%JSFDU9ΑΓߴ͍ੑೳΛൃشͨ͠
    %JSFDU9Ͱ͸Ͳ͏ʹ΋ͳΒͳ͍
    $16ϘτϧωοΫΛճආͰ͖Δ
    "TZOD$PNQVUF͕࢖͑Δ
    ͨͩɺ࢖͍͜ͳ͢ͷ͕೉͍͠
    ͡Ό͋%JSFDU9͸μϝͳͷ͔͍

    View Slide

  18. Advanced Graphics Tech:
    Moving to DirectX 12:
    Lessons Learned
    ͜ͷηογϣϯͷൃදऀ
    Tiago Rodrigues (Ubisoft Montreal)
    GDC VaultͷURL
    http://www.gdcvault.com/play/1024386/Advanced-Graphics-
    Tech-Moving-to

    View Slide

  19. "OWJM/FYU
    "TTBTTJOT$SFFEγϦʔζͰ࢖ΘΕ͍ͯΔ
    ಺੡ͷඳըΤϯδϯ
    ैདྷͷϥϯλΠϜΛલఏʹ࡞ΒΕͨ
    "OWJM/FYUΛ%JSFDU9ʹରԠͤ͞Δ
    ϝδϟʔόʔδϣϯΞοϓΛߦ͏ࣄʹͳͬͨ

    View Slide

  20. ࠷ॳʹߦͬͨࣄ
    ୯७ͳஔ͖׵͑ʹΑΔҠ২
    ݁Ռ͸༧૝௨Γ$16(16ڞʹੑೳ͕མͪͨ
    ಛʹ(16ଆͷॲཧʹཁ͢Δ͕࣌ؒ
    %JSFDU9ͱൺֱͯ͠໿ഒʹͳͬͨ
    ͜ͷҠ২͔ΒಘΒΕΔ৘ใ
    %JSFDU9Λ࢖ͬͨଞͷνʔϜ͔Βͷ৘ใ
    %JSFDU9ʹؔ͢ΔηογϣϯͰฉ͍ͯདྷͨ࿩
    Λ΋ͱʹੑೳΛऔΓ໭͢

    View Slide

  21. %JSFDU9͔ͦΕҎલ͔Ͱ
    ߴϨΠϠʔͷίʔυΛ෼͚ͨ͘ͳ͍
    Ϧιʔε
    Ϧιʔε
    Ϧιʔε
    ύε ύε ύε ύε
    Ϧιʔε
    ࠓ·Ͱ௨ΓඞཁͳύεͱϦιʔεΛྻڍͨ͠Β
    (16Ͱޮ཰ྑ͘૸ΔίϚϯυϦετ͕ग़དྷͯ΄͍͠
    1SPEVDFS4ZTUFN

    View Slide

  22. શͯͷϨϯμϦϯάύε͕
    શͯͷϦιʔεΛඞཁͱ͍ͯ͠ΔΘ͚Ͱ͸ͳ͍
    Ϧιʔε
    Ϧιʔε
    Ϧιʔε
    ύε ύε ύε ύε
    Ϧιʔε
    ݸʑͷύεʹԿΛಡΈॻ͖͢Δ͔Λ
    ໌ࣔతʹࢦఆͯ͠΋Β͏

    View Slide

  23. શͯͷϨϯμϦϯάύε͕
    શͯͷϦιʔεΛඞཁͱ͍ͯ͠ΔΘ͚Ͱ͸ͳ͍
    Ϧιʔε
    Ϧιʔε
    Ϧιʔε
    ύε ύε ύε ύε
    Ϧιʔε
    ύεͷೖग़ྗΛ΋ͱʹ
    Ϧιʔεʹཁٻ͞ΕΔੜଘظؒΛظؒΛٻΊΔ

    View Slide

  24. ಉ࣌ʹ࢖ΘΕΔࣄ͕ͳ͍ෳ਺ͷϦιʔε͸
    ಉ͡ϝϞϦʹ഑ஔͯ͠΋໰୊ͳ͍
    Ϧιʔε
    Ϧιʔε
    Ϧιʔε
    ύε ύε ύε ύε
    Ϧιʔε
    ϦιʔεͱϦιʔεͱϦιʔε͸
    ੜଘظ͕ؒॏͳ͍ͬͯͳ͍ͨΊ
    ಉ͡ϝϞϦΛ࢖͍ճ͢ࣄ͕ग़དྷΔ
    ෳ਺ͷϦιʔε͸ಉ͡ΞυϨεʹͳΔͨΊ
    ࣝผࢠΛΤϯδϯଆͰৼͬͯ۠ผ͢Δ

    View Slide

  25. $PNQVUF
    (SBQIJDT
    ҟͳΔΩϡʔͱͷؒͰσʔλΛड͚Θͨ͢ʹ͸
    ಉظΛߦ͏ඞཁ͕͋Δ
    Ϧιʔε Ϧιʔε
    ύε ύε
    ύεͷೖग़ྗͷґଘؔ܎Λ΋ͱʹ
    ඞཁͳՕॴʹࣗಈͰಉظΛڬΉ
    ύε
    ϑ
    Σ
    ϯ
    ε

    ػ
    ϑ
    Σ
    ϯ
    ε

    ػ

    View Slide

  26. $PNQVUF
    (SBQIJDT
    ҟͳΔΩϡʔͱͷؒͰσʔλΛड͚Θͨ͢ʹ͸
    ಉظΛߦ͏ඞཁ͕͋Δ
    Ϧιʔε Ϧιʔε
    ύε ύε
    ࣗಈͰڬ·ΔಉظͰ͸ྑ͍ϖΞϦϯάʹͳΔͱ͸ݶΒͳ͍
    ύε
    ύε
    ϑ
    Σ
    ϯ
    ε

    ػ
    ϑ
    Σ
    ϯ
    ε

    ػ
    Ϣʔβ͕ಉظλΠϛϯάΛ໌ࣔͰ͖ΔΑ͏ʹͨ͠
    ͜Ε͕͋Δ৔߹ॏෳ͢Δࣗಈಉظ͸࡟আ͞ΕΔ

    View Slide

  27. ෆඞཁͳόϦΞͷճආ
    ࣌ؒ
    4.$6
    ύε
    ύε
    ύε
    ύε
    Ϧιʔε
    ॻ͘લʹಡΜͰ͠·ͬͨ
    %JSFDU9͸ಛʹԿ΋ཁٻ͞Εͳ͍ͱ
    લͷύεͷ׬ྃΛ଴ͨͣʹ
    ࣍ͷύεΛ࣮ߦͯ͠͠·͏
    όϦΞͰ
    ϦιʔεͷಡΈॻ͖ॱংΛอূ
    Ͱ΋όϦΞ଴ػ͸
    ϋʔυ΢ΣΞʹΑͬͯ͸ੌ͘஗͍

    View Slide

  28. ෆඞཁͳόϦΞͷճආ
    ύε ύε
    Ϧιʔε
    ύε
    Ϧιʔε
    ୯७ʹϦιʔε͝ͱʹόϦΞΛுΔͱ
    ՕॴͰόϦΞΛ଴ͨͳ͚Ε͹ͳΒ͍͕
    ό
    Ϧ
    Ξ

    ػ
    ό
    Ϧ
    Ξ

    ػ

    View Slide

  29. ෆඞཁͳόϦΞͷճආ
    ύε ύε
    Ϧιʔε
    ύε
    Ϧιʔε
    3FTPVSDF#BSSJFS͸Ұ౓ʹෳ਺ͷόϦΞΛ଴ͯΔ
    όϦΞ଴ػͷίετ͸ߴ͍͔΋͠Εͳ͍ͷͰ
    Ϧιʔεೖग़ྗ͔Β·ͱΊΒΕΔόϦΞΛݟ͚ͭͯ
    όϦΞ଴ػͷճ਺Λ཈͑Δ
    ό
    Ϧ
    Ξ

    ػ

    View Slide

  30. %JSFDU9͔ͦΕҎલ͔Ͱ
    γΣʔμͷύϥϝʔλͷ౉͠ํΛม͑ͨ͘ͳ͍
    %JSFDU9Ͱ͸3PPU4JHOBUVSFʹ
    ·ͱΊͯύϥϝʔλΛ౉͢ඞཁ͕͋Δ
    %JSFDU9Ͱ͸ύϥϝʔλΛ
    ͭͮͭηοτ͢Δඞཁ͕͋Δ
    Ͱ͖Ε͹)-4-΋྆ํͰ࢖͑ΔΑ͏ʹ͍ͨ͠

    View Slide

  31. Shader Input Group
    Include Test2;
    ShaderInputGroup Test
    {
    static const uint testValue = 3;
    float4 value;
    Texture2D tex0;
    RWTexture2D uav0;
    SamplerState sampler;
    SamplerState dynamicSampler;
    Test2 subType;
    }
    ͜Μͳ%4-͔Β$ͱ)-4-ͷίʔυΛੜ੒͢Δ
    %JSFDU9ͳΒ
    3PPU4JHOBUVSFͷ࡞੒ͱ੾Γସ͑ͷҝͷίʔυ
    %JSFDU9ͳΒ
    ద౰ͳεϩοτΛબΜͰ஋Ληοτ͢Δίʔυ
    ఆ਺
    Ϧιʔε
    αϯϓϥ
    ଞͷ৔ॴͰఆٛ͞ΕͨSIGΛ಺แͰ͖Δ

    View Slide

  32. Shader Input Group
    #include “sig/test.h”
    void GfxTestProducer::CompileParams(GfxDevice& device)
    {
    sig::Test test;
    test.SetValue(ubiVector4(1.0f,2.0f,3.0f,4.0f));
    test.SetTex0(testTexture);
    test.SetUav0(testUAV);
    m_CompiledTestParams = test.Compile(device);
    // …
    cmdList.SetShaderInputGroup(m_CompiledPassParas);
    }
    ੜ੒͞ΕͨΫϥεͷΠϯελϯεʹରͯ͠
    ஋Ληοτ
    3PPU4JHOBUVSFΛ࡞੒ %JSFDU9ͩͬͨΒԿ΋͠ͳ͍

    4FU(SBQIJDT3PPU4JHOBUVSF
    %JSFDU9ͩͬͨΒ͜͜Ͱ஋ͷηοτͱϦιʔεͷόΠϯυ

    "1*͕ҧͬͯ΋ಉ͡Α͏ʹ஋ΛηοτͰ͖Δ

    View Slide

  33. Shader Input Group
    #include “sig/test.hlsl”
    void main()
    {
    uint2 index = (uint2)g_Test.GetValue().xy;
    float4 value = testFunc(index, testFunc.GetSubType);
    g_Test.GetUav0()[index] = value;
    }
    float4 testFunc(in int2 index, in Test2 test2)
    {
    return test2.GetTex0()[index];
    }
    "1*͕ҧͬͯ΋ಉ͡Α͏ʹ஋ʹΞΫηεͰ͖Δ

    View Slide

  34. Pipeline State Object
    "OWJM/FYUͰ͸
    ϚςϦΞϧάϥϑͷܨ͗ํ࣍ୈͰ
    ແ਺ͷύΠϓϥΠϯεςʔτ͕
    ग़དྷΔՄೳੑ͕͋ͬͨ
    %JSFDU9ͷ140ͷϞσϧʹ߹ΘͤΔʹ͸
    ήʔϜ಺Ͱ࢖ΘΕΔ
    ύΠϓϥΠϯεςʔτͷ਺ΛߜΔඞཁ͕͋ͬͨ
    ࣮ࡍͷήʔϜதͰ࢖ΘΕ͍ͯΔ਺͸
    ͦΕ΄Ͳଟ͘ͳ͔ͬͨҝ
    σβΠφʹΑ͘࢖͏ϓϦηοτεςʔτ͔Β
    ࢖͏΋ͷΛબͿํࣜʹม͑ͯ΋Βͬͨ

    View Slide

  35. ݁Ռ
    ͜ΕΒͷ޻෉ʹΑΓ%JSFDU9ͱ%JSFDU9Ͱ
    ߴϨΠϠʔͷίʔυ͸ޓ׵Λอͬͨ·
    %JSFDU9Ͱ͸ΑΓߴ͍ੑೳΛൃشͰ͖Δ
    ඳըΤϯδϯ͕ग़དྷ্͕ͬͨ
    (16%JSFDU9ͱൺ΂ͯఔੑೳ޲্
    $16%JSFDU9ͱൺ΂͔ͯΒఔੑೳ޲্

    View Slide

  36. DirectX11ͭΑ͍!
    %JSFDU9Λ࢖ͬͯύϑΥʔϚϯε޲্
    ͱ͍͏఺͚ͩʹண໨͢Δͱׂʹ߹Θͳ͍
    "TZOD$PNQVUF͕࢖͑ΔΑ͏ʹͳΔ
    Ոఉ༻ήʔϜػʹҠ২͠΍͘͢ͳΔ
    7VMLBO౳ʹ΋ରԠ͠΍͘͢ͳΔ
    ౳΋ߟྀʹೖΕΔͱແବͳ౒ྗͰ͸ͳ͍
    (16%JSFDU9ͱൺ΂ͯఔੑೳ޲্
    $16%JSFDU9ͱൺ΂͔ͯΒఔੑೳ޲্

    View Slide

  37. Async Compute: Deep Dive
    ͜ͷηογϣϯͷൃදऀ
    Alex Dunn(NVIDIA), Stephan Hodes(AMD)
    GDC VaultͷURL
    http://www.gdcvault.com/play/1024385/Advanced-Graphics-
    Tech-Async-Compute

    View Slide

  38. ݹయతͳάϥϑΟοΫϥϯλΠϜ
    λεΫ
    λεΫ
    λεΫ
    λεΫ λεΫ
    ࣌ؒ
    4.$6
    ۙ୅తͳάϥϑΟοΫϥϯλΠϜ
    ࣌ؒ
    4.$6
    λεΫ
    λεΫ
    λεΫ
    λεΫ
    λεΫ
    8PSL1BJSJOH

    View Slide

  39. ಉ࣌ʹ࣮ߦ͞ΕΔλεΫಉ࢜Ͱ
    ܭࢉࢿݯΛୣ͍߹͏΂͖Ͱ͸ͳ͍
    (16
    4IBEPX3FOEFSJOH
    σόΠε
    ϝϞϦ
    -JHIU$VMMJOH
    ܭࢉ͕ଟ͍
    ॻ͖ࠐΈ͕ଟ͍
    ύϑΥʔϚϯεͷ޲্͕ظ଴Ͱ͖Δ
    Work Pairing

    View Slide

  40. ಉ࣌ʹ࣮ߦ͞ΕΔλεΫಉ࢜Ͱ
    ܭࢉࢿݯΛୣ͍߹͏΂͖Ͱ͸ͳ͍
    (16
    (#V⒎FS
    σόΠε
    ϝϞϦ
    44"0
    ॻ͖ࠐΈ͕ଟ͍
    ॻ͖ࠐΈ͕ଟ͍
    ύϑΥʔϚϯεͷ޲্͕ظ଴Ͱ͖ͳ͍
    Work Pairing
    ϝϞϦଳҬ͕ෆ଍͢Δ

    View Slide

  41. AMD GPUݻ༗ͷ஫ҙ఺
    4ͭͷSIMDϓϩηοαʹରͯ͠1ͭͷΩϟογϡ
    1ͭͷSIMDϓϩηοα͸࠷େ10ݸͷWavefrontΛ࣮ߦ
    WavefrontΛෳ਺࣮ߦ͢Δ͜ͱͰ
    ϝϞϦಡΈॻ͖ͷϨΠςϯγΛӅṭ
    $PNQVUF6OJU
    4*.% 4*.%
    4*.% 4*.%
    -Ωϟογϡ
    8BWFGSPOU
    8BWFGSPOU
    8BWFGSPOU
    ʜ

    View Slide

  42. WavefrontΛ૿΍͗͢͠Δͱ
    Wavefront੾Γସ͑࣌ʹ
    ඞཁͳσʔλ͕L1Ωϟογϡ͔ΒམͪΔ
    $PNQVUF6OJU
    4*.% 4*.%
    4*.% 4*.%
    -Ωϟογϡ
    8BWFGSPOU
    8BWFGSPOU
    8BWFGSPOU
    ʜ
    AMD GPUݻ༗ͷ஫ҙ఺

    View Slide

  43. ࢖ΘΕͳ͍
    ࣌ؒ
    4.
    άϥϑΟοΫ
    ܭࢉ
    Maxwell·Ͱ
    ࣌ؒ
    4.
    άϥϑΟοΫ
    NVIDIA GPUݻ༗ͷ஫ҙ఺
    ܭࢉ Pascall͔Β

    View Slide

  44. NVIDIA GPUݻ༗ͷ஫ҙ఺
    (16
    σΟεΫϦϓλ
    ώʔϓ
    σΟεΫϦϓλ
    ώʔϓ
    σΟεΫϦϓλ
    ώʔϓ
    σΟεΫϦϓλ
    ώʔϓ
    GPU্ͷ
    σΟεΫϦϓλώʔϓ͸1ͭ
    ೖΕସ͑ʹ͸
    લͷλεΫͷ׬ྃΛ଴ͭඞཁ͕͋Δ
    API্͸زͭͰ΋࡞ΕΔ

    View Slide

  45. NVIDIA GPUݻ༗ͷ஫ҙ఺
    (16
    σΟεΫϦϓλ
    ϓʔϧ
    σΟεΫϦϓλ
    ώʔϓ
    σΟεΫϦϓλ
    ώʔϓ
    σΟεΫϦϓλ
    ώʔϓ
    υϥΠό͸σΟεΫϦϓλώʔϓΛ
    ଋͶΔ͜ͱͰ੾Γସ͑Λճආ͢Δ

    View Slide

  46. σΟεΫϦϓλ
    ϓʔϧ
    ࡞੒ͨ͠σΟεΫϦϓλώʔϓͷαΠζ͕
    GPU্ʹ༻ҙ͞ΕͨαΠζΛ௒͑Δͱ
    ಥવύϑΥʔϚϯε͕௿Լ͢Δ
    σΟεΫϦϓλ
    ώʔϓ
    (16্ͷ
    σΟεΫϦϓλώʔϓʹ
    ৐Γ੾Βͳ͍
    ೖΕସ͑Δ͔͠ͳ͍
    ώʔϓ
    σΟεΫϦϓλ
    ώʔϓ

    View Slide

  47. ಉظ
    Fire-and-Forget
    λεΫ

    ࣌ؒ
    4.$6
    λεΫ
    λεΫ
    ϖΞϦϯά͍ͨ͠λεΫͷ։࢝ͷΈಉظΛߦ͏
    ظ
    ར఺: ίετ͕͔͔ΔಉظΛ1ճͰࡁ·ͤΒΕΔ

    View Slide

  48. ಉظ
    Fire-and-Forget
    ࣌ؒ
    4.$6
    λεΫ
    λεΫ2͸λεΫ1ͱ্ख͘ϖΞϦϯάग़དྷΔ
    λεΫ2ͱλεΫ3͸্ख͘ϖΞϦϯάग़དྷͳ͍
    λεΫ1ͷ࣮ߦ࣌ؒ͸େ͖͘มಈ͢Δ
    λεΫ λεΫ

    ظ

    View Slide

  49. ಉظ
    Fire-and-Forget
    λεΫ
    ࣌ؒ
    4.$6
    λεΫ
    λεΫ
    λεΫ1ͷ࣮ߦ࣌ؒʹΑͬͯ
    λεΫ2ͱλεΫ3͕
    ҙਤͤͣಉ࣌ʹ࣮ߦ͞Εͯ͠·͏

    ظ

    View Slide

  50. ಉظ
    Fire-and-Forget
    ࣌ؒ
    4.$6
    λεΫ
    λεΫ1ͷ࣮ߦ͕࣌ؒظ଴௨ΓͰ΋
    CPUଆ͕๩ͯ͘͠λεΫ2ͷ౤ೖ͕஗ΕΔͱ
    ಉ͡໰୊͕ى͜Δ

    ظ
    λεΫ λεΫ
    ஗Ԇ
    ܽ఺: ϖΞϦϯά͕ෆ֬ఆ

    View Slide

  51. ಉظ
    Handshake
    ࣌ؒ
    4.$6
    λεΫ

    ظ
    λεΫ λεΫ

    ظ
    ϖΞϦϯά͍ͨ͠λεΫͷ
    ։࢝ͱऴྃͷ྆ํͰಉظΛߦ͏
    ར఺: ϖΞϦϯά͕׬શʹ༧ଌՄೳ

    View Slide

  52. ಉظ
    Handshake
    ࣌ؒ
    4.$6
    λεΫ

    ظ
    λεΫ λεΫ

    ظ
    ܽ఺: ͍͘Β͔ͷඇಉظ࣮ߦͷػձͷ૕ࣦ
    جຊతʹ͸Handshake͕ਪ঑͞ΕΔ͕
    Fire-and-ForgetͰಉظͷ࡟ݮΛૂ͑Δ৔߹΋͋Δ
    2छྨͷಉظͷ࢖͍෼͚͕ඞཁ

    View Slide

  53. ඇಉظ੫
    CPU
    λεΫͷεέδϡʔϦϯά΍
    ಉظɺ௥ՃͷࡍʹCPUଆͰඞཁʹͳΔॲཧ
    GPU
    ద੾ͳϖΞϦϯάͷҝͷಉظͷ௥Ճ
    ඇಉظΛ্ख͘ѻ͑ͳ͍ز͔ͭͷΞʔΩςΫνϟ౳
    ඇಉظ੫͕ߴ࣮ͭ͘͘૷Λߦ͏ͱ
    ඇಉظʹΑΔύϑΥʔϚϯεͷ޲্Λ
    ଧͪফͯ͠͠·͏ࣄ͕͋Δ

    View Slide

  54. Conservative Rasterization
    and
    Raster Ordered View
    ͜ͷηογϣϯͷൃදऀ
    Rahul Sathe(NVIDIA), Evgeny Makarov(NVIDIA)
    GDC VaultͷURL
    http://www.gdcvault.com/play/1024385/Advanced-Graphics-
    Tech-Async-Compute

    View Slide

  55. ΤΠϦΞε
    ϐΫηϧͷத৺͕
    ϓϦϛςΟϒͷ಺ଆʹ͋ͬͨΒ
    ͜ͷҐஔͰϐΫηϧγΣʔμΛ࣮ߦ

    View Slide

  56. ΤΠϦΞε

    View Slide

  57. Supersampling Anti-Aliasg

    View Slide

  58. Supersampling Anti-Aliasg

    View Slide

  59. Temporal Anti-Aliasg
    t=0

    View Slide

  60. Temporal Anti-Aliasg
    t=1

    View Slide

  61. Temporal Anti-Aliasg
    t=3

    View Slide

  62. Temporal Anti-Aliasg

    View Slide

  63. Conservative Rasterization
    গ͠Ͱ΋ϐΫηϧͷதʹؚ·Ε͍ͯͨΒ
    ϐΫηϧγΣʔμͷର৅ʹ͢Δ

    View Slide

  64. Pull model interpolation
    ࠓ·Ͱ ͜Ε͔Β
    ϐΫηϧγΣʔμ͔Βࢦఆͨ͠Ґஔʹ͓͚Δ
    ௖఺ଐੑͷิؒ݁ՌΛಘΔ

    View Slide

  65. Temporal Anti-Aliasing
    δΦϝτϦγΣʔμ
    ϥελϥΠβ
    ϐΫηϧγΣʔμ
    ͜͜Ͱ௖఺ʹลͷํఔࣜͷ܎਺Λॻ͍͓ͯ͘
    Conservative Rasterization
    ϐΫηϧ಺ͷϥϯμϜͳҐஔͰ
    ลͷํఔࣜΛධՁ
    ಺ଆͳΒPull model interpolation
    αϯϓϦϯά఺Λ
    ϑϨʔϜຖʹ΋ͧ΋ͧͤ͞Δ

    View Slide

  66. Conservative Rasterizationͷམͱ݀͠
    $MJQQFS
    ϓϦϛςΟϒ͕Viewportͷ֎ʹ͸Έग़͍ͯ͠Δ৔߹
    ϋʔυ΢ΣΞ͸ࣗಈతʹϓϦϛςΟϒΛ෼ׂ͢Δ
    ͔͜͜Βը໘֎
    ͜͜Ͱ෼ׂ

    View Slide

  67. Conservative Rasterizationͷམͱ݀͠
    $MJQQFS
    ϐΫηϧγΣʔμʹ͸
    ݩͷԫ৭ͷࡾ֯ܗͷ৘ใ͕ૹΒΕͯ͘Δҝ
    ੺ͷϐΫηϧ͸ޡͬͯൣғ಺ͱ൑அ͞ΕΔ

    View Slide

  68. ϐΫηϧγΣʔμʹ͸
    ݩͷԫ৭ͷࡾ֯ܗͷ৘ใ͕ૹΒΕͯ͘Δҝ
    ੺ͷϐΫηϧ͸ޡͬͯൣғ಺ͱ൑அ͞ΕΔ
    ෼ׂ͞Εͨଞํͷࡾ֯ܗ΋ಉ༷Ͱ͋ΔͨΊ
    ͍͔ͭ͘ͷϐΫηϧ͸2౓ॲཧ͞ΕΔࣄʹͳΔ
    ࣍ʹઆ໌͢ΔRasterizer Order ViewsΛ
    ࢖Θͳ͍ͱͪΒ͖ͭͷݪҼʹͳΔ

    View Slide

  69. ϐΫηϧγΣʔμ͔Β
    Ϩϯμʔλʔήοτͷ೚ҙͷҐஔΛ
    ॻ͖ࠐΉ͜ͱ͕Ͱ͖Δ
    Unordered Access View (UAV)

    View Slide

  70. Unordered Access View (UAV)
    ಉ͡ϐΫηϧʹରͯ͠ෳ਺ͷϐΫηϧγΣʔμ͕
    ಉ࣌ʹಡΈॻ͖ͨ͠৔߹
    ݁Ռ͸ະఆٛ
    ?

    View Slide

  71. Rasterizer Order Views (ROV)
    ϓϦϛςΟϒ͕ϥελϥΠβʹૹΒΕͨॱͰ
    ϐΫηϧ͕ॻ͖ࠐ·ΕΔ͜ͱ͕อূ͞ΕΔ
    ಉ͡ϐΫηϧΛಡΈॻ͖ͨ͠৔߹ͷ݁Ռ͕ఆ·Δ
    !
    1
    2
    3
    4
    5

    View Slide

  72. Temporal Super Sampling
    ग़ྗઌͷϐΫηϧͷҐஔʹԠͯ͡
    ॏΈ෇͖ฏۉΛͱΔࣄͰ
    ࣮ࡍʹߴղ૾౓ͰϨϯμϦϯάΛߦΘͣʹ
    ߴղ૾౓ͷϨϯμϦϯά݁ՌΛಘΔ

    View Slide

  73. Multi Sample Anti-Aliasg
    1ϐΫηϧ಺ͷෳ਺ͷҐஔͰਂ౓ΛαϯϓϦϯά
    1ͭͰ΋ϓϦϛςΟϒͷ಺ଆͳΒ
    ϐΫηϧγΣʔμΛ࣮ߦ
    ਂ౓

    View Slide

  74. Multi Sample Anti-Aliasg
    ϓϦϛςΟϒͷ಺ଆͷαϯϓϦϯά఺ʹ
    ϐΫηϧγΣʔμͷ݁ՌΛॻ͖ࠐΈ
    શͯͷαϯϓϦϯά఺ͷ৭ͷ
    ฏۉΛͦͷϐΫηϧͷ৭ͱ͢Δ

    View Slide

  75. ಉ͡৘ใΛෳ਺ͷαϯϓϦϯά఺ʹॻ͘ͷ͸
    ϝϞϦྖҬͱଳҬͷ࿘අ͔ͩΒආ͚͍ͨ
    ਂ౓͸αϯϓϦϯά఺ͷ਺͚ͩه࿥
    ਂ౓Ҏ֎͸ϐΫηϧʹ͖ͭ1ݸ͚ͩه࿥
    ෳ਺ͷϓϦϛςΟϒ͕͜ͷϐΫηϧʹ
    ॻ͖ࠐΉՄೳੑ͕͋Δ͔ΒROVΛ࢖͏

    View Slide

  76. ෳ਺ͷϓϦϛςΟϒ͕ಉ͡ϐΫηϧʹ
    ৘ใΛॻ͖ग़ͦ͏ͱ͍ͯ͠Δ
    ϐΫηϧͷத৺Ͱܭࢉͨ͠৭͸
    ͲͪΒͷϓϦϛςΟϒͷ෺͔
    ϐΫηϧͷத৺͕
    ੺ͷϓϦϛςΟϒʹؚ·ΕΔͷ͔
    ྘ͷϓϦϛςΟϒʹؚ·ΕΔͷ͔Λ஌ΔͨΊʹ
    ϐΫηϧͷத৺ʹ͓͚Δਂ౓͕ཉ͍͠

    View Slide

  77. Programmable Sample Location
    ϐΫηϧ಺ͰͷαϯϓϦϯά఺ͷ਺ͱҐஔΛ
    ࣗ༝ʹࢦఆ͢Δࣄ͕Ͱ͖Δ
    ͜ΕΛ࢖ͬͯαϯϓϦϯά఺ͷ͏ͪ1͕ͭ
    ϐΫηϧͷத৺ʹདྷΔΑ͏ʹ͢Δ
    த৺ͷϐΫηϧͷਂ౓Λ࢖ͬͯ

    View Slide

  78. ϐΫηϧͷத৺ͰγΣʔσΟϯάΛߦͳͬͯ
    ϐΫηϧͷத৺ʹ͓͚Δ৭Λܾఆ͢Δ

    View Slide

  79. ϝϞϦྖҬͱଳҬͷઅ໿
    MSAAͱ஗ԆϨϯμϦϯάͷ૊Έ߹Θͤͷ࣮ݱ
    ਂ౓͕͍ۙ৭͕ط஌ͷαϯϓϦϯά఺Λ࢖ͬͯ
    ৭͕ະ஌ͷαϯϓϦϯά఺ͷ৭Λܾఆ͢Δ

    View Slide

  80. Vulkan Game development
    on Mobile
    ͜ͷηογϣϯͷൃදऀ
    Alen Ladavac(Croteam)
    GDC VaultͷURL
    http://www.gdcvault.com/play/1024361/Vulkan-Game-
    Development-on-Mobile

    View Slide

  81. Vulkanͷಛ௃
    ബ͍υϥΠό
    ύΠϓϥΠϯεςʔτΦϒδΣΫτ
    ίϚϯυόοϑΝ
    ௚઀తͳϝϞϦͷ؅ཧ
    ϚϧνεϨουରԠ
    ཁ͢Δʹ%JSFDU9ͱಉछͷ"1*

    View Slide

  82. OpenGL͔ΒVulkan΁ͷҠ২
    γΣʔμͷ։ൃʹ(-4-͕࢖͑Δ
    140ͱσΟεΫϦϓλͷΩϟογϡΛ࣮૷ͯ͠
    CJOEΛΤϛϡϨʔτ
    ϝϞϦ֬อͱϦιʔεͷసૹΛॻ͖଍͢
    ಉظʹ͸όϦΞΛ࢖͏
    ͜ͷΑ͏ͳػցతͳม׵Ͱ
    ୹ظؒͰҠ২Ͱ͖Δ

    View Slide

  83. ͖ͬ͞
    DirectX12Ͱੑೳ͕ग़ΔΑ͏ʹҠߦ͢Δͷ͸
    ࢮ͵΄Ͳਏ͍ͱ͍͏࿩͕ͩͬͨ

    View Slide

  84. OpenGLͷੑೳ͕Ͳͷ؀ڥͰ΋҆ఆͯ͠ࠅ͍ҝ
    ͦΕͱൺ΂Δͱྑ͍ੑೳ͕ग़Δ
    ੑೳ͕ग़ΔΑ͏ʹࣗྗͰॻ͘ࣄ͕Ͱ͖Δ

    ಛʹGLES͔͠બ୒ࢶ͕ͳ͔ͬͨAndroidͰ͸
    ͜ΜͳࡶͳҠ২Ͱ΋
    େ͖ͳύϑΥʔϚϯεͷ޲্͕ظ଴Ͱ͖Δ
    OpenGL
    Vulkan΍DirectX
    શͯnvidiaυϥΠό
    7VMLBO(BNF%FWFMPQNFOUPO
    .PCJMF5BMPT
    ϖʔδ໨ͷάϥϑ
    IUUQTXXXLISPOPTPSH
    EFWFMPQFSTMJCSBSZHED

    View Slide

  85. ໰୊఺
    DirectX11΍GLESͱൺ΂Δͱ
    υϥΠόʹόά͕ଟ͍
    AndroidͰ͸PCΑΓυϥΠόͷ
    ߋ৽͕೉͘͠ߋ৽ͷఏڙ΋஗͍ࣄ͕
    ͜ͷ໰୊ΛΑΓ໽հʹ͍ͯ͠Δ

    View Slide

  86. ໰୊఺
    Validation Layers͕࣌ʑ
    ਖ਼͍͠ͱ͜ΖͰจ۟Λݴ͖ͬͯͨΓ
    ਖ਼͘͠ͳ͍ͱ͜ΖͰԿ΋ݴΘͳ͔ͬͨΓ͢Δ
    ͦΕͰ΋Կ΋νΣοΫ͠ͳ͍ΑΓ͸
    ͣͬͱϚγ͔ͩΒValidation LayersΛ࢖͓͏

    View Slide

  87. Vulkan͸ා͘ͳ͍
    AndroidͰ͸طʹGLESͱൺֱͯ͠
    ΑΓศརͰੑೳͷྑ͍APIʹͳΓͭͭ͋Δ
    “ͨͩ”υϥΠόͷमਖ਼͕ඞཁͳ͚ͩͩ

    View Slide

  88. ͲΜͳ࣌VulkanΛࢼ͢΂͖͔
    Ͱ͖Δ͚ͩύϑΥʔϚϯε͕ඞཁͰ
    ϘτϧωοΫ͕CPUͰ
    ࣮૷͕΋ͬͱෳࡶʹͳͬͯ΋େৎ෉ͳ࣌

    View Slide

  89. Vulkan Multipass
    mobile deferred done right
    ͜ͷηογϣϯͷൃදऀ
    Hans-Kristian Arntzen(ARM)
    GDC VaultͷURL
    http://www.gdcvault.com/play/1024361/Vulkan-Game-
    Development-on-Mobile

    View Slide

  90. ஗ԆϨϯμϦϯά
    ύε໨
    ϨϯμʔόοϑΝʹ
    ܗঢ়ʹؔ͢Δ৘ใΛॻ͘
    ύε໨
    ύε໨ͷ݁ՌΛ࢖ͬͯ
    γΣʔσΟϯά͢Δ
    (όοϑΝ

    View Slide

  91. λΠϧϕʔεΞʔΩςΫνϟ
    ͭͷλΠϧΛܭࢉ͢ΔؒͷҰ࣌తͳ஋ͷಡΈॻ͖͸
    (16ʹ಺ଂ͞Εͨ43".্Ͱߦ͏
    άϩʔόϧϝϞϦ΁ͷΞΫηε͕཈͑ΒΕΔͨΊ
    ௿଎ͳόεʹͭͳ͕ͬͨϝΠϯϝϞϦΛ73".ͱͯ͠࢖͏
    ϞόΠϧ(16ͰΑ͘༻͍ΒΕΔ
    ϑϨʔϜόοϑΝΛ
    λΠϧʹ෼ׂͯ͠ϨϯμϦϯάΛߦ͏

    View Slide

  92. λΠϧϕʔεͱ
    ஗ԆϨϯμϦϯάͷ૬ੑ͕ѱ͍
    (όοϑΝશମ͕
    ௿଎ͳϝϞϦʹॻ͖ࠐ·ΕΔ
    ͙͢ʹ(όοϑΝશମ͕
    ௿଎ͳϝϞϦ͔ΒಡΈࠐ·ΕΔ
    (όοϑΝ
    OpenGL ESͰ͸ఘΊΔ͔͠ͳ͔ͬͨ

    View Slide

  93. VulkanͰ͸ෳ਺ͷύεΛଋͶΔ͜ͱ͕Ͱ͖Δ
    (όοϑΝ ϥΠςΟϯά ϙετϓϩηε
    $16
    %SBX %SBX %SBX
    OpenGL
    (όοϑΝ ϥΠςΟϯά ϙετϓϩηε
    $16
    %SBX
    Vulkan

    View Slide

  94. (όοϑΝ ϥΠςΟϯά ϙετϓϩηε
    $16
    %SBX
    Vulkan
    VulkanͰ͸લͷύεͷ৘ใ͕Ͳ͜·ͰἧͬͨΒ
    ࣍ͷύεΛ࣮ߦͯ͠ྑ͍͔͸બ୒Ͱ͖Δ
    7,@%&1&/%&/$:@#:@3&(*0/@#*5
    ͜Ε͕WL$NE1JQFMJOF#BSSJFSͷ
    EFQFOEFODZ'MBHTʹઃఆ͞Ε͍ͯΔͱ
    લͷύεͷରԠ͢ΔϐΫηϧͷϨϯμϦϯά͕׬ྃͨ͠Β
    ࣍ͷύεΛ࣮ߦͯ͠ྑ͍͜ͱʹͳΔ

    View Slide

  95. 7,@%&1&/%&/$:@#:@3&(*0/@#*5
    υϥΠό͸ҎԼͷΑ͏ʹ࣮ߦͯ͠ྑ͍͜ͱΛ
    ஌Δ͜ͱ͕Ͱ͖Δ
    (όοϑΝ ϥΠςΟϯά ϙετϓϩηε
    λΠϧ෼ͷ(όοϑΝ͸
    43".ʹ৐ΔҝଳҬΛ࿘අ͠ͳ͍
    (όοϑΝ ϥΠςΟϯά ϙετϓϩηε
    (όοϑΝ ϥΠςΟϯά ϙετϓϩηε
    ʜ
    ॱ൪ʹ࣮ߦ
    λΠϧ
    λΠϧ
    λΠϧ

    View Slide

  96. Samsung ExynosͰ
    30%ͷϑϨʔϜϨʔτͷ޲্ͱ
    80%ͷόϯυ΢ΣΠτͷվળ

    View Slide

  97. Cinematic Depth of Field
    ͜ͷηογϣϯͷൃදऀ
    Karl Hillesland(AMD)
    GDC VaultͷURL
    http://www.gdcvault.com/play/1024387/Advanced-Graphics-
    Tech-Cinematic-Depth

    View Slide

  98. ඃࣸքਂ౓
    ίϯϐϡʔλάϥϑΟΫεͰ͸
    Χϝϥ͸ϐϯϗʔϧΧϝϥͱ͢Δͷ͕Ұൠత͕ͩ

    View Slide

  99. ඃࣸքਂ౓
    ଟ͘ͷΧϝϥͷϨϯζ͸େ͖͞Λ͓࣋ͬͯΓ
    ݶΒΕͨਂ౓ͷൣғʹ͔͠ϑΥʔΧε͕߹Θͳ͍
    Gয఺ڑ཭
    "։ޱܘ
    $ϫʔϧυۭؒͰͷ
    ࡨཚԁ
    DεΫϦʔϯۭؒͰͷ
    ࡨཚԁ

    View Slide

  100. ඃࣸքਂ౓Λදݱ͢Δ2ͭͷํ๏
    Gather
    Scatter

    View Slide

  101. Gather
    ֤ϐΫηϧʹ͍ͭͯ
    ਂ౓஋͔ΒࡨཚԁΛٻΊͯ
    ͦͷൣғ಺͔ΒαϯϓϦϯάΛߦ͏
    ར఺: ؆୯ʹ࣮૷Ͱ͖Δ
    Scatterͱൺ΂ͯॻ͖ग़͕͠গͳ͍

    View Slide

  102. Gather
    ͜ͷ෦෼ͷ৭Λ
    ܾఆ͢Δҝʹ
    ͜ͷลΓͷ৭͕
    ඞཁ͕ͩ ϐϯϗʔϧͰ͸
    खલͷ෺ମʹःΒΕͯݟ͑ͳ͍ҝ
    ϑϨʔϜόοϑΝʹ৘ใ͕࢒͍ͬͯͳ͍
    ܽ఺: ڥք෦෼ʹΞʔςΟϑΝΫτ͕ग़Δ

    View Slide

  103. Scatter
    ϐΫηϧͷ৭͕ܾఆͨ࣌͠఺Ͱ
    ਂ౓஋͔ΒࡨཚԁΛٻΊͯ
    ࡨཚԁͷ಺ଆʹͳΔશͯͷϐΫηϧʹ
    ৭Λॻ͖ग़͢
    ར఺: ϐϯϗʔϧͰϑϨʔϜόοϑΝʹඳ͘ͱ
    ӅΕͯ͠·͏Ґஔͷ৭Λ൓өͰ͖Δ

    View Slide

  104. Scatter
    ܽ఺: ୯७ʹ࣮૷͢Δͱॻ͖ग़͕͠େมͳࣄʹͳΔ
    ҰൠʹGatherΑΓ࣮૷͕ෳࡶʹͳΔ
    ೖྗ ग़ྗ

    View Slide

  105. Summed Area Table
    "
    ϑϨʔϜόοϑΝͷࠨ্͔Β
    ೚ҙͷ఺"·ͰͷྖҬͷ஋ͷ૯࿨Λ
    ఺"ʹ͓͚Δ4VNNFE"SFB5BCMFͷ஋ͱ͢Δ

    View Slide

  106. Summed Area Table
    "
    ཉ͍͠ൣғ
    "#$%Ͱғ·ΕۣͨܗྖҬͷ૯࿨͕ཉ͍͠৔߹
    #
    $
    %
    ཉ͍͠ൣғͷ૯࿨
    4"5 "
    4"5 #
    4"5 %
    4"5 $

    ೚ҙͷۣܗྖҬͷ૯࿨Λ఺ͷ஋͔ΒಘΒΕΔ

    View Slide

  107. Summed Area Table
    ಘΒΕΔͷ͸ۣܗྖҬͷੵ෼
    (BUIFSͰͳ͍ͱ࢖͑ͳ͍
    Πέͯͳ͍
    Πέͯͳ͍

    View Slide

  108. ͹Β·͘ൣғ
    Fast Filter Spreading
    "
    #
    $
    %
    "#$%Ͱғ·Εͨൣғʹ஋OΛ͹Βࢃ͖͍ͨ
    "ͱ$ʹOΛॻ͖ࠐΜͰ#ͱ%ʹOΛॻ͖ࠐΉ
    ਺஋ੵ෼͢ΔͱO͕"#$%ͷൣғʹՃࢉ͞ΕΔ

    View Slide

  109. Fast Filter Spreading
    ͜Μͳ෩ʹ஋Λ഑ஔͯ͠֊ੵ෼͢Δͱ
    όʔτϨοτϑΟϧλΛ࡞ΕΔ
    ۣܗΑΓߴ඼࣭ͳ݁Ռ͕ಘΒΕΔ
    ͹Β·͘ൣғ







    View Slide

  110. Advanced Particle Simulation
    in Compute
    ͜ͷηογϣϯͷൃදऀ
    Richard Tonge(NVIDIA), Hammad Mazhar(NVIDIA)
    GDC VaultͷURL
    http://www.gdcvault.com/play/1024387/Advanced-Graphics-
    Tech-Cinematic-Depth

    View Slide

  111. ཻࢠ๏γϛϡϨʔγϣϯ
    ߶ମ΍஄ੑମɺ࿈ଓମΛ
    Ұఆͷ࣭ྔΛཻ࣋ͬͨࢠͷू·Γʹ཭ࢄԽ
    ஄ੑମͷԠྗ΍ྲྀମͷѹྗ౳Λ
    ۙ๣ཻࢠͱͷ૬ޓ࡞༻ͱͯ͠දݱ

    View Slide

  112. εΫϦʔϯۭؒڥք৚݅
    GόοϑΝΛڥք৚݅ͱͯ͠
    γϛϡϨʔγϣϯΛߦ͏
    ར఺: GόοϑΝ͸1ϑϨʔϜຖʹੜ੒͞ΕΔҝ
    ಈతͳγʔϯʹ௥ै͢Δͷ͕༰қ
    ը໘ʹऩ·͍ͬͯͳ͍΋ͷ͕ܭࢉ͔Βআ֎͞ΕΔ

    View Slide

  113. εΫϦʔϯۭؒڥք৚݅
    ਂ౓
    ཻࢠͷ࠲ඪͱରԠ͢ΔҐஔͷZ஋Λൺֱ͠
    ޙऀ͕खલͩͬͨΒཻࢠΛԡ͠ग़͢

    View Slide

  114. εΫϦʔϯۭؒڥք৚݅
    ਂ౓
    ܽ఺: ӅΕ͍ͯΔ໘ͱͷিಥΛ
    ਖ਼͘͠ѻ͏ࣄ͕ग़དྷͳ͍
    (όοϑΝʹ͸
    ͜ͷ෦෼ͷڥքͷ৘ใ͕
    ࢒͍ͬͯͳ͍ҝ
    ཻࢠͷҠಈΛਖ਼͘͠ःΔࣄ͕ग़དྷͳ͍

    View Slide

  115. BVHʹΑΔڥք৚݅
    ڥքΛߏ੒͢Δ໘ຖʹ
    ό΢ϯσΟϯάϘϦϡʔϜΛٻΊΔ

    View Slide

  116. BVHʹΑΔڥք৚݅
    ό΢ϯσΟϯάϘϦϡʔϜΛ֊૚Խͯ͠
    ཻࢠ͕িಥ͍ͯ͠ΔՄೳੑ͕͋Δ໘Λ
    ߴ଎ʹ୳ͤΔΑ͏ʹ͓ͯ͘͠

    View Slide

  117. BVHʹΑΔڥք৚݅
    ό΢ϯσΟϯάϘϦϡʔϜΛ֊૚Խͯ͠
    ཻࢠ͕িಥ͍ͯ͠ΔՄೳੑ͕͋Δ໘Λ
    ߴ଎ʹ୳ͤΔΑ͏ʹ͓ͯ͘͠

    View Slide

  118. BVHʹΑΔڥք৚݅
    ར఺: GόοϑΝ͔ΒӅΕͯ͠·͏໘ͱͷিಥ΋ѻ͑Δ
    ܽ఺: BVHΛߏங͢Δඞཁ͕͋Δ
    ό΢ϯσΟϯάϘϦϡʔϜΛ֊૚Խͯ͠
    ཻࢠ͕িಥ͍ͯ͠ΔՄೳੑ͕͋Δ໘Λ
    ߴ଎ʹ୳ͤΔΑ͏ʹ͓ͯ͘͠

    View Slide

  119. BVHʹΑΔڥք৚݅
    ಈతͳγʔϯʹ࢖͑Δ͘Β͍ߴ଎ͳ
    BVHͷߏஙํ๏ͱͯ͠͸
    nvidiaͷHLBVH͕ڍ͛ΒΕΔ
    IUUQTSFTFBSDIOWJEJBDPNQVCMJDBUJPOIMCWI
    IJFSBSDIJDBMMCWIDPOTUSVDUJPOSFBMUJNFSBZUSBDJOH

    View Slide

  120. BVHʹΑΔڥք৚݅ͷ஫ҙ఺
    ڥք͕ෳࡶͩͱಉ͡ྖҬ͕
    ෳ਺ͷό΢ϯσΟϯάϘϦϡʔϜʹ
    ؚ·ΕΔ͜ͱ͕͋Δ
    ॏෳ͢Δό΢ϯσΟϯάϘϦϡʔϜ͕͋Δ৔߹
    1ՕॴͰڥք৚݅Λຬ͍ͨͯͯ͠΋
    ଞͷڥք৚݅Λຬͨ͞ͳ͍Մೳੑ͕͋Δ

    View Slide

  121. Position Based Dynamics
    ཅղ๏ͷཻࢠ๏γϛϡϨʔγϣϯΛ
    ෺ཧతʹਖ਼͘͠ͳ͍͔΋͠Εͳ͍͕
    ਺஋తʹ҆ఆʹߦ͑Δख๏
    ཻࢠʹ͔͔ΔྗΛٻΊΔ
    ཻࢠͷ଎౓Λߋ৽
    ཻࢠͷҐஔΛߋ৽
    িಥΛղܾͯ͠ҐஔΛमਖ਼
    Ґஔʹ߹Θͤͯ଎౓Λमਖ਼
    ߶ମಉ͕࢜িಥ͍ͯͨ͠Β
    িಥ͠ͳ͍ͱ͜Ζ·Ͱ໭͢
    ྲྀମ͕ڥքΛ௒͍͑ͯͨΒ
    ڥք·Ͱ໭͢

    ্هͷੑ࣭ͷҝ
    ίϯϐϡʔλάϥϑΟΫε԰ʹਓؾ

    View Slide

  122. ཻࢠʹ͔͔ΔྗΛٻΊΔʹ͸
    ͋Δཻࢠͷۙ͘ʹ͋ΔཻࢠΛ
    1εςοϓຖʹ୳͢ඞཁ͕͋Δ
    Position Based Dynamics
    ཅղ๏ͷཻࢠ๏γϛϡϨʔγϣϯΛ
    ෺ཧతʹਖ਼͘͠ͳ͍͔΋͠Εͳ͍͕
    ਺஋తʹ҆ఆʹߦ͑Δख๏
    ཻࢠʹ͔͔ΔྗΛٻΊΔ
    ཻࢠͷ଎౓Λߋ৽
    ཻࢠͷҐஔΛߋ৽
    িಥΛղܾͯ͠ҐஔΛमਖ਼
    Ґஔʹ߹Θͤͯ଎౓Λमਖ਼

    View Slide

  123. ۙ๣୳ࡧ
    ܭࢉྖҬશମΛ֨ࢠঢ়ʹ۠੾ͬͯ
    ཻࢠ͕Ͳͷηϧʹؚ·ΕΔ͔ΛٻΊΔ
    ִؒrͷ֨ࢠͰݱࡏͷཻࢠΛؚΉηϧͱ
    ྡ઀͢ΔηϧΛௐ΂Ε͹
    ൒ܘrҎ಺ʹ͋Δཻࢠ͕શͯݟ͔ͭΔ
    S
    S

    View Slide

  124. ۙ๣ཻࢠͱͷܭࢉʹؔ͢Δ2ͭͷઓུ
    Gather
    Scatter

    View Slide

  125. Gather
    1ͭͷཻࢠΛ1ͭͷεϨουͰܭࢉ
    ར఺: ෳ਺ͷεςοϓ͔ΒͳΔܭࢉΛ؆୯ʹॻ͚Δ
    ܽ఺: Scatterͱൺֱͯ͠γϯϓϧͳ࣮૷ʹͳΔ
    ಉ͡ܭࢉΛ2ճߦ͏ࣄʹͳΔ
    ྲྀମ౳Ͱओʹ༻͍ΒΕΔ

    View Slide

  126. Scatter
    1ͭͷ઀ଓΛ1ͭͷεϨουͰܭࢉ
    ར఺: ઀ଓ͞ΕཻͨࢠʹՃΘΔྗ͕ରশͳ৔߹
    1ճͷܭࢉͰ2ͭͷཻࢠʹॻ͖ࠐΈΛߦ͏ࣄ͕ग़དྷΔ
    ܽ఺: ݸʑͷ઀ଓͷܭࢉ݁Ռͷॻ͖ࠐΈ͕ಉ͡৔ॴʹ
    ରͯ͠ߦΘΕΔҝΞτϛοΫԋࢉͰͷॻ͖ࠐΈ͕ඞཁ
    ෍౳Ͱओʹ༻͍ΒΕΔ

    View Slide

  127. PBDʹ͓͚Δ߶ମͷѻ͍
    ཻࢠͷҐஔΛߋ৽
    ΊΓࠐΜͰ͍ΔཻࢠΛ
    ΊΓࠐΉલͷҐஔ·ͰҠಈ
    ཻࢠؒͷҐஔؔ܎Λ
    ߆ଋ৚݅ͱͯ͠
    ཻࢠͷҐஔΛमਖ਼

    View Slide

  128. PBDʹ͓͚Δ෍ͷѻ͍
    ཻࢠͷҐஔΛߋ৽
    ΊΓࠐΜͰ͍ΔཻࢠΛ
    ΊΓࠐΉલͷҐஔ·ͰҠಈ
    ཻࢠؒͷڑ཭Λ
    ߆ଋ৚݅ͱͯ͠
    ཻࢠͷҐஔΛमਖ਼

    View Slide

  129. PBDʹ͓͚Δྲྀମͷѻ͍
    ཻࢠͷҐஔΛߋ৽
    ΊΓࠐΜͰ͍ΔཻࢠΛ
    ΊΓࠐΉલͷҐஔ·ͰҠಈ
    ཻࢠؒͷີ౓Λ
    ߆ଋ৚݅ͱͯ͠
    ཻࢠͷҐஔΛमਖ਼

    View Slide

  130. Game Physics on the GPU
    with PhysX 3.4
    ͜ͷηογϣϯͷൃදऀ
    Kier Storey(NVIDIA)
    GDC VaultͷURL
    http://www.gdcvault.com/play/1024345/

    View Slide

  131. PhysX
    NVIDIAͷ෺ཧԋࢉSDK
    https://developer.nvidia.com/physx-sdk
    Ұ෦ͷΞϧΰϦζϜ͸GPUΛ࢖ͬͯ
    ߴ଎ʹܭࢉͰ͖Δ
    ߶ମ ஄ੑମ ྲྀମ ෍౳ͷ
    γϛϡϨʔγϣϯʹରԠ

    View Slide

  132. PhysXͷ߶ମύΠϓϥΠϯ
    #SPBE1IBTF
    1BJS'JMUFSJOH
    /BSSPX1IBTF
    *TMBOE(FO
    4PMWFS
    $$%
    'FUDI3FTVMU
    AABBͰߥ͘িಥͦ͠͏ͳϖΞΛ୳͢
    িಥͤͨ͘͞ͳ͍ϖΞΛআ֎͢Δ
    ࣮ࡍʹিಥ͍ͯ͠Δ͔Ͳ͏͔Λௐ΂Δ
    Өڹ͠߹͏߶ମΛάϧʔϓԽ͢Δ
    ࣍ͷεςοϓͰͷঢ়ଶΛٻΊΔ
    ߴ଎ͰҠಈͨ͠߶ମͱিಥͨ͠߶ମΛ୳͢
    ݁ՌΛऔΓग़͢

    View Slide

  133. PhysX 3.4ͷ৽ػೳ GPU߶ମ
    #SPBE1IBTF
    1BJS'JMUFSJOH
    /BSSPX1IBTF
    *TMBOE(FO
    4PMWFS
    $$%
    'FUDI3FTVMU
    PhysX 3.4Ͱ͸
    ੺Ͱࣔͨ͠෦෼͕
    GPUͰ࣮ߦՄೳʹͳͬͨ

    View Slide

  134. GPUͱCPUͷಛ௃
    (16 $16
    େ͖ͳ'-014ͱ
    ϝϞϦόϯυ෯
    খ͞ͳ'-014ͱ
    ϝϞϦόϯυ෯
    ݸʑͷ໋ྩͷ࣮ߦ͕଎͍
    গ਺ͷϓϩηοαίΞͰ
    ੑೳΛग़͢
    ݸʑͷ໋ྩͷ࣮ߦ͸஗͍
    ਺ઍͷϓϩηοαίΞͰ
    ੑೳΛग़͢
    ϝϞϦΞΫηεύλʔϯ࣍ୈͰ
    ࿐ࠎʹੑೳ͕མͪΔ
    ϝϞϦΞΫηεύλʔϯ͕
    ੑೳʹӨڹΛ༩͑ʹ͍͘
    ΞϧΰϦζϜ͸਺ઍεϨουͰ
    εέʔϧ͢Δඞཁ͕͋Δ
    γʔέϯγϟϧͰ΋
    ݁ߏͳΜͱ͔ͳΔ

    View Slide

  135. GPUͰ࣮ߦ͢Δεςʔδ͕ߴ଎ʹ
    ࣮ߦͰ͖Δͱશମͱͯ͠Ͳͷ͘Β͍଎͘ͳΔ͔
    CPU෦෼͕૬ରతʹϘτϧωοΫʹͳͬͯ
    3.5ഒ͘Β͍Ͱ಄ଧͪʹͳΔ

    View Slide

  136. CPUͰ࣮ߦ͢Δεςʔδ΋վྑ
    1BJS'JMUFSJOH ΛฒྻͰߦ͑ΔΑ͏ʹͳͬͨ
    *TMBOE(FO ͷΞϧΰϦζϜͷมߋ
    ϝϞϦϑοτϓϦϯτͷվળ
    $16ͷεςʔδͱ(16ͷεςʔδΛಉ࣌ʹ
    ࣮ߦͰ͖ΔΑ͏ʹύΠϓϥΠϯΛվྑ
    ΛฒྻͰߦ͏ͨΊͷ
    'FUDI3FTVMU
    ৽͍͠"1*Λ௥Ճ

    View Slide

  137. GPU Narrow Phase
    ैདྷ͔ΒCPUͰͷ࣮૷Ͱ༻͍ΒΕ͍ͯͨ
    PCMʹΑΔিಥ൑ఆΛGPU্Ͱߦ͏
    ͨͩ͠αϙʔτ͞Ε͍ͯΔͷ͸
    ۣܗ ತ໘ ߴ͞৔ ͷ૊Έ߹Θ͔ͤΒͳΔিಥͷΈ
    ͦͷଞͷϓϦϛςΟϒ͕িಥͨ͠৔߹
    CPUଆʹඞཁͳ৘ใΛૹͬͯ
    CPUͰܭࢉΛߦ͏

    View Slide

  138. Mass Splitting
    ߆ଋ৚݅ͷղܾʹ͸
    ௨ৗΨ΢εβΠσϧ๏͕༻͍ΒΕΔ
    Ψ΢εβΠσϧ๏͸
    ͦͷ··Ͱ͸GPUͰεέʔϧ͠ͳ͍
    ϠίϏ๏Λ࢖͏ͱऩଋੑ͕ѱ͍
    " #
    $

    View Slide

  139. Mass Splitting
    #
    $ͷ൒෼ͷ࣭ྔ
    "
    $ͷ൒෼ͷ࣭ྔ
    Cͷ൒෼ͷ࣭ྔͷ߶ମ͕
    ಉ͡৔ॴʹ2ͭॏͳ͍ͬͯΔࣄʹͯ͠
    AͱͷিಥͱBͱͷিಥΛผͷ໰୊ʹ͢Δ
    ൓෮ͷ֤αΠΫϧͰ
    શͯͷCͷ଎౓ΛCͷ଎౓ͷฏۉ஋ʹ͢Δ
    େ͖ͳߦྻ͕େྔͷখ͍͞ߦྻʹͳΔ
    GPUͰฒྻԽͰ͖Δ!

    View Slide

  140. ݁Ռ
    ॎ͕࣠ܭࢉ࣌ؒԣ͕࣠ϑϨʔϜ
    ੨͕1IZT9Ͱ$16Ͱܭࢉͨ͠৔߹
    ྘͕1IZT9Ͱ$16Ͱܭࢉͨ͠৔߹
    ΦϨϯδ͕1IZT9͕(16Ͱܭࢉͨ͠৔߹
    (BNF1IZTJDTPOUIF(16XJUI/7*%*"1IZT9
    ϖʔδ໨ͷਤͱάϥϑ
    IUUQTEFWFMPQFSOWJEJBDPNHED

    View Slide

  141. glTF Update
    ͜ͷηογϣϯͷൃදऀ
    Neil Trevett(NVIDIA)
    GDC VaultͷURL
    http://www.gdcvault.com/play/1024346/

    View Slide

  142. glTF
    JSONܗࣜͷ
    3࣍ݩܗঢ়ͷ
    ϑΥʔϚοτ
    ϝογϡ
    ௖఺ଐੑ
    ϚςϦΞϧ
    πϦʔ
    Ξχϝʔγϣϯ
    ͳͲΛؚΉ
    \
    BDDFTTPST\
    BDDFTTPS@\
    CV⒎FS7JFXCV⒎FS7JFX@
    CZUF0⒎TFU
    CZUF4USJEF
    DPNQPOFOU5ZQF
    DPVOU
    NBY<

    >
    NJO<

    >
    UZQF4$"-"3
    ^
    BDDFTTPS@\
    CV⒎FS7JFXCV⒎FS7JFX@
    CZUF0⒎TFU
    CZUF4USJEF
    DPNQPOFOU5ZQF

    View Slide

  143. glTF 2.0
    2017೥य़ϦϦʔε༧ఆ
    https://github.com/KhronosGroup/glTF/tree/2.0/specification/2.0

    View Slide

  144. όΠφϦglTF͕ඪ४ʹೖͬͨ
    IFBEFS
    DPOUFOU
    CPEZ
    NBHJDόʔδϣϯDPOUFOUͷ௕͞౳
    +40/ܗࣜͷHM5'
    δΦϝτϦΩʔϑϨʔϜεΩϯը૾γΣʔμ
    ʹ͍ͭͯ௚઀σʔλΛॻ͘୅ΘΓʹ
    CPEZͷதͷͲ͜ʹஔ͍ͯ͋Δ͔ΛࢦఆͰ͖Δ
    όΠφϦܗࣜͷσʔλ͕
    ฒΜͰ͍ΔྖҬ
    ར఺: ௖఺഑ྻ౳Λখ͘͞ه࿥ͯ͠ߴ଎ʹύʔε
    ςΫενϟΛ௚઀glTFͷதʹอଘͰ͖Δ
    1.0Ͱ͸֦ுͰͲͷ؀ڥͰ΋࢖͑Δͱ͸ݶΒͳ͔ͬͨ

    View Slide

  145. ෺ཧϕʔεϨϯμϦϯάʹඞཁͳ
    ύϥϝʔλͷॻ͖ํ͕ఆΊΒΕͨ
    baseColorFactor
    baseColorTexture
    metallicFactor
    roughnessFactor
    metallicRoughnessTexture
    ”materials”: { ”pbrMetallicRoughness”: { … } }
    ͜͜ʹઃఆͰ͖Δύϥϝʔλ
    Ξϧϕυ
    Ξϧϕυ͕
    ه࿥͞ΕͨςΫενϟ
    ൓ࣹ཰
    ૈ͞
    ൓ࣹ཰ͱૈ͕͞
    ه࿥͞ΕͨςΫενϟ
    ར఺: ҟͳΔιϑτ΢ΣΞಉ࢜Ͱ
    ෺ཧϕʔεϨϯμϦϯάͷ৘ใΛड͚౉͠ग़དྷΔ

    View Slide

  146. WebGL 2.0
    ͜ͷηογϣϯͷൃදऀ
    Brandon Jones (Google), Zhenyao Mo (Google),
    Kai Ninomiya (Google)
    GDC VaultͷURL
    http://www.gdcvault.com/play/1024346/

    View Slide

  147. WebGL
    HTML5ͷcanvas্Ͱ
    OpenGL ESϥΠΫͳAPIʹΑΔ
    ඳըΛՄೳʹ͢Δ
    JavaScriptͷAPI
    ࠓ೔ଟ͘ͷWebϒϥ΢β͕αϙʔτ͍ͯ͠Δ
    WebGL 1.0͸OpenGL ES 2.0Λ
    ϕʔεʹ͍ͯ͠Δ

    View Slide

  148. WebGL 2.0
    ·ͩυϥϑτ͚ͩͲ
    Ұ෦ͷϒϥ΢βͰαϙʔτ͕࢝·͍ͬͯΔ
    ৽͍͠WebGL

    View Slide

  149. WebGL 2.0ͷ৽ػೳ
    Float Texture
    Immutable Texture
    Instanced Drawing
    Multiple Render Target
    Transform Feedback
    Multisampled Renderbuffers
    Uniform Buffers
    Sampler Object
    GLSL ES 3.00

    View Slide

  150. Immutable Texture
    ࡞੒ޙʹ಺༰ͷॻ͖׵͕͑Ͱ͖ͳ͍ςΫενϟ
    DirectX͸ςΫενϟ͕ޙ͔Βॻ͖׵͑ΒΕͳ͍ࣄ͕
    อূ͞Ε͍ͯΔ৔߹ΑΓޮ཰తʹ
    ςΫενϟΛอ࣋͢Δ࢓૊Έ͕͋Δ
    WebGLΛDirectXͰ࣮૷͢Δͱ
    OpenGLͷϛοϓϚοϓͷࢦఆํ๏ʹରԠ͢Δҝʹ
    ͜ͷ࢓૊Έͷར༻ΛఘΊΔඞཁ͕͋Δ
    Immutable TextureͳΒ͜ͷ࢓૊Έ͕ར༻Ͱ͖Δ

    View Slide

  151. Float Texture
    16bit·ͨ͸32bitͷුಈখ਺఺਺Ͱ
    ஋Λอ࣋͢ΔςΫενϟΛ࡞ΕΔ
    WebGL͸FBOʹରԠ͍ͯ͠ΔͨΊ
    0.0͔Β1.0ʹऩ·Βͳ͍ϨϯμϦϯά݁ՌΛ
    ϑϨʔϜόοϑΝʹॻ͚ΔΑ͏ʹͳΔ

    View Slide

  152. Instanced Drawing
    1ճͷdrawίʔϧͰ
    େྔͷϝογϡΛҟͳΔύϥϝʔλͰඳ͘
    ϕδςʔγϣϯͷύϑΥʔϚϯε޲্

    View Slide

  153. Multiple Render Target
    gl_FragData[0] = position;
    gl_FragData[1] = normal;
    gl_FragData[2] = albedo;
    1౓ͷϨϯμϦϯάύεͰ
    ϑϥάϝϯτγΣʔμ͔Βෳ਺ͷग़ྗઌʹ஋Λ
    ॻ͖ࠐΊΔΑ͏ʹͳΔ

    View Slide

  154. Multiple Render Target
    (όοϑΝ ϥΠςΟϯά
    Float TextureͱMultiple Render Target͕࢖͑Δ
    ·ͱ΋ͳ஗ԆϨϯμϦϯά͕ग़དྷΔ
    ๏ઢ
    ࠲ඪ
    ϚςϦΞϧ*%

    View Slide

  155. Transform Feedback
    ௖఺γΣʔμ͚ͩΛ࣮ߦͯ͠
    ݁ՌΛ௖఺όοϑΝΦϒδΣΫτʹॻ͖ग़͢
    ύʔςΟΫϧγεςϜͰ
    ཻࢠͷ࠲ඪΛߋ৽ͨ͠Γ
    มܗͨ͠෺ମͷܗঢ়Λ
    อଘ͓ͯ͘͠ͷʹ࢖͏
    ௖఺γΣʔμ ϥελϥΠβ
    ϑϥάϝϯτ
    γΣʔμ
    VBO

    View Slide

  156. Multisampled Renderbuffers
    1ϐΫηϧʹ͖ͭ
    ෳ਺ͷαϯϓϦϯά఺Λ
    ࣋ͬͨϨϯμʔόοϑΝ
    Multi Sample Anti-Aliasingʹ࢖͏
    ॏ৺αϯϓϦϯά΋࢖͑ΔΑ͏ʹͳͬͨ

    View Slide

  157. Uniform Buffers
    GPUϝϞϦ΁ͷσʔλసૹ͸
    ҰൠʹେྔͷσʔλΛ·ͱΊͯૹͬͨํ͕
    εϧʔϓοτ͕ग़Δ
    for( $i = 0; $i != 100; $i++ ) {
    gl.uniform1f( location[ i ], value[ i ] );
    } // ͭΒ͍
    େྔͷUniform͸ΧλϚϦʹ͠Α͏

    View Slide

  158. Uniform Buffers
    var index = gl.getUniformBlockIndex(program, 'data');
    gl.uniformBlockBinding(prg, index, 0);
    var ubo = gl.createBuffer();
    gl.bindBuffer(gl.UNIFORM_BUFFER, ubo);
    gl.bufferData(gl.UNIFORM_BUFFER, data, gl.STATIC_DRAW);
    gl.bindBufferBase(gl.UNIFORM_BUFFER, 0, ubo);
    Uniform Buffer ObjectΛ࡞ͬͯ
    σʔλΛॻ͖ࠐΜͰ
    γΣʔμ಺ͷuniformͱରԠ͚ͮΔ

    View Slide

  159. Sampler Object
    αϯϓϥʔΦϒδΣΫτ
    ςΫενϟΦϒδΣΫτ
    WebGL 1.0 WebGL 2.0
    ςΫενϟʹؔ͢Δ
    ສ෺ΛؚΉ
    Ͳͷσʔλ͔Β
    αϯϓϦϯά͢Δ͔
    ͲΜͳ෩ʹ
    αϯϓϦϯά͢Δ͔
    αϯϓϦϯάύϥϝʔλΛ
    ςΫενϟΦϒδΣΫτ͔Β෼཭
    ςΫενϟΦϒδΣΫτ

    View Slide

  160. GLSL ES 3.0
    in outΛॻ͚ΔΑ͏ʹͳͬͨ
    flat smooth centroidิؒͷબ୒͕Մೳʹ
    ௖఺γΣʔμͰςΫενϟಡΊΔΑ͏ʹͳͬͨ
    ඇਖ਼ํߦྻܕͷ௥Ճ
    ϑϥάϝϯτͷഁغΛࢦࣄͰ͖ΔΑ͏ʹͳͬͨ
    ͳͲͳͲ
    #version 300 es

    View Slide

  161. Accelerating Your VR Games
    with VR Works
    ͜ͷηογϣϯͷൃදऀ
    Cem Cebenoyan(NVIDIA), Edward Liu(NVIDIA)
    GDC VaultͷURL
    http://www.gdcvault.com/play/1024356/

    View Slide

  162. NVIDIA VR Works
    VR։ൃͷͨΊͷ
    ༷ʑͳػೳΛఏڙ͢ΔSDK
    Ϩϯζʹ߹ΘͤͨϨϯμϦϯά
    ย໨ʹ1ຊGPUΛׂΓ౰ͯΔVR SLi
    PhysXʹΑΔ෺ཧγϛϡϨʔγϣϯ
    OptiXΛԠ༻ͨ͠ԻڹγϛϡϨʔγϣϯ
    ͳͲͳͲ

    View Slide

  163. VRͷϨϯμϦϯά͸Կ͕ҧ͏͔
    ϔουηοτͷಈ͖ʹ௥ैͯ͠
    ߴ͍ϑϨʔϜϨʔτ͔ͭ௿͍ϨΠςϯγͰ
    ඳը͢Δඞཁ͕͋Δ
    ͜Ε͕஗ΕΔͱਲ͏
    Ұൠʹ͸'14͘Β͍

    View Slide

  164. VRͷϨϯμϦϯά͸Կ͕ҧ͏͔
    εςϨΦϨϯμϦϯά
    ࠨӈͷ໨ʹ౤Өߦྻ͚͕ͩҧ͏
    ϨϯμϦϯά݁ՌΛݟͤΔඞཁ͕͋Δ

    View Slide

  165. VRͷϨϯμϦϯά͸Կ͕ҧ͏͔
    ϨϯζσΟετʔγϣϯ
    ϨϯζऩࠩΛଧͪফͨ͢Ίʹ
    ϨϯμϦϯά݁ՌΛ࿪·ͤΔඞཁ͕͋Δ
    த৺෦͸ߴղ૾౓Ͱ
    पล෦͸௿ղ૾౓Ͱදࣔ͞ΕΔ

    View Slide

  166. VR SLi



    ӈ
    ӈ

    ϨΠςϯγ
    ී௨ͷSLi͸FPSͷ޲্ʹ͸د༩͢Δ͕
    ϨΠςϯγΛԼ͛Δͱ͍͏఺Ͱ͸༗ޮͰ͸ͳ͍

    View Slide

  167. VR SLi



    ӈ ӈ

    ϨΠςϯγ
    2ຕͷGPUʹยํͷ໨Λ୲౰ͤ͞Δ͜ͱͰ
    ϨΠςϯγΛ཈͑Δ

    View Slide

  168. VR SLi
    NVIDIA֦ுͰSLiΛߏ੒͢ΔͲͷGPUʹ
    λεΫΛ౤͛Δ͔Λબ୒Ͱ͖Δ
    ӈ໨ࠨ໨ؔ܎ͳ͘ඞཁͳύε͸྆ํͰ࣮ߦ
    ӈ໨ࠨ໨ݻ༗ͷύε͸ͦΕͧΕͰ࣮ߦ

    View Slide

  169. Multi Resolution Shading
    ϨϯζऩࠩΛଧͪফͨ͢Ίʹը૾Λ࿪·ͤΔ
    "
    #
    "
    #
    पล෦͸ॖখ͞ΕΔͨΊ
    1ຕͷϨϯμϦϯά݁Ռ͔Β࿪Μͩը૾ΛಘΔͱ
    पล෦ͷଟ͘ͷϐΫηϧ͕ແବʹͳΔ
    (·ͨ͸த৺෦ͷղ૾౓͕଍Γͳ͘ͳΔ)
    #ͱൺ΂ͯ
    "ͷ໘ੵ͕খ͘͞
    ͳ͍ͬͯΔ

    View Slide

  170. Multi Resolution Shading
    ۙ୅తͳάϥϑΟοΫAPIͰ͸
    1ύεͷδΦϝτϦγΣʔμͷதͰ
    ෳ਺ͷϏϡʔϙʔτʹ௖఺Λ౉͢͜ͱ͕Ͱ͖Δ
    "
    #
    "
    #
    पล෦ͱத৺෦ͷϏϡʔϙʔτΛผʹͯ͠
    ҟͳΔղ૾౓ͰϨϯμϦϯά

    View Slide

  171. Lens Matched Shading
    "
    #
    "
    #
    ΫϦοϓۭؒͷwΛxyʹΑͬͯมԽͤ͞ΔࣄͰ
    ͷΑ͏ͳඇۣܗͷϏϡʔϙʔτΛಘΔ
    ͜ΕΛ4ຕܨ͗߹Θͤͯ
    पล෦ʹۙͮ͘΄Ͳղ૾౓͕Լ͕ΔΑ͏ʹ͢Δ
    w’=Ax+By+w

    View Slide

  172. Multi Resolution ShadingΑΓ
    Lens Matched Shadingͷํ͕
    ΑΓద੾ͳղ૾౓ͰϨϯμϦϯά͕ग़དྷΔ͕
    ϫʔϧυ࠲ඪܥͱεΫϦʔϯ࠲ඪܥͷؔ܎͕
    ઢܗͰ͸ͳ͘ͳΔͨΊ
    εΫϦʔϯۭؒΞϧΰϦζϜʹ޻෉͕ඞཁ

    View Slide

  173. Rendering Low LOD Cars
    at Lightning Speed
    in 'Forza Motorsport 6'
    ͜ͷηογϣϯͷൃදऀ
    Gustavo Nunes(Microsoft)
    GDC VaultͷURL
    http://www.gdcvault.com/play/1023973/Rendering-Low-LOD-
    Cars-at

    View Slide

  174. Forza Motorsport 6ͷLoD6
    ϋʔυ͸Forza Motorsports 5ͱಉ͡XBOX ONE
    ಉ࣌ʹ૸Δंͷ୆਺Λ16୆͔Β24୆ʹ૿΍͢
    ͜ͷܾఆ͕ͳ͞Εͨͷ͸։ൃͷऴ൫Ͱ
    100୆Ҏ্͔ΒͳΔंͷϞσϧΛ
    ࡞Γ௚͢ࣄ͸Ͱ͖ͳ͔ͬͨ
    Forzaʹ͸0͔Β5ͷ6ஈ֊ͷLoD͕͋ͬͨ
    ߋʹߴ଎ʹඳ͚Δ7ஈ֊໨Λ৽ઃ
    ԕ͘ͷंΛߋʹࡶʹඳ͍ͯඳըΛؒʹ߹ΘͤΔ

    View Slide

  175. Forzaʹ͸0͔Β5ͷ6ஈ֊ͷLoD͕͋ͬͨ
    ߋʹߴ଎ʹඳ͚Δ7ஈ֊໨Λ৽ઃ
    ԕ͘ͷंΛߋʹࡶʹඳ͍ͯඳըΛؒʹ߹ΘͤΔ
    LoD5ͰंΛ1୆ඳ͘ͷʹ300µs
    LoD5Ͱඳ͘ंΛ1୆ݮΒۭ͍ͯͨ͠300µsͰ
    9୆ඳ͘ํ๏Λߟ͑Δ
    1୆ʹ࢖͑Δ࣌ؒ͸33µs
    1ճͷDrawͰंΛඳ͖͖Δඞཁ͕͋Δ

    View Slide

  176. Topology Mapping Buffer(T-buffer)
    1୆ͷंΛߏ੒͢ΔશͯͷϝογϡΛશ෦݁߹
    ௖఺਺ͷ߹ܭΛ1000ҎԼ·ͰݮΒ͢
    ͜ͷϝογϡશମΛ෴͏ςΫενϟ࠲ඪΛ࡞Γ
    ରԠ͢ΔςΫηϧʹҎԼͷ৘ใΛॻ͖ࠐΉ
    ੺ ྘ ੨ ΞϧϑΝ
    ϓϦϛςΟϒͷॏ৺࠲ඪ Ϟσϧ*% ϝογϡ*%
    ϓϦϛςΟϒͷ
    ΠϯσοΫε
    ͜ͷςΫενϟΛݟΕ͹
    ݁߹લͷϞσϧͷͲ͜Λඳ͍͍ͯΔ͔͕Θ͔Δ

    View Slide

  177. Topology Mapping Buffer(T-buffer)
    ݁߹ͱ௖఺ͷ࡟ݮͰͭʹͳͬͯ͠·ͬͨࡾ֯ܗ
    ੺͍෦෼͸
    ϝογϡ༝དྷ
    ྘ͷ෦෼͸
    ϝογϡ༝དྷ
    ͜ͷ෼෍Λ
    ςΫενϟʹඳ͘

    View Slide

  178. Material Buffer(M-buffer)
    ௖఺ଐੑ͕௖఺࡟ݮޙʹ࢒ͬͨ௖఺ͷ஋͚ͩͰ
    ิؒ͞ΕΔͷ͸·͍ͣ
    ௖఺ଐੑ΋ςΫενϟʹ͢Δ
    ͜ͷςΫενϟΛ
    ΋ͱͷϝογϡͷ਺ * ௖఺ଐੑͷ਺
    ͚ͩ༻ҙ͢Δ

    View Slide

  179. ϨϯμϦϯάͷྲྀΕ
    ϞσϧΛϩʔυ
    5CV⒎FSΛ࡞੒
    .CV⒎FSΛ࡞੒
    ௖఺ΛؒҾ͘
    ௖఺γΣʔμ
    ϐΫηϧγΣʔμ
    ϩʔυ࣌ ϨϯμϦϯά࣌
    ϐΫηϧγΣʔμͰ
    T-bufferΛݟͯͲͷM-bufferΛಡΉ΂͖͔Λܾఆ
    M-bufferͷ஋Λ࢖ͬͯϨϯμϦϯά

    View Slide

  180. -P% -P%
    dճͷ%SBX ճͷ%SBX
    ЖTલޙ ЖTҎԼ
    ݁Ռ
    3FOEFSJOH-PX-0%$BSTBU-JHIUOJOH4QFFEJO'PS[B.PUPSTQPSU
    ෇ۙͷσϞ
    IUUQXXXHEDWBVMUDPNQMBZ3FOEFSJOH-PX-0%$BSTBU

    View Slide

  181. -P% -P%
    dճͷ%SBX ճͷ%SBX
    ЖTલޙ ЖTҎԼ
    ݁Ռ
    ԕ͔͘ΒݟͨΒόϨͳ͍඼࣭
    3FOEFSJOH-PX-0%$BSTBU-JHIUOJOH4QFFEJO'PS[B.PUPSTQPSU
    ෇ۙͷσϞ
    IUUQXXXHEDWBVMUDPNQMBZ3FOEFSJOH-PX-0%$BSTBU

    View Slide

  182. Texture Streaming in Titanfall 2
    ͜ͷηογϣϯͷൃදऀ
    Chad Barb(Respawn Entertainment)
    GDC VaultͷURL
    http://www.gdcvault.com/play/1024105/Efficient-Texture-
    Streaming-in-Titanfall

    View Slide

  183. Texture Streaming
    γʔϯʹ߹Θͤͯߴղ૾౓ͳςΫενϟΛ
    GPUϝϞϦʹ্͛Լ͛ͯ͠
    ࣮ࡍͷGPUϝϞϦҎ্ͷςΫενϟ͕
    ஔ͍͔ͯ͋ͬͨͷΑ͏ʹݟ͔͚ͤΔ

    View Slide

  184. Titanfall 2ʹ͓͚ΔTexture Streaming
    64KiBҎԼͷMIP͸GPUϝϞϦʹৗற
    ΑΓେ͖͍ςΫενϟ͸ඞཁʹԠ্ͯ͛͡Լ͛
    ςΫενϟͷॏཁ౓Λࣄલʹܭࢉ
    ඞཁͳςΫενϟͷϦετΛຖϑϨʔϜߋ৽

    View Slide

  185. Histgram
    ͋ΔϚςϦΞϧͷ͋ΔMIPͷςΫενϟ͕
    ݱࡏͷҐஔ͔ΒͲͷ͘Β͍ݟ͑Δ͔Λ
    ٻΊͨ΋ͷ
    ߴ

    ௿
    ݱࡏͷҐஔ

    View Slide

  186. ࣄલܭࢉ
    ಈ͔ͳ͍Ϟσϧ(Ϩϕϧ)ͷ৔߹
    ϓϨΠϠʔͷ໨ઢҎ্ͷߴ͞ʹϓϩʔϒΛࢃ͘
    ֤ϓϩʔϒͷҐஔ͔ΒΩϡʔϒϚοϓʹ
    ϨϯμϦϯάΛߦ͍
    ಡ΋͏ͱͨ͠MIPΛΧ΢ϯτ͢Δ
    Χ΢ϯτͷଟ͍MIPΛ
    ͦͷҐஔͰॏཁͳMIPͱ͢Δ

    View Slide

  187. kฏۉ๏Ͱ݁Ռ͕͍ۙϓϩʔϒΛ·ͱΊͯ
    16ft2ຖʹ۠੾ͬͨྖҬ಺ͷ
    ϓϩʔϒ͕8ݸҎԼʹͳΔΑ͏ʹ͢Δ
    ͜ͷϓϩʔϒΛࣄલʹϑΝΠϧʹॻ͍͓ͯ͘
    ಡ΋͏ͱͨ͠MIPΛΧ΢ϯτ͢Δ
    Χ΢ϯτͷଟ͍MIPΛ
    ͦͷҐஔͰॏཁͳMIPͱ͢Δ

    View Slide

  188. ࣄલܭࢉ
    ಈ͘Ϟσϧ(ΩϟϥΫλ౳)ͷ৔߹
    Ϟσϧͷද໘Λߏ੒͢ΔϚςϦΞϧͷׂ߹Λ
    ࣄલʹٻΊͯ͘

    View Slide

  189. ֤ϑϨʔϜͰͷॲཧ
    ϓϩʔϒΛิؒͯ͠
    ݱࡏͷҐஔʹ͓͚Δ੩తͳMIPͷॏཁ౓ΛಘΔ
    ۙ͘ʹ͍ΔΩϟϥΫλͷϚςϦΞϧͷׂ߹ͱ
    ͦͷΩϟϥΫλ·Ͱͷڑ཭͔Β
    ಈతͳMIPͷॏཁ౓ΛٻΊΔ
    ॏཁͱΈͳ͞Ε͍ͯΔͷʹϩʔυ͞Ε͍ͯͳ͍
    MIPΛσΟεΫ͔ΒಡΈࠐΉ
    ϩʔυ͞Ε͍ͯΔ͚ͲॏཁͰͳ͍MIPΛࣺͯΔ

    View Slide

  190. αΠωʔδ໰୊
    นͷ໛༷ͱͦͷ্ʹషΒΕͨDFACͷεςϯγϧ͸
    ը໘্Ͱಉ͡໘ੵΛ઎༗͢ΔͨΊ
    ಉ͡༏ઌ౓ʹͳ͍ͬͯΔ͕
    εςϯγϧʹ͸ΑΓߴ͍ղ૾౓͕ඞཁͰ͋Δ
    ςΫενϟͷ༻్ͷҧ͍͕ߟྀ͞Εͳ͍
    σΧʔϧͷղ૾౓͸े෼͕ͩ
    εςϯγϧ͸δϟΪ͕໨ཱͭ
    &⒏DJFOU5FYUVSF4USFBNJOHJO5JUBOGBMM
    ϖʔδ໨ͷը૾
    IUUQXXXHEDWBVMUDPNQMBZ&⒏DJFOU5FYUVSF4USFBNJOHJO
    5JUBOGBMM

    View Slide

  191. Replicating Chaos:
    Vehicle Replication in 'Watch Dogs 2'
    ͜ͷηογϣϯͷൃදऀ
    Matt Delbosc(Ubisoft Toronto)
    GDC VaultͷURL
    http://www.gdcvault.com/play/1024010/Replicating-Chaos-
    Vehicle-Replication-in

    View Slide

  192. Watch Dogs 2ʹ͸
    ϚϧνϓϨΠϠʔϞʔυ͕͋Δ
    ࠷େ4ਓͷpeer-to-peer
    େྔͷ෺ମͷঢ়ଶΛಉظ͢Δඞཁ͕͋Δ
    ෺ମͷϚελʔ͸ෳ਺ͷϗετʹ෼ࢄ͍ͯ͠Δ
    ϓϨΠϠʔ͸ंʹ৐ͬͯߴ଎ʹҠಈ͢Δ

    View Slide

  193. ϓϨΠϠʔ͸ंʹ৐ͬͯߴ଎ʹҠಈ͢Δ
    ΠϯλʔωοτΛհͯ͠઀ଓ͞Εͨ
    ϗετಉ࢜ͷ௨৴ͷ஗Ԇ͸
    100ϛϦඵΦʔμʔʹͳΔ͜ͱ΋௝͘͠ͳ͍
    ঢ়ଶ͕ಉظ͞Εͳ͍100ϛϦඵͷؒʹ
    ं͸਺ϝʔτϧ΋Ҡಈͯ͠͠·͏
    ͔͠΋Watch Dogs2Ͱ͸࿏্ʹ
    ଞͷं͕ͨ͘͞Μ૸͍ͬͯΔ
    ਺ϝʔτϧ΋ͣΕ͍ͯͨΒͿ͔ͭͬͯ͠·͏!

    View Slide

  194. Projective Velocity Blending
    લճͷಉظ࣌఺ͷ଎౓͕ˢͩͬͨͷͰ
    ͦͷํ޲ʹ௚ਐ͢Δͱ༧૝ͯ͠
    ंΛҠಈ͍ͤͯͨ͞Β
    ˔ͷ࣌఺Ͱ৽͍͠଎౓ˡΛड͚औͬͨ
    ࣌ؒͱͱ΋ʹˡͷঢ়ଶʹ
    ͍͍ۙͮͯ͘Α͏ʹ
    ଎౓ͱҐஔΛ؇΍͔ʹमਖ਼

    View Slide

  195. Projective Velocity Blending
    ී௨ͷ1SPKFDUJWF7FMPDJUZ#MFOEJOHͰ͸
    ෺ମ͸ݱࡏͷ଎౓Λҡ࣋ͯ͠
    Ҡಈ͢Δͱ༧૝͢Δ
    ΧʔϒΛۂ͕͍ͬͯΔ͚ͩͷं͕
    ऄߦ͍ͯ͠ΔΑ͏ʹݟ͑Δ

    View Slide

  196. ଎౓͚ͩͰͳ֯͘଎౓΋ಉظ͠Α͏
    ۂ͕͍ͬͯΔࣄ͕໌Β͔ͳ࣌ʹ
    ௚ਐ͢Δͱ༧૝͢Δͷ͸ؒҧ͍ͬͯΔ
    ಉظ࣌఺ͷ֯଎౓Λҡ࣋ͯ͠
    ଎౓ϕΫτϧͷ޲͖͕มԽ͢Δ΋ͷͱͯ͠
    ࣍ͷಉظ఺·Ͱͷؒͷಈ͖Λ༧૝͢Δ

    View Slide

  197. ֯଎౓Λ࢖ͬͨ଎౓ͷมԽͷ༧૝ͷ໰୊఺
    ं͕׈͍ͬͯΔͱޡͬͨ༧૝ʹͳΔ
    8BUDI%PHT͸
    ΦϑϩʔυΛ׈ָͬͯ͠Ή
    ϥϦʔήʔϜͰ͸ͳ͍ͷͰ
    ͜ͷ໰୊͸ఘΊΔ͜ͱʹͨ͠

    View Slide

  198. 4OBQTIPU#V⒎FS
    Ϛελʔ
    ϨϓϦΧ
    εφοϓγϣοτΛ͓͍֮݅͑ͯͯ
    ิؒʹΑͬͯͦͷؒͷಈ͖Λ࡞Δ
    ஗Ε
    ར఺ϨϓϦΧΛΑΓਖ਼֬ͳيಓͰಈ͔ͤΔ
    ܽ఺Ϛελʔʹରͯ͠ϨϓϦΧ͕େ͖͘஗ΕΔ

    View Slide

  199. 4OBQTIPU#V⒎FS
    Ϛελʔ
    ϨϓϦΧ
    5JNF0⒎TFU
    ࠷ॳͷεφοϓγϣοτ͕དྷͨΒগ͠଴͔ͬͯΒ
    ࣍ͷεφοϓγϣοτ͕དྷΔલʹ༧૝Ͱಈ͖࢝ΊΔ

    View Slide

  200. 4OBQTIPU#V⒎FS
    Ϛελʔ
    ϨϓϦΧ
    ࠷ॳͷεφοϓγϣοτ͕དྷͨΒগ͠଴͔ͬͯΒ
    ࣍ͷεφοϓγϣοτ͕དྷΔલʹ༧૝Ͱಈ͖࢝ΊΔ
    ࣍ͷεφοϓγϣοτ͕དྷͨΒ
    ͔ͦ͜Β͸ิؒͰಈ͘
    ༧૝ͱิؒͷόϥϯε͸࣮ࡍʹಈ͔ͯ͠Έͯ
    ࠷దͳ஋Λ୳Δ

    View Slide

  201. 7FIJDMF$PMMJTJPOT
    ϚϧνϓϨΠϠʔϞʔυͰ
    ϚελʔͱϨϓϦΧ͕িಥ͢Δͱ
    ͓ޓ͍͕ҟৗʹԕ͘ʹਧͬඈͿݱ৅͕ΈΒΕΔ

    View Slide

  202. 7FIJDMF$PMMJTJPOT
    εφοϓγϣοτ
    ϨϓϦΧ Ϛελʔ
    ࣍ͷεφοϓγϣοτͰিಥʹΑΔ଎౓ͷมԽ͕
    ൓ө͞ΕΔ·ͰɺϨϓϦΧ͕ϚελʔΛԡ͠ଓ͚Δ
    ࣌ࠁ

    View Slide

  203. 7FIJDMF$PMMJTJPOT
    ࣍ͷεφοϓγϣοτͰিಥʹΑΔ଎౓ͷมԽ͕
    ൓ө͞ΕΔ·ͰɺϨϓϦΧ͕ϚελʔΛԡ͠ଓ͚Δ
    Ϛελʔͱিಥͨ͠ϨϓϦΧʹ͍ͭͯ
    ϩʔΧϧͰ߶ମγϛϡϨʔγϣϯΛߦ͏
    িಥ͔Β͠͹Β͘ͷؒ͋Δׂ߹Ͱ
    γϛϡϨʔγϣϯͷ݁ՌಘΒΕͨঢ়ଶͱ
    εφοϓγϣοτ͔Βͷঢ়ଶͷ༧૝ΛࠞͥΔ
    ͜ͷׂ߹ͱ͜ͷঢ়ଶΛҡ࣋͢Δ࣌ؒ͸
    ༷ʑͳিಥΛࢼͯ͠ྑ͍݁Ռ͕ಘΒΕΔ஋Λ୳͢

    View Slide

  204. িಥ༧૝
    ϚελʔͱϨϓϦΧͷҐஔ͕ͣΕ͍ͯΔঢ়ଶ͔Β
    িಥ͕ى͜ΔͱϚελʔଆͱϨϓϦΧଆͰ
    ߶ମγϛϡϨʔγϣϯͷ݁Ռʹେ͖ͳ͕ࠩग़Δ
    ϓϨΠϠʔ
    ϓϨΠϠʔ
    ຊདྷͷҐஔ
    ͣΕͨϨϓϦΧ

    View Slide

  205. িಥ༧૝
    /1$ं྆༻ͷ"*ΛԠ༻ͯ͠
    িಥͦ͠͏ͳϚελʔͱϨϓϦΧͷϖΞΛൃݟ
    !
    5JNF0⒎TFUΛݮΒͯ͠
    ϚελʔͱϨϓϦΧͷͣΕΛ཈͑Δ

    View Slide

  206. ະղܾͷ໰୊
    εφοϓγϣοτͷঢ়ଶͱͣΕ͍͔ͯͨΒ
    Ҡಈ͠Α͏ͱͨ͠Βؒʹো֐෺͕͋ͬͨ
    ϨϓϦΧͷಈ͖
    ຊདྷͷಈ͖
    ͨͩͪʹͣΕΛղফ͢ΔͷΛఘΊΔ
    ো֐෺Λ΍ΘΒ͔͘͢Δ
    ਖ਼͍͠ҐஔʹॠؒҠಈͤ͞Δ
    ߟ͑ΒΕΔରॲํ๏
    8BUDIEPHTͰ͸
    ͜ΕΛ࠾༻

    View Slide

  207. ະղܾͷ໰୊
    5JNF0⒎TFU͕ҟͳΔΦϒδΣΫτಉ࢜ͷিಥ
    าߦऀ͸ߴ଎ͰҠಈ͠ͳ͍ͨΊ
    ิؒͷΈͰಈ͍͍ͯΔ
    ༧ଌͱิؒΛ૊Έ߹Θͤͯಈ͍͍ͯΔ
    ंͱ͸5JNF0⒎TFU͕ͣΕ͍ͯΔͨΊ
    ຊདྷিಥ͍ͯ͠ͳ͍ंͱาߦऀ͕
    িಥ͢Δࣄ͕͋Δ

    View Slide

  208. ະղܾͷ໰୊
    ෆؾຯͷ୩
    ײ৘త൓Ԡ
    ຊ෺΁ͷྨࣅ౓
    ػցత ਓؒత
    ຊ෺Β͍͠ಈ͖Λ͢Δं͕ಥવԣ׈Γ͢Δͱ
    ͦͷมҐࣗମ͕খ͔ͬͨ͞ͱͯ͠΋
    حົʹݟ͑Δ

    View Slide

  209. ࠓޙͷల๬
    5JNF0⒎TFUͷ௕͞΍
    ෺ཧγϛϡϨʔγϣϯͱͷϒϨϯυͷׂ߹ͳͲ
    ਓ͕ؒࢼߦࡨޡͯ͠ྑ͍஋Λ୳͍ͯ͠Δ෦෼͕͋Δ
    ͜͏͍ͬͨ෦෼ʹػցֶशΛԠ༻Ͱ͖Ε͹
    ։ൃͷޮ཰ΛߴΊΔࣄ͕Ͱ͖ΔͷͰ͸ͳ͍͔

    View Slide

  210. Networking Scripted
    Weapons and Abilities in 'Overwatch'
    ͜ͷηογϣϯͷൃදऀ
    Dan Reed(Blizzard Entertainment)
    GDC VaultͷURL
    http://www.gdcvault.com/play/1024041/Networking-Scripted-
    Weapons-and-Abilities

    View Slide

  211. 4UBUFTDSJQU
    0WFSXBUDIͰ͸ήʔϜͷߴϨΠϠʔͳڍಈΛ
    ϓϩάϥϚͰͳ͍ਓ͕σβΠϯ͢Δඞཁ͕͋ͬͨ
    Ճ͑ͯήʔϜͷػೳΛ
    ՄೳͳݶΓϞδϡʔϧԽ͔ͨͬͨ͠
    αʔόͱΫϥΠΞϯτͰ؆୯ʹঢ়ଶΛಉظ͔ͨͬͨ͠

    View Slide

  212. 4UBUFTDSJQU
    (6*Ͱ૊ΈཱͯՄೳͳεΫϦϓτݴޠ
    /FUXPSLJOH4DSJQUFE
    8FBQPOTBOE"CJMJUJFTJO
    b0WFSXBUDI
    ϖʔδ໨ͷਤ
    IUUQXXXHEDWBVMUDPNQMBZ
    /FUXPSLJOH
    4DSJQUFE8FBQPOTBOE
    "CJMJUJFT

    View Slide

  213. ϊʔυ
    &OUSZ ͔͜͜ΒεΫϦϓτ͕࣮ߦ͞ΕΔ͜ͱΛද͢ϊʔυ
    ແ৚݅ʹભҠ͢ΔઌΛͭઃఆͰ͖Δ
    $POEJUJPO
    ৚݅ࣜΛධՁ͢Δϊʔυ
    ࣜͷධՁ݁Ռ͕USVFͩͬͨ৔߹ͱGBMTFͩͬͨ৔߹ͷ
    ͭͷભҠઌΛઃఆͰ͖Δ
    "DUJPO
    ήʔϜଆʹ࣮૷͞Εͨ
    ԿΒ͔ͷؔ਺Λݺͼग़͢ϊʔυ
    ׬ྃޙʹભҠ͢ΔઌΛͭઃఆͰ͖Δ
    4UBUF
    ήʔϜଆͰΠϕϯτ͕ى͜Δ·Ͱ
    ॲཧΛఀࢭ͢Δϊʔυ
    ظ଴͢ΔΠϕϯτͷ਺͚ͩભҠઌΛઃఆͰ͖Δ

    View Slide

  214. ม਺
    *OTUBODFม਺εΫϦϓτͷ࣮ߦ୯ҐͰಠཱͨ͠஋
    0XOFSม਺*OTUBODFͷॴ༗ऀ୯ҐͰಠཱͨ͠஋
    ಈతܕ෇͚Ͱ഑ྻ΋࢖͑Δ
    "DUJPOͷ4FU7BMVFͰ஋ΛมߋͰ͖Δ

    View Slide

  215. ϊʔυͷଐੑ஋
    ϊʔυͷৼΔ෣͍ΛܾΊΔύϥϝʔλʹ͸
    Ϧςϥϧ
    ม਺
    ήʔϜଆ͔Β஋ΛҾͬுͬͯ͘Δؔ਺
    ͦΕΒΛ૊Έ߹Θͤͨࣜ
    Λઃఆ͢Δ͜ͱ͕Ͱ͖Δ
    ͨͱ͑͹λΠϚʔεςʔτͷ଴ͪ࣌ؒʹ
    ม਺Bͷ஋ඵ
    ͱ͍ͬͨࢦఆ͕Մೳ

    View Slide

  216. ίϯςφ
    ෳ਺ͷϊʔυΛ·ͱΊͯͦͷڍಈΛมߋ͢Δ

    ੨͍ίϯςφͷத਎͸ΫϥΠΞϯτͷΈͰ࣮ߦ͞ΕΔ
    ࢵͷίϯςφͷத਎͸αʔόͷΈͰ࣮ߦ͞ΕΔ
    /FUXPSLJOH4DSJQUFE8FBQPOTBOE
    "CJMJUJFTJOb0WFSXBUDI
    ϖʔδ໨ͷਤ
    IUUQXXXHEDWBVMUDPNQMBZ
    /FUXPSLJOH4DSJQUFE8FBQPOTBOE"CJMJUJFT

    View Slide

  217. ಉظΠϯελϯε
    ಉظΠϯελϯε্Ͱ࣮ߦ͞ΕΔεΫϦϓτ͸
    αʔόͱΫϥΠΞϯτͰಉ͡ঢ়ଶ͕อͨΕΔ
    ෢ث΍ΞϏϦςΟͳͲ
    શͯͷϓϨΠϠʔͰঢ়ଶ͕ἧ͍ͬͯΔ
    ඞཁ͕͋Δ΋ͷ͸ಉظΠϯελϯεͰ࣮ߦ͢Δ
    ͜͜ͱ
    ͜͜Ͱ
    ಉ͡ঢ়ଶ
    ಉظ

    View Slide

  218. ඇಉظΠϯελϯε
    ಉظΠϯελϯεͷΠϕϯτ΍஋ͷ೷͖ݟ͸
    Ͱ͖Δ͕Ұํ͚ͩͰ࣮ߦ͞ΕΔ
    ϝχϡʔը໘ͷঢ়ଶ΍
    ରઓޙͷ݁Ռը໘ͷભҠͳͲ
    ଞͷϓϨΠϠʔʹ఻͑Δඞཁ͕ͳ͍෺͸
    ඇಉظΠϯελϯεͰ࣮ߦ͢Δ
    ͚ͩ͜͜

    View Slide

  219. ಉظͷ͘͠Έ
    ಉظ͕ඞཁͳεΫϦϓτ͸
    جຊతʹαʔό্Ͱ࣮ߦ͞Ε
    αʔό͔ΒΫϥΠΞϯτʹঢ়ଶ͕ಉظ͞ΕΔ
    ྫ֎తʹϘλϯೖྗͱর४͚ͩ͸
    ΫϥΠΞϯτ͔Βαʔόʹঢ়ଶΛಉظͰ͖Δ
    ͜͜ͱ
    ͜͜Ͱ
    ಉ͡ঢ়ଶ

    View Slide

  220. ಉظͷ͘͠Έ
    $'ͷΠϕϯτͷޙͷࠩ෼
    $'ͷΠϕϯτͷޙͷࠩ෼
    $'ͷΠϕϯτͷޙͷࠩ෼
    αʔό͸εΫϦϓτͷ࣮ߦʹΑͬͯ
    มԽͨ͠ঢ়ଶͷࠩ෼ΛมԽͨ࣌͠ࠁ෇͖Ͱ
    ͓֮͑ͯ͘

    View Slide

  221. ಉظͷ͘͠Έ
    ࠩ෼ΛΫϥΠΞϯτʹૹ৴͠
    શͯͷΫϥΠΞϯτ͔Βड͚औΓ௨஌͕དྷͨΒ
    ͦ͜·Ͱͷࠩ෼Λഁغ͢Δ
    $'
    $'
    $'
    ͜͜·Ͱഁغ
    ࠷৽
    ࠷৽
    ࠷৽

    View Slide

  222. ಉظͷ͘͠Έ
    ৽͍ࠩ͠෼ΛૹΖ͏ͱͨ࣌͠఺Ͱ
    લͷࠩ෼ͷड͚औΓ׬ྃΛ
    ௨஌͍ͯ͠ͳ͍ΫϥΠΞϯτ͕͍ͨ৔߹
    $'
    $'
    $'
    ࠷৽
    ࠷৽
    ࠷৽

    ΛૹΓ͍ͨ

    View Slide

  223. ಉظͷ͘͠Έ
    ड͚औΓ׬ྃΛ֬ೝ͍ͯ͠ΔՕॴҎ߱ͷࠩ෼Λ
    ·ͱΊͯΫϥΠΞϯτʹૹΔ
    $'
    $'
    $'
    ࠷৽
    ࠷৽
    ࠷৽
    ͔Β΁ͷࠩ෼
    ͔Β΁ͷࠩ෼
    ͔Β΁ͷࠩ෼
    ͱ͕ಉ͡ཁૉΛॻ͖׵͍͑ͯͨ৔߹
    ͷޙͷ஋͚͕ͩૹΒΕΔ

    View Slide

  224. ಉظͷ͘͠Έ
    ΫϥΠΞϯτ͕$'·Ͱड͚औͬͨͱ
    ݴͬͯདྷͨΒݱ࣌఺ͷঢ়ଶΛશͯૹΔ
    $'
    $'
    $'
    ࠷৽
    ࣌఺ͷঢ়ଶΛ
    શͯૹ৴
    ৽͍͠ϓϨΠϠʔͷࢀՃ࣌

    View Slide

  225. ϩʔΧϧΠϯελϯε
    ϓϨΠϠʔࣗ਎ͷڍಈʹؔ͢ΔεΫϦϓτ͸
    αʔόʹ௨஌͢Δͱಉ࣌ʹ
    ΫϥΠΞϯτͰ΋࣮ߦ͢Δ
    Ϙλϯԡ͞Εͨ
    ঢ়ଶΛ
    ߋ৽
    ঢ়ଶΛ
    ߋ৽
    Ϙλϯೖྗʹରͯ͠ଈ࠲ʹԠ౴

    View Slide

  226. ϩʔΧϧΠϯελϯε
    αʔόଆ͔Β݁ՌΛड͚औΔ·Ͱ
    ΫϥΠΞϯτଆͰ͸ঢ়ଶͷࠩ෼Λอ࣋
    Ϙλϯԡ͞Εͨ
    ঢ়ଶΛ
    ߋ৽
    $'
    ͍ͭͰ΋ϩʔϧόοΫͰ͖Δঢ়ଶʹ͢Δ
    $'
    $'

    View Slide

  227. αʔόͱΫϥΠΞϯτͰ৯͍ҧͬͨΒ
    Ϙλϯԡ͞Εͨ
    ঢ়ଶΛ
    ߋ৽
    ঢ়ଶΛ
    ߋ৽
    ඞࡴٕΛ͘Β͑ ͓લ͸΋͏
    ࢮΜͰ͍ͨ
    ඞࡴٕࣦഊ
    ඞࡴٕ
    ఢʹ໋த
    ͑ͬ

    View Slide

  228. ඞࡴٕࣦഊ
    ඞࡴٕ
    ఢʹ໋த
    ͱ͍͏ͷ͸
    ເͩͬͨ
    ඞࡴٕࣦഊ
    ΫϥΠΞϯτଆͷ༧૝Λ
    ϩʔϧόοΫͯ͠αʔόͷ݁ՌΛ࠾༻

    View Slide

  229. ͜ΕΒͷಉظ͸
    4UBUF4DSJQUͷΠϯλϓϦλ͕ߦ͍
    εΫϦϓτ্ʹ໌ࣔతʹॻ͘ඞཁ͸ͳ͍
    ϙΠϯτ

    View Slide

  230. Stop Killing Our Servers!
    ͜ͷηογϣϯͷൃදऀ
    Sela Davis(VREAL), Jennie Lees(Riot Games)
    GDC VaultͷURL
    http://www.gdcvault.com/play/1024584/Stop-Killing-Our-
    Servers

    View Slide

  231. if( enemyKilled ) {
    server.UpdateProgress( 1000_ENEMIES, 1 );
    } // ແ૒͢ΔͱେྔͷΠϕϯτ͕ඈͿ
    while( enemiesAreBeingKilled ) {
    enemiesKilled++;
    }
    if( enemiesKilled > 0 && !achAwarded ) {
    server.UpdateProgress(
    1000_ENEMIES, enemiesKilled
    );
    } // ·ͱΊΑ͏
    ΫϥΠΞϯτ͔Βͷࡉ͔͗͢ΔΠϕϯτͰ
    αʔόΛ౗ͯ͠͠·Θͳ͍Α͏ʹؾΛ͚ͭΑ͏

    View Slide

  232. ΈΜͳͰॻ͖׵͑Δཁૉ͸
    ΩϡʔΛ࡞Δͱ͏·͘ࡹ͚Δ
    ॱ൪଴ͪ ࣗ෼ͷ൪͕དྷͨΒ
    ର৅Λૢ࡞
    ΩϡʔΛ࡞Δͱཁٻ͕ॲཧ͞ΕΔ·Ͱʹ͸
    ͕͔͔࣌ؒΔ͔΋͠Εͳ͍
    ཁٻ͕଴ͪঢ়ଶ͔Ͳ͏͔͕Ϣʔβ͔Βݟ͑ͳ͍ͱ
    Ϣʔβ͸ཁٻΛ࿈ଧͯ͠
    Ωϡʔʹେྔͷ଴ͪΛ࡞ͬͯ͠·͏͔΋͠Εͳ͍

    View Slide

  233. ৘ใΛ࠷৽ʹอͭͨΊʹϙʔϦϯά͗ͯ͢͠
    αʔόΛ౗ͯ͠͠·Θͳ͍Α͏ʹؾΛ͚ͭΑ͏
    ࠷৽ͷ৘ใΛऔಘ͢Δͷ͸
    ͦΕ͕ඞཁʹͳͬͨ࣌ʹ͠Α͏
    ͦͷ৘ใ͕ৗʹ
    ࠷৽ͷ৘ใͰͳ͚Ε͹ͳΒͳ͍͔Λߟ͑Α͏
    (ΩϟογϡΛݕ౼͠Α͏)
    ৽ண͋Δ
    ৽ண͋Δ
    ৽ண͋Δ

    View Slide

  234. αʔό͕ࢮΜͰ͍Δ࣌ɺਖ਼͘͠Ԡ౴Ͱ͖ͳ͍࣌
    Կ͕ى͜Δ͔Λৗʹߟ͑Α͏
    ϩάΠϯʹࣦഊ͠·ͨ͠
    ϦτϥΠ
    ͜͏ݴΘΕΔͱϢʔβ͸
    ϦτϥΠΛ࿈ଧͯ͠͠·͏

    View Slide

  235. αʔό͕ࢮΜͰ͍Δ࣌ɺਖ਼͘͠Ԡ౴Ͱ͖ͳ͍࣌
    Կ͕ى͜Δ͔Λৗʹߟ͑Α͏
    ϝϯςφϯεதͰ͢
    ৄ͘͠͸ެࣜαΠτΛ ҎԼུ
    αʔϏεʹ໰୊͕ൃੜ͍ͯ͠Δ࣌Ͱ΋
    Կ͕ى͍ͬͯ͜Δͷ͔͘Β͍͸
    ฦͤΔΑ͏ʹ͓ͯ͜͠͏

    View Slide

  236. ෛՙςετΛߦ͓͏
    ՄೳͳݶΓૣ͍ஈ֊͔Βසൟʹ
    ҟͳΔγφϦΦΛෳ਺༻ҙͯ͠
    ຊ෺Β͍͠τϥϑΟοΫΛ࡞Ζ͏
    ػೳ͝ͱʹγφϦΦΛ༻ҙ͠Α͏
    ฏۉతͳέʔεͱϫʔετέʔεΛ૝ఆ͠Α͏
    Ͳ͏͍͏࣌ʹࠞࡶ͢Δ͔ΛݟۃΊΑ͏

    View Slide

  237. ϓϩϑΝΠϧΛऔΖ͏
    ΫϥΠΞϯτͷৼΔ෣͍͕
    αʔόʹͲΜͳӨڹΛ༩͑Δͷ͔ΛݟΑ͏
    αʔόͷৼΔ෣͍͕
    ΫϥΠΞϯτʹͲΜͳӨڹΛ༩͑Δͷ͔ΛݟΑ͏

    View Slide

  238. ϦΫΤετ͔ΒϨεϙϯε·Ͱͷ࣌ؒΛଌΖ͏
    RTT͕ҟৗʹ௕͍෦෼ʹ஫໨͢Δࣄ͸
    ଟ͘ͷ৔߹໰୊ͷௐࠪʹ༗༻Ͱ͋Δ
    ΫϥΠΞϯτ͕ෆ҆ఆͳωοτϫʔΫΛհͯ͠
    ઀ଓ͍ͯ͠ΔࣄΛݕ஌͠Α͏

    View Slide

  239. ϩάΛ࢒ͦ͏
    ԿΛϦΫΤετͯ͠Կ͕ฦ͖ͬͯͨͷ͔Λه࿥͠Α͏
    ҟৗͳϨεϙϯεΛฦ͢αʔόͷ໰୊ͷௐࠪ
    ҟৗͳϦΫΤετΛ͢ΔΫϥΠΞϯτͷ໰୊ͷௐࠪ
    ౳Ͱ໾ཱͭ
    ΫϥογϡϨϙʔτπʔϧΛ׆༻͠Α͏

    View Slide

  240. ΫϥΠΞϯτͷઃఆΛ
    αʔό͔Β໯ͬͯ͘ΔΑ͏ʹ͠Α͏
    ΫϥΠΞϯτͷެ։ޙͰ΋
    ήʔϜͷόϥϯεΛௐ੔Ͱ͖Δ
    ෆ۩߹͕ݟ͔ͭͬͨίϯςϯπΛ
    ࢖͑ͳ͍Α͏ʹͰ͖Δ
    ΫϥΠΞϯτ͕઀ଓ͢΂͖αʔόΛมߋͰ͖Δ
    ςετ༻ͷΫϥΠΞϯτͱ
    ຊ൪༻ͷΫϥΠΞϯτΛಉҰʹͰ͖Δ
    ௨শνΩϯεΠον

    View Slide

  241. ࠷΋ॏཁͳࣄ
    αʔόΤϯδχΞͱ
    ΫϥΠΞϯτΤϯδχΞ͸
    ஥ྑͤ͘Α

    View Slide

  242. Give people the power to
    “play, share and watch”
    the games they love
    with the people they care about.
    ͜ͷηογϣϯͷൃදऀ
    Leo Olebe(Facebook)
    GDC VaultͷURL
    (ͳ͠)

    View Slide

  243. Facebook Instant Games
    Facebook Messenger্Ͱىಈͯ͠
    ήʔϜϓϨΠͱ݁ՌΛͦͷ৔Ͱڞ༗Ͱ͖Δ
    ϛχήʔϜΛ։ൃ͢ΔͨΊͷϓϥοτϑΥʔϜ
    HTML5+JavaScriptͰ։ൃ͢Δ
    https://developers.facebook.com/blog/post/2016/11/30/instant-
    games-closed-beta/

    View Slide

  244. Facebook Gameroom
    FacebookͷPCήʔϜൢചϓϥοτϑΥʔϜ
    Flash·ͨ͸HTML5Ͱॻ͔Εͨ
    ϒϥ΢β্Ͱಈ͘ήʔϜͱ
    UnityͰ։ൃ͞ΕͨωΠςΟϒͷήʔϜΛ
    Facebook͕ϗεςΟϯά
    https://developers.facebook.com/docs/games/gameroom

    View Slide

  245. Facebook࿈ܞ
    Facebook͸ΞϓϦέʔγϣϯͷ։ൃऀʹ
    Facebookͱ࿈ܞ͢ΔͨΊͷAPIΛఏڙ͍ͯ͠Δ
    XBOX΍PS4͔Β΋࿈ܞͰ͖Δ
    FacebookΞΧ΢ϯτͰϩάΠϯͰ͖ΔΑ͏ʹ͠Α͏
    https://developers.facebook.com/docs/facebook-login
    https://developers.facebook.com/docs/graph-api
    FacebookͰήʔϜମݧΛ౤ߘͰ͖ΔΑ͏ʹ͠Α͏

    View Slide

  246. Facebook Live API
    Facebook͸ಈըͷϥΠϒετϦʔϛϯάͷͨΊͷ
    APIΛఏڙ͢Δ
    ήʔϜ͔Β͜ΕΒͷAPIΛར༻ͯ͠
    Ϣʔβ͕ήʔϜମݧΛ
    ༑ୡͱڞ༗Ͱ͖ΔΑ͏ʹ͠Α͏
    https://developers.facebook.com/docs/videos/live-video

    View Slide

  247. Facebook Analytics
    https://developers.facebook.com/products/analytics
    ήʔϜ 'BDFCPPL
    Ϣʔβ ։ൃऀ
    Ϣʔβ৘ใ
    Πϕϯτ
    'BDFCPPLͰ
    ϩάΠϯ
    ౷ܭ
    FacebookʹήʔϜ಺Ͱىͬͨ͜ΠϕϯτΛૹͬͯ
    ͲΜͳ૚ͷϢʔβ͕Ͳ͏༡ΜͰ͍Δ͔Λ஌Δ

    View Slide

  248. Build Resilient Online Games
    with Amazon GameLift
    ͜ͷηογϣϯͷൃදऀ
    Chris Byskal(Amazon), Geoff Pare(Amazon)
    GDC VaultͷURL
    http://www.gdcvault.com/play/1024274/

    View Slide

  249. GameLift
    ΫϥΠΞϯτ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU ؅ཧίϯιʔϧ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU"1*
    ΦϯϥΠϯϚϧνϓϨΠϠʔήʔϜͷ
    αʔόͱηογϣϯͷ؅ཧΛߦ͏

    View Slide

  250. ىಈ ఀࢭ ࢮ׆؂ࢹ
    ΫϥΠΞϯτ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU ؅ཧίϯιʔϧ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU"1*
    αʔόͷঢ়ଶݟͤͯ
    ੜ͖ͯΔ
    ݸʑͷήʔϜαʔόͷىಈɺఀࢭɺࢮ׆؂ࢹ
    ϩάͷ֬ೝͳͲ͸؅ཧίϯιʔϧ͔Β
    ࢮΜͰΔ

    View Slide

  251. σϓϩΠ
    ΫϥΠΞϯτ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU ؅ཧίϯιʔϧ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU"1*
    ήʔϜαʔόͷ
    όΠφϦ
    αʔόͷόΠφϦΛGameLiftʹ౤͓͛ͯ͘ͱ
    ඞཁͳαʔόʹσϓϩΠ͞ΕΔ

    View Slide

  252. αʔό
    (BNF-JGU"1*
    ࣗಈεέʔϧ
    αʔό
    F-JGU ؅ཧίϯιʔϧ
    (BNF-JGU"1*
    ࣗಈεέʔϧΛ༗ޮʹ͓ͯ͘͠ͱ
    ϓϨΠϠʔ਺ʹԠͯ͡
    αʔόͷΠϯελϯε͕ࣗಈͰ૿ݮ͢Δ
    αʔό
    (BNF-JGU"1*
    ৽͍͠αʔό΁ͷσϓϩΠ΋ࣗಈ
    ࠞࡶ ࠞࡶ

    View Slide

  253. ΫϥΠΞϯτ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU ؅ཧίϯιʔϧ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU"1*
    ઀ଓ
    ͜ͷ෦԰ʹೖΓ͍ͨͳ
    ΫϥΠΞϯτ͸GameLiftαʔϏεʹ
    ઀ଓΛཁٻ͢Δ

    View Slide

  254. ΫϥΠΞϯτ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU ؅ཧίϯιʔϧ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU"1*
    ઀ଓ
    ͜ΜͳϠπདྷͯΔΜ͚ͩͲ
    ೖΕͯྑ͍?
    αʔό͸GameLiftʹڐՄ͢Δ͔Ͳ͏͔Λฦ͢
    ͓͚ͬɺ೚ͤΖ

    View Slide

  255. ΫϥΠΞϯτ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU ؅ཧίϯιʔϧ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU"1*
    ઀ଓ
    GameLift͸ΫϥΠΞϯτʹ
    ઀ଓઌΛڭ͑Δ
    ͋ͷαʔόʹܨ͍Ͱ

    View Slide

  256. ΫϥΠΞϯτ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU ؅ཧίϯιʔϧ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU"1*
    ઀ଓ
    ͓अຐ͠·͢
    ͳΜ͔དྷ͚ͨͲ
    ͜ΕͬͯݴͬͯͨϠπ? ͤ΍Ͱ
    ୭͔઀ଓͯ͠དྷͨΒ
    αʔό͸GameLiftʹϢʔβΛ֬ೝ

    View Slide

  257. ΫϥΠΞϯτ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU ؅ཧίϯιʔϧ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU"1*
    ઀ଓ
    ੾அ
    ݴͬͯͨϠπ
    ؼͬͨͰ
    ΫϥΠΞϯτ͕੾அͨ͠Β
    αʔό͸GameLiftʹ௨஌

    View Slide

  258. ΫϥΠΞϯτ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU ؅ཧίϯιʔϧ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU"1*
    ෦԰ͷ࡞੒
    ৽͍͠෦԰Λ
    ࡞Γ͍ͨͳ ৽͍͠෦԰୲౰ΑΖ͘͠
    ΫϥΠΞϯτ͕৽͍͠෦԰Λ࡞Γ͍ͨ࣌͸
    GameLiftʹཁٻ

    View Slide

  259. ΫϥΠΞϯτ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU ؅ཧίϯιʔϧ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU"1*
    ෦԰ͷݕࡧ
    ࠓ͋Δ෦԰
    ͍ͩ͘͞
    ͪ͜Β͕ҰཡʹͳΓ·͢
    GameLift͸࣮ߦதͷશͯͷ෦԰Λ஌͍ͬͯͯ
    ΫϥΠΞϯτ͔Βཁٻ͞ΕͨΒͦΕΛฦ͢

    View Slide

  260. ΫϥΠΞϯτ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU ؅ཧίϯιʔϧ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU"1*
    ෦԰ͷݕࡧ
    ͜Μͳ෦԰
    ͳ͍?
    ͜ΕͳΜ͔
    Ͳ͏Ͱ͠ΐ͏
    ήʔϜαʔό͔Β෦԰ͷ৘ใΛ౉͢͜ͱͰ
    ৚݅ʹ͋ͬͨ෦԰ΛݕࡧͰ͖ΔΑ͏ʹͳΔ
    ࠓ͜ͷ෦԰
    ͜Μͳ෩ʹͳͬͯΔ

    View Slide

  261. ΫϥΠΞϯτ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU ؅ཧίϯιʔϧ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU"1*
    ෦԰ͷݕࡧ
    ݱࡏͷ෦԰ͷঢ়گͱϓϨΠϠʔͷঢ়گ͸
    ؅ཧίϯιʔϧ͔Β֬ೝͰ͖Δ
    ϓϨΠϠʔདྷͯΔ?
    ͦͦ͜͜

    View Slide

  262. ΫϥΠΞϯτ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU ؅ཧίϯιʔϧ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU"1*
    ϚονϝΠΩϯά
    ରઓ૬खΛٻΊΔϓϨΠϠʔಉ࢜Λ
    άϧʔϓԽͯ͠
    ରઓ͍ͨ͠!
    ϝϯόʔ͕ἧ͏·Ͱ
    ͓଴͍ͪͩ͘͞

    View Slide

  263. ΫϥΠΞϯτ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU ؅ཧίϯιʔ
    (BNF-JGU"1*
    α
    (BN
    ϚονϝΠΩϯά
    ਓ਺͕ἧͬͨΒ෦԰Λ࡞Δ
    Զ΋ରઓ͍ͨ͠!
    ͍ͭ͜ͱ͍͕ͭ͜
    ରઓ͕ͨͬͯ͠Δ͔Β
    ෦԰ΑΖ͘͠
    ϥΠΞϯτ
    BNF-JGU"1*

    View Slide

  264. ΫϥΠΞϯτ
    (BNF-JGU"1*
    αʔό
    (BNF-JGU ؅ཧίϯιʔ
    (BNF-JGU"1*
    α
    (BN
    ϚονϝΠΩϯά
    ϥΠΞϯτ
    BNF-JGU"1*
    ͜ͷαʔόʹ
    ઀ଓ͍ͯͩ͘͠͞
    ͜ͷαʔόʹ
    ઀ଓ͍ͯͩ͘͠͞
    ͜͏ͨ͠ϚονϝΠΩϯά΋
    GameLiftͰߦ͏ࣄ͕Ͱ͖Δ

    View Slide

  265. ΫϥΠΞϯτ
    (BNF-JGU"1*
    (BNF-JGU
    ϚονϝΠΩϯά
    ରઓ͍ͨ͠!
    Ͳ͏͠Α͏
    -BNCEB
    %ZOBNP
    ଴ͬͯΔϓϨΠϠʔͷ
    ৘ใͪΐ͏͍ͩ
    ͜ΜͳϠπ͕
    ͓ΔͰ
    ͍ͭ͜ͱ͍ͭ͜Ͱ෦԰࡞ͬͯ
    Amazon Dynamoʹஔ͍ͨϓϨΠϠʔͷ৘ใΛ࢖ͬͯ
    Amazon LambdaͰ޷͖ͳϧʔϧͰάϧʔϓΛ࡞ΕΔ

    View Slide

  266. ϚϧνϦʔδϣϯ
    ੈքதͷϓϨΠϠʔʹ
    ௿͍ϨΠςϯγͰͷαʔϏεΛఏڙ͢Δʹ͸
    ෳ਺ͷ஍ҬʹαʔόΛஔ͍ͯ࠷΋͍ۙ΋ͷΛ࢖͏
    αʔό
    (BNF-JGU"1*
    αʔό
    (BNF-JGU"1*
    αʔό
    (BNF-JGU"1*

    View Slide

  267. GameLift͕࢖͑ΔAWSͷϦʔδϣϯ
    όʔδχΞ๺෦
    ΦϨΰϯ
    ϑϥϯΫϑϧτ
    ΞΠϧϥϯυ
    ϜϯόΠ
    ι΢ϧ
    ౦ژ
    γϯΨϙʔϧ
    αϯύ΢ϩ

    View Slide

  268. ϚϧνϦʔδϣϯ
    αʔό
    (BNF-JGU"1*
    αʔό
    (BNF-JGU"1*
    αʔό
    (BNF-JGU"1*
    ڧ͍
    ԶΑΓڧౕ͍ʹ
    ձ͍ʹߦ͚ͳ͍
    ϓϨΠϠʔ͕෼அ͞ΕΔ
    ৚݅ʹΑͬͯ͸ద੾ͳ૬खͱ
    ϚονϝΠΩϯά͕Ͱ͖ͳ͘ͳΔ

    View Slide

  269. άϩʔόϧϚονϯά
    αʔό
    (BNF-JGU"1*
    αʔό
    (BNF-JGU"1*
    αʔό
    (BNF-JGU"1*
    ڧ͍
    ڧ͍Ϡπืू
    Ϧʔδϣϯ୯ҐͷϚονϯάͰਓ਺͕ἧΘͳ͍࣌
    ͦΕ·ͰʹἧͬͨϝϯόʔΛάϧʔϓʹͯ͠

    View Slide

  270. άϩʔόϧϚονϯά
    αʔό
    (BNF-JGU"1*
    αʔό
    (BNF-JGU"1*
    αʔό
    (BNF-JGU"1*
    ڧ͍
    ڧ͍΍ͭ͸
    ͓ΒΜ͔ʔ
    ผͷϦʔδϣϯͷαʔόʹ
    ϚονϯάཁٻΛ౤͛Δ

    View Slide

  271. άϩʔόϧϚονϯά
    αʔό
    (BNF-JGU"1*
    αʔό
    (BNF-JGU"1*
    αʔό
    (BNF-JGU"1*
    ͓ΔͰ
    ڧ͍΍ͭ͸
    ͓ΒΜ͔ʔ
    GameLift͸
    ଞͷϦʔδϣϯ͔ΒདྷͨάϧʔϓͷΩϡʔΠϯάͱ
    ΫϥΠΞϯτʹର͢Δ௨஌ͷ࢓૊ΈΛఏڙ͢Δ

    View Slide