鬱だ氏のう DirectX (Part 16)

このエントリーをはてなブックマークに追加
933デフォルトの名無しさん:2007/06/13(水) 21:55:43
確かに、DirectX系スレは
偉そうに罵倒するレスばかりつける奴が
目立つ。
しかも、情報的価値が0なのが痛い。
>>927とか、お前さぁ何が言いたいの?
レス送信する前に、自粛しろよカス
しかしまぁ、子供のすることだし我慢しよう。

934926:2007/06/13(水) 21:56:13
>>日記はチラシの裏にな。
俺?それとも>>931さん?
935926:2007/06/13(水) 22:00:52
俺のせいで荒れたのかと思ったけど、
スレを見返してみるとたしかに>>933さんの言うような感じのレスが目立ちますね。
しかも初心者スレもこばかにしたような回答が多かったし。
なんで?
936デフォルトの名無しさん:2007/06/13(水) 22:06:27
スルーできないなら2ちゃんにくるなよ
答えてくれる人も答えてくれなくなるぞ
937デフォルトの名無しさん:2007/06/13(水) 22:07:26
雑音にレスつけるようなもんですよw
938デフォルトの名無しさん:2007/06/13(水) 22:13:09
939デフォルトの名無しさん:2007/06/13(水) 22:22:16
とりあえず自分で手を動かしてみて、それなりにプロファイリングしてみて、
ボトルネックを突き詰めてから「何故こうなるの?」みたいな質問なら話は早いんだけどね。
脳内コーディングからいきなり「俺様大丈夫スかね?」とお伺いたてるのは
荒れる典型的なパターンだと思うよ。質問者が自分語りをはじめると特に。

時間を無駄にしたくない気持ちはわかるけど、
自分で手を動かさない人間に冷たいのは開発系ならどこでも同じかと。
940デフォルトの名無しさん:2007/06/13(水) 22:36:26
>>926
DirectX に詳しくない漏れがいちおうマジレスしておくと、

非同期 IO をやるのに overlapped IO を用いるかスレッド(プール)を用いるかは、
効率が必要なのかレスポンスが必要なのか、あるいはどちらも不要なのか、
その辺を考慮して決めるわけで、「これが最高の効率だからこれに決まり」とか
そういうもんじゃあないし、

各種バッファのロックも必要な範囲を一発でロック出来た方が良いか、
ちまちまロックして(ロックしようとしているスレッドがブロックしている間にも)
並行してロック済みのに書きこんでゆくべきか、
やりたいことによってどういう処理が最適なのかが変わってくるわけだし、

なんつーの、万能の最適解は無いというか・・・
「駐車場があって、車買うんです。一番良いタイヤは何ですか?」みたいな
質問はあまり真面目にとりあう気になれないってことです。

ある程度どんな場合にでもお勧めできるスタイルは(DualCoreも普及してるから)
「なるべく並列性を高めておく(もちろん実CPU数を大きく超えない程度で)」くらいかなぁ。
941デフォルトの名無しさん:2007/06/13(水) 22:43:08
だからさー、スルーしろってw
雑音に返事をしていることに気付けって
942デフォルトの名無しさん:2007/06/13(水) 23:07:21
初心者スレでも罵倒する奴がいっぱいいるよなぁ。
ゲーム好きの奴には厨が多いのか。
943デフォルトの名無しさん:2007/06/13(水) 23:21:32
ゲーム好きっていうかDirectX好きじゃね
944デフォルトの名無しさん:2007/06/14(木) 00:09:27
「15歳からはじめる DirectX9」なんて本がある位だからな
945デフォルトの名無しさん:2007/06/14(木) 00:19:08
そんでは質問者は頂点バッファをVBOに変えて
OpenGLスレへ突撃すれば幸せになれるのかしら
946デフォルトの名無しさん:2007/06/14(木) 00:24:06
>>944
ネタだと思ったら、ほんとにあるのか…
すごい時代になったもんだな
947デフォルトの名無しさん:2007/06/14(木) 00:30:38
その本ってDXライブラリ使ってるだけじゃなかったっけ?
948888:2007/06/14(木) 00:35:51
どうもありがとうございました。
とても参考になりました。
あとそんな、俺様とかそういうつもりではないんで、ゆるしてやってください。
結果的にレスを重ねていって、そういう感じになっていったかもしれませんが、
くだけて気軽に質問したかっただけなんで…。

