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


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

【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);
↑利いてないっぽい

みたいな感じです。





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