初心者はここで聞け!DirectX相談室

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
入門書のことから、初歩的な質問まで幅広くいきましょう。

上級者はこちら↓
http://piza.2ch.net/test/read.cgi?bbs=tech&key=966655286&ls=50
2デフォルトの名無しさん:2001/06/06(水) 11:58
ホーケー手術にはいくらぐらいかかりますか?
3名無しさん:2001/06/06(水) 12:09
256色でフェードアウト関数を作成し、一応動作を確認したのですが、
画面に表示されているキャラクタにどうもかすかなチラツキが確認できました。
これってなんとか改善されないものでしょうか?
4デフォルトの名無しさん:2001/06/06(水) 12:10
垂直帰線期間にパレットを変更しよう
5ひよこ:2001/06/06(水) 12:15
工学社の「DirectXによりゲームプログラミング入門」著:大川善邦
を読みながら勉強しております。

しかし、この本はDirectX3の頃の本なのでなにぶん内容が古いような気がします。
ビットマップの読みこみも256色でパレット使ってやってます。
16Bit以上の場合はパレットの操作は必要ないんでしょうか?
6デフォルトの名無しさん:2001/06/06(水) 12:23
>>5
16bpp以上にパレットは無い
故に操作も無い
7名無しさん:2001/06/06(水) 12:30
>4
垂直帰線期間って何なんでしょうか?

void BLACKOUT( int speed )
{
int Count; Count = 0;

if( ! Pflg )
{
memcpy( fade, enogu, sizeof( PALETTEENTRY ) * 256 );
Pflg = 1;
}

for( int i = 0 ; i < 256 ; i ++ )
{
if( fade[i].peRed - speed < 0 )
{
fade[i].peRed = 0;
}else
fade[i].peRed -= speed;

if( fade[i].peGreen - speed < 0 )
{
fade[i].peGreen = 0;
}else
fade[i].peGreen -= speed;

if( fade[i].peBlue - speed < 0 )
{
fade[i].peBlue = 0;
}else
fade[i].peBlue -= speed;
}

lpPalette -> SetEntries( 0, 0, 256, fade );

for( i = 0 ; i < 256 ; i ++ )
if( fade[i].peRed == 0 && fade[i].peGreen == 0 && fade[i].peBlue == 0 )
{
Count ++;
}

if( Count == 256 )
{
Fadeflg = 5;
}else
Count = 0;

return;
}
8デフォルトの名無しさん:2001/06/06(水) 13:16
>>7
Vertical Blanking Time
ブラウン管の原理を勉強しとけ。電子工学概論とかの本にはたいてい載ってる。
9デフォルトの名無しさん:2001/06/06(水) 13:31
メッシュの必要性がいまいちわかりません。
DirectX8SDKには人間をアニメーションさせるサンプルがついていますが、
メッシュで動かしたほうが楽なのでしょうか?
毎フレーム頂点バッファいじったらダメなんですか?
10デフォルトの名無しさん:2001/06/06(水) 13:54
頂点バッファは基本的にV-RAMにおいていじらないもの だよ
VRAMにないとビデオチップからのアクセスが難儀するし
頂点転送で帯域潰すし、HT&Lとして使えない

VRAM上にある頂点バッファを自前でいじるのも遅いので厳禁
systemメモリの頂点バッファならいいけど、上記の理由でイマイチ

頂点バッファの内容をいじらずに、変形とかする為に
VertexBlendとか、もろもろの仕組みがあるわけよ
11デフォルトの名無しさん:2001/06/06(水) 15:19
斜めスクロールのやりかたきぼんぬ
12デフォルトの名無しさん:2001/06/06(水) 15:21
13デフォルトの名無しさん:2001/06/06(水) 15:21
ずらした画像と隙間(縦方向、横方向) の3つをコピーするだけでは?
14デフォルトの名無しさん:2001/06/06(水) 15:25
チンカスはどうやって掃除してますか
15デフォルトの名無しさん:2001/06/08(金) 02:51
糞スレ。
16デフォルトの名無しさん:2001/06/10(日) 15:10
もっと盛り上げて優秀スレにしてくれ
17デフォルトの名無しさん:2001/06/10(日) 15:16
>>16
そういうお前がやれ
内容がないのに上げるな
18デフォルトの名無しさん:2001/06/10(日) 15:24
ゲー厨の糞スレ乱立はどうすれば治まりますか?
19デフォルトの名無しさん:2001/06/10(日) 15:40
SDKプログラミングはできるのですがDirectXはまだやったことがありません
学習しやすい本かホームページを教えてください
お願いします
20デフォルトの名無しさん:2001/06/10(日) 15:43
DirectXがバージョンアップのたびにデカくなっていくのが鬱なんですけど、
どうしましょう?
21デフォルトの名無しさん:2001/06/10(日) 17:39
どうして誰もおしえてくれないんだ!
荒らしてやるああああああああああああああああああああ
あああああああああああああああああ
あああああああああああああああああああああ
22デフォルトの名無しさん:2001/06/10(日) 18:22
>>1
初級者でも「鬱だ氏のうDirectX」で聞いていいじゃん。
上級者とかどうとか言う前に、ただでさえゲーム関係者はこの板だと
肩身狭いんだからさ、頼むぜ。
23 :2001/06/10(日) 19:51
sage進行してるから見てなかったよ
お勧めの本は工学社の奴かな。つかDX8の本は種類がないのでこれくらいしかない

同様にHPも 皆DX5,6の頃にマスターしてしまったので、今見ると古い情報とか
追加機能についてしか触れていないものが多いかな
24デフォルトの名無しさん:2001/06/10(日) 21:41
>>22
だね。
25名無しさん:2001/06/10(日) 21:43
市販のゲームパッドの判定なんですけど、DirectInputを使うメリットって何ですか?
26デフォルトの名無しさん:2001/06/10(日) 22:17
・WinAPI 標準の物だと、十字キー+4ボタン相当品しか扱えない。
・フォースフィードバック (DirectX5〜)
・アクションマップ (DirectX8〜)
27デフォルトの名無しさん:2001/06/11(月) 02:48
>>26
joyGetPosExだったらもちっと幅出るけどね。
28名無しさん:2001/06/15(金) 02:47
近日、3Dの勉強を始めるつもりでいます。
3DRMと3DIMの違いって何でしょうか。
(ネットでなんかこんなのがあることをチラッと目にしたのですが)
29名無しさん@Lv7:2001/06/15(金) 04:02
DXのゲームを作るとき自分の環境では問題なく動いてるのに、いざ配布すると、他環境でエラーが出ます。
こういうときはどうやって直しますか?

本に載っていることは全てのマシンで使えるって言う保証はあるんでしょうか。
30デフォルトの名無しさん:2001/06/15(金) 04:33
初級者でも「鬱だ氏のうDirectX」で聞いていいじゃん。
上級者とかどうとか言う前に、ただでさえゲーム関係者はこの板だと
肩身狭いんだからさ、頼むぜ。

初級者でも「鬱だ氏のうDirectX」で聞いていいじゃん。
上級者とかどうとか言う前に、ただでさえゲーム関係者はこの板だと
肩身狭いんだからさ、頼むぜ。

初級者でも「鬱だ氏のうDirectX」で聞いていいじゃん。
上級者とかどうとか言う前に、ただでさえゲーム関係者はこの板だと
肩身狭いんだからさ、頼むぜ。

初級者でも「鬱だ氏のうDirectX」で聞いていいじゃん。
上級者とかどうとか言う前に、ただでさえゲーム関係者はこの板だと
肩身狭いんだからさ、頼むぜ。
31デフォルトの名無しさん:2001/06/15(金) 07:17
>>28-29
鬱氏DXスレで質問してください。
回答用意してまってます。
32デフォルトの名無しさん:2001/06/25(月) 13:00
DX初心者です。
DXのDInputで参照しているDLLを知りたいので誰か知っていたら教えてください。
33デフォルトの名無しさん:2001/06/25(月) 15:51
age
34デフォルトの名無しさん:2001/06/26(火) 01:37
DIRECT DRAWで作って描いたサーフェスを
DIRECT 3Dでてくすちゃとして使いたいんですけど
どうすればいいのですか?
35デフォルトの名無しさん:2001/06/26(火) 02:45
初級者でも「鬱だ氏のうDirectX」で聞いていいじゃん。
上級者とかどうとか言う前に、ただでさえゲーム関係者はこの板だと
肩身狭いんだからさ、頼むぜ。

初級者でも「鬱だ氏のうDirectX」で聞いていいじゃん。
上級者とかどうとか言う前に、ただでさえゲーム関係者はこの板だと
肩身狭いんだからさ、頼むぜ。

初級者でも「鬱だ氏のうDirectX」で聞いていいじゃん。
上級者とかどうとか言う前に、ただでさえゲーム関係者はこの板だと
肩身狭いんだからさ、頼むぜ。

初級者でも「鬱だ氏のうDirectX」で聞いていいじゃん。
上級者とかどうとか言う前に、ただでさえゲーム関係者はこの板だと
肩身狭いんだからさ、頼むぜ。
36デフォルトの名無しさん:2001/06/26(火) 03:42
>>35
同感だ。
なお、繰り返さんでも良い。
37デフォルトの名無しさん:2001/06/26(火) 04:00
ふかわりょうに言ってやれ
ふかわりょうに言ってやれ
38デフォルトの名無しさん:2001/06/26(火) 11:13
DirectX8上で
16色or256色(フルカラーはOK)の画像に透過色を設定すると
その透過色がころころ変わってしまうのですが、
どしたらよいでしょうか?
39デフォルトの名無しさん:2001/06/26(火) 12:04
>>38
コロコロ変わらないようなプログラムを組めばよい。
40デフォルトの名無しさん:2001/06/26(火) 23:19
>>34
普通に使えばいいじゃん
41デフォルトの名無しさん:2001/07/06(金) 16:02
DirectXの勉強を始めようと思ったところです。
ライブラリの設定などはしたつもりなのですが、
サンプルをビルドしようとするとddraw.libについて
fatal error LNK1106: ファイルが無効であるか、 またはディスクがいっぱいです:
0x389bc689 にシークできません
と表示されてしまいます。
どうすればよいでしょうか?
42デフォルトの名無しさん:2001/07/06(金) 18:24
鬱氏が不調?なのでレスします。

>>41
可能性
1:ほんとにライブラリ設定した"つもり"
2:ディスクいっぱいで中間ファイル吐けない
3:ライブラリ壊れてる

全部確認してダメだったら、SDKのddraw.libとサイズ・日時を照合。
違ってたら入れなおす。一致してたら泣く。

4:某島製品でコンパイルしてる→インポートするか、そっち用ライブラリを使う
43デフォルトの名無しさん:2001/07/07(土) 12:00
DirectXをMFCでプログラミングしたらDQNですか?
SDKはめんどいです。
44デフォルトの名無しさん:2001/07/07(土) 12:05
>43
自分がどんな作業をするのか予測がつけられないDQN

例えばゲームではなくツール系のアプリなので
ユーザーインタフェイスをMFCで作るとか場合による

つーか、ここは糞スレだ
45デフォルトの名無しさん:2001/07/07(土) 12:23
>44
なんつーか、フルスクリーンアプリは嫌いなので、
ウィンドウとか作るのは全部MFCにしようかと。
さらに、Doc/Viewも使いたいなと。
46デフォルトの名無しさん:2001/07/07(土) 17:13
>>43
SDK サンプルの中にも MFC Tex とか MFC と DirectX を使った例はあるよ。それみて考えてみて。
47デフォルトの名無しさん:2001/07/07(土) 20:12
>>46
SDKサンプルのMFCはすべてFormViewだと思われ
48運子供よく聞け:2001/07/08(日) 00:11
2CHでは教える奴も教えてもらう奴もドキュソが多いぞ!

気をつけろ!
49デフォルトの名無しさん:2001/07/08(日) 00:51
******* 糞スレにつき終了 *******
50デフォルトの名無しさん:2001/07/09(月) 01:13
DirectX8でテキスト表示したいのですが。いやDrawTextA()は重いし。
GetDC()みたいなの無いからなぁ。
51デフォルトの名無しさん:2001/07/09(月) 02:06
オマエモナ〜>>48
52デフォルトの名無しさん:2001/07/09(月) 04:48
>>48
今ごろ気付いたのか。

つうか具体的な技術論になると、とたんに反応が鈍くなるよね。
しょうもない見栄の張り合いと世間話が似合ってるよ、2chには。
53デフォルトの名無しさん:2001/07/10(火) 03:13
>>41
VC5?
54デフォルトの名無しさん :2001/07/10(火) 03:18
VBの質問なんですけど良いですか?
55デフォルトの名無しさん:2001/07/10(火) 04:03
DirectXを使う利点ってなに?
56デフォルトの名無しさん:2001/07/10(火) 04:53
VBで作ったゲームはユーザーにも馬鹿にされ
買ってもらえません
57デフォルトの名無しさん:2001/07/10(火) 04:54
DirectXかOpenGLを使っていないとユーザーにも馬鹿にされ
買ってもらえません
58 :2001/07/16(月) 13:10
D3D7でテクスチャセットしてら
ポリゴン真っ白になっちゃいます。
何の設定が足りないんでしょうか。
59 :2001/07/18(水) 00:39
//DirectDraw作成と画面設定
DirectDrawCreateEx(NULL,( void ** )&lpDirectDraw7,IID_IDirectDraw7, NULL );
lpDirectDraw7->SetCooperativeLevel(hWnd,DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN | DDSCL_ALLOWREBOOT );
lpDirectDraw7->SetDisplayMode (800,600,16, 0, 0 );
//プライマリサーフェスとバックバッファ
DDSURFACEDESC2 SurfaceDesc;
ZeroMemory ( &SurfaceDesc, sizeof ( DDSURFACEDESC2 ) );
SurfaceDesc.dwSize = sizeof ( DDSURFACEDESC2 );
SurfaceDesc.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT;
SurfaceDesc.dwBackBufferCount = 1;
SurfaceDesc.ddsCaps.dwCaps = DDSCAPS_COMPLEX | DDSCAPS_FLIP | DDSCAPS_PRIMARYSURFACE | DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY;
lpDirectDraw7->CreateSurface(&SurfaceDesc,&PSurface, NULL );
DDSCAPS2 ddscaps;
ZeroMemory(&ddscaps,sizeof(DDSURFACEDESC2));
ddscaps.dwCaps=DDSCAPS_BACKBUFFER;
PSurface->GetAttachedSurface(&ddscaps,&BSurface);
//D3Dとデバイス作成
lpDirectDraw7->QueryInterface(IID_IDirect3D7,(void**)&Direct3D7);
Direct3D7->CreateDevice(IID_IDirect3DHALDevice,BSurface,&Direct3DDevice7);
//Zバッファ作成とバックバッファ関連付け
ZeroMemory ( &SurfaceDesc, sizeof ( DDSURFACEDESC2 ) );
SurfaceDesc.dwSize = sizeof ( DDSURFACEDESC2 );
SurfaceDesc.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT | DDSD_PIXELFORMAT;
SurfaceDesc.ddsCaps.dwCaps = DDSCAPS_ZBUFFER | DDSCAPS_VIDEOMEMORY;
SurfaceDesc.dwWidth = 800;
SurfaceDesc.dwHeight = 600;
SurfaceDesc.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT);
SurfaceDesc.ddpfPixelFormat.dwFlags = DDPF_ZBUFFER;
SurfaceDesc.ddpfPixelFormat.dwZBufferBitDepth = 24;
SurfaceDesc.ddpfPixelFormat.dwZBitMask = 0xffffff;
lpDirectDraw7->CreateSurface(&SurfaceDesc,&ZSurface, NULL );
BSurface->AddAttachedSurface(ZSurface);
//テクスチャ用サーフェス作成
ZeroMemory ( &SurfaceDesc, sizeof ( DDSURFACEDESC2 ) );
SurfaceDesc.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT | DDSD_PIXELFORMAT | DDSD_TEXTURESTAGE;
SurfaceDesc.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_TEXTURE | DDSCAPS_COMPLEX;
SurfaceDesc.ddsCaps.dwCaps2 = DDSCAPS2_TEXTUREMANAGE;
SurfaceDesc.dwWidth = 256;
SurfaceDesc.dwHeight = 256;
SurfaceDesc.ddpfPixelFormat.dwSize = sizeof ( DDPIXELFORMAT );
SurfaceDesc.ddpfPixelFormat.dwFlags = DDPF_RGB | DDPF_ALPHAPIXELS;
SurfaceDesc.ddpfPixelFormat.dwRBitMask = 0x1F << 10;
SurfaceDesc.ddpfPixelFormat.dwGBitMask = 0x1F << 5;
SurfaceDesc.ddpfPixelFormat.dwBBitMask = 0x1F << 0;
SurfaceDesc.ddpfPixelFormat.dwRGBAlphaBitMask = 0x1 << 15;
SurfaceDesc.ddpfPixelFormat.dwRGBBitCount = 16;
lpDirectDraw7->CreateSurface(&SurfaceDesc,&TSurface, NULL );
必ずテクスチャサーフェスが作れません。何が悪いんでしょうか?
60デフォルトの名無しさん:2001/07/18(水) 00:45
戻り値でも調べたら?
パラメータの設定ミスだと思うけどね
61 :2001/07/18(水) 00:58
戻り値見てみたらZバッファさえ作られてませんでした。
マジであにがわるいかさっぱりです。
何かヒントだけでもください。
62 :2001/07/18(水) 01:01
ちなみにDX7です
63デフォルトの名無しさん:2001/07/18(水) 01:17
戻り値はなんだったの?
64 :2001/07/18(水) 01:56
Zbuffer:DDERR_INVALIDPIXELFORMAT
texture:DDERR_INVALIDPARAMS
でした。
65 :2001/07/18(水) 02:02
zbufferは深度を変えたら直りました。24ビットをサポートしてないだけでした。
テクスチャは依然不明です。
66デフォルトの名無しさん :2001/07/18(水) 02:50
SurfaceDesc.dwSize = sizeof ( DDSURFACEDESC2 );
がぬけてんのと
dwcapsの中身ををかえなさい
67デフォルトの名無しさん:2001/07/19(木) 05:49
DirectX8は難しいそうなので7を覚えようと思っています。
DirectX8 SDKをインストールしたのですが、これで7をやっても
不都合はないでしょうか?
68デフォルトの名無しさん:2001/07/19(木) 06:27
DirectX7の方難しいよ。
69デフォルトの名無しさん:2001/07/19(木) 06:34
そういう理由ならDirectX8一択かと
70デフォルトの名無しさん:2001/07/19(木) 07:04
DirectXのサイトを見ただけなのですがDirectDrawは
まあ何とか分かりそうでした。
8は何かを表示するのにいちいちポリゴンを使用するのでしょうか?
DirectX8SDKで7用のコードをコンパイルできないのでしょうか?
71デフォルトの名無しさん:2001/07/19(木) 07:10
できるよ。DirectX8の2Dのサンプル参照。まんまDirectX7つかってます。
72aa:2001/07/19(木) 09:47
Lightwaveでつくった3Dのキャラなどを
VCのプログラムで動かしたりするのって、
他になにか必要になるのでしょうか?
73デフォルトの名無しさん:2001/07/19(木) 10:30
>72
君の場合、勉強が必要。

Lw形式 -> X形式に変換 -> DirectX8を初期化 -> Xをロード -> 表示
または
Lw形式 -> DirectX8を初期化 -> 自分の好みの頂点形式に変換 -> 表示
74aa:2001/07/19(木) 15:21
>>73
ありがとうございます。
75デフォルトの名無しさん:2001/07/19(木) 15:38
ぁのぅ、

毎日MPEG1動画が吐き出される環境(Win2k)があるのですが、
それを自動的にMediaEncoderを使ってwmvニコンバーとして、もとの
MPEG1動画を削除したいのですが、

どうも、VBScriptというのを使うとできるみたいなんですが、それはどうやったらインストロールできますか?

ぼくはCとパールしかできないのですが、VBスクリプトというのは難しいですか?

Windowsでは自動化というのは難しいんでしょうかね。

でもうにっくすではwmvにで機内誌。
76デフォルトの名無しさん:2001/07/19(木) 15:39

DirectX8でダブルバッファリングを使い、スプライトを表示させる
までのプログラムを書け。なお、スプライトはDirect3DSurface8にファイルから画像を読み込んだものを使用する。ファイル名はDX8.bmpとする。
7775:2001/07/19(木) 15:48
すみません、スレ違いでした。
78デフォルトの名無しさん:2001/07/19(木) 16:59
>>75
ネタおおすぎ・
7972:2001/07/19(木) 17:35
すみません。Lw形式からXファイルにするコンバータって
どれがいいんですか?
Lw6.5つかってます。
80デフォルトの名無しさん:2001/07/19(木) 17:54
>>76
>ねたおおすぎ(>>75について)

(1)インストロール → インストール
(2)VBスクリプトというのは難しいですか? → Cや Perl に比べると簡単。ていうか厨房向き
(3)パール → Perl
(4)Windowsでは自動化は難しいんでしょうね → Windows Scripting Host(ウイルスが簡単に動かせちゃうほど自動化マンせー)
(5)うにっくす → UNIX
(6)で機内誌 → できないし
(7)でもうにっくすではwmvにで機内誌 → UNIXはマルチメディア(和良)が苦手、とのWin厨の弁

確かにネタ多い
81デフォルトの名無しさん:2001/07/20(金) 02:37
テクスチャの縦横のサイズって2のかいじょうじゃないと
はみだしてしまうのですが、そんなもんなんですか?
あとテクスチャサーフェスをバックバッファにbltしたら
その動作はサポートしてません見たいなエラーが出るんですけど、
これも仕様ですか?
82デフォルトの名無しさん:2001/07/20(金) 08:59
あげ
83デフォルトの名無しさん:2001/07/20(金) 09:59
age
84デフォルトの名無しさん:2001/07/20(金) 13:59
mage
85既出?:2001/07/20(金) 23:26
ボーランドのフラッグシップ・プロダクトのエントリー版
Borland(R) DelphiTM 6 Personal
無償ダウンロードを決定
http://www.borland.co.jp/news/del6personal.html
86既出?:2001/07/20(金) 23:28
スレ違い失礼
87デフォルトの名無しさん:2001/07/21(土) 00:12
とっくの昔に既出です
88aaa:2001/07/21(土) 02:18
>すみません。Lw形式からXファイルにするコンバータって
>どれがいいんですか?
>Lw6.5つかってます。

D-STORMからダウンロードできるやつはどうでしょうか?
コンバータのソースファイルも公開されていますよ。
8979:2001/07/21(土) 09:18
ありがとうございます。
さっそく落としました。
あとはLWでキャラつくってロードか・・・・
闇の中を手探り状態。
LWもまださわって5日目だし
90デフォルトの名無しさん:2001/07/22(日) 02:12
>>81
かいじょう(階乗)ってなによ(w
それを言うなら累乗(るいじょう)だろ。
テクスチャのサイズに関してはそう言うもんみたいだ。
ほとんどのハードは2の累乗のサイズしかサポートしないみたい。
9141:2001/08/02(木) 13:02
未だに問題が解決しません。問題とは>>41です。
>>42
ディスク容量は十分にあります。
ライブラリは新しいのを準備したのですが症状が同じなので
これも原因ではありません。
設定が正しいかどうかあやしいのですが
ttp://www1.mahoroba.ne.jp/~jyama/
を参考にそのままやっています。
>>53
VC4を使ってます。大学の友人からもらったものでかなり古いです。
92デフォルトの名無しさん:2001/08/02(木) 13:15
>>91
もらうな
93デフォルトの名無しさん:2001/08/02(木) 15:20
ライセンスごと譲り受けたなら○
そうでないなら・・・終了
94デフォルトの名無しさん:2001/08/03(金) 01:10
違法コピー厨房っつーことで
>>41>>41>>41>>41 終了 >>41>>41>>41>>41>>41>>41
95デフォルトの名無しさん:2001/08/03(金) 08:35
んか一気に冷めたな・・・
96デフォルトの名無しさん:2001/08/03(金) 17:47
>>91
Ver6.0を買ってこい
話はそれからだ
97デフォルトの名無しさん:2001/08/04(土) 07:05
開発環境ぐらい自分の金で買えよ・・・。学生なんだったら格安で買えるじゃん。VCなら。
98デフォルトの名無しさん:2001/08/04(土) 11:13
agetoku
99デフォルトの名無しさん:2001/08/04(土) 11:41
age
100デフォルトの名無しさん:2001/08/04(土) 13:17
agetokuwa
101デフォルトの名無しさん :2001/08/04(土) 13:22
DirectXをはじめようとしている初心者ですが,質問させてください.
DirectX8の参考書を探したんですが,まったくの初心者にわかりやすそうなものが
見つかりません.(工学者の2冊と3Dネットワークゲームなんとか)
っていうか,あのレベルでも良いのかもしれませんが,もっと多くの参考書に目を通したいのです.
DirectX7までと,大幅に変わっていると聞くのですが,DirectX8以前の本で
8でも問題無く使える良書はないでしょうか?
102 :2001/08/04(土) 13:39
結局、そのレベルの本しかないよ
初心者にはわかり難いけど、それが読めないと先に進めない
(遠回りするなら、RMやってみるのもいいかもね。それなら清水本とか)

書籍じゃ、ポリゴンだして終わりってのが多いから、その程度なら
MSマニュアルのチュートリアルでもいいのかも

いざ、パフォーマンス重視で実装となるとまた一苦労よ
まとまった資料がないからね(ネット活用すべし)
103デフォルトの名無しさん:2001/08/04(土) 14:14
>>101
ヘルプとサンプルで十分だと思うが、他に何を期待しているんだ?
104名無しさん:2001/08/04(土) 14:38
↑まったくの初心者がいきなりヘルプとサンプルで十分だって思ってはじめるか?
それは経験者の意見だろ.
105デフォルトの名無しさん:2001/08/04(土) 15:08
>>103
これだからちょっと自分のレベルが上だと勘違いしてる奴は。
そうやって自分より下の奴を馬鹿にして楽しいか?
106しkk:2001/08/04(土) 15:46
ピアソンの「入門DirectX7プログラミング」
が俺にとっては一番わかりやすかったけども。
107デフォルトの名無しさん:2001/08/04(土) 16:47
DirectX8のヘルプは下手な書籍よりも初心者にもわかりやすく書いてあると思うが
108デフォルトの名無しさん:2001/08/04(土) 16:50
ゼロからのスタートだったら工学社の入門シリーズが無難かと。
一冊であれこれやろうと思うほうが間違いと思われ。
109名無しさん++:2001/08/06(月) 15:21
書籍+ヘルプだにゃ
110デフォルトの名無しさん:2001/08/06(月) 16:40
ヘルプ見ながらサンプルのTutorialsを改造して遊ぶとこから
はじめればよいと思われ。
111101:2001/08/10(金) 15:56
レスありがとうございます.
参考にしてやってみます
112デフォルトの名無しさん:2001/08/10(金) 19:09
WAVのストリーミング再生の実装をしてるんですが、何か注意点ってありますか?
ここのページは見とけとか、SDKのサンプルはここがおかしいから注意しろ!とか。
あと、マシン固有の問題とか。

都合上DirectX5相当でやってます。
113デフォルトの名無しさん:2001/08/10(金) 21:24
>>112
DirectX実践プログラミングのストリーミング再生にはバグがある。
DirectX7実践プログラミングのストリーミング再生では直っている。
要するに、再生している部分にデータを書き込んでいる。
114112:2001/08/10(金) 22:25
>>113
以前試した時、どのマシンでもブチブチいうからなんでかなとおもてたら
そういうことだったんですか(´д`;)
thanx!
115デフォルトの名無しさん:2001/08/13(月) 00:53
うんがあ。
DirectX8のスプライト関数つかって見てるのだけれど、
画像の反転処理ができない泣

ID3DXSpriteのDraw関数の
ヘルプには、使う画像Rectの上下左右を
入れ替えればいいって書いてあるのにぃ泣
左右反転は(0,0,20,20)→(20,0,0,20)
じゃダメのなのかな…

だれかわかる人いたらおねがいします。
116デフォルトの名無しさん:2001/08/13(月) 01:35
>>115
凸('Д`)FAQ、RECTじゃダメみたい
ID3DXSprite::DrawのスケーリングD3DXVECTOR2を-1と1にして対応(涙
117デフォルトの名無しさん:2001/08/14(火) 00:39
>>116
おお、センキューです。

つーか、また嘘ぶっこいたかマックロソフトめ。
って、これじゃインプレスのぱくりだな笑>マックロソフト
118デフォルトの名無しさん:2001/08/14(火) 04:47
http://157.110.50.64:8080/~g96307/html/Ronbun.pdf
DirectXって、こんなことにも使えるんだね。
119デフォルトの名無しさん:2001/08/14(火) 06:46
dx8 しか持ってなくて、ddraw のマニュアルがありません。
dx7 のマニュアルって何処かにありませんか?
120デフォルトの名無しさん:2001/08/14(火) 08:02
121デフォルトの名無しさん :2001/08/14(火) 23:21
初心者って書いてあるけどここレベル高い。と言うわけで真性初心者
の質問。今「DirectX5ゲームプログラミング入門」インプレス
っていう本があるけど3Dのサンプルがしょぼくて不満です。
ミニゲーム(ソースを改良すれば遊べるレベル)が載ってる
DirectX本でお勧めありませんか?
122超初心者:2001/08/14(火) 23:39
ソースコードを本を見て打つ練習をしています。
大文字と小文字を、ちゃんと分けなければいけないのでしょうか?
本には詳しく載っていなかったのですが、かまわないところもあるよう
に書いてあったのですが・・・お願いします。
123チュー:2001/08/14(火) 23:43
◆◆◆(新)芸能人彼氏とH芸能界の表裏画像動画大公開◆◆◆
◆アイドル画像秘宝館◆
http://www.futomomo.com/netidol/idolhappy/maki/
◆綺麗なおねぇさんは好きですか?◆
http://www.futomomo.com/netidol/sister/megu/
◆セーラー服◆
http://www.futomomo.com/netidol/sailor/miku/
◆モーニング娘 ◆
http://www.futomomo.com/netidol/morning/mai/

◆◆◆(新)芸能人彼氏とH芸能界の表裏画像動画大公開◆◆◆
◆アイドル画像秘宝館◆
http://www.futomomo.com/netidol/idolhappy/maki/
◆綺麗なおねぇさんは好きですか?◆
http://www.futomomo.com/netidol/sister/megu/
◆セーラー服◆
http://www.futomomo.com/netidol/sailor/miku/
◆モーニング娘 ◆
http://www.futomomo.com/netidol/morning/mai/

lillliliuliulo
124デフォルトの名無しさん:2001/08/14(火) 23:46
>>122
使ってる言語によって違うよ。
C/C++だと、打ち分けないとダメだ。
Delphi,VBは、打ち分けなくてもいい。
125名無しさん:2001/08/14(火) 23:48
ぎょええええ
Delphiってどっちでもいいのか!?
CからDelやったから打ち分けてた・・・
126超初心者:2001/08/14(火) 23:58
javaを使っています。どうでしょうか・・・
127デフォルトの名無しさん:2001/08/15(水) 00:11
JavaでDirectXってできたっけ?
128デフォルトの名無しさん:2001/08/15(水) 07:53
VJなら確かOK
129初心者:2001/08/15(水) 12:39
8.1出てるんですが不具合は解消されてるんでしょうか?
8はUSBのゲームパッドが認識させることができなかったんですが
130デフォルトの名無しさん:2001/08/15(水) 12:50
でてないじゃん>8.1
131デフォルトの名無しさん:2001/08/15(水) 12:51
>>129
初心者なのにどうでもいいこと気にするね。
DirectXなんて小さいところ叩けばきりがないよ。
まずはゲームを作るのに最低限必要なものがそろえばいいじゃん。
132通りすがりの短足おじさん:2001/08/15(水) 17:01
>>129
USB 僕の環境では認識出来てるよ。
ああ、他の人にも試して貰ったから大丈夫なはず。

後、Dx8のJoyStickのサンプルプログラムにはバグがあるから
Dx7のを使うと良いよ。
133デフォルトの名無しさん:2001/08/15(水) 18:44
サンプルプログラムのコンパイルのしかたをおしえてください
134デフォルトの名無しさん:2001/08/15(水) 19:00
F7を押す
135デフォルトの名無しさん:2001/08/15(水) 19:01
[F7] を押しましょう。
136デフォルトの名無しさん:2001/08/15(水) 19:30
>>133
貴様をSDKのヘルプ100回読みの刑に処す。
137デフォルトの名無しさん:2001/08/15(水) 20:10
やはりDirectXデバッグモードで組むべきなんでしょうか?
デバッグモードだと不具合をだす市販や同人のソフトが時々あるけど、
あれはリリースモードで組んでて不具合に気づいてないのですかね?
そういうゲームに限ってどうしてもやりたいけどDirectXをいちいち入れ替えるのは面倒だし、
デバッグモードでデバッグアウトプットレベルを下げても所詮はデバッグモードだかkら
そういったソフトは動かないし…困った。
138デフォルトの名無しさん:2001/08/15(水) 20:57
>>134-136 VCからmdpファイル読みこんで出来ました。
139デフォルトの名無しさん:2001/08/15(水) 21:04
まあ、それはDirectXでゲームを作るときの注意事項その1ですな。
140デフォルトの名無しさん:2001/08/15(水) 21:05
>>137
最初はデバッグビルドで作るけど、最終的にはリリースビルドが
普通だと思うけど、俺なんか違うこといってる?
具体例きぼーん
141137:2001/08/15(水) 22:14
>>140
あ、いや、自分のソースのビルドの話ではなく、DirectXの方です。
インストール時に選ぶじゃないですか。デバッグ用は開発にはいいけど遅い、とか警告がでて。
でもデバッグモードだとローグスピアの音声が変になったりとか
ゲームをやる段では色々問題がありまして。
142デフォルトの名無しさん:2001/08/15(水) 22:17
>>140
DirectXランタイムのことなんじゃないの?
リリースビルドとデバッグビルドの話じゃなくて。
勘違いだったらごめん。

>>121
DirectX本におすすめはかなり少ない。というかないかも。
その目的だと、強いていえば
「3Dネットワークゲームプログラミングガイド」
http://www.shuwasystem.co.jp/books/wwwsrch/cgi-bin/content/0081/index.htm
この辺かな?立ち読みしただけですが。
自分は買ってまで読む本じゃないと思った。

それより
C:\mssdk\samples\Multimedia\Demos\Donuts3D
この辺とかはどうよ。ただだし。
143 :2001/08/16(木) 01:39
ランタイムの切り替えは DX8から簡単になってると思うが?
コントロールパネル内からいけるよ
144140:2001/08/16(木) 01:51
あーやっぱり勘違いだったか。逝って来ます。
その前にDirectX8はDirectDraw以外ならコントロールパネル内の
DirectXからデバッグ/リリースが切り替えられると思います。
145137:2001/08/16(木) 04:52
>>143,>>144
ありがとう、できました。
やはりローグスピアにしてもパーティーズブレイカーにしても(藁)
リリースにすると巧く動作する…。ツメが少し甘いのでは〜
146デフォルトの名無しさん:2001/08/16(木) 09:11
リリースとデバッグの違いって何があるの?
おれリリースでしか組んでないんだけど。
147デフォルトの名無しさん:2001/08/16(木) 10:38
>>142 ありがとうございます。良スレあげ
148デフォルトの名無しさん:2001/08/16(木) 16:42
>>146
OutputDebugStringsしてくれるんだわ。
149デフォルトの名無しさん:2001/08/16(木) 17:06
>>148
OutputDebugString[s]
そんなAPIは無いという突っ込みはOK?
150デフォルトの名無しさん:2001/08/16(木) 17:08
>>149
リリースビルドでもデバッガが動いていれば
OutputDebugStringで情報が表示されることを突っ込む方が先だろ
151デフォルトの名無しさん:2001/08/16(木) 17:16
>>149
それ、コンパイラによく怒られる(^^;;

>>150
そなの?そう言うことだと思ってたよ‥‥。不勉強逝ってよし。うぐぅ‥‥
152デフォルトの名無しさん:2001/08/21(火) 15:23
Directx8.0ではDirect3DとDirectDrawが統合されて
DirectX Graphicsになったはずですが
ヘルプやその他Directx8関係のHP「3Dネットワークゲーム」とかい
う本でも堂々とDirect3Dが使ってあって
混乱します。やっぱりDirect3Dは廃止されてないってことですか?
だったらDirectXGraphicsってなに?すごい混乱してるんで、馬鹿とか言わずに教えてください。
153140:2001/08/21(火) 15:28
>>152
Direct3DIMとDirect3DRMは廃止されたけど、インターフェイスでは
Direct3D8〜って感じでDirect3Dの名前が残ってるよね。
そんなもんです。別にそれほど気にすることはないかと。
154152:2001/08/21(火) 15:49
なるほど、名前だけってことですか?しつこいようですが
ヘルプにある
DirectX Graphics の機能
Microsoft® Direct3D® は、Microsoft Windows®
搭載のコンピュータ上で世界に通用するゲームやインタラクティブ 3D グラフィックスを
使えるようにすることを目的に設計されている。
3D ビデオディスプレイ ハードウェアへのデバイスに依存した
アクセスを、デバイスに依存しない方法で行うことができる描画
インターフェイスである。

っていうのは、Direct3Dがまだあるって読めてしまうんですけど、
Direct3DイコールDirectXGraphicsととっていいってことですか??
155152:2001/08/21(火) 15:52
そこらへんがしっくりこないので・・・
156デフォルトの名無しさん:2001/08/21(火) 16:16
要するに、統合すると言いながら
単にDirectDrawを抹殺しただけのMSはクソってことです。

とか言ってみるテスト
157デフォルトの名無しさん:2001/08/24(金) 12:41
うーん、そうですか、ありがとうございます
>>113
DirectX実践プログラミングの加算合成もバグだね。
159デフォルトの名無しさん:01/08/26 18:38 ID:4LTRxqK.
DirectSoundでWaveMapperを指定した時(デバイスのLPCGUIDにNULLを渡した時)
実際にマッピングされたデバイスの情報を取得する方法を求む。
とりあえずデバイス名が取得できれば良しとする。
まぢ困ってます、知ってる方いたらプリーズ
160159:01/08/26 18:40 ID:4LTRxqK.
しまった、age忘れた。ageなきゃ誰も答えてくれんだろう。
ってことでage
161デフォルトの名無しさん:01/08/26 19:15 ID:W5V7B8q.
DX7のスプライトを使って画面の奥方向に傾いている表現(台形のようになる)をしたいのですが
D3DXDrawSprite3Dだと貼り付けているテクスチャーがおかしな形に歪んでしまいます。
DrawPrimitive( D3DPT_TRIANGLESTRIP, D3DFVF_LVERTEX...)のような描画ができて、
なおかつ表示位置を画面上のドットで指定する方法はないでしょうか。
162manse-:01/08/26 19:46 ID:c1OCf.yw
IDirect3D8::GetAdapterDisplayMode でリフレッシュレートが
なぜか0としか返ってこないんですがなんででしょうか…?
リフレッシュレートをデフォルト以外の周波数に設定していても
同じみたいです…
あとIDirectDraw7::GetDisplayMode だと0の変わりにどんな
周波数でも60(Hz)としか返ってきません…
誰か教えて下さいぃぃ
163デフォルトの名無しさん:01/08/26 19:51 ID:r9kv7gys
164manse-:01/08/26 20:13 ID:c1OCf.yw
>>163
レス有難う御座います
実はそのスレッドは既に読んだんですが、結局リフレッシュレートは
自分でVSYNC信号から計測する以外知る方法は無いんでしょうか…?
あとGetDisplayModeでリフレッシュレートを調べられない事について
SDKのヘルプに書いてないみたいなんですがみんなそのことを前提に
してプログラムしてるんでしょうか…?
どうか教えてくださいぃぃ…
165デフォルトの名無しさん:01/08/26 21:16 ID:r9kv7gys
リフレッシュレートを強制設定することもできないし、
取得したリフレッシュレート自体も信用しない方向性でいかねばならないということ。
それが前提。

それを知った上でどうするかが問題。
166manse-:01/08/26 21:45 ID:GXjyi/9M
>>165
うー…ん、そうですか…。どうも有難う御座います…
167デフォルトの名無しさん:01/08/27 13:29 ID:q21zzpHo
よっしぃんさんとこにも解説記事があった
http://www2.tky.3web.ne.jp/~yosshin/memo/010815.html

NT系でtimeGetTimeはダメみたいな誤情報があったけど書き直されてたので、
ようやく紹介できる
168[kimuchi]manse-:01/08/27 17:18 ID:e.3xNWR.
>>167
うはあぁぁぁぁ!有益な情報有難うございます!
169デフォルトの名無しさん:01/08/27 21:02 ID:HXrloQsc
DX8SDKつかってるんですが、
DirectDrawCreateExを使うとビルド時にエラーがでます。
なぜなんでしょうか??
170デフォルトの名無しさん:01/08/27 22:11 ID:IqBhMycA
DX8VBのCD3D8FrameやCD3D8Mesh、D3D_Util関数群の詳しい日本語の参考資料ってありませんか?
VB MAGAZINE5月号記載のシューティングゲームプログラムを元に作られた多階層フレームの多関節ロボット稼動プログラムで、テクスチャ読込メッシュのライティング処理ができなくて困ってます(;_;)
171デフォルトの名無しさん:01/08/27 23:01 ID:MEaR4JZA
>>170
ステートじゃないの?
SetRenderState( D3DRS_LIGHTING, FALSE)とか。
172ビルゲイヅ:01/08/28 16:36 ID:OtMyE66U
ほんと初心者な質問で申し訳ないですが
DirectX Graphicsだとディスプレイの解像度を変えるメソッドが
用意されてないみたいですが、Win32APIのChangeDisplaySettingsを
使えという事なんでしょうか・・・?
あと協調レベルに関して設定するメソッドも見つからないんですが
そこのところどうなってるんでしょうか・・・?
わかる方いましたらどうかお願いします・・・
173デフォルトの名無しさん:01/08/28 17:15 ID:2i5VZtz6
>172
サンプルのd3dapp.cppを読みなされ
174ビルゲイヅ:01/08/28 18:37 ID:cel/Dsaw
>>173
レスどうも
・・・今読んでます・・・うーん、なかなか何処で解像度を変えてる/協調レベルの
設定をしているのか見つからないです・・・。もうちょっと頑張ってみます・・・
175デフォルトの名無しさん:01/08/28 19:07 ID:DwbZUWmA
どうでもいいけど、ChangeDisplaySettingsってウインドウとかアイコンの配置を
バラバラにしてくれるから正直ゲーム目的では使ってほしくないよ。
あのAPI封印してほしいくらいだよ。
176ビルゲイヅ:01/08/28 19:36 ID:6hWcQqcI
>>175
晩飯食べないで頑張ってるのに見つかりません・・・
後生ですから何処らへんで設定してるのかだけでもかまいませんから
教えて下さいぃいいいぃい・・・
177ビルゲイヅ教えて:01/08/28 20:13 ID:Gl4gwcpA
解像度を変更する方は分かりそうで試してる所ですので
出来れば協調レベルがどうなってるのか誰でもいいですから
頼みますから教えて下さい下さい下さいぃぃ
178デフォルトの名無しさん:01/08/29 01:02 ID:Mf58huQg
ビルゲイヅなのかビルゲイヅに教えを請うてる人なのかはっきりしてください。
179170:01/08/29 11:13 ID:pM4wIep.
>>171
回答ありがとうございます。
レスが遅くなって大変申し訳ありませんでした。

ステートを調べて見たのですが、
コードモジュールD3dutil.bas内の関数Public Sub D3DUtil_SetupDefaultScene()で、
>With g_dev
> Call .SetRenderState(D3DRS_AMBIENT, &H10101010)
> Call .SetRenderState(D3DRS_CLIPPING, 1) 'CLIPPING IS ON
> Call .SetRenderState(D3DRS_LIGHTING, 1) 'LIGHTING IS ON
> Call .SetRenderState(D3DRS_ZENABLE, 1) 'USE ZBUFFER
> Call .SetRenderState(D3DRS_SHADEMODE, D3DSHADE_GOURAUD)
>End With
と記述されているので、多分ステート以外の設定だと思いますが、未だに原因がつかめていません(T-T)
関数D3DUtil_SetupDefaultSceneを通っていない可能性も考えましたが、デバッグモードによりこの関数を通っていることも確認済みです。
180ピルゲイツ:01/08/29 13:33 ID:2qJ58q1c
>>178
同一ゲイツです。

IDirect3DDevice8::Resetでフルスクリーンモードを指定すれば
バックバッファに設定したサイズの解像度に勝手に変わってくれる
みたいなのが分かりましたが、フルスクリーンモードにしないで
解像度だけ変える方法はないんでしょうか・・・?
教えて教えて教えて下さい下さい下さいぃぃ
181[kimuchi]manse-:01/08/29 17:13 ID:VrH2Umpg
DirectXの質問じゃなくて悪いんですが、
リフレッシュレートを計測するプログラムを実行してみたんですが
まともな値が返って来やがりません…(誤差-5〜-20位)。
↓何処か変でしょうか…?

UINT CountRefreshrate(UINT CountSec){
DWORD begintime;
DWORD refreshrate = 0;
TIMECAPS tc;
timeGetDevCaps( &tc , sizeof(TIMECAPS) );
timeBeginPeriod( tc.wPeriodMin );

for(;;) if((_inp(0x03da) & 0x08)) break;
for(;;) if(!(_inp(0x03da) & 0x08)) break;
begintime = timeGetTime();
while((timeGetTime()-begintime)<(CountSec*1000)){
for(;;) if((_inp(0x03da) & 0x08)) break;
for(;;) if(!(_inp(0x03da) & 0x08)) break;
refreshrate++;
}
refreshrate /= CountSec;
return refreshrate;
}
182[kimuchi]manse-:01/08/29 17:14 ID:VrH2Umpg
インデントが…

UINT CountRefreshrate(UINT CountSec){
 DWORD begintime;
 DWORD refreshrate = 0;
 TIMECAPS tc;
 timeGetDevCaps( &tc , sizeof(TIMECAPS) );
 timeBeginPeriod( tc.wPeriodMin );

 for(;;) if((_inp(0x03da) & 0x08)) break;
 for(;;) if(!(_inp(0x03da) & 0x08)) break;
 begintime = timeGetTime();
 while((timeGetTime()-begintime)<(CountSec*1000)){
  for(;;) if((_inp(0x03da) & 0x08)) break;
  for(;;) if(!(_inp(0x03da) & 0x08)) break;
  refreshrate++;
 }
 refreshrate /= CountSec;
 return refreshrate;
}
183デフォルトの名無しさん:01/08/29 17:33 ID:GnfmfSsI
>_inp(0x03da)
これって環境依存っぽくない?
184デフォルトの名無しさん:01/08/29 17:37 ID:GnfmfSsI
>>180
IDirectDraw::SetDisplayMode;

ChangeDisplaySettingsもあるけど>>175にある理由から推奨できない
185[kimuchi]manse-:01/08/29 17:40 ID:VrH2Umpg
>>183
う、ちょっと_inp(0x03da)の変わりにIDirect3DDevice::GetRasterStatusで
書き直してテストしてみます...
186[kimuchi]manse-:01/08/29 17:57 ID:Zzw.zIUo
さっきよりはマシになりましたけどやっぱり
誤差がかなりあります…(-10Hz前後位)
実際にゲームを作ってる人はどうやって計測してるんでしょう…?あぁぁ…

UINT CountRefreshrate(UINT CountSec){
  DWORD begintime;
  DWORD refreshrate = 0;
  D3DRASTER_STATUS rstat;
  TIMECAPS tc;
  timeGetDevCaps( &tc , sizeof(TIMECAPS) );
  timeBeginPeriod( tc.wPeriodMin );
  for(;;) { lpD3DDEV->GetRasterStatus(&rstat); if(rstat.InVBlank) break; }
  for(;;) { lpD3DDEV->GetRasterStatus(&rstat); if(!rstat.InVBlank) break; }
  begintime = timeGetTime();
  while((timeGetTime()-begintime)<(CountSec*1000)){
    for(;;) { lpD3DDEV->GetRasterStatus(&rstat); if(rstat.InVBlank) break; }
    for(;;) { lpD3DDEV->GetRasterStatus(&rstat); if(!rstat.InVBlank) break; }
    refreshrate++;
  }
  refreshrate /= CountSec;
  return refreshrate;
}
187[kimuchi]manse-:01/08/29 19:15 ID:GFrMMkfo
mp3を再生しながら計測していたのがいけなかったみたいでした。
再生を止めて計測したら誤差-3Hz以内に収まりました
188:01/08/29 20:05 ID:zTMHlIeQ
>>179
自分はVBは門外漢なので、的確なアドバイスは出来ないと思うけど、
まずは、メッシュの頂点フォーマット。ちゃんと法線が含まれているか?
頂点色はマテリアルなのら、ちゃんとマテリアルはセットされているか?
それともFVFに含まれるやつなら、それに合わせてステートを変更しているか?
あと、D3DDeviceには、ライトをアクティブにさせるメソッドがあったはず、これはどうか?
こんぐらいかなあ?
189ピル゚ゲイ゚ツ゚:01/08/29 23:15 ID:bf9.0QUQ
>>184
DirectDrawだとディスプレイアダプタを選択出来ないのですが
選択する方法はあるでしょうか・・・
DirectDrawCreateの最初の引数で目的のアダプタドライバのGUIDを
入れれば出来そうですがそのGUIDを取得する方法がわかりません・・・
どうかお願いします・・・
190デフォルトの名無しさん:01/08/30 01:56 ID:YEMO5.RY
>>188

timeGetTime()はなんだかんだ言ってもぁゃιぃので、
PerformanceCounter使うべし。
できればクロック計測後にrdtsc命令でやった方が誤差が出ない。
191[kimuchi]manse- :01/08/30 02:29 ID:zgvSnoZM
>>190
自分へのレスですよね…?アドバイス有難うございます
とりあえず試してみます
192190:01/09/01 05:29 ID:jNF.zKm2
>>191
そう。なんで>>188って書いてるんだ、俺?

ついでに
>>189
DirectDrawEnumerate()すれば?
193デフォルトの名無しさん:01/09/01 05:57 ID:zvbIgHe6
斜めスクロールのやりかたきぼんぬ。
194デフォルトの名無しさん:01/09/01 06:13 ID:1DtRZ1Hg
縦と横ができりゃ斜めもできるっしょ。
195夏春都:01/09/01 06:44 ID:D.ABUc5s
ここに書き込めばいろいろ作ってもらえますよ!
丁寧に頼むのがコツです!!

http://isweb8.infoseek.co.jp/computer/bbx/cgi-bin/bbx.cgi
196デフォルトの名無しさん:01/09/01 08:19 ID:1DtRZ1Hg
>>195
やめれ。ある意味最後の砦なのに。
197デフォルトの名無しさん:01/09/01 13:01 ID:.mOGTW5.
>>193
まだできねぇのか(藁
198デフォルトの名無しさん:01/09/01 13:43 ID:.x5tGM/g
>>195
最悪。
ていうか来るな。
プログラムやめろ。
199デフォルトの名無しさん:01/09/01 20:34 ID:jNF.zKm2
>>196
BBXなくなってもまだBio100%があるぞ。
つーか>>159で質問してるの俺なんだが、
誰か知らないか? かなり困ってるんだが。
200デフォルトの名無しさん:01/09/01 20:39 ID:9O/qUJsc
>BBXなくなってもまだBio100%があるぞ。
俺の心の中では既に終了認定している。
201193:01/09/01 20:50 ID:E8SX09Ro
一般人からも叩かれオタッキー野郎からも叩かれる俺は何?
ヒッキーなのか?もう嫌だ暴れてやる。
鬱だ死のう・・・
202193:01/09/01 20:54 ID:E8SX09Ro
ったくなんであんなアニオタ野郎から怒られないといかんのだ。
こっちは必死で我慢してんのに。マジでシバキ倒して再起不能に
してやりてえ。あ〜むかつく氏ね。
203193:01/09/01 20:58 ID:E8SX09Ro
もう俺ドキュソでいいよ。
土方やるから。っていうかそれしか仕事ないし・・・
204 :01/09/01 21:06 ID:6wEGDcFE
今日のIDに乗せられてDirectX始めました。
ところでいろいろとサンプルを動かしていく中で、
射影行列という言葉が出てきたのですが、
これってどういう意味なんでしょうか?
205デフォルトの名無しさん:01/09/01 21:27 ID:q81TAzjE
206 :01/09/01 22:07 ID:6wEGDcFE
>>205
ご丁寧にすみませんねぇ。
単位行列を高校時代の参考書引っ張り出して確認してるレベルな
もんで、なかなか理解が進みません。
初めて数学コンプレックスを自覚してます。
207デフォルトの名無しさん:01/09/02 07:00 ID:GgUo8/bg
射影行列が何かっていったら、「ビューボリュームを立方体に直してやる」変換に使う行列。

行列の中身なんぞほっといて、概念とかを言葉で説明できるようになっておいた方がいい。
そうでなければ受験でもないかぎり覚えないし、覚えたとしても応用利かない。
実際、座標の取り方で射影行列が全く変わってくるんよ。
208207:01/09/02 08:47 ID:GgUo8/bg
ちっと、ちがうか。

「ビューボリュームを立方体に直す」変換が射影変換で、これには中心投影と平行投影がある。
でもって、そのどっちでも良いから、とにかく射影変換に使う行列が射影行列。

と、オイラは覚えているよ。
209 :01/09/02 13:56 ID:Y5uOkXVQ
>>207
ありがとうございます。
ところで疑問なのですが、例えばシューティングゲームなどで、
敵キャラが出てきたらそのたびにVertexBuffer作ってロックして
行列変換してってやるんですよね?ミサイルなんかもそうやるのでしょうか?
行列変換はループのなかで一回やるだけでいいとしても。
なんか慣れてない用語が山のように出てきて戸惑ってますw
気分を害するような勘違いがあれば指摘して欲しいです。
よろしくお願いします。

またみなさんどれぐらいのスペックのマシンで開発してますか?
やっぱりプロの人はいいものつかってるのでしょうか?
210[kimuchi]manse-:01/09/02 15:25 ID:dHgZ9kug
>>192
すごく遅レスになりますが…
とりあえずパフォーマンスカウンタとタイムスタンプカウンタで
以前に書いたのと同じ方法で、何秒間か垂直帰線の発生する数を数えて
カウントした秒数で割るという方法を試してみたのですが、ウチの
環境ではあまり精度は変わりませんでした…。どうもタイマーの精度の
問題ではなかったようで…。ただ、70回程垂直帰線の間隔を取ってそれを
リフレッシュレートにして、一番同じ数が多かったものを選択したら
timeGetTime()だと1割位の割合で変な数が出る以外大体誤差±2Hz位に
収まるようになり、パフォーマンスカウンタ、タイムスタンプカウンタ
ならほぼ100%誤差±1Hz以内でリフレッシュレートを求める事が
出来ました。
DirectXと関係の無い話長々とすいませんでした…
211 :01/09/02 19:40 ID:XX.PwXlU
VertexBufferは最初にまとめて1回作るんだよ。
キャラクター毎にVertexBufferを作っておく
中身を書き換えるような事は極力してはいけない。したがってLockもしない
(頂点データーも書き換えるようなエフェクトを実装する場合は例外)
212デフォルトの名無しさん:01/09/02 20:27 ID:zNUtPRHU
ちょっとお聞きします。
googleツールバーを他のアプリから呼び出すには
COM経由で呼び出すと機器ました。
そんことってできるのですかぁ?
できるなら、凄いですよね?
凄いなぁ。
213204:01/09/02 20:34 ID:Y5uOkXVQ
>>211
あ、そうなんですか(汗
よく考えたらそうですよね。
ところで
> 頂点データーも書き換えるようなエフェクト
これってアメーバーのように変体するオブジェクトを表現する
のに使われるのでしょうか?

ところで皆さん、思い描いた図形をすぐにベクトルへ頭のなかで
変換とかできるんですか?これって自分にはかなり辛いです。
慣れの問題なのかな?それとも単にセンスがないだけなのか・・・

X-BOX発売までにゲームをひとつ作りたいなんて思ってますが、
ハードルがいくつもありそうですね。

寺田文行の参考書『代数幾何』、高校生の時はさっぱり
分からなかったのに今だとスラスラ理解できる。なんだかなぁ。
ま、勉強始めるのに年は関係ないかと自分を慰めてますw
214メロン:01/09/02 20:37 ID:CarNkN.k
モジヲ ヘンカンシヨウトスルト IEXPLOREガ ゲンインデ
 エラーガ ハッセイシマシタ。IEPLOREハ シュウリョウシマス。 モンダイガ カイケツシナイバアイハ コンピューターヲ
 サイキドウシテクダサイトデマス サイキドウシテモ モンダイハカイケツシマセン ダレカタスケテ
215デフォルトの名無しさん:01/09/02 20:39 ID:G96xcqig
>>212
すごいですね。

>>214
シリマセン
216_:01/09/02 20:45 ID:BQI6Ch6c
>>213
ハードルは後67個ぐらいあるよ
ガムバッテ
217204:01/09/02 20:55 ID:Y5uOkXVQ
>>216
あと発売まで4ヶ月ぐらいですが何とか一つ仕上げたいと思います
ガンバリマス
218204:01/09/02 23:07 ID:GgUo8/bg
あー、211に補足。

たとえば、同じキャラクタが何匹もいるとき。たとえばゾンビの集団でいいや。
ゾンビの一体一体それぞれに、VertexBufferを確保するんじゃなくて、全てのゾンビで一つのVertexBufferを共用する。

ま、こんなに偉そうに書くようなことではないんだけど一応ね。
219204:01/09/02 23:44 ID:Y5uOkXVQ
>>218
ありがとうございます。
そういったテクニックなんかはどこでネタを仕入れているのですか?
極々基本的なものだけでもいいから知りたいと思います。
つーか、まずはサンプルを完全に理解してからだけど。。

こんな本参考になるんでしょうか?
http://www.amazon.com/exec/obidos/ASIN/1584500492/qid=999440768/sr=8-2/ref=aps_sr_b_1_2/102-9919407-4912155
http://www.amazon.com/exec/obidos/ASIN/1584500549/qid=999440768/sr=8-1/ref=aps_sr_b_1_1/102-9919407-4912155
sorenishitemo takai desu・・・

DirectXに特化したことが知りたいのでアセンブラでどうこうとかいった
話はあまり興味がありません。というか作れません(泣
何かよい本、もしくはよいサイト(こっちのほうがうれしかったり^o^;)
をご存知でしたら教えて頂けないでしょうか?
基本的には3Dアプリを考えています。よろしくお願いします。

今月中にはキャラクタの作成とインターフェイスの取り決めまで、
やりたいなぁ。。
220デフォルトの名無しさん:01/09/03 12:52 ID:W16CWBbg
>>193
ほれ。見れ。


まず、画面サイズは、640x480とする。

#define SDCREEN_WIDTH 640
#define SDCREEN_HEIGHT 480

// Global
POINT ptBase; // スクロール基準点
LPDDSUF lpWall; // スクロールさせる壁紙サーフェイス

DrawWall()
{
 RECT rt;
 // 左エリア
 if( ptBase.x > 0){
  // 左上
  if( ptBase.y > 0){
   SetRect( &rt, 0, 0, ptBase.x, ptBase.y);
   // BltFast等の描写
  }
  // 左下
  if( ptBase.y <= SDCREEN_HEIGHT){
   SetRect( &rt, 0, ptBase.y, ptBase.x, SDCREEN_HEIGHT);
   // BltFast等の描写
  }
 }
 // 右エリア
 if( ptBase.x <= SDCREEN_WIDTH){
  // 右上
  if( ptBase.y > 0){
   SetRect( &rt, ptBase.x, 0, SDCREEN_WIDTH, ptBase.y);
   // BltFast等の描写
  }
  // 右下
  if( ptBase.y <= SDCREEN_HEIGHT){
   SetRect( &rt, 0, ptBase.y, ptBase.x, SDCREEN_HEIGHT);
   // BltFast等の描写
  }
 }
}
221デフォルトの名無しさん:01/09/03 14:22 ID:y/7mtwuA
ていうか、昔そのまんまのスレがたったよね。
222デフォルトの名無しさん:01/09/03 15:25 ID:W0SXXXpE
>221
これかな?絵に描いたような駄スレだが
http://www.google.com/search?q=cache:l2Z6hbwb8Rw:piza.2ch.net/tech/kako/991/991415593.html
223204:01/09/04 02:02 ID:THUfbr9I
ワールド、ビュー、射影のそれぞれのトランスフォームで
図形をぐりぐりイジッてたら気持ち悪くなってきた。もう寝ます・・・
224デフォルトの名無しさん:01/09/09 16:30
まったくの初心者質問かもしれないけど、
GDIしか使わなかったらDirectXがインストールされていなくても
コンパイルと実行ファイルの動作に問題ないのだろうか。
225デフォルトの名無しさん:01/09/09 17:32
本読みながらここまで何とか作れましたが
CreateDeviceのところで蹴られます
http://www.interq.or.jp/blue/solomon/test.cpp
どこを直せばよいでしょうか?
根本的な解決手段ではないけど(w
//  d3dppApp.FullScreen_RefreshRateInHz = 60;
227デフォルトの名無しさん:01/09/09 18:29
d3dpp.FullScreen_RefreshRateInHzは60じゃなくて
D3DPRESENT_RATE_DEFAULTにする。
後はバックバッファのフォーマットをいろいろ変えてみ?
古いVoodooはD3DFMT_X8R8G8B8じゃ駄目とかいろいろある。
228デフォルトの名無しさん:01/09/09 18:58
>>227
ありがとうございました

本の丸写しではやっぱりだめですね
もっと勉強してこれからも頑張ります
>224
DirectXのヘッダーやライブラリを組み込んでても、
実行時に実際にDirectXを使わなければインストールしてなくても
プログラム自体は問題なく動く(or起動する)ことを期待しているわけか?
んーっと、初めて DirectX で音鳴らしてるんだけど、DirectX Audio で MP3 とか Ogg とか鳴らしたいときは DirectSound 使うしかないのかな?

google と BBX 漁り中‥‥
231デフォルトの名無しさん:01/09/10 09:55
>>229
まさにその通りの質問です。
すごく分かりやすい書き方・・・、自分の説明力のなさが・・・鬱氏。
232一3D初心者:01/09/10 14:42
DirectX8.0で「有理Bスプライン面/曲線」「パラメトリック面/曲線」のメッシュを作成したいのですが、HELPや書籍を調べてもわかりませんでした(高次元プリミティブの設定のところで「有理Bスプラインを有効にする」という設定があるのは確認しましたが)。
どなたか御教授お願いいたします。
233デフォルトの名無しさん:01/09/16 23:39
Direct X7の質問です。
IDirect3DDevice7::SetTextureにて、注意書きに
>このメソッドは、割り当てられているテクスチャ サーフェスの参照カウントをインクリメントする。
>テクスチャが不要になった場合は、該当するステージのテクスチャを NULL に設定しなければならない。
>これを行わないと、サーフェスが解放されずメモリ リークが発生する。
とありますが、これの意味がいまいちよくわかりません。
サンプルを見ても、特に気をつけているとは思えないし・・・

開放する手順を具体的に言うと、該当するステージのテクスチャを NULL に設定したあと、
開放するテクスチャのサーフェスを(参照カウントがインクリメントされた分)なんどもReleaseしろってことなのでしょうか?
http://www.interq.or.jp/blue/solomon/test.cpp

テクスチャにbmpを貼り付けて2D表示する場合256×256以下の
大きさ意外は扱えないらしいのでbmpを2枚に分けて
2つのテクスチャで表示させたのですが継ぎ目の部分が
おかしく表示されます
DirectX8でスプライトを使用して640×480のような
大きいサイズのbmpを表示させることはできないのでしょうか?
>>233
DirectX8だと勝手に参照カウントをデクリメントする旨の表記があるんでDX7も同じなんじゃないの?
心配ならデバッグモードでメモリリークがあるか調べてみるとか。
236233:01/09/17 02:29
>>235
えぇ?
参照カウントをデクリメントしちゃうんですか?
そりゃ大変だ・・・やばいですね。
コードの大幅な修正が必要かも・・・。
がんばって修正してみます。
237デフォルトの名無しさん:01/09/17 04:06
>2>33
SetTextureにNULLを設定するということは
テクスチャを開放する(release)するという意味なのよ。
ReleaseTextureというメソッドを設ける代わりに
NULLを渡すって方法にしたの。
当然NULLを渡せば、参照カウントはデクリメントされる。
>>234
D3DXCreateTextureFromFileEXを使いましょう
239デフォルトの名無しさん:01/09/18 00:04
>>232

> DirectX8.0で「有理Bスプライン面/曲線」「パラメトリック面/曲線」の
> メッシュを作成したいのですが、HELPや書籍を調べてもわかりませんでした
> (高次元プリミティブの設定のところで「有理Bスプラインを有効にする」
> という設定があるのは確認しましたが)。
> どなたか御教授お願いいたします。

三角形分割をハードウェアにやらせるなら
矩形パッチの制御点情報を頂点バッファに入れてDrawRectPatch()らしい。
Microsoftのドキュメントは頂点バッファのフォーマットに関する記述が
抜けているけど、とりあえずベジェとか3次スプラインの曲面なら最低限
(D3DFVF_XYZ)さえ入れておけば理屈では足りる気がする。

Nervous局面は知らないのでパス。

nVidiaやATIのサイトに行けばサンプルコードか何かが見つかる気がする。
240デフォルトの名無しさん:01/09/18 00:44
曲面はGEFORCE3がないとダメだよ
有理はサポートしてない
241デフォルトの名無しさん:01/09/18 02:45
BCC++5.5でDX8使えますか?
ビルドの時にどうしても
Error: 外部シンボル 'Direct3DCreate8' が未解決
ってでるんですが…。
>>241
ぷよぉんのページ検索しとけ。
243デフォルトの名無しさん:01/09/18 11:55
>>242
検索しましたけど、それらしき情報が見つかりません(泣
245デフォルトの名無しさん:01/09/18 16:03
>>244
そのページ内にBCC++で使うための情報が見つけられませんでした…。
246241:01/09/18 16:33
というか自己解決。スミマセンスレ汚しましたゴメンナサイ(;´Д`)
247初心者:01/09/21 16:48
すみません、DirectDrawについて教えてください。
ウィンドウモードでのフリップのタイミングは何に依存するのでしょうか。
フルスクリーンモードでは自分でコントロールできるのですが。
リフレッシュレートですか?
>>247
SDK のドキュメント読みましょうよ

IDirectDrawSurface7::Flip の「注意」のセクションから抜粋
> IDirectDrawSurface7::Flip メソッドは、常に垂直帰線消去と同期する。サーフェスがビデオ ポートに
> 割り当てられていると、このメソッドは表示状態のオーバーレイ サーフェスおよびビデオ ポートの
> ターゲット サーフェスを更新する。

あと、ウィンドウ表示のときには複合サーフェイスを作らず、オフスクリーンサーフェイスとして
作ったバックバッファからプライマリサーフェイスに Blt するのが一般的だと思います。SDK
のサンプルもそうなってますよね。
249デフォルトの名無しさん:01/09/22 07:32
>>247

平たく言えば、ウィンドウモードの場合

『画面更新のタイミングは自分で取る』

ってことさー。
リフレッシュレートと同期とるなら、環境にもよるけど
WaitForVerticalBlank()やGetScanLine()とか使って。
使えない場合は適当にやって。

あとは、こんなん参考にして↓
http://piza.2ch.net/tech/kako/972/972165437.html
http://piza.2ch.net/tech/kako/969/969984472.html
250デフォルトの名無しさん:01/09/22 11:11
WINDOWモードでVSyncって検出できるの?
出来ないと思ったが、、、、
251デフォルトの名無しさん:01/09/22 11:52
どなたか、頼みます。
MS-DOSプロンプトでキーボードの「enter」キーと同じ動作をする
コマンドを教えてください。
お願いします。
252デフォルトの名無しさん:01/09/22 12:18
>>251
ん? echo. のことか? つーかスレ違い
253251:01/09/22 12:30
>>252
ありがとうございます。
早速、試してみます。
254249:01/09/22 15:17
>>250

そうか。

それじゃ、とりあえず実際に試してみて
その結果とグラフィックスカード名を報告して。
そのほうが有意義ってもんだろうよ。

こちらで試したところ

・nVidia GeForce256
・Matrox G400
・ATI RADE ON

はウィンドウモードであろうと垂直帰線同期
を取ることはできたよ。

そっちはどうだい?
250追い込まれました!
ピンチ!
ニヒルに笑う249!
256249:01/09/22 19:43
>>255

あ、誤解しないで。全然そういうつもり無いんで。
>>249でも断ってる通り、実際使えない環境あるんだよ。
だから>>250の反応は当然だよ。

今は手元にないんで確かめられないんだけど、例えば
nVidia RIVA128 とかウサン臭かったような気がする。
不確かだけど。
257デフォルトの名無しさん:01/09/23 16:48
age
258一3D初心者:01/09/26 13:18
すごい亀レスで申し訳ありません。

>>239
やはり三角形分割でやるしかないですか。
一応その方向で試してみます。
259デフォルトの名無しさん:01/09/27 22:05
こちらで質問させてください。
例えばゲームでキャラクターや背景を一つのビットマップにしておいた時、
その一部分のみをスプライトや背景データとして他のサーフェイスに順次貼り付けていくために
なにかビットマップのある一部分だけを転送できる関数があるのでしょうか・・・?
ああ、もう答えてもらえないかな・・・。
>>259
1. ビットマップ全体を格納するサーフェイスを作る
2. そのサーフェイスからバックバッファに Blt するときに、転送範囲を指定する
 IDirectDrawSurface7::Blt() の第三引数をチェック

で、どうよ?
>>260
ほほう!
今HELP見てきました。
Blt()とはそういうものだったのか・・・。
BltFast()も見てみたらこれも出来そうですね。
ありがとう!!
ををっ、このスレらしいレスが付いている。
つか最近、どう考えても鬱氏DX向けのネタばかりが並んでいたような……
「鬱だ死のうDirectX 2」
http://piza.2ch.net/test/read.cgi?bbs=tech&key=966655286&ls=50
>>262
上級/初心者の区別をつけるガイドラインが提示されていない以上、ごっちゃに
なるのは必然と思われ。2D/3D とか言語で分けるなら明確なんだけどさ。
264蛇足:01/09/28 08:18
リンクミスっとったんで。

■鬱だ氏のうDirectX 2
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=997101556
初級質問から話題が派生することも多いしな。
266名無しサソ:01/09/29 06:19
 かなり初心者っぽい質問なので、こちらで・・・

 DirectX7SDKのIMサンプルの中に、Xfileロードの
サンプルがあるけど、これに使われているXファイル
ロード用のCD3DfileObjectって、一つしかChildが
持てないように見えるのは、気のせいですか?

VOID CD3DFileVBObject::AddChild( CD3DFileVBObject* pChild )
{
if( m_pChild )
m_pChild->AddNext( pChild );
else
m_pChild = pChild;
}

と言う感じで、子供がすでに居たら、子供に子供を
作らせてるし。
267名無しサソ:01/09/29 06:23
 age忘れ。スマソ。
DX7SDK入れてないからサンプルが読めないんだけど、
2番目以降の子供は1番目の子供の次に格納するって感じだったと思う。
なので、1つのフレームにつき、1つの子供でオッケー。


|
子供-次-次
|    |
孫-次  孫2-次-次

図、ずれるだろーなー。雰囲気ってことで。
ところで、これ、どのサンプルだろう?
CD3DFielVBObjectなんてあったっけ。
269名無しサソ:01/09/29 20:22
>268
 どうもありがとう。CD3DFileVBObjectは
とある人のオリジナルソース(VertexBuffer仕様にしてある)
で、CD3DFileObjectが元の名前です。ゴメソ。
270名無しサソ:01/09/29 20:24
 捕捉:よく見てみたら、AddChildじゃなくてちゃんとAddNext
だね。どうも寝ぼけていたらしい・・・・。逝ってきます。
SDK 8にサンプルとしてついてきたbillboard ですが、
実行しようとするとmediaがloadできないと出てしまいます。

パスの設定がまずいかと思い、readme.txtのように
ソースと実行可能〜を設定しまいしたが変わりません。

恥ずかしいほど厨房質問ですが、
どなたか解決策を教えていただけますでしょうか。

実行後のメッセージ(その1を閉じるとその2が出て終了します)

その1
Billboard DSD Billboarding Example
Could not load required media.
Switching to the reference rasterizer, a software device that
implements the entire Direct3D feature set, but runs very slowly.

その2
Could not load required media.
This sample will now exit.
272271:01/10/08 15:59
readme.txtによれば
Path
====
Source: MSSDK\Samples\Multimedia\D3D\Billboard
Executable: MSSDK\Samples\Multimedia\D3D\Bin

となっています。

実際billboard.cppを見ると、"Tree02S.tga"などを読み込んでいます。
これはreadme.txtのパス(ディレクトリ)にはないんですけど
これでいいのでしょうか?
「Could not load required media. 」はここらへんに関係しているような・・・?
それで当たってるよ。
>>271

自力でもう少しソースを追ってみ。簡単だから。

そすると、こんなん出てくるから。後はすぐ分かるから。
DXUtil_FindMediaFile()
DXUtil_GetDXSDKMediaPath()
274デフォルトの名無しさん :01/10/08 17:07
directx8のデモサンプルのdonuts3dのLoadShipModel()の中の
g_pShipFileObject = new CD3DMesh();

のg_pShipFileObjectを配列のようにするには
(g_pShipFileObject[0],[1],{2}・・かな?)
ソースをどのように変えればよろしいのでしょうか?
>274
…もしかしたら思いっきり勉強が足りないんじゃないか?
276ポリゴン:01/10/08 17:44
directX8.0/VC++6.0で質問なんですが、
2つ上下にくっついた円柱をある加速度で上下に分離させたいんですけど、
宣言する関数とかが分かりません。
頂点データに加速度を加えるようにするのでしょうか?
277271:01/10/08 18:08
>>273
厨房質問なのに答えていただきありがとうございました。
今から再挑戦してみます。
278デフォルトの名無しさん:01/10/08 18:22
>>276
IDirect3DDevice8::separateCylinder();
という関数があるのでそれを利用。

頂点データに加速度を与える方法は、
次から店員にマークされるという危険も伴う、諸刃の剣。
素人にはお薦め出来ない。
279デフォルトの名無しさん:01/10/08 18:55
なんかタイムリー?なので2点ほど質問させてください、よろしくお願いします。

DirectX8で頂点が頻繁に減ったり、動いたりするようなデータを
VBufferで扱うにはどういう方法がベストなのでしょうか?

また↑の上手い方法が思いつかず、結局今はDrawPrimitiveUPを
使ってるのですが、この引数である頂点配列の先頭アドレスとして
std::vectorの情報をなんとか渡す方法ってありますでしょうか?
280かなり適当:01/10/08 20:12
>>279

確かめてないけど、こんなんでえんとちゃうの。
え、全然違う?

vector<HOGEVERTEX> v;
DrawPrimitiveUP(D3DPT_TRIANGLELIST,プリミティブ数,(void*)v.begin(),sizeof(HOGEVERTEX));
281280:01/10/08 20:14
あ、要素入れるトコは端折っとるよ。
282274:01/10/08 20:29
>>274
簡単なことかもしれないけど教えてくださいませ。
>>280
それって、vector<T>::iteratorがT*な実装限定じゃないの?
284ポリゴン:01/10/08 20:51
>>278
この関数の使い方がヘルプにも載っていないのですが??
285280:01/10/08 20:57
うん、そういうことだね。
あー。difference_typeとか忘れてたー。
気の抜けた書き込みでもうすわけね。
287276:01/10/08 21:44
分からない〜!
>>287
ヘルプ古いんじゃない?
http://choco.2ch.net/test/read.cgi?bbs=tv&key=1001857624
に最新のあるURLが書いてあるよ。
あー、280です。
280のコード確認したらとりあえず動いてるわ。
適当だから細かい事は勘弁して。てことでスマン。
>>287
ネタだって。
そもそも命名規約守ってないメソッドがあるわけ無いやん
>>283

ところで、実際のトコを伺いたいんだが・・・
その条件を満たさない開発環境に遭遇するのか?
(orその懸念は実際上有意義なものなのか?)
292276:01/10/08 23:39
誰か賢い人いないですか〜?

「directX8.0/VC++6.0で質問なんですが、
2つ上下にくっついた円柱をある加速度で上下に分離させたいんですけど、
宣言する関数とかが分かりません。
頂点データに加速度を加えるようにするのでしょうか?」
と言う質問なんですけど…
知っている方お願いします。
293デフォルトの名無しさん:01/10/08 23:45
>>292
賢い人はVCなんか使わない。
294デフォルトの名無しさん:01/10/08 23:47
VCはゴミ、Delphi最高!
295名無しサソ:01/10/08 23:53
>292
 余計なお世話かも知れないけど、同じ事を二度も書き込むようだと、
厨房と思われて、賢い人は余計にレスをしてくれない。人を馬鹿に
するような書き方は止めたほうがいい。

 そもそも、何を宣言する関数なのか、日本語が意味不明。
2つある円柱を切り離したいのか、円柱の上下を引き延ばしたいのかも
分からない。二つの円柱を動かしたいだけなら、お互いの座標系で
加速度を加えてやればいいはず。物体が複雑に変形するわけでも
無しに、頂点データ云々言っているのであれば、はっきり言って
勉強不足。

 と、ヘタレからの忠告。
>>292
最初から2つのオブジェクトを作るなり
頂点座標を変更するなりすれば良いだけだが
その程度の事を思いつかないはずはないわけで
結局何が聞きたいのか分からん
座標をいじるだけなら関数云々は関係無い
Delphiを貶めようとしている人の発言なので反応しないでください。
298297:01/10/08 23:58
>>292

そんなんじゃ駄目だよ。全然詰めが甘い。
http://piza2.2ch.net/test/read.cgi/tech/1002290332/121
300278:01/10/09 01:13
               ◎___
            .  //     /
              . // 疎   /
             // 羅  ./
             // 音  /
            // 絵  ./
             // 世  /
       ∧空∧// ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       {´ ◎ `}< >>276の文章は解読できんので賢くはないがソラネーヨ!
      ρ/  / )  \________
    口⊇○   丿
   /"/| /⌒' 丿┐
   ///(_)//┐=3 べべべ〜
   ◎ ̄ ̄ ̄ └◎
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
>>291
VC.NETは違うらしいし
某MLから引用

- vector<T>::iterator は T* ではない。

#include <iostream>
#include <vector>
#include <typeinfo>
int main() {
std::cout << typeid(std::vector<int>::iterator).name() << std::endl;
return 0;
}

こいつの結果はVC++6ではint*でしたが、
VC++7では:class std::_Ptrit<int,int,int *,int &,int *,int &>
です。vector<T>::iteartor が T* と仮定しているコードは互換性が
ないのでちうい。
303279:01/10/09 12:19
>>280さんや他の皆様
レスありがとうございます、できました!当面の所VC++6以外使う
予定ないので互換性の問題に留意しつつ、これでいかせていただきます。

昨晩必死になって(自宅でネットに繋げれば…)作ってた、
erase()の実装がとっても愉快な自作vectorコンテナを使わずに済むだけで万々歳!です
>>302
なるほど。知らなかたーよ有難う。

どうしてもデータ配置を配列と同じにしたけりゃ
それ専用のアロケータ用意するのが筋なんだね。
305276:01/10/09 21:01
なんかすごい言われよーですね…。
内容が足りなかったのは謝ります。
知りたいのは、ある加速度を持って上下に切り離すやり方です。
やり方と言ってはあれですけど、加速度を頂点データに持たすには??
ということでお願いします。
まだ、足りないようであれば指摘して頂けると幸いです。
>>305

微妙に煽ってみたり卑屈んなったり忙しい奴だなー。
実を得るために初志を曲げるのはお父さん関心しないぞ。
フラフラしちゃいかん。厨房まっしぐらで頼む。
>>305
てゆーかあんたがどう言うデータ構造でやってるか全然わからんので
返事のしようが無いというのが本音だ。
一番単純な方法は頂点データを毎回変更すればいいんじゃねーの?
>>305
http://www.bio100.co.jp/cgi-bin2/directx/flashviw.cgi?no=1721&reno=no
馬鹿?
このスレでも何度も答えが書き込まれているのに、なんで人の話を聞かないの?
迷惑だからプログラムやめろ
とうとうBioで聞き出したか…。

逝って良し、と
>>309

BBX(↓ココね)
>> http://isweb8.infoseek.co.jp/computer/bbx/ <<
で聞かなかっただけましだと思われ
311デフォルトの名無しさん:01/10/09 22:16
age
312307:01/10/09 22:17
>>305
てゆーか既に答えがかいてあるじゃねーか。>>295-296
これで理解できないなら、もう少し基礎から勉強しる
>>308
リンク先ワラタ
314276:01/10/09 23:32
>>312
295-296の内容はわかってます。
だけど、加速度をどうやって出すかが分からないのです。
ある文献には、角度をtimeGetTime()で得てことで回転をさせてる。
速度を得るには??

>>308
答えなんか載ってます?
>>314
ダメだこりゃ
プログラムを組む前に中学生からやり直してください
316デフォルトの名無しさん:01/10/09 23:49
>>314

>>317 一番単純な方法は頂点データを毎回変更すればいいんじゃねーの?
317リアル厨房:01/10/09 23:57
>>314

v=v0+atですよ。学校で習いましたよ。
318305:01/10/09 23:58
>>314
匿名掲示板で無粋だがあえて聞く。
最終学歴は?理系か文系か?

あるなら物理1Bか2の教科書読んでくれ。
319 :01/10/09 23:58
悪質なSPAM業者に対する対応を練っています。
ぜひご意見をお聞かせください。
■2ちゃんねらー対悪質SPAM業者
http://kaba.2ch.net/test/read.cgi/news2/1002632468/l50
320278:01/10/10 00:00
                      ◎___
                      //     /
                    // 居   /
                    // 場   /
                    // 所  ./
                   // ネ  /
                   // /  ./
                  // ヨ  /
             ∩熊∩/___/
            (´(・)` )<  276に感動した!無視だなんてソラネーヨ!
             ):::::::::(/ゝゝ,ゝゝ,
            /::::⊂二_) JJJJ
         手二|::::::::::::::\__/
   ∩_∩    (;;;;;;;;;;;;;;;;;;;)     
  (3(・)3 )  __<< \\      __  //    ─────
   \  <_丶::::◎>__<:::◎>( ̄ ̄ )二//     ─────
  ┌(__)┐__)┐_(_/⌒ヽ二二_//    ─────
     (ニニニ)_○//(ニニニ)__)二二/      ─────
>>320
ナニコレ?
322276:01/10/10 00:13
>>317,318
そんなことは分かってます。
速度も加速度も時間に依存していますよね?
速度(m/s),加速度もしくは重力(m/s*2)
それ(時間(s))を変数に割り当てる方法が分からないのですが。
>>320
応援ありがとうございます(^^)/~
323305:01/10/10 00:18
>>322
Windows起動後のシステム時間をミリ秒単位で返す。
前回の値を記憶しておいて、今回の値との差を取れば時間がでる。
これでいいか?
324305:01/10/10 00:19
timeGetTime()の話な
>>322
はいはい、積分すれば?(NHKスペシャルを見ながら)
>>322
式変形すれば出来ると思うが・・・
>>276
速度も加速度も時間に依存しません。
物理の勉強してください。答えはキミが毎回学校のロッカーにしまっている教科書の中にあります。

たしかに、物体にかかる力を地球からの万有引力 ( 簡単のため g = 9.8 m/sec^2 の定数と仮定 )のみと仮定すれば

F = mg
a = F / m = m
v = ∫a dt = v0 + g(t - t0)
r = ∫v dt = v0(t - t0) + 1/2 * g(t - t0)^2 + r0

が導き出されますが、空気抵抗を考えると

F = mg - kv

ですので、例えば人体の場合 200m/sec あたりで安定します。

‥‥ひそかに答え(藁
328327:01/10/10 07:46
補足:
v0 : 時間 t0 における速度
r0 : 時間 t0 における位置
k : 物体固有の抵抗-速度係数
>>327
>a = F / m = m

こんなところに書きこんでると、小学校のお友達がおあいてしてくれなくなっちゃうので
はやく学校に行きましょうね♪
327のつまんねー煽りと、それに得意げにつっこむ329
という厨房泥仕合絵図なのか。そうなのか。
>>330

うむ。というか、より掘り下げれば、
外野が>>276という天然素材を彼らは食い散らかしてしまった。
無粋な連中はすぐがっつくからイカン。育て、愛で、楽しむんだ。
332278:01/10/10 18:28
                        ◎___
                     .  //     /
                       . // 疎   /
                      // 羅  ./
                      // 音  /
                     // 絵  ./
                      // 世  /
         /\ /\  ∧空∧/__/ ̄ ̄ ̄ ̄ ̄ ̄
        / /\  \{´ ◎ `}ミミ./ < >>331俺も外野か?ソラネーヨ!
       ())ノ__ ○二○二⌒/../   \___
       / /||(二ニ) (___/../ 几l _
   γ ⌒ /|V||彡Vミ/⌒_ノ二二ノl0   ̄ ̄
   l| (◎).|l |((||((゚(__/ ||三三三・||
__ ゝ__ノ     ̄        ゝ__ノ    バルルルウルルルルルル
      ,一-、
     / ̄ l |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ■■-っ < んなーこたーない
    ´∀`/    \__________
   __/|Y/\.
 Ё|__ | /  |
     | У..  |
334デフォルトの名無しさん:01/10/10 21:58
Direct3Drmをフルスクリーン表示に変更しているのですがコンパイルすると

-----------------------------------------------------------------------

hres = lpDirect3DRM->CreateDeviceFromSurface(NULL, lpDirectDraw,lpBackBuffer, &lpD3DRMDevice);

c:\direct3d\initd3d.cpp(36) : error C2664: 'CreateDeviceFromSurface' : 2 番目の引数を 'struct IDirectDrawSurface *' から 'struct IDirectDraw *' に変換できません。 (新しい機能 ; ヘルプを参照)
指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。

c:\direct3d\main.cpp(145) : error C2039: 'SetCooperativeLevel' : 'IDirectDrawSurface' のメンバではありません。
c:\mssdk\include\ddraw.h(1417) : 'IDirectDrawSurface' の宣言を確認してください。

-----------------------------------------------------------------------

なぜかこのようなエラーが出てしまいます。ちゃんとddraw.libとかもリンクしてあるのに
4時間ほど悩んでます。ヘルプを見ても解らないです。
335デフォルトの名無しさん:01/10/10 21:59
DirectXのバージョンは7aです。
336バルバロッサ:01/10/10 22:01
◎___
                     .  //     /
                       . // 疎   /
                      // 羅  ./
                      // 音  /
                     // 絵  ./
                      // 世  /
         /\ /\  ∧空∧/__/ ̄ ̄ ̄ ̄ ̄ ̄
        / /\  \{´ ◎ `}ミミ./ < >>334そんなことシラネーヨ
       ())ノ__ ○二○二⌒/../   \___
       / /||(二ニ) (___/../ 几l _
   γ ⌒ /|V||彡Vミ/⌒_ノ二二ノl0   ̄ ̄
   l| (◎).|l |((||((゚(__/ ||三三三・||
__ ゝ__ノ     ̄        ゝ__ノ    バルルルウルルルルルル
337デフォルトの名無しさん:01/10/10 22:01
C/C++じゃ無理。
言語が糞だから駄目。
Delphi使えよバーカ。
338バルバロッサ:01/10/10 22:02
@ノハ@
 (σ‘д‘)σ<加護ちゃんです♪
 (    )
 (__)__)

∋0ノハヽ0∈
 (σ´D`)σ<つじちゃんれす♪
 (   )
 (__)__)
339コリンズ:01/10/10 22:05
  @ノハ@
   ( ‘д‘)つ   >>334は氏んどけやでぇ!
 (( (⊃  (⌒) ))
    (__ノ
340コリンズ:01/10/10 22:05
   @ノハ@
   (‘д‘ ∩ ))  もう諦めろや!
 ((  (⊃ 丿
    (__)し'
341コリンズ:01/10/10 22:07
>>334ワッショイ >>334ワッショーイ
                            +
.   +  (\_/)(\_/)(\_/)  +
      ( ´∀`∩(´∀`∩)( ´∀`)
 +  (( (つ   ノ(つ  丿(つ  つ ))  +
       ヽ  ( ノ ( ヽノ  ) ) )
       (_)し' し(_) (_)_)
342デフォルトの名無しさん:01/10/10 22:22
もっと具体的に書くと

Direct3Drmをフルスクリーン表示に変更しているのですがコンパイルすると

-----------------------------------------------------------------------

hres = lpDirect3DRM->CreateDeviceFromSurface(NULL, lpDirectDraw,lpBackBuffer, &lpD3DRMDevice);

c:\direct3d\initd3d.cpp(36) : error C2664: 'CreateDeviceFromSurface' : 2 番目の引数を 'struct IDirectDrawSurface *' から 'struct IDirectDraw *' に変換できません。 (新しい機能 ; ヘルプを参照)
指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。

hres = DirectDrawCreate(NULL, &lpDirectDraw, NULL);

c:\direct3d\main.cpp(145) : error C2039: 'SetCooperativeLevel' : 'IDirectDrawSurface' のメンバではありません。
c:\mssdk\include\ddraw.h(1417) : 'IDirectDrawSurface' の宣言を確認してください。

hres = lpDirectDraw->SetCooperativeLevel(hwnd, DDSCL_FULLSCREEN | DDSCL_EXCLUSIVE | DDSCL_ALLOWREBOOT);

c:\direct3d\main.cpp(145) : error C2039: 'SetCooperativeLevel' : 'IDirectDrawSurface' のメンバではありません。
c:\mssdk\include\ddraw.h(1417) : 'IDirectDrawSurface' の宣言を確認してください。

hres = lpDirectDraw->SetDisplayMode(640, 480, 16);

c:\direct3d\main.cpp(147) : error C2039: 'SetDisplayMode' : 'IDirectDrawSurface' のメンバではありません。
c:\mssdk\include\ddraw.h(1417) : 'IDirectDrawSurface' の宣言を確認してください。

hres = lpDirectDraw->CreateSurface(&ddsd, &lpPrimary, NULL);

c:\direct3d\main.cpp(157) : error C2039: 'CreateSurface' : 'IDirectDrawSurface' のメンバではありません。

hres = lpDirectDraw->CreateClipper(0, &lpClipper, NULL);

c:\direct3d\main.cpp(184) : error C2039: 'CreateClipper' : 'IDirectDrawSurface' のメンバではありません。

hres = lpDirect3DRM->CreateDeviceFromSurface(NULL, lpDirectDraw, lpBackBuffer, &lpD3DRMDevice);

c:\direct3d\main.cpp(193) : error C2664: 'CreateDeviceFromSurface' : 2 番目の引数を 'struct IDirectDrawSurface *' から 'struct IDirectDraw *' に変換できません。 (新しい機能 ; ヘルプを参照)

-----------------------------------------------------------------------

なぜかこのようなエラーが出てしまいます。ちゃんとddraw.libとかもリンクしてあるのに
4時間ほど悩んでます。ヘルプを見ても解らないです。
343デスプラター:01/10/10 22:24
  @ノハ@
   ( ‘д‘)つ   >>337は氏んどけやでぇ!
 (( (⊃  (⌒) ))
    (__ノ
344278:01/10/10 22:39

   ∧_∧  / ̄ ̄ ̄ ̄ ̄
  ( ´∀`)< オマエモナー
  (    )  \_____
  | | |
  (__)_)


               ◎___
            .  //     /
              . // ソ   /
             // ラ  ./
             // ネ  /
            // /  ./
             // ヨ  /
       ∧空∧/___/
   _______ {´ ◎ `}   < と、見せかけておいてソラネーヨ!!!
  ,ィィ,ィィ\):::::::::(
  しししし(_つ:::::::::ヽ
   ヽ__ノ::::::::::::::|二手
      (;;;;;;;;;;;;;;;;;;;)
      // >>__
    <◎:::> <::::◎ノ

つうか、>>336コピペ失敗カコワルイ!
昔を思い出すな…
プログラム始めた頃は毎日がコンパイルエラーとの格闘だった
   \      sage         /
      ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄

  ⊂二 ̄⌒\               ノ)
     )\   ( ∧_∧         / \
   /__   ) ´Д`)    _ / /^\)
  //// /       ⌒ ̄_/
 / / / // ̄\      | ̄ ̄
/ / / (/     \    \___
((/         (       _  )
            /  / ̄ ̄/ /
           /  /   / /
         / /   (  /
        / /     ) /
      / /      し′
    (  /
     ) /
     し′
347名無しさん:01/10/12 16:24
苦そッ!
賑やかなスレだなあ
>>342
どうせネタだろうけれど、それは引数として渡してるもんが違うって暗に言ってるんだよ。
コンパイラは礼儀正しいからハッキリとは言わないのさ。読み取ってやれよ。
350 :01/10/12 19:34
X.fileを作成できるフリーのソフトってないでしょうか?
351一3D初心者:01/10/12 20:15
太陽光によるメッシュの影付けを行いたいのですが、CreateBoxで作成された
メッシュはうまくいくのに、以下のロジックで作成されたメッシュでは
うまくいきません。
何か設定がおかしいのでしょうか?

Dim frame As CD3DFrame
Dim mesh As CD3DMesh
Dim retd3dxMesh As D3DXMesh
Dim vertexbuffer As Direct3DVertexBuffer8
Dim verts(4) As D3DVERTEX
Dim indices(6) As Integer

'Create an empty d3dxmesh with room for 12 vertices and 12
Set retd3dxMesh = g_d3dx.CreateMeshFVF(4, 6, D3DXMESH_MANAGED, D3DFVF_VERTEX, g_dev)

'front face
With verts(0): .x = v(0).x: .y = v(0).y: .z = v(0).z: .nz = -1: .tu = 1: .tv = 0: End With
With verts(1): .x = v(1).x: .y = v(1).y: .z = v(1).z: .nz = -1: .tu = 0: .tv = 0: End With
With verts(2): .x = v(2).x: .y = v(2).y: .z = v(2).z: .nz = -1: .tu = 0: .tv = 1: End With
With verts(3): .x = v(3).x: .y = v(3).y: .z = v(3).z: .nz = -1: .tu = 1: .tv = 1: End With

'connect verices to make 2 triangles per face
indices(0) = 0: indices(1) = 1: indices(2) = 2
indices(3) = 0: indices(4) = 2: indices(5) = 3

D3DXMeshVertexBuffer8SetData retd3dxMesh, 0, Len(verts(0)) * 4, 0, verts(0)
D3DXMeshIndexBuffer8SetData retd3dxMesh, 0, Len(indices(0)) * 6, 0, indices(0)
何が「うまくいかないのか」問い詰めたい。小一時間問い詰めたい。
人に問題点を説明するのが「うまくいかない」と思われ(w
人生(ボソッ
355一3D初心者:01/10/15 10:06
>>351の補足
material.emissive.a = 1
material.emissive.g = 0.7
material.Ambient.a = 1
material.Ambient.g = 1
material.diffuse.a = 1
material.diffuse.g = 1

上記のマテリアルを351のメッシュにSetMaterialOverrideで追加しているのですが、
影の色のメッシュ表示しかされず、CreateBoxで作成したメッシュのように
太陽光の当たっている部分とそうでない部分(影)との色の差が全く出ないんです。
>>350
PolyEditって探して見れ。
357 :01/10/19 22:54
いまDirect3Drmを使ってフルスクリーン表示のプログラムに
しようとしていてフルスクリーンに入るようなったのですが、
フルスクリーンに入ったとたんに下記のようなエラーが出ます。

-----------------------------------
エラー内容
 Error : -2005532477 on
CreateDevice
-----------------------------------
プログラム上でCreateDeviceって設定しているところがおかしいのかな?
ビデオカードがおかしいのだろうか?
VRAMは一応8MBあるけど
他のVoodooBansheeのVRAM16MBマシンで動かしたけど同じ結果が出る。
わかんない。
358357:01/10/19 23:01
DirectXSDKのバージョンは7a
コンパイラはVisualC++ ver 6.0
>>357

DirectDrawのフルスクリーンのサンプルは動くの?
360_:01/10/19 23:33
>>357
戻り値のHRESULTを
スカラ表示させてっでっから
わがんねんだっぺ。
まず戻り値の意味を確認しなんしょ。
361デフォルトの名無しさん:01/10/20 15:48
640x480のテクスチャとポリゴンを1枚作って描画するだけで
なぜか4秒もかかります。
ビデオカードがクソなだけでこんなに遅くなるもんなんでしょうか?
>>361
それは99%アプリがクソ。
サンプルは試したか。どうだった。
363357:01/10/20 17:19
なんかサンプルのフルスクリーンはサクサク動いてます。
自分が書いたプログラムがダメなのか・・・?
364デフォルトの名無しさん:01/10/20 17:24
DXiの作り方がサッパリわかりません
誰かわかる人いますか?
>>361
実際に4秒かかって描画されてるのが見えてるのか?
366361:01/10/20 19:45
ちなみにVRAM 2MB、HALが使えないのでHELです。
画面は最初が真っ黒で、4秒経つと描画されたものが出てきます。
367マジ初心者:01/10/20 20:55
プログラムを作るソフトは全部買わないといけないのですか?
>>361
>>357

サンプルがサクサク動くなら
それ改造しながら組めばいいのに。
369357:01/10/20 22:47
>>368
オリジナルで組みたいのです〜!
そこんとこご勘弁を・・・
sigh
>>369

やや、クリエイター様でしたか。こりゃ失敬。

溢れるオリジナリティとかクリエイティビティとか
その辺は専門外なのでもうお手上げでちゅ。

頑張ってくだちゃい。
サンプルはHALだった?それともHELだった?

あと、テクスチャがデカイと処理も重くなるよ。<多分コレだと思ワレ
効率の良いテクスチャの大きさは、
縦横同じ大きさで、2のX乗の大きさ。
256×256の大きさが、一番効率が良いトカ。

そういえば一部のビデオカードでは、
256×256を超える大きさのテクスチャを使えない
なんて話もあったな。128×128だったかな?
>369
初期化処理なんて手順ほとんど同じだろ・・・
なんで車輪の再発明するんだ?
激しくワナビーの予感。
懐かしい響き > ワナビー
376名無しサソ:01/10/21 01:17
 今時、ほとんど捨てられた状態のRMの初期化を、
よく覚える気になれるね・・・。RMなら素直にDirect3Z
でも使っておけば問題ないと思うけど。

>372
 Voodoo系の事じゃないの?それなら256^2が最高
解像度だよ。でも、仕様制限がきっちりしていた方が、
実は組みやすいような気もするね。もしかして、みなさん
VRAMの残り容量に合わせてテクスチャの解像度を
変えたりするライブラリを組んでいたりするのかな?
377デフォルトの名無しさん:01/10/21 03:34
DXi情報求む
378デフォルトの名無しさん:01/10/21 06:41
DXiって何?
どうしても256超えなきゃなんないときに、ポリゴンの継ぎ目がキビシイです
アルファかけるならなおさら
380デフォルトの名無しさん:01/10/21 07:26
アルファって何だよ。
かってに造語つくってそれ前提に話するな
381 :01/10/21 09:57
AGPがあるんだからテクスチャ容量なんて無視さ
うごかねぇなんて奴のマシンが悪い
>>379-380
アルファーブレンド系の処理の事でしょ。
アルファ値なんて言葉もあるぐらいだから、問題ないと思ワレ
383379:01/10/21 13:26
アルファブレンディングによる透過処理のことです。
ここは初心者向け相談室でしたね。すみません。
384デフォルトの名無しさん:01/10/21 14:18
                         ∧_∧
                         ( ´Д`)
               -=≡ /⌒  /⌒ヽ/\
   (´⌒;  -=≡ ./⌒ヽ,  /     ̄    \\ ヽ/⌒ヽ,      ウワーン
 (´⌒;;;   -=≡  /   |_/__i.ノ ,へ _     _/ \\/   | /ii        キモイヨー!!
   .    .-=≡ ノ⌒二__ノ__ノ    ̄ ̄     \ヽ  |./ |i           
(´⌒;;;   -=≡ ()二二)― ||二)          ()二 し二) ― ||二)   =  ((( )))
 ≡≡≡ -=≡ し|  | \.||              .|   .|\ ||      =  (llTДT)
    (´⌒;;;-=≡  i  .|  ii      (´⌒;;;       i  |  .ii      =  ( つ つ
;; (´⌒;;;   ;-=≡ ゙、_ ノ    (´⌒;;;  (´⌒;;;   .゙、 _ノ      =   人 Y
    (´⌒;;;  (´⌒;;;    (´⌒;;;  (´⌒;;;   ~~   ⌒;;ソ ヽ   =  し (_)
385花粉症の初心者さん:01/10/22 16:48
初心者なんで的を外しているかもしれませんが、
DirectXでWindowベースで絵を書いたりキャラクターを
動かすのは色んなサンプルが出ていてわかるのですが、
DirectXで、VC++でいうダイアログをベースとして
プログラムを組むことってできるのでしょうか?

できるとしたら、そのサンプルプログラムなんて無いでしょうか?
>>385
文面からうまく読み取れんが、
・メインウィンドウに描写
・メインウィンドウから開いたダイアログに描写
の違いか?

ダイアログはVC固有の用語ではないぞ。
387花粉症の初心者さん:01/10/22 17:25
ありがとうございます。分かりにくくてすいません。
メインウィンドウに描写するのは、いろんなサンプル例がありますね。
で、VC++のMFCでアプリケーションを作る時に、SDIにするかMDIにするか
ダイアローグベースにするか選択しますよね。 その時に選択・作成するような
ダイアローグ見たいな物にPictrureなどのコントロールなどを作って、
そこにDirect(Draw)などを用いて、絵を描くことなどがしたいのですが
できるのでしょうか? 問いう事を尋ねたかったのです。
>>385 ,387

CWnd から派生してれば簡単に描画できるんでわ?
MFCは知らん
>>387
描きたいダイアログのウインドウハンドルをDirectDrawの引数に
いれてやればいいんじゃないのかな?
外してる?
391386:01/10/22 20:39
>>390の言う通り、ウィンドウハンドル渡せば何にでも書ける。
Pictureとか書いてるあたり見ると、VBあがりな気がするので、いきなり凄いことしようとせずに、SDK+DirectDrawで画像表示はじめることをお勧めする。

とりあえず、MFCはやめとけ。これ定説。
392デフォルトの名無しさん:01/10/22 23:50
物体の落下を表示させたいのですが、

while(1)
{
h+=v;//初期値、高さ(float)h=100
v+=a;//初期値、速度(float)v=0,加速度(float)a=-1
SetLVertex(&mat[0],1,h,1,color);
SetLVertex(&mat[1],0,h,1,color);
SetLVertex(&mat[2],1,h,0,color);
}
こんな感じにしたとき(ちょっと略)、予定では下へ(x-z平面)に
近づいていくはずなのですが、微動だにしません。
初歩的な質問ですが、アドバイスお願いします。
>392
初歩というか、高校の物理はやったか?
やってないならしょうがないかもしれんが。。。

このソースだけでやっているとは信じたくないが、
他に省略している部分はないのか?

数式通りにものを動かしたいのなら、
数式がどうゆうグラフになるのかを知るのは重要だ。
まずはhの値をグラフにプロットしてみな。
己の馬鹿さ加減にあきれるだろう。
394393:01/10/23 00:33
すまん、初期値が書いてないと思ったら、コメントにかいとったのね。
>393はきにしないでくれ。
395390:01/10/23 00:51
>>392
カメラの位置がおかしいとか、ビューポートの設定が間違っているとかそういうのじゃないの?
とりあえずはX/ZとYを入れ替えて反応をみるとか。
DirectDraw のウィンドウモードでフリップってどうやるんですか?
>>396
アプリがタイミングとってDCにBlt()。

SDKのサンプル読めばいい。あと以下のログ。それで解決。
http://piza2.2ch.net/test/read.cgi/tech/1002894129/
http://piza2.2ch.net/test/read.cgi/tech/991795568/
398花粉症の初心者さん:01/10/23 10:14
みなさん、ありがとうです。 VBも少しやりましたが、VC++の方が履歴だけは長いです。
あまり中身は深くしてない物で無意識にMFCなどを使ってます。ので、VCで作ったダイアローグだけを
出すスケルトンプログラムに、DirectX(DirectDraw)などで使う初期設定などを
していくのかなぁ?!、と思っているのですが。 方針、間違ってます?
399名無しサソ:01/10/23 11:04
>392
 もしかして、座標だけ移動させて、移動後の
座標で描いてないなんてオチは無いよね?
400NASA:01/10/23 19:15
誰か、趣味?仕事?でロケットが打ち上げられるような
プログラム作ったった人いない?
発射時の煙(モクモクっと)とかノズルからの炎がリアルに
表示できたりしてるプログラムを作りたいんだけど…
炎はテクスチャの加算合成で、煙は減算合成でそれなりに表現できると思うけど。
Hornetのアーカイブで雲とかそれ系のエフェクトのソースを見た記憶がある。
まだあるのかな?
403デフォルトの名無しさん:01/10/23 20:57
Hornet?
404392:01/10/23 22:47
>399
またやってみたら、今度は無限ループに入ったらしく…
ウィンドウ真っ白。お先真っ暗…
405390:01/10/23 22:54
>>404
誰でも最初はそんなもんだよ。頑張れ。
406名無しサソ:01/10/24 06:04
>404
 あれ?当たってたの??とりあえず、あまりにうまくいかない
時は、サンプルと一対一比較すると良いかもね。たまにサンプルで
バグってるのもあるけどね・・・・。無限ループだけだったら、デバッグ
モードで見つけるか、メッセージボックスを出すかしてチェックすれば
いいじゃない。頑張れ〜。
408400:01/10/24 16:51
>407
これって買わなきゃダメじゃない?
これのサンプルソースみたいなのないかな?
あと、『cellular automata』とか『particle』でgoogleしてみ。
411409:01/10/24 22:11
すいません
フルスクリーン時にALT+TABでタスク切り替えを無効にしたいので、
いろいろ調べて
SystemParametersInfo(SPI_SCREENSAVERRUNNING,TRUE,0,SPIF_SENDWININICHANGE);
SystemParametersInfo(SPI_SCREENSAVERRUNNING,FALSE,0,SPIF_SENDWININICHANGE);
上記二つの関数で可能といろいろなサイトにかいてあったのですが、
やってみたところALT+TABが機能してしまいます。
どなたかわかりますか?
当方 Win98SEです。
>>414
http://www.microsoft.com/japan/developer/directx/techart/DirectX8faq.asp
>どうすれば、ALT+TAB や、その他のタスク切り替えを無効にできますか。
>無効にはできません。

迷惑だからそういう手抜きはやめれ
416>>414:01/10/25 16:53
 フックして、メッセージを揉み消す・・・・じゃダメか。
417414:01/10/25 17:06
WM_SYSKEYDOWNでALTキーをつぶすという方法で
ダサいながらも解決しました。
>>415
DirectX8使ってないんです。DirectX3です。
しかも人のプロジェクトの修正なんでもうお手軽にやりたかったので
ごめんなさい。(´¬`)ネムー
418デフォルトの名無しさん:01/10/25 19:57
>>415
ALT+TABを禁止することを禁止したい奴がいるけれど
フルスクリーンの3Dゲームなら別にいいんじゃないか?
大抵の製品はALT+TAB禁止してるよ。実際かなり念入りに対処していても
環境によってはいろいろ不具合でるんだよ。
うむ。文句があるならこんなクソ仕様にしたマイクロソフトに言え。
そしてMSはドライバのせいにするんだYO
ま、ATiは食品会社なら今ごろ営業停止ってことだ。
421デフォルトの名無しさん:01/10/25 21:35
DX8SDKのソースにあるDWORD(4バイト)が
65535も使ってないならWORD(2バイト)でも良さそう
だけど実際WORDに変更すると不都合はありますか?
422255:01/10/25 21:41
WORDの方がDWORDよりアクセスが遅い。
423デフォルトの名無しさん:01/10/25 21:55
>>422 納得です。
424デフォルトの名無しさん:01/10/25 22:29
DirectX 8はサーフェスのロスト気にしなくていいって聞いたけど
信頼していいんでしょーか?
426アマグラマ:01/10/26 03:08
D3Dで色々遊んでいるのですが、フリーのテクスチャ付きのXファイル(素材?)って
どっか落ちてないですかね?
色々探したんですが、あまりみつからないのでSDKに付いていたヤツで遊んでいるのですが。
できればモナーとかギコ猫のファイルが欲しいなぁと。
ちなみにライトウェーブ形式のはSDK付属のコンバータでコンバートしたらテクスチャが剥がれていたので却下と言う事で。
427名無しサソ:01/10/26 05:30
>426
 拾うより先に作ってしまおう。

 MetasequoiaLEならテクスチャ付きの
Xファイルが出力できるよ。フリー素材で
Xファイル以外の形式があっても、ある程度
コンバートも出来る。
428 :01/10/26 12:34
今DirextXでWin環境で動くゲームを作ったバアイ、
それって簡単にX-BOXで動くの?
初心者なんで書いてみたぞ。
誰か教えてけろ
429アマグラマ:01/10/26 14:48
>>427
凄いソフトの紹介ありがとうございます。
直接Xファイルに出力できるのは凄いですね。

ちなみに、コンバートすると大抵テクスチャが欠けるので困っていました。

>>428
多分そのままじゃ動かないと思います。
430すいか:01/10/26 15:38
アニメーションのデータが格納されているXファイルはどのようにして作るのですか。
ソフトはMAX4.0です。
431アマグラマ:01/10/27 01:24
>>430
そんな事できるんですか?
432デフォルトの名無しさん:01/10/30 00:33
>>429
>多分そのままじゃ動かないと思います。
どうやったらできるの?
433デフォルトの名無しさん:01/10/30 01:16
ウィンドウモードで DirectDraw を使っていると、何かの拍子に IDirectDrawSurface7::Lock() できなくなる
(0x80004005 というエラー値が常に返ってくるようになる)のですが、原因に思い当たる節がある方はいま
すか? 一度 Lock() できなくなると、問題のアプリケーションを再起動してもダメ、ただしディスプレイの
解像度を変更して戻すと再び Lock() できるようになります。

OS: Windows 2000 SP2
Video Card: RADEON VE
DirectX: DirectX 8.0a (ただしアプリケーションで使っているのは IDirectDraw7)
434デフォルトの名無しさん:01/10/30 01:54
RADEONは悪
>>434
ビデオカードのドライバが腐っていると? そうかも。
436名無しサソ:01/10/30 03:11
>433
 一応エラー値の意味を。

「未定義のエラー」

らしいよ。やっぱりドライバじゃないのかな。
437デフォルトの名無しさん:01/10/30 11:14
age
438初心者:01/10/30 11:15
すみません、質問です。
ひとつのサーフェースを2つのEXEで共有させたいのですが、
良い方法はありませんでしょうか。
クラスにしてDLL化してもだめでした。
>>432
技術的にできても、M$がそうさせない。
ゲーム機ってのはそういうもん。
4405.1聞きたいよ:01/11/01 21:38
サウンドブラスターAudigy 買いました。
これで5.1出力したいが、出ません ステレオに成ります。
スピカーの設定は、5.1にしました。

コントロールパネルのスピカーテストでも、ステレオのみの出力です。

付いてきたソフトでは、AC3は、5.1で出力します。

自分で5.1出力したいので、DirectSoundで、作りました。

DirectSoundBuffer8で、セカンダリーバッファ PCM 6CH (KS_AUDIO5POINT1)を
作りPCMデータを6CH分 入れてテストしましたが、スピカーは、ステレオで、
出ています。

Directサウンドが、プリマリーに転送するとき、ミキシングして、ステレオに
成ると思い、プリマリーにも、DirectSoundBuffer->SetFormatで設定しましたが、
依然ステレオで、出ています。

プログラムでは、DirectSoundのエラーは、出てません。

オーディオ ドライバーに、5.1で出させるには、どうすればいいですか?

よろしく お願いします。
>>440
クソエイティブに炭疽菌入りの封書で問い合わせてください。
>>440

Audigyもダメなのか……
所詮糞営恥部?
漏れはLive!でしか試したことないが、
わずかに他のチャネルの音がミクスされてると思う。
設定全部切っても、まだ微妙に変な3Dサラウンドみたいのがかかってるみたい。

基本的に、Creativeのドライバはサポートしてないフォーマットでも
平気でS_OK返してくるから注意した方がいい。
DSBCAPS_LOCDEFERつけて、
KSDATAFORMAT_SUBTYPE_IEEE_FLOATとか使ってみると
とってもすばらしい音を奏でてくれます。
ま、Creativeだけぢゃなくて、同じ症状出す奴かなり多いけど。

ちなみにYAMAHAのUSB音源とかはちゃんと出ます(RP-U200で確認)

つーかマルチチャネルのデータをちゃんとディスクリート再生できるデバイスって、
どのくらいあるのだろう……?
それが無いと来るべきDVD-Audio時代に困りそうだが。
443デフォルトの名無しさん:01/11/02 03:05
>>440

OpenALwEAX2 SDKを使ってみるのも良いかと。
そのものずばりなAPIあるし。

ttp://developer.creative.com/scripts/DC_D&H_Games-Downloads.asp?opt=2
444443:01/11/02 03:06
つうかDirectXじゃねぇ。
スマン
445DirectX8セットアップ時エラー:01/11/03 01:28
DX80NTjpn.exeをダウンロードしてインストールしようとしたんですが、
使用許諾契約に「はい」と答えて展開中ってなり、もうすぐ終わるってとこで
エラーが出ます。
プロセス<C:\DOCUME~1\猪申LOCALS~1\Temp\IXP000.TMP\DXSetup.exe/packageinstall>作成エラーです。
原因:指定されたパスが見つかりません。
って出るんですが、どうゆうことなんでしょうか?
指定されたパスが見つからなかった
日本語ぁゃしぃ
448デフォルトの名無しさん:01/11/03 08:42
>>445 普通にC\のルートあたりで転回したら?
>>猪申
449デフォルトの名無しさん:01/11/03 14:58
>>445
なんでプログラム技術板なのに、SDKじゃ無くて、DirectXのセットアップの話なんだ?
>>445
いたちが(・∀・)イイ
451デフォルトの名無しさん:01/11/03 15:58
すみません、質問です。
ひとつのサーフェースを2つのEXEで共有させたいのですが、
良い方法はありませんでしょうか。
クラスにしてDLL化してもだめでした。
debug apiを使うとか、C/Sモデルにするとか
453445:01/11/03 16:40
すいません。そう、板違いかなって思ったんですけど、他にそれらしいとこ無かったような・・・
それにエラーコメントから見て、プログラムやってる人たちなら容易いかなって。
実際、的確な答えはもらえませんでしたが、ヒントってゆうかきっかけはもらえました。
いろいろ試してみました。
Cドライブやフォルダ(Documents and Settings、Program Files、WINNT)に移動して開いたり。
それとCドライブの中で新しいフォルダを作り、DOCUME~1って名前変更してみたんですが、
[既に存在します]って。そんな名前のフォルダ無いじゃん、って思いつつ
[ファイルやフォルダを検索]やってみたけどやっぱり無くて、ん?検索?ネットで検索してみよう、
ってことでGoogleでDOCUME~1を検索。あるもんですねー。で何件目かでこちら
ttp://www.sanpo.t.u-tokyo.ac.jp/~ricky/wavesurfer/
変更は分からなかったので、新しく英語のログイン名のアカウント追加で、無事成功。
文字化けだろうとは思ってたんですが、>DOCUME~1\猪申LOCALS~1
アカウント名の日本語からとは思いもよりませんでした。では、失礼ぶっこきました。
SDKの話しかとおもてたよ。
さっさと(・∀・)カエレ!!
Windows板に逝ってきなさい。
456迷える兎:01/11/04 16:54
DX8のプログラムをC言語で作り始めたのですが、わからないことがあって
教えて頂きたいのですが。
XファイルをDrawSubset()を使って表示はできたのですが、3D空間の好きな
所に描画する方法がわかりません。
必ず、同じ位置に表示されてしまいます。
(もっとも、位置の指定の仕方がわからないので当然といえば当然(^^;)
参考資料は、日本語のDX8 HELPと工学社のDirectx8実践プログラミング
です。
ちなみに、カメラの移動はわかります。
座標変換を覚えましょう
458初心者:01/11/04 17:52
>>452
>debug apiを使うとか、C/Sモデルにするとか

すみません、もう少し詳しくお願いできませんでしょうか。
459デフォルトの名無しさん:01/11/04 21:12
DirectSoundで、WAVEのマスターの音量を変えたんですけど、セットした値と
帰ってきた値が微妙に違うのですけど原因がわかりません。
どなたか知っている人がいたら教えてください。

SetVolume( v )で指定した値と
GetVolume( &v )で得た値が違う
どうして??
460デフォルトの名無しさん:01/11/05 00:08
Windows2000 DirectX 8.0 サウンドブラスターLive

同じだよ
461名無しサソ:01/11/05 02:05
>459
 全く的はずれかも知れないけど、SetVolumeをした時
失敗してないの?
462459:01/11/05 02:21
>461さん
失敗してないとおもいます。
実際にボリュームコントロールのつまみが移動しますし。
う〜ん、ほんとなんでなんだろ。

だいたいdBでセットしろって、私のようなアホにわかるっかての>M社
>462
デシベルは対数を元にした単位。
基準と求めたい値を元に対数を求めて使う。
例えば私の場合次のようにしてDirectSoundに設定しとります。
(svが0〜100からの線形ボリュームとして扱う場合)

dB = log10( ( float )sv / 100.0f ) * 2000.0f;

もしかしたらドライバによって精度が落とされて差がでとるのかもしれんです。

デシベルに関してはこことか参考にすれ。
ttp://www.mogami-wire.co.jp/cad/db.html
464315:01/11/06 03:28
http://pc.2ch.net/test/read.cgi/tech/1002894129/
から来ました。315です。

えっと、3Dのライトに掛ける行列のことなんですけど、
計算をするときは、正規化されたワールド行列の逆行列を
掛けて、モデル座標形にしてから計算するんですよね。。

でも、正規化された行列というのはいったい…。
googleしてみたんですけどよく分からなくて。。
単に行列のスケーリングにかかわる値を1にすればいいんでしょうか?
465名無しサソ:01/11/06 06:17
>464
 難しい話じゃなくて、各軸がそれぞれ1の大きさで、
直交している行列のことだよ。というか、それを知って
どうするのかが謎なのだけど・・・。
466315:01/11/06 14:02
行列ってもしかして、ベクトルを縦に並べたものでしたっけ…?
としたら、それごとにベクトルの正規化、という風にすればいいんでしょうか?
467名無しサソ:01/11/06 17:23
 各軸横になってたと思うけど・・・・というか、ヘルプに書いて
あるから、それくらい見たら?何故一から十まで聞こうとしてるの?

 そもそもどうするのかも答えてないし。正規化は上で書いてる
通り直交座標系で大きさが一の行列にする事(少なくともここでは)。
やり方が分からないなら自分で調べて。ネットに行列の事なんて
いくらでもあるし、SDKのサンプルコードを読むだけでも勉強になる。
468315:01/11/06 22:12
ヘルプに書いてあったんですか…。
すみませんでした。

どうするのかは、、3Dを自力描画してみたかったんです…。
そうすればいろいろ覚えられるかな、と思って。
こんなレベルでそんなことをやるのは間違い…ですね。
一から調べなおします。全部見ていこう…。

ありがとうございました。
DirectX8のDirectPlayを使ったネットゲーとかについて書かれているサイトをご存じでしたら教えてください。
色々探したつもりなんですがDirectX7関係のサイトしか見つかりませんでした。
「3Dネットワークゲームプログラミングガイド」という本も買ってみたのですが肝心のネットワークの部分が
7のもので買ったあとに気づいて鬱です。
よろしければお助けください。よろしくです。
age
471デフォルトの名無しさん:01/11/08 19:00
DirectX8のスプライトでDrawメソッドを加算合成する方法はあるのでしょうか?
472名無しサソ:01/11/08 19:31
>469
 あれ?DirectX8でDirectPlayって大きく変わったのだっけ?
変わってないなら7のインターフェースで書くのもアリだと思うけど。
8のヘッダやライブラリでも7は使えるよ。念のため。

 8じゃないと不都合があるという人は誰か突っ込んで(笑)
473デフォルトの名無しさん:01/11/09 01:29
なんで、DirectShowの資料少ないの?
情報サイト教えて
474デフォルトの名無しさん:01/11/10 04:11
ここもネタが出たのにマタリ。
みんな9待ち?

とりあえずサンデプログラマのためにageたげる。けどレスは付かない予感w
と書いて煽るテスト。
475デフォルトの名無しさん:01/11/10 20:50
DirectPlayは8から結構変わりましたよ〜
ロビープログラムとか・・

サンプルと工学社の茶色い本で雰囲気つかんで
後は独学(ネット活用)でがんばるしか^^;
476名無しさん:01/11/10 22:17
DirectX8の勉強を始めたんですけど、メッシュのアニメーションはどうすればいいの?
(メッシュ(.x)を読み込むだけならできます。)
キーワードを教えてください。
477469:01/11/10 22:31
>>472さん、475さん
レスどうもです。
8のモノを使いたいのはただ単にどうせ覚えるなら新しい方が良いかなと(汗
やるだけやってだめだったら7で再チャレンジしてみます。

>工学社の茶色い本
友達のぶんどって見てみました。サンプルがMFC使ってて理解するのに時間かかりそうです(泣
GraphicsとかCベースなのに〜〜。
ネットは国内のは見つけられなかったんで海外まで裾広げてみます。
英語か…あぁ。鬱だ。

つか9でゴソッと変わったらどうしよう。泣くか。。。
478デフォルトの名無しさん:01/11/11 02:21
DirectX8用のSDKにも、DirectDrawとかのサンプルは入ってますか?
479金玉健太:01/11/11 02:57
てめえら聞いて驚くなよ。死ぬほど初歩的な質問をこれからしてやる。

「プログラミング言語ってなんですか?」
480デフォルトの名無しさん:01/11/11 03:04
あなたの思っている通りのものです。
>>478
バッチリ入ってるよ、ご心配なく〜
SDKインストール時にカスタムでSampleSource追加するの忘れないでね
482名無しさん:01/11/11 12:49
誰かさァ〜。476の質問に答えてあげればぁ〜。

 ) >>476=>>482って思った人どれくらいいるのかなー。

 ヽ〜〜〜〜○〜〜〜〜〜〜〜〜〜〜〜〜
       O
      o

  / ̄ ̄ ̄ ̄\ ̄ ̄ ̄\
/     ●  ●、 ●  ●、  ゾヌーリ
|Y  Y  ,,,    ,,, \     \
| \/          ▼ |     ▼ |
|         、_人_|   、___人_|
|       ___ノ ___ノ
\     /ヽ     /
 人 γ''ヽ 人 ヽ ノ
(_人_ノ (___(_____)
~~~~~~~~~~~~~~~~~~~~~~~~~
484言わずと知れた初心者。:01/11/12 02:10
初めまして。
本など見ても詳しく載ってない?のですが、
同じワールド座標系で、異なる構造物をそれぞれ違う向きに
平行移動させることができません。
どーやったら、1つの構造物だけに変化を与えれるのでしょうか?
>>483
BioのBBSでも同じ事聞いてた奴だろ。
向こうで返答あったんだからそれ参考にしろ。
486言わずと知れた初心者。:01/11/12 02:40
>485
483じゃなくて→484?
bio?なんのBBSですか?
多分人違いかと。
一昨日から始めたばかりで、関連HPも分からないんです。
できたら、HPも教えてください。
487デフォルトの名無しさん:01/11/12 03:13
   | \
   |До) >>486 トコロントチャリピカァ!
   |⊂
   |


     ♪  Å
   ♪   / \   チィッカム
      ヽ(оДо)ノ   チィッカム
         (  へ)    チィッカム
          く       チィッカム


   ♪    Å
     ♪ / \   マグワッタ゚ァ
      ヽ(оДо)ノ  マグワッタ゚ァ
         (へ  )    マグワッタ゚ァ
             >    マグワッタ゚ァ
488ure:01/11/12 03:20
http://www.delphi-jedi.org/DelphiGraphics/
ここにDirectXをDelphiで使うためのファイル群がありますが、
DirectShowキャプチャのサンプル(TCapture 1.03)を動かすことが出来ません。
なんだか、おかしなところでAccessViorationになってしまいます。
Delphi6+DirectX SDK 8.0aをインストールしてます。
興味がある人確認してみてクレイ!
489gler:01/11/12 04:59
>>443
OpenAL 情報ありがとう。
sample 動かなくて....(泣
490デフォルトの名無しさん:01/11/12 19:33
DirectX 8.1 出たぞ ゴルァ
>>490
入れたけど何が変わったかよくわからんぞ Gra!
PixelShader 1.4だGra!
世界中探してもDirectShowの情報少な過ぎsage
494デフォルトの名無しさん :01/11/13 01:34
VisualC++でウィザード使ったらMFC使った開発が出来るの?
あと日本語のヘルプはどれ位たったら出るの?
誰か詳しい人教えて!
>>493
ActiveMovieでも(・∀・)ダメ?
>>469
http://doichan.netbank.co.jp/bbs/doichan/bbs.cgi?0,30
工学社の茶色い本(DirectX8実戦プログラミング。でしょ?)書いたやつらの一人がやってるHP(BBS)より。
>DirectPlayの部分は書いたの私じゃないのでわからないですよー.
だと。
こんな無責任なやつが書いた本買っちゃったお友達にカンパイ (゚Д゚)ノ□

MFC入りのサンプルよりもSDKについてくるサンプルをゆっくりじっくり解析した方が
分かりやすいと思われ。
>>496
(゚Д゚)ハァ?
498493:01/11/13 05:55
>>495
DX8で新しく追加されたサンプルグラバの解説探してるのに見つからないのよ。
動作中にモード切り換えとか出来るのかとか。
あと、ヘルプのBufferCBのところに、『サンプルのバッファリングをアクティブに
するには、ISampleGrabber::SetBufferSamples メソッドを呼び出す。』
って書いてあるけど、サンプルのソースだとFALSEで呼び出してるのも謎。

いま一番困ってるのは、BaseClasses.dswがReleaseでビルドできないこと。
Debugならビルドできるんだけど。
サンプルグラバのテストプログラムでCUnknownを継承してみたから、それがビルド
できないと、グラバのテストもできないんで困ってます。
(CUnknownを使わないで実装するという手もあるけど、それだと問題を先送りする
だけなんで、なんとか解決しておきたい)

8.1にはグラバのサンプルも付いてるみたいだから、8.1落とした方がいいかなぁ。

>>473
どこか良いサイト見つけたら教えて下さい
499493:01/11/13 06:27
意外な穴場を発見
ttp://www.meltdown-tokyo.com/index.htm
DirectShowのスライドが結構あります。
スライドなんで概要しか分かりませんけど。

DLしようとしたら、既にDL済みだった(笑
Graphicsの方しか見てなかったよ。
500 :01/11/14 01:29
DirectShowの本が出て欲しい・・・
>>500
英語でいいならでてる。
Programming Microsoft DirectShow(With CD-ROM)
by Michael Linetsky
ISBN: 1556228554
あとはamazonで調べて。
>498
サンプル(sampgrabcb)はCallbackでサンプルを受け取るからFALSEにしている。
ワンショットモードでサンプルを受け取る(GetCurrentBuffer)ときだけ
SetBufferSampleをTRUEで呼べばいい。
504493:01/11/14 20:28
>>502
それが、ヘルプのISampleGrabberCB::BufferCBのとこに
『サンプルのバッファリングをアクティブにするには、ISampleGrabber::SetBufferSamples
メソッドを呼び出す。そうしないと、サンプルがバッファリングされない。』
って書いてあるのよ。
ISampleGrabberCB::BufferCB使うときはSetBufferSampleをTRUEで呼べと言っている
ようにも見えるんだが、サンプルでやっていることは全く逆だったり。

サンプルグラバの接続もAddFilterした後に、RenderFile等を呼べば自動で接続され
るような事が書いてあるけど、試してみたら何も接続されないし。
結局Connect使って自分で接続してる。

一応やりたい事は出来てるので問題無いのだが、あまりにも情報少なくて驚いた。
>>504
そのとおり。
サンプルがSetBufferSampleをFALSEで呼んでるのはバッファリングしないで
CallBack(SampleCBを使う。BufferCBは使わない。)を使うから。
ワンショットモードで使うとき(BufferCBを使う。SampleCBは使わない)は
SetBufferSampleをTRUEで呼ぶようにサンプルのコードを直せって事。

RenderFileで自動接続されないのはメディアタイプが一致していないからだと思われ。
graphedt使ってデバッグすればすぐわかるよ。
506493:01/11/14 21:55
>>505
BufferCBもCallBackだよー。CBってCallBackの略だし。
それに、サンプル(StillCap)はBufferCB使ってるよ。
507デフォルトの名無しさん:01/11/15 00:47
DirectShowに興味があるんですけど何を勉強すれば良いですか?
C++とWindowsプログラミングをかじった程度です。
COMプログラミングとか必要ですか?
508505:01/11/15 00:55
なんか変な日本語になってた。紛らわしくてスマソ。
要は、
SetBufferSample(TRUE)
 サンプルをバッファリングする。サンプルはGetCurrentBufferで受け取る。
SetBufferSample(FALSE)
 サンプルをバッファリングしない。サンプルはコールバックで受け取る。
 SampleCB:IMediaSample形式で受け取る。
 BufferCB:バイナリデータを直接受け取る。
ってことなんだけど。
509デフォルトの名無しさん:01/11/15 02:31
・ビルボードにテクスチャ貼って雪を降らせたい
・ビルボードにキャラクタの絵を張って某TOっぽいことをしたい
↑これらのことをしたいんですが、ビルボードが個別に動く場合は、
・個別に頂点いじって一気に描写
・一枚一枚座標変換して描写
のどちらの方が処理が早いのですか?
「頂点はあまりいじるな」と言う意見を良く見かけるのですが、後者は明らかに遅そうだし・・・。
なんか、DirectShowだけでもスレが成り立ちそうな感じだね。

>>507
かじった程度だとキツいかも。
DirectShowではCOMは必須です。

>>509
そのくらい自分で試そう。
どっちも数行書きかえるだけで試せるレベルじゃん。
DrawPrimitiveのオーバーヘッドを考えると前者の方が速そうではあるが。
511再度質問:01/11/15 12:43
すみません、質問です。
ひとつのサーフェースを2つのEXEで共有させたいのですが、
良い方法はありませんでしょうか。
>>511
簡単な方法はないんじゃないかなぁ。

VirtualAllocEx() 使えば一部のメモリ空間を共有することはできるけど、サーフェイスを共有する
となると DirectX 関係の DLL を同一メモリアドレスにロードする必要もあるだろし、いろいろ面倒
そう。

そもそもの問題として、なぜ複数の EXE でサーフェイスを共有させたいんです? スレッドでは
ダメなんですか?
513493:01/11/15 20:39
>>511
自前のDLLをターゲットのEXEのメモリ空間に読み込ませる事はできるけど、
そこから先をどうやるかが問題だし、そんな低レベルな事したくないよね?

ちなみにプライマリだけを共有したいなら、普通にできるかと。

テクスチャをリッピングしたいとかなるとちょっと普通の方法では無理かも。
(思いつく方法はDirectXのDLLを自前のとすり返るくらい)
514デフォルトの名無しさん:01/11/15 23:27
DirectShowを利用したサンプル(ソース)を公開しているところ知りませんか?
515 :01/11/15 23:33
メモリマップドファイル
516デフォルトの名無しさん:01/11/16 00:03
プログラムを始めて数ヶ月の人間です。

自作ゲームのライブラリを作成しているところですが
DirectX8のフルスクリーン状態のときに
AVIファイルを再生する方法がわかりません。

サンプルにTexture3DというテクスチャにAVIを映して
再生するようなことが書いたあったのですが
サンプルソースを見てもサッパリわかりません。

これについて詳しく解説しているサイトを知りませんか?
517493:01/11/16 00:04
>>514
マイクロソフト
518デフォルトの名無しさん:01/11/16 00:51
>>514
英語だけど、
http://www.codeguru.com/directx/index.shtml
http://www.codeproject.com/directx/
http://www.flipcode.com/tutorials/
http://www.gdcl.demon.co.uk/dshow.htm

>>516
単純に再生するだけならSDK付属サンプルのcutsceneが一番簡単だからこっちの
ソースを見てみれば?他のオブジェクトも表示するならddrawxclが参考になると思う。
プログラムを始めて数ヶ月の人間がTexture3Dを見てもわからなそう(笑
DirectXGraphicsとDirectShowの両方の知識が必要なサンプルです。

3D使う必要ないなら、DirectXGraphicsの使用を諦めれば物凄く簡単なんだけどね。
520516:01/11/16 09:03
>>518
見たところcutsceneはDirectXGraphicsを使用してませんが
これはDirectXGraphicsを使用したフルスクリーンやウインドウで
再生することはできるのでしょうか?

>>519
単に再生するだけなら本(DirectX8実践プログラミング)の通りにすれば
できたのですが、その方法は子ウインドウを作って
そこに表示するという実践的で無い内容でした(泣
521511:01/11/16 09:22
>>512>>513
なるほど、ありがとうございます。
現在はスレッドでDirectDraw部を動かしてるのですが、
別EXEには出来ないかという要求がありまして検討していたのですよ。

基本的には出来ないという事が解っただけでも感謝いたします。
522518:01/11/16 10:37
>>520
できない。DirectDrawじゃだめなのね。
どうしてもDirectXGraphicsでフルスクリーンとウインドウ両方で
再生したいんだったらTexture3Dのようなビデオレンダラーを作るか、
古いインターフェースでAVIをデコードして直接描画するしかないかな。
523デフォルトの名無しさん:01/11/16 12:31
>>521
別 EXE の方で DirectX すべて管理やるなら、いけるんじゃないの。
メイン EXE は、別 EXE にプロセス間通信で描画操作やらを要求出すだけで、
別 EXE の方ですべて描画処理すれば。
利点がわからんけど。
524511:01/11/16 14:22
>>523
確かに別EXEにすべてのDirectDraw処理を集約するなら可能と思います。
でもメインEXEでサーフェースから派生したHDCに
グラフィックの書込みをしたいんですよ。
その場合、両EXEでサーフェースを共有させなければならないのです。

HDCを両EXEで共有させる方法もありますが、それは可能でしたっけ?
>>524
HDCへの描画も別EXEにすれば?
っていうか、設計がおかしいんじゃないかと問いたい。
526511:01/11/16 15:14
>>525
10MByteを越えるEXEを作るソースから
HDCへの描画部を取り出すのはちょっと....
設計がおかしい、そうかもしれないです。
メイン EXE にて、メタファイル DC に描画。
出来たメタファイルを別 EXE にプロセス間通信で送信。
別 EXE のサーフェイス上にメタファイルを再生。
これでどう。
528511:01/11/16 17:12
>>527
なるほど、解らないこともありますが、
まずは試してみます、ありがとうございます。
529527:01/11/16 19:44
>>528
・・・マジでやるの? あんましお勧めしないけど。
まぁがんばれ。
>>528
リアルタイムでやることは考えてないのかな?
531511:01/11/17 10:09
もちろんリアルタイムで60Frame/Sの処理が必要です。
無理なら無理でクライアントに説明して、同じEXE内でやることにします。
60fps・・・Pentium 2GHz なんか導入してみたら、いけるんじゃない。
そもそも2つのEXEに分ける理由を聞きたいとこだな。
2つのDLLに分けるとかなら分からんでもないが・・・
534511:01/11/19 10:56
>>533
クライアントから分けることが出来ないかと言われたことがすべてなのですが...
出来ないなら、出来ないなりの理由を述べねばならなくて。
お恥ずかしい次第であります。
理由:プロセス間通信で余計なオーバーヘッドが生じるため、
Pentium4 2GHz とか使うならともかく、
CPUの処理速度が足りません。とかなんとか。

実際足りないかどうかは、やってみないとわからんけど。
SMPマシン用意してもらって、それぞれの実行ファイルを
別々のプロセッサで動かすようにすれば?
537デフォルトの名無しさん:01/11/19 15:39
age
538デフォルトの名無しさん:01/11/19 16:32
age
>>534
プログラム技術の話じゃないが、そういう場合には、相手が本当は何をやりたいのかを聞き出し、こちら
で適切な手法を考えて逆に提案したほうがいい。技術的に良く分かってないクライアントの提案をまとも
に実装すると、お互いに不幸になりがち。
>>539
相手の提案で相手が不幸になるのは一向に構わんが、
確かに、自分を巻き込みたくはないな。
541デフォルトの名無しさん:01/11/20 09:26
>>539
後戻りの工数が削減できて、お互いHappy。
あげ
543デフォルトの名無しさん:01/11/27 01:11
ヤバ・・・sageてた
544デフォルトの名無しさん:01/11/27 01:24
   人 γ人
   ( оДо)
   彡ソミ    トコロントチャリピカァ!
  / |_\/_|ヽ  /
. L.|  ゚| □|_フξ  E[]ヨ
ξノ ヽ⌒^⌒\ ̄\ ̄ ̄ ̄ ̄
\    `⌒^⌒"   \
__∧___________
>>539ディゲン ドレムント   ……ティッカム!!
545デフォルトの名無しさん:01/11/27 01:47
8.1ってインストールしても大丈夫?
アンインストールできないから不安なんだよな〜
>>545
必須だろ
547デフォルトの名無しさん:01/11/28 01:33
俺はISDNという貧弱な回線のためCマガに付いてきた8.0aで我慢・・・
8.1はまだCD-ROMでは出てないよね?
もうすぐ 9 が出るよ・・・
>>548
少なくともあと半年以上先だと思うが。
550デフォルトの名無しさん:01/11/29 08:43
どなたかIDirectPlay8Address::AddComponentの使い方を教えてください。
IDirectPlay8Address *prgHostAddr;
HRESULT hr;
WCHAR *host= L"192.168.0.100";
hr = prgHostAddr->AddComponent(L"hostname", (void*)host,(lstrlen(host)+1)*2,DPNA_DATATYPE_STRING);
としてるのですが
「lstrlenA' : 1 番目の引数を 'unsigned short *' から 'const char *' に変換できません。」
といったエラーが出てしまいます。
どうかよろしくお願いします。
551 :01/12/02 05:18
COMがよく分からん
>550
lstrlenは非UNICODE環境では、lstrlenAにdefineされています。
(lstrlenW(host)+1)*sizeof( WCHAR ) と明示するか、
_UNICODEを定義してアプリケーション全体をW系関数使用にするかを選べます。
その場限りなら、#define HOSTNAME L"192.168.1.100" などして、
ナル文字付きの長さを sizeof(HOSTNAME)で求めると言う手もありましょう。
553550:01/12/02 17:52
>>552さん
ありがとうございます!ばっちりいけました!

-蛇足-
実はDirectX8実践プログラミングって本を見ながらやってたんですけど、
正誤表とか探してたら本の出版社が下のものを公開してました。
DirectShowのサンプルらしいです。
http://www.telestar.or.jp/iomook/dx8prog/index.html
上の方でDirectShow関係のサンプルがないと嘆いてた方は参考にしてみてはいかがでしょうか。
私は落としてもいないんで使えるか分からないですが。。
554デフォルトの名無しさん:01/12/02 18:28
すみません、DirectShowでのMP3再生に質問させてください。

RenderFileを呼び出すとファイルを全て読み込むので、
その瞬間に一時的に動作がストップしてしまいます。
ゲームなのでこういうのはちとまずいんです…

AddSourceFilterでソースフィルタを事前に生成して、
それからRenderしようとしてもやっぱりとまります(笑
AddSourceFilterではファイルを読み込むわけではなさそう。

マルチスレッド化しても、やはりディスクアクセスが強烈すぎて
メインスレッドのほうが微妙に固まってしまうのでやはり却下。

というわけでよい方法が無いかどうか模索中なのですが…
どなたかよい方法ありましたらお教えください。
555デフォルトの名無しさん:01/12/02 20:04
DirectPlayで自分のIP、もしくはセッションに参加しているプレイヤーのIPを
調べるにはどうしたらよいのか分からず悩んでまいす。
ご存じの方おらっしゃいましたらお教えください。よろしくお願いします。
>554
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dx8_c/directx_cpp/htm/multimediastreaming.asp
このあたりの仕組みをつかってみてはいかがでしょう。

しかし、同じくDirectShowを使っているはずのMediaPlayerでは、そのような
感じ(ファイルを全部読むとか)は見られないのですが、どうなんでしょうか?
557554:01/12/02 21:15
>>556
すばやい返事ありがとうございます〜。
同じドキュメントの日本語のがあるかどうか探していたら、
見事に日本語SDKにもありました(;´Д`)
付録>メディアストリーミングのとこです。
俺の探し方が甘かったみたいです、すみません。

サンプルを見ると、ファイルをストリームに読み込ませて、
徐々にWAVE形式に変換しながら、WAVEOUTに出力する、という雰囲気でした。
確かに俺のはこれで解決できそうなんですが、
なんとなく、メディアプレイヤーはこの方法ではない気がするんですよねぇ。
ファイルから徐々に読み込むフィルタみたいのがあってもいいと思うんですが…
むしろ自力でフィルタを書けって感じですかね。(笑
ちょうどいいのが無いかどうか探してみます。
ファイルソースのURLで指定するやつは駄目かな?ためしたことないけど。
なんとなくストリーム再生してくれそうなイメージない?
559554:01/12/05 16:44
結局俺のはメモリへレンダリング&WAVE再生の方法で解決しました〜。
ありがとうございます。

>>558
なるほどー。そういえばそっちは試して無かったです。
IAMOpenProgressを公開してるんで明らかにストリーム再生っぽいです。

でもURLがローカルディスクの場合はアクセスが集中すると思うので、
マルチスレッドの時みたいにゲームが一時的に固まる気がするなぁ。
560デフォルトの名無しさん:01/12/06 17:00
DirectX SDK8.1のDirectShowのサンプルってコンパイルエラーにならない?
↓こんな感じ
C:\DXSDK\samples\Multimedia\DirectShow\BaseClasses\wxutil.cpp(597) : error C2400: 'オペコード' の 'newline' はインライン アセンブラの構文エラーになります。
561デフォルトの名無しさん:01/12/06 22:13
ディレクトと読むのですか?
ダイレクトと読むのですか?
バツと読むのですか?
エックスと読むのですか?
562(゜ρ゜)ぼぇ〜:01/12/07 02:43
DirectSound を使ってソフトを開発しているのですが、
アプリケーションのEXEファイルの小さいアイコンがDirectXの
アイコンになってしまっているのはなぜでしょうか?
自分で設定しなおせるのでしょうか?教えてください。お願いします。
563デフォルトの名無しさん:01/12/07 03:10
はじめまして。
今、DirectX7.0を使って、Direct Drawの勉強してるのですが、まずサーフェス(プライマリー、バックバッファ)を生成して
ビットマップ画像のサーフェスを生成してから、画面にビットマップを表示しようとしているのですが、途中でエラーがでてしまいます。
バックバッファのBltFastの返り値を調べた結果、DDERR_INVALDPARAMSが返ってきていました。
これは、何が悪いのでしょうか?
初心者なので、説明不足かもしれませんが、よろしくお願いします。
BltFastの引数に問題があるんだから、その部分だけでもソースを書かないと
答えようがないよ。
SDK入れてから起動できなくなったぞ、ゴルァ!
566デフォルトの名無しさん:01/12/07 18:44
ここは初心者板なのに、Easy LIBについて書かれていないのは
なにか理由があるのでしょか?
567563:01/12/07 20:46
>>564
すいません。
backBuffer->BltFast(150, 150, bmpSurface, NULL, DDBLTFAST_SRCCOLORKEY | DDBLTFAST_WAIT))
こういう渡し方したのですが、DDERR_INVALDPARAMSが返ってきます。(MeesageBoxで確認)
backBufferは、変数名の通り、バックバッファのポインタです。
bmpSurfaceは、ビットマップを読み込んだサーフェイスのポインタです。

説明がわかりにくいかもしれませんが、よろしくお願いします。
>>567
lpSrcRectはどうした?お腹が空いて食べちゃったか?
ところで、BltFastは転送先のサーフェスから1ドットでも外にはみ出ると
描画されなくなるから気をつけよう。
569デフォルトの名無しさん:01/12/12 02:22
質問です。
Direct3Dで描画→できた画像をフィルタ処理→表示
ということをやりたいのですが、DirctX8にDirectDrawはないですから
DirectX7準拠で組んだほうが良いのでしょうか?
この場合DirectX8の機能は全く利用してはならないのでしょうか?
570デフォルトの名無しさん :01/12/12 04:06
eの値を小数点以下100桁まで求めるプログラムと
πの値を小数点以下100桁まで求めるプログラムを教えてください。
>>569
フィルタ処理にDirectDraw使うの?LockするだけならDirectX8でもできるよ。
X7のインターフェース使うなら、当然X8の機能は使えないよ。
572569:01/12/12 05:54
>>571
すいません。私が少し勘違いしていたのかもしれません。
レンダリングの結果をビットマップにしてフィルタの加工処理してテクスチャにすれば
いいわけですよね。DirectDrawを使わなくてもいいんでしょうね。
でもX7を使えばX8の機能は一切使えないとなると…日本語表示に
問題が…JIS第一〜第二の全部の文字をテクスチャにすると結構な大きさになるし。
やはりX7で組んでいったほうがいいのかな。
573571:01/12/12 06:43
>>572
別にテクスチャにしなくたって表示はできるよ。
バックバッファをLockして書き込むだけ。
日本語表示もLockして書き込むだけ。
574デフォルトの名無しさん:01/12/12 06:43
                        /     丶    丶     ミ       ミミ
                        /∧  ┌─ー─┐∧丶    ミ       ミミ
    ∧          ∧       //:: ヽ   ノ  ヽ  ./::ヽ丶   ミ:::ミ ミ   ミ::::ミミ
    /:: ヽ         /::.ヽ      //:::  `、  -┬-  /:::: ヽ丶 ミ;;;;;;;;;;ミ;;;;::::::;;;;;;;:::::;;;;;ミミミ
   /:::  `"""" """ /::::::: ヽ    .//:::::::::   ─┴─    ヽ丶ミミ;;;;;         ::::::ミミミミ
  /:::::::             ヽ    / |:::-=・=-      -=・=- |丶ミ;;;/ ● )     (●ヽ ミミ
  |::: ━ . |      .| ━  |   /<::::::     / ⌒ ヽ      >丶ミ//           \ミミ
  |::::::━┫|・| /⌒ヽ |・|━┫ |  / |:::::::    | (⌒) |     | 丶ミ;;;; ∧_____  ミミ
  |:::::::━  .| ヽ ̄ ̄ .| ━  |  /  \::::::    \ ̄_ノ     ノ  丶ミ;;;; ヽ────〆 ミミミミ
  \::::::       ̄      ノ  /   .\::::::    ̄     /    丶ミ;;;;;;;;        ミミミ
   \::::::::         /  /     ):::::::        (     丶ミ;;;;;;;;;;;;     〆ミミ
     ):::::::        (  /    ./::::::::         \    丶;;;;;;;;;;;;;;;;;;;    ミミ ミ
   /::::::::: ______\/ / ̄/ ̄/ ̄/ ̄/\,,,,,,,,  \   丶;;;;;;;;;;;;;;;;;;;;;    ミミ  ミ
  〈:::::::::::: _______./  |:::::: |::::  |:::: |::::  |  _\,,,,,,  \   丶;;;;;;;;;;;;;;;;;;;;  〆  ミミ  ミ
━〈:::::::::::           /   |  |  |  .|  | | |     .〉   丶;;;;;;;;;;;;;;;;;;;;    ミミ ミ


                          よーし!恐怖の・・・

                            トリプル・・・

                            ネーヨ!!
575デフォルトの名無しさん:01/12/12 13:20
Shadeでshd→DXF→Xに変換してD3Dviewで見たのですが
うまく表示されませんでした・・・

shd形式からDXFへの変換はShadeでかましてるのですが
なにかいいお知恵はありませんでしょうか?
おねがいします。
どううまく表示されないのか分からんと何も言えないっつーの。
すいません

D3Dviewで見たとき、背景が真っ黒で何も見えないのです。
Xviewって奴でも確認したのですが、やはり何も・・・

円形のモデル作って、青のテクスチャー貼って
shd形式で保存 エクスポートでDXF保存して
それからXに変換。

保存の時にチェックボックスが出たので、無視してすすんでます
578デフォルトの名無しさん:01/12/12 13:51
Shadeデツクルナ
579デフォルトの名無しさん:01/12/12 21:11
ShadeでXファイルを作るやりかたを教えてください〜

ギブアップ!
ShaderでXファイルを・・・?!
581デフォルトの名無しさん:01/12/12 22:01
ワラタ

いや・・・ そうじゃなくて・・ Meshを・・
あああ・・あああ・・
582デフォルトの名無しさん:01/12/14 18:50
DirectX7のDirectSoundとDirectMusicについてお聞きします。
音楽の長さを秒数で取得したいのですが、どのようにしたら宜しいのでしょうか?
よろしくお願いします。
583DX8仙人:01/12/15 12:55
>>582
IDirectDokyuso* pDokyuso;
.
.
ULONG nTime;
pDokyuso->GetMusicTime("ゴルァ 音楽の長さを秒数で取得", &nTime);

です。(^^;
584582:01/12/15 15:49
>>583
HELPで調べてみたのですが、引数を持つGetMusictimeを見つけられませんでした。
見つかったのはDirectMusicPerformance.GetMusicTime();だけで、これだと現在のタイムをミュージックタイムで返すとのことで、出来れば最初に全体の長さを秒数で取得する方法について教えて頂けないでしょうか。
説明が足りなくて申し訳有りません。

//いまの所分かっていることを以下に記します。
IDirectMusic* pDMSegment
MUSIC_TIME SegLength;
pDMSegment->GetLength(&SegLength);
//DirectMusicで全体の長さをミュージックタイムで得ることは出来たのですが、それを実際に演奏される秒数に直す方法が分かりません。

DirectSoundの方はCWaveSoundReadを使ってWAVEファイルの全体のデータサイズを取得する方法は分かったのですが、そこから分かりません。
たとえば、WAVEFORMATには、nAvgBytesPerSecという値があるよな。

MUSIC_TIMEがとれたなら、IDirectMusicPerformance8::MusicToReferenceTimeで
REFERENCE_TIMEでに変換できるよな。
http://www.microsoft.com/JAPAN/developer/library/jpdx8_c/_dx_clock_time_vs._music_time_dxaudio.htm
586田真理幕リオ:01/12/15 23:32
すんません・・DirectInputでPAD2つ使って対戦ゲームみたいなのを
作りたいんですが、DirectXの使い方とか解説してくれてるHPとかがなく、
あっても一人用だったり、キーボードとかマウスだけだったり・・

PADふたつを使ったプログラムを知りたいんです。 どうかご教授願います。
587デフォルトの名無しさん:01/12/16 00:18
>>587
すげーなよく見つけたな。というか
if (586==587) == TRUE か?まさかな・・
589587:01/12/16 00:26
>>586!=587
だってこれ、書きこみの時間差30分以内だぞ。
>>589
よくぞ見つけた、ということに感動してるんです。
まあBio100%なんて昔から名前が通ってるしこっちと
あっちを両方見てた人がいて偶然マルチポスト発見しても
全然おかしくないな。
>>585
計算に使われるテンポは、メソッドを呼出したときのパフォーマンス設定値だよ
データ内でテンポが可変するなら正確な値はでてこない

しかし、もともとセグメントの長さを計算する為ではなく、演奏タイミングを計算する
為の物なので曲の長さを求めるには使えない
このスレとゲーム製作技術板とBBXとBio掲示板の4連コンボの人は
1万人はいると思われ
593田真理幕リオ:01/12/16 04:03
まるちですよ。誰か教えてくれないかと思って・・
DirectInputもつかえんやつは逝ってよしですか?
>>593
チュートリアルに従って、列挙の後デバイス複数作ればいいんじゃねーの?
595デフォルトの名無しさん:01/12/16 04:27
>>593
っていうかそれの調べ方はわかるけど、
わざわざ調べてやってここに書く気にはならん。

というかマルチポストだと答える気がうせる。
596田真理幕リオ:01/12/16 04:36
すみません・・HELPって見たことありませんでした。・・汗
今見たんですが、 ちゃんと解説してあるんですね(当たり前か)
これで勉強します。  ありがとうございました。 
597田真理幕リオ:01/12/16 04:42
はじめっからいろんなとこに書こうと思った訳でなくて
書いて20分くらい返事なかったんでここで質問したんです。
ただせっかちなだけです。 これからは辞めますので。 すみませんでした。
マルチポストうざい。氏ねって感じ。
SDKのサンプルくらい見ろよなー。
Joystickサンプルなんて400行もねぇのに。
600582:01/12/16 11:39
度々申し訳有りません。
DirectMusicで、曲全体の長さを秒数で取得する方法について総合して組んでみましたが、どうもうまくいきません。

IDirectMusicPerformance* pDMPerf;
IDirectMusicSegment* pDMSegment;
MUSIC_TIME m_SegLength;
// セグメントの長さを調べる
pDMSegment->GetLength(&m_SegLength);

REFERENCE_TIME refTime;
DMUS_TEMPO_PARAM dmTempo;

/*MUSIC_TIMEをREFERENCE_TIMEに変換(REFERENCE_TIMEは1秒間に10,000,000回,目盛りを刻む。*/
pDMPerf->MusicToReferenceTime(m_SegLength, &refTime);
//Tempoを取得(テンポは1〜1000の値を返す)
pDMSegment->GetParam(GUID_TempoParam, 0xFFFFFFFF, 0, 0, NULL,&dmTempo);

long lTime;
lTime = (refTime * (dmTempo.dblTempo / 500.)) / 10,000,000;
//疑問@Tempo計算は適当です(^^;一体どうやってやるんでしょうか?
//疑問ArefTimeが毎回違う値になるのはどうしてでしょうか?
/*疑問Bそして結局lTimeがとてつもなく大きい値になります。もしかして根本から違うのかな(^^;*/

やはりWindowsAPIの方を探すしかないのでしょうか?
よろしくお願いします。
601582:01/12/16 12:03
//そしてDirectSoundでの曲全体の秒数取得もやって見たのですが、玉砕です。

// プライマリ・バッファのWaveフォーマットを設定の際にBytesPerSecの値を取得
long lBytesPerSec;
lBytesPerSec = pcmwf.nAvgBytesPerSec = pcmwf.nSamplesPerSec * pcmwf.nBlockAlign;

// WAVEファイルを開く
CWaveSoundRead WaveFile;
WaveFile.Open(strWaveFileName);

long lTime;
lTime = WaveFile.m_ckIn.cksize / lBytesPerSec;
//3秒のWaveFileで実験したのですがlTimeが何故か0秒に...
602DX8仙人:01/12/16 14:31
DirectSoundで、1曲の秒数が、解る関数は無いよ
自分で作るの(><)
PCMファイルなら、ファイルの長さ(WindowsAPI)、AvgBytesPerSecを所得出来れば、
計算できるよ。
音楽ファイルの種類は、沢山あって1曲の時間が解らない種類の音楽ファイルも
あるよ。(ファイルの先頭〜最後まで再生と同じ事をやらないと解らないもの)
解るのは、その音楽ファイルのフオーマットが解っていて、転送レートとか、
書いてあるもの。
後は、少し再生して、ファイルの長さから予想する。
604585:01/12/16 15:04
>>600
だーかーらー、MusicToReferenceTimeはパフォーマンスが初期化されてからの
MUSIC_TIME単位の経過時間を実時間に変換するための物で、MUSIC_TIME単位を
実時間に変換する為のAPIじゃないって。

その為にパフォーマンスは全てのテンポ変更を内部に保存してるらしいがマメだよなあ(藁

セグメント長が知りたいならテンポトラックを解析して、MUSIC_TIME位置とテンポ値から
計算するしかないよ。今のところ
>>600
自分も結構調べたけど結局MCIでしか取得する方法しかなかったす
MCIじゃあだめ?
606デフォルトの名無しさん:01/12/17 12:29
DIRECTSOUNDに関する質問いいでしょうか?

今、1つのサウンドバッファを再生したいのですが
そのバッファを再生中にさらに同じバッファ再生が要求されたら
そこまでで切ってまた最初から再生しなおす、ということがしたいんです。
ようするに、普通の効果音なんですけど。

で、実際の再生の関数を

lpDSB->SetCurrentPosition(0);
lpDSB->Play(0,0,0);

としたんですけど、どうも連続で実行した場合、ならないことよくがあるんです。
最初にlpDSB->Stop();を加えてもダメですし……
SetCurrentPositionがいけないんでしょうか?
607600:01/12/18 22:12
>>603
シーケンサーソフトなんて夢のまた夢です(^^;
>>605
話の内容が私のレベルからかけ離れていたので,理解出来ずに何度も質問をしてしまい申し訳有りませんでした。
>>605
MCIについては今までまったく知らなかったので、今度勉強してみたいと思います。

皆さん色々と教えていただきありがとう御座いました。
取りあえず今回はWindowsMediaPlayerで事前に秒数を調べておき、それをファイルとして読み込むといった小手先の方法に逃げることにします(^^;

>>606
私も実験してみましたが、Stopを付けたバージョンと付けないバジョーン両方鳴りましたよ。

強調レベルを変えてみるってのはどうかな?

それかセカンダリバッファが複数の場合は優先順位が関係してくるので、以下の方法を検討してみる。(サウンドバッファがセカンダリバッファのことを指していたのなら関係無し)
Playの第二引数はハードウェアを使うときのサウンドの優先順位を設定するもので、最小の0から最大の0xFFFFFFFFが指定できる。
これを利用してサウンドに優先順位をつける、その代わり優先順位の低いサウンドが止まっちゃうけどね(^^;
608デフォルトの名無しさん:01/12/19 01:35
DirectXなのかMFCなのかよく解らないのですが、
DirectShowサンプルのStillCapDlg.cppにある、BufferCBと言う関数は
何処からどう言った条件で呼び出されているのでしょうか。。。
デバッガでブレークポイントしかけて、スタックトレースみるとか。
grepで、BufferCBを検索するとか。
610608:01/12/19 04:02
サイト巡って色々眺めてみたら、コールバックで呼び出されてる事は
間違い無い様なのですが、BufferCBと言う文字列は
何処にも無く、何処でどう呼び出されてるのか解らない。。。
DirectX・MFC以前にC++の問題なのかな;
612612:01/12/20 12:07
DirectShowで自動繰り返し再生をさせたいのですが、
IDirectMusicSegment::SetLoopPointsのような関数が見当たりません。
自動繰り返し再生は無理なのでしょうか?
613 :01/12/20 12:25
test
>>613
テストを行う場合はきちんとテストの目的と予想される結果、仕様書を作成すること。
目的が曖昧で漠然としたテストは無駄なコストを高めるだけで資本の無駄である。
またテストを行った担当者の名前を記述するのはコレ基本。
615まめ:01/12/25 15:26
プレイ中のゲーム画像を所得して、その画像をテクスチャーに
する方法、教えてください。
616すぱげてぃ:01/12/25 16:50
これ迄DirectShow+Direct7のDirectDrawで書いてきたのですが、
DirectX8のポイントスプライトに移行しようと思い立ち、
D3DX8.hをインクルードしてみた所、

should not include d3dtypes.h when compiling for DX8 or newer interfaces
〜\d3drmobj.h(46) : warning C4005: 'WIN_TYPES' : マクロが再定義されました。
〜\d3drmobj.h(275) : error C2061: 構文エラー : 識別子 'LPDIRECT3D' がシンタックスエラーを起こしました。
〜\d3drmobj.h(300) : error C2061: 構文エラー : 識別子 'LPDIRECT3DDEVICE' がシンタックスエラーを起こしました。
〜\d3drmobj.h(315) : error C2061: 構文エラー : 識別子 'LPDIRECT3D' がシンタックスエラーを起こしました。
〜〜〜
等とエラーを吐かれてしまいました。
原因調査していたら、どうも DirectShow関連のqedit.hと
ぶつかってる様なのですが、解決方法がよく解りません。

試しにtext3d.cppに qedit.h を加えてみた所、同様のエラーが出ました。
どなたか解決策をご存じの方居らしたらご教示願います。
617 :01/12/25 18:06
なんかサイズの大きいテクスチャだと表示できないんだけど原因分かりますか?
>>615
BioやBBXで過去に何度も話題になっているはずなので、そっちの過去ログあたって。
環境書いてないからなんとも言えないよ。

>>617
Voodooなんかだと256*256の制限がある。
他のビデオカードでもサイズの制限があるものもあるから、使えるテクスチャの最大サイズをチェック。
619名無しサソ:01/12/26 06:27
>615
 バックサーフィスと互換性のあるテクスチャフォーマットで
テクスチャ作って、バックバッファをフリップ(もしくはBlt)
する前にBltでテクスチャサーフィスへ転送。

 テクスチャフォーマットの検索方法はSDK参照のこと。
CubeMap辺りが参考になる。
620デフォルトの名無しさん:01/12/30 03:50
初心者ですが教えてください。
DirectDraw(VB)で50x50くらいの大きさの画像を100個表示したら
毎秒25フレームくらいになってしまいました。

環境は600MHz、192MBなんですが、フレーム数がこんなに少なくなって
しまうもんなんでしょうか。 ちょっと考えてみたけど

1. 無駄な操作を行っている
2. VBをつかってるから
3. ビデオメモリが8MBしかないから
4. 普通はこのくらい

まぁ、とくに変な処理はおこなってない(ループの中で画像を表示させるだけ)ので
1はないと思います。 だれか相談に乗ってください。
621デフォルトの名無しさん:01/12/30 04:42
>>620
3. ビデオメモリが8MBしかないから
ビデオメモリは関係ないだろう。収まりきってるんなら。
俺は原因は1と2だと思うが。

いや、ビデオメモリが8MBってのは、ビデオチップがヘボい可能性もあるわな。
TNT以降なら普通は16MBあるだろうし。
ソフトウエェアレンダリングになっていそうな予感。
原因はわからんが
direct showでゲーム中MP3鳴らしてるんですけど
たまに,音がうまく再生されないときがあります
たまにだから、原因がはっきりしません
だれか、なにかしりませんか?
>>622
俺も 1 か 2 だと思うけどな。

 Pentium III 500MHz, Windows 2000, VC7, DirectDraw7, Hardware Acceleration OFF
 640x480x32bpp (ただし 1280x1024x32bpp のデスクトップ上にウィンドウ表示)

という状況でも、フレームごとに 32x32 のサーフェイス 128 枚を透過コピーして 60fps ぐらい
出てるもの。普通に Hardware Acceleration を利かせると 170fps ぐらい。

>>620
もし出せるようならソースコードを出したほうが早いと思われ。
しかし、ソースコードを出されてもVBだから俺には分からないという罠
627625:01/12/30 16:54
環境は VC7 じゃなくて VC6 だわ。ごめん。

>>626
VC プログラマなら VB のソースなんて見れば読めるよ(ホントに) DirectDraw 関係はどうせ COM だから
インターフェース同じだしさ。
大昔のウンコPC構成だと、
最終的な画面への転送がメチャメチャ遅いものがあるから要注意。
そういうのは、画面への転送なくすと異様に速くなるからすぐわかる。

640x480(16Bit)をスクリーンに転送するのに20msec喰ってたのがあってびびった。
どんなに最適化しても60FPSでねーでやんの。
629デフォルトの名無しさん:01/12/31 00:11
ノートPCってオチはないだろうな?
会社のノートPCが確かSavageIXの8メガだったけど劇遅(w
ノートPCやオンボードのだとメインメモリとVRAM兼用のがあるからなあ。
HAL効かせても変わんねーやつ。

BIOSでVRAMを増やせます!!ってそんなの売りにするなよ!!
ビジネス向けって割り切ればいいんだけど、
実際、買うユーザーはそんなとこ見てないんだよな。
で、ゲーム動かしてみて遅いだのなんだの。
あんたが悪いっちゅーねん
>>630
シェアメモリだとHALきかせても速度かわらんの?
UMAと言え、UMAと。
ウマー
634Kusakabe Youichi:01/12/31 18:52
In article >>633, デフォルトの名無しさん/sage/633 wrote:

> UMAと言え、UMAと。


うまー
635デフォルトの名無しさん:02/01/01 07:12
作ったゲームがSis530+DirectX8で起動しないって報告食らったんですが、
Sisの方がDirectX7までしか対応していないから放っておいていいんでしょうか?
(うちのゲーム以外は動いているらしいです)

また、「Sis530+DirectX8でコレをやると止まるぞ!」ってのを知っていらっしゃる
方いますか? 恐らくスプライト格納したサーフェス上で明度調整とかやっている
所が引っかかっているんだと思うんですが、それは危険ですか?
>>634
ようやく2chになじんできた感じだな
637デフォルトの名無しさん:02/01/03 04:02
3Dに必要な数学の知識ってどれ位ありますか?
2chの全板の全スレッド位
>>635
もしWebで配布してるんならデカデカと
「GeForce以降+Windows98以降+DirectX8対応最新ドライバ(メーカに確認してください)」って書いとけ。

俺の場合。某イベントで同人ソフトを売ったんだが、
「バグ報告です。NEC PC-9821 Nr15(Pentium150MHz+Windows95)で動作しません。」
ってなメール貰って
「パッケージ裏にも明記した通り、
Pentium2 300MHz以上のPC/AT互換機+DirectX7をサポートしたビデオカード+Windows98以降でしか動作保証しません」
って返事したら
「PC-9821は漢字ROMを搭載しているので、同クラスのDOS/V機の倍以上の性能が出ますから問題ありません(150x2=300)
素直にバグを認めるべきではないでしょうか。返金もしくはパッチの早急な配布を強く希望します」

お前・・・MS-DOSの話ししてんじゃねぇんだぞ
640635:02/01/03 04:40
ワラタあげ。いや、本当にそういうのが来たらシャレにならないでしょうが。
なお、問題の件ですが、アクセラレータの設定を変えたら動いたとか。

うちもイベント売りの同人ソフトですが、パッケにWindows95〜+DirectXとしか
書かなかったから、不安ですね。手元のMMX166+DirectX5でフツーに
動いていたんで安心してしまったんですが。今のところは不具合の報告も
概ね好意的な物ばかりですけど…。環境依存を少々見くびっていましたか。
>>639
Nr15(メモリはMAXまで搭載)はチョット前まで使ってたけど、
正直あれでゲームをやろうという気は起きないぞ。
普通にIEやWordとか使ってても重いもの。
相手は、それを知っていて買ってるはず。
漢字ROMを出してくる辺りからして、もうイチャもんつけてるだけでしょうな。
ついでにODPで300MHzにアップしたPC98のXvですら
ゲームをやろうという気にはさせなかったぞ。
DOS/V機うんぬんどころじゃねーぞ。
CPUだけ速くても、体感速度はNr15にヒケをとらなかった(w
つーわけで、結論ですがPC98は切っていいと思われ。
>漢字ROMを搭載しているので、同クラスのDOS/V機の倍以上の性能が出ますから
旧八信者の常套手段です(w
645デフォルトの名無しさん:02/01/03 10:11
DirectXはフリーダウンロードできるんだから
もうD8標準でいいんじゃない?
DINPUTと解像度変更は D5かD6でもいいと思うけれど

DirectSoundでイフェクトが使えるメリットはとてもでかい

あと最近Intelの815が結構ハードが効いていて廉価版マシンが多いので
815とRADEONとGeforceで動けばよいと感じる。
フリーウェアならね。。。
ホントDirectX使ったゲームのサポートってめんどくさい。
GDI使ってた時はなぁ・・・・(遠い目
DirectXグチすれになってるぞ(w
649デフォルトの名無しさん:02/01/04 01:30
DirectMusicについて質問なんですが、
DirectMusicを使って外部MIDI音源を鳴らす事はできないのでしょうか?
IDirectMusicPort8を継承したクラスを作るにも、なにがなんだか・・・

DirectMusicについての資料って、
http://www.microsoft.com/japan/developer/library/default.asp?URL=/japan/developer/library/jpdx8_c/_introducing_directx_8.0.htm
http://www.necoware.com/~dearna/dmusic/index.html
くらいしかないんでしょうか?
MSDNのあれだけの資料で開発って無理じゃないっすか・・・(ToT)
650デフォルトの名無しさん:02/01/04 01:52
DirectAudioをまともに使ってる奴なんて
日本にいるのか?
651デフォルトの名無しさん:02/01/04 11:20
>>650
いない
というより、世界中探してもいない。
653デフォルトの名無しさん:02/01/04 18:58
>>649 DirectMusicで鳴らすことはできるけれどMCIでソフトシンセが鳴らせる現状
セグメントだのミュージシャンにわからんものが必須のDirectMusicを使うのはいまいちメリットがないと思う。

>>650 まとも ではないいけれどDirectSoundにイフェクトのせるくらいはやってるやつ
ごろごろ要るだろ。

これってへたするとん十万する機器に相当する機能だと思う。
ふぇいざーとディストーションに萌え〜
>>649
SDKの資料だけでどうして外部機器への出力ができんのでしょうか
DirectMusicよりもMIDIの知識の方を鍛えるべし

Direct3Dを深くするのに3Dと数学の知識が必要なように、
DirectMusicを深く使うならMIDIと音楽の知識は必須
655デフォルトの名無しさん:02/01/04 22:01
>>654
それは的外れな意見だと思われ。
DirectXスレ元気ないね。
そんだけクソなんだろうな・・・・
そう言えば、X7のときにはあった外部MIDI音源を使うサンプルがX8では無くなった?
657デフォルトの名無しさん:02/01/05 12:04
>>656
おそらく、マイクロソフトが外部音源ではなく
ソフトシンセに切り替えようとしているのだと思われ。
実際にはできるはず。
ただし、マイクロソフトは情報提供しないだろう。
マイクロソフトの情報操作ってそういうところから始まっている。
658デフォルトの名無しさん :02/01/05 21:46
UVマッピングされてるXファイルで描画していたのでプログラム
でテクスチャを読み込むことが難しく感じるのですが、tu,tvを理解できる
程度の初心者レベルからテクスチャ読み込みを学べるサイト知ってる人いたら
教えてください。
659デフォルトの名無しさん:02/01/06 03:06
>>649
DirectMusicは私もさっぱりわかりませんね。
WEB(海外を含む)を見ても、サンプル未満な物しかありません。
バージョン8は見送るというのがいいのではないでしょうか?
660デフォルトの名無しさん:02/01/07 14:03
DirectX初めて一週間です。ご無礼がありましたらご叱責のほどを(拝)

えと、とりあえず動いてはいるのですが、デバッグモードで動かすとVC++のデバッグウィンドウに

Direct3D8: (ERROR) :Memory still allocated! Alloc count = 156
Direct3D8: (ERROR) :Current Process (pid) = 000004c4
Direct3D8: (ERROR) :Memory Address: 008e4024 lAllocID=0 dwSize=000034f0, ReturnAddr=00948826 (pid=000004c4)
(以下、Memory Addressがいっぱい)

ってなエラーが吐き出されます。こいつを追及するにはどのあたりを的にすればよいのでしょうか?
ちなみに環境はDirectX8+Windows2000SP2、VC++6+SP3です。
使ってる機能は・・・Direct3D(^^;、ポリゴン描写に頂点バッファ、テクスチャの重ね合わせって所
です。
オブジェクト・リークやね。きちんとReleaseしる!
662660:02/01/07 15:42
>オブジェクト・リークやね。きちんとReleaseしる!

え? テクスチャはちゃんと全部Release……あ、頂点バッファか(^^;
やってみます。アドバイス感謝(拝)
663660:02/01/07 16:31
頂点バッファをReleaseしてやって、大部分は消えました。が、あと三つ。

……何処だろう? 本体もデバイスも開放してるし、テクスチャは数が合わないし……。
トランスフォームで使う行列って、ただの構造体ですよね?(^^;
664デフォルトの名無しさん:02/01/09 01:25
質問です。
DirectX5の時にIDirectDrawSurfaceを使用して
ロック・書き込み・アンロックをしていましたが
DirectX8ではIDirectDrawSurfaceがあるんだけど
ありません。
どうすればいいでしょう?
DirectX7を使う
666 :02/01/09 08:29
DirectX8でフルスクリーン時に、Alt+tab等でフォーカスが他に移った時、
最小化させずにフルスクリーンのまま居座らせる事は可能でしょうか?

DirectX3辺りでは出来た様な記憶があるのですが…
667デフォルトの名無しさん:02/01/09 17:33
いまふと疑問に思ったのだが……
>>665、つまりDirectX8にはDirectDrawが無いのは(知識としては)知っていたが、
では、DirectX(Direct3D)で制御してる画面に文字などを表示させたいときはどうするのだろう?(^^;

今までのDirectDrawのように、どこかでGetDC出来るのだろうか?
「ここを見れ」でよいのでアドバイス求む。
D3DXFONTは駄目?
669デフォルトの名無しさん:02/01/09 18:48
>>667 DirectX8でも特有の機能を使わないのならば古いバージョンのやり方でやって問題はない

>>659 DirectMusicは使えないと思うけれどDirectAudioとしてのサウンドイフェクトは
相当使えると思う。
670667:02/01/10 00:45
>>668

……ごめんなさい、D3DXFONTについてのいい資料が見つかりません。
どこか/何かご存知ではないでしょうか?
とりあえずCreateしてDrawTextすればいいらしきコトまでは判ったのですが(^^;
671デフォルトの名無しさん:02/01/10 09:03
>>670
ヘルプみれ。
あと DC に関して
http://puyon.pns.to/program/directx8-2d/05.html
672:02/01/10 09:07
俺にウイルス送って来い!
挑戦者を待つ!!!!!!!!!!
673デフォルトの名無しさん:02/01/11 00:43

ファイナルファンタジータクティクスのように奥に行ってもレンダリングされるモノがちぢこまらないようなクォータービューするにはどういうカメラワークにすればよいのですか?
普通にD3DXVECTOR3を設定してD3DXMatrixLookAtRHしてSetTransformしてななめから見下ろすと、当然ですが奥に行くほどちぢこまります。
タクティクスのように3Dを使いながらも奥行きを消すにはどうすればよいのでしょう。
それともあれは2Dで表現しているのでしょうか?DX8のDG使ってます・
674673:02/01/11 02:31
検索したらちょうど2chで語られた話題がありました。すみません
あの、ちょっと質問聞いてください。 お願いします。

DirectX8Graphicsでスプライトによるビットマップ表示を行いたいのですが、
800x600のビットマップを
pSprite->Draw(pTexture, NULL, NULL, NULL, 0, NULL, 0xffffffff);
で表示させても、なぜか拡大されてしまいもとの画像の半分も表示されません。
ウインドウの解像度は同じ800x600でやってるんですが、どういうことなんでしょうか。
676o:02/01/11 23:42
>675
DX8で扱えるテクスチャの大きさの最大値が256X256だからです。
あ、そうなんですか。 ありがとうございます。
2D表示の方法ってこれしか書いてなかったんだけど、フルスクリーンで
画面いっぱいに画像を表示したいときってどのようにするんでしょうか。
分割して表示すれば?
679教えてください:02/01/13 23:26
ちょっと質問です。
DrawPrimitive()で描画できるポリゴンはMaxPrimitiveCount/3ということに
なると思うんだけど、それ以上描画したいときは、ポリゴンを小分けにして
DrawPrimitive()を繰り返せばいいのですよね?

ところが、RIVA TNTのマシンではこれでOKなのですが、GeForse2MXマシンでは、
HALモードではポリゴンが最初のDrawPrimitive()の分くらいしか描画されません。
でも、RESモードではちゃんと表示されます。

この原因、わかる方が居たら教えてください。
680名無しさん@お腹いっぱい。:02/01/14 02:32
今日携帯に自分の変更前の初期アドレスからタイトルが『ウイルス。』
という迷惑メールが届きました。
こういう自分の元の携帯アドレスからメール送るようなプログラムって
存在するんでしょうか?かなり不気味だったもので。
>>680
DirectXスレで きくとは いい どきょうだ!
このすれは、DirectPlayでういるすめーるをおくるにはどうすれば
よいかをはなしあうすれになりますた。
683:02/01/14 15:07
すみません、DirectXってなんですか?Visual BasicやC言語と同じくプログラミング言語のひとつですか?
>>683
知らないと思うけど、世の中には検索エンジンという便利なものがあるんだよ!
騙されたと思って使ってみて!!

http://www.google.com/
ネタには はんのう しないこと
686デフォルトの名無しさん:02/01/15 03:12
みなさんCでDirectXを呼び出す時の時間ってどうやって測ります?
>>686
VC のプロファイラ、じゃまずいの?
688デフォルトの名無しさん:02/01/15 06:12
#define WIN32_LEAN_AND_MEAN
と、書かないと
error LNK2001: 外部シンボル "_IID_IDirectDraw7" は未解決です
Release/TestDX.exe : fatal error LNK1120: 外部参照 1 が未解決です。
link.exe の実行エラー
このようなエラーがでます。
WIN32_LEAN_AND_MEANって何ですか?
Direct Xって.com企業の技術を使ってたんですよね。
でもMSとけんかして.com企業は8で外されたんですよね。
ネタ?
691デフォルトの名無しさん:02/01/15 18:55
jpgを表示させるにはどうしたらいいですか?
692デフォルトの名無しさん:02/01/15 20:47
>>691
CDC dc(this);
dc.TextOut(50,50, "jpg", 3);
693デフォルトの名無しさん:02/01/15 21:04
初めまして。
i-mode用の逆ランクcgiが欲しいのですが、
どこを捜してもありません。
配布先ご存知の方いましたら教えてください。
ネタ?
いや、まだ起きてるよ。
ああ、よかった起きてて。
ビットマップの表示と円の描画って速さはどのくらい違うの?
ド素人ですが、教えてください。

DirectXのRuntimeをインストールするとき、DebugかRetailかを選び
ますよね?自分はパフォーマンスのよさげなRetailにしたんですが、
プログラミングするうえではDebugにしたほうがいいのですか?
Debugにしたときの恩恵ってどのくらいのものなんでしょうか?
あとみなさんはどーしてますか?
699デフォルトの名無しさん:02/01/18 00:26
すみませんが、教えてください。頂点バッファをビデオメモリ上に確保した場合と、システムメモリ上に確保した場合のパフォーマンスのちがいをみてみようと思い、SDKサンプルのOptimaize
Meshで、optimizedmesh.cppのD3DXLoadMeshFromXの
OptionsパラメータをD3DXMESH_ MANAGED/SYSTEMMEM
の両方で実行してみました。
 ところが、FPSの値に差といえる程のちがいが出ませんでした。一応、結果をかきますと”Knot”を16こ表示で
MANAGED 29.3
SYSTEMMEM 29.2から 29.3
と、ほとんど変わりません。わたしの方法では頂点バッファを
ビデオまたはシステムメモリ上に確保できていないのでしょうか?
 DX8をはじめたばかりの人間なのでかなり初歩的なミスを
しているのかと思いますが、どうか宜しくお願いします。
環境
CPU Celeron400 (定格)
Mother P2BF
Video GeForceMX400 64MB
Memory 256M
700699:02/01/18 00:30
かき忘れました
OS Win2000 SP1
VC6でリモートデバッグ
701まさし:02/01/18 18:08
すみません。
20x20x5個の立方体のメッシュを描画して原点を軸にしてY軸回転させると、180度ほど回ったところでいきなり表示が変になります。
ポリゴンの天井が抜けたような感じです。なぜこうなるのでしょう。
702まさし:02/01/18 18:20
あげます。
>>701
まるちぽすとですか?
見ている人は同じなので意味ないと思いますよ
>>703
あっちは3D話スレ、こっちは初心者スレという違いがある。
>>703
意味ないと言うより失礼だよね。 
どうせ回答してもらえないさ。
すいません、質問よろしいでしょうか。 おねがいします。

自分がつくったDirectX8のプログラムが、他のPCでは起動できない(どこかでFALSEを返して
終了してしまうらしい)ので、どこでエラーを起こしているか確かめたいのですが、
何かいい方法はないでしょうか。

メッセージボックスを出すのもひとつの方法なのですが、入力制御がきかなくなって、
電源を切るしかない場合がよくあるので、他にありませんか?
通常は何をするのでしょうか。

お願いします。

>706
エラーファイルを吐くようにすれば?
入力制御がきかないってのは、フルスクリーンでメッセージが見えないだけなんだろうから、
一度DirectX解放してから表示するのかよいかと。
709デフォルトの名無しさん:02/01/20 10:29
.NET FrameworkになったらDirectXはどうなるの?
C++で、
VK_LEFTなどは反応するのに、VK_Zが定義されてないと言われます。
何故でしょうか?
ASCIIコードと同じだから端折ったんでしょ。
'z'か'Z'つかえ
だれかお願いします。 教えてください。

DirectPlay8でピアツーピア接続によるネットゲームを作ろうとしてるのですが、
普通はそれぞれのピアが自分の状態を互いに送信して対戦を成立させますよね。
計算はそれぞれが自分のピアで行うという感じで。

でも、中にはひとつのピア(セッションのホスト)がまとめて計算をしなければ
ならないといけないものもあると思います。
たとえばランダムなマップの生成とか、ランダムに出現するアイテムの位置とか。
そういうのって、やはりホスト用のプログラムを書き直して別のプログラムに
しなければならないんですか?

>712
乱数のseedだけ最初に送信すれば?
>>713
そうしたいのですが、アイテムがリアルタイムで出て来るもので…
ピアツーピアでもHOSTってあるんでしょ?
716デフォルトの名無しさん:02/01/22 22:52
フルスクリーンゲームのアンロード時に画面を黒くする方法ってありませんか?
今はなぜか緑色に表示されてしまいます。 

環境はDirectX8とVC++6です。
>>716
ハードウェア、ドライバベンダーにその要求を出すって方法があると思われ
>>706
リモートデバッグする
719 :02/01/24 13:09
あの…
1・構造体へのポインタのアドレス
2・構造体を受け取る変数へのポインタ
普通この違いは一目で解らなければならないものなんでしょうか?(;´Д`)

二つは殆ど同じ内容の関数で、この違いに気付かずハマッタ
720デフォルトの名無しさん:02/01/25 00:15
ひとつ考えて欲しいんですけど、
文字をすべて画像化するいい方法ないですか?
ゲームに使う文字をテクスチャにしたいんです。
>>720
アルファベットなら大文字小文字で52文字ですむけど。
722720:02/01/25 00:19
文字の画像をあらかじめ用意しておいて
プログラムから計算でその画像位置を計算して出力 ってかんじにしたいんです。
DirectX8でGDIつかえんもんで。
(DIB使えば似たようなことできるみたいだけど、その後がつらそう)
723720:02/01/25 00:20
JISの第一水準くらいはカバーしたいんです。
文字コード順に表示してキャプチャすれば?
725720:02/01/25 00:24
>>724
丸1日掛かりそうですけどそれですかねぇ。
FF12も似たような事をやってるらしいです。
>725
リアルタイムでフォントからDIB生成じゃだめなの?

スクリーンショット取るぐらいなら、DCにHBITMAPをSelectObjectして、TextOutしたあと、
HBITMAPのbitsをファイルに書き出すとか。
これなら文字コードぶんだけループで吐き出せる。

けど、どのみち配布するときフォントも配布すると、フォントの著作権に引っかかるよ。
727vberr ◆P/ECE33A :02/01/25 19:18
DirectX7 for VB の DirectSound ではサウンドの出力フォーマットが変えられなくて困ってたのですが、
DirectSound8 でプライマリバッファが取れるようになったので、早速試してみました。

…が、どうしても変わらなくて困ってます。
協調レベルは SetCooperativeLevel で DSSCL_PRIORITY にしてあって、
set DSPrimaryBuffer = DS8.CreatePrimarySoundBuffer(desc) も成功してるんですが…

コードはこんな感じです。

--------

Dim fmt As WAVEFORMATEX
With fmt
.nChannels = 2
.lSamplesPerSec = 44100
.nBitsPerSample = 16
.nBlockAlign = .nChannels * .nBitsPerSample \ 8
.lAvgBytesPerSec = .lSamplesPerSec * .nBlockAlign
.nFormatTag = WAVE_FORMAT_PCM
.lExtra = 0
End With
DSPrimaryBuffer.SetFormat fmt

--------

エラーは発生しません。

このあと、 GetFormat すると、きちんと lSamplesPerSec は 44100 になっているのですが。
試しに lSamplesPerSec = 11025, nChannels = 1 等も試してみましたが音は全然変わりません。

やり方間違ってるのかなー…サンプルも無いし…
サウウンドカード何使っているかわからないぞ ゴルァ
普通のサウウンドカードは、48KHzに変換して出力だYO
プライマリーバッファに書き込めないと思うYO
セカンダリーバッファに8Kzとか、ショボイ音
入れればそれなりの音になるYO
729vberr ◆P/ECE33A :02/01/25 20:18
>>728
すんません。環境は Win2kPro(SP2) + VB6(SP5) + DirectX8 で。
サウンドカードは Xwave6000 です。

が、ウチだけで発生している問題ではないので…。
そもそも、ウチはなぜか何もしなくても(コレも問題) 44.1kHz な音で再生されるんですけど、
Win9x 系の OS だとどうしても 22kHz 8bit Stereo なままで変わらないらしいのです。

ショボイ音はソレで良いんですが、44.1kHz 16bit Stereoな音なんかが
22kHz 8bitで再生されるのは勘弁なのです。

# プライマリバッファに直接書き込みはしてないです
セカンダリーバッファ Createする時
sbDesc.lpwfxFormatに44.1kHz 16bit Stereo指定すれば
その音で出るYO
731vberr ◆P/ECE33A :02/01/25 20:57
>>730
…ダメでした。( DirectSound8.CreateSoundBufferFromFile )
というか、 セカンダリバッファで fxFormat 変えると再生速度が変わってしまうのでは...。

# プライマリバッファへの SetFormat だけで変わるんじゃなかったのかyo...(;´Д`)
># プライマリバッファへの SetFormat だけで変わるんじゃなかったのかyo...(;´Д`)
プライマリバッファへの SetFormatは、一応ドライバーがサポートしているか
確認するため.... うそ言うドライバーが多い

>セカンダリバッファで fxFormat 変えると再生速度が変わってしまうのでは
元々の音と同じフォーマットにすれば変わらないYO

733 :02/01/25 21:51
現在のスクリーンモードのピクセルフォーマットを調べるには
どの様な手法があるのでしょうか。

昔shi3zさんのサイトで、RGB各階調を得てビットシフトし混ぜる方法を
書かれていたの覚えていたので見に行ってみると、プログラミング
関連は跡形も無く消えてました…
>733
DirectX7なら、surfaceをロックしたときに、DDSURFACEDESC2 構造体に記録されるよ。
8は知らない。
735733:02/01/26 00:44
>>734
DDSURFACEDESCから辿って行ったら、GetPixelFormatと言う
そのまんまの文字列が目に止まったり(;´Д`)

有り難うございました。
736vberr ◇P/ECE33A:02/01/26 11:40
トリップ忘れた(帰れ

http://www.microsoft.com/japan/developer/library/jpdx8_vb/dsound_iface_vb_6e76.htm
> メソッドは、データそのものから形式およびサイズを判断するため、fxFormat および lBufferBytes メンバは無視される。

との事なので、セカンダリバッファにformat指定は無意味なようです。
…くそっ。どうすれば変わるんだ…。
>>736
そんなこと 当たり前

CreateSoundBufferFromFile... ファイルのフォーマットのなる
CreateSoundBuffer...これで可
738デフォルトの名無しさん:02/01/26 14:31
VBでDx7を使ってDirectdrawのカラーコントロールを使いたいのですが、
Set DDColorControl = objDD_SP.GetDirectDrawColorControl
の部分でエラーが出て困ってます。
カラーコントロールってどのようにして使うのですか?
>738
どのようなエラーが出てるのか、どのようなコードなのか、情報くらいだせ。
740738:02/01/26 15:19
すいませんでした。
エラー⇒「クラスはオートメーションまたは予測したインターフェースをサポートしていません」
コード↓
Public objDD_SP As DirectDrawSurface7
public DD_CC As DirectDrawColorControl
Public DDCCF As DDCOLORCONTROL
public DDParam As DDSURFACEDESC2

With DDParam
.lFlags = DDSD_CAPS Or DDSD_BACKBUFFERCOUNT
.ddsCaps.lCaps = DDSCAPS_PRIMARYSURFACE Or DDSCAPS_FLIP Or DDSCAPS_COMPLEX Or DDSCAPS_STANDARDVGAMODE
.lBackBufferCount = 1
End With
Set objDD_SP = objDD.CreateSurface(DDParam)
Set DD_CC = objDD_SP.GetDirectDrawColorControl() 'ココでエラー
こんな感じです
741vberr ◆P/ECE33A :02/01/26 15:25
>>737
ってことは先に自前でリサンプリングしろ、ってことですか? ソンナ...(;´Д`)
ていうかどちらにしろ出力が変わらないので意味がネー....
742デフォルトの名無しさん:02/01/27 12:51
 失礼します。DirectXについては初心者どころかまったく知らないですが、質問していいでしょうか??

 先日、友人からDirectXで作られた簡単なプログラムを預かったのですが、
画像が表示させるべきところのみ、真っ白に表示されます。
 友人に問い合わせてみたところ"自分のPCではちゃんと動く"といわれ、
自分でもいろいろと考えられる解決方法を探してみましたが、どうしても
解決の糸口が見えてきません。

 最後の頼みの綱としてココに書き込みました。
どうぞよろしくお願いします。
>>742
使ってるPCぐらい書けYo!

多分ぜんぜんちゃうと思うけど,MatroxのMilleniumはDirect3Dでテクスチャ使うと
テクスチャが真っ白になるってのがあった。
OSがちがうのか
バージョンがちがうのか
>742
テクスチャ画像が無いとかそういうオチじゃねぇだろうな?
1.ドライバを最新のものに変える。
2.DirectXを最(以下略
3.VGAを(略

ってーか、そんなの友人とやらに解決させろよ。
そいつもわかんねぇなら、そいつがここで聞けばすむ話だろ。
746742:02/01/27 18:26
 使っているPCの情報です。

[ WCPUID Version 3.0d (c) 1996-2001 By H.Oda! ]

Processor #1 : Intel Celeron / 4CCDD5EE
Platform : Socket370 (PGA370 Socket)
Vendor String : GenuineIntel
CPU Type : Original OEM Processor (0)
Family : 6 (-)
Model : 8 (-)
Stepping ID : 3 (-)
Brand : 1
APIC : ----
Name String : ----

Internal Clock : 565.28 MHz
System Bus : 66.50 MHz
System Clock : 66.50 MHz
Multiplier : 8.5

L1 I-Cache : 16K Byte
L1 D-Cache : 16K Byte
L1 T-Cache : ----
L1 Cache : ----
L2 Cache : 128K Byte
L2 Speed : 565.28 MHz (Full)

MMX Unit : Supported
SSE Unit : Supported
SSE2 Unit : Not Supported
MMX2 Unit : Not Supported
3DNow! Unit : Not Supported
3DNow!+ Unit : Not Supported

Host Bridge : 8086:7124.03 [Intel 810E/E2 DC-133]
South Bridge : 8086:2410.02 [Intel 82801AA (ICH)]
VGA Device : 8086:7125.03 [Intel 82810E CGC]
Memory Size : 192M Byte
Memory Clock : ----

OS Version : Windows 98 Version 4.10.2222 A
-------------- : -----------------------------------
StdFunc 0 : 00000002 756E6547 6C65746E 49656E69
StdFunc 1 : 00000683 00000001 00000000 0383F9FF
StdFunc 2 : 03020101 00000000 00000000 0C040841
00000017h : 37320000 00000000 00000000 00000000
0000001Bh : 00000000 FEE00100 00000000 00000000
0000002Ah : 00000000 CD800000 00000000 00000000
00000119h : 00000000 9EBDB4B7 00000000 00000000
0000011Eh : 00000000 007405E5 00000000 00000000

##--- Date 01/27/2002, Time 18:23:41

>>746
いやだから、VGAとかDirectXとかドライバのバージョンとか・・・
748746:02/01/27 19:04
あ、すみません。 こんな感じです。

 DirectX:8.1
 Intel(r) 82810E:i81xdw9x.drv 4.12.01.2586
ヽ(´ー`)ノ
750はし〜:02/01/27 21:56
作成したサーフェイスがビデオメモリをどれほど食ってるのか
知りたいのですが、どのように計算したらよいのでしょうか?
320*240、16bitカラー の場合で計算方法を
教えて頂きたいのですが。 お願いします。
>>750
(横のピクセル数+ピッチ)×縦のピクセル数×2バイト
じゃなかったっけ?
>>751
ピッチx縦だけで良いんでないの?
753はし〜:02/01/27 22:24
2バイトは16ビットだから2バイトですよね。
ピッチってのは何でしょうか?
1ラインの実質幅?
カードによっては、317x240 と指定して作っても、
実際には320x240分のメモリが確保され、
幅には317ドット、ピッチには640バイトとか入ってる事が
あるんだと思う。  (適当
755はし〜:02/01/27 23:33
ビデオカードが対応してない数値は対応してる近い数値に
置き換えられると言う事でしょうか?

ビデオカードが横幅320に対応していると仮定して
>>751 殿の方法で計算すると
320*240*16=1228800(約1.18M)
となりますがこれで良いのでしょうか?

>>ピッチには640バイトとか入ってる
これがいまいち分からないのですが・・
756デフォルトの名無しさん:02/01/28 00:01
IDirect3DSurface8::GetDescからD3DSURFACE_DESC.Sizeで取得。
これでいいんちゃうん?細かい事は気にすんな。
何?D3D8じゃない?知るかウンコ野郎。
>>755
*16じゃなく*2、320*16ビット=640バイト
>>755
君が>>753で言っているとおり2バイトだからだよ。320*2バイト=640バイト
あと、バイトとビットごっちゃになってるよ〜。

横幅の解像度とピッチが違うのは、ピッチ = 横幅解像度 + キャッシュだから
詳しくはヘルプ見てみそ。
759はし〜:02/01/28 00:27
>>758
すんません。 ヘルプ今からみてみます。
>>759
BBXで質問しているの君か?
もしそうなら向こうは回答しなくていいか?
761はし〜:02/01/28 00:45
は?
762はし〜:02/01/28 00:49
うはぁ・・かぶってる。  別人です。
今ヘルプでピッチのとこ見てますが ・・
理解できない・・汗
>762
DirectX以前にプログラムの事わかってないと思われ。
Bitmapファイルのフォーマット解析でもしてレベルあげれ。
764はし〜:02/01/28 02:41
>>763
どーもすんません。 勉強します。
とりあえず320*240*16bitの場合の使用メモリだけでも
教えてもらえんでしょうか?
>>764
だからさ、ビデオカードによって占有するメモリの領域が違うんだってば。

机上の計算なら、320ドット×240ドット×2バイトで150KByteだけど、
ピッチの関係上、これが当てはまらないビデオカードも存在する。

というか、なんでそれほど使用メモリ気にするの?
8MBもあれば十分じゃないの?5〜6年前のスペックだと思うけど。

正直、DirectShowで無茶してるとVRAM1G位欲しくなる(;´Д`)
ローカルメモリ遅過ぎ(RIMM-P4除く
767はし〜:02/01/28 12:21
>8MBもあれば十分じゃないの?
キャラパターンの多いゲーム作ってるんでそれ全部VRAMにのっけても
大丈夫かどうか心配になったもんですから・・

>>767
全部のっけんなよ!
>>727

OSおよびドライバの仕様の違いのせい。
Win2kなどのWDMモデルと、Win9xのMMEモデルでは、
プライマリバッファの動作が違う。

WDMでは、プライマリは実際には存在していなく、
すべての入力はkmixerにリダイレクトされる。
kmixerは、設定の如何に関わらず、現在アクティブなすべてのストリームのうち、
最大のサンプリングレート/ビット深度でミキシング/再生する。
なので、キミの例の、
22.05kHzを指定しても、44.1kHzのセカンダリが再生されていれば、
44.1kHzでミキシングが行われるので、違いはでない。

一方、MMEでは、kmixerがないので、DirectSound内部のmixerが動作する。
これが本来のプライマリバッファ。
こいつは、再生しているストリームのフォーマットの如何に関わらず、
強制的に設定したフォーマットで再生する。
プライマリ作成時には、基本的に22.05kHz/8bit(16bitだったかも?)に設定されているので、
明示的に設定してやらないと、セカンダリで44.1kHzとか鳴らすと、
22.05kHzへのダウンサンプリングが行われた後、22.05kHzミキシング/再生される。

つまりは、WDMでは自動的に音質が下がらないように設定を変えてくれるが、
ミキシングのフォーマットは自由に設定できないということ。
MMEでは、自由に設定が可能だが、自動的になにかやってくれるということはない。
なお、WDMでも、再生しているストリームより上位のフォーマットを指定した場合は、
そのフォーマットでミキシングさせることができる模様。
例として、44.1kHz/16bitのセカンダリを再生している時に、
プライマリに48kHz/32bitIEEEFloatを指定すると、
48kHz/32bitIEEEFloatでミキシング/再生が行われる。
770vberr ◆P/ECE33A :02/01/29 00:57
>>769
そうなんですか! 詳細ありがとうございます。
確かにWDMとMMEで動作に違いがあるというのは確かめて分かったんですが、違いがよく解らなくて。
だからw2kでは何も指定しなくても44kで出力されたりしてたんですね...
セカンダリで44kのwave再生させた途端音が変わったので、変だなーとは思ってたんですが。

つまり、w2kではSetFormatしても、上位のフォーマットでない限りは出力フォーマットは変わらないんですね。
逆に、9xではSetFormat通りになると...

手元に9xの環境がなかったので確かめられずずっとwin2kで悩んでました。
明日にでもまた試してみます。ありがとう。
>>769
参考になったアリガト
772769:02/01/29 22:25
>>770
>>771
他にも、MMEとWDMで、2ch超のチャネルや、
16bit超のビット深度を扱う場合、
色々と違うことあるけどね。
ま、その辺は必要になったらまた質問してくれや。

ちなみに、AC3(DolbyDigital)とかDTSのPassThroughする方法誰か教えてくれ……
どうもうまくできない。
PCMとして出ちゃうのよね。
773デフォルトの名無しさん :02/01/30 20:40
DirectMusic でサウンド再生を試みたんですが
IDirectMusicPerformance8::PlaySegmentExで2つ以上のセグメントを再生すると
1つ目が停止してしまいます。
2つ目以降をセカンダリ セグメント(DMUS_SEGF_SECONDARYを指定)で再生すれば同時に再生できますが
セカンダリ セグメントで再生すると再生速度がスローリーです。
なぜですか?
2つ以上のサウンドを同時に鳴らすにはどうしたらいいですか?
774デフォルトの名無しさん:02/01/30 22:54
MacでCやVBをしたいのですが必要なものを教えて下さい。
>774
スレ違いも甚だしいな、オイ。
DirectXスレってスレ違いレスが多い気がするが気のせいか?
あの。。。VRAMの空き状態チェックする様にしたら、デスクトップと
同じサイズのフルスクリーンモードと、デスクトップサイズの窓モードで、
窓モードの方が使用量少ない事に気付いたんですが、これって
正常なのでしょうか?

今まで当然の如く逆だと思っていたので、ちょっとショック。。
>>777
窓モードだとソフトウェアエミュレートするからだろ
>777
ウィンドウモード時、DirectXは直接VRAM使ってないんじゃない?
780デフォルトの名無しさん:02/02/01 05:22
DirectInputのジョイスティックデバイスって普通のコントローラ(十字キーとボタン)も含まれますか?
DIJOYSTATE2構造体のrgbButtonsでボタンの状態が取得できますが
どのキーがどのボタン(DIJOFS_BUTTON0などのデバイス定数)に割り当てられていますか?
ユーザーが「上上下下左右左右BA」と入力した場合
「DIJOFS_BUTTON0,DIJOFS_BUTTON0,DIJOFS_BUTTON1,DIJOFS_BUTTON1,DIJOFS_BUTTON3,DIJOFS_BUTTON4,DIJOFS_BUTTON3,DIJOFS_BUTTON4,DIJOFS_BUTTON6,DIJOFS_BUTTON5」
って具合にどの環境(ジョイスティック)でも同じデバイス定数で送られてきますか?
>>780
SDKのサンプル改造して試して見れ!!
>>780
やり方が分からないのならいいけど
”こうしたらどうなりますか?”ってな質問は意味わからん。
自分でやってみればいいじゃん。  めんどくせーのか?

あと、
>>「上上下下左右左右BA」
>>      ↓
>>「DIJOFS_BUTTON0,DIJOFS_BUTTON0,DIJOFS_BUTTON1, 〜略

こうはならん。 まぁ、それもやってみれば分かるぞ。
783デフォルトの名無しさん:02/02/01 17:08
WinXP上でフルスクリーンモードを使う際、シングルスレッドと
マルチスレッドで何か変化する点、注意点はありますでしょうか?

シングルスレッドでは問題無いのですが、メインスレッドを
別に設けると、フォーカスが他に移って最小化した後、戻すと
フォーカスを戻した瞬間に問答無用でフリーズしてしまいます。

XP上のシングルスレッド・Win98上のマルチスレッドでは問題無く
Restoreして復帰出来るのですが、XP上のマルチスレッドが
どうしても駄目です。
784あや:02/02/02 01:25
はじめまして。『あや』です。
DirectPlayのDirectPlay8PeerのEnumHostsで、
実際にホストが存在する状態で、非同期で行い、一度目の接続は成功。
そのままクライアントだけが切断し、再度EnumHostsを行うと、
オートメーションエラーが出てしまいました。
きちんと1度目にAsyncOpCompleteのイベントも確認でき、
Closeを行ってからなのですが・・・

皆さん。知恵を貸してください!よろしくお願いします。
ネカマ注意報!(・∀・)
786あゆ姫:02/02/02 08:52

(^^:
ネカマかどうか知らんけどマルチであるのは確か。

Bio100%に1時16分。
こっちに1時25分・・・汗
788あや:02/02/02 22:09
申し訳ありませんでした
>787
べつにいいんじゃない?
同じ2ch内ならともかく。
つ−かテメーはストーカーかよ(w
>>789
良いか?
暇な時に良い情報ないかあさってると
ここ、Bio、BBXでの3段ハシゴが多いんよ。
見ててウザイ。  みんな言ってるっしょ。
791あゆ姫:02/02/03 00:10
>> 769

簡単な AC3パススループログラム 作ったYO
SBシリーズのみ動くYO (Win XP, DirectX 8.0)

この動きがヒントになるYO



以下 UUENCで解凍(WinZip)

複数に分ける 長いって怒られた(><

_=_
_=_ Part 001 of 001 of file AC3SPDIF.Zip
_=_

begin 666 AC3SPDIF.Zip
M4$L#!!0````(`+F]0BR=EFS`R1,```!@```,````04,S4U!$248N97AE[%P/
M=)-5EK\IH03HGQ1:IB+*IP:G+@P36N2??R:U:6W'@&E:0D&DC4U*TBEI)OVJ
M919GX@">EE"HNSC+[/%/6='1T=6N,EIG72?2'@I,Q\,J(KLR+C.'7;XJIU:'
MP:Z+\^WOW2]ID_[A>&;FG#US-C>]][W[Y]WW[GWO>^_+EZ2K-W30%"+2`U65
MJ)LTL-!7`!U1QOR?9]"AZ;^ZKEMG^]5UE5Y?DQ0(-FX.NK9(M2Z_OU&6[O-(
MP6:_Y/-+UKLKI"V-;L_B]/09IJB+'Q]ZZ]"OWWOI?`Q_<?R-\Q^@W'3LP/DS
M*%\^_O3Y4UP^?_X_4!Z\>/#\AUP^S^6OWWOQO!/E4Y^_PO8?7#IX_M]0SGWW
M.>8=OEJO\#M9"/9B(IM.3X_]SSVWQF1G*5,W4Y=*)($Q:S++-2#&&&_1ZD8M
M;P)B)=5$[0`I3(U1WC@B-](HK%A.U"(J=M1GT)\/,$Y+RN3JQ;*G149Y?30.
MCC5^8)JH9G'0[9)=8-)(BWTD!Z-@P=_BJ%E#BB9@.\LXN\CB8%.PEJ*QVJ-V
M]G%V8UHF(0E)2$(2DI"$)"0A"4E(0A+^5#C0M<1"/1TCT&W)3^"=X4_K25DS
MDZ@OM06J\)%-<5K6*[GP<\EJ,NCDZ4[E)IAN[]7#[K">.CH&YH./LU?`TL`<
MB@E?SRNTT,"/5%75>&^GT4+*+KS;7-\SJG]U1.\^($9=KWIOF6\AN[MM@6`?
MNA#`VTXQE/-X6[DSTIQ6K]KKW<J[X#Y^$./OG:$-ZFWE$&HH?J+99:/Z(ZTZ
MO5ZG[!3V4Y46%/6DYJQ`O/74;C,9E$?12[O5I`>C[]MAVA9]9]U6(BE66*LY
M9MC&*3%>51'/1\*[33+X@L@F=ULZC[57Z$=RF)!,`"<M#@[TFA/GQUR0P",3
M5<B$EI98/LK#5E,VTF&OKVN336E*&$/LLYKX[7U?ZE%X4((0>4,BE1E<*/=`
M8%=S3&*.$7%;B;NOI$8TP$Q&A[Z]USAV>!/,__2$^0\7UO3I1(\[(_*T/HLD

792あゆ姫:02/02/03 00:11
M_`P,3!]9$^/BM8Y9CZ6)\3K7H<.WT#Y<X@ZOD<*WY6'`]GH=!U&NOA]VNL,E
MDJ->"\ZNOE_=C5F@D46[_8(;0X8)8IV7+X:5N6,O#"K6.3%]DM(B7&\S29CL
M>?!?3Y^?OCIR0Y^]_NOE:H[H*WQ;KE@6,]7WZ]/"I]'A,)RU5YK2'/"8+0S6
MN)'^W')D,7OA6PO[+#]>>#A<:3+^Z[`=\GD+#R_LB8KR('*H.49MZ<Q3+AF(
MJN_9M+W7W8-U^5MP7$_(3[@P42#RKQ!Q>M'H'PUQL4;UX?0+N(9V'FNNKENY
MQMM>XI6=7B&Q*XTZ,5>&G9$'L^S>W18+UO%EI!^B33T'-)-%*3R=FHD[T<2[
M$7R]#MV6<K?ERNVPYH9B!1CL:CE\RYEV[XKXAEYSM%G?5&$J0)D6&W=L/47C
M^?VT,?&P=^?.2/A3V1!.53OZQ0HMJ8%Y>KVXL(]/XXNM)S;KXE(P.#$_^G5A
M@\-><$DMSQ,B2(Q.1]A0K\,HTW#]6S'KV=`8H<EVV,,&M=PDIK`@<LM_9^Z+
MA(=V7FJ6A)Y5!O9A@X_RL%'X<,"''!%2>]BH.@QH:@P?$8NG^H:W-JT?"6'[
M!8,S+)NRUX5O6XIY=WJ/WHQD3,%Z55!1W\=ZW'U0Q)2*<1@<WOV0BDQF"468
M>!?*M7N[8ZVD`M%*](L%E>OM16H=G/DTL0AY77J?'?6Q[2Z(TV":71]OAPB4
M=_Z@JN$A<!+F2)L\SAW'8\8R3W6J=H,6(6>@KQK+TS!F`PN+31+9=GA/Q_4Z
M5XB=W&X>]Q'+TIC3Y"NT-UVY/?;#Q\;MAP]=T&OG@]BAE5].%=L[7JE,=1":
ML&WG1?=TY6GH(4L[LL-DA$RG[(%@^["N^;YV;=+3[$HS1'9Q,L`H&T8IRKU:
M*\-(JQ((.!JGUVN`Q!$N'2['3B5.%C+SAI@E].&W[=Z/IJ#?*<+#;M,;&$/4
MR11%ES@64E[44^R<,<;.F3-Z/F=$)Z.GC%$[99"/[O'G`U*!@T'?OJ>+1D\&
M99_P\[9@V6V18!%1W/;?@_T'>R)V.BEZFR!X71P_D*Y/.._1_[^/[[_>I-RE
MYXVES6I")M"G>+Y,\ISP4:6,N%]]7+>"+8C$CR,&!T)CSHO.I6//Q^%)XU<^
MG!*+6(C[4BU8<TJ/F(QN058+M44ODA"V2#CLVP(U"<=ASP3G7TK"^8?^<Z7)
M^M<ZQ/E1<.R6M]JP8\A3VDIKE#53$N;AZU,FF(<8#!S0)>3[P/XQ^>A.S,>!
MQ\;H3X_1=X[1Y]Z<P&OW;S=2K%.OOE!LYEZ1=J\9MJ\/0Z`\$KO'\0;F@OUY
M2NQ^;E?Z$/1=NAU'FV?-.-K*'#<9<',3<478E7/POY[SIR[HQH#4!2\P/6,6
MU,@TFVDNTWE,):8FIGE,%S$U,UW*=`736YE:F%J9EC*U,;4SK61:Q70CTQJF
M;J9>I@U,`TQEIBU,MS$-,=W!M)7I;J8=3/<QW<_T,::=3`\R?9;I"TR[F!YB
MVLWT#:81ID>9]C,]P?0DT]-:*\[;6:Z?8ZHPO<!TB.E%IL-,+S,E;J5G:F":
MQM3(-)MI+M-Y3"6F)J9Y3!<Q-3-=RG0%TUN96IB6,K4QM3.M9%K%="/3&J9N
MIEZF#4P#3&6F+4RW,=W!M)7I;J8=3/<Q/<CT6=#MMWGO0+TY3<5UJ.9<A&A]
MC]<-F9<5XK;Y^WQ[E-8C3)1?XE(4Q_GZST^7]B!#V._Z`6O#%\06@X7O/7+M
MV.M\^P5OA7-=FT<I^*#MWLOU*6J.(OK9GB[Z4;>G<T]JSCD(P^E58-H,:LY9
MYBJ9.W!&,/14#3AE#H:S\AH)UTISFO<P.E-S3@MW?/_GS<7)[\T&4=X%>\`N
MVA?O:R_>9U=OMH%I+W[,WE[<`>S$=GT"#;U&T81$DT[>5DP'^D5WYK;FW:';
MKV]>58+*KM15/;+^UNN;/Q,B?9Q(NO^SMGM/M!<?A#L]5LVEXA,Z.2OSM>*3
M'V>$;I?N/RUL/_Y]_8PJN[.B0LTQF,7]Y";TU%:\'VV.BKZ*+X0-X>EMJUOM
793あゆ姫:02/02/03 00:13
MG=MWO_@8KKHZ4%U=V[A%_'J4J%'CZS3N(<U#M2L0J):W!B`Y+L95ZPG(U5XM
MK@*BUPCM_7*PL:$N0'1.M[JY0?;=L57V5#:N\[D]15Y7D&[4W>F15S>ZFQNB
M"2G$/B=D%;(K*#<'ROQUC85T5[%C3;&M(%_+P1,Z6Z/+70;?A92=4N'QNU=[
MFII<FT7;Y\@:=#T@=-@C"'Z*&GP>O^SPU,I4PGZW-LF>+:L]<M!7VX3YTY4U
M"6M?K1AOL=]U7X-GG<_O;GP`\U%1[(CU64%%C6O](H4^5X/O>XCX&Y"4Q?'I
MX(N"'I?L*?,WR2Y_K<A:@R?JX*<ZD;`M]]4&*`E)2,+_<YB-^YX`WC>9)WB_
M5E185%!AMY:56!LV"][>X-HJ2FVSES8'70&O5-O8[)<E\6-_\W62]("K25K@
MADV%W,@[3(G+U^!Q2W*C%$#K:)M21W'%6ENE9&Y9L&+QBJI$NUK>NZ*6V(JE
M(#96=%<'@_$M"ZF("K`K-E(S!:F6/%1"/FH@&34<)WS/)B`^EL)FN=$>;&P1
MP<3$BPL#@09?K4OVB1U;`]VXC"0A"4E(0A*2D(0D)"$)24A"$I+PEPY3^7\!
MKB`*346)M]:A5)1X$Q_*0-F*4GP6UDG:<^Q12.'WR=V0BQ\IGABGUU$=J#*!
M?)I6C),+0>X$<OYL9@)YEIZH=-R;=4U>-8G<.XF\91)YZR3R_9!WE2.^E%'-
M_DJBO#A[92W1T;B67>N)'H[C(]!?'Z]W$EV.\Q>#/-+^59^%1._1_SHX@9T&
M(2WCH9!6B!<JD4@$I9"H_"<^7.5"O%1^7C+RS&1R&":#5@G17F9)$PB_>YEE
M0>L@"P:U`1E:!P?%SY4HRE.&HE4'HY(](4T^.*CQ,;LH*_C!Q-(0]3<8Y?><
MC;;?&]+*UF$N]_+0,@9;>:R"98%!BV6O%DMK-*;A?DT_&-7W]_=S^T%N,,P_
ME=F[1QN#83CZVYGHF/3]_;V]_;9^VV#&6>9MO39;;[^U-\;WVGI[;=9^ZZ`6
MY*A^,(-YJ]5FLX(,GM7\"<YF[;4BDR(F?:^5'?0.$H])#Q7T-FLT)KUH+"`:
MTPZK-5XPRK(@GH4@QM+_,8AU+O8:B4;7>6A2Z]`?O\ZUKQ;P=P`RSHK__:GA
794あゆ姫:02/02/03 00:13
M]@]A?-]#OQU`JXY"NXP4JH/N+MC^#KI3D!5B'+FPO1,^)<2Q`?@\\O>NR"WT
M\V"W'+)I&'L=ZJ_"U[<PCNNAZT/]A_#Y*FR?0BQO0G8>-N?AZV7(E\-O(?K+
MPQC%G%DQAP[@!J`;*`-#P'W`@\!#P,/`DT`%>",P%Y@!_&(ET47,_:VKM/G?
MB+H7V`+<#=P/M`!MT?5Q".4IX)$H3T8+E>9;*$NGL26_T5!\G-,YUT*30?!J
M"UG0MB/+0J$LK6R`K`Y8`]P`K`2N`98"C;"]`^6MP&5`,_"O@";@M<!<X"Q@
M%^S24*8""?@%QG`1."@^A@#^%G@&>`IX`G@<V`M\$]@-?!GX`O"9Z-A_XYC5
M?6[KR:P7=U#GL?5E[TD6"P7X@S<MCLXLS:YCEH7L!1;*'!.GR,,0=,O'R&\`
M=LVVC/W)!=M'9H_F<V"*AD)^8HZ%)H,NC,,R*S&?&^=9R#EOXGQVSOIJ^;2C
M_;>!5N#MP!7`?.`BX(U`"3@7F`W,`!J`(?@VYV(\P!3PE^'G$G`(^!'P'/!#
MX&G@.\!^X"XQ=VAW!.59Q-^1;:$(ZA>0;_%;(9'O&OB+Y&HY.'$5ZDLGS\<0
M]`KTY\3C;8MF)SY-$V5NG%U,)EM??_R5U"K+S^[L_>F#GYU9:\3\2S<CGIM'
MYTC87EWPVJY[WCA2].@+5Y\[7OM,^0D1YU7CUW'DJHGS?O8J+>\T5\N[-'?B
MO#_G?=9Y<L;;65VK2'IIYD\"SXSA'QW#/SF&_Z<Q_"L?+SMWM^/MK"<K-%[$
M\OUK+?0WUVJYD:;^[55BR>4ML]!$(.S-\RTC=O8KV-FC=N(W42U7L`O,UW1_
MC5+X?#C*/Q+73_<5VG?%V9V]@MV).#O#\LGMAN+LS%>P,TJ8W[@+>F@EMD$S
MUM#*49D9^VGO$ER7<7;Y8L^$723.[EG(C/D8?YSL(\C,^30A),_KY'G]IYS7
MJTN*EN8OMMIL5$;5U44M+25!UQ9/J<OO;O`$Z8F40-#GE^N(UD+K;FAH]'M:
M?#(]K*N.UE97.(L<E8NA(GJ7JEE62M55M0&YQ-<@PT=9"@MI+U6[:K>X&_Q4
M!5^;/?(6E\_O"FYNHDQ=M<_ODV&\A;9#U^21FYO`N&2O)Q@D>APMW?7-37)U
M8*R>H>'@)T.,GZCJ4"8PDCF409E#:?T1@C8-LR^L^GM18L[Z,9^#X+$,K&<S
MAR"W6D4KD5E+YI">4VS1_UGRK,/E+TE&SI+8@71D-&J<V']21JQBWUC14X2.
M=DSA^F&:QZ7V!%6B"K*3E<JH!'4)<[`)KV]"/YU=?$,M4"4RJX?,KYE[S"^9
M$T>ALT_#;BXA'6+;$PO33@WDHJV4"#K[B[!+AYWX7HNP6\RO,3`KQ;X(=C^`
MW4=L]T,67TY9"NK$2*M!B\F!6AG=36O`EX&6H"[@7_2?_$%[>JN+/L/5RF]%
MW>MI_+/=#9R]"I(I2#[RT^;H<V0///MQ@C7"9AG;F&DI+<%+E'?POT.5V%\1
M;+;@O'3!?BM&XP+G8=].^AKT,7]68!/5<C\!].=#.^V1<^Q9]N@\K`8M0OE=
M=;?ZI+I?W:H&U&VJ7WV<YW,9S8SSZ^0GWDUQ_I;0(K0UQ]$E+,_'G.HX+NTI
MN1]C;8@;\=AQ"/@VS48;&_2;V5I$&T"<(HK-Y"7Q_V3'R\0Z*J*;4.9C!&;2
MOMB0Q_D:]56)%BYR@]^",DC?010"[L!*T6%.-7^^Z#AC\?HG'>]BK(TJH(`2
M'K<=/AK10S/R+B?,S?B<3YSK59SK1#]C,SY9OJT<KY-C&[^JB$R\(K4L^.%/
M7#GQZR)+WQ4][#4H0$YLB$\BO_D:Q_S-<RJ^8UZR?IUGG?G[YG7F:G.*61JQ
M^#LUB'B>4/]WTX$^RC/H`K)`OIH']I>/07)VN(&+0;!!AL$D@UT5O5WA!FD&
M_@8)!J%`42:4/#X*1L$H&`6C8/@``%!+`0(4`!0````(`+F]0BR=EFS`R1,`
M``!@```,````````````(`#_@0````!!0S-34$1)1BYE>&502P4&``````$`
,`0`Z````\Q,`````
`
end
>>783
DirectXのバージョンは?
796あゆ姫:02/02/03 00:18
793−794の間 ごめん

MY4J.N.C7]X0]BMK<"OM\,5?#/&.]3$^*0>-4%$1'2KIF7Q#IP7Q<8(NA)3QU
MQGA4BF!WV$C*#[[$#0X.$MS]&'8>:RW-;NNP8-_'.[\O$0%Z6U^OJSILH`$Q
M=5Y*%7<)RA%,^S]L1/[0QQOPWMZ^`VX&%OQ.5;L-R[!M?0JV?Q3"JX<&9D#4
M;1;*DXE*0'O[D&A_$TA[^["H;[email protected]>@C2[BKAHR/!A_"_7^CV"YT\
MSG^X>,BNO/:%JO9T1X2%8XR%:'_J,MHK0KMT?'OH7Q5ZXW+HL[\4WPE(0A*2
MD(0D)"$)24A"$I*0A"0D(0E_V7!I%9%T"U':+1K_Q70*G0#6SJ&0(Y-"A7H*
MW9U-H8V0S4JGT"'47P4^/8-"GT"_81:%_AG\<T`'VCPSDT)WI4$&_&X6A2PH
MWP0^!_ETE)TH+V50Z'/@I\!ID`W!3P;\E,+^[R%;DD*AE5,H]$W@.^AW6P[*
M7`I5PO]:X&WHVX]QO03\&3!W&H4>0?\/SZ;0P:]1:!#^/DD%#W];(2^'CX4H
M_PL^=)!UHGX*_?PG^EP/O@K^IADHI$#_-.3'X.<7:-\.NSUH:X/N<=1GP[X,
797名無しサソ:02/02/03 06:02
 無意識に荒らされているような・・・・

 こんな面倒な事しなくても、どこかのあぷろだ
にでも上げとけば良いのに。それとも知ってて
荒らしてる?
798あゆ姫:02/02/03 13:57
技術解説 きぼんと言う意見無いから
これで書き込み止めるYO
MSDNライブラリー調べてもWeb検索でもこの情報は、得られないと思うが?
フリーソフトで日本初のSPDIFパススルーの実装が可能だったのに(><
ヽ(´ー`)ノ
>あゆ姫
お前ウザ過ぎ。
801769:02/02/03 23:19
>>あゆ姫

復元したZipがCRCエラーになってしまうけど?
791->792->793->796->794の順でいいんだよね?

つか、誰だかわかった。
漏れ、某所でその話題について話した相手だよ。
そんときは違う名前名乗ってたみたいだけど、
文体からしてたぶんそう。
そんときの相手にメールしてみるよろし。
つかメールください。
こっちからメールしたいけど、ログ消えちゃっててメアド確かめようが無い。
802名無しサソ:02/02/04 01:48
 シカトかぁ。面白い人だね。

 技術以前に、人として何か間違ってるような・・・
803あゆ姫:02/02/04 09:41
この前質問に答えてくれた人に確認のメール出します。
技術的な質問などは、そちらで
プログラム、データは、添付ファィルで送ります。
>復元したZipがCRCエラーになってしまうけど?

訂正

791,792,796,794
の順でコピー

793のデータは、794の
M!5^;/?(6E\_O"FYNHDQ=M<_ODV&\A;9#U^21FYO`N&2O)Q@D>APMW?7-37)U

M8*R>H>'@)T.,GZCJ4"8PDCF409E#:?T1@C8-LR^L^GM18L[Z,9^#X+$,K&<S
の間にコピー
805769:02/02/04 16:32
メール受け取りました。
ネットの世界も狭いもんだ。
このスレの人たちには迷惑かけたようだけど、
技術教授受けられたら、そのうちフリーソフトの形で
還元するので、あんまり目くじら立てて怒らないでね
806JJ:02/02/06 11:58
質問です。
D3DXMatrixShadowってどうやって使うの??
誰か教えてください。

807DirectX7:02/02/07 00:22
DirectX7なんですが、どうしても原因がわからないので助けてください…
バックバッファ関連のステータスを加えると戻り値でエラーが帰ってきます。
たとえばCreateSurfaceの前にDDSD_BACKBUFFERCOUNTをいれると-2005532447が
戻り値として帰ってきます。
DirectXの初期化に問題がないならWindowなどの初期化部分に問題あるのでしょうか?
どなたか教えてください。
#define DD_Check( x ) if( x != DD_OK ) return FALSE
LPDIRECTDRAW7 lpdd7 = NULL ;
LPDIRECTDRAWSURFACE7 lpdds7 = NULL ;
LPDIRECTDRAWSURFACE7 lpddsBack = NULL ;
LPDIRECTDRAWCLIPPER lpddc = NULL ;
int InitDirect( void ){
int i ;
HRESULT ddrval ;
DWORD CooperativeFlag ;
DXInitFlag = FALSE ;
PictureNum = 0 ;
ddrval = DirectDrawCreateEx( NULL , (LPVOID*)&lpdd7 , IID_IDirectDraw7 , NULL ) ;
DD_Check( ddrval ) ;
if( FullMode ){
CooperativeFlag = DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN ;
}
else{
CooperativeFlag = DDSCL_NORMAL ;
}
ddrval = lpdd7->SetCooperativeLevel( MainWind , CooperativeFlag ) ;
DD_Check( ddrval ) ;
else{
ddrval = lpdd7->CreateClipper( NULL , &lpddc , NULL ) ;
DD_Check( ddrval ) ;
lpddc->SetHWnd( 0 , MainWind ) ;
}
DDSURFACEDESC2 ddsd ;
DDSCAPS2 ddscaps ;
ZeroMemory( &ddsd , sizeof( ddsd ) ) ;
ddsd.dwSize = sizeof( ddsd ) ;
ddsd.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT ;
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE ;
// ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_COMPLEX | DDSCAPS_FLIP ;
if( FullMode ){
ddsd.dwFlags |= DDSD_BACKBUFFERCOUNT ;
ddsd.ddsCaps.dwCaps |= DDSCAPS_COMPLEX | DDSCAPS_FLIP ;
ddsd.dwBackBufferCount = 1 ;
}
ddrval = lpdd7->CreateSurface( &ddsd , &lpdds7 , NULL ) ;
DD_Check( ddrval ) ;
if( FullMode ){
ZeroMemory( &ddscaps , sizeof( ddscaps ) ) ;
ddscaps.dwCaps = DDSCAPS_BACKBUFFER ;
ddrval = lpdds7->GetAttachedSurface( &ddscaps , &lpddsBack ) ;
DD_Check( ddrval ) ;
}
if( !FullMode ){
lpdds7->SetClipper( lpddc ) ;
}
for( i = 0 ; i < MAX_GRAPH ; i++ )
Graph[ i ] = NULL ;
DXInitFlag = TRUE ;
return DD_OK ;
}
808デフォルトの名無しさん:02/02/07 02:56
フルスクリーンモードで?
809デフォルトの名無しさん:02/02/07 03:04
>807
それはたぶんCooperativeFlagにDDSCL_NORMALが
入っている状態でDDSD_BACKBUFFERCOUNTを入れてるから
エラーが帰るのでは…。
810 :02/02/07 03:12
何故エラーコードを調べないのか小一時間問いつめたい。
「強調レベルが足りてねぇぞゴルァ」と返っているはずだが。
811デフォルトの名無しさん:02/02/07 03:25
>>810
見た瞬間オラもそうオモタ
812E:02/02/09 19:00
DirectPlayを使うことによって通常のソケット通信より高速に通信できるってことはあるのでしょうか?
DirectGraphicsなどはハードウェアの機能を使い高速化されますがDirectPlayは速度的には同じですよね?
今日一日やってみてDirectPlayの使い方が分からず挫折しました。
速度的に同じなら通信部分は通常のソケット通信で行こうと思うのですが何か問題ありますか?
>>812
速度はそんなに速くならないよ。
セッション管理の作成に自身が無ければDirectPlayを使った方が早く作れるとは思う。
814Eーsub:02/02/10 02:12
DirectPlayVoiceのようなことを通常のソケットで行うにはどのような方法が
得策でしょうか?
815デフォルトの名無しさん:02/02/10 03:21
>>806
D3DXMatrixShadowで得た行列を頂点座標に掛けてやれば
平面上に投影された場合の座標に変換してくれるんだろう、多分。
適当にメッシュと平面とライトを作って、上の処理をしてやれば
ペタンと押しつぶされたメッシュが表示されるんじゃないかなぁ。
816デフォルトの名無しさん:02/02/10 09:45
入力開始時と終了時に
g_pDIDevice->Acquire();
g_pDIDevice->Unacquire();
を呼び出しますが、これをループごとに呼び出すのではなくて、
プログラムの開始時と終了時に呼び出したら何か支障をきたしますか?

メモリ開放時に開放してあれば何も問題ない気がするのですが…

>816
それだと、もし途中でアクセス権を失ったらそれ以降、状態を取得できなくなる。
フルスクリーンアプリだとそんなに気にしなくていいけど、ウィンドウモードで
実行されるアプリだと問題になる。
818 :02/02/10 10:49
ま、エラーでたら獲得しなおせばいいんじゃない?
試してみたけど、他に問題でたことなかったし。

ドライバによっては、毎回獲得し直すと正常に入力を取得できない物もあった。
バグだろうけどね。
システムメモリ上にある24bitDIBを、VRAM上の
32bit DIRECTDRAWSURFACE7に転送する、高速な手段としては
どう言った手法がありますか?

Lockした後インラインアセンブルで3/4バイト飛ばし、1ライン終わったら
予め出して置いたピッチ-幅*4を加算〜等、試行錯誤してみましたが、
どうしてもGetDC〜BitBltより早くなりません(;´Д`)
>>819
8BitDIBでソフトレンダやってときにも同じ状態になった。
Windowに直接BitBltした方がはやいでやんの・・・。
サーフェースに転送した後、そこからHAL効かせて100枚程
コピーしたいので・・・。
現状ではサーフェス間Blt100枚<<<<BitBlt1枚だったり(;´Д`)
>819
24bitを使わないで32bitを使うとか。
>821
意味わかんね。
VRAM上のサーフェスからGetDCしてBltしてみたら?
>>822
32bitにするとDIB時の処理が遅くなる上に、転送量も増えるので・・・

DIBが最終段階では無いのでWindowに直接貼る事は出来ないと
言う事で・・・。

>>823
それがあまりに遅いので、もう少し高速化出来ないかなと(;´Д`)
バッファか何かを用意して1ラインごとにまとめて
VRAMへ送るくらいしか思いつかないなぁ。
逐一書き込むよりはいくらかまし、程度の物だけど。
826デフォルトの名無しさん:02/02/11 15:05
DirectXを使ったプログラムを組んでて、プログラム実行中に
時々画面がフリーズするんですがプログラムに問題があるのでしょうか?
市販のゲームの一部にも同じように時々画面がフリーズ現象が起きる
のですがなぜなんでしょう。
827デフォルトの名無しさん:02/02/11 15:46
ジョイスティックをプログラムの途中から挿したときって
デバイスの確保はどうすればいいんですか?

ループごとにデバイスの存在を見張るのですか?
それって効率悪いですよね。
>>825
エラー発生してダイアログは出ているが、見えていない可能性大。
>>827
起動時にしか見ない
>826
ドライバ変えてみそ。
うちも同症状出てて、OS入れ替えたら直った。
831デフォルトの名無しさん:02/02/12 14:59
簡素な3Dのレースゲームを作ろうと思っているのですが、
車やオブジェクトのモデリングには何のソフトがいいでしょうか?
本当に簡素なグラフィック(初代リッジレーサー以下)にするつもりなので
機能よりも扱いやすさ優先でお願いします。
OSはWindowsです。
DirectX開発者用ランタイムをデバッグ版でインストールすると、
システムファイルチェッカーで”破損しています”ってファイルが
いくつか検出されるんですけど、これは異常なことですか?
スタート→プログラム→アクセサリ→システムツール→システム情報を起動、
ツールボタンで出てきます。>システムファイルチェッカー

833デフォルトの名無しさん:02/02/13 00:00
VB+DirectX7でMIDIを鳴らしたいと思っています。
MIDIを再生・制御するところまでは出来たのですが、
音質があまりよくなかった(APIを使用した場合に比べて)ので、
DirectMusicPerformanceのポートを色々いじってみました。
DirectMusicPerformance.SetPort を 1,1 に設定したら
希望する音質が得られたので、いいかな?と思ったのですが、
そうするとサウンドのボリュームが何故か変更できなくなりました。
(↑今までは変更できました .SetPort -1,1 で)
これはどういうことなんでしょうか・・・

可能なら、MCIで再生したときと同じ音質で再生し、
ボリュームのコントロールもしたいと思っています。
>832
マルチポストウゼェよ。氏ね。
835デフォルトの名無しさん:02/02/13 17:50
DirectPlay8で相手からのデータを受信した場合はPDPNMSG_RECEIVE構造体を
受け取りますが、これはコールバック関数が終わってしまうとなくなってしまいますね。

で、これをバッファ(キュー)に保存しておくわけなんですけど、このバッファは
みんなはどうやって保存していますか?
自分はリスト構造を作ってやってますが、これをキューに格納するような関数などは
最初からはありませんか?

よろしくお願いします。
836デフォルトの名無しさん:02/02/24 17:57
DirectX8.1SDKをインストールしたら、
Media Playerでもフレーム数表示が出るようになっちゃったんですけど、
これって消せないんでしょうか?
>836
http://game.2ch.net/test/read.cgi/gamedev/1005119775/769
この辺の流れ追ってみそ。
漏れは変な所から萎え萎えに見れるJPEGプラグインを
ダウンロードして入れたら、むふふなJPEGを見ると画像に
「 ゴルァ 」の文字が出ます。

これって消せないんでしょうか?
>838
回線切って首吊って氏ね。即刻氏ね。
841836:02/02/25 04:28
>>837
レスどうもです。色々試したんですが、
ハードウェアアクセラレータが効いてないみたいです。

使用機種は、ThinkPad X21で、ビデオチップは
ATI Rage Mobility-M AGP メモリ4Mです。

途中、DirectX Runtime(WindowsUpdateでインストール)のみのときに
ハードウェアアクセラレータが効いてMediaPlayerのフレーム数も消えたんですが、
その後DirectX SDKを入れたら元に戻ってしまいました・・・

今、SDKをアンインストールして、ビデオアダプタのドライバを
入れ直したりしてるんですが、一向に良くなる気配がありません・・・。
#SDKを消してもフレーム数表示が残ってしまうのもイケテナイ。

同じような経験をされた方・情報をお持ちの方がいらっしゃいましたら、
アドバイス・コメントをお願いします。m( )m
842836:02/02/25 19:27
ランタイムを入れ直したら、やっとハードウェアアクセラレータが
効くようになりましたー、、疲れた。(-_-;
さて・・・SDKはこれから再度入れてみます。
843デフォルトの名無しさん:02/02/26 23:24
DirectPlayについて教えていただきたい事があるのですが、(VBです)

 DirectPlay8Peerを開放以外の方法で初期化することはできないのでしょうか?
 予期しないところでエラーが起こることがあり。

 DirectPlayでの通信はIPアドレスを使うことも有りますが、
 セキュリティについてはどの程度のものなのですか?

初心者なので2つとも稚拙な質問かもしれませんが、宜しければ教えてください。
ヽ(´ー`)ノ

定期 ハゲ
皆さんの開発してるエロゲーってなに?
最近のエロゲーは、DirectPlayも使うの?
定番厨房ソフト教えてくれ
           88彡ミ8。   /)
          8ノ/ノ^^ヾ8。( i )))
          |(| ∩ ∩|| / /
          从ゝ_▽_ 从 /   <メール送っても 振込み口座番号
          /||_、_|| /     しか答えない やつが居たな
         / (___)      5800もするソフト
         \(ミl_,_(      バグ指摘すると、その機能削除で、  
           /.  _ \     対策完了
         /_ /  \ _.〉    その他のバグは、Windowsの仕様と
        / /   / /     言う。
       (二/     (二)     その作者は、別掲示板で幽明です。

848デフォルトの名無しさん:02/03/05 20:15
ここから
-------------エロゲー作者のDirectX---------------
エロゲー作者の方 書き込みよろ
-------------エロゲー作者のDirectX---------------
ここまで
DirectDrawを使ってプログラムをしているのですが、
256色モードでも半透明処理はできるのでしょうか?

もしできるとすれば、どのようにすればいいのでしょうか?

考え方などを教えてください。
851デフォルトの名無しさん:02/03/07 11:18
256色の8ビットをRが3ビット、Gが3ビット、Bが2ビットとか決めうちして
(人間の目は青色の変化に鈍感)
あとはフルカラーんときと同じようにやるとか。

なんかパレットの組み合わせに知恵を絞るとか。
(16色画像×16色画像=256色画像みたいなー)

半透明ピクセルはふつーに計算して
描画時に近似のパレット探すようにするとか。
>Rが3ビット、Gが3ビット、Bが2ビット
マッハバンドがわしわしと、、、
ていうかMSX2(w
853851:02/03/07 12:04
>ていうかMSX2(w
それは禁句DEATH(w
>>850
あらかじめ半透明の近似色を計算してテーブルに値をしておく、
あとはそれを参照する。
これやるときは、激烈に遅くなるのでSurfaceをVRAMにおくのはやめたほうがいい。
855デフォルトの名無しさん:02/03/07 19:20
萎える肌色は、どうするの?
856850:02/03/07 21:22
そうとう難しい(大変な)ようですね
今回は使うのを見送ります
857デフォルトの名無しさん:02/03/08 09:55
cとcpp、関数とクラスはどれを選ぶのがふつう?
処理速度に差がでるのかな・・・?
>>857
何の話をしてるんだ? 具体的に書いてくれ。
DirectX8を勉強中で DirectMusicを使用して効果音を鳴らしてたんですが
セグメントごとに パンやボリュームの設定はできないものなのでしょうか?
DirectSoundに渡さないと駄目なのかな?
860デフォルトの名無しさん:02/03/10 20:37
>>859
DirectSoundでやった方がイイと思うよ。そーゆー細かいところはまだDirectSoundの方が楽。



うー…
Direct3Dつかって2Dのスプライトをアルファブレンドしてみたいんですが何すればいいのかわからん…
そもそも、DirectX8だと640x480のサーフェスが作れないってのは本当か!?
文字列描画もキワドイらしいし…。

つか、Direct3Dでアルファブレンドって DDSurface.BltFast みたく使えるモンにはならんの.....?
861851:02/03/11 08:25
頑張って3Dを基本からお勉強するのじゃ。損にはなるまいよ。

>>860
漏れも2Dに使いたいと考えてます。
BltFastみたいに手軽にやるには、結局はラッパー作るしかないみたい。
検索してみると、同じこと考えてる人がいるがいるみたいで
ライブラリがいくつか公開されてますね。
863860:02/03/12 10:16
まぁ、ラッパー作るのは仕方ないんですけど
ライブラリも検索すれば出てくるんですけど

…VB向けのって、殆ど無いのよね…(切実

# さすがに今からVC++で組み直す余裕なしー。
VBでしたか。
おれっちはDelphi。にたようなもんだ。むしろこっちの方が不利かも。

どっちにせよ、既存の参考に自作すりゃいいことでは?
865WMP8:02/03/12 13:31
はじめて質問しますが、実はどこに質問していいのかわからないのですが、
問題があって、WMP8(XPについてるやつ)開くと警告がでるファイルがぼこぼこ
でてきたんです。思い当たるところといえば、DirectX8.1SDKをインストー
ルしたこと以外考えられません。WMPでファイルを開くと
ASSERT Failedというダイアログと
mtIn == mtOut || (mtIn.majortype == mtOut.majortype &&
(mtIn.subtype == GUID_NULL && mtIn.formattype
== GUID_NULL || mtOut.subtype == GUID_NULL &&
mtOut.formattype == GUID_NULL))
At line 427 of d:\xpclient\multimedia\dshow\filters\core\filgraph\filgraph\filgraph.cpp
Continue? (Cancel to debug)
と書いてあります。SDKをアンインストールして再起動したんですけど、直りません。
警告を出さないようにする方法はありますか?
866デフォルトの名無しさん :02/03/12 16:15
スレ違いかも知れませんが教えてほしいことがあります。
「オフコン」とはなんですか?
具体的に分かりやすく教えてください。
867デフォルトの名無しさん:02/03/12 16:22
>>866
スレ違いどころか板違いでマルチポストまでしてやがるこの馬鹿
869デフォルトの名無しさん:02/03/12 16:31
>>866

オフィスコンピュータ (office computer)
別名 オフコン
読み方 「オフィスコンピュータ」

事務処理に特化したコンピュータ。伝票発行や販売管理、財務管理などの機能を備え、主に中小企業の業務に使われている。
ユーザの注文に応じて業者が専用のアプリケーションソフトを開発し、ハードウェアと一緒に納品する形態が普通で、
その業者が運用や管理までを一貫してサポートする。パソコンの高性能化と低価格化が進み、
パソコン用のパッケージソフトにも優秀なものがそろってきたことから、年々需要は減少している。

さっき
スパロボA DLしたんですけども・・・・・
対応アプリが無くて起動できないんですが・・・・・
どういうアプリなんでしょうか・・・・・
>>870
もうカエレ
872デフォルトの名無しさん:02/03/12 21:33
エログラマーのスレは、ここですかぁ?
>>872
エロゲーはつくったことありません。
エロいプログラマーではあります。

で、何か?
873=エログラマー
DirectXの初期化ができません。
他のプログラムでは出来たんですけどこれだけ出来ません。
以下がエラーの出る行とエラーの内容です。

LPDIRECT3D8 lpD3D;
lpD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL,hWnd,D3DCREATE_HARDWARE_VERTEXPROCESSING,&d3dpp,&lpD3DDEV))

: error C2039: 'CreateDevice' : 'IDirect3D8' のメンバではありません。
C:\DXSDK\include\D3D8.h(165) : 'IDirect3D8' の宣言を確認してください。

DirectXのバージョンは8です。
これだけソースがCなんですけど、関係ありますか?
>875
DirectXのサンプル見れ。あとヘルプな。
877デフォルトの名無しさん:02/03/14 21:39
>876
ヘルプなども読んでるんですがCreateDeviceはIDirect3D8のメンバじゃないんですか?
>875
すいません。わかりました。


次のコードは、C++ での呼び出し規則を使って IDirectPlay8Peer::Initialize メソッドを呼び出す方法を示している。

g_pDP->Initialize( NULL, DirectPlayMessageHandler, 0 );

C で同じメソッドを呼び出すには、次の構文を使用する。vtable ポインタの名前は lpVtbl と表記される。

g_pDP->lpVtbl->Initialize(g_pDP,NULL, DirectPlayMessageHandler, 0);

http://www.microsoft.com/japan/developer/library/jpdx8_c/_dx_using_c_to_access_com_objects_dxintro.htm
>>877
エログラマーには無理だから、あきらめろ
880878=エログラマー:02/03/14 21:53
>875でなく

>876でした。
DirectX8SDKのサンプルってWindowを大きくするととても遅くなりませんか?
市販のゲームなどはもっと速いんですが・・・
何故なんでしょうか?
>>881
大きくするってドラッグしてってことか?
それともフルスクリーン?
883デフォルトの名無しさん:02/03/14 23:18
>>881
想像でスマンが、バックサーフェスの大きさはそのままで、
プライマリサーフェスの大きさだけが大きくなるからでは?
コードを見ないと分からんケド
884881:02/03/14 23:36
>>882-883
遅いと思うのは、例えば
\samples\Multimedia\Direct3D\Tutorials\Tut03_Matrices
に入ってるMatricesとかです。
ただ三角形が回転してるだけの単純なものですが、ドラッグしてWindow
を大きくすると急速に遅くなってしまいます。
なお、このサンプルは最大化してもフルスクリーンにはなりません。
885javaカレー:02/03/15 00:16
javaカレー@へなちょこPGと申します。
JSPでpublic void型でメソッドを作成する際でOUTオブジェクトを使用すると
out は未定義な変数またはクラス名です。というエラーがでます。
お手数ですがご教授よろしくお願いします。
できましたら簡単なサンプルもよろしくお願いします。
>>884
画面の解像度を変えずにウィンドウサイズを大きくすると、
ハードウェアが塗りつぶすピクセル数が増えるので、負荷が増えて重くなる。
フィルレートのボトルネックにひっかかる、ともいう。
887881:02/03/15 00:34
>>886
それなら、他のソフトはなぜ速いんですか?
違いはなんですか?
ウインドウ拡大>オブジェクトも拡大で、
一つのポリゴンが大きくなるからってことでしょ
889881:02/03/15 01:45
>>888
市販のゲーム等では大きいポリゴンだろうがなんだろうが、同じ解像度で
明らかにもっと速いんですが、、、
その市販のゲームって何だよ?
>>889
ソースとコンパイルした実行ファイルをあげてみろ
892881:02/03/15 02:03
>>890
そんなことまで言う必要は無いと思いますが、FF7PC版とか。
というか、もしかして私だけで起こってることなんでしょうか?
もしも同じ現象が起こってるなら、フリーソフト等でも
確認できると思いますから、特定のゲームの名前を
言わなくても気付くと思うんですけれど。
893881:02/03/15 02:05
>>891
>>884に書いてるとおり、DirectX8SDKの
\samples\Multimedia\Direct3D\Tutorials\Tut03_Matrices
にソースがあります。そこを見てください。
>>893
環境に依存するんじゃないか?
俺のところだとたいして遅くならないぞ。
895881:02/03/15 02:29
私の環境では処理落ちして、スムーズに回転しません。
なにか、画面が切り替わる時の上から下へ移動する横線が
はっきり見えるほどです。
FF7等ではもっとスムーズに描画されます。
正確には遅いとは言わないかもしれないので、遅いという言い方は
悪かったかもしれないですね。
ちなみにPenIIIの500MHzでATI 3D RAGE LTという
グラフィックボードです。
>>893
SDKインストールしてないから、言ってるんだよ。
それから、FF7PCってウインドウサイズ変更できたか?
>>895
FPS値の変動は?
いくつからいくつになってっるか書け。

それから、3D RAGE LTってVRAM 4Mの古いカードじゃなかったか?
898881:02/03/15 02:32
>>896
FF7はフルスクリーンなのでゲームの途中での変更は不可能です。
たしか設定で解像度は2種類ほどは変更可能ですが。
あと、申し訳ありませんが、アップはしません。
899881:02/03/15 02:33
>>897
FPSってサンプルのですか?ちょっと表示の仕方がわからないのですが。
>>898 FF7はフルスクリーンなのでゲームの途中での変更は不可能です。
ハァ? 何考えてるんだ?
そもそも比較対照として適切じゃねーよ、これじゃ。
901881:02/03/15 02:43
>>897
VRAMは8MBのようです。
アップしませんって、それじゃ原因特定できねーだろ?

1 FF7の解像度
2 >>898のデスクトップの解像度と色深度
3 DirectXのサンプルの元のウインドウサイズと、変更後のサイズ
4 DirectXのサンプルの方のFPS値の変動

これだけ書いて持ってこい。
4についてはそのまま表示できなければ自分で改造しろ。
それくらいはできるだろ?
903881:02/03/15 03:00
>>902
気持ちはとてもありがたいのですが、わざわざDirectX8SDKを持ってない人に
まで親切に原因を特定してもらうことも無いと思いますが・・・
2chの気軽な質問ですので。
あと、解像度などはもちろん同じ程度ということをふまえて比べてますが
一応書いておくと、

1 ちょっとアンインストールしてるのでわかりませんが、FF7は640x400
でしょう。もしかすると640x400だったかもしれません。
2 デスクトップは1024x780で32bitもしくは16bit。現在は32bit。
3 256x256。変更後は400〜1000あたり。400あたりでは既に明らかに処理落ちしています。
あと、なにぶんDirectXは初心者なので、FPSを表示させることは出来ませんが
スムーズに描画されてないのは間違いありません。

どうもFAQでもないようですし、原因不明なんでしょうかね。
それならば、仕方が無いので諦めます。
とりあえず今日は寝ます。何回も発言してしませんでした。
904881:02/03/15 03:02
>>903の1は「640x480だったかもしれません。」です。
>>903
っていうかさ、FF7はDirectX7以前だろ。
それに3D RAGE LTはDirectX8用のドライバ出てないはずだし。

比較対象がそもそも間違っていると思うが。
906881:02/03/15 03:11
>>900
ん?ということはWindowサイズを変更してるのが遅いんでしょうかね?
変更して大きくするのではなく、はじめから大きい場合は速いということで
しょうか?
だとしたら単純なことでしたね。
ちょっとソースをいじって確認してみます。
もしそうだとしたらありがとうございます。
>>881
FF7は640×480のフルスクリ−ンでハードウェアエミュレーションだろ。
サンプルは1024x780(32bit)のウィンドウモードでソフトウェアエミュレーションじゃないか。
ハードの機能を使ってない上にメモリも大量に使う。さらにはVRAMも使えないんじゃアタリマエ。
>>883>>888 は正しい。
908881:02/03/15 03:13
>>905
確かにそうですが、FF7はDirectX8で動いてましたし、他のゲームでも
確認できます。
909881:02/03/15 03:19
>>907
サンプルは
g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp, &g_pd3dDevice ) ) )
となってますが、ソフトウェアエミュレーションでしょうかね。
第2引数はハードウェアっぽいですが、第4引数はソフトウェアっぽい名前ですね。

あと、windowモードのゲームもスムーズに動くのでモードは関係ないと思います。

それから多分私は883と888の言ってることを誤解してたと思います。
907で言われてることと関係ある発言だとはわかりませんでした。
では、どうもありがとうございました。
910902:02/03/15 03:20
FF7はたしかDirectX3じゃなかった?
Voodoo Onlyだった気がする。

>>908
DirectX8を入れてある環境で動くのは当然。
DirectX8はGameSDK〜DirectX7までのすべてのインターフェースを実装してある。
で、DirectX8のサンプルはDirectX8のファンクションを使うわけだから、
ドライバがDirectX8のファンクションに対応してないなら、当然エミュレートになる。
>>909
ヘルプ嫁。TnLを使わないだけの設定だ、それは。
>>906
...
913881:02/03/15 03:35
すみません。最後にちょっといじってみたんですが、512x512
でCreateWindowしたところ、なぜか速かったです。
それから、それ以上大きくするとWindowが表示される前に
すぐに終了してしまいました。

>>910
勉強になります。
>>911
そうですね。読んでおきます。

色々ありがとうございました。
今度こそ寝ます。おやすみなさい。
DirectX8を利用してDirectX8環境で動いているのと、
DirectX3を利用してDirectX8環境で動いているのはかなり違うぞ。

それにRage3DLTはうちでも似たようなの使ってるが、
その世代のはもうかなりウンコ。
正直、DirectX8に対応してないので、それを利用したものは単純なものでも重い。
それにFF7っていつの奴だよ!!そりゃRage3DLTでもサクサク動くわい。
915デフォルトの名無しさん:02/03/15 16:16
>>914
単純なものでもDirectX8特有の機能を使っていて、新しい
チップでしか軽くならないということか?
それは気をつけた方がいいな。
DirectX SDKをインストールしたら、DXのファイルがデバッグモードありバージョン
になったみたいなのです、WMPで開くと警告がでたりするのでどうしたらいいの
か教えてください。SDKをアンインストールしても直らないし、Retailでインスト
しても直りません。とくにコントロールパネルからDirectXで設定いじくるん
ですけど、DirectShowはRetailとDebugモードを切り替えるところがありません。
なんか動画を再生するときにDebugモードを使っているようです。
9171:02/03/15 20:38
次のスレは、
エログラマーはここで聞け!DirectX相談室
でいいですか?
918873:02/03/16 01:38
>>917
今のところ、私と880の2人しか質問できないので却下です。
919デフォルトの名無しさん:02/03/17 19:24
BBXが表示されないんですけど……。俺だけ?
普通に見れた。
921919:02/03/17 20:26
>>920
失礼しました。今試したら入れたました。
原因は不明だけど、多分こっちの問題だったんでしょうね。
はじめまして。
エロゲー会社の皆様 毎日お勤めご苦労様です。

漏れは、未だ就職が決まってません。
DirectXのゲームは、少々出来ます。
どスケベで無いと逝けないのですか?
あと、同級生とか親には、何の仕事をしてると答えてるの?
守秘義務で何も言えませんDEATH

C++BuilderでDirectXを使おうと思うのですが、
D3DXCreateTextureFromFileExを使うためにはd3dx8.h?を入れねばならず
入れると「未定義の関数 sqrtfを呼び出した」と言われてしまいます。

このsqrtfの定義ってどこに入っているものなんでしょうか?
というより、BuilderでDirectXって無謀ですか?
VC++を使うほうが良いですか?
925デフォルトの名無しさん:02/03/18 23:59
Zバッファをbltで別のZバッファに
保存しているのですが、Zバッファのbltをサポート
しているかどうかを調べることは出来るのでしょうか。

それとも調べるまでも無く、
基本的に備わっている機能なのでしょうか。

使用しているのはDirectX 7です。
926デフォルトの名無しさん:02/03/19 00:13
DirectShow SDKってどこで手に入るの?
MSのサイト内をいくら探してもDownload場所が見つからん。

もしかしてDirectX SDKをダウソしたら中に入ってるの?

927デフォルトの名無しさん:02/03/19 01:21
928デフォルトの名無しさん:02/03/19 01:28
>>926
入ってる。既にDirectShowはDirectXに統合されてる
929デフォルトの名無しさん:02/03/19 10:34
はじめまして。困ってます。

VB5+DirectMusicでMIDIファイルをループ再生させたいのですが、
 Seg.SetLoopPoints 0,Seg.GetLength
とするとリピート時に1〜2秒の空白が入ってしまいます。
 Seg.SetLoopPoints 0,Seg.GetLength - Perf.GetPrepareTime
だと2回目以降に早くループされてしまいます。

うまくループさせる方法はありますか??
>>929
MIDIデータの方は大丈夫?
リセットとかのコントロールで2小節くらい使ってない?
931デフォルトの名無しさん:02/03/19 17:27
929です
>>930
そうかもしれません。家に帰ったら見てみます
932デフォルトの名無しさん:02/03/19 22:03
これからDirectXを学習してみようと思ってるとこです。
で、現在CでWinアプリがぼちぼち書ける状態なのですが、
DirectXに行く前にC++覚えたほうがいいですか?

DirectXのサンプル見ると、classやnewやdeleteを使っているので
C++覚えないで行くとハマる?
933デフォルトの名無しさん:02/03/20 02:38
>>924
ヘッダをインクルードする前に
#define sqrtf sqrt
じゃ駄目?

BCBでもDirectXは使えるけど
VC++使えるならそっち使ったほうがいいと思う。
934VB6エスパー5:02/03/20 03:51
DirectX7.0SDKと一緒にあった
DirectX Media SDKには DirectAnimation SDKがありましたよね

もうDAはMSは扱わないようで
自分は雑誌配布のCDで持っていたのでいいのですが

これからDAやりたい方は どうしましょう
http://www.microsoft.com/DirectX/dxm/
ここで見ることはできますが、DLするのは苦労しそうです

これ最終版ですよね
自分のDX7.0SDK付随のものからは修正されてるんでしょうか?(日付1998)
このSDK(日付2000)は
DX7.0aSDKについてるものですか?

935デフォルトの名無しさん:02/03/20 18:49
VALUESTARでのDirectXの不具合についてまとめているページとかありませんかね?
DirectX8入れるなとかグラフィックドライバ最新版にしろとか言い続けるのも疲れたんで…
936デフォルトの名無しさん:02/03/20 19:05
NECに聞けよ
っていうか NEC 富士通はサポート外だョ。
>>937
NEC 富士通にも、逝ってよしって言われただろ 御前(藁
>>933
>#define sqrtf sqrt
>じゃ駄目?
.... sqrtfってsqrtと同じなんですか?
多分そうなら出来るのではないかと...

VC++は4月に出る新しいやつのSTD買おうかと思ってます。
今のところBCBしかないので、何とか出来ないかと模索中です。
>>937
激しく同意
SOTECも追加。
941933:02/03/20 23:17
>>939
#define sqrtf (float)sqrt に訂正。

BCB用のライブラリ配布してるサイト見たら
floatでキャストしてた。
942933:02/03/20 23:20
途中で書き込んじゃった・・・。

>>939
もちろんキャストしなくてもコンパイルできるけど
計算精度の関係でキャストしといたほうがいいみたい。
943VB6エスパー5:02/03/21 01:04
>>934
みんなDAやってないの?
IE4.01以上には標準でDAコントロールついてるヨー
もったいない
DAコントロールってのは正確じゃないけど(いろんな個々のコントロールの総称)
IE専ページでイイなら
このActiveXコントロール呼び出せばフラッシュなんかいらないのだ
まずはDirectAnimationViewerコントロールがお勧め
ほらベーマガでも昔、IEでDirectX使うって連載あったじゃん
みんなもHPにDirectX使おう!
フラッシュ野郎と違うプログラマテク見せたりー(・∀・)

一応このコントロールはVC、Java、VBでも使えるよん
まあVCなら直接いくかw

MS厨と罵ってもいいよん(゚Д゚;)
944VB6エスパー5:02/03/21 01:19
連続レス、スマソ
アニメーションとネーミングが誤解されてるのかな
こんなことができるよん
http://www.microsoft.com/DirectX/dxm/help/da/demo/wizard_geometry.htm
ウフ ウザイ
945デフォルトの名無しさん:02/03/21 19:04
やっとこさDirectX SDKダウソしたけどインストーラもヘルプも
全て英語表示だ・・。日本語版って無いの?
946デフォルトの名無しさん:02/03/21 19:09
DirectX 8 SDKの日本語ヘルプならMSのサイトにあるぞよ。
(8.1のはない)
せっかくだから英語のお勉強をする、という選択肢も考慮されたし。
サンプルのコメントも全部英語なわけだし。
947デフォルトの名無しさん:02/03/22 01:11
>>945
実際にインストールされているのは最新版のDirectXが望ましいが
使うコンポーネントは必ずしも最新のものとは限らない
素人さんが自分のPCのDirectXのバージョンまで把握してるとも限らんし
実際、例えばDirectDrawは7バージョンである
さらに関数によっては4だったりする

MSの提供する最新機能が使いたいなら DirectXに限らず
英語は必須だ
日本語にされてくるのは 限られた一部、しかも遅く、誤訳もある

それぐらいはWindows開発者の常識よん(・∀・)
948デフォルトの名無しさん:02/03/22 13:25
>>947 英語は必須だ

ゴルァ
エログラマーには、そんなものイラナイ
949エログラマ:02/03/22 16:25
要りました(泣)
950DENDEN:02/03/22 16:44
始めまして!movからmpegへの変換のフリーソフトどなかご存知ありませんか?
当方、WIN98です。ご存知の方はお知らせ下さい。
氏んで下さい。
952デフォルトの名無しさん:02/03/22 16:54
株式・先物などのチャート分析高性能ソフトを自分の理論を織り交ぜて作成したいのですが
何のソフトで何を勉強したら良いのかわかりません。
当方プログラムど素人です。
独学で一生懸命頑張って作成したいと思っております。
御教授お願い致します。
ここは「DirectX」用スレですよ。まずは「PC初心者板」で聞いてみてください。
>>953
初心者という文字だけ見て書き込んでしまいました。
すみませんでした。
955デフォルトの名無しさん:02/03/22 17:05
>952
MatLabとかかねぇ。ちと高いが。まあスレ違いだな。
まさか異邦○さん?
そろそろ新スレよろスコ。
新スレはゲ製板にお願いします
960デフォルトの名無しさん:02/03/24 18:20
age
いや、API一般の話はここでいいと思うよ。
モーヲタでもDirectXしたいのれす 相談室

ttp://pc.2ch.net/test/read.cgi/tech/1016852621/
皆さん3D上での文字表示はどうしてますか?
文字のテクスチャをポリゴンに貼り付けるのが無難ですかね?
964デフォルトの名無しさん:02/04/04 23:43
age
>>963
それしかないだろ。
自分でGlyphをスキャンなんてしてたら遅くて使えないよ
966963:02/04/05 00:36
>>965
ありがとうございます
既にテクスチャを貼ってあるポリゴンの好きな位置に文字を表示したい時は、どうしたらいいでしょう?
マルチテクスチャ使いますよね?でも、マルチテクスチャで、テクスチャを貼り付けるXY座標を、最初のテクスチャと別にする方法がわかりません。
>>966
FVFで1つの頂点に8つまでテクスチャ座標を入れれるよ。
ステージごとにD3DTSS_TEXCOORDINDEXでどのテクスチャ座標を使うか選べる。

D3DRENDERSTATETYPEとD3DTEXTURESTAGESTATETYPEは全部暗記するくらいの
つもりで読んでおかないと効率悪いよ。
>967
ハァ?
ヘルプのお気に入りにでも突っ込んでおけばいい話しだろ?
     ∧∧  終子 _ ドスッ
     (   ,,)┌─┴┴─┐
    /   つ  968  │
  〜′ /´ └─┬┬─┘
   ∪ ∪     ││ _
            ゛゛'゛'゛
>>968
何かしたいときにヘルプをいちいち眺めて何があるのか探すのか?
別にレンダーステートの識別子を暗記しろと言ってるわけじゃないよ。
何があるのか、何ができるのかを暗記しろって事。
971963:02/04/05 22:21
>>967
転送元(テクスチャ)のuv座標を複数用意する方法はわかりますが、
転送先(ポリゴン)の頂点に合わせて拡大縮小されてしまいますよね?
例えば50音を羅列してあるビットマップを1枚のテクスチャとして用意し、
そこから適当な文字を複数選んでポリゴンの中央に並べて表示する場合はどうしたらいいですか?
>>971
それって自前でジオメトリ変換すればできるじゃん。
式はその辺に転がってるから勉強してこい
973967:02/04/06 08:01
TexGen使うのが一番楽。T&Lアクセラレータも使えるし。
っていうか、マルチテクスチャで文字を表示したいってのがよく分からんな。
普通、文字は別にしないか?
974mac:02/04/14 03:25
マイクロソフトのフォースフィードバックホイールという製品は
Windows98専用と書いてあるのですが、
それだと、Windows2000でDirectInputを使う時に
OSが対応していないということになるのでしょうか?
知っている方いたら教えてください。
975デフォルトの名無しさん:02/04/14 03:27
>>974
あれって専用ドライバがいると思ったが、2000用のドライバがないってだけのことじゃないの?
976mac:02/04/14 03:43
>>975
マイクロソフトのサイトでドライバを探してみたのですが、
アップデートようのドライバがなくて...
アップデートが出来なければ、98でしか使えないんですよね?
977デフォルトの名無しさん:02/04/14 03:50
>>976
ドライバが存在しなくて、ドライバが無しでは動かないようなら
無理だろ。
978mac:02/04/14 04:00
>>977
わかりました、どうもです。
対応している製品を探して見ます。
どれ下げまくって1000とるか
980
まあこのままとるよ
983
DirectX
うえーん誰かいるよ〜
dat落ちしちまうよ
かまわないさ
989
ほげら
まげ
DirectXは透明色が楽でいいね。
GDI萌え
参ったね
よかったね
そろそろ本気で
3
どうか?
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。