08/07/31 07:02:13
>>84 さんとは別人ですが、やりたいことは同じでした。
Win32API を使って文字入力をしているゲームはあんまりないですね。
IME とかを使っていると、変換中の文字が画面の左上にでてきたりするし。
>>85 さんの言うように全部実装するという手もありますが、
IME や右クリックしたときのコンテキストメニュー、
その他もろもろを実装するのはあんまり現実的じゃないかなと。
この辺はユーザビリティにどの程度重きを置くかで選択が変わってくると思います。
101:99
08/07/31 08:20:20
>追記 ※半分解決※
新規プロジェクト>Win32プロジェクト>空のプロジェクト
でプロジェクトを作成するとコンパイルが通ります。
通常のWin32のテンプレート(空のプロジェクトではない場合など)
を使ったプロジェクトでは >>99 同様エラーが出ます。
102:デフォルトの名無しさん
08/07/31 08:33:07
>>99
プロジェクトのプロパティで、
Configuration Properties→Advanced→Show Includes
を Yes にしてからコンパイルすると、
インクルードしている順番とかがわかるので、
それでなにかわかるかも。
103:99
08/07/31 09:02:26
>>102
レスサンクスです。
早速やってみたのですが、、、順番として
dsound.hの前にmmreg.hがあるか確認したのですが、、、
そもそもmmreg.hが読み込まれていません、、、orz
104:デフォルトの名無しさん
08/07/31 10:49:49
>>100
チャットの文字とかそういうのもコピペできるようにしたいの?
IMEの制御と入力中の文字のコピペぐらいで良いと思うんだけどね。
コンテキストメニューは無しで。
105:デフォルトの名無しさん
08/07/31 11:31:22
>>103
とりあえず、これ入れてみては?
#include <mmsystem.h>
106:デフォルトの名無しさん
08/07/31 11:50:17
ちょっとやってみたよ。
stdafx.h の中の↓の行、消すかコメントにしてみ
#define WIN32_LEAN_AND_MEAN // Windows ヘッダーから使用されていない部分を除外します。
107:デフォルトの名無しさん
08/07/31 11:52:20
ってプリコンパイルヘッダ使ってないのか。
まあ、WIN32_LEAN_AND_MEAN のdefineがどっかにあると思うけどな。
108:99
08/07/31 12:38:34
レスサンクスです。
>>105
>#include <mmsystem.h>
なぜか、大量のエラー(88個)が出ました、、、。
[エラー文]
構文エラー : ';' が、識別子 'MMVERSION' の前に必要です。
以下略
[エラー内容 mmystem.h]
typedef UINT MMVERSION;
以下略
>>106
#define WIN32_LEAN_AND_MEAN
を消してみましたが、
>>99 と同様のエラーが発生してダメでした。
みなさんの助言ありがとうございます。
もう少し自力で調べてみます。
109:デフォルトの名無しさん
08/07/31 12:39:26
あったのか、、
消したらリビルドな
110:デフォルトの名無しさん
08/07/31 12:41:56
あと空のプロジェクトだとうまくいくって書いてたが、
そのうまくいくやつのwindows.hをincludeする前に
#define WIN32_LEAN_AND_MEAN
してごらん。
111:99
08/07/31 12:46:19
>>109
も、申し訳ありません、、、。
コンパイル通りました。
大変失礼いたしました。
#define WIN32_LEAN_AND_MEAN
についてこれより詳細に調べます。
112:99
08/07/31 13:26:29
レスサンクスです。
>>110
うまくいかないときと同じ症状になりました、、、。
おっしゃるとおり#define WIN32_LEAN_AND_MEANが原因でした。
追記(同じ過ちを繰り返さぬよう)
#define WIN32_LEAN_AND_MEAN
をはずした後に、今まで組んでいた部分と合体したら、
winsock(winsock2.h)関係でエラーがいっぱいでましたが、
stdafx.hでwinsock2.hを読み込ませることで回避できました。
(windows.hより先にwinsock2.hを読ませないといけない)
諸兄のご尽力により、無事解決となりました。
スレ汚し大変失礼いたしました。
113:デフォルトの名無しさん
08/07/31 14:14:09
>>100
DirectX SDKにあんたのやりたいこと全て、ソースコード付きで入ってるよ。
まぁ、そのままだと微妙に使い物にならないから、少し手直しが必要だが。
114:デフォルトの名無しさん
08/07/31 14:50:29
>>113
Samples\C++\Direct3D\CustomUI
だね
日本語だと確定するまで違うところに表示されるのはしょうがないのかね
115:デフォルトの名無しさん
08/07/31 15:17:38
>>114
そのサンプル触った上で言ってるの?
116:デフォルトの名無しさん
08/07/31 16:56:43
>>74
コントロールの位置が分かってるなら
マスクかければいいじゃn
117:デフォルトの名無しさん
08/07/31 17:23:02
>>115
よく見てなかった
118:64
08/07/31 23:59:47
>>65
200Mだと、メモリに置いてもツライ量ですね…
メモリマップドにしても、結局ディスクから読むので変わらないのかな…
>>66
全くもってその通りなのですが、どうしても2Dでやりたいのです。
MPEG1は検討してみます。ありがとうございました。
>>94
色々とありがとうございます。
リングバッファは試してみる価値があると思います。
前半だけメモリにおいておくのは、結局止まってしまうので
メモリも食うし、中途半端になってしまうかも…
圧縮もありかもしれませんね。
ディスクから読み込むのと、展開するのとどっちが重いかにもよりますが…
詳しい仕様は…そうですね、エフェクトに使うと思ってもらえればいいと思います。
1~2秒のエフェクトが30個ほどあり、どれがいつ必要になるかわからないという状況です。
(実際には少し違いますが)
色々試したところ、どうも重くなるのは初回のみなので、あらかじめ確保→開放して
キャッシュにいれておくなんて手法もありかもしれません。
(問題は人によってキャッシュの大きさがまちまちな点ですが…)
119:デフォルトの名無しさん
08/08/01 00:07:24
家庭用機でもメモリに置いといて解凍してVRAMに展開とかはやると思う
この場合はCPUの速度が固定なのでやりやすいとは思うんだが
それでもPCから比べればかなり貧弱でも十分に出来ると思う
もちろんPCの場合はどんなCPUつんでるかは不明だから間に合わないってケースも出てくるだろうけど
それでも大よそのケースで間に合うと思うけどな
どんな絵かはわからんが、20%ぐらいの圧縮率とかにはなるんじゃね?
エフェクトに使うってことで非可逆でも構わないならそれこそかなり圧縮できると思う
120:デフォルトの名無しさん
08/08/01 00:23:08
エフェクトならそれこそ3Dで作って2Dで描画しろよ、ってレベルだな
121:デフォルトの名無しさん
08/08/01 00:24:31
とりあえず 30fps にするんだ。メモリ消費は半分だ。
122:デフォルトの名無しさん
08/08/01 00:28:23
>>120
2Dエフェクトを作るツールの使い勝手の良さ考えると
それと同じレベルのを3Dで作るにはかなり敷居高いと思うが
123:デフォルトの名無しさん
08/08/01 00:41:26
>>122
似たようなもんだろ
はじめの選択ミスがひきづってるだけの話でしょ?
次はきっと彼もうまくやれるさ
124:デフォルトの名無しさん
08/08/01 00:56:17
>>122
結果的にそれ以上の苦労を実機側でしているのだから意味がない
125:デフォルトの名無しさん
08/08/01 01:02:33
エフェクト作ってるのが自分じゃなければ
その苦労は単純に比較できないんでは?
見てる限りだと圧縮で解決する感じがするけど
126:デフォルトの名無しさん
08/08/01 01:12:29
いいたくはないけど、仕様のミスだよ、明らかに。
メモリをちゃんと計算しなかったのが原因。
127:94
08/08/02 10:09:14
なんていうか、お題だけを考えれば
「大容量のアニメーションをスムーズに再生するには?」
というだけなのに、設計とかを否定するのはどうかと思う。
仕事でゲーム開発してれば、こんな難関はいくらでもやってくる。その度に
プログラマーの強権発動して「仕様的に無理」っていきなり言っちゃうのは
怠慢だと思う。(そして、ある日隣のプログラマーに「○○すれば簡単にできますよ♪」
とか言われて肩身が狭くなっちゃう。)まずは色々考えてみようよ。
どれかで上手くいくかもしれないし。まぁ仕事じゃないけどさw
個人的には>>119の意見を支持。不可逆で圧縮が可能なら楽にいけそう。
ってかこんな展開シェーダー誰かが作ってそう。
キャッシュに頼るなら、事前にその場では使わないヤツを全部解放しておくと
ちょっと親切かも。
128:デフォルトの名無しさん
08/08/02 10:22:14
WMVの7ならXP以降は標準搭載されているし、
DVD並の画質なら展開しつつテクスチャに転送しつつ再生しても、
CeleronM程度の型落ちCPUでも問題なく動くが、
お前らはいったい何を気にしているんだ?
129:デフォルトの名無しさん
08/08/02 10:25:49
アルファ抜きとかかな
130:デフォルトの名無しさん
08/08/02 11:01:33
>>127
でも、会社の職場で
「3Dでやってればもっとたくさん表現できたよね?」
って言われたらどういいわけするの?
いっとくけどデザイナさんにとっては3Dで作ろうが2D作ろうが
あんまり労力は変わらないかもしれないよ
こんなことも提示できないでデザイナさんにひたすら作らせた後
「ごめんなさい、やっぱこの仕様だときついかもしれません」
とかいうの?
こんな不安要素を抱えてしまうぐらいなら安全策をとるべきでしょ
趣味でやってるなら自由にやればいいと思うけど
会社でやったら恨まれますよ~(みんな表だっては言わないけどねw)
131:94
08/08/02 11:32:46
>>130
それはプログラマーとして提言しても決定することはないんじゃない?
表現の仕方や方向性はデザイナーや企画が決めるんではないかと。
会社によって方針(力関係w)が違うだろうから解んないけど。
>>130の言いたいことは良く解る。リスクを抱える開発はプログラマーとしては褒められない。
しかしながら、やりたい事はそれに矛盾する。
「では、できるかどうか検証してみましょう。」
というのが今この場ではないかと、勝手に思ってるんだけども。
もちろん「できない。」と迅速に判断して次にいくのもあり。
「いやいや、方法はあるんでない?」というのが俺の意見。
判断は難しいけどねw
132:デフォルトの名無しさん
08/08/02 11:47:51
>>131
そう?
他のゲームはどうなってんだろ?
って解析できるのもプログラマだけだと思うけどね
エフェクトがいるアクション・イベントを3~4に絞る仕様だってできるわけじゃない?(テイルズ方式)
こんな無理目なことに時間かけてそれに対するリターンはどれほどよ?
って相談までしたんかどうなんか気になるが
まあ、「やってみるけど時間くれる?」まで言ってるならなにもいうべきことはないな
存分に研究してみろ
ただ、決断はしなきゃいけないな
無理なら無理でしっかりいうんだぜ
(もちろんこの期間でこれこれこんなことを試してみたんですけど
試してみた範囲ではこの仕様は実現できませんでした。的なことが必要だ)
と初心者スレだし言ってみるテスト
133:デフォルトの名無しさん
08/08/02 12:57:14
やる前に、かかる工数を見積もって(難しいだろうけど)
予算と相談しないとな
134:デフォルトの名無しさん
08/08/02 13:37:15
今回の内容は見積もりがどうこう言うほど難しい作業じゃないぞ。
どれだけ技能が低いんだよ。
135:デフォルトの名無しさん
08/08/02 13:45:21
そういう考えがスケジュールの遅延を招く。
たとえどんなものでも仕事として発生するなら
ちゃんとスケジュールに組み込んで管理するのが基本。
136:デフォルトの名無しさん
08/08/02 14:02:24
能力が低いと見積もりが積もり積もって大変だよな。
137:デフォルトの名無しさん
08/08/02 14:05:15
比較対象で出ている、3Dでエフェクト作るっていうのは具体的にはどうやればいいのでしょうか?
モデルにモーション付けてもらってそれを再生するという感じ?
例えば爆発のエフェクトであれば、炎や火の粉をアニメ付きのモデルで大量に表示とかになるのでしょうか?
138:デフォルトの名無しさん
08/08/02 14:08:52
能力の高さとスケジュール管理は別のスキルだろう。
仕事が溢れそうならマネージャーに相談して溢れる分を他に振るなり増員なりで解決する。
ギリギリになってからやっぱり終わりませんとか言ってきたらマジで回し蹴りだ。
>>137
ビルボード/パーティクル等など
いくらなんでも1個1個モデル表示なんてしないぞ。
139:デフォルトの名無しさん
08/08/02 14:20:54
ビルボードやパーティクルで作るというのは、そういうツールみたいなのがあるのでしょうか?
140:デフォルトの名無しさん
08/08/02 14:32:53
そういうツールを作ればよい
141:デフォルトの名無しさん
08/08/02 15:15:10
そのツールを作ってデザイナーに使いこなしてもらう手間考えれば・・
とか思ったけど、もしかしてどこでも当たり前にそういうことやってて今更議論するような程でもないってぐらいのことだったりしますか?
142:デフォルトの名無しさん
08/08/02 15:24:12
初心者質問スレという意味合いではそんなツール作れるかよ!
プロと言う意味ではPG的にはその程度のツールもないのかよ!
デザイナー的にはその程度のツールも使えないヤツはいらない。
143:デフォルトの名無しさん
08/08/02 16:37:33
そして多くの開発ではコンバータを作成し、
バージョン互換を恐れて古いツールを使い続ける。。。
144:デフォルトの名無しさん
08/08/02 17:48:58
>>142
仕様はよく考えられてても、UIがコマンドラインだったり、
フォーマットの変更まで考えました、とかいって、
死ぬほど使いづらいツールを作ってきたりする奴もいるからな。
そして、そういうツールに限って不安定。ちょっとテキストファイルに
ゴミ文字が入ってただけで落ちたりしてな。
145:デフォルトの名無しさん
08/08/02 18:02:49
>>144
それはツールを作る人間の技量の問題。
その程度のヤツにツールを作らせる人的リソースの不足も問題。
146:デフォルトの名無しさん
08/08/02 18:27:25
とりあえずUndoがないツールは糞
147:デフォルトの名無しさん
08/08/03 02:02:44
は?んなツール作らなくてもとりあえず
デザイナさんがモデリングした通りに出してみたらどうよ?
適当にボーン入れてアニメーションさせたモデルを加算半透明ではってみりゃ
立派なエフェクトのできあがりっしょ
何に手間かけようとしてんだ
こういうところからプラグイン使えたら便利かなとかそういう考えが浮かんでくるんだぜ
モデリングツールでできることは極限まで活かせよ
まずは、モデルをアニメーションさせるところから説明しないと駄目なほど馬鹿でもないだろ?
こんなところに手間かけてるからお前等苦労ばっかりしてろくなゲーム作れないんだぞ
148:デフォルトの名無しさん
08/08/03 02:18:16
モデルでエフェクト作るのも結構手間だと思うけど
既存の2D系のエフェクト作成ツールでエフェクト作って
それ表示って方のがある程度のレベルまでは時間もかからずに合理的だと思うんだが
個人で作ったショボイツールなんぞよりも何倍も良いものできると思うぞ
最終的に出来ることが3D>2Dだとしても
そこまで行かなければ、使いやすいツールのある環境のがいいものできると思う
それに気の利いたパーティクルツールなんてどこにでもあるようなものとは思えないが
上で出てた爆発みたいなのって爆発のパターン絵描きが書いてプログラマが適当に飛ばして終わりってのが多いんじゃね?
その上で初心者スレってこと踏まえれば
この方法って間違いとかとは全然思えないんだが
>>142
デザイナーにとっては使いこなすに値するツールかどうかだろう
これはプログラマーの次第だと思う
149:デフォルトの名無しさん
08/08/03 08:19:52
>>148
3Dで爆発なんてそれっぽいもやもやを拡縮するだけで終わりってのも考えられるんじゃね?
しかもそれはモデリングのアニメーションで設定できる話で
プログラマはそれを再生すれば終わりでしょ?
だからこれはアニメーションモデルの再生でしかないと思うんだけど?
3Dの何が手間なの?
勝手な想像で手間だと思ってるだけじゃない?
150:デフォルトの名無しさん
08/08/03 15:51:26
>>149
旧世代のキノコの成長の早回しです、
みたいなドン臭い爆発だったらプログラマーの負荷は少ないけど、
パーティクルを使って云々ってやってると結構めんどくさいよ。
151:デフォルトの名無しさん
08/08/03 17:21:22
>>150
そうか?
それもモデリングツールにちょちょっと細工して
モデルのアニメーションで出るようにしたら終いな話でしょ?
3Dで苦しくなるような想定ばっかしててもしょうがないと思うんだけど?
152:デフォルトの名無しさん
08/08/03 17:32:14
まぁゲーム内容次第だべ。
CoD4の手榴弾みたいなリアルな爆発が欲しい時と
GCのゼルダみたいなアニメ調のが欲しい時では話が違うんだし。
153:デフォルトの名無しさん
08/08/03 17:39:46
大抵モデリングツールからの出力をそのままだしゃいいのに
くっだらないイレギュラー想定して発言を潰す作戦ですか?
154:デフォルトの名無しさん
08/08/03 17:58:19
それらのやり方にパーティクルイリュージョンほどの使い勝手があるとは思えないんだけど
155:デフォルトの名無しさん
08/08/03 18:26:19
>>151
パーティクルやったこと無いんじゃない?
156:デフォルトの名無しさん
08/08/03 19:42:54
>>155
あるある
うちのモデリングツールのプラグインに吐き出す奴あるもん
テクスチャアニメーションで粒子を表現するタイプと
頂点シェーダで吐き出してくれるタイプがあるよ
どっちもモデルのアニメーション扱いでいけるようになってる
157:デフォルトの名無しさん
08/08/03 19:47:42
手間がかからず実装できるとかじゃなくて会社にあるツール自慢を初心者スレでされても・・・
158:デフォルトの名無しさん
08/08/03 19:57:35
市販のツールを使うのが一番簡単なわけだが
159:デフォルトの名無しさん
08/08/03 19:58:00
それぞれの環境を試したこと無い人達が自分達の方が楽とかいうのはどうなの?
2Dやってる人は、モデルデータからエフェクト作ってみなよ
3Dやってる人は、パーティクルイリュージョンとか使ってみなよ
160:デフォルトの名無しさん
08/08/03 20:02:56
>>159
ないならないで仕様を固定すればやりようはいかようにもある
ただ、その方法を挙げても別のイレギュラー的例を挙げて
そういう案を潰すことばっかりさっきからしてるじゃん
それじゃなんにも進まんと思うのよね
だから2Dで全部アニメーション・・・みたいな馬鹿な選択肢を選んじゃうわけでさ
もっと現実的な話を考えたらぶっちゃけ3Dしか道はないのは誰の目にも明らかで
2Dゲーがなくなっちゃった理由はまさにメモリ使用量に対する表現力の貧弱さなので
あってこんなところ問題じゃないように思うんだけどどう?
161:デフォルトの名無しさん
08/08/03 20:08:54
だからこういう問題にぶち当たる前にするべきなのは技術的な話じゃなくて
あくまでも仕様の固定化なんだよね
ってのはもうずいぶん前に学習した
どんな開発であっても汎用ツールを作ってはならない
まずこういう問題にぶちあたってしまったら
その時点ですでにゲームオーバーな状態にあるわけで手遅れなんだよね
プログラマとしての腕を見せる前にこういう問題を起こしてしまうプログラマってのは
社会人としてすでに駄目な場合が多い
作るときにたくさん疑問がでて細かい警告をいくつも見つけてたのにも関わらず
誰にも相談しないで勝手に想定して勝手に自爆してしまっているんだよね
って初心者スレで過去の自分を振り返って語ってるテスト
162:デフォルトの名無しさん
08/08/03 20:13:17
>>160
いや勝手に色々と決め付けてその案を潰そうとしてるのはお前の方だと思うんだ
それに対して2Dって選択肢は間違いでもないだろって話であって
今回のだって圧縮のやりようで許容範囲でしょ
163:デフォルトの名無しさん
08/08/03 20:16:37
時間も金も無限にあるわけじゃないんだから、必ずしも毎回ベスト目指せるような環境とは限らん
あーこれ駄目だよな、とか思いながら騙し騙しやっていくもんじゃないだろうか?
164:デフォルトの名無しさん
08/08/03 20:22:47
今時ならGPGPUでデータのリアルタイム解凍しながら描画とか出来るしな。
165:デフォルトの名無しさん
08/08/03 22:10:27
>>156
テクスチャアニメーションで粒子を表現って普通のパラパラアニメじゃないの?
頂点シェーダではき出すって、頂点シェーダのプログラムをはき出すの?
166:デフォルトの名無しさん
08/08/03 22:12:12
>>164
GPU 周りが GPGPU を使えるほど余裕があるようなシチュエーションってそんなにあるか?
167:デフォルトの名無しさん
08/08/03 23:08:26
>>166
3Dゲームだとぶっちゃけない。
ただ2Dでパラパラアニメするって言ってるんだから
殆どGPU使わないような2Dゲーなのかと思っただけ。
168:デフォルトの名無しさん
08/08/04 01:30:50
>>162
>今回のだって圧縮のやりようで許容範囲でしょ
じゃ、やれば?
ただ、3Dだったらもっとよくなったかもねw
169:64
08/08/04 03:41:04
ものすごい議論が進んでしまっているようで
なんだか割り込んでしまう形になってしまうのですが、一応報告を…
あ、ちなみに今回のは学校の友達と一緒に作っているようなレベルで
高価な機材やソフトとかも全然無い状況なのです。
なので締切りも無く、時間が限られてるわけでもなかったりします。
なので、とりあえず3Dでやってみることにしました。
今までDirectDrawしか触ってなかったもので、3Dには正直疎いのですが
これを機に勉強してみることにしました。
圧縮やフレーム数の削減なども考えたのですが、
これを機に3Dにも手を出してみることにします。
(アニメ調のものもあるので、表現しきれるかはわかりませんが…)
相談に乗ってくださってありがとうございました!
170:デフォルトの名無しさん
08/08/04 14:37:05
お互い相手の良い所が見えてない生き物が自己主張してるだけなので
この話題はこの後もグダグダ続く。
適当に教わったことにして話題を切り上げた>>64は優秀。
171:デフォルトの名無しさん
08/08/04 23:20:29
切り上げたのに余計な蛇足つけんでも(笑)
172:デフォルトの名無しさん
08/08/05 14:56:26
directXで背景が3Dの2DSTGを作ろうと思ってるんですが。
DXライブラリの様にクライアント領域左上が(0,0)で座標の管理がしたいんですが
どういった関数郡を使えば良いんでしょうか。
DXライブラリとdirectXの両方で使おうとおもってDXライブラリの設定にしたら
directXでプログラムしたところがエラー吐いてどうすればいいのか。
DXライブラリで出来るということは元のdirectXで出来ると考えて良いんですよね?
どなたか助言頂けると幸いです。
173:デフォルトの名無しさん
08/08/05 15:15:01
3D描画も左上(0,0)にしたいのか?
2D描画のみでいいなら楽だが
174:デフォルトの名無しさん
08/08/05 15:19:47
レスありがとうございます。
3Dの部分を描画した後2D部分を描画すれば問題なさそうなので
2D部分のみでも良い方法があったら是非教えて頂きたいです。
175:デフォルトの名無しさん
08/08/05 15:28:45
関数群ってよりかカメラの設定かな。
DirectXならD3DXMatrixOrthoOffCenterLHを使うと、
物体を遠くに置いても小さくならない。座標を2D画面の様に使える。
詳しく知らないけどDXライブラリで出来ることはDirectXでできると考えて問題いと思うよ。
ただ、共存はどうだろう?俺がライブラリ作者なら勝手に内部数値変えといて後でバグ報告されるとたまらんから、
非推奨、自己責任でってするけど。
176:デフォルトの名無しさん
08/08/05 15:29:33
射影行列変換に
D3DXMatrixOrthoLHを使う(引数wとhはウインドウサイズ)
座標変換済み頂点の板ポリで2D描画する
177:デフォルトの名無しさん
08/08/05 15:31:09
DXライブラリは使ったことがないので知らんが、
3D座標上の特定の奥行きをスクリーン座標に合わせるのであれば、
奥行きと視野角から行列を逆算すればいい。
178:デフォルトの名無しさん
08/08/05 15:57:53
おお、こんなにレスが、、ありがとうございます。
カメラの
D3DXMatrixLookAtLH を D3DXMatrixOrthoOffCenterLHに
射影変換の
D3DXMatrixPerspectiveFovLH を D3DXMatrixOrthoLHにでいいんでしょうか?
とりあえずやってみたら板ポリゴンも何も表示されなくなってしまいました。
179:デフォルトの名無しさん
08/08/05 16:01:55
とりあえず該当箇所は現状こんな感じでプログラムしてました。
//ビューマトリックスの設定
VOID ViewMatrix(LPDIRECT3DDEVICE9 theDevice) {
D3DVIEWPORT9 vp;
if(FAILED(theDevice->GetViewport(&vp))) {
return;
}
// アスペクト比の計算
float aspect;
aspect = (float)vp.Width / (float)vp.Height;
// 初期化
D3DXMatrixIdentity(&m_proj);
// 射影マトリックスを作成
D3DXMatrixPerspectiveFovLH(&m_proj,
D3DXToRadian(45.0f), // カメラの画角
aspect, // アスペクト比
1.0f, // nearプレーン
1000.0f); // farプレーン
//ここにD3DXMatrixOrthoLH(&m_proj,640,480,0,0);?
// マトリックスをレンダリングパイプラインに設定
theDevice->SetTransform(D3DTS_PROJECTION, &m_proj);
}
180:デフォルトの名無しさん
08/08/05 16:02:26
//カメラの設定
VOID Camera(LPDIRECT3DDEVICE9 theDevice) {
D3DXMatrixIdentity(&m_view);
D3DXMatrixLookAtLH(&m_view, &D3DXVECTOR3(0.0f, 0.0f, -50.0f),
&D3DXVECTOR3(0.0f, 0.0f, 0.0f),
&D3DXVECTOR3(0.0f, 1.0f, 0.0f));
//ここにD3DXMatrixOrthoOffCenterLH(&m_view,0,640,0,480,0,0);?
theDevice->SetTransform(D3DTS_VIEW, &m_view);
}
181:デフォルトの名無しさん
08/08/05 16:22:53
D3DXMatrixLookAtLHは変えなくていい
D3DXMatrixOrthoLHにnearプレーンとfarプレーンが設定されてない
D3DXMatrixOrthoLH(&m_proj,640,480,1,1000);
182:デフォルトの名無しさん
08/08/05 16:42:05
出来ました、この場合だと中心が0.0になるんですね。
でもこれでかなり理想に近い状態になりました。
本当にありがとうございました、皆様に追いつけるよう頑張ります、、、
183:デフォルトの名無しさん
08/08/05 16:51:47
だから座標変換済み頂点を使えと
D3DFVF_XYZRHWか
D3DDECLUSAGE_POSITIONTでぐぐれ
184:デフォルトの名無しさん
08/08/06 15:13:11
WinXPで(D3D10を使用しないで)、最新GPUのリソースをフルに使うには
どういう選択肢がある?
nVidiaならCUDA?
ATiは?
185:デフォルトの名無しさん
08/08/06 16:16:13
directXのカメラの原点を一時的に移動するにはどうしたらいいでしょうか。
(0,0,0)にある原点を(30,0,0)に移動して描画した後また(0,0,0)に戻したりしたいのですが。
186:185
08/08/06 16:23:08
言葉で上手く表せないので絵にしてみました。
URLリンク(hishou.ddo.jp)
187:デフォルトの名無しさん
08/08/06 20:08:10
文字通りカメラの原点を移動して戻せばいいんじゃね?
188:デフォルトの名無しさん
08/08/06 20:41:47
そのやり方がわからなかったんですけど、うんこしてる間に自己解決しました。
189:デフォルトの名無しさん
08/08/07 00:19:27
>>184
ビデオカード毎に全部作る気概があるの?
そうでないならシェーダーでよくね?
190:デフォルトの名無しさん
08/08/07 07:08:44
GPUの性能をフルに引き出すのが目的なのか、
何らかの目的のためにGPU性能を引き出したいのか・・
191:デフォルトの名無しさん
08/08/07 07:42:46
GPUの性能なんて、フルに引き出したら発熱量が増えるだけじゃん。
192:デフォルトの名無しさん
08/08/08 00:55:42
ちょっと疑問なんですが。
winapiのタイマーで10mscに1回WM_TIMERを送ってrenderを呼んでるんですが
10mscの間にrenderの処理が終わらなかったら処理はどうなるんでしょうか?
処理ののコマ抜けみたいなのが起きたりするんじゃないかと不安なんですが。
変数ループで1から100の間の50ループ目だけ飛んだり。
ちなみにリフレッシュレートはD3DPRESENT_RATE_DEFAULTで固定してます。
これってリフレッシュレートに合わせて描画してると考えて良いんですよね?
だとすると尚更メッセージループとの誤差が生じるんでは内科と心配なのです。
193:デフォルトの名無しさん
08/08/08 01:07:52
処理し終わってから次のWM_TIMERが来る
194:デフォルトの名無しさん
08/08/08 02:32:27
タイマーが10msに一度やってくるとでも思ってるのだろうか
195:デフォルトの名無しさん
08/08/08 10:00:49
サンタが街にやってきた
196:デフォルトの名無しさん
08/08/09 12:25:47
CとC++の勉強が一通り終わったのでDirectXのグラフィックについて勉強しようと思うのですが
WIN32APIを極めないで勉強するのは無謀ですか?
少しだけ勉強したのでWIN32APIの基礎ならわかります。
197:デフォルトの名無しさん
08/08/09 12:29:35
>>196
極めてる人はそういないと思うよ
いつまでたってもヘルプ見ながら書いている俺
198:デフォルトの名無しさん
08/08/09 12:31:02
窓開いてHelloWorld出せる程度でとりあえずは十分
199:デフォルトの名無しさん
08/08/09 12:37:35
>>197 >>198
なるほど~。
C言語に比べて覚えることが多すぎてちょっとびっくりしていましたw
アドバイスありがとうございました!
200:デフォルトの名無しさん
08/08/09 14:45:56
>>199
そりゃぁあんた、「日常会話を英語でする」のと「代数幾何を英語で学ぶ」のとででは必要な知識が桁違いに決まっているだろ。
201:デフォルトの名無しさん
08/08/09 14:56:11
独自フォーマットの3Dモデルデータを描画しようとしています。
1つのメッシュで2つ以上の物体が離れて存在する場合、
D3DPT_TRIANGLESTRIPの設定で1回で描画するのは無理なのでしょうか。
エラーが出るわけでは無いのですが、物体が離れているメッシュを描画すると1つの三角形が橋渡しのように表示されます。
D3DPT_TRIANGLELISTだと必要な頂点数がかなり増えるため使用は控えたいです。
Xファイルでは1つのメッシュをDrawSubsetで描画できていますし、頂点の並び方に法則があったりでもするのでしょうか。
202:デフォルトの名無しさん
08/08/09 14:57:30
そうなるように頂点データを構築すればいい。以上。
203:デフォルトの名無しさん
08/08/09 14:58:42
ちなみにDrawSubset()は中でD3DPT_TRIANGLELISTを使ってDrawIndexedPrimitive()を呼んでいる。
204:デフォルトの名無しさん
08/08/09 15:10:29
縮退三角形でググってみ。
205:デフォルトの名無しさん
08/08/09 15:26:52
>D3DPT_TRIANGLELISTだと必要な頂点数がかなり増えるため使用は控えたいです。
なんでインデックスを使わずに、効率の悪い方法を選ぶんだ?
206:デフォルトの名無しさん
08/08/09 16:12:50
インデックスにしてもストリップのほうが3分の2から半分ぐらいになるから自前ならストリップにするほうがいいけどね。
別に数kb増えたところでどうってことはないけど物量で勝負するアプリなら恩恵は受けられるんじゃないかな。
207:デフォルトの名無しさん
08/08/09 16:16:05
nVIDIA先生も言ってるがキャッシュ効率を考えたら最速はリストだろう。
208:デフォルトの名無しさん
08/08/09 16:17:57
いやTRIANGLELISTと比べてってことでしょ
どうでもいい話だが。
209:デフォルトの名無しさん
08/08/09 16:24:47
速度や効率を考えたらどう考えてもストリップの出番はない
210:デフォルトの名無しさん
08/08/09 20:32:57
確かにな
踊り終わるまで待ってるのダルイ・・・・
211:デフォルトの名無しさん
08/08/10 10:34:21
あれ。インディックスのストリップってないんだっけ?
212:デフォルトの名無しさん
08/08/10 11:29:33
あるけどインデックス使うならリスト使った方がいいだろ。
213:デフォルトの名無しさん
08/08/10 11:43:18
場合によりけりだけど複数描画するならリストで1回ならストリップのほうがいいかな。
検証用の単純なものであればリストが有利だけど
かなり組みあがっているアプリの所々ストリップに直したらCPU/GPU負荷が平均で5%ほど下がった。
214:デフォルトの名無しさん
08/08/10 11:59:39
自作のスキンメッシュデータをインデックスのストリップとリストに相互変換するプログラムを組んでみたが、
リストの方が確実にFPSが上昇した。
215:デフォルトの名無しさん
08/08/10 12:01:25
名前が緑になるんですが 青にはどうすればなれますか?
216:デフォルトの名無しさん
08/08/10 12:04:18
光の波長を変える
217:デフォルトの名無しさん
08/08/10 14:52:13
>>213,214
モデルの形状も影響するんじゃなかろうか。
ストリップをぶつ切りにする必要のある形状だと当然効果は薄いし、
なるべく法線の近いもの同士でストリップを繋ぐと、
陰面消去の時に効率が上がる場合がある。
メッシュでどこまでやってくれているか解らないけど、
ストリップを繋ぐアルゴリズムって奥が深いらしい。
218:デフォルトの名無しさん
08/08/10 15:03:06
奥が深いというより本気で最適化しようとするとロジックが複雑になるというだけの話。
そんな状況でメリットが全く見えない。
219:デフォルトの名無しさん
08/08/10 15:06:13
縮退なしで書けるなんて状況まずないからな。
いちいち反転するからCPUでコリジョンとる時とか面倒だし。
220:デフォルトの名無しさん
08/08/10 15:12:37
そもそもモデリングデータをストリップで吐き出すデータ形式を見たことがない。
データを読み込んだ後にわざわざストリップに変換しているライブラリを見たことがない。
ちまたで見かけるのは平面を書くだけの単純なサンプルで、
インデックスを使わずにストリップのみで構成している、
まともに組むときには書かないようなダメソースぐらい。
221:デフォルトの名無しさん
08/08/10 17:00:24
半透明とかストリップだときつそうだし、いろいろ細かい部分が面倒。
UVの割れとかも考えると、効率的にもそんなに変わらない気がする。
のっぺりテクスチャ無しの球でテストしてるときとは違うし。
222:デフォルトの名無しさん
08/08/10 17:28:46
インデックスリストはGPUの頂点キャッシュアルゴリズム依存という問題はあるが、
淘汰されて4社しか残ってない今となってはどうでもいいな。
223:デフォルトの名無しさん
08/08/10 19:46:57
>>222
GPUの頂点キャッシュアルゴリズム依存度よりも、
ユーザーの財布依存度の方が高いから。
224:デフォルトの名無しさん
08/08/12 03:36:47
バックバッファについて教えてください。
1.アプリ毎に専用のバックバッファを持つんですか?
2.窓モードのバックバッファのウィンドウ外の領域は何も描画されていないんですか?窓サイズ変更時にバックバッファサイズも変更される?
3.窓モードで、ディスプレイに表示されている画像は全てのバックバッファを重ねたものと言うことですか?
225:デフォルトの名無しさん
08/08/12 04:45:59
ちょっと描画するくらいなら既存のバックバッファ使った方が良い?
新しいバックバッファを追加するコストが知りたい
226:デフォルトの名無しさん
08/08/12 08:08:29
効率なんて実装方法によって子となるんだから、自分で作って最適解を見つけろよ。
知りたいなら試せ。
227:デフォルトの名無しさん
08/08/12 11:10:25
>>224
1.そうだ
2.そうだ
3.違う 1つだけだ
>>225
そうだ
バックバッファいじらないならデフォのまま使うんだ
228:デフォルトの名無しさん
08/08/12 13:07:36
>>224
アプリ毎に持ちます
バックバッファの大きさは任意です。窓の大きさとは関連しません。
まぁデフォルトの窓の大きさ(たとえばゲームなら640x480とかね)と一致させるのが一般的。
窓の大きさを変えるたびにバックバッファの大きさを変えるのはあまりないんじゃないかね
窓が大きくなったら、バックバッファから窓への転送時に拡大する
ディスプレイも1つバックバッファを持っている。
アプリが自分の窓へ描画=ディスプレイのバックバッファへの描画
229:デフォルトの名無しさん
08/08/12 13:25:22
ツールとかでドラッグで大きさ自在に変えるような場合は
デスクトップと同じサイズで作って窓の大きさ分を左上に描画して使ってるな。
サイズが変わるたびに作り直すのは流石に無茶。
230:デフォルトの名無しさん
08/08/14 01:37:02
スタート画面にクリックしたらそれぞれのシーンへ飛ぶボタンを表示させたいのですが
何か良い方法は無いでしょうか?
231:デフォルトの名無しさん
08/08/14 01:49:16
スタート画面をクリックする前はボタンを描画しないで、
スタート画面をクリックした後はボタンを描画すればよい
232:デフォルトの名無しさん
08/08/14 17:29:06
スレの主旨から言ってDirectXで、という話だと思うけど
DXUTが一番楽なのでは。
後はイルリヒトとかコンポーネントっぽいのが入ってた気がする。
ダイアログを置いてオーナードローでDirectX描画っつー手もあるけど
多分、面倒臭いと思う。
233:デフォルトの名無しさん
08/08/17 05:45:47
質問です
スペースキーを押したらゲーム本体が始まる様にしたいのですが
実行するとキーの状態を取得せずにいきなりゲーム本体が始まってしまいます
どうすれば最初にスタート画面を表示し続けれるのでしょうか?
スタート画面処理
{
if ( GetAsyncKeyState(VK_SPACE) & 0x8000 ){
スタート画面を描画する
}
}
while(1){
if(PeekMessage(&msg,NULL,0,0,PM_NOREMOVE))
{
~略~
}else{
スタート画面処理
ゲーム本体
Sleep(1);
}
}
234:デフォルトの名無しさん
08/08/17 08:14:20
何と言う糞設計
DirectX関係ないし
235:233
08/08/19 10:23:26
>>234
は?黙れ
236:デフォルトの名無しさん
08/08/19 10:27:09
いやでもDirectX以前の話。
そこまでひどいとどこから説明していいのか途方にくれるわ。
237:233
08/08/19 10:33:45
なんだよ つかえねーな
238:デフォルトの名無しさん
08/08/19 11:11:24
if ( GetAsyncKeyState(VK_SPACE) & 0x8000 ) なの?
239:デフォルトの名無しさん
08/08/19 19:26:21
アドバイスのしようがないほどのソースは久しぶりに見た。
まずはメインループを書ける様になってからだ。
240:デフォルトの名無しさん
08/08/19 20:02:05
「DirectXゲームグラフィックスプログラミング」の他にDirectXの基礎事項を勉強できるおすすめの本はありますか?
241:デフォルトの名無しさん
08/08/20 00:49:17
if ( (GetAsyncKeyState(VK_SPACE) & 0x8000) == 0 ) でイインジャネ?
242:デフォルトの名無しさん
08/08/20 09:59:44
入力待ちしないものでいくら判断したって押されてなけりゃそのまま通過するだけだろうが。
243:デフォルトの名無しさん
08/08/20 15:43:01
if (GetAsyncKeyState(VK_SPACE) & 0x8000)
else if ( (GetAsyncKeyState(VK_SPACE) & 0x8000) == 0 )
244:デフォルトの名無しさん
08/08/20 20:19:13
ひどいソースわろた
245:デフォルトの名無しさん
08/08/20 21:57:09
常にスペース押しとけばいつか動くさ
246:デフォルトの名無しさん
08/08/23 00:32:29
DirectShowの質問です。
ムービーの動画をテクスチャに移して加工した上で表示させたいと思い、
ネット上のサンプルを読み漁ってとりあえず組んでみたのですが
以下の疑問点が発生しました。
どなたかわかる方が居ましたら、答えていただければありがたいです。
1. ムービーファイルの画像を「1枚ずつ」「任意のタイミングで」取得する方法はありますか?
現在のコードでは、DirectDrawに再生させておいて
描画時にテクスチャを取得して再生する、という構造になっています。
おそらく別のスレッドで再生させているのだとは思いますが
このシステムでは、負荷でメインスレッドのFPSが落ちた場合などに
当然ながら同期のズレが発生してしまいます。
(動画とメインループのフレームの比率が変化してしまうため)
アプリ側から任意のタイミングでフレームを進めることはできますでしょうか?
2. 実際に再生させるルーチンまでは作れたのですが
動画ファイルの読み込みに250msほど時間がかかってしまいます。
特にIGraphBuilderのRenderFileメソッドが非常に重く、
ここだけで200ms持って行かれてしまいます。
これはムービーファイルを再生する上で回避できない時間なのでしょうか?
ちなみに、ムービー形式はサンプルに沿ってwmvを使用しています。
DirectShowというと、マイナーでネット上のサンプルも少ないというイメージで
触っている人が少ないかもしれないかと思うのですが、わかる方が居ましたら
よろしくお願いいたします。
247:デフォルトの名無しさん
08/08/23 00:34:11
ここまで書いてふと思ったのですが、
DirectShowなどに頼らずに自分で動画をデコードするような
コードを書いたほうが早いのでしょうか…
再生する形式はwmvなりmpegなり1形式に絞れるので。
248:デフォルトの名無しさん
08/08/23 10:01:06
ム板かマ板にDirectShowと戦うスレがあったはず
DirectShowがDirectXから切り離されてひさしいので
そっちで聞いたほうがいいかと
249:デフォルトの名無しさん
08/08/23 12:36:26
ありがとうございます。
この板にDirectShowと戦うスレ Part 4というスレがあったので
そちらで再度質問してみることにします。
250:デフォルトの名無しさん
08/08/24 17:50:09
テクスチャフィルタをポイントに設定するにはどうすれば良いでしょうか?
現状はバイリニアのかかったような少しぼけた画像が
表示されてしまいます。
SetSamplerStateでポイントサンプリングに設定しても変わりませんでした
251:デフォルトの名無しさん
08/08/24 20:40:46
交差している半透明のポリゴンを正しく表示するにはどうしたら良いでしょうか?
252:デフォルトの名無しさん
08/08/24 21:11:17
交線でポリゴンを切り分ければ良し
253:デフォルトの名無しさん
08/08/24 23:59:52
質問いいですか?テクスチャのピクセルを取得しようとしています。
D3DXCreateTextureFromFileEx(
pd3dDevice, L"pattern.bmp", 64, 64, 1, D3DUSAGE_DYNAMIC, D3DFMT_X8R8G8B8,
D3DPOOL_SYSTEMMEM, D3DX_DEFAULT, D3DX_DEFAULT, 0, NULL, NULL, &texPattern);
// テクスチャ情報取得
D3DSURFACE_DESC desc;
texPattern->GetLevelDesc(0, &desc);
// テクスチャをロック
D3DLOCKED_RECT lockrect;
texPattern->LockRect(0, &lockrect, NULL, 0);
DWORD* ptr = (DWORD*)lockrect.pBits;
DWORD pixel_color=0x0;
short getx=10;//取得したいピクセル
short gety=10;//取得したいピクセル
254:デフォルトの名無しさん
08/08/25 00:00:10
if (0<=x && x<(short)desc.Width){
if (0<=y && y<(short)desc.Height){
pixel_color=ptr[getx+gety*(short)desc.Height];
}
}
texPattern->UnlockRect(0);
short color_r=(pixel_color>>16)&0xFF;
short color_g=(pixel_color>> 8)&0xFF;
short color_b=(pixel_color )&0xFF;
上のプログラムで正確な色が取得できません。
指定するピクセルによって違う値が返ってきているので、
きちんとテクスチャを参照してはいると思うのですが。
どうか教えてください。よろしくお願いします。
255:デフォルトの名無しさん
08/08/25 06:28:58
pixel_color=ptr[getx+gety*(short)desc.Height];
これを直すといいかもしれない
うそいったらごめん
256:デフォルトの名無しさん
08/08/25 08:41:11
>>253
サーフェスの横幅は、D3DLOCKED_RECT構造体のPitchを参照しないと駄目。
パディングでdesc.Widthと一致しない場合がある。
257:デフォルトの名無しさん
08/08/25 12:27:09
つーか、desc.Height掛けてどうするよ。
258:デフォルトの名無しさん
08/08/25 15:56:26
>>255
具体的にどう直せばいいのか教えてもらえると助かります。
>>256
Pitchのほうですか?
あれは余計なところまで含めたものらしいんで使えないはずです。
試してもらえばわかりますが、Pitchのところまで表示させるとゴミが出ますよ。
>>257
yは縦ですからHeightでしょう、高さという意味ですし。
259:デフォルトの名無しさん
08/08/25 16:05:38
>>255,257見てもうちょっと考えろよ
260:デフォルトの名無しさん
08/08/25 16:07:59
DirectX以前だな。
・ぼーるがたてに5つよこに4つならんでいます。
・ぼーるをひだりうえからいちだんずつよこにじゅんばんにばんごうをつけることにしました。
・いちばんひだりうえが0で、いちばんみぎうえが3です。
・みぎはしまできたのでいちだんさがってつぎのだんのひだりはしが4になります。
・いかどうようにばんごうをつけるといちばんみぎしたは19になります。
さて、ひだりから0からかぞえて2ばんめ、うえから0からかぞえて3ばんめのぼーるはなんばんでしょうか。
けいさんしきがわからなかったら、えにかいてみるといいですよ。
261:デフォルトの名無しさん
08/08/25 16:13:49
Q. 3Dプログラミングに行列等、数学の知識は必要か
A. 掛け算程度は出来ないとお話になりません
>258
算数からやり直せ
262:デフォルトの名無しさん
08/08/25 16:29:40
正方形ならうまくいったのになw
263:デフォルトの名無しさん
08/08/25 16:34:37
>>258は質問者を騙った釣りだろう
sageてるし
内容があからさまに釣りだし
264:デフォルトの名無しさん
08/08/25 17:14:33
質問です
布シミュに手を出して満足のいくものができたので、次は髪の毛にいこうかと思っています。
布シミュは「布シミュ」や「クロスシミュレーション」でうまく資料を探せたのですが、髪の毛はうまく資料をぐぐれません。
何か良いキーワードか、ページを教えていただけないでしょうか
よろしくお願いします
265:デフォルトの名無しさん
08/08/25 21:35:38
3DのRPGを作ろうと思っているのでDirectXを勉強しようと思ったのですが
数学や物理の知識が必要と聞いたので
三角関数・ベクトル・行列を一通り勉強したのですが
他にやっておいたほうがいい分野はありますか?
ゲーム開発のための数理学物理学入門は一通り理解しました
266:デフォルトの名無しさん
08/08/25 21:39:36
RPGってどんなのを作るつもりかわからんけど
3Dの知識以前にゲーム製作の総合的な知識が必要になると思うぞ
3Dの部分についてはとりあえず作り始めちゃって問題が出たらその都度調べればいいと思う
267:デフォルトの名無しさん
08/08/25 21:41:26
>>266
アドバイスありがとうございます
268:デフォルトの名無しさん
08/08/25 23:03:00
質問があります。
ATL/WTLにてDirectXを扱うにはどの様にしたらよいのでしょうか
クライアント領域を別のビュークラスで定義しサブクラス化しており、色々調べたところ
ビュークラスのHWNDを渡してしまうとCreateDeviceが通らないためウィンドウのHWNDで初期化し、
Render関数にて引数にCDC*を取り
LPDIRECT3DSURFACE9 pSuf = NULL;
m_pd3dDevice->GetBackBuffer(0,0,D3DBACKBUFFER_TYPE_MONO,&pSuf);
上記でバックバッファを取得し、
pSuf->GetDC(pdc->m_hDC);
とビューのHDCとバックバッファのHDCを関連づける方法にたどり着いたのですが、
Clearすら通りません。
問題のあるところを指摘していただけないでしょうか。
269:デフォルトの名無しさん
08/08/25 23:07:25
最強の同人ソフトウエアーを作るにはどのグラボを買えばOKでしょうか?
270:デフォルトの名無しさん
08/08/25 23:20:07
>269
Intelのオンボード
271:デフォルトの名無しさん
08/08/25 23:21:15
>268
>ビュークラスのHWNDを渡してしまうとCreateDeviceが通らないため
普通に通るぞ
272:デフォルトの名無しさん
08/08/25 23:41:55
あれ、ほんとだ。
初期化関数に渡すハンドルをクライアントのに変えただけであっさり通りました
むしろ何故以前は通らなかったのか……
いずれにせよ前に進めました。ありがとうございます。
273:デフォルトの名無しさん
08/08/26 08:20:34
DirectX9.0cなのに「診断ツール」がありません・・・
どうやったらdxdiag.exeをインストールできますか?
274:デフォルトの名無しさん
08/08/26 09:46:50
dxdiag.exeはDirectXのドライバ入れたら(=ビデオカードがあれば)
Windowsに入ってると思うが。
275:273
08/08/26 11:23:20
Cドライブでdxdiag.exeの検索かけても何処にも無い位は実行済み
更新しようとしても「最新だからインストール必要なし」と表示されます
276:デフォルトの名無しさん
08/08/26 11:36:26
ファイル名を指定して実行、とか、Windows\system32の中、とか無いの?
今まで無かったためしがないのでないという状況がよくわからん。
277:デフォルトの名無しさん
08/08/26 12:00:56
DirectXを学ぶときって関数を暗記する必要ありますか?
278:デフォルトの名無しさん
08/08/26 12:47:42
>>277
暗記してもすぐ仕様が変わるから無駄
279:デフォルトの名無しさん
08/08/26 15:35:54
暗記する必要はないが、どんな関数があるかくらいは一度全部
目を通した方がいい。
280:デフォルトの名無しさん
08/08/26 16:47:25
パソコンのDirectXバージョンがDirectX10で
製品の動作機種がDirectX9対応グラフィックでは正しく使えるのでしょうか?
それともDirectXというのは同じバージョンでしか対応しないものなのですか?
281:デフォルトの名無しさん
08/08/26 16:58:16
>>280
10以下のはすべて使えると思う
282:デフォルトの名無しさん
08/08/26 21:56:47
>>281
回答ありがとうございます
283:デフォルトの名無しさん
08/08/26 23:03:10
とりあえず280GTXってのを買ってきました。これでコミケに出れます。
284:デフォルトの名無しさん
08/08/26 23:06:12
今からDirectXの勉強を始めようと思うのですが
入門書としてDirectXゲームグラフィックスプログラミングVer2.1
を買いました。
DirectXGraphicsの初期化などは暗記して見ないで打てるようにしたほうがいいですか?
285:デフォルトの名無しさん
08/08/26 23:10:38
初期化なんかゲーム1本につき1回しか書かないから、ちゃんと動くの1回書けたら忘れていいよ
286:デフォルトの名無しさん
08/08/26 23:10:39
なんか暗記とか数学どこまで勉強とかって・・・
日曜プログラマならみんなコピペでいいよ
コピペで駄目になってから考えろ
287:デフォルトの名無しさん
08/08/27 01:11:50
みんなでコピペした結果がこれだよ!
URLリンク(www.watch.impress.co.jp)
288:デフォルトの名無しさん
08/08/27 07:18:41
>>283
待つんだゲフォの280は地雷だ。
らでの4850にしとけ。
大差ないスペックで大量の消費電力と3倍近い値段するんだぞ280は。
289:デフォルトの名無しさん
08/08/27 07:52:34
>>287
March 2008でも直ってねーじゃん
290:デフォルトの名無しさん
08/08/27 07:58:17
日曜プログラマでも脳みそは使わなきゃダメだ
291:デフォルトの名無しさん
08/08/27 09:43:51
提供元のサンプルはコピペのためにあるようなもんだしなw
DVD出たときにパイオニアと東芝がしょっちゅう同じバグ出してたのもコピペだったんだろうなあ
292:デフォルトの名無しさん
08/08/27 11:30:57
>>291
昔買ったNECのマウスのファームウェアがサンプルのコピペでワロタ
CY7C63101のサンプルコードに書いてあった仮のベンダーIDとかそのまんまになってた
293:デフォルトの名無しさん
08/08/27 13:49:52
DC版VF3がSAMPLE GAMEなのと同じですね、違いますね。
294:デフォルトの名無しさん
08/08/28 00:58:23
Windosゲームを作っていて、
ゲーム起動時に32*32のフォント画像のテクスチャーを約8000個作りたいんですが、
その処理に15秒くらいかかってしまいます。
CreateTextureやバッファにフォント画像を書き込むこと自体は、
全然時間がかからないんですが、
↓の処理が凄く遅いです。
D3DLOCKED_RECT lockRect;
pTexture->LockRect(0, &lockRect, NULL, D3DLOCK_DISCARD);
高速化する方法ってないでしょうか。
295:294
08/08/28 01:12:25
自己解決しました。
CreateTextureのプールを、
D3DPOOL_DEFAULT から D3DPOOL_MANAGED に変えたらちょっぱやになりました。
理由はよく分かりませんが、
D3DPOOL_DEFAULTだとLockRectでVRAMにアクセスするから遅い?
296:294
08/08/28 01:20:42
LPDIRECT3DVERTEXBUFFER9を頻繁にLockして色を変えたりする場合も、
もしかして、D3DPOOL_MANAGEDの方が速いのでしょうか?
D3DPOOL_MANAGEDとD3DPOOL_DEFAULTの長所短所がよく分からないんですが、
詳しい人いたら教えてもらえませんか?
297:デフォルトの名無しさん
08/08/28 06:54:13
POOL_DEFAULTは適切な使い方をすればちょっぱやになります。
あなたの使い方は論外です、今は素直にPOOL_MANAGEDを利用して
いつか分かるようになったらそのとき色々考えましょう。
っていうかDEFAULTのテクスチャをロックするなよ。
298:294
08/08/28 08:47:12
今までリソースは全てPOOL_DEFAULTで作ってたんですが、
POOL_DEFAULTはどういう場合に使うのが適切なんでしょうか?
いつかじゃなくて今知りたいんですが、教えてもらえないでしょうか。
299:294
08/08/28 09:23:29
かなり苦労してデバイスロスト時のリソース開放復帰処理を作ったので、
適切なところはPOOL_DEFAULTを使いたいんです。
300:デフォルトの名無しさん
08/08/28 10:53:32
その前にテクスチャ8000個の方に突っ込むべきな気もする…
301:デフォルトの名無しさん
08/08/28 11:24:46
淫乱負数からディスプレイアダプタを取得する方法が分からないのですが
誰か教えていただけませんか?
// ディスプレイアダプタを表すためのデバイスを作成
// 描画と頂点処理はハードウェアで行う
if(FAILED(m_pD3D->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
hWnd,
D3DCREATE_HARDWARE_VERTEXPROCESSING,
&m_D3DPP, &m_pD3DDevice))) {
// 失敗した場合
// 描画処理はハードウェアで、頂点処理はCUPで行う
if(FAILED(m_pD3D->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
hWnd,
D3DCREATE_SPFTWARE_VERTEXPROCESSING,
&m_D3DPP, &m_pD3DDevice))) {
// 失敗した場合
// 描画と頂点処理をCUPで行う
if(FAILED(m_pD3D->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_REF,
hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&m_D3DPP, &m_pD3DDevice))) {
//取得失敗
return E_FAIL;
これだとコンパイルエラーが出ます。。。
302:デフォルトの名無しさん
08/08/28 11:45:18
D3DPOOL_DEFAULT とかD3DPOOL_MANAGED考える前に
テクスチャ8000個ってのを改善しろよ
8000個なんて使うときあるか?
303:デフォルトの名無しさん
08/08/28 12:41:51
>>302
日本語全部だとそのくらいじゃないの
知らないけど
304:デフォルトの名無しさん
08/08/28 12:44:54
1文字ずつバラしてんのか
305:デフォルトの名無しさん
08/08/28 12:51:47
1枚でつくって切りだして使えよ
306:デフォルトの名無しさん
08/08/28 13:22:12
>>305
じゃあ聞きますけど1枚に全部入りますか?
書き込む前に考えるクセをつけるべきだと思います。
307:デフォルトの名無しさん
08/08/28 13:27:35
jpeg3なら可能なんでない?
マトリョーカシからの圧縮も対応してるし
12000*8000のサイズも余裕で収まるっしょ?
308:デフォルトの名無しさん
08/08/28 13:27:56
糞設計ブーム到来中
309:デフォルトの名無しさん
08/08/28 13:31:38
「1枚じゃはいらないなぁ」
「でも複数にするとどの文字が
どのテクスチャに収納されてるのか考えないと・・・」
「そうだ!1文字テクスチャでつくればいいんじゃね」←いまここ
こういうことだろ?
どんだけ手抜きなんだよ
310:デフォルトの名無しさん
08/08/28 13:35:26
書き込む前に考えるクセをつけるべきなのは>>306だなwwww
311:デフォルトの名無しさん
08/08/28 13:52:55
---煽りあいはここまで---
312:デフォルトの名無しさん
08/08/28 17:22:10
32*32を8000枚って、30MB超えたんだが、いったいどんな富豪グラボを想定してるんだろうw
313:デフォルトの名無しさん
08/08/28 17:55:04
大丈夫
いまどきの富豪なグラボは1GBある
314:デフォルトの名無しさん
08/08/28 17:57:52
淫乱負数からディスプレイアダプタを取得する方法が分からないのですが
誰か教えていただけませんか?
// ディスプレイアダプタを表すためのデバイスを作成
// 描画と頂点処理はハードウェアで行う
if(FAILED(m_pD3D->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
hWnd,
D3DCREATE_HARDWARE_VERTEXPROCESSING,
&m_D3DPP, &m_pD3DDevice))) {
// 失敗した場合
// 描画処理はハードウェアで、頂点処理はCUPで行う
if(FAILED(m_pD3D->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
hWnd,
D3DCREATE_SPFTWARE_VERTEXPROCESSING,
&m_D3DPP, &m_pD3DDevice))) {
// 失敗した場合
// 描画と頂点処理をCUPで行う
if(FAILED(m_pD3D->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_REF,
hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&m_D3DPP, &m_pD3DDevice))) {
//取得失敗
return E_FAIL;
これだとコンパイルエラーが出ます。。。
315:デフォルトの名無しさん
08/08/28 18:42:55
とりあえずエラーの内容も書こうぜ
316:デフォルトの名無しさん
08/08/28 18:55:45
Renderer.cpp(266行目) 淫乱負数からのポインタが取得できません
ちなみに使っているコンパイラは現役専門学生の友達が作ってくれたものです。
317:デフォルトの名無しさん
08/08/28 19:53:57
DEFAULTはそれこそ毎フレーム書き換えるようなデータに使うのが一般的。
その場合は当然DYNAMICフラグとセットにしてな。
それ以外のただの画像テクスチャなんてものはMANAGEDで問題ない。
速度的にDEFAULTが速いとか勘違いしてるかもしれないが
作成時に1回だけ書き換える程度の静的なデータには無意味だ。
一般的といっていいかは分からないけど、
MMOみたいな大量の文字を使うようなゲームでも普通は事前に
テクスチャに展開してUVで切り出して描画をするぞ。
1文字1テクスチャは色々とおかしいといわざるを得ない。
1文字単位でテクスチャの切り替えが発生するしキャッシュ効率も最悪。
318:デフォルトの名無しさん
08/08/28 22:45:27
>>316
淫乱負数について詳しく
319:デフォルトの名無しさん
08/08/28 23:23:35
【淫乱負数】
デクリメント負数のサイズ (バイト単位)。柔軟な頂点フォーマット (デクリメント) 頂点バッファの場合は、
淫乱負数 は少なくとも 1 つの頂点を格納できる大きさでなければならないが、頂点サイズの倍数である必要はない。
淫乱負数 は非 FVF バッファについては検証されない。
320:294
08/08/29 00:13:09
>>309
手抜きじゃなくて、無知で初心者なだけです。
常に最善を求めて頑張っています。
>>310
とりあえず>>306は私じゃないのであしからず。
>>312
いまどきのグラボは30MBくらいいけると想定して、
古いグラボはすっぱりと切る心づもりでした。
321:294
08/08/29 00:14:46
>>317
参考意見ありがとうございます。
charがどの文字に対応するかは絶対1つずつ判定が必要ですよね。
そしたら後は、1枚から特定の場所を切り出す処理がない分、
1つずつのテクスチャにした方が効率がいいかと思ったんですが、
そうではないんでしょうか?
私はプログラムやコンピュータに触りだしたのが最近で、
キャッシュ効率(たぶんハード寄りなこと?)というのがよく分からないんですが、
大量のテクスチャを使えば一時保存領域などを頻繁に入れ替えることになるから、
その分オーバーヘッドが生じて遅くなるってことでしょうか?
322:デフォルトの名無しさん
08/08/29 01:21:10
>>317
その書き方では、DEFAULTはロック書き換え用だと読めるが、
そうなの?
別に実測値を出せとは言わんが、それを示すドキュメントとかあるか?
323:デフォルトの名無しさん
08/08/29 01:25:44
扇形を簡単に描画させる方法ってないですか?
60度の角度で上方向に扇形を描画さしたいのですが(円弧の方が上)
開始地点は275から半径50の扇形を描画さしたいのですが
pD3Device->SetTexture(0, pTexture[0]);
pt[0].x = 250.0f;
pt[1].x = 300.0f;
pt[3].x = 275.0f;
pt[2].x = 275.0f;
pt[0].y = 225.0f;
pt[1].y = 225.0f;
pt[2].y = 275.0f;
pt[3].y = 275.0f;
pt[0].tu = pt[3].tu = 0.0f / 1024;
pt[1].tu = pt[2].tu = 200.0f / 1024;
pt[0].tv = pt[1].tv = 0.0f / 1024;
pt[2].tv = pt[3].tv = 200.0f / 1024;
pD3Device->DrawPrimitiveUP(D3DPT_TRIANGLEFAN,2,pt,sizeof(CUSTOMVERTEX));
これでは普通に三角形ができただけで・・・
角度計算とかで簡単に扇形にできないでしょうか?
324:デフォルトの名無しさん
08/08/29 04:00:28
>>321
テクスチャの切り替えはなるべく少なくした方が高速
325:233
08/08/29 05:00:57
解決しました
粗末な物を張ってすみませんでした
326:デフォルトの名無しさん
08/08/29 07:17:27
淫乱負数って一体何なんだ
327:デフォルトの名無しさん
08/08/29 07:33:53
>>321
テクスチャの切り出しなんて文字コードをインデックスにして
テーブルからUVを引っ張ってくるだけだろ。
今のCPUのキャッシュ容量なら余裕で全部乗る程度のキャッシュサイズだし、
別にテクスチャ自体を切り出して作るわけじゃないぞ。
「テクスチャの切り替えをする」ということはそのつど「DrawPrimitive」を呼ぶということだ。
昨今のグラフィックカードは細かいデータをたくさん出すようには設計されてないので致命的なほど遅い。
なので可能なら1枚のテクスチャに格納⇒文字全てを1個の頂点バッファに格納⇒DrawPrimitive1回で全ての文字を描画
これが実測でも理論でも最速になる。
DrawPrimitiveの連打に比べたら頂点データの作成やUVテーブルの参照なんてゴミみたいな負荷。
>322
SDKに入ってるドキュメントに書かれてるよ。
>動的な頂点バッファおよびインデックス バッファの使い方
>
>理想は頂点データまたはインデックス データがまったく変化しないことですが、これは必ずしも可能ではありません。
>アプリケーションがフレームごとに頂点データまたはインデックス データを変更する場合は多くあり、
>フレームあたり複数回変更することさえあります。
>このような場合は、D3DUSAGE_DYNAMIC を使って頂点バッファまたはインデックス バッファを作成する必要があります。
>この利用法フラグによって Direct3D を頻繁なロック処理用に最適化します。
>D3DUSAGE_DYNAMIC はバッファを頻繁にロックする場合にのみ有用であり、
>変化しないデータは静的な頂点バッファまたはインデックス バッファに格納する必要があります。
テクスチャやサーフェイスの場合だとシステムメモリにコピーをいちいち作れない、
レンダリングターゲットや深度バッファなんかもDEFAULTで作る必要あるけど。
328:327
08/08/29 07:43:05
補足。
D3DUSAGE_DYNAMICフラグはD3DPOOL_DEFAULTと一緒じゃないと使えない。
D3DPOOL_MANAGEDって単にシステムメモリにコピーもってて、
システム側のバッファ⇒DMA転送⇒VRAMのバッファってやってるだけ。
だからデバイスがロストしても復旧できる。
当然だけど描画中のバッファをLock()しようとした場合は描画終わるまで待たされる。
そうなると頻繁にバッファ書き換えるなら直接VRAMのバッファ変えるほうが速いのは当然だし
DYNAMICフラグの場合はLock()する度に別のアドレス返してくるからMANAGEDみたいに
データの保障は出来ないってことだな。
DYNAMICしたバッファは
Lock()→新しいビデオメモリ領域をmalloc()→そのアドレスを返す→描画終わったらドライバがfree()
っていう処理だから他のバッファみたいに描画中のバッファに干渉してパイプラインを止めなくてすむ。
だから書き換えないならMANAGEDでいいし、頻繁に書き換えるならDEFAULT+DYNAMICにしとけってな話。
ドキュメントの「DirectXGraphics」→「プログラミング ガイド」→「プログラミングのヒント」→「パフォーマンスの最適化」を参照。
329:デフォルトの名無しさん
08/08/29 11:06:50
書き込むスレ間違えたのでマルチスレッドになるかもですが、
シーンの作成時やレンダラーの初期化時に
HRESULTをいうのを使っているのですが
HRESULT Renderer::Initialize(HWND hWnd, BOOL isFullScreen, int clientWidth, int clientHeight)
LRESULTとの違いってなんですか?
LRESULT CALLBACK WindowProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
ウィンドウプロシージャルを定義するときはLのほうを使って
DirectXの初期化の時などはHを使うって事ですか?
330:デフォルトの名無しさん
08/08/29 11:23:45
LRESULTはもともとlongだったものからきてる、longで結果を返すものと思っていい。
HRESULTは内容が決まってる。COMが返すものと思っていい。
自分で作った関数は、よそから返ってきたHRESULTをそのまま返すもの以外はあまり使わないと思うよ。
331:デフォルトの名無しさん
08/08/29 11:36:43
>>330
なるほど~~
ありがとうございました!
332:デフォルトの名無しさん
08/08/29 12:29:25
テイルズっぽいゲームを作ろうと思っているのですがエフェクトの所で悩んでます
戦闘時のエフェクトとかってDirectXで描写するのとAdobeEffectsとかで作ったのを描写するのどっちが一般的なんですか?
333:デフォルトの名無しさん
08/08/29 12:39:54
3Dなら、プログラム率高い
2Dなら、ベタでいいんじゃね?
絵の量が多いと、プログラムしないとメモリが足りないけど
334:デフォルトの名無しさん
08/08/29 12:40:58
参考
URLリンク(rayz.skr.jp)
335:デフォルトの名無しさん
08/08/29 12:47:28
>>332
このスレ64から嫁
一般的かって話なら3Dで作るのが一般的
336:デフォルトの名無しさん
08/08/29 13:30:03
質問もマルチスレッドの時代になったか
337:294
08/08/29 20:40:02
>>327
文字列全てを1個の頂点バッファに格納するというのは、
同じ板ポリゴンに、位置をずらしながら1文字ずつ貼り付けていくということですよね。
板ポリの4頂点にテクスチャのUVを指定して、
板ポリ全体にテクスチャを貼り付ける方法しか知らないんですが、
板ポリゴンの一部にテクスチャを貼り付けるにはどうすればいいんでしょうか?
338:デフォルトの名無しさん
08/08/29 20:44:59
>>337
いうてる意味がわからんが「描画する文字数 x 4角形」分の大きさの頂点バッファをこしらえるだろ。
339:デフォルトの名無しさん
08/08/29 21:19:35
1文字あたりポリゴン2枚(三角形×2)
1個の頂点バッファにたくさんポリゴンを詰め込んで、1回のDrawPrimitiveで全部描く
340:デフォルトの名無しさん
08/08/29 22:21:31
>>328
D3DPOOL_MANAGEDはレンダリングターゲットには出来ない。
ということはGPUによる書き換えは発生せず、内容の書き換えが起こるとするとすれば
それは常にCPUからの場合のみ。
だとすれば、D3DPOOL_MANAGEDのリソースは、
メインメモリ側がマスタで、ビデオメモリ側がスレーブという考え方でかまわない訳で、
lockした場合は、常にメインメモリ側のポインタを返し、
unlockした時点でスレーブに反映させればいいから、別にCPUはストールしない。
と、勝手に思っていた訳だが。根拠はないが。
341:デフォルトの名無しさん
08/08/29 22:26:55
また、SDKの記述だが
D3DUSAGE_DYNAMIC+D3DPOOL_DEFAULTが
D3DPOOOL_MANAGEDより優位だとは特に書いていないぞ。
342:デフォルトの名無しさん
08/08/29 23:51:45
>>340
CPUのメモリに書き込む⇒CPU→GPUの転送をする⇒GPUのバッファが描画待ち状態だった⇒さぁどうなる?
>>341
毎フレームロックするような2Dのスプライトみたいなものとか、
3Dのパーティクルみたいなものには有利とは書かれているぞ。
モデルみたいな作りっぱのデータにはむしろマイナスだろう。
343:294
08/08/30 00:45:36
>>338
>>339
理解しました。頂点バッファって三角形何個でも繋げられるんですね。
今まで常に三角形2枚の長方形で1個の頂点バッファにしてました。
どうもありがとうございます。
344:294
08/08/30 00:47:27
>>328
起動時のフォントテクスチャ作成を、
D3DPOOL_DEFAULT、D3DUSAGE_DYNAMICから、
D3DPOOL_MANAGED、USAGEなしに変えたら、
LPDIRECT3DTEXTURE9#LockRectが20倍くらい速くなったんですが、
描画中だとD3DPOOL_DEFAULTの方がロック速いけど、
描画してない状態だとD3DPOOL_MANAGEDの方がロック速いってことでしょうか。
いずれにせよ、色々実測してみようと思います。
345:デフォルトの名無しさん
08/08/30 22:46:27
dxerr.lib dxguid.lib d3dx9.lib d3d9.lib このライブラリの中で
ゲーム会社の採用試験の作品提出の時に使ったまずいのってありますか?
346:デフォルトの名無しさん
08/08/30 22:53:47
まずいのはそんなことを質問するお前の頭
その時点で不採用決定だから気にするな
347:デフォルトの名無しさん
08/08/30 22:58:44
流石にネタだろw
348:デフォルトの名無しさん
08/08/30 22:59:47
>>345
windowsアプリケーションを作る時
#include <windows.h>
がないとの同じだぞ?
349:デフォルトの名無しさん
08/08/30 23:03:22
>>345
お前は心臓がなくて生きてられるか?(ペースメーカーなど除く)
350:デフォルトの名無しさん
08/08/30 23:25:28
>>345
d3d9.libだけは使ったらまずい。ほかは使っても大丈夫だよ
採用試験がんがれ!
>>346-349
しんだほうがいい
351:デフォルトの名無しさん
08/08/30 23:28:48
>>345
プログラマーって>>350みたいなの多いから気をつけた方がいいよ
別に気に入らなければ答えなきゃいいだろうっていう質問をネタに遊ぶ連中だから
352:デフォルトの名無しさん
08/08/30 23:32:30
再配布禁止なのはd3dx9***.dll系だろ・・・
353:デフォルトの名無しさん
08/08/31 00:28:48
こういうくだらない話に喰いつく奴をみると
ネット経験が浅いんだろうなぁ、ウザいなぁと何時も思う。
354:デフォルトの名無しさん
08/08/31 01:01:16
>>352
実行ファイルの隣に置いておくのが駄目なだけで
再配布が禁止されてるわけじゃないよ
355:デフォルトの名無しさん
08/08/31 01:49:17
採用担当はいちいちそんな所みてねぇよ
356:294
08/08/31 04:38:21
色々試してみましたが、
やっぱうちだとPOOL_DEFAULT より POOL_MANAGEDの方が速いっぽいです。
あと、HARDWARE_VERTEX_PROCESSING より SOFTWARE_VERTEX_PROCESSINGの方が速い。
357:デフォルトの名無しさん
08/08/31 05:24:16
>>356
システムメモリとビデオメモリを理解してないんですね
わかります
358:デフォルトの名無しさん
08/08/31 08:08:45
>>356
そりゃロック速度は速いだろうけど描画は遅くなるだろ・・・
359:デフォルトの名無しさん
08/08/31 08:47:02
>356
測定条件が明確じゃないのに、ここでどっちが早いとか
書いても意味ねーぞ
360:294
08/08/31 14:24:52
C#で測定ツールを作ってみたんですが、
測定条件こんな感じでどうですか?
URLリンク(www.sepia.dti.ne.jp)
Managed DirectXは少し遅いらしいけど。
361:デフォルトの名無しさん
08/08/31 14:33:26
>>354
エーダメだったの?
362:デフォルトの名無しさん
08/08/31 16:28:42
>>360
いやぁ
その前にシステムメモリとビデオメモリの違い
ってわかる?
多分、そんなの測ってもケースバイケースよ?
いまのままだとどんな条件のときにそのプログラムが速くて
そんな条件のときにそのプログラムが遅いのかわかんないでしょ?
それを知りたい?
それとも虚構の条件でのみ速いって主張するそのプログラムを
みんなに認めてもらいたいだけ?
どっちか選んで方針決めてよ
363:294
08/08/31 16:59:03
何の違いですか?転送速度とか?
詳しい違いはしりません。
>それを知りたい?
知りたい。
364:294
08/08/31 17:00:47
あとはうち以外の環境でも実測して、
結果と理論を合致させたいです。
365:デフォルトの名無しさん
08/08/31 17:01:41
何で敢えて「その前にシステムメモリとビデオメモリの違い」を無視しているのかなぁ。
366:デフォルトの名無しさん
08/08/31 18:59:07
iPhoneのように画像をマウスの動きに合わせて左右にスライドさせて見るような画像ブラウザを作りたいのですがDirectXで可能でしょうか
お勧めのライブラリーなどあればよろしくお願いします
367:デフォルトの名無しさん
08/08/31 18:59:37
>>361
ちゃんと書いてあっただろ・・・。
もし商業でやってたらアウトだぞ。
再配布していいのは「再配布パッケージ」だけで
「再配布パッケージの中のファイル(d3dx9_32.dllなど)」を
単独で再配布してはいけない
>>363
その詳しい違いを調べてるんじゃないの?
ただロックして書き込み速度だけみたいなら
mallocしたバッファにでも書けば?
368:デフォルトの名無しさん
08/08/31 19:32:36
>>363
んじゃ
システムメモリってのはPCのCPUで演算させるときに
データをおかなきゃならんところなんよ
ビデオメモリってのはグラフィックボードのGPUで
演算させるときにデータをおかなきゃならんところよ
>あと、HARDWARE_VERTEX_PROCESSING より SOFTWARE_VERTEX_PROCESSINGの方が速い。
これもさ、LockとかDrawPrimitiveUpやってんじゃねぇの?
なのでそんな結果になっちゃうわけよ
つまりな、描画方法がグラボの能力をまったく使えてないw
369:デフォルトの名無しさん
08/08/31 20:35:00
>>367
エーそうだったのか
ありがとう
370:デフォルトの名無しさん
08/09/01 13:49:43
2Dスプライトを実装する際の
頂点バッファ、インデックスバッファの扱いについて質問です
これらはスプライト毎に用意したほうがいいのでしょうか?
それともシステムに対して一つ用意してそれを使いまわせばいいのでしょうか?
371:デフォルトの名無しさん
08/09/01 14:56:14
>>370
1個だけ作っておいて
スプライトを順次埋め込んでいけばオッケ
表示するときに一発で済む
372:デフォルトの名無しさん
08/09/01 17:59:13
>>371
一つの頂点バッファに動的に頂点を追加し
テクスチャごとにインデックスバッファを作成して描画ということでしょうか?
一つの動的な頂点バッファをマイフレームロックして書き換えるのと
テクスチャごとに静的頂点バッファを生成して切り替えて使うのだと
どちらがパフォーマンスにやさしいのでしょうか?
373:デフォルトの名無しさん
08/09/01 19:01:41
初めてDirectXクリックしたら はい いいえの文字が出たのでいいえクリックしたら
DirectX診断ツールが出てきた・・・はい いいえの内容教えてください
たしか はい がおすすめですと書いてあった
バージョンが最新?DirectX 9.0cになってたいいえクリックすると自動で9.0cがインストールするの?
詳しい方教えてくださいおねがいします。
374:デフォルトの名無しさん
08/09/01 21:59:35
なんでこの文はFAILEDが2個もあるんですか?
//--------------------------------------
// モデルを生成
//--------------------------------------
// 球体(Sphere)の生成
if(FAILED( FAILED(D3DXCreateSphere( pD3DDevice,
1.0f,
36,
36,
&m_pMesh,
NULL)))) {
return E_FAIL;
}
375:デフォルトの名無しさん
08/09/01 21:59:50
とりあえず
・プログラミングの話しではない
・日本語がおかしい
376:デフォルトの名無しさん
08/09/01 22:10:08
>話しではない
お前も日本語がおかしい
377:デフォルトの名無しさん
08/09/01 22:15:36
if(FAILED(D3DXCreateSphere( pD3DDevice, これでいいと思うんですけど
if(FAILED( FAILED(D3DXCreateSphere( pD3DDevice, これにする理由ってなんですか?
378:デフォルトの名無しさん
08/09/01 22:36:14
>>377
後生ですからFAILEDマクロの定義を調べた上で初心者スレに出直してください。DirectXには関係がありませんから。
379:デフォルトの名無しさん
08/09/02 00:56:57
DirectXの画面上にエディットコントロールを貼り付けると激しくちらつきますが、
これは相性が悪いのであきらめろということですか?
380:デフォルトの名無しさん
08/09/02 08:26:34
>>372
異なるテクスチャを要求されるか
頂点バッファが一定量(例えばスプライト100個)を越えるまで
一つの頂点バッファに溜め込んで
上記条件を満たしたら表示する
>>379
DX搭載のUIを使うか
エディットコントロールの部分をクリッピングする
381:デフォルトの名無しさん
08/09/02 10:24:08
>>380
その手法はヘルプには書いてありましたが
たとえば
スプライト0~49がテクスチャA
スプライト50~99がテクスチャBを資源にしている場合
ひとつの頂点バッファで一括で100個描画をする方法あるのでしょうか?
パーティクルみたいに同じテクスチャを数100個表示するようなときには有効そうですが
382:デフォルトの名無しさん
08/09/02 11:31:27
>>381
テクスチャごとに(その例では50)表示しても
マルチテクスチャで無理して全部(その例では100)表示しても
速度差は出ないぞ
383:デフォルトの名無しさん
08/09/02 11:49:29
>>380ハァハァ・・・めんどいよぉ~
384:デフォルトの名無しさん
08/09/02 12:01:55
ウィンドウならWS_CLIPCHILDRENで
385:デフォルトの名無しさん
08/09/02 12:02:54
超初心者でプログラミングのサイトを読み進めながら組んでるんですが、
"error C2065: 'm_pD3Ddev' : 定義されていない識別子です。"
こんなエラーが出てビルドする事が出来ません。
恐れ入りますが、よろしくお願いします。
386:デフォルトの名無しさん
08/09/02 12:04:57
LPDIRECT3DDEVICE8 m_pD3DDev;
をクラス定義に入れろ。
387:デフォルトの名無しさん
08/09/02 12:44:28
>>386
有難うございます。
無事に解決する事が出来ました。
388:デフォルトの名無しさん
08/09/02 13:28:41
って8でよかったのか?
389:デフォルトの名無しさん
08/09/02 16:48:14
>>384わおすげー できた!おじちゃんありがとー!
390:デフォルトの名無しさん
08/09/02 23:57:18
LWでXファイルを書きだしたあとDirectXで読み込むときテクスチャーが読み込まれないの何でですか?
DirectXのほうでテクスチャーを張り付ける処理をしなければいけないってことです?
391:デフォルトの名無しさん
08/09/03 00:10:54
DirectXをダウンロードしたのですがスタートメニューから[DirectX]を検索して
プログラム欄のフォルダを見ても中が空なんですがこれできちんとダウンロードされているのでしょうか?
よろしくお願いします。。
392:デフォルトの名無しさん
08/09/03 00:14:21
OSはvista
DirectX10.0です
いまいち効果が感じられないので質問するに至りました
393:デフォルトの名無しさん
08/09/03 00:14:51
DirectXってどれ?
ランタイム?SDK?
394:デフォルトの名無しさん
08/09/03 09:19:46
>>390
DirectXの何で読み込んでいるかにもよる
ポリゴンしか読んでないなら
そりゃテクスチャも読まないとダメでしょう
よくあるトラブルは
テクスチャへのパスが間違っていること
一度Xファイルを覗いてみてパスが正しいか確認すべし
395:デフォルトの名無しさん
08/09/04 17:33:09
DirectXとOpenGLで共用できるようなメッシュクラスを作りたいと思っているのですが、
OpenGLのように頂点座標や法線、テクスチャ座標が別々の配列に分かれているデータを
一度に描画する方法はないのでしょうか? どなたか教えて下さい。
396:デフォルトの名無しさん
08/09/04 17:53:30
FVFに直すしかないんじゃね?
397:デフォルトの名無しさん
08/09/04 18:53:35
>>395
このへんが参考になるんじゃね?
URLリンク(marupeke296.com)
398:デフォルトの名無しさん
08/09/04 19:59:01
そんなのあったんだ!
399:デフォルトの名無しさん
08/09/04 20:41:08
スキンメッシュAと普通のメッシュaをそれぞれD3DXLoadMeshHierarchyFromXとD3DXLoadMeshFromX
で読み込ませたところ、なぜかaがAのモーションに引き寄せられるのですが。
解決方法が分かる人はいませんか?
400:399の補足
08/09/04 20:47:16
普通のメッシュを複数読み込んだ場合、最初の一つ以外は普通に描画されます。
401:399
08/09/04 21:16:59
>>399 >>400
すいません。直りました。レンダリングさせる順番を間違えてました。
402:395
08/09/05 08:36:21
>>397
どうもありがとうございます! とても参考になりました。
403:デフォルトの名無しさん
08/09/06 19:28:57
テ゜バイスがなくなったときの処理はなくてもいいの?
404:デフォルトの名無しさん
08/09/06 19:46:37
×テ゜バイス
○デバイス
405:デフォルトの名無しさん
08/09/06 21:58:35
突然、何の前提条件の説明もなく質問する脳味噌の足りない馬鹿って、
どうして発生するんだろう?
406:デフォルトの名無しさん
08/09/06 22:04:21
DirectX以外の事もおおむね初心者だからです
あなたのESP能力が試されているのです
というわけでデバイスロストでググってまたきなさい
407:デフォルトの名無しさん
08/09/07 11:00:33
if(pD3DDevice->present(0,0,0,0)) {
pD3DDevice->Reset(&m_D3DPP);
408:デフォルトの名無しさん
08/09/07 11:33:22
>>407
そんな最低のソース組むやつと仕事は出来ない。
409:デフォルトの名無しさん
08/09/07 11:40:01
>>408
トンマ ドベ アンポンタン ダボ アホ
410:デフォルトの名無しさん
08/09/07 11:47:58
2000ミリ秒って何秒ですか?
411:デフォルトの名無しさん
08/09/07 11:51:59
2秒?
412:デフォルトの名無しさん
08/09/07 12:33:11
>>410
PG辞めろ
413:デフォルトの名無しさん
08/09/07 12:34:06
>>412
トンマ ドベ アンポンタン ダボ アホ
414:デフォルトの名無しさん
08/09/07 12:43:22
>>413
トンマ ドベ アンポンタン ダボ アホ
415:デフォルトの名無しさん
08/09/07 16:46:28
>>414
トンマ ドベ アンポンタン ダボ アホ
416:デフォルトの名無しさん
08/09/07 17:06:00
この流れを何とかしてくれ
無視するわけにはいかない
417:デフォルトの名無しさん
08/09/07 17:07:42
>>41
トンマ ドベ アンポンタン ダボ アホ
418:デフォルトの名無しさん
08/09/07 17:20:20
自演にしては手が込んでるな・・・
ID出ないからって調子乗りすぎ
419:デフォルトの名無しさん
08/09/07 17:21:24
>>418
トンマ ドベ アンポンタン ダボ アホ スケベ ノロマ
420:デフォルトの名無しさん
08/09/07 23:39:23
キーフレームアニメーションの分野に入ったんですけど この分野の概念は重要ですか?
421:デフォルトの名無しさん
08/09/08 00:52:12
>>420
それが重要かどうかは、420が何をしようとしているか分からなければ答えられないんじゃないか?
まずはそれよりも、
>キーフレームアニメーションの分野に入ったんですけど
もうちょっと、自分が言わんとしていることが人に伝わる文章になっているか、それを気にしたほうがいい。
422:デフォルトの名無しさん
08/09/08 19:35:57
コリジョンが簡単にできるPosbiliedクラスって本当に売ってるんですか
423:デフォルトの名無しさん
08/09/08 20:38:25
>>420
そのぐれー理解しとけレベルとして聞いてるならもちろん理解しなきゃダメレベル
っていうかこれ嫌がったらキャラのアニメーション、エフェクトのアニメーションとか
アニメーションまわり全部苦手になるじゃん
理解しろ
424:デフォルトの名無しさん
08/09/09 16:27:56
板ポリに張り付けたテクスチャの透明度を動的に変化させたいのですが
いままではカラー情報無の頂点(座標+テクスチャ座標のみ)をつかって
ピクセルシェーダーで直接テクスチャカラーを
指定したアルファ値で書き換えていたのですが
これを固定機能パイプラインで再現するにはどうしたらよいのでしょうか?
調べた限りでは頂点情報にカラー情報を入れて
そこのアルファ値を使ってブレンドしているようなものは見つけましたが
これだとアルファ値を変化させるたびにLockして書き換えることになるような気がします
なにかさっくりとブレンド比を指定することはできないのでしょうか?
固定機能パイプラインを使ったプログラムほとんどしたことがないのでよろしくお願いします
425:デフォルトの名無しさん
08/09/09 17:16:48
板ポリなんだから、DrawPrimitiveUPを使えばいいんじゃない?
いちいちロックしなくて済むし
426:デフォルトの名無しさん
08/09/09 18:49:08
DrawPrimitiveUPのUPって何の略ですか?
427:デフォルトの名無しさん
08/09/09 18:55:05
ウンポーコ
428:デフォルトの名無しさん
08/09/09 19:04:09
User memory Pointer
429:デフォルトの名無しさん
08/09/09 19:46:21
>>428
THXRY
430:デフォルトの名無しさん
08/09/10 04:52:39
>>424
俺も悩んだ。頂点毎に色を変える必要がなければ、
1.レンダーステートでライトを有効にする。
2.ライト自体は全てOFF。
3.マテリアルカラーのデヒューズあたりをいぢる。
で変わったはず。
ただし、この方法だとなぜか元々頂点カラーの入っているポリゴン(グーローポリゴン)
は変えることができなかった。解決方法は今も模索中。
431:デフォルトの名無しさん
08/09/10 10:33:18
>>430
ありがとうございます
D3DRS_BLENDFACTORにて対応することにしました
432:デフォルトの名無しさん
08/09/10 17:33:59
StreamDataサンプル
URLリンク(msdn.microsoft.com)
が見つからないんですが、どのバージョン落とせば入ってるんでしょうか・・・
February2007を使っています。
どこかでサンプルだけ落とすことって出来るんですか?
あとDirect Sound詳しく解説しているページや書籍があったら教えて頂きたいです。。。
433:デフォルトの名無しさん
08/09/11 22:48:19
drawprimitiveとLPD3DXSPRITE->Drawによる描画を同時に使っているのですが
描画した結果をキャプチャして一枚のテクスチャにするにはどうすればいいですか?
434:デフォルトの名無しさん
08/09/11 22:58:04
テクスチャをターゲットにする
435:デフォルトの名無しさん
08/09/11 23:06:31
スプライトに関連づけられたデバイスがSetRenderTargetでテクスチャ指定すれば
DrawPrimitiveのものだけでなくスプライトもそのテクスチャに描画されるということですか?
436:デフォルトの名無しさん
08/09/11 23:09:45
グダグダ言う前にとっととやれ
437:デフォルトの名無しさん
08/09/11 23:48:51
D3DUSAGE_RENDERTARGETでテクスチャを作成して
・レンダーターゲットに設定して描画
・GetRenderTarget→StretchRectでフレームバッファからコピー
お好きな方をどうぞ
438:デフォルトの名無しさん
08/09/14 17:04:12
DirectInput使ってキー入力してるんですが、ウィンドウを一旦非アクティブにすると、それ以降全てのキーが押された状態になるようです。
どうすれば直るでしょうか・・・
439:デフォルトの名無しさん
08/09/14 17:56:34
協調レベルの設定を見直したら大丈夫になりました。
自己完結です。ご迷惑おかけしました
440:デフォルトの名無しさん
08/09/14 21:24:29
行列計算とか距離計算だけをGPU?にやって欲しいんだけども、どうしたらそこで計算してくれますか?
441:デフォルトの名無しさん
08/09/14 21:42:21
ちょっと立ち止まって
ホントにGPUで計算したほうが結果的にはやくなるのか考えてみよう
442:デフォルトの名無しさん
08/09/14 22:41:23
昔はGPUでやってたよね(´・ω・`)
443:デフォルトの名無しさん
08/09/14 23:53:34
ゲームの場合
どう考えてもCPUの遊んでる時間のほうが長いんじゃね?
444:デフォルトの名無しさん
08/09/14 23:54:32
>>443
何いってるんだ・・・?
445:デフォルトの名無しさん
08/09/15 08:37:45
つかFPU以上に速く処理できる場所ってあるのか?
446:デフォルトの名無しさん
08/09/15 10:10:32
頂点毎に行列計算があるっていうなら止めないけど
あくまでキャラのローカル座標程度ならCPUのほうがいいと思うよ
447:デフォルトの名無しさん
08/09/15 10:42:46
そろそろ破線描画について考えようぜ
448:デフォルトの名無しさん
08/09/15 11:46:16
1軸固定のビルボードで余裕
449:デフォルトの名無しさん
08/09/15 12:50:24
>>445
GPU
450:デフォルトの名無しさん
08/09/16 20:09:45
今まで全然気づかなかったんだけど、Manaded DirextX9のDirectDrawって
もしかしてアルファブレンドに対応してるんですか?
SDK見てたらAlphaSourceConstantプロパティとか見つけたけど
また実装されてないとか・・・かな。
451:デフォルトの名無しさん
08/09/17 12:51:44
よく考えたらこれスプライトのことだな、すまん
452:デフォルトの名無しさん
08/09/19 15:43:38
DirectXをマスターしたいんですがお勧めの本教えてください。
453:デフォルトの名無しさん
08/09/19 15:46:51
その前にマスターの基準を明確にしてください。
454:デフォルトの名無しさん
08/09/19 15:48:00
MikuMikuDanceが作りたいです。
455:デフォルトの名無しさん
08/09/19 18:01:31
つDirectX逆引き500
つGameProgramingGems1~6
つGPUGems
つリアルタイムレンダリング
456:デフォルトの名無しさん
08/09/20 12:08:13
DirectXゲームグラフィックスプログラミングを買ってきました。
457:デフォルトの名無しさん
08/09/20 17:40:28
ウィンドウのクライアント領域サイズのテクスチャと変換済み座標を持つ頂点をつかって、
画面全体に画像を表示しようとすると、微妙にゆがんでしまいます。
これはどういったことが原因として考えられるでしょうか。
458:デフォルトの名無しさん
08/09/20 18:36:45
どうゆがむのかな
459:デフォルトの名無しさん
08/09/20 19:11:48
1ピクセルおきの格子画像を作って表示させると、モワレ見たいになってしまいます
460:デフォルトの名無しさん
08/09/20 19:14:53
ノートパソコンじゃあるまいな
461:デフォルトの名無しさん
08/09/20 19:17:32
普通に画像を表示させたらモワレがでないので、ディスプレイの問題とは思えないのです
462:デフォルトの名無しさん
08/09/20 19:24:20
普通って?
463:デフォルトの名無しさん
08/09/20 19:25:13
すいません、ペイントとかで開くとってことです
464:デフォルトの名無しさん
08/09/20 19:27:41
クライアント領域の大きさはいくつ?
DrawPrimitiveUPとかでやってるのならUVの設定とか頂点位置の設定が怪しいような
465:デフォルトの名無しさん
08/09/20 19:28:17
同じ画面モードで表示してみてダメなのか?違うモードでは?複数のビデオカードでも同じなのか?ドライバのバージョンは?CRTや液晶では?
466:デフォルトの名無しさん
08/09/20 19:42:25
0.5ずらして書いてないとかいうふざけた理由じゃあるまいな
467:デフォルトの名無しさん
08/09/21 12:24:04
いきなり返事がなくなったな
468:デフォルトの名無しさん
08/09/21 22:31:47
どうも困ったことになってしまいましたので、教えてください。
今まで何の問題もなく快適な速度で動いていた3Dベンチや3Dゲームなんですが、
久々に動かしてみると「3D処理系のゲーム全般含めて…」初めのほうはいいんですど、
途中でいきなり60fps前後のものが30~20fpsにまでフレームが落ち込んで処理落ちしています。。。
3年ほど前に購入したFFXIベンチ動作認定済みのハイエンド型のノート型なんですけど、
実際に動かしている3Dゲームはこれよりも遥かに要求スペックの低いものです。
おかしなことに2Dゲームのときもこの症状が出てきます。これって何が原因かと思いますか?
ツールを使って自分でチェックしたけど、もうダメ・・・解らなかったです。。。
ビデヲメモリの容量も問題ないと思うし、バス幅も問題ないと思う。CPU&GPUの性能も問題ないと思います。
メインメモリの一部の領域が壊れたら、こんな症状になるのかな?と、思ってMEMTEST86+にてメモリチェック
を行ってみましたが、エラーもなく正常でした。
他に、ゲーム中にいきなりフレームが2/1にまで落ち込む原因は何が考えられるでしょうか?
教えてくだされば助かります。よろしくお願いします。
----------------------------------------------------------------
原因のパソコン : [DynaBook G8 / 型番:X20PDEW]
OS : WindowsXP SP2 / DirectX 9c
詳細仕様 : URLリンク(dynabook.com)
URL : URLリンク(dynabook.com)
----------------------------------------------------------------
469:デフォルトの名無しさん
08/09/21 22:44:37
で、C/C++と何の関係があるのかをまずは明確に説明しろ。
470:デフォルトの名無しさん
08/09/21 22:46:44
DirectX初心者質問スレ、って言ってもここはプログラム板なんだが…
471:デフォルトの名無しさん
08/09/21 22:49:53
>>468
リカバリーしる!
472:デフォルトの名無しさん
08/09/21 23:01:33
そういうときはOS再インスコでまっさらな状態にするのと簡単に直る。
長年使ってると色々な所でボトルネックが増えてきて新品時とはありえないほどパフォーマンスが落ちる。
473:デフォルトの名無しさん
08/09/22 00:52:58
リカバリーだな
それでも「途中で落ちてくる」場合は放熱系の性能が落ちてるかもしれんね
なら分解して掃除機orサポート逝きだな
474:デフォルトの名無しさん
08/09/22 00:56:10
サポートやってるとそれぐらいのは来るんじゃね?
475:デフォルトの名無しさん
08/09/22 09:54:47
DirectX勉強中なのですがDirectXにはテキストボックスとかは
無いのでしょうか?
全部自前でやるのでしょうか?
476:デフォルトの名無しさん
08/09/22 10:04:49
なんか定期的にその話出るな・・・
やり方は複数ある。もちろん自前でやってもいい
477:デフォルトの名無しさん
08/09/22 13:06:00
ヘタレの俺はダイアログ出してそこにエディットコントロールだがな・・・
478:デフォルトの名無しさん
08/09/22 13:11:07
勉強中ならDXUTでいいんじゃね?
てか、最近のサンプルって全部DXUT使って書いてあるよね
479:デフォルトの名無しさん
08/09/22 13:27:30
凝り性の俺は自前で処理する
どうでもいい部分に凝るのはなかなかに楽しい
進捗に貢献しないのでほどほどにしておかないといけないけれど・・・
480:デフォルトの名無しさん
08/09/22 13:30:37
給料泥棒ですね
481:デフォルトの名無しさん
08/09/22 15:00:38
質問です。
xファイルを読み込んでプログラムでボーンを動かして
アニメーションしたいと考えてますが
ボーンを動かす方法がわかりません
ヒントください...
482:デフォルトの名無しさん
08/09/22 15:39:19
ひどい質問だな
483:デフォルトの名無しさん
08/09/22 16:12:57
単にスキンメッシュがしたいんです。
ってことなのか
頂点シェーダや固定機能パイプラインを使わないで
CPUでボーンを動かしたいんです。
のどっちなんだ?
484:デフォルトの名無しさん
08/09/22 17:55:35
DirectXを使うならbccじゃなくてvc++のほうを使ったほうがいいんでせうか?
485:デフォルトの名無しさん
08/09/22 17:57:03
C++自体もVCの方がいいよ
486:デフォルトの名無しさん
08/09/22 18:41:22
XFile
なんとかAllocaterとか使わず
自前で読み込んでやってみたら意外と簡単で感動した
487:デフォルトの名無しさん
08/09/23 18:02:38
すいません、ここの処理がよく分からないのですが
//--------------------------------------
// 背景を描画
//--------------------------------------
// Z比較を行なう
pD3DDevice->SetRenderState(D3DRS_ZENABLE, TRUE);
// 元画像に合わせてオブジェクトのスケールを変える
if(m_imgInfoBack.Height != 0) {
aspect = (float)m_imgInfoBack.Width / (float)m_imgInfoBack.Height;
}
vScale.x = aspect;
D3DXMatrixScaling(&mScale, vScale.x, vScale.y, vScale.z);
mWorld = mScale;
// ワールド変換マトリックスをパイプラインにセット
pD3DDevice->SetTransform(D3DTS_WORLD, &mWorld);
これだけじゃ質問の意味が分からないかもしれません・・・、申し訳ない
// 元画像に合わせてオブジェクトのスケールを変える の所の処理について説明してもらえませんか
よろしくお願いします
488:デフォルトの名無しさん
08/09/23 18:26:42
正方形状に頂点を配置してるから、元画像の縦横比を保つために変換行列で正方形を横に広げることを指示してる。
489:デフォルトの名無しさん
08/09/23 19:14:07
>>488
ありがとうございます
490:デフォルトの名無しさん
08/09/24 16:13:21
GPUの描画能力を活かして描画ソフト(ポリゴンで二次元的な線や図形を描く)を作りたいのですが、
最終的にレンダリングされた画面をファイルに保存するときはどのような手順を踏めばよいでしょうか?
491:デフォルトの名無しさん
08/09/24 16:24:40
つD3DXSaveTextureToFile
492:490
08/09/24 17:28:10
>>491
ありがとうございました!!
493:デフォルトの名無しさん
08/09/24 18:19:38
最強の入門書は?
494:デフォルトの名無しさん
08/09/24 19:15:33
DirectX以前の質問になってしまうが、教えて欲しい。
直方体や円柱の林の中を一人称視点で移動できるようなプログラムが
組める位までの知識が欲しいんだけどお勧めの書籍とかある?
当方のスキルは算数は困らん程度に出来るが、数学は微妙だ。
プログラムの言語はCとC++は一通り出来る(はず)。
MFC使って自分用のツールを作る程度のことは出来る。
495:デフォルトの名無しさん
08/09/24 20:45:39
URLリンク(sorceryforce.com)
こんなわかりやすいサイトないですか?
496:デフォルトの名無しさん
08/09/24 22:49:58
キーボード、マウス、ゲームコントローラーとして認識されていない機器をDirectInputで扱うことはできますか?
トランジスタ技術8月号についてきた78k0マイコンにスイッチを付けてコントローラーの様にしようと思ったのですが、
パソコンには仮想comポートとして認識されているため途方に暮れてます。
497:デフォルトの名無しさん
08/09/25 09:55:44
ドライバ書くのがいいかも。
って署名なしは入れにくいか
498:デフォルトの名無しさん
08/09/25 11:39:02
>>494
三角関数、ベクトル、行列あたりの知識は絶対必要。
499:デフォルトの名無しさん
08/09/25 11:46:47
>>494 程度なら行列は使い方だけ分かれば数学的な知識なくても何とかなるけどな