フォト

Google AdSense


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

« 2012年1月 | トップページ | 2012年3月 »

2012.02.29

2月の終わり

昨年までは製品に関わってたので、年度末という感じの忙しさはあまりなかったんですが、今年は違うことをやってるので急に色々と決めることが出てきたりとか忙しくなってきました。

2月はあっという間な感じでしたが、来月も忙しくなりそうです。

Microsoft Researchの3つの研究プロジェクトと動画

ビデオが面白かったので日本版に来る前にメモ。

Microsoft TechForum unveils three research projects (video)
http://www.engadget.com/2012/02/28/microsoft-techforum-unveils-three-research-projects-video/

Microsoft Researchの3つの研究プロジェクトの動画です。

透過型のディスプレイでキーボードと手の間に斜めに設置されてて、ディスプレイの中のものに触れるような感じで操作ができるみたい。

HoloflectorはインタラクティブなARミラーとのこと。自分が映ってそこに映ったCGとインタラクションが取れるみたい。

Illumishareはデスク上に映ったスクリーンを他の人とシェアして同じ画面にインタラクションしながら協調作業できる仕組みかな?お互いのデスクをカメラで撮って投影してるだけのように見えるので実はローテク?

見ててなかなか楽しいですね。

2012.02.28

C++/CXの設計の話

とりあえず、しばらくC++/CXも追う。

Inside the C++/CX Design
http://blogs.msdn.com/b/vcblog/archive/2011/10/20/10228473.aspx

Windows 8とMetro style AppとWinRTそれからDirect3D 11.1

Windows 8では、Metro styleでないとApp Storeで販売が出来ないと言うことで、Metro styleでDirect3D 11.1アプリケーションを作るサンプルとかを探していたのですがようやくサンプルのソースに目を通しました。

Metro style app samples
http://code.msdn.microsoft.com/windowsapps/

Direct3D 11.1のサンプルに関しては検索すると下記。

http://code.msdn.microsoft.com/windowsapps/site/search?query=direct3d&f%5B0%5D.Value=direct3d&f%5B0%5D.Type=SearchText&ac=8

見た感じですと、C++/CLIっぽい感じですが、どうやらC++/CX(C++ Component Extension)というらしいですね。C++/CLIからの発展系ならわりとわかるので移行はスムーズに行けそうです。

それからいくつかのC++のサンプルを見ているとXAMLでGUIを作ってるサンプルもありました。現在のWPFアプリケーションだとC#とかになるわけですが、Windows 8ではC++でもXAMLのGUIのアプリケーションが作れるんですね。これで、C#からネイティブコードのDLLを呼び出したりとかしないですむのはありがたいです。

色々と心配だったのですが、思っていたよりも何とかなりそうで良かったです。C++でXAMLアプリケーションが作れるとDirect3D 11.1のツールが作りやすいのがありがたいです。

さて、これでWindows 8時代にはスムーズにPCとタブレットアプリを作ったり出来そうです。

2012.02.27

GPU Pro 3到着

GPU Pro 3到着。

早速読んでく。

1330351321285.jpg


GPU PRO 3: Advanced Rendering Techniques
GPU PRO 3: Advanced Rendering TechniquesWolfgang Engel

A K Peters/CRC Press 2012-02-14
売り上げランキング : 1300


Amazonで詳しく見る
by G-Tools

AltDevConfのセッション動画が公開に

AltDevConfのセッション動画が公開になってますね。

AltDevConf Session Videos
http://altdevblogaday.com/2012/02/27/altdevconf-session-videos/

とりあえず、気になるグラフィックス系セッションの動画をメモ。

・Real Time Area Lighting – Now and Next
Geometrics社(Enlightenの開発会社)のSam Martin氏のセッション。

・PowerVR Hardware Architecture and Application Performance Guidelines
PowerVRの話。

・Dynamic Global Illumination
Wolfgang Engle氏のセッション。

GPU Pro 3発送

昨日、GPU Pro 3の発送メールが来ました。届くのは今日かな?

公式サイト
http://gpupro3.blogspot.com/

GPU PRO 3: Advanced Rendering Techniques
GPU PRO 3: Advanced Rendering TechniquesWolfgang Engel

A K Peters/CRC Press 2012-02-14
売り上げランキング : 2776


Amazonで詳しく見る
by G-Tools

そろそろいい加減Tile-based Deferred Renderingの解説書きます

そろそろいい加減、Compute ShaderでのTile-based Deferred Renderingの解説を書きます。1月にやるって言ったままでしたが、今度こそやります。

とりあえず、今の時点でオススメなのがIntelのサンプル。このエントリでは、軽くどんな話かだけ書いておく。

Deferred Rendering for Current and Future Rendering Pipelines
http://software.intel.com/en-us/articles/deferred-rendering-for-current-and-future-rendering-pipelines/

このサンプルでは、1024個までのポイントライトを1フレームで処理するのですが、Compute Shaderの神髄みたいなのを味わえるいい感じの実装なのでオススメです。

Compute Shaderでやってることは簡単に言うと、

・16x16のタイルに分割して処理する
→1スレッドグループは16x16x1の256スレッドでやる
→16x16は、G-bufferの16x16ピクセルにあたる
・タイル内の深度値の最手前、最奥を求める・・・ピクセル単位の並列
→Atomicなminとmaxでgruopshared memoryに保存してスレッド同期
→次のFrustumのNearとFarに使う
・タイル単位でまずやることはカリング・・・ライト単位の並列
→16x16が担当する空間のFrustumを作成してポイントライト交差判定
→1024個のライトなら1スレッドあたり4個のライトのカリングをすればおk
・カリングを通過したライトだけ各ピクセルライティング処理をする・・・ピクセル単位並列

この実装がCompute Shaderを学ぶ上で素晴らしいと言われてるのは、

・最手前、最奥算出・・・ピクセル単位並列
・ライトのカリング・・・ライト単位の並列
・ピクセル単位のライティング・・・ピクセル単位のライティング

のように1つのCompute Shader処理で並列の単位の違う処理を上手に混在させてやってること。それから、スレッドグループ共有メモリの使用方法がいい感じで、スレッドグループ同期やAtomicの使い方を学ぶにはいい感じだと言うことですね。

そんなわけで、もうちょっとコードを取り上げながら解説をしたいところ。

2012.02.26

2枚目のEye-Fi Pro X2

以前からEye-Fi Pro X2を使ってたんですが、最近調子が悪いので2枚目購入。

久々にダイレクトモードの設定とかやってましたが、最近はプロビジョニングファイル方式で簡単なんですねぇ。

Eye-Fi Pro X2 8GB EFJ-PR-8G
Eye-Fi Pro X2 8GB EFJ-PR-8G
Eye-Fi Japan 2010-05-20
売り上げランキング : 372


Amazonで詳しく見る
by G-Tools

2012.02.25

GPU Pro 3が発送準備入った

Amazonから注文していたGPU Pro 3が予定より早めにお届けできますよ、メールが来ました。

公式サイト
http://gpupro3.blogspot.com/

すでに発送準備に入ってるので2/27には届きそうです。

GPU PRO 3: Advanced Rendering Techniques
GPU PRO 3: Advanced Rendering TechniquesWolfgang Engel

A K Peters/CRC Press 2012-02-14
売り上げランキング : 2776


Amazonで詳しく見る
by G-Tools

TFS Expressが出る

Visual Studio 11のタイミングで、TFS Expressが出るのか。

http://blogs.msdn.com/b/bharry/archive/2012/02/23/coming-soon-tfs-express.aspx

ソースコード管理や自動ビルド、アジャイルタスクボードなどの機能が無料か~。5ユーザーまでしか使えなかったり制約もあるけど、小規模でやってるような人たちにとってはありがたいかもなぁ。

使うところがあれば試してみたいところ。

Visual Studio 11のベータ版は2/29から

お、Visual Studio 11のベータ版は2/29からダウンロード開始なんですね。

http://www.microsoft.com/visualstudio/en-us/visual-studio-11

とりあえず、Direct3D開発者向けの機能がテクノロジープレビューからどう変わるのか?とか、C++ AMPまわりとか色々と気になるところ。

本当は、Windows 8周りも試したいんだけど試す用PCがちょっとないからなぁ。

2012.02.24

Eurographics 2012の論文は忘れてた...

5月開催でSIGGRAPH 2012より前なのにEurographics 2012の論文は忘れてた...。

