【C++】 DirectX初心者質問スレ Part13 【C】 at TECH
[2ch|▼Menu]
1:デフォルトの名無しさん
07/06/21 00:03:46
※回答する人も、質問する人も必ず読んでください

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

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

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


2:デフォルトの名無しさん
07/06/21 00:05:38
【関連サイト】

MSDN DirectX
URLリンク(www.microsoft.com)

DirectX Home Page
URLリンク(www.microsoft.com)

BBX (掲示板)
URLリンク(isweb8.infoseek.co.jp)

DXライブラリ置き場
URLリンク(homepage2.nifty.com)

Lamp:ゲーム開発とその学習をサポートするミドルウェア
URLリンク(lamp.sourceforge.jp)

TWINTAIL LOVERS.
URLリンク(www.twin-tail.jp)

Pastel's Laboratory
URLリンク(www.roy.hi-ho.ne.jp)

GamDevPukiWiki - DirectX総合スレ (過去ログ等)
URLリンク(gamdev.org)

GamDevPukiWiki - 3DCG製作ソフト (過去ログ等)
URLリンク(gamdev.org)

ゲームを作るための素材を集めよう まとめサイト
URLリンク(paw.my-sv.net)


3:デフォルトの名無しさん
07/06/21 00:17:23
(´・ω・)乙
これはアイスラッガーで勘違いがうんたらかんたら

4:デフォルトの名無しさん
07/06/21 05:31:33
カメラ中心の回転ができませんTwT
クォータニオンで試したりゲームプログラムWIKIなどで試してるのですがうまくいかないです
よければ皆さんの知識をお貸しください

5:デフォルトの名無しさん
07/06/21 10:33:31
D3DXCreateTextureFromFileInMemoryEx

でテクスチャを読み込んでいるんですが、たまに読み込まれないことがあります。
常に、読み込まれない、とかならわかるんですが、再現性が低いので原因がつかめません。
テクスチャのサイズが 1024x1024と少々、大きめです。
ビデオボードは nVidia 系です。同じような症状の方、いらっしゃいますか?

6:デフォルトの名無しさん
07/06/21 12:42:14
>>4
自分はクォータニオンは使ったことないが、よーするに
何らかの操作で、自分がその場でくるくる回るような回転をやりたいわけか?
だとすると、D3DXMatrixLookAtLHの引数で言うなら
カメラの位置=pEye は固定で、注目点=pAt のベクトルを
ぐるぐる回せばいいだけじゃね?

それともオブジェクトをカメラを中心として回すのか??

7:デフォルトの名無しさん
07/06/21 13:41:56
DX10のサンプルどれも動かないんだけど・・・
X1300pro(非128bit地雷)
Athlon64 X2 3800+

そんなに重くなって何が変わったんだ?

8:デフォルトの名無しさん
07/06/21 14:15:20
>>6
返答ありがとうございます
ようは自分目線で部屋の中などをぐるぐる見たり移動したいんです
移動だけ、または回転だけならできてるんですが
移動とカメラ軸回転を同時に出すとカメラが向いている方向とは逆の方向に動いたり等おかしなことになってしまいます

なにか定石的なカメラ移動全般処理のサイト様、または方法などありましたら
ご教授お願いいたします


9:デフォルトの名無しさん
07/06/21 14:28:56
行列すらまともに理解してない状態でクォータニオンに手を出すなんて・・・

10:6
07/06/21 14:51:41
>>8
なるほど。だがそういう計算に定石ってのはない。
要は数学的にやりたいことを表現できるかどうか。
線形代数やベクトル幾何の勉強が全然足りてないんだと思うから本でも買ってみ。
端折って言うと、それは行列の掛ける順番がおかしい、もしくは
移動の計算がおかしいんだと思う。
カメラに与える移動のベクトルに対して、いま現在の回転量の行列を
ちゃんと掛けてる?

11:デフォルトの名無しさん
07/06/21 18:25:47
>>7
ネタ?
X1xxxってDX9までだろ?


12:デフォルトの名無しさん
07/06/21 18:36:49
>>10
ありがとうございます
勉強してみます
またよろしくお願いします

13:デフォルトの名無しさん
07/06/21 18:53:37
>>11
VistaならDX10動くじゃん
木を表示するサンプルさえ0.11fpsなんだけどサンプル画像ではDX9と違いがわからない
何が違うのか知りたかった

14:デフォルトの名無しさん
07/06/21 18:56:05
それリファレンスラスタライザで動いてるだけだろ

15:デフォルトの名無しさん
07/06/21 18:58:45
>それリファレンスラスタライザで動いてるだけだろ
ソフトウェア処理でも遅すぎだろ・・・

結局DX10は何が違うの?

16:デフォルトの名無しさん
07/06/21 19:13:54
次世代の土台

17:デフォルトの名無しさん
07/06/21 19:14:20
refがなんなのか分かってるのか?

18:デフォルトの名無しさん
07/06/21 19:21:45
>>17
GPUをソフトでエミュるんじゃないの?
DX9をソフトウェア処理にしても動くけど何が違うの?

19:デフォルトの名無しさん
07/06/21 19:28:39
わかった質問変える
DX9とDX10の違いがわからない
どちらもソフトウェア処理なのだけどDX9はぬるぬる動くのに対してDX10は止まる
どちらもサンプル画像では違いがわからない
DX10劇重なわけだが何が違うのか?

20:デフォルトの名無しさん
07/06/21 19:31:20
> ソフトウェア処理でも遅すぎだろ・・・
つまりこれが9と10の違いって事だろ。

21:デフォルトの名無しさん
07/06/21 19:33:28
>>19
具体的にはどのサンプルで比較してる?
俺も試してみるから

22:デフォルトの名無しさん
07/06/21 19:35:03
REF(リファレンスラスタライザ)ってのはその名の通り
リファレンスになるような書き方をしてる、ソフトウェアによるドライバのこと。
だから実用的な速度にするための高速化はなんもやってない。らしい。
(その代わり、シェーダーなんかもREF上で動かせるしpure device指定できる)
そのDX9のソフトウェア処理ってのは、頂点処理はソフトウェアでやる、ってことじゃね?
REFはビデオカードの機能を一切使わんよ。
DX10のそのサンプルは見たことないが、要求するシェーダバージョンを満たしてないから
(DX10のサンプルは新しいシェーダバージョンの機能を使ってるから)
REFで動作してるだけだと思われる

