WebKitから新しいブラウザ向け3DグラフィックスAPI WebGPUが発表

WebKitから新しいブラウザ向け3D グラフィックスAPIのWebGPUが発表になっています.

Next-generation 3D Graphics on the Web
https://webkit.org/blog/7380/next-generation-3d-graphics-on-the-web/

プロポーザル
https://webkit.org/wp-content/uploads/webgpu-api-proposal.html

WebGLが,OpenGL ESをベースにしていますが,WebGPUはD3D12,Metal,Vulkanの世代のAPIの設計に近いローレベルAPIになるようですね.

現時点では,AppleがWebKitを主導する分Metalに近い印象ですね.シェーダに関してもMetal Shading Languageのようですが,DXILやSPIR-Vへの対応自体は否定してないようです.

Appleの環境,OS XやiOSなどではMetalベースのアプリケーションが多くあるので,そうしたものをSafariに持って来る上では,WebGLでは都合が悪くなってきているのかもしれませんね.


GDC 2017セッションのFlash Forwardsが公開に

GDC 2017のセッションの講演者が短い時間で自分のセッションを紹介するFlash Forwardsの動画のプレイリストが公開されています.

GDC 2017 Flash Forwards
https://www.youtube.com/playlist?list=PL2e4mYbwSTbaDgJvs9ZtBB3tnSWdglgTd&app=desktop


AMDのGDC 2017発表まとめページ

GPUOpenでAMDが同社が関連するセッションのリストをまとめています.

GDC 2017 Presentations
http://gpuopen.com/gdc-2017-presentations/


HLSLの新旧のコンパイラの出力(DXBC/DXIL)をブラウザで確認できるサイト

HLSLの新旧のコンパイラでDXBC(Shader Model 1.0~5.1までのコンパイラのバイナリ)とDXIL(DirectXShaderCompilerのIL)をブラウザ上で比較できるサイトが公開されています.

http://tryhlsl.azurewebsites.net/

ブラウザ上で確認できるので,ちょっとシェーダを見る際に便利そうですね.


個人的に気になるGDC 2017セッションメモ ver 0.1

2/27~3/3開催のGDC 2017のセッションが結構発表されてきているのですが,個人的に気になってるセッションを抜粋してメモしておきます.現地に行くことができなくてものちのちの資料公開などがあることが多いのでメモですね.

なお,まだ一か月以上ありますし,セッションの全部が公開されていないので定期的にアップデートしてversionを上げていきます.versionを上げる際には,この記事を更新するのではなく新規記事でたてます.

なお,今回はグラフィックスが中心でVRなどほかの分野は今後のバージョンで追加していきます.

グラフィックス

AAA

AAAタイトルのグラフィックス開発事例です.

‘Destiny’ Shader Pipeline

Natalya Tatarchuk氏はUnityに移ったのでどうなるのかわかりませんが,前世代機も含めたマルチプラットフォーム開発でどうやってるか気になるところですね.

http://schedule.gdconf.com/session/destiny-shader-pipeline

Efficient Texture Streaming in ‘Titanfall 2’

テクスチャストリーミングはなかなか自分では獲得できていない技術ですし,PBRになってテクスチャ枚数が増えてる状態でメモリは限られているのでチェックですね.

http://schedule.gdconf.com/session/efficient-texture-streaming-in-titanfall-2

‘Ghost Recon Wildlands’: Terrain Tools and Technology

ちょうどGDC会期中に近い時期に発売ですが,オープンワールドの技術ということでチェックですね.

http://schedule.gdconf.com/session/ghost-recon-wildlands-terrain-tools-and-technology

GPU-Based Run-Time Procedural Placement in ‘Horizon: Zero Dawn’

これも近いうちに出るタイトルですが,Horizon : Zero Dawnって植物とか画面の密度感あるなということでチェックです.

http://schedule.gdconf.com/session/gpu-based-run-time-procedural-placement-in-horizon-zero-dawn

Rendering Low LOD Cars at Lightning Speed in ‘Forza Motorsport 6’

http://schedule.gdconf.com/session/rendering-low-lod-cars-at-lightning-speed-in-forza-motorsport-6

Shoot for the Sky: The Ambitious HDR Time-Lapse Skies of ‘Forza Horizon 3’

http://schedule.gdconf.com/session/shoot-for-the-sky-the-ambitious-hdr-time-lapse-skies-of-forza-horizon-3

Film

ゲームではなく映画や映像系の事例.このタイプのセッションはVaultで公開されないし,撮影禁止が多いので現地で聴く意義が高いですね.

Realtime Rendering for Feature Film: Rogue One a Case Study

ローグワンのケーススタディですが,リアルタイムレンダリングというのが気になりますね.やっぱりイテレーションが大事ですので.たぶん,録画されず現地でしか聴けないセッションな気がします.

http://schedule.gdconf.com/session/realtime-rendering-for-feature-film-rogue-one-a-case-study

グラフィックステクニック

Geometry Caching Optimizations

ゲーム開発でもジオメトリキャッシュは活用されてきていますのでチェック.

http://schedule.gdconf.com/session/geometry-caching-optimizations

PBR Diffuse Lighting for GGX+Smith Microsurfaces

今までSpecularの話が多かったですが,Diffuseということで.

http://schedule.gdconf.com/session/pbr-diffuse-lighting-for-ggxsmith-microsurfaces

Subdiv for the PlayStation®4 (Presented by Sony Interactive Entertainment America)

限定的でもSubdivはそろそろゲームで使用できるのか?というのは気になっています.

http://schedule.gdconf.com/session/subdiv-for-the-playstation4-presented-by-sony-interactive-entertainment-america

Advanced Graphics Tech

Advanced Graphics Techのセッションシリーズは基本的にほとんど出るとは思います.

Direct3D12やVulkanネタの最新技術ですね.

Advanced Graphics Tech: “Async Compute: Deep Dive” & “Raster Ordered Views and Conservative Rasterization”

NVIDIAはPascalからAsync Compute対応しましたが,先行するAMDに比べて効果のほど,最適化のポイントがよくわかってないので気になりますね.あとRaster Ordered Viewsはできることはわかってますが,使えるのかいまいちわからん部分がありますね.活用事例が少なくて.

http://schedule.gdconf.com/session/advanced-graphics-tech-async-compute-deep-dive-raster-ordered-views-and-conservative-rasterization

Advanced Graphics Tech: “Cinematic Depth of Field” & “Advanced Particle Simulation in Compute”

http://schedule.gdconf.com/session/advanced-graphics-tech-cinematic-depth-of-field-advanced-particle-simulation-in-compute

Advanced Graphics Tech: “D3D12 and Vulkan Done Right” & “Wave Programming in D3D12 and Vulkan”

Waveプログラミングは今年のグラフィックスAPIのアップデートの大きなトピックなのでチェックですね.

http://schedule.gdconf.com/session/advanced-graphics-tech-d3d12-and-vulkan-done-right-wave-programming-in-d3d12-and-vulkan

Advanced Graphics Tech: Moving to DirectX 12: Lessons Learned

まだまだDirect3D11で,ってところは多いでしょうし移行中って多いでしょうからチェックですね.

http://schedule.gdconf.com/session/advanced-graphics-tech-moving-to-directx-12-lessons-learned

AMD

Advanced Shader Programming on GCN (Presented by AMD)

このセッションは,Vegaの世代のAMD GPUの話なので次のAMDのアーキテクチャ向けの業務やる人はチェックですね.あと,Wave level operationもHLSL 6.0の話題なのでチェック.

http://schedule.gdconf.com/session/advanced-shader-programming-on-gcn-presented-by-amd

Explicit DirectX 12 Multi GPU Rendering (Presented by AMD)

マルチGPUを相手にする機会はあまりないんですが,個人的にはGPUが分散した状態で1つのアプリケーションのレンダリングをやるということ自体は興味があります.

http://schedule.gdconf.com/session/explicit-directx-12-multi-gpu-rendering-presented-by-amd

Radeon ProRender and Radeon Rays in a Gaming rendering workflow (Presented by AMD)

こうしたトピックはゲーム向けじゃなさそうなのですが”Gaming rendering workflow”ということが気になりますね.

http://schedule.gdconf.com/session/radeon-prorender-and-radeon-rays-in-a-gaming-rendering-workflow-presented-by-amd

Real-Time Finite Element Method (FEM) and TressFX 4.0 (Presented by AMD)

AMDの髪向けライブラリのTressFXとリアルタイム有限要素法のセッション.

http://schedule.gdconf.com/session/real-time-finite-element-method-fem-and-tressfx-40-presented-by-amd

D3D12 & Vulkan: Lessons Learned

入門記事ですがチェックですね.

http://schedule.gdconf.com/session/d3d12-vulkan-lessons-learned

DirectX 12 Case Studies (Presented by NVIDIA)

http://schedule.gdconf.com/session/directx-12-case-studies-presented-by-nvidia

Frostbite

Frositteの関連セッションは数があるので,1つのジャンルでいいかと思います.UnityやUE4と違いFrostbiteはEA DICEが中心に開発して,EAの傘下スタジオで使われるインハウスエンジンなのでインハウスで大規模タイトルをやってるところの励みになりますね.

4K Checkerboard in ‘Battlefield 1’ and ‘Mass Effect Andromeda’

昨年末から家庭用も徐々に4K対応が必要になってきたわけですが,GPUのそのまま解像度を上げる…というのはなかなか大変なのでレンダリングの工夫がいるわけですが,その中でCheckerboardレンダリングは流行っています.

もとは,GDC 2016のRainbow SIx SiegeのこれはFrostbiteでの実装事例ですね.

http://schedule.gdconf.com/session/4k-checkerboard-in-battlefield-1-and-mass-effect-andromeda

FrameGraph: Extensible Rendering Architecture in Frostbite

個人的に注目度高いのですが,FrostGraphというレンダリングの拡張の仕組みの話ですね.グラフベースでレンダリングパイプライン構築できれば…と思う人は多いですよね.

http://schedule.gdconf.com/session/framegraph-extensible-rendering-architecture-in-frostbite

High Dynamic Range Color Grading and Display in Frostbite

昨年からHDR TV(BT.2020)対応始まりましたが,Frostbiteの実装事例ですね.

http://schedule.gdconf.com/session/high-dynamic-range-color-grading-and-display-in-frostbite

Microsoft

D3D12 Performance Tuning and Debugging with PIX and GPU Validation (Presented by Microsoft)

先日,Windows 10向けのPIX出ましたがそのセッションですね.

http://schedule.gdconf.com/session/d3d12-performance-tuning-and-debugging-with-pix-and-gpu-validation-presented-by-microsoft

Game Mode and the Evolution of Cross-Platform UWP Game Development (Presented by Microsoft)

Windows 10のCreator UpdateのGame ModeとUWPの話のようですね.

http://schedule.gdconf.com/session/game-mode-and-the-evolution-of-cross-platform-uwp-game-development-presented-by-microsoft

Windows Holographic Rendering: One SDK to target VR and AR ecosystems (Presented by Microsoft)

Windows Holographicsの開発セッション.VRとARのSDKを1つの統合したもので提供するようですね.GDC 2017の中でも注目度が高いのではないかと思います.

http://schedule.gdconf.com/session/windows-holographic-rendering-one-sdk-to-target-vr-and-ar-ecosystems-presented-by-microsoft

NVIDIA

D3D Async Compute for Physics: Bullets, Bandages, and Blood (Presented by NVIDIA)

ほかのセッションのところでも書いてますが,Pascal世代のGeForcedでのAsync Computeの活用方法はちゃんと聞いておきたいですね.

http://schedule.gdconf.com/session/d3d-async-compute-for-physics-bullets-bandages-and-blood-presented-by-nvidia

NVIDIA Vulkan Update (Presented by NVIDIA)

VK_NVX_device_generated_commandsはAPIの標準になってほしい拡張ですね.

http://schedule.gdconf.com/session/nvidia-vulkan-update-presented-by-nvidia

Photogrammetry for Games: Art, Technology and Pipeline Integration for Amazing Worlds (Presented by NVIDIA)

NVIDIAのセッションというのが驚きましたが,フォトグラメトリーはデータ作成として一般化してきましたね.

http://schedule.gdconf.com/session/photogrammetry-for-games-art-technology-and-pipeline-integration-for-amazing-worlds-presented-by-nvidia

Real-Time Rendering Advances from NVIDIA Research (Presented by NVIDIA)

NVIDIA Reserchの最近の研究トピックが1セッションでいろいろと聞けるのはよさそうですね.

http://schedule.gdconf.com/session/real-time-rendering-advances-from-nvidia-research-presented-by-nvidia

Unity

The Future of Rendering in Unity (Presented by Unity Technologies)

Unityの将来のレンダリングの話ですね.セッションのスピーカーがTBDですが,先日移籍したNatalya Tatarchuk氏でしょうか?

http://schedule.gdconf.com/session/the-future-of-rendering-in-unity-presented-by-unity-technologies

Unreal Engine 4

Stylized Character Creation in UE4 Mobile Games

モバイルでやるということが気になりますね.

http://schedule.gdconf.com/session/stylized-character-creation-in-ue4-mobile-games


DirectXのHLSLの新しいシェーダコンパイラがオープンソースで公開

GDC 2016のDirectX 12 AdvancementsでHLSL 6.0からシェーダコンパイラがLLVM/Clangベースになる話が予告されていましたが,GitHubにソースが公開になりました(Previewリリース).

New DirectX Shader Compiler based on Clang/LLVM now available as Open Source
https://blogs.msdn.microsoft.com/directx/2017/01/23/new-directx-shader-compiler-based-on-clangllvm-now-available-as-open-source/

リポジトリ
https://github.com/Microsoft/DirectXShaderCompiler

今回からシェーダコンパイラがLLVM/Clangになりシェーダの中間言語(DXIL)が策定されました.

DXILを使用するには現状ではWindows 10のInsider Preview Build 15007を入れる必要があるようです.ただし,現状GPUベンダーのドライバが対応していないようなのでWARPで動かす必要があります.

Running Shaders
https://github.com/Microsoft/DirectXShaderCompiler/wiki/Running-Shaders

Wikiを読んでいると今回オープンソースになりましたが,Windows SDKに付属する形にはなるようです.現在はPreviewリリースということだそうです.

https://github.com/Microsoft/DirectXShaderCompiler/wiki

今回のコンパイラからHLSL 6.0にも対応するようでWave operationが使えるようになります.Waveオペレーションは,GPUのスレッド間でのデータのやりとりなどができる仕組み(GPUのWavefront/Warp内での)で従来だとスレッドグループ共有メモリとスレッドグループ同期データをやり取りするような手法の置き換えが可能になることが予想できます.

HLSL 6.0
https://msdn.microsoft.com/en-us/library/windows/desktop/mt733232(v=vs.85).aspx

スライド:DirectX 12 Advancements
https://onedrive.live.com/?cid=A4B88088C01D9E9A&id=A4B88088C01D9E9A%21170&parId=A4B88088C01D9E9A%21106&o=OneUp


PIX on Windowsのチュートリアル動画集

MicrosoftのDirect3D12開発者向けYoutubeアカウントMicrosoft DirectX 12 and Graphics EducationでPIX on Windowsのキャプチャ機能やタブを解説した動画がアップされます.

PIX on Windows
https://www.youtube.com/playlist?list=PLeHvwXyqearWuPPxh6T03iwX-McPG5LkB

まずはこれで使い方を知っていくのがいいのかもしれません.この動画ではYoutubeの字幕機能が使えるので,リスニングがきつい場合には便利です.


PIX on WindowsのBeta版が公開に

MicrosoftがPIX on WindowsのBeta版を公開しています.PIXはDirectX開発者向けのパフォーマンス分析のツールです(デバッグという観点でいうとVisual Studioに付属するグラフィックス診断の方が良い場合もあります).

PIX on Windows (beta) released!
https://blogs.msdn.microsoft.com/directx/2017/01/17/pix-on-windows-beta-released/

PIXというとかつてはWindows版はDirectX SDKに付属していましたが,Direct3D11への対応でPC版はフェードアウトしていましたが,Direct3D12対応になって新バージョンが公開されました.

今回のバージョンはDirect3D12向け,64bit環境向けですがVisual Studioに付属するグラフィックス診断よりもパフォーマンス面の分析が優位なところがありますので使い分けになると思います.現在のところ分析結果からパフォーマンス最適化のヒントを出してくれるDr.PIXに関しては搭載されてないようです.Dr.PIXに関しては将来的に提供される可能性のある記述があるので期待したいところですね.

MicrosoftのDirect3D12のサンプルもこれに合わせてPIXのマーカー対応になっています.

https://github.com/Microsoft/DirectX-Graphics-Samples

PIX on Windowsに関しては近いうちに使い方や機能を紹介した記事を書きたいと思います.


tinyrenderers : シングルヘッダでDirect3D12, Vulkan対応の簡易レンダラ

GitHubでシングルヘッダでDirect3D12, Vulkan対応の簡易レンダラのが公開されています.

https://github.com/chaoticbob/tinyrenderers

機能は高機能ではないですが,導入が楽なのと2つのAPIで同じ機能を実装する学習用などに良いかもしれないですね.


Laugh Engine : Vulkanで実装されたPBRレンダラ

GitHubでVulkanで実装されたPBRレンダラのプロジェクトがありました.

https://github.com/jian-ru/laugh_engine

Windows + Visual Studio環境だとすぐにビルドして試すことができます.