フォト

Google AdSense

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

« 2013年5月 | トップページ | 2013年7月 »

2013.06.30

Windows 8.1とVisual Studio 2013

とりあえず、Surface ProにWindows 8.1とVisual Studio 2013を入れてみました。

早く正式版に昇格して欲しい。

2013.06.27

DirectX 11.2きた

MSDNにDirectX 11.2のドキュメントがきています.

http://msdn.microsoft.com/en-us/library/windows/apps/bg182880.aspx

Windows 8.1に含まれるようでひとまず新機能などはあとで.

とは言ったものの新機能の話として1点,Tiled Resourceのサポートが加わるようです.

2013.06.26

スキニング苦手

わりとスキニングのコード書くの苦手なんですが、FBXのアニメーション対応はやりたいところ。

FBX SDK自体でもアニメーションの計算をやってくれる(ViewSceneサンプルとかそうなってる)のですが、そうなると計算後の頂点とかもらう形になっちゃって毎度頂点バッファのコピーとか発生するのでどう考えても重いのでなんとかしないとなぁ。

とは言え、今の計画ではスキニングは頂点シェーダでやらない予定(Compute Shaderで計算結果を頂点バッファにキャッシングして描画は次のパスでやる)です。

スキニング計算結果を頂点バッファにキャッシングするのは、Shadow mapや通常描画など描画処理が走るたびにスキニング計算するのは無駄なので。

DirectX SDK June 2010入れたくないけど

Windows 8には環境がごちゃごちゃしておかしくなりそうだし、DirectX SDK June 2010入れたくないけどSample見たい時とかどうしようかなぁ。

チュートリアルは、VS 2012版あるんだけど発展的なやつはないんですよね。

2013.06.24

DX11 FBX描画サンプル更新 インスタンシング対応など

ちょっと自分用DX11 FBX描画サンプルのGitHub上のコード更新。

https://github.com/shaderjp/FBXLoader

・インスタンシング描画(F2キーで切り替え)
・DirectXTKデスクトップアプリプロジェクト追加
・DirectXTKでのビットマップフォント描画

インスタンシングは、InputLayoutは変えずに、SV_VertexIDでShaderResoueceView内のインスタンスパラメータにアクセスするBattlefield 3のGDC 2011で紹介されて手法ですね(http://www.slideshare.net/DICEStudio/directx-11-rendering-in-battlefield-3の27ページ目からの話)。だって、InputLayout複数パターン作るのめんどいじゃない。

VS 2012+DX11.1 SDKになって、June 2010時代のDXUTとかは使えなくなったわけし、サンプルも色々と減ったのですがDirectXTK合流できたし、ここから色々とサンプルをあげていくか。

Fbx001
単体描画版

Fbx002
インスタンシング描画版

SIGGRAPH 2013 : Emerging Technologiesのプレビュー動画

SIGGRAPH 2013 : Emerging Technologiesのプレビュー動画が来ましたね。

今年は行ってくるので予習です。

広角が面白い

シグマの8-16mm F4.5-5.6 DC HSMを購入してD7100でちょっと近くのフクダ電子アリーナと千葉城撮ってきたんですが、これはなかなか標準の画角のレンズと違った絵になって面白いですね。さすが人間の視野より広いってだけはあるなぁ。

サッカー場とか近づいてどれだけ全体が入るか試してみたけどかなり近くでも全部が入る。サッカー場は横方向に広いからテストにはよかった。一方、千葉城は縦長な建物なので近づいたら上の方が見えないよなぁ縦長なものは難しいなぁ。

8-16mm F4.5-5.6 DC HSM
https://www.sigma-photo.co.jp/lens/wide/8_16_45_56/

ちょっと雄大な大自然とか出かけたくなるなぁ。

シグマ 8-16mm F4.5-5.6 DC HSM ニコン用 8-16mm F4.5-5.6 DC HSM NA
シグマ 8-16mm F4.5-5.6 DC HSM ニコン用 8-16mm F4.5-5.6 DC HSM NA
シグマ 2010-05-28
売り上げランキング : 5961


Amazonで詳しく見る
by G-Tools

CEDECの話

CEDECで扱うネタはできればソースまで公開したいところですが、その辺は調整しないとなぁ。

仕事アセットと仕事ソースが混じるわけにはいかないのでピュアD3D11の状態で公開のお伺いを立てるという感じですね。

幸いにも個人でMSDNサブスクリプション入っておりますので、プログラム書くことに関しては問題ないとしてアセットかなぁ。

Git

Gitは普段仕事では使っていなかったので、今回のことでGitをよく利用するようになってようやく使い方を理解してきました。

まだ、マージ周りはアレですがひとまず。

近いうちに追加するネタ

FBXのネタに近いうちに追加するネタ。

・インスタンシング対応
・DirectXTKのソース追加

そういや、D3DXやDXUT排除したら画面に文字を描画することすら困るようになったので、DirectXTKのSpriteFontを追加します。

インスタンシング対応は、そのあとID3D11DeviceContext::DrawIndexedInstanced対応への布石です。

2013.06.20

今週

先日、久々に趣味プログラムのソースを公開して勢いが出てきたところ風邪をひいてダウン気味です。

まあ、ピークは昨日だったので徐々によくなっております。

2013.06.17

COLLADAからFBXへの移行

個人的な3Dプログラミング作業では、何年か前はCOLLADAを使っていたわけですが、最近はFBXを使っています。

COLLADAに対応するDCCツールは多いのですが、わりと将来に不安を感じてきたというのが一番の理由ですね。

ここ数ヶ月FBXのSDKやドキュメントを調べつつ、実際に色々なタイプのデータをエクスポートしてみて行けそうだと言うことで使っています。まぁ、あとはUnreal EngineやUnityといったゲームエンジンでもFBXということも大きいですね。

ひとまず、AutodeskのFBXのリリースの間隔やどこを見れば将来のロードマップがわかるかとかFBXまわりがわかってきたのでつきあって行けそうですね。

2013.06.16

GRとEye-Fi Mobi

Mobi

Eye-Fi Mobiを購入しました。

リコーGRにはEye-Fiの選択転送機能があるんですが、その辺との連携はどうなのかテストしてみました。

Eye-Fi Pro X2(従来からあるやつ) 16GB...選択した写真のRAW(DNG)とJPEGを転送
Eye-Fi Mobie 16GB...選択した写真のJPEGのみを転送

とりあえず、iOSデバイスからアップしたりするのはJPEGがメインになるからRAW転送いらない場合はMobiで良さそう。

Eye-Fi Mobi 16GB
Eye-Fi Mobi 16GB
Eye-Fi Japan 2013-06-14
売り上げランキング : 623


Amazonで詳しく見る
by G-Tools

FBX描画サンプルについていくつかのFAQ

そういや、いくつか想定質問と回答。すぐ思いつくネタ。

Q.2つのクラスの関係について質問
A.CFBXLoaderはFBXから頂点データ、マテリアルデータ、テクスチャ情報などを格納するクラスです。このクラスが保持するデータはDirect3D、OpenGLなどの環境に依存しません。内部では、FBX内のノード単位で管理しています。階層構造にも対応してるのでノードの親子関係などもわかるようになっています。

CFBXRenderDX11は、CFBXLoaderで読み取ったデータからDirect3D11の頂点バッファやインデックスバッファ、マテリアルデータのConstant Buffer化やShaderResourceViewなどを作ります。今回は、頂点座標、法線、テクスチャ座標、が1つずつ。CFBXLoaderではマルチUV対応ですが、こっちでは使っていません。対応コードを書けばいけます。

CFBXLoaderは環境非依存なので、CFBXRenderDX11に当たる部分をOpenGLで書くとかすればOpenGLデモ使えると思います。

Q. どんなデータの読み取りができるの?
A.頂点座標、法線、テクスチャ座標に対応。複数のテクスチャ座標があっても読めますが、Direct3D側の頂点バッファ作る部分は1つの座標しか対応していません。

Q. マテリアル対応してるの?
A. してます。LambertとPhong対応です。

Q.TANGENTとBINORMALは?
A.非対応ですが、FBX的には格納できるので拡張すれば行けると思います。

Q.三角形メッシュ以外の対応は?
A.三角形じゃないものは内部でコンバートします。読み込み時が四角形でも、ロード時に三角形化します。

Q.座標系は?
A.DirectX系ですが、内部で他の座標系だった場合変換してます。Y-upですがデータがZ-upの場合は内部で変換します。

Q.描画が効率的でない
A.FBXのノード単位で管理・描画してるので。マテリアルが一緒ならDrawCallをマージすべきですが、そのままのデータ構造で行くことを目指してるので手をつけてないです。

Q.アニメーションやBlendShape対応は?
A.そのうちやりたいけど未対応。

Q.データがおかしいのかソースがおかしいのかジオメトリや階層構造がおかしく描画される
A.該当のデータを下記から手に入るFBX Converterで表示してみてください。このツールは、Autodesk製なのでこれで正しく表示されたらこのサンプルのコードがおかしくて、このツールで正しく出ない場合にはデータがおかしいか作り方が悪いと言うことになると思います。

http://usa.autodesk.com/adsk/servlet/pc/item?siteID=123112&id=10775855

Q.Win 7 + Visual Studio 2010とDirectX SDK June 2010でビルドしたい。
A.対応プロジェクトはこちらで用意しませんが。いくつかの手順を踏むとビルドできると思います。

FBX SDKはFBX SDK 2014.1 VS 2010 を手に入れてください。

http://usa.autodesk.com/adsk/servlet/pc/item?siteID=123112&id=10775847

ソースコード内のDirectXMathを使ってる部分はXNAMathに変えてください。DirectXMathとXNAMathは基本同じなのですが、DirectXMathはnamespace DirectXを使っているのでその記述を削除してください。

Visual Studio 2010上でインクルードやライブラリパスを変更してください。

FBX描画サンプルのコード

Fbxsample

とりあえず、PerfumeデータをFBX化したFBX描画コードを下記にアップしました(FBX以外にもテクスチャのPNG→DDS化もやってます)。ライセンスに関する表記忘れたけど、好き勝手使っていいです。

https://github.com/shaderjp/FBXLoader

かなりやっつけ感があるんですが、ひとまず公開です。とりあえず、FBXを読み込んでジオメトリデータ、マテリアルデータ、テクスチャパスなどを取得する部分というのはヒントにはなると思います。

シェーダとかコンスタントバッファ、InputLayout周りがやっつけなので、こまめに直したり汎用性高めたりする予定です。

それからFBXのデータ自体は色々と入ってますし、メモリ効率もよくはないし、今回のサンプルはDrawコールの最適化もしていないのでそのままゲームとかに使うのはおすすめしてないです。

あと、解説もそのうち。

・実行ファイル
ビルド済み実行ファイルも一応つけてますが、Windows 7とDirectX SDK June 2010環境だと起動しないんじゃないかと思います。Visual Studio 2012インストールするか、「Windows 7 SP1 および Windows Server 2008 R2 SP1 用プラットフォーム更新プログラム」が必要になると思います(コレ入れるとPIX動かなくなるので気をつけて)。すでにIE10をWindows 7で入れてれば適用済みです。

Windows 7 SP1 および Windows Server 2008 R2 SP1 用プラットフォーム更新プログラムが利用可能です。
http://support.microsoft.com/kb/2670838/ja

・ビルドに必要なもの
とりあえず、以下が必須です。

・Visual Studio 2012
・Direct3D11が動く環境(GPU自体はSM 4.0でいいと思います)
・FBX SDK 2014.1(下記からダウンロード。Visual Studio 2012用を落としてください)

http://usa.autodesk.com/adsk/servlet/pc/item?siteID=123112&id=10775847

FBX SDK 2014.1はデフォルトのインストール環境で行けると思いますが、32bit OSの場合インストール先が変わるのでインクルードファイルやライブラリのパス設定を変える必要があるかも。

2013.06.15

D3D11 Perfumeデータ描画

Perfumeが公式サイトの方で、3Dスキャンした3人のobj形式のメッシュデータを公開したのでDirect3D11での描画をやってみた。

Pertex
3人描画

Uv
のっちデータでテクスチャの貼られ方チェック

objファイルのダウンロードはここ
http://wt2.perfume-global.com/polygon.html

元々、D3D11 + FBXローダーを自前で持ってたのですが、FBX 2013 SDKベースだったのでFBX 2014.1対応にしたかったのでそのテストデータが欲しかったので、VS 2012でobjを読み込んでFBXにコンバートして描画してみました。

とりあえず、ローダーの方の修正作業としてやったこと

・Visual Studio 2012対応
・Visual Studio 2012付属のDirectX SDK対応(Direct3D11.1)
・D3DXの排除(数学系はDirectXMathに)
・FBX SDK 2014.1対応

って感じですね。FBX SDK 2014.1対応にした理由としては、Visual Studio 2012に対応していること、WinRTに対応していることがあげられます。

WinRT対応と言うことはつまり、Windows Storeアプリ対応ということですね。ただ、今回のプログラムはまだWinRT環境でのビルドは通せてないのでそれはこのあとやっていきます。

FBX SDK 2014.1
http://usa.autodesk.com/adsk/servlet/pc/item?siteID=123112&id=10775847

結構やっつけ部分やFBX SDK 2013ではいいけど、FBX SDK 2014.1ではレガシーそうな記述があるのでその辺対応したら適当にgithubにでも公開しようかと思います。

2013.06.14

ぼちぼち

CEDECのサイトで表示されるセッション情報を確定させないといけ無いといけないっぽいのでチェックしないと。

そうなるとたぶん、近々セッション情報が出ると思います。

ただ、E3とか見てると世の中の動きの速さに自分がやるべきか悩むよなぁ。

Lightroom 5へ移行

とりあえず、Adobe公式からダウンロード購入。

アップグレード版9600円だったので永続ライセンスの方で。

2013.06.12

Forward++のサンプル

Shader.jpの方に書いたけど、GDC 2013で予告されたサンプルがきました。

AMDがタイルベースライティングのサンプルを公開
http://www.shader.jp/?p=1070

ひとまず、DX11の基本ライティング手法とか影とかのリファレンステクニックとしていいんじゃないかな。

2013.06.09

High Performance Graphics 2013 の論文リスト

High Performance Graphics 2013 の論文リストが公開になってますね、チェック。

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

2013.06.08

千葉城散歩

リコーGRを持って千葉城周辺を撮ってきました(RAW現像はLightroom 4)。

2013.06.07

Computex見てると

1080p解像度のモニタ環境からもっと高解像度モニタを使うというのが当たり前になりそうだなぁ。

放送とゲーム機が案外とインフラの問題で置いて行かれるのかもしれないなぁ。

2013.06.05

HaswellのGPU向けのDX11.1テクニックなどの話

まぁ、結局のところはNVIDIAやAMDのミッドレンジやハイエンドGPUにはかないませんが、なかなかまともにはなってきてるみたいですね。

そんなわけで、早速GRID2での特殊効果についてリリース文がでています。

How GRID 2 and Intel Iris™ Graphics brought me into the fold...
http://software.intel.com/en-us/blogs/2013/06/03/how-grid-2-and-intel-iris-graphics-brought-me-into-the-fold

Adaptive Order-Independent Transparency (AOIT) と Adaptive Volumetric Shadow Maps (AVSM)だそうですね。GDC 2013の頃に言われていたPixelSyncですね。ようするにUAVをPixel Shaderで使う話。

それから、IntelのGPUはCPUとGPUがメモリを共有するのでテクスチャのCPUからの読み書きを高速に行うInstant Accessですね。こうしたテクニックはAMDの場合は、Partially Resident Texturesですね(コードのサンプルはOpenGLだとSparse Texture: http://developer.amd.com/tools-and-sdks/graphics-development/firepro-sdk/)。

Tiling Format for Intel® Iris™ Graphics Extension for Instant Access
http://software.intel.com/en-us/blogs/2013/06/03/tiling-format-for-intel-iris-graphics-extension-for-instant-access

なお、他のHaswell向けのゲーム向けテクニックサンプルは下記にまとまっています。

http://software.intel.com/en-us/tags/42744

2013.06.02

護国寺近辺

なんとなくD7100を持って護国寺と鳩山会館へ。

2013.06.01

Real-time Live!のギタータブレットデバイス

SIGGRAPH 2013のReal-time Live!に出るこのギター型デバイスが面白いなぁ。

http://s2013.siggraph.org/attendees/real-time-live/events/spontaneous-fantasia

このデバイスで映像と音を操作するみたいですね。ANITAR (animation guitar)というらしいです。

ANITAR、ギターの弦を弾く部分がタブレットなんですね。タブレットと言ってもiPadとかではなくWACOMのペンタブレットw。

ネック部分はMIDIの機器で、ヘッド部分はフライトシミュレーターとかのジョイスティックのようですね。

なんていうか、FFの剣と銃が合体したガンブレード的なキメラデバイスw。次のFFの主人公の武器とかにならないかな。

ちなみに、演奏の様子は下の動画の50秒ぐらいから見れます。ペンタブレットのよいところは筆圧検知があるので演奏時の強弱がつけられるのは良いですね。

Improvised Realities / Spontaneous Fantasia from J-Walt on Vimeo.

« 2013年5月 | トップページ | 2013年7月 »