- 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/
- 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
今はインストールさせるのとさせないのどっちが主流っぽいの? たいした手間ではないんだけど、ゲームも大したもんじゃないから気が引けるぜ
|

|