[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 08/06 20:32 / Filesize : 251 KB / Number-of Response : 956
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【C++】 DirectX初心者質問スレ Part24 【C】



1 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 22:06:29 ]
※回答する人も、質問する人も必ず読んでください

これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ

【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
 「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。

【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。

【C++】 DirectX初心者質問スレ Part23 【C】
pc12.2ch.net/test/read.cgi/tech/1242977486/

128 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 20:01:27 ]
>>126-127
アドバイスありがとうございます。
静的分岐とは言え、さすがにON/OFFのチェンジはしたいので
>>126や、>>127の@というわけにはいきません。

ひとまず、>>127のAではうまくいきました。

そこで再質問なのですが、グローバル定数は、uniformとして扱われるMSの説明に書いてある上、
1回の描画命令の間では不変ですよね?
グローバル定数ではダメなのでしょうか?(ダメだったから>>125はダメだったわけですが…)

正直引数のuniformでやる方法ですと、
pass P0{ pixelShader = compile PIXELSHADER_TARGET PS( false );}
pass P1{ pixelShader = compile PIXELSHADER_TARGET PS( true );}
このようにtrueの場合とfalseの場合をいちいち定義しなければならず、
組み合わせが多い場合(ライトON/OFF、影ON/OFFなどなど)に組み合わせ爆発が厄介そうです。

uniform int の場合はintの取りうる範囲が多すぎるため、
PS(0) PS(1) のように定義しなければならないのはわかるのですが、
MSの説明を見る限り「bool型のシェーダ定数は特別扱いだよ」みたいに読めるのですが、
bool型を使うことによる利点のようなものは何かないのでしょうか?
MSの説明を見て

129 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 20:38:08 ]
>>128
>1回の描画命令の間では不変ですよね?
シェーダの生存期間は、コンパイルによって
exe(的なもの)として生成されてから、破棄されるまでの間です。
描画命令間ではありません。
定数が静的であるとは、生成から破棄の間静的であることです。
描画命令の間不変としたいなら、描画毎のコンパイルが必要。

>組み合わせが多い場合(ライトON/OFF、影ON/OFFなどなど)に組み合わせ爆発が厄介そうです。
そうです。これはD3D9世代の欠点でもあります。
これを補う為に、フラグメントシェーダやデファードレンダリングなどがあったりします。
DX11では動的リンクが加わるそうなんで、ちょっとはマシになるかも。

130 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 22:30:38 ]
DX11でシェーダの連結ができるって大騒ぎしてるけどさ
なんかDX9のフラグメントリンカーの存在忘れたような大騒ぎがよな

無かったことにされてるのか??
情報もえらく少ないし。

131 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 22:35:50 ]
シェーダ爆発なんて騒ぐのはキレイなエンジン作りたいやつだけで
普通は運用でどうにでもなるだろ。

132 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 23:20:36 ]
>>130
wlog.flatlib.jp/item/1219
wlog.flatlib.jp/item/1230

このブログがわかりやすいが、DynamicShaderLinkageは
動的リンクというよりは、サブルーチンコールに近いものらしい。
イメージとしては、動的にShaderの部品を組み上げて
1つのShaderを作るのがフラグメントリンカならば、
とりあえず全てがつまったmain()プログラム的なShaderを1つ作って、
動的に個々の分岐を決定出来るのがDynamicShaderLinkageということになる。
これが良くなったかどうかわからんが、より普通になった感じだな。

133 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 23:24:51 ]
>>130
フラグメントリンカを使ってる人は
今現在、世界で4人、
商用・非商用プログラムで使われてる例はゼロらしいよ。

134 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 01:10:26 ]
現状のPC構成だと殆どのケースでネックになるのがCPUだから
GPUで多少分岐したところで全体の速度に大差はないからな。
多少のシェーダー負荷は承知の上でまとめちまうほうが管理が楽。

135 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 01:39:03 ]
DirectSound で再生しながら、
横軸に周波数、縦軸に音量を表すようなグラフを
リアルタイムで描きたいです。
とりあえずWAVを再生するところはできてるんですけど、
そのようなグラフを描くにはどうすればいいですか?


136 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 01:48:55 ]
すれ違いじゃねっかな。
再生できてるならそのデータをそのまま解析すればいい。
どういう風なデータ構造になってるか分からないって質問は論外。



137 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 01:49:57 ]
spectrum analyzer source code
でググったら。



138 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 14:05:54 ]
フルスクリーン描画をしているときに画面中にダイアログを表示するのってどうやるの?

