2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん:2006/09/29(金) 00:09:44
※回答する人も、質問する人も必ず読んでください

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

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

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


2 :デフォルトの名無しさん:2006/09/29(金) 00:10:27
【関連サイト】

MSDN DirectX
http://www.microsoft.com/japan/msdn/directx/default.aspx

DirectX Home Page
http://www.microsoft.com/japan/windows/directx/default.mspx

BBX (掲示板)
ttp://isweb8.infoseek.co.jp/computer/bbx/

DXライブラリ置き場
ttp://homepage2.nifty.com/natupaji/DxLib/

Lamp:ゲーム開発とその学習をサポートするミドルウェア
ttp://lamp.sourceforge.jp/

TWINTAIL LOVERS.
ttp://www.twin-tail.jp/

Pastel's Laboratory
ttp://www.roy.hi-ho.ne.jp/pastel/home/index.html

GamDevPukiWiki - DirectX総合スレ (過去ログ等)
http://gamdev.org/w/?%5B%5BDirectX%C1%ED%B9%E7%A5%B9%A5%EC%5D%5D

GamDevPukiWiki - 3DCG製作ソフト (過去ログ等)
http://gamdev.org/w/?%5B%5B3DCG%C0%BD%BA%EE%A5%BD%A5%D5%A5%C8%5D%5D

ゲームを作るための素材を集めよう まとめサイト
http://paw.my-sv.net/index.html


3 :デフォルトの名無しさん:2006/09/29(金) 00:12:20
前すれ
【C++】 DirectX初心者質問スレ Part10 【C】
http://pc8.2ch.net/test/read.cgi/tech/1153831096/

4 :デフォルトの名無しさん:2006/09/29(金) 00:15:34
てんぷら揚げ終わった

5 :デフォルトの名無しさん:2006/09/29(金) 00:18:17
さっくりサクサク美味しゅうございます

6 :デフォルトの名無しさん:2006/09/29(金) 00:23:21
最近DirectXの勉強を始めまして、現在SampleBrowserのコードを色々いじくっている所なのですが、
Tutorialsのところにある例えば、Tutorial 2: Vertices などを、SimpleSampleやEmptyProjectで実現したいのですが、方法がよく分かりません。
3角形を描画するための初期化、描画、解放を行う関数をそれぞれ、Initial()、Render()、Close()としてdraw.h、draw.cppに記述したとした場合に、それぞれの関数を、メインのソースファイルのどこに記述すればよいのかを教えていただきたいです。
情報が不足していたら、ご指摘願います。
以上、よろしくお願いします。


7 :6:2006/09/29(金) 00:25:00
環境を書くのを忘れていました。
環境は、Visual Studio.Net2005+DirectXSDK(August 2006)+XPです。

8 :デフォルトの名無しさん:2006/09/29(金) 08:49:37
前スレ 986です。

度々ありがとうございました。
無事目的が達成できました。

ちなみに990は別の方が便乗されたようです。

9 :デフォルトの名無しさん:2006/09/29(金) 10:56:54
Xファイルの仕様について質問があります。

スキンメッシュアニメーション(ボーンアニメーション)と、
通常のアニメーションメッシュ、
などの「Xフィアル」について仕様が書かれた
ホームページありますでしょうか?


10 :デフォルトの名無しさん:2006/09/29(金) 11:27:26
つttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/directx9_c/directx/graphics/reference/xfile/constants/dxfile.asp

どんな時でもMSDNだぞ。

11 :デフォルトの名無しさん:2006/09/29(金) 12:20:21
>10はブラクラのようですね。

MSDN ?????
????????
???? ??? Embedded ??
.NET ??
Office ?????????
???? ??? ??????????
Web ??
Win32 ??? COM ??
MSDN ????? ?????
MSDN ????? ?????

他のまともな方お願いします。

12 :デフォルトの名無しさん:2006/09/29(金) 12:58:45
なんか頭が悪すぎる。

13 :デフォルトの名無しさん:2006/09/29(金) 13:28:11
>>11
そのブラウザで見れないんだったらIEで見てみ。
普通にマイクロソフトの開発者向けサイトだから。

14 :デフォルトの名無しさん:2006/09/29(金) 14:02:27
>13
見られました。
今からじっくり見てわからなかったらまた質問しにきます。
ありがとうございました。

>12
俺もそう思いましたw
なんか偉そうな態度のわりには>10は頭悪い感じしますよねw

15 :デフォルトの名無しさん:2006/09/29(金) 14:04:14
>>14
オマエが >>11と同一人物ではないことを願うよ(;´д`)

16 :デフォルトの名無しさん:2006/09/29(金) 18:05:44
CreateVertexBufferの第二引数Usageフラグについて聞きたいんだけど
どんな、組み合わせが一番無難なの?

よろしく

17 :デフォルトの名無しさん:2006/09/29(金) 18:30:06
メッシュって何ですか?

18 :デフォルトの名無しさん:2006/09/29(金) 19:07:14
>>16
用途によりけり。

19 :デフォルトの名無しさん:2006/09/29(金) 19:22:22
>>18
それだけじゃあ、わからんよ
用途ごとに、どんな組み合わせでつかってるの?
用途に合わせた組み合わせを紹介してくれよ

よろしく頼む

20 :デフォルトの名無しさん:2006/09/29(金) 19:29:46
どんな用途に使うのか説明するのが先。

21 :デフォルトの名無しさん:2006/09/29(金) 19:44:35
あなたが、よく使うやつでいいから
用途の説明とそれに合った無難な組み合わせを
5個ぐらい紹介してくれるとうれしい。

よろしく


22 :デフォルトの名無しさん:2006/09/29(金) 19:49:54
どんな用途で使いたいのか教えてくれたら教えてあげるよ。

23 :デフォルトの名無しさん:2006/09/29(金) 19:56:36
>>22
>>21

>あなたが、よく使うやつでいいから

よろしくね
まあ、いくつかのパターンを知りたいだけなんだよ

24 :デフォルトの名無しさん:2006/09/29(金) 19:57:34
質問です
頂点フォーマットのRHWがよくわかりません
2Dのポリゴンを表示するときはRHWを定義して、普通は定義しなくていいと解釈してるんですが
どうですか?

25 :デフォルトの名無しさん:2006/09/29(金) 20:00:23
>>23
それならドキュメントに書いてある通り。

26 :デフォルトの名無しさん:2006/09/29(金) 20:01:46
>>24
Matrox系のビデオカードとかRHWだとクリッピングが働かず、
範囲外に描画すると何にも表示されなくなるので、2Dの場合でも使用はおすすめしない。

27 :デフォルトの名無しさん:2006/09/29(金) 20:02:19
真性の真似してネタ質してるやつウザスギ

28 :デフォルトの名無しさん:2006/09/29(金) 20:10:37
今日からDirectXの勉強を始めたいのですが、本を買ったほうがいいですか?
それともサンプルやチュートリアル、ドキュメントだけで大丈夫ですか?

29 :デフォルトの名無しさん:2006/09/29(金) 20:12:04
実際にやってみて、ダメだと思ったら本を買えばいい。

30 :デフォルトの名無しさん:2006/09/29(金) 20:20:14
>>24
その解釈でOK
頂点が既にスクリーン座標に変換されてますよーフラグ
と思っとけば良いと思うよ

>>28
本買った方が、気楽だし、お金出してる分力が入ると思うよ。
DirectXゲームグラフィックスプログラミング
↑この本が一番無難だと思う

>>25
>>21 >>テンプレ SDK呼んでもわからないから聞いているんだよ

>>27
いや、ネタじゃないんだよ
マジだよ。
いろんな、サイト見ても、みんな0かD3DUSAGE_WRITEONLY + D3DPOOL_MANAGED
ぐらいしか、使ってないしw
みんなも良くわかって使ってるとは思えないんだよね〜
だから、確認したいから質問してるんだよ


31 :デフォルトの名無しさん:2006/09/29(金) 20:23:47
だから状況によりけりなんだから、何に使うのか具体的に書け。

32 :デフォルトの名無しさん:2006/09/29(金) 20:25:13
ごめんよ・・・僕達が不甲斐無いばっかりに
君にすべてを押し付けるようなことになって・・・。
でももうちょっと回答ができそうなんだ、
だから頼む、君の頂点バッファの用途を教えてくれ!


33 :デフォルトの名無しさん:2006/09/29(金) 20:37:04
>>26 >>30
わかりました
ありがとうございました

34 :デフォルトの名無しさん:2006/09/29(金) 20:37:47
>>31>>32
>>21

それにしても、君らもがんばるねェ
たった、5個答えるだけだろ?w
スレが汚れるから、これ以上やめたらw?

35 :デフォルトの名無しさん:2006/09/29(金) 20:43:49
今、ボーンアニメーション再生するツール作ったんだが、
環境によって動いたり動かなかったりする。

開発環境
VC++6.0+DirectX9

1.動くパターン
「d3dx9_25.dllがありません」という警告が出るタイプのパソコンは
d3dx9_25.dllを実行ファイルと同じフォルダに入れると動く

2.動かないパターン
実行できるが、ファイルを読み込むときに
「Xファイルが読み込めなくて」落ちる。
(落ちるのは俺のプログラムの仕様なわけだが)

「2」においてd3dx9_25.dllの新しいのをSystem32に入れてみたり
したがだめだった。

ちなみにDirectX9.0cです。

36 :デフォルトの名無しさん:2006/09/29(金) 20:50:22
>たった、5個答えるだけだろ?w
先生、お願いします!

>落ちるのは俺のプログラムの仕様なわけだが
修正頑張ってください。応援してます。

37 :デフォルトの名無しさん:2006/09/29(金) 20:56:33
>>35
DLLどうこうじゃなくて、単純にプログラムにバグがあるせいだろう。
細かいところはソースを晒すしかない。

38 :デフォルトの名無しさん:2006/09/29(金) 20:58:01
D3DXの細かな挙動の違いに振り回されてるな。
まず間違いなく>>37の言うとおりなので、落ち方晒せ。

39 :デフォルトの名無しさん:2006/09/29(金) 21:03:30
>>35
読み込み時に返ってきている(であろう)エラーは確認した?


40 :35:2006/09/29(金) 21:08:14
>>37 >>38
まず、ファイルを読み込むところ

HRESULT SkinMesh_Class::SKIN_MESH::InitThing(LPDIRECT3DDEVICE9 pDevice,THING *pThing,LPSTR szXFileName,D3DXVECTOR3* pvecPosition)
{
// メッシュの初期位置
//memcpy(&pThing->vecPosition,pvecPosition,sizeof(D3DXVECTOR3));

// Xファイルからアニメーションメッシュを読み込み作成する
if( FAILED(
D3DXLoadMeshHierarchyFromX(szXFileName, D3DXMESH_MANAGED, pDevice, &cHierarchy,
NULL, &pThing->pFrameRoot, &pThing->pAnimController)))
{
MessageBox(NULL, "Xファイルの読み込みに失敗しました",szXFileName, MB_OK);
return E_FAIL;
}
//
AllocateAllBoneMatrices(pThing,pThing->pFrameRoot);

return S_OK;
}

41 :デフォルトの名無しさん:2006/09/29(金) 21:08:41
エラーは返ってないんじゃないのか?
動くか、クラッシュするからしいし。

とはいえ、動く方でデバッグレベル最大にして実行するのは
価値があるとは思うけど。

42 :35:2006/09/29(金) 21:09:30
HRESULT SkinMesh_Class::CreateSkinMesh()
{
SkinMesh.InitThing(pDevice,&Thing,create_skin_mesh_str.file_name,&D3DXVECTOR3(0,0,-1));

return S_OK;
}

43 :デフォルトの名無しさん:2006/09/29(金) 21:09:51
カレントパスが違うからデータが読めないとかいう落ちだったらぶっ殺す。

44 :35:2006/09/29(金) 21:10:31
void OpenFiles(HWND hWnd)
{
OPENFILENAME ofn;
memset(&ofn, 0, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hWnd;
ofn.lpstrFilter =
"x files(*.x)\0*.x\0All Files(*.*)\0*.*\0\0";
ofn.lpstrFile = FileName;
ofn.nMaxFile = MAX_PATH;
ofn.Flags = OFN_FILEMUSTEXIST;
ofn.lpstrDefExt = "x";
ofn.nMaxFileTitle = 64;
ofn.lpstrFileTitle = FileTitle;
ofn.lpstrTitle = "xファイルを選択してください";
if (GetOpenFileName(&ofn)) {

InvalidateRect(hWnd, NULL, TRUE);

strcpy( sm.create_skin_mesh_str.file_name, FileName );
if( S_OK == sm.CreateSkinMesh() )
{
show = 1;
sm.skin_mesh_str.vecPos = D3DXVECTOR3( 0, 0, 0 );
}

}
return;
}

45 :35:2006/09/29(金) 21:11:29
case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDM_END:
SendMessage(hWnd, WM_CLOSE, 0, 0);
break;
case IDM_OPEN:
OpenFiles(hWnd);
break;


46 :デフォルトの名無しさん:2006/09/29(金) 21:13:46
XFile が読み込めなかったって本人が言ってるんだから、
>MessageBox(NULL, "Xファイルの読み込みに失敗しました",szXFileName, MB_OK);
ここ通ってんじゃないの?

D3DXLoadMeshHierarchyFromX の戻り値調べてみなされ。
後は一応、渡してる引数に異常な値が入ってないかどうかも。

パスはありえるな、D&Dで起動してカレントがデフォルトになっちゃってるとか。


47 :35:2006/09/29(金) 21:13:54
コーディングは突貫工事で造ったんで、
汚い・・・っていう突っ込みは簡便してぽ。

>>40 がファイルを読み込むところ
>>42 使いやすいように変更したところ
>>44 mainで開くための関数
>>45 メッセージループで実際に使っているところ

>>他の人
連続カキコスマソ。

48 :デフォルトの名無しさん:2006/09/29(金) 21:13:55
固めてうpろーだに上げろよ。

49 :デフォルトの名無しさん:2006/09/29(金) 21:22:57
その方がいいな。

50 :35:2006/09/29(金) 21:26:41
エラーで、出る
例外処理 (初回) は _show_.exe (D3DX9_25.DLL) にあります: 0xC0000005: Access Violation。

って関係ありまつか?

>>48 >>49
もう少しまってぽ。

>>46
今、プログラムで確認中。

51 :35:2006/09/29(金) 21:39:43
>>46
D3DXLoadMeshHierarchyFromX
の戻り値は0x80004005でつた。

ネット調べると、よくわからない失敗ってことになっているけど・・・。

52 :デフォルトの名無しさん:2006/09/29(金) 21:45:36
>>35氏が腐女子言葉を使っている件について


53 :35:2006/09/29(金) 21:51:29
>>48 >>49

http://aploda.net/dl.php?mode=pass&file_id=0000022030.txt

54 :35:2006/09/29(金) 22:00:54
>>42

HRESULT SkinMesh_Class::CreateSkinMesh()
{
return SkinMesh.InitThing(pDevice,&Thing,create_skin_mesh_str.file_name,&D3DXVECTOR3(0,0,-1));

}

って変えたら落ちなくなったっす。

>>52
嫌いじゃないぜ、もまえみたいなやつ。

55 :35:2006/09/29(金) 22:06:15
落ちなくしたら、
>>50
の例外処理うんぬんが消えまつた。


重要なことを言い忘れてまつた。
(すんません)


読めるモーション付Xファイルと
読めないモーション付Xファイルがあります。

>>35
「1」のケースではすべてのモーション付Xファイルが読めます。
「2」のケースでは読めないモーション付Xファイルが存在します。
(読めるのもある)


56 :デフォルトの名無しさん:2006/09/29(金) 22:11:33
>>51
SkinMesh.InitThing
の戻り値じゃなくて、じゃなくて
D3DXLoadMeshHierarchyFromX
の戻り値だぞ?

ちゃんと、
>MessageBox(NULL, "Xファイルの読み込みに失敗しました",szXFileName, MB_OK);
この行の直前にブレークポイント置いた?

57 :デフォルトの名無しさん:2006/09/29(金) 22:34:34
>>30
俺はパーティクルなんかでは D3DPOOL_DEFAULTに USAGE_DYNAMIC | USAGE_WRITEONLY を使うこともある。

どのような場合でどのような使い方をしたらいいかなんてのはドキュメントに書いてあるし、
そのとおりに場合に合わせて適切なものを選べばいいだけ。

>いろんな、サイト見ても、みんな0かD3DUSAGE_WRITEONLY + D3DPOOL_MANAGED
>ぐらいしか、使ってないしw
>みんなも良くわかって使ってるとは思えないんだよね〜
>だから、確認したいから質問してるんだよ

D3DUSAGE_WRITEONLY + D3DPOOL_MANAGED は
ファイルから読み込んだモデルデータのように一度作成したらその後手を加えない
頂点データに向いている使い方。

そこらの初心者講座とかモデル読んで出してるだけだろうし間違ってはないだろ。

ドキュメントにフラグの意味も、最適化の手法もすべて書かれているのに
よく分かって使ってないなんてヤツは程度が低すぎる。

58 :デフォルトの名無しさん:2006/09/29(金) 22:37:19
>>55
>読めるモーション付Xファイルと
>読めないモーション付Xファイルがあります。
これは当たり前
アニメーションのフォーマットは統一されてないから
読み込む側がいろんな方言に対応しないといけない

59 :30:2006/09/29(金) 23:36:20
>>57
まさしく、質問通りの聞きたかった事を答えてくれて有難うございます。
おっしゃる通り、私は程度が低かったです。
程度が低いレスをしてしまったことも反省しております。

なんだかんだ言って、回答してくれる、ここの人達はやさしいですね。
本当に有難うございました。

60 :デフォルトの名無しさん:2006/09/29(金) 23:46:12
この板はツンデレの楽園だからなw

61 :35:2006/09/30(土) 01:07:43
>>56
>SkinMesh.InitThing
>の戻り値じゃなくて、じゃなくて
>D3DXLoadMeshHierarchyFromX
>の戻り値だぞ?
>ちゃんと、
>>MessageBox(NULL, "Xファイルの読み込みに失敗しました",szXFileName, MB_OK);
>この行の直前にブレークポイント置いた?
ボスの言うとおり、
D3DXLoadMeshHierarchyFromXの戻り値でさぁ。
OutputDebugString()関数でガッチリきゃっちしましたぜ。

>>58
>アニメーションのフォーマットは統一されてないから
>読み込む側がいろんな方言に対応しないといけない
えと、
「同じ実行ファイル」で「環境によって」は
「同一のXファイルが読めなかったり、読めたり」します。




62 :デフォルトの名無しさん:2006/09/30(土) 01:21:55
書き込みはいいから、プログラムをアップした方が早いよ。

63 :35:2006/09/30(土) 01:33:16
>>62
ソースコード?
それとも実行ファイル?


64 :デフォルトの名無しさん:2006/09/30(土) 01:37:03
コンパイルできて実行できる環境をアップローダでアップ。
これで確実に問題点を見つけてくれる。誰かがw

65 :35:2006/09/30(土) 01:37:20
>>62
http://aploda.net/dl.php?mode=pass&file_id=0000022043.zip
一応、実行ファイルはアップロードしますた。
もまえさんの環境で実行してみてケロ。
exeファイルで勇気いるかもしれんが、
そこは信用しちくり。




66 :35:2006/09/30(土) 01:42:23
>>64
ソースコード全部はさすがに恥ずかしい。
中学生の時に書いた(書いてないけど)ポエムを
晒すようなもんだ。

67 :デフォルトの名無しさん:2006/09/30(土) 01:45:59
>>65
信用して実行してみた。
どっちのXファイルも問題なくロードできて表示できたよ。

よって、俺の環境では検証できない('c_`;)

68 :デフォルトの名無しさん:2006/09/30(土) 01:49:34
同じく読めた。
よって以下同文('c_`;)

69 :35:2006/09/30(土) 01:50:34
>>67
漏れの環境では再生できない。
うちにある他のパソコンでは再生できたんだYO。

つーわけで、プログラムのコーディングミスの線は
そろそろ諦めてくれると嬉しぃ。

おじさん、dll関係が怪しいと思うのだよ。
(DirectX9.0cなんだが、更新できてないdllとかありそう)



70 :デフォルトの名無しさん:2006/09/30(土) 01:59:53
>>69
上2行と次の2行がつながってないぞ
例えば、デバイスの初期化できちんとデバイスの能力をチェックしていないとかエラー処理をしていないとか
(そのせいで、初期化に失敗してるのに次に進んでしまって、たまたまそこで落ちてるだけかもしれない)

メッシュロード部分を削ったらちゃんと動く?

71 :35:2006/09/30(土) 02:00:49
動いた人にちょい聞きたい。

ファイル名を指定して実行→dxdiag
でDirectX診断ツール呼び出してくんろ。
DirectXのバージョンって、
DirectX9.0c(4.0900000904)
でつか?

タブで「DirectXファイル」を選択すると
「ファイル d3d9d.dll はデバッグ版です。製品版より遅く動作します。」
って出るんだけど、これって出てるの漏れだけ?

72 :68:2006/09/30(土) 02:03:11
>DirectXのバージョンって、
>DirectX9.0c(4.0900000904)

Yes.


>「ファイル d3d9d.dll はデバッグ版です。製品版より遅く動作します。」
>って出るんだけど、これって出てるの漏れだけ?

SDK入れてりゃ出る。気にすんな。

73 :35:2006/09/30(土) 02:06:03
>>70
言語障害なもんで、正しく日本語使えなくてスマソ。

>メッシュロード部分を削ったらちゃんと動く?
えと、ロード(つーかなにもしないプログラム)は今やってみたけど、へーきでしたぜ。
プログラムは動きます。

74 :デフォルトの名無しさん:2006/09/30(土) 02:13:37
コーディングミスがあるかどうかはソースを見なければわからない。
実行ファイルだけ渡してソースのどこがおかしいとか聞かれてもこまっちゃう

75 :35:2006/09/30(土) 02:13:39
>>68
dクス。

グラッフィックボードのビデオチップって関係ありまつか?
なんせ、5年前のもの使ってるんで・・・。

Creative CT6971(NVIDIA)
GeForce DDR
ビデオメモリ32MB

とりあえず、今からドライババージョンアップしてみる。
つーか、読み込みの段階で失敗してるから、
関係ねぇと思うけど・・・。






76 :デフォルトの名無しさん:2006/09/30(土) 02:16:54
>>75
まぁ試してみた。
読めることは読めたが終了時にエラー。

Direct3D9: (WARN) :Ignoring redundant SetRenderState - 151

スレッド 0xF10 終了、終了コード 0 (0x0)。
スレッド 0x9A4 終了、終了コード 0 (0x0)。
スレッド 0xD38 終了、終了コード 0 (0x0)。
スレッド 0x418 終了、終了コード 0 (0x0)。
Direct3D9: :====> ENTER: DLLMAIN(0367d6e0): Process Detach 00000a64, tid=000007c4
Direct3D9: (INFO) :MemFini!
Direct3D9: (WARN) :Memory still allocated! Alloc count = 124
Direct3D9: (WARN) :Current Process (pid) = 00000a64

77 :デフォルトの名無しさん:2006/09/30(土) 02:17:13
>>75
気持ちはわかるが、やっぱりソースをうpるべきだと思うぞ。

78 :デフォルトの名無しさん:2006/09/30(土) 02:26:17
>>75
ビデオメモリ圧倒的に足りてないんじゃないか?

それにしても、エラーが E_FAIL ってのが謎なんだよな。


79 :35:2006/09/30(土) 02:33:03
ビデオカードのドライバなかつた。
死の予感。

>>76
げげ、終了時のエラーでまつか?
欝だ死のう。
漏れの環境だと一回も出なかったのに・・・。
原因については、ちょい究明するまで待ってくらさい。
(メモリの開放臭いけど)


>>77 
>>74
うpするのちょい待ってケロ。
朝までに解決しなかったらうpする。

うちのパソコン全部で4台あるんだよ。
漏れのパソコン以外の3台では動いたんでつ。
環境はどれもWindowsXP SP2だと思う。


>>78
ビデオメモリ32MBで足りないッすか?
今時の人どんくらい積んでんの?



80 :35:2006/09/30(土) 02:38:32
>>78
関係ないと思うけど、明日
ビデオカード買ってくる。
今って128MBがふつーなんだすね。

ちょい考え直した。



81 :デフォルトの名無しさん:2006/09/30(土) 02:39:42
>うちのパソコン全部で4台あるんだよ。

どんだけ持ってんだよwww

82 :デフォルトの名無しさん:2006/09/30(土) 02:48:23
俺はノート2台にデスクトップ3台あるぞ?
1台はLinux鯖だけど。

ATIとnVIDIAで最低でも2台は欲しい。

83 :デフォルトの名無しさん:2006/09/30(土) 02:48:32
うちビデオメモリ16MBだが動いたよ

84 :83:2006/09/30(土) 02:49:15
スキンメッシュの方もね

85 :35:2006/09/30(土) 02:53:37
動かないって香具師はいないのか?


86 :デフォルトの名無しさん:2006/09/30(土) 03:01:26
>>82
動作検証用か?
個人で持つには持ち過ぎな気がするんだが…
いや、好き好きだからいいんだけどね。

俺はノートと家鯖とMacと…
すまん、うちも3台はあったわ。

87 :35:2006/09/30(土) 04:10:40
http://www.shader.jp/xoops/html/masafumi/cbbs/cbbs.cgi?mode=all&namber=206&type=0&space=0&no=0

なんか同じ症状っぽい。
原因はグラフィックカードの挙動っぽ。


88 :35:2006/09/30(土) 04:27:32
自己完結。
みなさまありがとうございました。
みなさまには厚く御礼申し上げます。


  ,. -‐'''''""¨¨¨ヽ
         (.___,,,... -ァァフ|          あ…ありのまま 今 起こった事を話すぜ!
          |i i|    }! }} //|
         |l、{   j} /,,ィ//|       『おれはCriateDevice関数をHALモードで実行したんだが
        i|:!ヾ、_ノ/ u {:}//ヘ        俺の環境だけD3DXLoadMeshHierarchyFromX関数でエラーが返ったんだ』
        |リ u' }  ,ノ _,!V,ハ |
       /´fト、_{ル{,ィ'eラ , タ人        な… 何を言ってるのか わからねーと思うが
     /'   ヾ|宀| {´,)⌒`/ |<ヽトiゝ        おれも 何をされたのか わからなかった…
    ,゙  / )ヽ iLレ  u' | | ヾlトハ〉
     |/_/  ハ !ニ⊇ '/:}  V:::::ヽ        頭がどうにかなりそうだった…
    // 二二二7'T'' /u' __ /:::::::/`ヽ
   /'´r -―一ァ‐゙T´ '"´ /::::/-‐  \   コーディングミスだとか排他ロックだとか
   / //   广¨´  /'   /:::::/´ ̄`ヽ ⌒ヽ    そんなチャチなもんじゃあ 断じてねえ
  ノ ' /  ノ:::::`ー-、___/::::://       ヽ  }
_/`丶 /:::::::::::::::::::::::::: ̄`ー-{:::...       イ  もっとVGAの恐ろしいものの 片鱗を味わったぜ…




89 :35:2006/09/30(土) 04:37:24
さんざん騒がせた>>35のまとめ
結局なんだったの?

:問題
「スキンメッシュが読み込めねぇ、環境によっては読み込める」
「スキンメッシュのXファイルも、モノによっては読み込めたり、
 読み込めなかったりする」
(D3DXLoadMeshHierarchyFromX関数が環境によっては、
 エラーを返さなかったり返したりする)

:原因
ビデオカードが中途半端にしょぼい5年前のものだった。
しょぼいが故に頂点数?が少ないものについては、
実行できるものの、複雑なものになると実行できない。
しょぼいビデオカード使うやつは3Dのプログラム組むな。

:解決策
以下に示す解決策が有効だと思われる。

1.ビデオカードのドライバをバージョンアップする。
2.「1」がダメならビデオカードが古いなら新しいのを買う。
3.「2」がダメなら新しいパソコンでも買え。

以上、まとめでつた。

改めて、親身になって考えてくれたみなさまには
厚く御礼申し上げます。


90 :35:2006/09/30(土) 04:38:44
で、結局どうやって症状を確認したか・・・。
CreateDeviceを HAL→REF で実行したらうまく行った。

91 :35:2006/09/30(土) 04:46:34
えと、これでも動いた
pD3d->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp, &pDevice ) ) )

HardwareのHALだとアウトで、
SoftwareのHALだと無事動きまつた。

マジこういうバグ、きつい。

92 :デフォルトの名無しさん:2006/09/30(土) 05:03:35
>>91
それ、多分バグじゃないよ。
頂点ブレンドの時の同時参照可能数なマトリクスパレットの数とかの違いが
そのまま出てるだけだと思われ。クラッシュは理由がわからんが。
SOFTWARE_VERTEXPROCESSINGにすると、マトリクスパレット周辺の使用制限は
事実上無くなる。HARDWAREでやってるとデバイスの性能に引きずられる。
DEVICECAPSで違いをよく追っかけてみ。

93 :デフォルトの名無しさん:2006/09/30(土) 08:56:21
>>91
つーかその辺をCAPSでちゃんと調べてHARDWARE/SOFTWAREで分岐させるのは
DirectXでは最低限の礼儀、バグ扱いとかあほかと。

94 :デフォルトの名無しさん:2006/09/30(土) 09:04:04
35みたいな横着者はDX10から始めろ、と言いたい。

95 :名無しさん@お腹いっぱい。:2006/09/30(土) 10:16:35
先日、客先のカチョさんのマウスが動かなくなるトラブルがありますた。
カチョさんは「ウィルス?ウィルス!?」とパニック状態。
ウィルスに感染すると社内報告が大変だそうで、とにかくパニック。
んで見たところマウスにえらくごみが溜まってる。タッチパッドは動く。
マウスをティッシュで拭いて即座に復活。
「マウスに埃が溜まってたみたいですね、拭いて直りましたよ」
「ほんとにウィルスじゃないんですね?」
「えぇ、違います」
「・・・」
「・・・・・」
「いや、やっぱりウィルスじゃないですか?」

(ちがうってばよ!)

>>35
カチョさん、それ多分DirectX側のバグじゃないですよ。



96 :デフォルトの名無しさん:2006/09/30(土) 10:50:33
最近気が付いたんだけど800X600にするとアンチエイリアスっていらないんだな。
単純に解像度を高くするとジャギの問題って消えちまうっぽい。・・・そうだったのか・・・。
別にαかかってるマスクでも0or1のマスクでも結果に違いがなくなっていてちょっとショック。

97 :デフォルトの名無しさん:2006/09/30(土) 11:32:44
チラシの裏にでも書いてろよ。

98 :デフォルトの名無しさん:2006/09/30(土) 12:41:19
バグじゃないじゃんか。。。
長い自演だったぜ

99 :デフォルトの名無しさん:2006/09/30(土) 17:34:58
フル画面の時にウィンドウキーを無効にしたいんですが、
どうやればいいんでしょうか?

100 :デフォルトの名無しさん:2006/09/30(土) 18:39:03
>>99
別の方法考えろよ。

101 :デフォルトの名無しさん:2006/09/30(土) 18:47:55
>>99
システムキーを拾ったらOSに処理させないようにすればいい

102 :デフォルトの名無しさん:2006/09/30(土) 19:05:27
>>101
ありがとうございます。
それはどうすればいいんでしょうか?
キーボードフックというものですか?

103 :デフォルトの名無しさん:2006/09/30(土) 20:07:40
>>102
WH_GETMESSAGEでフックしてWM_USER+260が飛んできたら無視すればいい
やり方はネットに沢山転がってる

104 :デフォルトの名無しさん:2006/09/30(土) 20:09:43
>>99
WM_SYSKEYDOWNで捕まえて、握りつぶしてしまえ。
ただ、基本的に無作法とされている。
本当はフルスクリーン時にスコープを奪われたら最小化、
戻ったらデバイスを復元して再度全画面化するぐらいがいい。

105 :デフォルトの名無しさん:2006/09/30(土) 21:06:37
>>102
MS的には禁止のはず。
それをやるってことは少なくとも礼儀のないアプリってコトになる。
ALT+TABをブロックは特にやられるとウザイしな。

106 :デフォルトの名無しさん:2006/09/30(土) 21:16:30
>>102
そうだよ死ね

107 :デフォルトの名無しさん:2006/09/30(土) 21:21:06
>>105
あのですねー。
マイソフが禁止してようがしてまいが俺には関係ないのではないんでしょうか?

ネトゲのようにお互いが同期をとるタイプのゲームを想像するとわかりますが、
うっかりウィンドウキー押すとゲームが最小化されちゃうんですよ。
あわてて戻ったら死んでた・・・なんてしゃれにならないと思いませんか?
こういうゲームを作りたくないんですよ。

108 :デフォルトの名無しさん:2006/09/30(土) 21:24:35
そうですかおまえのいいぶんはきいたでもしね

109 :デフォルトの名無しさん:2006/09/30(土) 21:38:01
>>107
ウィンドウズキー周辺のキー使わなきゃいいじゃん。

110 :デフォルトの名無しさん:2006/09/30(土) 21:44:49
>>109
あなたはフリーウェア程度のゲームしか作ったことないんでしょうけど、
製品として出す以上そんな馬鹿みたいな仕様なんてありえないでしょう?

111 :デフォルトの名無しさん:2006/09/30(土) 21:48:24
>>110
なんだシェアウェア厨か。死ね。
有料で出そうとしている癖に、無料でその辺の情報を得ようなんて
虫が良すぎる。もっと苦労しろ。

112 :デフォルトの名無しさん:2006/09/30(土) 21:57:36
>>111
>有料で出そうとしている癖に、
ゲーム作って金もらってる俺が悔しいんですか?

>無料でその辺の情報を得ようなんて
ネットするのも金かかるの知ってますか?

>もっと苦労しろ。
このスレで調べて苦労してますが?

113 :デフォルトの名無しさん:2006/09/30(土) 21:58:44
>>112
何、もうファビョってるのか。いいから回線切って首吊って死ね。

114 :デフォルトの名無しさん:2006/09/30(土) 21:59:43
土日は定期的に沸くよな。
釣りだろ釣り。

115 :デフォルトの名無しさん:2006/09/30(土) 22:01:45
本当に虫のいいというか、調子のいいシェアウェア厨は困ったもんだな。
こいつら情報をタダだと思ってやがる。スレで得た情報分の利益を分配
する事を本来なら求めるべきだ。

>>114
釣りですかね?

116 :デフォルトの名無しさん:2006/09/30(土) 22:07:17
釣りさ。
いい感じに火病ってるのまで演出してるし。

それはさておき、誰かこのスレで利益得てるとしても、そんなのの還元求められる義理なんかないぞ。
何事も自己責任な匿名掲示板で、ただダベってるだけなんだから、漏れら。

117 :デフォルトの名無しさん:2006/09/30(土) 22:09:08
まあ普通はそうだな。でもシェアウェア厨だけはどうにも虫が好かんのですよ。
こいつら自分の事しか考えてない。スレの中にロボットが居て、質問をすると
自動的に答えが返ってくると思っているような所がある。

118 :102:2006/09/30(土) 22:10:11
102ですが、102より後の書き込みは違う人の書き込みです。

119 :デフォルトの名無しさん:2006/09/30(土) 22:25:41
>>117
気にすんなよ。
つか、そんな理由で喧嘩するなら自分の縄張りでやってくれ。

120 :デフォルトの名無しさん:2006/09/30(土) 22:48:15
フリーと大して変わらない程度のクオリティしか出せないくせに
シェアウェアとして置いてあるベクターのソフトみるとぶっ潰したくなるなw
あんな糞レベルでよく恥ずかしげもなく出せるもんだと思うよ。

121 :デフォルトの名無しさん:2006/09/30(土) 22:50:10
シェアウェア厨は糞。人から金を取る事しか考えていない。
だいたい質問に答える方もネットで金かかってるっつーの。
そんなのいちいち言わないだろ。

だからと言って割れたりしたら、それこそ糞シェアウェア厨と
同じレベルに落ちてしまうから、それはしない。単にDLしない、
使わない。もっとマシな市販ソフトを買う。

122 :デフォルトの名無しさん:2006/09/30(土) 23:45:46
このスレに子供しかいないのはよくわかった。

123 :デフォルトの名無しさん:2006/09/30(土) 23:51:51
頭おかしいな。

124 :デフォルトの名無しさん:2006/10/01(日) 00:16:18
>あわてて戻ったら死んでた

これ非アクティブの時はゲーム内の処理止める仕様にすれば良いんじゃないの?

125 :デフォルトの名無しさん:2006/10/01(日) 00:21:54
>>124
通信相手の処理まで止めるつもりか?
頭が悪いにも程があるぞ。

ゲーム中にウインドウズキーを押すような間抜けは死ねばいいんだよ。

126 :デフォルトの名無しさん:2006/10/01(日) 00:30:49
>>125
ああネトゲか
でもネトゲだったらチート対策でホットキーからの全画面解除を制限してるソフトも多いが

127 :デフォルトの名無しさん:2006/10/01(日) 00:41:58
制限など出来ない。
出来ることと言えば終了させるぐらいしかない。

128 :デフォルトの名無しさん:2006/10/01(日) 07:36:47
寝て起きてみたらこの状態・・・・。
自分がゲーム作って金とれないからってそれはないでしょう。
実際こっちは月に4万円ぐらい入るし。

>>113
そっくり言い返すよ。

129 :デフォルトの名無しさん:2006/10/01(日) 08:09:50
月に4万って、子供の小遣い銭じゃないか…
馬鹿にしてるのか?

130 :デフォルトの名無しさん:2006/10/01(日) 09:03:01
>>129
そういうこと言えるということは、
あなたはそれ以上に稼げるということですよね?
まさかそうですよね?

131 :デフォルトの名無しさん:2006/10/01(日) 09:06:36
そりゃ業務でやってりゃその20倍くらいはいくだろ。
ふざけろ。

132 :デフォルトの名無しさん:2006/10/01(日) 10:27:49
なんでウィンドウズキーの話題からシェアウェアの話になってるんだ。

133 :デフォルトの名無しさん:2006/10/01(日) 10:42:21
まったくだ。

134 :デフォルトの名無しさん:2006/10/01(日) 11:18:06
>>131
仕事なら当たり前でしょう。
でもその仕事はあなた1人でやるんですか?
違いますよね?
まるで自分の力だけでその金額を稼いでると思ってませんか?
その点シェアウェアは俺1人の力だけで稼いでますよ。

>>132-133
いやこっちもこんな話なんてしたくないんですよ。
論点すりかえる低脳がいるもんでね。
流石に呆れるんで今後>>131みたいなのは無視することにします。

135 :デフォルトの名無しさん:2006/10/01(日) 11:27:40
なんでそんなに必死なんだ。
お前一人で勝手に火病ってるだけじゃないか。

会社に属して業務で月100万稼ぐのが、個人ベースになったところで
そこに自己満足以上の大きな違いがあるとでも?

つーか釣りだよな?
そうでもないなら大概にしてくれ。
スレ違いだしな。

136 :デフォルトの名無しさん:2006/10/01(日) 11:32:26
>4万円
なんかこの人デジタルトキワあたりのチャットで見た気がするw

137 :デフォルトの名無しさん:2006/10/01(日) 11:38:00
如何にもそれっぽいww

138 :デフォルトの名無しさん:2006/10/01(日) 11:49:07
たった月4万円の事でファビョるシェアウェア基地外。
割に合わないと思わないのなら、相当めでたい脳味噌だ。

139 :デフォルトの名無しさん:2006/10/01(日) 11:55:50
>>128
( ゚∀゚)アハハ八八ノヽノヽノヽノ \ / \/ \

オウム返しは敗北宣言ですよ。

140 :デフォルトの名無しさん:2006/10/01(日) 12:29:22
MSのルールに従えないならLinuxでソフトウェア作れよ。
WindwowsOS作っててOSのルールに従えないってどんな自己厨だ。

ちなみにFF11はWindwowsキーやATL+TABかますと余裕で落ちるし
当然死んでることもある。


>>134
俺にはシェアウェアというものの考え自体理解できないんだがそういうものなのか?
趣味で作るプログラムは所詮趣味だしネット上で公開する分にはただでいいやみたいな考えなんだけど。

仕事となると1プロジェクトに100人とか居るわけだし、まぁ趣味でやるのとは話が違うわな。

141 :デフォルトの名無しさん:2006/10/01(日) 12:30:23
>WindwowsOS作ってて

すげえOSを作ってるんだな

142 :デフォルトの名無しさん:2006/10/01(日) 12:31:52
>1プロジェクトに100人

すげえプロジェクトに参加してるんだな

143 :デフォルトの名無しさん:2006/10/01(日) 12:32:50
シェアウェア作ってる奴は、まるで一人で作るのが偉いみたいな物言いをするな。
数人〜数百人単位で共同で作るというのがどんなに大変なのか全然わかって
ないのが明らかだ。

というか、大勢で共同作業ができない性格だから一人で作ってるんでしょ?
まともな会社に勤まらないからこんなスレで火病っているだけだと思うがm9(^Д^)プギャー

144 :デフォルトの名無しさん:2006/10/01(日) 12:39:03
>数人〜数百人単位で共同で作るというのがどんなに大変なのか全然わかって
>ないのが明らかだ。

その数百人の案件は、具体的にどんなプロジェクトで、
なにを経験して何が大変だったのか感想を希望。

145 :デフォルトの名無しさん:2006/10/01(日) 12:40:50
>>144
自分で経験すればわかるよ。それに、数人〜数百人と幅を持たせている
のに、わざわざ数百人と部分的なレスを返す時点でレスする意味無し。

146 :デフォルトの名無しさん:2006/10/01(日) 12:41:35
他人を説得するのなら具体例を挙げるのが一番。
そしてそれは自分の経験を話すのが最適。

で、数百人のプロジェクトって具体的に何?

147 :デフォルトの名無しさん:2006/10/01(日) 12:43:23
360の案件でゲーム、初期はシェーダ類担当、後期はエンジン部メンテを主業務、
大変さはスレ1つ分くらい楽々埋まるから割愛。

もしくはPCオンラインゲーの案件で担当はUI全般と通信部分の一部、
最後人手が足りなくて課金DBも若干メンテ、
大変さはスレ2つ分くらい楽々埋まるから割愛。

こんなんでいいか?

148 :デフォルトの名無しさん:2006/10/01(日) 12:44:11
他のスレでやれよ。

149 :デフォルトの名無しさん:2006/10/01(日) 12:44:44
まったくだ。

150 :デフォルトの名無しさん:2006/10/01(日) 12:47:42
WindwowsOSの開発はしてないの?

151 :デフォルトの名無しさん:2006/10/01(日) 12:50:45
ケツの穴の小さい奴だな、typoぐらい見逃してやれよ。
漏れのケツの穴見てみろ、太平洋みたいだぞ(*)

152 :デフォルトの名無しさん:2006/10/01(日) 13:25:47
シェアウェア厨が来るとスレが乱れるな。これはどこのスレでも同じ。
だからシェアウェア厨は嫌いなんだ。

153 :デフォルトの名無しさん:2006/10/01(日) 14:27:37
そもそもDirectXの話題でも無かった品。
まあ、気を取り直して次の話題逝ってみよう。

154 :デフォルトの名無しさん:2006/10/01(日) 15:23:33
ゲ製のほうでいいこと教わりました。
DISCL_NOWINKEYです。
同じDirectXスレなのにレベルが違いすぎますね。

次スレのタイトル案を置いていきます。
【C++】 俺達DirectXわからない初心者なので質問にも満足に答えられないスレ Part12 【C】
長すぎますが適当に短くして下さい。

それではさようならもう来ません。

155 :デフォルトの名無しさん:2006/10/01(日) 15:33:28
>>154
二度と来るなカス

156 :デフォルトの名無しさん:2006/10/01(日) 17:40:14
>>154
マジでレスしていいのか分からんが、
フルスクリーン専用でALT+TABは対策しないけど、Winキーは対策します。
画面切り替えはサポートしませんって、ダメなソフトウェアの典型なんだけど・・・。

そういう中途半端なのを許容するのは杜撰だと思われても仕方ない。
フックをやるなら全部やる、フックをやらないなら他の方法でフォローって考えとけよ。


157 :デフォルトの名無しさん:2006/10/02(月) 17:09:23
質問です。DirectXのラッパーライブラリで、よくテクスチャ管理に構造体を使っていて
ライブラリの使用者は識別番号を使って構造体の配列を指定する、という仕様のライブラリがあるんですが
配列の要素数が多いと最初から大量のメモリを占領してしまうし、なんとなくかっこ悪いので
STLのvectorを使って必要なときにpush_backで要素数を増やして、不必要になれば削除するようにすれば
カッコイイと思うんですが、DirectXのサンプルなどでプログラム終了時にテクスチャは
Release()で解放してから終了しています。もしかして要素を削除するときにもテクスチャを解放してから
要素を削除しなければいけませんか?
 
長文ですみません

158 :デフォルトの名無しさん:2006/10/02(月) 17:57:06
> Release()で解放してから終了しています。もしかして要素を削除するときにもテクスチャを解放してから
> 要素を削除しなければいけませんか?
当然。

それよりも、カッコイイ/かっこ悪いでコーディングするのはどうかと思う。
コンシューマ機では動的に要素数を増減するのは問題があるし「かっこ悪い」。

159 :デフォルトの名無しさん:2006/10/02(月) 17:58:39
というか、>>157 は内部処理を理解しないままライブラリとかを使ってる感じ。

160 :デフォルトの名無しさん:2006/10/02(月) 20:58:55
>>158
解放しなかった場合、何か問題があるんですか?

161 :デフォルトの名無しさん:2006/10/02(月) 21:09:34
かっこ悪い。

162 :デフォルトの名無しさん:2006/10/02(月) 21:13:50
>>161
それって問題ないっていうこと?

163 :デフォルトの名無しさん:2006/10/02(月) 21:20:18
>>162
どうぞ好きなだけメモリ使い果たして下さい
200MBでも700MBでも使いまくって結構ですよ

164 :デフォルトの名無しさん:2006/10/02(月) 21:24:35
>>163
カッコイイ!

165 :デフォルトの名無しさん:2006/10/02(月) 21:24:54
>>163
要素を削除してもメモリは解放されないのですね

166 :デフォルトの名無しさん:2006/10/02(月) 21:47:03
コンシューマーでも動的な確保は普通すると思うだけど・・・
メモリプール&アロケーターの自作なんて常識じゃねぇの?

どうせソフトの終了=リセットor電源OFFしかねぇのに。

167 :デフォルトの名無しさん:2006/10/02(月) 22:06:20
人によるっしょ。ヘッダファイルにその辺の定数をずらっと並べる奴もいれば
設定ファイルで変えられるようにするやつもいる。PCのプログラムで
前者みたいなのを見たことあるし、コンシューマーで後者みたいなのも
見たことある。

168 :デフォルトの名無しさん:2006/10/02(月) 23:10:29
>>166
> コンシューマーでも動的な確保は普通すると思うだけど・・・

動的な確保は当たり前。「動的に要素数を増減する」だよ?
これはメモリが細分化するから禁止してるよ。

169 :デフォルトの名無しさん:2006/10/02(月) 23:30:22
>>168
ちょっとまとまった領域作って
その中での確保、解放は管理して見た目自由にさせてやれば?
用はワンフレ単位で確保・解放を繰り返すようなのがまずいだけっしょ?

禁止にしても作りにくいだけじゃん。

170 :デフォルトの名無しさん:2006/10/02(月) 23:38:07
>>169
それただのメモリプールじゃんか・・(;´д`)

動的な確保・解放は普通にやるよ。
「vectorで要素数の増減」の意味がわかってないのか??

171 :デフォルトの名無しさん:2006/10/03(火) 00:12:16
なんかよく分からないんですが、vectorは使わないほうがいいっていうことですか?

172 :デフォルトの名無しさん:2006/10/03(火) 00:15:03
なんかよく分からないんですが、ゲームがフリーズし易いのはここにいるような方が作ってるからなんですか?

173 :デフォルトの名無しさん:2006/10/03(火) 00:17:16
map<string,LPDIRECT3DTEXTURE9>

174 :デフォルトの名無しさん:2006/10/03(火) 00:17:18
なんかよく分からないんですが、よく分かりました

175 :デフォルトの名無しさん:2006/10/03(火) 00:20:14
it = tex_map.find()
if( it != tex_map.end() ){
create...
}else{
ret = it->second


176 :デフォルトの名無しさん:2006/10/03(火) 00:20:45
ところでお前ら何歳ですか?
学生ですか?

177 :デフォルトの名無しさん:2006/10/03(火) 00:21:21
「vectorで要素数の増減」なんてそもそも毎フレームやるような処理でもないだろうよ・・・


178 :デフォルトの名無しさん:2006/10/03(火) 00:28:11
vectorは、2乗単位で確保するので遅くないよ

179 :デフォルトの名無しさん:2006/10/03(火) 00:36:27
つreserve

いやスレ違い承知だけど言わせてくれ
コンシューマ機でもいい加減STL解禁でいいと思うんだわ
自前アロケータがライブラリのアロケータに性能や効率で勝つことなんて滅多にねーんだし
メモリの細分化もリソースの寿命ちゃんと設計に入れてれば
vectorの類が刻む影響なんて屁でもねーのが普通だしな…

180 :デフォルトの名無しさん:2006/10/03(火) 00:57:14
実際、メモリの断片化とかって本気で気にしなきゃいけないほど影響あるのかな?
こーいうのは計測しづらいから、実際どれだけ有効なのかがわかんない。




181 :デフォルトの名無しさん:2006/10/03(火) 01:02:27
超初心者の質問です
もしかするとWindowsプログラミングの
問題かもしれないですが、よろしくお願いします。

今、ウィンドウモードとフルスクリーンモードを
切り替えできるように実装したのですが
フルスクリーンからウィンドウモードに切り替えると
ウィンドウのタイトルバーとかが無くなってしまいます。
どこへ行ってしまったのでしょうか(><)

182 :デフォルトの名無しさん:2006/10/03(火) 01:10:27
>>177
俺は毎フレームしたら駄目とか言ってない。
そもそも分断化するから禁止してるんだよ。

>>179
内部処理を理解して使う分には全然問題ないと思う。
問題なのは「便利だから気兼ねなく使う」人達。

>>180
メモリの状態を視覚化すると分かりやすいよ。
コンシューマゲームだったらタイトルデモ中に分断化したら
8時間放置とかした時にメモリ不足で落ちるとかあり得る。

183 :デフォルトの名無しさん:2006/10/03(火) 01:26:09
1週間連続稼動要求されたりしたっけな、そういや。
毎日朝会社に来て「よかったきょうも生きてた」ってホっとするんだよな。
そして帰りしなに覗いてみたら止まってて真っ青になったり。

いや、実際問題、そもそもメモリ資源への要求が厳しい場合はさておき、
あまりに長寿命なリソースが…
端 的 に は グ ロ ー バ ル 変 数 と か が
野放図に使って無い限り、動的確保と言えど適当な枠内に収まるのが普通。
リソースの処分ステージを設けてやるのは、本来上流の設計工程の責任だしな。

テクスチャマネージャだのの類が原因になってる場合は…まあそのなんだ、ご愁傷様。
こーいうのに限っては自前のメモリ管理導入も止むを得ないつーかむしろマストだったり。


しかしなんだね。
どこの現場の悩みも同じ様なもんだっつーか、代わり映えしないよなw

184 :181:2006/10/03(火) 01:40:14
ウィンドウスタイルにWS_CAPTIONを追加して
ShowWindowを呼んだら上手くいきました。

失礼しました。


185 :デフォルトの名無しさん:2006/10/03(火) 01:41:37
まあ問題になるのは大抵テクスチャとかデカイデータだよな。
テクスチャはある意味管理しやすいってのが救いだけど。
(最悪データ捨ててもプログラム停止とかになり難い)

>どこの現場の悩みも同じ様なもんだっつーか、代わり映えしないよなw
代わり映えしないなw(´Д`)

186 :デフォルトの名無しさん:2006/10/03(火) 03:15:27
Xファイル読み込んで、
描画させると、ポリゴンが透ける部分があります。
透けないようにしたいんですが、
なにかヒントいただけないでしょうか?

pDevice->SetRenderState( D3DRS_SHADEMODE, D3DSHADE_GOURAUD );
pDevice->SetRenderState( D3DRS_CULLMODE, D3DCULL_CW );
pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_FALSE );
pDevice->SetRenderState( D3DRS_LIGHTING, TRUE );
pDevice->SetRenderState( D3DRS_AMBIENT, 0x00555555 );
pDevice->SetRenderState(D3DRS_SPECULARENABLE,TRUE);


上記、設定どこか間違ってますでしょうか?

187 :デフォルトの名無しさん:2006/10/03(火) 06:24:42
バグは思いも寄らない所にあることも多い

188 :デフォルトの名無しさん:2006/10/03(火) 06:45:24
>>170
はぁ?意味わかんない。
要素数の増減も糞も結局はメモリの確保と違いがあるのか?
全くわからない。
自前のnewが呼ばれて、自分が確保したまとまった領域のどっかに入るようにしときゃ問題ねぇんだろ?

189 :デフォルトの名無しさん:2006/10/03(火) 07:29:05
語学練習ソフトをインスコしたら、
「DirectX Managed」を入れろって言われたんで
DirectX End-User Runtime Web Installer
http://www.microsoft.com/downloads/details.aspx?FamilyId=2DA43D38-DB71-4C1B-BC6A-9B6652CD92A3&displaylang=en
でインストールしようと思ったら「もうインスコされてるよ」って・・・
強制的にもう一回インスコとかできないものか・・・
なんでこうなっちゃったんだろう。

190 :デフォルトの名無しさん:2006/10/03(火) 08:19:24
>>186
透けるってのは半透明ってこと?
つ D3DRS_ALPHABLENDENABLE


191 :デフォルトの名無しさん:2006/10/03(火) 12:31:34
ちょっと緊急です。 (13時から再び会議)
開発が無事に終わりCD−ROMを配布したんですが、
ダイレクトXが戻らないというトラブルが頻発してます。
仕組みはこうなってます。

CD−ROMを入れる→自動起動→パソコンに入ってるダイレクトXのバージョンを記録→
ダイレクトX9セットアップ→自社システム起動→メニューから終了を選ぶ→自社システム終了→
元のダイレクトXをセットアップ→CD−ROMを抜く
        ↑
   顧客からの電話の話では、ここの部分でトラブルになってるようなんです。
   他のソフトが正常に動かなくなったりしたり、画面が大きく?なったりしてるようです。

社内で確認したところ、
ダイレクトXバージョンの記録は問題なく動いてました。
CD−ROMにもダイレクトX3からX8までのランタイムが入ってます。
どこに原因があるかわかる方お願いします。

192 :デフォルトの名無しさん:2006/10/03(火) 12:41:51
DirectXのバージョンダウンは不可能。
戻したかったらシステムの復元でも使え。

193 :デフォルトの名無しさん:2006/10/03(火) 13:35:06
つーか実行毎にDirectXランタイムのロールバックて・・・。
開発中に誰一人としてreadmeすら読まなかったのか・・・。


194 :デフォルトの名無しさん:2006/10/03(火) 14:05:24
X3て

195 :デフォルトの名無しさん:2006/10/03(火) 14:05:28
ちょっと会議抜けてきました。
プログラマの話ではアドミンじゃないとシステムファイルをいじれないので、
ダイレクトXに関連するレジストリやファイルを削除できないらしいんです。
どうやら自社システムを終了するときにこれらを削除することで、
ダイレクトXセットアップが新規として認識するようしてあるみたいです。
常にアドミンにしておくようにするという案がプログラマのほうからありましたので、
今後はこれで対応することにしようかと会議続行中です。

>>192
プログラマは可能と言っていたのでお願いしたんですが、
元のダイレクトXに戻すのは不可能なんですか?
システムの復元というアイディアは素晴らしいです。
早速提案してみます。

>>193
プログラマは個人の外注1人です。

196 :デフォルトの名無しさん:2006/10/03(火) 14:22:08
なんつーレベルの開発体制だよ…
こーだーのバイト君雇ってますレベルじゃないか。

197 :デフォルトの名無しさん:2006/10/03(火) 15:53:36
仮にできたとしても何か危なそうだなあ・・・

198 :デフォルトの名無しさん:2006/10/03(火) 15:57:59
Dx? で開発やって インスコCDにDx? 再配布パケを入れて ってな感じだものな
動作要件が 開発した Dx? 以上 ってだけなのに…

アッパーコンパチでなくなった微妙な機能使っているのかな?

199 :デフォルトの名無しさん:2006/10/03(火) 16:34:25
一旦会議が終わりました。
トラブル出ていたところには緊急で対処法を連絡したのですが、
常にアドミンにしておくとセキュリティの問題がでてしまうというのと、
顧客にも詳しい人がいて、
システムファイルいじるなんて異常だというお叱りの電話が入りました。
システムの復元についても、
1つのソフトがOSを振り回すなんておかしいだろということです。
それなのでこれらの案は使えないことになりました。
今日の夜にプログラマが来る予定なので、真夜中の会議となりそうです。

>>196
一応ちゃんとした求人サイトで募集し、大卒のプログラマさんにお願いしてます。

>>197
顧客のほうからもかなりの大声で同じこと言われたようです。

>>198
98/ME/2000/XPで動くようにお願いしていたのですが、
ベータの時点でXPでしか動かないというトラブルが出てしまい、
緊急でこのような仕組みにしたようです。
最初はOpenGLで作ることになっていたのですが、(募集要項にも書きました)
いざ始まったらダイレクトX9しか使えないということで、、、。

200 :デフォルトの名無しさん:2006/10/03(火) 17:04:59
GDIだけで書かせる。
GDIも捨てたもんじゃないからな。 HALFTONE指定の StretchBlt とか

201 :デフォルトの名無しさん:2006/10/03(火) 17:20:28
いやそれにしても、そんなにコンパチじゃない機能ばっかり使ってるのか?
そうじゃないと思うんだがなぁ。その DirectX のバージョン依存の機能に
何の必然性があるのかと問うてみるが良い。

202 :デフォルトの名無しさん:2006/10/03(火) 18:07:42
一応ちゃんとした求人サイトで募集し、大卒のプログラマさんにおねがいしたからといって腕がいいとは限らない。
システムファイルを弄る提案をした時点でその人は地雷なのではないでしょうか?

203 :デフォルトの名無しさん:2006/10/03(火) 18:13:11
ていうか、OpenGLで募集して、DirectX9しか使えない時点で(ry

204 :デフォルトの名無しさん:2006/10/03(火) 18:45:39
プログラマから突然会議キャンセルの電話がありました。
なにやら急用ということですが、こちらも急用なので係長たちが家まで向かったようです。

>>200
GDIというのもあるんですか。
今回は開発が終わってしまったので次回の参考にさせていただきます。

>>201
新しいほうが綺麗とか速いとか言ってた気がしますが、詳しいことはわかりません。
なんせプログラムを知る人が社内にいないので、完全にお任せ状態になってました。

>>202
かなり詳しそうな人だったのと、
面接のときに動いてるプログラムを見せてもらって素晴らしかったのでお願いしたのですが、
ちょっと今は怪しい状態です。
大卒でゲーム会社に居たという言葉に騙されたのでしょうか、、、。
ギャランティ支払い終えてからは、いちいち電話しないと会議に来ないようになりました。

>>203
今思うと最初の頃熱心に会議に顔出してくれたのは、
CとOpenGLを使えないのでルナとダイレクトX9にしたかったんでしょうね、、、。

205 :デフォルトの名無しさん:2006/10/03(火) 19:09:36
ルナって…
( ゚д゚)

( ゚д゚ )

206 :デフォルトの名無しさん:2006/10/03(火) 19:55:09
ルナってもしかしてラッパーライブラリのLuna?
そいつがゲーム会社に勤めていたって信じれない
雑用とかしてただけじゃね?
Lunaなんて趣味でゲーム作ってる高校生レベルじゃねーか

207 :デフォルトの名無しさん:2006/10/03(火) 20:38:36
Lunaはさすがに無いだろう

208 :デフォルトの名無しさん:2006/10/03(火) 21:23:51
>>189
Managed DirectXと普通のDirectXは違うよ
これかこれを試してみれ
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=136a7b29-aa12-4c3b-aa7d-15cd98a9a59c&DisplayLang=ja
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=fff5ed7d-3446-4583-b2c9-8db1bc10b16e&DisplayLang=ja

209 :デフォルトの名無しさん:2006/10/03(火) 21:30:50
ラッパーのLunaだとしたら、著作権表示とかまともにやってるのか?

210 :デフォルトの名無しさん:2006/10/03(火) 21:45:31
Lunaは作者の個人的な技術デモ用だろう。
ゲームエンジンとしては何もないのでは?


211 :デフォルトの名無しさん:2006/10/03(火) 22:03:11
>199
DirectX9は 初代Win98/Win98SE/WinME/Win2000/WinXP/WinVISTA対応してるだろう。
XPでしか動かないトラブルってどんな特殊機能駆使してるんだ・・・。

>>210
作っといて自分でいうのも何だけどぶっちゃけDirectX9とシェーダーのお勉強をしようがコトの始まり。
もう色々gdgdだからこれ以上弄らない宣言を・・・。

212 :デフォルトの名無しさん:2006/10/03(火) 22:05:17
VOID FreeDx()
{
SAFE_RELEASE( pFont );
for(DWORD i=0;i<THING_AMOUNT;i++)
{
FreeAnim(Thing[i].pFrameRoot);
cHierarchy.DestroyFrame(Thing[i].pFrameRoot);
SAFE_RELEASE( Thing[i].pAnimController);
}

SAFE_RELEASE( pDevice );
SAFE_RELEASE( pD3d );


}

213 :デフォルトの名無しさん:2006/10/03(火) 22:10:27
>>211
わかった、Windows XPで採用されたLunaを(ry

214 :デフォルトの名無しさん:2006/10/03(火) 22:42:13
なんか別の話で盛り上がってるところ悪いが、一言だけ・・・

>>188
オマエはプログラマー辞めろ。

215 :189:2006/10/03(火) 23:54:08
>>208 どうやらもっと昔のモノをインスコしないと駄目だったみたい。
これ入れてみて、って送られてきたファイルのタイムスタンプを見ると
2002年12月12日。どうやら 9.0c とかではなくて 9.0 の時代のモノ。
こんなの入れちゃって大丈夫かなと思ったけど、インストールすれば
問題なく動かしたかったソフトが動くようになりました。

いろんな時期の DirectX 関連のランタイムって、共存させまくって
良いモノなんだろうか。

216 :189:2006/10/04(水) 00:00:09
http://www.microsoft.com/japan/msdn/directx/downloads.aspx
ここ見ると、すげぇ昔の DirectX SDK はダウンロードできるんだけど、
すげぇ昔のランタイムはダウンロードできないなぁ。

217 :デフォルトの名無しさん:2006/10/04(水) 01:40:32
無理やり突破するならマニフェストねじ込んでおけばいいのかもしれないが、どーなんだろね。
DirectXは一応アッパーコンパチを標榜してるのだし、特定のランタイムに依存するコード自体に
改善の余地があるのは間違いないとは思うのだけれど。
つーかそーいうコードだとDirectXのバージョンの問題以前にドライバの相性とかでもgdgd発揮しそうな悪寒だ。

218 :デフォルトの名無しさん:2006/10/04(水) 02:08:08
そもそもDxのバージョンを戻す意味がわからんしなぁ。
とりあえず最新版を入れておけば過去のバージョンは全部動作する(はず)だし。
実際動作はちゃんとしてるしな。

そもそもバージョンを戻せるとしても、戻す前に何らかの不正な処理でアプリが落ちたら終わりだろ。

219 :デフォルトの名無しさん:2006/10/04(水) 05:25:32
DirectXを扱えるプログラマがこれまでいなかったが、歴史はそこそこあるエロゲソフトハウス。
PC98で256色モードの使用に消極的だった頃の感性を今も残す。


220 :デフォルトの名無しさん:2006/10/04(水) 06:09:08
>>214
俺も君の言ってる意味がわからないけど?

221 :デフォルトの名無しさん:2006/10/04(水) 07:47:30
スキンメッシュアニメーションのプログラムを
造ったんでつが・・・、
もりもり動くのはいいんだけど、
うまく「ライト(光)」が反映されないでつ。
普通のXファイルはちゃんとライトは反映されまつ。

どこら辺のソースコードを晒せばいいでつか?



222 :189:2006/10/04(水) 08:00:10
Managed DirectX って、.NET Framework 1.1 と DirectX 9 が
インストールされている状態で mdxredist.msi をインストール
しないと駄目なんだな。その MSI ファイルは ManagedDX.cab
を展開して取り出す、と言うことらしい。
http://www.microsoft.com/japan/msdn/directx/japan/dxreadme_U04_jp.aspx

223 :デフォルトの名無しさん:2006/10/04(水) 08:00:24
>>221
法線がそのままだから変なライティングに見えてしまう
ちゃんと計算しましょ

224 :デフォルトの名無しさん:2006/10/04(水) 08:27:33
>>221
つ [CloneMesh]
法線の追加ね

225 :デフォルトの名無しさん:2006/10/04(水) 08:38:00
>>223 >>224
うはっ、俺様DQNなので、知能障害起こしそう。

法泉を計算するって、まじムズそう。
Xファイル吐き出すソフトとかで
やってくれてもよさそうなもんなんだが・・・。

>>224のCloneMeshを調べてみるみる。






226 :デフォルトの名無しさん:2006/10/04(水) 08:57:52
いや、普通はモデリングソフトが吐き出すと思うが。
バーテックスシェーダー使ってるならボーンの変形を
法線にも適用しないといかんが。

227 :デフォルトの名無しさん:2006/10/04(水) 09:03:00
X自体の機能ではきだせたような >CloneMesh

228 :デフォルトの名無しさん:2006/10/04(水) 09:28:32
>>262 >>227
今ちょっと軽くコーディングしてみた。
つーか、良く見たら、Xファイルを吐き出すソフトの方で法泉吐き出してるみたいだ。
// 当該メッシュが法線を持たない場合は法線を追加する
if (!(pMesh->GetFVF() & D3DFVF_NORMAL))
{
pMeshContainer->MeshData.Type = D3DXMESHTYPE_MESH;
hr = pMesh->CloneMeshFVF( pMesh->GetOptions(),
pMesh->GetFVF() | D3DFVF_NORMAL,
pDevice, &pMeshContainer->MeshData.pMesh );
if (FAILED(hr))
{
return E_FAIL;
}

pMesh = pMeshContainer->MeshData.pMesh;
D3DXComputeNormals( pMesh, NULL );
}
else
{
pMeshContainer->MeshData.pMesh = pMesh;
pMeshContainer->MeshData.Type = D3DXMESHTYPE_MESH;
pMesh->AddRef();
}
↑はelseの方にちゃんと入ってるみたい。
「ライティング(光)」がまったく反映されないか?っていうとそうでもなくて、ほんの少しだけ明るい。
ただし、通常のXファイルを表示すう場合とちがって、光の方向やら、その他設定がぜんぜん違う。
スキンメッシュモーションを「通常のXファイルと同様」に読み込むと「いい感じにライティングが反映」されているんだが、
スキンメッシュモーションをスキンメッシューモーション用に読み込むと、ライティングが辺な風に反映される。

ちょっと、知能障害起こしてるから、文章分かりにくかったらスマソ。

229 :221:2006/10/04(水) 09:30:34
>>225 >>228 は両方とも221です。
スマソ。

>>228の読み込むという表現はまずい。
読み込む→読み込んで、描画する。
正直スマンカッタ。


230 :デフォルトの名無しさん:2006/10/04(水) 10:00:39
光源の位置とタイプは平気か?

231 :221:2006/10/04(水) 10:09:34
>>230
知能障害の俺に優しくしてくれてありがとう。

>光源の位置とタイプは平気か?
light.Type = D3DLIGHT_DIRECTIONAL;
vecDirection = D3DXVECTOR3(0, -1, 1);
light.Diffuse = D3DXCOLOR(1.0f, 1.0f, 1.0f, 0.0f);
light.Specular = D3DXCOLOR(1.0f, 1.0f, 1.0f, 0.0f);
light.Ambient = D3DXCOLOR( 0.5f, 0.5f, 0.5f, 0.0f);
D3DXVec3Normalize( (D3DXVECTOR3*)&light.Direction, &vecDirection );
pDevice->SetLight( 0, &light );
pDevice->LightEnable( 0, TRUE );

pDevice->SetRenderState( D3DRS_LIGHTING, TRUE );
pDevice->SetRenderState( D3DRS_AMBIENT, 0x00111111 );
pDevice->SetRenderState(D3DRS_SPECULARENABLE,TRUE);

一応、こんな感じ。


高原の位置とかタイプは自信がありまつ。
通常のXファイルとかなら、まったく問題なくいけてまふ。



ちょい聞きたいんでつが、
スキンメッシュのファイルって、どっかにサンプル落ちてない?

232 :デフォルトの名無しさん:2006/10/04(水) 12:24:42
IDirect3DDevice9::Reset で、Presentのパラメータ(具体的にはフレームバッファの
サイズ)を実行中に動的に変えようとした際に、一部の環境でエラー
(D3DERR_DEVICELOST)が発生してしまい悩んでいます。

IDirect3DDevice9::TestCooperativeLevelではD3D_OKが返ってきているのですが、
その直後のResetでエラーが出ます。(どれだけリトライしてもダメ)

IDirect3DDevice9::Reset以外に、フレームバッファサイズを変更する方法は何か
ないでしょうか?

233 :デフォルトの名無しさん:2006/10/04(水) 16:53:00
>>232
Resetでいいんだよ
デバイスロストしたときの仕組みが間違ってるだけ
サンプル見ればわかるよ

234 :232:2006/10/04(水) 17:20:46
>>233
d

問題の環境で追いかけた限り、デバイスロストからResetで復帰できないのではなく、
デバイスロストしていない状態でResetの実行に失敗(DEVICELOSTを返される)して
いるようなのですよ。

TestCooperativeLevel()ではD3D_OKが返ってきているので、デバイスはoperational
になっている(と信じるしかない)わけですが、その直後にResetをかけるとエラー、と。

何がいけないのやら…orz

235 :デフォルトの名無しさん:2006/10/04(水) 17:33:45
>>234
>Reset メソッドを呼び出す前に、アプリケーションは、そのデバイスに関連付けられた明示的レンダー ターゲット、
>深度ステンシル サーフェイス、追加スワップ チェーン、ステート ブロック、D3DPOOL_DEFAULT リソースを
>解放しなければなりません。
まずはこれの確認。

236 :232:2006/10/04(水) 17:42:29
>>235
ありがとう
まずはそこをきちんと確認してみまつ

237 :デフォルトの名無しさん:2006/10/04(水) 20:02:10
DirectXでバックバッファに描画した段階で、指定したxy座標のピクセル色を取得できますか?
3D関係の画像処理に使ってみようと思うのですが。

238 :221:2006/10/04(水) 20:06:40
221です。

テクスチャのないものについては
うまくライティング処理ができるのですが、
テクスチャがあるものについては、
ライティング処理ができないことが判明しました。

どこら辺が怪しいですか・・・。

239 :デフォルトの名無しさん:2006/10/04(水) 20:14:57
>>237
レンダーターゲット(サーフェイス)を貰えば指定座標がどうなってるのかわかるよ

240 :デフォルトの名無しさん:2006/10/04(水) 21:38:16
>>238
2つほど。
・ライティングをOFFにした場合、そのテクスチャのあるものはちゃんと表示される?
・「処理が出来ない」とは具体的にどうなってる?真っ黒に表示されるとか、テクスチャの原色がでるとか

241 :デフォルトの名無しさん:2006/10/04(水) 21:53:22
こんなの初心者が見当違いのつまらないミスに大騒ぎしてるだけで、
そのうちに勝手に自己解決して終わり。
付き合っても誰の特にもならないってオチ。


242 :221:2006/10/05(木) 00:22:35
自己解決しますた。


243 :デフォルトの名無しさん:2006/10/05(木) 02:59:52
毎度初心者に厳しいスレだと思ってたら、別口に「超初心者用」ってのがあるのな。
誰だよそんなの立てた奴w


244 :221:2006/10/05(木) 05:41:00
>>242は偽者でつ。

>>240
質問1
>・ライティングをOFFにした場合、そのテクスチャのあるものはちゃんと表示される?
質問2
>・「処理が出来ない」とは具体的にどうなってる?真っ黒に表示されるとか、テクスチャの原色がでるとか

質問1について
ライティングをOFFにするとはどういう意味でつか?
当方DQNのため、ライティング処理をやめたら、
画面が真っ黒にしかなりませんでつた。

質問2に答えるために
ちょい、うpしたいと思う。
http://aploda.net/dl.php?mode=pass&file_id=0000022268.zip

うpした画像なんでつが、
「1.jpg」、「2.jpg」がテクスチャのあるスキンメッシュで、
うまくライティング処理ができていないもの。
(2.jpgは「1」のファイルを違うカメラ視点から見たもの)
「3.jpg」がてテクスチャのないスキンメッシュで、
ライティング処理ができているもの。
「4.jpg」が「1」を通常のXファイルとして読み込んで
表示させたもの。


245 :221:2006/10/05(木) 06:27:48
pDevice->SetRenderState( D3DRS_SHADEMODE, D3DSHADE_GOURAUD );
// カリングはしない
pDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
// Zバッファー処理を有効にする
pDevice->SetRenderState( D3DRS_ZENABLE, TRUE );

pDevice->SetRenderState(D3DRS_ZWRITEENABLE,TRUE);

// ライトを有効にする
pDevice->SetRenderState( D3DRS_LIGHTING, TRUE );
// アンビエントライト(環境光)を設定する
pDevice->SetRenderState( D3DRS_AMBIENT, 0x00111111 );
// スペキュラ(光沢反射)を有効にする
pDevice->SetRenderState(D3DRS_SPECULARENABLE,TRUE);

DirectXの初期化のときに上記を
実行しているんですが、
上記をコメントアウトするとうまく実行できまつた。
なぜでせうか?

246 :221:2006/10/05(木) 06:33:35
pDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
が原因だったようです。
意味不明。

pDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
カリング処理をはずすとうまくいきました。
こいつをはずすとうまく処理がライティング処理が
行きます。

247 :221:2006/10/05(木) 06:58:49
ライティング処理なんでつが、
通常のXファイルでは
light.Ambientが利くのに
スキンメッシュアニメーションでは
light.Ambientが利きません。
その他のライティング処理は利いているみたい。

なぜでせうか?

248 :232:2006/10/05(木) 10:25:24
>>233>>235
おかげさまで解決しました。ありがとうございました。

>D3DPOOL_DEFAULT リソースを解放しなければなりません

これが引っかかってました。
テクスチャをD3DPOOL_MANAGEDでプールするように変更して解決です。

249 :デフォルトの名無しさん:2006/10/05(木) 16:18:27
>>221
法線が逆か、ポリゴンが裏返ってね?

250 :221:2006/10/05(木) 16:30:35
>>249皇帝閣下
閣下、法泉はXファイルが持ってる臭いであります。
ポリゴンが裏返るというのが当方DQNなため、よくわかりません。

ライティング処理なんですが、

Light_Class::light.Diffuse = D3DXCOLOR(1.0f, 1.0f, 1.0f, 0.0f);
↑利いてるっぽい

Light_Class::light.Specular = D3DXCOLOR(1.0f, 1.0f, 1.0f, 0.0f);
↑利いてないっぽい

Light_Class::light.Ambient = D3DXCOLOR( 0.5f, 0.5f, 0.5f, 0.0f);
↑利いてないっぽい

みたいな感じです。




251 :デフォルトの名無しさん:2006/10/05(木) 16:31:35
シェーダーんとこ、その辺の計算省いて無い?

252 :デフォルトの名無しさん:2006/10/05(木) 16:36:28
>>221
いいからプログラム晒してみろって。
ソース見られるのが嫌だったらXファイルだけでも。

あとHLSL使ってるんだったらソレも。

253 :221:2006/10/05(木) 16:47:10
>>252博士
博士、Xファイルだけとりあえずうpいたします。
博士、無知な私目にご教授願います。

http://aploda.net/dl.php?mode=pass&file_id=0000022281.zip

HLSLっていうのは初めて知ったんですが、
多分使ってないです。





254 :221:2006/10/05(木) 16:50:46
>>252提督
シェーダーの計算とは、具体的にどこでしょうか?
当方、DirectXを独学で始めたばっかなので
よくわかっていません・・・。
提督、2階級降格ですか?

255 :デフォルトの名無しさん:2006/10/05(木) 16:55:57
mview で見ると法線は大丈夫っぽい
ttp://aploda.net/dl.php?mode=pass&file_id=0000022282.jpg

256 :221:2006/10/05(木) 17:01:08
>>255先輩
せんぱぁ〜い、お弁当作ってきましたぁ〜。

現状をまとめます。
スキンメッシュの読み込み→再生はできます。
ただし、ライティング処理のAmbientがうまく反映されない。
スキンメッシュのファイルをただのXファイルとして扱い、
表示した場合、Ambientはちゃんと反映される。
→ライティング処理のAmbientを反映させたい。

257 :デフォルトの名無しさん:2006/10/05(木) 17:14:54
>>254
こっちにはなにもないのにどうやって指示するのか

258 :デフォルトの名無しさん:2006/10/05(木) 17:19:32
>>253
DirectX Viewerで見る限りはライティング問題なさそう。
剣がデカくなった時に暗くなってるのは気になるが・・

259 :デフォルトの名無しさん:2006/10/05(木) 17:31:04
>>221
> vecDirection = D3DXVECTOR3(0, -1, 1);
ライトさ、奥から手前に向かってない?
Zを-1にしてみたらどうなる??

スクリーンショットみても下から当たってるようにも見えるし
ライト関連の設定に問題がありそうなんだよね。

260 :221:2006/10/05(木) 17:38:06
>>254店長
おっしゃるとおりで・・・。
正直すまんかった。

>>258部長
調べてもらってスンマセン。

>>259先生
先生、
vecDirection = D3DXVECTOR3(0, -1, -1);
にしたら、スキンメッシュ全体がかなり暗くなりました。
同じ設定(vecDirection = D3DXVECTOR3(0, -1, -1);)で
通常のXフィル用に先ほどのスキンメッシュを開いたら、いい感じに
ライティング処理が施されていまふ。

おっしゃるとおり、ライト関連がかなり怪しいです。
ライト関連ならさらせますが・・・うpしますか?

261 :221:2006/10/05(木) 17:47:38
一応、ライティング関連のコードをうpします。
http://aploda.net/dl.php?mode=pass&file_id=0000022286.txt

コーディングがうんこなのは、知能障害のためです。


262 :デフォルトの名無しさん:2006/10/05(木) 18:17:36
DirectPlayでサーバ/クライアント型で
プログラム作ってるんだが、
サーバ開始した時点でプレイヤーが一人居るんだが
こいつはサーバ自身のプレイヤー?

こいつと普通のプレイヤー見分ける方法ある?


263 :デフォルトの名無しさん:2006/10/05(木) 18:34:45
まだ過去の遺物のDirectPlayを使おうとしているのか。
過去のプログラムのメンテなら分かるが、新規で使う気が知れない。

264 :デフォルトの名無しさん:2006/10/05(木) 18:36:02
>>263
今って通信のプログラムって何が流行りなの?


265 :デフォルトの名無しさん:2006/10/05(木) 18:39:06
流行も何も選択肢は一つしかない。

266 :デフォルトの名無しさん:2006/10/05(木) 18:41:10
>>265
Winsockでつか?

267 :デフォルトの名無しさん:2006/10/05(木) 18:53:07
>>263
「音声通信せよ」
との命令なんだ。
かなりローカルで使うプログラムだから許してちょ

268 :デフォルトの名無しさん:2006/10/05(木) 19:00:29
MediaFormatSDKを使えば、圧縮されたストリームデータを通信で送受信するぐらい簡単に書ける。
今となっては完全にDirectPlayは必要が無い。

269 :デフォルトの名無しさん:2006/10/05(木) 19:18:38
>>268
そんなのもあるのか
サンクス

270 :デフォルトの名無しさん:2006/10/05(木) 19:49:31
>>261
んーよくワカランかった(;´д`)

描画するときに-1でスケールとかしてないよね?

271 :デフォルトの名無しさん:2006/10/05(木) 20:00:49
>>261
SetRenderState(D3DRS_NORMALIZENORMALS, TRUE);
も試しにやってみるといいわね。

272 :デフォルトの名無しさん:2006/10/05(木) 20:53:00
Boost.Socketがもう少しがんばってくれたらな

273 :261:2006/10/05(木) 23:02:03
>>270委員長
>んーよくワカランかった(;´д`)
>描画するときに-1でスケールとかしてないよね?
してないズラ。

>>271団長
>SetRenderState(D3DRS_NORMALIZENORMALS, TRUE);
>も試しにやってみるといいわね。
やってみた。
ダメだった。




274 :デフォルトの名無しさん:2006/10/05(木) 23:08:08
すいません、質問です。
2Dなんですけど、左から右に行くほどどんどん透明になっていくテクスチャ
ってのを作りたいんですけどどうやって作ればいいんでしょうか?
ちなみに画像のファイル形式はbmpです。

275 :261:2006/10/05(木) 23:30:20
http://www.uploda.net/cgi/uploader2/index.php?dlpas_id=0000022300.zip

とりあえず、現状報告。
画像をうpします。

1.jpg スキンメッシュを通常のXファイル描画
2.jpg スキンメッシュをスキンメッシュモーションとして描画

多分Ambientが利いていないんだと思う。
ライティング処理関係か、SetRenderState関係が
非常にあやすぃ。

276 :デフォルトの名無しさん:2006/10/06(金) 00:04:55
パスがわからん・・・

もう面倒だからコンパイル環境まとめてうpしなさいな

277 :261:2006/10/06(金) 00:08:03
http://aploda.net/dl.php?mode=pass&file_id=0000022309.zip
すまそ、間違えてパスつけてた。

VC++6.0で漏れの珍妙なソースコード見てくれる
ネ申はいたりますか?

278 :デフォルトの名無しさん:2006/10/06(金) 00:13:57
うpされれば見る、されなければ見ない。
それだけのことだろう。
見れば分かるわけでもないが、見なければまず分からない。

279 :261:2006/10/06(金) 00:17:26
http://aploda.net/dl.php?mode=pass&file_id=0000022311.zip
うんこみたいなコードを晒します。

280 :261:2006/10/06(金) 00:18:33
スキンメッシュファイルは
>>253
にありまつ。

281 :デフォルトの名無しさん:2006/10/06(金) 00:30:25
>>279
ナイス度胸!よくUPした!!

待ってろよ〜すぐ解決してやっから。
まずはリンクエラーを何とかして・・・(;´д`)

282 :デフォルトの名無しさん:2006/10/06(金) 00:45:01
>>279
テクスチャーファイルがねー(;´д`)
とりあえず灰色でよければライトちゃんと当たってたよ。

ところで、DirectXって左手座標系だからZ座標は手前が正(プラス)方向だよ。
カメラとライトがどっちも右手系の指定になってたのは
単にモデルを正面から見るため?

283 :261:2006/10/06(金) 01:00:16
>>281大名
このバグ?で2日も悩んでる。
DQNコードだとか、DQNデザインパターンだとか
もぉ・・・、いいんです。
助け・・・、て。

>>282監督
http://aploda.net/dl.php?mode=pass&file_id=0000022316.zip
ごめんなさい。
テクスチャつきのをうpします。

>カメラとライトがどっちも右手系の指定になってたのは
>単にモデルを正面から見るため?
単に漏れがDQNなため・・・。


284 :デフォルトの名無しさん:2006/10/06(金) 01:05:21
>>283
なるほど、確かに暗くなるね。不思議。
いろいろ見てみる。

285 :261:2006/10/06(金) 01:05:56
ちなみにバグがありまして、、、。

モーションファイルを開く
を行った後に、
Xファイルを開く
を行うと落ちます。

逆はなぜかヘイキ。

286 :261:2006/10/06(金) 01:07:54
同志>>284

スキンメッシュクラスがすげぇ怪しいキガス。
スキンメッシュクラスは正直、本のコピペをちょい改悪した程度。

あと、ライティング関係も怪しいキガス。

287 :デフォルトの名無しさん:2006/10/06(金) 01:16:05
確かにアンビエントがボーンのときは無効になってるな。

288 :デフォルトの名無しさん:2006/10/06(金) 01:20:04
pMeshMaterials[i].Diffuse = d3dxMaterials[i].MatD3D.Diffuse;
pMeshMaterials[i].Ambient Diffuse = d3dxMaterials[i].MatD3D.Diffuse;

通常のメッシュはここでアンビエントにディフーズを代入しているので、
アンビエントがかなり強くとうぜん明るい。

スキンメッシュの方は読み込んだマテリアルそのままなので、
アンビエントは低く暗い。

マテリアルの展開を統一しないから出たバグだな。

289 :デフォルトの名無しさん:2006/10/06(金) 01:23:00
通常メッシュと同様に、ディフーズ色をアンビエントにコピーすれば一応OK。

DirectGraphics.cpp の 693行目と925行目の後に↓を追加
// ディフーズ色をアンビエント色にコピーする
pMeshContainer->pMaterials[iMaterial].MatD3D.Ambient = pMeshContainer->pMaterials[iMaterial].MatD3D.Diffuse;

でも、できればプログラムでいじるんじゃなくて
Xファイルの方で正しくアンビエント色を設定できたほうがより良い。

290 :デフォルトの名無しさん:2006/10/06(金) 01:24:37
ちなみにスキンメッシュのところは

memcpy(pMeshContainer->pMaterials, pMaterials, sizeof(D3DXMATERIAL) * NumMaterials);

こう書かれている。


下のループの中で

pMeshContainer->pMaterials[iMaterial].MatD3D.Ambient = pMeshContainer->pMaterials[iMaterial].MatD3D.Diffuse;

こう書くと普通のメッシュと同じ明るさで出る。

291 :289:2006/10/06(金) 01:25:10
ディフーズ → ディフューズ ね。

「FU」って変換すると単に「フ」なんだな・・(;´д`)

292 :289:2006/10/06(金) 01:27:01
>>290 ナカーマ(AA略

なんか妙な達成感があったねw

293 :デフォルトの名無しさん:2006/10/06(金) 01:27:48
俺はアンビエントはライトだけで調整してマテリアル側には
ディフューズしか持たせてないなぁ。

一応アンビエントに半球ライティング使ってるけど。

294 :261:2006/10/06(金) 01:30:34
>>288[救世主(メシア)]
漏れが超うんこであることがわかりました。
大変うんこで申し訳ないのでつが、
どのように直せばいいかヒント出してもらっていいでつか?

直すところは
AnimationMesh_Class::MY_HIERARCHY::CreateMeshContainer
の内部でつか?


295 :261:2006/10/06(金) 01:32:15
カキコミしている間に
>>290 >>291 >>292 >>293 四天王
から熱いヒントが溢れてるぅううううう。


296 :デフォルトの名無しさん:2006/10/06(金) 01:35:31
>>293
DirectXのスキンメッシュって今回初めてだったんだが
確かにモデルのマテリアルにもアンビエントがあると混乱するね。

半球ライティング使ってるんなら特別な理由がない限りモデル単位では
アンビエントは無効になるね。

>>295
> >>290 >>291 >>292 >>293 四天王
たぶん2人だけだぜw

297 :261:2006/10/06(金) 01:36:01
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
できたー。


298 :261:2006/10/06(金) 01:40:48
ありがとうございますた。
これで故郷(くに)に帰れます。
DQNな漏れの汚いコードを読んでくれて、
まじ、感謝でつ。





299 :デフォルトの名無しさん:2006/10/06(金) 01:45:24
>>261
お疲れさん〜
まだ先は長いから頑張りな!

300 :261:2006/10/06(金) 01:46:03
>>289船長
Xファイルでアンビエントを設定するというのは、
独自のXファイルを作るということでせうか?
それとも、そういう定石的なやり方があるのでせうか?

>>296隊長
クソ初心者なので、クソ躓いて、クソ混乱してしまつたよ。


あと、1つ質問なんでつが
スキンメッシュ読み込んでから、普通のXファイルを
開こうとするとエラーでソフトが落ちるんでつが、
なにかヒントなんぞあれば教えていただけないでゲスか。



301 :261:2006/10/06(金) 01:52:34
>>299元首
2chに甘えることなく、次はちゃんと自分でバグを
見つけられるようになりたいでつ。





302 :デフォルトの名無しさん:2006/10/06(金) 01:55:37
> Xファイルでアンビエントを設定するというのは、
> 独自のXファイルを作るということでせうか?

いや良くは知らんのだが、Xファイルのマテリアル情報の中に
アンビエントってのがあるんだろタブン。で、それを設定できるんなら
した方がいいよってこと。できないんなら諦める。

> スキンメッシュ読み込んでから、普通のXファイルを
> 開こうとするとエラーでソフトが落ちるんでつが、

さっそく↓を実行したまえ。

> 2chに甘えることなく、次はちゃんと自分でバグを
> 見つけられるようになりたいでつ。


303 :261:2006/10/06(金) 01:58:35
>>302国家主席

>いや良くは知らんのだが、Xファイルのマテリアル情報の中に
>アンビエントってのがあるんだろタブン。で、それを設定できるんなら
>した方がいいよってこと。できないんなら諦める。
ちょい調べてみまつ。

>さっそく↓を実行したまえ。
おっしゃるとおりで・・。
えと、自分で調べまつ。

304 :デフォルトの名無しさん:2006/10/06(金) 02:02:51
「とりあえず聞いてみる」じゃなくて、自分で調べた上でどうしても分からないことを
「聞いてみる」ってのが好まれます。

また行き詰った時はソース晒せば皆が見てくれるよ、タブン。

305 :デフォルトの名無しさん:2006/10/06(金) 08:46:29
射精した!

306 :デフォルトの名無しさん:2006/10/06(金) 16:02:27
>>305 オツーンヾ(´д`)ノ゜

307 :デフォルトの名無しさん:2006/10/07(土) 00:05:47
教えていただきたいのでつが、
LPDIRECT3DDEVICE9
って、普通、プログラム中にみなさん何個作りますか?
自分1つしか使ってないのですが・・・。


308 :デフォルトの名無しさん:2006/10/07(土) 00:30:09
1つ

309 :デフォルトの名無しさん:2006/10/07(土) 00:31:15
>>308
よかった、安心したダス。

310 :デフォルトの名無しさん:2006/10/07(土) 01:33:51
それにしてもLPDIRECT3DDEVICE9なんて、ダサい名前だよね

311 :デフォルトの名無しさん:2006/10/07(土) 01:49:04
誰かいますか?


312 :デフォルトの名無しさん:2006/10/07(土) 02:18:27
いるよー。

>>307
マルチウインドウ物なんかだと複数作りたくなる場合もあるんだが、
MS的に一応公式で「パフォーマンスが落ちるからやめなさい」ってことになってる。
マジぬるぽ。

313 :デフォルトの名無しさん:2006/10/07(土) 02:53:44
質問です。DirectX8使ってるんですが
ラジオシティでレンダリングしたような感じの描画は可能ですか?
ローズオンラインっていうネトゲの描画がそれっぽい感じだったんですが
これはテクスチャで擬似的に表現しているだけなのでしょうか?

ttp://www.4gamer.net/news_photo/roseonline/004.jpg
こんな感じです

314 :デフォルトの名無しさん:2006/10/07(土) 02:54:42
DQN@261です。 1日悩みました。 暇だったら教えてくれろ。

<詳しい症状>
最初に、スキンメッシュファイルを開く→描画する
次に、Xファイルを開く→描画されない。 (最初にXファイルを開く分にはぜんぜんOK)

Debugモードだと、以下のようなものが 「デバッグ欄」にいっぱい出てくる。
例外処理 (初回) は _senkoro_.exe (KERNEL32.DLL) にあります: 0xE06D7363: Microsoft C++ Exception。

<エラー行>
VOID Mesh_Class::DrawMesh()
{
// レンダリング
for( DWORD i=0; i<dwNumMaterials; i++ )
{
pDevice->SetMaterial( &pMeshMaterials[i] );
pDevice->SetTexture( 0, pMeshTextures[i] );
pMesh->DrawSubset( i ); //←ここをコメントアウトするとヘイキ。もちろんなにも描画されない
}
}
エラーが出ているときに、DrawSubsetの戻り値を見てみた。
hr = [0] (i = [0])
hr = [8876086c] (i = [1])
上記のようになっている。

→8876086cを調べてみた。
よくわからなかった。

ヒントがあれば教えてつぁさい。
ギギギギギ。
馬鹿たれ、銃は卑怯じゃ。

315 :261:2006/10/07(土) 04:21:36
NEO・DQN261です。
ジークゲイツ!!

最初にスキンメッシュの方で描画を行うときに、
pDevice->SetRenderState(D3DRS_VERTEXBLEND, dwBlendMatrixAmt);
こいつ↑をコメントアウトしておくと
次にXファイルを普通に開いても問題ないっぽです。

もう少し調査して、改めて報告します。


316 :261:2006/10/07(土) 04:28:01
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
できたー。

普通のXファイルを描画するときに、
描画の前に
pDevice->SetRenderState(D3DRS_VERTEXBLEND, 0);
って入れればOKみたい。
うほぅ、2chのおかげでまたバグが一つ解けた。

自己解決だけど、
2chにカキコミながら、デバッグすると
頭が整理されるみたい。

317 :デフォルトの名無しさん:2006/10/07(土) 06:34:46
迷惑な話だ
チラシの裏に書け
頭を整理してから来いよ


318 :デフォルトの名無しさん:2006/10/07(土) 07:31:59
>>313
それはテクスチャに焼いてあるだけだよ

319 :デフォルトの名無しさん:2006/10/07(土) 14:58:10
言葉尻をとるようだが、擬似表現は悪くないぞ。
HDRが本物だとか偽者だとかいう変な記事があったりするけど、
見た目が気にならないぐらい同じなら、CG的にはインチキして
より少ない計算資源でやりくりしているほうが、あまった処理に
別の表現を詰め込むことが可能になるから偉いんだよ。

320 :デフォルトの名無しさん:2006/10/07(土) 15:47:22
>>319
言ってることは悪くないんだが、>>313には伝わらないことだな。

ラジオシティが何たるかを理解してないだけじゃなくて
DirectXで何ができるかを理解してない。要するに何も知らないんだ。

321 :名無しさん@お腹いっぱい。:2006/10/07(土) 17:40:34
>HDRが本物だとか偽者だとかいう変な記事があったりするけど

別に記事は変じゃないだろ。
ほとんどの記事はただ手法を紹介しているだけで
本物だから偉いとか最初から書いてない。

322 :デフォルトの名無しさん:2006/10/07(土) 19:02:29
「本物」という表現が変だという理由は明らかにそれがマーケティング的な
煽りを含んでいるからだよ。そういう記事の論調は、確かに直接偉いと
までは書いてないが、単なる手法の紹介というほど公平でもないと思うが。
>320の言うように、経験が浅い人間が同じような言い回しをするのは
仕方ないのかもしれないけどね。

323 :名無しさん@お腹いっぱい。:2006/10/07(土) 21:34:25
「テクスチャなの?」「テクスチャだお」
>313の質問は>318で終わるだろうに、半端に口をだすから
第三者にツッコミ入れられるんだよ。
てゆかこの流れで>319が語りだす理由が分からん。

324 :デフォルトの名無しさん:2006/10/07(土) 23:56:13
わかったわかった、相変わらずだお前ら。
とりあえずこれでも食って落ち着いてくれ。

つ【ようかん】

325 :デフォルトの名無しさん:2006/10/08(日) 00:07:51
ようかんみたいに身が詰まってる物体の表現って難しいよね
ポリゴン重ねてそれっぽくなったがまだ不自然

326 :デフォルトの名無しさん:2006/10/08(日) 00:45:03
http://itpro.nikkeibp.co.jp/article/COLUMN/20060929/249347/

327 :sage:2006/10/08(日) 18:47:27
質問です。
DirectXのサンプルを見ながら
スキンメッシュを読み込むプログラムを作っているのですが
途中で使われているConvertToBlendedMeshやConvertToIndexedBlendedMesh
のやっていることがよくわかりませんでした。
ConvertToBlendedMeshのヘルプには
"頂点単位のブレンドの重みとボーンの組み合わせテーブルを適用した
新しいメッシュを返す"
とあったのですが
頂点単位のブレンドの重みやボーンの組み合わせテーブルは
どこから取ってきているのでしょうか。
また、これらが適用されると具体的にどういったことになるのですか。


328 :デフォルトの名無しさん :2006/10/08(日) 20:49:23
>どこから取ってきているのでしょうか。
元データから
>これらが適用されると具体的にどういったことになるのですか。
データ形式が変わる

質問が具体的じゃないのに具体的な回答もとめちゃいかんよ

329 :デフォルトの名無しさん:2006/10/08(日) 21:04:06
そんなことはない。たとえば電話相談サービスは
切羽詰ってわけわからなくなった人や無知なお子様が掛けるものだから、
テレパシーでも何でも使って、相手の意図を汲むものなんだ。
このスレみたいに初心者につらく当たるスパルタ教育じゃない。




330 :デフォルトの名無しさん:2006/10/08(日) 21:14:52
だがうちらは電話番でもなければ先生でも両親でもない。

331 :デフォルトの名無しさん:2006/10/08(日) 21:16:11
プログラムするにコンパイラはこちらの意図などくみ取ってはくれない。
正確に記述しなければ、思った通りには動いてくれないんだから。
質問すらまともに出来ないのであれば、プログラムなど組めようはずもない。

332 :デフォルトの名無しさん :2006/10/08(日) 21:26:01
切羽詰ってわけわからなくなった人や無知なお子様は2chで質問しちゃだめだろー

333 :327:2006/10/08(日) 21:30:03
>328
>>どこから取ってきているのでしょうか。
>元データから
元データといえば第一引数のID3DXMeshのことだと思うのですが
たとえばそのデータはID3DXMeshのどのメソッドを使って取れるデータですか。
ID3DXMeshのメソッド一覧には見当たらないように見えました。

>>これらが適用されると具体的にどういったことになるのですか。
>データ形式が変わる
名前にConvertとついていることや、ヘルプの新しいメッシュを返す、
というところからデータ形式が変わることはわかっています。
ヘルプの"頂点単位のブレンドの重みとボーンの組み合わせテーブルを適用した
新しいメッシュを返す" の意味がいまいちよくわからなかった為の質問でした。

1つ質問をし忘れたのですが
ConvertToIndexedBlendedMeshはConvertToBlendedMeshと比べて
インデックスが適用されるかの違いだと思うのですが
インデックスが適用されるとはどういうことですか。
(また具体的になってないかもしれない...)

334 :デフォルトの名無しさん:2006/10/08(日) 21:34:42
D3DXの高レベルAPIに頼らず、一度自分でファイルを読むところから作ってみるのが一番の近道。

335 :デフォルトの名無しさん:2006/10/08(日) 22:06:23
とはいうが、普通に高レベルAPIで組むのも全然ありな罠。
細かいところからやってくのは満足度こそ高いが、それだけだし。

使い物にならんコンポネントも多くて、そのリプレースが必要になってくる場合もあるが、
それはそれで必要になったらやりゃいいんだし。

336 :デフォルトの名無しさん :2006/10/08(日) 22:21:39
D3DXCreateTextureはつこてる。

337 :デフォルトの名無しさん:2006/10/08(日) 22:34:37
ゲームにチャット機能を付けようとしてるのですがまったくわかりません
どこかに詳しく書いてるサイトがあれば教えてください

338 :デフォルトの名無しさん:2006/10/08(日) 22:36:17
ソケットプログラミングの基礎から始めろ。

339 :デフォルトの名無しさん:2006/10/08(日) 22:38:51
文字を入力させる方法がよくわからなくて
ローマ字だけなら出来るんですが日本語入力とか変換の仕方がわかりません

340 :デフォルトの名無しさん:2006/10/08(日) 22:41:24
Imm系のAPIを使え。

341 :デフォルトの名無しさん:2006/10/08(日) 22:41:52
サンプルにIMEの入力があるね
フレームワーク使ってるやつ

最近のSDKじゃ削られてんの?

342 :デフォルトの名無しさん:2006/10/08(日) 22:59:16
いや、入ってる。
中々に出来もいい。
ただ、コードはやっぱりそれなりに大掛かり。
頑張ってコピれ。
俺もコピった。

343 :デフォルトの名無しさん:2006/10/08(日) 23:21:11
>>335
機能も分からずに使おうとして、その挙句2chで教えてクンになってる人を前にしても
そんな発言ができるなんて、>>334 の真意を理解してない証拠。

344 :デフォルトの名無しさん:2006/10/08(日) 23:40:23
実際に自分で作ったものを利用するかは別として、
勉強のために自分で一通り作ってみる方が理解が進む。
小学生が算数ドリルをやるのは車輪の再発明でも何でもない。

345 :デフォルトの名無しさん:2006/10/09(月) 00:03:08
もういいです。
他己解決しました。

346 :デフォルトの名無しさん:2006/10/09(月) 00:05:12
タコイカタコイカ

347 :デフォルトの名無しさん:2006/10/09(月) 00:06:31
理解なんかしないでも使っちまえって感じですよ。
面倒くせえ。

348 :デフォルトの名無しさん:2006/10/09(月) 00:27:49
>>347 は教えてクンの素質があります。

349 :261:2006/10/09(月) 01:01:23
>>348部長
それを言ったら、この俺ですよ。

350 :デフォルトの名無しさん:2006/10/09(月) 01:02:44
>>347
へっ!折角の素質も磨かなきゃ意味がねぇな!
そんなことじゃ、この俺はもry

351 :デフォルトの名無しさん:2006/10/09(月) 20:18:39
立方体を複数並べてライティングする処理で
悩んでいます。

1つの立方体をXファイルから読み込み
3x3x3=27個並べてルービックキューブのような立方体を
作ってライトを当てたのですが、1つの面に含まれる9個の
ブロックが、それぞれ独立して光を反射しているように見えます
┌──┬──┬──┐
|暗□|暗□|暗□|
|□明|□明|□明|
├──┼──┼──┤
|暗□|暗□|暗□|
|□明|□明|□明|
├──┼──┼──┤
|暗□|暗□|暗□|
|□明|□明|□明|
└──┴──┴──┘

これを1枚の面のように光を反射するように
したいのですが、何に気をつければよいのでしょうか。
┌──┬──┬──┐
|暗□|暗□|□□|
|□□|□□|□□|
├──┼──┼──┤
|暗□|□□|□□|
|□□|□□|□明|
├──┼──┼──┤
|□□|□□|□□|
|□□|□明|□明|
└──┴──┴──┘



352 :デフォルトの名無しさん:2006/10/09(月) 20:22:59
ポイントライト

353 :351:2006/10/09(月) 21:18:30
>>352
レス感謝です!
ポイントライトにしてみました
ディレクショナルライトを使用していたときより
よくなった感じはするのですが、
素材がおかしいのか、暗い位置になるほど

┌──┬──┬
|■□|■□|
|□明|□明|
├──┼──┼
|■□|■□|
|□明|□明|
├──┼──┼

が目立ってしまいます。
なめらかにならないんですよね・・・


354 :デフォルトの名無しさん:2006/10/09(月) 21:30:03
>>353
頂点ごとに明るさを計算して、面はそれを元に補間して色つけてるだけだよ。
もしかして立方体の頂点数って8とか少ない数じゃない?

355 :デフォルトの名無しさん:2006/10/09(月) 21:39:04
>>354
レスありがとうございます!
そのとおり8つの一番単純な立方体です。
少ないとライティングも荒くなるってことでしょうか?

数日前からはじめたばかりの素人なもので
頂点ごとに明るさを計算して保管するという処理が
頭にイメージできないのですが、
私のようなド素人にも簡単にできることなのでしょうか?


356 :デフォルトの名無しさん:2006/10/09(月) 21:40:24
書き込んで直ぐ気づいたのですが
頂点数は4点*6面=24かと思うのですが
見当違いでしたら虫してください。

357 :デフォルトの名無しさん:2006/10/09(月) 22:01:17
中心からオブジェクトに対してライトを焚け

358 :デフォルトの名無しさん:2006/10/09(月) 22:28:13
>>355
PerPixelLightingをするかポリを増やすか。

359 :351:2006/10/09(月) 23:06:01
>>358
面のポリゴン数を増やしたら
自然な感じになりました。

ありがとうございました。

360 :デフォルトの名無しさん:2006/10/10(火) 01:44:47
おしえてください、先生がた。

http://watch.impress.co.jp/game%2Fdocs/20030214/sc16.htm
↑はソウルキャリバーの画面です。
画面の黄色い部分(剣跡)は、どのようにつくるのでしょうか?

剣を振るキャラクターのスキンメッシュモーションファイルに同梱できたりしますか?
それとも、黄色い部分(剣跡)は平面テクスチャかなんかで作っておいて、
タイミングと軸をあわせて描画させておくのでしょうか?



361 :デフォルトの名無しさん:2006/10/10(火) 03:08:09
>剣を振るキャラクターのスキンメッシュモーションファイルに同梱できたりしますか?

やってできないわけじゃないが、非生産的。
それにモーションの補間等が加わると一気に破綻するので、現実的でない。

基本は帯状のポリを剣の軌跡にあわせて振るで正解。
ただ、単にフレームごとの剣先の位置だけで刻むと、粒度が荒すぎて
ひどくカクカクした絵になってしまう。
ので、実際にはスプラインなんかを適用して滑らかな弧を描く様にしてやる。

こんなもんでどうだろか。

362 :360:2006/10/10(火) 17:50:45
>>361
返信dクス。
優しくすると付け上がるいい例みたいな俺ですが、
続けて質問させてください。

>基本は帯状のポリを剣の軌跡にあわせて振るで正解。

となると、座標軸や描画するタイミングを合わせて、
シコシコプログラム組むわけですな。

>ただ、単にフレームごとの剣先の位置だけで刻むと、粒度が荒すぎて
>ひどくカクカクした絵になってしまう。

DQNなんで剣先の座標の取得の仕方がわからないです。
スキンメッシュを再生中にリアルタイムで
剣先の座標を取得する方法のヒントなんぞありば教えてほしぃです。



363 :デフォルトの名無しさん:2006/10/10(火) 18:01:46
剣の先に見えないフレームを用意しておいておけば簡単。
まさか剣をスキンにしている奴はいないだろうし。

364 :360:2006/10/10(火) 18:17:36
>>363
レスdクス
めまいを覚えるくらいにDQNな俺ですが、
教えてください。

>剣の先に見えないフレームを用意しておいておけば簡単。
フレームを用意するとはどういった意味でせうか?
(独学でDirectXをはじめて間もない、なんちゃってプログラマなんすよ)
・フレームって単語自体がよくわかっておりません。

Googleで検索するうえでヒントとなる、
単語なんぞあれば教えてください。
”フレーム DirectX”って検索すると、ちょいとヒット数が多杉でつ。

365 :360:2006/10/10(火) 18:35:08
>>363
フレームって、ワイヤーフレームのことでつか?

366 :デフォルトの名無しさん :2006/10/10(火) 19:03:51
フレームなんて用意しなくても
剣先の座標に姿勢行列かければいいじゃん

367 :デフォルトの名無しさん :2006/10/10(火) 19:09:21
てゆーかD3DX使わずに、とまでは思わないが座標操作が出来ないレベルなら
本一冊買って一からやり直したほうが良いと思われ

初心者だから分かりませんって訳じゃなくて初歩のレベルから始めてないから分からんのではないか?

368 :デフォルトの名無しさん:2006/10/10(火) 19:20:31
>>366
剣先がモデルのどこにあるのかどうやって判別するんだ?

369 :デフォルトの名無しさん :2006/10/10(火) 19:27:20
判別なんてせんでも自分で決めればいい
>>360が動的に剣先座標変わるモデルを操作しているとは思えんから

370 :デフォルトの名無しさん:2006/10/10(火) 19:35:56
モデリングした後にいちいち場所を確認するのか?
そんな馬鹿な。

371 :デフォルトの名無しさん:2006/10/10(火) 19:38:24
xファイルにアクセスしたら良いだけじゃない?

372 :デフォルトの名無しさん:2006/10/10(火) 19:56:44
xファイルのメッシュの中から、剣の先がどこだかどうやって判別するんだ?
形状認識を行うアルゴリズムが必要になる上に、誤認識の可能性まで出てくるぞ。

373 :デフォルトの名無しさん:2006/10/10(火) 19:59:46
モデリングツールで座標見れるやん

374 :デフォルトの名無しさん:2006/10/10(火) 20:11:19
だったらフレームを置いた方が早いだろ。
モデルごとにいちいち座標を確認するのか?
あまりにも阿呆すぎる。

375 :デフォルトの名無しさん :2006/10/10(火) 20:39:12
>374
もちつけ

376 :デフォルトの名無しさん :2006/10/10(火) 21:18:29
剣先の座標を得るためだけにフレーム増やすのか?
あまりにも阿呆すぎる。


377 :360:2006/10/10(火) 21:23:36
えと、いろいろレスがついてありがたいっす。

難しい方法ではなく、多少見栄えが悪くとも
DQNな漏れでも実装できる方法を行いたいと考えています。

やり方としてはいくつかの流派があるみたいですが、
初心者向きのはどいつなんでしょうか?

>>367
>初心者だから分かりませんって訳じゃなくて初歩のレベルから始めてないから分からんのではないか?
正解。
造りたいという気持ちが先行して、しょっぱなを結構すっ飛ばしてます。

>てゆーかD3DX使わずに、とまでは思わないが座標操作が出来ないレベルなら
座標操作とは、X、Y、Z軸でメッシュを移動させるようなことですか?
それとももっと難しいレベルの話をしているのでしょうか?

>>369
>>360が動的に剣先座標変わるモデルを操作しているとは思えんから
動的に剣先座標が変わるとは、どういうことでしょうか?
「スキンメッシュアニメーションなので、剣を振るような動作の場合」
動的に座標が変わると考えています・・・。
(毎回決まった動作ではありますが・・・)
それとも、もっと難しいレベルの話なんでしょうか?
(剣を振るたびに毎回なにかしらの計算をさせて、パラメータによって
 剣を振る軌跡が変わるような場合のことを指すのでしょうか?)

378 :デフォルトの名無しさん:2006/10/10(火) 21:28:34
スキンが必用なその剣は、くにゃくにゃ曲がるのか?

379 :デフォルトの名無しさん :2006/10/10(火) 21:30:33
>初心者向きのはどいつなんでしょうか?

しょっぱなから勉強する方法

380 :デフォルトの名無しさん:2006/10/10(火) 21:31:20
最初からやり直したほうが良いだろ・・・
付け焼き刃じゃ、自分では何もできないのは分かってるはず。

381 :デフォルトの名無しさん:2006/10/10(火) 21:55:25
軌跡はもうテンプレにでも入れとこうぜ。不毛すぎ。

Q. 剣の軌跡を作るにはどうしたらいいですか?

A. 剣の切っ先とつばあたりまでの直線を作れ
それを毎フレーム記録してできる帯をポリゴンにすればおk。
滑らかにしたい場合は、スプライン補間でもしとけ。
これで分からない場合は、基礎がなってないから出直せ。

382 :デフォルトの名無しさん:2006/10/10(火) 21:58:24
綺麗にできるかは謎

383 :デフォルトの名無しさん:2006/10/10(火) 23:52:43
そこから先は座標補間の領分じゃなくってエフェクト表現そのものの領分だしな。
帯部分をステンシルで抜いて、1フレーム前の絵を加工して出すなんて実装もあった希ガス。
剣の軌跡の中に僅かにずれた絵が出るのは、重量感もあって中々格好よかった。

384 :デフォルトの名無しさん :2006/10/11(水) 00:56:41
形状認識を行うアルゴリズム ワロタ

385 :デフォルトの名無しさん:2006/10/11(水) 17:47:52
#include <d3dx9.h>

が fatal error C1083: include ファイルを開けません。'd3dx9.h': No such file or directory」
になります.SDKはインストール済みなのですが,何が原因なのでしょうか?

・環境
WinXP pro
DX 9.0 SDK(August 2006)
VS pro 2005
(VS.net 2003もインストールされています)

よろしくお願いします.

386 :デフォルトの名無しさん :2006/10/11(水) 18:56:41
includeファイルが開けないのが原因ですよp(^▽^)q

387 :デフォルトの名無しさん :2006/10/11(水) 19:17:21
>VS pro 2005
>VS.net 2003
どうみても違法コピーです。本当にありがとうございました。

388 :デフォルトの名無しさん:2006/10/11(水) 20:16:57
アカデミックアライアンスって知ってる?

389 :デフォルトの名無しさん:2006/10/11(水) 20:23:43
386ではないが、昔Visual Studio .NET theSpoke Premium 2003 ってのが学生限定で5000円くらいで売ってて、
サービスが終了するときのキャンペーンで2005がただで貰えたがな。

390 :デフォルトの名無しさん:2006/10/11(水) 20:49:40
そんなのを未だに使ってるって就職失敗かニート?

391 :デフォルトの名無しさん:2006/10/11(水) 20:53:36
>>390
おいおい、>>385みたいな初心者にEnterpriseやTeam Systemを使わせる気かよw

逆の意味で言ってるなら、
VSのアカデミック版は卒業後も永久使用可能で学生時から商用利用可だ

392 :デフォルトの名無しさん :2006/10/11(水) 21:02:53
てゆかエラーメッセージに解答出てる。

393 :デフォルトの名無しさん:2006/10/11(水) 21:31:16
2年

394 :デフォルトの名無しさん:2006/10/11(水) 21:50:53
>>385
ファイルが開けないって書いてあるだろ。
SDKインスコしたら勝手にファイルが開けるようになると思ってるか?

>>387
俺は2003も2005も普通にPro版買ったが?
Pro版ならそこまで高くないし十分元が取れるソフトだろ。

395 :デフォルトの名無しさん :2006/10/11(水) 22:44:17
そりゃPro版買っておいて、元が取れないと嘆くやつが
おったらただのアフォだw

396 :385:2006/10/11(水) 23:34:15
大学のライセンスなので正規品です。
全然使えなくて困ってる
です。

>>394
ち、違う


397 :385:2006/10/11(水) 23:38:44
途中で送信しちゃったorz

大学のライセンスなんで正規品です。
全く使いこなせてないので困ったもんです。

>>394
違うんですか!?

398 :デフォルトの名無しさん:2006/10/11(水) 23:50:10
インクルードディレクトリとかでパス通してから出直せ。

399 :デフォルトの名無しさん:2006/10/12(木) 01:13:46
こういう人ってあれだよね、Makefileすら書いたことないんだろうね
もしくは今まで標準関数しか使ってなかったとか
-Iを見てどう思うんだろうか


400 :デフォルトの名無しさん:2006/10/12(木) 01:27:22
Makefileってマニュアルとかある?

401 :デフォルトの名無しさん:2006/10/12(木) 02:17:50
本もあるし、ググレば情報も出てくる。
まぁ正直今時Makefileから書くってのも滅多にやらなくなったけどな。
俺はPS2やってたときが最後だわ。

つかパス通すのはMakefileうんぬんの前に大抵のお勉強サイトにも書かれてるだろ。

402 :デフォルトの名無しさん:2006/10/12(木) 02:51:19
Makefileかー、この数年手で書いた記憶ねーなあ。
eclipseのCDTとか勝手にMakefile作ってくれて便利やで。

つーかお前らそんなんぐだぐだ言うくらいなら、VCのお勉強サイトでも教えてあげなさいよ。


403 :デフォルトの名無しさん :2006/10/12(木) 03:50:29
V・・・VC初心者スレじゃないんだからねっ!

404 :デフォルトの名無しさん:2006/10/12(木) 22:12:38
モーション付XファイルをD3DXLoadMeshFromXで読み込んだのですが
表示はされるのですが、動きません。
モーション付Xファイルを動かすためにはどのような処理が必要
なのでしょうか?
サンプルがあれば解析しますので、ご提示いただければ助かります。
よろしくお願いいたします。

環境です。
Visual studio C2005 VC++
winXP
Microsoft DirectX SDK (December 2005)

405 :デフォルトの名無しさん:2006/10/12(木) 22:19:27
サンプルならSDKにはいっとるだろ・・・
スキンメッシュのやつだ。
ちゃんと見れ。

406 :デフォルトの名無しさん:2006/10/12(木) 22:26:59
ありがとうございました。

407 :デフォルトの名無しさん:2006/10/12(木) 22:44:58
カメラワークについて質問です。

原点にポリゴンがあって、カメラは原点から少し離れた
位置にあって、常にポリゴン(原点)の方を向いています。
いまマウスで画面をドラッグして上下左右に動かすと
カメラの位置が原点を中心に球状に移動するようにしたのですが
どうも、うまくいきません。
なにか参考になるHPや、アドバイスありましたら
よろしくです


408 :デフォルトの名無しさん:2006/10/12(木) 22:50:00
何がどううまくいかないんだ?

409 :デフォルトの名無しさん:2006/10/12(木) 22:50:42
原点から伸びるベクトルAがあったとする。
このベクトルAから原点を見るようにカメラを作る。

マウスの上下左右移動に応じて、このベクトルを回転させる。


410 :407:2006/10/12(木) 22:57:15
あるていど回転するのですが、
X軸を中しんにカメラを半周すると天地逆転すると思うのですが
逆転したときにマウスの移動方向と逆回転してしまいます
あたりまえかと思うのですが、これの防ぎ方がいまいちピンと
きていません。

>マウスの上下左右移動に応じて、このベクトルを回転させる。
この回転方法がよくわかっていないのかもしれません。

例えば
マウスがX軸方向に1ドット移動すると、カメラが1度回転するとします。
このときカメラをY軸について回転させれば、思い通りになるのですが
マウスが斜め方向に移動したときに、変な回転になっている気がします。

わかりにくくてすいません

411 :デフォルトの名無しさん:2006/10/12(木) 22:58:11
そう言えば昔、3D初心者がアニメーションツール作るぞ!ってホームページがあった。
メタセコのカメラワークをコピーしたかったらしいが、それすら出来ずに終了。
しまいには「メタセコのカメラワークは非常に高度なアルゴリズム!」とか語ってたが
お前がアホなだけちゃうんかと。
見たところ、D3DXMatrixLookAtのようにカメラ座標、視点座標からMatrix計算してた。
そりゃ妙な動きする罠。




412 :407:2006/10/12(木) 23:02:07
連続すいません

要するに、マウスカーソルがX方向にXドット、Y方向にYドット移動したとき、
カメラの座標(Cx,Cy,Cz)が、どの軸に中心に何度回転すればよいかが
あやふやな状態です。


413 :デフォルトの名無しさん:2006/10/12(木) 23:08:18
ttp://up.spawn.jp/file/up44290.zip
こういうことか?

414 :407 :2006/10/12(木) 23:44:53
すいません
自己解決?というか妥協しました。

マウスが斜めに移動した場合は
X成分とY成分のうち移動量の多いほうにだけ
カメラを回転させるようにしたら、うまくいきました。

おさわがせしました。
レスくれた方々に感謝します。


415 :デフォルトの名無しさん:2006/10/13(金) 02:16:32
質問です。
DirectX9.0c 2005April FullScreenでアプリを作成中です。
マウスをクリック(右でも左でも)すると、強制で非アクティブ(最小化)になって困っています。

ウィンドウメッセージを調べたら、
WM_NCACTIVATE
WM_ACTIVATE
WM_DISPLAYCHANGE
WM_ACTIVATEAPP
WM_PAINT
上記の命令が上から順に送られてきて、非アクティブになっているようです。
どこで発行されているかは分かりませんでした。(調べ方を知りません)

この現象が何故起こる知りたいのですが、分かる方お願いいたします。

416 :デフォルトの名無しさん:2006/10/13(金) 02:34:18
>>415
それは全画面化している様に見えて、実際のウインドウが裏にいないんだ。
ウインドウ作った後で

ShowWindow(m_hWindowHandle, SW_SHOWNORMAL);
UpdateWindow(m_hWindowHandle);

とかしてやれば、多分収まる。

417 :デフォルトの名無しさん:2006/10/13(金) 04:58:22
DirectInputのフォースフードバック
まず、ゲームではちゃんと効果が出ています。
同じプログラムで入力設定用のダイアログを開いて、テスト用のボタンを押して、
フォースフードバックをさせようとしても何も反応しません。
DirectInputのDISCL_EXCLUSIVEだからだと思うのですが、こういうものなんでしょうか?


418 :415:2006/10/13(金) 11:53:09
>>416
返答ありがとうございます。
DXUTCreateDeviceの後に(DXUTを使ってます)コードを挿入してみたのですが、駄目でした。

5台で確認したのですが、XP GeFo4 MX440 1台でのみ発生します。
その他のマシンでこの事象は発生しません。
グラボが同じ 2000 GeFo4 MX440 でも発生しませんでした。

>>416さんの仰る通り実際のウィンドウが小さくなっている気がします。
画面の左上の方をクリックしても非アクティブにはならない事がわかりました。
実際のウィンドウが小さく左上にある感じがします。
(デスクトップのサイズは1280x960 フルスクリーンは1024x768)

419 :415:2006/10/14(土) 07:23:53
マルチモニター機能がいつの間にかONになってましたw
マウスが別画面に行ってたっぽいです。

お騒がせしました〜。


420 :デフォルトの名無しさん:2006/10/14(土) 22:38:47
DrawPrimitiveUPを使うときは
頂点シェーダって使えない?


421 :420:2006/10/14(土) 23:48:15
すまん、寝ぼけてたw
ぜんぜん使えたw

422 :デフォルトの名無しさん:2006/10/15(日) 21:45:35
DirectPlayで
IDirectPlay8Address::AddComponent(DPNA_KEY_PORT〜〜〜
で設定するポート番号って何に使うの?
DirectPlayは47624,2300-2400を使うんじゃなかったの?

ユーザにはどのポート空けるように言えばいいのか教えてくれぃ


423 :デフォルトの名無しさん:2006/10/15(日) 22:11:21
DirectPlayなんて使わないでくれぃ

424 :デフォルトの名無しさん:2006/10/15(日) 22:38:08
WinSockマジオヌヌメ

425 :デフォルトの名無しさん:2006/10/15(日) 22:44:59
winsock知ってるやつが楽するために使うのがDirectPlay

426 :デフォルトの名無しさん:2006/10/15(日) 22:57:23
いち初心者なんですが、本当のところ
DirectPlayって使わないものなのでしょうか?
やっと描画系を覚えたド素人なのですが
今後、DirectPlayを勉強しようかなってときです。
WinSockで十分ならDirectPlayは
参考程度に斜め読みしますよ。


427 :デフォルトの名無しさん:2006/10/15(日) 23:08:34
DirectPlayの方が簡単。

428 :デフォルトの名無しさん:2006/10/15(日) 23:11:57
>winsock知ってるやつが楽するために使うのがDirectPlay
ネタ?

429 :デフォルトの名無しさん:2006/10/15(日) 23:16:44
DirectPlayはもはやレガシー

430 :デフォルトの名無しさん:2006/10/15(日) 23:24:36
winsockって答えてるやつはどんなプロトコルも自前で書く気か?
趣味やパッケージソフトの世界だな

431 :デフォルトの名無しさん:2006/10/15(日) 23:40:58
DirectPlayはMS自体がサポートしない旨を明記しているのに、
今更、新規の案件で使う意味が分からない。

432 :デフォルトの名無しさん:2006/10/16(月) 00:06:49
漏れはDirectPlayの時のがしんどかった
DirectPlayで書く方が絶対コード量多い

433 :デフォルトの名無しさん:2006/10/16(月) 00:14:33
NAT超えやボイスチャット、ロビー機能、UPnP対応

なんて実装しねーよバカ

434 :デフォルトの名無しさん:2006/10/16(月) 01:06:57
DirectPlay、あんなもん使ってるやつがいたのか
世界は広いぜ、ちくしょう

435 :デフォルトの名無しさん:2006/10/16(月) 06:55:58
結局>>422の質問に誰も答えてあげてないのにバロスwww

436 :デフォルトの名無しさん:2006/10/16(月) 08:32:42
そんなん誰も使ってねーよと
それが答え。


437 :デフォルトの名無しさん:2006/10/16(月) 09:51:25
俺はLinuxやPS2と通信する時にDirectPlayではどうにもならなかったので早々にWinSockに移行した。

438 :385:2006/10/16(月) 17:35:25
>>386-395,398-403
超遅レスですが出来ました!
(インクルードディレクトリ,ライブラリディレクトリを追加)
ありがとうございました.

439 :デフォルトの名無しさん:2006/10/16(月) 18:31:33
明日の朝8時マスターアップです!
ちょっと聞きたいんですが、
テクスチャを重ねる処理を加えたら勝手に終了するようになってしまいました。
何かメモリ的なことだと思ったんですがよくわからない状態です。
具体的には今まではテクスチャは1枚だけくっつけて表示してたんですが、
今日の夕方にやっと正式なテクスチャがあがってきたと思ったらマルチテクスチャ?になっていて、
急遽この処理を追加したんです。
そしたらメニューからSTARTを選んでゲームを始めると、
一瞬だけゲーム画面が出るんですが即終了しちゃうんです。
もしかするとマルチテクスチャにこういうバグが潜んでるのかもしれません。
どなたか同じ経験にあわれた方いませんか?

440 :デフォルトの名無しさん:2006/10/16(月) 21:40:42
マルチテクスチャにそんな寒いバグはない。
普通に1ポリゴンに8枚貼ったり出来る。

君のプログラムがバグっているだけだろう。
ある今マルチテクスチャが対応してないほど古いビデオカード使っているか。


というかDirectXで開発してて、何のエラーも出ずに即終了ってありえないんだが・・・。
デバッグランタイム使いつつ、VisualStudioでデバッグモードでちゃんと動かしてるのか?


そもそもどんな環境なのかもDirectXのバージョンも分からなければレスのしようもないぜ。

いや、してるけど。

441 :デフォルトの名無しさん:2006/10/16(月) 23:33:18
質問です
D3DX系のAPIを使うとd3dx9_xx.dllというのが必要ですと
エラーが出ると思うのですが、これの解決方法をネットで
調べていたら、エンドユーザにこれをさせるのは結構面倒
そうなので、D3DX系を使わないでコーディングするという
のは常識でしょうか?それともエンドユーザにランタイムを
インストールしてもらうほうが普通でしょうか。



442 :デフォルトの名無しさん:2006/10/16(月) 23:37:06
常識なんて物はない。
自分が必用だと思う手段をとればいい。

443 :デフォルトの名無しさん:2006/10/16(月) 23:45:38
パッケージソフト→インストーラを作る
フリーソフト→再配布パッケージインストールしてねとドキュメントに書く

444 :デフォルトの名無しさん:2006/10/16(月) 23:57:38
レス、サンキューです
失礼しました、常識って言葉が悪かったですね。

いやー、個人的な話でもうしわけないんですが
PCに無知な友人(複数)にプレイしてもらいたくとも
ランタイムインストールしてって一言で言えなかったりして。

そういう場合は、やっぱ使わないんでしょうねD3DX。
ありがとでやんす

445 :デフォルトの名無しさん:2006/10/17(火) 00:00:53
D3DXはShader、Effect、Texture関連がねー
これD3Dプログラミングでは、ほぼ必須
自前で実装は無理だしね、素直にユーザにやらせろ

446 :デフォルトの名無しさん:2006/10/17(火) 00:03:49
>>445
やっぱ、d3dx便利ですよねー

なして配布がこんなに面倒になったのか。
きっと理由があるんでしょうけど。


447 :デフォルトの名無しさん:2006/10/17(火) 00:07:17
面倒だから添付して一緒にインストールしちまえ。
コアは変わってないから俺はlib時代のやつ使ってるけど。

448 :デフォルトの名無しさん:2006/10/17(火) 00:31:05
DLLにかわった理由ってなんだろ?
バグが見つかったとき、MSが静かに修正できるようにするためなのかな。

449 :デフォルトの名無しさん:2006/10/17(火) 00:33:53
もう面倒だからいっしょのフォルダにdllをぶち込んだとしても誰が文句など言おうか・・・
とか考えてる奴は俺だけじゃないはず・・・。

450 :デフォルトの名無しさん:2006/10/17(火) 00:40:10
>>448
多分、馬鹿がdllにするとカッコイイ的なこと考えてぶち込んだんだと思う。
っていうかlibがアフォ過ぎて嫌いって奴がいてdllにしたらもっとアフォなことになったとかそんな感じだと思う。

俺もlibはコンパイルオプションが少しでも狂うとリンクできなくなるから嫌い。
でも、今のdllの状況はそれよりアフォだと思う。
でも、dllにした奴がWindowsUpdateで配ってくれるだろう・・・とか考えていたなら、当てが外れてカワイソス。
ついでに俺等もカワイソス

451 :デフォルトの名無しさん:2006/10/17(火) 01:09:55
DirectXのバージョンを上げてくれたら、こんなに悩まなくてもいいのに。
そうだったら

エンドユーザ<お、DX9.0c2なんてやつがでてる。俺ゲーム好きだからアップデートしとこ。

となってくれそうなのに。

452 :デフォルトの名無しさん:2006/10/17(火) 02:06:59
そして
「なんだよ、アップデートしたら動かなくなったぞ、こんちくしょう
 おれのPCじゃつかえねーのに何でアップデートすんだよ!」
とかクレームが

453 :デフォルトの名無しさん:2006/10/17(火) 02:07:39
テキスト入力について質問です。
丁度>>340が回答していたので横から参考にさせてもらっていますがimm系のAPIとは
猫のWindows SDK編278〜283章( ttp://www.kumei.ne.jp/c_lang/sdk3/sdk_278.htm など)
に書かれていることで、これを組み込めばいいのでしょうか?
用途はいろいろあるのにモノにするまでテラナガス(´・ω・)

454 :デフォルトの名無しさん:2006/10/17(火) 02:29:23
まさにそれ。
漏れも組み込んだ。
そこそこ面倒くさいぞ。

455 :デフォルトの名無しさん:2006/10/17(火) 02:32:30
>>454
dd


456 :デフォルトの名無しさん:2006/10/17(火) 04:39:45
すみません。誰か教えてください。

typedef struct VERTEXDATA {
floatx,y,z,rhw;
D3DCOLORcol;
} VERTEXDATA;
VERTEXDATA v[3] = {
{32.0f, 0.0f, 0.0f, 1.0f, D3DCOLOR_ARGB(0xFF, 0xFF, 0xFF, 0xFF) },
{ 0.0f,32.0f, 0.0f, 1.0f, D3DCOLOR_ARGB(0xFF, 0xFF, 0xFF, 0xFF) },
{32.0f,32.0f, 0.0f, 1.0f, D3DCOLOR_ARGB(0xFF, 0xFF, 0xFF, 0xFF) }
};
pDev->SetFVF(D3DFVF_XYZRHW | D3DFVF_DIFFUSE);
pDev->DrawPrimitiveUP(D3DPT_TRIANGLELIST, 1, v, sizeof(VERTEXDATA));

これだと三角形が表示されないのですが、理由分かるひと教えてください。
頂点は
  0
 12
だと描画できずに
  0
 21
の順番だと描画できます。

457 :デフォルトの名無しさん:2006/10/17(火) 05:08:12
カリング

458 :デフォルトの名無しさん:2006/10/17(火) 05:11:05
あれ、これだとカリングで捨てられちゃうのか・・・・。点の位置が変わるだけでそうなるのね。。。

459 :デフォルトの名無しさん:2006/10/17(火) 05:18:11
>>457
うまくいった
ありがとうございます orz


460 :デフォルトの名無しさん:2006/10/17(火) 07:55:45
>>440
あーレスサンクスです!
朝6時までかかりましたが無事に解決しました。
原因はマルチテクスチャをカウントするときグローバルのiDを使ってたことでした。
処理の流れを決める変数も同じiDなんですが、
テクスチャを貼らないときはiD=0になってました。
それでswitchで処理を振り分けてるんですが、
iDが0だとどれにもひっかからずにゲーム終わっちゃってました。
とりあえず間に合いました!

461 :デフォルトの名無しさん:2006/10/17(火) 08:00:24
お前の腐乱死体のような処理フローなどどうでもいい


462 :デフォルトの名無しさん:2006/10/17(火) 08:10:38
まったくだ
いますぐソース削除して、ちんこ切ってグラフィックカードのファンにつっこめ

463 :デフォルトの名無しさん:2006/10/17(火) 08:11:56
>>457
なぜカリングで削られるんすか?


464 :デフォルトの名無しさん:2006/10/17(火) 08:24:14
>>463
じゃあ逆に、何ならカリングで削られると思うんだ?

465 :デフォルトの名無しさん:2006/10/17(火) 08:25:49
>>460
そんなん、その場所をステップ実行したら5分で分かると思うんだが・・・

466 :デフォルトの名無しさん:2006/10/17(火) 08:38:32
>>461
問題を解決したときは詳しく書いておいたほうが、
同じミスで悩んでる人のヒントになるのは常識でしょう。

>>465
そりゃあ終わってしまう原因と解決策を俺が書いたからでしょう。
原因不明な状態ではマルチテクスチャを追加したことを疑うのが先。

467 :デフォルトの名無しさん:2006/10/17(火) 08:45:36
>>466
普通にDirectXをデバッグランタイムで動かしている場合、
DirectX内部のエラーはすべて報告される。
D3Dエラー発生時にブレークするようにも出来る。

エラーダイアログも出ずに即終了の時点でDirectX関係のエラーの可能性はまずない。

そもそもマルチテクスチャとフロー関係の変数を同じもので
使いまわすというその学生並みの設計を何とかしろ。


468 :デフォルトの名無しさん:2006/10/17(火) 11:14:26
>>467
エラーが報告されるといってもそれはMSが想定した範囲でしょう。
想定外のエラーは報告されないどころか感知すらできない。
これが原因で終了していたのならエラーなんて表示されないでしょう。
それから変数をグローバルにするのは、
メモリ節約と速度アップに効果的なことぐらいゲームプログラマなら知っておくべき。
もっとも限られたメモリでプログラム組んだことないんだろうけどな。
うちの会社はコンソールとWIN両方やってるけど、
WINプログラマだからって好き勝手メモリ使うバカなんて1人もいないけどね。

469 :デフォルトの名無しさん:2006/10/17(火) 11:16:18
>それから変数をグローバルにするのは、
>メモリ節約と速度アップに効果的なことぐらいゲームプログラマなら知っておくべき。

えーとそのなんだ。
釣りだよね?

470 :デフォルトの名無しさん:2006/10/17(火) 11:49:27
ローカル変数を使った方が、最適化されたコードを吐きやすいとか、
CPUキャッシュにヒットしやすいとかゲームプログラマなら知っておくべき。

ただし該当部分だけグルグルまわすベンチをとって、
プログラム全体ではほとんど影響がないのに、
ほら早くなっただろうとか声高にアホを晒す必要はない。

471 :デフォルトの名無しさん:2006/10/17(火) 12:33:14
>>469
意見は具体的にどうぞ。社会に出てからそんな口聞いてるとクビだよ。

>>470
autoよりregisterのほうが速いの知ってるかな。知らないなら議論の無駄だね。

472 :デフォルトの名無しさん:2006/10/17(火) 12:39:33
>>471
無茶に敵を作らない方が良いよ。
無視する事もできるでしょ?

473 :デフォルトの名無しさん:2006/10/17(火) 12:59:05
>>471
registerは無用に使うと最適化の妨げになるだけなので、
VisualC7.1辺りではキーワードが完全に無視されている。
確かに知らないのなら議論の無駄だね。

474 :デフォルトの名無しさん:2006/10/17(火) 19:14:39
あのね、お兄ちゃん。
DirectXでわからないところがあったんだけど、
一生懸命がんばったら、1人でできたよ。
何度もお兄ちゃんに聞こうと思ったよ、
でも、いつまでもお兄ちゃん(2ch)にべったりだと、
また子供(DQN)扱いされちゃうから、がんばったんだよ。
頭撫でててね。エヘッ。

でだ。
DirectGraphics関係のクラスを実装して、
ある程度、自由に描画関係などを組めるようになったんだが、
どこから組めば頭いいの?
サウンド関係のクラスとかをぜんぜん作ってなくて、
そっちの方のクラスを実装してからの方が賢いのか?
その他、ゲームの実際の動きとか造る前にエフェクト関係とかを
先に実装すべきでつか?

簡単なアクションゲームを造ろうと思うのだが、
どのように造っていけばいいかが分からないのでつよ。

「お好きなところからどうぞ」
という回答の場合、
貴方ならどのように組んでいくかをご教授願いたいでゴザルよニンニン。

475 :デフォルトの名無しさん:2006/10/17(火) 21:48:06
>>468
MSが想定していないDirectXの関数は存在しない。
デバッグランタイムにはすべての処理にチェッカーが埋められている。
そもそもエラー発生時にアプリが何も言わずに終了というのはVisualStudio上デバッガではまずありえない。
ルーチンがおかしいとかじゃなくアプリが強制終了なんてメモリ破壊とか致命的なものでなきゃおきないぞ?

新しい仕様を盛り込んだ瞬間に発生したバグに対して自分のコードではなく
実績あるライブラリを疑うことがもう過信もいいところ。

携帯機なんかでメモリをギリギリまで絞るのは当然のことだが、
WindowsのようにOSがすべて管理してくれて高度な最適化をもった
コンパイラを使ってる状況で、同じグローバル変数を使いまわすなんて愚の骨頂。

わずかな速度アップの為にくだらないバグ仕込むような保守性の低さになんとも思わないか?
時代についてこれないのが悪いとはいわないが、自分がついてこれていない事もみとめたほうがいい。

>>474
サウンドは既存のライブラリつかいまわーし。
Oggのストリーム対応とかいくらでもあるっしょ。

476 :デフォルトの名無しさん:2006/10/18(水) 01:04:49
>>474
音なんか最後でいいから、とにかくゲームを作るべき。

寄り道するとすぐ飽きる。

477 :デフォルトの名無しさん:2006/10/18(水) 01:42:31
>>476
俺は初心者のときは寄り道も含めた勉強は大事だと思うけどな。
ゲームを完成させることは必ずしも大事なことじゃ無い気がする。
ショボイゲーム作ったところでそれがなんだって気はするけどね。
初心者のころは自作ライブラリを作る→それを使ってなんか作る(別にゲームでなくてもいい)
→また、新しいライブラリを作る→それを使って・・・
を繰り返したほうが力が付くと思う。

ゲームだけでも駄目だし、ライブラリだけでも駄目だと思う。
よく、開発者で「3Dデモよりゲームを作ってきた人を評価する」なんて人がいるけど
そんなのは他の人がそうするから違う視点でみれる俺を褒めろ的ナちょっと違う俺様アピールでしかない。
〜よりとか〜した方がじゃなくて、なんでも必要だし、なんでも大事だよ。

478 :デフォルトの名無しさん:2006/10/18(水) 02:30:09
まあ自分で納得行くようにやれやと。
好きこそ物の上手なれと申しましてな。

479 :474:2006/10/18(水) 09:53:17
あのね、お兄ちゃん。
デザインパターンはという言葉すら知らないくらいに子供のときに1回ゲーム造ったんだけど、
「めちゃくちゃ」なコーディングになっちゃったの。
そのときは、気合とコミケの締め切りがなかったら絶対に完成
できなかったと思うの。
(も、もちろんお兄ちゃんがそのともたくさん教えてくれたのはわかってるよ)
そろそろ、大人の階段の登り方を教えて欲しいな・・・って思ってるんだよ。
エヘッ。


でだ、
>>475
漏れも、サウンド関係は既存のライブリを使まーす。

>>476 >>477 >>478

寄道すると飽きるのは分かるが、
がんがんコーディングして、ニッチもサッチもいかなくなると
挫折感のせいで、前に進めなくなる経験をしている俺がいる。
とりあえず、好きなようにコーディングして、ゴタクの前に血反吐ゲロゲロ吐くのが
一番近道ってことだと了解したよ。
それで、挫折するようならゲーム造るな、ってことなんだと思う。


480 :デフォルトの名無しさん:2006/10/18(水) 10:38:16
サウンド関係の話が出てるけど、古いPCで動かす場合に
サウンド関係で動かなかったりすることってある?

ビデオ関係だと特定の機能がビデオカードになくて、エミュレーションしたり
動かなかったりするけど、サウンド関係でもそんなことあるのかな?

481 :デフォルトの名無しさん:2006/10/18(水) 11:11:59
>>474
いい加減そのアホな書き込み止めたら?
初心者プログラマーにありがちな浮かれ加減が出てて気持ち悪い。
「やったー!動いたー!俺って天才!?」的な感じだろ?どうせ。

482 :デフォルトの名無しさん:2006/10/18(水) 12:51:12
ちょいと質問なんだが、何を動かそうとしてもDirect3Dが初期化出来ないのだが、何故?
ゲーム関係は全くと言っていいほど動かないorz

483 :デフォルトの名無しさん:2006/10/18(水) 12:59:26
デバッガーで帰ってきたエラーコード調べりゃ良いじゃない。

484 :デフォルトの名無しさん:2006/10/18(水) 13:01:01
>>480
http://www.alicesoft.com/support/soundn.html#s008
↑みたいなことも可能性としてあるみたいだ。
はずしてたらスマソ。

>>481
DirectXできたら1流プログラマの仲間になれると
思っている房は放置しておけよ。
下手にレスされるともっとうざい。

>>482
「初期化ができない」では、ちょっと回答しにくい。
まずは環境(コンパイラ、DirectXのバージョン、グラフィックボード)くらいは
教えてくれ。

485 :デフォルトの名無しさん:2006/10/18(水) 13:37:25
>>484
ありがとう。
ドライバの不具合など以外は、機能面では大丈夫ってことかな?

486 :デフォルトの名無しさん:2006/10/18(水) 13:39:09
>>484
すまん、自己解決した
ありがとう

487 :デフォルトの名無しさん:2006/10/18(水) 18:46:53
昨日の夜は打ち上げ飲み会やったんですよ。
他のプログラマとか外注さんとか参加してたんで話題に出たんですが、
みんなこのスレ見てたようですねー。
やっぱ現役の声のほうが確かですわな。
結論は「あいつらホビープログラマだろw」で全員一致しました。
いろいろな意見が出ましたが「メガデモとか知らねぇんじゃねぇ?」とかもありましたよ。
まあこの話はこれで終わりということで。

488 :デフォルトの名無しさん:2006/10/18(水) 19:02:37
今時、メガデモとか言い出すダメプログラマでも、
仕事で何とかやっていけるのが土方プログラマの世界。

489 :デフォルトの名無しさん:2006/10/18(水) 21:26:31
いきなりすいません。今ネットゲームやろうと思いましてダウンロードしたところゲームが出来なかったのです。
そしてdirectX9.0をダウンロードしていないことが原因と判明したのでインストールしようとしたら
なぜかダウンロードが1秒で終わってしまうのです。そしてネットゲームを繋いでみると・・・。
すぐ落ちてしまい、そのあとフリーズ。なぜかわかりますでしょうか?わかる方おりましたらレス下さい。

490 :デフォルトの名無しさん:2006/10/18(水) 21:31:04
>>489
Windows95ではDirectX9は動かないよ。

491 :デフォルトの名無しさん:2006/10/18(水) 21:53:55
Direct3Dの各サンプルにて、Commonフォルダ内のファイル内容を変えずに
WinMain(もしくはWinMainがあるファイル)内でデバイスのアドレス(LPDirect3DDevice9)を取得するにはどうすればいいのでしょうか。


492 :デフォルトの名無しさん:2006/10/18(水) 21:54:12
逆に言うと95とNT以外は全部サポートしてるんだから地味にいいバージョンだよな。


ちなみにサウンドに関してはサウンドバッファをハードウェアに作るのはかなり地雷。
多少の負荷は目をつぶってでもシステムメモリに作って全部CPUでやらせたほうがいい。

493 :デフォルトの名無しさん:2006/10/18(水) 21:57:39
>>490 いえ、Meなんです。。言い忘れてました。。

494 :デフォルトの名無しさん:2006/10/18(水) 22:09:09
>>493
Me(OS)のバージョン最大限に上げる。
関係ないと思うけど、ビデオカードのドライバのバージョンを
最新のものにする。

ハードディスクの空き容量が足りないっていうオチだったら
ぬっころす。

マイクロソフトのソフトって、ネットからソフトの本体を落としたりするから
セキリュティソフトとかの問題も疑ってみるべき。

外してたらすまそ。

495 :デフォルトの名無しさん:2006/10/18(水) 22:15:46
完璧に板違い。

496 :デフォルトの名無しさん:2006/10/18(水) 22:26:37
C++(CLIではありません)でDirectXを使い始めた者です。
現在Direct3D9のチュートリアルを見ているところです。
サンプルではIDirect3D*をグローバルに持っているのですが、これを
スマートポインタに入れたいと思いました。
WEBで探してみると_com_ptr_tを使えば良さそうだと思いました。
ところが_com_ptr_tはInterfaceをメンバに持つクラスのオブジェクト
でなければならないようで駄目でした。

何か良い方法はございませんでしょうか?

497 :デフォルトの名無しさん:2006/10/18(水) 23:14:34
それ単に思いついただけっぽい書き込みだな・・・。
本当にその必要があるのかどうか考えてからのほうが良いぞ・・

498 :496:2006/10/18(水) 23:59:31
ATLというライブラリのCComPtrを使えば良いようですね。
他に良い方法はありますでしょうか?

>>497
IDirect3DDevice9の開放のタイミングがよくわかってません。
やはりCreateDeviceの引数にハンドルを渡したウィンドウが消
される前でないとまずいのでしょうか?
グローバルなスマートポインタで持っておいてWinMain終了後に
開放だと駄目なのかなと。

499 :デフォルトの名無しさん:2006/10/19(木) 00:40:32
別にウィンドウ消されたあとでも問題ないが、
ウィンドウ消されたあとでPresent()呼ぶと当然エラーで落ちる。


500 :デフォルトの名無しさん:2006/10/19(木) 01:02:51
Direct3D 全体を管理するクラス作って、デストラクタで開放すればいいんちゃうの

501 :デフォルトの名無しさん:2006/10/19(木) 01:10:55
だがD3DDeviceを複数作ってしまう罠
いや悪くは無いんだが、パフォーマンスは落ちる。
らしい。

502 :491:2006/10/19(木) 08:17:15
やはり方法はないのでしょうか?
逆に、同じくCommonフォルダ内のファイルの内容を変えず、
自作ファイル内で作成したデバイスのアドレスを渡すのでもいいのですが、DXUI以外で設定できないものなのでしょうか。

503 :デフォルトの名無しさん:2006/10/19(木) 09:14:13
>>501
シングルトンにすればいいんでないの?

504 :デフォルトの名無しさん:2006/10/19(木) 15:32:53
メタセコイアで作ったxファイルをDirectXのプログラムでテクスチャをマッピングしようとしたのですが、なぜかマッピングできません。
ビットマップがおかしいのかと思い、DirectXのサンプルにあるトラの画像を変えてみたのですが、ちゃんと画像が貼られていました。
なのでxファイルがおかしいのかな?、と思うのですがどうすればよいのかわかりません。

ちなみに、メタセコイア(フリーソフト、ver2.3)でやっています。

505 :デフォルトの名無しさん:2006/10/19(木) 15:40:27
>>504
DirectXのサンプルの自分のプログラムを見比べればいいだけ

506 :デフォルトの名無しさん:2006/10/19(木) 17:46:49
>>504
UVの設定はどうなっている?

507 :デフォルトの名無しさん:2006/10/19(木) 18:29:48
返答していただき、ありがとうございます。

UVマッピングはしています。
私はビリヤードの球を作っていまして、材質設定のところでマッピング方式をUV方式にして、
図形作成のときの詳細設定でもUVマッピングとしています。

>>505
サンプルに直接xファイルを入れています。

>506
ビリヤードの球を作っていまして、材質設定のところでマッピング方式をUV方式にして、
図形作成のときの詳細設定でもUVマッピングとしています。
あと、xファイルで保存するときは座標軸をDirect3Dにして、
xファイルオプションは法線とUVマッピングにチェックを入れてます。

508 :デフォルトの名無しさん:2006/10/19(木) 18:42:03
情報が少なすぎる。

509 :デフォルトの名無しさん:2006/10/19(木) 18:42:31
まともなモデリングソフトできちんとUVの調整をしろ。

510 :デフォルトの名無しさん:2006/10/19(木) 18:52:43
>>507
Xファイルの中を覗いてみればいい
テクスチャやUVがどうなってるのか見てみるがよろし大根おろし

511 :デフォルトの名無しさん:2006/10/19(木) 18:56:55
なんか加齢臭がする

512 :デフォルトの名無しさん:2006/10/19(木) 18:57:35
そもそも球体に思い通りにUVを張るのは、かなり面倒な作業なんだが、
まさかテレパシーを送ると自動で作ってくれると思っているのか?

513 :デフォルトの名無しさん:2006/10/19(木) 19:15:04
>そもそも球体に思い通りにUVを張るのは、かなり面倒な作業なんだが
おいおい、ビリヤードの球にUV貼るなんて楽勝だろ(w

514 :sage:2006/10/19(木) 22:45:23
皆さんありがとうございます。
xファイルのUVの調整ができるソフトを探してみます。

515 :デフォルトの名無しさん:2006/10/19(木) 22:49:31
ん?メタセコでもなんら問題ないと思ったが

516 :デフォルトの名無しさん:2006/10/19(木) 23:01:00
自己未解決しますた。

517 :デフォルトの名無しさん:2006/10/20(金) 01:19:19
>>512,514
そんなに厳密なもん必要なの?
頭悪いんちゃう?w

518 :デフォルトの名無しさん:2006/10/20(金) 02:01:19
メルカトル図法的になっちまうのは問題だろとか、そーいうことが言いたいのと違うのか。
いや、しらんけど。

519 :デフォルトの名無しさん:2006/10/21(土) 07:32:36
DirectSoundで効果音再生すると
「ブッ」って音が最初に入るんだが普通?

リソースからmmioとか使ってWAVEデータ読み込んでるんだが。


520 :デフォルトの名無しさん:2006/10/21(土) 07:33:19
>>519
バッファをクリアすればいい
よくある方法→無音再生

521 :デフォルトの名無しさん:2006/10/21(土) 07:33:36
ごめんオレが...(ry

522 :デフォルトの名無しさん:2006/10/21(土) 08:42:58
DirectSoundの昔からの問題だな

523 :デフォルトの名無しさん:2006/10/21(土) 12:35:46
>>520
トンクス


524 :519:2006/10/21(土) 12:51:42
まだよくわかんね。
1. プライマリバッファを作る
2. セカンドバッファを作る
3. セカンドバッファにデータを書き込む
4. セカンドバッファをDuplicateSoundBufferでいくつかに複製
5. 複製したものを再生

ってやってるんだがどこで何のバッファを
クリアしてやればおk?


525 :519:2006/10/22(日) 09:01:58
5秒の無音を無限ループしてみたら、
5秒ごとに「ブ」が来るわ。

これは>>521のせいってことでFA?

526 :デフォルトの名無しさん:2006/10/22(日) 12:57:45
お、おならなんてしてないわよっ
ちょっとお芋が美味しかっただけなんだからね・・・

527 :デフォルトの名無しさん:2006/10/22(日) 13:08:49
526から離れるんだ、逃げろー

528 :デフォルトの名無しさん:2006/10/22(日) 13:21:59
>>519
データを疑わないのか?

529 :デフォルトの名無しさん:2006/10/22(日) 13:41:07
俺も、再生開始時のプッ音は何度も経験してる
環境依存っぽかったので、サウンドカードが古いのが原因だと勝手に思ってたけどな

530 :デフォルトの名無しさん:2006/10/22(日) 14:07:18
使う前にバッファクリアしてみるとか

531 :デフォルトの名無しさん:2006/10/22(日) 14:17:23
外部音源のときとかそうだったかな・・・

まあ、まずは自分の今の環境で他のサンプルがどうなってるか?
を確認して、
それがなってなかったら、そのソースと動作を確認。
それもなるようなら環境依存ってことじゃね?

532 :デフォルトの名無しさん:2006/10/22(日) 14:20:24
>>525
それは本当に無音なのか?

533 :デフォルトの名無しさん:2006/10/22(日) 14:26:10
>>532
まあ、まずは>>531の確認が先。

534 :デフォルトの名無しさん:2006/10/22(日) 16:25:27
俺もだ。サウンドバッファは生成時に自動クリアしていて
問題ないと思うんだが、ときどき最初のサウンドの再生開始時に鳴る。
再現性がなくて全く問題ないときもあるのでお手上げ状態だわ。
ハード依存ということで割り切っている。

535 :デフォルトの名無しさん:2006/10/22(日) 16:56:41
セカンダリを消してても、プライマリは古いデータが
残っていてそれが再生されるということがある。

536 :デフォルトの名無しさん:2006/10/22(日) 18:18:18
>>534
最初の音でノイズが出ることがあるのは他のソフト(WIN含む)が使ったバッファが残ってるからだよ

537 :519:2006/10/22(日) 18:35:22
今帰った。
たくさんレスありがと!

>>528
WAVEデータはSoundEngineで作った無音データ。
リソースから読み込んでる。
バッファに書き込んでるデータを見てみると先頭が
"RIFF"ってなっとる。
これが原因?

>>530
プライマリ?セカンダリ?

>>531
DirectSoundのサンプルではノイズは出ないわ。


538 :デフォルトの名無しさん:2006/10/22(日) 19:04:01
( ゚д゚)ポカーン

539 :534:2006/10/22(日) 19:17:17
>>535
>>536
あ、そういえばプライマリバッファのクリアはしていなかったです。
協調モード DSSCL_NORMAL なので SetFormat もしてなかったんですが・・・
(触らなくていいと思ってた。)
かまわずロックしてゼロクリアしてみました。おお、直ったような・・・?
再現性がないのでもう少し使ってみないと確実な結果はでませんが
改善されたような気がします! ご助言ありがとう!!

540 :デフォルトの名無しさん:2006/10/22(日) 19:58:31
OpenGLでは
フリーの人体モデルが結構みつかるのですが
DirectXではないのでしょうか?
OpenGLとdirectXの混合でコードを書くことはできますか?

541 :デフォルトの名無しさん:2006/10/22(日) 20:17:10
OpenGL用?
OpenGLって共用のモデルフォーマットなんて無かった気がするが・・・。

542 :デフォルトの名無しさん:2006/10/22(日) 21:59:03
人体モデル
http://ja.wikipedia.org/wiki/Poser


543 :デフォルトの名無しさん:2006/10/22(日) 23:02:16
フリーの人体モデルで作るって
Simsみたいなの、500ポリゴンのカクカク美少女が競演とかするのか


544 :デフォルトの名無しさん:2006/10/23(月) 00:03:36
OpenGL専用ってわけじゃないけどソニーが音頭とってたフォーマットがあるじゃん

545 :デフォルトの名無しさん:2006/10/23(月) 00:04:19
>>537
> バッファに書き込んでるデータを見てみると先頭が
> "RIFF"ってなっとる。

メチャメチャそれが原因なんだが、気付いてもらえるだろうか・・・(;´д`)

546 :デフォルトの名無しさん:2006/10/23(月) 00:06:31
OpenGLって自前でモデルデータ読み込む必要があるから
「OpenGLのモデル」っていうのは存在しないよ。

根本的なところを理解してないから勉強しなおし!

547 :デフォルトの名無しさん:2006/10/23(月) 01:02:42
>SONYが音頭とったフォーマット
そんなものもあったねえ
すげー久しぶりに思い出したよ
今でも生きてるだろうか

548 :デフォルトの名無しさん:2006/10/23(月) 02:06:25
>>545
見逃してたw
なんでヘッダ部分までバッファに読み込んでるんだw

>>544
COLLADA?とかいうXML形式のファイルフォーマットだっけ?

549 :デフォルトの名無しさん:2006/10/23(月) 02:57:36
いや、普通に注目集めてるし。
ゲームなんかじゃ導入事例増えまくりですよ。
DirectXとの相性は全然よくないけどなー。

550 :デフォルトの名無しさん:2006/10/23(月) 16:27:58
どの辺で注目集めてるのか教えて。
あと、増えまくったという具体的な導入事例も。

XML関連はゲーム開発者(とくに日本の)からは敬遠されがちだし、
少なくとも俺の周りには注目してる人いないんだが・・・

551 :デフォルトの名無しさん:2006/10/23(月) 16:35:44
エミュレータ関連だとOGL多いな

552 :デフォルトの名無しさん:2006/10/23(月) 17:09:24
質問です!
3Dの話なんですが
ある点Aから2点BCを通る直線に垂線を下して
垂線と直線が交わる点を求めたいんですが
どうやればいいでしょうか?

553 :デフォルトの名無しさん:2006/10/23(月) 17:17:37
中間フォーマットで利用してる人が実は多いといいたいんじゃない?
いくらなんでも最終フォーマットとしてはありえないんだし。

554 :デフォルトの名無しさん:2006/10/23(月) 18:15:20
>>552
X={A・BC}/|BY-AZ|
Y={A・BC}/|BZ-AY|
Z=|AX+BX|/{X・Y}

555 :デフォルトの名無しさん:2006/10/23(月) 20:09:00
質問失礼です。

ユーザーによる複数行の書き込み処理を実装したいです。
CEdit等のWindowsコンポーネント(っていうんですか?)を組み込む事は可能でしょうか?
なんとかして処理を軽減したいのですが、、、

環境を下記します。
2000 & XP
VS2003
DX9.0 2005 April

556 :デフォルトの名無しさん:2006/10/23(月) 20:41:27
言語何?

557 :555:2006/10/23(月) 21:10:18
C++ です。
失礼しました。

558 :デフォルトの名無しさん:2006/10/23(月) 21:19:26
>>554
これは全部ベクトルですか?

559 :デフォルトの名無しさん:2006/10/23(月) 21:25:34
>>554
全てベクトルだとすると、XベクトルにAとBCの内積をBY-AZのベクトルの大きさで割った数値を入れるのは変ですし
X,Y,Zがそれぞれの成分だとすると、成分同士の内積を求めることはできませんよね?

560 :デフォルトの名無しさん:2006/10/23(月) 21:52:33
なんかDirectXっていうより数学っぽいので数学板で聞いてきます

561 :デフォルトの名無しさん:2006/10/23(月) 23:25:19
プリミティブ色 = デフューズ色 * デフューズ色の強さ + スペキュラ色 * スペキュラ色の強さ

現在ライティングを↑の式で求めているんですが、これに環境マップ色を加えたいんですが
一般的にはどうするのが普通なんでしょうか?

562 :デフォルトの名無しさん:2006/10/23(月) 23:32:08
>>561
環境マップで何を貼るかによって違ってこない?

ハイライトとかライト系だったらスペキュラの代わりだろうし
背景の映り込みだったら↑とは違ってくるし。

そもそも、色テクスチャは考慮されてるの?ディフューズと差し替え?
アンビエント色とライト色が入ってないのも気になってみたり・・・・・

563 :デフォルトの名無しさん:2006/10/23(月) 23:43:07
>>562
見やすくする為にいろいろ省いています。
実際のコードは以下の通り、D3Dのライティングモデルとほぼ同じです。

vColor.rgb= 0
vColor.rgb+= ( vMaterialDiffuse * light.vDiffuse * vDecal * sDiffuseFactor + vMaterialSpecular * light.vSpecular * sSpecularFactor) * sAttenFactor * sSpotFactor;
vColor.rgb+= light.vAmbient * vDecal;

これに環境色を掛けたり加えたりしたのですが、どれもいまいち不自然になってしまいます。
物理的に正しい観点からという方向も、そもそもこのライティングモデルは物理的根拠が無いですから
詰まってしまいます。


564 :デフォルトの名無しさん:2006/10/23(月) 23:50:30
デフューズ色やスペキュラ色は、物体の色と光の色が掛け合わされたもの(物理的には違いますが)
物体の色には、物そのものの色に加え、物が反射して映り込む背景の色も含まれるはず
つまり、vMaterialDiffuse *= vEnvironment、vMaterialSpecular *= vEnvironmentとするのが
最もうまくいく?

565 :デフォルトの名無しさん:2006/10/24(火) 00:02:50
質問です。

四角ポリゴンに法線をつけようと思ってるんです。

ちゃんと平面なときはいいんですが、
平面じゃない四角ポリゴン(実際はD3DPT_TRIANGLEFANで二つに割ってる)の場合がうまくいきません。
きっちり法線取りたい場合は四角ポリゴンを三角にバラすしかないですかね?


566 :デフォルトの名無しさん:2006/10/24(火) 00:13:23
>>565
四角形ポリゴンを三角形2つにばらすではなくて
三角形2つで四角形ポリゴンとみなすに、考え方を切り替えよう。
四角形ポリゴンは実際には作れないんだから、三角形2つの法線で近似するしかない。


567 :デフォルトの名無しさん:2006/10/24(火) 00:52:21
>>564
深く考えると、Diffuse色とかSpecular色って何のことを指してるの?って思う。
(反射色?拡散反射色?反射と拡散反射の計算って?光源色は白として計算?)

厳密には、反射するもの全てが所謂「環境マップ」そのものとも言える。
反射色/反射率/拡散反射色/拡散反射率/色テクスチャ/環境マップ/光源色・・・
自然界をそのまま計算するには要素が多すぎるよね。

で、簡単に考えるとしたら、環境マップは反射色の代わりに使ったらいいんじゃん?

568 :デフォルトの名無しさん:2006/10/24(火) 01:14:16
>>567
デフューズ色 * ( 1 - 鏡面反射強度 ) + 鏡面反射色 * 鏡面反射強度 + スペキュラ色

つまりこうですかね?
ちょっとこれで試してみます・・うまくいきそうな予感

569 :デフォルトの名無しさん:2006/10/24(火) 01:40:23
厳密に考え進めると↑で良さそうな感じがするんだが、
> デフューズ色 * ( 1 - 鏡面反射強度 )
これで色が暗くなるんだよね・・・

Diffuseが、(反射してしかも)拡散した結果の色ってのがクセ物。
誰か「一般的」な方法を教えてあげてください・・・

570 :デフォルトの名無しさん:2006/10/24(火) 02:03:32
また、複数のライトの場合どうすればいいのか・・

>鏡面反射色 * 鏡面反射強度
この部分はライトには依存しないので、ライトが何個あろうが
1回加えられるのみにしなければならない。
とすると以下のような感じ?

+ デフューズ色0 * ( 1 - 鏡面反射強度 ) + スペキュラ色0
+ デフューズ色1 * ( 1 - 鏡面反射強度 ) + スペキュラ色1
+ デフューズ色2 * ( 1 - 鏡面反射強度 ) + スペキュラ色2
+ 鏡面反射色 * 鏡面反射強度

これに関する情報が手に入りにくいのは、実ははっきり決まってないからなのかなぁ

571 :デフォルトの名無しさん:2006/10/24(火) 03:59:06
手に入りにくいも何も、単に描画モデルの古典例のひとつでしかないからだから…
そもそもモデルとして正確でもなんでもないんだから、結果オーライで好きに実装すればいいと思うよ

572 :デフォルトの名無しさん:2006/10/25(水) 10:28:00
DirectXのサンプルがビルド出来ません。

http://monsho.hp.infoseek.co.jp/dx/dx76.html
ここのページを参考にVisual C++ 2005 Express EditionとDirectX SDK(October 2006)と
Platform SDK for Windows Server 2003 SP1をインストールして、インクルードファイル等の
設定をしました。このページのサンプルコードはビルド出来ました。

しかし、DirectXのサンプルがビルド出来ません。次のようなエラーが出てしまいます。
Vertices.obj : error LNK2019: 未解決の外部シンボル __imp__DefWindowProcA@16 が関数 "long __stdcall MsgProc(struct HWND__ *,unsigned int,unsigned int,long)" (?MsgProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。
Vertices.obj : error LNK2019: 未解決の外部シンボル __imp__PostQuitMessage@4 が関数 "long __stdcall MsgProc(struct HWND__ *,unsigned int,unsigned int,long)" (?MsgProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。
Vertices.obj : error LNK2019: 未解決の外部シンボル __imp__UnregisterClassA@8 が関数 _WinMain@16 で参照されました。
Vertices.obj : error LNK2019: 未解決の外部シンボル __imp__DispatchMessageA@4 が関数 _WinMain@16 で参照されました。
Vertices.obj : error LNK2019: 未解決の外部シンボル __imp__TranslateMessage@4 が関数 _WinMain@16 で参照されました。
Vertices.obj : error LNK2019: 未解決の外部シンボル __imp__PeekMessageA@20 が関数 _WinMain@16 で参照されました。
Vertices.obj : error LNK2019: 未解決の外部シンボル __imp__UpdateWindow@4 が関数 _WinMain@16 で参照されました。
Vertices.obj : error LNK2019: 未解決の外部シンボル __imp__ShowWindow@8 が関数 _WinMain@16 で参照されました。
Vertices.obj : error LNK2019: 未解決の外部シンボル __imp__CreateWindowExA@48 が関数 _WinMain@16 で参照されました。
Vertices.obj : error LNK2019: 未解決の外部シンボル __imp__RegisterClassExA@4 が関数 _WinMain@16 で参照されました。

プロジェクトのプロパティの追加の依存ファイルは
d3dxof.lib dxguid.lib d3dx9d.lib d3d9.lib winmm.lib
となっています。

どこが原因となっているのでしょうか?

573 :デフォルトの名無しさん:2006/10/25(水) 11:24:34
http://bbs.2ch2.net/angstrom/?m=img&q=../angstrom/img/1143824659/0051.jpg

すみません。誰か教えてください。
上の画像のようにティーポットが変な風にかけたようになるのですが、これはいったい何がわるいのでしょうか?
よろしくおねがいします。

574 :デフォルトの名無しさん:2006/10/25(水) 11:25:45
あ、すみません。これは地面に対してティーポットは半分だけめり込んでいるのはいいわけですが、
ティーポットが崩れたようになっているのが問題としている部分です。

575 :572:2006/10/25(水) 12:53:59
すいません。自己解決しました。

プロジェクトのプロパティの追加の依存ファイルにuser32.libを加えたらうまく行きました。

576 :デフォルトの名無しさん:2006/10/25(水) 14:09:22
数値計算にGPU使えないかと思ってます
4次元以下の行列計算をGPUにやらせたら高速になるのか
バスとの転送速度でかえって遅くなるのか
そのへん、どうなのでしょうか

577 :デフォルトの名無しさん:2006/10/25(水) 15:18:23
ボードで違う予感

578 :あや:2006/10/25(水) 17:20:08
最近、はじめたばかりの初心者ですが
よろしくおねがいします。

現在、オリジナルの3DCGビュワーを開発しようとおもっているのですが、
用途として、
オリジナルのフォーマットで既存の3Dソフトウェアから
書き出すことが可能で、たとえば、.objxみたいな拡張子で
書き出せ、そのファイルをビュワーで読み込み、
その形状をオブジェクト中心にぐるぐるまわしたいです。
また、カメラ画角の変更等に対応できれば、さらにうれしいのですが。
さらに、いうと、全画面ビューで、ある程度のパフォーマンス(スピード)も
ほしいです。

まず、お聞きしたいのが、一般的に上記のような(漠然としすぎてますが。)
ビュワー開発は敷居は高いのでしょうか?

すこし、他言語等で、プログラムをかじっている程度で、
テストプログラムとして作れるレベルのものなのか?

3D系のプログラムのイメージが、今まで経験値が
なかったので、どのような体系(手段等)があり、どのようなプロセスで
構築していき、つくっていくのか、見当違い(的外れ)な質問なのかも
しれませんが、諸先輩方にアドバイス頂きたいと
思っております。何卒、よろしくお願いいたします


579 :デフォルトの名無しさん:2006/10/25(水) 17:33:50
表示は簡単です。
ぐるぐる回すのも難易度高くないと思います。
むしろオリジナルのフォーマットを策定してその入出力を書く方が大変?
あと、
> オリジナルのフォーマットで既存の3Dソフトウェアから書き出す
これをどう実現するつもりか不明なんですが、既存ソフトウェアの
プラグインを書くならそれが一番大変かも知れません。

最初は、とりあえずデータ形式や入出力は忘れて、
プログラムのソースコードに直接データを記述してしまい、
それを表示・ぐるぐるするのを目標にしてはどうでしょう。
適当な入門書を探すとサンプルに載ってそうな気もします。

580 :デフォルトの名無しさん:2006/10/25(水) 17:47:28
578です。
ご回答ありがとうございます。

>既存ソフトウェアの
>プラグインを書くならそれが一番大変かも知れません。

具体的に、何が大変なのでしょうか?
たとえば、3Dフォーマットには、obj、max、mb等
いろいろあるとおもいますが、それぞれ、それに対応した
ソフトウェアで読み込みができるとおもいますが、
なぜ、読み込みができるのでしょうか?何が、それぞれで
ちがうのでしょうか? 各ソフトウェアの設定や、埋め込む情報が
それぞれあるとはおもいますが、たとえば、純粋に形だけ読み込めれば
いいとおもっています。ただし、他のソフトウェアで読み込むことは
不可能にしたいです。(そのビュワーのみで開くことができる。)

たとえば、その適当な入門書で、オススメ等あれば
お教えいただけないでしょうか?

また、CG言語みたいなものがありますが、
ある程度ライブラリも豊富で、敷居は低いと聞いています。
評判はいかがなものでしょうか?

たびたびすいませんが、よろしくおねがいします。



581 :デフォルトの名無しさん:2006/10/25(水) 19:41:27
578です。
ちなみ表示させたいポリゴン数は、約10万ポリゴン近くあります。
これをリアルタイムに高速に動かすためには、どういった手段が
あるでしょうか?

582 :デフォルトの名無しさん:2006/10/25(水) 19:58:54
>>576
少なくとも俺のShader2.0カードでは
演算性能以前の問題で、試そうとすら思えないなぁ


583 :デフォルトの名無しさん:2006/10/25(水) 21:02:54
とりあえずもっと短くまとめてこないと読む気にならない人も多いんじゃないか?
と思わないでもない。

情報が足りなさ過ぎるのも困り物だが。

584 :デフォルトの名無しさん:2006/10/25(水) 22:19:46
<プロジェクト名> error LNK2022: メタデータの操作に失敗しました(8013118D) :
重複する型に、適合しないレイアウト情報があります (IDirect3D9) : (0x02000047)。
<プロジェクト名> error LNK2022: メタデータの操作に失敗しました(8013118D) :
重複する型に、適合しないレイアウト情報があります (IDirect3DDevice9) : (0x0200002c)。


このビルドエラーはどういう状態を表していて、何が原因なのでしょうか。
DirectX3D(2006/Aug)のサンプルのCommonフォルダ内のファイルを自分のプロジェクトに加えて一緒にビルドしただけです。
サンプルの内容は変えていませんし、自分のプロジェクト単体ではエラーは出ません。
また、元のプロジェクト(自分のプロジェクト単体)でCommonフォルダ内のファイルの関数は使っていません。
関数の重複はちゃんと表記されているのですが、上記のエラーは全く見当が付きません。
原因に心当たりがあると言う方がいらっしゃればアドバイスをいただけるとありがたいです。
ちなみにリビルドやデバッグフォルダを削除しても上記のエラーは改善されませんでした。

585 :デフォルトの名無しさん:2006/10/25(水) 23:32:10
リンクエラー♪

586 :デフォルトの名無しさん:2006/10/26(木) 00:02:24
>>578さん、目的の物を作るのにどうすれば作れるのか、
それが分からない段階ではプログラムを組むのは難しいと思います。
あなたはどうすれば実現できると思いますか?
それを考えるのがプログラマーの仕事なんです。
例えば、冷蔵庫を作ろうと思っても何をして良いか分からないでしょう。
出来合いの部品を組み込むにしても、使い方を覚えなければなりません。
独自仕様にしようと思ったら、自分で部品を作らなければいけません。
まずはビュアーでオブジェクトを表示する所から初めてはどうでしょう?
これが出来なければ話になりません。
ライブラリ等は>>2にリンクがあります。
自分が出来る簡単な所から初めてはいかがでしょうか?
…というのが、プログラムを挫折した初心者の俺からの意見です…orz

587 :584:2006/10/26(木) 01:02:02
>>585
レスありがとうございます。
サンプルをそのまま持ってきたのを付け足しただけなので、リンクエラーしている場所が全く把握できないままでした。
片っ端から設定弄ってますとマネージ云々をいいえにしたら解消されました。
とりあえず現状で問題ないようですが、この設定の変更で今後問題が起きて悩みそう(´`)



588 :デフォルトの名無しさん:2006/10/26(木) 07:18:53
だれか573答えてやって(笑)
どうしてああなるんだ?

589 :デフォルトの名無しさん:2006/10/26(木) 08:07:38
ポリゴンがめりこんでるんじゃ?
Z比較を切るか。ティーポット浮かすか

590 :デフォルトの名無しさん:2006/10/26(木) 12:08:12
ソース見せて

591 :デフォルトの名無しさん:2006/10/26(木) 13:00:22
>>573
Zバッファの精度が悪いときにああなるね。

Zバッファが16bitなのか、カメラのNearとFarが凄く広い(間が開いてる)か。
たぶんカメラの方だと思う。Farを1000とか5000くらいにしてみたら?

592 :デフォルトの名無しさん:2006/10/26(木) 13:21:42
何かの精度が臭いな。
何かの。

>>573
バックバッファのフォーマットとか、Zのフォーマットとか晒してみたら?
とりあえず、X8R8G8B8 D24S8 にしてみ。
D3DFrm使ってるだろうから ModifyDeviceSettings 内で、
pDeviceSettings->AdapterFormat= D3DFMT_X8R8G8B8;
pDeviceSettings->pp.BackBufferFormat= D3DFMT_X8R8G8B8;
pDeviceSettings->pp.AutoDepthStencilFormat= D3DFMT_D24S8;
にするのだ。

593 :573:2006/10/26(木) 15:28:23
ありがとうございました!
ご指摘のとおりZバッファの指定が16ビットでした。
D3DFMT_D24S8で無事表示ができました!
皆様ありがとうございました

594 :デフォルトの名無しさん:2006/10/26(木) 15:52:38
DirectX version9.0ってどこでダウンロードするんですか?
良く分からないので誰かお願いします

595 :デフォルトの名無しさん:2006/10/26(木) 15:54:08
sage忘れた…
ごめん

596 :デフォルトの名無しさん:2006/10/26(木) 15:58:48
>>594
http://www.microsoft.com/japan/windows/directx/

597 :デフォルトの名無しさん:2006/10/26(木) 17:17:33
現在、DirectX9.0+VC++6.0で少しづつプログラムを組んでいます。
最初は1つのファイルでプログラムを行っていました。
ある程度無事動くのを確認したので、
分割コンパイルをしようと思い、ファイルをわけました。
そこで、各ファイルで共通で使うクラスをグローバルで定義しようと
したところ、既に定義されている・・・というようなエラーが出たため、
staticを使い、エラーを回避しました。
その後、プログラムをコンパイルが無事通り、実行しようと思ったら、
実行した直後にメモリアクセス系のエラーが出てしまい、
うまく実行できなくなりました。
なにかしら上手い方法や、調べる方法がありましたら、教えてください。
DirectXとは話がずれているかもしれませんが、
板違いだったらすみません。


598 :デフォルトの名無しさん:2006/10/26(木) 17:30:13
>>597
インクルードガードでググれ

599 :597:2006/10/26(木) 17:41:18
>>598
レスサンクスです。
今から調べます。

600 :597:2006/10/26(木) 17:43:34
>>598
インクルードガードという言葉を初めて知りました。
が、既に下記のようにやっています。
#pragma once
でやっていますが、これでは不十分でしょうか?


601 :デフォルトの名無しさん:2006/10/26(木) 17:58:13
ヘッダに実体置いてないか?

602 :597:2006/10/26(木) 18:03:00
>>601
ヘッダに実態はおいてないと思います。

ちなみに、下記の場合は実態にあたりますか?
Hoge_Class Hoge;

上記のようなことは行っております。


>>598
#pragma once を止めて、全部
#ifndefにしたら、staticをはずしてもコンパイルが通るように
なりました。

しかし、現在もメモリアクセス系のエラーが続きます・・・。
プログラムのミスの可能性も高いので、
引き続き自分のコーディングを疑ってみます。


603 :デフォルトの名無しさん:2006/10/26(木) 18:14:19
>>602
>Hoge_Class Hoge;

実体にあたるよ
ヘッダは宣言だけにしる

604 :597:2006/10/26(木) 18:23:01
>>603

実態の宣言をしており、申し訳ありません。

複数の .cpp ファイルから 共通の実態(クラス)にアクセスしたい
場合はどのように行うのか教えていただけませんでしょうか?

現在は下記のようにやろうとしています。

A.cpp #include A.h
B.cpp #include B.h
C.cpp #include C.h

A.h #include X.h
B.h #include X.h
C.h #include X.h

X.h static Hoge_Class Hoge



605 :デフォルトの名無しさん:2006/10/26(木) 18:24:33
cppに実体置いてextern

606 :597:2006/10/26(木) 18:28:03
>>605
下記のようにするということでしょうか?

A.cpp #include A.h Hoge.・・・;
B.cpp #include B.h Hoge.・・・;
C.cpp #include C.h Hoge.・・・;

A.h #include X.h
B.h #include X.h
C.h #include X.h

X.cpp #include X.h Hoge_Class Hoge;
X.h extern Hoge_Class Hoge;

607 :597:2006/10/26(木) 18:35:27
今、>>606のようにやり
正常に動作したことを確認しました。
厚く御礼申し上げます。

スレ違いにもかかわらず、質問してしまい
申し訳ありませんでした。
また、回答していただいた諸兄には深く感謝いたします。



608 :デフォルトの名無しさん:2006/10/27(金) 06:30:37
directx以前の話やってんなよ
vc使い方からの話じゃねえか

609 :デフォルトの名無しさん:2006/10/27(金) 06:51:14
次からC/C++やVCの初心者質問が来たらこのあたりのスレに誘導しようか

【初心者歓迎】C/C++室 Ver.32【環境依存OK】
http://pc8.2ch.net/test/read.cgi/tech/1160893851/

★初心者にVisual C++を教えるスレ★ Part24
http://pc8.2ch.net/test/read.cgi/tech/1158296664/

610 :デフォルトの名無しさん:2006/10/27(金) 22:37:27
最近のSDKにDirect3d10って文字見かけるんですけど、
DirectX10でプログラム組んでいる人っています?

611 :デフォルトの名無しさん:2006/10/27(金) 22:54:41
さすがに最新GPU買ってVista入れてDirectXやってる奴は少ないんじゃない?

612 :デフォルトの名無しさん:2006/10/28(土) 01:58:20
まあ、
9→10も
8→9程度の変更でいけるんでそ?

613 :デフォルトの名無しさん:2006/10/28(土) 02:41:05
そもそもDX10対応のビデオカードが売られて無いしな。
げふぉ8800ですら来月あたりに詳細発表で、値段は10万超えるとか言われてるし。

614 :デフォルトの名無しさん:2006/10/28(土) 07:21:55
別に10の機能をフルサポートする必要はないだろ。
9の機能だって全部サポートしてるもんってはじめは無かったじゃん。
nVidiaのシェーダー2.0+なんてどこが「+」なんだよ「−」ちゃうんかとwってもんだったしw

615 :デフォルトの名無しさん:2006/10/28(土) 07:24:35
ところでGeForceって「ジーフォース」だろ?
GeってGeometryのGeだろ?
>>613←お前だっせぇw

616 :デフォルトの名無しさん:2006/10/28(土) 08:09:01
>>615
………

617 :デフォルトの名無しさん:2006/10/28(土) 08:31:20
>>614
それでいちいち開発者がサポートする機能をチェックしないといけない、
っつー状況を改善するためのVISTAでありDX10であるわけじゃん。

DX9対応ビデオカードと違ってDX10からはフル対応していない限り、
「DX10対応」とうたってはいけないことになってるんだよ。

>>615
「げふぉ」にマジレスが入るとは夢にも思わなかった。

618 :デフォルトの名無しさん:2006/10/28(土) 10:26:52
>>615←お前だっせぇw


619 :デフォルトの名無しさん:2006/10/28(土) 11:37:02
あ、ごめんなさい、涙が出てきた。

620 :デフォルトの名無しさん:2006/10/28(土) 11:58:36
もう荒らすしかない

621 :デフォルトの名無しさん:2006/10/28(土) 12:08:04
ちょっとVIPで宣伝してくる。

やっぱやめた。

622 :デフォルトの名無しさん:2006/10/29(日) 00:30:22
フルサポートしてるからって満足な動作速度とは限らないけどな

623 :デフォルトの名無しさん:2006/10/29(日) 00:56:07
いちいちCAPS調べて根本的な部分のON用OFF用のコード書くよりましだ。
まだ速度ごとのシェーダー用意するほうがましだ。

624 :デフォルトの名無しさん:2006/10/29(日) 10:49:36
そんなこといってさ、過渡期は
速度ごとのシェーダーと、機能の有無のシェーダー両方作る羽目になるんだろ

625 :デフォルトの名無しさん:2006/10/29(日) 13:53:39
機能有無のシェーダー作るなら素直にDX9でやるっつー話ですよ。
DX10は機能チェックをしなくていいってのもウリの1つなんだから。

626 :デフォルトの名無しさん:2006/10/29(日) 14:10:18
DirectX9だって、チェックったって、シェーダーのバージョンぐらいなもんでしょ?

627 :デフォルトの名無しさん:2006/10/29(日) 16:24:35
>>626
俺はステンシルのサポートの有無、
HDRやポストエフェクト用のレンダリングターゲットのサーフェイスフォーマット、
サーフェイス間転送用ののフォーマット変換のハードウェアサポート、
違方性フィルタリングの有無と精度。
あとはPS/VSのバージョンチェックとPureDeviceの有無かな。

628 :デフォルトの名無しさん:2006/10/29(日) 16:49:11
DirectInputについて質問があります。
(マウス入力について質問があります)

DirectInputでマウスの移動量を取得できるプログラムはできるように
なりました。
しかし、以下の2点のようなことをしたいと思いましたが、
調べてもよくわかりませんでした。

1.スクリーン座標の中だけ、マウスカーソルを消したい
WinAPIのShowCursor()関数を使えばいいのでしょうか?
DirectInputでなにかしら有用な関数などあれば、
ご教授ください。

2.マウス座標をスクリーン座標で取得したい
WinAPIのGetCursorPos()関数を使えばいいのでしょうか?
DirectInputでなにかしら有用な関数があれば、
ご教授ください。


DirectX自体が初心者のため、WinAPIとの併用について問題がないか
不安になり、上記のような質問をしました。
もし、問題ないようであれば、以後の質問はWinAPIスレに行ってきます。

629 :デフォルトの名無しさん:2006/10/29(日) 16:58:39
>>627
ステンシルはZバッファがサポートされてればほぼまちがいなくサポートされてると思うよ。

630 :628:2006/10/29(日) 19:00:26
自己解決しました。

http://www2.ttcn.ne.jp/~tkky/Tips/Win32API/getcursorpos1.htm
上記を参考に行ったところ、
スクリーン座標とクライアント領域での
切り替えなどについて記述がありました。

結果的に座標取得は、DirectInputではなく、
WinAPIで行うようにしました。
(ボタンの押下については、DirectInputを使います)

お騒がせしました。

631 :デフォルトの名無しさん:2006/10/29(日) 19:28:27
ファイルを1つにまとめたいんだけど、
よくわからないっす。
ライブラリがあれば、黙ってそれを使います。

以下の流れで考えてるんだけど、正しい?
<パッキング編>
1.ヘッダーを作成
2.ファイル結合
3.結合したファイルを保存

<パッキングファイル読み込み編>
0.ゲーム起動
1.パッキングをファイルをとりあえず、全部読み込む
2.分解して、それぞれこっそりと保存する
3.こっそり保存したファイルを適宜読み込んだり、開放したり。
4.ゲーム終了時に分解したファイルを全部消去する。


632 :デフォルトの名無しさん:2006/10/29(日) 19:31:02
パッキングは別にいいが、
読み込みでいちいちバラしてたら、
1GBとかの容量のゲームどうすんだよ。

ヘッダにデータがあるんだから1ファイル分切り出して
必要な分だけメモリ読み込みできるようにつくっておきんしゃい。

633 :デフォルトの名無しさん:2006/10/29(日) 19:31:41
>>631
ちなみに手っ取り早いのはzip使うこと。

634 :631:2006/10/29(日) 19:37:56
>>632
レスありがd

>ヘッダにデータがあるんだから1ファイル分切り出して
>必要な分だけメモリ読み込みできるようにつくっておきんしゃい。
頭悪いので、自分なりにがんばって理解してみた。
以下の考え方で正しい?

<パッキングファイル読み込み編>
0.ゲーム起動
1.パッキングファイル(2ch.pak)の中にある、読み込みたいファイル(2ch.bmp)を
  2ch.pakより分解して保存。
2.通常通りファイル(2ch.bmp)をメモリに読み込み、メモリに格納したら、保存していた
  2ch.bmpを削除。
3.同様に適宜ファイルを読み込んだり、しなかったり。
4.ゲーム終了時にはファイルパッキングに関しては特になにもしない。

635 :631:2006/10/29(日) 19:39:01
>>633
手っ取り早いの熱烈歓迎。
zipって、ライブラリあんのかな?
ちょい、探してきます


636 :デフォルトの名無しさん:2006/10/29(日) 19:46:03
なんでいちいち書き出すの?
メモリに読み込んだんだったらそのまま使えよ。

637 :631:2006/10/29(日) 19:57:15
>>636
頭悪いんで、簡便してつかぁさい。

例えば、Xファイルを読み込む場合
D3DXLoadMeshFromX( "ファイル名.x", D3DXMESH_SYSTEMMEM,
pDevice, NULL, &pD3DXMtrlBuffer, NULL,
&dwNumMaterials, &pMesh ) ) )

漏れの場合上記のように"ファイル名"を指定して行ってるんだよ。
もちろん"ファイル名"を 2ch.x ではなく 2ch.pak で
行えれば理想的なんだが・・・、
やり方なんぞあれば、教えてほしぃ。

下衆なやりかたとしては、
パッキングファイルを指定→分解→保存→読み込み→保存したファイルを削除
→通常通り使う
のようになってしまう。
>>636の言うように
パッキングファイルを指定→分解→読み込み→通常通り使う
ということができれば、理想的。




638 :デフォルトの名無しさん:2006/10/29(日) 20:05:34
>>637
頭が悪いとかそういうレベルじゃねぇ。
リファレンス読むくらいは出来るだろ。

D3DXLoadMeshFromXInMemory

639 :631:2006/10/29(日) 20:07:43
>>637
レスありがd

>頭が悪いとかそういうレベルじゃねぇ。
>リファレンス読むくらいは出来るだろ。
OTL

D3DXLoadMeshFromXInMemory について今から全力で
調べまつ。



640 :631:2006/10/29(日) 20:17:51
639の
×>>637 レスありがd
>>638 レスありがd

>>639
D3DXLoadMeshFromXInMemory関数について調べ、
いけそうだと確信しますた。
ちょい、がっつりコーディングします。


641 :デフォルトの名無しさん:2006/10/29(日) 20:43:56
てか、バイナリで書いてデータがある場所のアドレス(データ先頭からのバイト数)覚えておけば(ファイルヘッダーに書いておく)いいだけだろ?
まとめるのは時間かかるかもしれんけど、取り出すだけならfseekすればいいじゃん。
たまに客からそういう要望があるけどライブラリなんて使うまでもない。
普通にバイナリファイル使って読むだけだ。パッキングとかよくわからんけど。
何がしたいの?

642 :デフォルトの名無しさん:2006/10/29(日) 20:53:01
>>630
DirectInputのマウスはあまり役に立たないよな。
相対値なんか拾っても使い道が無いし、何のためにあるんだろう。

643 :631:2006/10/30(月) 00:00:06
>>641
レスサンクス。
パッキングはなんとかいけそうでつ。
fseek関数なんていう便利な関数がそういえばあったっすね。
忘れてた・・・。

>何がしたいの?
ゲーム造りたいんだけど、ファイルをパッキングして
データ(bmpとか)を見られないようにしたいんです。
(もちろん、ちょっとプログラムかじっている人にはすぐばれるが・・・)

もう少しがんばってみます。




644 :デフォルトの名無しさん:2006/10/30(月) 02:04:39
>>643
バイナリデータは書き込むときにエンディアンとアライメントに注意しろよ。

645 :デフォルトの名無しさん:2006/10/30(月) 02:37:56
>>644
アドバイスがあるなら、もっと具体的に教えてやれよ。

CD-ROMとかならアライメントも気をつけようもんだけど
HDDだったらどうでもよくね?エンディアンもさ。

646 :デフォルトの名無しさん:2006/10/30(月) 02:46:37
>>645
書き込みを構造体でまるまる書き込んで、
読み込みを?バイトで処理してたらハマルんじゃね?w

647 :デフォルトの名無しさん:2006/10/30(月) 03:04:32
>>646
そんなアホなことは考えもつかなかった・・・_| ̄|○

あ、ひとつアライメント気をつける条件を思いついた。
パックするマシンと、データ使うマシンが違うとか・・・アリエネー(;´д`)

648 :デフォルトの名無しさん:2006/10/30(月) 03:46:32
GetPrivateProfileString等の ファイル指定じゃなくメモリ指定版とか無いですか?

649 :デフォルトの名無しさん:2006/10/30(月) 03:57:57
>>648
ざっと見た感じ無さげ。

自前でINIファイル解析したらいいんじゃね?

650 :デフォルトの名無しさん:2006/10/30(月) 09:22:45
Registryはメモリー上にあるからそっち使えばおk

651 :デフォルトの名無しさん:2006/10/30(月) 09:57:13
レジストリは弄られるの嫌う人もいるから、
フリーのゲーム程度では使わないほうがいいんでね?

ただの設定とかコンフィグ程度なら構造体を適当に読み書きすればいいんだし。

652 :デフォルトの名無しさん:2006/10/30(月) 21:19:30
LPDIRECT3DDEVICE型の変数をRelease()で開放すると戻り値が0にならないのは何故なのでしょうか。

653 :デフォルトの名無しさん:2006/10/30(月) 22:53:06
馬鹿が解放しすぎないように見張り人が常駐してると予想します。

654 :652:2006/10/30(月) 23:23:17
ありがとうございます。
確かにXファイルの読み込みなどでカウントが増えているようです。
ということは0にするには全部正確に解放しないといけないということですよね。
これを強制的に0にする方法はないでしょうか。
DXのサンプル(Commonフォルダ内、DXUT.cpp/DXUTCleanup3DEnvironment関数)で
if( pd3dDevice )
if( pd3dDevice-Release() > 0 ){
//(エラー処理)
}
}
の記述がありまして、アプリケーションの終了毎に怒られます。
サンプルを変更させないようにしたいのですが、
DXUTSetDevice(NULL);でアドレスをNULLにしようとしても出来ません(関数の仕様でNULLだとエラー処理へ)。
一番は全て解放出来ればいいのですが・・。

655 :デフォルトの名無しさん:2006/10/31(火) 00:17:39
それ単純にどこかでメモリの解放忘れてるだけだろ。

656 :デフォルトの名無しさん:2006/10/31(火) 00:18:28
>>647
いや、そりゃ普通にある。
コンパイラオプションでもアライメント有と無と設定できるから
送り側と受け側(例えばバイナリファイルをはさんでの)が違うときも注意。

657 :652:2006/10/31(火) 00:38:03
>>655
戻り値が25672とかでて、全て解放するにもどこから手をつけたらいいか分からない件orz
解放できていないのは分かっているから一々エラー出さないようにしたいのですが・・・サンプルをコメントアウトするしかないのかな。

658 :デフォルトの名無しさん:2006/10/31(火) 00:45:21
DirectInputでゲームコントローラの挙動を制御しているのですが
なぜかPCによっては何もキーを入力していなくても左上キーが入っていることになってます。

原因としてありえそうなことって何ですか?

659 :デフォルトの名無しさん:2006/10/31(火) 00:53:35
>>657
解放できていない場所を究明するのが一番だろう。
まぁDXUTILなんて見たこともないから知らんけど・・・。

テクスチャ作れば+1、頂点バッファ作れば+1されていくのは分かってるよね?

>>658
PCのパッドはちゃんとCAPSでニュートラル位置と
稼動範囲を調べて自分で範囲を調整しましょう。

(0,0)が中心じゃないパッドなんでいくらでもあります。

Setなんちゃらで範囲を指定する方法は使えないものもあるので、
デフォルトの稼動範囲を調べて、自分で調整するのが吉。


660 :デフォルトの名無しさん:2006/11/01(水) 00:19:33
>>657
データの解放忘れでそんな数になる訳ないから、
どっかで毎フレーム参照カウンタ増やすような処理が入ってるんじゃないの?

GetDeviceとか使っててReleaseしてないとか。

661 :デフォルトの名無しさん:2006/11/01(水) 01:21:10
>>658
マザーボードがBX
smartjoypadなどのコンシューマコントローラー変換機を装着してコントローラーつけてない
本当に左上に入ってる(アナログだとありがち)

662 :デフォルトの名無しさん:2006/11/01(水) 20:35:13
DX8のヘルプにはReleaseの戻り値は
当てにするなって書いてあるよ

663 :デフォルトの名無しさん:2006/11/01(水) 23:26:35
>>660
毎フレーム増えず、アプリケーションのさまざまな初期化部分で一気に増えていました。

>>662
ナンデストー(´・ω・`)

664 :デフォルトの名無しさん:2006/11/01(水) 23:38:16
なら初期化んときにQueryInterfaceしまくってんだろ。

ちなみに俺はアプリケーション終了時のRelease()がメモリリーク以外で0にならなかったコトはないが。

665 :デフォルトの名無しさん:2006/11/02(木) 00:25:35
質問です。

画像とTexture1とTexture2を用意する。
Texture1とTexture2はテクスチャで、レンダリングターゲットとしても使用可能。
1.Texture1をクリア
2.画像をTexture1に描画
3.Texture2をクリア       ←――┐
4.Texture1をTexture2に描画     |
5.Texture1をクリア           |
6.Texture2をTexture1に描画 ―――┘
以下3〜6を繰り返す(レンダリングターゲットの変更は省略)

2で描画する画像に半透明の部分がなければどれだけ繰り返しても形は変わりませんが、
アルファ値が255未満の部分があるとそこがだんだん薄くなって、終いには消えてしまいます。
何も描画していない部分は透明のままで、半透明の部分でも何らかの描画がされていれば上記を繰り返しても消えないようにしたいのですが
SetRenderStateでどういう値を入れればいいのでしょうか。(もしくは不可能なのでしょうか)


666 :デフォルトの名無しさん:2006/11/02(木) 01:37:47
>>665
何も目的で繰り返し描画してる(だけ?)のか分からないけど、
アルファブレンディングを切ればいいんじゃないかと思う。

全画面をただコピーしてるだけなら、クリアする必要はないなーとも思う。

667 :デフォルトの名無しさん:2006/11/02(木) 01:38:35
× 何も
○ 何の

668 :デフォルトの名無しさん:2006/11/02(木) 17:41:16
XNA Game Studio Express (Beta 2) 配布開始
http://game10.2ch.net/test/read.cgi/gameama/1162148782/59

669 :デフォルトの名無しさん:2006/11/02(木) 21:32:05
>>666-667
ありがとうございます。私の期待してた結果を表示することが出来ました。


670 :デフォルトの名無しさん:2006/11/02(木) 23:36:46
勘違いだったらスマソ。

ビルド→実行→デバッグ→ビルド→実行・・・というようなループで
プログラムやってるんですが、
FPSが最初の方は60前後だったんだけど、
今、2時間くらい経ったら46〜50前後になってしまったんだけど、
これって、OS(WinXP)の問題? それとも単純になにかしら
プログラムの組み方の問題?




671 :670:2006/11/02(木) 23:38:38
今、2chにカキコしてから
もう一回実行したらFPSが60前後で安定した・・・。
これってしょぼいグラボ使っていると、
FPSの挙動が安定しない罠ですか?

672 :デフォルトの名無しさん:2006/11/03(金) 00:42:23
>>671
ボトルネックがCPU側にあるのか、GPU側にあるのかで状況は変わる。
とりあえずどこでストールしてるか測定しれ。
だがフルスクリーンでやってんじゃないならそんなもんだ。

673 :670:2006/11/03(金) 09:48:10
>>672
レスありがとうっす。

デバッグモードでウィンドウで動かしてます。
そうか、FPSの挙動って安定しないのか・・・。
すげぇ焦ったよ。

674 :デフォルトの名無しさん:2006/11/03(金) 10:05:47
>デバッグモードで

おい。

675 :670:2006/11/03(金) 10:15:43
>>674
>おい。
な、なんかまずった?
OTL

676 :デフォルトの名無しさん:2006/11/03(金) 10:40:15
正射影について教えてください。
「プログラミングの為の数学と算数」スレより
誘導されてきました。

マウス(2次元)座標をゲーム画面(3次元)の座標に
変換したいんだけれど、
やり方がわからないです。

[やりたいこと]
大航海時代Onlineのように、
「キャタクターの行先(目的地)」を「地面をマウスクリックする」ことにより
指定し、その後、キャラクターが動き出す。

ということをやりたいと考えています。


677 :デフォルトの名無しさん:2006/11/03(金) 11:16:49
スクリーン座標(x,y,0)から(x,y,1)へのレイを
ワールドビュープロジェクションの逆変換かまして地形との交点を求むる。


678 :676:2006/11/03(金) 18:44:06
>>677
レスありがとうございます。
677の発言内容を参考に、自分がやりたかったことが載っている
書籍を購入してきました。

これからプログラミングしてみます。

679 :デフォルトの名無しさん:2006/11/04(土) 00:33:13
自分にあった本が見つかってよかったな。
頑張れよ。

680 :676:2006/11/04(土) 22:19:07
>>679
ガンガリます。

一応、後からこのスレを見た人のために書籍&情報を晒しておきます。

題名「3DRPGプログラミング」
著者「坂本千尋」
出版社「SoftBankPublishing」
値段「2200円」

参考頁「P112〜P116」
ソースコードのある場所
ttp://www.cmagazine.jp/books/3drpg/

自分のようなDQNが1人でも減るようにと祈りつつ・・・。

681 :デフォルトの名無しさん:2006/11/04(土) 22:43:13
>>680
著者で地雷とすぐにわかる俺w

682 :680:2006/11/04(土) 23:38:36
>>681
orz

ある意味地雷かもしれないと気付きはじめている俺がいるw

プログラムのソースコード見てるんだけど、
(自分の実力のなさは棚上げするけど)
コメントが鬼のように少ない。

でも、ないより全然ましなので
すげぇありがたい書籍ではあります。



683 :680:2006/11/05(日) 00:54:24
D3DXIntersect関数について教えてください。
ttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/directx9_c/directx/graphics/reference/d3dx/functions/mesh/d3dxintersect.asp
(URLはD3DXIntersect関数について)

地形(マップ)との交点を求める上で上記の関数を使おうと考えています。
しかし、地形はテクスチャマッピングで作成しており、第一引数の
LPD3DXBASEMESHに対して変数を代入することができません。
テクスチャマッピングで描画している地形をLPD3DXBASEMESHに
変換する方法などあれば教えていただきたいと考えています。


684 :デフォルトの名無しさん:2006/11/05(日) 01:08:50
>>683
D3DXLoadMeshFromXInMemory
これとか???

685 :デフォルトの名無しさん:2006/11/05(日) 03:25:44
いきなり3DRPG作りたがる初心者が絶えないな。
最初は2Dで、テトリスとかブロック崩しにでもしたほうが良いんじゃない?

つか>677で回答あるのに何で地形との交差判定に
D3DXIntersectとか使うんだ?いらんだろ。


686 :デフォルトの名無しさん:2006/11/05(日) 20:36:58
つーか、まあ、明らかにゲームが作れるほどのプログラムの下積みがあるとも思えないな。
じっくり入門書よんでDirectX初期化して画面にモデル表示してよろこんでればいいレベルだと思う。
つーか、常識的にいきなり作るなんてのがそもそも無理。
まずは、3Dの扱いに慣れろ。数学で遊べ。って感じか?

687 :デフォルトの名無しさん:2006/11/05(日) 20:56:11
そのパターンから入ると途中で挫折して終了っていうの9割じゃない?

初心者が3Dでゲームって考えるなら、まずは既存のライブラリを使ってみろ、
って俺は言っておく。

688 :デフォルトの名無しさん:2006/11/06(月) 01:37:52
ていうかいっそ仕事にしてしまえと言いたい。
挫折してる暇無いぞ。

689 :デフォルトの名無しさん:2006/11/06(月) 03:00:19
得意不得意があるんだから自分にあった事をするべきだと思うよ。
プログラミングなんて優劣の個人差がありすぎるから、苦労に見合った分だけ楽しくなかったりする事もしばしばだし。
スレを見ている限り、はっきり言って向いてないよ。

690 :680:2006/11/06(月) 21:19:23
休日プログラムを組んでいました。
まだ、完成できていません。

たくさんのレスありがとうございます。

みなさんの意見を聞いて身の程を知りました。
個人的には3DRGPのような大それたものを
造るつもる技術もつもりもありません・・・。
みなさんからの厳しいつっこみを受け、
もう少し地に足のついたプログラム&勉強をしたいと思います。






691 :デフォルトの名無しさん:2006/11/06(月) 23:43:50
>>686
ポインタすら理解せぬまま特攻して、どうにかなってゲーム作っている自分は常識はずれの存在なのだろうか?

692 :デフォルトの名無しさん:2006/11/07(火) 01:47:33
>>691
↑こういうことをいう奴に限って学習できた環境がいい罠。
今は資料は多いけど、教えてくれる奴が少ないからな。
掲示板でレスくれる奴もあきらかに昔よりすくない。
そうするとのびた的質問に解答をくれる奴が少なくて苦労すると思うぞ。

693 :デフォルトの名無しさん:2006/11/07(火) 02:39:05
みんなも一緒に死のうよ

694 :デフォルトの名無しさん:2006/11/07(火) 02:39:52
>691
別に常識はずれじゃないと思うが。
物事を順に考えられる思考力があれば言語の事前知識なんてなくても問題ない。
色んな言語強要されるPGなら普通。
VBしか分からんって新入でも、勘の良いやつはすぐにCぐらい使えるようになる。

695 :デフォルトの名無しさん:2006/11/07(火) 03:15:39
自分に才能があるとは欠片ほども思わないが、プログラミングに向かない人は
本当にとことん向かなかったりするしな。
別段論理的思考に問題なくって、文章書くのも上手なのに、プログラミングはとことん下手って人もいる。
不思議なもんだ。

696 :デフォルトの名無しさん:2006/11/07(火) 23:06:40
Cが分からないままC++に入って、難なく習得できた俺はちょっと勘が良いのか。
なんだか自信が持てた。ありがとう。
もちろんmallocなんて分かりません。

697 :デフォルトの名無しさん:2006/11/08(水) 00:19:51
>>696
たぶん釣り人なんだとは思うんだが、
Javaから入った人では有り得そうな話。

698 :デフォルトの名無しさん:2006/11/08(水) 19:14:32
はじめまして
質問なのですが、Xファイルが表示できるようになって
今度はアニメーションつきのXファイルを表示したいと思っています。
それで、3ds maxでXファイル作りたいんですが、キーフレームアニメーション
をつけても出力してしまうとアニメーションがつきません・・・
うまく出力の仕方が分かる方いましたら、よろしくお願いします。

699 :デフォルトの名無しさん:2006/11/08(水) 22:12:52
maxくれ。

700 :デフォルトの名無しさん:2006/11/09(木) 00:19:41
アニメーションは厳しいぞ
まあ、中身わかってればコピペでいいけど

Xファイルを再生するスレ
http://pc8.2ch.net/test/read.cgi/gamedev/1006624202/

701 :デフォルトの名無しさん:2006/11/09(木) 01:48:28
>>700
>>698 は 3ds max でアニメ付きXファイルの作り方を聞いてるみたい。

激しくスレ違いなんだが、3ds max をくれたら調べなくもない。


702 :デフォルトの名無しさん:2006/11/09(木) 05:11:29
俺も3dsmax欲しい。
流体力学研究所が変換作ってなかったっけ?

703 :デフォルトの名無しさん:2006/11/09(木) 06:33:50
>>696
お、おまえなぁ・・・
deleteはしてるのか?

704 :デフォルトの名無しさん:2006/11/09(木) 23:48:39
無料で使えるgMax

705 :デフォルトの名無しさん:2006/11/10(金) 05:54:57
>704
そーいやgMaxってグローバル変数名っぽいな

706 :デフォルトの名無しさん:2006/11/10(金) 11:35:59
レイ、gMax発動
レディ

707 :デフォルトの名無しさん:2006/11/10(金) 19:28:39
>>700
返事ありがとうございます
やっぱり難しいですよね、アニメーション
でも、やっぱりMAXで出力したファイルにアニメーションがつかないので
それ以前の問題です・・・

708 :デフォルトの名無しさん:2006/11/10(金) 20:17:59
いやDirectX付属のプラグインで普通につくだろ

709 :デフォルトの名無しさん:2006/11/11(土) 10:22:57
maxなら普通にできないわけないようなきがするんだけどなー
とりあえず取説よめば。


710 :デフォルトの名無しさん:2006/11/11(土) 10:29:38
   /⌒ヽ 
  / ´_ゝ`)  ちょっと通りまつよ〜
  |    /    
  | /| |     
  // | |      
 U  .U


711 :デフォルトの名無しさん:2006/11/11(土) 22:28:13
取説よめない事情でもあるのか?(`・ω・´)

712 :デフォルトの名無しさん:2006/11/11(土) 22:29:16
言いたいことがあるならはっきり言え

713 :デフォルトの名無しさん:2006/11/11(土) 23:10:24
それ、コピー品じゃねーの?(`・ω・´)

714 :デフォルトの名無しさん:2006/11/12(日) 00:48:54
われず死ね マジ死ね
お前らみたいな屑でお荷物が沢山居るから業界が破綻しかねないんだよ

715 :デフォルトの名無しさん:2006/11/13(月) 11:57:31
D3DXIntersectで当たった所のワールド座標x, y, zが欲しいんですけど、

どーしたらいいですか?

716 :デフォルトの名無しさん:2006/11/13(月) 13:26:58
>>715
どのポリに当たったのか返ってくるんでロックしてそのポリの座標拾えばいい

717 :デフォルトの名無しさん:2006/11/13(月) 21:50:55
DirectInput8で入力制御の実験をしているのですが
キーコンフィグをしようと思ってモードレスダイアログを表示したところ
GetDeviceStateが失敗するようになった(DIERR_NOTACQUIRED)ので
メインウィンドウをアクティブにして見たら、GetDeviceStateが普通に動いてました

DirectInput8はプロセスのメインウィンドウがアクティブじゃないとダメなんでしょうか?

718 :デフォルトの名無しさん:2006/11/13(月) 22:08:55
協調レベルは?

719 :デフォルトの名無しさん:2006/11/13(月) 22:28:15
>>718
NONEXCLUSIVEのFOREGROUNDでした
協調レベルと言われて、BACKGROUNDというものも有ったのを思い出して変えてみたら失敗しなくなりました
どうも視野狭窄してたようです
ありがとうございました

720 :デフォルトの名無しさん:2006/11/14(火) 14:24:14
すいません、質問です。
DirectXのプログラミングを始めてみようと思うのですが、
調べてみたところC++、C#、Delphiこの三つの言語でDirectXの
プログラムができるみたいなんですけど、どの言語が一番良いのでしょうか?
この3つの言語でDirectXのプログラムを組む場合のデメリットとメリット
というのがあれば教えていただきたいです。

721 :デフォルトの名無しさん:2006/11/14(火) 14:28:06
それはC++、C#、Delphiの利点欠点を教えろというのであって、このスレの話題であるDirectXはほぼ関係ない。
詳しい回答は期待するな。

722 :デフォルトの名無しさん:2006/11/14(火) 14:28:33
C++: 言語がマンドクセ
C#: 環境がマンドクセ
Delphi: メーカーがマンドクセ

723 :デフォルトの名無しさん:2006/11/14(火) 16:09:03
>>698
MAXのXファイル関連のプラグインは4つほど知っているんだが、結局どれを使ったかすら書かないんだよな。

724 :デフォルトの名無しさん:2006/11/14(火) 16:54:40
>>723
Xporterです

725 :デフォルトの名無しさん:2006/11/14(火) 17:07:38
>>720
DirectX勉強したいって、言語も何も分からない状態だよね?
それじゃあ話にならんし、そもそもDirectX勉強してどうするの?
ゲーム?君には無理だからやめとけ。


726 :デフォルトの名無しさん:2006/11/14(火) 17:14:26
Cの知識しかないんですが、C++でタイピングソフトを作る事になりました
まず何をやったらいいか分からないのでアドバイス下さい

727 :デフォルトの名無しさん:2006/11/14(火) 17:15:35
>>726
C++の勉強をしてください

728 :デフォルトの名無しさん:2006/11/14(火) 17:18:23
>>726
作らなければいいと思います。
Cの知識しかなくてC++で作りたいなら、まずやるのはC++を勉強する事だろ。
それすらもしないお前には無理。
そもそもスレ違い。

729 :デフォルトの名無しさん:2006/11/14(火) 17:24:36
すいません、C++の本を買って勉強します
それから、ミカタイプ並のタイピングソフトはCだけで作れますか?

730 :デフォルトの名無しさん:2006/11/14(火) 17:43:06
>>729
ミカタイプがどんなのか知らんけど、Cの知識があるっていうんだから
作れるかどうかは当然分かるはずだろ。

731 :デフォルトの名無しさん:2006/11/14(火) 17:50:40
知識といっても、授業で1年半やった程度です
卒業課題でタイピングソフトを作る事にしたんですが、どうやらスレ違いですね
すみませんでした

732 :デフォルトの名無しさん:2006/11/14(火) 17:53:09
タイピングソフトなんてDXつかわんでもできるわい

733 :デフォルトの名無しさん:2006/11/14(火) 18:26:29
>>731
その学校何なんだ?
Cを一年半もやってタイピングソフト?
いったい何を学んだんだ…

734 :デフォルトの名無しさん:2006/11/14(火) 18:38:54
>>733
いや、課題は俺が勝手に決めただけです
オザワケンみたいなソフトを作りたいと思いまして

735 :デフォルトの名無しさん:2006/11/14(火) 19:55:03
>>734
まずはWin32APIに触れるところから。

736 :デフォルトの名無しさん:2006/11/14(火) 21:12:06
>>731
ゲームっぽいのが作りたいならスプライトから
勉強するといいぉ

737 :デフォルトの名無しさん:2006/11/14(火) 22:34:27
一年半もCをやって>>720の質問をしてるレベルなら
卒業までにタイピングゲーム作るのさえ無謀。
完成出来そうなものに課題変えたほうがいいよ。
煽りじゃなくてまじで。

738 :デフォルトの名無しさん:2006/11/14(火) 23:50:22
中学生の頃
誰からも学ばず
1年たたずにテトリス作れた

本も読まずにやってた。
1行ずつ実行して試してた
配列とか後で知った

739 :デフォルトの名無しさん:2006/11/15(水) 00:02:25
俺は誰からも学ばずにC++ win32でゲームを造った。
分割コンパイルとか後で知った。

740 :デフォルトの名無しさん:2006/11/15(水) 03:36:24
>>739
全部ヘッダとか

741 :デフォルトの名無しさん:2006/11/15(水) 06:30:34
DirectInputのフォースフィードバックについて質問です。
パッドタイプのコントローラをただ振動させたいのですが、強さを変えても反映されません。
void refreshFF(){
DICONSTANTFORCE cf;
  cf.lMagnitude = 変更した値;
DIEFFECT eff;
ZeroMemory( &eff, sizeof(eff) );
eff.dwSize = sizeof(DIEFFECT);
eff.dwFlags = DIEFF_CARTESIAN | DIEFF_OBJECTOFFSETS;
eff.cAxes = g_dwNumForceFeedbackAxis;
eff.rglDirection = rglDirection;
eff.lpEnvelope = 0;
eff.cbTypeSpecificParams = sizeof(DICONSTANTFORCE);
eff.lpvTypeSpecificParams = &cf;
eff.dwStartDelay = 0;
g_pEffect->SetParameters( &eff, DIEP_DIRECTION |
DIEP_TYPESPECIFICPARAMS |
DIEP_START );
}
としてプログラム中で変更させているのですが、初期値で振動するだけで反映されません。

ご存知の方教えていただけると助かります。

742 :デフォルトの名無しさん:2006/11/15(水) 07:50:43
>>741
FFBはコントローラによって挙動が違うよ

743 :デフォルトの名無しさん:2006/11/15(水) 09:11:44
>>740
おれもそんな組み方してた時代があったな・・・。

744 :デフォルトの名無しさん:2006/11/15(水) 12:50:58
オレも何も知らない所から、基本的な3Dの本(PC98でワイヤフレームとフラットシェーディング)を見た後に、独自でテクスチャマッピングを編み出したが
素人が良くやる歯抜け状態に…U・V座標から直にスクリーンのX・Y座標に描画していたのだ
仕方ないので描画ドットを適当に大きくしたりして力技でしのいだ
後にX・Y座標からU・V座標を得るという逆の発想でやるという事を知り目から鱗だった

745 :デフォルトの名無しさん:2006/11/15(水) 21:06:20
>>740
外部のライブラリを利用してだが、
6年前に製作ゲームで
cpp : 4000行 / h : 3000行 2ファイルのみで構成されたコードがある。

今の俺には書けない。

746 :デフォルトの名無しさん:2006/11/15(水) 21:43:58
やり始めた頃はcpp4000行程度の1ファイルでシューティングゲーム作ったな。
もちろん、コードは今見るとめちゃくちゃだしクラスも使ってなかった。
やっぱ皆も始めた頃はそんな感じ?


747 :デフォルトの名無しさん:2006/11/15(水) 21:48:16
>>745
惚れた

俺はCPPひとつに.hが数十とかだった。
クラスの実装も定義も別のファイルなんだけど、全部.hでw

748 :デフォルトの名無しさん:2006/11/16(木) 00:32:38
自分も最初に作ったシューティングゲームはcpp1つ約14000行の大作だった
もちろん、746の云うとおりクラスなんぞ全くつかっていないし、
サウンドのストリーミング再生なんてこともしらなかったから、ファイルまるごとメモリに読み込ませてたなw
ソースは意外と今でも読めるが、重複している内容がかなり多い

749 :デフォルトの名無しさん:2006/11/16(木) 00:45:18
cppを増やすとチームメンバーにソースファイルををプロジェクトに追加してもらわねばならないが
しかしhならパスさえ通しておけばいい。という理由でダミーのcppと無数のヘッダで開発。


750 :デフォルトの名無しさん:2006/11/16(木) 00:54:18
みんな何千何万行ってスゲーなあ(;´д`)

俺なんか最初に作ったプログラムは、40バイトくらいの機械語だぜ。
アセンブラなんかないからハンドアセンブル・・・知らんか若いやつには(´Д`lli)ゞ

751 :デフォルトの名無しさん:2006/11/16(木) 00:55:28
>>749
最近のマシンは高速だから、分割コンパイルなんかしなくてもいいんだな・・(;´д`)

752 :デフォルトの名無しさん:2006/11/16(木) 01:32:18
いや速度だけの問題でもないっしょ

753 :デフォルトの名無しさん:2006/11/16(木) 08:06:40
SDKチュートリアルを1から始めて、Xファイルの表示まで出来るようになりました。
表示したモデルを動かせるようにもなりました。
…が、次はどこに向かうのがいいんでしょう

アニメ付きXファイル再生をしようかと思いましたが、なんのことやら全くで。
「何がわからないのかわからない」状態です。
それとも、画面上に地面を作って、その上に立たせるのが手頃でしょうか。
(地面のXファイルを作って、当たり判定を取る??)

754 :デフォルトの名無しさん:2006/11/16(木) 08:39:38
作りたいものを作ればいいよ
何のために Direct3D を学ぼうとしたのか? を考えてみるべし

755 :デフォルトの名無しさん:2006/11/16(木) 18:41:29
さっきからI君がレンダラーのことを レンダリンガー と言ってます
笑いをこらえながら仕事するのも限界に達したので書き込みました
I君にシステムエンジン作らせて大丈夫なんでしょうか

756 :デフォルトの名無しさん :2006/11/16(木) 22:43:16
>>755
スレ違いの日記を書き込むヤツが作るよりはマシだと思う。

757 :デフォルトの名無しさん:2006/11/17(金) 02:28:48
C++やP2P技術に卓越したプログラマの方々
宜しければ一度で良いので拝見して頂きたいです
当企画の成立には貴方の力が必要です

次世代コミュニティ製作 C++,mod_perl,P2Pが使えるコーダ、グラフィッカ募集中
http://pc8.2ch.net/test/read.cgi/tech/1163349367/

758 :デフォルトの名無しさん :2006/11/17(金) 04:04:10
×宜しければ一度で良いので拝見して頂きたいです
○宜しければ一度ご覧下さい。

相手に対して「拝見」はおかしいだろ、とマジレス

759 :デフォルトの名無しさん:2006/11/17(金) 12:32:26
ゲーム作りたいと思ってプログラムはじめたのはいいが
プログラムの勉強ばっかりやってて
ゲームつくりの勉強(構想)を怠ってて
気がついたら何が作りたいのかわからなくなってた

760 :デフォルトの名無しさん:2006/11/17(金) 13:09:33
>>759
YOU!本職になっちまいなYO!
仕事だけは腐るほどあるから、悩んでる暇ないぞ!

761 :デフォルトの名無しさん:2006/11/17(金) 16:23:59
>>760
759じゃないけどゲームプログラマって結構働き口あるもの?
エロゲーでもなんでもいいのでゲーム関係やりたいんだけど、
採用されやすいところとかあるのかな。
メーカーとかよく知らないし、どうすりゃいいかさっぱり。

762 :デフォルトの名無しさん:2006/11/17(金) 16:51:55
>>761
やらないか?

763 :デフォルトの名無しさん:2006/11/17(金) 17:20:53
マ板でやれ

764 :デフォルトの名無しさん:2006/11/17(金) 20:31:25
給料むちゃくちゃ安い上に、将来性0だけどな。

765 :デフォルトの名無しさん:2006/11/17(金) 20:48:07
ヒューレットもしくはパッカード並の才能があるとしてもエロゲメーカーに入った時点で終了だからね。

766 :759:2006/11/17(金) 22:22:41
>>760
一応、本職です><。
趣味で個人作成したいけど
思いつかないんだ。

>>761
大手は、
とりあえず入れるところが多い。
試用して駄目だったら捨てる感じ
中小でも、人手が足りないところ多い。

>>764
実力があれば
金も将来性も


767 :デフォルトの名無しさん:2006/11/17(金) 22:28:10
院上がりの研究屋どもには、あまりのしょっぱい仕事っぷりに
あきれられたりもするが、それでもがんばりゃ何とか年一千万前後は行くし、
このご時世そう捨てた商売でもないよ。

将来性については聞くな!

768 :デフォルトの名無しさん:2006/11/18(土) 13:12:53
そもそもプログラマの将来なんて考えるなよ
ゲームプログラマより将来が無いプログラマなんてたくさんあるぞ

769 :デフォルトの名無しさん:2006/11/18(土) 21:13:58
大学生がバイトの延長で入った外食なんて酷いな。

770 :デフォルトの名無しさん:2006/11/18(土) 22:39:34
>>768
下を見てどうすんだ、下をw
何の慰めにもならないだろ

771 :デフォルトの名無しさん:2006/11/19(日) 00:06:20
親に養ってもらいつつゲーム作ってる人は俺だけじゃない

772 :デフォルトの名無しさん:2006/11/19(日) 02:06:16
ゲーム(エロゲ、小さな企業除く)より将来性のあるプログラムな仕事って何よ?



773 :デフォルトの名無しさん:2006/11/19(日) 02:11:33
世界的には右肩上がり
国内的には飽和状態

所属してる会社によって見えてる将来が違うのかもね



ム板よりマ板のほうが技術ネタで盛り上がるのってどうなんだw
ゲームプログラマの人に聞きたい 20問目
http://pc8.2ch.net/test/read.cgi/prog/1162314152/

774 :デフォルトの名無しさん:2006/11/19(日) 04:26:31
でも会社に入るとさ、「std::vectorは断片化するから使用禁止」とか言われる世界なんだろ



775 :デフォルトの名無しさん:2006/11/19(日) 08:44:43
そんなん自分でメモリプールでもつくっときゃいーじゃん。


最近はゲームのPGは就職するための最低レベルが上がってるせいで
どこも人手不足って話はよくきけけどねぇ。

デザイナはデッサンさえ出来れば2Dだろうが3Dだろうが割とすぐ習得できるけど、
PGは2Dと3Dで越えられない壁があるからなぁ。

776 :デフォルトの名無しさん:2006/11/19(日) 10:58:53
2Dしかできない状態で会社入るとどうやっても3Dができるようにはならないな。

777 :デフォルトの名無しさん:2006/11/19(日) 11:15:02
んなことはない

778 :デフォルトの名無しさん:2006/11/19(日) 11:23:20
>>777
人の作ってくれたライブラリ使って座標弄るので精一杯な奴しかいないけどな。
極稀に死ぬ思いで習得する奴もいるけどやっぱりそれなりに苦労はするな。
仕事しながらってのは辛い。
大抵の奴はできないまま。

779 :デフォルトの名無しさん:2006/11/19(日) 11:30:54
でかい会社ならスペシャリスト思考って感じで、
3D出来なくても他に得意な分野があれば問題なかったりするんだけどね。

まぁ3Dできないままな事に変わりはないが。

780 :デフォルトの名無しさん:2006/11/19(日) 12:08:22
>>775
どれくらいできれば就職できるんでしょうか?
抽象的過ぎる質問ですが

781 :デフォルトの名無しさん:2006/11/19(日) 13:06:23
>>780
最低ラインを聞いてるならC言語でテトリスでもつくってくりゃタイミング次第でどこでも入れるぜ。
実際、そういう場面ってあるしな。
逆にタイミング悪いと、どんなにできても駄目なときは駄目。

782 :デフォルトの名無しさん:2006/11/19(日) 13:11:21
例えば、どこぞのベテランとテトリスが作れるぐらいの腕の学生を比べても
そのとき抱えてる案件が携帯ゲームの開発だったりしたら
どっちがどの程度だろうとあんまり違いってないじゃん。
で、ノルマとして、3ヶ月で10個ぐらい作るって話になったら
単純にプログラマの数だけそろえたいじゃん。そんな感じ。
大作でも○○画面?個なんて話になると、もうベテランだろうとなんだろうと違いなんてないね。

783 :デフォルトの名無しさん:2006/11/19(日) 15:00:35
>>780
まじめにPGってんならうちの会社だと、
1.ツール作れる
  そのまんまの意味
2.3Dできる
  既存のライブラリ(例EL・DX・Lunaあたり)でいいから
  それつかってゲーム作る(自分でDirectX叩いたほうが評価はいいけど)
3.ネットワークできる
  Peer2PeerとかClient-Server型のいわゆるネトゲ的なヤツ
4.携帯電話のアプリ組める
  そのままiAppli、Brewとか

どれか1つでも出来ればとってると思う。
肝心なのはちゃんと完成してるものである事かねぇ。

784 :デフォルトの名無しさん:2006/11/19(日) 20:14:52
5. 2DSTGできる
  既存のライブラリ(例EL・DX・Luna・BulletMLあたり)でいいから
  それつかってゲーム作る(自分でDirectX叩いたほうが評価はいいけど)

は?

785 :デフォルトの名無しさん:2006/11/19(日) 20:23:07
>>784
STGって時点で起動すらしてない・・・ところもあるw

786 :デフォルトの名無しさん:2006/11/19(日) 20:27:33
技術を判断しにくいだろ?
3D組んでもさ、3D特有の嫌らしさってでないしさ。
別にSTGとしてたのしいもん作ってもらってもいいけど
それはそれ、これはこれ、じゃん。
仕事で求められるのってちょっと違うし。

そうとういいもん作っても、見る奴が変な奴だと、
いきなり「こいつはSTGをちっともわかってない!」とか技術判定ほったらかしで怒りだして
気分悪くしてそのまま不採用にしちゃうSTGキチガイもいるからかなり危険。
なんかね。妙なスイッチ入るんだよw普段はおとなしいんだけど・・・

787 :デフォルトの名無しさん:2006/11/19(日) 20:38:58
キチガイが人事担当してる会社に採用されるくらいなら
不採用になったほうがまだマシだな。

788 :デフォルトの名無しさん:2006/11/19(日) 21:02:43
>>787
いや、ちょい昔の(PS世代の俺よりチョイ上ぐらい)PGのSTGのこだわり方って半端じゃないよ。
普段は話が通じる人でも、STGになると豹変するからやめた方がいい。
どうせSTG作っていきたいって奴だって変なこだわりがあるからSTGでもっていきたいんだろ?
無駄に敷居が高いから止めたほうが無難だぞ。

789 :デフォルトの名無しさん:2006/11/19(日) 21:28:11
最初は人事担当と面接してたのに
プログラマ志望ということで一番上のプログラマがやってきた
「あれさぁ〜〜ェッタ、ボク的にェッタは受け付けなェッタいねぇ〜ェッタ、ェッタ、わかるよね?言ってる意味ェッタ」

なんだよその ェッタ って

即帰らせてもらった

790 :デフォルトの名無しさん:2006/11/19(日) 21:31:27
2DでSTG作るくらいなら、表示を全部ポリゴンで
Gダラみたいにしたほうがはるかに評価が高い現実。

まぁゲーム自体は結局2DSTGだけど、ポリゴンを使えるってだけで評価あがるもんだよ。

STG自体が作るのが簡単なジャンルだし作ってる会社もほとんどないから
就職作品にするならかなり気合入ってないと厳しいかもね。
ただアホみたいに弾幕飛ばすだけのゲームなんて即効ALT+F4だな。

791 :デフォルトの名無しさん:2006/11/19(日) 22:03:11
DirectX使わずに3Dエンジン自作してる俺は負け組み。

792 :デフォルトの名無しさん:2006/11/19(日) 22:13:24
>>789
ワロタ

793 :デフォルトの名無しさん:2006/11/19(日) 22:31:46
>>791
それはそれで評価される罠。
まぁそれでゲーム作るのはキツイかもしれんが・・・。

794 :デフォルトの名無しさん:2006/11/19(日) 22:32:28
>>791
スキニングができるかどうかが分かれ目か?

795 :デフォルトの名無しさん:2006/11/19(日) 22:47:21
簡単な3Dエンジンなら中卒でも三角関数乱用すれば直ぐにできるが、流石にスキンメッシュは無理だろ。

796 :デフォルトの名無しさん:2006/11/19(日) 23:05:43
>>795
俺が就職するときはもってったぞ。>スキンメッシュ
同時にバンプも掛けてた。
デモ作ってもってったら採用された。
ちなみにゲー専卒。
2年間の有り余る時間をすべてゲームの勉強に注いだ。

797 :デフォルトの名無しさん:2006/11/20(月) 17:38:06
スキンメッシュなんてSDKのサンプルにあるだろ。

798 :デフォルトの名無しさん:2006/11/20(月) 17:58:30
>>797
最初から用意されてるなんとかHierarchyとか使わないで読み込むんじゃねーの?
全部自力で読み込んで、自力で描画。IKとかの話じゃないの…?
そうじゃなかったら、その会社普通に誰でも入れそうだな。

799 :デフォルトの名無しさん:2006/11/20(月) 18:05:42
>>796
2年間の努力に敬意を表するっ!

800 :デフォルトの名無しさん:2006/11/20(月) 18:20:12
全部ソフトウエアレンダリングでスキンじゃないの_

801 :デフォルトの名無しさん:2006/11/20(月) 18:54:36
面接ネタを一つ。
ゲームを終了させたら自動的にアンインストールが始まる作品があった。
そのアンインストールというのが無条件にフォルダ内を消しまくるやつだった。
(d:\test\01072にインストールしたのにtestごと消された。)
見事他の人の作品まで消してくれた。

不採用。

802 :デフォルトの名無しさん:2006/11/20(月) 19:11:46
>>798
いや、SDKのサンプルがちゃんと理解出来れば自前読み込み、自前描画くらい出来るっしょ。
ちなみに>>797>>795宛てね。

803 :デフォルトの名無しさん:2006/11/21(火) 00:07:56
>>801
なんか、そういうエロゲあったな。
ProgramFilesの中身全部消された

804 :デフォルトの名無しさん:2006/11/21(火) 00:28:45
Dドライブが消えるのもあったな

805 :デフォルトの名無しさん:2006/11/21(火) 00:46:48
みずいろのことかー

806 :デフォルトの名無しさん:2006/11/21(火) 02:09:00
インストーラーやアンインストーラーを自分で書く神経が信じがたいわけだが、
そういう手合いはMSDN読んだりとかしないのだろうか???

807 :デフォルトの名無しさん:2006/11/21(火) 02:13:39
インストーラーにも遊びを入れたかったんだよ
きっと

808 :デフォルトの名無しさん:2006/11/21(火) 02:48:06
>>804
もう、インストーラって言う、レベルじゃねーぞ!!
        ,, ―- 、_
      /        '' - ,,
    /             '' - ,,
   /                 ヽ
  i           / /ヽ    !
  ,i          ./ / ''―、   !
  i     ,、 n て'' ノノ    ヾ   !
  i    ノノノ ノ ノ ''´      !  /
     j   ' ´    ノ (    ヽ |
 >-,,  /  ,,=━━・!' ,ノ━== ! ノ
 !・  ヽ |  ’ニ( ●)iii、 :::::i( ●)ii=i )
 \(てi iヽ   ^' ~     -'  /}
  `i_   、 \        i_    l_j
   `┐ i    /(,,, ,n 〉   /\\  
  ̄ ̄へ    ! '   T''    l |  \  
   |  ! i    ン=ェェi) i ソ )
   |  i´\! ,, -ェ`、_ン ノノ 〈
   |  |  \\,, `―''´//  |
   |  つ   !、_'''''''''''''  /   7

インストーラッティ=イウレ=ベルジャネーゾ(革命家)
      [1965~2006]

809 :デフォルトの名無しさん:2006/11/21(火) 03:02:54
今年で死んだのか

810 :デフォルトの名無しさん:2006/11/21(火) 03:19:43
アンインストーラーにデリートされますた。

811 :デフォルトの名無しさん:2006/11/21(火) 03:20:30
ええ。あの行列に巻き込まれて逝きました。

812 :デフォルトの名無しさん:2006/11/21(火) 03:33:01
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::。:::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::。::::::...... ...   --─-  :::::::::::::::::::: ..::::: . ..::::::::
:::::::::::::::::...... ....:::::::゜::::::::::..   (___ )(___ ) ::::。::::::::::::::::: ゜.::::::::::::
:. .:::::。:::........ . .::::::::::::::::: _ i/ = =ヽi :::::::::::::。::::::::::: . . . ..::::
:::: :::::::::.....:☆彡::::   //[||    」  ||]  ::::::::::゜:::::::::: ...:: :::::
 :::::::::::::::::: . . . ..: :::: / ヘ | |  ____,ヽ | | :::::::::::.... .... .. .::::::::::::::
::::::...゜ . .:::::::::  /ヽ ノ    ヽ__/  ....... . .::::::::::::........ ..::::
:.... .... .. .     く  /     三三三∠⌒>:.... .... .. .:.... .... ..
:.... .... ..:.... .... ..... .... .. .:.... .... .. ..... .... .. ..... ............. .. . ........ ......
:.... . ∧∧   ∧∧  ∧∧   ∧∧ .... .... .. .:.... .... ..... .... .. .
... ..:(   )ゝ (   )ゝ(   )ゝ(   )ゝ無茶しやがって… ..........
....  i⌒ /   i⌒ /  i⌒ /   i⌒ / .. ..... ................... .. . ...
..   三  |   三  |   三  |   三 |  ... ............. ........... . .....
...  ∪ ∪   ∪ ∪   ∪ ∪  ∪ ∪ ............. ............. .. ........ ...
  三三  三三  三三   三三
 三三  三三  三三   三三

813 :デフォルトの名無しさん:2006/11/21(火) 07:22:57
ワラタ

814 :デフォルトの名無しさん:2006/11/22(水) 00:26:05
DirectSoundを使いたいと思い、
ttp://www.nk.rim.or.jp/~m_iida/programming/directX/BCB_DX9.html
を見てbuilderとのリンク(?)までは上手くいったのですが、
その後、どうしてよいのかわかりません。
初期化やらなんやらが必要なことはわかったのですが、
初期化もどうやっていのかわからずという状態です。
決まった時間に決まった音声を鳴らせればそれでいいのですが、
そのために必要な情報が載っている詳しいサイトか本などを紹介していただけないでしょうか?

プログラム暦はC言語を数ヶ月と、Visual C++で作ったDirectXのサンプルプログラムをいじったことがある程度です。
今回はスクロールバー等を多用するのでC++builderとDirectSoundでプログラムを作りたいと思っています。

815 :デフォルトの名無しさん:2006/11/22(水) 06:50:02
>>814
二等兵よ、まず開発するDirectXのバージョンは何だ?目的地はDirectX8か?
二等兵よ、対応するSDKとヘルプは持っているか
行軍の必須装備だ なければ Microsoft DirectX 開発者ページにイって確保してこい
DirectSoundの仕様はDirectX8のヘルプに記載されている

ヘルプで仕様を一通り眺めたら、偵察機グーグルで飛べ
http://www.google.co.jp/
作戦コードは DirectSound だ。間違って エロ画像 と入力するんじゃないぞ
先達部隊のヴェテランどもが DirectSound との交戦記録を持っている
驚くことに講座まで開いているぞ
合流してチュートリアルで学べ、そして戦え、二等兵よ!

816 :デフォルトの名無しさん:2006/11/22(水) 07:33:58
>>815
彼は衛生兵です。

817 :デフォルトの名無しさん:2006/11/22(水) 08:24:37
メディーック!

818 :デフォルトの名無しさん:2006/11/22(水) 22:35:10
サカタハルミジャン



819 :デフォルトの名無しさん:2006/11/23(木) 01:08:18
>>806
全部自前で書きたくなるのが本物のプログラマ

820 :デフォルトの名無しさん:2006/11/23(木) 01:10:33
そういう奴は仕事では使えない奴だったりする。

821 :デフォルトの名無しさん:2006/11/23(木) 01:10:53
いやただのバカ
本物のプログラマだったらむしろできるだけ書くことをサボろうとする

822 :デフォルトの名無しさん:2006/11/23(木) 01:17:37
サボろうと思えば100%サボれる時代になに言ってんの

823 :デフォルトの名無しさん:2006/11/23(木) 01:50:13
生きるのをサボりたい

824 :デフォルトの名無しさん:2006/11/23(木) 07:29:40
DirectXの本についていたサンプルをコンパイルすると以下のようなエラーがでます。

   error C2039: 'CreateDevice' : 'IDirect3D9' のメンバではありません。
   g:\program files\microsoft directx sdk (october 2006)\include\d3d9.h(254) : 'IDirect3D9' の宣言を確認してください。

オブジェクト宣言してアロー演算子使っているのですが、間違っていないと思うのですが、わかりません。
よろしくお願いします。

825 :デフォルトの名無しさん:2006/11/23(木) 07:43:55
そのDirectX本はDirectX9 october2006に対応しているの?

826 :824:2006/11/23(木) 08:04:43
>>825
いいえたしか「b」までです

827 :824:2006/11/23(木) 08:05:49
追記
コンパイラはVS2005proです

828 :デフォルトの名無しさん:2006/11/23(木) 09:10:48
そもそもソレってincludeパス通ってないんじゃないの?

829 :デフォルトの名無しさん:2006/11/23(木) 09:11:32
VS2005のアカデミックとかEEとかならわかるが、
Proなんて相当高いもん使うくらいなのにそんな質問が出てくるのか。

830 :デフォルトの名無しさん:2006/11/23(木) 09:13:30
どうせ割ってんだろ

831 :デフォルトの名無しさん:2006/11/23(木) 09:27:14
DirectXを割ってるらしいよ

832 :デフォルトの名無しさん:2006/11/23(木) 09:40:32
学生でSpoke買ったやつなら、2005proをタダでゲットできた。

833 :824:2006/11/23(木) 09:52:50
>>826
パスは通っています

それから、割れではありません

834 :デフォルトの名無しさん:2006/11/23(木) 10:01:58
そもそもさ、何でエラーが出てる行のソースを晒さないのさ。
Pro なんていいもの使ってるなら、それくらいの脳は持ってくれ。


835 :デフォルトの名無しさん:2006/11/23(木) 10:12:55
その本でつかってるバージョンと、インストールしてあるバージョンが違うとしかおもえぬ

836 :デフォルトの名無しさん:2006/11/23(木) 22:50:39
DirextXを利用したスクリーンセーバーを作りたいのですが、
scrnsave.lib を使ったイベントで作画を呼ぶタイプの解説は
たくさん見つかるのですが、自分でループを回すような構造
(DXUTのような構造) のスクリーンセーバーってどうやって
作ればよいか説明されているサイトってどこかにありませんか?

837 :デフォルトの名無しさん:2006/11/23(木) 22:59:59
関係ないけど、省電力しない3Dスクリーンセーバーなんて使う人いるの?



838 :デフォルトの名無しさん:2006/11/23(木) 23:06:01
スクリーンセーバーは逃げだと思うんだ。
「デモ」はと映像や音楽と組み合わせたプログラムの技巧がものをいうけど、
「スクリーンセーバー」はセンス悪くてごめんなさい放っておいてよって感じ。

839 :デフォルトの名無しさん:2006/11/23(木) 23:22:39
>836
ScreenSaverProcでWM_TIMERやWM_USERなりを拾ってループを回せばよくない?

>838
チラ裏にでも書いてろ

840 :デフォルトの名無しさん:2006/11/23(木) 23:50:31
>839
WM_TIMERで作ってみたんだけど動きがスムーズじゃないんだよね。

DXUTだとスムーズなのに。

841 :デフォルトの名無しさん:2006/11/24(金) 00:03:37
>>837
つ デュープリズムのスクリーンセーバー

842 :デフォルトの名無しさん:2006/11/24(金) 11:39:54
>>837
用途によってはアリ。
追加ボードで パワーマネージ非サポートの省電力の行ったり来たりを許さないのがある。

843 :デフォルトの名無しさん:2006/11/26(日) 15:51:34
質問です。
描画時にスケール変換して描画しているメッシュとのレイ判定ってどのように行えば良いのでしょうか?
現在、D3DXIntersectを使用しています。
分かる方お願いします。

844 :デフォルトの名無しさん:2006/11/26(日) 16:58:57
これまでどうやってたの? 描画時に回転と平行移動はかかってなかったの?

845 :デフォルトの名無しさん:2006/11/27(月) 00:13:36
>>843
つーかお前ずっと同じような質問してるだろ。
>>677に書いてあることは理解できたのか?
初心者でも三日もかければ理解出来る。理屈が分からずにD3DX使うより結局早道だぞ。
レイとポリゴンの交差判定なんてググればいっぱい出てくるんだし。

846 :843:2006/11/28(火) 12:59:05
>>844
返答ありがとうございます。
書き込み遅くなってすいません。

回転と平行移動は、レイ発射点の回転・平行移動により再現しています。

847 :デフォルトの名無しさん:2006/11/29(水) 01:26:00
意味不明

848 :デフォルトの名無しさん:2006/11/29(水) 08:08:57
こ れ は ひ ど い

849 :デフォルトの名無しさん:2006/11/29(水) 08:12:54
イ ン タ ー ネ ッ コ で す ね

850 :デフォルトの名無しさん:2006/11/29(水) 17:57:12
d3dx9_30.dllをスタティックリンクできるのって
SDKのバージョンどれまでだっけ?


851 :デフォルトの名無しさん:2006/11/29(水) 18:07:51
D3DX9をスタティックリンクなら、October 2004。

852 :デフォルトの名無しさん:2006/11/29(水) 18:09:37
>>851
サンクス!

853 :デフォルトの名無しさん:2006/11/29(水) 18:22:06
dec

854 :デフォルトの名無しさん:2006/11/29(水) 18:27:31
>>853のせいで動きが・・・・遅・・・・・

855 :デフォルトの名無しさん:2006/11/29(水) 18:30:47
くだすれでも質問したのですが、3日経っても返信がないのでこちらにも書きませてもらいます。

スプライトの中心に2D絵を描画したいのですが
どうすればよいでしょうか?
よろしくお願いします。

856 :デフォルトの名無しさん:2006/11/29(水) 18:35:05
>>855
質問するときには何がわからないのか書かないと、まともな返事は期待できない。

857 :デフォルトの名無しさん:2006/11/29(水) 18:52:44
      ''';;';';;'';;;,.,   
             ''';;';'';';''';;'';;;,.,   
              ;;''';;';'';';';;;'';;'';;;
             ;;'';';';;'';;';'';';';;;'';;'';;;
          vymyvwymyvymyvy、
      ヽ(゚д゚)vヽ(゚д゚)yヽ(゚д゚)v(゚д゚)っ
 ⊂( ゚д゚ ) と( ゚д゚ ) 〃ミ ( ゚д゚ )っ ( ゚д゚ )つ     
   ゝηミ ( ゚д゚ )っ ミ) ⊂( ゚д゚ ) .(彡η r
    しu(彡η r⊂( ゚д゚ ) .ゝ.η.ミ) i_ノ┘
.       i_ノ┘  ヽ ηミ)しu
           (⌒) .|
            三`J

858 :デフォルトの名無しさん:2006/11/29(水) 20:53:24
1. 「スプライトエディタ」をgoogleで検索するといろいろ出ます
2. スプライトエディタを起動
3. 中心に何か絵を描く。
4. 出来上がり。



859 :デフォルトの名無しさん:2006/11/29(水) 21:28:26
>>853

860 :デフォルトの名無しさん:2006/11/29(水) 21:28:29
>>856
そうですね、失礼しました

DirectXを使ってサイズが不定なテクスチャの中央を
描画可能領域の中央に合わせて表示したいのですが、どのようなコードを書けばいいのでしょうか?

現在はこうしていて、どうしてもテクスチャの左上が描画可能領域の中央に来てしまいズレてしまいます。

position.x=d3dpp.BackBufferWidth/2;
position.y=d3dpp.BackBufferHeight/2;
Sprite.Draw(Texture,NULL,NULL,&position,D3DCOLOR_ARGB(0,0,0,0));

よろしくお願いします。

861 :デフォルトの名無しさん:2006/11/29(水) 21:31:49
position.x=(d3dpp.BackBufferWidth - SpriteWidth)/2;
position.y=(d3dpp.BackBufferHeight - SpriteHeight)/2;

862 :デフォルトの名無しさん:2006/11/29(水) 22:21:53
>>860
プログラムじゃなくて算数からやり直した方がいいよ。

863 :デフォルトの名無しさん:2006/11/29(水) 23:26:40
>>861
テクスチャの幅=スプライトの幅ということですか?
あとSpriteWidthでは、変数名しかわからないのでもう少し情報をください。
よろしくお願いします。

864 :デフォルトの名無しさん:2006/11/29(水) 23:31:38
>>863
画用紙にクレヨンで四角を書け。それが描画可能領域だ。
その四角の真ん中に、少し小さめの四角を書け。それがスプライトのテクスチャだ。
スプライトの左上の点がどこになるか、絵を描いて考えろ。

865 :デフォルトの名無しさん:2006/11/29(水) 23:48:53
これはさすがに釣りだろ。

866 :デフォルトの名無しさん:2006/11/30(木) 00:10:15
もう、こういうサンプルもみたこと無いようなのはスルーにしよう。

867 :デフォルトの名無しさん:2006/11/30(木) 00:15:12
>>864
>その四角の真ん中に、少し小さめの四角を書け。
描画可能領域の真ん中に少し小さめの四角の左上が

868 :デフォルトの名無しさん:2006/11/30(木) 12:11:01
>>866
>>1

>>867
position.x=d3dpp.BackBufferWidth/2;
position.y=d3dpp.BackBufferHeight/2;
ならそうなるな、スプライトの幅も計算に入れろ
と思ったけど、スプライトの幅のサイズが先に分かってる場合の方法しか俺は知らない
サンプル見て回ったけど、どこも定数入れてるし、スプライトのサイズが分からない場合の方法はないんじゃないか?

俺DX暦3年だからまず間違いない

869 :デフォルトの名無しさん:2006/11/30(木) 13:20:39
質問です。

スクリーンセーバーから回復すると、以降
IDirect3DDevice9::Presentが成功しません。解決方法を教えて下さい。

 if(SUCCEEDED(m_pd3dDevice->BeginScene())){
  //描画・・・
  m_pd3dDevice->EndScene();
 }
 m_pd3dDevice->Present(NULL, NULL, NULL, NULL); ←これ

870 :デフォルトの名無しさん:2006/11/30(木) 13:24:28
>>869
デバイスロストしてんならリストアしる

871 :デフォルトの名無しさん:2006/11/30(木) 13:40:27
質問です。最近DXライブラリを使ってゲームを作りだしたんでけど
http://lacc.biz/cpp/cpp05.html
このソースを使ってコンパイルして実行すると一回目は正常?なんですけど
2回目実行するとハングアップしてしまいます。(電源を切るしかありません)
他にもDirectXを使ってるゲームを二回目起動すると同様の現象が起きます。
どなたか教えていただけませんでしょうか?
Windows XP です。


872 :デフォルトの名無しさん:2006/11/30(木) 14:07:09
>>871
まずプログラム側の問題(大多数の環境で再現するトラブル)と
環境側の問題(特定の環境で再現するトラブル)のどちらか確認せな
他のDirectXゲームでも同じ症状が起きるところを見ると環境側の問題っぽいが
環境側の問題ならビデオドライバをアップデートするとか
メーカーに問い合わせるとか、パーツやマシンを替えることになる

873 :871:2006/11/30(木) 14:25:08
>>872
メーカーに聞いてみます。ありがとうこざいました。

874 :デフォルトの名無しさん:2006/11/30(木) 14:48:29
普通は違うバージョンのドライバをいろいろ試すところだが・・・・・・・・

ど こ の メ ー カ ー に 問 い 合 わ せ る つ も り な ん だ ?

875 :871:2006/11/30(木) 14:50:06
NECです。

876 :デフォルトの名無しさん:2006/11/30(木) 14:52:25
リカバリしてくださいで終わりだな。

877 :デフォルトの名無しさん:2006/11/30(木) 21:49:56
こういう自分で調べないヤツの対応せなならんのだからサポセンも大変だな。
ドライバどうこう言われてもドライバの意味も分からないんじゃないか?

そもそもWindowsXPですとか言われても関係ないし。
せめてビデオカード何使ってるかくらいは明記してもらいたいものだが。

878 :デフォルトの名無しさん:2006/11/30(木) 22:35:51
ちゃんと問い合わせの前に、調べる手段として2chを使ってるじゃないか
それだけでも十分偉いよ

879 :デフォルトの名無しさん:2006/12/01(金) 01:18:12
DirectDrawで全画面のゲームの上に、定規アプリとかを重ねたいのですが
そもそも可能でしょうか(´・ω・`)色々調べてみたけど万策尽きた


880 :デフォルトの名無しさん:2006/12/01(金) 01:41:08
D3DXCreateTextureFromFireExの第3,4引数(UINT Width, UINT Height)
にD3DX_DEFAULT_NONPOW2を指定すると読み込んだテクスチャが2の乗数にならんと風の噂で聞いたんだが
SDK9.0bでやっても効果なかった
ググってもほとんど引っ掛からなかったんだけど誰か詳しくわかる人ますか?

881 :デフォルトの名無しさん:2006/12/01(金) 03:06:31
ビデオカードが 2^n ではないテクスチャをサポートしているか確認はしたんだろうな?

882 :デフォルトの名無しさん:2006/12/01(金) 03:06:44
DirectXで外部のbmpファイルなどを読み込んで表示する際に
TextureとSprite、Surfaceなどが出てきますが、これらの違いがよく理解できません。

これらの相違点について分かるサイトがあったら教えてください。
よろしくお願いします。

883 :デフォルトの名無しさん:2006/12/01(金) 04:12:45
普通に作ったウィンドウの背景色を半透明にしたくて、
lpD3DDevice->Clear(0,NULL,D3DCLEAR_TARGET,D3DCOLOR_ARGB(128,128,0,0),1.0f,0);
とかしてみたのですが、全然透けてくれません。
lpD3DXSprite->Begin(D3DXSPRITE_ALPHABLEND);
で描いたtextureなんかは半透明になるのですが……。
もしかして背景は透けられないものなのでしょうか。

884 :882:2006/12/01(金) 05:19:49
>>882ですが自己解決しそうなので一時取り下げします
相違点というか、意味がハッキリわかって関連性も書けそうになったら追記します

885 :882:2006/12/01(金) 05:30:51
あんまハッキリとは分からないですね…

スプライトが画像のみを扱い2Dである
テクスチャーは画像を3D(サーフェイス)の一部として扱う
その為テクスチャーを使っての2Dという方法で画像を表示する事もできる
textureを扱う為にsurfaceを用いなければならない

って感じかなぁ
まだ分からないけどDirectXを2Dのみで扱いたいならスプライトって事かな

886 :デフォルトの名無しさん:2006/12/01(金) 06:52:53
>>881
すまん確認してなかったorz
結局ハードの問題になるなら現実的なコードじゃないな…

887 :デフォルトの名無しさん:2006/12/01(金) 07:51:30
スプライトなんて虚構。
やっぱ癌だな。初心者が変な思い込みをして騒ぐ。
うざいことこの上ない。


888 :デフォルトの名無しさん:2006/12/01(金) 07:59:36
>>883
ウィンドウは透けない

889 :デフォルトの名無しさん:2006/12/01(金) 08:03:04
>>887
スプライトがウザいのか?
スプライトに関する質問者がウザいのか?

890 :デフォルトの名無しさん:2006/12/01(金) 08:03:47
DirectXに限った解釈をすると

Surface 画像データそのもの
Texture Surfaceに各種情報を持たせたもの つまりTextureの画像データの部分がSurface
Sprite Textureにスプライト操作に必要な情報を持たせたもの

891 :デフォルトの名無しさん:2006/12/01(金) 08:17:05
>>890
なるほどです…
Surface < Texture < Sprite といった感じですね

Easy Link Libraryを使っていた時にスプライト=画像みたいな解釈してたので凄いこんがらがりました
今凄いすっきりしました、ありがとうござざいます

892 :デフォルトの名無しさん:2006/12/01(金) 11:04:04
ウィンドウのサイズを変更してもメッシュの縦横比を一定に保つには
どこら辺のパラメータをいじってあげれば良いですか?
メッシュの縦横比を常にウィンドウが正方形の時の形に保ちたいんです。

893 :871:2006/12/01(金) 11:19:28
みなさんありがとうこざいました。
windows/system32/dxなんとか.exeを起動したら前回問題があったとかでて
いろいろテストとかしたら問題がおこらなくなりました。
ありがとうこざいました。

894 :デフォルトの名無しさん:2006/12/01(金) 12:48:41
>>892
たとえばD3DXMatrixPerspectiveFovLHとかのアスペクト比

895 :デフォルトの名無しさん:2006/12/01(金) 13:19:28
>>879
荒業でいいならDLLInjectionとかでDirectDraw乗っ取って
その上に描画とか。

896 :デフォルトの名無しさん:2006/12/01(金) 15:52:10
>>895
なるほど。
まだ何とも言えませんが、鋭意調べてみます!(`・ω・´)
あまりwindowsシステムに関わったぷ〜を組んだことが無いので〜

897 :デフォルトの名無しさん:2006/12/01(金) 19:52:25
うわー…ホント訳わからん
>891での解釈も少し違うような気がするなぁ

((Surface) Texture)
画像を描画できる最小の単位

Spriteを使用すると描画の際に色んな効果を加えられる…のかな

駄目だな俺、Dx才能ねぇや

898 :デフォルトの名無しさん:2006/12/01(金) 20:17:42
何度も連投すみません
俺の買った
DART社のサンプルで学ぶDirectX9プログラミングテクニックというのが分かりづらいのかもしれないです・・・

899 :デフォルトの名無しさん:2006/12/01(金) 20:58:06
再度連投スマソ

DirectX SDK Document 日本語が上手くインストールできないもんだから
日本語ドキュメント諦めてたけど
インストールせずに解凍して読んでみたが、日本語ドキュメント無いと絶対DirectX使えるはずないな…

Managed 日本語の
・DirectX 9.0 for Managed Code の紹介
└・Direct3D グラフィックス
 └・Direct3D の基礎知識
  └・Direct3Dサーフェイス
   └サーフェイス フォーマット

を今読んでるけど、分かりやすいわ…
スレ汚ししまくって失礼しました…

900 :デフォルトの名無しさん:2006/12/01(金) 22:16:34
スプライトっていうと昔のハードについてた描画機能だしな・・・

DirectDrawでカラーキー抜きするようなやつを思い浮かべる人が多いのだろうけど、
DirectX8以降はスプライトなんてものは一切無くて、
ポリゴンにテクスチャを張りつけて描画しているだけの事。

901 :デフォルトの名無しさん:2006/12/02(土) 02:20:44
Direct3Dで動的に作成した絵を、普通のウィンドウの中にアイコンのように貼り付けて表示したり、
ウィンドウの背景絵のように貼り付けたりすることはできますか?
どういったキーワードでググればいいでしょうか・・・

902 :デフォルトの名無しさん:2006/12/02(土) 02:43:47
>>204のlunaのやつがどうなったのか知りたい

903 :デフォルトの名無しさん:2006/12/02(土) 03:05:19
きょうびがハード的な実装の話じゃなくって、
ソフトウエア的な運用上のパラダイムになってるからな、スプライトって。

年寄りがぎゃーすか騒ぎ出したら、口ん中にマウスカーソルかNintendoDSでも突っ込んで
黙らせてしまえ。

904 :デフォルトの名無しさん:2006/12/02(土) 05:50:16
>>903
wiiなら突っ込まれてもいい。



…ごめん、そんな大きいの、入らないよ。

905 :デフォルトの名無しさん:2006/12/02(土) 14:30:12
らめぇ

906 :デフォルトの名無しさん:2006/12/03(日) 03:50:50
segment->SetStartPoint(mtStart) 後に
performance->PlaySegmentEx(segment,NULL,NULL,0,0,&state,NULL,NULL)で再生しているのですが、
必ずセグメントの初めから再生されてしまいます。
初期化辺りで既にミスっているのでしょうか。
SDKはAugust2006を使用しています。よろしくお願いします。

907 :デフォルトの名無しさん:2006/12/03(日) 08:50:55
>>906
すっかり覚えてないが DMUS_SEGF_VALID_START_*** が必要じゃなかったかな?

908 :デフォルトの名無しさん:2006/12/03(日) 13:57:11
>>907
レスありがとうございます。

DMUS_SEGF_ALIGN | DMUS_SEGF_VALID_START_* を指定してみましたが残念ながら結果は同じでした。
この際、それっぽいフラグは全部試してみたのですがどれもうまくいきませんでした。

書き忘れていましたが、WAVファイルをセグメントに読み込んでいます。
調べていると、MIDIなら成功するらしいのですがWAVだとダメだったという方が結構いるようで・・

頑張ってもう少し調べてみます。

909 :デフォルトの名無しさん:2006/12/03(日) 16:43:19
>>908
WAVEはSetLengthしないとダメでは?

910 :デフォルトの名無しさん:2006/12/03(日) 17:55:59
>>909
SetStartPointの前にという事ですよね。
MSDNの方に「セグメントの長さを現在のオフセットより少なくとも 1 チックだけ大きい値に設定する必要がある」
とあるのですが、オフセットというのはそのセグメントの演奏開始からの現在までの時間といった解釈でよろしいのでしょうか。
合っていると仮定して、オフセット+1の値を引数にSetLengthを呼び出してみたのですが、うまくいきませんでした。
引数を色々な値に変えて試してみましたがやはりダメでした。
SetLengthの引数が正しい値ではないという事でしょうか。

911 :デフォルトの名無しさん:2006/12/03(日) 17:58:53
HRESULT SetWAVLength(IDirectMusicSegment8* pSeg,
DWORD tempo, // 1 分あたりの拍数
float wavLength) // 秒数
{
if (pSeg)
{
MUSIC_TIME mt;
mt = (wavLength * DMUS_PPQ * tempo) / 60;
return pSeg->SetLength(mt);
}
else return E_POINTER;
}

912 :デフォルトの名無しさん:2006/12/03(日) 18:30:22
waveだったらDirectShow使ったほうが楽じゃね?

913 :デフォルトの名無しさん:2006/12/03(日) 18:37:16
ネットを巡回し影付けの事を調べていたところ
D3DXMatrixShadow()
D3DXPlaneFromPointNormal()
のような関数を使えば影を付けられるという事が分かったのですが、
これらの関数が行っている計算式はかかれていませんでした。
計算式を教えて頂きたいのと、このような関数だけに限らず、
Microsoftが用意している関数が行っている計算などを知るには何を調べればいいのでしょうか?

914 :デフォルトの名無しさん:2006/12/03(日) 19:42:12
幾何代数の本

915 :デフォルトの名無しさん:2006/12/03(日) 20:09:07
テクスチャを利用して画像を表示しようとしています。
背景を塗ることは出来たのですが、テクスチャを表示することが出来ません。
ここからどのようにすればテクスチャを表示できるのでしょうか。
分割コンパイルをしている事もあり申し訳ありませんがソース&画像を固めてアップしました。
よろしくお願いします。
ttp://newsstation.info/up/img/ns15948.zip

916 :デフォルトの名無しさん:2006/12/03(日) 20:38:57
g_lpD3DDevice->SetFVF(FVF_TLVERTEX);

917 :デフォルトの名無しさん:2006/12/03(日) 21:01:17
Direct3D9: (ERROR) :Vertex shader declaration is not set

DXから親切なエラーメッセージが出てるんだからちゃんと読もうぜ。

918 :デフォルトの名無しさん:2006/12/03(日) 22:22:52
実際問題、DirectXの問題のほとんどは、デバッグレベル最大にして
メッセージ読めばあらかた解決しちゃうんだよね。
かなり微妙な問題についても突っ込んでくれるし、MSDNに書いてない様なことにも
メッセージを出してくれる。
そんな仕様ならドキュメントしとけや!と切れそうになることもしばしばなくらい。

そんなわけでデバッグ版DLL使用に切り替えて、デバッグレベル上げれ。
設定はコンパネから。


これそろそろテンプレに入れてもよくなくね?

919 :デフォルトの名無しさん:2006/12/03(日) 22:31:52
設定によってはその場でBreakできっから便利だよなー

920 :デフォルトの名無しさん:2006/12/04(月) 01:28:47
multianimationの注目しているtiny君を自分で動かしたいんだけど、参考になるサイトはないですか?

921 :デフォルトの名無しさん:2006/12/04(月) 01:35:46
最近、意味の分からない日本語を話す質問者ばかりだ


922 :デフォルトの名無しさん:2006/12/04(月) 02:01:55
SDKのサンプルそのままでいいだろ。
どうでもいいがTinyって女じゃないか?

923 :デフォルトの名無しさん:2006/12/04(月) 02:10:29
USBカメラからの動画に3Dオブジェクトを重ねたいのですがうまくいきません。
Bmpを背景に3Dオブジェクトを重ねて表示するにはどうすればよいのでしょうか?
tex = Texture.FromBitmap(device, bmpimage, Usage.None, Pool.Managed);
でテクスチャに毎フレームごとテクスチャにビットマップ
を割り当ててスプライトで表示してみたのですがFromBitmapの処理が遅すぎて使い物になりません。


924 :デフォルトの名無しさん:2006/12/04(月) 02:31:24
ここはC++スレだ

925 :デフォルトの名無しさん:2006/12/04(月) 02:33:55
>>924
つスレタイ

926 :デフォルトの名無しさん:2006/12/04(月) 03:56:12
初心者イラネ

927 :デフォルトの名無しさん:2006/12/04(月) 07:54:10
>>923
まずはZ座標を一番奥にしたスクリーン座標のポリゴンにカメラからの映像を表示する
そのうえに普通にDirect3Dのモデルをレンダすればいいだけ
ビットマップする必要なんてない
つまり映像をテクスチャにすればいいだけな話

928 :デフォルトの名無しさん:2006/12/04(月) 11:43:44
>>927
ビットマップにする必要が無いというのは気づきませんでした。
どうも、ありがとうございます。

今カメラ画像はメモリ上にあるのですが、それをテクスチャに貼り付ける部分で
どうしてよいのか分からない状態です。
テクスチャへの割り当てはTextureLoader.FromFile();
か、texture.FromBitmap();がメインのようで他に見つかりませんでした。

それとも、他の方法としてカメラ画像を直接テクスチャに再生する方法があるのでしょうか?
調べたところMicrosoft.DirectX.AudioVideoPlayback の中のVideoクラスは
"動画ファイル"を直接テクスチャにレンダできるようです。
しかしリアルタイムのカメラ画像のテクスチャへの割り当ては解決できませんでした。

アドバイスいただけますでしょうか。

929 :デフォルトの名無しさん:2006/12/04(月) 14:41:27
>>883
GDIならSetLayeredWindowAttributesで半透明ウィンドウが作れる。
そこにDirect3Dの描画結果を自分で転送すればいける。
αも転送したかったら、自前で処理しないといかんが。

Vistaを睨んで全部Direct3Dでやりたい、って人はどうするんだろうな。
俺も知りたい。

930 :デフォルトの名無しさん:2006/12/04(月) 15:02:15
>>915ですが携帯からのカキコですみません。
M/Bがショートして煙がモヤりして、PCが起動できなくなりました。

せっかく回答を頂いたのに申し訳有りません…
スレを読む分には問題ないので頂いたレスに対してカキコします。
ただアンカはつけられませんが。。。

デバッグで…と言う方法は凄いいいですね。
全然知らなかったので…無知は失敗の元ですね

その方法をきちんと広めれば"何を調べればいいのか対象がハッキリして"
質問の質がきっとあがる!!
と、初心者がいっとります>(゚ロ゚*

回答してくださった方、本当に申し訳ないであります。

931 :デフォルトの名無しさん:2006/12/04(月) 15:25:48
>>929
ちょうど似たようなものを作ったところ。D3DPRESENTFLAG_LOCKABLE_BACKBUFFER必要。
hwMain = CreateWindowEx(WS_EX_LAYERED, ...);
SetLayeredWindowAttributes(hwMain, RGB(0, 0, 0), 0, LWA_COLORKEY);
hdcMain = GetDC(hwMain);
lpD3DDevice->GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, &lpD3DSurface)
これで背景通過のウィンドウを作り、
lpD3DDevice->EndScene();
したら Present の替わりに、
lpD3DSurface->GetDC(&hdcD3D);
BitBlt(hdcMain, 0, 0, cx, cy, hdcD3D, 0, 0, SRCCOPY);
lpD3DSurface->ReleaseDC(hdcD3D);
で転送。
背景を半透明にしたければ、さらにCreateWindowExで別の半透明ウィンドウを作って下敷きにする。
正しいかどうかは分からないけど、動いてる。

932 :デフォルトの名無しさん:2006/12/05(火) 01:06:37
自分が使ってるヴァージョンを確認するのってどうやるの?

933 :デフォルトの名無しさん:2006/12/05(火) 13:05:52
コントロールパネル→DirectX

934 :デフォルトの名無しさん:2006/12/05(火) 14:21:48
>>933
誰もそんなこと聞いてねぇよw
SDKの話をしてんだが?

935 :デフォルトの名無しさん:2006/12/05(火) 17:11:25
>>934
知ってるが
お前の態度が
気に入らない

936 :デフォルトの名無しさん:2006/12/05(火) 21:53:52
>>932
膜があるかどうか、というのも不確実だしなぁ。
とりあえず自己申告を信じろ。

937 :デフォルトの名無しさん:2006/12/05(火) 23:06:53
今日は>>935のネタを色んな板で見るな・・・

938 :デフォルトの名無しさん:2006/12/05(火) 23:17:31
GetDXVersion

939 :デフォルトの名無しさん:2006/12/06(水) 00:23:19
>>937
これ作ってた会社が倒産したんだっけ

940 :デフォルトの名無しさん:2006/12/06(水) 01:13:59
してねーよと言おうと思ったらコンシューマの方か

941 :デフォルトの名無しさん:2006/12/06(水) 15:51:54
DirectX使ったフルスクリーンのプログラムで、
IMEで日本語入力させたいときはどうしたらいい?

変換候補とか入力中文字がちらついて見えない。


942 :デフォルトの名無しさん:2006/12/06(水) 16:55:29
テクスチャについて質問させてください。以下のTipsを読んだのですが

>アプリケーションが4つの128x128のテクスチャを使うなら,
>同じパレットにして1つの256x256のテクスチャの中に入るとよいでしょう。

1つのテクスチャに4つのテクスチャをまとめて
テクスチャマッピングの際に線形補間フィルタリングをかけると
ポリゴンのエッジ部分に他のテクスチャのテクセルが干渉してしまいます。

2005年のエントリークラスのVGAを使用することを想定した場合に、
どのような解決策を使用したほうが良いでしょうか。どうか教えてください。

自分で解決方法を調べてみた結果としては、2つの方法が思いつきました。
(1)1つのテクスチャにまとめない(Tipsを無視する)
(2)サンプリングされる4点が目当てのテクスチャの範囲に収まるように
 テクスチャ座標(u,v)を調整する

自分としては、(2)は広範なVGAで確実に調整できるか疑問が残りますし、
Tipsに縛られずに(1)で良いのかなと考えています。

943 :デフォルトの名無しさん:2006/12/06(水) 17:04:43
>>942
(1)

944 :942:2006/12/06(水) 17:35:35
>>943
ご回答ありがとうございます m(__)m
(1)の方法で解決してみたいと思います。

945 :デフォルトの名無しさん:2006/12/06(水) 18:33:46
>>934
手首切断して出血多量で死ねよ

>>941
IME用のWM_を使う
ネット上にソース転がってる

946 :デフォルトの名無しさん:2006/12/06(水) 18:44:35
>>945
サンクス


947 :デフォルトの名無しさん:2006/12/06(水) 21:44:31
>>942
おれは(2)にしてる。
とくに2Dで大量に描画するような時は(1)の方法だと死ねる。

だが(2)はUVをズラサナキャならない分CPUに負荷がかかるので
どっちもどっちで状況に応じて帰るのが最強だと思うんだな。

(2)でたしかにVGAによっては若干ごみが出ることはある。
だがそんなものは画像を作る時に端1ドットは使わないようにすればいいだけだったりもする。

でも面倒なときはやっぱり(1)使ったりもする。

>>941
描画も自分で管理したいならIme*系の関数で全部できる。

948 :デフォルトの名無しさん:2006/12/06(水) 21:45:29
>>941
Ime*なんてねぇや、Imm*か

949 :デフォルトの名無しさん:2006/12/07(木) 04:49:38
>>941
DirectXSDKの中にずばりのサンプルがある。探しなさい。
ただ、基本は「IMEの機能で描画はさせず、入力コンテキストの描画は自己責任で行う」、これに尽きる。
つまりフォント周り一式とかをちゃんと面倒見る体勢まで整えてからじゃないと、
いわゆる製品品質のアプリとかは作れない。

つってもそんなに大したことじゃない。
先にも書いたとおり、DirectXSDKの中にずばりのサンプルがある。
UI関連のコードで、サンプルブラウザからすぐ見つけられる。
そう悪くないサンプルなので、しばらくコードと戯れてみるのがいいと思うよ。
頑張れ。

950 :942:2006/12/07(木) 07:04:46
>>947
ご回答ありがとうございます m(__)m
大変勉強になります。申し訳ありませんが、質問を重ねてもよろしいでしょうか。

(1)の問題点を挙げるとすると、どのようなものでしょうか。
a. テクスチャが多くなることで作成や管理の手間が増大する
b. SetTexture, テクスチャ切り替えのオーバヘッドが増大する
c. 最大テクスチャ数など何らかの制限がある
d. その他

製作にあたり注意点として留めておきたいと思いますので
ご教示よろしくお願いします。

>だがそんなものは画像を作る時に端1ドットは使わないようにすればいいだけだったりもする。

その通りだと思います。
しかしながら…、画像を作るときに注意を払う必要がでてきますし
フィルタリングやVGAによっては1ドットで済むのかどうか疑問であります…。
コーディングや注意の手間を考えると(1)の方法をとるのとどちらが良いのか
悩ましいところです。状況に応じて考えないといけないのですね。
ご指摘いただいて勉強になりました。ありがとうございます。 m(__)m

951 :デフォルトの名無しさん:2006/12/07(木) 09:56:47
バイリニアフィルタのアルゴリズムでは
どうサンプリングしても上下左右1ドットまでしか参照されないよ。

それ以上参照される場合はそもそも座標やUVの指定がおかしい。

(0,0)-(100,100)に描画する時に頂点座標を(0,0)-(100,100)って
指定したらいけないのはわかるっしょ。

952 :デフォルトの名無しさん:2006/12/07(木) 10:53:09
>>951
>どうサンプリングしても上下左右1ドットまでしか参照されないよ。

ミップマップテクスチャの存在を忘れてはいけないだろ

953 :942:2006/12/07(木) 12:38:06
>>951
ご指摘ありがとうございます。 m(__)m
なるほど1ドット空けておけば大丈夫なんですね。
調べてみたところ(2)の方法は、転送元を0.5テクセル内側に
するらしいですが…画像がぼけたりしないのでしょうか。

>>952
ミップマップというと距離によってテクスチャを縮小する技法ですよね。
よく分からないので…理解できるように勉強してみます。
ありがとうございます。

954 :デフォルトの名無しさん:2006/12/07(木) 21:56:33
>>952
あれ?2D描画の話じゃなかったの?
2Dならミップマップなんて使わないから別にイーヤ的な感じだった。

3Dでも最近はミップマップ使うよりミップマップは1,2レベル程度しか使わずに
異方性フィルタ使うほうが格段にきれいになるからそっち使ってるなぁ。

>>953
そりゃぼやけるさ。
だがバイリニアフィルタ使ってる時点でぼやけるの確定なんだから同じコト。
まぁバイリニアでも正しい位置に正しいUVを指定すればぼやけずにきちんと表示されるがね。


955 :デフォルトの名無しさん:2006/12/08(金) 01:35:02
質問です。
初期時の解像度って何を参照して決めるのが一般的なんでしょうか?

956 :デフォルトの名無しさん:2006/12/08(金) 01:41:32
↓ESP発動。これが結論

957 :デフォルトの名無しさん:2006/12/08(金) 02:44:47
初期時ってのがなんかわからんが、アプリ起動直後なら
Win32APIのMonitorFromWindow()で、ウインドウハンドルから
現在ウインドウが描画されてるモニタのハンドルが手に入る。

これを同じくWin32APIのGetMonitorInfo()に食わせると、
マルチディスプレイ含めた全体画面上のモニタの位置およびサイズが手に入る。
解像度が欲しいだけなら、ここから拾える。

で、IDirect3D9のGetAdapterCount()で得られるアダプタの数だけ
GetAdapterMonitor()を回してやれば、アダプタ番号も手に入る。

D3DDeviceは、アダプタ番号指定してリセットかけてやらないと
マルチディスプレイ環境等では極端に動作速度が落ちる場合があるので、
この指定は必須(無くても動くには動くが、滅茶苦茶遅くなるかもしれない)。
ウインドウ移動のイベントなんかの中でも、本当はアダプタ番号を逐次検索するべき。
面倒くさければマルチ対応しませんって言い切って、放置すんのも手だけど。


こんなんでいいか?

958 :デフォルトの名無しさん:2006/12/08(金) 23:59:03
DirectXじゃなくて恐縮だがGDI+使ってる人っている?
これ使って描画すると描画したもんのまわりにαがかかるんだけど
なんか回避方法知ってる人いない?
普通の画像でもそれなりにわかるんだけど、
一番わかりやすいのが幅、高さともに1ドットぐらいのビットマップを読み込んで
拡大描画すると滲む。何故か右下から広がるようにαが入ってる。

959 :デフォルトの名無しさん:2006/12/09(土) 01:36:18
そいつは流石にスレ違いなんじゃないかなあ。
すまんが有効な情報の持ち合わせはないぞ。

960 :デフォルトの名無しさん:2006/12/10(日) 01:12:43
USB接続されたPS2のコントローラのバイブレーション機能を使うにはフォースフィールドバックと同じ設定でよろしいのでしょうか?
EnumDevicesは通っています。
必要なのか分かりませんがSetPropertyでオートセンサーの無効にするのは失敗しました。
これをコメントアウトしてそのまま処理を進めると、CreateEffectの部分で失敗してしまいます。
PS2のコントローラのバイブレーション機能を使えるかどうか、
使える場合何か特殊な設定が必要なのかレスを頂けると有難いです。
SDK:2006Aug

961 :デフォルトの名無しさん:2006/12/10(日) 01:32:17
>PS2のコントローラ

既にわかっていることかもしれんが、
「PS2のコントローラをUSB接続するデバイス」およびそのドライバに
標準の規格なんて一切無い。

普通のフォースフィードバック扱いで動かなければ、最悪デバイス及びドライバ側の
問題の可能性は大いにある。

むしろ2〜3個買ってきて検証してみてくれ。

962 :960:2006/12/10(日) 01:46:13
レスありがとうございます。
手元にFF(この略し方でいいのかな)対応のコントローラがないので、先にプログラムが正常かどうか試して見ます。
ちなみにFF対応のプログラムは「DirectX実践プログラミング」の項にあるものを打ち込んでいます。

963 :960:2006/12/10(日) 20:03:38
アフターバーナーIIを接続してみました。
オートセンサーの無効は正常に通りましたが、やはりCreateEffectで失敗してしまいます。

LPDIRECTINPUTEFFECT g_pDIEffect = NULL;
〜エフェクトの設定など〜
hr = g_pDIDevice->CreateEffect( GUID_ConstantForce, &eff, &g_pDIEffect, NULL);

問題がなければg_pDIEffectに何らかのアドレスが入るはずなのですがNULLのまま。
effの値は以下の通りです。
http://a-draw.com/uploader/src/up8240.txt
何か間違っているのでしょうか。

964 :デフォルトの名無しさん:2006/12/10(日) 20:47:56
振動機能はコントローラー毎のドライバをインスコしないと使えるようにならんとおもったが

965 :デフォルトの名無しさん:2006/12/10(日) 22:25:10
FF11は別なのかな、PS2のコントローラならソニー製HORI製関わらず接続さえすれば振動するけど。


966 :デフォルトの名無しさん:2006/12/10(日) 22:56:41
いや、普通は振動する。
チャンネルが違ったりすることはあるかもしれんが。

967 :960:2006/12/10(日) 23:00:02
振動云々以前にエフェクトの生成で詰んでる俺って・・orz

968 :デフォルトの名無しさん:2006/12/11(月) 02:31:12
ttp://工学社.jp/support/dx8prog/index.html#Label004
960が使っているのはこれかな?
確かにエフェクトの生成(CreateEffect)で失敗しますね。
途中でインストール済みのデバイス、フォースフィードバック対応と認識されていますのでコントローラ自体は問題なさそうです。

969 :デフォルトの名無しさん:2006/12/11(月) 18:50:54
ボッチーさんのライブラリで勉強しています。

970 :960:2006/12/11(月) 21:35:26
>>969
すみません、その方のサイト?やDL出来る場所はどこにあるのでしょうか。
調べても出てきませんでしたので教えていただけるとありがたいですorz

971 :デフォルトの名無しさん:2006/12/11(月) 22:09:02
Easy Link Library
http://www.twin-tail.jp/contents/el/index.htm


972 :デフォルトの名無しさん:2006/12/11(月) 22:56:03
なぜだ。なぜ
作者も放棄したモノを使い続ける

973 :960:2006/12/11(月) 23:14:02
>>971
ありがとうございます。
ただ見た限りではジョイスティック(ゲームコントローラ)の設定のみでFF関連のプログラムが見当たりません。

CreateEffectで失敗するということはなんらかのドライバが必要?
ドライバ無しでも対応のゲームでは動くので必須ではなさそうですよね。
もしかしてPS2のコントローラのバイブレーション機能を使うには別の手段があるのでしょうか。
DX8の時代のものですし、DX9では9で新しいものがあってもおかしくはないのですが。


974 :デフォルトの名無しさん:2006/12/11(月) 23:53:08
>CreateEffectで失敗する
エラーみろ
エラーの見方がわからないならそう言え

>もしかしてPS2のコントローラのバイブレーション機能を使うには別の手段があるのでしょうか。
他のFF対応機器と同じと考えてよい
ただし、変換アダプタがフォースフィードバックに対応していること
当然ながらPS2のコントローラーも振動に対応していることを確認しろ

>DX8の時代のものですし、DX9では9で新しいものがあっても
DirectInputは変更なし


対応しているかどうかを心配しているのなら、まずはじめにやって欲しいのは
なんらかの方法で実際に揺らしてみることだ
どんな変換アダプタを使っているのか知らないが
テストモードで揺らすことが出来るものもある


どんな変換アダプタを使っているのか?
SDKのバージョンは?
再現する最低限のコード
せめてこれぐらい書いてくれ

975 :960:2006/12/12(火) 00:18:10
>>974
上にも書いていますがSDKは2006Aug、ソースは968さんが書いてくださっているURL先にあるのと同じです。
変換コネクタはLOAS JOX-U301、コントローラはソニーのデュアルショック2。
USBからの電力供給でバイブレーション機能は問題なく働いています(振動対応ゲームにて確認)。
EnumDevicesのDIEDFL_FORCEFEEDBACKフラグを通っているのでFF対応と認識されているのでしょうが、
CreateEffectで失敗(E_INVALIDARG)するためこのプログラムで振動させるまでには至っておりません。

976 :デフォルトの名無しさん:2006/12/12(火) 01:28:18
>>975
DXのサンプルは動くかな?
そのプログラムは同じところで動かなかったけどDXのサンプルだと動いたよ。

977 :デフォルトの名無しさん:2006/12/12(火) 05:28:49
つ【デバッグレベル最大】

まあ頑張れ。

978 :デフォルトの名無しさん:2006/12/12(火) 15:04:45
実践なんたらの本のエフェクトのところでDIPERIODICが使われているけどDirectXのサンプルに組み込もうとすると生成できないな。
前処理必要だったっけ?

979 :960:2006/12/13(水) 01:39:21
レスありがとうございます。
DirectXのFFサンプルが動きましたのでそちらのプログラムをベースにしてみました。
原因を調べようとソースを比べましたが978さんの内容の部分で引っかかります。
別に設定する必要性もないのでDirectXのサンプルのコードを使って回避しています。

980 :デフォルトの名無しさん:2006/12/17(日) 20:07:12
はじめましてこんにちは。

LunaというDirectXライブラリを使用してゲームを制作しているのですが
テクスチャを読み込んだスプライトを拡大しまくると変になります。

パソコンAでは
ある一定のサイズに達するとスプライトが消える

パソコンBでは
ある一定のサイズに達するとスプライトが右下に動く(座標に変化は無い)

パソコンCでは
永久に拡大可能。問題無し

という状況です。
原因がまったくわからず、どうすればいいのかもわからないので
質問させていただきました。
DirectXをよく知っている方で、この現象を理解できる方がいれば
ぜひ助言の方お願いします。

981 :デフォルトの名無しさん:2006/12/17(日) 21:34:53
Lunaのサイトで聞いてください。

982 :デフォルトの名無しさん:2006/12/17(日) 22:24:13
>>980
LunaのサイトにいくにしてもそのPCのグラボがどんな性能かわからんと話にならんな。

983 :デフォルトの名無しさん:2006/12/17(日) 23:35:01
>>981
>>982
ありがとうございました。
Luna製作者に聞いてみますね。
とりあえず聞く前にDirectXの不具合ではなかったようなので
よかったです。
ありがとうございましたー。

984 :デフォルトの名無しさん:2006/12/18(月) 21:30:09
directx8と9でvisualcでゲームを作ろうと思い立った時に
ひな型のサンプルプログラムはどういうのにしましたか?
LUNAとか内部の処理が分からないのは除外します。

985 :デフォルトの名無しさん:2006/12/18(月) 21:33:11
Lunaはオープンソースなんだから中身全部分かるだろw

986 :デフォルトの名無しさん:2006/12/18(月) 21:36:49
雛形なんか使わない。いつも空のプロジェクト。

987 :デフォルトの名無しさん:2006/12/19(火) 02:52:33
DXUTばらしたら。
ゼロから書いても、結局ああなる。
デバイスの復元処理とか。

988 :デフォルトの名無しさん:2006/12/19(火) 02:57:35
初心者がDXUT読んだら発狂しそうだなオイ

989 :デフォルトの名無しさん:2006/12/19(火) 04:46:24
そうはいってもSimpleSampleとかもDXUTだしなあ。
工学社の本とかのサンプルだと、載ってる情報量もイマイチだし。

990 :デフォルトの名無しさん:2006/12/19(火) 09:26:10
DXライブラリでいんじゃね?

991 :デフォルトの名無しさん:2006/12/19(火) 21:55:13
3Dモデルぐらいは使えてくれないと・・・

992 :デフォルトの名無しさん:2006/12/21(木) 04:29:04
メッシュのドラッグ&ドロップをやりたいのですが、いまいちやり方がわかりません。
マウスのレイとの接触判定はできているのですが、サンプルのEffectEditのようにやろうとすると
X軸とY軸方向には動かせるものの、カメラを回転させるとマウスの移動方向とメッシュの移動方向が
あわなくなるようでどうにも。
2Dと同じような感覚で3DにおいてD&Dを行うにはどのようにすればよいのでしょうか?

993 :デフォルトの名無しさん:2006/12/21(木) 19:43:34
移動量(x, y, 0)にカメラの回転を掛けてから加算


994 :992:2006/12/22(金) 04:12:27
>>993
ありがとうございます。
お陰様でZ軸方向にも移動するようになりましたが、カメラの向きによっては明後日の方向に移動したり、
距離の変化によってマウスに追従してるとは言い難い移動量だったりでまだまだ練る余地がありそうです。

メタセコイアでの移動の具合がそのものズバリだったのでこれを参考に模索していきたいところです。

995 :デフォルトの名無しさん:2006/12/22(金) 23:07:18
初めまして。
質問なのですがDirectX9実践プログラミングと言う本の
DirectX Graphicsのサンプルを実行すると
何故かウィンドウがすぐに消えてしまい何も出来ません。
どこを直すとちゃんとファイルが読み込めるのでしょうか。

996 :デフォルトの名無しさん:2006/12/23(土) 03:04:59
http://www.kohgakusha.co.jp/support/dx9prog/index.html
DirectX9実践プログラミング サポート情報 最終更新2003年6月11日
問い合わせ iomook@kohgakusha.co.jp


997 :995:2006/12/23(土) 11:35:37
>>996
ありがとうございました。
問い合わせしてみます。

998 :デフォルトの名無しさん:2006/12/23(土) 18:46:40
X

999 :デフォルトの名無しさん:2006/12/23(土) 19:16:38
B

1000 :デフォルトの名無しさん:2006/12/23(土) 19:32:12
次スレないよ

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

282 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)