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

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

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

1 :デフォルトの名無しさん:2010/03/16(火) 00:16:48
※回答する人も、質問する人も必ず読んでください

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

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

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


546 :デフォルトの名無しさん:2010/04/30(金) 13:19:55
D3DXFONTを使って
FPSのフォント表示をしてみたのですが,
60FPSでコマ落ちしてしまいました.

ググる限りだと,もっぱら遅いと評判なのはわかりましたが,
ここまで遅いものなのでしょうか?

547 :542:2010/04/30(金) 14:18:42
>>545
エンジン提供できるレベルになれたらうれしいなぁ・・・
それぐらいを目標にしてみる。

548 :デフォルトの名無しさん:2010/04/30(金) 14:30:30
>>546

以前フレームごとにフォントを生成して遅くなっていたケースを見たが、
どうだろうか?

549 :デフォルトの名無しさん:2010/04/30(金) 14:34:53
fpsを表示するくらいで60fpsを下回るのは明らかにおかしいな。
D3DXFontはそこまで酷いもんじゃない。

550 :デフォルトの名無しさん:2010/04/30(金) 14:40:12
フォント表示で始めてフレームレート表示したのに遅くなったとか分かるの?

単純に垂直同期してるってことは無いよな

551 :デフォルトの名無しさん:2010/04/30(金) 15:16:45
536 537 回答ありがとうございます。

C++・DIRECTX・win32APIは初めてさわるので手探り状態です・・・。
背景を透過というのはDirectxの作画結果の透過に成功したのでしょうか?

directx>DIB>ウィンドウに送る部分までは出来たので
今動かそうとしているのはDIBを半透明で表示する部分です

ウィンドウそのものが表示されない状態です

void UpdateLayeredImage( HWND hwnd, HBITMAP hbmp, int x, int y )
{
HDC hdcScreen = ::GetDC( NULL );
HDC hdcMemory = ::CreateCompatibleDC( hdcScreen );

SelectObject( hdcMemory, hbmp );

BLENDFUNCTION bf = { AC_SRC_OVER, 0, 0xff, AC_SRC_ALPHA };


int ret = UpdateLayeredWindow( hWnd, NULL, NULL, NULL, NULL,
NULL, 0, &bf, 0);

assert( ret );

::DeleteDC( hdcMemory );
::ReleaseDC( NULL, hdcScreen );
}


552 :デフォルトの名無しさん:2010/04/30(金) 15:30:20
>UpdateLayeredWindow( hWnd, NULL, NULL, NULL, NULL,NULL, 0, &bf, 0);
この引数と直前にやっている処理がかみ合っていないことに気がつかない時点でどうしようもない。

553 :デフォルトの名無しさん:2010/04/30(金) 15:46:50
>>551
ウィンドウそのものが表示されないって・・ とりあえず3ヶ月も時間無為に過ごしたのなら
あとちょっと2日くらい集中して、まずはこれを全部消化してみるといい。

http://wisdom.sakura.ne.jp/system/winapi/win32/index.html

今だけだ。とりあえず全部消化してみて、その後 MSDN・・・ は日本語版はクソだけど関数の仕様を追いかけろ。
多分、DirectXとか派手な方にばかり気がいってて基本的な事がおろそかになり過ぎてる。
なので簡単な事が理解出来ない。 それじゃ多分、自分自身がこれからもずっと辛いはず。 がんばれ


554 :デフォルトの名無しさん:2010/04/30(金) 15:51:53
>>553
ウィンドウズプログラム始めたばかりのとき、そのサイトにはたいへんお世話になった。
今DirectXプログラムを組めるのも、このサイトで得たウィンドウズプログラミングの基本あってのこと。
感謝、感謝。

というわけで、>>553のサイトはオススメよ。

555 :デフォルトの名無しさん:2010/04/30(金) 16:49:50
>>550
言葉足らずでしたが,フォント表示から始めてるわけじゃないです.
レンダリングまわりは出来てます.

>>549
おかしいですよね..;

レス拝見して冷静になってみて,
色々コメントアウトしてみた試したところ,
(デバイス)->Present()を,
メッシュの描画とテキストの描画で2回呼んでしまっていて,
それが原因で遅くなっていたようです.
有り難うございました;

