[表示 : 全て 最新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/

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
脳みそで英→萌→和変換するのがストレス






[ 続きを読む ] / [ 携帯版 ]

前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