それから、最後になんですけど
なんでそんなに馬鹿にするんですかね?
その気持ちに至った経緯とかちょっと興味あるんですけど、
教えてくれないですかね…。
恐らくは俺だけへの気持ちではなくて、質問者総合への気持ちだと踏んでるんですが…。
949888:2007/06/14(木) 00:39:50
>「駐車場があって、車買うんです。一番良いタイヤは何ですか?」みたいな
>質問はあまり真面目にとりあう気になれないってことです。
ああ、あとひとつ、
深い知識があってこその発言と感じとれますが、
この辺に至れるまでにはどういうのを参考にすればいいんでしょうか、
もしも簡単に説明できたらでいいんで、お願いできますか?
ますます漠然としてしまいましたが…。すいません。
950デフォルトの名無しさん:2007/06/14(木) 00:42:02
経験
951888:2007/06/14(木) 00:47:58
ごもっとも
今までありがとうございました。
2ちゃんとはいえ開き直りすぎたので去ります。ごめんなさい。
952デフォルトの名無しさん:2007/06/14(木) 01:02:40
勢い1.7・・・次スレは>>990くらい?
953デフォルトの名無しさん:2007/06/19(火) 14:00:00
Drawの描画が早いらしいのでDrawを使おうと思いDrawのヘルプを見ると至る所に
Warning: This method(class) is deprecated.
Deprecated components of DirectX 9.0 for Managed Code are
considered obsolete. nanntokakanntokahogehogepoor ...
とか書いてあるんですが、MSはDrawを使ったプログラムが動く事を
今現在保証しているんでしょうか。age :-)
954デフォルトの名無しさん:2007/06/19(火) 14:40:36
sage
955デフォルトの名無しさん:2007/06/19(火) 15:22:27
:-)
956デフォルトの名無しさん:2007/06/19(火) 16:02:23
:-X-:
957デフォルトの名無しさん:2007/06/19(火) 19:56:46
sageます><
958デフォルトの名無しさん:2007/06/19(火) 21:51:31
>>953
それを保障するのはビデオカードメーカー。
最近のビデオカードがわざわざDirectDrawでの拡大縮小なんてサポートするとは思えないがな。
959デフォルトの名無しさん:2007/06/19(火) 21:57:08
拡大縮小ならビデオ再生支援機能とか広告が踊った時代に、
GDIレベルでビデオカードがサポートしているが、
いったいどこの原始人だよ>>958は?
960デフォルトの名無しさん:2007/06/19(火) 22:02:05
ハイレゾとかマルチメディアパソコンとか
そういう時代だな
961デフォルトの名無しさん:2007/06/19(火) 23:03:53
拡縮と回転と半透明だけならGDI+だな
それらを同時にかけるとDirectXしかないけどw
962デフォルトの名無しさん:2007/06/19(火) 23:14:32
GDI+で速度を期待しちゃいかんよ
963デフォルトの名無しさん:2007/07/07(土) 21:09:12
ここDirectXスレ?
DirectX10について質問したいんだが、答えてくれる人いる?
964デフォルトの名無しさん:2007/07/07(土) 21:36:58
はいどうぞ
965デフォルトの名無しさん:2007/07/07(土) 21:38:00
具体的に質問内容を書いておくと、D3DX10CreateEffectFromFile()でdx9用(sm3.0)のfxファイルをコンパイルする方法を知りたいのだが。
たとえば、
technique T0 {
pass P0 {
VertexShader = compile vs_3_0 VS();
PixelShader  = compile ps_3_0 PS();
}
}
という内容のfxファイル(仮に"dx9.fx")を
D3DX10CreateEffectFromFile("dx9.fx", NULL, NULL, "fx_4_0", D3D10_SHADER_ENABLE_BACKWARDS_COMPATIBILITY, 0, iDev, NULL, NULL, &piEffect, &piErrorTextBuffer, &hr);
でコンパイルしようとすると、hr==S_OKなのだが、その後ID3D10Effect::GetDesc()でD3D10_EFFECT_DESCを取得すると、テクニック数(Techniques)が0で帰ってくる。
何かいい方法は無いか?
別にD3DX10CreateEffectFromFile()でなくても、DirectX10のインターフェイスでdx9用のシェーダをそのまま使用できればそれでいいのだが、何かいい方法を知っている人教えて。
966デフォルトの名無しさん:2007/07/08(日) 02:42:01
DirectX10使ったことないから適当に言うけど、fxcとかでコンパイルしてみた?
そのときにエラーメッセージとか何か出るかもしれんよ。

D3DXCreateEffect系でもエラーメッセージ取れることは取れるけど、めんどくさいんだよね
967デフォルトの名無しさん:2007/07/08(日) 03:25:33
fxcは使って無いなー。
D3DX10CreateEffectFromFile()から帰ってくるメッセージは、MipFilterはDX10では非推奨だから使わないでくれ、とかいうぐらいだった。
fxc使うと何か違うのかな。
968デフォルトの名無しさん:2007/07/08(日) 03:35:56
いちいちプログラム実行しなくてもコンパイルエラーかどうかは分かるだろ
969デフォルトの名無しさん:2007/07/08(日) 03:41:15
コンパイルエラーだったらS_OKは帰ってこないだろう。
970デフォルトの名無しさん:2007/07/08(日) 03:43:18
実際、さっきfxcでコンパイルしてみたけど、ちゃんとコンパイルは通って、オブジェクトファイルも作成されたぞ。
971デフォルトの名無しさん:2007/07/08(日) 03:49:48
ちなみに、まったく同じ警告メッセージも表示された。
つーか、たぶんD3DX10CreateEffectFromFile()は、内部でfxcを呼んでいるか、同等の処理をしているだけだと思うのだが。
972デフォルトの名無しさん:2007/07/08(日) 04:09:14
>>969
その場でDOS窓にエラーメッセージが出るのがいいんだろう。
CreateEffectFromFile()でエラーメッセージ取るのはめんどい。
973デフォルトの名無しさん:2007/07/08(日) 04:22:34
ぶっちゃけ手順はどうでもいいんだ。
俺は単に、別途fxcするのが面倒くさいからこうしているだけだ。好みは人それぞれだ。
問題は、どうしたらちゃんと動作させられるか、ただそれだけなんだ。
974デフォルトの名無しさん:2007/07/08(日) 07:45:42
>>973
fxcでのコンパイルは別のプロジェクトにつっこんでmakeファイル使うと楽だぞ
975デフォルトの名無しさん:2007/07/08(日) 09:38:04
実行時にシェーダだけリコンパイルしてエラーも表示できるようにしておけば動かしながら微調整ができて便利
976デフォルトの名無しさん:2007/07/08(日) 17:58:32
微調整て、定数パラメータじゃなくて?
ソース書き換えるのは調整というのだろうか…
977デフォルトの名無しさん:2007/07/08(日) 19:32:38
でもシェーダって何を定数として渡すか?ってところまで汎用性ないから
結局ソース書き換えることになると思うんだけどね
今のところコンパイルなしで動かせることにメリットはないかな?俺は。
978デフォルトの名無しさん:2007/07/08(日) 19:40:53
デバッグメニューの品質によるんじゃないの?
少なくともマテリアルとかライティングの色調整みたいなものは
実行時に変えられるようにはなってるけど。
979デフォルトの名無しさん:2007/07/08(日) 19:45:45
結局どうすれば、DX10でDX9用シェーダを使えるようになるんだ?
980デフォルトの名無しさん:2007/07/08(日) 20:33:43
DX本って最近売れてるのかね
981デフォルトの名無しさん:2007/07/08(日) 21:50:50
>>979
このスレじゃ分かる奴居ないからそれ以外の回答しか出てこないことに気づけ
分かったら少なくともここでは先駆者になれる

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1485484&SiteID=1
982デフォルトの名無しさん
>>981
ありがとう。
色々検索したけど、ここにはたどり着けなかったわ。
英語あまり得意じゃないけど(勉強中だけどスラスラ読めるレベルではない)、早い話がDX9用のシェーダをそのまま流用するのはむずかしい、ということでOK?
方法が無いなら無いで、あきらめはつくし。
違っていたら突っ込みよろしく。