■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

【C++】 DirectX初心者質問スレ Part7 【C++】
251 名前:デフォルトの名無しさん :2005/12/16(金) 02:02:18
こうして>>220は深みにハマりながら理系大学にいっちゃうんだろうか

でも興味を持って勉強すると上達も早いよね

252 名前:デフォルトの名無しさん :2005/12/16(金) 10:24:33
半透明での質問です。

DrawPrimitiveでのcolorのA(ARGBのA)の値での全体の半透明はわかったのですが、
テクスチャー(32bit)のAの値での半透明は、どういう風にすればいいのでしょうか?

Aの値が0だと、カラーキーみたいに非表示
128だと、半透明表示
255だと、通常表示みたいにしたいのです。

テクスチャ生成は、D3DXCreateTextureFromFileInMemoryです。
Aの値も0〜FFということも確認しました。


253 名前:デフォルトの名無しさん :2005/12/16(金) 10:28:19
>>252
SetTextureStageStateを参照されたし

254 名前:デフォルトの名無しさん :2005/12/16(金) 10:39:20
>>253
SetTextureStageState
いろいろ試したんですけど
表示/非表示しかできず中間の半透明ができないのです
D3DTOP_MODULATE
D3DTOP_MODULATE2X
D3DTOP_MODULATE4X
で表示/非表示範囲が変わったりしてるところ、
Aの値はばらついて設定してあるのは確かなんですけど。

255 名前:デフォルトの名無しさん :2005/12/16(金) 10:57:55
>>254
D3DTSS_ALPHAOP、D3DTSS_ALPHAARG1、D3DTSS_ALPHAARG2
D3DRS_ALPHABLENDENABLE、D3DRS_SRCBLEND、D3DRS_DESTBLEND
これ全部設定してる?1つでも抜けてたら駄目。

っていうか、間違ってD3DRS_ALPHATESTENABLEを設定してないか?

256 名前:デフォルトの名無しさん :2005/12/16(金) 14:44:01
いまさらこんなこと聞くのも恥ずかしいんだけど
ID3DSprite::Begin()とID3DSprite::Draw()の仕様って
HRESULT Begin(DWORD)
HRESULT Draw(LPテクスチャ, RECT, VERTEX3, VERTEX3, COLOR)
にだいぶ前に変わったみたいなんだけど、コレでスプライトの拡大縮小回転をするにはどうすりゃいいんでしょう・・・
何処の説明サイトみても昔の2次元ベクトル3個と回転角指定ができるDrawの説明しかない・・・

ぶっちゃけ、BitBltみたいにキャラクターを5人ほど画面に出しただけでちらつくなんてことがなくて、
拡大縮小回転透過処理が簡単にできるなら何でもいい。助けてくれ。俺にはDXなんて早すぎる・・・

257 名前:デフォルトの名無しさん :2005/12/16(金) 17:17:00
>>256
スプライト程度なら自力でスプライトクラスを作ったら?
数時間もあれば同程度の機能を持つクラスなんて作れると思うんだけれど
毎度仕様の変わるID3DXSpriteはウザイのでさっさと自分専用の奴でも作っとけw

258 名前:デフォルトの名無しさん :2005/12/16(金) 17:27:35
おっぱいを手に入れた

259 名前:デフォルトの名無しさん :2005/12/16(金) 19:44:03
まずはチュートリアルを順番にとばさずに行う。
きちんと自分でコードを入力してきちんと動作確認までする。
するとあら不思議、ID3DXSpriteなど使わなくてもプログラムが書けるようになっている。

ID3DXSpriteとかで引っかかっているのは、手抜きをして途中をすっ飛ばすから。

260 名前:デフォルトの名無しさん :2005/12/16(金) 20:54:41
>>256
ダブルバッファにすればBitBltでもちらつかないよ。

261 名前:デフォルトの名無しさん :2005/12/16(金) 22:33:59
>>257
絶対無理、10年早い
>>259
チュートリアルなんてこれっぽっちもやってなかったよ、試してみるわ
>>260
いやダブルバッファにしたんだけど、60FPSで更新したらもうね・・・
それとも俺の設計がダメなだけなんだろうか

262 名前:デフォルトの名無しさん :2005/12/16(金) 22:35:07
いまは、自分で試さずに質問するのが流行です。

263 名前:デフォルトの名無しさん :2005/12/17(土) 00:37:12
>>261
>絶対無理、10年早い
おまえみたいなやつはプログラムすんな。
一生ツクールやってろ。

264 名前:デフォルトの名無しさん :2005/12/17(土) 00:39:35
自分に10年早いとか評価する奴初めて見たw

265 名前:デフォルトの名無しさん :2005/12/17(土) 00:51:38
10年後にDirectXプログラムやればいいんじゃね?

266 名前:216 :2005/12/17(土) 12:33:42
以前から3Dオブジェクトが環境によって表示されない
部分があるというバグに悩んでおります。

いろいろ調べた結果、
D3DFVFCAPS_DONOTSTRIPELEMENTS
の能力が関係しているのではないかと思いました。
D3DFVFCAPS_DONOTSTRIPELEMENTSの能力が無い場合は
ポリゴンの一部がかけるようです。
(2つの環境でしか試していないですが...)
Xファイル中には複数のオブジェクトが存在します。
そのオブジェクト同士が干渉している部分にちらつきが
発生いたします。


ポリゴンは
CDXUTMeshのCreateによってXファイルをロードします。
次にSetFVFで m_pD3DMesh->m_pMesh->GetFVF() | D3DFVF_NORMAL
を設定して法線ベクトルを再計算しております。


D3DFVFCAPS_DONOTSTRIPELEMENTSの能力が無い場合の
ポリゴンの扱い方はどうすればよいのでしょうか?
よろしくお願い致します。


環境:DirectX 9.0 SDK (October 2005)
開発:VisualStudio.net 2003
OS:WindowsXp SP2
オブジェクト作成:Shade7

267 名前:デフォルトの名無しさん :2005/12/17(土) 13:01:44
その二つの環境が何か、なぜ書けない

268 名前:デフォルトの名無しさん :2005/12/17(土) 20:21:06
ゴリポン

269 名前:216 :2005/12/17(土) 23:50:15
すいません。
環境を書くのを忘れました。
そしてD3DFVFCAPS_DONOTSTRIPELEMENTSの能力のせいではないかもしれません。

1つ目。
Intel(R) 82852/82855 GM/GME Graphics Controller
32Bit色(HAL Adapter Formats D3DFMT_X8R8G8B8 (Fullscreen))の場合は正常
16Bit色(HAL Adapter Formats D3DFMT_R5G6B5 (Fullscreen))の場合は失敗

2つ目は
SiS 300/305
32Bit色(HAL Adapter Formats D3DFMT_X8R8G8B8 (Fullscreen))の場合は失敗
16Bit色(HAL Adapter Formats D3DFMT_R5G6B5 (Fullscreen))の場合は失敗

です。
よろしくお願い致します。

270 名前:デフォルトの名無しさん :2005/12/18(日) 02:26:30
市販ならともかく、個人使用でオンボードレベルまで対応してる人ってどれくらいいるのかな・・・。
やたらできる事が制限されそうだけど・・・・。

271 名前:デフォルトの名無しさん :2005/12/18(日) 03:29:56
2Dシューくらいならオンボードで十分なんじゃないの

272 名前:デフォルトの名無しさん :2005/12/18(日) 15:21:10
>>271
2Dでもよく考えて作らんとおかしくなったりする・・・

273 名前:デフォルトの名無しさん :2005/12/18(日) 21:01:28
ハードウェアカーソルって、どうやって使うんでしょうか。
ぐぐっても、ビデオカードがハードウェアカーソルに対応してる情報ばかりで、
DirectXで使う情報が全然出てきません。

274 名前:デフォルトの名無しさん :2005/12/18(日) 21:33:09
DirectXよくわかんねーや
用語から覚えていこうかな

275 名前:デフォルトの名無しさん :2005/12/19(月) 02:08:48
>>270
速度はともかく表示はできますよ、程度には対応
世代的にはDirectX6対応チップまで考慮してる(オンボードとしてはわりと新しいけどな)

解放忘れがあると古い機種はすぐにOS巻き添えで暴走するから気をつけてる
あとは16bitで256x256dotのテクスチャにするよう気をつけてるけど
ほかに何か気をつけることあったっけ?

とりあえず実機用意してそれで動けばOKっていう感じでやってる

>>271
透過で問題でやすいから2Dは鬼門

276 名前:デフォルトの名無しさん :2005/12/19(月) 02:48:11
透過で問題ってどんなの?

