DirectX総合スレ (Part2)
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
04/09/22 23:30:32ID:anobjZYP基礎的な質問+高度な質問も簡潔かつ簡単に答えることをモットーにして頂き
このスレの回転を早めて常にアクティブなスレにしたいと思っております。
このスレに質問等を書かれる方はまず最初に自分でしっかりと調べたのちに聞かれることをお願いします。
質問に対する答えも簡潔に出来る限りわかりやすくお願い致します。
テンプレは >>2以降で
0619名前は開発中のものです。
04/12/02 02:13:08ID:5ZtfMNQF他スレや過去ログみてわかんなかったら、ここで説明しても知識が足りなくてわかんないだろうから
とにかくうだうだいう前に勉強しれでちゅ
でもまぁせっかくなので軽く答えるでちゅ
やれることにはかなり違いがあるでちゅ
どんなことができるかは、とりあえず少し勉強すればすぐわかるから
さっそくやってみれでちゅ
速度はハードウェアによって変わってくるのでなんともいえないでちゅ
0620名前は開発中のものです。
04/12/02 06:46:53ID:3aTWRg3Pたまに退化するライブラリもあるが、DXであたらしく追加されたものはより良い物を扱えるように
(もしくはもっと効率よく使えるように)してるものがほとんどだと思うよ。
つーわけで、シェーダ使えればいろいろできるもよう。3Dは全部そっちに流れてる・・・らしい。
0621名前は開発中のものです。
04/12/02 07:24:37ID:fbnZZKbuシェーダで学べる3Dの知識がゲームを作るのに必須。
(主にローカル→ワールド、ワールド→ローカル変換)
だから、シェーダやれって感じ。
0622名前は開発中のものです。
04/12/02 17:19:01ID:n9A9kfrkそのC#の本はゴミだった。
お勧めはコレ。Managed DirectX の開発リーダーが書いてる。
SAMS / Kick Start Series
Managed DirectX 9 - Grahics and Game Progamming / Tom Miller
0623名前は開発中のものです。
04/12/02 18:53:40ID:inleKE+3見飽きるほどさんざんガイシュツだな
0624名前は開発中のものです。
04/12/02 21:25:46ID:+ssc7TX8英語本は要らんのよ。
コード以外でつまづいた挙句
気になって気になって
違う勉強し始めちゃうからよ。
>>618
VBだと、そこらしかないかぁ。。
ま、数が少ないから
どうしようも無いし。
0625名前は開発中のものです。
04/12/02 22:24:24ID:/ft3Zka1∧⊂ヽ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(゚Д゚)ノ < シェーだ
| ⊃| \__________
| |
⊂ノ〜
∪
0626名前は開発中のものです。
04/12/02 22:25:50ID:QYER7FTkD3DRM
ttp://www.amazon.co.jp/exec/obidos/ASIN/4881355430/249-0864726-1114767
そこのお前、笑うなyo!
0627名前は開発中のものです。
04/12/02 22:47:26ID:hnyRwTxv0628名前は開発中のものです。
04/12/02 23:03:02ID:Tw1TGA0Qぎゃふん
0629名前は開発中のものです。
04/12/03 00:10:21ID:xgYa9aZ/画面の設定リフレッシュレート70にしておき、
アプリ開始時にChangeDisplaySettingsを使ってリフレッシュを動的に60にした場合、
ウィンドウモードだと60になるのですが、フルスクリーンだと元の70のままです。
動的じゃなくレジストリに書き込むと60になるのですが、つまりフルスクリーンだと
レジストリの設定から同期をとってるってことですかね?
ゲームスピードだけならまだしも、リフレッシュ70のままだとなぜか画面の縦横比が狂ってしまうので
ゲーム中は60にしたかったのですが・・・・。
0630名前は開発中のものです。
04/12/03 00:15:59ID:MkiQHqMjウィンドウモードの場合は環境の設定にあわせないとだめだろ
0631名前は開発中のものです。
04/12/03 00:29:21ID:IVKFW1W3DirectXのバージョンは8ですか?
>>630
質問と噛み合ってないですよ〜
0632名前は開発中のものです。
04/12/03 00:40:13ID:THLGi8k8悩むだけ無駄。
その辺の仕様は固定じゃないから。
俺はディスプレイ2つ使ってるけど、片方75、もう片方は60で動いてる。
60を返すほうも75と言われて60で動いてるディスプレイは発見できない。
ちなみにこの環境でレジストリをどんなにいじってもリフレッシュレートにまったく影響は無い。
0633629
04/12/03 00:47:42ID:xgYa9aZ/9です。この夏出たSummer 2004という奴です。
色んな掲示板見てるとChangeDisplaySettingsは
使うなって書き込まれてたりします。まぁ動的に使ってるのならいいかな、とは思うのですが、
リフレッシュが適応されなくって70のままで画面レイアウトが壊れる(縦長になって、
画面上下が見えなくなる。)のではレジストリに書き込むしかない・・・しかし、
たしかに勝手にユーザーの設定を変えるのはどうだろう?とも思います。
余談&ちょっとヲタ臭い話ですが、東方シューティングの、紅魔郷、リフレッシュ70でゲーム開始すると、
案の定画面が崩れるので、ゲームする前にディスプレイ設定を60にしないといけなかったりします。
FPSも70になっちゃってゲームが早くなってしまうし。
ところが、その次の妖々夢からは、70のまま始めてもちゃんと画面が表示されるのです。FPSも60
固定で、これにはかなり驚愕しました。そこで一定間隔でEnumDisplaySettingsを使いディスプレイの
設定を取得&表示させつづけるアプリを裏で動かしていたら、ゲーム起動前は70だったのに、ゲーム中は
EnumDisplaySettingsから取得されるリフレッシュが60になってました。
おそらくChangeDisplaySettingsでレジストリ変更させて、画面設定をゲームに
ちゃんと適応させてるのだと思い、ChangeDisplaySettingsでレジストリいじるしか
ちゃんと表示させる方法はないのだろうか・・・と思ったのが事の発端で。
0634名前は開発中のものです。
04/12/03 00:47:55ID:Lpw3AjbmB宗1派
B宗2派
>>629
好きな派閥に所属するがよい
0635名前は開発中のものです。
04/12/03 01:02:44ID:Uk+PdNYWな、なつかしい〜
と思うと同時に、もうあの議論は二度とみたくないな。
0636名前は開発中のものです。
04/12/03 10:08:46ID:shQSbNlIいい加減そういう考え方やめろよ。
0637名前は開発中のものです。
04/12/03 16:27:43ID:PJpzSJQv駄目だったらタイマ使うって考え方がなぜ出来ないのか……。
0638名前は開発中のものです。
04/12/03 16:37:21ID:bNrAdegzプログラマ側が勝手に設定していいものではない。
0639名前は開発中のものです。
04/12/03 19:55:34ID:XHNPMHRuそうだな。
しかしこういうハード寄りの部分にこだわる奴って
日本人に多い気がする。
0640名前は開発中のものです。
04/12/03 21:02:57ID:VKHXaub1こだわりとかじゃなくて単に書き換えと一緒に移動とかしてるからだろ
0641名前は開発中のものです。
04/12/03 21:30:59ID:Lpw3Ajbm外人はみえりゃなんでもいいからvsyncなんか糞食らえ・・・ではなくて、
フレームはvsyncに同期してとにかくflip。
前フレームとの時間差から移動量を求めて、100Hzとかどうすんの?とかいう疑問は
ハードの進化が解決するさ、的なA宗だよな
0642名前は開発中のものです。
04/12/04 00:16:19ID:xbb3uNtl専用スレでもたててそっちで お ね が い
0643名前は開発中のものです。
04/12/04 00:22:22ID:i21rYTSkもう、ならねぇよ。
だって、普通にDirectXのサンプルどおりにやれば
綺麗に動くじゃん。
0644名前は開発中のものです。
04/12/04 00:31:36ID:gpOZWkz2もう立ってる
PCで描画と内部処理の非同期処理ってどうやんの?
http://pc5.2ch.net/test/read.cgi/gamedev/1020064462/
FPS(フレームレート) VSYNC(垂直同期 リフレッシュレート)
http://bbs.gamdev.org/test/read.cgi/gamedev/1063274576/
0645629
04/12/04 00:55:07ID:/JV7qthPFPSによっては画面比がおかしくなってゲームにならない ってことをなんとか
したかったのですけれどね。リフレッシュレートの論議はある程度見てきましたが、
私のPCで表れるような画面が縦長になる なんてことはどこでも語れてなかったので・・・
でもどうやら、荒れるネタのようなのでやめたほうがよさそうですね。
注意書きでも書いてなんとかしようかな・・・。
すみませんでした。
0646名前は開発中のものです。
04/12/04 01:33:04ID:ebyzl2g360Hzにするとおかしくなる環境だってあるかもよ?
0647名前は開発中のものです。
04/12/04 04:21:06ID:VFMTs6Dj画面が縦長になって上下が切れるのって
モニタ側で調整すればなおるのでは?
0648名前は開発中のものです。
04/12/04 07:27:51ID:iA1aOU70SetDisplayModeで余裕でできるわけだが
0649名前は開発中のものです。
04/12/04 07:35:21ID:iA1aOU70画面比がおかしくなるってのは、
アスペクト比考慮しない安SXGA液晶なんかだと当たり前だし、
CRTで低解像度のアスペクト比設定していないのはユーザーの責任
開発者が考慮する問題ではない
0650名前は開発中のものです。
04/12/04 10:17:07ID:fZQouo3W60Hzとか同期とかそういう話と、アスペクト比に何の関係があるんだよ?
0651名前は開発中のものです。
04/12/04 11:19:32ID:UGRayApYうちのディスプレイは、解像度(周波数)毎に、縦横比の設定が出来る。
というか、しないと普通に表示できない。
一度設定をやってしまえば、またその解像度になっても大丈夫。
だからそのおかしい解像度のときにちゃんと調整すれば、後は大丈夫だと思う
他の原因も考えられるけど、これしか心当たりがない。
0652名前は開発中のものです。
04/12/04 14:46:46ID:MKbi3H71俺の昔のPCでは
800x600の75Hzにすると画面が縦長になったな。
モニタで調節してもバッチシにはならなかった。
そういうことでない?
0653名前は開発中のものです。
04/12/04 15:39:36ID:kBgP3sht0654名前は開発中のものです。
04/12/04 15:51:21ID:uQ6E1Z3z0655名前は開発中のものです。
04/12/04 16:30:46ID:l/1c3c210656名前は開発中のものです。
04/12/04 17:38:16ID:mVDy3Uy+http://pc5.2ch.net/test/read.cgi/gamedev/1020064462/
に俺の意見を書いておいた。お前らついてこい。
0657名前は開発中のものです。
04/12/04 18:30:01ID:fCmELI+9確かに昭和時代のモニタはそうだったな。
0658名前は開発中のものです。
04/12/05 00:56:49ID:Af5UY8hhそのスレ、一年以上もレスついてなかったんだな。
0659629
04/12/05 01:00:04ID:C8cHkTrH>SetDisplayMode
試してみます。
ちなみに買ったのは3年前で、HYUNDAIってなメーカーです。そんなボロいものでもないとは思うんですけれども・・・。
>次の話題まだ〜?
んじゃ、話題変えついでにも一つ聞きたいんですけれど、今VC6でやってるんですが、.NETだとDirectX用の
ウィザードがあるじゃないですか。新しくゲーム作るなら、.NET購入してそれで組みだした方がいいですかね?
0660名前は開発中のものです。
04/12/05 01:20:09ID:1YFSlWZi「.NET購入」、「それで組みだす」が意味不明だが、
作るものの特性による。
一般向けに公開する場合はネイティブ。
.NETのDirectXはランタイムがちゃんとインストールされている確率が低い。
あと簡単にリバースエンジニアリングされる。
個人で遊ぶ用・決まった知人のみに配布用であれば.NETでも全く問題ない。
開発効率とかパフォーマンスは
ttp://pc5.2ch.net/test/read.cgi/tech/1069666471/780
0661名前は開発中のものです。
04/12/05 15:27:16ID:W3qStFtFC#じゃなくてVC.NETのことじゃねーの?
たぶんだけど
>659
漏れはウィザード使ったことない
もう自分で書いたフレームワークがあるんだったら
そっち使ったほうがいい
まぁフレームワーク作りの参考にはいいかもしれないけど(よー知らんけど)
別にDirectX用のプログラムしか書かないんだったら、もうしばらく6でもいいかもしれんけど
0662名前は開発中のものです。
04/12/05 17:24:43ID:UUakL3VESummer2004からWizardは廃止されて、サンプルフレームワークに移っている。
CALLBACK関数の中を埋めていくだけなので、Wizardが生成したソースより使い易い。
0663名前は開発中のものです。
04/12/05 18:13:07ID:qjM4BToy格闘ゲーム作ってるんですが演出で画面分割をビューポートでして見たら
ポリゴン数が多くてすごく重くなったので何か方法がないか探してます。
何かご存知の方いましたらご教授よろしくおねがいします
0664名前は開発中のものです。
04/12/05 18:38:13ID:o9UgMa+Kどんな分割の方法を試そうとポリゴン数が多いのに変わりないだろ。
画面分割時はポリゴン減らすとか対処するのが普通だろ。
0665名前は開発中のものです。
04/12/05 19:15:49ID:6PAlLV0+0666名前は開発中のものです。
04/12/05 19:27:17ID:nqBSDUP50667名前は開発中のものです。
04/12/05 20:11:26ID:sx/rYgSf0668名前は開発中のものです。
04/12/05 20:50:25ID:v+CntsyoPrimitiveかPointerかどちらかじゃない?
0669名前は開発中のものです。
04/12/05 21:03:15ID:QLQ14TYZPointerでええんでない?
0670名前は開発中のものです。
04/12/05 21:27:47ID:5SqG+OONMDXでは「DrawPrimitiveUP」は「DrawUserPrimitives」になっている。
これに限らず、MDXの識別子はネイティブに比べて洗練されているものが多い。
0671名前は開発中のものです。
04/12/05 21:43:02ID:0VkVkXGI0672名前は開発中のものです。
04/12/05 22:12:34ID:aoB/oDY80673名前は開発中のものです。
04/12/05 22:19:11ID:AAFrIuZ20674名前は開発中のものです。
04/12/05 22:52:51ID:1GYGDGxZそれで間違いなさそうだな
なんの根拠もなくupdate(最新のものにしろ!)かup-to-date(最新ですよ(・∀・)ニヤニヤ)の事だと思ってた
なんて逆説的でウィットが効いてるんだと
0675名前は開発中のものです。
04/12/06 19:56:36ID:tzWTN0yZDrawPrimitiveAge
DrawPrimitiveSage
0676名前は開発中のものです。
04/12/07 01:50:13ID:OZKhoYmtこれの引数に行列式(float *)があるとおもうのですが、これはfloat1個
を渡すのでしょうか?いまいち行列式というのがわからなくて・・・すいません。
0677名前は開発中のものです。
04/12/07 01:56:09ID:hrWkwjoi確か逆行列を求めるついでに行列式の値も求めますよーって関数のはず
逆行列求めるために行列式の値が必要だから
0678名前は開発中のものです。
04/12/07 02:06:24ID:rU7nZmmhそういえばそこNULLしか入れたことない
0679名前は開発中のものです。
04/12/07 11:30:35ID:XlJuf7xJ満足いく答えないから次はトキワか?
0680名前は開発中のものです。
04/12/07 11:48:25ID:V3qlnNS7いまいち行列式というのがわからない人ならNULLを入れればいいだべ。
0681名前は開発中のものです。
04/12/07 12:29:52ID:Idq17V4vこうやって使う
float determinant;
D3DXMatrixInverse( &matInv, &determinant, &matTaget );
if( determinant == 0.0f )//〜
determinant(==行列式)が0ならば、逆行列matInvは存在しない
必ず逆行列が存在すると分かっているならNULLを指定しても構わない
0682名前は開発中のものです。
04/12/07 13:21:16ID:QsZOwp860683名前は開発中のものです。
04/12/07 13:35:20ID:L7YDUGj+0684名前は開発中のものです。
04/12/07 13:50:49ID:qOJq2qnuもちさん です。
0685名前は開発中のものです。
04/12/07 16:16:48ID:my4qFj6E0686名前は開発中のものです。
04/12/07 17:39:19ID:qnMKNswX0687名前は開発中のものです。
04/12/07 19:11:48ID:o4M1UVgX余裕がなくてイライラしてるんです。
どうか許してやってください。。。
0688名前は開発中のものです。
04/12/07 20:46:48ID:vW3T0vsv0689名前は開発中のものです。
04/12/07 21:07:21ID:obnWwHdN0690名前は開発中のものです。
04/12/07 23:41:03ID:1oL6D2Q3それじゃ駄目だろ。
0.0fなんて綺麗な0は浮動小数点じゃほとんど返ってこないんじゃね?
なんか浮動小数点の足切り用の定数なかったっけ?
0691名前は開発中のものです。
04/12/07 23:49:43ID:vW3T0vsvFLT_いぷしろん?
まあ、この場合は0か否かが知りたいだけなので
これでよし。
0692名前は開発中のものです。
04/12/08 00:03:29ID:rFHjY4ZV大丈夫な悪寒。
0693アンチ・シェーダー主義!
04/12/08 21:47:24ID:c6WeYnvvまだまだシェーダも動かないような低スペックなマシンも
たくさんあります。
ソフトウェア実装に力を入れている方々、情報交換しませんか?
0694名前は開発中のものです。
04/12/08 22:02:24ID:WW1dHwS0それは底が見えるから、情報交換とか議論とかできなさそう
何をするかにもよるけど、たとえばトゥーンシェーディングとか
スキニングとかをシェーダ使わなかった場合とか
頂点バッファをロックして書き換えるのが頻繁になって
重くて現実てきじゃない
そんな低スペックグラボのマシンではカクカクポリポリじゃないと現実的じゃない
どうしてもやりたかったら、シェーダでやってることをそのままソースで書けば
いいだけだから、特別な議論も必要ないと思う
0695名前は開発中のものです。
04/12/08 22:07:06ID:ZvOIJkod> スキニングとかをシェーダ使わなかった場合とか
> 頂点バッファをロックして書き換えるのが頻繁になって
↑
馬鹿
0696名前は開発中のものです。
04/12/08 22:07:43ID:/aowmM/6を議論するスレになりました。
0697名前は開発中のものです。
04/12/08 22:11:28ID:WW1dHwS00698名前は開発中のものです。
04/12/08 22:12:22ID:ZvOIJkodやっぱり分かってない、ただの馬鹿。
0699名前は開発中のものです。
04/12/08 22:27:06ID:/aowmM/6完
0700名前は開発中のものです。
04/12/08 23:03:05ID:3qzYfJVyエフェクトファイルステートで書いてみ、スゲーつらいよ。
何書いてあるか読みづらいし。
ステートでは良いことないのよ。
0701名前は開発中のものです。
04/12/09 01:48:13ID:KBePB8OT0702名前は開発中のものです。
04/12/09 04:01:07ID:cERVxdI9(゚Д゚)ノ < シェーダ
| ⊃| \__________
| |
⊂ノ〜
∪
0703名前は開発中のものです。
04/12/09 10:22:50ID:QepYyAhGTnLなければCPUで処理されるんだからあえて使わない意味はほとんどないに等しいじゃね。
シェーダー使わなくたってどっちにしろCPU処理なんだしな。
スキニング処理なんかだとむしろ余計なバッファが要らないから同じCPU処理でも
シェーダー使うほうが速いしメモリにも優しくてなおさら低スペックにもいいだろ。
もっともそれ以前にそんな事考えるようなスペックじゃCPUがボトルネックになりそうだけどな。
まぁ日曜プログラマ風情の意見としては3DゲームをやるならGeForce4程度は買って来いと、
GeForceFx5200ですらGBASPよりも安いんですよ?とチラシの裏。
0704名前は開発中のものです。
04/12/09 12:01:01ID:yF7iPEiA頂点シェーダー対応の可否とは何の関係もない。
0705名前は開発中のものです。
04/12/09 13:30:59ID:Ua29371P0706名前は開発中のものです。
04/12/09 19:47:06ID:ZtkIdcTxマルチだか転載だか知らんが、元ネタのところじゃ一夜にしてすげーことになってるな
この前の騒動といい、最近あそこはどーかしてるよな
0707名前は開発中のものです。
04/12/09 20:41:44ID:yF7iPEiA最後にシェーダでボーンが4つしか使えないと思いこんで、それを指摘されて消えていった。
BBXでもやることは変わらない。
0708名前は開発中のものです。
04/12/09 21:39:11ID:/584CGpU馬鹿な意見とか、お節介な意見とかは構わないが、
2chのノリを他に持ち込むのだけは勘弁
0709名前は開発中のものです。
04/12/09 21:46:38ID:ra7ioJc3下の方のレスが、対岸の火事見物っぽくてワラタ。
0710名前は開発中のものです。
04/12/09 23:55:51ID:CqQJyX06「頂点シェーダが動くかどうかはグラボの性能とは関係ない。」
だからとりあえず頂点シェーダを使わない選択肢ってのはいまのところ無い
っつーことで。
で、なにやら複雑そうなんだけど、実際はそんなことない。
自分でできなきゃ、どっかの人が作ったサンプルやらコピって勉強すれば十分できるようになる。
HLSLで組まないとだるくてやってらんない。
0711名前は開発中のものです。
04/12/10 00:05:19ID:nboJzal60712名前は開発中のものです。
04/12/10 00:06:23ID:W/W3hlMT皆さんはこういうの書くときどうするの?
とりあえずステートで書く?
それとも全部シェーダー?
0713名前は開発中のものです。
04/12/10 00:12:07ID:cshQ56aM全部シェーダーの方が楽だと思う。
固定機能パイプラインは鬼面倒臭い。
誰もあんなもの使いたくない。
誰がステートの管理やるのかと。
馬鹿じゃねぇのかと。
0714名前は開発中のものです。
04/12/10 00:19:49ID:anReHWWXプログラマブルシェーダって、例えば
シーン中にライトをOn/Offしたりとか、ステートが動的に変化する場合でも
一つのシェーダを使いまわせるんですか?
それとも、ライトの数に応じたシェーダを複数用意しておいて切り替えながら使うとか、
非効率を覚悟で常にライトの最大個数用のシェーダを使うとか、
ライトは一つに制限したりとか
しなきゃいけないんですか?
0715名前は開発中のものです。
04/12/10 00:58:30ID:cshQ56aMそれはシェーダの組み方次第。
自分で自由に組めるから、組んでみて自分で最適と思うものにすればいい。
0716名前は開発中のものです。
04/12/10 01:48:52ID:W/W3hlMTやっぱそうなりますかね。
必ずしも固定だからといって対応ハードが増える訳でもないですしね。
>>714
やっぱ用途に合わせてシェーダーを多数用意しなければならないのは
今もかわってないと思う。フラグメントとかいろいろあるけど面倒臭いしね。
俺はリテラル定数で条件分け出来るシェーダープログラムを1個作って
用途別にテクニックを複数作る方法を採用している。
頂点ライティングだと最大ダイナミックライトが3つ、グローバルライトが2つの組合せで
結構多くなるな。ピクセルライティングだと双方最大1つづつの組合せ。
0717名前は開発中のものです。
04/12/10 01:50:02ID:W/W3hlMTダイナミックライトが4つ、グローバルライトが1つの間違い
0718名前は開発中のものです。
04/12/10 04:13:30ID:OzEXgDGA■ このスレッドは過去ログ倉庫に格納されています