[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 04/11 09:12 / Filesize : 247 KB / Number-of Response : 959
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 09:55:56 ]
※回答する人も、質問する人も必ず読んでください

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

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

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

【C++】 DirectX初心者質問スレ Part16 【C】
pc11.2ch.net/test/read.cgi/tech/1202634347/

34 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 00:41:02 ]
www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3
テキトーにリンク貼って逃げればいいんじゃね?

35 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 00:59:11 ]
プログラマが「これくらいやってくれるだろ…JK…」と思うことは、大抵のライトユーザーにとって垣根が高い

36 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 01:02:51 ]
同人ゲーなんかは無断で添付してるのも多いけどねぇ

>>34
インストーラのリンク張るくらいなら、最小構成のセットアップファイルをつけて
起動を促す方が良いと思う。
個人的統計によれば素人にゃこっちの方が行動を起こしてくれる傾向がある、気がする。

37 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 02:52:45 ]

//素人もやる気ないし
//マイクロソフトもやる気ないし
//苦労するのはいつも作る側
//それでもC++で作るならまだいいほう
//XNAとかラインタイムを3も入れなきゃならない
//もうあほかと
//ランタイム地獄に愛想つかしてVC++勉強したが
//今となってはよかったと思う

38 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 11:08:43 ]
>>36何それ?どうやんの

39 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 13:03:56 ]
>>38
単純にdllをプライベート配置するのはライセンス違反だが、
アプリに添付するランタイム用インストーラの容量はある程度減らせるってだけの話。

msdn2.microsoft.com/en-us/library/bb174600.aspx

40 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 13:51:50 ]
うわー、同人ゲームのくせにランタイムインストールとか何様だよ
めんどくせーなー
俺様のPCでもちゃんと動くようにするのがプログラマ奴隷の役目だろが
わざわざNYでDLしてやったってのに糞が

41 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 14:24:39 ]
>>39
インストーラは配布していいのね。
>>40
これだからなかなか金は取れないんだよな・・・俺無責任だしw

42 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 17:04:26 ]
よし、D3DX使うのやめよう!



43 名前:デフォルトの名無しさん [2008/04/12(土) 19:51:21 ]
HLSLでのキューブマップの扱いについて質問です、
tpot.jpn.ph/t-pot/program/66_cube_normal/index.html
ここにある内容をHLSLでやろうとしたのですが、
期待する値が取れてません。

解説と同じようにD3DXCreateCubeTextureでテクスチャを作って、
同じように中身を埋めました。
で、pEffect->SetTextureで渡してます。
HLSL側では、
textureCUBE CubemapNormal;
samplerCUBE CubemapSampler_forNormal = sampler_state {
texture = <CubemapNormal>;
MinFilter = LINEAR;
MagFilter = LINEAR;
MipFilter = NONE;
AddressU = Clamp;
AddressV = Clamp;
};
でピクセルシェーダの部分で
N = texCUBE(CubemapSampler_forNormal, In.N).xyz * 2.0f - float3(1.0f, 1.0f, 1.0f);
とやっています。
何かおかしい部分ありますでしょうか?

44 名前:43 mailto:sage [2008/04/12(土) 20:56:51 ]
すみません、解決しました。
D3DPOOL_MANAGEDで作ったらダメなんですねorz
RENDERTARGETにしてるからMANAGEDだと失敗するのかな。

45 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 22:10:55 ]
RENDERTARGETは、DEFAULTじゃないとダメだよ。

46 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 00:01:59 ]
D3DXVec2Rotateってないですよね?
D3DXVec2Transformを使えばいいのですが、MATRIXを生成するのがバカらしい…

47 名前:デフォルトの名無しさん [2008/04/13(日) 13:18:15 ]
2Dの画像の描画をしたいんだけど、どうしたらいい?

48 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 13:22:00 ]
>>47
つ MSDN
つ google

49 名前:デフォルトの名無しさん [2008/04/13(日) 13:47:59 ]
>>48
探すの面倒だから代わりに探してきてよ

50 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 14:47:21 ]
>>49
お前、実際もの作るとかなったらそんな程度面倒がってたらなんも作れねーぞ
俺はDrawPrimitiveを薦めるけどね

51 名前:デフォルトの名無しさん [2008/04/13(日) 16:05:07 ]
>>50
やさしいね。大好きだよ。

52 名前:デフォルトの名無しさん [2008/04/13(日) 20:00:01 ]
HLSLのtex1Dってやつを使ってみようと思うのですが、
これはC++側では普通にCreateTextureでいいのでしょうか?
2次元のテクスチャでいいとすれば、どのように参照されるのかとか、
よろしければ教えてください。



53 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:23:08 ]
>>46
自前でやればいいと思うけど。
XYの2次元ベクトルの回転なら(XcosΘ+YsinΘ, -XsinΘ+YcosΘ)

54 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:39:14 ]
>>53
さすがに2次元ベクトルの回転は高校で習ったからわかりますが、お気遣いどうもw
いやー、ライブラリにあるなら独自作らないほうがいいと思ったもんで。ありがとう

55 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 20:46:27 ]
>>54
荒らし?w
純粋にライブラリにあるかどうかが知りたかっただけなら
コンパイル通るか試すだけで済むだろ。Vec3Vec4の関数名は統一されてんだし。
それかヘッダ見るかすればいいのに。

56 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 22:14:54 ]
Presentの引数を全てNULLにした際に描画される領域を取得することは出来ませんでしょうか。
DXが描画しているウィンドウ内に可動ツールバーがあり、
クライアント座標を取得する関数ではそのツールバーの領域も含めてしまうため求めたい値が取れません。
C++で取得できればこしたことは無いのですが、せめてDXで取得出来る形にさえなっていれば・・・

57 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 00:04:12 ]
>>40
ネタのつもりでやってるんだろうが実際はこういう奴ばっかりなんだよ
で、ランタイム配布めんどくさいよねっていうと
そんなの気にならないくらい楽しいゲーム作ればいいとか
本題からズレたことを言っていい気になるやつが出てくる
DirectX8以前縛りで作るとそこら辺気にしなくてよくてラク

58 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 00:06:25 ]
アホをイラつかせられるだけでも、DX9とかにする価値があるわけだ。

59 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 01:28:51 ]
XNAなら

DirectX
.NETFW
XNAFW

の3つのラインタイムでイライラMAXだな

60 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 02:37:33 ]
アレはユーザもイライラ
開発者もイライラ

61 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 13:33:16 ]
>>55
あるものを発見するのは楽だが、無いものを無いと確信するのは難しい
また、ライブラリにあるものを自前で再実装するのは大抵の場合悪

62 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 14:19:04 ]
そんなメタ正論持ち出さんでも
ドキュメントのD3DX項目眺めるだけじゃんこの場合・・・



63 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 14:47:03 ]
46がどれくらい調べたのかはわからんが、言葉どおり
D3DXVec2Rotate
という関数があるのかを聞いたわけじゃないだろ?
D3DXVec2Rotate 相当の関数があるかってことだろうから、俺でも「多分無い」としか言えん
D3DXVec2Transformは知ってたわけだから、それなりにサイトを見たんじゃなかろうか。


…MSDNもVer古い関数載せてたりするからあんまり信用できないんだよなw
特にI3DXAnimationControllerあたり

64 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 14:51:55 ]
ID3DXEffect で

シェーダー側の
float2 形式で渡したいんですけどできないんでしょうか?

ID3DXEffect::SetVectorは、D3DXVECTOR4 だし

65 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 14:55:39 ]
SetFloatを2回やるのじゃダメなんか?

66 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 15:09:36 ]
>>64
俺もそれ思ったけど多分GPUの仕組みからして
SetVector(float4)かSetFloatだけしか用意してないんだとオモタので気にしてない。
詳しくは知らないけど、GPUの定数レジスタって全部float4じゃなかったっけ?
(floatもあるのかもしれないけど。)
floatを2つにして渡すか、float4のうち2つを使うかは自分の設計や効率と相談ってことで。

67 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 20:16:48 ]
IDirect3DDevice9::SetPixelShaderConstantFは
float4の配列を引数に受け取る訳で
こいつに合わせるのがベターだろう

68 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 11:31:58 ]
ID3DXAnimationControllerで質問です。
現在アニメーショントラック合成をやっているのですが…

Aのとあるポーズ(とある時間で停止)から、Bの歩きアニメ(再生)へ、1秒かけて変移。
とやる場合、以下のようにやって実現しました。

・トラック0にAをセット
・しばらく後「歩くボタン」を押した
・トラック0のデータをトラック1に移行
・(DESCを初期化した上で)トラック0にBをセット
・トラック0の時間のみSetTrackAnimationTimeで進め、行列更新のためにAdvanceTime(0.0f,NULL);を呼び出す
・1秒かけてTrackWeightを変移させていく

ですが、AからBに変移している途中の状態から、Cアニメへ移行したい。という場合に困っています。
もちろんトラックをまた1つずつずらして、0:C 1:B 2:A にし、Weightをきちんとやれば実現は可能です。
ですがこの方法だと、さらに途中でDアニメ…Eアニメと(そんな多重になるようにすんなとは思いますが)移行させようとした場合、トラックがいくつあっても足りません。

「現在のポーズ」をアニメーションセットとして認識させる方法はないでしょうか?

69 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 18:57:19 ]
MSが提供しているのは便利機能であってそれ以上を求めたいなら自前でやれと。


70 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 19:22:06 ]
DX関数群は使用しないでください
頭が腐ります

71 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 20:19:51 ]
D3DXのアニメーションコントローラとか使ってないからわからんけど
Weightをきちんと、って頂点に含まれるウエイト値をいじるってこと?
そんなことしたらデメリット多いし俺も自前でやった方がいいとオモ

72 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 20:35:21 ]
アニメーションコントローラは、アニメAとアニメBに重みをつけられるんだよ
アニメAで設定されてるを8割採用し、アニメBで設定されてる角度を2割採用。みたいな感じ。
それをウエイトって言うのよ



73 名前:71 mailto:sage [2008/04/15(火) 20:47:50 ]
なるほど、D3DXでもモーションブレンドとかできるのかぁ。
「現在のポーズ」の状態を擬似的に以降のフレームに入れて騙したりは出来ないのかな。
あるいはアニメーション時間を騙すとか。役に立てずスマンコ

74 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 20:51:25 ]
70はネタだよね?
なかったら脂肪決定な漏れ

75 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 21:36:59 ]
わかりにくかったらごめんなさい。

画面に四角形を描画した後、その四角形の一つの頂点の座標だけを動かして
四角形を歪んだような形にすることってできますか?

76 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 21:49:24 ]
>>75
意味がわからんが、3Dでポリゴン描画のことを言っているならばできる
BitBltなどの2D描画のことをいっているならできない(自作すべし)

77 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 21:52:28 ]
描画してからとなると描画したバッファ自体をテクスチャとして使用すれば変形も可能。
>>76
TL頂点でも出来る。

78 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 23:12:33 ]
DirectInput8でジョイパットの状態を

pJoyDevice->GetDeviceState(sizeof(DIJOYSTATE2), &js);

で取得すると

js.lX と js.lY が十字キー押してないのに-1になるんだが
うちのジョイパットがおかしいんだろうか?
押してるときは 6とか-6とかになるのに
押してないときは 0でなく-1って一体

79 名前:78 mailto:sage [2008/04/16(水) 00:13:20 ]
事故解決
無効ゾーンを設定して小さすぎる値を無視することでようやく解決

80 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 00:19:04 ]
それ十字キーとはいってもアナログなんじゃない?
アナログだと、何も入力してないつもりでも大抵入ってる
だからその解決法が正しいね

81 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 00:28:56 ]
>>80
サイバーガジェットのPSのコントローラーつなげられる
USB接続のジョイパット変換機なんだがアナコンのほうは認識しない古いやつ
で、十時キーがいつもマイナス方向に微妙に入ってるってことになってるみたい
アナログじゃないのにアナログ扱いされることもあるのね
勉強になりました


82 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 01:34:51 ]
>>81
俺もDirectInputでは悩んだんだけど、アナログでなくとも
XYZの軸入力は指定した範囲で送られてくる(指定した最大値・最小値で)から
同じように扱うしかなかった。んで、-1000〜1000の範囲にして
-100〜100は無視するとかしたと思う。
友人のPS2コントローラの変換機もうまく動かないやつがあって、
ボタンの状態が、普段がONで押すとOFFになるんだったかなぁ。
コントローラの送ってくる情報は基本的に信頼しない方がいいかもしれない。
色んなメーカーが気軽に作ってるようだから。



83 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 06:37:08 ]
>>76,77
ありがとうございます。
いろいろと試してみます。


84 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 15:00:51 ]
背景を透明にすることってできますか?


85 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 15:12:11 ]
何の背景よ?
ウィンドウを透過させてデスクトップの壁紙が見えるようにしたい?

86 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 15:15:41 ]
>>85
説明不足ですいません。
そのとおりです。描画してあるものはそのままに
ウィンドウを透過させて壁紙が見えるようにしたいんです。


87 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 17:22:27 ]
レイヤードウィンドウでぐぐるといい。DirectXとは無関係だよ。

88 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 17:31:04 ]
デスクトップアクセサリーみたいなのだとリージョンとかもあり
ま、結局はDirectXと無関係

89 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 22:02:09 ]
DrawTextメソッドのRectangleが値渡しなのでCalcRectが機能しません。

って英語でどう書くの?

90 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 22:10:59 ]
Fuckin' DrawText Method Rectangle!!
Goddamn CalcRect Don't WORK!!
Sun of a bitch!!

91 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 22:16:32 ]
>>89
DT_CALCRECT becomes Font.MeasureString in managed code.

92 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 23:58:30 ]
解決しますた。



93 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 01:28:34 ]
XAudio 2 にCPUのSSEサポートが必要ってどこかに書かれてますか?
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=572be8a6-263a-4424-a7fe-69cff1a5b180&displaylang=en#Requirements
にはないようなんですが、こんな書き込みを見ました
ttp://pc11.2ch.net/test/read.cgi/win/1206653607/981


94 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 02:03:03 ]
msdn2.microsoft.com/en-us/library/cc308006(VS.85).aspx

ドキュメントには明記されてるね。

95 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 02:17:53 ]
>>94
ありがとうございます、やはり必要なんですね

96 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 07:54:08 ]
問題は見つかりませんでした。
DirectDraw テスト結果 : テストはすべて成功しました。
Direct3D 7 テスト結果 : エラー - ステップ 8 (3D デバイスを作成中): HRESULT = 0x80004005 (一般エラー)
Direct3D 8 テスト結果 : エラー - ステップ 8 (3D デバイスを作成中): HRESULT = 0x8876086c (エラー コード)
Direct3D 9 テスト結果 : エラー - ステップ 8 (3D デバイスを作成中): HRESULT = 0x8876086c (エラー コード)

すみませんこのエラーコードってなんですか?

97 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 11:43:37 ]
なんのツール上で吐かれたエラーなのかすら説明なく?

98 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 11:44:46 ]
ヘッダから漁ってみそ

99 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 16:14:21 ]
なんか、シェーダー側のグローバル変数に
データが届きません><。

.cpp側
m_hMapWidth = m_pEffect->GetParameterByName( 0 , "MAP_WIDTH" );
m_hMapHeight= m_pEffect->GetParameterByName( 0 , "MAP_HEIGHT" );

hr = m_pEffect->SetFloat( m_hMapWidth , 490.0f );
hr = m_pEffect->SetFloat( m_hMapHeight, 472.0f );

.fx側
float MAP_WIDTH;
float MAP_HEIGHT;

と書いても、MAP_WIDTHには、数値が入ってないみたいです。
シェーダー側で、MAP_WIDTH=490.0fすれば、ちゃんと動きます。

SetFloatの前にやっている
SetFloatArrayは、ちゃんと数値届いてるのに><。

なんか、SetFloatの制限とかあるんですか?
ハンドル利用してないバージョンでも試しました。
やっぱだめです。



100 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 16:20:27 ]
intに変えて、SetIntにしてみたらいけました。
Floatって400とか行くと駄目なん?

101 名前:100 mailto:sage [2008/04/18(金) 16:21:53 ]
嘘です。やっぱいけてませんでした><。

102 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 21:02:51 ]
400程度でケタ落ちとかは無いよ。
GetParameterByNameで得たハンドルがNULLでないか、
hrがE_FAILになってないか、そのへん見てみたら?
あとはエフェクト側の定数が多すぎて定数レジスタ食い尽くしてないか。
(頂点シェーダ3_xまでは定数レジスタはfloat4×256個しかない)



103 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 21:50:06 ]
補足。浮動小数点値ってのは、
floatなら値を24bit、桁を8bitで保存してる(んだったと思うけど自信ない・・・w)。
だから10000000000000000.5とかの結果になった場合の0.5、あるいは
20.0000000000000000128とかの0..0000000000000000128の部分が消える。
だから値そのものの大小は関係ない。基本的に幅が足りないときに細かい部分が消えるだけ。
(桁が8bit?で足りないときも狂うけどね。)間違ってたら補足ヨロ。

104 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 22:13:08 ]
値は23bitで指数が8bitで符号が1bit

105 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 23:02:04 ]
Winsockが面倒だからDirectPlay使ってたのに、
今後は使わないでWinsock使ってくれってどういうことだ、クソックソッ

106 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 23:15:12 ]
>>96
oshiete1.goo.ne.jp/qa3697040.html
ちょうど同じ質問してる人がいたぜ
ようはグラボがウンコなんだ

107 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 00:20:22 ]
>>105
いつの話だよ

108 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 01:21:49 ]
>>104
暗黙の1ビットがあるから結局24-bitでいいんじゃね?

109 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 09:58:30 ]
それくらいわかっとるわいw
このスレじゃ書いといた方がよかったか?

110 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 14:18:04 ]
103です。いや補足してもらえて助かりましたw
しかし99は直ったんだろーか。

111 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 00:39:12 ]
>>99はハンドルがNULLで取得出来ていないんだろ
よくある話だ

112 名前:デフォルトの名無しさん [2008/04/21(月) 05:19:46 ]
質問です。
ビルボードを使って描画しようとしているのですが、
テクスチャを指定するためにLockメソッドでロックし、
頂点座標を指定しようとしたところ、Lockメソッドの実行時に
「 0x00413a9d でハンドルされていない例外が発生しました :
 0xC0000005: 場所 0x00000000 を読み込み中にアクセス違反が発生しました。 。」
と表示されてしまいます。何が問題になっているのかさっぱり分からないのですが
分かる方はいらっしゃいますでしょうか。




113 名前:デフォルトの名無しさん [2008/04/21(月) 05:20:10 ]
書いてから日本語がおかしいことに気づきました・・・すみません。

114 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 05:23:29 ]
”場所” 0x00000000を読み込み、っつーのは
NULL(0)になっているポインタからその指す内容を得ようとしたっつーことだ。
そのテクスチャのポインタか何かがNULLになってるんじゃね?


115 名前:デフォルトの名無しさん [2008/04/21(月) 05:35:44 ]
>>114
成る程ありがとうございます。
テクスチャの位置調整用の関数から、テクスチャ位置情報を受け取っているので、
恐らくその位置調整用関数が上手くいってないのだと思います。
こんな時間なので即レスが来るとは思いませんでした。
ありがとうございます。

116 名前:デフォルトの名無しさん [2008/04/21(月) 06:57:37 ]
質問したくせにレスが来るとは、だと?ふざけてんのかてめえ

117 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 07:25:10 ]
>>49とか>>51とか>>54とか>>99よりはマシだよw
多分悪意は無いさ。

118 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 07:58:49 ]
普通だろw
こんな時間にもかかわらず答えてくれた好意にとても感謝している、って意味にしかみえねーよw

119 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 15:37:14 ]
>>116の人気に嫉妬(^Q^)

120 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 16:38:56 ]
>>117
54は俺なんだが、そんなにひどいレスだったか54は…?
「D3DXVec2Rotateに相当するD3DXの関数はありますか?」って聞けば誤解なかったんだろうという反省はしてるけど

121 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 18:46:19 ]
>>120
>お気遣いどうもw
「w」って笑顔じゃなくて笑い、2chでは嘲笑うという意味のほうが強いかな。
>>117-118が使い所として良い。
極度な訳だけど「お気遣いどうもw 」→「そんなの分かってるわボケwww心配しなくても思ってるほどバカじゃねぇよwwww」
答えてくれた人に対して何言ってるのとか思うけどね。
皆が使ってるから意味も知らずに使っている(悪気がない)ということより、意図的に使っているとしか考えられない。
あと文法的にもマナーの面からもお礼の言葉は最初に書くのが基本なので、印象が余計に悪く('A`)

でもマナーが成ってないのにルールは守り、ラフで使いやすいのが2chのいいところだよな。

122 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 20:59:47 ]
wの意味なんてどっかで定義されたわけじゃないし、使う人見る人で違うだろww
俺には54はそこまで嘲笑には見えんぞ



123 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 21:22:53 ]
「俺には」と言うのが不味いんだよな
携帯電話で使い始めたような若い人にとって何とも無いことでも
比較的年齢が高めなこの板ではあまりいい印象がない

少なくともこの板では嘲笑うレスに対して使われるのがほとんどで
質問者もそうだけど回答者も滅多に使わない
文章が乱暴だけど他の板に比べれば紳士的な感じかな

124 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 21:35:33 ]
そうかすまん。板の空気を読もうという話ね


まぁ、俺の見る限りこの板には本当の紳士は1割にも満たないわけだが・・・

125 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 21:48:14 ]
53=55=117です。
議論するつもりではなかったんだけど、自分的にはちょっと
カチンときたので例に挙げましたw(ちなみに99は解決したかどうか書いてくれなかったから。
後から、54も99も例に挙げたのはマズかったかなと思いましたが。)
相手の機嫌を一切損ねずに質問・回答するのは不可能に近いとは
自分も思うところだけど、
自分は2chに限らずとも、他人の親切に対して笑いながら「お気遣いどうもw」
みたいな反応が出来る人間はどうかと思うので。
(付け加えるなら、D3DXVec2Rotate()と同機能の関数があるかどうかを、
D3DXVec2Rotateという名前の関数が無いとわかっているのに
ここで訊こうとするのはレアケースどころかナンセンスだとすら思う。個人的には。
>まぁ、俺の見る限りこの板には本当の紳士は1割にも満たないわけだが・・・
別にあまり攻撃したくはないのだが、紳士にしか回答をもらいたくないのであれば
ここで訊くべきかどうかくらいの判断は自分で下すべきだ。

126 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 21:51:20 ]
別に俺は紳士からじゃ無くてもオーケーよ〜
まぁ、どこにでもいろんな人がいるということだね。どっちの考え方もよく分かるよ
受け入れられるかどうかはその人しだいだけどな

127 名前:125 mailto:sage [2008/04/21(月) 21:58:16 ]
自分自身、懐疑的に見すぎていたきらいがあるので悪かったなと思ってまつ。
お騒がせしました。

128 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 22:44:22 ]
おまえらどんだけピュアなんだよ
2chじゃなくてちゃんとした所で聞いたほうがいいぞ

129 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 22:50:40 ]
態度が悪ければ同等の態度で返されるってだけだろ?
自業自得

130 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 23:35:33 ]
>>112
ちょっと周辺のコード晒してみぃ

っつかなんでこうやってできない奴に限って
動いてるソースのコピーからはじめないのか・・・

131 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 23:36:54 ]
あ、更新忘れてたw
>>130は解決してたら無視してくれ

132 名前:112 [2008/04/22(火) 01:17:52 ]
未だに悪戦苦闘中でしたので、コード晒してみます。

HRESULT SetFVFTexturePosition(
LPDIRECT3DVERTEXBUFFER9 aFVFBuffer , DWORD aType , DWORD aChar )
{

theCUSTOMVERTEX* tmpVertex; //頂点バッファをロック
theTexPositionRECT aTexRECT; //テクスチャの座標を受け取ります

SetCellTextureRECT(aChar , &aTexRECT);

//頂点バッファをロック
if(FAILED(aFVFBuffer->Lock( 0 , 0 , (void**)&tmpVertex , 0 ))){return(E_FAIL);}

//頂点は4つ、頂点座標、頂点職、テクスチャ座標を設定する
//D3DPT_TRIANGLESTRIPで描画するので頂点の番号と座標の対応に注意すること
tmpVertex[0].tu = aTexRECT.u0 ; tmpVertex[0].tv = aTexRECT.v0 ;
tmpVertex[1].tu = aTexRECT.u1 ; tmpVertex[0].tv = aTexRECT.v0 ;
tmpVertex[2].tu = aTexRECT.u0 ; tmpVertex[0].tv = aTexRECT.v1 ;
tmpVertex[3].tu = aTexRECT.u1 ; tmpVertex[0].tv = aTexRECT.v1 ;

//書き込みが完了。頂点バッファのロック解除
aFVFBuffer->Unlock();

return(S_OK);
}




133 名前:デフォルトの名無しさん [2008/04/22(火) 01:18:48 ]
//セル用のテクスチャー
VOID SetCellTextureRECT(DWORD aChar , theTexPositionRECT *aRECT ){

const float kCellSize = 1.0 / 8.0f ;

//0xffの場合はビルボード全体にテクスチャを描画
if(aChar == 0xff){aRECT->u0 = 0.0f; aRECT->u1 = 1.0f; aRECT->v0 = 0.0f; aRECT->v1 = 1.0;}
else{
//あふれを防止
aChar &= 0x07;

aRECT->u0 = 0.0f ; aRECT->u1 = 1.0f;
aRECT->v0 = kCellSize * aChar ;
aRECT->v1 = aRECT->v0 + kCellSize ;
if(aRECT->v1 > 1.0f){aRECT->v1 = 1.0f;}
}
}

134 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 05:52:48 ]
ほんとにLockメソッドで落ちてるのか疑問だけど
とりあえずtmpVertex[0].tvが全部0指定してるのは直した?
(uは0〜3なのにvは0だけになってる

135 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 08:51:09 ]
Lock()実行時に落ちてるならaFVFBufferがNULLであるとしか考えられないな

136 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 15:20:52 ]
HLSLでのデバッグ環境ってありますか?

137 名前:99 mailto:sage [2008/04/22(火) 19:03:25 ]
プロバ全体がアク禁くらって書き込めませんでした。

結局、パラメータが渡ってません。
複数シェーダを書いて、まとめて(20個ぐらい)ロードしているんですが
SetFloatArray使ってないシェーダは、
ちゃんと幅、高さが渡ってるのに
SetFloatArray使ってるのは失敗するです><

