サブタイトル:「mer2のマイノリティ・レポート(笑)」 --- 最近忍者ブログの仕様が変わったようで、一部の画像が見えなくなってますが、画像のURLコピペで見られます。(どうしよう困ったな) --- ご用件など、ございましたらtwitterまでどうぞ。
そのままじゃビルドできなかったz800SDKのサンプル「Sample_StereoVision」ですが、どうにかしたらどうにかなってしまいました。
これはちょっと凄いです。感激です。
立体視できてしまいます。z800ユーザーな方は実行して泣いて下さい。但し実行は自己責任で。まあどうぞ。
操作方法:
F4 - ステレオon/off
F5 - 左右入れ替え
F6,F7 - Separation増減
F9 - z800の明るさ調整
同梱のソースファイルは、下記の「EMADevice_LIB.lib」の部分だけ変更すれば「多分」そのままビルドオーケーだと思います。
どうにかした手順:
z800SDKに入っている「EnhancedMesh」は古いバージョンな点に不安が有るので、そのまんまビルドできたDirectX SDK (November 2007)の「EnhancedMesh」を使う事にしました。
他のフォルダとの依存関係が有るとややこしいので、まず「EnhancedMesh」を単独でビルドできるようにしてみます。
・ \Microsoft DirectX SDK (November 2007)\Samples\C++\Direct3D\
の「EnhancedMesh」フォルダを適当な場所にコピー。
・ EnhancedMesh_2005.slnでVisual C++を立ち上げてみる。
ソリューションエクスローラのプロジェクト「EnhancedMesh」を広げてみると、「DXUT」なソースファイルが必要。
・ \Microsoft DirectX SDK (November 2007)\Samples\C++
から「DXUT」フォルダを作業中の「EnhancedMesh」フォルダ内にそのままコピー。
・ プロジェクト「EnhancedMesh」を右クリック(以後は「プロジェクトを右クリック」に略) -> プロパティ(以後は「プロパティ」で略)の「構成プロパティ -> C/C++ -> 全般」の「追加のインクルードディレクトリ」を
DXUT\Core;DXUT\Optional
に変更。
・ コピーした「DXUT」フォルダ内の必要なファイルをプロジェクトに追加する。
最初から登録されている「DXUT」はフォルダの配置が変わっているので使えない。「DXUT0」とかにリネームして、これを参考にしながらファイルを追加するといいみたい。
・ 「プロジェクトを右クリック -> 追加 -> 新しいフィルタ」で「DXUT」作成、
・ 「「DXUT」右クリック -> 追加 -> 既存の項目」で必要なファイルを追加。
Ctrlキー併用でまとめて選べるので少し楽。
・ 追加できたら、最初から有った「DXUT0」は「右クリック -> 削除」で削除。
・ 「プロパティ -> 構成プロパティ -> C/C++ -> プリコンパイル済みヘッダー」の「プリコンパイル済みヘッダー作成/使用」を「プリコンパイル済みヘッダーを作成する (/Yc)」に変更。
・ 「EnhancedMesh.rc」の
IDI_MAIN_ICON ICON "..\\..\\dxut\\optional\\directx.ico"
を
IDI_MAIN_ICON ICON "dxut\\optional\\directx.ico"
に変更。
・ \Microsoft DirectX SDK (November 2007)\Samples\Media
の「Dwarf」を作業中の「EnhancedMesh」フォルダにコピー。
これで現在作業中の「EnhancedMesh」フォルダの内容のみでビルドできます。
・ ビルド可能を確認したら、「EnhancedMesh.cpp」にz800用の追加部分をz800SDKの「EnhancedMesh.cpp」を参考にして加える。
微妙にソースが変わっていますが、変更ポイントは同じです。
ModifyDeviceSettings()の最後のあたり、
pDeviceSettings->pp.PresentationInterval = 1 ;
は
pDeviceSettings->d3d9.pp.PresentationInterval = 1 ;
に直します。
・ 「プロパティ -> 構成プロパティ -> リンカ -> 入力」の「追加の依存ファイル」にz800SDKのサンプルソースからビルドしたEMADevice_LIB.libを追加する。
例えば、
D:\EMA_SDK_2_2\Source\EMADevice\EMADevice_LIB\Release\EMADevice_LIB.lib
ライブラリパスを通してあるから「EMADevice_LIB.lib」だけでいけそうなものですが、何故かそれでは通ってくれません。
以上で「いちおう」z800対応な「EnhancedMesh.exe」が出来上がります。
実行してみると、左側の「RIGHT」「LEFT」の文字がちゃんと右目と左目に分離しています。だけど肝心の3Dオブジェクトは立体になりません。おかしいな。
実は「DXUT」フォルダ内のソースにも変更が必要なのでした。z800SDKのサンプルでは「DXUTmisc.cpp」に追記されていますが、DirectX SDK (November 2007)ではファイル構成が変わっていて、変更対象のCModelViewerCamera::FrameMove()は「DXUTcamera.cpp」に移動しています。
という訳で「DXUTcamera.cpp」を修正してビルド。さあどうだ。
3Dオブジェクトも立体視できています!だけどマウスでドラッグした時しか立体視が発動していません。うむむ。
なにげにCModelViewerCamera::FrameMove()の最初に有る
if( !m_bDragSinceLastUpdate && 0 == m_cKeysDown )
return;
をコメントアウトしてみたら、完璧になりました。完璧だよ。本当だよ。
この要領で他のDirectX SDKサンプルも立体視できてしまうのでしょうか。ああ大変だ。
これはちょっと凄いです。感激です。
nvidiaステレオドライバーじゃ立体視不可なグラフィックが
ステレオドライバーを使わずに
ウィンドウ表示でも(もちろんフルスクリーンでも)
ステレオドライバーを使わずに
ウィンドウ表示でも(もちろんフルスクリーンでも)
立体視できてしまいます。z800ユーザーな方は実行して泣いて下さい。但し実行は自己責任で。まあどうぞ。
あらちょっと手違いが。「EnhancedMesh.exe」を実行してエラーが出るようだったら、「EnhancedMesh.exe」を隣の「EnhancedMesh」フォルダにコピーして、その中で実行してみて下さい。ごめんなさいへこへこ。
操作方法:
F4 - ステレオon/off
F5 - 左右入れ替え
F6,F7 - Separation増減
F9 - z800の明るさ調整
同梱のソースファイルは、下記の「EMADevice_LIB.lib」の部分だけ変更すれば「多分」そのままビルドオーケーだと思います。
どうにかした手順:
z800SDKに入っている「EnhancedMesh」は古いバージョンな点に不安が有るので、そのまんまビルドできたDirectX SDK (November 2007)の「EnhancedMesh」を使う事にしました。
他のフォルダとの依存関係が有るとややこしいので、まず「EnhancedMesh」を単独でビルドできるようにしてみます。
・ \Microsoft DirectX SDK (November 2007)\Samples\C++\Direct3D\
の「EnhancedMesh」フォルダを適当な場所にコピー。
・ EnhancedMesh_2005.slnでVisual C++を立ち上げてみる。
ソリューションエクスローラのプロジェクト「EnhancedMesh」を広げてみると、「DXUT」なソースファイルが必要。
・ \Microsoft DirectX SDK (November 2007)\Samples\C++
から「DXUT」フォルダを作業中の「EnhancedMesh」フォルダ内にそのままコピー。
・ プロジェクト「EnhancedMesh」を右クリック(以後は「プロジェクトを右クリック」に略) -> プロパティ(以後は「プロパティ」で略)の「構成プロパティ -> C/C++ -> 全般」の「追加のインクルードディレクトリ」を
DXUT\Core;DXUT\Optional
に変更。
・ コピーした「DXUT」フォルダ内の必要なファイルをプロジェクトに追加する。
最初から登録されている「DXUT」はフォルダの配置が変わっているので使えない。「DXUT0」とかにリネームして、これを参考にしながらファイルを追加するといいみたい。
・ 「プロジェクトを右クリック -> 追加 -> 新しいフィルタ」で「DXUT」作成、
・ 「「DXUT」右クリック -> 追加 -> 既存の項目」で必要なファイルを追加。
Ctrlキー併用でまとめて選べるので少し楽。
・ 追加できたら、最初から有った「DXUT0」は「右クリック -> 削除」で削除。
・ 「プロパティ -> 構成プロパティ -> C/C++ -> プリコンパイル済みヘッダー」の「プリコンパイル済みヘッダー作成/使用」を「プリコンパイル済みヘッダーを作成する (/Yc)」に変更。
・ 「EnhancedMesh.rc」の
IDI_MAIN_ICON ICON "..\\..\\dxut\\optional\\directx.ico"
を
IDI_MAIN_ICON ICON "dxut\\optional\\directx.ico"
に変更。
・ \Microsoft DirectX SDK (November 2007)\Samples\Media
の「Dwarf」を作業中の「EnhancedMesh」フォルダにコピー。
これで現在作業中の「EnhancedMesh」フォルダの内容のみでビルドできます。
・ ビルド可能を確認したら、「EnhancedMesh.cpp」にz800用の追加部分をz800SDKの「EnhancedMesh.cpp」を参考にして加える。
微妙にソースが変わっていますが、変更ポイントは同じです。
ModifyDeviceSettings()の最後のあたり、
pDeviceSettings->pp.PresentationInterval = 1 ;
は
pDeviceSettings->d3d9.pp.PresentationInterval = 1 ;
に直します。
・ 「プロパティ -> 構成プロパティ -> リンカ -> 入力」の「追加の依存ファイル」にz800SDKのサンプルソースからビルドしたEMADevice_LIB.libを追加する。
例えば、
D:\EMA_SDK_2_2\Source\EMADevice\EMADevice_LIB\Release\EMADevice_LIB.lib
ライブラリパスを通してあるから「EMADevice_LIB.lib」だけでいけそうなものですが、何故かそれでは通ってくれません。
以上で「いちおう」z800対応な「EnhancedMesh.exe」が出来上がります。
実行してみると、左側の「RIGHT」「LEFT」の文字がちゃんと右目と左目に分離しています。だけど肝心の3Dオブジェクトは立体になりません。おかしいな。
実は「DXUT」フォルダ内のソースにも変更が必要なのでした。z800SDKのサンプルでは「DXUTmisc.cpp」に追記されていますが、DirectX SDK (November 2007)ではファイル構成が変わっていて、変更対象のCModelViewerCamera::FrameMove()は「DXUTcamera.cpp」に移動しています。
という訳で「DXUTcamera.cpp」を修正してビルド。さあどうだ。
3Dオブジェクトも立体視できています!だけどマウスでドラッグした時しか立体視が発動していません。うむむ。
なにげにCModelViewerCamera::FrameMove()の最初に有る
if( !m_bDragSinceLastUpdate && 0 == m_cKeysDown )
return;
をコメントアウトしてみたら、完璧になりました。完璧だよ。本当だよ。
この要領で他のDirectX SDKサンプルも立体視できてしまうのでしょうか。ああ大変だ。
PR
この記事にコメントする
Re:無題
凄いでしょ?泣きました?
半年遅れのレポートになってしまいました。申し分けございません。
この機能を使ってz800専用ゲームとか出ていたら凄かったろうに。また安くならないかなあ。
とにかくz800たんはまだまだ遊ばせてくれそうです。例えモニターが壊れても、センサーだけで遊べそう。
z800たんを可愛がってあげてやって下さい。
半年遅れのレポートになってしまいました。申し分けございません。
この機能を使ってz800専用ゲームとか出ていたら凄かったろうに。また安くならないかなあ。
とにかくz800たんはまだまだ遊ばせてくれそうです。例えモニターが壊れても、センサーだけで遊べそう。
z800たんを可愛がってあげてやって下さい。
最新記事
(04/20)
(11/21)
(01/01)
(06/12)
(06/12)
(05/29)
(05/22)
(05/21)
(12/25)
(12/20)
最新コメント
[08/27 BernardSr]
[08/27 BernardSr]
[08/27 BernardSr]
[12/29 GroverIcow]
[12/26 gayenKinesl]
[12/25 gayenKincfv]
[12/25 geRoesonokp]
[12/24 geRoesonmxu]
[06/30 LindsayDom]
[06/24 Ayukupim]
[06/22 francinerj2]
[06/21 Karsewis]
[06/17 Porsulik]
[06/16 Porsulik]
[06/16 Porsulik]
[06/16 Amimior]
[06/15 WilfordMof]
[06/11 lakeishatb1]
[06/04 Mathewlomi]
[05/31 tiopomWarriorvrp]
[05/31 Lasdumor]
[05/29 Aredorer]
[05/27 IMPUCKICT]
[05/26 Asosans]
[05/24 RaymondZice]
カテゴリー
リンク
アーカイブ
アクセス解析
カウンター
カレンダー
10 | 2024/11 | 12 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
プロフィール
HN:
mer2
性別:
男性
趣味:
野良猫の餌付け