フルスクリーン描画しているウィンドウがフォーカスを失うと
device->Present()が失敗してしまう問題と、

フルスクリーン描画をかけるとほかのウィンドウが表示されてても
描画内容が上書きされてしまう問題とがあるわけだけど。

139 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 18:24:20 ]
深度バッファシャドウについて質問です。

完全な影になる部分は、RGBA(0.5f, 0.5f ,0.5f, 1.0f)であるとします。

普通の理屈通り使うと、ライトから見て裏面になる部分は、深度バッファシャドウ的に影であると判定されますよね。
でも、ライトから見て裏面になる部分は、すでに頂点シェーダ上でCOLOR0の値が半減しているはずです。

ピクセルシェーダでの判定にひっかかったからといって、さらに半減してしまうと、影が濃すぎることになりますよね。

これは、頂点シェーダでは影による表面色の補正をかけず「影の濃さ」を計算してピクセルシェーダに渡し、
深度バッファシャドウとライティングのシャドウを先に計算し、最後に表面色に反映。としなければならないのでしょうか?

140 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 19:52:52 ]
影と陰ね
これは同じ物理現象だよね
たしか

141 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 19:57:29 ]
シャドウマップのサンプルがあるんだからそれ見ればいいだろ
三項演算子使ってるから

142 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 20:01:13 ]
Direct3Dの色ってどうして少数使うの?
遅いでしょ。

143 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 20:06:18 ]
シャドウマップを影を追加する為のギミックとして
使うのではなく、
光が当たっているかどうかの判断に使うといい。

144 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 20:08:04 ]
>>142
正規化してるだけ

145 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 20:24:56 ]
>>143
あ、なるほど。
すんなり理解できました。わかりやすい教示ありがとうございます。

146 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 08:54:10 ]
>>142
GPUでは小数のほうが早い



147 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 15:42:01 ]
SAFE_RELEASEマクロの代わりに以下のようなインライン関数を書いたのですが、IUnknownのポインタがうまく変換されないのでコンパイルができません
inline void SafeRelease(IUnknown *& pUnk)
{
if (pUnk)
{
pUnk->Reelase();
pUnk = NULL;
}
}

以下ポインタの型変換をテストしてみたものですが、どうしてエラーになるコードが駄目なのかがわかりません
このように変換ができない理由を教えて下さい
IDirect3D9 * pD3D9 = Direct3DCreate9(D3D_SDK_VERSION);
//IUnknown *& rp = pD3D9; // エラー
//IUnknown *& rp = (IUnknown*)pD3D9; // キャストしてもエラー
IUnknown * p = pD3D9;
IUnknown *& rp = p; // 一時変数にコピーしてからだとOK

[ VC++2008 EE / DirectX SDK March 2009 ]

148 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 16:08:38 ]
IUnknown *& rp = pD3D9; // エラー

149 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 16:17:09 ]
関数のコンパイルが成功しない理由は148だと思うのですが、どうしてこの変換が認められないのか教えて下さい

150 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 16:22:25 ]
ポインタは変換可能だが、参照は変換できないというだけ。

151 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 16:27:14 ]
ありがとうございました。

152 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 20:49:27 ]
あえて関数化する必要がないしなー

153 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 22:56:19 ]
スマポ使えってこった

154 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 18:42:31 ]
むむ
RegexOptions^ Option = gcnew RegexOptions();
Option |= RegexOptions::CultureInvariant;
これでコンパイルエラーerror C2676が出てしまいました・・。




155 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 19:23:53 ]
>>154
型が違うんだから当然じゃないか。

156 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 20:12:07 ]
すまぽってComPtr的な動作したっけ?



157 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 21:21:41 ]
無理、よって完全に的外れ。

158 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 21:28:58 ]
           / ̄ ̄ ̄\
          /  ⌒  ⌒ ヽ 
         /  ( ●)(●) |  
         |    (__人__) }   …
        /、.    ` ⌒´  ヽ  
       /            |   
       |           | /    
       ヽ_|  ┌──┐ |丿     
         |  ├──┤ |      
         |  ├──┤ |


159 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 21:31:47 ]
レベル低いなぁ

160 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 23:51:17 ]
directX9で2Dゲームを作る為にPNG画像を表示しようと思ったのですが
D3DXCreateTextureFromFileInMemoryEx(g_pD3DDevice,ptr,SizeofResource(NULL, hRsrc),40,40,8,0,D3DFMT_UNKNOWN,D3DPOOL_MANAGED,
D3DX_DEFAULT,D3DX_DEFAULT,0,NULL,NULL, &img[i]);
で40pxの画像を読み込むと64pxに拡大されて表示されてしまいます。
元の画像のサイズのままで読み込みたいのですがどうすればいいでしょうか。

161 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 23:57:44 ]
自分でそうなるようにしているからだろ。
他人の作ったAPIが使えない、ヘルプを読むつもりもないのなら、
全部自前で読み込めよ。

162 名前:160 mailto:sage [2009/07/05(日) 00:25:32 ]
>>161
msdn.microsoft.com/ja-jp/library/cc372744.aspx
このページと自分の持ってる本を参考にしても分かりませんでした。

参考になるサイトや本を紹介して頂くだけでも有りがたいのでどうかアドバイスをお願いします。

163 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 00:31:33 ]
>>160
VGAによってはそうなる。
自分のPCだけで無くどこでも動くようにするなら、テクスチャは2のべき乗サイズになると想定したほうがいい。

164 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 00:41:59 ]
>>163
VGAのせいじゃねえよ。
どんだけ馬鹿なんだよ?

>>162
引き延ばす設定が入っているから。
いったいヘルプのどこを読んだんだよ?

165 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 00:51:21 ]
VGAによってはサイズ制限があるから
D3DXがフラグの設定どおりに拡張してテクスチャを作る。

⇒VGAのせいってコトだったんじゃね?

166 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 00:53:34 ]
客:アプリが起動しません。 サポ:デフラグかけてみて。 客:直りました。

動くプログラムを早く作るのは、いちいち理屈を勉強するプログラマではなく、魔法を信じるプログラマの方である。




167 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 01:03:38 ]
俺の経験だけかもしれんが
デフラグをかけた(かける必要が出た?)PCは例外なく復活は無くお亡くなりになるw

168 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 01:10:16 ]
NT4時代から毎日かけているがそんなことは無かったぜ。

169 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 01:13:08 ]
まめにやってると数秒だな

170 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 01:23:50 ]
>>160
ところでテクスチャのサイズと表示のサイズには何の関係性もないんだけど
なぜ拡大されていると判断したの?

作成したテクスチャのGetLevelDescでサイズを取得してみて
本当にサイズが64のテクスチャとして作られているか確認したの?
もしそうならそれはビデオカードの問題

テクスチャのサイズが40なのに64で表示されているっていうなら
それは表示のさせ方の問題
貼り付けてるポリゴンはどうなってるの?
射影行列の設定は?
viewポートとウインドウサイズが一致してないとかは?

171 名前:160 mailto:sage [2009/07/05(日) 02:01:54 ]
>>170
GetLevelDescでサイズを取得したら64×64でした。
Draw関数で40pxに縮小して表示してみたんですが若干ぼやけてしまいました。
テクスチャは2D画像を表示させるのに適していないってことでしょうか。
画像を表示させる別の方法を探してみます。
アドバイス有難うございました。

172 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 02:08:31 ]
>>171
2Dゲーム作るならOpenCVでいいんじゃない?

173 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 02:28:18 ]
>>171
元々テクスチャというのは不定形のメッシュに伸び縮みさせながら貼り付ける道具だから、
デフォルトでフィルターがかかるようになっている。
FilterとMipFilterをD3DX_FILTER_NONEにすれば補間は起こらないよ。

>>164
初心者に嘘ばかり教えない。
おまえ、ネットブック(GMA950)で動作チェックしたことないだろ?

174 名前:160 mailto:sage [2009/07/05(日) 02:49:04 ]
>>173
ありがとうございます。
黒い領域が残ったけどクリッピングで消せそうなので大丈夫そうです。

VCproだと64×64になってしまったのですが、ExpressEditionでプロジェクトを
作り直したら40×40のテクスチャを作れました。
原因はVCの設定ミスなんでしょうか・・・

175 名前:デフォルトの名無しさん [2009/07/05(日) 05:17:56 ]
スキンメッシュをリソースファイルから呼び出すにはどうすれば良いですか?

176 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 06:58:30 ]
>>173
GMA950はNONPOW2CONDITIONALがYesだったと思うが。

NONPOW2CONDITIONALはドライバレベルで対応できる機能だから、
よほど古くてドライバが更新されてないのでなければ使える。



177 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 09:14:36 ]
デフラグを頻繁に行うと間違いなくHDDにダメージを与える事になる

PCの調子がおかしい時は基盤とかにホコリがたまってて電源不足になってる可能性あり

178 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 09:28:29 ]
>>174
なんでUVを適切に設定しないでクリッピングなんだ?
意味分からん

>原因はVCの設定ミスなんでしょうか・・・
人の話を聞かない奴だな

179 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 12:49:38 ]
断片化した状態で使うのは常にデフラグをかけているのと同義

180 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 12:59:03 ]
結局確率の話でしかないだろ。
対象のファイルが

・頻繁に読む・固定長で書き込み
HDD側で2桁程度の高速化

・永久に使用しない
無益

・追記する場合
また断片化する

181 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 13:18:19 ]
まぁSSDにしとけってこったな

182 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 13:32:41 ]
はいはい、スレ違いスレ違い

183 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 14:02:30 ]
コンパイルしようと思ったら

1>------ ビルド開始: プロジェクト: a, 構成: Debug Win32 ------
1>コンパイルしています...
1>main.cpp
1>マニフェストをリソースにコンパイルしています...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
1>Copyright (C) Microsoft Corporation. All rights reserved.
1>リンクしています...
1>LIBCMTD.lib(dbgheap.obj) : error LNK2005: __CrtSetCheckCount は既に MSVCRTD.lib(MSVCR90D.dll) で定義されています。
1>LIBCMTD.lib(crt0dat.obj) : error LNK2005: _exit は既に MSVCRTD.lib(MSVCR90D.dll) で定義されています。
1>LIBCMTD.lib(crt0dat.obj) : error LNK2005: __exit は既に MSVCRTD.lib(MSVCR90D.dll) で定義されています。


1>libjpeg_d.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _keymatch が関数 _parse_switches で参照されました。
1>D:\Program Files\VC\project\a\Debug\a.exe : fatal error LNK1120: 外部参照 9 が未解決です。
1>ビルドログは "file://d:\Program Files\VC\project\a\Debug\BuildLog.htm" に保存されました。
1>a - エラー 40、警告 2
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

と出ます。何が原因でしょうか?
コード自体は
homepage2.nifty.com/natupaji/DxLib/dxuse_vc2008express.html#R6
の6.プログラムを組む、というプログラムです

184 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 14:08:36 ]
>>183
はいはい、CRTの設定ミス。全プロジェクトで統一しようね。

185 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 14:22:53 ]
>>184
ありがとうございます
CRTよくわかりませんがぐぐって調べてみます

186 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 14:30:59 ]
>>184
できました。ありがとございました



187 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 16:22:43 ]
他アプリ(DirectXモノ)画面に上書き描画出来るようになったんだが、チラツキが多すぎて微妙です。
タイマーを使っているのが間違いだと思うのですが、解決方法ありますか?

Presentフックが王道とは思うのですが、vsync待ちの処理ができる方法があるならアドバイスいただけないでしょうか。

188 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 17:24:43 ]
質問です。
D3Dで地面に影メッシュを表示しようと思うのですが、地面とまったく同じ高さに描くと
Z-fightingが起こってしまいますよね。
これに対処するためわずかに地面から浮かせていたのですが、Z-fightingが起こらない程度に浮かせると
影の位置がずれているのが結構見えてしまいます。

そこで「描画位置はそのままに、Zバッファでの比較の際バイアスをかける」方法がないか探しているのですが、
どうにも見当たりません。
バイアスをかける方法があれば教えていただきたいのです
よろしくお願いします。

189 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 17:42:25 ]
188自己解決です

float bias = -0.1f;
pDev->SetRenderState(D3DRS_DEPTHBIAS, *((DWORD*)&bias));

で出来ました。
が、D3DRS_DEPTHBIASはマイナーな上、サポートしていないグラボも少なくないとか?
このあたりの情報おもちのかたいらっしゃいましたら、教えていただければと思います。

190 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 17:49:41 ]
>>188
単純に地面のあとから描けばいいような気がするんだが、それで問題があるんだろうか。

191 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 17:49:43 ]
シェーダーでやれば問題ない。

192 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 18:08:42 ]
質問です。
Xファイルとやらでオブジェクトを表示させようとしたのですが、メッシュ(?)だけ表示されて色の情報が描写されません。
同じようなことがあった人がいたら解決法を教えてください。お願いします

193 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 18:22:42 ]
あーいーうーえーおー


あしかの赤ちゃん雨の中
赤い雨傘甘えん坊

いちご畑の一年生
石ころ一個 コロコロ

宇宙の海で運動会

円盤遠足絵の具で絵日記

折り紙のオルガンで

あ い う え お の 音楽

あーいーうーえーおー

194 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 18:38:47 ]
再現する最低限のコード晒すといい。

195 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 18:41:30 ]
Xファイルはあくまでデータのコンテナであって、
中のデータをどう描画するかは自分次第。
よって自分でやっていないからとしか言いようがない。

196 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 20:23:51 ]
色々やってみたら、テクスチャのファイルネームに何も入っていないことがわかりました。何とかなりそうです、ありがとうござました



197 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 20:34:55 ]
GDIのコントロールを描画しようというのが根本的に王道ではない。
王道だったらMicrosoftがやってる。


198 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 22:22:34 ]
>>197
ありがとうございます
描画対象エリアのみ2D使ってるぽいところに2D上書き予定なのですが、
zが手前になるように追加描画が出来るか調べてみようかと思います


199 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 15:39:10 ]
質問です。

ピクセルシェーダの色出力を省略し、深度バッファへの書き込みだけを行う方法があったと思うのですが
どなたかわかる方いらっしゃいますでしょうか?

PixelShaderの返り値をvoidにしたらHLSLコンパイルエラーになりましたし、
PixelShader = NULL;
にしたら妙な色が書き込まれてしまいました。

200 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 16:41:02 ]
SetRenderState()で色の書き込みをマスクする。
DirectX10ならSetRenderTargetでNULLをいれる。

201 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 16:50:02 ]
D3DRS_COLORWRITEENABLE
ですね。
ただこれは、マスクを0にしてもピクセルシェーダ自体は呼び出されてしまうようです。
ピクセルシェーダ自体を呼び出さずに済ませてしまう方法があったような気がするのですが・・・
曖昧な記憶で申し訳ないです

202 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 17:48:55 ]
9でも連打ーターゲットNULLでいけなかったっけ

203 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 18:12:17 ]
>>201
DirectX9にはない。
0.0を出力しとけ。

普通は色の出力を全部マスクしていればドライバー側で
PixelShaderの処理はスキップしてくれるはず。

>>202
インデックス0に対してはNULL無理。

204 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 20:31:43 ]
ピクセルシェーダから深度値を変更できるんだから、
カラー出力しなくてもスキップされるわけないだろう。

205 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 20:35:20 ]
深度値を出力した時だけ早期Zカリングがスキップされたりするんだから
カラーマスクと深度出力をみて不要ならスキップもしてるだろ。

206 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 20:56:12 ]
スキンメッシュのプログラムはマテリアルを設定してないの?



207 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 21:28:10 ]
それは自分次第だろ。

208 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 21:44:46 ]
HELP ME
Xファイルを表示するためにマテリアルの数を変数に格納したはずなのになぜか格納されていません。
推測で原因を教えてください

209 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 21:57:48 ]
推測だがお前が悪い

210 名前:デフォルトの名無しさん [2009/07/06(月) 22:54:50 ]
directsoundでIDirectSoundBuffer8::SetVolumeをセットしても音量に変化がありません。なぜだすか?

211 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 22:57:08 ]
>>210
っ 初期化

212 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 23:49:24 ]
>>211
IDirectSound8::CreateSoundBufferが内部で初期化してるけど、音量変更前にもう一回初期化するってこと?
そもそもループ内でそれやるの難しくない?

213 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 23:56:55 ]
最初にやれよ

214 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 00:01:05 ]
CreateのときにDSBCAPS_CTRLVOLUMEフラグを立ててないからって落ちじゃ?

215 名前:デフォルトの名無しさん [2009/07/07(火) 00:51:34 ]
a


216 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 01:02:16 ]
DI8で pDI8->EnumDevices でデバイスを列挙するのはわかるんだが
pJoyDevice->EnumObjectsでプロパティを列挙したときに何が取得できるかよくわからない

たぶんボタンがいくつあるとか軸の範囲とかの取得・設定ができるんだと思うんだけど
EnumObjectsCallback内でpJoyDevice->SetPropertyとかやっているサンプルが多く、
これだとpJoyDeviceが1つのときは問題ないんだろうけど
複数のpJoyDeviceを扱いたいときとかどうすればいいのだろう?
とか考えるとさらによくわからなくなりまつ

BOOL CALLBACK EnumObjectsCallback( const DIDEVICEOBJECTINSTANCE* pdidoi,VOID* pContext )
のpContextに、プロパティ設定したいデバイスのpJoyDeviceでも渡して
pContext->SetPropertyとでもしておけばいいんでしょうか?






217 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 01:12:08 ]
PCでパッド2個つけて2人用プレイって需要あるんかな
格闘ゲームでも1P vs COM か COM vs COMしか利用されないだろ

218 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 02:16:04 ]
家庭用ゲーム機のエミュとか?

219 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 09:15:32 ]
abnormal.sakura.ne.jp/upfiles/2008/06/29/keiou.jpg

            l   i    i        i    i    l
   / ̄ヽ   昼l   ゝ  ノ        ゝ  ノゝ  ノ
   , o   ', 食ご l  i´   `i  _   i´ 講  `i   `l
   レ、ヮ __/  べはl  l     /  \ l  義  l   l
     / ヽ  よん.l       {@  @ i   が  l   l
   _/   l ヽ うを l       } し_  /   お
   しl   i i    l        > ⊃ <    わ
     l   ート   lヽ、    / l    ヽ     っ
 ̄ ̄¨¨'~~ ‐‐‐--─|  ヽ 、 / /l   丶 .l`\ た
