1 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 22:55:11 ] ※回答する人も、質問する人も必ず読んでください これらに当てはまる人のための質問スレです。 1.C/C++は多少理解している。 2.最近DirectXを始めたばかり 3.SDKを見ても、Googleで検索しても、いまいち理解できない人 4.余計な雑談は不要ですよ 【 回答してくださる方 】 ・ できるだけ優しく質問に答えてあげてください。 ・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。 「ググれ」「SDK見れ」以外の回答でおながいします。 ・ 神ですら理解不能な質問は無視して下さい。 【 質問する方 】 ・ どんな事で躓いているのか明確にしよう。 ・ 長くならないなら躓いている部分のコードを晒してみれ。 ・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。 ・ 回答して貰ったら、出来るだけお礼もしよう。 【C++】 DirectX初心者質問スレ Part18 【C】 pc11.2ch.net/test/read.cgi/tech/1216270204/
199 名前:デフォルトの名無しさん [2008/11/02(日) 17:57:21 ] 所詮はCOM 秒間何百回も呼ぶように作られちゃいねーのよん
200 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 19:09:27 ] COMを一秒間にたった数百回呼び出したところで、それがシステム全体にどんな影響を与えると? 頭が悪いにも程がある。
201 名前:デフォルトの名無しさん [2008/11/03(月) 00:01:33 ] おまいらはこの本から勉強しなおすべきだな。 ttp://image.excite.co.jp/feed/news/Excite/bit/2008/E1225123817444_1_s.jpg
202 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 02:50:42 ] >>189 まったくだな しかも、一発で描くようにしたらシェーダをアフォかってほど書かなきゃならない もはや人間がやってられる量を完全に超えてる もう俺なんかあきらめて2度塗り3度塗り上等だよ ディフューズやスペキュラ、ライト1個目、2個目・・・ DrawPrimitiveなんて呼びまくってナンボだろ
203 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 08:04:53 ] >>201 ドイツ人はこんな教科書で日本語を勉強してるのか・・・・orz
204 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 09:56:48 ] >>199 >>200 DrawPrimitiveが重いのはCOM云々じゃなくて 中でGPUコマンドの生成を行なってるからだぞ・・・。 この辺はMSやnVIDIAの技術者からも情報がいろいろ出てるだろ。
205 名前:デフォルトの名無しさん [2008/11/03(月) 10:43:14 ] 流れを切ってしまうが・・・ みんなはDXUTとか使ってる?
206 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 10:52:51 ] 使ってない。 DirectXも使ってない。 ていうかプログラム作ってない。
207 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 11:06:59 ] 使っていない。 その程度自前で作れる程度でないと、そもそも何も出来ない。
208 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 11:24:14 ] 使ってる 楽できるとこは楽しないと 自己満足のために納期は待ってくれないし
209 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 11:30:33 ] 仕事で使ってる人がなぜ初心者スレに・・
210 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 11:35:47 ] まだ初心者だけどGUI機能だけ使おうかと思ってる
211 名前:デフォルトの名無しさん [2008/11/03(月) 11:55:18 ] ゲームクリエイターズバイブル に自分しか信じない病って書いてあったなー
212 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 13:40:41 ] D3DX系の高レベルAPIは信用出来ないぞ。 バグがあってもいつ直るか分からないは、勝手に仕様を変更されるは、 そんな物を使っている奴は気が狂っているとしか思えない。
213 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 13:47:01 ] あれはラッパライブラリと同列に扱うものであって基盤になるAPIじゃない
214 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 15:37:16 ] ID3DXFont::GetDC()で取得したHDCって使い終わったらどうすればいいんでしょうか? Win32Apiで解放した方が委員でしょうか?ID3DXFont::ReleaseDC()が見当たらないので
215 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 15:53:11 ] >>214 pc11.2ch.net/test/read.cgi/tech/1224745158/405-407
216 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 16:37:01 ] えーと、その405は自分です。元の戻すのはいいんですが、解放はどうするのかなぁ、と思ったもので・・・
217 名前:デフォルトの名無しさん [2008/11/03(月) 17:09:00 ] Fontは遅いから使うなとかなんとか…
218 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 18:11:12 ] そもそもGetDCで何がしたいんだろう? あまり安全じゃないから使わないほうが良いという話だが 一度削除されて、いつのまにか復活してる
219 名前:デフォルトの名無しさん [2008/11/03(月) 18:21:35 ] ID3DXFont::GetGlyphDataは使ってる
220 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 19:21:51 ] まぁ、多少遅くてもいいかなと思って使ってます。 >>218 危険性についてググッても出なかったんですが、何が危ないんでしょう?
221 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 19:35:55 ] >>220 アルファチャンネル
222 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 19:41:28 ] LPD3DXFONT::Release て無くなったの? 前はなかったっけ?
223 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 20:21:08 ] >>222 COMだからQueryInterface, AddRef, Releaseは必ず存在する。
224 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 20:27:44 ] あぁゴメンReleaseDCか
225 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 21:06:16 ] 冗談かと思ってたら本当にDirect2Dとかでるのな channel9.msdn.com/pdc2008/PC18/
226 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 21:16:57 ] また海のものとも山のものともつかぬようなAPIが増えるのか
227 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 21:27:39 ] >>221 今回はコンパチの作成とフォントハンドルの取得にしか使ってないんですが・・・ 分からないっちゃ分からないですよね。安全かどうかは・・・ でも、それはさておきID3DXFont::GetDCで取得したHDCはリリースすべきなのか、どうするのか 分かる人いないですか?
228 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 21:32:08 ] 正直いまさら2D機能なんて作られてもいらねぇだろ・・・
229 名前:デフォルトの名無しさん [2008/11/03(月) 21:38:07 ] 日本は2D
230 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 21:56:58 ] >>227 普通にリリースすればいいんじゃね? msdn.microsoft.com/en-us/library/bb173963 (VS.85).aspx 特になにも書いてないね
231 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 21:59:41 ] ぶっちゃけた話DirectWriteの為だけに用意された気がしないでもない
232 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 22:03:29 ] エロゲなんざDirectDrawかGDIでつくりゃーいい。 いまどき同人ですらDirect3Dでゲームつくってるっつーのに
233 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 22:04:47 ] さすがに今GDIはないわ
234 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 22:13:10 ] 3Dゲームだってアイコンやらゲージやらマップやら2D表示部分はいくらでもあるだろ
235 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 22:19:47 ] 3DゲームならそういうのはなおさらDirect3Dで描くだろ。
236 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 22:22:42 ] Direct3Dの上に実装されるらしいから問題ないだろ
237 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 22:25:53 ] Direct2Dの中身も分からないのに何を言っているのやら Direct3Dでやるより楽なら使えばいいし面倒なら使わなきゃいいだけの話だろ 新しい物を試しもしないうちから否定してもプログラマとして成長しないぜ
238 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 22:42:10 ] やる前にある程度のことは分かれよ、大人なら(笑)
239 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 23:19:24 ] >>238 憶測で分かったつもりになるのが大人というなら 大人になんかなりたくないと、ぼくはおもいます
240 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 23:20:33 ] どうでもいい機能が追加されることなんてよくあるだろ そんなのどうでもいいと思う事すらどうでもいいだろうに
241 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 23:23:32 ] それだけ要望が多かったんだろ。 その程度の実装すら自分で出来ない馬鹿の。
242 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 23:57:07 ] DirectDrawの焼き直し。DD扱いにくかったからな・・・。
243 名前:デフォルトの名無しさん mailto:sage [2008/11/04(火) 00:19:35 ] 動画やってる人にも需要ないかな?
244 名前:デフォルトの名無しさん mailto:sage [2008/11/04(火) 01:08:51 ] >>230 ::ReleaseDC()で開放しろって意味ですよね? HDCはいいけど、HWND引っ張ってくるのめんどいズェ・・・ID3DXFontから引っ張れるけど・・・ 解放しなくていい気がしてきた。怖いなぁ。 よし放置しよう!
245 名前:デフォルトの名無しさん mailto:sage [2008/11/04(火) 05:31:41 ] DirectShowは糞
246 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 08:40:37 ] DirectX9 とC++で DirectX Graphicsを2Dについても濃厚に解説している お勧めの書籍があれば教えてください。
247 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 12:45:16 ] その質問は何度もでていますが 残念ながらそのような本は存在しませんので 直接本屋に足を運んで 自分のレベルにあっていると思われる本をお選びください ある程度慣れてくると その本に何が足りなくて、自分が何を必要としているのかがわかってくるので そのとき改めて別の本を買うなりネットを検索するなりしたほうが良いと思われます
248 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 14:37:52 ] ネットで十分ですよ
249 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 14:40:17 ] 本を片っ端から買う金がないならネットでコツコツと探せ わかんない人にとっては無駄じゃないから
250 名前:デフォルトの名無しさん [2008/11/05(水) 19:42:41 ] IDirect3DDevice9::CreateStateBlock でググって絶望するわけですな。
251 名前:デフォルトの名無しさん [2008/11/05(水) 19:50:23 ] ちゃんとMSDNがヒットするぞ
252 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 23:34:35 ] 250みたいな馬鹿はググリ方すら分からないから、 インターネッツの使い方の本なら買う価値があるかもね
253 名前:デフォルトの名無しさん [2008/11/06(木) 00:03:00 ] なんでここの連中って高圧的なの?
254 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 00:13:38 ] ストレス溜まってるからだろ
255 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 00:57:55 ] >>246 じゃないが DrectDrawに相当するものについて説明してるところないだろうか 3Dの解説してるところは山ほどあるけど 2Dになると「もうなくなったからあきらめてね」みなたいな流れなのが悲しい とりあえず画面に線を引くくらいでいいから取っ掛かりがほしい
256 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 01:41:06 ] 画面に三角形を書く、その三角形にテクスチャを張るぐらいの説明はどこでもやってる気が
257 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 01:42:45 ] よくある3Dの解説サイトでも、最初は画面にポリゴン一枚から、とかじゃない? そのポリゴン一枚を2Dの絵と見立てれば解決のような。それじゃ嫌なのかな?
258 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 01:44:51 ] 3Dができれば2Dなんて軸が1本減っただけだろう >>255 D3DPT_LINELISTかD3DPT_LINESTRIPで引けば
259 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 01:49:54 ] >>255 DirectDrawには、画面に線を引くなんて機能すらないよ。 あるのは画像のブロック転送だけ。 線を引きたかったら、1ピクセルずつ自分で描かないとダメ。 あと、あらゆるピクセルフォーマットに対応できる仕様になっているから、 物凄く面倒だよ。フォーマットの変換はやってくれないから、全部自分で 読み込み時に変換しないとダメ。 最近のDirect3Dで2Dだけを扱うよりも数倍面倒。 デバイスの初期化だけで100行くらいのコードになるし。
260 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 01:50:16 ] そこまでやる気ないのだとしたら ゲームライブラリとか公開してる人がいるからそういうのを使う方がいいかも
261 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 07:51:25 ] >>255 モニターの設定を取得してそのカラー設定に応じて自分で点を打っていく RGB888( )とかRGB565( )みたいなマクロ作っとくといいよ
262 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 10:02:55 ] 線を引きたいなら1ドットのビットマップを引き伸ばして回転させて線にするとか
263 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 13:15:43 ] >>262 DirectDrawに回転ないってw
264 名前:デフォルトの名無しさん [2008/11/06(木) 13:51:53 ] ttp://www.microsoft.com/downloads/details.aspx?FamilyID=5493f76a-6d37-478d-ba17-28b1cca4865a&DisplayLang=en DirectX Software Development (November 2008) ttp://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en DirectX End-User Runtime Web Installer
265 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 13:52:38 ] >DrectDrawに相当するもの って書いてあるからDDじゃないと思ってた
266 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 14:06:04 ] >>255 の言いたい事は、2Dグラフィクを扱う方法と考えるべきだな。 頭の悪い奴は、DirectDrawでできることというお馬鹿な解釈をする。 >>259 や>>263 のようにね。
267 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 15:42:03 ] DirectDrawで線を引く機能があっても意味ねー。 ゲームの画面が線で描かれることは無い。 すべて絵だし。ビットマップだし。
268 名前:デフォルトの名無しさん [2008/11/06(木) 15:45:37 ] まー解説サイトも板ポリゴン作って拡大回転テクスチャをごにょごにょのレベルまでだけどな DrawPrimitiveの削減とか考えると本買うしかない
269 名前:デフォルトの名無しさん [2008/11/06(木) 16:00:25 ] 2Dでそこまでしなくても
270 名前:デフォルトの名無しさん [2008/11/06(木) 16:55:05 ] 最新のDirectXがどうしてもインストールできません。 何度やっても「ファイルをダウンロードできませんでした。 後でもう一度実行するか、ネットワーク接続を確認してください」 というダイアログが出ます。 どういった原因なのか分かる方いらっしゃいますでしょうか・・・?
271 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 16:58:39 ] ブラウザ変えてやってみるとか。 うちでも一定バイト数以上にならなくて別ブラウザにしたら一発だった。
272 名前:デフォルトの名無しさん [2008/11/06(木) 17:04:46 ] VC++で説明している本の内容をC#で実装するのって手間かかりますか?
273 名前:デフォルトの名無しさん [2008/11/06(木) 17:17:09 ] SlimDX使えば
274 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 17:22:42 ] 最初はオープンソースのライブラリを使ってゲームを作る そしてライブラリの中身を見ながら自分風のライブラリに置き換えていく。 俺はこうやってWinAPIとDirectXを習得した。 まぁDirectX7+ELの時代なんですけどね。 今だとオープンソースで使えるライブラリつったらDXライブラリかな?
275 名前:デフォルトの名無しさん [2008/11/06(木) 17:36:29 ] 自分で書いたほうが早い
276 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 17:42:07 ] Direct Graphics だとか Audio なんかはフリーのライブラリを見て勉強できますが、 ゲームオブジェクトの管理とか設計がままなりません。 オブジェクト指向本とか勉強するべき?
277 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 18:46:03 ] >Direct Graphics そんな物は存在しない
278 名前:デフォルトの名無しさん [2008/11/06(木) 18:47:46 ] >>271 >>270 へのレスでしょうか? そうでしたら、違うブラウザーでも駄目でした。 同じような現象が現れた人はいないでしょうかね・・・。
279 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 19:41:24 ] ウイルス対策ソフトをアンインストールしてから出直せ
280 名前:デフォルトの名無しさん [2008/11/06(木) 23:20:18 ] はじめまして Visual C++ 2008でdirectXをやろうとしてるのですが コンパイルできません。 次のようなエラーが表示されてしまいます。 1>MSVCRTD.lib(crtexe.obj) : error LNK2019: 未解決の外部シンボル _main が関数 ___tmainCRTStartup で参照されました。 1>C:\Users\takuya\Documents\Visual Studio 2008\Projects\AAA\Debug\AAA.exe : fatal error LNK1120: 外部参照 1 が未解決です SDKはインストールしましたし、ソースはコピペなので完璧なはずです。 何がいけないのでしょうか?
281 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 23:23:36 ] Win32アプリケーションじゃなくてWin32コンソールアプリケーションとしてプロジェクトを作成してる。 DirectXと関係ねー話だからよく分らんかったらVSのスレにでも池
282 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 11:35:23 ] シェーダで隣のテクセルなどを参照する方法ってありますか?
283 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 12:09:20 ] in float2 inTexture : TEXCOORD0, // [入力] テクスチャ座標 // 中心点と隣接する4点をサンプリング float4 t0, ti, t2, t3, t4 ; t0 = tex2D(TexSampler, inTexture), t1 = tex2D(TexSampler, inTexture+float2( -1.0f/TEX_SIZE_X, 0)), t2 = tex2D(TexSampler, inTexture+float2( 1.0f/TEX_SIZE_X, 0)), t3 = tex2D(TexSampler, inTexture+float2( 0, -1.0f/TEX_SIZE_Y)), t4 = tex2D(TexSampler, inTexture+float2( 0, 1.0f/TEX_SIZE_Y)) ; ただし、テクスチャのサイズTEX_SIZE_X, TEX_SIZE_Yは既にわかっていて 外部から与えられるものとする
284 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 12:40:54 ] シェーダで1.0f/TEX_SIZE_Xを計算させると精度で泣くよ。 TEX_SIZE_Xを与えるついでに逆数も与えた方がいい。
285 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 12:48:52 ] >>283 なるほど、ありがとうございます。 自分がtex2Dについてよく理解していなかったようです。すいません。
286 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 13:34:15 ] 逆数を与えるとは?
287 名前:デフォルトの名無しさん [2008/11/07(金) 14:45:15 ] 質問させていただきます。 DirectXをつかってC++でゲームを作る場合、オブジェクト指向でClassを作るというやり方は一般的ではないのでしょうか。 ちょっとしたゲームの入門書を読んでみても、Classは出てきておらず、疑問に思いました。 Javaでコードを書いていた期間が長く、Class 自分、Class 敵 、とクラスを作っていこうと考えていたのですが処理が遅くなるなどのデメリットが生じるでしょうか?
288 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 15:00:11 ] 今時クラスを使わない方が少数派だよ。仕事ならなおさらね。 その程度のリスクを気にするような時代じゃない まあ全てをクラスで管理しなくてもいいわけだし、上位はクラスで管理して 下位を入門書のコピペでやるというのもありか
289 名前:デフォルトの名無しさん [2008/11/07(金) 15:06:54 ] 現場ではまず使わないね。 まあ趣味なら好きにすれ
290 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 15:09:06 ] どこの現場だよ^^; Cだけで組んでるなんて10年前ぐらいの話だぞ
291 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 15:13:15 ] リスク?コスト?
292 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 15:18:47 ] 公開されてるToHeart2のソースだとCだけで組んでるっぽいな あそこのプログラマは知識なさそうだから参考になるか知らんがw DirectXで仕事した事はないけど、家庭用ゲームの開発ではクラス使ってる
293 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 15:30:04 ] 少人数の開発だとプログラマー1人で全部やるようになるからその人次第じゃね
294 名前:デフォルトの名無しさん [2008/11/07(金) 15:43:05 ] クラスでやっても実行速度はかわらんだろ
295 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 15:44:10 ] まあ共同制作の場合はクラス作る方が都合がいいやね ちゃんとオブジェクト指向と言える物になってればの話だが グローバル変数が各ソースで呼ばれるようになるとバグ修正が困難になる
296 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 15:49:37 ] >>294 それは組み方次第じゃね 少なくともクラス自体のnewとdeleteの手間はあるわけだし 全く変らないとは言い切れないが、別に気にするような事じゃない
297 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 16:12:26 ] 俺は、一つのcppファイルをクラスと見立ててコード書いてる。だからクラス自体は使ってない。 まぁあくまでも趣味だから俺は
298 名前:デフォルトの名無しさん [2008/11/07(金) 16:44:25 ] 仮想関数って致命的なオーバーヘットもあるしな
299 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 16:59:02 ] classでも何でもとりあえずデバッグしやすい構造でがしがし組んで行って、 最後速度が本当に気になるなら実装をいじればいい
300 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 17:40:25 ] オーバーヘッドがどうこう言う>>298 みたいな奴は、 それこそ致命的に頭が弱い。 中身が空っぽに近いメソッドをぐるぐる呼び出して、 ベンチマークをとったと勘違いしているんだろうが、 実際に目的があって組まれたプログラムの仮想関数を、 別の方法に置き換えたところで、1FPSすら速度の向上に貢献しない。
301 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 18:00:18 ] >>300 なんで頭が弱いとか人を馬鹿にするような書き込みをわざわざすんの? おまえに限らずこのスレはくだらない自尊心を満たすために汚い言葉つかうやつが多くて困る
302 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 18:35:48 ] どのスレでも馬鹿は馬鹿にされるでござりまするよ
303 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 18:37:14 ] 2ちゃんなんてこんなもん それが嫌なら綺麗な掲示板に行こう
304 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 18:39:32 ] 言語仕様のどうでもいい一部にこだわるよりも、 いらん処理を省いたり、目立たない部分を簡略化したりする事に時間を割いた方が、 よっぽど全体のパフォーマンスが上がる。
305 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 19:59:41 ] Windows + DirectX + C++ で開発する場合、DirectXの前にWindowsプロシージャの ラップやらMFCやらを説明しないとならない。 DirectX入門という触れ込みなのに中々絵のでない解説が延々続くと読者の興味が持たないし、 前書きに「最低限C++とWindowsプログラムの知識が必要です」とかだと対象が狭まってしまう。 多分、著者側のそんな苦悩があるのでは。
306 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 20:01:23 ] いまどき仮想関数のオーバーヘッドとか・・・ 危うくつられるところだったぜ・・・・・・。 いまどきクラスなしでゲーム開発なんて携帯機くらいじゃねーの? new/deleteでオーバーヘッドっつーならmalloc/freeはノーコストなのかと。
307 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 20:08:24 ] DSの開発はC++ですぜ
308 名前:デフォルトの名無しさん [2008/11/07(金) 23:15:22 ] すんません質問させらくだ際 ゲーム中の画像の描画にアルファ適用したくて 元画像から一個一個DDS作ってるんだが正直免土井 そんで、元画像とアルファ情報入ったグレースケールの画像を一度に二つ読み込んで DDSとかをいちいちつくらずアルファを実装してるゲームとかたまに見るんだけど あれはどうやったらできるの?
309 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 23:22:28 ] 目的のサイズのテクスチャ作って、直接ARGB値を書き込むんじゃないの?
310 名前:デフォルトの名無しさん [2008/11/07(金) 23:31:09 ] >>309 ぐぐってみたらそれらしいのが出てきたんで試してみます thxでした
311 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 23:36:16 ] 元からPNGとかでα込みのデータ作ればいいのに。 あくまでもマスク画像と合成してDDS作りたいなら、自分でバッチ処理する プログラムでも書けばいいかと。DDSでの保存はD3DXで簡単にできる。
312 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 23:36:23 ] つか、どっちにしろ何らかの アルファチャンネル付きフォーマットを用意することには変わらないんじゃ
313 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 23:38:25 ] 最初からグラフィックソフトでDDS作る方が数倍簡単だろ・・・ αとカラーを別々の画像で扱う方がメンドイしキャッシュにもやさしくない
314 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 23:42:49 ] 普通にマルチテクスチャしてるんじゃまいか?
315 名前:sage [2008/11/07(金) 23:44:53 ] >>311-313 割と多く画像を扱うからDDSへの変換が結構手間だったり ファイルが増えて煩雑な感じになったりだったんで ファイル二つですめばいいなあと思いやってみてたんだが あんまりよろしくはなかったのか…
316 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 00:55:32 ] Photoshopでバッチ変換とかすりゃいいだけだろう。 nVIDIAのプラグインでミップマップとか圧縮とかも全部出来るし。 って流石にPhotoshopはかえねーよって人のために コマンドラインツールがDriectXのSDKん中に入ってたりする。
317 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 03:54:15 ] うちの社内ツールがBMPしか読めませんとか、RGBとAが別でないと読めませんとかだったお。 面倒すぎて自分でPSD→社内形式のツール作ったw
318 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 04:32:11 ] どこの社内ですか?
319 名前:デフォルトの名無しさん [2008/11/08(土) 05:23:00 ] ttp://www.microsoft.com/downloads/details.aspx?FamilyID=886acb56-c91a-4a8e-8bb8-9f20f1244a8e&DisplayLang=en DirectX End-User Runtimes (November 2008)
320 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 13:23:54 ] 乗り遅れたが・・・ 趣味→クラス使っても使わなくても 仕事→クラスを使わないとえらいことになりそう しかし上でも言われてるように、使うのと使わないのでは差が出ると行ってもほんのちょっとだろう。 俺もCで組んだことあるが違いが実感できなかった
321 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 13:29:04 ] そもそも仮想関数ってただの関数テーブル化されるだけだろ。 インライン展開しないような大きさなの関数なら差なんて無いだろ。
322 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 13:29:35 ] 素人乙
323 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 13:38:37 ] そういうのを気にするのは まともにゲームも作ったことのない ライブラリ厨だけだってばっちゃが言ってた
324 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 13:41:32 ] うちのじっちゃも言ってた てことはまさか
325 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 13:42:51 ] じっちゃやばっちゃの世代なら仮装関数を噛ますことのオーバーヘッドなんて許容しがたくて当然じゃねw
326 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 14:03:51 ] 言語論争は絶対に決着がつかないのでここまでで
327 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 14:19:11 ] どう考えても一定以上の規模のものを作るならC++必須なんだし、 速度がそんなに気になるなら全部アセンブラで書いたら?
328 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 14:35:33 ] 今はコンパイラが利口すぎて PGが最適化しなくてもそれなりに動くし 初心者スレだからそれでいいと思うんだが あと論議するならDirectXのスレじゃなく C++のスレでやってくれ
329 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 14:41:11 ] 仮想関数のテーブル参照のコストを気にするのなら、 仮想メモリのアドレス変換のコストなんか失禁ものだぞ。 そういう奴は素直にDOSでも使ってろ。
330 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 14:45:42 ] そんな事よりDrawPrimitiveの呼び出し回数を減らせよと
331 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 14:47:50 ] 1時間に1回しか呼ばない俺は関係ないな
332 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 14:54:52 ] 行列の乗算のコスト考えたら関数呼び出しなんて失笑ものだよな
333 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 15:00:45 ] 今のCPU速いしな オンボ+速いCPUの組み合わせのPCはあっても ちゃんとしたビデオカード+遅いCPUの組み合わせはありえんし 作りやすいように作るのがいいと思うぞ
334 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 16:27:26 ] DrawPrimitiveの回数云々よりも、いらないキャラクターの描画を削ったり、 遠くのオブジェクトのポリゴン数を減らすようなシステム改善の方が、 よっぽど全体の速度向上に繋がる。
335 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 16:33:11 ] >>334 それを含めてDrawPrimitiveの回数を減らす努力だろ・・・
336 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 16:38:36 ] 後出しご苦労様。 DrawPrimitive限定と、他の命令も大幅に削減出来るかどうかの差は天と地ほどある。
337 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 17:02:58 ] DrawPrimitiveだけを限定して減らす事なんて出来ない。 最低でも対になるSetRenderStateやSetTextureは減る。
338 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 17:42:27 ] 速度のネックになるのは描画、アニメーション処理全てだよ その中にDrawPrimitiveの回数というのも当然含まれる クラスを使う使わないとか、その他もろもろの処理の重さなんて 描画やアニメーションに比べれれば0に等しい
339 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 18:03:38 ] ゆとりらしいレスだな。 PIの値に3とか使ってそうw それぐらいの誤差は0に等しいとか言ってw
340 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 18:15:11 ] ほほう、それじゃ比較してどれほどのものになるというのかね?
341 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 18:17:33 ] 特定の内容にこだわって遅いだのこうしろだの言い出す人間が、 いかに木を見て森を見ない奴だかよく分かる。
342 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 18:19:52 ] おまえらそんなことはいいからゲーム完成させろよ
343 名前:デフォルトの名無しさん [2008/11/08(土) 23:31:26 ] C++使ったらオブジェクト指向で分かりやすくなると思ったら間違いなんだよC++で分かりやすいソースが書けるやつはCでも分かりやすいプログラムが書ける表面的なことばかり追求する姿勢を改め機械語からやり直すことが近道だ
344 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 00:45:48 ] 機械語とか中途半端なんだよ、アセンブリか、回路そのものにしろ >>C++使ったらオブジェクト指向で分かりやすくなると思ったら間違いなんだよC++で分かりやすいソースが書けるやつはCでも分かりやすいプログラムが書ける 禿同
345 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 00:50:18 ] >機械語からやり直すことが近道だ そんなことをいったら半導体の設計からさらにその前にさかのぼっていくことになるぞ。 なんでそんなに頭が悪いんだ? それこそ猿からやり直せ。
346 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 00:57:35 ] 同じだったらより低コストで開発できるC++を選ぶのが一番の早道になるわけだが なにがなんでもC言語を使うための方法を考えてるくらいなら さっさとC++で実装してしまったほうが良い場合もあるし 環境によってはC言語だけで組んだほうがベストの場合もあるだろう 言語はあくまで手段であって目的と取り違えてはいけない 同じではなくそれぞれのメリットとデメリットを理解して使い分けるべき
347 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 01:04:32 ] 最低でもクラスとSTL相当の機能は使えないとやってられないけどな・・・。 2,3人で1年程度で完成するようなゲームならCオンリーでも別にかまわんけど。
348 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 01:33:18 ] ゲーム本体、グラフィックツール等→C++ データコンバーター等→Cで適当に だな
349 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 02:11:28 ] おまえらCとかC++とか言うまえに スレタイ読めるようにしてこいよ?
350 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 10:06:28 ] >>348 モノによって言語仕様を変えていたら、コードの再利用がしにくくなって、生産性が落ちるだろ。 なんでそんなにどうしようもない思考しか出来ないほど間抜けなの?
351 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 10:17:04 ] 常に再利用できる環境にいるなら 再利用しやすい言語を使えってことだろ? 組み込みとかアミューズメントとか再利用ってなんですか? って世界もあるわけで
352 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 10:20:51 ] 本体⇒C++ ツール類⇒C# & C++/CLI が鉄板だな。
353 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 10:32:20 ] >>351 DirectXスレで組み込みを語り出す馬鹿って何なの?
354 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 10:37:30 ] >>350 あるねー ツールをVBなんかで作られると 出来たデータの読み込みルーチンを違う言語で2つ作らなきゃいけなくなってすげー面倒だよね ちょwおまwなんでVBなんかで作ったの? って感じだった 後、エクセルに埋め込んであるVBA てめーは比較ツールで差分すらみえねーから逝っていいぞw
355 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 11:11:51 ] >>350 構造体のフォーマットはそのままでいいんだからCだろうがC++だろうが同じことだろ 君はデータコンバーター自体にゲーム本体での読み込みコードまで書き込むわけ? だいたい、C++を使うという事はCのコードでも再利用できるということだよ。 なんでそんなにどうしようもない思考しか出来ないほど間抜けなの?
356 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 11:24:27 ] >>350 、>>354 は適材適所という言葉を知らんのだろう。 それとも、ひとつの言語しか使えないのか・
357 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 11:28:14 ] 自作のクラスライブラリとかつかわんのか。
358 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 11:35:26 ] >>356 うーん、でもC++で扱うデータをVBやらスクリプト言語やらで作るなよとは思う その上データのバイナリイメージの詳細をきちんと示さない奴は氏ねよと ただ、エクセルVBAはないと仕事にならない事も多い パラメーターなんかのデータ入力は基本エクセルでやるからな 自分で使うだけなら全て自作のスクリプトでいいけれど 俺の場合はエクセルVBAからCのツール呼び出すけど
359 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 11:46:46 ] 脱線しすぎだなw DirectXの話に戻ろうぜ
360 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 12:08:29 ] 周辺ツールなんか Excelでデータ管理したり PerlやPythonやC#でさらっと作成してるのが普通だと思ってた秋
361 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 12:37:13 ] C#(笑)
362 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 12:51:13 ] >>355 >だいたい、C++を使うという事はCのコードでも再利用できるということだよ。 >なんでそんなにどうしようもない思考しか出来ないほど間抜けなの? C++からCの場合は対応させるために大幅な修正が必用。 CをC++側のコーディングスタイルに合わせるためにラッパーの追加。 そんな無駄な作業をしてまで >データコンバーター等 をCに限定する意味が不明。 余計なコードが増えた分だけテストのチェック項目が増えるというのに、どれだけ頭が悪いの?
363 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 12:51:22 ] 今だったらツールはC#が当たり前かと思ってた。 未だにWin32でGUIとか作ってるところあんのかね。
364 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 13:10:10 ] >>362 あのさ、 読み込みルーチンわざわざ別の言語で2回作らなきゃいけないのに これでチェックを少なくできるとおもってんの? しかも読み込みルーチンだけならいいけど C++でこさえてあるほかの関数まで必要になっても全部別の言語で 書き直さなきゃならないじゃない? みるからに手間がハンパねぇよ ちょっとしたもんだって嫌だよ だいたいそんなにその言語強力かよ ちょっとした手間惜しんでっていうか自分がさわってみたかっただけの 言語を会社で使うんじゃねーよ 絶対お前使えねぇって
365 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 13:12:20 ] >>363 .NetFrameworkさえ使えりゃいいんじゃねぇの?
366 名前:デフォルトの名無しさん [2008/11/09(日) 13:46:04 ] まーた生産性厨か
367 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 13:50:30 ] >>362 >C++からCの場合 どこにもそんな事を書いた覚えはないんだが? よっぽど馬鹿な事をしていない限りはそのような無駄な作業は 一切発生しないから心配しなくても大丈夫だよ。 よくわからんが、君が作るとなぜか余計なコードとやらが 無駄に増えてしまうのかもしれないね。
368 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 13:52:49 ] てか、>>362 =364なん? 誰にレスしてんの?意味不明なんだが。
369 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 14:01:02 ] 確かに、アンカー番号すら間違う>>364 のような頭の悪い子には 複数言語を扱うのは無理かもね 他言語を覚える程度のちょっとした手間を惜しむような怠惰な子は 仕事じゃ使えねぇって
370 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 14:17:26 ] 言語なんて時代が流れるにつれて移り変わっていくものなんだから好きなの使えばいいんだよ C++しかやってなくて他言語を使えないんだったらちょっとしたツールでもC++で作ればいいだろうさ でも別言語だろうと苦もなく使えるぐらいの柔軟性がなければプロとしては失格
371 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 14:21:04 ] 会社とかプロとか一人で何言ってんだろ。 ストレスですね。わかります。 早死にしてください。
372 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 14:22:42 ] そうだな。ここは初心者の素人が集まるスレだからプロも会社も関係ないんだ。
373 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 14:26:08 ] ところでここしばらくDirectXのDの字も見てない気がするんだが
374 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 14:30:55 ] 質問です。DirectXでのおっぱいのリアルな揺らし方を教えてください。お願いします
375 名前:デフォルトの名無しさん [2008/11/09(日) 15:02:58 ] あ泉風呂でDirectX呼べるの?
376 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 15:31:24 ] >>374 解剖学を勉強汁。 モーションだけなら乳限定で開発していた日本のベンダーがあった気がする・・・
377 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 15:33:13 ] >>374 まずは>>374 自身が「おっぱいのリアルな揺れ方」を勉強してくるんだ。 エロゲーの2次アニメや3DCGではなく、本物の。 DirectXの出番はその後。
378 名前:デフォルトの名無しさん [2008/11/09(日) 15:39:14 ] 今まで: 単純な運動をそれぞれ担当する下請けがいくつかあって どれを組み合わせるか決める元請けみたいなのがまた別の場所にある 今: 同じ場所に高速担当と低速担当がいて これらが適当に組み合わせとかを変えることで 柔軟な運動ができる ってことか?
379 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 18:03:34 ] XP+VC2008EEで DirectX9のプログラムを開発しているのですが SDKは最新版(2008 Nov)を入れた方が良いのでしょうか? DX10/11は開発できないのでぶっちゃけて古めのSDK(2008 Mar)でもいいのかなと・・。
380 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 18:15:35 ] 自分で判断できない馬鹿は何使っても同じ。
381 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 18:41:09 ] たぶん、またくだらない質問しにくることになるから 2007 August にしとけ
382 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 20:15:44 ] Windows98対応も考えてOctober 2006をお勧め リリースノートをみるとその後のバージョンでは98に対応してないらしい
383 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 20:25:37 ] 2006じゃなくて2004じゃね? ってかWindowsXPより前のOSなんてサポートしても仕方ないと思うけど・・・
384 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 20:26:51 ] だれも対応を望んでいるなんて言っていないのに、 とっくにサポートが切れたセキュリティリスクの塊なOSを 話に持ってくるのは、頭がおかしいから?
385 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 20:35:03 ] >>383 最新版のリリースノートにも明記してあるぞ 本語版ドキュメントのOctober 2004と勘違いしてるんでね? >>383-384 家にもまだWin98マシンがあるからな。動かないのは寂しい。
386 名前:デフォルトの名無しさん [2008/11/09(日) 20:58:59 ] NT4.0ならともかく98、Meとかありえねーから
387 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 21:01:21 ] DX6以降は逆立ちしても使えないNT4とな
388 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 21:14:25 ] NT4.0は9x系以上にねーよw
389 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 21:31:51 ] だったらもうWindowsServer2003に対応しろよ
390 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 21:32:51 ] というか、"SDKでの開発"がサポート外なだけで、 出来上がったexeの実行自体はできるんじゃないかしら。
391 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 22:03:51 ] >>385 セキュリティーホールが永遠に塞がれることのないOSでネットに繋ぐな。 迷惑以外の何ものでもないのが分からないのか?
392 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 22:07:24 ] サポートの方には98.Me使ってるって話は未だにくるな
393 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 22:12:37 ] 上のツールの話だけど単純にいままで作ったライブラリが使えないのに わざわざ新しい言語でツールを作る意味あるの?
394 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 22:13:32 ] 職場に来た新卒君が同じことやっちゃって ちょっとどういう神経でそういうことしたのか聞いてみたかった
395 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 22:17:42 ] 何のツールかによるだろ 描画やファイルフォーマットが絡むツールなら共通部分を ライブラリ化するなりメインのプログラムからコピってくるなりした方が早い
396 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 22:20:50 ] 自分の中でどういう理由があろうとも駄目だしすることが決定してるのに その意図をいまさら他の人に聞く意味はあるの?
397 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 22:36:13 ] GraphEdit(DirectShow)で ファイル名.avi→AVISplitter としようとしたら 繋げないのは何で?
398 名前:デフォルトの名無しさん [2008/11/09(日) 22:36:48 ] それが女って奴だよ。 理由なんて興味はないのさ。 この人は私を愛してくれる、くれないで値踏みしたいんだ。
399 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 22:37:36 ] >>394 後輩に直で聞けない君は大丈夫か?
400 名前:デフォルトの名無しさん mailto:sage [2008/11/10(月) 00:06:51 ] 質問です。BeginSceneの後にRENDER_TARGETなテクスチャをSetRenderTargetでセットして そのままEndScene→Presentとした時、画面が真っ黒でレンダリング結果が何も表示されないのですが、 こういう使い方は許されないんでしょうか?
401 名前:デフォルトの名無しさん [2008/11/10(月) 00:10:25 ] 入門書を読んでゲーム作成を学んで行っているのですが、質問させていただきます。 アニメーションのところで、頂点の変換について読んでいるのですが、そこでは CPUで頂点座標、法線を計算した後にシェーダーや固定機能パイプラインを使って 残りの描画を行っています。 その理由が、「頂点シェーダだと大規模なフレーム構造をもつモデルが処理できないため」 と書いてあります。 しかし、CPUに付加をなるべくかけたくないので、このあたりも頂点シェーダで行いたいと思っています。 具体的には、 モトの頂点バッファのSUBETENO座標と法線に、それぞれスキニング行列とウェイトをかけると言う作業です。 フレーム数が少なければこの処理も頂点シェーダで出来るとのことですが、具体的な方法などを解説されているサイトなどは無いでしょうか? まだ初心者なので、とりあえずCPUで処理するように組んだとして、後に頂点シェーダに変更が容易かどうかだけでも教えていただければうれしいです。
402 名前:デフォルトの名無しさん mailto:sage [2008/11/10(月) 00:11:36 ] すいません・・・上の10行目の「SUBETENO」は「すべての」ですorz
403 名前:デフォルトの名無しさん [2008/11/10(月) 00:19:05 ] >>401 ゲ製作技術 pc11.2ch.net/gamedev/
404 名前:デフォルトの名無しさん mailto:sage [2008/11/10(月) 00:25:46 ] すれ違いでしたか・・・申し訳ありません。 誘導先の方でもう一度聞いてみます。ありがとうございました。
405 名前:デフォルトの名無しさん mailto:sage [2008/11/10(月) 00:39:16 ] >>400 SetRenderTarget()でテクスチャに設定して描画したなら 描画結果はそのテクスチャに書かれてるんだろ。 バックバッファには何も書いてないんだからPresent()してもそりゃ真っ黒だろ。
406 名前:デフォルトの名無しさん mailto:sage [2008/11/10(月) 01:03:33 ] >>405 ありがとうございました。 IDirect3DStateBlock9って内容をコピーする場合は一度デバイスに適用して取得、という手順を踏まないと できないんでしょうか?むしろ、これ使ってる人っているんでしょうか・・・
407 名前:デフォルトの名無しさん mailto:sage [2008/11/10(月) 01:10:30 ] コピーをしない。する必要ないじゃん。設計を見直せ。
408 名前:デフォルトの名無しさん mailto:sage [2008/11/10(月) 01:37:46 ] ステートブロックを保持するクラスのオブジェクトを作ったときに初期状態として、デフォルトの設定をコピーしたり、 コピーコンストラクタ等で処理するときに使います。
409 名前:デフォルトの名無しさん [2008/11/10(月) 08:13:20 ] 設定項目の類は自分で保持したほうがよくね? デバイス吹き飛んだら一緒に吹き飛ぶもんもあるし
410 名前:デフォルトの名無しさん mailto:sage [2008/11/10(月) 16:49:38 ] その手間省けるかと思ったんですが、やっぱりそういうことになるんですかね・・・ うーん、ありがとうございました?
411 名前:デフォルトの名無しさん [2008/11/10(月) 17:18:12 ] ぐぐれ
412 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 18:19:57 ] DirectXでゲーム作ってるけど、描画ってすごく大変なんですね。 線形補間のところを自分でやったんだけど、描画のたびにいちいちこんなに細かい処理するのか・・・ 近いキーを捜してウェイトをかけて。。。って。 MMOとかでもさすがに線形補間はしてるだろうけど、やっぱ3DMMORPGはすごいな・・
413 名前:デフォルトの名無しさん [2008/11/11(火) 18:31:27 ] ttp://2sen.dip.jp/cgi-bin/upgun/up1/source/up20970.jpg
414 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 18:34:06 ] 何の補間の話だ?描画じゃなくてモーションの話をしてんのか?
415 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 19:00:25 ] あ、ごめん。モーションだ。
416 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 19:06:40 ] てか、いまどき頂点ブレンドの話?
417 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 20:55:54 ] モーションの補間なんて別に難しい話じゃねぇと思うが・・・。 てっきりバイリニアを自前で実装でもしてるのかと思った。
418 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 22:00:19 ] きちんとクオータニオンを使って補完しろよ 線形でやると動きが滅茶苦茶不自然になるぞ
419 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 23:51:27 ] >>416 普通にモーションで、前と後ろのキーにウェイトをかけて補間してるのですが、最近はこんなのしないんでしょうか? 本からの知識だけだから常識的なことがわからないorz
420 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 00:03:42 ] >>419 それは前提。その2つを単純な線形補間でやるかどうかの問題。 移動やスケールならTCBスプラインでつないだりするし、 回転ならクォータニオンでつないだりする。 ウェイトかけて足すだけで終わりなんてのはプレステ時代とか携帯機ぐらいじゃないかい。
421 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 00:22:43 ] 液晶ディスプレイだと、個々のディスプレイの相変換反応スピードに応じて適切に表示がなされるように設計しないといけないのですか?
422 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 01:11:32 ] >>421 readmeに反応速度遅い液晶お断りって書くだけでOK
423 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 19:23:40 ] 最近、横に広いディスプレイが増えてきて 640x480で作った昔のゲームが ( ´∀`) ↓ ( ´ ∀ ` ) こんな感じで困る
424 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 19:25:44 ] ○が⊂⊃な感じになってるしよ・・・w
425 名前:デフォルトの名無しさん [2008/11/12(水) 19:30:59 ] っ 額縁君
426 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 20:03:19 ] 横広ディスプレイなんてパソコンの主な使用用途であるテキスト表示には 不利益しかもたらさないのになぁ 頻繁に縦スクロールしなくちゃなんなくてめんどいわ
427 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 20:13:04 ] 高さ一緒なら、同時にたくさんウィンドウ並べられるワイドの方が効率いいだろ
428 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 20:16:35 ] 横長モニターでフルスクリーンの場合ってどういう処理するのがスマートなの?
429 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 20:19:12 ] ワイドディスプレイに魂を売り渡すくらいならマルチディスプレイにする
430 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 20:34:35 ] >>426 pivotして縦長に使う
431 名前:デフォルトの名無しさん [2008/11/13(木) 00:31:49 ] directx 9.0cをダウンロードしようとすると 「ファイルをダウンロードできませんでした。後でもう一度〜」と出るんですが、時間がたてば ダウンロードできるようになるのでしょうか?
432 名前:デフォルトの名無しさん [2008/11/13(木) 00:35:04 ] それはこのスレで聞かないといけない質問だったんか?
433 名前:デフォルトの名無しさん [2008/11/13(木) 01:54:43 ] NMIなんてZ80の頃からあるわけだが。問答無用に0066hに飛んじゃう命令。 ハード的にはプルアップされて使えないようになってた。 パイプラインなんてjmp使えば一発だし。
434 名前:デフォルトの名無しさん [2008/11/13(木) 04:22:58 ] おれもdirectx9.0c最近ダウンロードできない・・・。 お詳しい方ひとつよろしくおねがいします。
435 名前:デフォルトの名無しさん mailto:sage [2008/11/13(木) 05:05:38 ] >>431 どのくらい待ってみたの?
436 名前:デフォルトの名無しさん [2008/11/13(木) 16:24:41 ] Vector4 の w ってなんなの?
437 名前:デフォルトの名無しさん [2008/11/13(木) 16:33:50 ] (笑)
438 名前:デフォルトの名無しさん mailto:sage [2008/11/13(木) 16:38:17 ] >>436 4次元数とかクォータニオンで調べてみれ
439 名前:デフォルトの名無しさん mailto:sage [2008/11/13(木) 17:02:45 ] 時間軸だよ
440 名前:デフォルトの名無しさん mailto:sage [2008/11/13(木) 17:09:54 ] _, ._ ( ・ω・) ○={=}〇, |:::::::::\, ', ´ 、、、、し 、、、(((.@)wwwwwwwwwwwwwwwwwwwwwww
441 名前:デフォルトの名無しさん mailto:sage [2008/11/13(木) 18:37:42 ] >>436 (藁
442 名前:デフォルトの名無しさん mailto:sage [2008/11/13(木) 18:41:05 ] Vector4のw要素は通常1でいいんだよ 要素が4つあるのは4×4マトリクスとの演算のときに都合がいいから まあクォータニオンとかは別に素人が覚えなくてもいい
443 名前:デフォルトの名無しさん mailto:sage [2008/11/13(木) 23:39:49 ] 頂点バッファを生成 頂点バッファを設定 loclk 頂点バッファを書き込み unlock SetStreamSource SetFVF DrawPrimitive の手順で実行しているのですが 板ポリが表示できません。。。 DirectXグラフィックスゲームプログラミングやリアルタイムレンダリングなどを買って読んだのですが解決できません。 ttp://www7.uploader.jp/dl/inoguma/inoguma_uljp00001.zip.html ソースUPするので誰か直していただけませんか・・・。
444 名前:デフォルトの名無しさん mailto:sage [2008/11/13(木) 23:46:49 ] その前にチュートリアルはきちんとやったのか?
445 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 00:23:07 ] 2008か・・・・ Express Edition入れたくないなぁ
446 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 00:47:56 ] >>443 × D3DXMatrixRotationZ(&mt, m_rotate.z); ○ D3DXMatrixRotationZ(&mwork, m_rotate.z); よね。
447 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 00:48:57 ] D3DXは使うなって書いてあった
448 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 01:38:17 ] なんの根拠もないけどな
449 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 06:24:28 ] >>446 ぱおおおおおおおおおおおおおおおおおん!! ありがとうございます!! 嬉しすぎてぞうの雄たけびをあげてしまいました D3DXMatrixRotationZ(&mwork, m_rotate.z); に変更したら表示されました。
450 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 06:42:28 ] コナミの人が自宅のベランダでチンコぱおおんさせて逮捕されたって昔聞いた
451 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 17:48:54 ] ○○勤務の会社員が自宅のベランダでチンコぱおおんさせて逮捕されたって昔聞いた ○○病院の医師が自宅のベランダでチンコぱおおんさせて逮捕されたって昔聞いた ○○学校の教諭が自宅のベランダでチンコぱおおんさせて逮捕されたって昔聞いた まぁ、よくある話だな
452 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 19:11:29 ] 開発環境 OS:Vista64bit DirectXSDK:Microsoft DirectX SDK (March 2008) VisualStudio2008 www.h2.dion.ne.jp/~takusoft/directx8/d3d/ このサイトのコードを試すと 1>test.obj : error LNK2019: 未解決の外部シンボル _Direct3DCreate9@4 が関数 "long __cdecl InitD3D(void)" (?InitD3D@@YAJXZ) で参照されました。 1>C:\Users\xxx\Documents\Visual Studio 2008\Projects\DirectX\Debug\test.exe : fatal error LNK1120: 外部参照 1 が未解決です。 とのエラーが表示されます ツール→オプション→プロジェクトおよびソリューション→VC++ディレクトリ に IncludeとLibのx64・x86は追加しています 関数Direct3DCreate9で右クリックをして定義に移動をするとd3d9.hに移動し IDirect3D9 * WINAPI Direct3DCreate9(UINT SDKVersion);が表示されて IDirect3D9で再度同じことをすると表示される関数内部の #ifdef D3D_DEBUG_INFOが定義されてないのが原因かな?と 以上の情報からどういった事が考えられますか?
453 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 19:28:19 ] ここはDirectX初心者であって、統合環境初心者スレじゃない。 ライブラリの指定も出来ない奴はDirectX云々以前の問題。
454 名前:デフォルトの名無しさん [2008/11/14(金) 19:46:29 ] DirectX勉強する前に、C++の勉強をする これマジおすすめ
455 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 20:23:32 ] LIBのディレクトリ指定だけで完了と思い込んで個別のLIB指定しないのは 外部のLIB初めて使う人か
456 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 20:35:04 ] とはいえC++だけの勉強だと ライブラリの追加体験しないこともあるしな 15歳からはじめるDirectXとかいう本は 統合環境のインストールの解説してるのに ライブラリの追加について一切書いてなくて笑ったのを思い出した
457 名前:452 mailto:sage [2008/11/14(金) 20:42:31 ] >>454 C++はそこそこ書けると自分では思っています >>455 プロジェクト→プロパティ→構成プロパティ→リンカ→入力→追加の依存ファイルには d3dx9.lib d3d9.libを追加してます、DirectXを使う前にDXライブラリを使ってみて そのときにはそんなこんなで上手くいったんですけどね・・・
458 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 20:45:59 ] まずコンパイルがどういう手順で行われているか ライブラリをリンクするには何が必要か directxとは関係ないことだと思うんだよね
459 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 20:46:51 ] 追加の依存ファイルじゃなくてファルダじゃね?
460 名前:452 mailto:sage [2008/11/14(金) 21:01:49 ] すいませんお騒がせしました・・・ 実行可能ファイルに追加するのを忘れていました・・・ 現在VisualStudio2008を使っていて 以前使っていたVisualStudio2008EEで試した所実行できたのでそこから発覚しました
461 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 22:16:10 ] >>431 ですが、待っていても全然インストールが始まらないんですが・・・ コンポーネントのインストール 初期化しています→「ファイルをダウンロードできませんでした。後でもう一度実行するか、ネットワーク接続を確認してください」 のループなんですが・・・自分だけでしょうか?
462 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 22:17:11 ] セキュリティぬるくkしてみりゃいいんじゃね。知らんけど。
463 名前:デフォルトの名無しさん [2008/11/14(金) 22:25:20 ] 質問:ウィンドウモードにおけるティアリングの解消 環境:WindowsXP SP2, DirectX9.0c ウィンドウモードにおいて、Direct3D9で垂直同期待ちを行っている にもかかわらず、ティアリングが発生します。 その際、ポリゴン数が増えるに従いティアリングの境界線は下降します。 また、当然かもしれませんがフルスクリーンモードでは正常に描画されます。 ビデオカードの仕様かと思いましたが、ひぐらしデイブレイク体験版では ティアリングは確認できませんでした。 何か解決法があるとは思うのですが、見当がつきません。 ご教授頂ければ幸いです。
464 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 22:25:46 ] >>461 OSが割れじゃね? 割れじゃ無理だけど 心当たりは?
465 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 22:26:26 ] >>463 ウィンドウモードでティアリングって回避できるの?
466 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 22:28:09 ] で ティアリング ウィンドウモード でぐぐってみたらそのものずばりが出てきたけど 俺的には本当にできるんかちょっと疑問 仕組み的に〜・・・まあ、できたら報告ヨロ
467 名前:463 mailto:sage [2008/11/14(金) 22:36:08 ] >>464 OSは正規品です。 >>465 Direct3D9から垂直同期待ちが可能になったようです。 ビデオカードに影響を受けるため確実ではないようですが。 >>466 GetRasterStatusを利用してもティアリングは解消されませんでした。
468 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 22:41:17 ] ライトを計算してモデルを表示すると普通に表示されます。 ライトと計算して板ポリに貼ったテクスチャを表示させると全体的に暗くなってしまいます。 ライトを計算しないと通常に表紙されます。 ライトを計算させて 通常に表示させるにはどうすればいいんですか?
469 名前:468 mailto:sage [2008/11/14(金) 22:43:18 ] テクスチャステージの設定はこうです m_pd3ddevice->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE); m_pd3ddevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE); m_pd3ddevice->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE); m_pd3ddevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE); m_pd3ddevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE); m_pd3ddevice->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE); ライトは CDXLight::CDXLight() { ZeroMemory(&m_light, sizeof(m_light)); D3DCOLORVALUE c, c2; D3DVECTOR v; c.a = c.r = c.g = c.b = 1.0f; c2.a = c2.r = c2.g = c2.b = 0.2f; v.x = 0.0f; v.y = 0.5f; v.z = 1.0f; SetDirectional(c, c, c2, v);
470 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 22:45:17 ] >>461 です この間変な音がしたり、PC画面にラグが出たりしてたので、OSがこわれているのかもしれません・・・ その場合どうすればいいんですか?
471 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 22:46:20 ] >>467 無理でしょ できる道理がわからない
472 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 22:47:19 ] パソコン変えろよカス 全然DirectXと関係ない質問だ もう二度とくるなよ
473 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 22:48:23 ] >>470 新しいPCを買う (自作orノートPCの方向は無しで 趣味ゲーPGでノートPC買う人がいるけど 何回も実行繰り返してるとノートだとなんかグラボの調子悪くなるなーっての俺だけ?)
474 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 22:51:51 ] >>464 >>473 さん返答アリでした 他の旧バージョンDirectXはDLインスコできたのですが、関係なさそうですね
475 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 22:56:38 ] 9.0cなんてダウンロードできるところからいって見つかりにくいし やめたほうがいいんじゃね? 情報の共有者も少ないことを意味してるよ
476 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 22:57:34 ] 9.0cがよかったのはなんか他のバージョンがdllを配ってくれなかった頃だけど 今はパックで全部くばってるからつかう意味ないよ
477 名前:463 mailto:sage [2008/11/14(金) 23:09:47 ] >>471 出来ないかもしれないですが 垂直同期待ちを正確に行えるなら理論上は可能かなと。 >>475 >>476 確かに。 バージョンを更新すれば改善される可能性もあるかもしれませんね。
478 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 23:22:42 ] デスクトップ分のバッファを取ってフルスクリーン風に扱えばいけるのだろうか?w
479 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 23:34:42 ] ID3DXFont に PreloadText って関数が出来てるんだけど。 これ使うとはやまなったりする?
480 名前:463 mailto:sage [2008/11/14(金) 23:45:13 ] >>478 壮大ですね。 ただ、フルスクリーンにしないなら、垂直同期を取る必要がありますし、 結局ティアリングは回避できないかとおもいます。 少し話はかわるのですが、描画コストが同じなら同じところに境界線が発生します。 そして、描画コストが増大するに従い境界線は下降します。 ということは、垂直同期は実は正確に取れていて、 描画にかかった時間分ずれが生じてティアリングが発生しているのかと思いました。 そのため、EndScene()を呼んだ後、描画完了まで Sleepで数十ms待たせてみたのですが解消されませんでした。 ちなみに、クエリは自分の環境では作成できないため実験は行えていません。 他にアイデアはないでしょうか。
481 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 00:15:51 ] DirectX9でもウインドウモードで垂直同期をとるもは無理。 あれは内部でタイマーを使ってそれっぽくしているだけ。 単純にウインドウモードと挙動を合わせるためのものであって、 それ以上でもそれ以下でもない。
482 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 00:24:08 ] Presentするとちゃんと60Hzで返ってくるよ
483 名前:463 mailto:sage [2008/11/15(土) 00:42:52 ] >>481 なるほど。 ただ、Present内部ではGetRasterStatusを使用して 画面がリフレッシュされていないタイミングをはかっているようです。 その際に、タイマーを利用しているのかもしれませんが、走査線が下端に到達 するまでの時間を算出してその時間分待っているのではないでしょうか。 少し、Presentがブラックボックス化しているのが気になりますね。 本当にバックバッファとフロントバッファのコピーは高速なんでしょうか。 ポインタを入れ替えるだけとドキュメントには書かれていますが。 もし、そこに時間がかかっているなら、描画コストが増えるに従って 境界線が下降する理由もわかります。
484 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 00:56:45 ] >>467 俺はウインドウモードでティアリングを防ぐなんて試したことはないが、 GetRasterStatusの使い方が悪いんじゃない?VBlank待ってない? 走査線がクライアント領域より下にいったら、即Presentでいいかと。 あと、GetRasterStatusの前にD3DQUERYTYPE_EVENTいれとかないと 意味がないと思う。
485 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 01:02:27 ] > フルスクリーン モードは、リフレッシュ レートやスワップ効果にかかわらず D3DPRESENT_INTERVAL_IMMEDIATE をサポートすることにより、 > ウィンドウ モードと同様の使い方をサポートします。D3DPRESENT_INTERVAL_DEFAULT はデフォルトのシステム タイマ精度を使います。 システムタイマーは1000msの精度。60Hzのエミュレートなら16.66666…で割り切れないのでどっちにしろ徐々にずれる。 D3DSWAPEFFECT_COPYを指定しない限りは明示的にバック⇒フロントへのコピーはない。 コピーしてたとしても全画面描画1回相当の処理が目に見えるほど遅延していくなら根本的に1/60秒で動かないだろ。 まぁそこまで細かく気にするならゲームなんだしフルスクリウーンでやれや、って事だろう。
486 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 10:00:50 ] ウィンドウモードでゲームプレイする奴はその程度の事を気にしない
487 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 10:06:43 ] 試してみようと思ったら、俺のところでは全くティアリングが発生しない。 Vistaだからか?
488 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 10:23:36 ] はやくおまいらの話についていきたい45歳秋
489 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 11:50:15 ] 基本的な質問で申し訳ないのですが、質問させていただきます。 DirectXをつかったゲームで、入力された情報は一般的にはどうやって受け取ればいいのでしょうか? WIN32APIでは普通にウィンドウプロシージャで受け取っていましたが、入門書では、WinMainのメッセージループで while(message != WM_QUIT) { if(PeekMessae(&msg,NULL,0,0,PM_REMOVE)) { //省略 } else{ GetKey() //デバイス->Acquire()でキー入力を受けつける //以下はRender()などの呼び出し } } としていました。 後者の方がDirectXでは一般的なのでしょうか?
490 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 12:01:57 ] 別に好きな方で問題ない
491 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 12:05:10 ] スレッド
492 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 12:28:58 ] >>489 DirectつながりでDirectInput使う
493 名前:463 mailto:sage [2008/11/15(土) 17:27:54 ] >>484 D3DQUERYTYPE_EVENTは自分の環境では作成できないです。 走査線がクライアント領域より下にいった直後にPresentしても多少 境界線の位置がかわる程度で違いはほとんどありませんでした。 >>485 なるほど。タイマーを使っているとは知りませんでした。 確かに、少しずつずれていきますね。 D3DSWAPEFFECT_COPYにしてみましたが、さほど違いは出なかったです。 とすると、疑問なのはGetRasterStatusを使ってもずれるという点です。 D3DPRESENT_INTERVAL_IMMEDIATEで生成しておいて、GetRasterStatusを使っても ほとんど同じところに境界線ができるんです。 >>486 最悪、気にしない方向で諦めようかと思ってます。 >>487 vistaはOSレベルで制御しているため、ティアリングが生じないようですね。
494 名前:449 mailto:sage [2008/11/15(土) 17:32:37 ] あれから色々いじってみて キー入力で画像を動かすのを作りました。 一応思うようにできたのですが もっと簡単なやり方・効率のいい方法 などありましたら ご指摘お願いします。 ソースです www7.uploader.jp/dl/inoguma/inoguma_uljp00001.zip.html ↑ → ↓ ← キーで操作できます よろしくお願いします。
495 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 06:42:43 ] >>494 ゲームを作りたいならもっと汎用性がある方が良い とは言ったものの、自分じゃ直し方良く分からないので他の人に(ry
496 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 09:14:26 ] >>494 frame.cpp: line 117-118 m_dwStyle = GetWindowLong(m_hwnd, GWL_STYLE); m_dwStyle = 2495741952; これはどんな意図があるんですか…?
497 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 09:34:51 ] スタイル初期値です。
498 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 09:37:59 ] 3Dリアルタイムアニメーション という本から参考にした部分があるのですが その部分の補足には スタイル初期値(とりあえずこれで問題はない) と本にコメントが付け加えられてました
499 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 10:40:46 ] >>498 問題しか見えないw
500 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 11:26:39 ] GetWindowLongPtr使うべきだし GetWindowLongした意味ないし マジックナンバー使うし
501 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 11:32:33 ] >>498 移動のコードは間違いじゃないけど、 せっかく入力・演算・描画を分けた意味がない気がする。 他の人にも意見を聞いてみるといいよ。
502 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 12:15:53 ] スミマセン質問があります。 環境 : VC2005 / SDK(March 2008) / XP DirectXでXファイルを扱うときに頂点カラーを引っ張りたいのですが何処を見ればいいのでしょうか。 HLSLで描画する際にVertex ShaderのCOLOR0に自動的に入ってくると思ったらそうじゃないみたいで……・
503 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 12:31:30 ] ダダーンウーボヨボヨボヨアーアーアー
504 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 13:16:30 ] >>502 xファイルに頂点カラーの情報(MeshVertexColors)が入っていないか 入っていたとしても頂点フォーマットに頂点カラーが含まれてないかのどっち 単純にテクスチャなしのxファイルを表示したいだけなら マテリアルのDiffuseをシェーダーに渡して色情報として計算する
505 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 13:32:10 ] 返信ありがとう御座います。 xファイルにはデータが入っていることを確認したので頂点フォーマットに無いのでしょうね…… マテリアルはオブジェクトの識別に使うという変な使い方してて、 同一マテリアル内で色を変える場合頂点カラーが必要という珍妙な設計になってるのです。 大人しくマテリアルでやる方向に変えた方が良いかもしれないですね
506 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 13:35:23 ] >>505 まるで頂点フォーマットを何かが勝手に作るように書いてるが 頂点フォーマットを作るのはおまえさんの仕事だぞ。
507 名前:502 mailto:sage [2008/11/16(日) 14:10:07 ] D3DXLoadMeshFromXでXファイルを読み込む前に、 FVFをどこかで設定出来ると言うことですか……? すみません勉強不足過ぎました。もう少し調べてきます。
508 名前:463 mailto:sage [2008/11/16(日) 14:31:41 ] Presentの代わりにBitBltを利用してみました。 確かにティアリングは減った(ほとんど見えない)と思いますがFPSが著しく落ち込みガタガタです。 ただ、FPSが25程度なのでがたがたして気づかないだけかもしれませんが。 一応、環境や最適化不足のためかもしれないので手順を書いておきます。 1, Flags=D3DPRESENTFLAG_LOCKABLE_BACKBUFFERでDirect3DDevice9を生成。 2, GetRasterStatusで垂直同期待ちを行う。 3, バックバッファからHDCを取得し、BitBltでウィンドウへ書き込む。 もう少し細かい話もありますが、大方こういう手順になるかと思います。 どうもBitBltの負荷が高そうですが、高速化する手はありますか?
509 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 14:36:42 ] GDIの遅さや不便さを何とかするために DirectXが開発されたのに原点にもどったら本末転倒
510 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 14:36:55 ] >>508 FPS25じゃ垂直同期に間に合う合わないなんて関係無いクオリティじゃないか?
511 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 14:41:03 ] モデルを最初から左にずれた場所に配置したいのですが D3DXMATRIX mtx; D3DXMatrixIdentity(&mtx); D3DXMatrixTranslation(&mtx, -2.0f, 0.0f, 0.0f); d3ddevice->SetTransform(&mtx, 0); で配置すると確かに配置できるのですが キーボードでキーを押した分ずらすコードを加えるにはどうすればいいですか
512 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 14:45:35 ] そろそろ自分で考える努力をしたらどうかな。
513 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 14:45:54 ] Win32APIすれで聞くといいんじゃね
514 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 14:48:47 ] D3DXMatrixTranslationの引数の値を変える
515 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 14:58:02 ] >>512 分かりました 自分で悩みまくって作った方が上達する気がしてきました それではしばらく失礼します。
516 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 15:48:33 ] 描画内容があまり頻繁に変化しないので、 変更があったときのみ描画処理を行うようにして、それ以外はフロントバッファに表示されているものをそのまま表示したいのですが、 presentする直前にバックバッファをサーフェイスにコピーしておいて、それを書き戻すとかでいいんでしょうか? 一般的な方法があれば、教えてください。
517 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 15:56:41 ] そもそも描画が行われなかったときは サーフェイスをクリアしなければいいのでは?
518 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 16:13:36 ] >>516 D3DPRESENT_PARAMETERSのSwapEffectに D3DSWAPEFFECT_COPYを指定する。
519 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 16:32:11 ] 本にはD3DSWAPEFFECT_DISCARDにしろって書いてあったよ
520 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 16:35:53 ] 入門サイトを見て とりあえずデバイスを作ってPrsentだけしてみたら アダルトゲームの画面が表示されたんですけどバグですか。
521 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 16:39:17 ] いいえ、仕様です。
522 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 16:41:01 ] ハッキングされてます
523 名前:516 mailto:sage [2008/11/16(日) 16:57:14 ] レスいただいた方々、ありがとうございます。 >>517 質問させていただく前に描画関数の中身とか呼出位置を変えて色々試してたんですが、 他のウィンドウがかぶった時の挙動とか、どうにも思い通り行かなくて質問させていただいた次第でしてorz >>518 バッチリ思い通りになりました、ありがとうございました。 >>519 ご忠告どうもです。 もうすこし詳しく調べてみます。
524 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 17:10:14 ] >>520 VRAM
525 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 20:46:13 ] ちょっとお聞きしたいのですが、よくゲームの動作環境で VRAM幾つ以上というようなのがありますよね 自作ゲームの動作環境にそういう情報を明記したいのですが、そのために 現在PCで使われているVRAM容量を調べるにはどうすればいいのでしょうか? 使用VRAM情報をチェックする関数とかはありますか?
526 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 20:52:43 ] >>525 うん
527 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 21:27:25 ] >>526 DirectX9なのですがなんという関数を使えばいいのでしょうか?
528 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 21:41:40 ] >>527 GetAvailableTextureMem だが、推定 BBXに「?」ってのが書いてある
529 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 21:50:15 ] そこは遥か昔に閉鎖したぞ
530 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 21:51:49 ] SDK(March 2008 以降)に VideoMemory ってサンプルがあるわよ。 ttp://msdn.microsoft.com/en-us/library/cc308070(VS.85).aspx \Samples\C++\Misc\VideoMemory
531 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 22:03:27 ] >>529 いや、生きてるぜ
532 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 22:41:37 ] 今時はVRAMなんてほとんど基準にならんけどなー
533 名前:525 [2008/11/16(日) 22:56:06 ] レスありがとうございます。 >>523 LoadTextureをやる毎に使ってみました。 が、数値は70MBちょいぐらいで固定っぽいです。(ビデオカードのVRAMは96MB) テクスチャは読み込んでもVRAMには格納されないんでしょうか? 簡単な2Dゲームなのでで処理スピードには問題がない為別にいいのですが… LoadTextureってVRAMに読み込む/読み込まないの切り替えができるんですかね >>530 旧バージョンを使ってるので役にたつかわかりませんが、後で見てみます >>532 確かに、最近のPCゲーだとVRAM容量表記が特にないものが多いですよね
534 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 22:58:50 ] DX8あたりからマネージドになってるから気にする必要ないんじゃない。パフォーマンスに影響はあるけど。 昔は全部自前で管理する必要があった。
535 名前:525 mailto:sage [2008/11/16(日) 23:00:35 ] >>533 LoadTextureじゃなくてD3DXCreateTextureFromFileInMemoryでした
536 名前:525 mailto:sage [2008/11/16(日) 23:17:09 ] >>534 自分なりに調べて見たらD3DXCreateTextureFromFileInMemoryEXというのを使えば 意図的にVRAMに読み込ませる事もできるみたいですね パフォーマンスが必要になるようなソフトを作る場合にはこちらを使おうと思います。 ありがとうございました。
537 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 23:22:14 ] それ主記憶じゃなくてVRAMにストックしておく関数だっけ?
538 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 23:30:49 ] プール先を指定できる
539 名前:502 mailto:sage [2008/11/16(日) 23:35:53 ] スミマセン、色々調べてみたのですが結局分かりませんでした。 Xファイル自体には頂点色を保持しているのは確認済みです。 D3DXLoadMeshFromXを使ってxファイルを読み込み頂点色が欲しい場合、 LPDirect3DDevice9::SetFVFを使ってFVFを通知してからXファイルを読み込むという手順ではダメで、 いったん読み込んでから、CloneMeshで頂点フォーマットを設定し直すと言うのもやはりダメでした。 D3DXLoadMeshFromXで頂点色を捕まえる方法は有るのでしょうか。 そもそもVertex ShaderのInputのCOLOR0セマンティクスに入ってくるのは頂点色という認識で良いのでしょうか。
540 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 08:54:08 ] Xファイルに頂点色が入っているならD3DXLoadMeshFromX()の時点で 作られたメッシュには頂点色が入っている。
541 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 11:55:27 ] Vista入りのノート買ったからDX10に手を出してみたけど、意外と変わってるのね。 FVF消えたりD3DFMTが気持ち悪いことになってたり。 で、質問なんだけど、サンプルコードのライセンスってどこに書いてあるの? 卒論のためにコード書かなきゃいけないんだけど、カメラとかいちいち書くのが面倒だから BasicHLSL10のサンプルを流用したいのよ。 *nixの世界みたいに、ルートディレクトリにはっきりとライセンス定義を置いておいてくれると有り難いんだけど……。
542 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 12:05:55 ] 別に三流学生の卒論コードなんてどうだっていいだろ 一般公開しなければ
543 名前:デフォルトの名無しさん [2008/11/17(月) 12:32:08 ] HLSLでsamplerオブジェクトを定義するとき 今まではtexture2DやtextureCUBEに関係なく"sampler"と書いていたのですが textureに合わせてsampler2D, samplerCUBEにしたほうがいいのでしょうか? 違いや書き分ける意味はありますか?
544 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 16:03:42 ] >>542 公開するから質問してるに決まってるだろ高卒
545 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 17:28:01 ] 公開しないでいいよ。君の糞コードなんて。
546 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 17:51:58 ] D3DX〜は使ったら駄目って常識のはずなんだが
547 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 18:00:27 ] ライセンスについて調べようと思ったら、まずは使用許諾書に目を通すものだが、 なんでその程度の、ごく当たり前のことをする程度の知能すら持ち合わせていないのかが謎。
548 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 20:45:26 ] デバッグモードでは正常にビルドできるんですがリリースモードだと以下のエラーが山ほど出てしまいます、、、 予想ではunicodeとマルチバイトが混在しているのが不味いような気がするんですが、、、 色々調べてみたんですが、解決方が見当たらないのでどなたか原因わかる方がいたら教えてください。 boss.obj : error LNK2001: 外部シンボル "_D3DXMatrixScaling@16" は未解決です。 boss.obj : error LNK2001: 外部シンボル "_D3DXMatrixMultiply@12" は未解決です。 d3d.obj : error LNK2001: 外部シンボル "_D3DXMatrixLookAtLH@16" は未解決です。 d3d.obj : error LNK2001: 外部シンボル "_D3DXCreateTextureFromFileA@12" は未解決です。 d3d.obj : error LNK2001: 外部シンボル "_D3DXCreateTextureFromFileExA@56" は未解決です。 d3d.obj : error LNK2001: 外部シンボル "_D3DXVec3Normalize@8" は未解決です。 d3d.obj : error LNK2001: 外部シンボル "_D3DXMatrixOrthoLH@20" は未解決です。 dsound.obj : error LNK2001: 外部シンボル "__imp__mmioGetInfo@12" は未解決です。 fps.obj : error LNK2001: 外部シンボル "__imp__timeGetTime@0" は未解決です。 main2.obj : error LNK2001: 外部シンボル "_D3DXCreateSprite@8" は未解決です。 main2.obj : error LNK2001: 外部シンボル "__imp__timeBeginPeriod@4" は未解決です。 x_file.obj : error LNK2001: 外部シンボル "_D3DXLoadMeshFromXA@32" は未解決です。 コンパイラはVisualC++2008を使っています。 コンパイラの問題かと思ったんですが、エラー吐くのが殆どDirectX周りだったのでここで質問させていただきました。 デバッグモードで作ったexeファイルとデータファイルを同梱すればとりあえず配布は大丈夫でしょうか? 一応そのやり方で自分の環境では動作したのですが、、、
549 名前:548 mailto:sage [2008/11/17(月) 20:48:54 ] ずっとDebugモードのプロパティいじってた\(^o^)/ 自己解決しました、スレ汚しすいませんw
550 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 20:49:21 ] プロジェクトの設定はリリースとデバッグで別々だが、ライブラリとか両方に設定してある?
551 名前:502 mailto:sage [2008/11/17(月) 20:49:49 ] >>540 遅れましたがありがとうございました。 おかげさまで何とか出来そうです。
552 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 10:30:08 ] 誰か>>543 知りませんか?
553 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 10:35:13 ] 好きにしろよばーか
554 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 11:14:48 ] 自分の知らない事、どうでもいい事を聞くと怒り出す奴っているよね。キチガイ? 好きにしていいならsamplerとsampler2Dが分かれてる意味ないじゃん。
555 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 13:42:30 ] 別れてることに特に意味はないし 好きにすればいいと思うよ 同じサンプリングで描画するなら一つでいいし 物によって変えるなら複数作って使い分ければいいだけ
556 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 13:52:29 ] 好きにしちゃいけないって誰が決めたの? 当然の事を言われて怒られてるだのキチガイだの言い出す>>554 はアホかと。
557 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 14:36:08 ] よくわからずに使ってるのか
558 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 14:37:51 ] ただのaliasなの?
559 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 14:44:29 ] sampler3DやsamplerCUBEのみのSamplerStateがあるため 意味なんかないから好きにしていいとか馬鹿にも程がある プログラマ失格
560 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 18:04:21 ] GLSLでは違うけど HLSLではまったく同じものなんだが
561 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 18:10:44 ] >>559 じゃあ意味があるから好きにしちゃダメだよ とでもいえば納得するのかな?(笑)
562 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 18:36:17 ] というわけで、>>543 は好きにしちゃダメだという事で。 はい次の人〜。
563 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 18:40:53 ] はい次の人〜。
564 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 18:46:50 ] あのぅ、私は…
565 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 18:47:02 ] 自分の想定と違う事を言われると納得できないんなら最初からそうすりゃいいのにな 他人の同意がないと何もできないのかね
566 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 18:48:17 ] >>564 どちらさまですか?
567 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 16:24:01 ] 640*480で作ったデバイスを引数にD3DXCreateSprite関数でID3DXSpriteを作ったら、 レンダーターゲットを1024*1024にしてID3DXSprite::Drawを実行したら、画像が引き延ばされて 描画されたんだけど、そうならないようにするにはどうすればいいんですか? ちなみにレンダーターゲットの大きさは変えられません。
568 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 16:39:32 ] 好きにしろよばーか
569 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 16:53:55 ] わざわざそうしてるんだろ
570 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 16:59:31 ] 自分の知らない事、どうでもいい事を聞くと怒り出す奴っているよね。キチガイ? 640*480と1024*1024が分かれてる意味ないじゃん。
571 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 17:00:24 ] はい次の人〜。
572 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 17:14:06 ] ウィンドウサイズが640*480じゃないとダメで、レンダーターゲットはテクスチャでなくてはならない。(ピクセルシェーダー使うため) テクスチャは2のn乗サイズじゃないとピクセルが1対1対応してくれないので、1024*1024にしてるんです。
573 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 17:17:29 ] ViewPort
574 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 17:17:52 ] 1024×1024の画像ファイルの内必要な部分を範囲指定して表示すればいい
575 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 18:18:38 ] >>572 >テクスチャは2のn乗サイズじゃないとピクセルが1対1対応してくれない これの意味が分からん
576 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 20:00:53 ] お前が低能無知なだけだろ
577 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 20:20:04 ] おれもわからん 一体何とピクセルが1対1? たてよこ?
578 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 21:19:49 ] 1:1対応にテクスチャのサイズなんて関係ねぇだろ。 描画する時の問題だ。
579 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 21:37:13 ] 1:1は意味不明だがテクスチャの元画像の縦横を2のべき乗にすんのが普通。 元画像とテクスチャのバッファサイズが違うと引き伸ばされる んで、読み込んだテクスチャバッファのうち、640*480の範囲を指定して スプライトを描画すればよい。
580 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 22:31:40 ] なんで自らが引き伸ばして描画しているのに、「されて」とか他人のせいにする奴が現れるんだろう?
581 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 23:01:32 ] >>575 2のn乗以外のサイズで作ったときってDrawPrimitiveなんかで描画した時どうしても歪んで描画されないピクセルとかありませんか? 何かやり方があるならそれを知りたいです。 >>577 テクスチャ上のピクセルと画面のピクセルがです。
582 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 23:08:24 ] まずはD3DXを一切使うのをやめ、画像ファイルをテクスチャに読み込んで自分でUVを設定し描画するところまでやれ。 それで全て解決する上に、自分がいかに間抜けなことを言っているかも理解出来る。
583 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 23:09:57 ] とんでもなくボロいビデオカードだと2のn乗以外のサイズのテクスチャ使えない?
584 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 23:15:52 ] 馬鹿が余計なもん使って遠回りしてらぁw m9(^Д^)プギャー
585 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 23:18:21 ] >>583 正方はさすがにないと思うけど n乗は守ってるな俺 あんま意味無いかも っていうか最近のグラボ事情知らん
586 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 23:34:35 ] 使えても内部的に無駄が出るんじゃね
587 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 23:36:16 ] 2^n以外のテクスチャが使える場合でもパフォーマンスは2^nより落ちるとかいう話を聞いたこともある
588 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 23:39:10 ] 2乗は必須だけど正方かどうかはハード次第だろ。
589 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 00:06:26 ] GeForce6以降はテクスチャサイズの最大サイズ以外の全ての制限がなくなったわけだが。 DXTテクスチャですら適当なサイズのまま作れるぞ。
590 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 03:00:35 ] >>583 2のn乗が使えないのは、一番新しいのだとIntelの815の統合ビデオ機能かな? っていうか、NONPOW2CONDITIONALは、2のn乗しか使えないハードウェアでも ドライバの対応だけでクリアできるものだと思う。
591 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 03:32:25 ] おまえらの記憶にもうVoodooは無いのね・・・
592 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 07:36:53 ] あんな糞ボードサポートしてどうすんだよ
593 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 08:56:42 ] 日韓併合における韓国皇帝の勅諭(原漢文) 皇帝、若(ここ)に曰く、朕否徳にして艱大なる業を承け、 臨御以後今日に至るまで、維新政令に関し承図し備試し、 未だ曽て至らずと雖も、由来積弱痼を成し、疲弊極処に至り、 時日間に挽回の施措望み無し。 中夜憂慮善後の策茫然たり。 此に任し支離益甚だしければ、終局に収拾し能わざるに底(いた)らん。 寧ろ大任を人に託し完全なる方法と革新なる功効を奏せいむるに如かず。 故に朕是に於いて瞿然として内に省み廊然として、 自ら断じ、茲に韓国の統治権を従前より親信依り仰したる、 隣国日本皇帝陛下に譲与し、外東洋の平和を強固ならしめ、 内八域の民生を保全ならしめんとす。 惟爾大小臣民は、国勢と時宜を深察し、煩擾するなく各其業に安じ、 日本帝国の文明の新政に服従し、幸福を共受せよ。 朕が今日の此の挙は、爾有衆を忘れたるにあらず、 専ら爾有衆を救い活かせんとする至意に出づ。 爾臣民は朕の此の意を克く体せよ。 隆煕四年八月二十九日 御璽
594 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 23:50:43 ] テクスチャをDDSファイルで読み込もうとしているんですが 複数のDDSファイルを読み込むと途中で動かなくなってしまいます DDSファイルには特殊な処理が必要なんでしょうか? ちなみに1つであればどのDDSファイルでも 見ている範囲では正常に動いているんですが・・・
595 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 23:53:06 ] 随分アバウトな質問だな それはDDS以外のフォーマットなら複数読んでもとまらないってことか?
596 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 00:02:14 ] >>595 すいません よくよく試してみたら他の形式でも同様の止まり方をしましたorz ちょっと前までDDSは使ってなくてその間は特に問題が無かったんで DDSのせいだろうと決めてかかってました 多分他のところに問題があると思うのでもう少しコードを見直してきます またわからないことが出てきたらお願いします
597 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 00:24:57 ] エスパーするとマルチスレッドで読み込もうとしてデバイスがマルチスレッドのフラグつけていない
598 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 00:48:02 ] Voodooはさすがにもういいだろ SiS辺りのクソオンボとかi810とかはまだ使ってる人居るけど
599 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 00:50:18 ] >>597 あーありそう、昔一度やったことある
600 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 00:57:04 ] つーか今から何か出すなら最低でもシェーダーモデル3.0でいいだろ。 GeForce6なんて何世代前のビデオカードだとおもっとるんだ。 3Dゲームやるようなユーザーなら定期的にPC構成弄ってるし。
601 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 01:02:08 ] んーどうなのかな PCのスペック二極化してるから下の層を拾うような仕様だと未だに糞ボードの対応までやってる感じするけど
602 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 02:11:10 ] ゲフォ5200と旧ATI9200以上の対応だけすればいい 理由はウチにあるそこそこ低いボードだからだ 作り手で線引きしないときりがない
603 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 02:26:25 ] ショップの品揃えで判断するとか。 GFX5200とか未だに定番商品みたいに新品売られてるのが泣ける。
604 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 08:20:24 ] だってそれ挿せばとりあえずVista(Aero)動くもん
605 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 08:37:31 ] つってもHD3450が5000円で買えるんだし下見るのももういいだろって気がする。 だから日本はエロゲ以外のゲームがろくに出ないんだよ。
606 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 12:00:45 ] DirectX10+SM4.0だろ 今更昔のクオリティのゲーム作って何が楽しいんだ つーかこのスレやっぱりゲーム作る人多いのね
607 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 12:51:16 ] >>605 そういうのはPCメーカーが底上げしないと駄目だな あとVRAMみたいな初心者でもわかりやすい目安みたいなのあればいいのに >>606 楽しさも人それぞれっしょ むしろ絵を綺麗にするだけの作業なんて何が楽しいんだよとか思うが
608 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 13:30:03 ] >むしろ絵を綺麗にするだけの作業なんて何が楽しいんだよとか思うが リアルタイム3DCG技術についていけなくなった人が自分を慰めるための常套句ですね。わかりますw
609 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 13:40:39 ] 自己満足ならそれでもいいんだが ゲームは結局他人に遊んでもらってなんぼだからな どんな流麗なCGでも動かなければ意味がない マイロソフトのやり方だと次あたりのVisualStudioをXP非対応にして まず開発者側の首を締めにかかってくるだろう Vista以上でなければソフトが作れない環境ができてしまえば 市場からXPが消えるのも時間も問題と思われる DirectXSDKはもっと早くXPのサポートを打ち切るだろうしね
610 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 13:42:37 ] >>608 海外向けのゲーム作ってる一部の人がそれ言うなら煽りに聞こえるが 日本向けゲーム作ってる人が言うとただの同意にしか見えない
611 名前:デフォルトの名無しさん [2008/11/21(金) 14:42:16 ] すみません。DirectSoundをはじめて利用して、プログラムを作成しています。 そこでよくわからない状況になって困っています。 SDKはDirectX8(VC6++のサンプルがあるため)を利用しているのですが、 そのサンプルを参考にWAVファイルを再生するところまでたどり着きました。 ところが、再生前にフォーカスをはずすと、音が鳴らなくなるという現象が 発生してしまいます。 フォーカスが外れていても、音が鳴るようにするにはどのようにすればよいでしょうか? よろしくお願いいたします。
612 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 14:54:05 ] サウンドバッファをつくるときに DSBCAPS_GLOBALFOCUSフラグを立てる この説明でわからないならソースうp
613 名前:デフォルトの名無しさん [2008/11/21(金) 15:02:49 ] >>612 解決しました!!ありがとうございます。 これで無事システムを納品できそうです。 即答ありがとうございました。
614 名前:デフォルトの名無しさん [2008/11/21(金) 15:06:04 ] DirectSound8のサンプルをそのまま利用していたので、パラメータの存在に 気がつきませんでした。説明を読むと、確かにそのとおりの内容になっていますね。 msdn.microsoft.com/ja-jp/library/cc354147.aspx
615 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 17:57:23 ] >>608 何人でどのくらいの期間で何をつくるのか知らんが 少数人チームで絵なんかこだわってる暇あったら 中身のほうを煮詰めてほしいと思うんだが どんな凝ったエフェクトつけようとCG屋がウンコな時点で終了 逆に凝らなくても元のCGがきれいならそれなり そもそも日本の個人ゲーはリアルタイム3DCGだのシェーダがどうのとか そういうことを気にする以前のレベルだと思う 無論絵が綺麗に越したことはないが、だからといってゲームが面白いかというと別問題
616 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 18:38:21 ] バンプや反射、屈折の初級エフェクトすらプロでもあんまり使ってくれない っていうかそんな時間ないや デザイナがシェーダの設定ファイルを書いてると遊んでると思われる空気
617 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 20:34:32 ] IBasicVideo の GetCurrentImage を使って、 ビデオのワンフレームをビットマップとして保存しようと思っているのですが、 ソースが mpeg2 の場合だと何故か真っ黒なビットマップしか取得できません。 ソース、取得するフレームの位置、mpeg2 video decoder を色々変えて試してみたのですが、 結果は変わりませんでした。 ソースが avi, wmv, mpeg1 の場合は正常なビットマップを取得でることを確認済みです。 このことについて何かご存知の方おられましたらご教示お願いします。 試した mpeg2 video decoder は次のものです。 MpegVideoDecoder PIXELA, Cyberlink Video/SP Decoder
618 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 20:53:43 ] 正直D3D10に興味が涌かないな 仕事以外で使うならsm3での表現力に不足はないし ジオメトリシェーダやその他諸々は高速化以外の用途が見出せないからつまらん
619 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 20:54:16 ] >>617 DirectShowと戦うスレ Part 4 pc11.2ch.net/test/read.cgi/tech/1214127501/
620 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 21:04:44 ] >>619 ありがとうございます。移動します。