23:デフォルトの名無しさん
07/06/21 19:56:20
>>22
>REFはビデオカードの機能を一切使わんよ。
そうなんですか・・・知りませんでした。

>>21
BasicHLSLとBasicHLSL10の違いがわかりません。
あと、Direct3D 10 Shader Model 4.0 Workshop がなぜ重くて何がすごいのかわかりません。
使用しているSDKは2007Juneです

24:デフォルトの名無しさん
07/06/21 20:44:45
BasicHLSLとBasicHLSL10は3〜5倍くらいfps違います

25:デフォルトの名無しさん
07/06/21 22:38:12
>>12
↑最悪のレス発見w

26:デフォルトの名無しさん
07/06/21 23:59:23
質問です。

現在、VC++EE,platformSDK,directxSDK(oct2005) で使っていますが、
スタティックリンクできるdec2004に切り替えようと思っています。
この場合、oct2005をアンインストールしてdec2004を入れなおし、
VC++のパスを設定しなおすだけで問題ないでしょうか?
OSから入れなおした方が安全でしょうか?


27:デフォルトの名無しさん
07/06/22 00:01:16
>>26
問題ない

28:デフォルトの名無しさん
07/06/22 00:11:18
>>26
OSは入れなおす必要は無い

29:26
07/06/22 00:32:06
>>27>>28

ありがとうございます。
バージョン落として使うことってあまりないと思っていたので、安心しましたm(_)m


30:デフォルトの名無しさん
07/06/22 01:37:52
DX10やりたいなら現状だとG8x買うしかないよ。
リファレンスラスタライザは死ぬほど遅いから。


31:デフォルトの名無しさん
07/06/22 18:38:03
遊びでDX10触るならもう少し待ったほうがいいってことですかね

32:デフォルトの名無しさん
07/06/22 18:49:24
REFは遊ぶためのものじゃないんだからREFしか使えない環境で遊ぼうと思うのがおかしい

33:デフォルトの名無しさん
07/06/22 18:52:21
G8xとか使ってて、あれ?おかしいなぁ、って思ったらREFでドライバーがバグってないか確認した方がいい程度がREFの役目。



34:デフォルトの名無しさん
07/06/22 20:03:34
超初心者で申し訳ないのですが質問です。
今、ヴァーチャルPC2004をインストールして、ゲームを動かしたいのですが、
実際のPC上のグラボは使えないみたいなんですが、なにか方法はないでしょうか?
ゲーム起動だけがエラーがでてしないんです><
ホルダー共有とかのタグはあるんですが・・・
すみませんがよろしくお願いします

35:デフォルトの名無しさん
07/06/22 20:10:06
>>34
プログラム作成と何の関わりがあるのか明確に述べよ。

36:デフォルトの名無しさん
07/06/22 20:12:02
ちなみにいま確認したところ
VM Additions S3 Trio32/64 というアダプターが入っているそうです・・・
8MBしかない><

37:デフォルトの名無しさん
07/06/22 20:19:34
とりあえずコンパイルしてデバッグできるのか?

38:デフォルトの名無しさん
07/06/23 00:14:51
リソースからの読み込みについて質問です。
D3DXLoadMeshHierarchyFromX を使ってリソースからアニメーションメッシュを読み込むには

FindResource()、LoadResource()、LockResource() を使ってファイルポインタを渡せばいいのでしょうか?
(D3DXLoadMeshHierarchyFromResource という関数が無いようなので)

ためしに、D3DXLoadMeshFromX を使って上記方法でファイルポインタを渡してもうまくいきませんでした。
HANDLE hTest;
LPBYTE lpTest;
hTest = LoadResource(NULL, FindResource(NULL, "XFILE01", "XFILE"));
lpTest = (LPTSTR)LockResource(hTest);

このlpTestをD3DXLoadMeshFromX の第1引数に渡したのですが、何か間違えてますでしょうか?
D3DXLoadMeshFromResource を使えばうまく表示できたのですが・・・。



39:デフォルトの名無しさん
07/06/23 00:34:51
>>34
方法はない。VPC2004はDirectX HAL関係は動作しない仕様

40:デフォルトの名無しさん
07/06/23 00:49:04
>>38
D3DXLoadMeshHierarchyFromXInMemoryを使ってみたらどうだい?

41:デフォルトの名無しさん
07/06/23 00:55:08
>>39
ありがとです><

42:デフォルトの名無しさん
07/06/23 01:11:38
>>39
DirectDrawはきっちり動作するだろ。
DirectXのHALが動かないわけではない。
特定のコンポーネントとDirectX自体を混同するなこの馬鹿。

43:デフォルトの名無しさん
07/06/23 07:11:49
VMWareなら、設定変えれば動くんだっけ?

44:デフォルトの名無しさん
07/06/23 20:35:03
2007 JuneいれてDebugに切り替えたら_ftol2_sseが大量発生
dxdiagでさえ出るんだけどお前らも出る?
The procedure entry point _ftol2_sse could not be located in the dynamic linked library msvcrt.dll

45:デフォルトの名無しさん
07/06/23 20:37:13
環境はXP

46:デフォルトの名無しさん
07/06/23 21:01:17
>>44
ちょっと検索したら海外のフォーラムでも報告されてるね
Vista+VS2005 でも発生するらしい

原因はワカンネ;;

47:デフォルトの名無しさん
07/06/24 03:50:52
DIJOYSTATE構造体メンバのlZ(z軸)やlRz(z軸回転)の押下判定は
lX(x軸)やlY(y軸)と同じように使えますか?
調べてみた所、32767を基準にしたような値になるんですが・・・。
DIRECTINPUT_VERSIONは0x700です。(バージョンの問題でしょうか?)

48:デフォルトの名無しさん
07/06/24 04:38:13
>>44
実はVistaだと起きないとか?
ひょっとするとコンパイルする時にコンパイルレベルにVista以上と設定してしまっているのかもね。
Releaseだと大丈夫だから気づかなかったとか。多分コンパイル環境が変わっているんじゃないかな?


49:デフォルトの名無しさん
07/06/24 05:06:40
>>48
Vistaで起きるかはわからない
2007 June付属のDXCapsViewer.exeでも出る(Microsoftがコンパイルしたもの)

50:47
07/06/24 05:47:22
DIPROPRANGE構造体の内容を変えたらうまくいきました。

51:デフォルトの名無しさん
07/06/24 10:33:20
>>49
やっぱVistaに付いて来るmsvcrt.dllだと_ftol2_sseを持っているみたいだな。
何らかの理由でコンパイル時に対象OSをVista以上に設定してしまっているんじゃないかな?


52:デフォルトの名無しさん
07/06/24 11:54:55
コンパイルしたら

------ ビルド開始: プロジェクト: saiki, 構成: Debug Win32 ------
コンパイルしています...
WinMain.cpp
.\WinMain.cpp(5) : fatal error C1083: include ファイルを開けません。'windows.h': No such file or directory
kooh2.cpp

ってエラーが出たんだが、どう解決すればよいの?


53:デフォルトの名無しさん
07/06/24 11:57:40
ファイルを用意する。
パスを通す。

54:デフォルトの名無しさん
07/06/24 12:29:58
>>53
具体的にどうやればよいのでしょうか?


55:デフォルトの名無しさん
07/06/24 12:34:57
>>54
DirectXの管轄外

これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。

テンプレ通りここじゃスレ違い。

56:デフォルトの名無しさん
07/06/24 12:37:46
>>54
そんな質問をするぐらいのレベルならC++を勉強し直さないと・・

57:デフォルトの名無しさん
07/06/24 12:40:48
>>saikikooh
具体的には、Googleを使います。
具体的には、スレ違いに気付け。




58:デフォルトの名無しさん
07/06/24 12:42:39
了解しました。出直してきます。


59:デフォルトの名無しさん
07/06/24 12:50:01
別に出直さなくても、それにふさわしいスレなりで質問すれば
ちゃんとした答えが返ってくると思うけど

60:デフォルトの名無しさん
07/06/24 14:00:27
>>51
どういうこと?
SDKのユーティリティを全部コンパイルし直せばいい?
Directx使うアプリ全部っぽいんだけどソースないものはどうすれば・・・

61:デフォルトの名無しさん
07/06/24 21:08:47
yahooでググレよ・・・

62:デフォルトの名無しさん
07/06/24 22:04:25
VBランタイムしか無い
弱った・・・

63:デフォルトの名無しさん
07/06/24 23:17:32
>>51
Vistaからぶっこ抜いたけど64bit板しかないから意味ないじゃん

64:デフォルトの名無しさん
07/06/25 20:20:46
C++でゲームを作ろうと思ったんだけど

基本のグラフィッククラスを作って(一部抜粋)
class CGraphics {
// Direct3Dインタフェース、デバイス
LPDIRECT3D9 D3D;
LPDIRECT3DDEVICE9 Device;
}


そのクラスの派生でデバッグ用プリミティブを表示する
class Prim : public CGraphics {
void Draw_Line(D3DXVECTOR3 p1,D3DXVECTOR3 p2);
void Draw_Box(D3DXVECTOR3 p1,D3DXVECTOR3 p2);
};

みたいなクラスを作ったんだけど、一個しか作られないCGraphicsのD3DとかDeveiceって、Primクラスで持ってくるにはどうすればいいんだろう?
CGraphicsを作った時のクラスポインタをPrimクラス初期化時に引数で渡した方がいいのかなあ?


65:デフォルトの名無しさん
07/06/25 20:25:27
デザインパターンか何か勉強すれ

66:デフォルトの名無しさん
07/06/25 20:42:47
singletonパターンでいいんじゃね

67:デフォルトの名無しさん
07/06/25 20:44:06
>>64
派生の使い方を完全に間違えてる。

だからそういうわけの分からない疑問が出てくる。
PrimはCGraphicsから派生すべきクラスではない。

DirectXなんかより前にまずはオブジェクト指向の基礎を勉強しないと、
そういう問題が次々に出てきて手に負えなくなるよ

68:デフォルトの名無しさん
07/06/25 20:46:37
意味の分からない派生すると後でキツイよな
PrimがCGraphicsを持つのが自然な希ガス


69:デフォルトの名無しさん
07/06/25 21:48:53
あれか、竿から糸が出ているのか、糸に竿が付いているかという考え方の違いか。

70:デフォルトの名無しさん
07/06/25 21:49:32
>>64
デバイス類をカプセル化してDraw類もCGraphicsのメソッドでいいんでない

71:64
07/06/25 23:33:40
あーやっぱり間違えてるかぁ
dクス。

C++実際に使った事ないからよくわかってないんだよねw

勘違いしてたんだけど、
クラスの継承って変数を引き継ぐ様な使い方しないよね。

PrimクラスはCGraphicsに入れるか、派生なしのクラスとして作ってデバイスのポインタを渡した方がよさそうだね

それかシングルd(だっけ?)でCGraphicsを作ってそのポインタを持ってきた方がいいのかなぁ


72:デフォルトの名無しさん
07/06/25 23:37:48
うぜぇ
どっかいけ

73:デフォルトの名無しさん
07/06/26 00:06:38
問題はDirectXでなくC++の基礎知識の不足だと言ってるのに、
なぜこのスレで再度ごたごた言うかねえ

そういうチラ裏はC++初心者スレでやれよ


74:デフォルトの名無しさん
07/06/26 19:04:08
DX10ってDX9から移行する価値あるかな?あんまり変わらないならDX11までスキップと思うのだが。


75:デフォルトの名無しさん
07/06/26 19:08:50
DX11???

76:デフォルトの名無しさん
07/06/26 19:45:35
>>74
あまり変わらないのであればDX10が出来ればDX11になっても何の問題もなくね?

77:デフォルトの名無しさん
07/06/26 19:55:22
512*512のbmpを読み込、その中にいる32*32のキャラクターを2倍に拡大して表示しました。
そうしたらキャラクターがぼけてしまいました。
g_pD3DDevice->SetTextureStageState(0, D3DTSS_MAGFILTER, D3DTEXF_POINT);
g_pD3DDevice->SetTextureStageState(0, D3DTSS_MINFILTER, D3DTEXF_POINT);
の様にしてみましたがそれでもぼけています。
くっきり表示させるにはどうしたらいいでしょうか。
DirectX8を使っています。

78:デフォルトの名無しさん
07/06/26 21:39:29
>>77
ポリゴンの頂点座標を2倍になるように引き伸ばすだけかと

79:デフォルトの名無しさん
07/06/26 22:33:49
>>78
はあ??質問ちゃんと読んでんの??

80:デフォルトの名無しさん
07/06/26 22:49:34
拡大と引き伸ばしは違う

81:デフォルトの名無しさん
07/06/26 22:58:11
ミップマップ効いてね?

pDevice->SetTextureStageState( 0, D3DTSS_MIPFILTER, D3DTEXF_POINT );

とか・・・そんなわけねぇかw
もう考え得るフィルタ全部探してPOINTにしてみれw

82:デフォルトの名無しさん
07/06/26 23:03:48
>>81
うん?
>>77は拡大表示してんだろ?ミップマップ関係なくね?

83:デフォルトの名無しさん
07/06/26 23:08:35
>>82
何をもって「拡大」って言ってるかわかんねぇじゃん
初心者スレだしよ

単にスケールを2.0にして2倍とか言ってる気がしないでもないし
ここはレスどおりとらないでみた

84:デフォルトの名無しさん
07/06/26 23:15:11
そんなことより俺はキャラクターがさりげなく擬人化されていることに地味にフイタ。すまん

>512*512のbmpを読み込、その中にいる32*32のキャラクターを2倍に拡大して表示しました。
>そうしたらキャラクターがぼけてしまいました。

85:デフォルトの名無しさん
07/06/26 23:25:11
m_p3DDevice->SetRenderState ( D3DRENDERSTATE_TEXTUREMAG, D3DFILTER_LINEAR );
m_p3DDevice->SetRenderState ( D3DRENDERSTATE_TEXTUREMIN, D3DFILTER_LINEAR );

m_p3DDevice->SetRenderState ( D3DRENDERSTATE_TEXTUREMAG, D3DFILTER_NEAREST );
m_p3DDevice->SetRenderState ( D3DRENDERSTATE_TEXTUREMIN, D3DFILTER_NEAREST );

レンダリングステータスに設定があった時代ってなかったっけ?


86:デフォルトの名無しさん
07/06/26 23:35:38
>>85
>>77はDX8って言ってるが、それDX8じゃなくね?
見た瞬間やたらなつい気分に襲われたんだが

87:デフォルトの名無しさん
07/06/27 00:21:57
>>86
DirectX7だっけ?>>85は・・・
SetSamplerState
がDirectX9だっけ?
もう色々あって覚えてねーなw

SetRenderStateとSetTextureStageStateと両方設定する必要が
あったのは俺の勘違いかな?w

88:デフォルトの名無しさん
07/06/27 00:44:18
あ、俺、DirectX8のヘルプ持ってるじゃんw
DirectX8でのやり方は>>77の方法で正しいな

89:デフォルトの名無しさん
07/06/27 00:54:04
BBXで色々探してきた

まずこれ↓どうよ?あんま関係ない?
>もしかして、D3DXPrepareDeviceForSpriteを使ってませんか?
>これを使うと強制的にリニアフィルタリングかかかります。

じゃあ、次、これ↓
URLリンク(bbx.hp.infoseek.co.jp)
ずばりじゃね?
なんか難しいことになってんなぁw

つまりボケるのは0.5ずれてるのが問題らしいぜw
三角形ラスタ化ルールの都合なんかのぅ・・・w

90:デフォルトの名無しさん
07/06/27 01:23:43
プログラム、プログラマー系の板って自分の知ってる事を「みんな知っていて当然」みたいに話す人多いよね。

プログラマーがコミュニケーション能力低いと言われるわけだ



91:デフォルトの名無しさん
07/06/27 01:26:32
>>90
最近、そんなレスねーじゃん

92:デフォルトの名無しさん
07/06/27 01:38:37
>>89
これだね。

テクセルとピクセル間の直接マッピング
URLリンク(msdn.microsoft.com)

NyaRuRu氏の書き込みでDX8のヘルプがリンク切れになってるけど、たぶんそれと同じ内容。

93:デフォルトの名無しさん
07/06/27 01:49:23
>>89
いわゆる「0.5ずれ」がボケの原因となるのは、
ピクセル:テクセル=1:1で、かつニアレストネイバー(POINT)フィルタ以外の
フィルタを使ってるときだけだよ。
テクスチャマッピングの基本を抑えていれば簡単にイメージできるはず。

>>77は、「2倍に拡大」って言ってるし(質問者が拡大率の定義を間違えている可能性もあるが)、
さらにD3DTEXF_POINTを使っているとも言ってるから、
恐らくボケの原因はモニタの調子がおかしいとか眼鏡の度が合ってないとか別のところにあると思う。

94:デフォルトの名無しさん
07/06/27 02:01:11
>>92
最近の英語版ヘルプはちょっと絵がきれいになってる。
URLリンク(msdn2.microsoft.com)

ちなみに、アライメント補正用の-0.5は、ある意味理にかなっているんだけど
あまりにも人々を混乱させすぎたのかD3D10では廃止されちゃった。
コード移植時に注意だね。

>>77
今回はさらに拡大も入っているので、もう1ひねり必要だね。
-0.5は2倍されるべきか否かだけど、
基本は目標とするドットの整数座標から-0.5なので、
そのこところお間違いなきよう。

あと、32*32ってテクスチャに隙間なくぴったり敷き詰めちゃってる?
拡大とか回転で、フィルタの関係で外側の色が滲み込むっていう
これまたFAQがあるので注意。
34*34の領域を確保して、外側1ピクセルはエッジの色を広げておいた方がいいよ。

95:デフォルトの名無しさん
07/06/27 02:09:54
>>94
なぜ34*34にする必要がある?
33x33で十分だし普通そうする。

96:デフォルトの名無しさん
07/06/27 02:12:32
>>95は.>>94を誤読してた。すまん

97:デフォルトの名無しさん
07/06/27 02:21:13
ああもちろん、ポイントフィルタと共に生き共に死すような人なら
心おきなくぴっちり敷き詰めちゃってください。

後でポイントフィルタ以外を使いたくなったときには
ちゃんと思い出して欲しいけど。

98:デフォルトの名無しさん
07/06/27 02:33:37
>>94
D3D10ではどの部分が廃止になったの?


99:デフォルトの名無しさん
07/06/27 02:40:08
>>98
-0.5引いていた部分。
今度からは引かなくて正解になる。

URLリンク(msdn2.microsoft.com)
>Note that in Direct3D 10, this rule no longer holds.


100:デフォルトの名無しさん
07/06/27 02:43:13
>>99
-0.5「引く」だと意味的に逆になっちゃうか。

正しくは、いままで0.5引いていたコードなら、
今度からは引かないのが正解になった、みたいな。

101:デフォルトの名無しさん
07/06/27 02:45:52
>>97
ああ、さらに誤解を・・・

>>95で言いたかったのは、ポイントフィルタを使うってことではなく、
マージンは2pxでなく1pxで十分だろってこと。

つまり、フォントをテクスチャとして使う場合にように、
マージンの部分にチップの周辺色ではなく背景色(主に透明)を置いておく使い方のことを
言ってると勘違いしていたってことです。

102:デフォルトの名無しさん
07/06/27 02:48:48
ぐわ、>>101は日本語がかなりバグってた・・・すまん


103:デフォルトの名無しさん
07/06/27 07:15:18
縁取り付のポリゴンを表示するにはどうすればよいでしょうか?
容量節約のためテクスチャは使いたくありません

104:デフォルトの名無しさん
07/06/27 09:38:14
トゥーンレンダリングか

105:デフォルトの名無しさん
07/06/27 11:42:36
トゥーンじゃなくて、ポリゴンの上からワイヤフレーム描画したいってことなんとちゃう?

106:デフォルトの名無しさん
07/06/27 11:49:09
ポリゴンとワイヤーフレームを切り替えて二回描けばいいだけ。

107:デフォルトの名無しさん
07/06/27 13:55:59
>>100
0.5引いていたコードが要らなくなるという事は、どっち側の挙動が変わったの?
多分、テクセル側はそのままだろうから、ラスタライザー側が変わったのかな?


108:77
07/06/27 18:34:55
みなさんいろいろとレスありがとうございます。
拡大というのはID3DXSprite::Drawの第3引数を(2.0, 2.0)としています。
>>83から察するに、ひょっとして何かとんでもない勘違いをしているのでしょうか。

109:デフォルトの名無しさん
07/06/27 18:51:04
>>108
ちょwww

おま、D3DXSpriteかよwwwww
それは一番先に言わないとらめええええ

DX8のD3DXSpriteって、いくらこっち側でポイントフィルタを設定しても、
ステート系は全て内部で上書きされるから意味ないのでは?
(もちろん描画終わったらステートは戻してくれるけど)

110:デフォルトの名無しさん
07/06/27 18:51:15
DX8を使っている時点でとんでもない勘違い。
このスプライトは糞重くなかったっけ。
一生DX8をやるなら別に構わないけど、ただでさえDX9の更新箇所が多いのに飛ばしてDX10以降をやるのは大変だぜ?

111:デフォルトの名無しさん
07/06/27 18:53:30
DX8+スプライトの組み合わせはDX9でTL頂点描画の5〜10倍ぐらい重いんだっけか
DSの時代にGBのプログラム組んでいるみたいだな

112:デフォルトの名無しさん
07/06/28 02:06:15
>>100
じゃあ逆にDX9でバーテックスから0.5引いてたコードをそのままDX10に移植すると、今度はおかしくなるって事か?面倒だな。。。


113:デフォルトの名無しさん
07/06/28 05:46:36
0.5テクセルを

114:デフォルトの名無しさん
07/06/28 15:07:59
>>113
を?


115:デフォルトの名無しさん
07/06/28 16:01:40
食う

116:デフォルトの名無しさん
07/06/28 16:57:12
と?

117:デフォルトの名無しさん
07/06/28 16:57:58
ボケる

118:77
07/06/28 17:00:41
やはりとんでもない勘違い野郎だったんですね。
今まではDirectX9で組んでいたのですが、
8の方が対応しているハードが多いのかなと思い今回は8で組んでいます。
とりあえず描画はこのままにして、完成したら描画部分だけ変更してみようかと思います。
本当にご親切にありがとうございました。

119:デフォルトの名無しさん
07/06/28 17:04:50
>>118
で、ボケの問題にはどう対処したの?解決したってこと?見送るってこと?

これだけ多くの人間が回答くれてんのに、
何も関係ない自分の予定だけ書き込んどきながら
問題についての報告は何も無し、ってのはあんまりだと思うぞ。

120:77
07/06/28 21:57:18
>>119
ボケは見送ることにしました。
Spriteでは簡単にボケ防止はできないというのが自分の結論です。

121:デフォルトの名無しさん
07/06/28 22:03:00
>>120
ボケに限った話じゃないが、D3DXのスプライトは基本的に汎用性が強烈に低い。
さらに、>>110-111も言ってるかDX8の頃のスプライトは半端なく重かった。

DX9になって、フラグが多数追加されるなどして汎用性や重さの問題は改善されてきてはいるけれど、
やはりスプライトくらいはまずは自分で実装してみることをオスメすスる。

122:デフォルトの名無しさん
07/06/28 22:13:02
>>118
はぁ?
たかが、0.5足すのがそんなに苦痛か?
やってもみないで面倒臭そうな気がするだけだろお前
結局、よくわからねぇ描画部分を触るのが嫌なだけだろ

「できない」ならまだわかる
「面倒臭い」は救いようがない

123:デフォルトの名無しさん
07/06/28 22:17:15
>>121
言わばスーパーで売ってる惣菜みたいなものだからな。
誰でも利用できるけど価格は高めだし、ほぼそのまま利用するしかない。
やっぱ材料があれば売っているような惣菜だけでなく自分で思い通りの物が作れるようにならないとな。
まぁ、スプライトはせいぜいゆで卵か。
>>77はゆで卵を使って卵かけ悟飯を作ろうとしている状態。
その行く末が>>120

124:デフォルトの名無しさん
07/06/28 22:18:14
>>122
>>120によると、0.5がどーのこーのではなくて、
2倍表示で強制的にバイリニアがかかっちゃうからボケる、って話でしょ

でDX8のD3DXSpriteだとバイリニアをOFFにできないっていう

125:デフォルトの名無しさん
07/06/28 22:54:01
普通に板ポリに描けよもう

126:デフォルトの名無しさん
07/06/28 22:58:38
>>124-125←なに?こいつら?

127:デフォルトの名無しさん
07/06/28 23:06:17
>>122
ん?何かおかしなこと言ったか?

128:デフォルトの名無しさん
07/06/28 23:26:48
メッシュのアニメーションを勉強しているのですが、
ID3DXAllocateHierarchyクラスの使用方法がいまいちよく分からないのですが。
階層構造を割り当てる・・・という名前のようですが
このインターフェイスは一体何をするクラスなんでしょうか?

あと、このインターフェイスはどうやって作ればいいのでしょうか?
Xファイルを読み込むときにD3DXLoadMeshHierarchyFromXに渡さないといけないのですが、
NULLにするとエラーになってしまいます

129:デフォルトの名無しさん
07/06/28 23:32:21
すいませんクラスとインターフェイスの意味の違いが分かってなくて
変かもしれないですけど無視してください

130:デフォルトの名無しさん
07/06/28 23:33:16
とりあえずSDKにはサンプルというものがあってだな

131:デフォルトの名無しさん
07/06/29 14:50:50
ああ、ドモホルンリンクルですね
知ってます
とりあえず申し込んできます

132:デフォルトの名無しさん
07/06/29 17:43:25
サンプルは私には効果がなかったので返品しました
もうちょっと簡単で分かりやすいサンプルだと助かります

133:デフォルトの名無しさん
07/06/29 20:21:07
参考に買った本についてきたサンプルをコンパイルしたらリンクエラー
LNK2019: 未解決の外部シンボル _DirectInput8Create@20 が関数 "long __cdecl InitDinput(struct HWND__ *)" (?InitDinput@@YAJPAUHWND__@@@Z) で参照されました。
とでました。
サンプルをそのままコンパイルしようとしているのでプログラム自体に間違いがあるとは思えないんですが、libファイルの設定とかが間違っているんでしょうか?
コンパイラは.NET2003です。


134:デフォルトの名無しさん
07/06/29 20:26:54
何の本かも分からんし、環境ですら分からんから回答するの難しくね?

135:デフォルトの名無しさん
07/06/29 20:36:13
>>134
「はじめての3Dゲーム開発」という本で、DirectInputでテクスチャを移動させるプログラムです。


136:デフォルトの名無しさん
07/06/29 21:15:17
自己解決しました

137:デフォルトの名無しさん
07/06/29 21:18:02
最近の厨房はなぜ、どう解決したのか書かないかねえ・・・

138:デフォルトの名無しさん
07/06/29 21:33:29
>>137
教えてほしいならそう言えばいいんじゃないでしょうか?人のこと厨房呼ばわりしてるあなたのほうこそ厨房です。

139:デフォルトの名無しさん
07/06/29 21:44:38
>>138
お前の>>133の質問を見て、回答してあげようと資料を調べたり
手元の環境で問題を再現するために時間を割いてくれた回答者のことをお前は考えないのか?

正直いうと、俺もその一人だ。
たまたま件の書籍を持ってたから、実際に再現してみようとあれこれ実験してた矢先に
「自己解決しました」 〜糸冬〜
だ。

自己解決にしろ何にしろ解決したらその過程を書く。
ここに関わらず、質問する者としての最低限のマナーだ。

140:デフォルトの名無しさん
07/06/29 21:47:15
同じような質問が出たとき過去の解決方法が分かるだけでも回答しやすいんだけどな。
初心者に過去ログ全て漁れというよりも、スレの経過を知っている人がコピペなりしたほうが早いしね。

141:デフォルトの名無しさん
07/06/29 21:50:37
>>139
教えてクンに、こっちが費やした時間のことを考えれなんて長々といっても無駄

答える人間のことを考えない者こそが教えてクン

142:デフォルトの名無しさん
07/06/29 22:13:23
>>141
自己解決しますた

143:デフォルトの名無しさん
07/06/29 22:18:35
初心者を煽るためにわざと"自己解決"をまにうけてこそ2ちゃんねらー

144:デフォルトの名無しさん
07/06/29 22:20:46
よし真に受けてやるぜ自己解決かかってきな

145:デフォルトの名無しさん
07/06/29 22:25:56
自己解決しません(´;ω;`)

146:デフォルトの名無しさん
07/06/29 23:23:20
自己解凍しますたw w w ww www w w

147:デフォルトの名無しさん
07/06/29 23:36:13
自己中の多いスレですね

148:デフォルトの名無しさん
07/06/29 23:39:51
今ごろ気付いたのか

149:デフォルトの名無しさん
07/06/29 23:51:11
>>147
お前がそうでないというならその証拠を見せてみろ

150:デフォルトの名無しさん
07/06/29 23:55:28
質問があります!

151:デフォルトの名無しさん
07/06/30 00:07:57
>>150
お先失礼します。
DirectInputを使ってます。
プログラムの起動時に初期化してるんですが、ゲームパッドを
プログラムの起動後(初期化後)に接続した場合も検出して入力を受け付けるには、
どのようにすればいいでしょうか?

152:デフォルトの名無しさん
07/06/30 00:11:29
PnPに対応してれば
後は一定時間毎にポーリングして調べればいいのかな?

153:名無し募集中。。。
07/06/30 01:13:22
自己解決しました><

154:デフォルトの名無しさん
07/06/30 01:25:18
だれやねん

155:デフォルトの名無しさん
07/06/30 01:44:35
DirectX8であったレンダーステート、D3DRS_ZBIAS がなくなっちゃったんだけど代わりになるものないかなあ?
D3DRS_ZBIASで優先度とか設定してたから、同じ様な事したくて

156:デフォルトの名無しさん
07/06/30 02:10:45
ちゃんとありました
自己解決しました

157:デフォルトの名無しさん
07/06/30 03:21:21
>>156
誰だおまえ?

158:デフォルトの名無しさん
07/06/30 03:35:29
>>138です。

159:名無し募集中。。。
07/06/30 03:38:36
>>155
D3DRS_DEPTHBIASとかじゃ駄目なのん?

160:デフォルトの名無しさん
07/06/30 04:44:59
スーパーの惣菜が高いと思って自分で野菜や調味料を買って作ってみると
一人暮らしでは食べきれない量が出来てしまい、結局惣菜を買った方が安くつくことに気づく

161:デフォルトの名無しさん
07/06/30 04:53:29
そうでもないよ

162:デフォルトの名無しさん
07/06/30 05:16:18
>>159
だれやねん

163:デフォルトの名無しさん
07/06/30 05:57:06
>>160
全部DirectXのヘルプに載ってる

164:デフォルトの名無しさん
07/06/30 17:09:52
DirectShowを用いたAVIファイルの再生方法について教えてください。

ゲームでオープニングムービーを流すためにDirectShowを利用しています。
今、ゲームウインドウ上でムービーを流すために、IVideoWindowインタフェースを用いて、
ゲームのメインウインドウの子ウインドウを作成し、そこにAVIファイルを再生しています。
そしてAVIファイルの終わりまで再生するためにWaitForCompletionを使用しています。

この方法ですと、ムービー再生中にウインドウの移動や、×ボタンによるゲームの終了が
できません。

オープニングムービー再生中もウインドウを移動させたり、ゲームを終了させたりしたい
のですが、どうしたらよいでしょうか?



165:デフォルトの名無しさん
07/06/30 17:47:36
ぎあ・・・片方
間違えました
って言っておけ
マルチは嫌われるぞ

166:デフォルトの名無しさん
07/06/30 18:02:32
165様 質問の内容はちがいますよ


167:デフォルトの名無しさん
07/06/30 18:22:36
>>165
             / ̄ ̄^ヽ   /::.__  .:::::::::::::  __   ヽ_
             l       l / /  ヽ_ヽv /: / ヽ   ヽ
       _ /,--、l       ノ /   ̄ ̄ √___丶 ̄ ̄    |
   ,--、_ノ:: `ー'::   、ミー---‐,,l |      // tーーー|ヽ       |
  ,/   :::         i ̄ ̄  | |      ..: |    |ヽ       |
/          l:::    l:::    l  |       | |⊂ニヽ| |      |
l   .   l     !::    |:::    l  |     | |  |:::T::::| !       |
|   l   l     |::    l:      l \:     ト--^^^^^┤    丿
|   l .   }    l:::::,r-----    l  \::      ̄ ̄^ヽ    丿
ヽ  :l::::   ト:;;;;;;;/-/__...........  /        __o
                              | 二|二゛  ___
                             ノ   |  ヤ

168:デフォルトの名無しさん
07/06/30 18:26:22
同じ奴じゃね?

169:デフォルトの名無しさん
07/06/30 18:28:47
ふつうにマルチだなw
違う質問つーかなんか誤魔化した感ムンムンだしよw

170:デフォルトの名無しさん
07/06/30 19:01:17
>>164
DirectShowスレに池。

171:デフォルトの名無しさん
07/06/30 19:06:23
マルチがなぜ嫌われるのかよく考えてみろ。

172:デフォルトの名無しさん
07/06/30 19:54:12
>>171

【マルチ】
某人気エロゲキャラの名前を真似た教えてクン固定ハンドル
質問と回答を1人で行う

はわわー
なでなで
XXですぅ〜

とか言って正直ウザイ

173:デフォルトの名無しさん
07/06/30 23:56:34
>>172
マルチポストも知らんのか。半年ロムれ

174:デフォルトの名無しさん
07/07/01 01:03:07
古い(DirectX7の)ヘルプって手に入らないでしょうか?
DirectInputCreateExの戻り値が知りたいのですが、DirectInput8Createと同じですか?

175:デフォルトの名無しさん
07/07/01 01:16:53
手に入りますよ
以上

176:デフォルトの名無しさん
07/07/01 01:56:38
>>174
DirectInputCreateEx DirectX7
のキーワードでググるとそれっぽいのがでてくるぞ

初心者スレなのでいっておくが、昔の保守でもやってんのか?
そうでなけりゃDirectXはバージョンについていく形で
組み換えていけない環境であるなら使わないほうがいいぞ

業務系アプリ作ってて後悔したことある

177:デフォルトの名無しさん
07/07/01 05:15:02
>>163
吹いたw

>>164
自分もDirectShow使うときは苦労したのでヒント教えちゃる。
IMediaEventEx使え。
そういう同期モノは大抵ウインドウメッセージで非同期にできるようになっとる

178:デフォルトの名無しさん
07/07/01 11:11:35
>>174
DirectInputCreateEx
DirectInputCreateEx 関数は、IDirectInput、IDirectInput2、または IDirectInput7 COM インターフェイスをサポートする DirectInput オブジェクトを作成する。

戻り値
成功すれば DI_OK を返す。

失敗すれば次のエラー値のいずれかを返す。

DIERR_BETADIRECTINPUTVERSION
DIERR_INVALIDPARAM
DIERR_OLDDIRECTINPUTVERSION
DIERR_OUTOFMEMORY



google DirectX7の日本語ヘルプ

179:デフォルトの名無しさん
07/07/01 22:48:45
DirectMusicを使ってMIDIファイルをCH(楽器パート)毎に再生をオンオフしたいのですが方法が分かりません。
最近DirectMusicを勉強し始めて、ファイルの再生や停止までは何とか理解できたのですが
それ以上の情報はググってもまともに見つからずお手上げ状態です。

DirectMusicに詳しいサイトや書籍があればあわせて教えていただければ助かります。

どなたか宜しくお願いします。


180:デフォルトの名無しさん
07/07/01 23:07:39
これで本当に見つからなかったのなら、探す気がないだけ
URLリンク(www.google.co.jp)

181:デフォルトの名無しさん
07/07/01 23:16:52
>>179
てか、お前マジかw
googleに突っ込みもしないでこんなところきて恥ずかしくないのか?
道でチンコ丸出しで歩いてるのと同じぐらい恥ずかしいことだぞ

182:デフォルトの名無しさん
07/07/01 23:22:30
ググってもまともに見つからずじゃなくて
理解する頭がないんだろ?もう諦めたら


183:179
07/07/01 23:44:49
180のURLは何故か開けないのですが、DirectMusicでグーグル検索しただけですよね?
だとしたら当然私もその辺のページは見ましたので、どうやら私の理解力不足ようです。

ありがとうございます。
もう一度勉強しなおしてみることにします。

184:デフォルトの名無しさん
07/07/02 00:25:19
そういう逃げ方されると納得いかないんだけど

185:デフォルトの名無しさん
07/07/02 00:44:32
てかID表示してほしいな。

186:デフォルトの名無しさん
07/07/02 00:48:56
そりゃ逃げるわよね

187:179
07/07/02 01:27:31
「僕は逃げません!あなたが好きだから!!僕は逃げません!」

188:デフォルトの名無しさん
07/07/02 01:58:01
>>184
最近、同じような逃げ方をする質問者を
異様に多く目撃するのは気のせいかな
しかも似たようなスレに集中している気が・・・・

期末テスト?作品提出?とか分からんけどそういうのの時期なんだろうか

189:デフォルトの名無しさん
07/07/02 02:39:14
>>180
昔いろいろいじった俺がいってやる
お前は間違っている

DMで179のことをするにはBandオブジェクト操作か自作Grpahでフィルタをかける方法しかないが
この2つのクラス名でMSのリファレンス以外にサイトがひっかからないということは
説明しているサイトなどは存在しない

190:デフォルトの名無しさん
07/07/02 08:24:08
>>189
自分でMIDIファイルを読み込んで、IDirectMusicBufferに逐次セットしていく。
再生したくないデータは出力しなければいいだけ。
説明しているサイトは思いっきり引っかかる。

お前がやり方を勘違いして無いと思いこんでいるだけ。

191:デフォルトの名無しさん
07/07/02 09:59:31
177様 ありがとうございました。IMediaEventExを利用したところ上手くいきました。

192:デフォルトの名無しさん
07/07/02 11:56:40
>>190
それやったらパフォーマンスクラス関係の機能何もつかえなくなるじゃん
リアルタイム制御いろいろするデータ、機能あるってのに
DM使って出力する価値あんまり無くね?

というかその方法完全に忘れてたわ。すまん

193:デフォルトの名無しさん
07/07/02 21:10:23
DirectMusicさんは近々引退する予定なんじゃなかったっけ

194:デフォルトの名無しさん
07/07/02 23:33:14
XAudio2はいつ実装されるのですか?

195:デフォルトの名無しさん
07/07/02 23:35:51
全く持って未定

196:デフォルトの名無しさん
07/07/03 22:37:32
D3DXMatrixTransformation2Dの引数の
3番目のFLOAT ScalingRotationにどんな値を入れれば正常に動くのかがわかりません。
MSDNにも載ってませんでした。
分かる方いらっしゃいますか?

197:196
07/07/03 22:44:01
すみません、言葉足らずでした。
スプライトの反転を実行したいのですが、スプライトの縮尺をいじると
D3DXMatrixTransformation2Dの3番目の引数を変更しなければならないようで。
-1とかインクリさせてみたりしましたがイマイチ分かりません。

以上、お願いします。

198:デフォルトの名無しさん
07/07/04 00:02:40
┌――――――――――┐ 
|D3DXMatrixTransformation2D           |
└――――――――――┘
  ┌―――┐
  | Google 検索. |
  └―――┘

199:デフォルトの名無しさん
07/07/04 01:54:45
>>196
そこには角度を指定できるけど、変な平行四辺形になるだけだから
使わなくていいわよ。

200:デフォルトの名無しさん
07/07/04 06:29:49
>>196
シアー変形させないなら、大人しく0.0を入れとけ。

201:196
07/07/04 21:41:02
>>199-200
回答ありがとうございます。
また何度か試してみましたが、無理でしたのでポリゴン使ってみます。

SpriteのDrawの引数が変わってからめんどくなりましたな。

202:デフォルトの名無しさん
07/07/04 22:31:52
DirectXのスプライト自体初心者向けのだからね。
1から教えるならスプライト描画なんて使わさせんが。

203:デフォルトの名無しさん
07/07/05 19:26:13
スプライトはゲーム用途で使うもんじゃねーな

204:デフォルトの名無しさん
07/07/05 21:24:26
初心者用のDirectXの解説書がスプライトを使っているケースが多い。
別に意図的に使っているなら問題ないが、勉強するため本に沿ってやってるとスプライトから技術が進歩しなくなる。
DirectXを始める前に数学を学んで3Dの概念を理解してから、3D(ポリゴンの描画)→3D上での2Dの描画と進めるべきだよな。
本によってはゲームのアルゴリズムが載ってたりするけど、今ここで読者に伝えなきゃいけないのかと問いかけたい。

205:デフォルトの名無しさん
07/07/05 21:32:10
今まさにID3DXSprite使わないで2D描画しようとしてます。射影マトリックスを
D3DXMatrixOrthoOffCenterLH(&m_proj, 0, vp.Width, vp.Height, 0, 0.0f, 1.0f);
として今の所うまくいってますが、この関数の意味はあまり理解していません。
座標変換済み頂点を使うより楽な気がするんですが、デメリットありますか?


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4823日前に更新/173 KB
担当:undef