____   __   |     (_/ |   } l`\|
    ||  |WC|  |  へ へ   ヽ、  l ! \||
    ||   ̄ ̄  |/   \ `ヽ、 ヽし! /|| ガタッ
    ||       |    / /     ヽ、||
  ◎||       |   / /        ヽ、
 ̄ ̄ ¨¨¨ー─‐‐--- ,,, __ ____
       ,, _    |        ̄¨¨` ー──---
モパ  /     `、   |    モパ   |:::::::::::::::
グク /       ヽ |    グク  /  ̄ ヽ:::::モパ
モパ./  ●    ●l |    モパ  l @  @ l:::グク
グク l  U  し  U l |   グク  } し_  /::::モパ
   l u  ___ u  l |     _  /=テ⊃ <_グク
    >u、 _` --' _Uィ l   ◎ー)/キ' ~    \ヽ
  /  0   ̄  uヽ |    |  | | i二二二i-'  ) ',
. /   u     0  ヽ|    ~~~ ~ l ヽ--┬ ' ./
 テ==tニト      |      / ̄/ ̄ ̄` ノ /
/ ̄) ̄ | ̄ ̄ ̄ ̄ ̄|      |  |  |二二二)



220 名前:sage [2009/07/07(火) 18:55:08 ]
>>216
pJoyDevice->EnumObjects は 第3引数で指定したフラグの情報が取得できる
例えば軸情報なら DIDFT_AXIS を指定すればいい。
ttp://msdn.microsoft.com/ja-jp/library/cc351884.aspx