>>102
GetParameterByNameは、ちゃんと実態がいます。
ハンドルなしで、直接指定もやってみました。
hrも成功しているはず(S_OK比較しています)です。



138 名前:99 mailto:sage [2008/04/22(火) 21:19:38 ]
シェーダー側に
if( param == 490 ){ // 渡した数値比較
///
}
と書いたら、///の部分がちゃんと動きました。
数値は、渡っているみたいです。
しかし、直にparam=490と書いた時と同じパラメータ渡した時との動きが違うのです。
そういうのって何かありますか?
もうわけわからんちん

139 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:20:46 ]
定数の数はいくつある?
もしかするとそのWIDTHとHEIGHTをfloat4(のxとy)にしたら直るかも?

140 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:21:16 ]
単純にシェーダの部分がバグってるんだろう
『たまたま』動いただけじゃね?

141 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:23:38 ]
ん、渡せてないわけではないのか。
定数多すぎてどれか溢れてるくらいしか思いつかん

142 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:30:43 ]
てか
GetParameterByNameはあくまで
シェーダーの定数レジスタから値をひろってくるだけだぞ?
グローバル変数に値をいれたいなら
hr = m_pEffect->SetFloat( "MAP_WIDTH", 490.0f );
hr = m_pEffect->SetFloat( "MAP_HEIGHT", 472.0f );
だろ




143 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:33:59 ]
こんな質問で即レスしてくれたお。
このスレの人はいい人がおおいですね><。
ありがとうございます。

ピクセルシェーダーはこんなかんじです
// MAP_WIDTH = 490.0f;
// MAP_HEIGHT = 472.0f;

Color = ( tex2D( SrcSamp, In.Tex )
+ tex2D( SrcSamp, In.Tex + float2( -1.0f / MAP_WIDTH, 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( +1.0f / MAP_WIDTH, 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( -3.0f / MAP_WIDTH, 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( +3.0f / MAP_WIDTH, 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( -5.0f / MAP_WIDTH, 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( +5.0f / MAP_WIDTH, 0 ) )
)/7.0f;
パラメータは、ちゃんと同じ値が渡ってるのに
・シェーダーに直書き(上のコメントを外す)
・プログラムからパラメータ渡し
とでぼかし具合が違うのです。
直書きすると定数として扱われてコンパイルするのかな?
書き方これでいいんでしょうか?

144 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:36:25 ]
いや合ってるよ、GetParameterByNameが返すのは
値じゃなくてそのパラメータのハンドル。
もちろん、毎回GetParameterByNameしてハンドル取るくらいなら
直接名前で指定した方が簡単だろうけども。

145 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:42:08 ]
シェーダーの計算に括弧入れたら、挙動が変わったお><。
こんな感じ
+ tex2D( SrcSamp, In.Tex + float2( -(1.0f / MAP_WIDTH), 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( +(1.0f / MAP_WIDTH), 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( -(3.0f / MAP_WIDTH), 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( +(3.0f / MAP_WIDTH), 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( -(5.0f / MAP_WIDTH), 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( +(5.0f / MAP_WIDTH), 0 ) )
スレ汚し、ほんますんません。

146 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 01:04:40 ]
D3DXDisassembleEffectで逆アセしてみれば?


147 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 15:10:05 ]
アセンブラから逃げ出すためにHLSL使うことにしたのに
結局アセンブラやらないとだめなのか><。

148 名前:99 mailto:sage [2008/04/23(水) 15:38:59 ]
逆アセしてみました。
かなり最適化して感動しました。
読んでなかったあとレジスタの仕組みとかもわかって逆アセしてよかったです。

でも、なんか怪しいので
D3DXCreateEffectで
D3DXSHADER_SKIPOPTIMIZATION //最適化しない
を渡してやってみたところ、うまく行きました><。

ああああああああああ


149 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 15:51:20 ]
ちなみにSDKは、(April 2007)です

150 名前:99 mailto:sage [2008/04/23(水) 16:43:54 ]
(March 2008)入れてみた
最適化しても、普通にうごいたお。

最新版、グローバル変数に数値入れられなくなってていい感じだお。

>>103,104,108,109,110,111,139,140,141,142,144,146
ありがとうございました

ぼくの7日間シェーダ戦争
〜完〜

151 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 21:53:31 ]
おめ

152 名前:デフォルトの名無しさん [2008/04/23(水) 22:42:19 ]
FPSを計測してみたら、どんなにがんばっても
秒間60プレームしか描画できてないということがわかった
そんなにたくさんのモデルを描画してるわけじゃないのになと思いながら
モデルの描画量とか画面のサイズとかを減らしていったのに
それでも秒間65フレームくらいしかでない
いくらなんでもプリミティブ1つ描画するのに
秒間60回しか更新できないなんてありえないと思うんだが、
ひょっとしてDirectXってFPSを固定する機能があったりとか
それがデフォルトで有効になってるとかそういうことはありますか?



153 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 22:49:15 ]
param.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
param.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;


154 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 23:13:37 ]
>>153
ウインドウモードで作ってるので
下の行を追加するだけでOKですか?

凄まじい勢いで描画されるようになりました
ありがとうございました

155 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 00:13:24 ]
DirectMusicがコンポーネントが削除されましたが、どれを変わりに使えばいいんですかね?



156 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 13:09:54 ]
>>155さん
私の場合はDirectMusicをLIB化して使ってますね。
それに加えてwavやmidiやmp3の場合はMCIでも同じことはできます。

本当はMCIで読み込んでDirectSoundに渡すのがいいらしいのですが、
そっちは難しいぽかったのでDirectMusicを主に使っています。
例えば以下のプログラムの音楽再生はDirectX9の11月版で作っていますが
ですが音楽再生はDirectMusicを使っています。
gamdev.org/up/img/11346.zip

LIB化の仕方についてはこのページがとても分かりやすかったのでどうぞ
(私もここのやり方でやってます
www.geocities.jp/ky_webid/win32c/056.html

157 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 19:28:05 ]
>>156
ご丁寧にありがとうございます!。
とりあえずそのサイトを見てみたいとおもいます。

158 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 20:19:21 ]
ゲームでmp3を使う時って、何使って再生したほうがいいの?
ある程度売れたらパテントとかってあるんだよね?

159 名前:155 mailto:sage [2008/04/24(木) 20:58:12 ]
>>156
関係ないですが、DXライブラリ3Dってここまでできるんですね。


160 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 21:01:59 ]
プレイヤーが所有しているMP3を再生したいのであれば使用料を支払えばいい
BGMやSEとしてゲーム本体に組み込むのであればmp3なんか使わない

161 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 21:50:52 ]
orbis(だっけ?)使うの?そのコードクレ

162 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 22:20:36 ]
トランスフォーム済み頂点とDrawPrimitiveUPを使って計器を描画しています。
2枚以上の計器を重ね、テクスチャに抜き色を設定したりアルファ値を下げたりした状態にしてZ値や描画順を変えると
手前の計器の抜けている部分から奥の計器が見えるべきところが透明のままで背景が見えます。
描画するときはZ値を触らずに(全て固定値)、自分で描画順を変えないといけないのでしょうか。



163 名前:デフォルトの名無しさん [2008/04/24(木) 22:34:24 ]
directXってMP3再生できないの?

164 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 23:05:18 ]
DirectShowを使えばできる
DirectSoundでやるなら、WAVEにデコードする必要がある

165 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 23:15:23 ]
mciデコードが特許的にダメとか、DirectShowもグレーゾーンとか聞くけど
ここにいる人は何使ってるの?

166 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 23:29:04 ]
oggでいいんじゃね?

167 名前:デフォルトの名無しさん [2008/04/24(木) 23:30:07 ]
DirectSound以外をつかわないとだめなのか〜
DirectAudioPlayってのなかったっけ?

168 名前:デフォルトの名無しさん [2008/04/25(金) 00:00:18 ]
DirectAudioの事?
DirectMusicとDirectSoundが統合された時の名称だけども・・・

169 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 00:33:07 ]
日本ならogg
アメリカならwmaとかが主流なんじゃないかと

170 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 00:53:05 ]
再生に必要な物ってDirectShowFilterとか言うやつ?
なんか調べんのめんどいな・・・そもそもどうやってoggファイルつくんだよ・・・

171 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 01:14:44 ]
>>170
wavをoggに変換するソフトがどっかにあった希ガス
それかlibになかったっけ?

172 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 01:16:28 ]
>>170
www.geocities.jp/debu0510/personal/oggvorbis.html

検索一発目でヒィーーーーーーーーーット!
お前、検索すらしないで書き込んだなw



173 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 01:16:52 ]
ttp://www.vorbis.com/
ttp://www.xiph.org/
ほい、公式

174 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 01:16:54 ]
3回目はチンコ落とされるぞ

175 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 01:18:05 ]
>>173
脳みそで英→萌→和変換するのがストレス

176 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 01:18:22 ]
俺OGGとFLACを常用してるけど、これらに対応してる
歩き男って無いんだよな。ややマイナーなのが難点だ。

177 名前:112 [2008/04/25(金) 03:34:31 ]
先日はいろいろと誤解を招くような言い回しをしてしまったようで、
すみませんでした。
皆様のおかげでなんとか描画できるようになったのですが、
何故かテクスチャの色が表示されずに、真っ黒な像が描画されてしまいます。
問題はどこにあると思いますでしょうか・・・ご教授願います。
レンダリングステートは以下のようにしています。
theDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE ); // αブレンディング有効
theDevice->SetRenderState( D3DRS_ALPHATESTENABLE, TRUE ); // αテストを有効に
theDevice->SetRenderState( D3DRS_ALPHAREF, 0x00 ); // αチャネルの値が0x00なら
theDevice->SetRenderState( D3DRS_ALPHAFUNC, D3DCMP_NOTEQUAL ); // 書き込みをしない
theDevice->SetRenderState( D3DRS_ZWRITEENABLE, FALSE );// Zバッファへの書き込み停止
theDevice->SetRenderState( D3DRS_AMBIENT, 0xFFFFFFFF );// 環境光
theDevice->SetRenderState( D3DRS_SRCBLEND,D3DBLEND_SRCALPHA ); // ソース側の色の比率
theDevice->SetRenderState( D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA ); // 書き込み側の色の比率
theDevice->LightEnable( 0, FALSE ); // ライトを無効に
theDevice->SetTextureStageState( 0 , D3DTSS_ALPHAARG1, D3DTA_TEXTURE ); // αチャネルの色を使用theDevice->SetTextureStageState( 0 , D3DTSS_ALPHAOP,D3DTOP_SELECTARG1 ); // テクスチャの色を使用


178 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 05:57:32 ]
ご教授ではなくご教示だドアホ

179 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 07:51:31 ]
>>177
D3DTSS_COLOROP, D3DTSS_COLORARG1 あたりの設定が
見当たらないね 設定しておいたほうがいいと思うんだけど

180 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 09:46:35 ]
>>

181 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 09:52:20 ]
早速の回答ありがとうございます。
D3DTSS_COLOROPは乗算
D3DTSS_COLORARG1はテクスチャ色使用にしてあります。

182 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 10:05:29 ]
今のレスをかきおわってから、あれ?と思い
D3DTSS_COLOPOPの値をD3DTOP_SELECTARGに変更したら出来ました
自分でも変なミスをしたと思いました。
回答してくださった方には、お手数をおかけしてすみませんでした



183 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 14:00:30 ]
>>172-173
dクス
今手元のwav変換して聞いてみたけどイイネ!
プログラム的にはダイレクトショウフィルター入れてればDirectShowで直接再生できるって感じ?
そうだとユーザーの手間が増えちゃうからやっぱりソース組み込むのかなぁ・・・

184 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 20:53:24 ]
東方wavだしwavでいいじゃん

185 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 21:25:09 ]
東方は尊敬するが基準にはできないな。

186 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 21:32:43 ]
>>183
そう
WindowsMediaPlayerみたいなのいれれば大抵のコーデック入るから
理論的にはなんでも再生可能

187 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 21:37:15 ]
>>186
今はインストールさせるのとさせないのどっちが主流っぽいの?
たいした手間ではないんだけど、ゲームも大したもんじゃないから気が引けるぜ

188 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 22:13:23 ]
OGGなら、デコードLIBをリンクしてしまえばいいのさ。
まあそれするとGPLが適用されると思うけど。
ToHeart2が引っかかってたような。
ん?あれOGGだったっけか?


189 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 23:16:17 ]
OGGはフリーでMP3じゃなかったか?

190 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 23:23:22 ]
>>187
XPでもデフォでメディアプレイヤー入ってるから、
そんなマイナーでなければ既に入ってる
心配なら、配布時にメディアプレイヤーを含めればいい

>>188
あれは、oggじゃなてくムービーのコーデック

まあそういう事情があるから、ライセンスはきっちりしといたほうが後で泣きをみない


191 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 23:29:25 ]
>>190
あぁ、まぁぐだぐだ書いたけど、
俺もお勧めはogg
ホムペを参考にしつつliboggとlibvorbisを使って組んだほうがいいぞい

192 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 00:49:58 ]
PS2のかまいたちの夜でも採用された>ogg
普通、ライセンス考えるゲームはogg



193 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 01:14:38 ]
今dshow.hが無かったのでなんかインストールして取ってきたら、
今度はstrsafe.hが無いと。
MSDN見たら新しいバージョンのPlatform SDKに入ってるとかあるんだけど
どこから取れますか?それともインクルードパスがおかしいのかな
普通どこに入ってる物なんだ?普段そこまで踏み込まないから全然分からん\(^o^)/

194 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 01:20:55 ]
directShowは、
DirectXに行ったり
Media何とかに行ったり
PlatformSDKに行ったりと大変ね。

195 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 01:29:04 ]
そんだけ動画ってものがユーザにとって身近になったって事だね

196 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 09:37:50 ]
ライセンス考えたら同人でゲーム作って売るとき

音楽系はogg 動画画像系はなにがおすすめ?

197 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 09:43:08 ]
wma wmvは大丈夫じゃね?

198 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 09:54:05 ]
エロゲ業界は50%くらいがmpeg1
wmvは結構マイナーなのよん
ちなみにScroolDaysはwmv
ま、再生の負荷で考えるならmpeg1が安易
サイズは不利だけどね

199 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 10:03:19 ]
>>196 こういうこと言う奴に限ってクソゲーしか作れないんだから
ライセンス考えなくても大丈夫。クソゲーは相手にされないから。

200 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 11:00:32 ]
作れる、作れないとライセンスは関係がないぞ。誰にでも平等だ

201 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 12:38:33 ]
なにが、誰にでも平等だ 、だよ。エロゲで抜いてるくせに
粋がるな馬鹿

202 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 13:05:40 ]
以後ヌルーで。



203 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 13:53:48 ]
Oggのライブラリみたいの落としたんだけどlibフォルダに.libが無くて代わりに
VisualStudioでコンパイルするためのバッチファイルが入ってたんだけど、
BCCでやるにはどうすりゃいいんだ?

204 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 14:18:22 ]
バッチファイルの、RC、とか、CL とかのコンパイラ名をBCCのに書き換えればいいんじゃね?
あるいはBCC用のバッチφるが別のダディレクトリにあるとか。

205 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 14:19:00 ]
VS2008stdに乗り換える

206 名前:203 mailto:sage [2008/04/26(土) 15:32:43 ]
お前ら、俺に優しいなwエロゲの知識が生きて満足したか?w

207 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 15:46:25 ]
>>206偽乙
VS2008Express入れてみたけど適当にコンパイルしてたら
変なファイル大量に作られるし、挙句の果てにdll吐きやがった(´;ω;`)
これだから高レベルなソフトはいやなんだ・・・

これってどうすればいいの?つうかVSでコンパイルできたとしてそのlibって
BCCじゃ使えないんだっけ?

208 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 15:53:53 ]
彼女とセクロスもするが
エロゲでオナニーもする。
別もんだ。


209 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 15:56:35 ]
ここにもアンチエロゲのキチガイがいるのか。
大日本帝国の主力産業たる萌えを否定するのは売国奴だ。
中共や南朝鮮の間諜だ。殺せっ殺せっ殺せっっっ

210 名前:203 mailto:sage [2008/04/26(土) 15:57:50 ]
>>207 いい加減スレ違いに気付け。ここはお前の日記帳じゃねぇんだ。
そういう下らないことは自分で対処しろ。

211 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 16:10:00 ]
だめかな?役に立つ人もいると思ったが、
まあ、いいや。後は何とかしますノシ

212 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 18:44:49 ]
>>211
キチガイはシカトしとけ



213 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 19:14:05 ]
質問です。
SDKのスキンメッシュのサンプルをクラス化して
自分の環境に持ってきたところ、テクスチャの一部がチリチリするようになりました。
SetRenderStateはサンプルと同じに設定しています。
何か原因に見当つく人がいたら、ご教示ください。
よろしくお願いします。

ttp://f11.aaa.livedoor.jp/~neomoku/neoup/src/1209203904068.jpg


214 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 19:32:18 ]
>SDKのスキンメッシュのサンプルをクラス化
原因はここに違いない

215 名前:デフォルトの名無しさん [2008/04/26(土) 19:43:16 ]
個人で作る販売目的じゃない適当ゲーなんて
ライセンスのことなんて考えなくても大丈夫だろ?
そう思ってた時期が俺にもありました

216 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 19:46:13 ]
公開しなきゃ、それこそほぼ無法地帯だけどな

217 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 20:11:06 ]
せめてGPLかどうかだけでも見ておいたほうがいいぞ

218 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 22:38:03 ]
>>207
libは結構面倒だ
デバッグ版lib
リリース版lib
ちょっとでもコンパイル設定がかわるともう受け付けない
(みんななぜか気にしてない?うーんあわせる自信あるのかな?)
好んで使うアフォがいるがなんでか?ってのは俺も知らない

219 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 22:58:14 ]
Xファイルなどのメッシュに対してではなくて
ポリゴンに対してバウンディングボックスを作ることってできますか?


220 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 23:12:54 ]
>>218
横槍だがlibを毎回プロジェクトフォルダに入れないとパス通しても認識されないんだが
どうすりゃいいんだ?

221 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 23:26:54 ]
通したのがinclude pathだったってオチ?

222 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 23:56:09 ]
完全にライブラリのリンクです。



223 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 23:58:09 ]
きっとそこには”無い”んだよ…

224 名前:デフォルトの名無しさん [2008/04/27(日) 01:24:04 ]
D3DFMT_D16_LOCKABLEって
16bitの何が入っているんですか?
これがわからないと読み出せないんですが

225 名前:デフォルトの名無しさん [2008/04/27(日) 01:55:19 ]
今日のこのスレなんか空気がおかしくね

226 名前:デフォルトの名無しさん [2008/04/27(日) 03:20:49 ]
oggだのライセンスだの言ってるあたりからおかしいと思われ

227 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 03:22:15 ]
まぁGWモードに入ったってことでしょうJK

228 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 05:13:46 ]
ごーるでんうぃーく

229 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 13:53:57 ]
ゴールデンウィークなんてこの5年間一回もないぞ。
働いたら負けって意味がよく分かったよ

230 名前:デフォルトの名無しさん [2008/04/27(日) 13:54:25 ]
質問なんだが、Xファイルのテクスチャにdds使うえばα値で透過されたりするんですかの

231 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 14:04:01 ]
ddsじゃなくても透過できるでよ

232 名前:230 [2008/04/27(日) 14:53:06 ]
詳しくお願いしまふ



233 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 15:07:52 ]
Xファイルを作るときにD3DXCreateTextureFromFileEx関数を使って透過色を指定しておくだけでふ

234 名前:デフォルトの名無しさん [2008/04/27(日) 15:26:02 ]
Exとかあるなんてしらなだった
調べてない自分が悪いorz
とんくす!!

235 名前:デフォルトの名無しさん [2008/04/27(日) 21:44:04 ]
HLSLですが、以下のcase1とcase2で表示される結果が違います。
case2の方にノイズがのります。
以下の二つは何か違いがあるんでしょうか?
(HLSLは最適化なしでも同じ、設定は列優先)

// float4_t vPosition0
// float4x4_t mWorld
// float4x4_t mViewProj

// case 1
const float4_t vPosition1 = mul( vPosition0, mWorld);
o_vPosition = mul( vPosition1, mViewProj);

// case 2
const float4x4_t mWorldViewProj = mul( mWorld, mViewProj);
o_vPosition = mul( vPosition0, mWorldViewProj);



236 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 23:15:14 ]
画面から1ピクセルの色情報を取得するGetPixelをDirectX
でやるにはどうすれば良いでしょうか?Lock Unlockで
サーフェイスから1ピクセル抜き出すのは勿体無いですから。


237 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 23:27:18 ]
>>236
何がどう勿体無いのか知らんが、それが一番素直なやり方
サーフェースのフォーマットを調べたいとかいう違う動機があるなら別だが

238 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 23:32:01 ]
>>237 読み込みだけなのでLock Unlock重いから使わない方法
あればいいなと思って質問しました。Lock Unlock使わなくても
大丈夫というレスを期待したのです。レスありがとうございます。
今日は寝ます。

239 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 23:38:06 ]
>>238
誤解してるみたいだが、GetPixelも実装はLock/Unlockしてるの
それプラス余計なオーバーヘッドがかかるから、自前でやったほうが数倍速い
ちなみに、システムメモリ上のサーフェースは、その手のLock/Unlockによるオーバーヘッドは皆無
まあ、VRAM上のことを言ってるんだろうけど、VRAM上ではイメージがリニアに配置されてる保障はないので
その手のオーバーヘッドは、どういうやり方をするにせよ、回避は不能


240 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 00:00:00 ]
ピクセルシェーダーからフィードバックすればできるんじゃね?

241 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 00:38:00 ]
>>239
GetPixelってフォーマットやら範囲やらチェックしてる予感
あの遅さはそういう遅さだ
俺の直感がそうだと言っている

でもフォーマット気にしないでコピーする方法ってどうやんだっけ?
BitBltでいいんだっけ?

242 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 21:55:54 ]
ライティングについて質問です。

D3DLIGHT9 light;
memset(&light,0,sizeof(light));
light.Type = D3DLIGHT_DIRECTIONAL;
light.Diffuse.r = 0.9f; light.Diffuse.g = 0.9f; light.Diffuse.b = 0.9f;
light.Specular.r = 0.2f; light.Specular.g = 0.2f; light.Specular.b = 0.2f;
light.Ambient.r = 0.5f; light.Ambient.g = 0.5f; light.Ambient.b = 0.5f;
light.Direction = D3DXVECTOR3(0.0f, -0.5f, -0.2f);
device->SetLight(0,&light);
device->LightEnable(0,TRUE);
//*
device->SetRenderState(D3DRS_LIGHTING,TRUE); //ライティング有効
/*/
device->SetRenderState(D3DRS_LIGHTING,FALSE); //ライティング無効
//*/

上記のように設定すると何も表示されなくなってしまいます。ライトを無効にすれば表示されるので
メッシュの基本的的なところは間違ってないみたいなのですが、何が間違ってるのでしょうか?




243 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 22:13:12 ]
自己解決。マテリアル設定忘れらしいです。だからマテリアルだけ要素数が返されるんですね・・・

244 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 00:23:12 ]
これからDirectXの勉強始めようと思うのですが、DirectX9の書籍は買わないほうが良いのでしょうか?
DirectX10からいろいろ変わったと聞いたもので。
あと、お勧めの書籍があったら教えてほしいです。

245 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 00:30:02 ]
vista持ってないとdirectx10ができません

246 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 00:35:41 ]
DirectXなんて勉強目的なら8以降だったらなんでもいいのよ
要するに、概念が大事

247 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 03:07:46 ]
DX10のほうがデバッグしやすいと思うぞ

248 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 03:09:53 ]
>>244
むしろ情報がクソほど出揃ってる9以前のほうがいい
10なんかOS縛りあるわ情報少ないわでいいことまったくなし
8あたりで縛ってつくればDirectX8はXP以降なら間違いなく入ってるし
配布もラクだしとにかくいいことだらけだ
そんな初級質問をするおまいはこれからもたくさん質問するだろうから
それに答えられる使用者が多い9以前を使うべき

249 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 07:57:25 ]
今ならDX9だよな。
もうDX8はない。
かといってDX10は実行環境が限られる上に
仕様もまだ安定していない。

250 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 12:19:13 ]
ありがとうございます。9の本買ってきます。

251 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 16:58:33 ]
9できれば
10もすんなりいけるんじゃね。

252 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 18:36:23 ]
シェーダーの使い方知らんとなんもできんよ



253 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 19:54:00 ]
俺も10に移行してえ
でもVistaはイヤッ!!


254 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 20:32:14 ]
俺はやりたいことが全部9で出来ちゃったから10を触る気が起きない

255 名前:デフォルトの名無しさん [2008/04/30(水) 22:07:00 ]
そもそも10で何ができるようになったのか知らない

256 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 22:09:33 ]
Vista専用なんて論外だ

257 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 23:02:11 ]
DirectX10はVistaと共に黒歴史になる

258 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 23:09:33 ]
10は別に黒歴史にはならないだろ

259 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 23:50:06 ]
8は初心者にはヘルプ手に入れたり、サンプル動かしたりするところで
敷居が高いからやめておいたほうがいいと思う
ある程度たどり方を知ってないと見つからないし、わからないと思う

260 名前:デフォルトの名無しさん [2008/04/30(水) 23:58:24 ]
すみません。
ピクセルシェーダが使えない環境で
クライアント座標のある部分を描写しないようにクリッピングしたいのですが、
どのようにすればいいでしょうか。

C++でdirectx9を使ってます。

261 名前:デフォルトの名無しさん [2008/05/01(木) 01:56:50 ]
カメラ2つでvfcでキャプチャをしたいのですが、capDriverConnect(hWnd0,0);capDriverConnect(hWnd1,1);で
キャプチャ使用とすると、カメラを選択するメニューが登場しcapDriverConnect(hWnd0,0);側だけ選んだ1つだけ
表示されてしまいます。
解決の方法はご存じないですか?

262 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 06:27:11 ]
今日も今日とて、眠らぬまま朝を迎えた・・・・・・・。




263 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 07:54:59 ]
>>262
バラモス撃破乙

264 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 16:41:47 ]
>>260
ステンシルバッファ でぐぐるよろし

265 名前:デフォルトの名無しさん [2008/05/01(木) 21:01:47 ]
>>264
さんくすです。

266 名前:デフォルトの名無しさん [2008/05/02(金) 11:57:01 ]
すみません。
任意の軸を中心に拡大縮小が出来る関数ってありませんか?
回転はみつけたんですが、拡大縮小は見つからなくて・・・。

267 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 12:37:52 ]
>>266
あるっちゃあるが、ちゃんと行列勉強したほうがいいと思うぞ
細かい調整きくようになるし

268 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 17:20:58 ]
任意の軸への移動行列×拡大縮小行列でいいんじゃねーの?

269 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 18:45:06 ]
D3DXMatrixTransformation2D

つーか、何を回転させようとしているのだろうか

270 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 18:50:51 ]
質問というかアンケート
ここのスレのお兄さんたちはD3DX関数群は肯定派?否定派?
速度でないし、細かい微調整がきかないから、そんなもん使うなって感じ?
それとも、車輪の再発明してもしょうがない、あるんだから使えばいいじゃないって感じ?
なんとなく気になったんで

271 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 19:08:19 ]
俺はD3D、OpenGL、その他とコードを共有してるんでしかたなく自前で作ってる
でも基本的にあるなら使えばいいじゃない派

272 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 19:15:43 ]
頭にD3DXをつけずに名前をもっと短くしてくれたら
もっと評価してやらないこともない



273 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 19:21:54 ]
そんな事より配布の問題をどうにかしてくれ

274 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 19:23:33 ]
我慢しろよ(`_ゝ´)

