visual studio 2012のdirect3dアプリ開発者向け新機能を知ろう
DESCRIPTION
Visual Studio 2012の新機能、Direct3Dアプリ開発者向け新機能を知ろう。 アセットビューワー、シェーダーデザイナー、デバッグ機能などを紹介。TRANSCRIPT
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が使える
おわり
• 質疑応答