556 :デフォルトの名無しさん:2010/04/30(金) 17:20:20
>>551
まと外してるかもだけど、こういうのもあるよ。
ttp://yokohama.cool.ne.jp/chokuto/urawaza/windowrgn.html

557 :デフォルトの名無しさん:2010/04/30(金) 17:27:58
>>556
HSPだった。orz
同じようなことはWINAPIでもできるはずなんだが見当たらんなぁ・・・。

558 :デフォルトの名無しさん:2010/04/30(金) 17:40:14
>>556-557だが、やっぱ外してたので忘れてくれ。すまん!!!!!orz

559 :デフォルトの名無しさん:2010/04/30(金) 17:40:22
>>557
WIN32でできるはずなのに見当たらんって、それ考え方が違うからじゃね
出来ない訳ないじゃない。

ヒント: そのサイトにあるそのライブラリの中の処理は、きっと中でカラーキーを持った画像を持っている。



560 :デフォルトの名無しさん:2010/04/30(金) 17:55:54
こういうサイトを見つけた。結構細かく書いてあるきがするから、どうだろう??
ttp://www.yoshibaworks.com/ayacy/inasoft/wpt/ulw.html

>>559
悔い改めます。Orz

561 :デフォルトの名無しさん:2010/04/30(金) 18:01:52
552,553 回答ありがとうございます。

>>552
ですよね。どうやればかみ合うかよくわからない状態です

>>553
CreateWindowEXにレイヤードを設定しなければ
普通に表示はされるんですよね・・・謎です。

ありがとうございます。
しばらく保留にしてHPの内容やってみますね

562 :デフォルトの名無しさん:2010/04/30(金) 18:08:13
なんでドキュメントのUpdateLayeredWindowの説明読まないの?

563 :デフォルトの名無しさん:2010/04/30(金) 20:15:36
読んだお

564 :デフォルトの名無しさん:2010/05/01(土) 01:35:23
DirectX Viewerでfxファイルを開くことが出来ますが有用な使い方はあるのでしょうか。
パラメータの受け渡しが出来ないので複雑なものは見れないでしょうし、
サンプルのファイルすら開いたところで何を見ていいのか分かりません。
場合によっては白い球体のまま・・

565 :デフォルトの名無しさん:2010/05/01(土) 01:51:11
あれってそのPCでDirectXが動作するかどうかのチェックする程度のものじゃないのか

566 :デフォルトの名無しさん:2010/05/01(土) 03:36:26
DirectXUtilitiesに含まれる全てのツールは
バイナリだけでなくソースもサンプルの中に含まれている
後は分かるな?

567 :デフォルトの名無しさん:2010/05/01(土) 04:00:18
D3DXLibってソース公開しないのはなんでだ

568 :デフォルトの名無しさん:2010/05/01(土) 04:32:03
中身ほとんどアセンブラだけどな

569 :デフォルトの名無しさん:2010/05/01(土) 12:29:12
なんらかのライセンスに触れた場合を想定してるんじゃね?とゲスパーしてみる。

570 :デフォルトの名無しさん:2010/05/01(土) 13:07:21
でも別にたいしたことやってなさそうな気がするけども、、、

571 :デフォルトの名無しさん:2010/05/01(土) 13:17:19
すみません。
影やエフェクト表現の為に、地面すれすれに半透明テクスチャを貼る別ポリゴンを作りたいのですが、
必要な元(地形)ポリゴンを抜け目なく取得する良い方法はないでしょうか・・?
できれば詳しい解説のあるサイトを教えて頂けますと幸いです・・orz

572 :デフォルトの名無しさん:2010/05/01(土) 14:25:11
Directx11のD3DXVECTOR3って無いんですか

573 :デフォルトの名無しさん:2010/05/01(土) 14:49:51

>>571
何がやりたいのか意味不明
○影なら4角形の板ポリを足下に置くだけだ


