フォト

Google AdSense

  • AdSense
無料ブログはココログ

« 2014年11月 | トップページ | 2015年1月 »

2014.12.31

良いお年を2014

なんとか部屋の大掃除なども片付き無事に年が越せそうです。

良いお年を。

2014.12.29

4Kモニタ導入

4Kモニタを買いました。

DellのP2715Qという非光沢IPSなやつですね。

最初PCが認識しなくて泣きそうになりましたが、PCに接続して起動してから電源ケーブルさして電源投入したら認識されました。

さすが27インチでもドットバイドット文字とかアイコン小さすぎてきついですね。そんなわけで、高DPI 150%の状態で使用開始してみたんですが、これで結構快適になりました。それでもVisual Studioなどを使ってる場合には縦幅広くなったのでよいですね。

2014.12.26

Global Game Jam 2015

来年の1/23 - 1/25にGlobal Game Jam 2015がありますが、とある会社で会場提供あるそうです。

BANDAI NAMCO Global Game Jam
http://globalgamejam.org/2015/jam-sites/bandai-namco-global-game-jam

申し込みサイト
http://ggj2015-bns.peatix.com/view

なかなか中入る機会無いとは思いますので、ぜひ。

本当に最適化されてるのはどれか?

今やみんな使ってるGGXの最適化してみた話ですが、

Optimizing GGX Shaders with dot(L,H)
http://www.filmicworlds.com/2014/04/21/optimizing-ggx-shaders-with-dotlh/

Updateの際に、一部の計算が事前にテクスチャの中にテーブルとしてデータが格納されて計算が省かれているわけですが、昨今はテクスチャフェッチよりも計算した方がよかったりするケースもあるということでどれが結局一番最適化されてるか気になるところです。

Optimizing GGX: Update
http://www.filmicworlds.com/2014/04/29/optimizing-ggx-update/

そんなわけで、昨今ならとりあえずGCNなAMDのGPUで最適化度が測れれば実用上よさそうな気がするので、GPU PerfStudio V3.1のGPU ShaderAnalyzer for GCNを使って測るのがよいんでしょうね。

GPU PerfStudio V3.1
http://developer.amd.com/tools-and-sdks/graphics-development/gpu-perfstudio/

そんなわけで、冬休み中調べてみたいところですね(書いてる記事に関連するので)。

2014.12.25

HLSLでsRGB変換する際の近似の話

最近の話ではないですが、HLSLでsRGB変換する際の近似の話。

sRGB Approximations for HLSL
http://chilliant.blogspot.jp/2012/08/srgb-approximations-for-hlsl.html

一応、DX11の場合は、DXGI_FORMATでSRGBついてればSamplerとかいろいろとやってくれるんですが、自前でやるような場合のメモですね。

http://msdn.microsoft.com/ja-jp/library/bb173059%28v=vs.85%29.aspx

仕事納めまであと少し

とりあえず、明日は仕事らしい仕事はないのですが年内の仕事は26で終了です。

年末はのんびりと...と思ったんですが20ページ程度の執筆の話がきたので書かないといけませんね。

その話についてはそのうち明らかになるとは思うのですが、まぁ、脱稿しないことには。

2014.12.23

2014年もあとわずか

最近、イベント対応で休日出勤してましたので四連休にしていたのですが、明日から今年の仕事も最後ですなぁ。

今年はあまりアウトプットが無く(本の執筆をやったりしましたが)、考えることが多い年でした。

2014.12.17

今年はDirectX12の話題が入る?

毎年GDCでやってる"Advanced Visual Effects with DirectX 11"が"Advanced Visual Effects with DirectX 11 & 12"ということで、12も入ってますね。

http://www.gdconf.com/conference/tutorials.html

来年は、AAAのPCタイトルはDirectX12移行の年になるのかな?

2014.12.15

無料だったので

Kindleで無料だったので読んでみよう。


2014.12.12

Visual Studio 2013のグラフィックス分析Unityで作ったアプリに使う

そんなわけで、DirectX Mesh最適化の話を一段落でVisual Studio 2013のグラフィックス分析機能をUnityで作ったアプリに適用してみます。

Unityで作ったアプリでもグラフィックス診断を起動するためにはVisual Studioのソリューションにして実行しないと行けないのですが、Windows Storeアプリだとそれができるのでキャプチャしてみました。

UnityのサンプルをWindows Storeアプリ化してキャプチャしてみましたが、行けました。

Shindan001

もちろん負荷分析も動作。

Shindan002

Unity 5だと便利なフレームプロファイラ付いてるんですが、DX11レベルでの実行状況を見るにはいいかもしれませんね。

2014.12.11

続・DirectXMeshの最適化のパフォーマンスとVisual Studio 2013の分析機能の話

1つ前のエントリ
http://masafumi.cocolog-nifty.com/masafumis_diary/2014/12/directx-mesh-29.html

1つ前のエントリを書いた後に、ちょっと処理負荷に関して、Baselineの時間がレンダリング時間で良いのかちょっと自信がなくなったので、あとあと心配になって調べてみたんですが、下記にVisual Studio Graphics Analyzerのドキュメントがありました。

http://msdn.microsoft.com/en-us/library/dn642453.aspx

The second left-most column in the Summary Table displays your app's baseline rendering time—that is, the length of time it takes for your app's default rendering to complete the draw call. The remaining columns show the relative performance of each rendering variant as a percentage of the Baseline so that it's easier to see whether performance is improved. Percentages larger than 100 percent took longer than the Baseline—that is, performance went down—and percentages smaller than 100 percent took less time—performance went up.

とあるので、レンダリング時間でよさそうです。

さて、再度キャプチャしてみました。

Vs001
最適化なし。クリックする大きなサイズになります

Vs002
最適化あり。クリックする大きなサイズになります

結果は、最適化ありがパフォーマンス向上しています。

最適化なし
Model00 59.04μs
Model01 65.78μs
Model02 65.44μs

最適化あり
Model00 58.07μs
Model01 63.48μs
Model02 63.18μs

さて、同じ結果を載せるだけでは芸がないので、Visual Studio Graphics Analyzerのフレーム分析のDetailを見てみます。

前回の結果は、Summaryを見ていましたが、Baseline。Detail Baselineの横に「%表示」の数字が書かれていますが、今回はμsですね。

ここでは、Visual StudioがDraw Callに対して様々なシチュエーションでかかる処理負荷を提示してくれています。

たとえば、Model00は最適化ありで58.07μsですが、2x MSAAというところでは、63.56μsになっています。これは、2x MSAAの時にはレンダリング時間がこの時間に変わるという意味です。

その他にBC Texture Compressionを見てみると55.26μsになっています。これは、今のモデルのテクスチャをBC圧縮書けると約3μsレンダリング時間が縮むと知らせてくれています。Half Texture Dimensionsはテクスチャの解像度半分にした場合ですね。

時間が下がる項目を見ながらアセットのリダクションが有効なのかを知ることができます。

ちなみに、Summaryで表示される「%表示」はBaselineからの負荷の変化率ですね。

そんなわけで、Visual Studio 2013 ProfessinalのVisual Studio Graphics AnalyzerはWindows 8.1ではなかなか便利なツールですね。

そういえば、この機能はExpress Editionでは使えないのが残念でしたがVisual Studio Community 2013の登場で無料で使えますのでおススメです。

http://www.microsoft.com/ja-jp/dev/products/community.aspx

DirectX Meshのメッシュ最適化やってみた

Opti />

DirectXMeshのメッシュ最適化機能を試してみたくて、以前書いたFBX LoaderにDirectXMeshの最適化を入れてみました。最適化のアルゴリズムがどういうものかはちょっと資料がみつかってないのですが、通常はGPUの頂点キャッシュなどにやさしい並びに頂点やインデックスを並べることが多いと思います。

DirectXMesh
https://directxmesh.codeplex.com/

使い方
https://directxmesh.codeplex.com/wikipage?title=OptimizeVertices&referringTitle=Mesh+optimization

ソース
https://github.com/shaderjp/FBXLoader2015forDX11

とりあえず、無事に表示できたわけですが本当にパフォーマンス向上してるの?ということで、Visual Studio 2013のグラフィックス診断のVisual Studio Graphics Anlyzerで計測をしてみました。実際にキャプチャしたのは上のスクリーンショットの状態です。それぞれのメッシュは、10,000頂点で、30,000インデックスあります。

下の例では、最適化なしとありを並べています。Windows 8.1とVisual Studio 2013 Pro(Community Editionでも行けると思います)だとこういう計測ができます。Windows 7だと計測できないのは残念ですね。

最適化無し
Model00 59.56 μs
Model01 68.63 μs
Model02 65.81 μs

最適化あり
Model00 59.15 μs
Model01 64.52 μs
Model02 63.48 μs

PCスペック
Intel Xeon W3530 2.80GHz 4コア 8スレッド
GPU Radeon HD 7950 3GB

Perf
クリックすると大きなサイズになります

結果としては、わずかにパフォーマンスが向上しているようです。最適化かけて遅かったらどうしよう...と思ったのですが一応パフォーマンス向上が見えてます。

このデータだとシンプルすぎてあまり差が出ないので再度別なデータで試してみたいですね。

2014.12.10

GPU ShaderAnalyzer for GCN

GPU PerfStudio v3.1とGPU ShaderAnalyzer for GCN
http://www.shader.jp/?p=1401

GPU ShaderAnalyzerがリニューアルしてGCNなGPU向けのシェーダの各種分析ができるようになったみたいですね。

自宅はRadeon HD 7950なので使ってみようかな。

2014.12.04

Kindle版がでました

そういや「Unityゲーム開発 オンライン3Dアクションゲームの作り方」のKindle版が出たそうです。


2014.12.03

頂点最適化を高速化したい

GPUのキャッシュ効率をよくするために頂点バッファやインデックスバッファの並びを変えるというようなことは良くやると思うのですが、そういった際にAMD TootleとかDirectXMeshを使うと言うことはよくやるとは思うのですが、CPUで実装されたソリューションでは時には遅いと言うこともありますが、このテのソリューションでGPU実装を試みた例ってあるんですかねぇ。

テクスチャなんかだとBC6HやBC7の圧縮とかはCPU厳しいのでGPUケースがありますが、頂点の最適化に関しては無いもんですかねぇ。

AMD Tootle
http://developer.amd.com/tools-and-sdks/archive/legacy-cpu-gpu-tools/amd-tootle/

DirectXMesh
https://directxmesh.codeplex.com/

« 2014年11月 | トップページ | 2015年1月 »