http://kesen.realtimerendering.com/eg2012Papers.htm

Eurographicsって全然縁が無かったのでイマイチなじみが無いんですよね。

2012.02.23

Compute Shaderのshared memoryメモ

"Secrets of CryENGINE 3 Graphics Technology"を読んでいたところ、ページ25の"Soft Shadows Approximation"で、"Compute Shader option: fetch all taps to CS shared memory and reuse them for both distance estimation and shadow computation"と言う記載がある。

Secrets of CryENGINE 3 Graphics Technology
http://www.crytek.com/cryengine/presentations/secrets-of-cryengine-3-graphics-technology

そうなんか、テクスチャフェッチした値をshared memoryに格納しておいてキャッシュして使うのがいいのか...。

...ほんとなんかと他の資料を探す。

Direct Compute – Bring GPU Computing to the Mainstream
http://www.nvidia.com/content/GTC/documents/1015_GTC09.pdf

まずは、13ページ

Shared variables are stored in on-chip (SM) memory
Cache to minimize off-chip bandwidth use
Efficient communication with a thread group

なるほどなぁ~。それから32ページ目、

Shared memory → Read gbuffers & depth only once

ほうほう。そんで、35ページにCompute Shaderでのメモリの配置について

・ローカル変数・・・on chip(レジスタ)
・ローカル配列・・・off chip
・shared変数・・・on chip(RAM)
・コンスタントバッファ・・・on chip(キャッシュ)
・シェーダーリソースビュー・・・off chip
・UAV・・・off chip

は置き場所が違うからアクセス速度が違うわけか。シェーダーリソースビューやUAVに比べるとshared変数は置き場所が速いわけか、なるほど。あと、ローカル配列はどうなっとるんじゃ?これは遅くなる?

それから、39ページ、

Shared memory Latency ~100x smaller than global memory

ここで言うグローバルメモリは、コンスタントバッファ、シェーダーリソースビュー、UAV。コンスタントバッファに関しては、 global memoryだけどアクセスは速いので残りの2つ。

これは最適化に独特のアプローチが必要になりそうだ。あと、AMDの場合も同じ事情なのかも調べないとなぁ。

2012.02.22

NVIDIAのGDC 2012のセッションまとめページ

NVIDIAのGDC 2012のセッション一覧ページが公開になっています.

http://developer.nvidia.com/gdc-2012

Direct3D11, PhysX, Tegra 3といったトピックが多いですね.

UnityのDirect3D11対応などの話は気になるところです.

それから、FXAAでおなじみのTimothy Lottes氏のセッションなども。

2012.02.21

#AltDevConfのSam Martin氏の“Real Time Area Lighting – Now and Nextのデモの動画

#AltDevConfのSam Martin氏(Geometrics, Enlightenの会社)の“Real Time Area Lighting – Now and Nextのデモの動画があったのでメモ

セッションの概要
http://altdevblogaday.com/2012/01/28/altdevconf-programming-sam-martin/

エリアライトのリアルタイム調整の動画みたいですね。動画の概要(下記)を見てるとEnlightenの新機能になるみたいですね。拡大してツールのUIの他の部分とかを見てるとRadiosityとかのボタンもあるんですが、これがEnlightenのツールの一部なんでしょうかねぇ。セッション自体を見逃したので気になる。

Supplementary video for my #AltDevConf talk of the same name. It's a video of a work in progress implementation, and will no doubt improve before it ships with Enlighten (www.geomerics.com/enlighten)


A Real-time Radiosity Architectureの動画

EnlithenとFrostbite 2.0のSIGGRAPH 2010のセッションの"A Real-time Radiosity Architecture"のデモ動画らしきものがあったのでメモ。

とりあえず、Enlightenの前処理とかその辺が動画でわかる感じですね。

A Real-time Radiosity Architecture
View more presentations from DICE

2012.02.17

SIGGRAPH 2012のPapers採択者リスト

おっと、いつものようにSIGGRAPH 2012のPapers採択者が公開になってきたか。

http://kesen.realtimerendering.com/sig2012.html

チェックせねば。

インタラクティブレンダリング5つの挑戦

SIGGRAPH 2010のEA DICEのレンダリングアーキテクトJohan Andersson氏のインタラクティブレンダリングの5つの大きなチャレンジと言う話。レンダリングの話やプロダクションコストなどの課題について。