574 :デフォルトの名無しさん:2010/05/01(土) 14:57:30
>>571
>必要な元(地形)ポリゴンを抜け目なく取得する良い方法
が世界のx,zを決めると、そのポリゴンの高さを取得?
と解釈するなら
ttp://marupeke296.com/COL_3D_No8_HightOfFloor.html
ここにいくつかの方法が


FindVerticesOnPoly←これをグーグルで入れると
(DirectX逆引き大全500の極意、Directx必携の自作関数の名前)

一応サンプルが見れるようだ
レイとメッシュの交点を調べている

しかしながら俺も初心者なのでもっといいやり方があるような
気もするので、あったら申し訳ない

地形が複雑だと丸影なんかだと不自然にめり込んだり
するような気もするので、
決め打ちで問題ないとも、directxシェーダプログラミングブック
に書いてあった。

575 :デフォルトの名無しさん:2010/05/01(土) 15:02:20
デコボコした地形に貼り付けたいならシャドウマップを応用すればできそう
平らな地形でいいなら地面チョイ上にポリゴンを置くだけだな

576 :デフォルトの名無しさん:2010/05/01(土) 15:36:41
>デコボコした地形に貼り付けたいなら
投影テクスチャだろ普通

577 :デフォルトの名無しさん:2010/05/01(土) 16:10:23
普通、広いフィールドで投影テクスチャの影を付ける場合、
フィールドのマテリアル全てをマルチテクスチャにするの?

578 :デフォルトの名無しさん:2010/05/01(土) 16:56:56
>>577
まあ普通マルチパスだろう
1回目:普通にフィールド描画
2回目:影を落としたいフィールドのみ投影テクスチャで描画

579 :デフォルトの名無しさん:2010/05/01(土) 17:08:42
地形が単一メッシュで構成されてるならそれで良いと思うが

580 :デフォルトの名無しさん:2010/05/01(土) 19:21:47
レイヤードで作画背景が透過できました。
レスくれた方ありがとうございました

581 :デフォルトの名無しさん:2010/05/01(土) 19:55:54
投影テクスチャでキャラが複数の場合、キャラの数だけ地形を描画するのは馬鹿っぽいので
影の落ちる位置のポリゴンを切り出したりするの? 表示用のポリゴンに対して当たり判定とか

582 :デフォルトの名無しさん:2010/05/02(日) 11:44:33
>>581
影はキャラ単位で管理すると難しいので、
見た目は落ちるが、光源単位で管理するのがよいと思う。

例えばスポットライトだとすると、スポットライトの形状から
視錘台を作り、キャラ群とフィールドをクリッピングして抽出する。

次に抽出したキャラ群のみライト視錘台で描画し、影用の投影テクスチャを作成する。

次に普通にフィールドとキャラ群を描画。

次に抽出したフィールドのみ投影テクスチャで描画。

ちなみにシャドウマップも同じような方法なので
これをやるなら直接シャドウマップに行ってもいいと思う。

583 :デフォルトの名無しさん:2010/05/02(日) 23:41:52
今、DirectX9で HLSLの実験を始めてるんだが・・・ MSDNに騙された

D3DXCreateEffectFromFile に渡せるフラグの値を確認したかったんだけど、この記事には

http://msdn.microsoft.com/ja-jp/library/cc372270.aspx
>Flags
>[in] D3DXSHADER で識別されるコンパイル オプション。

としか書いていないんだが、SDKのSampleでは違う値がセットされていた。
???と思い、さらにググった所、一見似た格好のMSDN内別ページを発見

http://msdn.microsoft.com/ja-jp/library/bb172768(VS.85).aspx

該当箇所が大分変更されていた。 ・・・いや本当、関連情報、別リリース版へのリンクくらい付けとこうよと思った。


584 :デフォルトの名無しさん:2010/05/03(月) 00:05:39
>>583
最近はマシになってるものの、日本語版のドキュメントは翻訳抜けとか情報が古い箇所が散見されるんで
英語版のMSDNを見るクセをつけた方がハマらなくて済むぞ

585 :デフォルトの名無しさん:2010/05/03(月) 00:35:39
>>583
むしろ上のリンクはわざわざ「過去のバージョン」から辿った先にある
ドキュメントで、そんなところを参照する方が悪い希ガス。