>BOOL CALLBACK EnumObjectsCallback( const DIDEVICEOBJECTINSTANCE* pdidoi,VOID* pContext )
引数には DIDEVICEOBJECTINSTANCE オブジェクト と EnumObject で渡した第2引数 pContext がある。
コールバック関数で指定したフラグの情報を含む DIDEVICEOBJECTINSTANCE オブジェクトから pContext に情報を
引っ張ってくればいい。

ex)
Joystick* pJoy = (Joystick*)pContext;
if (pdidoi->guidType == GUID_XAxis) /* 処理 */


221 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 21:13:24 ]
トイレでプログラミングはしても良くて助かった

222 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 21:32:50 ]
監視カメラ設置かよ

223 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 23:14:53 ]
あれあれ?
俺ライブラリをVistaに対応する前にWindows7とかでちゃったw

224 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 23:30:55 ]
これはどんな仕組みなの?
ttp://www.teatime.ne.jp/infor/tech48/page_02_01.htm

225 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 23:42:55 ]
DirectXと関係ない宣伝行為乙

226 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 23:47:07 ]
どう見てもDirectXだが

推奨環境
Vista 日本語版WindowsXP / Vista
Intel(R)Core(TM)2 Duo プロセッサ 2.40GHz 以上

メモリ 以上 2.0GB 以上


DirectX9.0cに完全対応し
ビデオメモリ256MB以上で
ピクセルシェーダー2搭載の
GeForceまたはRADEONシリーズ
(メーカーから最新のグラフィック
ドライバサポート必須)
画面解像度1280X960ピクセル
フルカラー推奨

メインメモリと共有と表記のあるビデオシステムは動作保証外となります
サウンド DirectSoundに完全対応したサウンドカード
DVD-ROM 4倍速以上のドライブ
HDD 5.0GB以上の空き容量




227 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 23:54:16 ]
224の仕組みとDirectXは関係ない。
OpenCVのスレにでも行けばいいかと。

228 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 01:44:18 ]
てs






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<251KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef