【C++】 DirectX初心者質問スレ Part19 【C】at TECH
【C++】 DirectX初心者質問スレ Part19 【C】 - 暇つぶし2ch262:デフォルトの名無しさん
08/11/06 10:02:55
線を引きたいなら1ドットのビットマップを引き伸ばして回転させて線にするとか

263:デフォルトの名無しさん
08/11/06 13:15:43
>>262
DirectDrawに回転ないってw

264:デフォルトの名無しさん
08/11/06 13:51:53
URLリンク(www.microsoft.com)
DirectX Software Development (November 2008)
URLリンク(www.microsoft.com)
DirectX End-User Runtime Web Installer

265:デフォルトの名無しさん
08/11/06 13:52:38
>DrectDrawに相当するもの
って書いてあるからDDじゃないと思ってた

266:デフォルトの名無しさん
08/11/06 14:06:04
>>255の言いたい事は、2Dグラフィクを扱う方法と考えるべきだな。
頭の悪い奴は、DirectDrawでできることというお馬鹿な解釈をする。
>>259>>263のようにね。

267:デフォルトの名無しさん
08/11/06 15:42:03
DirectDrawで線を引く機能があっても意味ねー。
ゲームの画面が線で描かれることは無い。
すべて絵だし。ビットマップだし。

268:デフォルトの名無しさん
08/11/06 15:45:37
まー解説サイトも板ポリゴン作って拡大回転テクスチャをごにょごにょのレベルまでだけどな

DrawPrimitiveの削減とか考えると本買うしかない

269:デフォルトの名無しさん
08/11/06 16:00:25
2Dでそこまでしなくても

270:デフォルトの名無しさん
08/11/06 16:55:05
最新のDirectXがどうしてもインストールできません。
何度やっても「ファイルをダウンロードできませんでした。
後でもう一度実行するか、ネットワーク接続を確認してください」
というダイアログが出ます。

どういった原因なのか分かる方いらっしゃいますでしょうか・・・?

271:デフォルトの名無しさん
08/11/06 16:58:39
ブラウザ変えてやってみるとか。
うちでも一定バイト数以上にならなくて別ブラウザにしたら一発だった。

272:デフォルトの名無しさん
08/11/06 17:04:46
VC++で説明している本の内容をC#で実装するのって手間かかりますか?

273:デフォルトの名無しさん
08/11/06 17:17:09
SlimDX使えば

274:デフォルトの名無しさん
08/11/06 17:22:42
最初はオープンソースのライブラリを使ってゲームを作る
そしてライブラリの中身を見ながら自分風のライブラリに置き換えていく。
俺はこうやってWinAPIとDirectXを習得した。

まぁDirectX7+ELの時代なんですけどね。

今だとオープンソースで使えるライブラリつったらDXライブラリかな?

275:デフォルトの名無しさん
08/11/06 17:36:29
自分で書いたほうが早い

276:デフォルトの名無しさん
08/11/06 17:42:07
Direct Graphics だとか Audio なんかはフリーのライブラリを見て勉強できますが、
ゲームオブジェクトの管理とか設計がままなりません。
オブジェクト指向本とか勉強するべき?

277:デフォルトの名無しさん
08/11/06 18:46:03
>Direct Graphics
そんな物は存在しない

278:デフォルトの名無しさん
08/11/06 18:47:46
>>271
>>270へのレスでしょうか?

そうでしたら、違うブラウザーでも駄目でした。
同じような現象が現れた人はいないでしょうかね・・・。

279:デフォルトの名無しさん
08/11/06 19:41:24
ウイルス対策ソフトをアンインストールしてから出直せ

280:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/11/06 23:23:36
Win32アプリケーションじゃなくてWin32コンソールアプリケーションとしてプロジェクトを作成してる。
DirectXと関係ねー話だからよく分らんかったらVSのスレにでも池

282:デフォルトの名無しさん
08/11/07 11:35:23
シェーダで隣のテクセルなどを参照する方法ってありますか?

283:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/11/07 12:40:54
シェーダで1.0f/TEX_SIZE_Xを計算させると精度で泣くよ。
TEX_SIZE_Xを与えるついでに逆数も与えた方がいい。

285:デフォルトの名無しさん
08/11/07 12:48:52
>>283
なるほど、ありがとうございます。
自分がtex2Dについてよく理解していなかったようです。すいません。

286:デフォルトの名無しさん
08/11/07 13:34:15
逆数を与えるとは?

287:デフォルトの名無しさん
08/11/07 14:45:15
質問させていただきます。
DirectXをつかってC++でゲームを作る場合、オブジェクト指向でClassを作るというやり方は一般的ではないのでしょうか。
ちょっとしたゲームの入門書を読んでみても、Classは出てきておらず、疑問に思いました。
Javaでコードを書いていた期間が長く、Class 自分、Class 敵 、とクラスを作っていこうと考えていたのですが処理が遅くなるなどのデメリットが生じるでしょうか?

288:デフォルトの名無しさん
08/11/07 15:00:11
今時クラスを使わない方が少数派だよ。仕事ならなおさらね。
その程度のリスクを気にするような時代じゃない

まあ全てをクラスで管理しなくてもいいわけだし、上位はクラスで管理して
下位を入門書のコピペでやるというのもありか

289:デフォルトの名無しさん
08/11/07 15:06:54
現場ではまず使わないね。
まあ趣味なら好きにすれ

290:デフォルトの名無しさん
08/11/07 15:09:06
どこの現場だよ^^;
Cだけで組んでるなんて10年前ぐらいの話だぞ

291:デフォルトの名無しさん
08/11/07 15:13:15
リスク?コスト?

292:デフォルトの名無しさん
08/11/07 15:18:47
公開されてるToHeart2のソースだとCだけで組んでるっぽいな
あそこのプログラマは知識なさそうだから参考になるか知らんがw

DirectXで仕事した事はないけど、家庭用ゲームの開発ではクラス使ってる

293:デフォルトの名無しさん
08/11/07 15:30:04
少人数の開発だとプログラマー1人で全部やるようになるからその人次第じゃね

294:デフォルトの名無しさん
08/11/07 15:43:05
クラスでやっても実行速度はかわらんだろ

295:デフォルトの名無しさん
08/11/07 15:44:10
まあ共同制作の場合はクラス作る方が都合がいいやね
ちゃんとオブジェクト指向と言える物になってればの話だが
グローバル変数が各ソースで呼ばれるようになるとバグ修正が困難になる

296:デフォルトの名無しさん
08/11/07 15:49:37
>>294
それは組み方次第じゃね
少なくともクラス自体のnewとdeleteの手間はあるわけだし
全く変らないとは言い切れないが、別に気にするような事じゃない

297:デフォルトの名無しさん
08/11/07 16:12:26
俺は、一つのcppファイルをクラスと見立ててコード書いてる。だからクラス自体は使ってない。
まぁあくまでも趣味だから俺は

298:デフォルトの名無しさん
08/11/07 16:44:25
仮想関数って致命的なオーバーヘットもあるしな

299:デフォルトの名無しさん
08/11/07 16:59:02
classでも何でもとりあえずデバッグしやすい構造でがしがし組んで行って、
最後速度が本当に気になるなら実装をいじればいい

300:デフォルトの名無しさん
08/11/07 17:40:25
オーバーヘッドがどうこう言う>>298みたいな奴は、
それこそ致命的に頭が弱い。
中身が空っぽに近いメソッドをぐるぐる呼び出して、
ベンチマークをとったと勘違いしているんだろうが、
実際に目的があって組まれたプログラムの仮想関数を、
別の方法に置き換えたところで、1FPSすら速度の向上に貢献しない。

301:デフォルトの名無しさん
08/11/07 18:00:18
>>300
なんで頭が弱いとか人を馬鹿にするような書き込みをわざわざすんの?
おまえに限らずこのスレはくだらない自尊心を満たすために汚い言葉つかうやつが多くて困る

302:デフォルトの名無しさん
08/11/07 18:35:48
どのスレでも馬鹿は馬鹿にされるでござりまするよ

303:デフォルトの名無しさん
08/11/07 18:37:14
2ちゃんなんてこんなもん
それが嫌なら綺麗な掲示板に行こう

304:デフォルトの名無しさん
08/11/07 18:39:32
言語仕様のどうでもいい一部にこだわるよりも、
いらん処理を省いたり、目立たない部分を簡略化したりする事に時間を割いた方が、
よっぽど全体のパフォーマンスが上がる。

305:デフォルトの名無しさん
08/11/07 19:59:41
Windows + DirectX + C++ で開発する場合、DirectXの前にWindowsプロシージャの
ラップやらMFCやらを説明しないとならない。
DirectX入門という触れ込みなのに中々絵のでない解説が延々続くと読者の興味が持たないし、
前書きに「最低限C++とWindowsプログラムの知識が必要です」とかだと対象が狭まってしまう。
多分、著者側のそんな苦悩があるのでは。

306:デフォルトの名無しさん
08/11/07 20:01:23
いまどき仮想関数のオーバーヘッドとか・・・
危うくつられるところだったぜ・・・・・・。

いまどきクラスなしでゲーム開発なんて携帯機くらいじゃねーの?
new/deleteでオーバーヘッドっつーならmalloc/freeはノーコストなのかと。

307:デフォルトの名無しさん
08/11/07 20:08:24
DSの開発はC++ですぜ

308:デフォルトの名無しさん
08/11/07 23:15:22
すんません質問させらくだ際


ゲーム中の画像の描画にアルファ適用したくて
元画像から一個一個DDS作ってるんだが正直免土井

そんで、元画像とアルファ情報入ったグレースケールの画像を一度に二つ読み込んで
DDSとかをいちいちつくらずアルファを実装してるゲームとかたまに見るんだけど
あれはどうやったらできるの?

309:デフォルトの名無しさん
08/11/07 23:22:28
目的のサイズのテクスチャ作って、直接ARGB値を書き込むんじゃないの?

310:デフォルトの名無しさん
08/11/07 23:31:09
>>309 ぐぐってみたらそれらしいのが出てきたんで試してみます
thxでした

311:デフォルトの名無しさん
08/11/07 23:36:16
元からPNGとかでα込みのデータ作ればいいのに。
あくまでもマスク画像と合成してDDS作りたいなら、自分でバッチ処理する
プログラムでも書けばいいかと。DDSでの保存はD3DXで簡単にできる。

312:デフォルトの名無しさん
08/11/07 23:36:23
つか、どっちにしろ何らかの
アルファチャンネル付きフォーマットを用意することには変わらないんじゃ

313:デフォルトの名無しさん
08/11/07 23:38:25
最初からグラフィックソフトでDDS作る方が数倍簡単だろ・・・
αとカラーを別々の画像で扱う方がメンドイしキャッシュにもやさしくない

314:デフォルトの名無しさん
08/11/07 23:42:49
普通にマルチテクスチャしてるんじゃまいか?

315:sage
08/11/07 23:44:53
>>311-313 割と多く画像を扱うからDDSへの変換が結構手間だったり
ファイルが増えて煩雑な感じになったりだったんで
ファイル二つですめばいいなあと思いやってみてたんだが
あんまりよろしくはなかったのか…

316:デフォルトの名無しさん
08/11/08 00:55:32
Photoshopでバッチ変換とかすりゃいいだけだろう。
nVIDIAのプラグインでミップマップとか圧縮とかも全部出来るし。
って流石にPhotoshopはかえねーよって人のために
コマンドラインツールがDriectXのSDKん中に入ってたりする。

317:デフォルトの名無しさん
08/11/08 03:54:15
うちの社内ツールがBMPしか読めませんとか、RGBとAが別でないと読めませんとかだったお。
面倒すぎて自分でPSD→社内形式のツール作ったw





318:デフォルトの名無しさん
08/11/08 04:32:11
どこの社内ですか?

319:デフォルトの名無しさん
08/11/08 05:23:00
URLリンク(www.microsoft.com)
DirectX End-User Runtimes (November 2008)

320:デフォルトの名無しさん
08/11/08 13:23:54
乗り遅れたが・・・
趣味→クラス使っても使わなくても
仕事→クラスを使わないとえらいことになりそう

しかし上でも言われてるように、使うのと使わないのでは差が出ると行ってもほんのちょっとだろう。
俺もCで組んだことあるが違いが実感できなかった

321:デフォルトの名無しさん
08/11/08 13:29:04
そもそも仮想関数ってただの関数テーブル化されるだけだろ。
インライン展開しないような大きさなの関数なら差なんて無いだろ。

322:デフォルトの名無しさん
08/11/08 13:29:35
素人乙

323:デフォルトの名無しさん
08/11/08 13:38:37
そういうのを気にするのは
まともにゲームも作ったことのない
ライブラリ厨だけだってばっちゃが言ってた

324:デフォルトの名無しさん
08/11/08 13:41:32
うちのじっちゃも言ってた
てことはまさか


325:デフォルトの名無しさん
08/11/08 13:42:51
じっちゃやばっちゃの世代なら仮装関数を噛ますことのオーバーヘッドなんて許容しがたくて当然じゃねw

326:デフォルトの名無しさん
08/11/08 14:03:51
言語論争は絶対に決着がつかないのでここまでで

327:デフォルトの名無しさん
08/11/08 14:19:11
どう考えても一定以上の規模のものを作るならC++必須なんだし、
速度がそんなに気になるなら全部アセンブラで書いたら?

328:デフォルトの名無しさん
08/11/08 14:35:33
今はコンパイラが利口すぎて
PGが最適化しなくてもそれなりに動くし
初心者スレだからそれでいいと思うんだが

あと論議するならDirectXのスレじゃなく
C++のスレでやってくれ

329:デフォルトの名無しさん
08/11/08 14:41:11
仮想関数のテーブル参照のコストを気にするのなら、
仮想メモリのアドレス変換のコストなんか失禁ものだぞ。
そういう奴は素直にDOSでも使ってろ。

330:デフォルトの名無しさん
08/11/08 14:45:42
そんな事よりDrawPrimitiveの呼び出し回数を減らせよと

331:デフォルトの名無しさん
08/11/08 14:47:50
1時間に1回しか呼ばない俺は関係ないな

332:デフォルトの名無しさん
08/11/08 14:54:52
行列の乗算のコスト考えたら関数呼び出しなんて失笑ものだよな

333:デフォルトの名無しさん
08/11/08 15:00:45
今のCPU速いしな
オンボ+速いCPUの組み合わせのPCはあっても
ちゃんとしたビデオカード+遅いCPUの組み合わせはありえんし
作りやすいように作るのがいいと思うぞ


334:デフォルトの名無しさん
08/11/08 16:27:26
DrawPrimitiveの回数云々よりも、いらないキャラクターの描画を削ったり、
遠くのオブジェクトのポリゴン数を減らすようなシステム改善の方が、
よっぽど全体の速度向上に繋がる。

335:デフォルトの名無しさん
08/11/08 16:33:11
>>334
それを含めてDrawPrimitiveの回数を減らす努力だろ・・・

336:デフォルトの名無しさん
08/11/08 16:38:36
後出しご苦労様。
DrawPrimitive限定と、他の命令も大幅に削減出来るかどうかの差は天と地ほどある。

337:デフォルトの名無しさん
08/11/08 17:02:58
DrawPrimitiveだけを限定して減らす事なんて出来ない。
最低でも対になるSetRenderStateやSetTextureは減る。

338:デフォルトの名無しさん
08/11/08 17:42:27
速度のネックになるのは描画、アニメーション処理全てだよ
その中にDrawPrimitiveの回数というのも当然含まれる

クラスを使う使わないとか、その他もろもろの処理の重さなんて
描画やアニメーションに比べれれば0に等しい

339:デフォルトの名無しさん
08/11/08 18:03:38
ゆとりらしいレスだな。
PIの値に3とか使ってそうw
それぐらいの誤差は0に等しいとか言ってw

340:デフォルトの名無しさん
08/11/08 18:15:11
ほほう、それじゃ比較してどれほどのものになるというのかね?

341:デフォルトの名無しさん
08/11/08 18:17:33
特定の内容にこだわって遅いだのこうしろだの言い出す人間が、
いかに木を見て森を見ない奴だかよく分かる。

342:デフォルトの名無しさん
08/11/08 18:19:52
おまえらそんなことはいいからゲーム完成させろよ

343:デフォルトの名無しさん
08/11/08 23:31:26
C++使ったらオブジェクト指向で分かりやすくなると思ったら間違いなんだよC++で分かりやすいソースが書けるやつはCでも分かりやすいプログラムが書ける表面的なことばかり追求する姿勢を改め機械語からやり直すことが近道だ

344:デフォルトの名無しさん
08/11/09 00:45:48
機械語とか中途半端なんだよ、アセンブリか、回路そのものにしろ

>>C++使ったらオブジェクト指向で分かりやすくなると思ったら間違いなんだよC++で分かりやすいソースが書けるやつはCでも分かりやすいプログラムが書ける
禿同

345:デフォルトの名無しさん
08/11/09 00:50:18
>機械語からやり直すことが近道だ
そんなことをいったら半導体の設計からさらにその前にさかのぼっていくことになるぞ。
なんでそんなに頭が悪いんだ?
それこそ猿からやり直せ。

346:デフォルトの名無しさん
08/11/09 00:57:35
同じだったらより低コストで開発できるC++を選ぶのが一番の早道になるわけだが

なにがなんでもC言語を使うための方法を考えてるくらいなら
さっさとC++で実装してしまったほうが良い場合もあるし
環境によってはC言語だけで組んだほうがベストの場合もあるだろう
言語はあくまで手段であって目的と取り違えてはいけない
同じではなくそれぞれのメリットとデメリットを理解して使い分けるべき

347:デフォルトの名無しさん
08/11/09 01:04:32
最低でもクラスとSTL相当の機能は使えないとやってられないけどな・・・。
2,3人で1年程度で完成するようなゲームならCオンリーでも別にかまわんけど。

348:デフォルトの名無しさん
08/11/09 01:33:18
ゲーム本体、グラフィックツール等→C++
データコンバーター等→Cで適当に

だな

349:デフォルトの名無しさん
08/11/09 02:11:28
おまえらCとかC++とか言うまえに
スレタイ読めるようにしてこいよ?

350:デフォルトの名無しさん
08/11/09 10:06:28
>>348
モノによって言語仕様を変えていたら、コードの再利用がしにくくなって、生産性が落ちるだろ。
なんでそんなにどうしようもない思考しか出来ないほど間抜けなの?

351:デフォルトの名無しさん
08/11/09 10:17:04
常に再利用できる環境にいるなら
再利用しやすい言語を使えってことだろ?
組み込みとかアミューズメントとか再利用ってなんですか?
って世界もあるわけで

352:デフォルトの名無しさん
08/11/09 10:20:51
本体⇒C++
ツール類⇒C# & C++/CLI
が鉄板だな。

353:デフォルトの名無しさん
08/11/09 10:32:20
>>351
DirectXスレで組み込みを語り出す馬鹿って何なの?

354:デフォルトの名無しさん
08/11/09 10:37:30
>>350
あるねー
ツールをVBなんかで作られると
出来たデータの読み込みルーチンを違う言語で2つ作らなきゃいけなくなってすげー面倒だよね

ちょwおまwなんでVBなんかで作ったの?

って感じだった
後、エクセルに埋め込んであるVBA
てめーは比較ツールで差分すらみえねーから逝っていいぞw

355:デフォルトの名無しさん
08/11/09 11:11:51
>>350
構造体のフォーマットはそのままでいいんだからCだろうがC++だろうが同じことだろ
君はデータコンバーター自体にゲーム本体での読み込みコードまで書き込むわけ?

だいたい、C++を使うという事はCのコードでも再利用できるということだよ。
なんでそんなにどうしようもない思考しか出来ないほど間抜けなの?

356:デフォルトの名無しさん
08/11/09 11:24:27
>>350>>354は適材適所という言葉を知らんのだろう。
それとも、ひとつの言語しか使えないのか・

357:デフォルトの名無しさん
08/11/09 11:28:14
自作のクラスライブラリとかつかわんのか。

358:デフォルトの名無しさん
08/11/09 11:35:26
>>356
うーん、でもC++で扱うデータをVBやらスクリプト言語やらで作るなよとは思う
その上データのバイナリイメージの詳細をきちんと示さない奴は氏ねよと

ただ、エクセルVBAはないと仕事にならない事も多い
パラメーターなんかのデータ入力は基本エクセルでやるからな
自分で使うだけなら全て自作のスクリプトでいいけれど
俺の場合はエクセルVBAからCのツール呼び出すけど

359:デフォルトの名無しさん
08/11/09 11:46:46
脱線しすぎだなw
DirectXの話に戻ろうぜ

360:デフォルトの名無しさん
08/11/09 12:08:29
周辺ツールなんか
Excelでデータ管理したり
PerlやPythonやC#でさらっと作成してるのが普通だと思ってた秋

361:デフォルトの名無しさん
08/11/09 12:37:13
C#(笑)

362:デフォルトの名無しさん
08/11/09 12:51:13
>>355
>だいたい、C++を使うという事はCのコードでも再利用できるということだよ。
>なんでそんなにどうしようもない思考しか出来ないほど間抜けなの?

C++からCの場合は対応させるために大幅な修正が必用。
CをC++側のコーディングスタイルに合わせるためにラッパーの追加。
そんな無駄な作業をしてまで
>データコンバーター等
をCに限定する意味が不明。

余計なコードが増えた分だけテストのチェック項目が増えるというのに、どれだけ頭が悪いの?

363:デフォルトの名無しさん
08/11/09 12:51:22
今だったらツールはC#が当たり前かと思ってた。
未だにWin32でGUIとか作ってるところあんのかね。

364:デフォルトの名無しさん
08/11/09 13:10:10
>>362
あのさ、
読み込みルーチンわざわざ別の言語で2回作らなきゃいけないのに
これでチェックを少なくできるとおもってんの?

しかも読み込みルーチンだけならいいけど
C++でこさえてあるほかの関数まで必要になっても全部別の言語で
書き直さなきゃならないじゃない?

みるからに手間がハンパねぇよ
ちょっとしたもんだって嫌だよ
だいたいそんなにその言語強力かよ
ちょっとした手間惜しんでっていうか自分がさわってみたかっただけの
言語を会社で使うんじゃねーよ
絶対お前使えねぇって

365:デフォルトの名無しさん
08/11/09 13:12:20
>>363
.NetFrameworkさえ使えりゃいいんじゃねぇの?

366:デフォルトの名無しさん
08/11/09 13:46:04
まーた生産性厨か

367:デフォルトの名無しさん
08/11/09 13:50:30
>>362
>C++からCの場合
どこにもそんな事を書いた覚えはないんだが?
よっぽど馬鹿な事をしていない限りはそのような無駄な作業は
一切発生しないから心配しなくても大丈夫だよ。

よくわからんが、君が作るとなぜか余計なコードとやらが
無駄に増えてしまうのかもしれないね。

368:デフォルトの名無しさん
08/11/09 13:52:49
てか、>>362=364なん?
誰にレスしてんの?意味不明なんだが。

369:デフォルトの名無しさん
08/11/09 14:01:02
確かに、アンカー番号すら間違う>>364のような頭の悪い子には
複数言語を扱うのは無理かもね
他言語を覚える程度のちょっとした手間を惜しむような怠惰な子は
仕事じゃ使えねぇって

370:デフォルトの名無しさん
08/11/09 14:17:26
言語なんて時代が流れるにつれて移り変わっていくものなんだから好きなの使えばいいんだよ

C++しかやってなくて他言語を使えないんだったらちょっとしたツールでもC++で作ればいいだろうさ
でも別言語だろうと苦もなく使えるぐらいの柔軟性がなければプロとしては失格

371:デフォルトの名無しさん
08/11/09 14:21:04
会社とかプロとか一人で何言ってんだろ。
ストレスですね。わかります。
早死にしてください。

372:デフォルトの名無しさん
08/11/09 14:22:42
そうだな。ここは初心者の素人が集まるスレだからプロも会社も関係ないんだ。

373:デフォルトの名無しさん
08/11/09 14:26:08
ところでここしばらくDirectXのDの字も見てない気がするんだが

374:デフォルトの名無しさん
08/11/09 14:30:55
質問です。DirectXでのおっぱいのリアルな揺らし方を教えてください。お願いします

375:デフォルトの名無しさん
08/11/09 15:02:58
あ泉風呂でDirectX呼べるの?

376:デフォルトの名無しさん
08/11/09 15:31:24
>>374
解剖学を勉強汁。
モーションだけなら乳限定で開発していた日本のベンダーがあった気がする・・・

377:デフォルトの名無しさん
08/11/09 15:33:13
>>374
まずは>>374自身が「おっぱいのリアルな揺れ方」を勉強してくるんだ。
エロゲーの2次アニメや3DCGではなく、本物の。
DirectXの出番はその後。

378:デフォルトの名無しさん
08/11/09 15:39:14
今まで:
単純な運動をそれぞれ担当する下請けがいくつかあって
どれを組み合わせるか決める元請けみたいなのがまた別の場所にある

今:
同じ場所に高速担当と低速担当がいて
これらが適当に組み合わせとかを変えることで
柔軟な運動ができる

ってことか?

379:デフォルトの名無しさん
08/11/09 18:03:34
XP+VC2008EEで DirectX9のプログラムを開発しているのですが
SDKは最新版(2008 Nov)を入れた方が良いのでしょうか?
DX10/11は開発できないのでぶっちゃけて古めのSDK(2008 Mar)でもいいのかなと・・。

380:デフォルトの名無しさん
08/11/09 18:15:35
自分で判断できない馬鹿は何使っても同じ。

381:デフォルトの名無しさん
08/11/09 18:41:09
たぶん、またくだらない質問しにくることになるから
2007 August にしとけ

382:デフォルトの名無しさん
08/11/09 20:15:44
Windows98対応も考えてOctober 2006をお勧め
リリースノートをみるとその後のバージョンでは98に対応してないらしい

383:デフォルトの名無しさん
08/11/09 20:25:37
2006じゃなくて2004じゃね?
ってかWindowsXPより前のOSなんてサポートしても仕方ないと思うけど・・・

384:デフォルトの名無しさん
08/11/09 20:26:51
だれも対応を望んでいるなんて言っていないのに、
とっくにサポートが切れたセキュリティリスクの塊なOSを
話に持ってくるのは、頭がおかしいから?

385:デフォルトの名無しさん
08/11/09 20:35:03
>>383
最新版のリリースノートにも明記してあるぞ
本語版ドキュメントのOctober 2004と勘違いしてるんでね?
>>383-384
家にもまだWin98マシンがあるからな。動かないのは寂しい。

386:デフォルトの名無しさん
08/11/09 20:58:59
NT4.0ならともかく98、Meとかありえねーから

387:デフォルトの名無しさん
08/11/09 21:01:21
DX6以降は逆立ちしても使えないNT4とな

388:デフォルトの名無しさん
08/11/09 21:14:25
NT4.0は9x系以上にねーよw

389:デフォルトの名無しさん
08/11/09 21:31:51
だったらもうWindowsServer2003に対応しろよ

390:デフォルトの名無しさん
08/11/09 21:32:51
というか、"SDKでの開発"がサポート外なだけで、
出来上がったexeの実行自体はできるんじゃないかしら。

391:デフォルトの名無しさん
08/11/09 22:03:51
>>385
セキュリティーホールが永遠に塞がれることのないOSでネットに繋ぐな。
迷惑以外の何ものでもないのが分からないのか?

392:デフォルトの名無しさん
08/11/09 22:07:24
サポートの方には98.Me使ってるって話は未だにくるな

393:デフォルトの名無しさん
08/11/09 22:12:37
上のツールの話だけど単純にいままで作ったライブラリが使えないのに
わざわざ新しい言語でツールを作る意味あるの?

394:デフォルトの名無しさん
08/11/09 22:13:32
職場に来た新卒君が同じことやっちゃって
ちょっとどういう神経でそういうことしたのか聞いてみたかった

395:デフォルトの名無しさん
08/11/09 22:17:42
何のツールかによるだろ
描画やファイルフォーマットが絡むツールなら共通部分を
ライブラリ化するなりメインのプログラムからコピってくるなりした方が早い

396:デフォルトの名無しさん
08/11/09 22:20:50
自分の中でどういう理由があろうとも駄目だしすることが決定してるのに
その意図をいまさら他の人に聞く意味はあるの?

397:デフォルトの名無しさん
08/11/09 22:36:13
GraphEdit(DirectShow)で
ファイル名.avi→AVISplitter
としようとしたら 繋げないのは何で?

398:デフォルトの名無しさん
08/11/09 22:36:48
それが女って奴だよ。

理由なんて興味はないのさ。
この人は私を愛してくれる、くれないで値踏みしたいんだ。

399:デフォルトの名無しさん
08/11/09 22:37:36
>>394
後輩に直で聞けない君は大丈夫か?


400:デフォルトの名無しさん
08/11/10 00:06:51
質問です。BeginSceneの後にRENDER_TARGETなテクスチャをSetRenderTargetでセットして
そのままEndScene→Presentとした時、画面が真っ黒でレンダリング結果が何も表示されないのですが、
こういう使い方は許されないんでしょうか?

401:デフォルトの名無しさん
08/11/10 00:10:25
入門書を読んでゲーム作成を学んで行っているのですが、質問させていただきます。
アニメーションのところで、頂点の変換について読んでいるのですが、そこでは
CPUで頂点座標、法線を計算した後にシェーダーや固定機能パイプラインを使って
残りの描画を行っています。
その理由が、「頂点シェーダだと大規模なフレーム構造をもつモデルが処理できないため」
と書いてあります。
しかし、CPUに付加をなるべくかけたくないので、このあたりも頂点シェーダで行いたいと思っています。
具体的には、
モトの頂点バッファのSUBETENO座標と法線に、それぞれスキニング行列とウェイトをかけると言う作業です。
フレーム数が少なければこの処理も頂点シェーダで出来るとのことですが、具体的な方法などを解説されているサイトなどは無いでしょうか?

まだ初心者なので、とりあえずCPUで処理するように組んだとして、後に頂点シェーダに変更が容易かどうかだけでも教えていただければうれしいです。

402:デフォルトの名無しさん
08/11/10 00:11:36
すいません・・・上の10行目の「SUBETENO」は「すべての」ですorz


403:デフォルトの名無しさん
08/11/10 00:19:05
>>401
ゲ製作技術
URLリンク(pc11.2ch.net)

404:デフォルトの名無しさん
08/11/10 00:25:46
すれ違いでしたか・・・申し訳ありません。
誘導先の方でもう一度聞いてみます。ありがとうございました。

405:デフォルトの名無しさん
08/11/10 00:39:16
>>400
SetRenderTarget()でテクスチャに設定して描画したなら
描画結果はそのテクスチャに書かれてるんだろ。

バックバッファには何も書いてないんだからPresent()してもそりゃ真っ黒だろ。

406:デフォルトの名無しさん
08/11/10 01:03:33
>>405ありがとうございました。

IDirect3DStateBlock9って内容をコピーする場合は一度デバイスに適用して取得、という手順を踏まないと
できないんでしょうか?むしろ、これ使ってる人っているんでしょうか・・・

407:デフォルトの名無しさん
08/11/10 01:10:30
コピーをしない。する必要ないじゃん。設計を見直せ。

408:デフォルトの名無しさん
08/11/10 01:37:46
ステートブロックを保持するクラスのオブジェクトを作ったときに初期状態として、デフォルトの設定をコピーしたり、
コピーコンストラクタ等で処理するときに使います。

409:デフォルトの名無しさん
08/11/10 08:13:20
設定項目の類は自分で保持したほうがよくね?
デバイス吹き飛んだら一緒に吹き飛ぶもんもあるし

410:デフォルトの名無しさん
08/11/10 16:49:38
その手間省けるかと思ったんですが、やっぱりそういうことになるんですかね・・・

うーん、ありがとうございました?

411:デフォルトの名無しさん
08/11/10 17:18:12
ぐぐれ

412:デフォルトの名無しさん
08/11/11 18:19:57
DirectXでゲーム作ってるけど、描画ってすごく大変なんですね。
線形補間のところを自分でやったんだけど、描画のたびにいちいちこんなに細かい処理するのか・・・
近いキーを捜してウェイトをかけて。。。って。
MMOとかでもさすがに線形補間はしてるだろうけど、やっぱ3DMMORPGはすごいな・・

413:デフォルトの名無しさん
08/11/11 18:31:27
URLリンク(2sen.dip.jp)

414:デフォルトの名無しさん
08/11/11 18:34:06
何の補間の話だ?描画じゃなくてモーションの話をしてんのか?

415:デフォルトの名無しさん
08/11/11 19:00:25
あ、ごめん。モーションだ。


416:デフォルトの名無しさん
08/11/11 19:06:40
てか、いまどき頂点ブレンドの話?

417:デフォルトの名無しさん
08/11/11 20:55:54
モーションの補間なんて別に難しい話じゃねぇと思うが・・・。
てっきりバイリニアを自前で実装でもしてるのかと思った。

418:デフォルトの名無しさん
08/11/11 22:00:19
きちんとクオータニオンを使って補完しろよ
線形でやると動きが滅茶苦茶不自然になるぞ

419:デフォルトの名無しさん
08/11/11 23:51:27
>>416
普通にモーションで、前と後ろのキーにウェイトをかけて補間してるのですが、最近はこんなのしないんでしょうか?
本からの知識だけだから常識的なことがわからないorz

420:デフォルトの名無しさん
08/11/12 00:03:42
>>419
それは前提。その2つを単純な線形補間でやるかどうかの問題。

移動やスケールならTCBスプラインでつないだりするし、
回転ならクォータニオンでつないだりする。

ウェイトかけて足すだけで終わりなんてのはプレステ時代とか携帯機ぐらいじゃないかい。

421:デフォルトの名無しさん
08/11/12 00:22:43
液晶ディスプレイだと、個々のディスプレイの相変換反応スピードに応じて適切に表示がなされるように設計しないといけないのですか?

422:デフォルトの名無しさん
08/11/12 01:11:32
>>421
readmeに反応速度遅い液晶お断りって書くだけでOK

423:デフォルトの名無しさん
08/11/12 19:23:40
最近、横に広いディスプレイが増えてきて
640x480で作った昔のゲームが

( ´∀`)
   ↓
(  ´ ∀ ` )

こんな感じで困る

424:デフォルトの名無しさん
08/11/12 19:25:44
○が⊂⊃な感じになってるしよ・・・w

425:デフォルトの名無しさん
08/11/12 19:30:59
っ 額縁君

426:デフォルトの名無しさん
08/11/12 20:03:19
横広ディスプレイなんてパソコンの主な使用用途であるテキスト表示には
不利益しかもたらさないのになぁ
頻繁に縦スクロールしなくちゃなんなくてめんどいわ

427:デフォルトの名無しさん
08/11/12 20:13:04
高さ一緒なら、同時にたくさんウィンドウ並べられるワイドの方が効率いいだろ

428:デフォルトの名無しさん
08/11/12 20:16:35
横長モニターでフルスクリーンの場合ってどういう処理するのがスマートなの?

429:デフォルトの名無しさん
08/11/12 20:19:12
ワイドディスプレイに魂を売り渡すくらいならマルチディスプレイにする

430:デフォルトの名無しさん
08/11/12 20:34:35
>>426
pivotして縦長に使う


431:デフォルトの名無しさん
08/11/13 00:31:49
directx 9.0cをダウンロードしようとすると
「ファイルをダウンロードできませんでした。後でもう一度~」と出るんですが、時間がたてば
ダウンロードできるようになるのでしょうか?

432:デフォルトの名無しさん
08/11/13 00:35:04
それはこのスレで聞かないといけない質問だったんか?

433:デフォルトの名無しさん
08/11/13 01:54:43
NMIなんてZ80の頃からあるわけだが。問答無用に0066hに飛んじゃう命令。
ハード的にはプルアップされて使えないようになってた。
パイプラインなんてjmp使えば一発だし。

434:デフォルトの名無しさん
08/11/13 04:22:58
おれもdirectx9.0c最近ダウンロードできない・・・。
お詳しい方ひとつよろしくおねがいします。





435:デフォルトの名無しさん
08/11/13 05:05:38
>>431
どのくらい待ってみたの?

436:デフォルトの名無しさん
08/11/13 16:24:41
Vector4 の w ってなんなの?

437:デフォルトの名無しさん
08/11/13 16:33:50
(笑)

438:デフォルトの名無しさん
08/11/13 16:38:17
>>436
4次元数とかクォータニオンで調べてみれ

439:デフォルトの名無しさん
08/11/13 17:02:45
時間軸だよ

440:デフォルトの名無しさん
08/11/13 17:09:54
    _, ._
  ( ・ω・)
  ○={=}〇,
   |:::::::::\, ', ´
、、、、し 、、、(((.@)wwwwwwwwwwwwwwwwwwwwwww

441:デフォルトの名無しさん
08/11/13 18:37:42
>>436
(藁

442:デフォルトの名無しさん
08/11/13 18:41:05
Vector4のw要素は通常1でいいんだよ
要素が4つあるのは4×4マトリクスとの演算のときに都合がいいから

まあクォータニオンとかは別に素人が覚えなくてもいい

443:デフォルトの名無しさん
08/11/13 23:39:49
頂点バッファを生成

頂点バッファを設定

loclk

頂点バッファを書き込み

unlock

SetStreamSource

SetFVF

DrawPrimitive

の手順で実行しているのですが
板ポリが表示できません。。。

DirectXグラフィックスゲームプログラミングやリアルタイムレンダリングなどを買って読んだのですが解決できません。

URLリンク(www7.uploader.jp)

ソースUPするので誰か直していただけませんか・・・。

444:デフォルトの名無しさん
08/11/13 23:46:49
その前にチュートリアルはきちんとやったのか?

445:デフォルトの名無しさん
08/11/14 00:23:07
2008か・・・・
Express Edition入れたくないなぁ

446:デフォルトの名無しさん
08/11/14 00:47:56
>>443
× D3DXMatrixRotationZ(&mt, m_rotate.z);
○ D3DXMatrixRotationZ(&mwork, m_rotate.z);
よね。


447:デフォルトの名無しさん
08/11/14 00:48:57
D3DXは使うなって書いてあった

448:デフォルトの名無しさん
08/11/14 01:38:17
なんの根拠もないけどな

449:デフォルトの名無しさん
08/11/14 06:24:28
>>446

ぱおおおおおおおおおおおおおおおおおん!!

ありがとうございます!!

嬉しすぎてぞうの雄たけびをあげてしまいました

D3DXMatrixRotationZ(&mwork, m_rotate.z);

に変更したら表示されました。

450:デフォルトの名無しさん
08/11/14 06:42:28
コナミの人が自宅のベランダでチンコぱおおんさせて逮捕されたって昔聞いた

451:デフォルトの名無しさん
08/11/14 17:48:54
○○勤務の会社員が自宅のベランダでチンコぱおおんさせて逮捕されたって昔聞いた
○○病院の医師が自宅のベランダでチンコぱおおんさせて逮捕されたって昔聞いた
○○学校の教諭が自宅のベランダでチンコぱおおんさせて逮捕されたって昔聞いた

まぁ、よくある話だな

452:デフォルトの名無しさん
08/11/14 19:11:29
開発環境
OS:Vista64bit
DirectXSDK:Microsoft DirectX SDK (March 2008)
VisualStudio2008

URLリンク(www.h2.dion.ne.jp)

このサイトのコードを試すと

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:デフォルトの名無しさん
08/11/14 19:28:19
ここはDirectX初心者であって、統合環境初心者スレじゃない。
ライブラリの指定も出来ない奴はDirectX云々以前の問題。

454:デフォルトの名無しさん
08/11/14 19:46:29
DirectX勉強する前に、C++の勉強をする
これマジおすすめ

455:デフォルトの名無しさん
08/11/14 20:23:32
LIBのディレクトリ指定だけで完了と思い込んで個別のLIB指定しないのは
外部のLIB初めて使う人か

456:デフォルトの名無しさん
08/11/14 20:35:04
とはいえC++だけの勉強だと
ライブラリの追加体験しないこともあるしな

15歳からはじめるDirectXとかいう本は
統合環境のインストールの解説してるのに
ライブラリの追加について一切書いてなくて笑ったのを思い出した

457:452
08/11/14 20:42:31
>>454
C++はそこそこ書けると自分では思っています

>>455
プロジェクト→プロパティ→構成プロパティ→リンカ→入力→追加の依存ファイルには
d3dx9.lib d3d9.libを追加してます、DirectXを使う前にDXライブラリを使ってみて
そのときにはそんなこんなで上手くいったんですけどね・・・

458:デフォルトの名無しさん
08/11/14 20:45:59
まずコンパイルがどういう手順で行われているか
ライブラリをリンクするには何が必要か

directxとは関係ないことだと思うんだよね

459:デフォルトの名無しさん
08/11/14 20:46:51
追加の依存ファイルじゃなくてファルダじゃね?

460:452
08/11/14 21:01:49
すいませんお騒がせしました・・・
実行可能ファイルに追加するのを忘れていました・・・

現在VisualStudio2008を使っていて
以前使っていたVisualStudio2008EEで試した所実行できたのでそこから発覚しました

461:デフォルトの名無しさん
08/11/14 22:16:10
>>431ですが、待っていても全然インストールが始まらないんですが・・・
コンポーネントのインストール
初期化しています→「ファイルをダウンロードできませんでした。後でもう一度実行するか、ネットワーク接続を確認してください」
のループなんですが・・・自分だけでしょうか?

462:デフォルトの名無しさん
08/11/14 22:17:11
セキュリティぬるくkしてみりゃいいんじゃね。知らんけど。

463:デフォルトの名無しさん
08/11/14 22:25:20
質問:ウィンドウモードにおけるティアリングの解消
環境:WindowsXP SP2, DirectX9.0c

ウィンドウモードにおいて、Direct3D9で垂直同期待ちを行っている
にもかかわらず、ティアリングが発生します。
その際、ポリゴン数が増えるに従いティアリングの境界線は下降します。
また、当然かもしれませんがフルスクリーンモードでは正常に描画されます。

ビデオカードの仕様かと思いましたが、ひぐらしデイブレイク体験版では
ティアリングは確認できませんでした。

何か解決法があるとは思うのですが、見当がつきません。
ご教授頂ければ幸いです。

464:デフォルトの名無しさん
08/11/14 22:25:46
>>461
OSが割れじゃね?
割れじゃ無理だけど
心当たりは?

465:デフォルトの名無しさん
08/11/14 22:26:26
>>463
ウィンドウモードでティアリングって回避できるの?

466:デフォルトの名無しさん
08/11/14 22:28:09


ティアリング ウィンドウモード

でぐぐってみたらそのものずばりが出てきたけど
俺的には本当にできるんかちょっと疑問
仕組み的に~・・・まあ、できたら報告ヨロ

467:463
08/11/14 22:36:08
>>464
OSは正規品です。

>>465
Direct3D9から垂直同期待ちが可能になったようです。
ビデオカードに影響を受けるため確実ではないようですが。

>>466
GetRasterStatusを利用してもティアリングは解消されませんでした。

468:デフォルトの名無しさん
08/11/14 22:41:17
ライトを計算してモデルを表示すると普通に表示されます。

ライトと計算して板ポリに貼ったテクスチャを表示させると全体的に暗くなってしまいます。

ライトを計算しないと通常に表紙されます。

ライトを計算させて 通常に表示させるにはどうすればいいんですか?

469:468
08/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:デフォルトの名無しさん
08/11/14 22:45:17
>>461です
この間変な音がしたり、PC画面にラグが出たりしてたので、OSがこわれているのかもしれません・・・
その場合どうすればいいんですか?

471:デフォルトの名無しさん
08/11/14 22:46:20
>>467
無理でしょ
できる道理がわからない

472:デフォルトの名無しさん
08/11/14 22:47:19
パソコン変えろよカス
全然DirectXと関係ない質問だ
もう二度とくるなよ

473:デフォルトの名無しさん
08/11/14 22:48:23
>>470
新しいPCを買う
(自作orノートPCの方向は無しで
趣味ゲーPGでノートPC買う人がいるけど
何回も実行繰り返してるとノートだとなんかグラボの調子悪くなるなーっての俺だけ?)

474:デフォルトの名無しさん
08/11/14 22:51:51
>>464>>473さん返答アリでした
他の旧バージョンDirectXはDLインスコできたのですが、関係なさそうですね

475:デフォルトの名無しさん
08/11/14 22:56:38
9.0cなんてダウンロードできるところからいって見つかりにくいし
やめたほうがいいんじゃね?
情報の共有者も少ないことを意味してるよ

476:デフォルトの名無しさん
08/11/14 22:57:34
9.0cがよかったのはなんか他のバージョンがdllを配ってくれなかった頃だけど
今はパックで全部くばってるからつかう意味ないよ

477:463
08/11/14 23:09:47
>>471
出来ないかもしれないですが
垂直同期待ちを正確に行えるなら理論上は可能かなと。

>>475
>>476
確かに。
バージョンを更新すれば改善される可能性もあるかもしれませんね。

478:デフォルトの名無しさん
08/11/14 23:22:42
デスクトップ分のバッファを取ってフルスクリーン風に扱えばいけるのだろうか?w

479:デフォルトの名無しさん
08/11/14 23:34:42
ID3DXFont に PreloadText
って関数が出来てるんだけど。
これ使うとはやまなったりする?

480:463
08/11/14 23:45:13
>>478
壮大ですね。
ただ、フルスクリーンにしないなら、垂直同期を取る必要がありますし、
結局ティアリングは回避できないかとおもいます。

少し話はかわるのですが、描画コストが同じなら同じところに境界線が発生します。
そして、描画コストが増大するに従い境界線は下降します。
ということは、垂直同期は実は正確に取れていて、
描画にかかった時間分ずれが生じてティアリングが発生しているのかと思いました。
そのため、EndScene()を呼んだ後、描画完了まで
Sleepで数十ms待たせてみたのですが解消されませんでした。
ちなみに、クエリは自分の環境では作成できないため実験は行えていません。

他にアイデアはないでしょうか。

481:デフォルトの名無しさん
08/11/15 00:15:51
DirectX9でもウインドウモードで垂直同期をとるもは無理。
あれは内部でタイマーを使ってそれっぽくしているだけ。
単純にウインドウモードと挙動を合わせるためのものであって、
それ以上でもそれ以下でもない。

482:デフォルトの名無しさん
08/11/15 00:24:08
Presentするとちゃんと60Hzで返ってくるよ

483:463
08/11/15 00:42:52
>>481
なるほど。
ただ、Present内部ではGetRasterStatusを使用して
画面がリフレッシュされていないタイミングをはかっているようです。
その際に、タイマーを利用しているのかもしれませんが、走査線が下端に到達
するまでの時間を算出してその時間分待っているのではないでしょうか。
少し、Presentがブラックボックス化しているのが気になりますね。

本当にバックバッファとフロントバッファのコピーは高速なんでしょうか。
ポインタを入れ替えるだけとドキュメントには書かれていますが。
もし、そこに時間がかかっているなら、描画コストが増えるに従って
境界線が下降する理由もわかります。

484:デフォルトの名無しさん
08/11/15 00:56:45
>>467
俺はウインドウモードでティアリングを防ぐなんて試したことはないが、
GetRasterStatusの使い方が悪いんじゃない?VBlank待ってない?
走査線がクライアント領域より下にいったら、即Presentでいいかと。

あと、GetRasterStatusの前にD3DQUERYTYPE_EVENTいれとかないと
意味がないと思う。

485:デフォルトの名無しさん
08/11/15 01:02:27
> フルスクリーン モードは、リフレッシュ レートやスワップ効果にかかわらず D3DPRESENT_INTERVAL_IMMEDIATE をサポートすることにより、
> ウィンドウ モードと同様の使い方をサポートします。D3DPRESENT_INTERVAL_DEFAULT はデフォルトのシステム タイマ精度を使います。

システムタイマーは1000msの精度。60Hzのエミュレートなら16.66666…で割り切れないのでどっちにしろ徐々にずれる。
D3DSWAPEFFECT_COPYを指定しない限りは明示的にバック⇒フロントへのコピーはない。
コピーしてたとしても全画面描画1回相当の処理が目に見えるほど遅延していくなら根本的に1/60秒で動かないだろ。

まぁそこまで細かく気にするならゲームなんだしフルスクリウーンでやれや、って事だろう。

486:デフォルトの名無しさん
08/11/15 10:00:50
ウィンドウモードでゲームプレイする奴はその程度の事を気にしない

487:デフォルトの名無しさん
08/11/15 10:06:43
試してみようと思ったら、俺のところでは全くティアリングが発生しない。
Vistaだからか?

488:デフォルトの名無しさん
08/11/15 10:23:36
はやくおまいらの話についていきたい45歳秋

489:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/11/15 12:01:57
別に好きな方で問題ない

491:デフォルトの名無しさん
08/11/15 12:05:10
スレッド

492:デフォルトの名無しさん
08/11/15 12:28:58
>>489
DirectつながりでDirectInput使う


493:463
08/11/15 17:27:54
>>484
D3DQUERYTYPE_EVENTは自分の環境では作成できないです。
走査線がクライアント領域より下にいった直後にPresentしても多少
境界線の位置がかわる程度で違いはほとんどありませんでした。

>>485
なるほど。タイマーを使っているとは知りませんでした。
確かに、少しずつずれていきますね。
D3DSWAPEFFECT_COPYにしてみましたが、さほど違いは出なかったです。
とすると、疑問なのはGetRasterStatusを使ってもずれるという点です。
D3DPRESENT_INTERVAL_IMMEDIATEで生成しておいて、GetRasterStatusを使っても
ほとんど同じところに境界線ができるんです。

>>486
最悪、気にしない方向で諦めようかと思ってます。

>>487
vistaはOSレベルで制御しているため、ティアリングが生じないようですね。


494:449
08/11/15 17:32:37
あれから色々いじってみて
キー入力で画像を動かすのを作りました。

一応思うようにできたのですが
もっと簡単なやり方・効率のいい方法 などありましたら ご指摘お願いします。

ソースです
URLリンク(www7.uploader.jp)

↑ → ↓ ← キーで操作できます

よろしくお願いします。

495:デフォルトの名無しさん
08/11/16 06:42:43
>>494

ゲームを作りたいならもっと汎用性がある方が良い

とは言ったものの、自分じゃ直し方良く分からないので他の人に(ry

496:デフォルトの名無しさん
08/11/16 09:14:26
>>494
frame.cpp: line 117-118
m_dwStyle = GetWindowLong(m_hwnd, GWL_STYLE);
m_dwStyle = 2495741952;
これはどんな意図があるんですか…?

497:デフォルトの名無しさん
08/11/16 09:34:51
スタイル初期値です。

498:デフォルトの名無しさん
08/11/16 09:37:59
3Dリアルタイムアニメーション

という本から参考にした部分があるのですが

その部分の補足には

スタイル初期値(とりあえずこれで問題はない)

と本にコメントが付け加えられてました

499:デフォルトの名無しさん
08/11/16 10:40:46
>>498
問題しか見えないw

500:デフォルトの名無しさん
08/11/16 11:26:39
GetWindowLongPtr使うべきだし
GetWindowLongした意味ないし
マジックナンバー使うし

501:デフォルトの名無しさん
08/11/16 11:32:33
>>498

移動のコードは間違いじゃないけど、
せっかく入力・演算・描画を分けた意味がない気がする。

他の人にも意見を聞いてみるといいよ。

502:デフォルトの名無しさん
08/11/16 12:15:53
スミマセン質問があります。
環境 : VC2005 / SDK(March 2008) / XP

DirectXでXファイルを扱うときに頂点カラーを引っ張りたいのですが何処を見ればいいのでしょうか。
HLSLで描画する際にVertex ShaderのCOLOR0に自動的に入ってくると思ったらそうじゃないみたいで……・

503:デフォルトの名無しさん
08/11/16 12:31:30
ダダーンウーボヨボヨボヨアーアーアー

504:デフォルトの名無しさん
08/11/16 13:16:30
>>502
xファイルに頂点カラーの情報(MeshVertexColors)が入っていないか
入っていたとしても頂点フォーマットに頂点カラーが含まれてないかのどっち

単純にテクスチャなしのxファイルを表示したいだけなら
マテリアルのDiffuseをシェーダーに渡して色情報として計算する

505:デフォルトの名無しさん
08/11/16 13:32:10
返信ありがとう御座います。
xファイルにはデータが入っていることを確認したので頂点フォーマットに無いのでしょうね……

マテリアルはオブジェクトの識別に使うという変な使い方してて、
同一マテリアル内で色を変える場合頂点カラーが必要という珍妙な設計になってるのです。
大人しくマテリアルでやる方向に変えた方が良いかもしれないですね

506:デフォルトの名無しさん
08/11/16 13:35:23
>>505
まるで頂点フォーマットを何かが勝手に作るように書いてるが
頂点フォーマットを作るのはおまえさんの仕事だぞ。

507:502
08/11/16 14:10:07
D3DXLoadMeshFromXでXファイルを読み込む前に、
FVFをどこかで設定出来ると言うことですか……?
すみません勉強不足過ぎました。もう少し調べてきます。

508:463
08/11/16 14:31:41
Presentの代わりにBitBltを利用してみました。
確かにティアリングは減った(ほとんど見えない)と思いますがFPSが著しく落ち込みガタガタです。
ただ、FPSが25程度なのでがたがたして気づかないだけかもしれませんが。
一応、環境や最適化不足のためかもしれないので手順を書いておきます。

1, Flags=D3DPRESENTFLAG_LOCKABLE_BACKBUFFERでDirect3DDevice9を生成。
2, GetRasterStatusで垂直同期待ちを行う。
3, バックバッファからHDCを取得し、BitBltでウィンドウへ書き込む。

もう少し細かい話もありますが、大方こういう手順になるかと思います。
どうもBitBltの負荷が高そうですが、高速化する手はありますか?

509:デフォルトの名無しさん
08/11/16 14:36:42
GDIの遅さや不便さを何とかするために
DirectXが開発されたのに原点にもどったら本末転倒

510:デフォルトの名無しさん
08/11/16 14:36:55
>>508
FPS25じゃ垂直同期に間に合う合わないなんて関係無いクオリティじゃないか?

511:デフォルトの名無しさん
08/11/16 14:41:03
モデルを最初から左にずれた場所に配置したいのですが

D3DXMATRIX mtx;

D3DXMatrixIdentity(&mtx);

D3DXMatrixTranslation(&mtx, -2.0f, 0.0f, 0.0f);

d3ddevice->SetTransform(&mtx, 0);

で配置すると確かに配置できるのですが キーボードでキーを押した分ずらすコードを加えるにはどうすればいいですか

512:デフォルトの名無しさん
08/11/16 14:45:35
そろそろ自分で考える努力をしたらどうかな。

513:デフォルトの名無しさん
08/11/16 14:45:54
Win32APIすれで聞くといいんじゃね

514:デフォルトの名無しさん
08/11/16 14:48:47
D3DXMatrixTranslationの引数の値を変える

515:デフォルトの名無しさん
08/11/16 14:58:02
>>512 分かりました 自分で悩みまくって作った方が上達する気がしてきました

それではしばらく失礼します。

516:デフォルトの名無しさん
08/11/16 15:48:33
描画内容があまり頻繁に変化しないので、
変更があったときのみ描画処理を行うようにして、それ以外はフロントバッファに表示されているものをそのまま表示したいのですが、
presentする直前にバックバッファをサーフェイスにコピーしておいて、それを書き戻すとかでいいんでしょうか?
一般的な方法があれば、教えてください。

517:デフォルトの名無しさん
08/11/16 15:56:41
そもそも描画が行われなかったときは
サーフェイスをクリアしなければいいのでは?

518:デフォルトの名無しさん
08/11/16 16:13:36
>>516
D3DPRESENT_PARAMETERSのSwapEffectに
D3DSWAPEFFECT_COPYを指定する。

519:デフォルトの名無しさん
08/11/16 16:32:11
本にはD3DSWAPEFFECT_DISCARDにしろって書いてあったよ

520:デフォルトの名無しさん
08/11/16 16:35:53
入門サイトを見て
とりあえずデバイスを作ってPrsentだけしてみたら
アダルトゲームの画面が表示されたんですけどバグですか。

521:デフォルトの名無しさん
08/11/16 16:39:17
いいえ、仕様です。

522:デフォルトの名無しさん
08/11/16 16:41:01
ハッキングされてます

523:516
08/11/16 16:57:14
レスいただいた方々、ありがとうございます。

>>517
質問させていただく前に描画関数の中身とか呼出位置を変えて色々試してたんですが、
他のウィンドウがかぶった時の挙動とか、どうにも思い通り行かなくて質問させていただいた次第でしてorz

>>518
バッチリ思い通りになりました、ありがとうございました。

>>519
ご忠告どうもです。
もうすこし詳しく調べてみます。

524:デフォルトの名無しさん
08/11/16 17:10:14
>>520 VRAM

525:デフォルトの名無しさん
08/11/16 20:46:13
ちょっとお聞きしたいのですが、よくゲームの動作環境で
VRAM幾つ以上というようなのがありますよね
自作ゲームの動作環境にそういう情報を明記したいのですが、そのために
現在PCで使われているVRAM容量を調べるにはどうすればいいのでしょうか?
使用VRAM情報をチェックする関数とかはありますか?

526:デフォルトの名無しさん
08/11/16 20:52:43
>>525
うん

527:デフォルトの名無しさん
08/11/16 21:27:25
>>526
DirectX9なのですがなんという関数を使えばいいのでしょうか?

528:デフォルトの名無しさん
08/11/16 21:41:40
>>527
GetAvailableTextureMem
だが、推定
BBXに「?」ってのが書いてある

529:デフォルトの名無しさん
08/11/16 21:50:15
そこは遥か昔に閉鎖したぞ

530:デフォルトの名無しさん
08/11/16 21:51:49
SDK(March 2008 以降)に VideoMemory ってサンプルがあるわよ。
URLリンク(msdn.microsoft.com)(VS.85).aspx
\Samples\C++\Misc\VideoMemory

531:デフォルトの名無しさん
08/11/16 22:03:27
>>529
いや、生きてるぜ

532:デフォルトの名無しさん
08/11/16 22:41:37
今時はVRAMなんてほとんど基準にならんけどなー

533:525
08/11/16 22:56:06
レスありがとうございます。
>>523
LoadTextureをやる毎に使ってみました。
が、数値は70MBちょいぐらいで固定っぽいです。(ビデオカードのVRAMは96MB)

テクスチャは読み込んでもVRAMには格納されないんでしょうか?
簡単な2Dゲームなのでで処理スピードには問題がない為別にいいのですが…
LoadTextureってVRAMに読み込む/読み込まないの切り替えができるんですかね

>>530
旧バージョンを使ってるので役にたつかわかりませんが、後で見てみます

>>532
確かに、最近のPCゲーだとVRAM容量表記が特にないものが多いですよね

534:デフォルトの名無しさん
08/11/16 22:58:50
DX8あたりからマネージドになってるから気にする必要ないんじゃない。パフォーマンスに影響はあるけど。
昔は全部自前で管理する必要があった。

535:525
08/11/16 23:00:35
>>533
LoadTextureじゃなくてD3DXCreateTextureFromFileInMemoryでした

536:525
08/11/16 23:17:09
>>534
自分なりに調べて見たらD3DXCreateTextureFromFileInMemoryEXというのを使えば
意図的にVRAMに読み込ませる事もできるみたいですね
パフォーマンスが必要になるようなソフトを作る場合にはこちらを使おうと思います。
ありがとうございました。

537:デフォルトの名無しさん
08/11/16 23:22:14
それ主記憶じゃなくてVRAMにストックしておく関数だっけ?

538:デフォルトの名無しさん
08/11/16 23:30:49
プール先を指定できる


539:502
08/11/16 23:35:53
スミマセン、色々調べてみたのですが結局分かりませんでした。
Xファイル自体には頂点色を保持しているのは確認済みです。

D3DXLoadMeshFromXを使ってxファイルを読み込み頂点色が欲しい場合、
LPDirect3DDevice9::SetFVFを使ってFVFを通知してからXファイルを読み込むという手順ではダメで、
いったん読み込んでから、CloneMeshで頂点フォーマットを設定し直すと言うのもやはりダメでした。

D3DXLoadMeshFromXで頂点色を捕まえる方法は有るのでしょうか。
そもそもVertex ShaderのInputのCOLOR0セマンティクスに入ってくるのは頂点色という認識で良いのでしょうか。

540:デフォルトの名無しさん
08/11/17 08:54:08
Xファイルに頂点色が入っているならD3DXLoadMeshFromX()の時点で
作られたメッシュには頂点色が入っている。

541:デフォルトの名無しさん
08/11/17 11:55:27
Vista入りのノート買ったからDX10に手を出してみたけど、意外と変わってるのね。
FVF消えたりD3DFMTが気持ち悪いことになってたり。

で、質問なんだけど、サンプルコードのライセンスってどこに書いてあるの?
卒論のためにコード書かなきゃいけないんだけど、カメラとかいちいち書くのが面倒だから
BasicHLSL10のサンプルを流用したいのよ。
*nixの世界みたいに、ルートディレクトリにはっきりとライセンス定義を置いておいてくれると有り難いんだけど……。

542:デフォルトの名無しさん
08/11/17 12:05:55
別に三流学生の卒論コードなんてどうだっていいだろ
一般公開しなければ

543:デフォルトの名無しさん
08/11/17 12:32:08
HLSLでsamplerオブジェクトを定義するとき
今まではtexture2DやtextureCUBEに関係なく"sampler"と書いていたのですが
textureに合わせてsampler2D, samplerCUBEにしたほうがいいのでしょうか?
違いや書き分ける意味はありますか?

544:デフォルトの名無しさん
08/11/17 16:03:42
>>542
公開するから質問してるに決まってるだろ高卒

545:デフォルトの名無しさん
08/11/17 17:28:01
公開しないでいいよ。君の糞コードなんて。

546:デフォルトの名無しさん
08/11/17 17:51:58
D3DX~は使ったら駄目って常識のはずなんだが

547:デフォルトの名無しさん
08/11/17 18:00:27
ライセンスについて調べようと思ったら、まずは使用許諾書に目を通すものだが、
なんでその程度の、ごく当たり前のことをする程度の知能すら持ち合わせていないのかが謎。

548:デフォルトの名無しさん
08/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
08/11/17 20:48:54
ずっとDebugモードのプロパティいじってた\(^o^)/

自己解決しました、スレ汚しすいませんw

550:デフォルトの名無しさん
08/11/17 20:49:21
プロジェクトの設定はリリースとデバッグで別々だが、ライブラリとか両方に設定してある?

551:502
08/11/17 20:49:49
>>540
遅れましたがありがとうございました。
おかげさまで何とか出来そうです。

552:デフォルトの名無しさん
08/11/18 10:30:08
誰か>>543知りませんか?

553:デフォルトの名無しさん
08/11/18 10:35:13
好きにしろよばーか

554:デフォルトの名無しさん
08/11/18 11:14:48
自分の知らない事、どうでもいい事を聞くと怒り出す奴っているよね。キチガイ?
好きにしていいならsamplerとsampler2Dが分かれてる意味ないじゃん。

555:デフォルトの名無しさん
08/11/18 13:42:30
別れてることに特に意味はないし
好きにすればいいと思うよ
同じサンプリングで描画するなら一つでいいし
物によって変えるなら複数作って使い分ければいいだけ

556:デフォルトの名無しさん
08/11/18 13:52:29
好きにしちゃいけないって誰が決めたの?
当然の事を言われて怒られてるだのキチガイだの言い出す>>554はアホかと。

557:デフォルトの名無しさん
08/11/18 14:36:08
よくわからずに使ってるのか

558:デフォルトの名無しさん
08/11/18 14:37:51
ただのaliasなの?

559:デフォルトの名無しさん
08/11/18 14:44:29
sampler3DやsamplerCUBEのみのSamplerStateがあるため

意味なんかないから好きにしていいとか馬鹿にも程がある
プログラマ失格

560:デフォルトの名無しさん
08/11/18 18:04:21
GLSLでは違うけど
HLSLではまったく同じものなんだが

561:デフォルトの名無しさん
08/11/18 18:10:44
>>559
じゃあ意味があるから好きにしちゃダメだよ
とでもいえば納得するのかな?(笑)

562:デフォルトの名無しさん
08/11/18 18:36:17
というわけで、>>543は好きにしちゃダメだという事で。
はい次の人~。

563:デフォルトの名無しさん
08/11/18 18:40:53
はい次の人~。

564:デフォルトの名無しさん
08/11/18 18:46:50
あのぅ、私は…

565:デフォルトの名無しさん
08/11/18 18:47:02
自分の想定と違う事を言われると納得できないんなら最初からそうすりゃいいのにな
他人の同意がないと何もできないのかね

566:デフォルトの名無しさん
08/11/18 18:48:17
>>564
どちらさまですか?

567:デフォルトの名無しさん
08/11/19 16:24:01
640*480で作ったデバイスを引数にD3DXCreateSprite関数でID3DXSpriteを作ったら、
レンダーターゲットを1024*1024にしてID3DXSprite::Drawを実行したら、画像が引き延ばされて
描画されたんだけど、そうならないようにするにはどうすればいいんですか?
ちなみにレンダーターゲットの大きさは変えられません。

568:デフォルトの名無しさん
08/11/19 16:39:32
好きにしろよばーか

569:デフォルトの名無しさん
08/11/19 16:53:55
わざわざそうしてるんだろ

570:デフォルトの名無しさん
08/11/19 16:59:31
自分の知らない事、どうでもいい事を聞くと怒り出す奴っているよね。キチガイ?
640*480と1024*1024が分かれてる意味ないじゃん。

571:デフォルトの名無しさん
08/11/19 17:00:24
はい次の人~。


572:デフォルトの名無しさん
08/11/19 17:14:06
ウィンドウサイズが640*480じゃないとダメで、レンダーターゲットはテクスチャでなくてはならない。(ピクセルシェーダー使うため)
テクスチャは2のn乗サイズじゃないとピクセルが1対1対応してくれないので、1024*1024にしてるんです。

573:デフォルトの名無しさん
08/11/19 17:17:29
ViewPort

574:デフォルトの名無しさん
08/11/19 17:17:52
1024×1024の画像ファイルの内必要な部分を範囲指定して表示すればいい

575:デフォルトの名無しさん
08/11/19 18:18:38
>>572
>テクスチャは2のn乗サイズじゃないとピクセルが1対1対応してくれない
これの意味が分からん

576:デフォルトの名無しさん
08/11/19 20:00:53
お前が低能無知なだけだろ

577:デフォルトの名無しさん
08/11/19 20:20:04
おれもわからん
一体何とピクセルが1対1?
たてよこ?

578:デフォルトの名無しさん
08/11/19 21:19:49
1:1対応にテクスチャのサイズなんて関係ねぇだろ。
描画する時の問題だ。

579:デフォルトの名無しさん
08/11/19 21:37:13
1:1は意味不明だがテクスチャの元画像の縦横を2のべき乗にすんのが普通。
元画像とテクスチャのバッファサイズが違うと引き伸ばされる
んで、読み込んだテクスチャバッファのうち、640*480の範囲を指定して
スプライトを描画すればよい。

580:デフォルトの名無しさん
08/11/19 22:31:40
なんで自らが引き伸ばして描画しているのに、「されて」とか他人のせいにする奴が現れるんだろう?

581:デフォルトの名無しさん
08/11/19 23:01:32
>>575
2のn乗以外のサイズで作ったときってDrawPrimitiveなんかで描画した時どうしても歪んで描画されないピクセルとかありませんか?
何かやり方があるならそれを知りたいです。
>>577テクスチャ上のピクセルと画面のピクセルがです。

582:デフォルトの名無しさん
08/11/19 23:08:24
まずはD3DXを一切使うのをやめ、画像ファイルをテクスチャに読み込んで自分でUVを設定し描画するところまでやれ。
それで全て解決する上に、自分がいかに間抜けなことを言っているかも理解出来る。

583:デフォルトの名無しさん
08/11/19 23:09:57
とんでもなくボロいビデオカードだと2のn乗以外のサイズのテクスチャ使えない?

584:デフォルトの名無しさん
08/11/19 23:15:52
馬鹿が余計なもん使って遠回りしてらぁw
m9(^Д^)プギャー

585:デフォルトの名無しさん
08/11/19 23:18:21
>>583
正方はさすがにないと思うけど
n乗は守ってるな俺
あんま意味無いかも
っていうか最近のグラボ事情知らん

586:デフォルトの名無しさん
08/11/19 23:34:35
使えても内部的に無駄が出るんじゃね

587:デフォルトの名無しさん
08/11/19 23:36:16
2^n以外のテクスチャが使える場合でもパフォーマンスは2^nより落ちるとかいう話を聞いたこともある

588:デフォルトの名無しさん
08/11/19 23:39:10
2乗は必須だけど正方かどうかはハード次第だろ。

589:デフォルトの名無しさん
08/11/20 00:06:26
GeForce6以降はテクスチャサイズの最大サイズ以外の全ての制限がなくなったわけだが。
DXTテクスチャですら適当なサイズのまま作れるぞ。

590:デフォルトの名無しさん
08/11/20 03:00:35
>>583
2のn乗が使えないのは、一番新しいのだとIntelの815の統合ビデオ機能かな?
っていうか、NONPOW2CONDITIONALは、2のn乗しか使えないハードウェアでも
ドライバの対応だけでクリアできるものだと思う。

591:デフォルトの名無しさん
08/11/20 03:32:25
おまえらの記憶にもうVoodooは無いのね・・・

592:デフォルトの名無しさん
08/11/20 07:36:53
あんな糞ボードサポートしてどうすんだよ

593:デフォルトの名無しさん
08/11/20 08:56:42
日韓併合における韓国皇帝の勅諭(原漢文)

皇帝、若(ここ)に曰く、朕否徳にして艱大なる業を承け、
臨御以後今日に至るまで、維新政令に関し承図し備試し、
未だ曽て至らずと雖も、由来積弱痼を成し、疲弊極処に至り、
時日間に挽回の施措望み無し。
中夜憂慮善後の策茫然たり。
此に任し支離益甚だしければ、終局に収拾し能わざるに底(いた)らん。
寧ろ大任を人に託し完全なる方法と革新なる功効を奏せいむるに如かず。
故に朕是に於いて瞿然として内に省み廊然として、
自ら断じ、茲に韓国の統治権を従前より親信依り仰したる、
隣国日本皇帝陛下に譲与し、外東洋の平和を強固ならしめ、
内八域の民生を保全ならしめんとす。
惟爾大小臣民は、国勢と時宜を深察し、煩擾するなく各其業に安じ、
日本帝国の文明の新政に服従し、幸福を共受せよ。
朕が今日の此の挙は、爾有衆を忘れたるにあらず、
専ら爾有衆を救い活かせんとする至意に出づ。
爾臣民は朕の此の意を克く体せよ。

隆煕四年八月二十九日

御璽

594:デフォルトの名無しさん
08/11/20 23:50:43
テクスチャをDDSファイルで読み込もうとしているんですが
複数のDDSファイルを読み込むと途中で動かなくなってしまいます
DDSファイルには特殊な処理が必要なんでしょうか?

ちなみに1つであればどのDDSファイルでも
見ている範囲では正常に動いているんですが・・・

595:デフォルトの名無しさん
08/11/20 23:53:06
随分アバウトな質問だな
それはDDS以外のフォーマットなら複数読んでもとまらないってことか?

596:デフォルトの名無しさん
08/11/21 00:02:14
>>595
すいません
よくよく試してみたら他の形式でも同様の止まり方をしましたorz
ちょっと前までDDSは使ってなくてその間は特に問題が無かったんで
DDSのせいだろうと決めてかかってました
多分他のところに問題があると思うのでもう少しコードを見直してきます
またわからないことが出てきたらお願いします

597:デフォルトの名無しさん
08/11/21 00:24:57
エスパーするとマルチスレッドで読み込もうとしてデバイスがマルチスレッドのフラグつけていない

598:デフォルトの名無しさん
08/11/21 00:48:02
Voodooはさすがにもういいだろ
SiS辺りのクソオンボとかi810とかはまだ使ってる人居るけど

599:デフォルトの名無しさん
08/11/21 00:50:18
>>597
あーありそう、昔一度やったことある

600:デフォルトの名無しさん
08/11/21 00:57:04
つーか今から何か出すなら最低でもシェーダーモデル3.0でいいだろ。
GeForce6なんて何世代前のビデオカードだとおもっとるんだ。

3Dゲームやるようなユーザーなら定期的にPC構成弄ってるし。

601:デフォルトの名無しさん
08/11/21 01:02:08
んーどうなのかな
PCのスペック二極化してるから下の層を拾うような仕様だと未だに糞ボードの対応までやってる感じするけど

602:デフォルトの名無しさん
08/11/21 02:11:10
ゲフォ5200と旧ATI9200以上の対応だけすればいい
理由はウチにあるそこそこ低いボードだからだ

作り手で線引きしないときりがない

603:デフォルトの名無しさん
08/11/21 02:26:25
ショップの品揃えで判断するとか。
GFX5200とか未だに定番商品みたいに新品売られてるのが泣ける。

604:デフォルトの名無しさん
08/11/21 08:20:24
だってそれ挿せばとりあえずVista(Aero)動くもん

605:デフォルトの名無しさん
08/11/21 08:37:31
つってもHD3450が5000円で買えるんだし下見るのももういいだろって気がする。
だから日本はエロゲ以外のゲームがろくに出ないんだよ。

606:デフォルトの名無しさん
08/11/21 12:00:45
DirectX10+SM4.0だろ
今更昔のクオリティのゲーム作って何が楽しいんだ

つーかこのスレやっぱりゲーム作る人多いのね

607:デフォルトの名無しさん
08/11/21 12:51:16
>>605
そういうのはPCメーカーが底上げしないと駄目だな
あとVRAMみたいな初心者でもわかりやすい目安みたいなのあればいいのに

>>606
楽しさも人それぞれっしょ
むしろ絵を綺麗にするだけの作業なんて何が楽しいんだよとか思うが

608:デフォルトの名無しさん
08/11/21 13:30:03
>むしろ絵を綺麗にするだけの作業なんて何が楽しいんだよとか思うが
リアルタイム3DCG技術についていけなくなった人が自分を慰めるための常套句ですね。わかりますw

609:デフォルトの名無しさん
08/11/21 13:40:39
自己満足ならそれでもいいんだが
ゲームは結局他人に遊んでもらってなんぼだからな
どんな流麗なCGでも動かなければ意味がない

マイロソフトのやり方だと次あたりのVisualStudioをXP非対応にして
まず開発者側の首を締めにかかってくるだろう
Vista以上でなければソフトが作れない環境ができてしまえば
市場からXPが消えるのも時間も問題と思われる
DirectXSDKはもっと早くXPのサポートを打ち切るだろうしね

610:デフォルトの名無しさん
08/11/21 13:42:37
>>608
海外向けのゲーム作ってる一部の人がそれ言うなら煽りに聞こえるが
日本向けゲーム作ってる人が言うとただの同意にしか見えない

611:デフォルトの名無しさん
08/11/21 14:42:16
すみません。DirectSoundをはじめて利用して、プログラムを作成しています。
そこでよくわからない状況になって困っています。
SDKはDirectX8(VC6++のサンプルがあるため)を利用しているのですが、
そのサンプルを参考にWAVファイルを再生するところまでたどり着きました。
ところが、再生前にフォーカスをはずすと、音が鳴らなくなるという現象が
発生してしまいます。
フォーカスが外れていても、音が鳴るようにするにはどのようにすればよいでしょうか?
よろしくお願いいたします。

612:デフォルトの名無しさん
08/11/21 14:54:05
サウンドバッファをつくるときに
DSBCAPS_GLOBALFOCUSフラグを立てる

この説明でわからないならソースうp

613:デフォルトの名無しさん
08/11/21 15:02:49
>>612
解決しました!!ありがとうございます。
これで無事システムを納品できそうです。
即答ありがとうございました。

614:デフォルトの名無しさん
08/11/21 15:06:04
DirectSound8のサンプルをそのまま利用していたので、パラメータの存在に
気がつきませんでした。説明を読むと、確かにそのとおりの内容になっていますね。
URLリンク(msdn.microsoft.com)


615:デフォルトの名無しさん
08/11/21 17:57:23
>>608
何人でどのくらいの期間で何をつくるのか知らんが
少数人チームで絵なんかこだわってる暇あったら
中身のほうを煮詰めてほしいと思うんだが
どんな凝ったエフェクトつけようとCG屋がウンコな時点で終了
逆に凝らなくても元のCGがきれいならそれなり
そもそも日本の個人ゲーはリアルタイム3DCGだのシェーダがどうのとか
そういうことを気にする以前のレベルだと思う

無論絵が綺麗に越したことはないが、だからといってゲームが面白いかというと別問題

616:デフォルトの名無しさん
08/11/21 18:38:21
バンプや反射、屈折の初級エフェクトすらプロでもあんまり使ってくれない
っていうかそんな時間ないや
デザイナがシェーダの設定ファイルを書いてると遊んでると思われる空気

617:デフォルトの名無しさん
08/11/21 20:34:32
IBasicVideo の GetCurrentImage を使って、
ビデオのワンフレームをビットマップとして保存しようと思っているのですが、
ソースが mpeg2 の場合だと何故か真っ黒なビットマップしか取得できません。
ソース、取得するフレームの位置、mpeg2 video decoder を色々変えて試してみたのですが、
結果は変わりませんでした。
ソースが avi, wmv, mpeg1 の場合は正常なビットマップを取得でることを確認済みです。
このことについて何かご存知の方おられましたらご教示お願いします。
試した mpeg2 video decoder は次のものです。
MpegVideoDecoder PIXELA, Cyberlink Video/SP Decoder

618:デフォルトの名無しさん
08/11/21 20:53:43
正直D3D10に興味が涌かないな

仕事以外で使うならsm3での表現力に不足はないし
ジオメトリシェーダやその他諸々は高速化以外の用途が見出せないからつまらん

619:デフォルトの名無しさん
08/11/21 20:54:16
>>617
DirectShowと戦うスレ Part 4
スレリンク(tech板)

620:デフォルトの名無しさん
08/11/21 21:04:44
>>619
ありがとうございます。移動します。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch