【C++】 DirectX初心者質問スレ Part13 【C】at TECH
【C++】 DirectX初心者質問スレ Part13 【C】 - 暇つぶし2ch2:デフォルトの名無しさん
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
あーやっぱり間違えてるかぁ
㌧クス。

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

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

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

それかシングル㌧(だっけ?)で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);
として今の所うまくいってますが、この関数の意味はあまり理解していません。
座標変換済み頂点を使うより楽な気がするんですが、デメリットありますか?

206:デフォルトの名無しさん
07/07/05 21:52:47
2D描画ならTL頂点使えよ。
スクリーン座標を指定するだけ(あと頂点カラーとかUV値はご自由に)だから、わざわざ変換行列を使う必要ないし。


207:やっくん
07/07/05 21:52:58
学校の課題を家でしようと思ったのですが、DirectDrawの設定がうまくいきません!!
ディレクトリの所で「c:\mssdk\include」「c:\mssdk\lib」をちゃんと入れたのに、なぜかDirectDrawSurfaceが使えないのです(泣)
誰でもいいので、アドバイスをくださいお願いします!!

208:デフォルトの名無しさん
07/07/05 21:59:25
>>207
開発環境とエラーコード

209:デフォルトの名無しさん
07/07/05 22:13:31
>>206
アニメーションする時は座標を直接書き換えorポリゴンを作り直しでしょうか?

210:デフォルトの名無しさん
07/07/05 22:15:54
UVでアニメーションじゃないの

211:デフォルトの名無しさん
07/07/05 22:37:29
>>210
ありがとうございました

212:デフォルトの名無しさん
07/07/05 22:43:00
>>207
そのフォルダに目的のものは入っているのか?

213:デフォルトの名無しさん
07/07/05 23:06:14
合成なし
SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE,integer(false));

通常合成
SetRenderState(D3DRENDERSTATE_SRCBLEND,integer(D3DBLEND_SRCALPHA));
SetRenderState(D3DRENDERSTATE_DESTBLEND,integer(D3DBLEND_INVSRCALPHA));

加算合成
SetRenderState(D3DRENDERSTATE_SRCBLEND,integer(D3DBLEND_ONE));
SetRenderState(D3DRENDERSTATE_DESTBLEND,integer(D3DBLEND_ONE));

減算合成
SetRenderState(D3DRENDERSTATE_SRCBLEND,integer(D3DBLEND_ZERO));
SetRenderState(D3DRENDERSTATE_DESTBLEND,integer(D3DBLEND_INVSRCCOLOR));

乗算合成
SetRenderState(D3DRENDERSTATE_SRCBLEND, integer(D3DBLEND_DESTCOLOR));
SetRenderState(D3DRENDERSTATE_DESTBLEND, integer(D3DBLEND_ZERO));

//モノクロでしか調べてませんが合成すると加算合成+減算合成の効果が
SetRenderState(D3DRENDERSTATE_SRCBLEND,integer(D3DBLEND_INVDESTCOLOR));
SetRenderState(D3DRENDERSTATE_DESTBLEND,integer(D3DBLEND_ONE));

//反転
SetRenderState(D3DRENDERSTATE_SRCBLEND, integer(D3DBLEND_INVDESTCOLOR));
SetRenderState(D3DRENDERSTATE_DESTBLEND, integer(D3DBLEND_ZERO));


214:デフォルトの名無しさん
07/07/05 23:27:14
>>213
なんか変じゃね?
それと実際使うには全部アルファでブレンド率調節できないと面倒じゃん

215:デフォルトの名無しさん
07/07/05 23:28:38
>>213
なんだよ・・・通常って・・・w
加重平均っていうんだ

216:デフォルトの名無しさん
07/07/05 23:51:13
自作ライブラリのサンプルプログラムでしか使わないので
実用には興味がありません。



217:デフォルトの名無しさん
07/07/06 00:21:58
>>216
だったらなおさら加算ブレンドは客寄せになるからマスターしておけ

218:デフォルトの名無しさん
07/07/06 01:40:46
>>213
減算合成がおかしい。
減算は1パスではSRCBLENDとDESTBLENDだけでは設定不可能。
BLENDOPで減算合成が可能になる。
(BLENDOP無しだと3パスで可能)

219:デフォルトの名無しさん
07/07/06 21:29:38
Microsoft Visual C++ 6.0を使っていて、エラーコードが

error C2065: 'LPDIRECTDRAWSURFACE7' : 定義されていない識別子です。

で、ディレクトリのインクルードに「c:\mssdk\include」ライブラリに「c:\mssdk\lib」を入れたのですが、DirectDrawが使えません・・・・・・(泣)
初心者な質問ですいません。でも、どうしても課題を家でやりたくて、お願いします教えてください。

220:デフォルトの名無しさん
07/07/06 21:42:02
>>219
リストの一番上に入れた?

221:デフォルトの名無しさん
07/07/06 21:47:54
DirectX7かよw

222:デフォルトの名無しさん
07/07/06 21:50:57
>>220

はい、入れました。学校では普通にできたんですけど、何度やってもエラーが出るばかりで・・・・・・(泣)
何かコンピューターに至らない所でもあるのでしょうか?



223:デフォルトの名無しさん
07/07/06 21:54:51
一番上に入れても駄目なら分からんな。
一番下に入れるとVC6ではデフォのライブラリ(DX3かな?)が
先に検索にヒットしてしまうから、駄目だったりするが。

224:デフォルトの名無しさん
07/07/06 21:56:53
>>223
お答えありがとうございます。
一つ質問なんですが、実はVC6は海賊版でそれは関係あるのでしょうか?


225:デフォルトの名無しさん
07/07/06 21:59:36
SDKが入っていなかったりして

226:デフォルトの名無しさん
07/07/06 22:05:09
>>224
そういう事をここで書くなよ・・・

ていうかVC++2005落としてくれば

227:デフォルトの名無しさん
07/07/06 23:44:36
学生ってこんなのばっかりか。折角学生証があるならアカデミック版買えよ

228:デフォルトの名無しさん
07/07/07 04:00:54
>>224
とんでもねえカミングアウトだなオイ

229:デフォルトの名無しさん
07/07/07 06:24:24
>>224
師ね泥棒


230:デフォルトの名無しさん
07/07/07 07:26:10
>>224
DirectX7を無料でやりたかったら、Migwでも入れろ、ボケ。

231:デフォルトの名無しさん
07/07/07 13:12:55
>>224
とりあえず、通報はしといたから。

232:デフォルトの名無しさん
07/07/07 13:45:03
>>224
諸々の事情でVC6を使わざるを得ない、ってのなら理解できるが、
諸々の事情で海賊版、ってのはどう弁明したところで違法以外何者でもないぞ

233:デフォルトの名無しさん
07/07/07 18:25:15
DirectX Texture Tool でDDSファイルを作りたいのですがうまくいきません。
白黒のhoge_a.jpgを同ディレクトリに作ってhoge.jpgをオープンしてるのですが、
アルファチャンネルを読み込みません。
画像を変えても同じでした。
どこがおかしいのでしょうか?

234:デフォルトの名無しさん
07/07/07 19:51:48
憶測ですまんが、JPEG形式が駄目なんじゃね。
PNGかBMPで試したらどだろ。


235:デフォルトの名無しさん
07/07/07 20:13:24
>>234
bmpでいけました、ありがとう。

236:デフォルトの名無しさん
07/07/08 03:25:42
Expressっていう無料版じゃだめなん?

237:デフォルトの名無しさん
07/07/08 12:43:20
アンカくらい付けれ

238:デフォルトの名無しさん
07/07/09 19:26:27
DirectShowの質問もここでいいですか?

239:デフォルトの名無しさん
07/07/09 19:37:53
悪くはないが、同じム版に専用スレがあって
詳しい住人が多いから、そっちの方がいい。

まあみんな似たようなスレ巡回してんだけどね


240:デフォルトの名無しさん
07/07/10 17:22:09
横170×縦250の
テクスチャー読み込んで、スプライトで表示したら、
勝手に255×255にされたんだけど、これは仕様なのかな?


241:デフォルトの名無しさん
07/07/10 17:42:19
仕様でつ 170*250→256*256

242:デフォルトの名無しさん
07/07/10 18:43:12
DirectX8の時は自由なサイズ使えたんだけどなあ。
グラボとかによるのかな


243:デフォルトの名無しさん
07/07/10 19:53:59
DX8から今でもスプライトなんか使い続けるなよな。
なんで重くて汎用性の無いものを何年も使うのか分からん。

244:デフォルトの名無しさん
07/07/10 20:44:10
そもそもDirectXにスプライトなど無い。

245:デフォルトの名無しさん
07/07/10 20:51:00
あるにはあるけど着飾ったものだからね。
だから重いし汎用性も薄い。

246:デフォルトの名無しさん
07/07/10 21:10:37
だから無いって。

247:デフォルトの名無しさん
07/07/10 21:10:51
スプライトで十分な用途ならわざわざポリゴン使うより生産性高くていいじゃん

248:デフォルトの名無しさん
07/07/10 21:17:07
ポリゴンに最適化されてるGPUにそりゃないべ

つうか板ポリの方が汎用性たかくね

249:デフォルトの名無しさん
07/07/10 21:18:43
無いものをどうやって使うつもりなんだ?

250:デフォルトの名無しさん
07/07/10 21:23:25
JPEGファイルで抜き色(透明にする色)を指定したいのですが、上手くできません。

現在、D3DXCreateTextureFromFileExを用いています。
BITMAPファイルなら上手くできるのですが・・・

どうしたらJPEGで抜き色を指定できますか?教えてください。

251:デフォルトの名無しさん
07/07/10 21:53:41
マスクを作るとか、jpgなら思い切ってddsにするとか

252:デフォルトの名無しさん
07/07/10 22:11:14
そういう用途にjpegは向いていない。
というわけで、jpegについて調べてみると勉強になると思う。

"jpeg ノイズ" とかで調べてみると情報が引っかかるだろう。

253:デフォルトの名無しさん
07/07/10 23:25:46
でも別にしたい奴向けにできるようにしておいてもよさそうなもんだけどな
てか、むしろjpegだけ弾くとか器用だよなw
まあ、できるようにしておくとQ&Aで聞いてくる奴がいることを予想できるからあえて切ってるんだろうな

まあ、jpegなんかマスクにしたら結果はあきらかだがな

254:デフォルトの名無しさん
07/07/11 00:04:50
>>250
テクスチャをロックして自分で該当部分のα値をセットすれば良いだけ。
悩む所など微塵もない。

255:デフォルトの名無しさん
07/07/11 00:09:30
SDKのテクスチャツールで頑張ってるとみた

256:デフォルトの名無しさん
07/07/11 06:17:12
このスレでスプライトっつったらD3DXのSpriteのことだべ。
誰も、厳密なスプライトアーキテクチャを指してなんてしゃべってないでしょ。

257:デフォルトの名無しさん
07/07/11 09:30:50
D3DXのスプライト関数あるの知ってるくせに、自分の知識をひけらかしたいのか、したり顔で
          ____   
       / \  /\ キリッ
.     / (ー)  (ー)\      
    /   ⌒(__人__)⌒ \    <DirectXにスプライトはない!
    |      |r┬-|    |     
     \     `ー'´   /     
    ノ            \
  /´               ヽ              
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.    
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))


          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)
| / / /     |r┬-|    | (⌒)/ / / //   だっておwwwwwwwwwwwwwwwww
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー'´      ヽ /    / 


プログラマーってこういう空気読めない奴多いよなあ・・・


258:デフォルトの名無しさん
07/07/11 09:45:47
>>244>>257も十分言いたい事は分かるから・・・
お互い空気読みつつ穏やかにいこうよぜ

259:デフォルトの名無しさん
07/07/11 09:47:13
間投助詞ダブった、スマソ

260:デフォルトの名無しさん
07/07/11 09:57:01
>>258
でも、マイクロソフト自らスプライトっていう表現使ってるのに、わざわざ
「スプライトじゃない!!」って言う奴は馬鹿じゃん

しかも、質問に答えるわけでもなく聞いてもいない事を偉そうに言ってさ

ま、俺もD3DXのスプライト機能は使ってないけど


261:デフォルトの名無しさん
07/07/11 10:37:04
そもそもID3DXSpriteをスプライトとか言っちゃうから、
スプライトとポリゴンを比較する>>247みたいな馬鹿が出てくるんだよ。

262:デフォルトの名無しさん
07/07/11 11:21:01
>>247 だって別に間違えた事言ってないでしょ

スプライト関数用意されてて、それを使ってすぐ表示出来るんだから生産性は高いでしょ
インフォメーション程度に2D表示するだけなら、スピードなんて遅くたっていいし。

2DゲーでID3DXSprite使うのはどうかと思うけど、ID3DXSpriteをスプライトと言うのは間違いではないよ

昔のゲーム機についてた所謂”スプライト”なんて、過去の遺物なんだから2Dとして表示する物を”スプライト”と言ってもなんの問題もないじゃん

どうして、どーでもいい細かい事にこだわる奴が多いのかなあ・・・
こだわってるというよりは、知ってるくせに認めたくないと言うか・・


263:デフォルトの名無しさん
07/07/11 11:35:36
ポリゴンを使うID3DXSpriteとポリゴンを比較している時点で大間違いなんだよ。
そうやって間違いを認めずに繰り返すから、それを見た初心者が勘違いをして意味不明な質問をすることになる。

264:デフォルトの名無しさん
07/07/11 20:46:00
もしかするとID3DXSpriteの中身がDrawPrimitiveだということを
分かってない奴がいるのかもしれん。

265:デフォルトの名無しさん
07/07/11 22:47:09
D3DXってソース公開されてんの?

266:デフォルトの名無しさん
07/07/11 22:59:01
ねえよ

267:デフォルトの名無しさん
07/07/12 02:58:17
ソースが公開されていなくてもPIX使えば必要な情報は十分わかるからなぁ。
頂点バッファ作成時の設定や更新頻度、DrawIndexedPrimitiveを呼ぶときのレンダーステート等。

「高レベル描画APIで十分ならわざわざプリミティブ描画APIを使うより生産性高くていいじゃん」
なら別に異論はないけど、元々スプライトってハードウェアのプリミティブ機能だっただけに、
「スプライトで十分な用途ならわざわざポリゴン使うより生産性高くていいじゃん」には違和感がある。

てか実際にDirect3DにはPoint Spriteって名のハードウェアスプライトが存在するし。
やっぱ誤解招きやすいと思うよ。

268:デフォルトの名無しさん
07/07/12 06:33:52
まあ、荒れるの承知で書くけど、PointSpriteはポリだぜ。
現在、ハードウェアスプライトを実装するメリットは無いし。
DirectXにはポリしかない。名前だけスプライト。

ただ、そんな事は100も承知で
このスレでスプライト=DirectXの機能 or 自前の板ポリ
の事なのは自明。
イチイチ「スプライトじゃない」とか言う意味は無い。

269:デフォルトの名無しさん
07/07/12 07:00:16
>>268
同意。
いちいちハードウェアスプライトの話をもってくる奴ウザスギ
いくらなんでも空気読め無いにもほどがある

270:デフォルトの名無しさん
07/07/12 08:29:32
間違っていることは明白なのに、素直に認められないのがプログラマのプライド。

271:デフォルトの名無しさん
07/07/12 12:58:13
>>268
>DirectXにはポリしかない。名前だけスプライト。

そういう意味で言ってるんじゃなくて、
「ポリゴンかスプライトか」という表現は、
プリミティブタイプにどっちを使うべきかみたいな議論でもありうるんだけど、
とにかく情報が欠落しまくりのネット上の議論だと
「スプライトってD3DXとプリミティブタイプのどっちのこと言ってる?」
と聞き直す羽目になることが多いという話。
・点 + (ポイントスプライト)
・線分
・三角形
のどれよ? と。まあ線分はありえんけど。
別に聞き直されるのがうざくなければD3DXのをスプライトと呼ぶのを止めはせんよ。

てか、ポイントスプライトって帯域圧縮効果はそこそこあると思うだけどな。
デモ用のパーティクルシステムとか結構ポイントスプライト使ってない?
あれをハードウェアスプライトと呼びたくないなら別に構わんが。

272:デフォルトの名無しさん
07/07/12 16:07:48
ここで
「DirectXのはスプライトじゃない」って言い張ってる馬鹿は、スプライトを狭義の意味で捉えてるだけなんだよね。
よーするに「ハードウェア機能としてのスプライトしかスプライト」しか認めないって言ってるだけ。

そもそも、スプライトって”表示画面のイメージパターン”っていう意味だから、DirectXでの表示もスプライトって言って構わない
古くさい考え方しか出来ない奴はファミコンとかX68000のゲームでも作ってろww


273:デフォルトの名無しさん
07/07/12 16:33:58
誤解される表現をわざわざ意地になって使う奴って、何が楽しくてやってるんだろう?

274:デフォルトの名無しさん
07/07/12 16:37:51
いちいちスプライトという言葉に反応するやつは
FM-TOWNSで「これはスプライトぢゃないっ!!!」とか言ってたやつだな

275:デフォルトの名無しさん
07/07/12 16:45:59
どうせ「スプライトっていうなー」言ってもみんな言うんだし、
ならD3DXのはスプライトでいいじゃんと思うんだけど、
>>268のみたいに「ポイントスプライトはハードウェアスプライトじゃない」は違和感ある。
ドライバレベルで定義されてるんだしハードウェアでいいんじゃね?
何でそこだけやたら狭い定義を採用するんだと。

276:デフォルトの名無しさん
07/07/12 16:48:34
>>273
だからさ・・・どう誤解するの?

今、ハードウェア機能のスプライト使っての開発なんてないだろ。板ポリかバッファにイメージデータの転送だろ。
2Dをスプライトって言って誰が困るのよ?

くだらないこだわりしてる奴はただの老害


277:デフォルトの名無しさん
07/07/12 16:54:07
もう全部スプライトってことでいいよ。
DrawPrimitive使った板ポリ描画もスプライト。
BitBlt使った矩形転送もスプライト。
これで満足だろ?

278:デフォルトの名無しさん
07/07/12 17:08:46
>>275
そういやD3D10からポイントスプライト廃止だっけ。
まあGeometry Shaderでエミュレートできるからこその廃止とはいえ
パフォーマンス大丈夫なんかいな。

279:デフォルトの名無しさん
07/07/12 17:17:00
アルファテストもシェーダで書けるからという理由でD3D10から廃止だしなぁ。
リセット感がすげえ。

【消えたもの】
・固定機能頂点処理
・アルファテスト
・ユーザークリッププレーン
・フォグ
・シェーダモードのGouraudとFlat
・D3DFILL_POINT
・TLVERTEX描画

280:デフォルトの名無しさん
07/07/12 17:29:56
>>277
背景と別レイヤーに見せかければソフトウエアスプライトと呼べるが、
単純に描画するだけではスプライトとは呼べない。
よって大間違い。

281:デフォルトの名無しさん
07/07/12 17:35:24
初心者が関数とかインタフェイスをカタカナで書いて、
訳の分からない内容の質問をしているのを見かけるが、
結局こうやって勝手なカタカナ表記を使う奴がいるから真似をするんだろうな。

普通にインタフェイスの名前をそのまま書けばいいだけで、綴りに自信がなければ確認すれば済むのに。

282:デフォルトの名無しさん
07/07/12 17:54:33
>>280
あーBitBltでD3D9のStretchRectみたいなのを連想したんだな。

すまんね。
DirectDraw(+カラーキー)とかGDIのマスク描画みたいなのを想像してた。
当時もスプライト論争あったから。

GDIのBitBltでソフトウエアスプライトを実現する方法とか
もはや古代技術になりつつあるけど。

でもこいつらも多分君の定義だとソフトウエアスプライトに入るはずなんで
広い心で入れてやってくれ。

283:デフォルトの名無しさん
07/07/12 19:40:36
おまえらスプライトの定義はよそでやれよ

284:デフォルトの名無しさん
07/07/12 20:36:16
初心者が落とし穴にはまって騒いで本当うるさくて
うざくてたまらないのがスプライトとカラーキーだ。




285:デフォルトの名無しさん
07/07/12 20:45:14
カラーキーはDirectX以前の問題な気もするが。
いくら初心者スレでもC(C++)をある程度理解してたら途中に画像描画も通ってそうだけどな。

286:デフォルトの名無しさん
07/07/12 21:52:30
質問失礼します。

ビルド時に
error C3861: 'D3DX_SKIP_DDS_MIP_LEVELS': 識別子が見つかりませんでした
と言われ、ビルドが通りません。

D3DX_SKIP_DDS_MIP_LEVELS の定義場所が知りたいです。
分かる方いらっしゃいますでしょうか?

XP SP2
VS2005
DirectX 2007 April
です。
よろしくお願いします。

287:デフォルトの名無しさん
07/07/13 01:21:28
>>274
なつかしいw


288:デフォルトの名無しさん
07/07/13 01:41:06
質問失礼します。

新たに社内用開発ツールを作成したく、
そのツールにて高速な2Dの描画(アニメーション)を行いたいのですが、
現在まで使用していたAPI関数では表示が追いつかない可能性がある為
新たに高速に描画を行える物を学びたいを思っております。

現行の開発環境がVS2005

ツールを配布したいPCは
OS:XP(SP2)
.NexFramework2.0インストール済み

なのですが、DirectX10はVista専用
2D描画は9.0以降WindowsSDKに引っ越したとのこと
どれを学ぶのが賢いのか分かりかねています。

できるなら容易に関連書籍が購入できるとありがたいのですが
学ぶのに何が好ましいかどなたか教えていただけませんでしょうか。
言語はB,C/C++ができますがWindows上にてのプログラム経験は浅い為、
勉強する覚悟はできています。

宜しくお願い致します。


289:デフォルトの名無しさん
07/07/13 02:05:00
2Dのあぬめーひょんって具体的にどんなーん?
単純にスプライトを大量に表示する必要があるってんなら兎も角、
ピクセルをゴリゴリ弄るような処理ではDirect3Dはなんの力にもなれないよー。

290:デフォルトの名無しさん
07/07/13 02:48:35
抜き色無しのアニメーションならGDIでも十分高速。

291:デフォルトの名無しさん
07/07/13 06:57:00
Direct3D
○:抜き色有・無描画、拡縮、回転、それらの同時掛け
X:ピクセル単位の処理
その他
グラフィックボードによって動作が違うことがある(大抵は大丈夫、ただ客が馬鹿だと苦労する)
1ドットに対して正確に色をおかなきゃいけないときに拘ると最悪(できないわけじゃないだろうけど・・・)
デバイスのロスト等描画以外でかなり手間がかかる、復旧方法を全部知っておかないと苦労する

GDI
○:抜き色有・無描画、拡縮、回転、ピクセル単位の処理
X:抜き色有・無描画、拡縮、回転の同時掛け
その他
Direct3Dと比べるとかなり遅い、環境による差が少ない、面倒が少ない

292:286
07/07/13 11:52:44
解決しました。

SDK 2007 April の d3dx9tex.h に

//-----------------------------------------------------------------------------
// D3DX_SKIP_DDS_MIP_LEVELS is used to skip mip levels when loading a DDS file:
//-----------------------------------------------------------------------------

#define D3DX_SKIP_DDS_MIP_LEVELS_MASK 0x1F
#define D3DX_SKIP_DDS_MIP_LEVELS_SHIFT 26
#define D3DX_SKIP_DDS_MIP_LEVELS(levels, filter) ((((levels) & D3DX_SKIP_DDS_MIP_LEVELS_MASK) << D3DX_SKIP_DDS_MIP_LEVELS_SHIFT) | ((filter) == D3DX_DEFAULT ? D3DX_FILTER_BOX : (filter)))

と定義してありました。

よって、SDKバージョンの相違でした。

293:デフォルトの名無しさん
07/07/13 12:59:54
質問失礼します。
よくXFileを使うくらいなら独自形式を使え、といった話になるのですが
独自形式に変換するためには何のファイルから変換するのが分かりやすいでしょうか?
アニメーション情報もキーフレームでファイル内に含むことが出来るように
したいのですがよい方法はありませんか?

294:デフォルトの名無しさん
07/07/13 13:06:12
自分が使っているモデリングソフト用のプラグインを作るだけ。
余計な形式から変換する必用は微塵もない。

295:デフォルトの名無しさん
07/07/13 13:34:43
なるほど、ではMax用のプラグインを制作してみます。
ありがとうございました。

296:デフォルトの名無しさん
07/07/13 23:42:23
Maxってフォーマット公開されてたっけ?

297:デフォルトの名無しさん
07/07/14 01:11:07
プラグインを作るのにフォーマットなんて関係ないだろ。

298:デフォルトの名無しさん
07/07/14 15:30:59
m_pMesh->Release() ←こういうような
Releaseし忘れを警告してもらえる方法ってありますか?
自分の環境だとリリースしなくても何にも警告でないんです…

299:デフォルトの名無しさん
07/07/14 15:40:01
テクスチャについて質問なのですが
フォーマットD3DFMT_D24S8で生成されたIDirect3DTexture9を
状況によってD3DFMT_A8R8G8B8で扱うといったようなことはできないのでしょうか?

なぜこんなことを、というとシェーダー内でサンプリングする際に
D3DFMT_D24S8でセットされたテクスチャはtex2Dを使ったときに
深度比較としてあつかわれてしまうのですが、
(通常shadow mapとかであればそれを意図しているので問題ないのですが)
あくまで通常のARGBとして扱いたい場合どうすればいいんですかね。
テクスチャは毎フレーム更新されるので、
あまりコストのかかる処理は避けたいです。


300:デフォルトの名無しさん
07/07/14 18:25:33
上司か先輩か知らないが、デバッガ気取りのそのクソ野郎のPCを起動し、
コンパネのDirectXを開き、Direct3DのタブのUse Retail Version of Direct3Dのチェックを入れろ


301:デフォルトの名無しさん
07/07/14 18:30:59
>>299
Direct3DではデプスバッファをARGBとして読むことは不可能。
代替処理として、深度をカラー情報に格納するシェーダを書く必要がある。

302:299
07/07/14 20:00:03
>>301
ありがとう、
なるほど、じゃあ
通常レンダリング時に
通常ピクセル>COLOR0
深度値>COLOR1

みたいにマルチレンダーターゲットとかにして2枚つくるしかないのかな?

303:デフォルトの名無しさん
07/07/14 21:43:11
テクスチャについて質問なのですが
Zオーダー指定の違うテクスチャを重ねると、上になったテクスチャの周りに、デバイスクリア色で縁が付きます。
これは、SetRenderState(D3DRS_ZENABLE, TRUE)でZオーダー指定すると回避できないのでしょうか?
それとも、なにか他の指定方法で回避可能でしょうか?

よろしくお願いします。

304:デフォルトの名無しさん
07/07/14 22:10:53
アルファブレンド(透過)がされていない訳じゃなくて?

305:デフォルトの名無しさん
07/07/14 22:45:24
>>304
透過されますが、絵の透明色と非透明色の境界にデバイスクリア色がでます。
文字のテクスチャを表示すると、縁取り文字みたいに表示されます。
他の透明色付きテクスチャも同じ現象が出ます。
Zオーダが同じならでません。
Zオーダーとアルファブレンドが相性の悪いのはわかってるのですが、
透過色を使用していない(上位ビットが0xFF000000)データでも出ます。
透明色側に縁が出ているような感じで、ずれているような表示ではなく
周りにデバイスクリア色が付いているような感じになります。

306:デフォルトの名無しさん
07/07/14 22:54:16
>>305
現象が何かも確認できていないうちに回避策もあったもんじゃないんだが。

1) 拡大表示か何かでアルファ値が補間されて、境界部分が半透明状態になる
2) サーフェイスクリア直後のサーフェイスに1)を描画したところ
  サーフェイスクリア色とブレンドされるようなレンダーステートになっていた。
  さらにアルファテストもやっていたので、完全透明なところ以外はZ値が更新される
3) その上から背景(推測)を描画したところ、Z値が更新されていないところのみ描画された。

という状況なのかね?


307:デフォルトの名無しさん
07/07/14 23:26:28
>>306
まず、拡大縮小はしていません。
きっちりした透明色(0x00000000)と非透明色(0xFF??????)の境界、透明色側に
デバイスクリア色がでます。
描画順番にかかわらず出ます。(あきらかに後から上書きしたZが0.0の画像にも縁が付く)

テクスチャは手前も後ろもD3DXCreateTextureFromFile()で読み込んだpngファイル。
縁に半透明処理等はしていません。

背景Zオーダー1.0 前景Zオーダー0.0 → 縁が付く
背景Zオーダー0.0 前景Zオーダー0.0 → 縁が付かない

普通にDrawで描いてるんですけどね。

308:デフォルトの名無しさん
07/07/14 23:39:06
>>307
描画順序にかかわらずってのが謎だねぇ。
それ本当にサーフェイスクリア色?

とりあえずよくわからんのでPIX for Windows使ってピクセルの色変化履歴見てみてみたら?


309:デフォルトの名無しさん
07/07/14 23:39:07
>>307に補足
画像は既に256×256に切ったものなので、読み込み時に拡大縮小はかかっていません。


310:デフォルトの名無しさん
07/07/14 23:41:16
>>308
赤でクリアすると赤く、グレイデクリアするとグレイになります。
何かの影響だとは思いますが、デバイスクリア色が出ているのは間違いないと思います。
とりあえずご指摘のPIX for Windowsで変化を見てみます。
ありがとうございます。


311:デフォルトの名無しさん
07/07/14 23:43:40
z が 0.0 か 1.0 忘れたけど、丁度のやつは
グラボによって表示されないことがあったりとか過去に聞いた気がする
0.01 や 0.99 くらいにしてみたらどうだろ

312:デフォルトの名無しさん
07/07/14 23:44:44
>>310
これね。まあがんばってちょ。
URLリンク(msdn2.microsoft.com)
URLリンク(msdn2.microsoft.com)

313:デフォルトの名無しさん
07/07/14 23:48:18
>>311
文字表示に横着しまして、ID3DXFontを使用しています。
その表示がZ0.0なので、強制的にトップは0.0で表示(後ろの字が消えるように)しています。
あと、Z深度をいじってみたんですが、結果としては変わらなかったです。(Z値が違うと縁)
後ろのZ深度は変更してみます。
ありがとうございました。

314:デフォルトの名無しさん
07/07/14 23:49:09
>>312
リンク提示ありがとうございます。

315:デフォルトの名無しさん
07/07/15 02:16:35
>>303
ピクセルとテクセルが0.5ずれてる話は知っている?
テクスチャの拡大縮小フィルタはどう設定している?
D3DSAMP_ADDRESSU, Vは何に設定している?

316:デフォルトの名無しさん
07/07/15 12:40:05
なんかすげーちょっとした設定間違いのような気がする
いままでそんな報告なかったし

アルファの掛け合わす設定が間違ってるとか
下の色と混ざるように設定してはいるものの
設定が間違っててアルファが0のときに下の色が描画されてなくて
結果クリア色と混ざっちゃうとか
テクスチャの色もデバイスクリア色と同じ色でクリアしてて実は・・・とか

317:デフォルトの名無しさん
07/07/15 12:42:23
とりあえず見てみんとしょうがないのは
アルファの設定とブレンドの設定とZの比較設定とZの更新設定と
テクスチャの色とテクスチャのフォーマットとポリゴンの色かな?

318:デフォルトの名無しさん
07/07/15 17:17:35
DXUTは今後も生き残れると思いますか?
それともいつものごとく無かったことにされてしまいますか?

319:デフォルトの名無しさん
07/07/15 17:27:56
>>318
文章がおかしい。「それとも」の使い方を明らかに間違っている。

投稿する前に文章を読み直す癖をつけましょう。

320:デフォルトの名無しさん
07/07/15 17:39:02
「それとも」の使い方を明らかに間違っている。

321:デフォルトの名無しさん
07/07/15 17:58:37
「それとも」の使い方を明らかに間違っている。

322:デフォルトの名無しさん
07/07/15 19:33:44
座標p,速度ベクトルv,上ベクトルuの物体を、
座標pp,速度ベクトルvv,上ベクトルuu
へ変換する行列を作りたいのですが、どうすればいいのでしょうか?
ヒントでも良いので御願いします。

323:デフォルトの名無しさん
07/07/15 19:50:51
D3DXUTって2ヶ月ごとに互換性なくなるものと
いままで思ってましたがそうでもないんですか?

324:デフォルトの名無しさん
07/07/15 20:02:55
>>323
「それとも」の使い方がおかしい。

325:デフォルトの名無しさん
07/07/15 20:15:32
>>322
数学と物理を学びなおすのと、現実を見たほうがいいと思う。
とりあえず1つ1つの計算を行列にすればあとは掛け合わせて1つの行列にするわけだし。
まぁ、この例だと無理だが。

解釈によっては車が
 東京(p)にあって 停車中(v)で 上方向(u)は空を向いている
何か色々あって車が
 大阪(p)に移動し 地中方向に時速60km(v)で進みつつ 横転している(uu)
とか訳の分からんことに。
例えば前へ進むとかじゃなく、どの方向に進むのかちゃんと決めてやらないとな。

326:デフォルトの名無しさん
07/07/15 20:19:31
ESP使ってやれよ。
ゲームキャラの移動か誘導弾じゃねえの?


327:デフォルトの名無しさん
07/07/15 20:28:13
メッシュを白く点滅させたいんですがどういった方法が考えられますか?

328:デフォルトの名無しさん
07/07/15 20:36:38
用途は?
もしダメージ食らいエフェクトとしての点滅だったら、俺はその表現は嫌いだからな。


329:デフォルトの名無しさん
07/07/15 20:38:04
まさにそんな感じで使いたいんですが、なんかダメなんですか?

330:デフォルトの名無しさん
07/07/15 20:38:35
>>326
ESPって?

331:デフォルトの名無しさん
07/07/15 20:40:27
>>330
相手の意図を読みきってベストな回答を出す事

332:デフォルトの名無しさん
07/07/15 20:51:21
なるほど。トン。

333:デフォルトの名無しさん
07/07/15 21:04:36
>>327
やり方は無数にあるが、
「メッシュ全体に色を加算」を固定機能でやると仮定すれば
D3DRS_TEXTUREFACTORに点滅色を設定して、
SetTextureStageState(1, D3DTSS_COLOROP, D3DTA_ADD);
SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_CURRENT);
SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_TFACTOR);
のような感じか。

334:デフォルトの名無しさん
07/07/15 21:05:33
>>325
すいません。では、弾が
位置p(1,1,1)、速度v(0,0,1)、上(0,1,0)から
位置pp(3,3,3)、速度vv(1,0,0)、上(0,0,-1)
に移動する時の、この姿勢を変換する行列の求め方を教えてください。

335:デフォルトの名無しさん
07/07/15 21:25:04
>>333
D3DTA_ADDというのはありませんでしたので、
代用として適当に見つけたD3DTSS_ALPHAOPでやってみました

他の色はいけるんですが、白を合成しても変化ありませんでした
白で点滅させることはできないんですかね?

336:デフォルトの名無しさん
07/07/15 21:32:17
>>334
4x4の行列の[0][0](._11)に何が入るか理解してる?

337:デフォルトの名無しさん
07/07/15 21:37:19
>>335
押してダメなら引いてみろ。

338:デフォルトの名無しさん
07/07/15 21:41:58
>>335
D3DTA_ADDの誤記の代わりとしてはD3DTSS_ALPHAOPはダメ。D3DTOP_ADDが正しい。

339:デフォルトの名無しさん
07/07/15 22:00:47
>>338
おお!白でも合成できました
ありがとうございます

340:デフォルトの名無しさん
07/07/16 02:32:16
内部でD3DXMatrixScalingを使わないで済むように
Xファイルのサイズを変更したいんですがそういったソフトはありますか?

341:デフォルトの名無しさん
07/07/16 02:40:09
そういう計算を事前に済ましておくということも、
自前フォーマットを採用する理由の一つ。


342:デフォルトの名無しさん
07/07/16 06:23:23
340のやりたいことと自前フォーマットは全然関係ないと思うが。

343:デフォルトの名無しさん
07/07/16 06:35:42
まあ最近の若いのには、質問には答えず
どうでもいいチラウラばかり書きたがる人間が多いからな

344:デフォルトの名無しさん
07/07/16 07:05:57
本来なら予めゲーム内の『1』という単位を決めるべきなんだよな。
例えば『1』を『1メートル』としていれば、人や車などをモデリンクソフトでどれぐらいの大きさで吐き出せばいいか分かりやすいし。

345:デフォルトの名無しさん
07/07/16 08:36:41
>>340
変更したかったら読み込んで書き替えて書き出せばいいだろ。
Direct3D自体に簡単に読み書きできるようにパーサが付いてるんだから。
なんでプログラムを作る人間なのにその程度のことをやろうとしないんだ?

346:デフォルトの名無しさん
07/07/16 11:30:57
おまえら
「そういうソフトはあるだろうけど俺はしらね。つうか自分で作った方が早くね」
と正直にいいなさい

347:デフォルトの名無しさん
07/07/16 16:41:59
だって他ツールはあまり信用できないよ。
ツール独自のフォーマットのほかにXファイルの読み書きが出来たとしても
フレーム名を変えられたり、勝手に最適化されて頂点が入れ替えられるのが邪魔なこともあるし
自分でやるのがいいって。

348:デフォルトの名無しさん
07/07/16 20:59:09
>>346
>>347に同意
みんな色々探したんだけど
ホントにないんだよ
・細かいところで整合性があってない
・そもそも機能を満たしてない
・1つの機能の実現の仕方が普通の方法とは異なる(そのソフト独自のデータを持つ)
・無駄に最適化や圧縮がしてある
とかありがちなのから、この他にもたくさん問題がある
3Dソフトでフォーマット→フォーマット変換はできないとさえ思う

そもそも自社のフォーマットをサポートしつつ他のフォーマットまでサポートするってのが
作業量的に無理なんじゃないかと思う

349:デフォルトの名無しさん
07/07/16 23:50:59
最終的にXファイルを出力したツールで(機能があればだけど)編集・調整すりゃ
整合性はとれるんじゃないの?
わざわざ自分で作る必要あるんかね
というかモデルツール用のマスターデータくらい用意しろよ、と

350:デフォルトの名無しさん
07/07/17 00:53:44
だから出力用プラグインぐらい自分で作れと。

351:デフォルトの名無しさん
07/07/17 07:26:18
>>349
>最終的にXファイルを出力したツールで(機能があればだけど)編集・調整すりゃ
>整合性はとれるんじゃないの?
そうやって物事の表面しかみてない発言やめろ
一口に出力っていったってフレーム名がめちゃくちゃだったり
ちゃんとサポートできてなかったり、アニメーションがついてなかったり
できてるように見えて微妙にUVの値が変だったり
ロクなもんがねーのがいまの状況なんだよ
モデリングツールのパッケに

○Xファイル出力

なんて書いてあったって騙されちゃ駄目
大抵、アニメーション、スキニングのサポートは無い
してあってもどこか変。
多分、フレーム階層のもんとワンスキン構造のもんの整合性がとれてないのと
その辺の整合性をとるのが面倒でどこもやってないっぽい

現状、出力プラグインを作るのが正解

352:デフォルトの名無しさん
07/07/17 10:46:37
>>351
すまん。俺が言ってんのは>>340への内容。
希望通りの出力できてんなら他ツールなんて不要だろ、という意味
が、現状の話もよくわかった。つまり

○現状、出力プラグインを作るのが正解
◎現状、出力プラグインを作って売るのが正解



353:デフォルトの名無しさん
07/07/17 11:15:38
そもそも一般的な3Dソフトは、レンダリングまでの過程をサポートしているだけで、
途中経過のデータを出力するのを考慮していない。
だからプラグインで無理矢理書き出す形をとっているわけだが、
中途半端なデータにどういう意味を持たせるかは、個々で決めるしかない。
しかも補助用のプラグインが途中経過のデータを引き出す方法を公開していなかったり、
標準機能のレンダリングに連動して初めてデータを生成するものまである。

結局エクスポート部分どころか、かなりの部分を自分で書かないとならない。
しかし趣味でプラグインを書いているレベルの人間はほとんどいない。

洋ゲーのカスタマイズツールはエクスポート用のプラグインとセットになっている場合がけっこうあるが、
日本では全く見かけられない。

354:デフォルトの名無しさん
07/07/17 18:37:13
プラグイン作るのが面倒だったらもうXファイルでいいんじゃねとか思うのは俺だけか。
趣味で作っている作品をさらに追求したいわけなんだし、プラグイン作成もその延長だろ。

355:デフォルトの名無しさん
07/07/17 19:52:42
まともなものを作ろうとすると、まずはソフトの購入に大金をはたく必用がある。
フリーで使えるものはスキニングやアニメーションを考えると、はっきり言って全く使い物にならない。

356:デフォルトの名無しさん
07/07/18 01:05:43
中間ファイルなら調度いいのがあるじゃん
ほら、有名なゲームハードメーカーが音頭をとってやってるやつが

357:デフォルトの名無しさん
07/07/18 05:23:34
HDRに関してなんですが、
A16B16G16R16、A16B16G16R16F、A32B32G32R32Fのフォーマットってαブレンドをサポートしていないの?
A8R8G8B8とかに変えるとαブレンドされるのに32bitよりも大きいフォーマットだとされないのは仕様?


358:デフォルトの名無しさん
07/07/18 08:31:29
>>356
またこういう馬鹿が知ったかを。

359:デフォルトの名無しさん
07/07/18 20:14:51
すいません、メッシュを画面のいろいろな位置に表示させると端になるほど微妙に斜めに表示されるんですけど
画面のどの位置にいても正面から見たように表示させることってできませんか?

360:デフォルトの名無しさん
07/07/18 20:36:30
>>359
正射影


361:デフォルトの名無しさん
07/07/18 20:49:00
>>360
できればソースとかでお願いできませんか?

362:デフォルトの名無しさん
07/07/18 21:18:54
とりあえず3D入門的なサイトや本をあたった方が・・・

363:デフォルトの名無しさん
07/07/18 21:48:34
本ならこれとかは?3日前に発売したばかりでVista対応とか書いてるし
URLリンク(www.amazon.co.jp)

364:デフォルトの名無しさん
07/07/18 22:20:36
>>359
D3DXMATRIX matShift;
D3DXMatrixTranslation(&matShift, 0.5f, 0.0f, 0.0f);
matProj *= matShift;
g_pd3dDevice->SetTransform(D3DTS_PROJECTION, &matProj);
これが一番楽よね。

365:デフォルトの名無しさん
07/07/19 01:17:56
>>357
GeForce7とかだとアンチエリアスが使えなかったと思う。


366:デフォルトの名無しさん
07/07/20 08:11:48
>>364ってどのへんが359の求めるものを満たしているんだ?

367:デフォルトの名無しさん
07/07/20 10:29:15
D3DXCreateFontなんですが
戻り値が毎回-2005529767で失敗するんですが
グラボの性能次第で使えなかったりしますか?

SDKバージョンは9.0cの(DEC2004)です。

368:デフォルトの名無しさん
07/07/20 10:46:53
テクスチャにフォントイメージを直接描くことによって回避できます。

369:デフォルトの名無しさん
07/07/20 12:07:28
>>368
テクスチャにフォントイメージを直接描くとはどういうことでしょうか?


370:デフォルトの名無しさん
07/07/20 12:15:31
本当にプログラマか?聞いてばかりで恥ずかしくないか?
「ネットで調べる方法」に「2chで聞く」なんて書いてるクソ学校があるけどな

371:デフォルトの名無しさん
07/07/20 12:45:21
>>369
ロックして描け、それ以上でもそれ以下でもない。

372:デフォルトの名無しさん
07/07/20 15:10:14
>>371
そういうことですか、ありがとうございます。

373:デフォルトの名無しさん
07/07/20 19:20:43
最近、固定機能が許されるのは小学生までのようなふいんきを感じるんですが、
例えば(べつに例えじゃないけど)、DirectX 8.1以上対応の同人ゲーを作るとして、
GPUの貧弱なユーザを考慮してピクセルシェーダも使わないとして、
シェーダを使うメリットは奈辺にありましょうか?

手元で固定機能のコードが動いてるんでこれでいいかなーと思っちゃうわけですが。
将来的にはシェーダ使うつもりですけど。

374:デフォルトの名無しさん
07/07/20 19:23:43
使いたければ黙って使え。

375:デフォルトの名無しさん
07/07/20 20:34:02
自分にとってのシェーダを使わないデメリットを考えてみろ。

それが無ければ、使わなくてもいいんじゃない。

376:デフォルトの名無しさん
07/07/20 21:30:16
アタマイイ

377:デフォルトの名無しさん
07/07/20 22:15:38
自分にとってのDirectXを使うメリットを考えてみろ。

それが無ければ、このスレ見なくてもいいんじゃない。
つか来んな

378:デフォルトの名無しさん
07/07/20 22:48:59
全然詳しくないので質問させてください。
DirectXのバージョンは9.0以上なのですが
ディスプレイのとこを見ると機能が全て利用できませんってことになっています。
ゲームがしたくて色々チェックしたのですがよくわかりませんでした。
どなたかアドバイスしてくださるとありがたいです。
ついでに他のとこも見たところ、ドライバのDDIバージョンは不明になっています。
DirectXバージョンは9.0cとなっています。スレ違だったらすいません。

379:デフォルトの名無しさん
07/07/20 23:04:14
>>378
頭が悪いんだからゲームをしている場合じゃないだろ。
ただでさえ他人よりも劣っているんだから、もっとマシなことに時間を使え。

380:デフォルトの名無しさん
07/07/20 23:13:16
>>378
ここはプログラム板。

C/C++以前にプログラムと何の関係も無い
スレ違い以前に板違い


381:デフォルトの名無しさん
07/07/21 03:13:31
能力のない者は最低スペックのことが頭にひっかかって結局何もできないんだよね。
自分のやりたいレベルのことをこなしながら、それなりに低スペックも救済するのができないのはなんでだろうね。


382:デフォルトの名無しさん
07/07/21 05:47:14
誰に言ってんのキミ

383:デフォルトの名無しさん
07/07/21 10:44:33
明らかに誤爆だろw

384:デフォルトの名無しさん
07/07/21 18:24:21
明らかに自己紹介だろw

385:デフォルトの名無しさん
07/07/21 18:40:01
明らかにイジメだろw

386:デフォルトの名無しさん
07/07/21 18:40:41
自己紹介ワロタ

387:デフォルトの名無しさん
07/07/22 15:38:01
全然詳しくないので質問させてください。
仕事全然できない派遣クンが
「DirectXがプログラムどおりに動かない原因を調べるのは僕の仕事ではありません。」
と言っています。
原因を調べるのは誰の仕事なのでしょうか?

388:デフォルトの名無しさん
07/07/22 15:48:19
それはオマイの周囲の人間が考えることだ

389:デフォルトの名無しさん
07/07/22 15:52:53
>>387
フイタw
そんなの職場によるだろ、ここで質問してどうすんだよ
DirectXのサポート受けられる状態?MSとどういう契約になってる?
もしくはDirectXについてサポートしてくれるような企業と契約してるのか?
ベンダの窓口として、その製品を扱うチームか担当者はいないの?
いなきゃ作れ、体制がまずい
少なくとも、DirectXのバグである疑いがあるなら、その先は派遣君の仕事ではないな
派遣を窓口にさせるわけにはいかないだろ

390:デフォルトの名無しさん
07/07/22 16:11:00
>>387
派遣クンのプログラムのバグなのかどうか調べるのは派遣クンの責任

その派遣クンを1ケ月後に切るか今の契約終了まで使うか決めるのは担当社員の責任


391:デフォルトの名無しさん
07/07/22 16:11:22
>>387
プログラマの仕事だ
そもそも「派遣」という時点では人間失格だ
「お前にはコンビニのバイトが似合う」と言ってやれ

392:デフォルトの名無しさん
07/07/22 16:14:07
>>390
>その派遣クンを1ケ月後に切るか今の契約終了まで使うか決めるのは担当社員の責任
ありえねー
うちの会社なら即日辞めてもらうぞ

393:デフォルトの名無しさん
07/07/22 16:15:28
>>392
即日辞めさせれる契約を結んでいるのかw


394:サポートエンジニア
07/07/22 16:18:04
>>389
>DirectXのサポート受けられる状態?MSとどういう契約になってる?
>もしくはDirectXについてサポートしてくれるような企業と契約してるのか?

派遣が書いたプログラムが動かないからといってサポートしろと言われましても・・・
まずは御社のプログラムに原因がないことを確認いただいて・・・

395:デフォルトの名無しさん
07/07/22 16:20:00
>>392-393
自社の社員なら「お前の仕事だよ、ボケ!」と叱り飛ばせばいいが、
派遣には契約というものがある。
遅刻欠勤がない限り辞めていただくには最低1ケ月は必要。

396:デフォルトの名無しさん
07/07/22 16:28:00
Releaseメソッドが返す値が全部0になっていたら
Releaseし忘れは無いと考えていいのでしょうか?

397:デフォルトの名無しさん
07/07/22 16:49:34
派遣プログラマに任せてる点で会社も社員も高が知れてる

398:デフォルトの名無しさん
07/07/22 16:53:38
>>394
派遣が書いたコードにバグがあるといってる?なんだ、んじゃシラネ

399:デフォルトの名無しさん
07/07/22 17:02:01
>>398
つーか、普通の対応だろ
問題モジュールが自社のものと特定されていない段階でサポートできるかっての


400:デフォルトの名無しさん
07/07/22 17:03:13
>>387
具体的にどんな問題が起こってるかによるかな?
DirectX使ってると必ずぶち当たるけどゲームなら問題ないくらいの誤差なんだけど
業務だとラスタの計算でちょっとずれてるのが気に入らないとかそういう話になると
解決できない場合もある
ターゲットとしてDirectXを使う以上しょうがない問題なのかそうでないのか
調べるにも与えられた期間ではどうしようもない場合もある

具体的にどんなことしたん?

401:デフォルトの名無しさん
07/07/22 17:04:55
デバッガーにプログラミング能力を求めているようなもんか?
デバッガーは不具合を見つけるのが仕事であって修正は別だしね。

402:デフォルトの名無しさん
07/07/22 17:06:02
所詮、派遣だと「言われた通りにコーディングしたけど動きません、調べるのは僕の仕事じゃありません」が関の山だろ

それ以上の仕事は入社試験に受かるような正社員でないとできない




403:デフォルトの名無しさん
07/07/22 17:07:31
ちなみに俺がこういう問題にあたったときは
該当箇所のソースをプリントアウトしてみんなで1行づつレビューしてくれるように頼んでる
2万行ぐらいあっても頑張れば1日でなんとかなるしやってもらったほうがいい

あの悪名高い富○通ですらやってくれたから多分どこでもやってくれると思う
だからプリントアウトして1行づつなにをやってるかレビューさせたら?
原始的な方法だけどこれが一番確実

ソースの内容がそいつしかわかる奴がいないっていうとちょっときついかな・・・
前のソースの改変であればDFっていつツールで差分を出せば済む話だし


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