275 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 19:25:02 ]
>>273
わかる
DLLバージョン多すぎ

276 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 19:28:58 ]
だから2004octを使えとあれほど・・・

277 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:30:26 ]
僕ハンゲームというゲームしたいんですけど
それにはこのdirectxが必要なんですが、その
安全性が非常に心配です。
調べてみると、「DirectXの脆弱性」などとよく書いてあります。

ダウンロードするとしたら、最新の10.1がいいのでしょうか?
それと、当たったらどんな症状が出るのでしょうか?


278 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:32:14 ]
ここはプログラミングの板なのでよそで聞いてください

279 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:35:20 ]
おまえはなにを言ってるんだ



……と思ったが、マジレスするなら、今までWindows使ってて、脆弱性のせいでなんか不都合が起こったことあるか?
そもそも、ココに書き込みしてる時点で脆弱性を突かれて君のパソコンまずいことになってるよ。
他の人(もちろん俺も)は、事前に対策してるけど。君は丸腰なんじゃないか?

280 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:35:39 ]
なんかリアリティがあってワロタ
本当に何もわからんやつは、確かにプログラム→DirectX初心者でこういうところに質問するのかw

281 名前:デフォルトの名無しさん [2008/05/02(金) 21:43:17 ]
ハンゲ自体が君の人生にとって有害だよ

282 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:43:34 ]
10.1 はまだ Vista でしか使えなかった気が。
というか、Vista だと標準装備じゃなかったっけ?
入ってないってことは XP なんだろうけど、
それなら 9.0c を入れるといいよ。



283 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:54:49 ]
DirectXの穴はwindows updateで修正されてるし。

284 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 05:51:55 ]
>>270
D3DX関数群の集まりって昔中身見れたんだけど
なんか難しそうなアセンブラで書いてあって速そう(?)だったよw

285 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 10:12:11 ]
最近発覚したtga読み込みの脆弱性は
比較的最近のd3dxにしないと駄目だけどね。

286 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 00:25:15 ]
質問です。

(わかりやすくするために、カメラの座標は0,0,0とします。)
カメラを、とある地点Aと、とある地点Bの中間の方向を向かせるために、以下の方法をやっています。

中間というのは、3次元ベクトルAとBの平均(A + B) / 2 ということではなく、
角度的な中間です。
(説明のために2Dベクトルで例えます)現在のカメラの方向からAが+20度の方向。Bが+80度の方向にあるのならば、カメラは+50度の方向を向かせたいのです。

ttp://w3e.kanazawa-it.ac.jp/math/category/kika/heimenkika/henkan-tex.cgi?target=/math/category/kika/heimenkika/naibunntenn.html
この法則を利用し、Aまでの距離とBまでの距離を利用。
lenA = D3DXVec3Length(pVecA);
lenB = D3DXVec3Length(pVecB);
D3DXVec3Lerp(pOut, pVecA, pVecB, lenA / (lenA + lenB));
としてpOutの方向を向かせれば、丁度中間の方向を向けそうです。
まず、ここまであっているでしょうか?

あっていると仮定して、次のステップ、(例えば)AとBの角度的に3:7の方向を向きたいという場合はどうすればいいでしょうか?

287 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 01:01:25 ]
角度で応用きかすなら極座標を使った方がいいような気がする

288 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 12:34:56 ]
図の角度**のところをそれぞれθ、φとおいて、二通りの求め方で面積S1、S2求めて比較

289 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 15:42:44 ]
質問よろしいでしょうか
D3DXLoadMeshHierarchyFromXを使っているのですが、Debugビルドの場合のみ
14MBほどの大きさのXファイルの読み込み時に

ハンドルされていない例外 は test.exe にあります: 0xC0000005: Access Violation。

と出てしまいます。
10回に1回くらい出ないこともあるのですが・・・
__sbh_free_block の中でエラーになっているようで、これはメモリー空間が破壊されている時に出るとのこと
なのでプログラムを最小構成にしてやってみましたが、それでもダメでした。

Releaseビルドでは問題は出ません。
また、アニメーションの数を減らして7MBくらいにするとDebugビルドでも問題は出ませんでした。
Xファイルはテキスト版でも、バイナリ版でも同様の結果でした。

何か心当たりある方はいらっしゃいますでしょうか?
環境はVC6.0+DirectX 9.0 SDK Update - (October 2004) です。

290 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 18:24:27 ]
自己解決しました。
デバッグモード時、d3dx9.libではなくd3dx9d.libをリンクすることでうまくいきました。

291 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 19:04:18 ]
質問です。
DirectXアプリケーションで、日本語入力(IME)をサポートしようと思っています。

やりたいことは、IMEの変換ウィンドウと候補一覧ウィンドウを表示するということだけなのですが、
DirectXのサンプル(CustomUI)では、独自のコントロールの実装や継承を自前で行うことで実現していました。

CDXUTControl
  ↑
CDXUTEditBox
  ↑
CDXUTIMEEditBox

特にCustomUIのような独自のコントロールを作成したいわけではないのですが、
あきらめてCustomUIと同じような実装を自前でしなければならないのでしょうか。
それとも変換ウィンドウと候補一覧ウィンドウを表示したいだけであれば、もっと楽な方法があるのでしょうか。


292 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 02:20:18 ]
D3DFILL_WIREFRAME のワイヤーフレームの描画の太さを、太くする方法ってありませんか?

Zバッファへの書き込みをOFFにした状態で2ドット以上の幅でワイヤーフレームを描き、その後通常どおり描画。
とやることで、背景との輪郭線を綺麗に描けるのを期待しているのですが。



293 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 10:48:52 ]
どんな画面だそれ

294 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 11:38:21 ]
いい加減固定機能パイプライン使うの止めようぜ

295 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 11:57:59 ]
>>293
理屈上は背景とキャラと間に線が入る感じになるかと。
ワイヤー時はZバッファへ書き込みしないようにしているので、ワイヤーフレームの後にキャラクタの描画で輪郭線以外は塗りつぶされますから。

>>294
プログラマブルシェーダで同等のことできますか?
モデルのポリゴン裏返して黒くし、法線方向に膨らませる…。っていうやつも悪くはなかったのですが、何分重くて。


スキンメッシュなので、自前でID3DXLineで引くわけにもいかないんですよ。
いかないですよね…?
変形後の頂点位置、わからないですし。



296 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 16:24:37 ]
>>295
それが速く描画できる理由になるところが俺にはわからん

297 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:15:04 ]
ワイヤーフレームモードでやりゃわかるが、ピクセルシェーダが呼び出される回数が圧倒的に少ないぞ
だが俺はあの線を太くする方法は知らんな
あれば結構魅力的な輪郭線描画法かもしれん

298 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:21:27 ]
質問
連邦VSジオンみたいなゲームでも作ろうかと3Dを本格的に始めたのですが、スペックで相談です。

あのゲームは2VS2なのでキャラが4体でてきます。
1キャラ6000三角ポリゴンくらいで作って4体を画面内に表示したところ、FPS60が維持できませんでした。

私のPCのグラボが、GF6600GTとかなり古めだというのはあるのですが、こんなもんなのでしょうか?

299 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:35:59 ]
実際にやってみてそうなったのなら、幻覚を見るような病気がない限りその通り。

300 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 22:02:35 ]
えーと、私のプログラムが甘いとは思うので
「それ低すぎだろw何かミスってね?」
でなければいいなと思ったのです。

こんなものですか。1キャラ2000ポリくらいにしないと、マップとかにパワーまわせませんね

301 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 22:06:45 ]
1キャラ△6000て割きすぎ

302 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 22:38:29 ]
あちゃー、割きすぎでしたか。
今まで3Dツール上でレンダリングするだけだったので、その癖ですね。
ゲーム用はやはりもっと抑えないとということですか。
ありがとうございました。



303 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 22:48:30 ]
デバッグをpするとobjbase.h': No such file or directoryと出てデバッグできません
どうすればデバッグできるようになるのでしょうか?

304 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 22:49:16 ]
>>303は誤字



デバッグをするとobjbase.h': No such file or directoryと出てデバッグできません
どうすればデバッグできるようになるのでしょうか?

305 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:06:05 ]
objbase.h': No such file or directoryだけだとわかりませんね
エラーメッセージ貼ります


c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory
Stage4.cpp
c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory
Stage3.cpp
c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory
Stage2.cpp
c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory
Stage1.cpp
c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory
Ranking.cpp
c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory
Option.cpp
c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory
MyGameLib.cpp
c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory
Main.cpp
c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory


306 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:16:53 ]
デバッグ?コンパイルじゃなくて?

307 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:17:31 ]
そのパスに、d3d9.hは実際にあるの?ないの?

パスはあるけど、ヘッダファイルだけないの?
それともパス自体ないの?

308 名前:デフォルトの名無しさん [2008/05/05(月) 23:40:39 ]
>>306
デバッグボタンでコンパイルしてるというのでしょうか・・・?

>>307
あるとかないとか言われてもわかりません
インストールしてオプションでパス設定してデバッグしただけですから・・・
Microsoft DirectX SDK (August 2007)ファルダの中にはDeveloper Runtime Documentation Include Lib Samples Utilitiesフォルダがあります

309 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:43:16 ]
Windowsのパスもわからんのに、プログラム組むのは無茶だぜ…

c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h
というファイルは、Windows上にファイルとしてきちんと存在してるの?
パス間違えてるんだと思うぜ?

半角スペースのあるなし
括弧の半角全角とか、きちんとやってみ。

310 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:44:42 ]
真性のゆとりだな

311 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:52:45 ]
3Dでキャラの髪の毛が動きに合わせて(自動計算で)フワってなるやつって、
動きの計算は自前でやるにしても、どうやってモデルから構造出して、計算してんのかなぁ
やったことある人いる?

312 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:55:59 ]
普通に自前でぼーん入れてノードを布シミュの応用で動かしてるだけじゃねーの大抵は



313 名前:デフォルトの名無しさん [2008/05/06(火) 00:02:41 ]
d3d9のC/C++ヘッダーってファイルあります

314 名前:デフォルトの名無しさん [2008/05/06(火) 00:03:19 ]
>>313>>309へレス

315 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 00:46:22 ]
objbase.h がないんだとさ。
PC内全検索して、objbase.hがあるか確認

あるなら、そこへもパス通せ。
ないならSDKの再インストール

316 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 00:58:58 ]
クロスシミュレーションの動きを、Xファイルにアニメーションとして取り込むことってできませんよね?
再生するだけで十分なのですが、Direct3Dでクロスシミュを簡易的に再生するのに適した方法はどんなのがありますでしょうか?

317 名前:デフォルトの名無しさん [2008/05/06(火) 01:12:24 ]
>>315
C:\Program Files\Microsoft Platform SDK\Includeにあるみたいなんですがこれでいいんでしょうか?

318 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 07:46:19 ]
>>316
Xファイルを吐き出す側の3Dソフトに
クロスシミュのプラグインとか入れて、そのモーションで吐き出すが一番簡単


それとも自前でクロスシミュをDXで出来ていて、それをDX上でしたくてどうにか出来ない、
って事とは思えないが…一応…

前提としてD3DX関数でしかXファイル扱えないとかじゃないよね…
クロスシミュで求めた頂点で、モーフアニメーションでもすれば良いじゃん

319 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 07:54:17 ]
>>286
亀レスで申し訳ないが…

カメラ位置からA地点を結ぶベクトルA、カメラ位置からB地点を結ぶベクトルB

それぞれのベクトルA, Bを単位化して、その単位化したベクトルをAA, BBとする

AAとBBを結ぶベクトルCCを作って、そのCCの長さを任意に割合で分ける点DDを作る

カメラ位置とそのDDを結ぶベクトルが君の求めるカメラ注視点ベクトルだと思うが…

320 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 08:25:59 ]
質問させてください。
dxsdk_aug2007をインストール中に「This pre-release version of XAudio2 has expired please upgrade to tha latest version」と出るのですが、
そのままokをクリックしてインストールを終わらせていいのでしょうか?

321 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 09:29:44 ]
>>320
MSお得意のベータ版の時限装置が発動でもしてんじゃね?
xaudio2使うんじゃなければ問題無いと思うよ。

322 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 09:37:46 ]
MyGameLib.obj : error LNK2019: 未解決の外部シンボル __imp__TranslateMessage@4 が関数 "void __cdecl playMovie(char const *)" (?playMovie@@YAXPBD@Z) で参照されました。
MyGameLib.obj : error LNK2019: 未解決の外部シンボル __imp__GetClientRect@8 が関数 "void __cdecl playMovie(char const *)" (?playMovie@@YAXPBD@Z) で参照されました。
D:\プログラミング参考サンプル\アクションゲームプログラミング\マスカットボーイ\ソースファイル\MuscatBoy\Debug\MuscatBoy.exe : fatal error LNK1120: 外部参照 21 が未解決です。
ビルドログは "file://d:\プログラミング参考サンプル\アクションゲームプログラミング\マスカットボーイ\ソースファイル\MuscatBoy\Debug\BuildLog.htm" に保存されました。






文字数制限にひっかかるので多少省きましたすみません
このエラーの解決策を教えてくださいお願いします



323 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 10:02:45 ]
関数宣言はあるのに実態が無いんだろ

324 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 10:55:18 ]
>>319
亀レスでも大変ありがたいです。
ただ、AAとBBを結ぶCCは直線なので、任意の割合で分けても「角度的に割合で分けた」ことにはならないと思います。
本当に角度的なものなら、DDはAAとBBを結ぶ「曲線」の上になければならないと思います。

325 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 11:05:33 ]
>>324
その通り
それよりなぜ極座標を使わないかを教えてくれ


326 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 11:26:10 ]
>>318
Xファイルから布部分を取り出して、自前でクロスシミュしてリアルタイムに描画ってのはできます。
これだと
・リアルタイムゆえ、色々な変化に柔軟に対応可能
・リアルタイムに計算するコストが必要
ですよね。

今回はキャラがきまったアニメーションしかしません。リアルタイムに計算しない方針です。

D3DXのXファイル再生サポートをD3DXAnimationControlerしか知らないのですが、
これが制御するのはボーンの動きだけですよね?
古典的クロスシミュの1つとして、布に大量にボーンを仕込んで…という方法がありますが、(D3DXを使った)Xファイル再生ではその方法しかないのかな?という疑問です。

327 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 11:35:51 ]
>>325
極座標を使うということは、一旦座標をatanなどを使って角度に直した方がいいということでしょうか?
AとBと0,0,0を含む平面を考え、その平面上でのAの角度(0度とすると計算しやすいか)と、Bの角度を求める。
という方法でしょうか?

また、今勉強中なのですがクォータニオンというものを使えば、望んでいることが簡単にできるのかとも思っているのですがどうでしょうか?

328 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 11:48:14 ]
>>327
角度で応用きかすなら角度に直した方が可読性が高いかと思って
思いついてたのはargとpolar

ごめんクォータニオンはよくわからない

329 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 11:51:03 ]
>>322
Platform SDKをインストールしていなければインストール。
ttp://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en

インストールしている場合、binとincludeとlibの優先順を確認。
ttp://forums.microsoft.com/MSDN-JA/rss.aspx?siteid=7&postID=1320640&forumID=188


330 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 14:59:47 ]
>>321
そうですか。
クリックしてみます。
ありがとうございました。

331 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 15:54:51 ]
>>324
AAとBBは単位化してるから、CCは二等辺三角形の底辺と同じなんだけど…
プロセスが必要で、結果が求まるだけじゃ駄目なのかね

332 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 16:04:46 ]
>>331
>>319だと角の2等分でしかうまくいかない



333 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 16:10:04 ]
>>328の訂正
そういや3次元だからargとpolarは使えないわw
>>327の通りです。
座標系変換の関数がなければ作ってみてもいいだろうし

334 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 16:38:58 ]
>>329
レスありがとうございます
ttp://forums.microsoft.com/MSDN-JA/rss.aspx?siteid=7&postID=1320640&forumID=188
このサイト通りにやったら>>322のエラー文は消えましたが新たにこのエラー文が出てきました
解決策を教えてくださいお願いします




LINK : fatal error LNK1104: ファイル 'd3d9.lib' を開くことができません。

335 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 17:16:41 ]
>>334
libの設定の先頭に↓は記述してる?
c:\program files\microsoft directx sdk (august 2007)\lib


336 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 17:19:26 ]
>>326
その条件なら
事前計算して、その結果をXファイルにフィードバックで良いかと

今あるか分らないが、サンプルにイルカのモデルがアニメーションするのがあって
(確か海底みたいな場所で…)
それが1Xファイルで、頂点モーフしてるフォーマットだったと思う
つまり、Xファイルは頂点モーフ出来るはずだよ

フォーマット調べて、任意のキーフレーム時の頂点情報を書き込めば
補間は確かスプラインとかリニアで種類がないけど、頂点モーフ出来るんじゃないかな

…メッシュの部分的なモーフをサポートしてるかは微妙
駄目なら駄目で、クロスシミュ適応部分だけ別ファイルにして、本体に自前で子供付けするとか

337 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 17:22:28 ]
>>335
レスありがとうございます
c:\program files\microsoft directx sdk (august 2007)\lib
これは一番上にあります
その下にPlatform SDKがあります
インクルードのdirectxも一番上にあります
その下にPlatform SDKがあります

338 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 17:36:54 ]
>>332
理解した、サンクス

>>327
ベクトル演算と3次元回転と内積でいけるような気がする

思いつきだけど
ベクトルA(どちらか)を、加算でも減算でもいいからXY成分を0にするベクトルAAを求め
AをZ成分のみにする( A(0,0,*)みたく )
そのベクトルAAをベクトルBにも適応( つまりベクトルAをZ軸とする座標へ変換 )
( 以降、その座標系の話で )

ベクトルBとXZ平面がなす角度を求め( ベクトルBからY成分をカットして作ったベクトルBBと内積で求める )
その角度でベクトルBをZ軸回転させ、ベクトルAとBをXZ平面にもっていく

ここで、XZ平面上でのベクトルAとBのなす角を求め、その角度を使って任意の比率角度を決めて
その角度で、ベクトルBを今度はY軸回転させたベクトルCを作る

最後にベクトルCを、ベクトルBBを作った逆の回転、座標変換した逆の計算をしてもどに戻せば…
スマートじゃないけど、こんな感じは?



339 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 17:44:40 ]
ムービーをWindowsXP/Vistaを対象に再生したいのですが
安定して使える関数が分からずに困っています。
現在ではどういった関数が使われているのでしょうか?

340 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 17:45:55 ]
>>338
スマートじゃなさすぎないか?w
それなら327の方法のままでいい気がするが
俺もやったことはないからツッコミだけですまんが、3Dシューティングのミサイルとかって毎フレーム相手の座標に向けて1度ずつ向きを変えるとか普通にやってそうだよな・・・
意外と方法確立されてないのか?

341 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 17:50:53 ]
>>340
自分でもスマートじゃないと思うが…

しかし、実際に327を行なう手順を記述しただけだと思うんだが
(オイラー法のみでクォータニオンを使わないで)

342 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 18:09:32 ]
>>336
それっておそらく
ttp://www.microsoft.com/japan/msdn/directx/welcome/dsmsdn/directx04162001.aspx
ですよね。確かに最初見たときかなり衝撃的でした。
でもこれは3つのXファイルのメッシュデータを、自前でモーフしてるっぽいです。

あと、DirectX9のサンプルの中にイルカのXファイルはあるのに、使用しているサンプルが見つからないのはなぜでしょうね・・・



343 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 18:41:43 ]
>>337
最後の「\x86」が足りなかったか。
c:\program files\microsoft directx sdk (august 2007)\lib\x86

このフォルダと、フォルダの中にd3d9.lib等一式が存在することを確認。


344 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 18:57:07 ]
>>343
レスありがとうございます
c:\program files\microsoft directx sdk (august 2007)\lib\x86
この設定にしたら>>334のエラー文はなくなりましたがまた>>322のエラー文が出てきました
解決策を教えてくださいお願いします

345 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 19:09:29 ]
>>344
#include <windows.h>呼んでないとか・・・w

346 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 19:16:56 ]
>>345
レスありがとうございます
もう少し詳しくお願いします
それだけだとちょっと分かりません
すみません

347 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 21:04:11 ]
>>346
その部分はもはやDirectXとは関係無いエラーだ
おそらく環境のインストールに失敗している
あとは汎用の初心者質問スレへ行った方がいい
これ以上だとスレ違いということで叩かれるよ

348 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 22:15:53 ]
すみません、DirectX上で動くゲームを作成してるんですが、
あるモーションのキーフレーム数を調べたいんです。
(無駄にキーフレームの多すぎるモーションはリダクションをしたいんです)

LPD3DXANIMATIONSETのGetNumAnimationsがそれ用の関数だと思ったんですが
どうもボーン配列の数を返しているみたいで・・・。
どうすればキーフレーム数を調べる事が出来るんでしょうか?

349 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 22:40:12 ]
すみません、Visual C++ 6.0でDirectXのXファイル読み込みをプログラムしたのですが
上手くいきません。ビルドには成功したのですが、実行してもすぐに終了してしまいます。
SDKはDirectX 9.0 Update summer 2003を使っています。
デバッグ内容も下記に記載します。分かる人、教えて下さい、宜しくお願いします。


350 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 22:42:52 ]
'ntdll.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\kernel32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\user32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\gdi32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\d3d9.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\d3d8thk.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\msvcrt.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\advapi32.dll' をロードしました、合致するシンボル情報は見つかりませんでした

351 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 22:44:37 ]
'C:\WINDOWS\system32\rpcrt4.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\secur32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\version.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\winmm.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\dinput8.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\imm32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\lpk.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\usp10.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\uxtheme.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\Program Files\Trend Micro\Virus Buster 2007\TMAS_OE\TMAS_OEHook.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\MSCTF.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\Downloaded Program Files\CnsMin.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\shlwapi.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\imagehlp.dll' をロードしました、合致するシンボル情報は見つかりませんでした。

352 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 22:45:10 ]
単純にループ書いてなくて一回素通りして終了するプログラムになってるとかじゃないよね?



353 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 22:45:13 ]
'C:\Program Files\Trend Micro\Virus Buster 2007\TMAS_OE\TMAS_OEHook.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\MSCTFIME.IME' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\ole32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\ATOK17W.IME' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\shell32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\ATOK17DE.DLL' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\ATOK17AE.DLL' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2982_x-ww_ac3f9c03\comctl32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\comctl32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\Program Files\Trend Micro\Virus Buster 2007\TMAS_OE\TMAS_OEHook.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\Program Files\Trend Micro\Virus Buster 2007\TMAS_OE\TMAS_OEHook.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\Program Files\Trend Micro\Virus Buster 2007\TMAS_OE\TMAS_OEHook.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\Program Files\Trend Micro\Virus Buster 2007\TMAS_OE\TMAS_OEHook.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\Program Files\Trend Micro\Virus Buster 2007\TMAS_OE\TMAS_OEHook.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\hid.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\setupapi.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\wintrust.dll' をロードしました、合致するシンボル情報は見つかりませんでした。

354 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 22:45:54 ]
'C:\WINDOWS\system32\crypt32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\msasn1.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\ntmarta.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\wldap32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\samlib.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\d3dxof.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
スレッド 0xF2C 終了、終了コード 0 (0x0)。
プログラム 'H:\CLUB SEE\3Dチェス\my3dlib\Debug\my3dlib.exe' はコード 0 (0x0) で終了しました。


355 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 22:46:03 ]
ググレカス

356 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 22:49:20 ]
もはや荒らし
VisualStudio使ってるなら、ブレークポイントで止めて一行ずつ実行してけカス

357 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 23:13:01 ]
mviewでXファイルを開いた時、アニメーションのリストがメニューの
Animation > Animations の下に最大50個現れると思うのですが、
Xファイルを開いただけだと何故か現れません。

Add Animationで追加オープンすると、最初に開いたXファイルのアニメーションと、追加で開いたXファイルのアニメーションが両方現れるのですが…
AddAnimationせずに、最初に開いたXファイルのアニメーションを表示する方法はありませんか?

358 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 23:25:14 ]
>>347
レスありがとうございます
インストール時にエラー文はでなかったんですけどねぇ・・・

359 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 23:28:45 ]
パスも通せない馬鹿は死んでいいよ

360 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 00:37:22 ]
>352
ループには問題なさそうですね。

>356の言う通りにしたら解決したわ、もっともブレークポイントなど使わずに
一行ずつ実行していったがな。ヒントありがとよカス。


361 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 02:13:27 ]
>>359
お前が死ねキモデブ

362 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 03:13:11 ]
みなさーん
池沼には優しくしてあげましょう
社会のゴミですが同じ人間です



363 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 04:22:37 ]
ttp://www.imgup.org/iup605620.jpg.html
コンパイル中↑こういうのが出た後に下みたいに「シンボルが読み込まれていません。」が大量に出るんですけどどうしたら出なくなりますか?

'MuscatBoy.exe': 'C:\WINDOWS\system32\ntdll.dll' を読み込みました。シンボルが読み込まれていません。
'MuscatBoy.exe': 'C:\WINDOWS\system32\kernel32.dll' を読み込みました。シンボルが読み込まれていません。
'MuscatBoy.exe': 'C:\WINDOWS\system32\user32.dll' を読み込みました。シンボルが読み込まれていません。
'MuscatBoy.exe': 'C:\WINDOWS\system32\gdi32.dll' を読み込みました。シンボルが読み込まれていません。

364 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 05:07:45 ]
363は自己解決しました

365 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 06:06:15 ]
>>364
どうやったら解決したの?
原因は?
もう一回>>1を読んでね。


366 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 14:52:25 ]
>>365
自己解決の場合は誰に礼を言うの?w

367 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 14:54:12 ]
>>360
ヒントもらえたんだから感謝せぇよアホ
合致するシンボル情報は見つかりませんでしたってのは、
「デバッグ用にDLLを読み込んだが、特に必要な情報は無かった」
とかの意味だ。(厳密には違うかもしれんが)

それはデバッグ実行すると当たり前に出る内容であって、
そんな大量の、何の問題もない(かつDirectX無関係)の内容を貼り付けたら
荒らしとか言われても仕方無い。

368 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 15:49:17 ]
質問です
Xファイルを使ったモデルにマルチテクスチャを行ないたいのです
例えば地面に見た目用のテクスチャーと、バンプ用のテクスチャーを適用したいと思っています。

ただ、Xファイル系のサンプルを見る限りテクスチャーを2つ使うことは想定外のように見えました。
カスタムテンプレートという仕組み上、自前でそういうXファイルは作れそうですが、3DモデラーがそういうXファイルを吐いてくればれば(あまり)意味がありません。

マルチテクスチャなXファイルというのは一般的ではないのでしょうか?
LWを使ってXファイルを吐いているのですが、もし良い方法があれば教えていただけると幸いです

369 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 16:24:58 ]
ピクセルシェーダーで合成すればいいんじゃじゃね?

370 名前:デフォルトの名無しさん [2008/05/07(水) 19:17:02 ]
今頃DirectX10のサンプルみたら、三角形ポリ描画するだけでシェーダー必要とかXファイルがサポートされてないとかアホか。
DirectX使うのは思いついたゲームをちゃちゃっと作りたいからなのに、生産性下げてどうする・・・



371 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 20:28:33 ]
質問です
頂点ブレンディングはDirectXの機能で実装するのと
頂点シェーダで実装するのとでは、どちらが一般的ですか?

372 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 21:52:57 ]
>>371
調査統計をとるようなマーケティング能力や、
規格を立ち上げる権限をもった人間がいるわけでもないのに、
そんな不確定な情報を誰とも知らない人間に聞くその意図を明確にせよ。

ロボットのように命令が無ければパンツもはけないというのなら、
一般的かどうかを聞くより、最初からあらゆる事を指示してと言えばいい。



373 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 22:50:41 ]
>>372 答えてやれよ。あんたは業界人なのけ?

374 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 23:05:41 ]
まずは一般的という基準を明確にすることから始めないといかんだろ。

375 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 23:08:23 ]
聞き方が不味かったのかな?
ここの人たちはどっちでやってますか?と言う聞き方ならまだ良かったとか?

376 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 23:10:29 ]
人それぞれ

377 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 23:11:53 ]
ターゲットマシンによるべ
あくまで古いマシンでも動かしたいなら頂点シェーダ使うのはきびしいんじゃね?

378 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 23:12:24 ]
おまえら意地悪ですね
俺はこうしてるってだけでもいいんじゃないの

379 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 23:18:02 ]
そもそもシェーダを利用するのはDirectXの機能とは言えないのか?
シェーダを利用するしないに限らず、ハードが対応していなければ、
DirectX側がエミュレーションするし、していなければハードが処理するだけで、
データを渡すのはDirectXが処理していると言える。

380 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 23:20:17 ]
行間から固定機能パイプラインorシェーダと読めたんだが違うのかな?

381 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 23:20:18 ]
つまりDirectXではなくOpenGLからシェーダを利用するかどうかという話なのだろう。

382 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 23:34:58 ]
どちらが一般的かと言われれば固定機能パイプラインだろう
なぜならそれしかなかったから
だが、いずれ消え行く技術をいまさらやってもだし
シェーダーでやっといたほうが後々まで使えるんでね?



383 名前:291 mailto:sage [2008/05/08(木) 00:04:46 ]
仕方が無いのでDXUTの解析から始めようと思います。
(解析して光明が見えてくればいいのですが・・・)


384 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 00:51:33 ]
馬鹿はシェーダーを使えない。それだけ。

385 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 01:43:58 ]
頂点ブレンドってスキンメッシュとかのことよね?
だとしたら、一般的とかいうより色んな制約で変わってくるんじゃね?
・自前形式ではなくXファイルを使うなら、D3DXのスキンメッシュサンプルと
 同じ方法が使える
・でもそのやり方だと行列パレット使うので関節のSLERPが出来ない(LERPになる)
 そこらへんにこだわると、必然的に自前コードで広げることになる
・でも固定機能パイプラインの行列パレットは、最近のビデオカードではほとんど
 ハードウェアサポートされてない(ソフトウェア頂点処理に頼ることになる?)
・頂点シェーダで計算する場合、シェーダ3.0までは定数レジスタが256しかないので
 1ボーンあたり3レジスタ(SLERPなら2で足りるが)だとすると80ボーンしか使えない
俺がやった限りこういう事情が絡んで来たから、色々調べつつ
自分のやりたいことと照らし合わせてたら必然的にやり方は決まるよ。

386 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 09:04:59 ]
DirectX9使ってるんですけど
ID3DXEffect::SetTexture とか ID3DXEffect::SetFloat って
コスト高いんですかね?
ループの内側で使っちゃダメかな?

387 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 10:13:12 ]
>>371
頂点シェーダでやるのが良いと思うよ
まず、ソフトウェアエミュで頂点シェーダを行なってもそれほど重くないのが1つ。
ブレンド可能数が頂点シェーダのほうが融通利くのが1つ。
他の頂点シェーダエフェクトと一緒に利用できるのが1つ。

固定パイプラインでハードウェア処理の頂点ブレンドやるとバグるグラボが少なからずある
(ドライバアップデートすればなおるんだけど、ユーザーは必ずしも…ね)
だから私は頂点シェーダ+ソフトウェアエミュ派


388 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 10:22:30 ]
>>385
横槍で質問

・頂点シェーダで計算する場合、シェーダ3.0までは定数レジスタが256しかないので
 1ボーンあたり3レジスタ(SLERPなら2で足りるが)だとすると80ボーンしか使えない

これって、1頂点へ影響するボーンが最大80って意味?
それともモデル全体を通して80ボーンが限界って意味?

389 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 12:41:17 ]
必要に応じて分離すりゃいいだけ

390 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 13:11:36 ]
DrawPrimitive1回に対して80ボーンが限界って事。
D3DXMesh関係だと其処を考慮してDrawPrimitiveを何回かに分けて256本までのボーンに対応できるようになってるだろ。

391 名前:385 mailto:sage [2008/05/08(木) 17:00:17 ]
うん、説明不足だったけど1回の描画では、ってこと。
>>390みたいにすれば確かに制限は無くなる。
自分はやってないからわからんけど、
事前に頂点のリンクと面の接続を考慮してメッシュを分割しておけばいいかと。

392 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 17:18:49 ]
ミス、>>389みたいにすれば。
D3DXMeshが自動で何かやってくれるのは知らない



393 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 17:25:41 ]
うわ、最近D3D始めたばっかりなんだけど、スキンメッシュってそんなに定数レジスタ使ってるなんて気づいてなかったw
D3Dのサンプル様様だなぁ…
ちゃんと26ボーン毎に分割して、正常に表示できるように調整されてるっぽ
(サンプルのSkinnedMesh)

394 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 19:56:39 ]
アプリが終了すると
Direct3D9: (ERROR) : [0] : Address 04F1E4CB
Direct3D9: (ERROR) : [1] : Address 04F1E59B
Direct3D9: (ERROR) : [2] : Address 04F1E440
Direct3D9: (ERROR) : [3] : Address 0501CCA5
Direct3D9: (ERROR) : [4] : Address 05023345
Direct3D9: (ERROR) : [5] : Address 05002898
Direct3D9: (ERROR) : [6] : Address 05016E13
Direct3D9: (ERROR) : [7] : Address 00486437
Direct3D9: (ERROR) : [8] : Address 00474CBE
Direct3D9: (ERROR) : [9] : Address 004770CA
Direct3D9: (ERROR) : [10] : Address 7C23ABCC
Direct3D9: (ERROR) : [11] : Address 7C23B209
Direct3D9: (ERROR) : [12] : Address 7C235CC1
Direct3D9: (ERROR) : [13] : Address 7C22FF89
Direct3D9: (ERROR) : [14] : Address 7C22F067
Direct3D9: (ERROR) : [15] : Address 7C22EFDE
が複数行

みたいなデバッグログ(OutputDebugStringで書けるやつ)でるんだけど
何が悪いんですか?

あと、m_pd3dDevice->GetRenderTargetで取得したやつは、
Releaseすべきですか?

395 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 20:00:30 ]
ワンスキンしか作れないとかいうウンコモデリングソフトに当たったら最後w
なんでもかんでもすべての頂点に影響与えるとかギャグですか?w>某会社の自作モデリングツール

 捨 て ち ま え よ ! (中小害虫社員(28歳♂))

396 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 20:01:03 ]
同い年ですね。
わかります。

397 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 20:14:45 ]
>>395マ板でぶちまけろ

398 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 20:16:24 ]
371です
ありがとうございます
とりあえず頂点シェーダでやってみます

399 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 21:18:32 ]
>>395
DrawPrimitiveが減らせるので逆に高速化することが可能な場合も多々。
たとえばロボットみたいなものをパーツ毎にDPするよりは、ウェイト仕込んで
ボーンでドーンと1回のDPで描く方が実は速い。

400 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 00:29:29 ]
>>395
せめてそのウンコモデリングソフトが何か書いてくれないと

401 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 04:47:40 ]
>>399
言い訳にしか聞こえないw

402 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 06:45:56 ]
どう考えてもボーンとかよくわかってない人がとりあえず
頑張ってみました的臭いするやんか?



403 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 10:28:23 ]
>>401
昨今のグラフィックカードでは常識

404 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 14:53:11 ]
スキニングの計算をCPUでやることになるから
グラフィックカードあんまり関係なくね?

405 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 15:13:41 ]
ボーンを使おうが使うまいが階層のマトリックス演算は結局行なう。

そのマトリックスをWorldとして頂点シェーダーで計算するか、
スキン用のマトリックスとして頂点シェーダーで計算するかの違いだろ。

ボーンの場合Offset用の演算が加わるが、
DrawPrimtiveのコールはマトリックスの乗算とは比較にならないくらい重い。

スキンの処理までCPUでやるっつーなら話は別だけどDirectX7でやってるわけじゃないっしょ。

406 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 15:29:43 ]
スキンの処理までCPUでやるようにしないと、この輪郭線抽出はできませんよね?
ttp://www.twin-tail.jp/contents/vsdx8/d3d/011/index.htm

407 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 16:08:51 ]
>>406
DirectX7世代でやるならそうなる。

それ以上ならもっとよい方法が存在する。

408 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 20:43:33 ]
>>407
よかったら輪郭線抽出について情報いただけませんか

Zバッファの差を見る方法や、マテリアル境界を見る方法、モデルをちょっと太らせて裏返して黒描画する方法など色々調べましたが
406のURL先ほどまで「正確」で「自在な太さ」にできる術が見つかりませんでした

409 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 21:35:32 ]
トゥーンレンダリング

410 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 02:49:05 ]
>>406のは
希望をこめて絵を修正してるって書いてあるやん

411 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 03:21:23 ]
>>408
そこまで知りたいなら金だせよ

412 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 10:46:29 ]
>>408
自分で答え書いてるじゃん。
深度バッファやマテリアルの境界を輪郭検出のアルゴリズムで線を引けばいい。
その場合1ドットのラインしか引けないわけだが、
1ドットのラインを別のバッファに書いてそのバッファを上下左右にずらして
もう1度書くと太くなるというのはわかるかい?



413 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 21:09:08 ]
>>412
もちろんその手の「太くする」方法はわかりますが、
深度バッファ法はちょっとひいったアゴのような、深度差が浅い部分に輪郭線が出ません
マテリアル法でも同様です。

モデルをちょっと太らせて裏返す法や、406のURL先のものほど「正確な」ものはなかなかありません。

414 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 21:42:40 ]
内積が正か負で判断して線引く>>406のをシェーダでかけば同等の正確さじゃないの?

415 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 21:57:07 ]
○輪郭線アルゴリズム
確かに>>406のものが
最も正確でキレイに作れそうなので、
>>406を主にすべきだな。

○ジオメトリ操作は、なるべくGPUでやりたい。
1パス目:D3DFILL_SOLIDで描画
2パス目:D3DFILL_WIREFRAMEで描画

この2パス目を、先のアルゴリズムで
輪郭線のみ描かれるようにすればいいんじゃないの。

○線の太さは任意に変更したい。
これは、2パス目を>>412の方法で太くすればいいんじゃないの。

416 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 22:00:03 ]
>2パス目:D3DFILL_WIREFRAMEで描画
>
>この2パス目を、先のアルゴリズムで
>輪郭線のみ描かれるようにすればいいんじゃないの。
書いてから気付いたけど、これはちょっと難しいかなぁ


417 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 22:03:56 ]
>>414
頂点シェーダで線を引くことはできないと思いますけど…

>>415
その方法ですと、やはりアゴなどに輪郭線を出すことができませんよね。

418 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 22:05:38 ]
>>406のものと同等の正確さというのはかなり難しいなぁ…
GPUを使ったものは、やはり速さ優先で作られてるし

419 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 22:07:33 ]
うるせえ!!!

420 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 23:26:00 ]
「自在な太さ」というのが>>406だと結構難しいはずなので(あと処理がキツイだろこれ)
結局のところ割り増しモデルを裏返し手法に落ちついちゃうんだよなぁ。
精度は落ちるけど、押し出す頂点位置を距離によらず一定になるように頂点シェーダで
調整すればそれなりの見栄えにはなる。

421 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 23:31:03 ]
>>420
I3DXLine使えば太さは楽勝じゃね?
頂点データをもとに自前で線引いてるんだから

422 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 23:46:00 ]
>>421
使ったことないので知らんが、あれでは太くなったら普通に線の一部が元モデルにめり込むか、
Z値を考慮せずに描画されるならなおさらこの手法には使えないのでは?

一ドットの線ならZバイアス使わんでも自前で射影行列なり弄れば>>406の「理想」の線は描画できるが、
それ以上の太さになるとポリラインで表現することになり、そうなればどこまで線のZ値を前に押し出せば
元のモデルと重ならずに描画できるかは簡単には見積もれないはずだ。



423 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 09:25:17 ]
>>422
ああ、ごめん。モデル側にめり込むのはご法度って考えだったのね。
俺は太さ3までだったら、モデルに1ドットめり込むだけだから別にいいやって思ってたもんで

>一ドットの線ならZバイアス使わんでも自前で射影行列なり弄れば>>406の「理想」の線は描画できるが、
よかったらこのあたり、詳しく解説してくれないか


424 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 17:38:11 ]
法線方向にプッシュして裏返すのって、特許取ってなかったっけ?

425 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 21:26:54 ]
ちょっとD3DFILL_WIREFRAMEが話題にあがったから試してみたんだが
D3DFILL_WIREFRAMEにしてもD3DFILL_SOLIDと描画時間が一緒だったんだが…
何かの間違いだろうか?
PixelShaderの呼び出し回数が段違いだと思うのに…

426 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 21:46:10 ]
なら頂点シェーダーかCPUがボトルネックなんだろ。
たいした量描画してるわけじゃないなら大抵CPUがネック。

427 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 21:51:10 ]
質問です

今、PixelShaderを使う描画を学んでおり、自分のメインPCでは正しく動作しました。
試しにと、PixelShaderに対応していない(1.0にすら対応していない)古いサブマシンに持っていって動かしたところ、正しく動いてしまいました。
ここで疑問なのですが、何故正しく動いてしまったのでしょうか?

どうやら
PixelShader = compile ps_1_1 PS();
と書いた部分が、メインPCだと正しく適用されるが、サブPCだと無視され固定パイプライン(という呼び方でOK?)のPixelShaderにより描画されているっぽいです。

これはHLSLの仕様なのでしょうか?
てっきりHLSLのコンパイルエラーとなり、fxファイルのロードに失敗するかとふんでいたのですが…


428 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 21:53:26 ]
補足です。

>ここで疑問なのですが、何故正しく動いてしまったのでしょうか?
の時点では、書いていたPixelShaderが固定パイプラインのそれと同等だったため「正しく動いているように見えた」のです。
ためしにPS()内で必ず「黒」を返すようにしたところ
・メインPCでは正しく黒を
・サブPCでは通常通りの描画を
したため「サブPCではPS()が無視され、固定バイプラインのPixelShaderが呼ばれている」と判断したのです。

429 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 21:55:50 ]
>>426
どうやらボーンによる頂点変換(ソフトウェア処理)がボトルネックだったっぽ
すまん

430 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 22:36:13 ]
確かに俺の環境も
PS2.0世代のGPUのくせに
PS3.0コンパイルのShaderが
HWで動いているな。
多分これは、PS2.0に対応とか3.0に対応ではなく
2.0、3.0で追加された機能に対応しているという話だろう。
ただアンタの言うPSの代わりに固定機能が動くというのはないな。
勘違いだろ。

431 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 23:16:43 ]
対応してなくても動作はするけど
対応してないPCじゃコンパイルはできないよね
あとピクセルシェーダーの動作って
コンパイルしたマシン(のGPU?)に依存してる?
家のPCでテストした実行ファイルを仕事場のPCで動かすと
家のPCと同じ動作するけど
コンパイルしなおすと動作が変わったりする

432 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 23:29:40 ]
>>430
お返事ありがとうございます。

>ただアンタの言うPSの代わりに固定機能が動くというのはないな。
うーん、どういじっても
PixelShader = compile ps_1_1 PS();
の PS()の中身は無視されてしまいます。

float4 f = {1.0f, 1.0f, 1.0f, 1.0f}
return f;

という単純なPS()の中身ですら、メインPCだと正しく真っ白になり、
サブPCだとPixelShader = compile ps_1_1 PS();の宣言がないがごとく振舞います。

エフェクトは
D3DXCreateEffectFromFile
でロードしています。



433 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 23:34:51 ]
D3DXが気を利かせてくれてるのかねぇ・・?
PS非対応環境なんてもはや持ってないから、アドバイスできん。すまん

434 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 03:39:42 ]
なんもエラー出てないの?

435 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 15:10:21 ]
何もエラーでないですね…。
ただ、ReleaseビルドのEXEファイル生実行ですので、次はサブPCのVC6.0上でDebug実行し、D3DXのログ出力を見てみます。
家に帰るのは夜です

正直質問した時は、あっさり
「PSが無い環境では、compile ps_1_1 PS(); って記述は無視されて、固定パイプラインとして実行されるよ」
とかくるかと思っていたのですが…

436 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 22:44:35 ]
435です。
やはり特にエラーメッセージもなく、単にスルーされているだけっぽい動作です。
どなたか心当たりあるかたいらっしゃいませんかー?

仮説
PixelShader = compile ps_1_1 PS();
などは、動作環境のサポートバージョンが、コンパイル指定したバージョン未満の場合は
(エラーを出さず)変わりに固定パイプラインを呼び出す

437 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 23:55:38 ]
>>436
はじめにサポートバージョンってわからないっけ?CAPSで
つか、何がしたいんだっけ?

438 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 00:35:14 ]
>>436
それ固定昨日と頂点定義が一致してないとランタイムで死ぬだろ

439 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 09:47:00 ]
>>437
やりたいことというより、こういう動作をするものなの?という疑問を解決するのが目的ですね。
CAPSでシェーダのバージョンはとれるので、意図しない動作を起こさないようにバージョンではじくことは可能ですね。

>>438
ちょっといまいちわかりませんが、頂点シェーダでの出力定義が「(固定パイプライン的に)普通」じゃないとランタイムエラーになるということでしょうか?
そもそも頂点シェーダでは「普通」じゃない出力はできないと思っていましたが違うのでしょうか?
(だから計算結果とかを、使ってないテクスチャーUVの中に入れるとかでごまかして渡す)
とりあえず、そんなことをしている場合は描画がしっちゃかめっちゃかになりそうですね。

440 名前:788 [2008/05/13(火) 17:48:16 ]
directXのAppwizardってVC++6の時代のものですか?
UPdate Summer2003(v9.0b)では,CD3DApplicationという汎用クラスが
あったのに最新バージョンではなくなっています.
その代わり,DXUTというフレームワークがふんだんに使われています.

directXのバージョンによってプログラミングテクニックがころころ変化して
いるように見えるんですけど(1〜2年前の参考書が最新バージョンと大きく
食い違っている),いったいどのバージョンを勉強したらお得なんでしょうか?
小生,これからdirectXを勉強しようというものです.

やっぱり,最新バージョンでSDKを使ってシコシコ書くのがベストでしょうか?
MFCのdaialogベースでdirectxを使ってみたいのですが.

あと,DXUTを解説している本やサイト(英語でも可)があったら教えてください.


441 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 18:29:35 ]
ttp://www.kohgakusha.co.jp/books/detail/978-4-7775-1272-0
これとかか?

ただし、DXUTの仕様はSDKのバージョンごとに変わってたりするんで
そのまま使えるかどうかはしらね

442 名前:デフォルトの名無しさん [2008/05/13(火) 19:48:34 ]
>>441

ありがとうございます。早速、購入してみます。



443 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 20:05:47 ]
ID3DXLineって便利だけど
遅いの?

444 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 23:29:46 ]
>>439
例えば、自分が固定パイプラインと同じ機能をシェーダ使って実装するとしてどうなる?って話じゃねぇの

445 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 23:19:22 ]
シェーダの質問なのですが、
D3DFMT_R16FやD3DFMT_A8のように4要素のないテクスチャで
float4でtex2Dを取得した場合zやwはどんな値になるのでしょうか?
不定なのか、0が入るのか、前の値が保持されたままなのか、など教えていただけると助かります。

446 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 00:14:53 ]
ドキュメントくらいはちゃんと嫁。
float4(0, 0, 0, 1)に対して渡された要素が上書きされるイメージ。

447 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 00:28:16 ]
>>446
ありがとうございます。
ドキュメントの探し方が甘かったようです。申し訳ありません。

448 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 18:07:18 ]
www.geocities.co.jp/SiliconValley-Oakland/9582/GamePrg/JoyTest.lzh
のexeを実行するとちゃんと動くんだけど、ソースをVC++2008で、コンパイルするとうまく動かない。

どうも、lpDIJoyDev->QueryInterface でfalseが返ってるみたいだけど、どこ修正すればよい?



449 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 19:39:30 ]
>>448
PCに入ってるSDKのバージョンがそのソースの想定したSDKの
バージョンとあってないとコンパイルできないよ

450 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 20:46:38 ]
ごめん、コンパイルは通るけどオリジナルと挙動が違うってこと。。

451 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 20:50:07 ]
引数とかも違うだろ?

452 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 12:45:26 ]
>>450
exeがなかったので違いがわからないけどソースからビルドしたやつも普通に動作してるよ
挙動が違うとは具体的に何が違うの



453 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 16:21:26 ]
質問です。
Radeon 9600 series AGP 128MB(ドライバは ttp://ati.amd.com/support/drivers/2k/radeonx-2k.html )の環境にて、かなりおかしな挙動をしています。(OSはWindows2000)
何か情報ありませんでしょうか。
なお、その他の環境3個所くらいで試してみましたが、特に問題は見られませんでした。

・テクスチャーの表示がおかしい
256x256サイズのテクスチャーを10枚程度読み込んだあたりから、一部のテクスチャーの表示がおかしくなります。
テクスチャはD3DXCreateTextureFromFileで読んでいます。
テクスチャーが張られているモデルは、Xファイルで読み込んだ板ポリや、立方体などの単純なものです。

テクスチャーが張られているところが全体的にRGB(0,255,0)な感じに色になり、ほんのちょっとだけ元のテクスチャーの名残が見られるような、なんともバグった感じになります。
読み込むテクスチャーの数を減らすと、さっきバグって表示されていたものも綺麗に表示されます。
描画はプログラマブルシェーダを使わず、固定機能のものです。

・固定シェーダの挙動がおかしい
pDev->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_CURRENT);
pDev->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_TEXTURE);
pDev->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
pDev->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_CURRENT);
pDev->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_TEXTURE);
pDev->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE);

と設定しているのですが、
pDev->SetTexture(0, NULL);
pDev->SetTexture(1, pTexture1);
としたとき、pTexture1の色が乗算されません。

pDev->SetTexture(0, pTexture0);
pDev->SetTexture(1, pTexture1);
ではきちんと両方の色が反映されるようです。

Radeon 9600は比較的新しいボードですし、むしろ超古いGeForce2MX400とかではまともに表示されます。何か原因が思い当たる方いらっしゃいますでしょうか。

454 名前:デフォルトの名無しさん [2008/05/16(金) 16:37:56 ]
伝説巨人RADEON

455 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 16:52:15 ]
使い方がおかしい

456 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 17:01:16 ]
>>455
どこか、>>453の中に使い方がおかしいことを示す情報があったでしょうか?
ご教示願えればありがたいです

457 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 17:14:54 ]
ATIとnVIDIAの違いなんじゃね

458 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 17:43:47 ]
>>453の追加情報です。

pIDirect3D9->CreateDevice(adapter, D3DDEVTYPE_REF, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING | D3DCREATE_MULTITHREADED, ¶m, &pDevice);
REFモードならバグりようがあるまい。と思って試してみようとしたのですが、
RADEON環境だとこの生成に失敗しました。

…RADEONというものは、思いのほかDirect3Dと相性が悪いのでしょうか?

459 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 19:18:00 ]
>>453
SetTexture(0, NULL)してるのに、ステージ0でテクスチャ参照したら駄目だろう。

When a texture stage has D3DTSS_COLORARG1 equal to D3DTA_TEXTURE and
the texture pointer for the stage is NULL, this stage and all stages after it are not processed.

ARG1にD3DTA_TEXTUREをしておいて、テクスチャにNULLを設定するとそのステージ
以降が無効になる仕様だが、ARG2については何も書かれていないので未定義かも。

460 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 19:27:31 ]
>>459
なるほど。ARG2がテクスチャ、かつNULLなときに後のテクスチャを参照してくれていたのは
GeForceが「たまたま」そう定義していたからであったわけですね。
気をつけます。

ちなみにそこに気をつけるよう改良してみましたが、1番目の「・テクスチャーの表示がおかしい」は相変わらずです。


461 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 20:04:30 ]
>>460
それもなんかおかしいんじゃねぇの?w
基本的にnVidiaのボードは確かに未定義や
おかしな部分を変な風に救っちゃう設定だからRADEONで開発したほうがいいぜ
俺も開発のときにnVidiaのボード使ってて苦労した

462 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 20:16:19 ]
>>459
知らなかったw



463 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 20:24:29 ]
固定シェーダの恐怖だな
nVidiaとその他一部のボードでは動くんだけど
それ以外ではうんともすんとも言わないとかいう状況がありえる恐怖
(納期まで一週間とかいう状況ではじめてRADEONで動かして画面真っ黒になったときは血の気が引いたw)
HLSL使うようになってからそういう苦労は一応消えた

固定シェーダ止めるとこの辺はグッと楽になる

464 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 20:27:22 ]
>(納期まで一週間とかいう状況ではじめてRADEONで動かして画面真っ黒になったときは血の気が引いたw) >
いやあああああああ

465 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 21:05:12 ]
>>461
なるほど、とりあえずRADEONの購入は検討してみます

>>463
それは血の気が引きそうですね
私も公開するゲームを作っているので、なるべくRADEONにも対応したいところです
全てHLSLで書くのも検討していますが、「・テクスチャーの表示がおかしい」の件は、HLSLを使った描画の部分でも発症しているので困ったものです…

466 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 21:47:12 ]
DirectXの勉強をはじめたいのですがもう固定機能パイプライン?は無視してHLSLとかプログラマブルな
シェーダーの勉強を始めたほうがいいのでしょうか?

467 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 21:55:47 ]
自分の開発環境がプログラマブルシェーダに対応しているなら、そっちのみでいいと思われる。
VertexShaderは最低でもソフトウェアエミュレートができるし、
PixelShaderにしてももう対応していないグラボなんて存在しないと思っていい。




でもオンボは対応してねーんだよなぁ('A`)

468 名前:466 mailto:sage [2008/05/16(金) 21:58:34 ]
MSのカンファレンスでもらったVS2008スタンダードにGe7900gs、OSはXPです。
固定機能はさすがにいいですかね。

469 名前:466 mailto:sage [2008/05/16(金) 21:59:39 ]
ありがとうございました。

470 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 22:03:59 ]
皆さんノートPCのことも考えてあげてください
もしくはこの世から全てのオンボードPCを破壊してくださいマジでもう

471 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 22:15:54 ]
>>452
vc++2008ではまんまではコンパイルとおらなかったので、DInput.cppの

63行目 ret = DirectInput8Create(hinst,DIRECTINPUT_VERSION,IID_IDirectInput8,(void**)&lpDInput,NULL);
115行目 ret=lpDInput->EnumDevices(DI8DEVCLASS_GAMECTRL,InitJoystickInput,lpDInput,DIEDFL_ATTACHEDONLY);

に修正してコンパイルとおしたんだけど、126行目がfalseを返してくるの。


472 名前:453 mailto:sage [2008/05/16(金) 22:29:39 ]
色々アドバイスありがとうございました。

>・固定シェーダの挙動がおかしい
この件ですが、RADEON上だけでなく、GF上でもREFモードだとうまく表示できませんでした。
>>459さんのアドバイスがクリーンヒットだったようで、気をつけながら直したところ、REFでも綺麗に表示されるようになりました。
RADEON上でpTexture1が乗算されるようになったようです。
(ただし、pTexuter1自体がバグっているため、乗算はされたものの、おかしなテクスチャが乗算されています)

今後はREFモードでちょくちょくチェックしながらやっていきます。


現在は、RADEON使いと連絡がとれなくなってしまったため、
「・テクスチャーの表示がおかしい」については後日また調査して、報告します。
どうしても治らない場合はまた相談させていただくかと思いますが、その時はよろしくお願いします。



473 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 22:36:29 ]
お疲れさん
ちゃんと報告してくれる質問者は歓迎だぜ

474 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 23:08:47 ]
ウホッここを覗いててよかった
ラデオン買ってくる

475 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 07:41:55 ]
>>471
DIrectX 7以下じゃないと動かないよ
8にするなら全部書き換えろ

476 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 07:49:36 ]
>>448
Dinput.hに
#define DIRECTINPUT_VERSION 0x0700
を追加


477 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:09:42 ]
関係ないけど、DirectInputってウイルスバスターが不正変更で〜って怒るとない?
お兄さんたちはどうしてるのかな?

478 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:12:54 ]
あ、あれってDirectInputのせいなんだ。。。

僕の作ったソフトも怒られるから気になってたけど。。。

479 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 16:32:53 ]
ウイルスバスターはDirectInput使うと怒るのね
友人にテストしてもらったら
「不正な変更とか出る ウイルスだろこれ?」
とか言われたお

ネットワーク対応ゲームでも作ろうかと思うんだが、
DirectPlay使うのとWinSock使うのとどっちがいいんだろ
DirectPlyaはWinSockに比べるとダメだという話をよく聞くけど
どこがどうだめだかよくわかんね
手軽に実装するならDirectPlayのほうが楽そうにも感じる
そこら辺詳しい人いませんか?

480 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 17:25:02 ]
あんま詳しくないが、TCP使えないらしいお。
そういった制限があるから、やっぱ「お手軽通信」なイメージはある。
Winsockは、アプリケーションが使うTCP/IPの基本かつ全てだから
DirectPlayに出来てWinsockに出来ないことはない。
そういう意味だとオモ<Winsockに比べるとダメ

本当にTCPが使えないのなら、オンラインRPGには無理なだ。

481 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 18:00:21 ]
今右ドラッグで3Dオブジェクトを回転させるのをやっていて、とりあえず
D3DXQuaternionRotationYawPitchRoll(&q,マウスのX変移,マウスのY変移,0);
とやってそれっぽい動きにはなってるんですが、どうもメタセコとかと操作感が違うんですよね。
ドラッグ開始時にXYの回転軸を作って、それに対する回転てやりたいんですが
何使ったらいいですか?

482 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 18:11:10 ]
>>481
RotationYawPitchRollは角度が非常に小さければ任意軸周りの回転に
近い動きをするが、本来は全く違うもの。
マウスの移動量とZ軸で外積を取って、その軸周りの回転を使う。



483 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 18:20:19 ]
>>482
親切にありがとうございます。意味はなんとなく分かるんですが、頭がついて来れなくて・・・
で、それはZ回転が起こらない場合にのみ使えるんですよね?多分(今回はそれでもいいですが)

484 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 19:57:07 ]
>>479
色んな通信に対応しすぎてて、初期化が遅いのが一番の不満かな<Play
といってもPlay使ってたのはDirectX7の頃だから、改善されてるかもしれんが。

WinSockなら全ての通信を自分で把握できるのが強み。

485 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 20:27:13 ]
>>484
DirectPlayは廃止されて久しい。
WinSockを叩くのが一番無難で楽しい。

486 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 20:32:54 ]
WinSockだとセッションとかのゲーム的な概念がないから
そこらへんも全部自分で実装しなきゃならないんだよね?
WinSockのネットゲームで使えそうなお手ごろサンプルがあるといいんだけど

487 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 03:08:12 ]
質問です。
DirectXを使って2Dゲームを作ってみようと思ってMSDNのリファレンスを見ていたところ、
CreateVertexBuffer()で頂点バッファを作ってLockとUnLockの中で頂点を処理していました。
ですが、別のホームページにはこれらを使わずに描画してるページもありました。

2Dの場合はCreateVertexBufferを使わずに描画したほうがいいのでしょうか?
それともCreateVertexBufferを使わなくても描画出来るという解釈でいいのでしょうか?

488 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 03:22:35 ]
別にどういうやり方しても構わないよ。
ただ、
・頂点バッファをビデオメモリ上、AGPメモリ上に作ると描画が速い
・が、そういう場所に作った頂点バッファをLockするのは重い(ビデオカードの処理を止めるから)
・システムメモリ上に作った頂点バッファのロックなら遅くない(多分。)が、
 それは頂点バッファ作らない方法と同じこと。ビデオカードから遠いので描画は遅い

毎フレーム書き換えるような頂点配列なら、システムメモリに置くか
頂点バッファ使わずにやるのがのがいいんじゃないかと。
検証とかしたことないので間違ってたら指摘ヨロ

489 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 03:26:37 ]
チラシの裏にでも書いてろ

490 名前:487 mailto:sage [2008/05/19(月) 03:43:14 ]
>>488
なるほど、どっちの処理が重いかで使い分けるといいみたいですね。
ありがとうございます。

491 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 10:26:00 ]
>>488
追加⇒DYNAMICとDISCARDフラグを組み合わせると描画もLockも速いがメモリを食う。

492 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 13:56:52 ]
>>489
なるほど、チラシの裏ですね
よくわかりました



493 名前:472 mailto:sage [2008/05/19(月) 19:22:45 ]
色々アドバイスいただいた>>453です。
>>459さんのアドバイスによる修正のおかげか、RADEON上でも綺麗に表示されたそうです。
ありがとうございました。

D3DTSS_COLORARG1 にTEXTURE
D3DTSS_COLORARG2 にCURRENT
なるべくこうするのが吉。というわけですね。
大抵の初心者サイトがこうしている一方、時々は逆も見かけるようです。
他の人が同じ失敗しませんように…。

494 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 19:35:23 ]
チェックしたら見事に失敗してたわ
SDKをもう一回全部読み直したほうがいいかもなー・・・

495 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 20:06:53 ]
演出について質問
キャラが地面に着地した際、演出として着地点のまわりに衝撃波を立てたいと思っています
例えるなら、牛乳の入ったコップに牛乳を一滴おとした時にできる、王冠のようなものです

こういう演出はどのようにして実装するのが良いでしょうか?
今まではボーンアニメまでしかやったことがないのですが、モーフィングという技術のほうがより良さそうな気がしています

496 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 23:56:15 ]
>>495
スケーリングで十分

497 名前:487 mailto:sage [2008/05/20(火) 00:09:01 ]
>>492
調べてみたら動的に確保したメモリを静的に確保したように見せるとのことだったんですが、
これはVRAMとAGPメモリに確保して同期させるという解釈でいいのでしょうか?

498 名前:487 mailto:sage [2008/05/20(火) 00:09:52 ]
すいません>>492ではなく>>491でした

499 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 01:53:49 ]
>>497
昔はそうなんだが、現在のVGAだと諸々の理由でシステムメモリを介したコピーを
行っているものが多いので、動的な頂点バッファはほとんど意味を成さなくなっている。
経験で言うならシステムメモリよりも頂点バッファを使う方がパフォーマンスが高くなる
傾向があるのは確かだが、大半は大した性能差があるわけでもないし、
そもそも適切に扱うためのフラグ設定が頂点バッファはわかりにくいので、
個人的にはシステムメモリ(DrawIndexPrimitiveUP等)で実装することをお勧めする。

2Dスプライトの実装なんぞDrawPrimitiveのバッチ処理さえしておけば
それ以上は深く考えんでも良いと思うぞ。

500 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 08:28:59 ]
AGPメモリを使うか否かで動的なデータは速度に大差が出るぞ

501 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 12:44:39 ]
非同期で処理させるかの違い

502 名前:デフォルトの名無しさん [2008/05/20(火) 19:02:00 ]
まあ、自分のゲームでやってみるのが一番
つーのは想定している状況によりけりって感じだから
なんでも使える汎用ルーチンなんて作ろうと考えないで状況に応じて対処したほ




503 名前:487 mailto:sage [2008/05/20(火) 20:53:38 ]
>>499-502
2Dの処理にそこまで考える必要はないけど、
詳しく知りたい場合は自分のゲームで実装して調べたほうが早い、とのことなので、
時間に余裕があるときに調べてみたいと思います。
色々ありがとうございます!

504 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 21:17:01 ]
環境にもよるんじゃないか

505 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 21:49:34 ]
WinSockだとポート空けるのをユーザー側に頼まなければならないので
UPnP対応してるDirectPlayつかうことにしたぽ

506 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:42:13 ]
UPnPの対応はDirectPlayに頼らなくても簡単に出来るぞ

507 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:55:18 ]
>>506
www.bosuke.mine.nu/neta/upnp.shtml
これためしてみたけどルータがふるくてだめだった
しかしDirectPlayだとポート開放しなくても通信できる

もっといい方法があるならおしえてくださいませ

508 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:56:06 ]
Direct3D9.0のデバイスロストからの復帰で
・D3DPOOL_DEFAULTのテクスチャ解放
・D3DXFONTのOnLostDevice()呼び出し     この2つは順番適当
・D3DXSpriteのOnLostDevice()呼び出し

   pDevice -> Reset(&Param);

・D3DXSpriteのOnResetDevice()呼び出し
・D3DPOOL_DEFAULTのテクスチャ確保
・D3DXFONTのOnResetDevice()呼び出し     この2つは順番適当
・レンダーステートの回復

てやってるんだけど、画面真っ暗です。これ以外に何やるんでしょう?
あと順番に決まりはあるんでしょうか?

509 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 23:03:40 ]
>>508
確保したリソースの解放をちゃんとしましょう。
Debug Runtimeでエラーメッセージの確認をしましょう。

510 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 20:30:26 ]
>>506
ひょっとして upnp.h とか使うの?
ネット探しても具体的なやりかたが乗ってるところがないのが困る

511 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 23:15:17 ]
>>510
ttp://www.bosuke.mine.nu/neta/upnp.shtml
おもくそ有名なサイトがあるわけで
ぐぐろうよ

512 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 00:12:19 ]
お前は空気読め



513 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 02:01:13 ]
「頂点ベースの描画」という言葉の意味がよく分かりません
対になるものは何でしょうか?

514 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 16:48:56 ]
ポリゴンで描画(3つの頂点)で描画と思ったらいいんじゃね?
ポリゴン2個で四角形になるお

515 名前:513 mailto:sage [2008/05/22(木) 16:53:09 ]
>>514
知識不足ですみませんが、そうでない描画の方法があるのでしょうか?

516 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 16:56:14 ]
つーか、「ポリゴンで描画で描画」ってなんだよ。

517 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 17:25:02 ]
そもそも
「頂点ベースの描画」なんて聞いたことがない

518 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 17:28:55 ]
>"ポリゴンで描画で描画"との一致はありません。
>"頂点ベースの描画"の検索結果 1 件中 1 - 1 件目 (0.14 秒)
>"頂点ベース" の検索結果 約 148 件中 1 - 10 件目 (0.24 秒)

519 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 17:59:10 ]
頂点シェーダーでライト当てるかピクセルシェーダーでライト当てるかって事でないん?
そのくらいしかない気がするんだが。

520 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 19:50:11 ]
>>513
どこで頂点ベースって聞いたんだよ?

>そうでない
DirectDrawのスプライト描画のことじゃね?

さいきんのゆとりはDirectX7以前を知らんのか

521 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 19:50:44 ]
ポリゴンで描画の間違い

522 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:30:57 ]
そもそもDirectXにスプライトなど存在しない



523 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:39:14 ]
ジオメトリベースド
イメージベースド

524 名前:508 mailto:sage [2008/05/22(木) 23:22:56 ]
バックバッファの解放と確保
ステンシルの解放と確保も付けたんですが、まだPresent(0,0,0,0)がD3DERR_DEVICELOSTを
出してきます。何が足りないんでしょうかT-T

525 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:27:27 ]
それは作った本人にしかワカリマセン。

526 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:29:53 ]
POOL以外で作ったテクスチャとか頂点とか全部削除する

527 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:32:30 ]
>>526
StateBlockとかもだな。

EffecとかFontとかSpriteも中でStateBlock作ってるからロスト対策が要るけどなー

528 名前:508 mailto:sage [2008/05/22(木) 23:45:28 ]
フロントバッファは何もしなくていいんでしょうか?StateBlockは作ってるつもり
はないんですが・・・何か他に暗黙的なものがあったら教えていただけないでしょうか?

529 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:52:57 ]
スレ住人が超能力に目覚めるよりはソースを出す方が解決は早い思います。

530 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:53:04 ]
D3DX〜系のLostDevice()は全部やってる?

531 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 00:16:03 ]
DX10で作ればおk

532 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 00:17:15 ]
Resetしてないんだろwww



533 名前:508 mailto:sage [2008/05/23(金) 00:43:08 ]
>>528ソースのみですか?関係ないクラスを除いた抜粋でいいですか?
>>530フォントとスプライトなら呼んでます。
>>532Resetからの返り値も出力してるので多分大丈夫だと思います・・・

534 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 00:53:32 ]
ResetはPresenがD3DERR_DEVICELOST以外を返した後の話だから関係なくね?

535 名前:508 mailto:sage [2008/05/23(金) 00:58:54 ]
ttp://ccfa.info/cgi-bin/up/src/up19318.zip
なんかいろいろ言われそうで怖い・・・よろしくお願いします。

536 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 12:09:02 ]
現在、大学3年でシェーダーの勉強をしています。
それで、データの可視化の研究をしてみたいと思うようになったのですが、シェーダーの出番ってありますか?
無駄になるのもなあと思っているのですが。
OpenGLも少し勉強したことはあったのですが、可視化の分野はどちらを使ったほうがいいでしょうか?
また、仮にシェーダーを使う場合、どのような研究のネタがあるでしょうか?

537 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 13:04:30 ]
どう可視化したいのかも書かずに質問とな?

538 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 13:10:17 ]
と言うか、綺麗に見せたきゃ使うような物だからあんまり意味なくね?

539 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 14:29:49 ]
>>535
common.h無いいわれるお
できればプロジェクトもあげてほすぃ
デバッグしやすい

540 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 15:47:51 ]
関係ないが Graphics::drawSprite のBegin End の対応がおかしい

541 名前:508 mailto:sage [2008/05/23(金) 19:03:13 ]
>>539
ttp://ccfa.info/cgi-bin/up/src/up19342.zip
プロジェクトはBCCのしかなかったので、ついてません。申し訳ないです。
>>540
多分治ってると思います(?
C++と窓とDirectX同時に勉強してたんで、拙いところがたくさんありますが

542 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:08:12 ]
現在ブロック崩しを製作中なのですが、もし「20個あるブロックがなくなったら」という状況を表現するために下記のように打ったら、「error C2106: '=' : 左のオペランドが、左辺値になっていません」とエラーが出ました。
どうすればいいのでしょうか。

if(block1==0&&block2==0&&block3==0&&block4==0&&block5==0&&block6==0&&block7==0&&block8==0&&
block9==0&&block10==0&&block11=0&&block12==0&&block13==0&&block14==0&&block15==0&&
block16==0&&block17==0&&block18==0&&block19==0&&block20==0)



543 名前:デフォルトの名無しさん [2008/05/23(金) 23:12:19 ]
すいません、正式に言うと「ブロックがなくなったら」ではなく、「ブロック変数がゼロになったら」でしたね

544 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:25:17 ]
block11=0

545 名前:508 mailto:sage [2008/05/23(金) 23:26:17 ]
よくこの釣り間違い探しをやるな

546 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:26:42 ]
>>544
intした名前が「block11」だったのがまずかったってことですか?

547 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:40:00 ]
>>546
マジで言っているならプログラミングなんてやめて旅にでも出ることをお勧めしておく。

548 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:42:28 ]
>>547
今気がつきました=が一つしかありませんでしたね
初歩的なミスでした

549 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:43:40 ]
もっと根本的に変数使いすぎ
配列など、別のアプローチを考えれ

550 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:46:02 ]
いやあ、恥ずかしいです…

551 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:48:11 ]
配列はおろか、ブロックの数をカウントするカウンター作ったほうがいいだろ…。あとここDirectXスレ…

552 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:51:29 ]
おっとここはDirectXスレだったな
釣られちまったぜ



553 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 01:25:59 ]
>>545
誰もやってない悪寒。
少なくとも俺はソースがあまりにひどかったので1度動かして消した。

554 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 11:40:55 ]
この前RADEONだと色々厳密という話しがでたので、RADEON買って来て試してみた
今まで遊びで作ってたほとんどのゲーム、まともにうごかねえw
色々見直そう

555 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 12:02:08 ]
Radeon、Geforce両方をDebugRuntimeでチェックするのがベスト。
nVidiaのドライバーは空気を読見すぎるのが困る。
しいていうならタグが変でも一応見れちゃうIEと手厳しいネスケの違いみたいなもんか。

556 名前:508 mailto:sage [2008/05/24(土) 12:18:10 ]
>>553
545のは直上の人に言った言葉です
ていうか、特に何がやばそうでしたか?

557 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:05:57 ]
>>556
まずアプリの終了時にバックバッファ解放してないだろ。
Getしたものは全部Releaseしろ。

あとSDKいれてるならDebugRuntimeで試せ。
それなら終了時に解放してなかったりD3Dエラーが出たときにデバッガで落ちるようになる。

558 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 14:31:53 ]
CComPtrマンセー

559 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 16:51:30 ]
俺はこんな感じでやってるわ

class ICallbackDeviceReset
{
public:
ICallbackDeviceReset();// std::setでつくられたグローバルリストに登録
virtual ~ICallbackDeviceReset();// std::setでつくられたグローバルリストから解除

virtual OnLostDevice()=0;
virtual OnResetDevice()=0;
};

デバイスのロスト>リセット時に呼び出されたいクラスは、このクラスを継承するようにすれば
自動的に呼び出されるようになる。

560 名前:508 mailto:sage [2008/05/24(土) 16:59:16 ]
>>557
バックバッファの解放とはGraphicsオブジェクトにセットしたポインタをリリースしろということでしょうか?
それならばGraphicsオブジェクト終了時に自動解放されています。
ところが、デバッグモードで見たらMemory still allocated! Alloc count = 94の文字がorz
しかもAllocIDが出ないので、何がまずいのか分かりませんでした・・・
CreateDeviceの際にパラメータに書いてあるバックバッファやステンシルバッファといった物は
明示的な解放はいらないですよね?

>>559std::setがstd::listなだけでまったく同じことしてます。

561 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:06:50 ]
>>560
listに入ってないリソースを疑うか
listの処理そのものを疑え。

562 名前:508 mailto:sage [2008/05/24(土) 17:27:19 ]
リリース忘れはどうやらスプライトのようでした・・・
これで先のエラーは出なくなったんですが、Ctrl+Del+Altを押した時に
Direct3D9: (ERROR) :Device is in an invalid state. Only Reset, TestCooperativeLevel or Release could be called
がひたすら出てしまいました。デバイスロストからの復帰に失敗してるんでしょうが、なにぶんメッセージの意味が分かりません

>>561どうやらlistが怪しいようです・・・。ここをもうちょい詰めてみます。



563 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:54:12 ]
>>562
listだと、アドレスを登録する時に
・重複が怖い(コンストラクタでのみ自動登録されるなら心配ないが)
・解放時の検索速度が、setのほうが圧倒的に速い
って利点があるぜ。

ソース見ようとしたけど404だったんで突っ込んだアドバイスしてあげられないな。
もう一回UPする気ない?(スプライト修正版を)

564 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:54:58 ]
なんか日本語があからさまにおかしいが、脳内補完してくれ。
setのほうがいいよってことで(;´Д`)

565 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:58:53 ]
メッセージの意味は、

デバイスが不正な状態になってます。
この場合、Reset、TestCooperativeLevel、Releaseのどれかのメソッドしか呼び出せません。

つまり、まぁデバイスがロストしてるよと。復帰させるか、あきらめろと。

566 名前:508 mailto:sage [2008/05/24(土) 18:01:32 ]
>>563
リストどうやら間違ってませんでした。
ttp://ccfa.info/cgi-bin/up/src/up19435.zip
よろしくお願いします。

567 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:16:31 ]
oggがどこで生成されるのか謎だからあくまで予測なんだが

デバイスを作成したスレッドと、デバイスをリセットしようとするスレッド。
違うスレッドになってね?
全部リソース解放してても、スレッドが違うと失敗するんだが。

568 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:26:22 ]
すまん、oggの作成場所発見したわ。
同じスレッド上だな。

しかし綺麗なソースだな。
うちの部下どもに爪の垢を煎じて飲ませてやりたいわ

パッと見問題はなさそうな分、とりあえずD3D関連の生成物を全部カットしてリセットして、問題なければ一部だけ生成するようにしてリセットしてみて…
ってやっていくしかないなぁ

569 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:47:42 ]

Graphics& GameWindow::getGraphics(){
if(device != NULL && g.target->target == NULL){
device->GetBackBuffer(0,0,D3DBACKBUFFER_TYPE_MONO,&(g.target->target));
}
return g;
}

ここのバックバッファをReleaseしてないのが原因じゃねーか?

570 名前:508 mailto:sage [2008/05/24(土) 19:03:26 ]
>>569できたお
ありがとうございました。

ところでテクスチャからサーフェイスをGetしていた場合Releaseの順番てどちらからでも問題ないですか?

571 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:07:54 ]
作ったのと逆の順で解放するのが良い。
そうしなかった場合不具合が起きるかは未検証だが、プログラムでは逆順解放が基本。

サーフェイスは描画前に取得して、描画終わったらさっさとReleaseしちゃいな。
取得にほとんど時間かからないから。

572 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:42:45 ]
CComPtrとか使えって言ってんだろ。初歩的なミスが綺麗さっぱりなくなるぜ?



573 名前:508 mailto:sage [2008/05/24(土) 19:50:08 ]
>>572
CComPtrってデバイスロストでもリリースとかしてくれるんですか?
なんか話のポイントが違う気が・・・

574 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:50:52 ]
>>572
確保しっぱなしだったから、結局はデバイスリセットの時に正しく解放できなかったと思うぜw

そういや508よ。
「ベース メンバ初期化リストで使用されました」
のワーニング出てたぞ。直しておけよ。

575 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:04:05 ]
warningをちゃんと潰す、DebugRuntimeでエラーがない事を確認する、
nVidiaのドライバはATiに比べるとかなりエラーに甘いのでちゃんと
nVidiaとATiの両方で動作確認をしっかり行なう。

576 名前:508 mailto:sage [2008/05/24(土) 20:39:35 ]
>>574マジすか・・・BCCでは出なかったのに、工夫してみます。
本当に親切にありがとうございました。ノシ


577 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 21:13:16 ]
デバッグの警告レベルを最大にしたら
(WARN) :Ignoring redundant SetTextureStageState
が出まくるんだけど・・・
かといって、デフォルト値使われるのかと思ってコメントアウトしたら全然違う動作しやがる

578 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 21:42:26 ]
同じのを何度も設定してるんでないの?
最大レベルだとどうでもいいwarningが大量にでるから1レベル下がいいよ。

579 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 21:50:56 ]
あるねー>どうでもいいwarning
なんか最近のVCで昔ながらのstr〜関数を使うだけで
警告出しやがるようになりやがったし
VC作った奴の感性がちょっとわからなくなった
リソースわけられないとかそっちの方をどうにかしてほしいのに
余計なもんばっかり増えていくな

580 名前:577 mailto:sage [2008/05/24(土) 21:52:09 ]
何度も設定はしていないけど、
一番最初に描画される時にも出てるから、そこで警告出るんならデフォルト値使われてるのかな、と思ったんだけど、
ちゃんと設定しないときちんと描画されない。
余計な警告は無視する方が吉みたいですね

581 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 21:59:51 ]
警告でウザイのは、例外を使ったときのだな。
わかって使ってるのに

582 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 22:25:58 ]
>>580
それはデフォルト値が使われているという警告じゃなくて、
Aという値を前回セットしたにも関わらず、同じ値をセットしたときに起きる。
フレームをまたいでもチェックされる。



583 名前:577 mailto:sage [2008/05/24(土) 22:36:24 ]
いやだから、一番初めにセットした時に出るってことは、デフォルト値とかぶってるんじゃないのか、
と思ってたってこと

584 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 00:22:38 ]
DirectXで両面ポリゴンは、描画可能なのでしょうか?

585 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 00:26:38 ]
可能です!

586 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 00:41:07 ]
ありがと。
エクスポートがうまくいかなかったのかな…。

もしかして、なにか設定が必要ですか?

587 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 00:47:21 ]
自己レスです。
LW使ってたのですが、付属プラグインは片面になってしまうそうで・・・。
LWからのエクスポートで、何か方法を知っていたら教えてください。

588 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 01:13:55 ]
実行時のD3DのSetRenderState()の設定次第なんだが・・・

589 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 01:23:46 ]
LWでダブルサイド指定じゃなく、
ちゃんと倍の頂点使って裏のポリゴンを作っておく

エクスポート時に、ダブルサイド指定のポリゴンを
裏ポリ用頂点を作ってくれるエクスポーターなんて知らんね…

UVやらマテリアルやら関係なく、ただ両面描画しれてば良いだけなら
>588の言う通り

590 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 01:45:51 ]
とりあえずD3DRS_CULLMODE(ですよね?)を指定しておき、
あとで裏にポリゴンを作ろうと思います。
ありがとうございました。

591 名前:デフォルトの名無しさん [2008/05/25(日) 06:32:23 ]
Xファイルを出力、編集するソフトって何がありますか?

592 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 09:44:08 ]
メタセコイア
有料版でもインポート・エクスポート以外は使える。
その.mqoをLEで読み込めば・・・・



593 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 10:23:25 ]
現状、メタセコでモデル作成。POSERでBVH作成。LWで合成してXファイルで出力
ってやってるわ

594 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 11:26:51 ]
DLL_APIってなんですか?DLLを作る命令?

595 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 12:04:04 ]
>>594
マルチすなや。

596 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 16:40:33 ]
デバイスロスト時ってもしかしてSetTextureStageStateで設定した情報も失われてる!?

597 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 18:53:43 ]
Presentしたらステート必ずセットし直すか、ステートブロックでも使え。


598 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 18:57:10 ]
Xファイルに出力したカメラのアニメーションを利用したいのですが、どうすればいいのでしょうか?

599 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 19:06:22 ]
>>597
ステートブロックはデバイスロストしたら一緒にロストすんぞ。

>>598
どうもこうもアニメーション情報を読んで再生する。

600 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 03:43:28 ]
フルスクリーンのときにスクリーンサイズを600×400にするとCreateDeviceに失敗し、
640×480などのサイズにすると成功するんですが、どういった理由でこうなるのですか?

LPDIRECT3D9 p_d3d;
D3DPRESENT_PARAMETERS d3dpp;
D3DDISPLAYMODE d3ddm;

p_d3d = Direct3DCreate9(D3D_SDK_VERSION);
m_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm);

ZeroMemory(&m_D3Dpp, sizeof(D3DPRESENT_PARAMETERS));
d3dpp.BackBufferCount = 1;
m_D3Dpp.Windowed = TRUE;
m_D3Dpp.BackBufferFormat = d3ddm.Format;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
// ここまで同じ設定

d3dpp.BackBufferWidth = 600;
d3dpp.BackBufferHeight = 400;
// これをCreateDeviceに指定すると失敗する

d3dpp.BackBufferWidth = 640;
d3dpp.BackBufferHeight = 480;
// これをCreateDeviceに指定すると成功する

601 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 05:26:43 ]
600x400のモードをデバイスがサポートしてないだけじゃないの?
関数の戻り値とか調べてください

602 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 08:55:42 ]
600x400なんて画面モード、存在するのか?



603 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 12:36:49 ]
>>600
グラフィックボードで使える解像度じゃないからだよ
EnumAdapterModes( )でそのデバイスで使える解像度を列挙できるからその中から選べ

604 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 17:09:35 ]
>>602
PC-98時代の遺産だな。仕事で出会う確立はもはやレアだろ。

605 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 17:31:36 ]
PC-98でも横は640だし・・・

606 名前:604 mailto:sage [2008/05/28(水) 17:54:34 ]
をや??・・・640×400と見間違えた。

607 名前:600 mailto:sage [2008/05/28(水) 20:59:35 ]
>>601-606
なるほど、使用出来る解像度の問題だったんですね。
ありがとうございます。

ついでに質問なんですが、解像度は現在のディスプレイの解像度を使ったほうがいいのでしょうか?
それとも各ディスプレイごとに使用出来る解像度を調べて、自分のプログラムにあった解像度を選んだほうがいいのでしょうか?


608 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 21:09:54 ]
>>607
他のゲームを参考に汁
どっちのタイプもあるよ
自分の合う方法を探せ

609 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 21:18:53 ]
320×240,640×480,800×600,1024×768のどれかなら、
必要な解像度を動作環境に明記しとけば大丈夫。
一般的な解像度はこの辺だからな。

610 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 21:21:45 ]
そういや、2Dゲーは解像度固定が、3Dゲーは解像度可変が多いよな。

611 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 21:30:33 ]
ポリゴンは解像度に依存しにくいからな

612 名前:600 mailto:sage [2008/05/29(木) 01:10:37 ]
>>608-611
他のゲームの解像度と一般的な解像度と開発環境などと相談して決めるのがよさそうなので、
そこらへんを考慮しつつ可変か固定か決めてみたいと思います。
ありがとうございました。



613 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 12:25:43 ]
>>609
320×240
↑はWindowsではぜんぜん一般的じゃないっぽ

614 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 12:37:57 ]
320x240でスクリーンショット撮ってみた
neko-loader.net/pict/src/neko22282.jpg


615 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 12:55:35 ]
出来ないとはいってないってw
オンボードとかだとこけるやつが結構あるって話
無理に使う必要もないしね

616 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 12:56:04 ]
>>614
快適にWindowsライフが過ごせそうですね

617 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 13:37:54 ]
せっかくだからVisualStudioとかでやってほしかったぜ

618 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 14:14:49 ]
320x240は画面プロパティからは選べなくても、内部的にサポートしてる場合が多いよ。
というか、サポートしてないのみたことないな…。
同人ゲームで恐縮だが、EFZという格闘ゲームがフルスク320x240固定なんだが、動作しないって人聞いた事ない

619 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 15:31:40 ]
256色を使えないXPが無いのと同じだよな

620 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 15:43:50 ]
>>618
ゲーム画面が320x240でも、
640x480で画面作って拡大して描画してる場合もあると思う。

グラフィックボードがしょぼくてソフトウェアレンダリングな同人が流行ってた頃、
このサポートはどこでもやってたような気がする。


621 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 17:32:40 ]
www.tasofro.net/cgi-bin/cbbs00/cf.cgi?mode=all&mo=1834&namber=1832&rev=0&page=0

[1832] 【技術サポート】 起動できません-

■親トピック/記事引用■

□投稿者/ ミステイク -(2007/01/03(Wed) 21:22:48)

はじめまして、本日EFZを買ったのですが、インストールした後、起動できませんでした。
起動させると、画面が真っ暗になって「320※240の解像度の設定に失敗しました」と表示されます。
どうすれば起動できるのでしょうか?
もしかすると、解像度に問題があるのかもしれませんが・・・。

OSはXp、解像度は最低でも800×600です。


EFZワロス

622 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 17:33:40 ]
と思ってたが、640x480もサポートしないディスプレイとかあるのか。
引き延ばしできないノートとかでありそうだな。
レアすぎるから、
これは無視してもいいか。



623 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 17:43:20 ]
>>609
明記が必須かも試練。w

624 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 18:11:11 ]
>>622
EeePCがダメだった希ガス>640*480
あと、Pivot使っていると480*640は選択できるが640*480は選択できなくなる。

625 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 18:14:37 ]
まぁ、最近のビデオチップはハードウェア的にはどんな解像度でもいけるが、
ドライバで制限してるだけなんだけどね。

626 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 18:41:46 ]
サポートするのは、最近だけじゃねえよ

627 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 20:17:09 ]
>>621
そうそうそうそう
解像度の最低ラインが800x600になったおかげで
昔のフルスクリーンのゲームが起動できなくなったのな
後、256色のゲームも起動不可

628 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 20:56:57 ]
つかWindowsXPは640x480を正式サポート対象外にしてた憶えがあるぞ
あやふやだけど

629 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 10:24:06 ]
うっそ、640x480+16色 はハードが絶対サポートしてるんじゃねーのかよw
ドライバいれてない時や、セーフモード時はどうなってんだそれ

630 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 10:26:33 ]
winならMSの標準ドライバがインストールされてるしょ

631 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 11:20:48 ]
XP以降は画面のプロパティで選択できないように制限かけてるだけで
640*480が使えないわけじゃないよ。8bitカラーだって使える。

632 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 12:18:09 ]
>>627
間違っています。
以上。
はい次の方。



633 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 14:48:58 ]
uzeeeeeeeeeee
結局、普通に640x480使えねーのがあるってことでいいじゃないか


634 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 14:55:07 ]
あるの?

635 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 15:10:35 ]
>>633
いや、ほんとに640x480が動かないPCなんてあるの?って話なんだが。
確たるソースある?

636 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 15:23:53 ]
>>621

637 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 15:28:23 ]
640x480の解像度にできない -OKWave
okwave.jp/qa2299134.html

638 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 15:33:46 ]
>>637
思いっきり9x系からXPに移ったPC初心者の書き込みじゃねーかw

639 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 15:35:56 ]
DirectXで640x480に設定できないのかという話じゃないのかね

640 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 15:50:10 ]
blog-imgs-40.fc2.com/n/e/t/netamichelin/2008052810.jpg

641 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 16:33:11 ]
>>635
動く、動かない、という話じゃなくXPで640x480はサポートできないだろって話
WinXPの通常使用のシステム要件に、「800x600以上対応のVGAが必要」というのがある以上、
640x480でWinXPが動かなくても、XPで800x600未満が選択できないPCがあったとしても
「それは残念でした。640x480を使うので、Win2000とかで動かしてみてください」と
返すのが正常、という話。

642 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 17:36:35 ]
>>641
意味わからん

「XPの動作には800x600以上対応のVGAが必要」であることと、
XPで640x480でフルスクリーンモードのデバイスが作れないこと。
これらはイコールではないでしょ。

「XP用のドライバでは640x480をサポートしなくても構いません」と規定されているのかという話をしてるの。



643 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 17:56:37 ]
おまえらもういいだろうw

644 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 19:02:55 ]
ところで本当は何について話していたの?

645 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 19:16:22 ]
2Dゲーの解像度のサポートを何処までやるか?だったっけ?

646 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 21:04:30 ]
古いエロゲーがどこまで動くかですよあやよさん

647 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 21:30:02 ]
>>641
OS的に選べないようにしてるだけで、グラボのプロパティからなら
余裕で320x240とか選べるようになってる。

つまりDirectX利用可能。

648 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 21:44:09 ]
ちょっとまて、俺、今普通に640x480解像度のDirectXつかったゲームしてるんだが、XP64bitで。

649 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 21:45:56 ]
もういいよお前ら
自重しろ

650 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 21:53:47 ]
>>635
インクレティブマシーンが動かなくなってる
まず256色に変更できない
ディスプレイはサポートしてる

いま、こんな状況

651 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 22:29:32 ]
256はわかったから、640はどうなんだよ

652 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 23:49:00 ]
>>650
だから、変更できないってなんだよ…
画面プロパティからは変更できないだろ、XPとか使ってれば。

ここはDirectXスレだっての



653 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 04:02:15 ]
DirectXのスレで画面プロパティとかアホですか

654 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 04:37:37 ]
>>652
だから、アプリの方でエラーがでちまって起動できないっての

655 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 06:30:42 ]
256はわかったから、640はどうなんだよ!

656 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 06:36:12 ]
>>651,655
うるせー

657 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 07:03:44 ]
どうなんだと聞いている
答えろ

658 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 07:31:58 ]
今日はここに沸いてるのか

659 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 10:06:09 ]
640×480は256色しかサポートしてないってメーカーPCも昔あったな

まぁ結局の所解像度決め打ちにしてるなら動く解像度を動作環境内に書いておけってことだ。
Windowsなんてタダででもいろんな環境がありすぎるんだから全部テストなんて出来ん。
解像度くらいはプロパティから数値が見えるんだから環境限定でいいだろ。
グラボのDXサポート状況に比べればどうと言うことはない

660 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 10:08:28 ]
フルスクリーンじゃなくて窓を開いて640×480の256色モードとかなら
XPもサポートしてるよ

Delphi Graphic Secretsという本を持っているんだがここでいろいろな
画面モードを実験している

661 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 22:20:22 ]
LPD3DXSPRITE::DrawとLPDIRECT3DDEVICE9::DrawPrimitiveを両方使ってるのですが
前者より手前に後者を描画するにはどうすればいいですか?
描画の順番変えても必ずスプライトが前になってしまいます

662 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 22:23:07 ]
Z



663 名前:661 mailto:sage [2008/05/31(土) 22:59:42 ]
解決しました
位置のZ座標指定してもうまく処理されないと思ったらClearするときにZバッファ指定してなかっただけでした。
スプライトのZ座標は描画順だけらしいので交錯させる等複雑な描画をしたい時は完全にDrawPrimitiveの方に統一するしかないですか?

664 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 15:22:51 ]
SetRenderState( D3DRS_ZENABLE , FALSE );
3DやらないならZバッファ使わんだろ
使ってもいいけど
使わん方が早いだろ
ついでにステンシルバッファも作らなくていいし
クリア時もZ消さなくていいし

665 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 20:16:47 ]
>>664
Zテストの前から描画って2Dだとそんな効果ねぇっけ?

666 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 21:18:21 ]
>>665
半透明や加算合成を一切使わず、抜き色で使うアルファ値も
エッジにAA効果を持たせない二値限定のスプライトが前面に多く
描画されると仮定できる状況なら、大幅にフィルレートを稼げるかもね

でなけりゃただの逆効果

667 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 01:02:57 ]
>>666
α値が0%(不透過)のところだけZバッファだけ書き込んでなんとかならんかったっけ?

668 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 02:25:36 ]
>>667
だからカラーキー目的で二値しかアルファ値使ってなけりゃ、アルファテストでいけるよ

でもエッジにアンチェリ(段階的なアルファ値の適用)使った時点で駄目だし、
当然アルファブレンドも使えないしで、2Dスプライトの描画において深度バッファで
速度が稼げるってのは結構レアケースだと思うよ

669 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 03:29:40 ]
>>668
α値が1のときだけ〜って処理いけんかったっけ?
まあ、いけたとしてもそんなに早くないか・・・

670 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 09:54:29 ]
かなり重いピクセルシェーダーを使わない限り深度バッファでの高速化って恩恵ないだろ

671 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 13:21:37 ]
もしくは、点を打つのが激重なグラボ

672 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 19:07:07 ]
俺のディスプレイ
最低解像度800x600だった
でも、640x480できたお



673 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 20:03:27 ]
>>671
なんだその存在価値のなさげなグラボは

674 名前:デフォルトの名無しさん [2008/06/04(水) 00:19:51 ]
自分で定義した頂点情報をDrawPrimitiveで表示するときや、
読み込んだXファイルをDrawSubSet()で表示するときなどにmaterialを設定しても描画に反映されません

D3DXCreateSphere()等で取得したメッシュをDrawSubSet()する場合は反映されます
materialを有効にするにはSetMaterial()以外に何か設定が必要なのでしょうか?

675 名前:674 mailto:sage [2008/06/04(水) 01:53:23 ]
すいません、自己解決しました
D3DRS_DIFFUSEMATERIALSOURCEでマテリアルを参照するよう設定するのを忘れていました

676 名前:デフォルトの名無しさん [2008/06/04(水) 19:25:36 ]
ビルドは上手くいくのに実行するとすぐに終了されてしまいます
DirectX 9.0 SDK Update (Summer 2003)
に変えてからこうなりました
以前はSummer 2004を使っていたのですが不具合が色々あったので変えました

もしかしたらDirectXの設定がおかしいのかもしれませんわかる方いたら教えていただきたく思います

677 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 19:36:42 ]
ブレークポイントしかけて、ステップ実行してみれば?

678 名前:676 mailto:sage [2008/06/04(水) 19:58:37 ]
すみません
BCC Developerを使っているのですがブレークポイントの設定の仕方がわかりません…

679 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 20:01:10 ]
>>678
VC(正規OSならタダでダウンロード可能)にしてやってみるか
printfをおきまくれ

680 名前:676 mailto:sage [2008/06/04(水) 20:10:01 ]
VCは以前インストールしようとしたのですが
「サーバとの接続を再度確立します」と表示されてインストールできなかったのでやめました

自分で組んだプログラムではなく、サンプルをダウンロードして実行しようとしただけなのでコードに問題は無いと思います
Summer 2004で実行したときは大丈夫でしたが
Summer 2003に変えてからおかしくなりました

おそらくDirectXの設定を間違えていると思うのですが…


681 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 20:14:09 ]
なんだバージョンダウンかよ
DX関数に必要なDLLがないんじゃね?

682 名前:676 mailto:sage [2008/06/04(水) 20:29:59 ]
診断ツールではsystem.dlがないとありましたが
調べてみるとそこまで必要なものではないようでした

サンプルがSummer 2003を対称にしているのでDLLが足りないわけでもないと思います



683 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 20:34:51 ]
>>680
IE7か割れOSだろ?

684 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 20:35:37 ]
BCCはVCといろいろ違いがあるんで
BCC対応のライブラリを作るなり取ってくるなり手間が必要だったような気がするが

685 名前:676 mailto:sage [2008/06/04(水) 20:38:01 ]
firefoxですがIE6が入ってます
OSはノートの正規品です

もともと古いPCなのでグラボの性能が低いのが原因かもしれませんが
Summer 2004で実行できたので…

686 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 20:57:38 ]
>>685
いくつか関数の仕様が変わったもんがあったような気がするけどそこは直した?
ビルド通らないと思うけど

687 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 21:01:17 ]
2004のサンプルを2003で動かそうとしてんだろ?
足りないもんとかあるんじゃね?
変なコントロールまわりなんかやけに9.0初版のときより豪勢になってるし
バージョンダウンで動かそうとするのなんて時間の無駄じゃね?

688 名前:676 mailto:sage [2008/06/04(水) 21:06:24 ]
ビルドは通ります
エラーもありません

サンプルは2003用のです
2004からコンパネでDirectXが設定できなくなっていたので
2003にしました

689 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 21:21:30 ]
最終奥義「クリーンインストール」

690 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 01:07:03 ]
実行してすぐに落ちてるんなら普通に戻り値調べたらなんか出てそうだけどな
ちゃんとエラーチェックしてる?w

691 名前:デフォルトの名無しさん [2008/06/05(木) 01:33:17 ]
CとC++ってどう違うの?

692 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 01:33:50 ]
CのインクリメントがC++



693 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 02:47:21 ]
サンプルは環境によって落ちるものは落ちる、市販のゲームとは違うよ
サンプルの実行に拘る理由がよく分からない

694 名前:デフォルトの名無しさん [2008/06/05(木) 03:34:04 ]
質問です.
MPEG-2を取り扱うアプリケーションを作成したいんですが.
Directshow()で可能だとは思うんですが.
マニュアルはありますか?


695 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 03:38:32 ]
>>693
言ってることも割れ臭いし
目的もなく2003だしで正直胡散臭いよねw

696 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 04:39:25 ]
>>694
英語で良いならWindows SDKのドキュメントにある
日本語ならDirectX9 SDKの古いドキュメントがまだMSからダウンロードできたはず
場所の検索は自分でやってネ

697 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 19:21:39 ]
DirecctX SDK(Mar 2008)とVS2005を使っています。
使っている参考書は
www.amazon.co.jp/dp/4839912475/
です。
この本ではDirectXのアプリケーションウイザードがVSに追加されているのですが、私の環境では追加されませんでした。
VS→SDKの順にインストールしました。
最近のバージョンだとDiretctXのアプリケーションウイザードは削除されたのでしょうか?

698 名前:676 mailto:sage [2008/06/05(木) 19:38:46 ]
2004 Summerにしたら実行できました
2003にしようと思ったのもコンパネから設定変えたかっただけなのでこのまま2004でいこうと思います

DirectX勉強してるサイトのサンプルだったんで何とか実行したかったんです
原因はわかりませんでしたが色々とありがとうございました

699 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 19:47:21 ]
>>697
結構前に廃止された
たぶん2004年のどっか

>>698
最近のは確かにコンパネに設定が追加されなくなったが
DirectX UtilitiesのなかにDirectX Control Panelってものがあってだな
昔コンパネから設定できたことと同じことができるんだぜ?

700 名前:676 mailto:sage [2008/06/05(木) 19:55:53 ]
>>699
教えていただきありがとうございます
ただ、2004にはないようです
最新のはPCの性能的に難しそうなのでこのまま我慢することにします

ちなみに5年くらい前のpentiumVです

701 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:15:42 ]
シェーダーを使ってトゥーンシェード(逆引き500に載ってる方法)をやろうとしているのですが、
一部を除き真っ黒になってしまいます。
どういう時にこうなるのでしょうか?

702 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:35:18 ]
ごめんオレエスパーじゃないし



703 名前:デフォルトの名無しさん [2008/06/05(木) 23:45:32 ]
DirectPlayがサポート打ち切られたとかマジですか

704 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:56:33 ]
DirectX SDKドキュメントのなんと1ページ目にDirectPlay is deprecatedの一文がッ!

705 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:00:11 ]
2007年6月あたりのSDKがサポートラスト。
ランタイムは当分のこるだろうけど。

706 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:18:28 ]
9cはもう終わりか?

10の時代なのか?

707 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:55:02 ]
9cの時代のままです

708 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 03:23:42 ]
10はVISTA限定という暴挙にMSが出たからね
おかげで10の普及は相当に遅れるだろうね

709 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:22:26 ]
XPみたいに皆にブーブー文句言われながら8年後位には普及してるよ

710 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:28:15 ]
そう思っていた時期がMeにもありました

711 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:30:34 ]
細かいバージョンを見れば、MSは失敗作をけっこう出してるよ
そしてすぐに無かったことにしている
SEとかCEとか3.0とかMMCとか、NTとか
Vistaもそんな感じ

712 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:34:44 ]
そりゃXPよりブーブーいうだろ
基本的に全てのアプリはDirectXで組んでくださいっていうスタンスなんだから



713 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:38:04 ]
              __
           ,...-‐:"´:.:.::.:.::.:.``:‐,,、
      ,.-..,、/:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:`、  _
     /:.:.:./:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:';;´::.:.l
    l:.:.:.:.:.l:.:.:.:.:.:.:.:.:.:/|:.:.:.:.:.:.:.:.::l、:.:.:.:.::.:.:.:.:l:.:.:.::|
.    |:.:.:.:.:l:.:.:.:.:.:.:.::.::/ |:.;:.:.:.:.:.:.;l:l l:.::l;:.:.:.:.:.:l:.:.:.:;l,
    |:.:.:.:.:.|:.:.:.:.:.::l:.:/ |:|.l:.:.:::.:.:l|l  |:.:ll:.:.:::.::.ll:.:.:.::|i
.   |:.:.:.:.:l|:.:.:.::.::l.|/` 、|l l:.:::./l _,,.-l:j´l:.:.:.:.:| l:.:.:.:lii
   l:.:.:.::.:l i/l:.:.:l |l‐ェ-ュ,` l:://´ェ--,-,.l:.:.:lヽ l:.:.::.l.ii
.   l:.:.:.:.:;l l (l:.:.:.lヽゝ_ノ  '"  ゝ_ノノ.l:.::l,l l .|;:.:.:.l.ij 
   l:.:.:.::.lij `ゞ::.:l ,、,       ∧/l:.:.l/ j|:.:.:.:l.ii
.  |:.:.:.:.:|.ii   ';:.:l、     '   .  ,l::/   l.l:.:.:.l.i|
.  |:.:.::;.;| ii   ヾl >、.   0   , イl:/、   | |:.:.:.l li
.  |:.:.:.|i| ji,.-ィ'´l `l ` ‐-‐ '´  l  l``l‐-l、|:.:.:.l ij
  |:.:.:.:|i|'´/ l  ヽ `、      /  /  l  .l |:.:.:.| i|
 すとーっぷ。>>712は素早く変な空気を作るねぇ…
 >>709より不安な子を見つけたよ。

714 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 02:02:40 ]
DX9、C++でのテクスチャに関する質問です。
テクスチャのクラス(CTexture)を作り、コンストラクタに画像ファイルのパスを渡してクラス内でテクスチャ(Texture)を生成しています。
CTextureのデストラクタでTextureを削除するようにし(delete Texture)、メモリの解放を試みているのですが
その状態でCTexture* で作ったオブジェクトを削除すると、ヒープが壊れているというエラーが出ます。
多重deleteでエラーが出ることは調べてわかったのですが、
if(Texture) delete Texture;
としているにも関わらずエラーが出るので困っています。
どのようにしてテクスチャが占有したメモリを解放すればよいのでしょうか?

715 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 02:18:42 ]
>>714
見事にスレ違いだ。
そして君のやりたいことは多分こうだ。

if (Texture) { delete Texture; Texture = NULL; }

716 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 02:40:27 ]
>>715
できました、ありがとうございます!!そしてごめんなさいでしたァ!!

717 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 05:40:52 ]
delete Texture;
Texture = NULL;

これでおk
delete NULL;は合法
ま、どのみちスレチ

718 名前:デフォルトの名無しさん [2008/06/07(土) 12:22:05 ]
www.h2.dion.ne.jp/~takusoft/directx8/d3d/chapter1/sec07/d3d_07.html
のサンプルプログラムを参考にお勉強しているのですが
画面の頂点情報を動的に変えるために
頂点バッファを確保する箇所