277 名前:デフォルトの名無しさん :2005/12/19(月) 04:46:52
>>273
・データの読み込みで10秒間システムが止まるとして、
その間にマウスカーソルだけでも動かせられる方が、ユーザーはよりストレスなく遊べる。
・FPSが大きく変動してもマウスカーソルが滑らかに動くと・・・以下同じ


278 名前:デフォルトの名無しさん :2005/12/19(月) 09:20:04
LunaでFepのサンプルやるとエラーなんでやー

D:\c\lib\LunaDx9_SDK_32.10\Sample\Source\Fep_00\Fep_00.cpp:
エラー E2451 D:\c\lib\LunaDx9_SDK_32.10\Sample\Source\Fep_00\Fep_00.cpp 227: 未定義のシンボル strcpy_instead_use_StringCbCopyA_or_StringCchCopyA(関数 Luna::Main(long,char * *) )
*** 1 errors in Compile ***

279 名前:デフォルトの名無しさん :2005/12/19(月) 10:28:31
そこのホームページ行ったほうがいいんちゃう?

280 名前:216 :2005/12/19(月) 11:01:34
>>275
>速度はともかく表示はできますよ、程度には対応

その程度には対応したいと思っております。
ポリゴンの一部が表示できないのは出来たら解消したいと思います。

281 名前:デフォルトの名無しさん :2005/12/19(月) 12:21:30
フォグについての質問です。
D3DFOG_EXPに対応して、D3DFOG_LINEARに対応していない環境はありますか?
Radeon9600だとD3DFOG_LINEARだと画面が真っ黒になって、D3DFOG_EXPだと
正常に表示されます。
一方VIAのオンボードだとどちらでも正常に表示されます。


282 名前:デフォルトの名無しさん :2005/12/19(月) 12:24:35
DeviceCapsに出てなかったっけ?
フォグは使ったこと無いから適当に言うが
パラメータ次第でLINEARのほうがEXPよりも早く暗くなるかもしらん

283 名前:デフォルトの名無しさん :2005/12/19(月) 12:43:51
>>216
Zバッファの精度の問題。これはFAQクラスのよくある問題だよ。
とりあえず回避策としてはnear/far値を狭める。0.1/10000.0とか
してたら、10.0/1000.0にするとか。

284 名前:デフォルトの名無しさん :2005/12/19(月) 12:58:46
>>262
ゆとり教育の賜物

285 名前:デフォルトの名無しさん :2005/12/19(月) 13:36:46
>>284
必要以上に「車輪の最発明するな」って言ってるからじゃね?

286 名前:デフォルトの名無しさん :2005/12/19(月) 13:49:11
教科書に載っている練習問題をすっとばし、いきなり応用問題を解こうとして、
当然分からないから答えだけ聞こうとし、練習問題からやり直せと言われると、
それは車輪の再発明だと言うのが今のトレンド。

287 名前:デフォルトの名無しさん :2005/12/19(月) 15:39:16
ああ、そんな感じ

288 名前:デフォルトの名無しさん :2005/12/19(月) 16:01:56
ハロー(注意報)。

えー、モデルの表示サイズを変えようと思って、ワールドトランスフォームにスケーリング行列をかけると
ライトの当たり方が明るくなったり暗くなったりします。
ディレクショナルライト1つしか使ってないし、ポリゴンの法線なんかも変わってないので
照明に影響する理由がないと思ったんですが、何か勘違いしてるんでしょーか。

なんか相当アホなことではという予感がひしひしとするんですが、ご教示くださいませ。

289 名前:デフォルトの名無しさん :2005/12/19(月) 16:36:59
>>288
FAQだわ、これで直るわ。
SetRenderState( D3DRS_NORMALIZENORMALS, TRUE );
最近ダジャレ抜きで寒いわね。

290 名前:デフォルトの名無しさん :2005/12/19(月) 16:51:05
何十年ぶりって感じらしいからのう。

>>288
法線変換するときにスケーリング行列の場合は法線の長さが変わってしまうから
正規化してやらないと駄目なんだよ。
回転行列とかの時は直行行列だから問題ないんだけどね。

291 名前:288 :2005/12/19(月) 17:04:41
あー、なるほど〜
教えてもらわなかったら原因も解決法もしばらく分からなかったかも。
てかぐぐり方甘かったですわ。ありがとうです。

292 名前:デフォルトの名無しさん :2005/12/19(月) 23:40:29
GeForce 系のドライバって DrawIndexedPrimitive 系関数の MinVertexIndex とかのパラメータ
まともに処理してなくない?
きちんとした値渡すとラデだと高速化できるから使いたいんだけどな・・・

293 名前:デフォルトの名無しさん :2005/12/20(火) 02:27:35
あるデバイスから、メモリ上にもらってきた画像(8bit256階調データ)を、
極力早いレートで画面に表示したいのですが、
D3DXLoadSurfaceFromFileInMemory()より早く転送する方法
ないでしょうか?
1枚16.5msecで入ってくるんですが・・・。

294 名前:デフォルトの名無しさん :2005/12/20(火) 02:57:46
>>293
普通にGDIのが速そうだね。
最終的にSurfaceにしたいなら、SurfaceをLockRectしてMMXなりSSEで転送するコードを書く。

295 名前:デフォルトの名無しさん :2005/12/20(火) 09:24:18
>>293
そんな関数使わないで普通にバックバッファをLockして転送すればいい。
表示したい解像度が書いてないからどのくらいかかるかは具体的には言えない。

ちなみにMAME等のエミュは毎画面16.5msでLockして転送してて余裕。
マッピー(224*288)がフレームスキップ無しで700%の速度で動くから
どんな解像度でも問題ないかと。

296 名前:デフォルトの名無しさん :2005/12/20(火) 19:56:25
フルスクリーンモード時のリフレッシュレートを可変にでき、
ディスプレイアダプタの使用できるリフレッシュルートを
EnumAdapterModes() で取得できるところまではわかったのですが、
『ディスプレイそのもの』がどのリフレッシュレートに対応しているのかを
取得するにはどのような方法がありますでしょうか?

297 名前:デフォルトの名無しさん :2005/12/20(火) 20:02:10
>>296
Win32APIのEnumDisplaySettingsかな。SDKサンプルでは。

298 名前:296 :2005/12/20(火) 21:09:06
ごめんなさい。
普通にEnumAdapterModes() でディスプレイで対応してないモードは
はじかれてるみたいです。
早とちりして申し訳ないです。

>>297
ありがとうございます。
そっちも調べてみます。

299 名前:216 :2005/12/23(金) 11:24:24
>>283
ありがとうございました。
おっしゃられた方法で解決いたしました。

助かりました。
まことにありがとうございました。m(_ _)m

300 名前:デフォルトの名無しさん :2005/12/23(金) 15:28:47
Xファイルから読み込んだデータを表示するときにマテリアルの環境色が反映されず、
白色に表示されてしまいます。(同時に表示している自分が作成したポリゴンの方は
頂点色が反映されて表示されています)
D3DTSS_COLOROPはD3DTOP_MODULATEと設定しています。

誰か原因をお知りの方ご教示お願いできないでしょうか?

301 名前:デフォルトの名無しさん :2005/12/23(金) 15:38:58
>>300
このへんはどうかな?

D3DTSS_COLORARG1
D3DTSS_COLORARG2
D3DRS_DIFFUSEMATERIALSOURCE
D3DRS_AMBIENTMATERIALSOURCE

その他スペキュラ関係の見直し。

302 名前:300 :2005/12/23(金) 18:36:43
>>301
ライトの設定が悪かったみたいでした。

もうひとつ質問なのですが、ライトを使わずに
マテリアルのdiffuse色を直接表示させる方法を
お教え願えないでしょうか?


303 名前:デフォルトの名無しさん :2005/12/23(金) 18:45:42
>>300
(*'-')っエミッシブ

304 名前:300 :2005/12/23(金) 18:56:26
>>303
Emissiveにdiffuseを代入したのですが、D3DRS_LIGHTINGをTRUEにしないと
表示されないようです。
自己発光するらしぃのに....

305 名前:デフォルトの名無しさん :2005/12/23(金) 19:03:48
CreateOffscreenPlainSurface( w, h, D3DFMT_X8R8G8B8, D3DPOOL_DEFAULT, &pSurface, NULL );
で作ったサーフェイスからGetDCしてGDIで描画しているのですが!

予めCreateFontで作っておいたHFONTを使ってSelectObjectし、
TextOut,DrawTextで描画すると、メモリがどんどん消費されて行きます…

DirectXを使わない、文字を描画しない、
GetDCの後で毎回CreateFont、DeleteObjectする場合は何も問題ないのですが…
毎回CreateFontするのが普通なのでしょうか。

306 名前:デフォルトの名無しさん :2005/12/23(金) 19:13:05
>>305
GetDCに対してReleaseDCはセットじゃなかったか

307 名前:デフォルトの名無しさん :2005/12/23(金) 19:14:59
>>304
マテリアルじゃなくて頂点にカラー属性仕込んだら?

308 名前:デフォルトの名無しさん :2005/12/23(金) 19:16:45
>>306
もちろんしてますよ
ReleaseDCする前に、
SelectObject(hdc, hFont);の戻り値もSelectObjectしてます

309 名前:308=305 :2005/12/23(金) 19:18:44
スマン、名前忘れた…

310 名前:デフォルトの名無しさん :2005/12/23(金) 19:52:34
>>300
(*'-')っSetRenderState(D3DRS_EMISSIVEMATERIALSOURCE, D3DMCS_MATERIAL);

311 名前:300 :2005/12/24(土) 06:16:44
>> 301 303 307 310
アドバイスありがとうございました。
もう少し基本から勉強しなおしてきます。


312 名前:デフォルトの名無しさん :2005/12/26(月) 00:55:57
Microsoft DirectX 9.0 SDK (October 2005)のDXUT(サンプルフレームワーク?)の
GUI機能で、ダイアログのキャプションの部分が表示されない(ダイアログの背景と同じになる)
のですが、何か設定があるんでしょうか?
EnableCaption(true)はやっているのですが・・・。

SDKの(December 2004)のDXUTでは出てたようですが。

313 名前:デフォルトの名無しさん :2005/12/26(月) 05:40:37
ソースが有るんだから読めば良いのでは?

314 名前:デフォルトの名無しさん :2005/12/26(月) 07:46:10
そうっすね。

315 名前:デフォルトの名無しさん :2005/12/26(月) 12:00:07
USBカメラの映像使おうと思ってDirectShow使おうとしたんだけど
最新のDirectX SDKにヘッダーとライブラリが入ってなくて、仕方なく別の所で用意したけど
MSはDirectShowを消滅させる予定なの?

316 名前:デフォルトの名無しさん :2005/12/26(月) 12:12:34
>>315
BaseClassesも含めてPlatform SDKへ。

317 名前:デフォルトの名無しさん :2005/12/26(月) 12:18:50
>>316
一つ前のバージョンのPlatformSDKで拾ったんだけど
最新の奴には入ってないみたい。どうなってんだろ

318 名前:デフォルトの名無しさん :2005/12/26(月) 13:34:04
>>317
Server 2003 SP1には入ってるはずだけど。
もういっぺんCDイメージあたりでインストしてみたら?

319 名前:デフォルトの名無しさん :2005/12/26(月) 17:57:36
DirectSoundでWAVファイルを読み込んで波形データを表示しようとしてるんだけど、どうやって取得していいのかわかりません。
Volumeは再生の音量だし・・・。なにかヒントをください。

320 名前:デフォルトの名無しさん :2005/12/26(月) 18:03:55
DirectSound関係無いやん・・・

321 名前:デフォルトの名無しさん :2005/12/26(月) 19:08:43
DirectSoundで取得できませんでしたっけ?

322 名前:デフォルトの名無しさん :2005/12/26(月) 19:18:02
WAVファイルを読み込んだ時点で、そのデータ自体が波形データ。
あとは好きなように表示すればいいだけ。

323 名前:デフォルトの名無しさん :2005/12/26(月) 19:35:35
DirectSoundも大変だな・・・。

324 名前:デフォルトの名無しさん :2005/12/26(月) 22:01:13
>>323
ワロタ

325 名前:デフォルトの名無しさん :2005/12/28(水) 00:55:18
VC++6.0SP5とWindows2000の環境で、やっとDirectXを勉強しようと思っていましたが
調べてみると現在のDirectXは2000もVC6も切り捨てたと言う酷い話。
ですがDirectX9.0 SDK Update 2003 SummerまではVC6がサポートされていると言う事で
どなたか当該のファイルとヘルプのダウンロードできる場所をご存知の方いませんでしょうか?
よろしくお願いします。

326 名前:デフォルトの名無しさん :2005/12/28(水) 02:29:58
最新のSDKでも*.hだけ取り出して、あとはdllを動的に呼び出せば、
Windows2000やVC6であろうと問題なく開発できる。
わざわざ古いSDKを利用する必要性は微塵もない。

327 名前:デフォルトの名無しさん :2005/12/28(水) 05:31:00
#defineでバージョン定義するだけでできなかったけ?

328 名前:327 :2005/12/28(水) 05:35:18
って誰に対して何を言ってるんだろうなオレはorz

>>325
普通にDLできるわけだが
http://www.microsoft.com/downloads/results.aspx?NextOrPrevClause=4%7c%2b02%2f15%2f2004%2020%3a00%3a23.097&DisplayLang=en&categoryid=2&sortCriteria=date&sortOrder=descending&nr=20

329 名前:デフォルトの名無しさん :2005/12/28(水) 19:55:56
>>325
> VC++6.0SP5とWindows2000の環境

捨てろ、そんな環境は。

330 名前:デフォルトの名無しさん :2005/12/28(水) 19:59:18
俺に言わせれば鉄壁だけどな
脊髄叩きする奴も多いが

331 名前:デフォルトの名無しさん :2005/12/28(水) 20:59:32
何がどう鉄壁なんだ。
>>325の状態になるのが鉄壁なのか。

332 名前:デフォルトの名無しさん :2005/12/28(水) 21:11:34
最新環境もそれはそれでトラブルあるが

333 名前:デフォルトの名無しさん :2005/12/28(水) 23:04:53
>>327
そうらしいんだけど何故かうちの環境では上手くいかなかった
コンパイルエラーが大量に出て

そのときやろうとしたのはX8のSDKでX7のソースをコンパイルしようとした

334 名前:デフォルトの名無しさん :2005/12/29(木) 11:14:15
コードが用意されていません。確認コードを取得することができませんでした。
この問題は問題にある可能性があります。と表示されて、コードが取れません。
使っているブラウザはオペラとファイヤーフォックスです。この解決方法はないんでしょうか。


335 名前:デフォルトの名無しさん :2005/12/29(木) 11:56:51
E S P 発 動


336 名前:デフォルトの名無しさん :2005/12/29(木) 12:02:21
【質問】
DirectX SDKをダウンロードしたいです。しかし、オペラやファイヤーフォックスでは
認証をパスできないのです。なにか回避策はないでしょうか?

【回答】
IEを使ってください。

337 名前:デフォルトの名無しさん :2005/12/29(木) 12:13:23
すげぇ、全く翻訳できなかったよ。

338 名前:デフォルトの名無しさん :2005/12/29(木) 16:15:09
>>336
あるねー。
俺もそれでオペラ使うの止めちゃったw

339 名前:デフォルトの名無しさん :2005/12/29(木) 19:40:37
すげぇ超能力だ

340 名前:デフォルトの名無しさん :2005/12/29(木) 21:40:57
>>336
エスパイキタコレ!!

341 名前:デフォルトの名無しさん :2006/01/01(日) 07:56:09
>>336
スゴスwwwwwwww

342 名前:デフォルトの名無しさん :2006/01/02(月) 18:32:55
ワロタ

343 名前:デフォルトの名無しさん :2006/01/03(火) 01:29:51
質問です

開発環境: DirectX8 SDK, Windows98, Borland C++ Compiler 5.5, BCC Developer

DirectXInput8インターフェースに対するデータフォーマットの設定ができません。
c_dfDIMouse2がBCC環境で使えませんでした。

つまり
SetDataFormat(&c_dfDIMouse2)
としたいのですが
Error: 外部シンボル '_c_dfDIMouse2' が未解決
とコンパイルエラーが出てしまいまいました。

http://72.14.203.104/search?q=cache:GWa5mmW44YAJ:twin-tail.jp/cgi-bin/programbbs/treebbs.cgi%3Fkako%3D1%26all%3D876%26s%3D880+Error:+%E5
%A4%96%E9%83%A8%E3%82%B7%E3%83%B3%E3%83%9C%E3%83%AB+%27_c_dfDIMouse2%27+%E3%81%8C%E6%9C%AA%E8%A7%A3%E6%B1%BA&hl=ja&lr=lang_ja
によると、c_dfDIMouse2と同じ変数を自分で作ってくださいということなので。

http://www.reactos.org/generated/doxygen/d5/df7/data__formats_8c-source.html
に記載されているdata_formats.cの00277〜00298行目をコピーし適当なヘッダに貼り付けました。
"未定義のシンボル DIDFT_OPTIONAL"と怒られたので
#define DIDFT_OPTIONAL 0x80000000
としたところコンパイルできました。