SIGGRAPH 2010とか読み忘れてる資料の復習ですね。

5 Major Challenges in Interactive Rendering
View more presentations from DICE

Windows 8プログラミングの準備をしていこう

Direct3D11.1への以降を考えると今のところWindows 8に行くということなのですが、せっかくなのでタブレット(ARMの)とかの開発にも手を出していきたいよなぁ。

http://msdn.microsoft.com/library/windows/apps/br211386

とりあえず、Windows 7の段階である技術でMetro Style Appに繋がる部分は勉強していかんとなぁ。

2012.02.15

Enlightenとはなにか、Frostbiteでの役割の復習

なんだかんだEnlighten自身がどういったことをやっていて、Frostbite 2.0のレンダリングパイプラインの中で何を担当しているかよく知らなかったので色々と資料を探していたところ、ちょうどSIGGRAPH 2010にGeometricsの方とEA DICEの方のセッションの発表資料があったので読んでみた(2010年の資料なので現在は違うかもしれません)。

A Real Time Radiosity Architecture for Video Games
http://www.geomerics.com/downloads/radiosity_architecture.pdf

まず読んだ瞬間理解したのはEnlightenはリアルタイムラジオシティをやるということ。

で、Battlefield 3の中では、Indirect Lighting(間接光のライティング)を支えてると言うこと、Direct LightingはそもそもTile-based Deferred Lightingですね。

とりあえず、27、28ページの流れから乱暴に要約すると

・CPUでリアルタイムラジオシティ計算(この発表は2010年版。現在のバージョンではCUDAを使うこともできる)をやる(29ページ)
・このときの計算結果は、LightmapとLightprobesの情報に分かれる。(29ページ下の文章)
・Lightprobes情報に関しては、3D Textureに格納(28ページに記載あり)
・Direct Lightのライティング(Tile-based Deferred Lighting. 30ページ)。※ここはEnlightenではない
・ライトマップ処理。これは静的なオブジェクト(具体的には背景)のみに適用(31ページ)。31ページで黒い部分は動的なオブジェクト。動的なオブジェクト部分はステンシルバッファでマスクして処理を飛ばす。
・Lightprobes処理。これは動的オブジェクト。32ページ目。黒い箇所は静的オブジェクト。たぶん、ステンシルバッファのマスクの逆処理で除外できるはず。
・Direct Lightingと合成で終了(33ページ目)

なるほどなぁ~。とりあえず、Enlightenが何をやるものなのかようやく把握。CPUでのラジオシティ箇所に関しては、色々とスライドで書かれてますが、とりあえず今回は割愛。ひとまず、何をやるものでどういう効果があるものなのか、と言うことを理解。

Enlighten Portfolio from Jesper Mortensen on Vimeo.

Unity 3.5の正式版がきた

新機能一覧を見ながらダウンロード待ちです。

http://unity3d.com/unity/whats-new/unity-3.5

Enlighten使用タイトルについての2012年1月版動画

Enlighten使用タイトルについての2012年1月版動画。

・Need for Speed The Run
・Battlefield 3
・Quantum Conundrum(Unreal Engine スクウェア・エニックス)
・Command & Conquer: Generals 2(Frostbite 2.0, Bioware)

って感じかな?

しかし、Quantum ConundrumってUnreal Engineでしかもパブリッシャーがスクウェア・エニックスだったのか。日本語ローカライズお願いしたいなぁ。

“Portal”ライクな一人称視点パズル『Quantum Conundrum』発表!
http://gs.inside-games.jp/news/295/29541.html

Enlighten Portfolio from Jesper Mortensen on Vimeo.

2012.02.14

Unityのカットシーンエディターアセット:Aperture Cutscene Editor

Aperture Cutscene EditorというカットシーンエディターがUntyのアセットストアで販売されていたので購入してみました($40)。

http://u3d.as/content/kurt-loeffler/aperture-cutscene-editor/2F2

公式サイト
http://www.aperturecutscene.com/

フォーラム
http://forum.unity3d.com/threads/106442-Aperture-Cutscene-Editor

いや~、これは良いですね。ツールのイメージは下記のスクリーンショットのページをどうぞ。Unityってタイムラインでカメラとかオブジェクトを制御する仕組みが無いんですが、これを導入するとそれがUnityに組み込まれるのでカメラとか非インタラクティブなオブジェクトの制御がグラフィカルになっていい感じです。パスとかもちゃんとシーンビューに表示されてくれますし。これがあるとアーティストがUnity二感じてる不満を少しは取り払ってくれそうですね。有料ですが、$40ぐらいなら本格的にUnityを使ってる人からすると安いと思います。

スクリーンショット
http://www.aperturecutscene.com/?page_id=50

フォーラムに書かれてる機能一覧

・Intuitive Interface.
・Extremely powerful.
・Animate any number or vector variable on any script/component on an object.
・Trigger almost any function with custom parameters using Events.
・Easily extendable.
・Open source!
・Editor play preview button.
・Easily create animations with Curve Tracks.
・Trigger functions with Events.
・Trigger cutscenes from within other cutscenes.
・Cutscenes can be anything from traditional camera and object animation to scripted gameplay
events to invisible event chain triggering for non-programmers.
・3 types of Curve Track update modes, Action, Direct Variable Access, and Custom Expression.
・Easily add custom Actions and Events with a little programming.

サンプルをちょっと動かしてみた動画を撮ってみました。1080pで撮ってるので解像度変えてフルスクリーン再生するとGUIまわりもわかると思います。

2012.02.13

C++ AMPでCPUとGPUのパフォーマンス比較がしやすいサンプル

C++ AMPのサンプル集を見ていたらC++ AMP: N-Body Simulation Sampleは、CPUのシングルスレッド、マルチスレッド、C++ AMPフラット、C++ AMPのタイル、GPUのマルチデバイスの比較ができるのでいいですね。CPUはちゃんとSSEやSSE4版の実装とかあるというのもいいですね。

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

サンプル集一覧
http://blogs.msdn.com/b/nativeconcurrency/archive/2012/01/30/c-amp-sample-projects-for-download.aspx

C++ AMP: N-Body Simulation Sample(Visual Studio 11のソリューションがついてます)
http://blogs.msdn.com/b/nativeconcurrency/archive/2011/09/20/c-amp-n-body-simulation-sample.aspx

動かしてみてパフォーマンスを見てみたところ、やっぱり、C++ AMPでもCompute Shaderを直接書くときに注意するようにタイルでやるというのが効率的なんですねぇ。それから実際には、AMDならWavefront(NVIDIAならWarp)のことも意識する必要はあるんだろうなぁ。

・・・ということでC++ AMPはちょっとずつ自分環境では試していこう。

Androidのアップデート

昨晩、Galaxy Nexusのバージョンアップの通知が来たのでアップデートしました。

Android 4.0.1から4.0.2になったので機能的な違いを確認しておかないと。

忙しくなりそうな週

今週はなんとなく忙しくなりそうな週です。

2012.02.09

Galaxy NexusでGoogle Chrome for Android

そういや、Galaxy NexusにChrome for Android入れてみました。

いや~、標準ブラウザよりもブックマークの呼び出しとかやりやすいので自分的には合ってる感じです。

あと、インラインフレーム周りの挙動も標準のブラウザとは違うかな?

ただ、標準ブラウザにある「デスクトップ版サイトをリクエスト」(モバイル表示じゃ無くなる)はわりと重宝してるのでつけて欲しいなぁ。

Galaxy Nexusのアップデート再開

おお、アップデート再開か。それとテザリングは3月か。

http://k-tai.impress.co.jp/docs/news/20120208_510639.html

2012.02.07

Windows 8向けのWDDMのプレビュー資料からDirect3D11.1のことを読み解く

たまたまWindows 8の"Windows Display Driver Model Enhancements in Windows Developer Preview"というドキュメントを見つけたので読んでました。

Windows Display Driver Model Enhancements in Windows Developer Preview
http://msdn.microsoft.com/en-us/library/windows/hardware/br259098.aspx

Direct3D 11.1 Features
http://msdn.microsoft.com/en-us/library/windows/desktop/hh404562(v=vs.85).aspx

Direct3D11.1 GPUの必須要件とかハードウェア仕様みたいなのが記載されていたのですが、以下の点がちょっと解決。

・Direct3D11.1のCompute Shaderで使えるUAVsの数...64個ぐらいは使わせてくれそう
・Logical Operationsの話
・Windows 8にはStereo 3Dモードがある
・全シェーダステージでUAVsが使えるけど、デバッグとかで使ってみたらという提案。

などなど。UAVsをデバッグで使ってみるというのは、ピクセルシェーダや頂点シェーダなどのシェーダで計算のエラーなどが合った場合にどこのフラグメント or 頂点で起きてるか記録したり、途中計算の結果を入れておく、などが出来そうですね。

それから、Radeon HD 7970のMMUみたいなのは必須機能なのかというのも気になってたんですが、それが必須だったりPRTまわりの機能に関しては記載がありませんでした。どういう形で実装されるんだろうなぁ...。

2012.02.06

Real-Time Micropolygon関連資料メモ

Micropolygonを使ったレンダリングの流れを前々から知りたかったのでSIGGRAPHのコース資料のメモ。

SIGGRAPH '09: A Real-time Micropolygon Rendering Pipeline
http://s09.idav.ucdavis.edu/talks/08_kayvonf_micropolygons.pdf

SIGGRAPH '10: Evolving the Direct3D Pipeline'for Real-time Micropolygon Rendering
http://bps10.idav.ucdavis.edu/talks/10-fatahalian_MicropolygonsRealTime_BPS_SIGGRAPH2010.pdf

今のネタの合間に読んでいく。

Geforce LAN 6の時のBattlefield 3のスライド他

おお、Geforce LAN 6の時のBattlefield 3のスライドがあがってるのか、全然チェックしてなかった。

以前見た動画
http://masafumi.cocolog-nifty.com/masafumis_diary/2011/10/dicepcbattlefie.html

今までBattlefield 3のスライドって色々とあったけど、おそらくこれが最終製品のレンダリングに関するモノなんだよな。

全部入りなんだけど、65枚目のシーンを作るために18のレンダリング処理をやってるんだけど、それが1手順1手順変化を見ながら確認できるのがよいですね。

Shiny PC Graphics in Battlefield 3
View more presentations from DICE

それからもう1つ12月のスライド。WebとかBattlelogとかその辺のスライド。今やこうした連動は当たり前だけど、やっぱり売れたソフトで規模が違うので気になるところです。

気になる技術書

ボーンデジタルの今後刊行予定の書籍が色々と気になるなぁ。

「テクニカルアーティストスタートキット」はOLMの方々が書かれていて、「Game Development Essentials QA & Test(仮)」は日本語だとあんまり無いタイプだしねぇ。

テクニカルアーティストスタートキット
http://borndigital.co.jp/book/detail.php?id=235

Game Development Essentials QA & Test(仮)
http://borndigital.co.jp/book/detail.php?id=233

2012.02.05

出かける土日

この土日は2日とも飲みに行くことになっちゃってるなぁ。

2012.02.02

UDKのFPS、TPS以外のゲームジャンルのスターターキット

UDNにFPS、TPS以外のスターターキットのサンプルとドキュメントの日本語版がきてますね。

横スクロール
http://udn.epicgames.com/Three/DevelopmentKitGemsPlatformerStarterKitJP.html

レースゲーム
http://udn.epicgames.com/Three/DevelopmentKitGemsRacerStarterKitJP.html

これはちょっと見ておきたいですね。

#AltDevBlogADayのカンファレンスAltDevConf 2012

#AltDevBlogADayがカンファレンスAltDevConf 2012をやるみたいですね。

スケジュール
http://altdevblogaday.com/2012/02/02/altdevconf-schedule/

AltDevConf 2012
http://www.altdevconf.org/

2/11と2/12にやるみたい(JSTで日本時間もわかるのはありがたいです)ですが、なかなか気になるセッションがありますね。

グラフィックス関連だと、

・Accelerating Game Physics for Heterogeneous CPUs & GPUs by Erwin Coumans
・Real Time Area Lighting – Now and Next by Sam Martin
・PowerVR Hardware Architecture and Application Performance Guidelines by Gordon MacLauchlan
・Dynamic Global Illumination by Wolfgang Engel and Tim Martin

は気になります。講演者も豪華です。

他にもAIのセッションも気になりますし、スクラムなんかも。

ちょっと早起きして見たいところです。

« 2012年1月 | トップページ | 2012年3月 »