586 :デフォルトの名無しさん:2010/05/03(月) 01:00:38
自分もこれに昔ハマったw
同じようなのでも二つあるから注意w

587 :デフォルトの名無しさん:2010/05/03(月) 01:03:42
583氏はわざわざ過去のバージョンからたどったわけじゃなくて、
ググったらたまたまたどり着いちゃっただけでしょ。
関数名で検索すると過去のバージョンがトップに出る確率が高いんだよね。

588 :デフォルトの名無しさん:2010/05/03(月) 10:32:54
だめだ、どうやっても DirectX9 で頂点シェーダが使えない何も表示されない
ピクセルシェーダは正常で、HLSLに問題が無い事は FX Composer でも動作確認して、C++側各所のHRESULTも確認済み。
しかし頂点シェーダを使おうとすると何も表示されない。
・・・もう少し自力で調べて整理してから、質問します

589 :デフォルトの名無しさん:2010/05/03(月) 10:39:51
なぜPIXを使わないのかと小一時間

590 :デフォルトの名無しさん:2010/05/03(月) 10:52:46
PIX?
ちなみにHLSL側の問題じゃなくて、HLSLコードはこれだけなので、
http://codepad.org/LnMY4hoO

多分C++側の問題。何かを忘れてるか、知らないか、勘違いしてると思うので今整理中です


591 :デフォルトの名無しさん:2010/05/03(月) 10:53:27
ちなみに、シェーダバージョン2.0 で動作する事は、他のサンプルなどでも確認済み


592 :デフォルトの名無しさん:2010/05/03(月) 10:58:17
COLOR0の値を頂点シェーダから渡してないから0, 0, 0, 0が出力されて
黒い背景に紛れたか、アルファテストかなんかでクリップされて、
表示されてないように見えるだけ、に100ペリカ

593 :デフォルトの名無しさん:2010/05/03(月) 11:21:57
ほんとだ。
頂点カラーを頂点シェーダからピクセルシェーダに渡してないじゃん。

594 :588:2010/05/03(月) 11:29:50
すみません、コピペする際にちょっと削り過ぎました。
http://codepad.org/LAUgfxiv

実際にはここに他に diffuse、ambient などの値も渡しています。
しかし↑これであっても状況は同じ。 もうちょい追いかけます


595 :588:2010/05/03(月) 11:30:51
ミス
http://codepad.org/JkUTN1EX

596 :デフォルトの名無しさん:2010/05/03(月) 11:47:30
PIXでワイヤーフレーム表示されてる?