Warning: パブリックシンボル _c_dfDIMouse2 がモジュール (略1).OBJ と (略2).OBJ の両方に定義されている
なる警告が3行ぐらい出ましたが、無視してプログラムをデバッガで実行したところ
"SetDataFormat(&c_dfDIMouse2)"の行で"Stopped on exception throw"と表示され
プログラムが不正な処理で強制終了してしまいました。

長くなりましたが、c_dfDIMouse2の変数の作成方法は上記の方法でよかったのでしょうか。
又、別の策があればご教示お願いします…

344 名前:343 :2006/01/03(火) 03:15:00
http://www.geocities.com/foetsch/
のライブラリを使ったらいくらか解決しました
お騒がせしました

345 名前:デフォルトの名無しさん :2006/01/03(火) 09:04:26
>>343
c_dfDIMouse2をヘッダで定義しているからリンかでWarningになっている。
グローバル変数の定義はヘッダーでするものではない。ヘッダーで行うのは宣言だけ。

346 名前:デフォルトの名無しさん :2006/01/04(水) 19:19:30
DXSDKVersion: DirectX 9.0 Update 2005 Oct
OS: WindowsXP SP2
で開発をしています。
DirectGraphicsで2Dの描画を行いたいのですが、
α付の画像を表示すると描画したテクスチャ周りに約1ドットの黒い縁のようなものが現れてしまいます。
ttp://kjm.kir.jp/pc/?p=11645.jpg
これを無くすにはどのような設定をすればよろしいでしょうか?

347 名前:デフォルトの名無しさん :2006/01/04(水) 22:15:07
テクスチャーなどはプログラム終了時に必ず解放しないといけないんですか?
プログラムが終了すれば勝手に使用していたメモリは解放されないのですか?

348 名前:デフォルトの名無しさん :2006/01/04(水) 22:22:43
>>347
解放しなくても良い、と明示されているのでなければ
たとえ解放されるとしても、きちんと処理しましょう。

349 名前:デフォルトの名無しさん :2006/01/04(水) 23:41:52
(プログラム終了時に自動で解放されるから)解放しなくてもよい、
とどこかに明示されているかどうかを質問しているんじゃないの?

350 名前:デフォルトの名無しさん :2006/01/05(木) 00:02:03
プログラム終了時だったら、普通は自動で解放されるんじゃないの。
たまに自動で解放させていたら、メモリリークだと言う奴もいるらしいけど。

351 名前:デフォルトの名無しさん :2006/01/05(木) 01:37:50
自動的に開放されるのは明示されていない。
おそらく開放されるのだろうが、プログラムを組むなら自分で開放する処理は書くべき。
そういうくだらないところで手を抜く癖を付けると、プログラムの規模が大きくなったときに土壺にはまる。

352 名前:デフォルトの名無しさん :2006/01/05(木) 01:42:26
C#でDirectXを使おうと思うのですが、
ManagedDirectXを使用するのが基本なのでしょうか。
それとも、unsafeながらManagedでないDirectXを使用できるのでしょうか(するべきなのでしょうか)

もう一つあるのですが、DirectXを使用した開発というか勉強にあたり、
手持ちのC#2003 Standardと、フリーDLできるC#2005 Expressではどちらを使用すべきでしょうか?


353 名前:デフォルトの名無しさん :2006/01/05(木) 01:49:16
>>352
是非ともMDXを使え。
下手なUnmanaged DirectXのライブラリなんかより優れてるぞw

開発環境とかの違いは知らないけれど
2005はC#の言語仕様自体が向上してるんだっけ?
まあ別にどっちでもいいんじゃ。
個人的にはVisualStudioのエディタさえあればという感じ。
秀丸メインだったけどC#使い始めてから乗り換えそう…

354 名前:デフォルトの名無しさん :2006/01/05(木) 15:26:19
2005だと、MDXがまだβやね。
しばらくは2003で開発を進めて、βが取れた頃に2005へ
乗り換えるのがお勧め。

※APIが少々変わっても泣かないことが条件

355 名前:352 :2006/01/05(木) 22:32:13
MDXのがいいですか。
多少のスピード差よりも使いやすい方がいいので、
そうしてみます。
とりあえずは2003で。
2005のProでも出たら乗り換えようかな・・・。

356 名前:デフォルトの名無しさん :2006/01/06(金) 07:00:05
質問失礼します。

class MY_HIERARCHY: public ID3DXAllocateHierarchy
{
public:
STDMETHOD(CreateFrame)(THIS_ LPCSTR, LPD3DXFRAME*);
}


HRESULT MY_HIERARCHY::CreateFrame(LPCSTR Name,LPD3DXFRAME *ppNewFrame)
{
処理実行

}


DirectXでD3DXLoadMeshHierarchyFromX実装のために
ID3DXAllocateHierarchyの派生クラス「MY_HIERARCHY」を作成しているのですが
上記の内容でコンパイラを通すと

エラー E2356 __stdcall MY_HIERARCHY::CreateFrame(const char *,_D3DXFRAME *)' の再宣言で型が一致していない

といったエラーが出てしまいます。いろいろ調べてみたのですがどうしても問題が解決しないので、
エラーの改善方法が分かる方がいたら教えていただけないでしょうか?

ちなみにコンパイラはBorland - Borland C++ Compiler 5.5、TOOLはBCC Developerを使っております。
どうかよろしくお願いします。

357 名前:デフォルトの名無しさん :2006/01/06(金) 07:48:22
>>356
文字通りのエラーだろ。その奇天烈なマクロによる宣言と実体定義で型が合わないと言う。
実体定義の方でも__stdcallつけたら通るんでね?
#以下、掘り下げるならスレ違いに付きbccスレにでも。

358 名前:デフォルトの名無しさん :2006/01/06(金) 09:05:21
>>356
もし俺がコンパイラだったとしても、同じエラー出すよ?

359 名前:デフォルトの名無しさん :2006/01/06(金) 09:36:13
357さん 358さん
回答有難うございます。

明らかに違っている部分があるようですので勉強し直してきます。

360 名前:デフォルトの名無しさん :2006/01/06(金) 09:42:46
>>356
STDMETHODで宣言した関数の定義のためにSTDMETHODIMPマクロがある。

361 名前:デフォルトの名無しさん :2006/01/08(日) 16:57:34
DirectX9 SDKにはDirectX9以前のDirectXが全部入ってると思ってたんですけど、
これは間違いですか?

なんか #include d3dx8.h がいきなりエラーなんですけど。
ちなみに #include d3dx9.h は通るみたい・・

↑のは <> ←入れたら出ないみたいなので省略してます。

362 名前:361 :2006/01/08(日) 17:11:42
あれ?なんかコンパイル通りました。
#include <d3dx8.h> を #include <d3dx9.h> にしたら通りました。

謎だ。こういうものなのか。。

363 名前:デフォルトの名無しさん :2006/01/08(日) 17:22:49
>>361
「バージョン定数」でヘルプを調べてみろ。

364 名前:デフォルトの名無しさん :2006/01/08(日) 17:36:34
ヘルプが英語ばっかのやつだったのでよくわかりませんが、
ググってみると↓のに当たりました。

#ifndef DIRECT3D_VERSION
#define DIRECT3D_VERSION 0x0800
#endif

DirectX8の機能を使いたいときは、#includeの前に
これ書いとけばいいんでしょか。

365 名前:デフォルトの名無しさん :2006/01/08(日) 17:42:59
更新速度を要するゲームで文章を表示させたいのですが、
DrawTextは処理が重くあまり使用したくありません。
かといって画像として用意しておくには膨大な量になるため不可能に近いです。
画像を用意できないのであればDrawTextで妥協するしかないのでしょうか。


366 名前:デフォルトの名無しさん :2006/01/08(日) 17:50:40
>>365
そのシーンで使うときに画像として用意して使えばいいじゃん。

367 名前:デフォルトの名無しさん :2006/01/08(日) 17:52:52
1文字1文字の画像を作ってそれを表示すれば良い

368 名前:デフォルトの名無しさん :2006/01/08(日) 17:54:00
だから、あれな。
なうろーでぃんぐやってるときにフォントからテクスチャ作ってもいいし、
テキスト表示する直前にフォントからテクスチャ作ってもいいし。
そういうことよ。

369 名前:デフォルトの名無しさん :2006/01/08(日) 17:54:54
で、使い終わったら削除と。

370 名前:デフォルトの名無しさん :2006/01/08(日) 18:04:06
レスありがとうございます。

>>366-367
だから画像だと膨大な量に(´・ω・`)
FPSっぽいアクションゲームを作っているのですが、
仲間(NPC)からの指示や会話などBFみたいに表示させたいのです。
>>368の後者のやり方で毎フレームDrawTextをしなくてもいいですがやはりその「1回」が重く、
会話自体も頻繁に行われるため効果があまり出ません。
前者は試していませんので後でやってみようと思います。
ネット接続はしないので自分の会話がない分準備できそうですね。

60fpsを維持しようとしていますがハイスペックじゃなければ30fpsに下げるべきか・・




371 名前:デフォルトの名無しさん :2006/01/08(日) 18:14:02
>>370
あのさ、全体の描画が60FPSで、
何故発想が同じ60回テクスチャを作り直そうという
馬鹿な考え方しかできないんだ?

どんなに会話が頻繁に行われても、
人間が60FPSで切り替わる文字を認識できるわけがないだろう?
テキストの内容が変化したときだけテクスチャを更新すればいいだけ。

落とすのは全体のFPSではなく、テクスチャの更新頻度。
あらゆる作業をFPS主体で考えるな。

372 名前:デフォルトの名無しさん :2006/01/08(日) 18:19:29
>>370
フォントを画像で持ったとしても2ビットや4ビットのBMPなら圧縮せずとも1〜2MBじゃないかね。
それほど膨大かな。

373 名前:デフォルトの名無しさん :2006/01/08(日) 18:20:00
>>370
フォントってそういうもんだ。
君がやってるのは最適化だからね。
色んな場合で最適な方法をとらなきゃいけない。

そもそも膨大な量って何を表示したらそうなるの?

ナウローディングでフォントからテクスチャを作成しておいて、
テクスチャ画像は圧縮しておいて、表示するときに解凍するって手もあるよ。
画面に表示するフォントのサイズが固定であればよく使う文字、
例えばひらがなとアルファベットはあらかじめ作っておいてもたいした量じゃないよね?
文章を表示するにしても一度に表示する予定の文字を変換するんじゃなくて
表示順になぞって1フレにつき一文字ずつフォントからテクスチャを作成していってもいいわけだよね。

はなっから画像に直す方法を駄目だって決め付けてるみたいだけど
君の文章からは考えうるだけやった跡がみられないし、
君の作ってるゲームがどういう状況にあるのかわからないからこれ以上アドバイスすることはできないな。
せめて一度に画面にでる文字の数とそのサイズと用途だけでも教えてもらえば
いいアドバイスができるかもしれない。

374 名前:デフォルトの名無しさん :2006/01/08(日) 19:16:21
再びレスありがとうございます。

画像が膨大な量ってテクスチャとして用意すれば少ないですが、
単純に(ペイントなどで)用意すればかなり多いです。
被弾したときの「おい、大丈夫か!?」みたいなステージを問わない文章は問題ないですが、
「北東の民家の中で待機してろ。」などステージ毎オリジナルのものが1ステージ100〜150あります。
1文削除したいときは画像全体を修正するだけでなくプログラム自体も変えないといけません。
この方法では文章1行をw:256 h:20で、テクスチャのサイズ512x512で作ってましたが、
1つ目の画像を書き終わったときに修正しようと手を加えている途中に挫折しました。
実際は30強のステージ分(マップは5種類)作らないといけないので1日中やっても半年近くかかります。

テクスチャとして描画(1フレームで)するのは先ほども書いた通り処理落ちします。
5秒に1行ペースで文章が長ければ2〜3行になることがあります。
このペースで処理落ちすると操作しにくいというよりもストレスが溜まります。
FPSでは致命的な状態になっています。。

まず>>368,373の事前準備に仕様を変えてみます。


375 名前:デフォルトの名無しさん :2006/01/08(日) 19:20:09
完全に思考が停止してるな。
こういう人には最適化なんて物は不可能だとおもふ。
あきらめれ。

376 名前:デフォルトの名無しさん :2006/01/08(日) 19:50:57
事前に画像化しないのならば、
GetGlyphOutline等で取得したフォントを1文字単位でシステムメモリ上のキャッシュに持つのは?
ラノベのセリフのような日本語なら、バッファは256個もあれば十分に効率良いと思うけど。



377 名前:デフォルトの名無しさん :2006/01/08(日) 19:51:45
初歩的な質問で恐縮なのですが
DirectXの頂点のレンダリングのチュートリアルの部分で
VOID* pVertices;
if( FAILED( g_pVB->Lock( 0, sizeof(vertices), (void**)&pVertices, 0 ) ) )
    return E_FAIL;

このLock関数によってpVerticesは頂点バッファ内のアドレスを指すようになるという
考えでいいんでしょうか?




378 名前:デフォルトの名無しさん :2006/01/08(日) 19:53:59
ttp://www.borujoa.org/upload/source/upload4160.jpg

379 名前:デフォルトの名無しさん :2006/01/08(日) 20:13:26
>>377
YES

380 名前:377 :2006/01/08(日) 20:30:12
>>379
ポインタのアドレスを渡す関数って要は
ポインタ = new オブジェクト(色んな設定)をややこしくしたものって感じなんですね
ありがとうございました

381 名前:デフォルトの名無しさん :2006/01/09(月) 01:27:46
D3DXSPRITEを使用してスプライトの上下反転を行いたいのですが、どうにも方法が見つかりません。
拡縮、回転はD3DXMatrixTransformation2Dによって実現できているのですが、、、
テクスチャーのUVを単純に反転(rect.topとrect.bottomを入れ替える)させるだけではダメでした。
何かアドバイスをお願いします。
VC++.netとDirectX9(summer,2004)の環境です。


382 名前:デフォルトの名無しさん :2006/01/09(月) 01:31:15
>拡縮、回転はD3DXMatrixTransformation2Dによって実現できているのですが、、、
拡大縮小が出来て、何故上下反転が出来ないことになるのか、さっぱり理解できない。

383 名前:デフォルトの名無しさん :2006/01/09(月) 01:38:12
>>382
すみません。実現できているのは回転のみでした。いまのところ拡大縮小の必要性がなかったので、
それは試していません。
こんな感じです。
D3DXMatrixTransformation2D(&matWorld, NULL, 0.0f, NULL, &cVector, D3DXToRadian(rot), NULL);
まだ初心者でよく理解できずに試行錯誤中です。反転と拡大縮小に関連があるのでしょうか。



384 名前:デフォルトの名無しさん :2006/01/09(月) 01:42:35
試行錯誤で何とかなるもんじゃない。
基本を学べ。、

385 名前:デフォルトの名無しさん :2006/01/09(月) 01:44:02
>反転と拡大縮小に関連があるのでしょうか。
関連というか拡大縮小そのものずばり反転。

386 名前:デフォルトの名無しさん :2006/01/09(月) 01:52:24
>>384
>>385
はい。きちんと勉強します。ありがとうございました。

387 名前:デフォルトの名無しさん :2006/01/09(月) 11:23:15
DirectXの列挙型には必ず最後に
〜_FORCE_DWORDっていうのがありますけど、
これって何の意味があるんですか?

388 名前:デフォルトの名無しさん :2006/01/09(月) 13:32:56
>>387
主な理由はCとC++の仕様の違いかな。

Cでは列挙型はintと同サイズと決まっているが、
C++では一番大きい値を表現できる整数型となっている。
ようするに、8bitで表現できる範囲しか使ってなければ、
sizeof(列挙型)==1になってしまう。(Cでは4)

389 名前:デフォルトの名無しさん :2006/01/09(月) 15:50:26
>>388 m9(^Д^)プギャー

390 名前:デフォルトの名無しさん :2006/01/09(月) 18:14:43
>>389
なぜ??

391 名前:デフォルトの名無しさん :2006/01/10(火) 21:20:53
DirectPlayでピアtoピア接続に挑戦中なんですが
ホスト側でセッションを作ったときのホスト情報やアドレス情報から
ホストマシンのIPアドレス(192.168.x.x)を取得することはできますか?


392 名前:デフォルトの名無しさん :2006/01/10(火) 22:21:33
DirectPlayは脆弱性により過去の遺物になった

393 名前:391 :2006/01/10(火) 23:50:36
どういうことですか?

394 名前:デフォルトの名無しさん :2006/01/11(水) 00:33:04
>>391
脆弱性を使ってなんかチートできるとか若しくはスーパーハカーが(ry
詳しくは知らないけど要はセキュリティホールみたいなもんかと

DirectPlayは今後のバージョンで無くなるらしいよ。
自力でP2Pネットワークのライブラリを作るしかないと思う。
でもDirectPlayクラスのものを構築するとなると相当大変だと思うんだが…

395 名前:デフォルトの名無しさん :2006/01/11(水) 01:39:19
WinSockくらい自分で触れた方が何かと糧になるよ

396 名前:デフォルトの名無しさん :2006/01/11(水) 01:53:44
391は上手いことはぐらかされてることに気付こう...

397 名前:デフォルトの名無しさん :2006/01/11(水) 02:26:25
んーたぶんこの辺かな?

IDirectPlay8Peer::GetPeerAddressでIDirectPlay8Addressを取得して
IDirectPlay8Address::GetComponentByIndexでIPアドレス取得かな。

まあ後は適当に調べてみてー
SDKのヘルプに詳しい説明は入ってるよ。

>>395
WinSockを使うこと自体は簡単だと思うんだけどねぇ…
通信量制御とかUDPで通信保障とか色々やり始めると結構めんどくさくない?
そういうのは一筋縄には行かないと思うんだけどな

398 名前:デフォルトの名無しさん :2006/01/11(水) 08:57:27
WinSockを使った通信ゲームの作成で、お勧めの書籍とか無い?

399 名前:デフォルトの名無しさん :2006/01/11(水) 09:15:21
>>398
http://www.amazon.co.jp/exec/obidos/ASIN/4797328479/

400 名前:デフォルトの名無しさん :2006/01/11(水) 09:23:11
チョン ウンチョル (著)

401 名前:デフォルトの名無しさん :2006/01/11(水) 09:38:53
チャッチュッ(著)

402 名前:デフォルトの名無しさん :2006/01/11(水) 13:02:02
チャットウインドウのような感じで文字入力をしたいのですが、
どうやるのが良いでしょうか。できれば日本語も入力できればいいのですが。

403 名前:デフォルトの名無しさん :2006/01/11(水) 13:04:36
>>402
DXに色々なUIのサンプルが有るから、それをパクるか参考にすれば?

404 名前:391 :2006/01/11(水) 13:19:29
>>397
すいません、ヘルプは読みましたがあまり良くわかってません

GetComponentByIndexで取れるのは
providerなる文字列と十数バイトからなるGUIDだけでした

GetComponentByName(L"hostname", wstr, ...
こんな感じでホスト名を取得するサンプルソースを見かけた
のですがエラーになってしまいます

いまはWinsockのgethostbynameでIPアドレスを取っています

405 名前:デフォルトの名無しさん :2006/01/12(木) 20:51:17
マウスでウインドウのクライアント領域をドラッグしたとき
モデルが回転や移動するようにさせたいのですが、そのときの画面の更新方法に悩んでます。
まずやってみたのがWM_MOUSEMOVEを拾ったときにWM_PAINTをPostMessageして
そこでレンダリングと言う方法だったのですが、そうするとマウスポインタの動きがガタガタになってしまいました。
そこでまず起動時に別スレッドをたてて、WM_PAINTを拾ったときに描画フラグを立てると言った方法と試したのですが、
これもマウスポインタの動きがガタガタになってしました。
さらにアイドル時にレンダリングと言う方法に変えてみたのですが、さらに酷い事になってしまいました。

常にマウスポインタが滑らかに動くようにしたいのですが、何か良い方法は無いのでしょうか?
よろしくお願いします。

406 名前:デフォルトの名無しさん :2006/01/12(木) 20:54:39
>>405
DXのサンプルの描画方法や入力をパクるか参考にすれば?
君みたいな方法は使ってない。

407 名前:デフォルトの名無しさん :2006/01/12(木) 21:49:51
>>405
WM_PAINTはPostするものではないぞ。

408 名前:デフォルトの名無しさん :2006/01/12(木) 22:08:13
>>405
InvalidateRectしろ馬鹿モン

409 名前:デフォルトの名無しさん :2006/01/12(木) 22:38:47
そもそも描画のトリガにメッセージを利用する必要性がない。


410 名前:デフォルトの名無しさん :2006/01/12(木) 23:37:20
ツール系でブンブンまわされるのもヤダ

411 名前:405 :2006/01/12(木) 23:57:39
>>405
レスありがとうございます
SDKのサンプルのソースを読んでみたところ、
アイドル時とWM_PAINTを受け取った時ににレンダリングしているような気がするのですが…。

>>407-408
そうだったんですか。
これからはInvalidateRectでいきます。
どうもです。

>>409
ゲームならばアイドル時とかにガガガーっとレンダリングさせればいいと思いますが、
今自分が作っているのはゲーム製作用のツールなんで、
必要な時にだけ再描画させたいのです。


412 名前:デフォルトの名無しさん :2006/01/13(金) 00:14:18
自演乙

413 名前:411 :2006/01/13(金) 00:25:56
あ、ホントだ。自演になってる。
×>>405
>>406
です。

414 名前:デフォルトの名無しさん :2006/01/13(金) 03:46:36
DirectX対応のゲームを自動でコントロールするソフトを
作っているのですがうまくいきません
SendMessageでWM_CHARやWM_KEYDOWN WM_KEYUPなどを送ってみても
まるっきり反応しません。なぜかそのゲームのテキストボックス部分には
遅れるのですが、もしかしてDirectX対応のゲームでは
それ以外の方法でキー入力を認識しているのでしょうか?


415 名前:デフォルトの名無しさん :2006/01/13(金) 04:00:32
mouse_eventとかkeybd_eventを使うと幸せになれるかも

416 名前:デフォルトの名無しさん :2006/01/13(金) 04:05:15
DirectInput

417 名前:デフォルトの名無しさん :2006/01/13(金) 04:05:59
つ DirectInput

418 名前:デフォルトの名無しさん :2006/01/13(金) 04:06:48
ゲームの制御をウインドウメッセージではやらんね、ほとんど。

419 名前:デフォルトの名無しさん :2006/01/13(金) 11:09:25
>>414
どうみても釣りゲームです。
ありがとうごぜいますた

420 名前:デフォルトの名無しさん :2006/01/13(金) 15:26:07
DirectInputはジョイスティック系の入力かと勘違いしておりました

DirectInput経由でキー入力を取得してるアプリに
擬似的にキー入力を送り込むにはどのような方法がありますでしょうか?
メッセージ処理ではないですよね?

421 名前:デフォルトの名無しさん :2006/01/13(金) 17:54:43
LunaというDXライブラリを使っているのだが
自分ですべて書くより速度って遅くなる?


あと、DX9ではHLSLの設定は必須?



422 名前:405 :2006/01/13(金) 18:47:35
色々やってみたのですがどうしても上手くいかなくて
まさかと思ってカーソルを標準にしてみたら、ガタつきは無くなりました。
コレで解決しました…と言う事になるのかな…?

でも他のソフト(例えばモデリングソフトのメタセコイアとか)はカーソルが標準じゃなくてもガタつかないし…。
あ”〜

423 名前:デフォルトの名無しさん :2006/01/13(金) 18:55:35
HLSLなんて随分難しい言葉知ってるんですね。
その割にはDXライブラリ・・・ う〜〜ん・・・

424 名前:デフォルトの名無しさん :2006/01/13(金) 19:27:53
2005DEC
DirectShowは何処に行ったの?

425 名前:デフォルトの名無しさん :2006/01/13(金) 20:06:21
>>424
>>316

426 名前:デフォルトの名無しさん :2006/01/13(金) 20:09:25
>>418
意外と市販ゲームでメッセージ使ってるの多いよ。
オンラインゲームはチャット機能でIME使うから、
DirectInputは使いにくいのかも。

>>424
今頃になって何を言ってる。

427 名前:デフォルトの名無しさん :2006/01/13(金) 20:46:12
なぜかノートPCで全画面モードにした時だけ、マウスカーソルが激しくちらつく。
デスクトップの場合はそんなことない。
誰かわかるひと教えて!

428 名前:デフォルトの名無しさん :2006/01/13(金) 20:52:24
ノートPCがポコいんじゃないの?

429 名前:デフォルトの名無しさん :2006/01/13(金) 21:41:01
マウスカーソールが専用のレイヤで出力されていないから。

ビデオカードによって能力の有無やサイズの上限などが決まっていて、
カーソル用のレイヤが利用できない場合は、通常の出力と混ざる。
ウインドウモードの場合はクリッパーが使用されている限り、
出力が混ざっていてもちらつかないように自動的に処理される。

430 名前:デフォルトの名無しさん :2006/01/13(金) 21:54:38
訳あってDirectX 8.1の開発環境を作る必要があるのですが、
マイクロソフトのダウンロードページからはDirectX 9.0 SDKしか見つかりません。
DirectX 8.1 SDKを入手する方法はありますでしょうか?


431 名前:デフォルトの名無しさん :2006/01/13(金) 21:57:56
>>428-429
ありがとう!
ということは、俺のプログラミングの腕が悪いんじゃなくて、
ノートが悪いって事なんだよね!
サンキュー!

432 名前:デフォルトの名無しさん :2006/01/13(金) 22:04:18
>>430
書籍付録

433 名前:デフォルトの名無しさん :2006/01/13(金) 22:17:53
>>430
9.0SDKでも8.1のプログラムはできる。




434 名前:デフォルトの名無しさん :2006/01/13(金) 22:51:08
>>430
ダウンロードページで検索すれば古いSDKも出てこない?

435 名前:387 :2006/01/14(土) 12:09:24
>>388
そのような仕様の違いがあったとは知りませんでした。
ありがとうございました。

436 名前:デフォルトの名無しさん :2006/01/14(土) 19:33:56
まあ389が突っ込んでるように間違いがあるんだけどな。

437 名前:デフォルトの名無しさん :2006/01/14(土) 21:20:56
>>389 = >>436

438 名前:デフォルトの名無しさん :2006/01/14(土) 22:26:23
>437
違うけどな。

×sizeof(列挙型)==1になってしまう。
○sizeof(列挙型)==1としてコンパイルされても構わない。(処理系依存)

ついでに言えば、Cのint型が4byteだと固定されてもいない。

439 名前:430 :2006/01/15(日) 00:25:35
>>432
調べてみました。高そうですがGame Programming Gems2 あたりでしょうか?

>>433
多分その通りだと思うのですが、
DirectX 9 SDKでも良いのか発注元に聞いてみます。

>>434
DirectX 8.1のランタイムは見つかるのですが、SDKは9しか見当たらないです。

440 名前:デフォルトの名無しさん :2006/01/15(日) 00:29:13
>>439
何でわざわざそんな高い本を選ぶw

441 名前:430 :2006/01/15(日) 00:33:47
さらにググってここで見つけました。
ttp://www.codecomments.com/Visual_Basic_DirectX/message722133.html


442 名前:デフォルトの名無しさん :2006/01/15(日) 01:56:50
質問です。サイズ256X256のbitmapを表示させようと思い、
以下のようなコードを書いたのですが、どうも上手く表示されません。
どのようにすればちゃんと表示させられるでしょうか?ご指南願います。
Draw関数
vec2Pos.x = PosX;
vec2Pos.y = PosY;

SetObjectInfo(v1,vec2Pos,D3DXVECTOR2(256.0f,256.0f),D3DCOLOR_XRGB(255,255,255),0.0f,0.0f,1.0f,1.0f);

m_pDevice->SetTexture(0,m_pTexture);
m_pDevice->SetFVF(MY_FVF_VERTEX);
m_pDevice->DrawPrimitiveUP(D3DPT_TRIANGLEFAN,2,v1,sizeof(MY_VERTEX));

void CTexture::SetObjectInfo(MY_VERTEX *v,D3DXVECTOR2 &vec2Pos,D3DXVECTOR2 &vec2Size,D3DCOLOR color,float tu0,float tv0,float tu1,float tv1)
{
SetVertex(&v[0],vec2Pos.x,vec2Pos.y,1.0f,color,tu0,tv0,1.0f);
SetVertex(&v[1],vec2Pos.x + vec2Size.x,vec2Pos.y,1.0f,color,tu1,tv1,1.0f);
SetVertex(&v[2],vec2Pos.x + vec2Size.x,vec2Pos.y + vec2Size.y,1.0f,color,tu0,tv1,1.0f);
SetVertex(&v[3],vec2Pos.x,vec2Pos.y + vec2Size.y,1.0f,color,tu1,tv0,1.0f);

}

void CTexture::SetVertex(MY_VERTEX *v,float x,float y,float z,D3DCOLOR color,float tu,float tv,float rhw)
{
v->x = x;
v->y = y;
v->z = z;
v->color = color;
v->tu = tu;
v->tv = tv;
v->rhw=rhw;
}

443 名前:442 :2006/01/15(日) 02:17:31
自己解決しました。スレ汚しすみませんでした。

444 名前:デフォルトの名無しさん :2006/01/15(日) 07:06:26
>>442
どうせなら、何が原因だったのか教えてください。

445 名前:デフォルトの名無しさん :2006/01/15(日) 08:05:04
私のテクスチャクラスは、頂点情報はもとより、テクスチャ座標を操作したりするためのスクリプトファイル、
ローカルなシーンツリーやゲームのキャラクターもメンバに持つ、超多機能クラスなんです。
それで、自キャラの死亡時用のイベントハンドラが間違っていたため、表示に失敗していました。


446 名前:デフォルトの名無しさん :2006/01/15(日) 08:07:54
>超多機能クラスなんです。
なんかワロタ

447 名前:デフォルトの名無しさん :2006/01/15(日) 09:16:27
ちょっと多機能すぎるんと違いますか?

448 名前:デフォルトの名無しさん :2006/01/15(日) 10:54:12
多機能?掃き溜めの間違いじゃない?

449 名前:デフォルトの名無しさん :2006/01/15(日) 11:11:13
>>446
なんか通販の売り込み文句みたいだなw

450 名前:デフォルトの名無しさん :2006/01/16(月) 07:19:05
>430じゃないんですが
9SDK(2005Dec)を落としてきて8.1のプログラムをビルドしようしたんですけど、
d3dx8.hやd3dx8.libがなくて出来ませんでした。

上記のファイルは9のSDKになってからどこへ行ったのでしょうか?

451 名前:デフォルトの名無しさん :2006/01/16(月) 07:55:04
>>450
なくなった

452 名前:デフォルトの名無しさん :2006/01/16(月) 08:03:44
世間的には「多機能クラス=糞設計」だわな
テクスチャ操作だけの独自スクリプトがあるとか噴飯ものですわ

453 名前:デフォルトの名無しさん :2006/01/16(月) 08:22:33
機能別に細分化して組み立てれ

454 名前:デフォルトの名無しさん :2006/01/16(月) 08:23:02
>451
とりあえず昔の本引っ張り出して付録CDから8SDK入れてビルドしましたけど、
なんで9には無いんですかね?MS的に古い技術は闇に葬る流れ?

455 名前:デフォルトの名無しさん :2006/01/16(月) 14:40:52
pD3D = Direct3DCreate9( D3D_SDK_VERSION );
pD3D->Release();
を繰り返し呼ぶとメモリ使用量がどんどん増えていってしまうのですが、
これはDirect3Dにメモリリークのバグが存在するということなのでしょうか?


456 名前:デフォルトの名無しさん :2006/01/16(月) 16:02:32
>>455
一度mallocとfree繰り返してみろ

457 名前:デフォルトの名無しさん :2006/01/16(月) 17:07:12
>>454
いや、DirectXはCOMを使っている。
COMではバージョンアップしても上位互換性を保たなければならない。

458 名前:デフォルトの名無しさん :2006/01/16(月) 17:15:37
DirectXは上位互換の能力をもっているが、
COMだからといって上位互換でなければならないなんて規約は存在しない。
よってCOMだからという理由で上位互換というのは誤り。

459 名前:デフォルトの名無しさん :2006/01/16(月) 22:09:20
ランタイムとしては上位互換を保つんだろうけど
SDKにd3dx8のライブラリを入れないのは
ある意味過去の遺物の切捨てではなかろうか

460 名前:デフォルトの名無しさん :2006/01/16(月) 23:10:17
結論: DirectX8は動くが、開発はできない。

461 名前:デフォルトの名無しさん :2006/01/16(月) 23:39:04
>460
D3DX8だけじゃなくてD3D8も入ってないの?

462 名前:デフォルトの名無しさん :2006/01/16(月) 23:41:13
見れば分かると思うが・・・
入ってるよ。

463 名前:デフォルトの名無しさん :2006/01/17(火) 00:57:19
8のヘッダが入っていない場合は9のヘッダを使って開発できる
まだダウンロードできるSDKの中に8のヘッダが入ってる奴あると思うぞ

8SDKがないとまともに開発できないと思うんだがヘルプとかどうすんだ?
保守の必要があるのに古いSDK捨てちゃったのカナ

464 名前:デフォルトの名無しさん :2006/01/17(火) 01:12:23
October 2004 に8のヘッダ入ってましたよ


どうでもいい事かも知れませんが・・・

465 名前:デフォルトの名無しさん :2006/01/18(水) 19:11:22
Direct3Dがさっぱりなんだが・・・
行列とかまだ習い始めたばっかだし、意味わかんね
助けて

466 名前:デフォルトの名無しさん :2006/01/18(水) 19:19:21
習い始めたばかりなら丁度いいじゃねーか
授業中にどうどうとゲームの質問できるぞw

467 名前:デフォルトの名無しさん :2006/01/18(水) 20:46:07
行列計算できるからといってそれが使えないと意味が無い。
それは数学科修了の俺だがなっっ!(`´)

468 名前:デフォルトの名無しさん :2006/01/18(水) 21:16:46
数Bで3次元のベクトルの話に入っただけで(´∀`)ウマーな俺は、まだまだだな・・・orz

469 名前:デフォルトの名無しさん :2006/01/18(水) 21:32:18
メッシュロードしたら物凄く大きかったんだけど、これは読み込むときに縮めるの?

470 名前:デフォルトの名無しさん :2006/01/18(水) 22:13:22
とりあえず距離が100あるとする。
この距離を徒歩でいくとすると、楽勝で歩ける距離なのか、死ぬまでたどり着かない距離なのか、
単位が存在しないデータで大きいと判断できる>>469は答えられるんだろうな。
馬鹿の考えることは常人の想像を超える。

471 名前:デフォルトの名無しさん :2006/01/18(水) 22:39:37
>>470
おk把握したw
FLOATで色々指定してやったら何とかなったw

472 名前:デフォルトの名無しさん :2006/01/19(木) 00:55:03
「w」に悔しさと悲しさがにじみ出てるな。

473 名前:デフォルトの名無しさん :2006/01/19(木) 01:13:02
まぁそう反応するしかない罠

474 名前:デフォルトの名無しさん :2006/01/19(木) 01:15:40
オレにはおばあちゃんのおっぱいにしかみえない

475 名前:デフォルトの名無しさん :2006/01/19(木) 12:24:52
<○  ウフーン
  W>
  |<

476 名前:デフォルトの名無しさん :2006/01/19(木) 12:47:45
    _, ,_  パーン
 ( ‘д‘)
  ⊂彡☆))○

477 名前:デフォルトの名無しさん :2006/01/20(金) 01:42:48
以下のプログラムに関する質問です。
ttp://homepage3.nifty.com/catfood/up/src/up1059.txt
53行目のD3DCMP_GREATEREQUALを
D3DCMP_GREATERに変更しないと
奥の三角形が手前に表示されてしまいます。
自分ではどちらでも同じ表示になると考えていたのですが、
なぜD3DCMP_GREATEREQUALだとそうなってしまうのでしょうか?


478 名前:デフォルトの名無しさん :2006/01/20(金) 02:37:47
>>477
> d3dvp.MinZ = 0.9f;
> d3dvp.MaxZ = 0.1f;
MinZ < MaxZ じゃないとダメよ。
デバッグランタイムなら一応エラーメッセージが出るわ。
リリースランタイムだと多分、MaxZ が MinZ と同じ値になるんじゃないかしら。
ピクセルのZ値が常に同じだから、D3DCMP_GREATEREQUAL なら常に上書き、
D3DCMP_GREATER なら常に上書き不可になるわ。

Z値で余計なことしてるけど、手前を0.0f, 奥を1.0fにした方が無難よ。
下みたいに直せばおわり。

// コメントアウト
// IDirect3DDevice9_GetViewport( pdev, &d3dvp );
// d3dvp.MinZ = 0.9f;
// d3dvp.MaxZ = 0.1f;
// IDirect3DDevice9_SetViewport( pdev, &d3dvp );

// IDirect3DDevice9_SetRenderState( pdev, D3DRS_ZFUNC, D3DCMP_GREATEREQUAL );
IDirect3DDevice9_SetRenderState( pdev, D3DRS_ZFUNC, D3DCMP_LESSEQUAL );

// IDirect3DDevice9_Clear( pdev, 0, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,0), 0.0f, 0 );
IDirect3DDevice9_Clear( pdev, 0, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,0), 1.0f, 0 );


479 名前:デフォルトの名無しさん :2006/01/20(金) 04:51:13
XBOX360の通信部分はDirectPlayなのでしょうか?

480 名前:477 :2006/01/20(金) 08:33:07
>>478
そうなんですかー。
某3Dシステムはデプステストで
NEVER, GEQUAL, GREATER, ALWAYS
の4つしかサポートしてなくて、それに合わせる形で
アップしたソースみたいになったのですが・・・。
無理ということなら適当にごまかすことにします。
ありがとうございました。


481 名前:デフォルトの名無しさん :2006/01/20(金) 11:37:16
DirectX SDK(Oct,2005)をインストールして、bccでdirectxのプログラミングを始めたんですが、
Error: 'F:\TEST\TEST\DXGUID.LIB' contains invalid OMF record, type 0x21 (possibly COFF)
てエラーが出ます。
調べてみるとvc++用ライブラリはリンク出来ないようです。
つまりbccではDirectX SDKは使えないということですか?

482 名前:デフォルトの名無しさん :2006/01/20(金) 11:45:33
.objや.libが使えないだけで、SDK自体は使える。

483 名前:デフォルトの名無しさん :2006/01/20(金) 11:47:52
>>481
C++Builder resources
http://www.clootie.ru/cbuilder/index.html#DX_CBuilder_SDKs


484 名前:デフォルトの名無しさん :2006/01/20(金) 13:23:28
>>480
それならビューポートの代わりに射影行列に細工すればできそうね。
射影変換後の z:0〜w が z:w〜0 になるようにすればおkよ。
(wはいじらないから、変換後のZの偏り(手前が密)はちゃんとそのままよ。)

// d3dvp.MinZ = 0.9f;
// d3dvp.MaxZ = 0.1f;
d3dvp.MinZ = 0.1f;
d3dvp.MaxZ = 0.9f;

D3DXMATRIX matRZ;
matRZ._11 = 1.0f; matRZ._12 = 0.0f; matRZ._13 = 0.0f; matRZ._14 = 0.0f;
matRZ._21 = 0.0f; matRZ._22 = 1.0f; matRZ._23 = 0.0f; matRZ._24 = 0.0f;
matRZ._31 = 0.0f; matRZ._32 = 0.0f; matRZ._33 = -1.0f; matRZ._34 = 0.0f;
matRZ._41 = 0.0f; matRZ._42 = 0.0f; matRZ._43 = 1.0f; matRZ._44 = 1.0f;
D3DXMatrixMultiply( &matProj, &matProj, &matRZ );

485 名前:デフォルトの名無しさん :2006/01/20(金) 19:02:31
>>482-483
サンクス
やってみます。

486 名前:デフォルトの名無しさん :2006/01/21(土) 05:33:06
効果音やBGMを追加したいのですが、DirectSoundとDirectMusicの違いがよく判りません。
どちらを勉強したらいいでしょうか?

487 名前:デフォルトの名無しさん :2006/01/21(土) 06:06:54
>>486
>>1

488 名前:486 :2006/01/21(土) 06:29:20
えと、では詳しく

BGMではMP3orOGGを、効果音はWaveを使おうと思っています。
効果音に関しては、速度などの変更と3Dでの効果を使いたいです。
CDからのストリーム再生は今のところ考えていません。

489 名前:デフォルトの名無しさん :2006/01/21(土) 06:36:11
>3.SDKを見ても、Googleで検索しても、いまいち理解できない人

490 名前:デフォルトの名無しさん :2006/01/21(土) 06:36:45
>どんな事で躓いているのか明確にしよう。

491 名前:デフォルトの名無しさん :2006/01/21(土) 06:41:28
つーかもう困ったらDirectSoundでいいよほんとに

492 名前:486 :2006/01/21(土) 07:23:11
>>490
社会人なってあんまし時間がないので、音楽関係の自前ライブラリを作ろうと、
とにかくできる限り全部やろうと思ってます。

ただ、どちらでどの程度やれるのかがわからなかったので(Webの解説とリファレンスの解説が違)

493 名前:デフォルトの名無しさん :2006/01/21(土) 07:25:58
最初から丸投げ(`皿´)ウゼー

494 名前:このスレのPart1の>>1 :2006/01/21(土) 07:53:54
加齢にするーしようぜぇw

495 名前:デフォルトの名無しさん :2006/01/21(土) 08:21:24
↑わざわざコテ半にする必用あるレスなの?

496 名前:デフォルトの名無しさん :2006/01/21(土) 08:45:27
DirectMusicは放置可。ぶっちゃけ誰も使ってない。
ていうかどうせ両方とも新APIに切り替わるんだし。

497 名前:デフォルトの名無しさん :2006/01/21(土) 08:57:10
丸投げ社会人マンセー!!

498 名前:デフォルトの名無しさん :2006/01/21(土) 09:14:19
>>496
>ていうかどうせ両方とも新APIに切り替わるんだし。
またバージョン替わるんですかいな・・・

499 名前:デフォルトの名無しさん :2006/01/21(土) 09:23:52
バージョンアップごとに劇的に変化するのがDirectX
それが嫌ならOpenALマジオススメ

500 名前:デフォルトの名無しさん :2006/01/21(土) 09:50:54
OpenGLって音楽系制御できるの?


■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.