Visual Studio 2012の
Direct3Dアプリ開発者向け
      新機能を知ろう
            @masafumi
       http://www.shader.jp
はじめに
• 8月15日にVisual Studio 2012のRTM版がでました(&Windows 8)
• 個人でMSDN入ってたので、 Visual Studio 2012をインストールし
  ていろいろと使ってます

• Visual Studio 2012はβ版とかRC版とかのころからいろいろと試し
  てますが、ゲーム開発(特にDirect3Dを使った)向けのいろいろな
  新機能が入ってきたので紹介していきます
• 特に今回はDirect3D向けにいろいろと面白機能があるので紹介
私のこと @masafumi
• ゲーム会社でグラフィックスに関するR&Dしてます
  • スライドアップしてもネットでは会社のことは触れないでね
     • 寛容な会社だけどね


• Shader.jpというサイトをやってます
  • http://www.shader.jp/

• Twitterはそのまんま@masafumiです
• スライドは終わったら公開します
  • …が本日はスライドよりもデモの方を中心に
今回の話のターゲット
• グラフィックスプログラマ
 • シェーダ開発
 • Direct3D使ったプログラムの分析
• テクニカルアーティスト
 • グラフィカルなマテリアルエディター
• グラフィックスツールプログラマ
 • ビューワーとかいろいろと
• タブレット・スマホ向けゲーム開発者
 • Windows RTやWindows Phone 8のゲーム開発のためのツール
Windows 8の話題
• 10/26リリースもうすぐ出ます(この発表は10/6)
 • RTM版はすでに使える
• Windows Storeというアップストアがあります
 • Windows Store
 • Windows RTやWindows Phoneも対応
• アプリをリリースする場合は.NETとは違う新規のフレームワー
  ク
 • Windows Store アプリ(Metroとか呼ばれてたの)
 • WinRT
 • C++ならC++/CX
Visual Studio 2012
• あんまり知らない人はいないと思いますがMicrtosoftの統合開発環境
• Windows 8からWindowsにアプリストアが登場
  • Windows 8(PC)、Windows RT(タブレット)、Windows Phone 8
     • ハイエンドなPCゲームだけじゃない
  • Windows ストアアプリ
     • Mac OS X, iOS(App Store)とかAndroid(Google Play)
  • 作って売れる

• 無料版はExpress Editionだけど今日の話題の機能使えないのでProfessional
  Edition以上の話題
• Windows 8の話ばかりしてるけど今日の話の機能はWindows 7でも動きます
  • MSDN入ってる方は試してみてください
Direct3D 11.1
• DirectXの3DグラフィックスAPIのバージョン11.1
• 11.1はWindows 8、Windows RT、Windows Phone 8用
  • ARM版がある
  • デバイスによってGPU性能が違うので機能を使い分ける
  • 基本的なAPIは同じなので移植しやすい
    • ビルドターゲットを変えることで対応できる
    • ライブラリは、x86, x64, ARMと幅広い
• サポートするGPUの世代は幅広い
  • 従来のDirectX 9世代のものから最新のデスクトップPC向けまで
    • シェーダはターゲットに合わせて作る必要がある
    • C++のAPIは同じ
VS 2012のグラフィックス開発者向け機
能
• アセットビューワー
  • モデルビューワー
  • テクスチャビューワー
• シェーダ開発ツール
  • HLSLエディタ
  • シェーダデザイナー
• GPU診断機能… Graphics Diagnostics
  • GPU処理解析機能
  • シェーダデバッガ
アセットビューワー
• モデルビューワー
 • 一般的な3Dモデル形式の閲覧
• テクスチャビューワー
 • 一般的な画像ファイルフォーマットの閲覧
 • DDS対応
  • Floating pointテクスチャ対応
 • 簡単なフィルタ処理や編集
モデルビューワー
• Obj, FBX, Collada
テクスチャビューワー
• 一般的な画像フォーマットとDDS
• コンバーター機能もある
シェーダー開発ツール
• シェーダーエディター
 • HLSLのエディター
   • コンパイル対応
• シェーダーデザイナー
 • グラフィカルなシェーダエディター
   • ゲームエンジンのマテリアルエディターとかに近い
   • HLSLエクスポートあり
HLSLエディター
• シェーダーコードの編集
HLSLエディター
• HLSLの変数やキーワードの色が変わる
• シェーダーごとにfxcの設定された状態でファイルが作成でき、
  コンパイルまでやってくれる
• エラーがあったときはVisual Studio 2012の出力上にエラーがだ
  せる
• Intellisenseはない
• ヘッダーのインクルードは対応
シェーダデザイナー
• グラフィカルなシェーダエディター
シェーダデザイナー
• グラフィカルなインターフェイスでシェーダを開発
• HLSLやC++のヘッダーファイルへのエクスポートができる
 • HLSLからグラフィカルにするのは無理
 • 頂点シェーダとピクセルシェーダがセットで吐き出される
• ハイエンド向けではない
 • DX11のSM 5.0のフル機能を使ったテクニックを作るのは厳しい
 • ポストエフェクトなども厳しい
 • Windows RT(タブレット)とかWindows Phone 8用のシェーダ開発など
   にちょうどいいんじゃないか?
GPU診断機能
• GPU処理解析機能
 • フレームキャプチャ機能
• シェーダーデバッガ
 • C/C++のコードのようにHLSLやマイクロコードデバッグができる
 • Compute Shader以外に対応
   • Compute Shaderはほかのシェーダよりもフックが難しい
GPU処理解析機能
GPU処理解析機能
• フレームキャプチャ
 •   D3DのAPIコールの履歴がわかる
 •   ピクセル履歴
 •   DrawCallの詳細
 •   ステートのチェック
 •   バッファやシェーダーリソースのチェック
• できないこと
 • 負荷分析
シェーダーデバッガ
シェーダーデバッガ
• シェーダのデバッグがVisual Studio 2012上でできる
 • C++のコードのようにステップ実行やウォッチもOK
 • HLSLとマイクロコード
• 制限
 • Compute Shaderはできない
 • 変数の書き換え
 • クロス開発
ドキュメント
• シェーダデザイナー
 • http://msdn.microsoft.com/ja-jp/library/vstudio/hh315733.aspx
• グラフィックス診断
 • http://msdn.microsoft.com/ja-jp/library/hh315751.aspx
デモ
• 使ってみよう

• シェーダーデザイナーデモ
• GPU診断機能のデモ
• シェーダデバッガのデモ

• せっかくなのでWindowsストアアプリで。
まとめ
• 使えんのコレ?
 • シェーダデザイナー
   • ハイエンドよりもローエンドタイトルには便利かも?
     • Windows RT(タブレット)とかWindows Phone 8
     • DGSLで吐き出したHLSLの読み込みの問題
 • シェーダデバッガは便利
   • Compute Shader何とかしてほしいけども
 • HLSLを手で書く人には全体的に便利
• 強力な開発環境
 • PCゲーム作ることはおいておいて…
   • スマホやタブレットの3Dゲーム開発する環境としては強力
     • なじみのDirect3Dが使える
おわり
• 質疑応答

Visual Studio 2012のDirect3Dアプリ開発者向け新機能を知ろう