597 :デフォルトの名無しさん:2010/05/03(月) 11:56:29
>>588
>float4 psProc(VSOut In) : COLOR {
PSの入力にVSOutは駄目じゃね?

598 :597:2010/05/03(月) 12:01:04
>>597は間違いのようだ
失礼すまんこかぱっく

599 :588:2010/05/03(月) 12:20:56
状況整理します。環境は XPSP2/Geforce8800GT/DirectX9.0c November2008/VC++2008Express
目的は、HLSLでピクセルシェーダだけでなく、頂点シェーダを使いたいだけ。

状況:
D3DCAPS9 caps9;
GetDeviceCaps(0, D3DDEVTYPE_HAL, &caps9);
caps9.VertexShaderVersion >= D3DVS_VERSION(2,0) はTRUEで、サポートはされている状態。

D3DVERTEXELEMENT9 で頂点情報をセットし、CreateVertexDeclaration で
LPDIRECT3DVERTEXDECLARATION9 を取得。HRESULTは S_OK

その後、D3DXCreateEffectFromFile でくだんの HLSLファイルをロード、これも S_OK。
LPD3DXEFFECT を取得し、D3DXPARAMETER_DESC でHLSLのグローバル変数のハンドル取得、

レンダ処理のタイミングで LPD3DXEFFECT::Setほげ系も全て全て S_OK。
SetVertexDeclaration 先の頂点定義を渡す、これも S_OK

BeginSceneの後、Begin(&pass,0); BeginPass(0) 〜 EndPass(0); End(); EndScene() まで全て S_OK

この状態で、HLSL内の VertexShader をコメントアウトした時だけとりあえず表示はされます。
HLSLそのものは、念のため PIXでもFXComposerでも確認しましたが正常に動作しています。

あと気になっているのは・・・
・CreateVertexBuffer のタイミングで、FVFの頂点情報の指定を D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1
 のように指定する必要があるか無いか。(両方試しましたが状況は変わりませんでした)
・DrawPrimitiveでなくDrawIndexedPrimitiveにしているのですがこれで問題が無いか。
・SetVertexDeclaration を行うタイミングはレンダ処理のタイミングに行っていますがこれで問題が無いか。
・HLSLを使う際には SetFVF は実行しないようにしていますが、これでいいのか。
 (これも両方試して状況が変わらない事を確認していますが、何かの兼ね合いがあったりしないか)
・SetMaterial でマテリアルを設定しているのですが、これが不要か否か

などです。いずれも、HRESULTの戻り値でエラーが出ていない事は執拗に確認済みです。長くなってすみません

600 :デフォルトの名無しさん:2010/05/03(月) 12:35:33
VertexShader無効にしても動くってことは、SetTransform使ってたりしない?
頂点シェーダにちゃんと定数として行列渡してる?

601 :588:2010/05/03(月) 12:44:09
あ、あとHLSL側、エフェクト->SetMatrix(ハンドル, 行列); で渡す行列として、

デバイス->SetTransform(D3DTS_WORLD, &matWorld);
デバイス->SetTransform(D3DTS_VIEW, &matView);
デバイス->SetTransform(D3DTS_PROJECTION, &matProject);

としている3つの行列をかけた物を渡しているのですが、これで問題無いでしょうか。
※つまり、デバイスにもセット、HLSLにもセットと二重に行列を渡しているような状態。

他、デバイス->SetRenderState の中で、VertexShader を使う際にはセットしてはいけない物など
何かありますでしょうか・・・。


602 :588:2010/05/03(月) 12:45:27
あ、リロードしてなかった・・・

>>600
まさにそれ、急いで確認します!

603 :デフォルトの名無しさん:2010/05/03(月) 12:49:02
多重にセットしてもSetTransformは無視されるだけだから問題ないと思うけど。
行列をかける順番が間違ってるとか?

604 :588:2010/05/03(月) 13:02:19
ええと



なんかすみません。
なんて謝っていいのかわかりません

605 :588:2010/05/03(月) 13:08:45
一応、結果を書いておくと。動きました。 結論から言うと、自分の凡ミスでした。

>>603 さんのレスを見て、「いやいやww 間違ってないですよww」 と思いながら、
自前のカメラ管理クラスから行列取り出す部分を追いかけ、>>600 さんから頂いた、

>頂点シェーダにちゃんと定数として行列渡してる?

のレスを見て気づきました。
要は、メンバ関数の中でかけて作った自動変数の行列のポインタを投げていたっていう最低なオチです。
ちょっと天気もいいので散歩してきます。 ご迷惑おかけしました。
こんなうんこみたいな事例でも何かの反面になれば幸いです。 ありがとうございました。

606 :デフォルトの名無しさん:2010/05/03(月) 13:13:22
>>605
氏ね

607 :デフォルトの名無しさん:2010/05/03(月) 13:15:20
まぁまぁw

608 :デフォルトの名無しさん:2010/05/03(月) 13:15:33
マジでクソだなこいつ

609 :デフォルトの名無しさん:2010/05/03(月) 13:16:58
まぁここ初心者質問スレだし、いんじゃね?こういう部分にも気を配れっていう反面教師って事でw

610 :デフォルトの名無しさん:2010/05/03(月) 13:17:57
コードも見ずにそんなミス指摘できねえよw

611 :デフォルトの名無しさん:2010/05/03(月) 13:21:30
だよなwwワロタww でも逆にその状態で推理してた数名は凄いなww
俺なんか 588が書いてる内容の半分も理解できない。ググってもなんかよくわからない


612 :デフォルトの名無しさん:2010/05/03(月) 13:28:30
このスレはツワモノ揃いだからね。
DirectXに対する知識、経験値の深さが違う。

613 :デフォルトの名無しさん:2010/05/03(月) 15:35:49
高度に経験を積んだプログラマーはエスパーと見分けがつかないからな。
でも上のみたいな例をを見るとDirectX触るの嫌だな

614 :デフォルトの名無しさん:2010/05/03(月) 18:53:16
ここで話題になる内容は精々中程度のレベル
それは答えている奴が最もわかっていると思う
別にそれが悪いと言っているんじゃないんであしからず

615 :デフォルトの名無しさん:2010/05/03(月) 20:13:55
「高度に経験を積んだプログラマーはエスパーと見分けがつかない」

ツボに入った、今世紀最大の格言の栄誉を送る

616 :デフォルトの名無しさん:2010/05/03(月) 20:20:08
これからもこのスレを支えてくれる人たちだ・・・

617 :デフォルトの名無しさん:2010/05/03(月) 20:26:02
童貞のまま30歳オーバー+
高度に経験を積んだプログラマーはどうなりますか?

618 :デフォルトの名無しさん:2010/05/03(月) 20:28:54
魔法のようなシェーダが書けるようになります。

619 :デフォルトの名無しさん:2010/05/03(月) 20:41:39
はいはいウィザードウィザード

620 :デフォルトの名無しさん:2010/05/03(月) 20:42:54
つまりウィザードなんてなくても魔法のようなコードが書けます、って事ですね


621 :デフォルトの名無しさん:2010/05/03(月) 20:44:26
誰うま

622 :デフォルトの名無しさん:2010/05/04(火) 03:45:24
プロのグラマーでいいから経験ぐらい積んどけ

623 :デフォルトの名無しさん:2010/05/04(火) 03:48:44
審議中........

624 :デフォルトの名無しさん:2010/05/04(火) 04:40:11
         
    ∧,,∧  ∧,,∧
 ∧ (´・ω・) (・ω・`) ∧∧   
( ´・ω) U) ( つと ノ(ω・` )   
| U (  ´・) (・`  ) と ノ   
 u-u (l    ) (   ノu-u
     `u-u'. `u-u'  



625 :デフォルトの名無しさん:2010/05/04(火) 06:11:13
【結果発表】
パッ   パッ   パッ    パッ   パッ    パッ
 [つり]  [ヲタ]  [池沼]  [厨房]  [氏ね]  [終了] 
  ‖∧∧  ‖∧∧ ‖∧,,∧ ‖∧,,∧ ‖∧∧  ‖,∧∧
  ∩・ω・`)∩・ω・`)∩・ω・`)∩・ω・`)∩・ω・`)∩・ω・`)
   (    ). (    ). (    ) (    ) (    ) (    )
   `u-u´  `u-u´   `u-u´  `u-u´  `u-u´  `u-u

626 :デフォルトの名無しさん:2010/05/05(水) 22:35:38
BGMを流したいんですが,
DirectMusicを使うんでしょうか?
DirectShowを使うんでしょうか?

627 :デフォルトの名無しさん:2010/05/05(水) 22:40:42
その問いだけなら、「好きな方」って答えしか出てこない


628 :デフォルトの名無しさん:2010/05/05(水) 22:46:41
自分はXAudio2使ってるよ。
簡単で分かり易かったしオススメ。
MSも今後はXAudio2の使用を勧めてなかったっけ??

629 :デフォルトの名無しさん:2010/05/05(水) 23:28:42
横からなんだけど、XAudio2って触った事無かったんだが
http://msdn.microsoft.com/ja-jp/library/cc308014(v=VS.85).aspx

なんか楽しそう。俺もちょっと何か作ってみる

630 :デフォルトの名無しさん:2010/05/05(水) 23:30:32
一々報告せんでもいい
ここはお前の日記帳じゃない

631 :デフォルトの名無しさん:2010/05/05(水) 23:34:24
いやお前のレスの方がいらない

632 :628:2010/05/05(水) 23:37:57
昔DirectSoundで挫折した(プログラミングに不慣れなところもあったけど)ので、音方面は戦々恐々だったけど、
XAudio2を使ってすんなり鳴らせて拍子抜けだったw
SEみたいに短い音と、BGMのような長い音とで使い分けがいることに注意するくらいかな。
とりあえずオススメ。

633 :デフォルトの名無しさん:2010/05/05(水) 23:45:49
あの時代のDirectXオブジェクトは、
COMコーポネントの流儀に沿うように作っていたから
無駄に複雑なんだよな。
D3D8ぐらいからキレてシンプルに作るようになったw

634 :デフォルトの名無しさん:2010/05/06(木) 00:11:49
たしかDirectXはCOMでありながら、だんだんとCOMっぽくなくなっていったそうだねw

>キレてシンプルに作るようになったw
キレたのかw

635 :デフォルトの名無しさん:2010/05/06(木) 00:22:31
DirectShowだけはいまだにコムコムしてるけど、
だいぶ前にDirectX SDKから外れちゃったしね。

636 :デフォルトの名無しさん:2010/05/06(木) 00:29:21
DirectShowはむしろCOMであることが活きている。

637 :デフォルトの名無しさん:2010/05/06(木) 00:36:56
C言語の基本文法とWin32APIの基本事項を覚えただけで
「俺ってすごくね?」と舞い上がってしまった後に、DirectShowで呆然としたのが懐かしいw

638 :デフォルトの名無しさん:2010/05/06(木) 01:43:24
XAudio2知らなかったです.
聞いて良かったです.
ありがとうございました.


639 :デフォルトの名無しさん:2010/05/06(木) 01:44:36
がんばれよ!

640 :デフォルトの名無しさん:2010/05/06(木) 01:56:22
パーティクルに関して詳しく載ってるサイトなり書籍なりありますでしょうか?

641 :デフォルトの名無しさん:2010/05/06(木) 02:28:23
>>640
ないない


642 :デフォルトの名無しさん:2010/05/06(木) 12:37:02
>>640
>パーティクルに関して詳しく

詳しくって、どこからどこまでの話?
何をやろうとしていて、何がわからないのか書かないと
>>641 みたいなレスしか出来ないと思うぞw

643 :デフォルトの名無しさん:2010/05/06(木) 12:45:29
ごめん、XAudio2 のヘッダとスタティックリンクライブラリどこにあるの?・・・ww
とりあえずここを見ると、
http://msdn.microsoft.com/ja-jp/library/bb694515(v=VS.85).aspx

>ヘッダー: XAudio2.h 宣言
>ライブラリ: XAudio2.lib 内容

とあるんだけど自分の環境、DirectX SDK (November 2008)\Lib\x86 以下には
X3DAudio.lib しかそれらしい物が無い。 もしかしてSDKバージョンのせい?
あるいはひょっとして・・・ XNA SDK インストールしないと無い?

644 :643:2010/05/06(木) 13:07:36
すいません、自己解決しました。
http://forums.xna.com/forums/t/5813.aspx

正解は、
×ライブラリ: XAudio2.lib
○ライブラリ: XAPOBase.lib

実際に上記ライブラリをリンカに指定してテストコードが正常に動いた事も確認しました。
ちなみにこの件については英語版MSDNの方も間違ってる模様。



645 :デフォルトの名無しさん:2010/05/06(木) 14:33:28
>>573-579 >>581-582
遅れましたが、ありがとうございます。
やはり欲しい物の形としては、レイを飛ばしまくってポリゴン情報抜いて
実装にルールを付けて自分でなんとかする・・しかなさそうですね。
その他の影についての話も参考になりました。ありがとうございました。

646 :デフォルトの名無しさん:2010/05/06(木) 14:44:34
すみません。変に機能を別けたり纏めたりしてる内に、
1フレーム内で、同じテクスチャを何度も何度もLockRect〜UnlockRectしまくる形になったのですが、
これは重く無駄な事をやっているのでしょうか?

もし重く無駄な事をやっているのでしたら、
・フレーム毎に全テクスチャをLockRectし、テクスチャ操作が終ったら全てUnlockRectする。
という形に全体を書き直そうと思うのですが、もっと良い方法が有ったりしますでしょうか?

270 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)