VOID* pVertices;
if( FAILED( g_pVB->Lock( 0, sizeof(g_Vertices), (BYTE**)&pVertices, 0 ) ) )
return E_FAIL;
memcpy( pVertices, g_Vertices, sizeof(g_Vertices) );
g_pVB->Unlock();

を処理で何回も経由させる場合
以前に確保したメモリはどのように解放してあげれば良いのでしょうか?
よろしくお願い致します。

719 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 12:33:41 ]
確保も何もそれはロックしてるだけだと思うが・・・。
あと頻繁にロックするならDYNAMICで作ってDISCARDでロックしろ

720 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 12:53:13 ]
なるほど、メモリのロックという概念をよく分かってませんでした
動的に確保してるわけでは無いんですね
同じところに何度も上書きしてる感じなのかな?
DYNAMIC と DISCARD は調べてみます
ありがとうございました

721 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:07:06 ]
Direct3DのX-ファイルとテクスチャに関しての質問なんですが。
Xファイルのモデルを作って、それにプログラムでテクスチャ座標を設定して一つのアイテムを作成するのではなく。
モデリングソフトでモデルを作ってる段階で、視覚的にテクスチャを設定して、その情報が入ったXファイルとテクスチャを読みこませて
テクスチャ座標をいちいち設定しなくてもアイテムを表示させたりって出来ないんですかね?

なんだか大体の本はモデルの読み込みと表示は説明してても、モデルの作成からテクスチャの設定部分が余り説明されてないので分かり辛い…
DirectXで使うことを前提とした3Dの本とかってないですかね?

長々と読み辛い文章スマソ。

722 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 15:58:36 ]
メタセコイアとかで普通にやればそうなると思うんだけど



723 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 16:02:06 ]
>>721
キミが求めている情報を知りたいのならプログラムの本ではなくデザインの本を買うべきだよ。
DirectXだのOpenGLだと自前レンダラーだの関係なくそれはグラフィックデータの話だ。

724 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 16:28:31 ]
>>721
普通にモデリングソフト触ればわかるだろが

ちなみにXファイルの中にマテリアルってもんがあって
そのなかにたくさんテクスチャ設定できるようになってるじゃん

構造でいうと

Xファイルx1
  メッシュxN
   マテリアルx1
     テクスチャx1
   モデルのUVx1

な感じになってるのか?(バンプ(マルチテクスチャ2枚以上考慮外)とか考えないと)
Xファイル1つにメッシュがたくさんあって
メッシュ1つにつきマテリアルとUVが1つずつあって
マテリアル1つにつきテクスチャが1つあると・・・

だから、Xファイル1つにテクスチャは複数ある構造がいまのXファイルなわけよ

725 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 16:38:42 ]
メッシュに対するマテリアルの数に制限はないぞ

726 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 16:45:35 ]
>>725
そうだっけ?
あーでもそうなってる気もするな

でも実用性なくね?
どの頂点がどのマテリアルか決定しなきゃいけないから
読み込むときにマテリアル単位でメッシュわけなきゃいけないな
この辺はモデリングソフト次第って感じ?

727 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 17:12:08 ]
モデリングの段階でテクスチャやマテリアル毎に
わざわざメッシュを分けて作る方が現実的じゃないだろ。

実際D3DXMeshでも属性テーブルって形式でマテリアル毎に分割して描画するようになってる。


728 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 17:25:37 ]
XFileに組み込んだマテリアルやテクスチャって1回XFileから読み込んで
デバイスにセットする方法しかないの?

729 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 18:27:13 ]
デバイスにセットしないでどうやってレンダリングするのかと

730 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 18:50:41 ]
>>727
メッシュ1つのマテリアル毎にテクスチャが違うって状況か?
あんまり違いがないならメッシュ1つに付きテクスチャ1枚な
俺の経験だとそんなモデルは重過ぎて動かねぇ

まあ、いまソースみたら俺もできるように組んであるけどなw
スキンメッシュでかなり苦労してた記述がみられるw

スキンメッシュのデータはマテリアルごと描画できるデータになってねぇのなw
抜けてんだな>Xファイルの担当者

731 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 19:00:24 ]
>>730
何を言ってるかわからねえがスキンメッシュだろうなかろうが同じように描画できるが・・・。
顔の表情とかをテクスチャ差し替えでやろうと思ったら顔だけテクスチャ別にするだろjk

732 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 19:31:24 ]
>>731
ボーンと頂点を結びつけるインデックスがそうはなってないと思ったが

>>731
メッシュで分けちゃってるな俺んとこのデザイナさん
もちろんプログラムではなんでもできるようにしてあるが



733 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:42:08 ]
>>731
インデックスとマテリアルは関係ないじゃろ。
最終的にはポリゴン1つ1つにマテリアルのインデックスが振られているんだから
それを使ってマテリアル毎に分解して再構成するだけ。
っていうかD3DXで読み込めば全部やってくれるけんど。

734 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:42:37 ]
>>733
>>731じゃねえ>>732だ。

735 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 21:14:17 ]
>>733
>それを使ってマテリアル毎に分解して再構成するだけ
この作業が面倒臭いって話だな
インデックスがメッシュごとだから、自前で読み込むときは
1回マテリアルごとに直す必要があるな

736 名前:デフォルトの名無しさん [2008/06/07(土) 22:22:43 ]
DirectX End-User Runtime Web Installer
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en
DirectX End-User Runtimes (June 2008)
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=822640ab-0983-4c41-9c70-632f6f42c557&DisplayLang=en
DirectX Software Development Kit
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=519aae99-b701-4ca1-8495-39ddde9d7030&DisplayLang=en


737 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:52:14 ]
>>736
そんなの貼っても割れ厨にはどうせ見れないぞw

738 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:54:40 ]


739 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:59:26 ]
ああ、そういう事か。
犯罪者の都合は考慮しないよ。

740 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:07:03 ]
>>738
ランタイムのウェブインストーラーや開発キット、ヘルプなんかは
ウィンドウズの正規OSでないと落とせなくなった
なのでたまにこのスレで「落とせません」とか「見れません」とか
「わかりません」とかいう奴はほぼすべて割れ厨

741 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:11:28 ]
PC買えばOS付いてくるのに割れ厨って意外と多いのな

742 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 04:24:44 ]
オンラインゲームをやってるんですが
directxを前のverに戻したらパフォーマンスって下がりますか?



743 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 04:51:37 ]


744 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 15:05:13 ]
安全に Release メソッドを呼ぶマクロとして
SAFE_RELEASE のようなものを見かけますが、

// safe release
#define RELEASE(p) ( (p) ? ( (p)->Release(), (p)=NULL ) : (0) )

このマクロで何か問題ありますか?
参照を使った関数だと BCC に注意されたので

745 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 16:17:37 ]
>>744
翻訳しないで原文ママのエラーメッセージを。

746 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 17:35:36 ]
DirectShowを使ってGUIのメディアプレイヤーを作っているのですが、
IMediaSeeking::GetDurationで再生時間を取得すると、
3分33秒より長いファイルはオーバーフローして負の値になってしまいます。
IMediaPosition::get_Durationで取得しようとすると、E_NOTIMPL(実装されていない)が帰ってきます。
3分33秒より長いファイルの再生時間を取得するにはどうすればいいのでしょうか?

開発環境はVisual Studio 2005 Pro、言語はCです。

747 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 17:37:54 ]
最小のコードくらい出せカス

748 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 17:38:00 ]
CComPtr使いなさい

749 名前:746 mailto:sage [2008/06/08(日) 17:49:53 ]
>>747
IGraphBuilder *pGraph;
IMediaControl *pMediaControl;
IMediaSeeking *pSeek;
IMediaPosition *pMediaPosition;
REFTIME length;
REFERENCE_TIME TotalTime;

CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC,
   IID_IGraphBuilder, (void **)&pGraph);
pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl);
pGraph->QueryInterface(IID_IMediaSeeking, (void **)&pSeek);
pGraph->QueryInterface(IID_IMediaPosition, (void **)&pMediaPosition);

pGraph->RenderFile(FileName, NULL);

pMediaPosition->get_Duration(&length);
pSeek->GetDuration(&TotalTime);

こんな感じです。

750 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 20:43:53 ]
REFERENCE_TIME は普通に使ってる分にはオーバーフローしないが
どこかで int にキャストされてるんじゃね
SetTimeFormat 指定しておいたほうがいいんじゃねえ

751 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 23:34:30 ]
DirectMusicを最近扱っているのですが、
GetGlobalParam(GUID_PerfMasterVolume, reinterpret_cast<void*>(&V), sizeof(V))で
何故かE_INVALIDARGが返ってきて音量の取得ができません。
不正な引数とありますが、どれが不正な引数なのでしょうか?(Vはlong型です)

ちなみに、この処理を行う前にパフォーマンスの作成、パフォーマンスとシンセサイザーの初期化、
ローダーの作成を行っています。

752 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 23:41:48 ]
>>751
msdnによると以下のようにあるけど、SetGlobalParamは使用済み?

>SetGlobalParam が rguidType について一度も呼び出されたことがない場合、このパフォーマンスが現在処理している
>グローバル データ リストの中に、rguidType がない可能性がある。その場合、このメソッドは E_INVALIDARG を返す。
>つまり、どのパラメータにも、GetGlobalParam を使って取得できるデフォルト値があると想定しないこと。





753 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 23:47:46 ]
質問です
ttp://richa850.hp.infoseek.co.jp/programming/dx9_01.html
ここを参考に、後述のプログラムを書いたのですが、少なくともRADEON9600SEで画面がおかしくなります。
正しい方法はどうやればいいのでしょうか?
・APIリファレンスを読んだところ、MultiSampleTypeなどは以前のものと一緒でなければならないとあったので、上記ページでは決め撃ちになっているのを修正しました
・画面がおかしくなるを具体的に言うと、テクスチャが壊れていたり(正しいテクスチャの一部が緑や白のペンキでラクガキでもされたように塗りつぶされてる)、まったく描画されなかったりです
・old.Widthが中途半端な値(672とか)だったりすると、OSごと巻き込んで落ちます。(PC再起動がかかります)


D3DSURFACE_DESC old;
CComPtr< IDirect3DSurface9 > pCurrentDepthStencil;
pDev->GetDepthStencilSurface(&pCurrentDepthStencil);
pCurrentDepthStencil->GetDesc(&old);

//  新しく作ったテクスチャーの大きさと、現在の深度ステンシルの大きさを比較.
if ((old.Width < descNewTexture.Width) || (old.Height < descNewTexture.Height))
{
  // 深度ステンシルを作り直す。
  CComPtr< IDirect3DSurface9 > pNewDepthStencil;
  pDev->CreateDepthStencilSurface
  (
    __max(descNewTexture.Width, old.Width),
    __max(descNewTexture.Height, old.Height),
    old.Format, old.MultiSampleType, old.MultiSampleQuality, TRUE, &pNewDepthStencil, NULL
  );
  pDev->SetDepthStencilSurface(pNewDepthStencil);
}
// 上記を行なっただけではまだ問題はおこらず、下記を行なうと発症します。
// 上記だけ、もしくは下記だけだと問題はおきません。
pDev->GetSwapChain(0, &pSwapChain)
pSwapChain->GetBackBuffer(0, D3DBACKBUFFER_TYPE_MONO, &pRenderTarget);
pDev->SetRenderTarget(0, pRenderTarget);

754 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 23:56:19 ]
>>752
ありがとうございます、使用しておりませんでしたorz
デフォルト値がないのですね、なぜこんな仕様になっているのやら…orz

755 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 08:10:40 ]
変数でも何でもとりあえず初期化しやがれとしか言い様が無い

756 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:45:36 ]
Ver9あたりからボタンとかテキストボックスのような
コントロールのようなものが使えるようになってるみたいなんだが
あれってなんて名前でしょうか?

使い方書いてあるHP検索したいわけだが
なんて検索したらいいかわからんのです


757 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 01:16:45 ]
DXUT

758 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 19:35:52 ]
dxutに未来はあるのでしょうか?

759 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 19:50:35 ]
モデルの、パーツだけ別のモデルに差し替えることって
なんという言葉でしたっけ

760 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 09:36:07 ]
void PartsDakeSashikae_to_OtherModel(void) { return; }

761 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 11:24:56 ]
#define PDtoOM PartsDakeSashikae_to_OtherModel
PDtoOM();

762 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 14:05:08 ]
>>760-761
面白いと思ってやってるのか?



763 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 16:35:41 ]
自前の画像を使ってボタンを作るとき、レスポンス(押しっぱなし)
の頻度をループ数とタイマーのどちらで制御すべきだと思いますか?

764 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 16:48:27 ]
タイマー
ループにして何か良いこと有るの?

765 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 17:38:24 ]
ループだとFPSに依存するから怖いよ

766 名前:763 mailto:sage [2008/06/14(土) 03:46:37 ]
thx
やっぱりそうなんだ。
処理落ちすることって前提なのね。

767 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 04:33:41 ]
メッセージで処理しろよ。つーかwinプログラミング覚えろよ。

768 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:52:37 ]
軽いゲームならfps依存でかまわんと思うよ。
ただ、その処理をカウンタで実装したところで
タイマーと比べて簡単になるとは思わんが。

769 名前:767 mailto:sage [2008/06/14(土) 20:46:38 ]
>>767
プロシージャのタイマーより
クラス内でtimeGetTime()使ったほうがいいだろ?

770 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 20:56:25 ]
変な人がおる・・・

771 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:19:24 ]
IDirect3DBaseTexture9から画像サイズって取れますか?
IDirect3DTexture9じゃないです

772 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:41:00 ]
取れないよ。
取れないけど・・・どういう状況でその要求が出てくるんだ?
まともな設計してりゃありえないと思うんだが。



773 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:01:16 ]
シェーダークラスで
GetTextureで0のテクスチャの幅と高さを
シェーダーに渡したかったのです。

Textureは、普通のテクスチャだったり、RENDER_TARGETだったりするし、
サイズを別に持たせたくなかった(メモリけちった)のです
無理っぽいので、別個に渡すようにします。


774 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:24:40 ]
あぁ、GetTextureからという話ならIDirect3DResource9::GetTypeで判別して
各継承クラスにキャストすりゃいいだけだよ。


775 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:44:20 ]
普通のテクスチャもRENDER_TARGETも同じIDirect3DTexture9だとおもうけんど

776 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 23:35:37 ]
ボ、ボリュームテクスチャも作るつもりだもん

777 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 23:44:20 ]
お前かわいいな
ちょっとこっち来いよ

778 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 16:26:38 ]
LPDIRECT3DDEVICE9から
ライトのポジションは、GetLightから取れるのですが、
カメラのポジション取得は、できるのでしょうか?
無理ですか?



779 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:23:47 ]
カメラのポジションも当然取得できる。
つか出来ないわけねーだろ。

780 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:08:03 ]
カメラの「位置じゃなくビュー行列が取れるだけだから
そっからカメラの位置は計算しないといかんけどな

781 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:16:51 ]


782 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 03:55:17 ]
やっぱ、シェーダでカメラの位置が必要になるので
カメラ行列生成情報は、グローバルで持っておくべき?
あと、ビルボード行列も



783 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 04:27:29 ]
>>782
同じことで悩んでる人発見
カメラのクラスってどこに配置すればいいんでしょうね


784 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 10:01:29 ]
カメラを管理するクラスをワールドを管理するクラスが持つだろJK

785 名前:デフォルトの名無しさん [2008/06/19(木) 13:49:00 ]
カメラはワールドに複数配置できて、
アクティブな奴を切り替え出来るように作っておくとデバッグにも便利

786 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 15:43:47 ]
その発想は無かった

787 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 18:54:51 ]
>>786
素人乙

788 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 00:22:34 ]
いろいろ3Dツールを使って試しているのですが
分からないことがあるので質問です。

例えばメタセコイアでpng形式のアルファ付きテクスチャをポリゴンに張ると
レンダリング結果はテクスチャの透明部分はポリゴンも透明になりますが
xファイルに出力してビューワで見ると透明部分は白色表示になってしまいます
これはxファイルにはテクスチャのアルファは無視(白と認識)されるという事なのでしょうか?

789 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 00:32:36 ]
1) メタセコにおいて、テクスチャマップとアルファマップの両方を指定している場合、
xファイルはマルチテクスチャをサポートしていないので、xファイルに保存した段階で
アルファマップの情報は失われる。

2) そのビューワ(何のビューワか知らんが)がテクスチャのアルファ値を無視しているだけ。

790 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 01:07:04 ]
>>789
1に関してはテクスチャは1枚しか使用していません。
メタセコイアの材質設定で「模様」のテクスチャにアルファ付きのpng画像を指定した場合と
材質設定の「透明」に白黒のbmp画像を指定した場合の両方を試しましたが
どちらもメタセコイア上で透明に見えていた部分はxファイルで白になっていました。

2に関してはSDK付属のMeshViewerを使って見ていました。
一応自作のプログラム上でも表示を試しましたが
ビューワと同様でアルファの影響は見られませんでした
(DirectX初心者な自分が作ったプログラムなので
それ自体にアルファに関する抜けがある可能性もありますが)

透過効果を使ったxファイルのサンプルでもあればいいのですが
現状では表示するプログラム側に誤りがあるのか
3Dツール側の設定が足りてないのか分からずなんとも・・・

791 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 01:22:24 ]
PNGのアルファってかなり怪しかった気がするんだけど。
素直にDDSを使う方がいいと思われ。

792 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 01:29:36 ]
失敗しているとしたら、テクスチャの読み込み段階でアルファ値をわざわざ削ってしまっているか、
レンダーステートおよびテクスチャステージステートの設定が適切でないか、だ。

後者の方が圧倒的に多いパターンなんだけど、
このへん実はピクセルシェーダ使った方が余程わかりやすかったりするんだよねぇ。



793 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 03:02:14 ]
>>785
おまえ頭いいな

794 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 03:09:58 ]
なんだかんだで
DirectGraphicsのほとんどの要素をラッピングしたクラスが必要なんですね。
たいへんですね

795 名前:790 mailto:sage [2008/06/20(金) 08:34:24 ]
>>791
DDS形式使っても無理でした(つД`)

>>792
レンダーステートとテクスチャステージステートは
特に設定していなかったので、レンダーステートに
D3DRS_ALPHABLENDENABLE設定してみたのですが
結果は変わらず。
テクスチャステージステートはデフォルトでイイと思うのですが
この辺の設定も自信無いので違ってたらご指摘お願いします orz

ちなみに使用してるSDKのバージョンは2004/Oct

796 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 09:31:11 ]
>>795
半透明描画はSRCBLENDとDSTBLENDの設定とCOLOR_OPの設定もちゃんとやらないと話が始まらないぞ。

797 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 09:40:18 ]
>>795
まずはテクスチャのα値をちゃんと参照する方法を覚えろ。

しかしコンパイル済みMeshViewはテクスチャのα値無視するのは確かに不適切だよな
ソース入ってるから自分でリコンパイルすりゃいいんだけど、メニューでON/OFFくらいつけといてほしかったわw

798 名前:790 mailto:sage [2008/06/20(金) 10:18:37 ]
>>796,797
d、やっと出来ました!ヽ(`Д´)ノ

pD3DDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );
pD3DDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA );

この二行が抜けてました、ってか
D3DRS_SRCBLENDALPHAとD3DRS_DESTBLENDALPHAの定数と勘違いして使って混乱してました(つД`)ゴメンナサイ
テクスチャステージステートはとりあえずデフォルトでも大丈夫でした。
それにしてもMeshViewerはα反映しないんですね
お陰でデータの方に問題があるのかと勘違いして無駄な時間を・・・orz

799 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 13:04:01 ]
今さっき、テクスチャのαを適用するようにしたMeshViewを作ったわ
2008だとそのままじゃコンパイル通らなくて、いろいろめんどかった

てか、存在しないヘッダファイルをincludeするなよサンプルなのにって思った

800 名前:790 mailto:sage [2008/06/20(金) 20:58:27 ]
昼に解決したと思って放置してたものを弄ってて
背景透けたと思ってたら、バックグラウンド(クリア色)は
透明ポリゴン越しに透けて見えたけどすぐ後ろに別ポリゴン置いたら
そのポリゴン無視してバックグラウンドの色が表示されてることに気づいた・・・orz

801 名前:790 mailto:sage [2008/06/20(金) 22:44:21 ]
ぁぁ・・・Zバッファ有効にしてたら透過が上手くいかず
Zバッファ無効にすると前後関係を自動処理してくれないから
自前で描画順序を制御しなけりゃいけないって事かな(;´-`)

802 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 22:45:39 ]
半透明 Zバッファ
でぐぐりまくりんぐ



803 名前:790 mailto:sage [2008/06/20(金) 22:52:38 ]
つい先ほどからぐぐりまくりんぐです。
初歩の初歩みたいな疑問をグダグダ書き連ねて申し訳なさ爆発です。

804 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 22:55:09 ]
昨今の事情を鑑みるからには、半透明でモデルを書くな。
使うなら見た目は諦めるか深度ピーリングでもしろ。

頂点処理なんてアホほど浮いてるんだしアルファで抜くより全部
ポリゴンのほうが圧倒的に最近の主流だったりはする。

805 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 23:01:57 ]
あおりじゃなく、深度ピーリングってなんのことだ?
あと、「半」透明じゃなくて、アルファ値を使った「透過」がやりたいだけなら、アルファテスト使えばよくね?

806 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 23:04:45 ]
>>804
頂点処理が浮いてるっていうのは、
大抵の場合ピクセルシェーダが忙しくて、頂点シェーダが遊んでるってことですか?
どうやったらコアの稼働率?を調べることが出来るんでしょうか?

807 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 23:09:24 ]
>>806
まだそんなことを気にするレベルに至って無い
順番にやっていけ

半透明とZバッファの相性の悪さは昔からの命題
一般的には半透明の描画だけリストに登録しておいて、完全不透明の描画が全て終わった後、カメラから遠い順に描画していく
std::multimap<float, IAlphaDraw*> でリストつくると楽だよ
floatがカメラからの距離
IAlphaDrawは半透明描画の描画インターフェースを提供するインターフェースクラス


808 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 23:16:35 ]
>>806
NV PerfHUD

809 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 00:41:46 ]
なんか2度書きってなかったっけ?

810 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 00:43:03 ]
不透過の物体を描画するときはZバッファをONにしてカメラに近いほうから描いていくと速いぞ

811 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 00:53:12 ]
エフェクトやパーティクルなんかは別として、
モデル自体の半透明処理はかなりの例外扱いだからなぁ。

被写界深度やモーションブラーなんかもやれないし
特殊な条件以外で使うようなものじゃない。

812 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 07:11:37 ]
2Dゲーでかなりの枚数を重ねようとしてるなら
正直、PCのグラボではフィルレートがまったく足りてないと思う



813 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 09:28:27 ]
3Dでもハイレゾで普通にバンプ、スペキュラ、シャドウとかやってると
普通にピクセルシェーダーカツカツになるよ。

逆に頂点は数百万クラスになってきてるけど、今は統合型アーキテクチャが主流だしどうなることやら。

814 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 09:56:02 ]
うんうん頂点シェーダはなにやっても落ちないわ
でもピクセルシェーダはα物をちょっと拡大して表示するだけでもう処理落ちはじめやがんの

これってなんで?
PS2とかだとそんなことなかった気がすんだけっちょ

815 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 10:02:18 ]
PS2はフィルレートバカじゃん。
使うテクスチャも16色や256色のパレットが殆どだし。
そもそも解像度も640x480より小さいしなー。

816 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 10:14:13 ]
頂点毎に呼ばれるVSと違ってPSはピクセル毎に呼んでるはずだから
解像度あげたらエライ負担になるだろ

817 名前:デフォルトの名無しさん [2008/06/21(土) 11:29:23 ]
DirectXについて料金のことですが
これって無料でダウンロードできるんですか?

818 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 11:48:48 ]
いいえ。MicrosoftとNDA契約を結んだあと
利用目的に応じたライセンス料を支払う必要がありますん。

819 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 11:55:28 ]
初心者質問スレなんだから意地悪しないでググレカスでいいじゃないか・・・

820 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 12:13:01 ]
ダウンロードセンター行けば無料か有料化は一瞬で分かるだろ

821 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 13:48:25 ]
やべ、俺NDAのサインしてねぇ。

あれ、誰かきた。

822 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 13:51:09 ]
DrawPrimitiveを使った描画で消失点を画面中央以外にするにはどうすればいいですか?



823 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 13:54:02 ]
>>822
Projection 行列をいじる

824 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 14:28:40 ]
>>823
即レスありがとうございます。
色々調べてみたのですがよくわかりません。
D3DXMatrixPerspectiveFovLHの他に座標変換するのですか?

825 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 14:31:09 ]
>>824
D3DXMatrixPerspectiveOffCenterLHとか使うといい。

826 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 15:19:14 ]
>>825
できました。ありがとうございました。

827 名前:デフォルトの名無しさん [2008/06/21(土) 18:38:44 ]
boost::intrusive_ptr<IDirect3DVertexBuffer9> spVB;
とVBを確保したのですが、
pd3dDevice->CreateVertexBuffer(sizeof(D3DTLVERTEX)*4, 0, D3DFVF_2DVERTEX, D3DPOOL_DEFAULT, m_pVB.get(), NULL );
と、作るときにダブルポインタに出来ません・・・
IDirect3DVertexBuffer9* buf=spVB.get();
pd3dDevice->CreateVertexBuffer(sizeof(D3DTLVERTEX)*4, 0, D3DFVF_2DVERTEX, D3DPOOL_DEFAULT, &buf, NULL );
と渡す以外の方法で良い方法ありませんか?
intrusive_ptrを使うのが悪いのだろうか・・・

828 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 18:44:15 ]
CComPtr使えよ

829 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 18:50:29 ]
>>828
ありがとうございます。
DXUTを使ってるので、
atlbase.hをインクルードするときに
Need to include strsafe.h after tchar.h
って言われるのでIntrusiveに逃げようかと思ったんですが、
やはりDXUT.hの中に入れ込んででもCComPtrのほうが良いのでしょうか。。

830 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 19:12:50 ]
その程度のリソースは余計な事せずにそのまま管理すりゃいいだろ・・・

831 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 19:19:23 ]
>>827
&(spVB.get())じゃダメなのか?

832 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 19:38:10 ]
>>829
何を嫌がってるのか理解できんが、だったらintrusive_ptrをそのまんまぱくって

T** ptr_ptr() { return &px_; }

みたいなのを付け足したのを自前でこしらえたらいいじゃん。

>>831
こらこらw




833 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 19:44:39 ]
>>830-832
ありがとうございます。
やはり普通にCComPtrを使うことにしました。
>>832
の意見は大変参考になりました。
ありがとうございました。

834 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 19:52:30 ]
>>827
CreateVertexBufferに渡すのは素のIDirect3DVertexBuffer9*で、
それを使ってintrusive_ptrを初期化すればいいかと。

835 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 20:51:57 ]
>>829
その警告だったら、DXUT.hの中でATLのヘッダ読み込めば出ないけどね。
ATL使うのがデフォなら、DXUT.hに追加してプリコンパイル済みヘッダと
使用するのもありだと思うけど。

836 名前:835 mailto:sage [2008/06/21(土) 21:00:56 ]
ああ、すまん。上のレス読んでなかった。
DXUT.hの中で読み込めばいいのは知ってたのか。
typoしたんだが直すまでもないな。


837 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 21:21:45 ]
>>833
CComPtrはかなり独立したテンプレートクラスだから、コピペでパクるのもいいぜ?
ってか俺はそうしてる。
なぜならVS2008にはatlbase.hが入ってないからだ;;

838 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 00:05:48 ]
スマートポインタって不必要になったら自動で削除っていうけど
不必要になったときっていつなんだ?
スタティックで参照されると一生消えないんだろうか?もしかして

839 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 00:08:19 ]
俺はデータを管理するクラス経由でアクセスするようにしてるから
vector、list、set、map、stringくらいしか使ってないな・・・。

840 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 00:09:51 ]
>>839
setとmapってどういうときに使うの?

841 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 00:26:04 ]
>>838
参照がなくなった時だろ。

842 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 00:57:07 ]
>>838
普通はプログラムの終了時だと思うぞ



843 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 02:27:49 ]
>>840
mapは外部ファイルから読み込みするリソース(シェーダー、テクスチャ、モデル)なんかを
二重に読まないようにファイル名をキーにインターフェイス突っ込んどいて参照カウンタで管理に。

multimapとかmultisetなんかはパーティクルとかの挿入ソート代わりに。

844 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 07:02:25 ]
>>837
入ってないのExpress Editionだけだろ

845 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 10:15:19 ]
しかも2008に限らず無料版でATLが入っていたことなどないはず・・・・あ、2003(コンパイラのみ提供)はATLありだったっけ?

846 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 11:05:11 ]
>>842
じゃあ、うっかりスタティックで参照しやがった馬鹿が開発チームにいたら
デフォでリークし続けるってこと?
参照あってもこっちが削除したいっていったら強制的に削除してほしいときは
どうしたらいいだろうか?

847 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 11:14:10 ]
参照があるのに削除したらスマートポインタの意味がないじゃん。

848 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 11:18:44 ]
プライオリティ設定できないの?
優先度高の奴が残ってるときだけ参照あったら削除しないで
優先度低の奴は残ってても強制執行・・・みたいな

849 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 11:44:55 ]
weak_ptrみたいなの?

850 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 12:17:08 ]
>>846
言ってることがよく分からんが
その「スタティックな参照」を行ってるスコープから出れば解放されるんじゃないの
一番大きいスコープ=プログラム(プロセス)
スコープから出る=プログラムの終了

851 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 12:52:04 ]
>>850
スコープから出る時にデストラクタが呼ばれるならそれはLocal変数であってStatic変数ではない罠。

852 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 14:54:23 ]
>>851
スコープは例えただけで、関数内スタティック変数が関数抜けると
解放されるとかそういう意味で言ったんじゃないんだ
分かりづらい例えですまんかった

「プログラム終了時に消えると思う」に対して「スタティック参照したらリークするんじゃ」
って話だったから終了時に消えるって事を押したんだが
関数内スタティックが関数抜けても消えないっていうのを問題にしているのかね>>846



853 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 16:32:05 ]
>>846
参照カウンタの概念は理解してるか?
それとグローバルスコープ(プログラム終了)を抜ける時に
グローバル変数やスタティック変数のデストラクタが呼び出されて
解放されることも。


854 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 17:30:45 ]
その辺りは実際に書いて試してみたほうが早いよね

855 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 18:06:10 ]
要はバッサリ削除したいのに
使いもしないスタティック参照がインスタンスを消させなくしているから
どーでもいいような優先度の参照に関してはつかんでても無視して強制的に削除したいということだよ

856 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 18:57:20 ]
普通に管理クラスつくって自分でマネージメントした方がいいと思うけど。
DirectX関係のインターフェイスは余計な事しないでシンプルに扱ったほうがいい。

857 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 20:19:39 ]
>>855
weak_ptr

858 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 23:01:47 ]
そもそも使いもしないスタティック参照がいて
かつ参照がいるのに強制削除って状況がおかしいよ。


859 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 00:03:08 ]
確かに・・・リソースの強制削除なんて特異な状況聞いたことないな。
単にまともな管理が出来ていないだけにしか聞こえないな。

860 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 01:48:29 ]
>>858
シーンを何回も呼ぶ(ロードアンロードを繰り返す)んだけど
そのうちの1シーンがスタティックでポインタを保持してるところが多いのよ
いらなくなったらそのシーンは破棄するんだけどプログラム自体はスタティック参照だから
残るのよこれが
範囲が広すぎて修正不可能だからどうすんべーって感じなわけ

861 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 04:37:39 ]
staticにした時点で間違ってると言うことだNE

862 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 09:51:22 ]
シーンが破棄されるときに、デストラクタから開放するべきなんじゃ?
てか破棄されうるシーンがスタティックなポインタを持ってるっておかしくね?



863 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 11:17:03 ]
>>846のレスからすると何か変な勘違いを前提にして、
強制削除とやらをしなければならないと思っているような気がするが。
>>838からの流れなんだろうけど、その後の他の人のレスと
話が噛み合っていない。

そもそも、リソースの管理に問題ありというのには同意。

864 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 13:04:07 ]
スタティック参照って言葉でややこしくなってる気が

865 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 16:01:33 ]
オンボードビデオカードだと
CreateDeviceでD3DCREATE_HARDWARE_VERTEXPROCESSINGが失敗すると思ってよいのでしょうか?

また、ビデオカードを使ってる環境でオンボードでも動作するように開発するには
D3DCREATE_SOFTWARE_VERTEXPROCESSINGで初期化を行えばあとはCPU速度次第ということになるのでしょうか?

866 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 16:21:38 ]
>>865
少なくともここ1年以内のIntel製オンボードは
D3DCREATE_HARDWARE_VERTEXPROCESSINGでも通るぞ

恐らくだが3年前の物でも通ると思う


867 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 16:53:54 ]
>>866
ありがとうございます
自分の環境が945Gなのですが駄目でした
この環境で動作させるには、頂点数やライティングに気をつければよいのでしょうか?

868 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 17:59:50 ]
>>867
頂点数とライティング、あとはVRAMを食いすぎないようにすれば十分な速度は保てると思う。
オンボードグラボは基本的にメインメモリからVRAMを取るから十分にメモリを積んでない
システムでVRAM食いすぎると酷いことになる。
でかいテクスチャを何枚も使ったりしないで簡単な3Dエフェクト程度の利用だったら
特に問題なく動くんじゃないかな。

869 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 00:10:48 ]
intelGMAは未だにピクセルシェーダはサポートするけど
頂点シェーダはサポートしない(HW頂点処理ができない)んじゃなかったっけ

870 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 00:21:24 ]
ピクセルシェーダー/バーテックスシェーダー2.0に対応していない
グラフィックボードって何年前ぐらいの物ですか?

871 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 00:28:07 ]
GeForce3とかRadeon8500とかだな

872 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 12:26:00 ]
>>869
X3000以降は使えるみたい
en.wikipedia.org/wiki/Intel_GMA#Table_of_GMA_graphics_cores_and_chipsets



873 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 15:23:12 ]
この前GF5200FXで動かしたら、ピクセルシェーダ2.0に対応してるのはいいけど物凄い遅さでびっくりした
(PS処理省いたらめちゃくちゃ軽くなった)

874 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 20:02:31 ]
D3D10でD3D9のD3DPERF_BeginEventに相当するものってありますか?

875 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 17:12:50 ]
bmp形式の画像ファイルを背景色の代わりに表示させることってできますか?


876 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 17:15:34 ]
>>875
スプライトなり何なり使って画像を描画

Zバッファだけクリア

後はお好きなようにどうぞ

877 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 17:26:45 ]
>>876
できました!
ありがとうございました。



878 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 01:10:00 ]
えええ

879 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 07:25:15 ]
D3DXLoadMeshFromXInMemory のオプションで指定するD3DXMESH列挙型にはどんな意味があるのでしょうか?
色々と試してみたのですが、パフォーマンスに影響があるようには思えないのですが

880 名前:デフォルトの名無しさん mailto:age [2008/06/28(土) 08:02:10 ]
HLSLの組み込み関数「ddx(x)」ついての質問です。
SDKのヘルプには、
スクリーン空間の x 座標について、x の勾配を返します。
とありますが、具体的にどんな計算をしているのですか?
教えていただけないでしょうか?


881 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 14:04:28 ]
英語では、Returns the partial derivative of x
xの偏微分を返すって書いてるね。

882 名前:デフォルトの名無しさん mailto:age [2008/06/28(土) 15:43:46 ]
>>881
レスありがとうございます。

x方向の傾きを返してくれるみたいですね。
その傾きを求めるための具体的な値が、どのようなものなのか、
わからなくて困っています。

傾き == 高さ / 距離 の「高さ」と「距離」は、
どんな値が使われるのか知りたいです。

どなたか、よろしくおねがいします。



883 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 16:29:24 ]
プログラムと一緒にd3dx9_?.dllとかをダウンロードさせたいのですが、どのような形式なら
配布してよいんでしょうか?cabですか?

884 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 17:00:26 ]
>>883
添付して配布は、ライセンス的に面倒なことになるんじゃなかったかな。
ウェブインストーラへのリンクを出せばいいと思う。

885 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 17:23:59 ]
>>882
HLSLのddx()/ddy()は、PSのdsx/dsyに対応する。
dsxのマニュアルには、レンダリングターゲットのx 方向の変化割合とあるので
↓か、それに近い形になるんじゃないかなあ

float2 delta = 1.0f / rendertarget.size;
float1 dsx = ( pixelcolor( x+delta.x, y ) - pixelcolor( x, y ) ) / delta.x;
float1 dsy = ( pixelcolor( x, y+delta.y ) - pixelcolor( x, y ) ) / delta.y;

886 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 17:58:22 ]
>>883
msdn.microsoft.com/en-us/library/bb174600(VS.85).aspx
msdn.microsoft.com/en-us/library/bb219742(VS.85).aspx
ファイル単体ならライセンス違反だが、最小構成なら2MB程度の添付で済む。

ファイル単体で添付できるにこしたことはないんだが、MSは自分らのランタイムを
プライベート配布されるのを嫌う傾向があるからなぁ。


887 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 21:55:22 ]
まあ、なんかトラブルあったら、クレームは全部MSに来るわけだしな。
動かない、なんとかしろ、しか言わないキチガイにつきあうよりは、
自分トコから一括ダウソにしておいたほうがまだしもマシってことだろう。

888 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 14:32:56 ]
firefoxみたいなブラウザの画面をテクスチャにするにはどうしたらいいでしょうか?

win32APIを使うべきなのかDirectXを使うべきなのかもよくわからないです

889 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 19:38:35 ]
両方使え

890 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 20:46:44 ]
これからDirectXの勉強をしようと思ってるんですけど、
SDKはどのバージョンを使えばいいのでしょうか?
9.0c以降多すぎてよく分からないです
開発環境や実行環境のサポート状況で適当に選んじゃっていいのかな

891 名前:882 mailto:sage [2008/06/30(月) 00:53:27 ]
>>885
レスありがとうございます。

実際に値を入れて、いろいろと調べてみます。

892 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 23:13:30 ]
コンパイルすると以下のようなエラーが出ます
サンプルプログラムなのでソースにエラーはないと思います
調べましたが原因が分かりません
よろしければどなたか御教授いただけないでしょうか?

エラー E2238 c:\Borland\Bcc55\include\d3dtypes.h 113: '_D3DCOLORVALUE' の宣言が複数見つかった
エラー E2344 C:\Program Files\mdsdk\Include\d3d9types.h 60: 一つ前の '_D3DCOLORVALUE' の定義位置
エラー E2146 c:\Borland\Bcc55\include\d3dtypes.h 130: 宣言には識別子が必要
エラー E2238 c:\Borland\Bcc55\include\d3dtypes.h 132: '_D3DRECT' の宣言が複数見つかった
エラー E2344 C:\Program Files\mdsdk\Include\d3d9types.h 70: 一つ前の '_D3DRECT' の定義位置
エラー E2146 c:\Borland\Bcc55\include\d3dtypes.h 149: 宣言には識別子が必要
エラー E2238 c:\Borland\Bcc55\include\d3dtypes.h 151: '_D3DVECTOR' の宣言が複数見つかった
エラー E2344 C:\Program Files\mdsdk\Include\d3d9types.h 51: 一つ前の '_D3DVECTOR' の定義位置

以下略




893 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 23:18:22 ]
>>890
日本語マニュアル必須なら2004OCT
不要なら最新版使っとけ

894 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 23:38:23 ]
まだBCC使ってるやつ居るのか…

895 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 23:44:44 ]
BCCはDirectXに対応してないハズ
どうしてもBCCがいいなら昔のバージョンを使うしかない
VC使えばいいと思うよ

896 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 23:49:53 ]
BCCからVCへの移行は難しい物なのでしょうか?

897 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 00:08:51 ]
やってから言え
どうしてお前が難しいと思うか予想しなければいけないんだ?

898 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 00:09:35 ]
VCはISO準拠度が高いので
もし、移植できないコードがあれば、それはコードが間違ってるってことだから
安心して修正していいよ

899 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 00:10:25 ]
分かりましたVCを導入してみます

900 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 01:18:06 ]
どうせ趣味グラマだろ?
正規版OSならタダなんだから導入も糞もないだろ

901 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 10:53:32 ]
恐ろしいことに2005年以降でもExpressEdition+PlatformSDKを無視して
BCCを使う入門書(笑)や入門サイト(爆)は実在するんだ…

902 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 12:02:15 ]
古いサイトが更新されてないだけではなく?



903 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 12:26:00 ]
HDVファイルの任意のタイムコードの場所を表示する(orビットマップファイルで吐き出す)
コマンドラインのプログラムを作らないといけなくなったのですが、DirectShowベースで
実現可能でしょうか?

C:\> showHDV.exe /pid 10 /timecode 00:00:00:25 test.m2t ← こんな感じ

904 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 16:36:09 ]
スレ違い。
とりあえずSDK読んで考えろ。

905 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 19:54:26 ]
www.greenwood.co.jp/~k-aki/article/sslib2_dsound/source/sslib2/dsound/StreamSoundBuffer.cpp
上記のソースコードですが、CStreamSoundBuffer::Create内でCComPtrを二箇所使用しています。
CComPtrはググってみたところ、スマートポインタの一種と出ました。間違いないでしょうか?
また、bufferはサウンドバッファでm_pStreamBufferに受け渡されているので解放されないのに対し、
notifyは何にも受け渡されないので解放(Release)されてしまうように思われます。
IDirectSoundNotifyはIDirectSoundBufferと異なり解放されても問題ないのでしょうか?

906 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 20:07:00 ]
言葉が足りなかったので
IDirectSoundBufferはサウンドの再生時に必要になるので必要な間にReleaseすると問題になります。
であれば、IDirectSoundNotifyは通知位置を設定するのに使ったので解放すると設定無効にならないのでしょうか?

907 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 21:48:18 ]
自己解決しました。
msdn.microsoft.com/ja-jp/library/cc370470.aspx
上記を見るかぎり、解放しても問題なさそうですね。

908 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 23:32:35 ]
>>904
あんまり有益じゃないアドバイスですね。
一応スレにはルールがありますので、ルールに則った回答をお願いします。

909 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 23:57:59 ]
このスレは初心者と優しい人とギスギスした人で成り立ってます
プログラマーって極端だな

910 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 00:14:16 ]
最近のSDKではDirectX9の更新が無いようですが、
最後に更新されたのはどのバージョンですか?

911 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 00:25:20 ]
d3dx9_xx.dllのバージョンが上がっている以上、
今でも更新されているとお考えください

912 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 02:14:10 ]
マスターアップ前のPGは生理痛の時の女と一緒
つまり、女のPGは大変てこった



913 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 14:48:39 ]
ロックできる指定サイズのサーフェィスってどうやってつくんの

914 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 19:57:19 ]
質問です。

DirectSoundでプライマリバッファのボリュームをいじると、Windowsアプリケーションの「ボリュームコントロール」でコントロールできるWavのところに反映されてしまうようでいまいちよろしくありません。
ゲーム終了時に元に戻すことも考えましたが、ゲーム中にユーザーが「ボリュームコントロール」からいじってたら〜と考えるとこれでも不適当かと。

なので、いったん
「ゲームのBGMや効果音のセカンダリバッファ」 > 「セカンダリバッファ」 > プライマリバッファ
と、1つセカンダリバッファをかませたいのです。

DirectXのヘルプを読むと「ほとんどのバッファの場合、出力先はプライマリ バッファと呼ばれるミキシング エンジンである」
とあったため、工夫すればセカンダリをかませることはできそうなのですが、良い手法はありますでしょうか?


915 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 20:21:20 ]
マスターボリュームをいじるプログラムにするな
以上!

916 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 20:48:58 ]
AOE2はゲーム終了時とかフォーカス喪失時にボリューム元に戻すような仕様だったな
大企業でさえそれなんだから別に気にしないってのも一つの手だとは思うが
どうしても嫌ならManagedDirectXのセカンダリバッファがヒントになるかもしれん

917 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 22:12:01 ]
丁度DirectSoundで盛り上がってるみたいで便乗を
現状、効果音を多重に鳴らす際にDuplicateSoundBufferを使ってます
でもこれ、鳴り終わるまではReleaseしちゃいけないので面倒です

今はここのイベント通知処理を利用し
ttp://msdn.microsoft.com/ja-jp/library/cc370470.aspx
play時にDuplicateSoundBufferで複製。ついでにstaticなリストにCComPtrでくるんで追加。
再生が終わったらリストからはずす(よって開放される)
という感じに実装しています

でもこれが異常に面倒。とてもほかの方々がそうやってるとは思えません
そもそもDuplicateSoundBufferについてぐぐるにひっかからなさすぎ(26件)

みなさん多重に再生する必要がある効果音などは、どのようにしているのでしょうか?

918 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 22:13:30 ]
>>917補足です
再生が終わったらイベントが通知され(登録したコールバック関数が呼ばれ)、そこでリストからはずすようにしています。
リストが壊れないようにクリティカルセクションでかこってやったり、かなり面倒なんですよね
一度作ってしまえばあとは使うだけとは言え・・・

919 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 22:25:27 ]
効果音を鳴らすたびに作って解放するのかと逆に問いたい

920 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 22:58:09 ]
Managedの話で悪いが俺は最大同時再生数と同じ数だけセカンダリバッファ作っちゃってるわ
再生終了はコールバックじゃなくて毎フレームのポーリングで対処してる
少なくとも俺のPCでは遅延とかメモリ食いすぎとかは起こってない

921 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 23:02:08 ]
>>920
私もそんな感じの作りにしてます
他で使うメモリに比べればサウンドで持っていく割合とか微々たるもんだしって感じに思えたので

922 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 23:05:54 ]
>>920
デュプリケートって内部的にカーソルとかその辺のインターフェイスがコピーされるだけで、
実体のサウンドファイルは1つのままだと思うだけどまさか全メモリコピーなのか?



923 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 23:10:06 ]
>>922
なん・・・だと・・・?
今まで全メモリコピーだったわけだが
SDKのリファレンス見たらそんなような事書いてあるな
どう考えてもDuplicateSoundBuffer使ったほうが効率的じゃねえか・・・

924 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 07:05:25 ]
>>923
お前w
昔のDirectX7本とかじゃこの手のは当たり前にのってるのに、最近はおざなりだよなー

925 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 19:46:01 ]
directxのapiで音声入出力のメモリに直接アクセスする手段ってありますか?


926 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 23:35:32 ]
DuplicateSoundBufferに対応していないサウンドボードがまだありそうな気がする・・・

927 名前:925 mailto:sage [2008/07/07(月) 23:35:36 ]
自己解決

928 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 23:50:55 ]
自己解決したときにその情報を出さないやつが、なんで質問して情報を出させようとするんだろうな

929 名前:925 mailto:sage [2008/07/08(火) 00:08:35 ]
>>927は自分じゃありません

930 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 00:10:42 ]
「DuplicateSoundBuffer」がサウンドカードの機能だと思っている人が居たことに衝撃。


931 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 00:48:58 ]
マルチポストに答えてやったら、別スレで「自己解決しました」って
報告してるのを見たときは吹いた

932 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 07:05:59 ]
>>930
ちげーの?
「ドライバだよ!」とかいう言葉遊びは簡便な



933 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 10:01:37 ]
>>932
いやDirectXが処理してる。
音を出すのはサウンドカードだが音のデータをサウンドカードに流してるのはCPUだぞ。
デュプリケートは1つのバッファに対してどこ部分をプライマリにコピーするかって
情報をもったインターフェイスが増えているだけの話だからぶっちゃけ全部CPU処理だぜ。

不安ならセカンダリをLOCALで作成してDirectSound自体をCPU処理固定にすると
環境依存のバグが発生しなくなるのでお勧め。

元々サウンドカード上の専用メモリとかISA時代の転送が遅かった時代のカードにしかないし。

934 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 10:29:22 ]
>>933
おいおい、そりゃ「DirectXでソフトウェアエミュレート」すればDirectXの仕事だけどさw
普通に使ってればDuplicateSoundBufferの命令をうけて(ハード上なり、PCのメインメモリー上なりに)バッファを確保するのはサウンドカード・ひいてはそのドライバの仕事だぜ?
だからこそ、DuplicateSoundBufferは必ず成功するとは限らないんじゃないか。


935 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 12:46:43 ]
実際に動作しないサウンドカードの製品名を挙げてくれ。
そもそもいったいいつの時代の話をしているんだ?

936 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 12:48:19 ]
動かないハードがあるとして、その場合はソフトウェアで勝手にやってくれないもんなの?

937 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 14:33:49 ]
具体的名称までは聞いたことないが、
「PCゲー作ってる会社でのよくあるサウンド関係のトラブルはそれだから注意しな」
と付き合いのある会社から言われたな

ちなみにSDKサンプルでも、きちんとDupできないならCreateでごまかすように組んである
自動ではやってくれない


938 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 19:12:39 ]
>>937
>DupできないならCreateでごまかす

それこそまさにISAの時代の話じゃなくて?

オンボードReadtek、USB外付け音源、サウンドブラスター、
MonsterSound あたりはテストしたが、そんな大きな不具合に遭遇したこと無いな。

それより、ASIO にした方が良いのかぁ、と思ったことは何度かある。

939 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 20:24:02 ]
そういうわけで完全ソフトウェア処理のXAudio使えや愚民共、と相成りました

940 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 22:11:27 ]
XACTがないと早送りや巻き戻しすらできないあれか

941 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 23:04:51 ]
今時クエリーインタフェイスとか
愚民杉

942 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 23:53:19 ]
今も昔もそもそもDirectSoundにハードウェアのまともな対応を期待する方が愚。
かなり初期の頃からDirectSoundだけはソフト処理でやるのが鉄板になってたはずだぞ。



943 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 23:57:24 ]
DirectSoundをソフト処理って、どういう意味合いで言ってるんだみんな?
IDirectSoundBufferの確保時に、フラグでDSBCAPS_LOCSOFTWAREをいれるってこと?

944 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 23:57:25 ]
選べるようにしておけばいいだけの話だろ

945 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 00:08:35 ]
たしか、DirectSound ってサウンドカードのメーカーのあまりものグダグダさに、
マイクロソフトが嫌気がさして、ソフトウェア処理でこれからは行く、とかっていう
記事を見た気がする。

Vista DirectSound HAL で検索をかけるといろいろ出てくる。

Windows は DTM 系のソフトが弱いってのはこの辺りが原因なのかねぇ?
ローランドあたりが先陣切ってやってくれないとね。

946 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 00:17:57 ]
VistaのMIDIへの冷遇は忘れねえ

947 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 00:25:19 ]
>>943

そういうこと。
たとえば最初の3つはサウンドカードのメモリに確保されていて、
その後はメモリが足りなくてシステムメモリに確保された場合に、
ミキシングが絶望的な状況になる。

いまどきのCPUならSSEとかMMXあたりでミキシングできるし、
10個20個程度ミキシングしてもCPUの負荷なんざ1%も食わないのでサウンドカードは
ただの音声出力装置以外の機能は期待しない方がいいと思われ。

そもそもサウンドカードに専用メモリ乗ってたのってCPUからの転送が遅かったISA時代だしな・・・。

948 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 01:24:23 ]
soundblasterの割と最近のサウンドカードがスタティックバッファ持ってるけど、あれが使える状況ってあるのかな

949 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 09:59:42 ]
DSBCAPS_LOCSOFTWAREフラグたてておけば、DuplicateSoundBufferは必ず成功するのかな?
みんなわりと音楽系はそんなに気をつかってないんだね

950 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 22:49:22 ]
SOFTWARE でもサイズが大きいと失敗する。
正確には、Duplicate の時は成功するが Play の瞬間に失敗するようになる。


951 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 22:52:48 ]
>>947
今のCPUをもってしても遅延が絶望的に大きいのが欠点。
外部入力への反応での遅延は致命的。
ASIO であってもまだ不満。



952 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 00:19:59 ]
DirectSoundでDuplicateして鳴らすなんて普通はゲームのSEだろう。
その程度なら1,2フレ遅れたところでたいした問題ないよ。



953 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 01:45:29 ]
>>951
ASIO がだめってどんなんだよ・・・。

ゲームの場合は少し前からSEを鳴らし始めればいいわけで。


954 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 15:47:38 ]
音ゲ厨と60fps厨が組み合わさった怪物だろう

955 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 18:54:55 ]
> 外部入力への反応

って書いてあるから、サウンドエフェクタとかボイスチャットみたいに
リアルタイムにキャプチャーした音を加工するやつじゃね?


956 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 21:49:55 ]
ゲームとマジDTMとはまた違うからなぁ

957 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 00:10:26 ]
ボイスチャットなんざネットワーク介して時点で遅れてるんだから関係ないだろ

958 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 00:38:21 ]
出力だけ同期してりゃいいんだよ






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<247KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef