【C++】 DirectX初心者質問スレ Part17 【C】at TECH
【C++】 DirectX初心者質問スレ Part17 【C】 - 暇つぶし2ch262:デフォルトの名無しさん
08/05/01 06:27:11
今日も今日とて、眠らぬまま朝を迎えた・・・・・・・。


263:デフォルトの名無しさん
08/05/01 07:54:59
>>262
バラモス撃破乙

264:デフォルトの名無しさん
08/05/01 16:41:47
>>260
ステンシルバッファ でぐぐるよろし

265:デフォルトの名無しさん
08/05/01 21:01:47
>>264
さんくすです。

266:デフォルトの名無しさん
08/05/02 11:57:01
すみません。
任意の軸を中心に拡大縮小が出来る関数ってありませんか?
回転はみつけたんですが、拡大縮小は見つからなくて・・・。

267:デフォルトの名無しさん
08/05/02 12:37:52
>>266
あるっちゃあるが、ちゃんと行列勉強したほうがいいと思うぞ
細かい調整きくようになるし

268:デフォルトの名無しさん
08/05/02 17:20:58
任意の軸への移動行列×拡大縮小行列でいいんじゃねーの?

269:デフォルトの名無しさん
08/05/02 18:45:06
D3DXMatrixTransformation2D

つーか、何を回転させようとしているのだろうか

270:デフォルトの名無しさん
08/05/02 18:50:51
質問というかアンケート
ここのスレのお兄さんたちはD3DX関数群は肯定派?否定派?
速度でないし、細かい微調整がきかないから、そんなもん使うなって感じ?
それとも、車輪の再発明してもしょうがない、あるんだから使えばいいじゃないって感じ?
なんとなく気になったんで

271:デフォルトの名無しさん
08/05/02 19:08:19
俺はD3D、OpenGL、その他とコードを共有してるんでしかたなく自前で作ってる
でも基本的にあるなら使えばいいじゃない派

272:デフォルトの名無しさん
08/05/02 19:15:43
頭にD3DXをつけずに名前をもっと短くしてくれたら
もっと評価してやらないこともない

273:デフォルトの名無しさん
08/05/02 19:21:54
そんな事より配布の問題をどうにかしてくれ

274:デフォルトの名無しさん
08/05/02 19:23:33
我慢しろよ(`_ゝ´)

275:デフォルトの名無しさん
08/05/02 19:25:02
>>273
わかる
DLLバージョン多すぎ

276:デフォルトの名無しさん
08/05/02 19:28:58
だから2004octを使えとあれほど・・・

277:デフォルトの名無しさん
08/05/02 21:30:26
僕ハンゲームというゲームしたいんですけど
それにはこのdirectxが必要なんですが、その
安全性が非常に心配です。
調べてみると、「DirectXの脆弱性」などとよく書いてあります。

ダウンロードするとしたら、最新の10.1がいいのでしょうか?
それと、当たったらどんな症状が出るのでしょうか?


278:デフォルトの名無しさん
08/05/02 21:32:14
ここはプログラミングの板なのでよそで聞いてください

279:デフォルトの名無しさん
08/05/02 21:35:20
おまえはなにを言ってるんだ



……と思ったが、マジレスするなら、今までWindows使ってて、脆弱性のせいでなんか不都合が起こったことあるか?
そもそも、ココに書き込みしてる時点で脆弱性を突かれて君のパソコンまずいことになってるよ。
他の人(もちろん俺も)は、事前に対策してるけど。君は丸腰なんじゃないか?

280:デフォルトの名無しさん
08/05/02 21:35:39
なんかリアリティがあってワロタ
本当に何もわからんやつは、確かにプログラム→DirectX初心者でこういうところに質問するのかw

281:デフォルトの名無しさん
08/05/02 21:43:17
ハンゲ自体が君の人生にとって有害だよ

282:デフォルトの名無しさん
08/05/02 21:43:34
10.1 はまだ Vista でしか使えなかった気が。
というか、Vista だと標準装備じゃなかったっけ?
入ってないってことは XP なんだろうけど、
それなら 9.0c を入れるといいよ。

283:デフォルトの名無しさん
08/05/02 21:54:49
DirectXの穴はwindows updateで修正されてるし。

284:デフォルトの名無しさん
08/05/03 05:51:55
>>270
D3DX関数群の集まりって昔中身見れたんだけど
なんか難しそうなアセンブラで書いてあって速そう(?)だったよw

285:デフォルトの名無しさん
08/05/03 10:12:11
最近発覚したtga読み込みの脆弱性は
比較的最近のd3dxにしないと駄目だけどね。

286:デフォルトの名無しさん
08/05/04 00:25:15
質問です。

(わかりやすくするために、カメラの座標は0,0,0とします。)
カメラを、とある地点Aと、とある地点Bの中間の方向を向かせるために、以下の方法をやっています。

中間というのは、3次元ベクトルAとBの平均(A + B) / 2 ということではなく、
角度的な中間です。
(説明のために2Dベクトルで例えます)現在のカメラの方向からAが+20度の方向。Bが+80度の方向にあるのならば、カメラは+50度の方向を向かせたいのです。

URLリンク(w3e.kanazawa-it.ac.jp)
この法則を利用し、Aまでの距離とBまでの距離を利用。
lenA = D3DXVec3Length(pVecA);
lenB = D3DXVec3Length(pVecB);
D3DXVec3Lerp(pOut, pVecA, pVecB, lenA / (lenA + lenB));
としてpOutの方向を向かせれば、丁度中間の方向を向けそうです。
まず、ここまであっているでしょうか?

あっていると仮定して、次のステップ、(例えば)AとBの角度的に3:7の方向を向きたいという場合はどうすればいいでしょうか?

287:デフォルトの名無しさん
08/05/04 01:01:25
角度で応用きかすなら極座標を使った方がいいような気がする

288:デフォルトの名無しさん
08/05/04 12:34:56
図の角度**のところをそれぞれθ、φとおいて、二通りの求め方で面積S1、S2求めて比較

289:デフォルトの名無しさん
08/05/04 15:42:44
質問よろしいでしょうか
D3DXLoadMeshHierarchyFromXを使っているのですが、Debugビルドの場合のみ
14MBほどの大きさのXファイルの読み込み時に

ハンドルされていない例外 は test.exe にあります: 0xC0000005: Access Violation。

と出てしまいます。
10回に1回くらい出ないこともあるのですが・・・
__sbh_free_block の中でエラーになっているようで、これはメモリー空間が破壊されている時に出るとのこと
なのでプログラムを最小構成にしてやってみましたが、それでもダメでした。

Releaseビルドでは問題は出ません。
また、アニメーションの数を減らして7MBくらいにするとDebugビルドでも問題は出ませんでした。
Xファイルはテキスト版でも、バイナリ版でも同様の結果でした。

何か心当たりある方はいらっしゃいますでしょうか?
環境はVC6.0+DirectX 9.0 SDK Update - (October 2004) です。

290:デフォルトの名無しさん
08/05/04 18:24:27
自己解決しました。
デバッグモード時、d3dx9.libではなくd3dx9d.libをリンクすることでうまくいきました。

291:デフォルトの名無しさん
08/05/04 19:04:18
質問です。
DirectXアプリケーションで、日本語入力(IME)をサポートしようと思っています。

やりたいことは、IMEの変換ウィンドウと候補一覧ウィンドウを表示するということだけなのですが、
DirectXのサンプル(CustomUI)では、独自のコントロールの実装や継承を自前で行うことで実現していました。

CDXUTControl
  ↑
CDXUTEditBox
  ↑
CDXUTIMEEditBox

特にCustomUIのような独自のコントロールを作成したいわけではないのですが、
あきらめてCustomUIと同じような実装を自前でしなければならないのでしょうか。
それとも変換ウィンドウと候補一覧ウィンドウを表示したいだけであれば、もっと楽な方法があるのでしょうか。


292:デフォルトの名無しさん
08/05/05 02:20:18
D3DFILL_WIREFRAME のワイヤーフレームの描画の太さを、太くする方法ってありませんか?

Zバッファへの書き込みをOFFにした状態で2ドット以上の幅でワイヤーフレームを描き、その後通常どおり描画。
とやることで、背景との輪郭線を綺麗に描けるのを期待しているのですが。

293:デフォルトの名無しさん
08/05/05 10:48:52
どんな画面だそれ

294:デフォルトの名無しさん
08/05/05 11:38:21
いい加減固定機能パイプライン使うの止めようぜ

295:デフォルトの名無しさん
08/05/05 11:57:59
>>293
理屈上は背景とキャラと間に線が入る感じになるかと。
ワイヤー時はZバッファへ書き込みしないようにしているので、ワイヤーフレームの後にキャラクタの描画で輪郭線以外は塗りつぶされますから。

>>294
プログラマブルシェーダで同等のことできますか?
モデルのポリゴン裏返して黒くし、法線方向に膨らませる…。っていうやつも悪くはなかったのですが、何分重くて。


スキンメッシュなので、自前でID3DXLineで引くわけにもいかないんですよ。
いかないですよね…?
変形後の頂点位置、わからないですし。



296:デフォルトの名無しさん
08/05/05 16:24:37
>>295
それが速く描画できる理由になるところが俺にはわからん

297:デフォルトの名無しさん
08/05/05 21:15:04
ワイヤーフレームモードでやりゃわかるが、ピクセルシェーダが呼び出される回数が圧倒的に少ないぞ
だが俺はあの線を太くする方法は知らんな
あれば結構魅力的な輪郭線描画法かもしれん

298:デフォルトの名無しさん
08/05/05 21:21:27
質問
連邦VSジオンみたいなゲームでも作ろうかと3Dを本格的に始めたのですが、スペックで相談です。

あのゲームは2VS2なのでキャラが4体でてきます。
1キャラ6000三角ポリゴンくらいで作って4体を画面内に表示したところ、FPS60が維持できませんでした。

私のPCのグラボが、GF6600GTとかなり古めだというのはあるのですが、こんなもんなのでしょうか?

299:デフォルトの名無しさん
08/05/05 21:35:59
実際にやってみてそうなったのなら、幻覚を見るような病気がない限りその通り。

300:デフォルトの名無しさん
08/05/05 22:02:35
えーと、私のプログラムが甘いとは思うので
「それ低すぎだろw何かミスってね?」
でなければいいなと思ったのです。

こんなものですか。1キャラ2000ポリくらいにしないと、マップとかにパワーまわせませんね

301:デフォルトの名無しさん
08/05/05 22:06:45
1キャラ△6000て割きすぎ

302:デフォルトの名無しさん
08/05/05 22:38:29
あちゃー、割きすぎでしたか。
今まで3Dツール上でレンダリングするだけだったので、その癖ですね。
ゲーム用はやはりもっと抑えないとということですか。
ありがとうございました。

303:デフォルトの名無しさん
08/05/05 22:48:30
デバッグをpするとobjbase.h': No such file or directoryと出てデバッグできません
どうすればデバッグできるようになるのでしょうか?

304:デフォルトの名無しさん
08/05/05 22:49:16
>>303は誤字



デバッグをするとobjbase.h': No such file or directoryと出てデバッグできません
どうすればデバッグできるようになるのでしょうか?

305:デフォルトの名無しさん
08/05/05 23:06:05
objbase.h': No such file or directoryだけだとわかりませんね
エラーメッセージ貼ります


c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory
Stage4.cpp
c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory
Stage3.cpp
c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory
Stage2.cpp
c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory
Stage1.cpp
c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory
Ranking.cpp
c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory
Option.cpp
c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory
MyGameLib.cpp
c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory
Main.cpp
c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory


306:デフォルトの名無しさん
08/05/05 23:16:53
デバッグ?コンパイルじゃなくて?

307:デフォルトの名無しさん
08/05/05 23:17:31
そのパスに、d3d9.hは実際にあるの?ないの?

パスはあるけど、ヘッダファイルだけないの?
それともパス自体ないの?

308:デフォルトの名無しさん
08/05/05 23:40:39
>>306
デバッグボタンでコンパイルしてるというのでしょうか・・・?

>>307
あるとかないとか言われてもわかりません
インストールしてオプションでパス設定してデバッグしただけですから・・・
Microsoft DirectX SDK (August 2007)ファルダの中にはDeveloper Runtime Documentation Include Lib Samples Utilitiesフォルダがあります

309:デフォルトの名無しさん
08/05/05 23:43:16
Windowsのパスもわからんのに、プログラム組むのは無茶だぜ…

c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h
というファイルは、Windows上にファイルとしてきちんと存在してるの?
パス間違えてるんだと思うぜ?

半角スペースのあるなし
括弧の半角全角とか、きちんとやってみ。

310:デフォルトの名無しさん
08/05/05 23:44:42
真性のゆとりだな

311:デフォルトの名無しさん
08/05/05 23:52:45
3Dでキャラの髪の毛が動きに合わせて(自動計算で)フワってなるやつって、
動きの計算は自前でやるにしても、どうやってモデルから構造出して、計算してんのかなぁ
やったことある人いる?

312:デフォルトの名無しさん
08/05/05 23:55:59
普通に自前でぼーん入れてノードを布シミュの応用で動かしてるだけじゃねーの大抵は

313:デフォルトの名無しさん
08/05/06 00:02:41
d3d9のC/C++ヘッダーってファイルあります

314:デフォルトの名無しさん
08/05/06 00:03:19
>>313>>309へレス

315:デフォルトの名無しさん
08/05/06 00:46:22
objbase.h がないんだとさ。
PC内全検索して、objbase.hがあるか確認

あるなら、そこへもパス通せ。
ないならSDKの再インストール

316:デフォルトの名無しさん
08/05/06 00:58:58
クロスシミュレーションの動きを、Xファイルにアニメーションとして取り込むことってできませんよね?
再生するだけで十分なのですが、Direct3Dでクロスシミュを簡易的に再生するのに適した方法はどんなのがありますでしょうか?

317:デフォルトの名無しさん
08/05/06 01:12:24
>>315
C:\Program Files\Microsoft Platform SDK\Includeにあるみたいなんですがこれでいいんでしょうか?

318:デフォルトの名無しさん
08/05/06 07:46:19
>>316
Xファイルを吐き出す側の3Dソフトに
クロスシミュのプラグインとか入れて、そのモーションで吐き出すが一番簡単


それとも自前でクロスシミュをDXで出来ていて、それをDX上でしたくてどうにか出来ない、
って事とは思えないが…一応…

前提としてD3DX関数でしかXファイル扱えないとかじゃないよね…
クロスシミュで求めた頂点で、モーフアニメーションでもすれば良いじゃん

319:デフォルトの名無しさん
08/05/06 07:54:17
>>286
亀レスで申し訳ないが…

カメラ位置からA地点を結ぶベクトルA、カメラ位置からB地点を結ぶベクトルB

それぞれのベクトルA, Bを単位化して、その単位化したベクトルをAA, BBとする

AAとBBを結ぶベクトルCCを作って、そのCCの長さを任意に割合で分ける点DDを作る

カメラ位置とそのDDを結ぶベクトルが君の求めるカメラ注視点ベクトルだと思うが…

320:デフォルトの名無しさん
08/05/06 08:25:59
質問させてください。
dxsdk_aug2007をインストール中に「This pre-release version of XAudio2 has expired please upgrade to tha latest version」と出るのですが、
そのままokをクリックしてインストールを終わらせていいのでしょうか?

321:デフォルトの名無しさん
08/05/06 09:29:44
>>320
MSお得意のベータ版の時限装置が発動でもしてんじゃね?
xaudio2使うんじゃなければ問題無いと思うよ。

322:デフォルトの名無しさん
08/05/06 09:37:46
MyGameLib.obj : error LNK2019: 未解決の外部シンボル __imp__TranslateMessage@4 が関数 "void __cdecl playMovie(char const *)" (?playMovie@@YAXPBD@Z) で参照されました。
MyGameLib.obj : error LNK2019: 未解決の外部シンボル __imp__GetClientRect@8 が関数 "void __cdecl playMovie(char const *)" (?playMovie@@YAXPBD@Z) で参照されました。
D:\プログラミング参考サンプル\アクションゲームプログラミング\マスカットボーイ\ソースファイル\MuscatBoy\Debug\MuscatBoy.exe : fatal error LNK1120: 外部参照 21 が未解決です。
ビルドログは "file://d:\プログラミング参考サンプル\アクションゲームプログラミング\マスカットボーイ\ソースファイル\MuscatBoy\Debug\BuildLog.htm" に保存されました。






文字数制限にひっかかるので多少省きましたすみません
このエラーの解決策を教えてくださいお願いします

323:デフォルトの名無しさん
08/05/06 10:02:45
関数宣言はあるのに実態が無いんだろ

324:デフォルトの名無しさん
08/05/06 10:55:18
>>319
亀レスでも大変ありがたいです。
ただ、AAとBBを結ぶCCは直線なので、任意の割合で分けても「角度的に割合で分けた」ことにはならないと思います。
本当に角度的なものなら、DDはAAとBBを結ぶ「曲線」の上になければならないと思います。

325:デフォルトの名無しさん
08/05/06 11:05:33
>>324
その通り
それよりなぜ極座標を使わないかを教えてくれ


326:デフォルトの名無しさん
08/05/06 11:26:10
>>318
Xファイルから布部分を取り出して、自前でクロスシミュしてリアルタイムに描画ってのはできます。
これだと
・リアルタイムゆえ、色々な変化に柔軟に対応可能
・リアルタイムに計算するコストが必要
ですよね。

今回はキャラがきまったアニメーションしかしません。リアルタイムに計算しない方針です。

D3DXのXファイル再生サポートをD3DXAnimationControlerしか知らないのですが、
これが制御するのはボーンの動きだけですよね?
古典的クロスシミュの1つとして、布に大量にボーンを仕込んで…という方法がありますが、(D3DXを使った)Xファイル再生ではその方法しかないのかな?という疑問です。

327:デフォルトの名無しさん
08/05/06 11:35:51
>>325
極座標を使うということは、一旦座標をatanなどを使って角度に直した方がいいということでしょうか?
AとBと0,0,0を含む平面を考え、その平面上でのAの角度(0度とすると計算しやすいか)と、Bの角度を求める。
という方法でしょうか?

また、今勉強中なのですがクォータニオンというものを使えば、望んでいることが簡単にできるのかとも思っているのですがどうでしょうか?

328:デフォルトの名無しさん
08/05/06 11:48:14
>>327
角度で応用きかすなら角度に直した方が可読性が高いかと思って
思いついてたのはargとpolar

ごめんクォータニオンはよくわからない

329:デフォルトの名無しさん
08/05/06 11:51:03
>>322
Platform SDKをインストールしていなければインストール。
URLリンク(www.microsoft.com)

インストールしている場合、binとincludeとlibの優先順を確認。
URLリンク(forums.microsoft.com)


330:デフォルトの名無しさん
08/05/06 14:59:47
>>321
そうですか。
クリックしてみます。
ありがとうございました。

331:デフォルトの名無しさん
08/05/06 15:54:51
>>324
AAとBBは単位化してるから、CCは二等辺三角形の底辺と同じなんだけど…
プロセスが必要で、結果が求まるだけじゃ駄目なのかね

332:デフォルトの名無しさん
08/05/06 16:04:46
>>331
>>319だと角の2等分でしかうまくいかない

333:デフォルトの名無しさん
08/05/06 16:10:04
>>328の訂正
そういや3次元だからargとpolarは使えないわw
>>327の通りです。
座標系変換の関数がなければ作ってみてもいいだろうし

334:デフォルトの名無しさん
08/05/06 16:38:58
>>329
レスありがとうございます
URLリンク(forums.microsoft.com)
このサイト通りにやったら>>322のエラー文は消えましたが新たにこのエラー文が出てきました
解決策を教えてくださいお願いします




LINK : fatal error LNK1104: ファイル 'd3d9.lib' を開くことができません。

335:デフォルトの名無しさん
08/05/06 17:16:41
>>334
libの設定の先頭に↓は記述してる?
c:\program files\microsoft directx sdk (august 2007)\lib


336:デフォルトの名無しさん
08/05/06 17:19:26
>>326
その条件なら
事前計算して、その結果をXファイルにフィードバックで良いかと

今あるか分らないが、サンプルにイルカのモデルがアニメーションするのがあって
(確か海底みたいな場所で…)
それが1Xファイルで、頂点モーフしてるフォーマットだったと思う
つまり、Xファイルは頂点モーフ出来るはずだよ

フォーマット調べて、任意のキーフレーム時の頂点情報を書き込めば
補間は確かスプラインとかリニアで種類がないけど、頂点モーフ出来るんじゃないかな

…メッシュの部分的なモーフをサポートしてるかは微妙
駄目なら駄目で、クロスシミュ適応部分だけ別ファイルにして、本体に自前で子供付けするとか

337:デフォルトの名無しさん
08/05/06 17:22:28
>>335
レスありがとうございます
c:\program files\microsoft directx sdk (august 2007)\lib
これは一番上にあります
その下にPlatform SDKがあります
インクルードのdirectxも一番上にあります
その下にPlatform SDKがあります

338:デフォルトの名無しさん
08/05/06 17:36:54
>>332
理解した、サンクス

>>327
ベクトル演算と3次元回転と内積でいけるような気がする

思いつきだけど
ベクトルA(どちらか)を、加算でも減算でもいいからXY成分を0にするベクトルAAを求め
AをZ成分のみにする( A(0,0,*)みたく )
そのベクトルAAをベクトルBにも適応( つまりベクトルAをZ軸とする座標へ変換 )
( 以降、その座標系の話で )

ベクトルBとXZ平面がなす角度を求め( ベクトルBからY成分をカットして作ったベクトルBBと内積で求める )
その角度でベクトルBをZ軸回転させ、ベクトルAとBをXZ平面にもっていく

ここで、XZ平面上でのベクトルAとBのなす角を求め、その角度を使って任意の比率角度を決めて
その角度で、ベクトルBを今度はY軸回転させたベクトルCを作る

最後にベクトルCを、ベクトルBBを作った逆の回転、座標変換した逆の計算をしてもどに戻せば…
スマートじゃないけど、こんな感じは?



339:デフォルトの名無しさん
08/05/06 17:44:40
ムービーをWindowsXP/Vistaを対象に再生したいのですが
安定して使える関数が分からずに困っています。
現在ではどういった関数が使われているのでしょうか?

340:デフォルトの名無しさん
08/05/06 17:45:55
>>338
スマートじゃなさすぎないか?w
それなら327の方法のままでいい気がするが
俺もやったことはないからツッコミだけですまんが、3Dシューティングのミサイルとかって毎フレーム相手の座標に向けて1度ずつ向きを変えるとか普通にやってそうだよな・・・
意外と方法確立されてないのか?

341:デフォルトの名無しさん
08/05/06 17:50:53
>>340
自分でもスマートじゃないと思うが…

しかし、実際に327を行なう手順を記述しただけだと思うんだが
(オイラー法のみでクォータニオンを使わないで)

342:デフォルトの名無しさん
08/05/06 18:09:32
>>336
それっておそらく
URLリンク(www.microsoft.com)
ですよね。確かに最初見たときかなり衝撃的でした。
でもこれは3つのXファイルのメッシュデータを、自前でモーフしてるっぽいです。

あと、DirectX9のサンプルの中にイルカのXファイルはあるのに、使用しているサンプルが見つからないのはなぜでしょうね・・・

343:デフォルトの名無しさん
08/05/06 18:41:43
>>337
最後の「\x86」が足りなかったか。
c:\program files\microsoft directx sdk (august 2007)\lib\x86

このフォルダと、フォルダの中にd3d9.lib等一式が存在することを確認。


344:デフォルトの名無しさん
08/05/06 18:57:07
>>343
レスありがとうございます
c:\program files\microsoft directx sdk (august 2007)\lib\x86
この設定にしたら>>334のエラー文はなくなりましたがまた>>322のエラー文が出てきました
解決策を教えてくださいお願いします

345:デフォルトの名無しさん
08/05/06 19:09:29
>>344
#include <windows.h>呼んでないとか・・・w

346:デフォルトの名無しさん
08/05/06 19:16:56
>>345
レスありがとうございます
もう少し詳しくお願いします
それだけだとちょっと分かりません
すみません

347:デフォルトの名無しさん
08/05/06 21:04:11
>>346
その部分はもはやDirectXとは関係無いエラーだ
おそらく環境のインストールに失敗している
あとは汎用の初心者質問スレへ行った方がいい
これ以上だとスレ違いということで叩かれるよ

348:デフォルトの名無しさん
08/05/06 22:15:53
すみません、DirectX上で動くゲームを作成してるんですが、
あるモーションのキーフレーム数を調べたいんです。
(無駄にキーフレームの多すぎるモーションはリダクションをしたいんです)

LPD3DXANIMATIONSETのGetNumAnimationsがそれ用の関数だと思ったんですが
どうもボーン配列の数を返しているみたいで・・・。
どうすればキーフレーム数を調べる事が出来るんでしょうか?

349:デフォルトの名無しさん
08/05/06 22:40:12
すみません、Visual C++ 6.0でDirectXのXファイル読み込みをプログラムしたのですが
上手くいきません。ビルドには成功したのですが、実行してもすぐに終了してしまいます。
SDKはDirectX 9.0 Update summer 2003を使っています。
デバッグ内容も下記に記載します。分かる人、教えて下さい、宜しくお願いします。


350:デフォルトの名無しさん
08/05/06 22:42:52
'ntdll.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\kernel32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\user32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\gdi32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\d3d9.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\d3d8thk.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\msvcrt.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\advapi32.dll' をロードしました、合致するシンボル情報は見つかりませんでした

351:デフォルトの名無しさん
08/05/06 22:44:37
'C:\WINDOWS\system32\rpcrt4.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\secur32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\version.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\winmm.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\dinput8.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\imm32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\lpk.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\usp10.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\uxtheme.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\Program Files\Trend Micro\Virus Buster 2007\TMAS_OE\TMAS_OEHook.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\MSCTF.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\Downloaded Program Files\CnsMin.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\shlwapi.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\imagehlp.dll' をロードしました、合致するシンボル情報は見つかりませんでした。

352:デフォルトの名無しさん
08/05/06 22:45:10
単純にループ書いてなくて一回素通りして終了するプログラムになってるとかじゃないよね?

353:デフォルトの名無しさん
08/05/06 22:45:13
'C:\Program Files\Trend Micro\Virus Buster 2007\TMAS_OE\TMAS_OEHook.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\MSCTFIME.IME' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\ole32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\ATOK17W.IME' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\shell32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\ATOK17DE.DLL' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\ATOK17AE.DLL' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2982_x-ww_ac3f9c03\comctl32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\comctl32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\Program Files\Trend Micro\Virus Buster 2007\TMAS_OE\TMAS_OEHook.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\Program Files\Trend Micro\Virus Buster 2007\TMAS_OE\TMAS_OEHook.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\Program Files\Trend Micro\Virus Buster 2007\TMAS_OE\TMAS_OEHook.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\Program Files\Trend Micro\Virus Buster 2007\TMAS_OE\TMAS_OEHook.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\Program Files\Trend Micro\Virus Buster 2007\TMAS_OE\TMAS_OEHook.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\hid.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\setupapi.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\wintrust.dll' をロードしました、合致するシンボル情報は見つかりませんでした。

354:デフォルトの名無しさん
08/05/06 22:45:54
'C:\WINDOWS\system32\crypt32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\msasn1.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\ntmarta.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\wldap32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\samlib.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\d3dxof.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
スレッド 0xF2C 終了、終了コード 0 (0x0)。
プログラム 'H:\CLUB SEE\3Dチェス\my3dlib\Debug\my3dlib.exe' はコード 0 (0x0) で終了しました。


355:デフォルトの名無しさん
08/05/06 22:46:03
ググレカス

356:デフォルトの名無しさん
08/05/06 22:49:20
もはや荒らし
VisualStudio使ってるなら、ブレークポイントで止めて一行ずつ実行してけカス

357:デフォルトの名無しさん
08/05/06 23:13:01
mviewでXファイルを開いた時、アニメーションのリストがメニューの
Animation > Animations の下に最大50個現れると思うのですが、
Xファイルを開いただけだと何故か現れません。

Add Animationで追加オープンすると、最初に開いたXファイルのアニメーションと、追加で開いたXファイルのアニメーションが両方現れるのですが…
AddAnimationせずに、最初に開いたXファイルのアニメーションを表示する方法はありませんか?

358:デフォルトの名無しさん
08/05/06 23:25:14
>>347
レスありがとうございます
インストール時にエラー文はでなかったんですけどねぇ・・・

359:デフォルトの名無しさん
08/05/06 23:28:45
パスも通せない馬鹿は死んでいいよ

360:デフォルトの名無しさん
08/05/07 00:37:22
>352
ループには問題なさそうですね。

>356の言う通りにしたら解決したわ、もっともブレークポイントなど使わずに
一行ずつ実行していったがな。ヒントありがとよカス。


361:デフォルトの名無しさん
08/05/07 02:13:27
>>359
お前が死ねキモデブ

362:デフォルトの名無しさん
08/05/07 03:13:11
みなさーん
池沼には優しくしてあげましょう
社会のゴミですが同じ人間です

363:デフォルトの名無しさん
08/05/07 04:22:37
URLリンク(www.imgup.org)
コンパイル中↑こういうのが出た後に下みたいに「シンボルが読み込まれていません。」が大量に出るんですけどどうしたら出なくなりますか?

'MuscatBoy.exe': 'C:\WINDOWS\system32\ntdll.dll' を読み込みました。シンボルが読み込まれていません。
'MuscatBoy.exe': 'C:\WINDOWS\system32\kernel32.dll' を読み込みました。シンボルが読み込まれていません。
'MuscatBoy.exe': 'C:\WINDOWS\system32\user32.dll' を読み込みました。シンボルが読み込まれていません。
'MuscatBoy.exe': 'C:\WINDOWS\system32\gdi32.dll' を読み込みました。シンボルが読み込まれていません。

364:デフォルトの名無しさん
08/05/07 05:07:45
363は自己解決しました

365:デフォルトの名無しさん
08/05/07 06:06:15
>>364
どうやったら解決したの?
原因は?
もう一回>>1を読んでね。


366:デフォルトの名無しさん
08/05/07 14:52:25
>>365
自己解決の場合は誰に礼を言うの?w

367:デフォルトの名無しさん
08/05/07 14:54:12
>>360
ヒントもらえたんだから感謝せぇよアホ
合致するシンボル情報は見つかりませんでしたってのは、
「デバッグ用にDLLを読み込んだが、特に必要な情報は無かった」
とかの意味だ。(厳密には違うかもしれんが)

それはデバッグ実行すると当たり前に出る内容であって、
そんな大量の、何の問題もない(かつDirectX無関係)の内容を貼り付けたら
荒らしとか言われても仕方無い。

368:デフォルトの名無しさん
08/05/07 15:49:17
質問です
Xファイルを使ったモデルにマルチテクスチャを行ないたいのです
例えば地面に見た目用のテクスチャーと、バンプ用のテクスチャーを適用したいと思っています。

ただ、Xファイル系のサンプルを見る限りテクスチャーを2つ使うことは想定外のように見えました。
カスタムテンプレートという仕組み上、自前でそういうXファイルは作れそうですが、3DモデラーがそういうXファイルを吐いてくればれば(あまり)意味がありません。

マルチテクスチャなXファイルというのは一般的ではないのでしょうか?
LWを使ってXファイルを吐いているのですが、もし良い方法があれば教えていただけると幸いです

369:デフォルトの名無しさん
08/05/07 16:24:58
ピクセルシェーダーで合成すればいいんじゃじゃね?

370:デフォルトの名無しさん
08/05/07 19:17:02
今頃DirectX10のサンプルみたら、三角形ポリ描画するだけでシェーダー必要とかXファイルがサポートされてないとかアホか。
DirectX使うのは思いついたゲームをちゃちゃっと作りたいからなのに、生産性下げてどうする・・・



371:デフォルトの名無しさん
08/05/07 20:28:33
質問です
頂点ブレンディングはDirectXの機能で実装するのと
頂点シェーダで実装するのとでは、どちらが一般的ですか?

372:デフォルトの名無しさん
08/05/07 21:52:57
>>371
調査統計をとるようなマーケティング能力や、
規格を立ち上げる権限をもった人間がいるわけでもないのに、
そんな不確定な情報を誰とも知らない人間に聞くその意図を明確にせよ。

ロボットのように命令が無ければパンツもはけないというのなら、
一般的かどうかを聞くより、最初からあらゆる事を指示してと言えばいい。

373:デフォルトの名無しさん
08/05/07 22:50:41
>>372 答えてやれよ。あんたは業界人なのけ?

374:デフォルトの名無しさん
08/05/07 23:05:41
まずは一般的という基準を明確にすることから始めないといかんだろ。

375:デフォルトの名無しさん
08/05/07 23:08:23
聞き方が不味かったのかな?
ここの人たちはどっちでやってますか?と言う聞き方ならまだ良かったとか?

376:デフォルトの名無しさん
08/05/07 23:10:29
人それぞれ

377:デフォルトの名無しさん
08/05/07 23:11:53
ターゲットマシンによるべ
あくまで古いマシンでも動かしたいなら頂点シェーダ使うのはきびしいんじゃね?

378:デフォルトの名無しさん
08/05/07 23:12:24
おまえら意地悪ですね
俺はこうしてるってだけでもいいんじゃないの

379:デフォルトの名無しさん
08/05/07 23:18:02
そもそもシェーダを利用するのはDirectXの機能とは言えないのか?
シェーダを利用するしないに限らず、ハードが対応していなければ、
DirectX側がエミュレーションするし、していなければハードが処理するだけで、
データを渡すのはDirectXが処理していると言える。

380:デフォルトの名無しさん
08/05/07 23:20:17
行間から固定機能パイプラインorシェーダと読めたんだが違うのかな?

381:デフォルトの名無しさん
08/05/07 23:20:18
つまりDirectXではなくOpenGLからシェーダを利用するかどうかという話なのだろう。

382:デフォルトの名無しさん
08/05/07 23:34:58
どちらが一般的かと言われれば固定機能パイプラインだろう
なぜならそれしかなかったから
だが、いずれ消え行く技術をいまさらやってもだし
シェーダーでやっといたほうが後々まで使えるんでね?

383:291
08/05/08 00:04:46
仕方が無いのでDXUTの解析から始めようと思います。
(解析して光明が見えてくればいいのですが・・・)


384:デフォルトの名無しさん
08/05/08 00:51:33
馬鹿はシェーダーを使えない。それだけ。

385:デフォルトの名無しさん
08/05/08 01:43:58
頂点ブレンドってスキンメッシュとかのことよね?
だとしたら、一般的とかいうより色んな制約で変わってくるんじゃね?
・自前形式ではなくXファイルを使うなら、D3DXのスキンメッシュサンプルと
 同じ方法が使える
・でもそのやり方だと行列パレット使うので関節のSLERPが出来ない(LERPになる)
 そこらへんにこだわると、必然的に自前コードで広げることになる
・でも固定機能パイプラインの行列パレットは、最近のビデオカードではほとんど
 ハードウェアサポートされてない(ソフトウェア頂点処理に頼ることになる?)
・頂点シェーダで計算する場合、シェーダ3.0までは定数レジスタが256しかないので
 1ボーンあたり3レジスタ(SLERPなら2で足りるが)だとすると80ボーンしか使えない
俺がやった限りこういう事情が絡んで来たから、色々調べつつ
自分のやりたいことと照らし合わせてたら必然的にやり方は決まるよ。

386:デフォルトの名無しさん
08/05/08 09:04:59
DirectX9使ってるんですけど
ID3DXEffect::SetTexture とか ID3DXEffect::SetFloat って
コスト高いんですかね?
ループの内側で使っちゃダメかな?

387:デフォルトの名無しさん
08/05/08 10:13:12
>>371
頂点シェーダでやるのが良いと思うよ
まず、ソフトウェアエミュで頂点シェーダを行なってもそれほど重くないのが1つ。
ブレンド可能数が頂点シェーダのほうが融通利くのが1つ。
他の頂点シェーダエフェクトと一緒に利用できるのが1つ。

固定パイプラインでハードウェア処理の頂点ブレンドやるとバグるグラボが少なからずある
(ドライバアップデートすればなおるんだけど、ユーザーは必ずしも…ね)
だから私は頂点シェーダ+ソフトウェアエミュ派


388:デフォルトの名無しさん
08/05/08 10:22:30
>>385
横槍で質問

・頂点シェーダで計算する場合、シェーダ3.0までは定数レジスタが256しかないので
 1ボーンあたり3レジスタ(SLERPなら2で足りるが)だとすると80ボーンしか使えない

これって、1頂点へ影響するボーンが最大80って意味?
それともモデル全体を通して80ボーンが限界って意味?

389:デフォルトの名無しさん
08/05/08 12:41:17
必要に応じて分離すりゃいいだけ

390:デフォルトの名無しさん
08/05/08 13:11:36
DrawPrimitive1回に対して80ボーンが限界って事。
D3DXMesh関係だと其処を考慮してDrawPrimitiveを何回かに分けて256本までのボーンに対応できるようになってるだろ。

391:385
08/05/08 17:00:17
うん、説明不足だったけど1回の描画では、ってこと。
>>390みたいにすれば確かに制限は無くなる。
自分はやってないからわからんけど、
事前に頂点のリンクと面の接続を考慮してメッシュを分割しておけばいいかと。

392:デフォルトの名無しさん
08/05/08 17:18:49
ミス、>>389みたいにすれば。
D3DXMeshが自動で何かやってくれるのは知らない

393:デフォルトの名無しさん
08/05/08 17:25:41
うわ、最近D3D始めたばっかりなんだけど、スキンメッシュってそんなに定数レジスタ使ってるなんて気づいてなかったw
D3Dのサンプル様様だなぁ…
ちゃんと26ボーン毎に分割して、正常に表示できるように調整されてるっぽ
(サンプルのSkinnedMesh)

394:デフォルトの名無しさん
08/05/08 19:56:39
アプリが終了すると
Direct3D9: (ERROR) : [0] : Address 04F1E4CB
Direct3D9: (ERROR) : [1] : Address 04F1E59B
Direct3D9: (ERROR) : [2] : Address 04F1E440
Direct3D9: (ERROR) : [3] : Address 0501CCA5
Direct3D9: (ERROR) : [4] : Address 05023345
Direct3D9: (ERROR) : [5] : Address 05002898
Direct3D9: (ERROR) : [6] : Address 05016E13
Direct3D9: (ERROR) : [7] : Address 00486437
Direct3D9: (ERROR) : [8] : Address 00474CBE
Direct3D9: (ERROR) : [9] : Address 004770CA
Direct3D9: (ERROR) : [10] : Address 7C23ABCC
Direct3D9: (ERROR) : [11] : Address 7C23B209
Direct3D9: (ERROR) : [12] : Address 7C235CC1
Direct3D9: (ERROR) : [13] : Address 7C22FF89
Direct3D9: (ERROR) : [14] : Address 7C22F067
Direct3D9: (ERROR) : [15] : Address 7C22EFDE
が複数行

みたいなデバッグログ(OutputDebugStringで書けるやつ)でるんだけど
何が悪いんですか?

あと、m_pd3dDevice->GetRenderTargetで取得したやつは、
Releaseすべきですか?

395:デフォルトの名無しさん
08/05/08 20:00:30
ワンスキンしか作れないとかいうウンコモデリングソフトに当たったら最後w
なんでもかんでもすべての頂点に影響与えるとかギャグですか?w>某会社の自作モデリングツール

 捨 て ち ま え よ ! (中小害虫社員(28歳♂))

396:デフォルトの名無しさん
08/05/08 20:01:03
同い年ですね。
わかります。

397:デフォルトの名無しさん
08/05/08 20:14:45
>>395マ板でぶちまけろ

398:デフォルトの名無しさん
08/05/08 20:16:24
371です
ありがとうございます
とりあえず頂点シェーダでやってみます

399:デフォルトの名無しさん
08/05/08 21:18:32
>>395
DrawPrimitiveが減らせるので逆に高速化することが可能な場合も多々。
たとえばロボットみたいなものをパーツ毎にDPするよりは、ウェイト仕込んで
ボーンでドーンと1回のDPで描く方が実は速い。

400:デフォルトの名無しさん
08/05/09 00:29:29
>>395
せめてそのウンコモデリングソフトが何か書いてくれないと

401:デフォルトの名無しさん
08/05/09 04:47:40
>>399
言い訳にしか聞こえないw

402:デフォルトの名無しさん
08/05/09 06:45:56
どう考えてもボーンとかよくわかってない人がとりあえず
頑張ってみました的臭いするやんか?

403:デフォルトの名無しさん
08/05/09 10:28:23
>>401
昨今のグラフィックカードでは常識

404:デフォルトの名無しさん
08/05/09 14:53:11
スキニングの計算をCPUでやることになるから
グラフィックカードあんまり関係なくね?

405:デフォルトの名無しさん
08/05/09 15:13:41
ボーンを使おうが使うまいが階層のマトリックス演算は結局行なう。

そのマトリックスをWorldとして頂点シェーダーで計算するか、
スキン用のマトリックスとして頂点シェーダーで計算するかの違いだろ。

ボーンの場合Offset用の演算が加わるが、
DrawPrimtiveのコールはマトリックスの乗算とは比較にならないくらい重い。

スキンの処理までCPUでやるっつーなら話は別だけどDirectX7でやってるわけじゃないっしょ。

406:デフォルトの名無しさん
08/05/09 15:29:43
スキンの処理までCPUでやるようにしないと、この輪郭線抽出はできませんよね?
URLリンク(www.twin-tail.jp)

407:デフォルトの名無しさん
08/05/09 16:08:51
>>406
DirectX7世代でやるならそうなる。

それ以上ならもっとよい方法が存在する。

408:デフォルトの名無しさん
08/05/09 20:43:33
>>407
よかったら輪郭線抽出について情報いただけませんか

Zバッファの差を見る方法や、マテリアル境界を見る方法、モデルをちょっと太らせて裏返して黒描画する方法など色々調べましたが
406のURL先ほどまで「正確」で「自在な太さ」にできる術が見つかりませんでした

409:デフォルトの名無しさん
08/05/09 21:35:32
トゥーンレンダリング

410:デフォルトの名無しさん
08/05/10 02:49:05
>>406のは
希望をこめて絵を修正してるって書いてあるやん

411:デフォルトの名無しさん
08/05/10 03:21:23
>>408
そこまで知りたいなら金だせよ

412:デフォルトの名無しさん
08/05/10 10:46:29
>>408
自分で答え書いてるじゃん。
深度バッファやマテリアルの境界を輪郭検出のアルゴリズムで線を引けばいい。
その場合1ドットのラインしか引けないわけだが、
1ドットのラインを別のバッファに書いてそのバッファを上下左右にずらして
もう1度書くと太くなるというのはわかるかい?

413:デフォルトの名無しさん
08/05/10 21:09:08
>>412
もちろんその手の「太くする」方法はわかりますが、
深度バッファ法はちょっとひいったアゴのような、深度差が浅い部分に輪郭線が出ません
マテリアル法でも同様です。

モデルをちょっと太らせて裏返す法や、406のURL先のものほど「正確な」ものはなかなかありません。

414:デフォルトの名無しさん
08/05/10 21:42:40
内積が正か負で判断して線引く>>406のをシェーダでかけば同等の正確さじゃないの?

415:デフォルトの名無しさん
08/05/10 21:57:07
○輪郭線アルゴリズム
確かに>>406のものが
最も正確でキレイに作れそうなので、
>>406を主にすべきだな。

○ジオメトリ操作は、なるべくGPUでやりたい。
1パス目:D3DFILL_SOLIDで描画
2パス目:D3DFILL_WIREFRAMEで描画

この2パス目を、先のアルゴリズムで
輪郭線のみ描かれるようにすればいいんじゃないの。

○線の太さは任意に変更したい。
これは、2パス目を>>412の方法で太くすればいいんじゃないの。

416:デフォルトの名無しさん
08/05/10 22:00:03
>2パス目:D3DFILL_WIREFRAMEで描画
>
>この2パス目を、先のアルゴリズムで
>輪郭線のみ描かれるようにすればいいんじゃないの。
書いてから気付いたけど、これはちょっと難しいかなぁ


417:デフォルトの名無しさん
08/05/10 22:03:56
>>414
頂点シェーダで線を引くことはできないと思いますけど…

>>415
その方法ですと、やはりアゴなどに輪郭線を出すことができませんよね。

418:デフォルトの名無しさん
08/05/10 22:05:38
>>406のものと同等の正確さというのはかなり難しいなぁ…
GPUを使ったものは、やはり速さ優先で作られてるし

419:デフォルトの名無しさん
08/05/10 22:07:33
うるせえ!!!

420:デフォルトの名無しさん
08/05/10 23:26:00
「自在な太さ」というのが>>406だと結構難しいはずなので(あと処理がキツイだろこれ)
結局のところ割り増しモデルを裏返し手法に落ちついちゃうんだよなぁ。
精度は落ちるけど、押し出す頂点位置を距離によらず一定になるように頂点シェーダで
調整すればそれなりの見栄えにはなる。

421:デフォルトの名無しさん
08/05/10 23:31:03
>>420
I3DXLine使えば太さは楽勝じゃね?
頂点データをもとに自前で線引いてるんだから

422:デフォルトの名無しさん
08/05/10 23:46:00
>>421
使ったことないので知らんが、あれでは太くなったら普通に線の一部が元モデルにめり込むか、
Z値を考慮せずに描画されるならなおさらこの手法には使えないのでは?

一ドットの線ならZバイアス使わんでも自前で射影行列なり弄れば>>406の「理想」の線は描画できるが、
それ以上の太さになるとポリラインで表現することになり、そうなればどこまで線のZ値を前に押し出せば
元のモデルと重ならずに描画できるかは簡単には見積もれないはずだ。

423:デフォルトの名無しさん
08/05/11 09:25:17
>>422
ああ、ごめん。モデル側にめり込むのはご法度って考えだったのね。
俺は太さ3までだったら、モデルに1ドットめり込むだけだから別にいいやって思ってたもんで

>一ドットの線ならZバイアス使わんでも自前で射影行列なり弄れば>>406の「理想」の線は描画できるが、
よかったらこのあたり、詳しく解説してくれないか


424:デフォルトの名無しさん
08/05/11 17:38:11
法線方向にプッシュして裏返すのって、特許取ってなかったっけ?

425:デフォルトの名無しさん
08/05/11 21:26:54
ちょっとD3DFILL_WIREFRAMEが話題にあがったから試してみたんだが
D3DFILL_WIREFRAMEにしてもD3DFILL_SOLIDと描画時間が一緒だったんだが…
何かの間違いだろうか?
PixelShaderの呼び出し回数が段違いだと思うのに…

426:デフォルトの名無しさん
08/05/11 21:46:10
なら頂点シェーダーかCPUがボトルネックなんだろ。
たいした量描画してるわけじゃないなら大抵CPUがネック。

427:デフォルトの名無しさん
08/05/11 21:51:10
質問です

今、PixelShaderを使う描画を学んでおり、自分のメインPCでは正しく動作しました。
試しにと、PixelShaderに対応していない(1.0にすら対応していない)古いサブマシンに持っていって動かしたところ、正しく動いてしまいました。
ここで疑問なのですが、何故正しく動いてしまったのでしょうか?

どうやら
PixelShader = compile ps_1_1 PS();
と書いた部分が、メインPCだと正しく適用されるが、サブPCだと無視され固定パイプライン(という呼び方でOK?)のPixelShaderにより描画されているっぽいです。

これはHLSLの仕様なのでしょうか?
てっきりHLSLのコンパイルエラーとなり、fxファイルのロードに失敗するかとふんでいたのですが…


428:デフォルトの名無しさん
08/05/11 21:53:26
補足です。

>ここで疑問なのですが、何故正しく動いてしまったのでしょうか?
の時点では、書いていたPixelShaderが固定パイプラインのそれと同等だったため「正しく動いているように見えた」のです。
ためしにPS()内で必ず「黒」を返すようにしたところ
・メインPCでは正しく黒を
・サブPCでは通常通りの描画を
したため「サブPCではPS()が無視され、固定バイプラインのPixelShaderが呼ばれている」と判断したのです。

429:デフォルトの名無しさん
08/05/11 21:55:50
>>426
どうやらボーンによる頂点変換(ソフトウェア処理)がボトルネックだったっぽ
すまん

430:デフォルトの名無しさん
08/05/11 22:36:13
確かに俺の環境も
PS2.0世代のGPUのくせに
PS3.0コンパイルのShaderが
HWで動いているな。
多分これは、PS2.0に対応とか3.0に対応ではなく
2.0、3.0で追加された機能に対応しているという話だろう。
ただアンタの言うPSの代わりに固定機能が動くというのはないな。
勘違いだろ。

431:デフォルトの名無しさん
08/05/11 23:16:43
対応してなくても動作はするけど
対応してないPCじゃコンパイルはできないよね
あとピクセルシェーダーの動作って
コンパイルしたマシン(のGPU?)に依存してる?
家のPCでテストした実行ファイルを仕事場のPCで動かすと
家のPCと同じ動作するけど
コンパイルしなおすと動作が変わったりする

432:デフォルトの名無しさん
08/05/11 23:29:40
>>430
お返事ありがとうございます。

>ただアンタの言うPSの代わりに固定機能が動くというのはないな。
うーん、どういじっても
PixelShader = compile ps_1_1 PS();
の PS()の中身は無視されてしまいます。

float4 f = {1.0f, 1.0f, 1.0f, 1.0f}
return f;

という単純なPS()の中身ですら、メインPCだと正しく真っ白になり、
サブPCだとPixelShader = compile ps_1_1 PS();の宣言がないがごとく振舞います。

エフェクトは
D3DXCreateEffectFromFile
でロードしています。

433:デフォルトの名無しさん
08/05/11 23:34:51
D3DXが気を利かせてくれてるのかねぇ・・?
PS非対応環境なんてもはや持ってないから、アドバイスできん。すまん

434:デフォルトの名無しさん
08/05/12 03:39:42
なんもエラー出てないの?

435:デフォルトの名無しさん
08/05/12 15:10:21
何もエラーでないですね…。
ただ、ReleaseビルドのEXEファイル生実行ですので、次はサブPCのVC6.0上でDebug実行し、D3DXのログ出力を見てみます。
家に帰るのは夜です

正直質問した時は、あっさり
「PSが無い環境では、compile ps_1_1 PS(); って記述は無視されて、固定パイプラインとして実行されるよ」
とかくるかと思っていたのですが…

436:デフォルトの名無しさん
08/05/12 22:44:35
435です。
やはり特にエラーメッセージもなく、単にスルーされているだけっぽい動作です。
どなたか心当たりあるかたいらっしゃいませんかー?

仮説
PixelShader = compile ps_1_1 PS();
などは、動作環境のサポートバージョンが、コンパイル指定したバージョン未満の場合は
(エラーを出さず)変わりに固定パイプラインを呼び出す

437:デフォルトの名無しさん
08/05/12 23:55:38
>>436
はじめにサポートバージョンってわからないっけ?CAPSで
つか、何がしたいんだっけ?

438:デフォルトの名無しさん
08/05/13 00:35:14
>>436
それ固定昨日と頂点定義が一致してないとランタイムで死ぬだろ

439:デフォルトの名無しさん
08/05/13 09:47:00
>>437
やりたいことというより、こういう動作をするものなの?という疑問を解決するのが目的ですね。
CAPSでシェーダのバージョンはとれるので、意図しない動作を起こさないようにバージョンではじくことは可能ですね。

>>438
ちょっといまいちわかりませんが、頂点シェーダでの出力定義が「(固定パイプライン的に)普通」じゃないとランタイムエラーになるということでしょうか?
そもそも頂点シェーダでは「普通」じゃない出力はできないと思っていましたが違うのでしょうか?
(だから計算結果とかを、使ってないテクスチャーUVの中に入れるとかでごまかして渡す)
とりあえず、そんなことをしている場合は描画がしっちゃかめっちゃかになりそうですね。

440:788
08/05/13 17:48:16
directXのAppwizardってVC++6の時代のものですか?
UPdate Summer2003(v9.0b)では,CD3DApplicationという汎用クラスが
あったのに最新バージョンではなくなっています.
その代わり,DXUTというフレームワークがふんだんに使われています.

directXのバージョンによってプログラミングテクニックがころころ変化して
いるように見えるんですけど(1~2年前の参考書が最新バージョンと大きく
食い違っている),いったいどのバージョンを勉強したらお得なんでしょうか?
小生,これからdirectXを勉強しようというものです.

やっぱり,最新バージョンでSDKを使ってシコシコ書くのがベストでしょうか?
MFCのdaialogベースでdirectxを使ってみたいのですが.

あと,DXUTを解説している本やサイト(英語でも可)があったら教えてください.


441:デフォルトの名無しさん
08/05/13 18:29:35
URLリンク(www.kohgakusha.co.jp)
これとかか?

ただし、DXUTの仕様はSDKのバージョンごとに変わってたりするんで
そのまま使えるかどうかはしらね

442:デフォルトの名無しさん
08/05/13 19:48:34
>>441

ありがとうございます。早速、購入してみます。

443:デフォルトの名無しさん
08/05/13 20:05:47
ID3DXLineって便利だけど
遅いの?

444:デフォルトの名無しさん
08/05/13 23:29:46
>>439
例えば、自分が固定パイプラインと同じ機能をシェーダ使って実装するとしてどうなる?って話じゃねぇの

445:デフォルトの名無しさん
08/05/14 23:19:22
シェーダの質問なのですが、
D3DFMT_R16FやD3DFMT_A8のように4要素のないテクスチャで
float4でtex2Dを取得した場合zやwはどんな値になるのでしょうか?
不定なのか、0が入るのか、前の値が保持されたままなのか、など教えていただけると助かります。

446:デフォルトの名無しさん
08/05/15 00:14:53
ドキュメントくらいはちゃんと嫁。
float4(0, 0, 0, 1)に対して渡された要素が上書きされるイメージ。

447:デフォルトの名無しさん
08/05/15 00:28:16
>>446
ありがとうございます。
ドキュメントの探し方が甘かったようです。申し訳ありません。

448:デフォルトの名無しさん
08/05/15 18:07:18
URLリンク(www.geocities.co.jp)
のexeを実行するとちゃんと動くんだけど、ソースをVC++2008で、コンパイルするとうまく動かない。

どうも、lpDIJoyDev->QueryInterface でfalseが返ってるみたいだけど、どこ修正すればよい?



449:デフォルトの名無しさん
08/05/15 19:39:30
>>448
PCに入ってるSDKのバージョンがそのソースの想定したSDKの
バージョンとあってないとコンパイルできないよ

450:デフォルトの名無しさん
08/05/15 20:46:38
ごめん、コンパイルは通るけどオリジナルと挙動が違うってこと。。

451:デフォルトの名無しさん
08/05/15 20:50:07
引数とかも違うだろ?

452:デフォルトの名無しさん
08/05/16 12:45:26
>>450
exeがなかったので違いがわからないけどソースからビルドしたやつも普通に動作してるよ
挙動が違うとは具体的に何が違うの

453:デフォルトの名無しさん
08/05/16 16:21:26
質問です。
Radeon 9600 series AGP 128MB(ドライバは URLリンク(ati.amd.com) )の環境にて、かなりおかしな挙動をしています。(OSはWindows2000)
何か情報ありませんでしょうか。
なお、その他の環境3個所くらいで試してみましたが、特に問題は見られませんでした。

・テクスチャーの表示がおかしい
256x256サイズのテクスチャーを10枚程度読み込んだあたりから、一部のテクスチャーの表示がおかしくなります。
テクスチャはD3DXCreateTextureFromFileで読んでいます。
テクスチャーが張られているモデルは、Xファイルで読み込んだ板ポリや、立方体などの単純なものです。

テクスチャーが張られているところが全体的にRGB(0,255,0)な感じに色になり、ほんのちょっとだけ元のテクスチャーの名残が見られるような、なんともバグった感じになります。
読み込むテクスチャーの数を減らすと、さっきバグって表示されていたものも綺麗に表示されます。
描画はプログラマブルシェーダを使わず、固定機能のものです。

・固定シェーダの挙動がおかしい
pDev->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_CURRENT);
pDev->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_TEXTURE);
pDev->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
pDev->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_CURRENT);
pDev->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_TEXTURE);
pDev->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE);

と設定しているのですが、
pDev->SetTexture(0, NULL);
pDev->SetTexture(1, pTexture1);
としたとき、pTexture1の色が乗算されません。

pDev->SetTexture(0, pTexture0);
pDev->SetTexture(1, pTexture1);
ではきちんと両方の色が反映されるようです。

Radeon 9600は比較的新しいボードですし、むしろ超古いGeForce2MX400とかではまともに表示されます。何か原因が思い当たる方いらっしゃいますでしょうか。

454:デフォルトの名無しさん
08/05/16 16:37:56
伝説巨人RADEON

455:デフォルトの名無しさん
08/05/16 16:52:15
使い方がおかしい

456:デフォルトの名無しさん
08/05/16 17:01:16
>>455
どこか、>>453の中に使い方がおかしいことを示す情報があったでしょうか?
ご教示願えればありがたいです

457:デフォルトの名無しさん
08/05/16 17:14:54
ATIとnVIDIAの違いなんじゃね

458:デフォルトの名無しさん
08/05/16 17:43:47
>>453の追加情報です。

pIDirect3D9->CreateDevice(adapter, D3DDEVTYPE_REF, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING | D3DCREATE_MULTITHREADED, ¶m, &pDevice);
REFモードならバグりようがあるまい。と思って試してみようとしたのですが、
RADEON環境だとこの生成に失敗しました。

…RADEONというものは、思いのほかDirect3Dと相性が悪いのでしょうか?

459:デフォルトの名無しさん
08/05/16 19:18:00
>>453
SetTexture(0, NULL)してるのに、ステージ0でテクスチャ参照したら駄目だろう。

When a texture stage has D3DTSS_COLORARG1 equal to D3DTA_TEXTURE and
the texture pointer for the stage is NULL, this stage and all stages after it are not processed.

ARG1にD3DTA_TEXTUREをしておいて、テクスチャにNULLを設定するとそのステージ
以降が無効になる仕様だが、ARG2については何も書かれていないので未定義かも。

460:デフォルトの名無しさん
08/05/16 19:27:31
>>459
なるほど。ARG2がテクスチャ、かつNULLなときに後のテクスチャを参照してくれていたのは
GeForceが「たまたま」そう定義していたからであったわけですね。
気をつけます。

ちなみにそこに気をつけるよう改良してみましたが、1番目の「・テクスチャーの表示がおかしい」は相変わらずです。


461:デフォルトの名無しさん
08/05/16 20:04:30
>>460
それもなんかおかしいんじゃねぇの?w
基本的にnVidiaのボードは確かに未定義や
おかしな部分を変な風に救っちゃう設定だからRADEONで開発したほうがいいぜ
俺も開発のときにnVidiaのボード使ってて苦労した

462:デフォルトの名無しさん
08/05/16 20:16:19
>>459
知らなかったw

463:デフォルトの名無しさん
08/05/16 20:24:29
固定シェーダの恐怖だな
nVidiaとその他一部のボードでは動くんだけど
それ以外ではうんともすんとも言わないとかいう状況がありえる恐怖
(納期まで一週間とかいう状況ではじめてRADEONで動かして画面真っ黒になったときは血の気が引いたw)
HLSL使うようになってからそういう苦労は一応消えた

固定シェーダ止めるとこの辺はグッと楽になる

464:デフォルトの名無しさん
08/05/16 20:27:22
>(納期まで一週間とかいう状況ではじめてRADEONで動かして画面真っ黒になったときは血の気が引いたw) >
いやあああああああ

465:デフォルトの名無しさん
08/05/16 21:05:12
>>461
なるほど、とりあえずRADEONの購入は検討してみます

>>463
それは血の気が引きそうですね
私も公開するゲームを作っているので、なるべくRADEONにも対応したいところです
全てHLSLで書くのも検討していますが、「・テクスチャーの表示がおかしい」の件は、HLSLを使った描画の部分でも発症しているので困ったものです…

466:デフォルトの名無しさん
08/05/16 21:47:12
DirectXの勉強をはじめたいのですがもう固定機能パイプライン?は無視してHLSLとかプログラマブルな
シェーダーの勉強を始めたほうがいいのでしょうか?

467:デフォルトの名無しさん
08/05/16 21:55:47
自分の開発環境がプログラマブルシェーダに対応しているなら、そっちのみでいいと思われる。
VertexShaderは最低でもソフトウェアエミュレートができるし、
PixelShaderにしてももう対応していないグラボなんて存在しないと思っていい。




でもオンボは対応してねーんだよなぁ('A`)

468:466
08/05/16 21:58:34
MSのカンファレンスでもらったVS2008スタンダードにGe7900gs、OSはXPです。
固定機能はさすがにいいですかね。

469:466
08/05/16 21:59:39
ありがとうございました。

470:デフォルトの名無しさん
08/05/16 22:03:59
皆さんノートPCのことも考えてあげてください
もしくはこの世から全てのオンボードPCを破壊してくださいマジでもう

471:デフォルトの名無しさん
08/05/16 22:15:54
>>452
vc++2008ではまんまではコンパイルとおらなかったので、DInput.cppの

63行目 ret = DirectInput8Create(hinst,DIRECTINPUT_VERSION,IID_IDirectInput8,(void**)&lpDInput,NULL);
115行目 ret=lpDInput->EnumDevices(DI8DEVCLASS_GAMECTRL,InitJoystickInput,lpDInput,DIEDFL_ATTACHEDONLY);

に修正してコンパイルとおしたんだけど、126行目がfalseを返してくるの。


472:453
08/05/16 22:29:39
色々アドバイスありがとうございました。

>・固定シェーダの挙動がおかしい
この件ですが、RADEON上だけでなく、GF上でもREFモードだとうまく表示できませんでした。
>>459さんのアドバイスがクリーンヒットだったようで、気をつけながら直したところ、REFでも綺麗に表示されるようになりました。
RADEON上でpTexture1が乗算されるようになったようです。
(ただし、pTexuter1自体がバグっているため、乗算はされたものの、おかしなテクスチャが乗算されています)

今後はREFモードでちょくちょくチェックしながらやっていきます。


現在は、RADEON使いと連絡がとれなくなってしまったため、
「・テクスチャーの表示がおかしい」については後日また調査して、報告します。
どうしても治らない場合はまた相談させていただくかと思いますが、その時はよろしくお願いします。

473:デフォルトの名無しさん
08/05/16 22:36:29
お疲れさん
ちゃんと報告してくれる質問者は歓迎だぜ

474:デフォルトの名無しさん
08/05/16 23:08:47
ウホッここを覗いててよかった
ラデオン買ってくる

475:デフォルトの名無しさん
08/05/17 07:41:55
>>471
DIrectX 7以下じゃないと動かないよ
8にするなら全部書き換えろ

476:デフォルトの名無しさん
08/05/17 07:49:36
>>448
Dinput.hに
#define DIRECTINPUT_VERSION 0x0700
を追加


477:デフォルトの名無しさん
08/05/17 20:09:42
関係ないけど、DirectInputってウイルスバスターが不正変更で~って怒るとない?
お兄さんたちはどうしてるのかな?

478:デフォルトの名無しさん
08/05/17 20:12:54
あ、あれってDirectInputのせいなんだ。。。

僕の作ったソフトも怒られるから気になってたけど。。。

479:デフォルトの名無しさん
08/05/18 16:32:53
ウイルスバスターはDirectInput使うと怒るのね
友人にテストしてもらったら
「不正な変更とか出る ウイルスだろこれ?」
とか言われたお

ネットワーク対応ゲームでも作ろうかと思うんだが、
DirectPlay使うのとWinSock使うのとどっちがいいんだろ
DirectPlyaはWinSockに比べるとダメだという話をよく聞くけど
どこがどうだめだかよくわかんね
手軽に実装するならDirectPlayのほうが楽そうにも感じる
そこら辺詳しい人いませんか?

480:デフォルトの名無しさん
08/05/18 17:25:02
あんま詳しくないが、TCP使えないらしいお。
そういった制限があるから、やっぱ「お手軽通信」なイメージはある。
Winsockは、アプリケーションが使うTCP/IPの基本かつ全てだから
DirectPlayに出来てWinsockに出来ないことはない。
そういう意味だとオモ<Winsockに比べるとダメ

本当にTCPが使えないのなら、オンラインRPGには無理なだ。

481:デフォルトの名無しさん
08/05/18 18:00:21
今右ドラッグで3Dオブジェクトを回転させるのをやっていて、とりあえず
D3DXQuaternionRotationYawPitchRoll(&q,マウスのX変移,マウスのY変移,0);
とやってそれっぽい動きにはなってるんですが、どうもメタセコとかと操作感が違うんですよね。
ドラッグ開始時にXYの回転軸を作って、それに対する回転てやりたいんですが
何使ったらいいですか?

482:デフォルトの名無しさん
08/05/18 18:11:10
>>481
RotationYawPitchRollは角度が非常に小さければ任意軸周りの回転に
近い動きをするが、本来は全く違うもの。
マウスの移動量とZ軸で外積を取って、その軸周りの回転を使う。

483:デフォルトの名無しさん
08/05/18 18:20:19
>>482
親切にありがとうございます。意味はなんとなく分かるんですが、頭がついて来れなくて・・・
で、それはZ回転が起こらない場合にのみ使えるんですよね?多分(今回はそれでもいいですが)

484:デフォルトの名無しさん
08/05/18 19:57:07
>>479
色んな通信に対応しすぎてて、初期化が遅いのが一番の不満かな<Play
といってもPlay使ってたのはDirectX7の頃だから、改善されてるかもしれんが。

WinSockなら全ての通信を自分で把握できるのが強み。

485:デフォルトの名無しさん
08/05/18 20:27:13
>>484
DirectPlayは廃止されて久しい。
WinSockを叩くのが一番無難で楽しい。

486:デフォルトの名無しさん
08/05/18 20:32:54
WinSockだとセッションとかのゲーム的な概念がないから
そこらへんも全部自分で実装しなきゃならないんだよね?
WinSockのネットゲームで使えそうなお手ごろサンプルがあるといいんだけど

487:デフォルトの名無しさん
08/05/19 03:08:12
質問です。
DirectXを使って2Dゲームを作ってみようと思ってMSDNのリファレンスを見ていたところ、
CreateVertexBuffer()で頂点バッファを作ってLockとUnLockの中で頂点を処理していました。
ですが、別のホームページにはこれらを使わずに描画してるページもありました。

2Dの場合はCreateVertexBufferを使わずに描画したほうがいいのでしょうか?
それともCreateVertexBufferを使わなくても描画出来るという解釈でいいのでしょうか?

488:デフォルトの名無しさん
08/05/19 03:22:35
別にどういうやり方しても構わないよ。
ただ、
・頂点バッファをビデオメモリ上、AGPメモリ上に作ると描画が速い
・が、そういう場所に作った頂点バッファをLockするのは重い(ビデオカードの処理を止めるから)
・システムメモリ上に作った頂点バッファのロックなら遅くない(多分。)が、
 それは頂点バッファ作らない方法と同じこと。ビデオカードから遠いので描画は遅い

毎フレーム書き換えるような頂点配列なら、システムメモリに置くか
頂点バッファ使わずにやるのがのがいいんじゃないかと。
検証とかしたことないので間違ってたら指摘ヨロ

489:デフォルトの名無しさん
08/05/19 03:26:37
チラシの裏にでも書いてろ

490:487
08/05/19 03:43:14
>>488
なるほど、どっちの処理が重いかで使い分けるといいみたいですね。
ありがとうございます。

491:デフォルトの名無しさん
08/05/19 10:26:00
>>488
追加⇒DYNAMICとDISCARDフラグを組み合わせると描画もLockも速いがメモリを食う。

492:デフォルトの名無しさん
08/05/19 13:56:52
>>489
なるほど、チラシの裏ですね
よくわかりました

493:472
08/05/19 19:22:45
色々アドバイスいただいた>>453です。
>>459さんのアドバイスによる修正のおかげか、RADEON上でも綺麗に表示されたそうです。
ありがとうございました。

D3DTSS_COLORARG1 にTEXTURE
D3DTSS_COLORARG2 にCURRENT
なるべくこうするのが吉。というわけですね。
大抵の初心者サイトがこうしている一方、時々は逆も見かけるようです。
他の人が同じ失敗しませんように…。

494:デフォルトの名無しさん
08/05/19 19:35:23
チェックしたら見事に失敗してたわ
SDKをもう一回全部読み直したほうがいいかもなー・・・

495:デフォルトの名無しさん
08/05/19 20:06:53
演出について質問
キャラが地面に着地した際、演出として着地点のまわりに衝撃波を立てたいと思っています
例えるなら、牛乳の入ったコップに牛乳を一滴おとした時にできる、王冠のようなものです

こういう演出はどのようにして実装するのが良いでしょうか?
今まではボーンアニメまでしかやったことがないのですが、モーフィングという技術のほうがより良さそうな気がしています

496:デフォルトの名無しさん
08/05/19 23:56:15
>>495
スケーリングで十分

497:487
08/05/20 00:09:01
>>492
調べてみたら動的に確保したメモリを静的に確保したように見せるとのことだったんですが、
これはVRAMとAGPメモリに確保して同期させるという解釈でいいのでしょうか?

498:487
08/05/20 00:09:52
すいません>>492ではなく>>491でした

499:デフォルトの名無しさん
08/05/20 01:53:49
>>497
昔はそうなんだが、現在のVGAだと諸々の理由でシステムメモリを介したコピーを
行っているものが多いので、動的な頂点バッファはほとんど意味を成さなくなっている。
経験で言うならシステムメモリよりも頂点バッファを使う方がパフォーマンスが高くなる
傾向があるのは確かだが、大半は大した性能差があるわけでもないし、
そもそも適切に扱うためのフラグ設定が頂点バッファはわかりにくいので、
個人的にはシステムメモリ(DrawIndexPrimitiveUP等)で実装することをお勧めする。

2Dスプライトの実装なんぞDrawPrimitiveのバッチ処理さえしておけば
それ以上は深く考えんでも良いと思うぞ。

500:デフォルトの名無しさん
08/05/20 08:28:59
AGPメモリを使うか否かで動的なデータは速度に大差が出るぞ

501:デフォルトの名無しさん
08/05/20 12:44:39
非同期で処理させるかの違い

502:デフォルトの名無しさん
08/05/20 19:02:00
まあ、自分のゲームでやってみるのが一番
つーのは想定している状況によりけりって感じだから
なんでも使える汎用ルーチンなんて作ろうと考えないで状況に応じて対処したほ


503:487
08/05/20 20:53:38
>>499-502
2Dの処理にそこまで考える必要はないけど、
詳しく知りたい場合は自分のゲームで実装して調べたほうが早い、とのことなので、
時間に余裕があるときに調べてみたいと思います。
色々ありがとうございます!

504:デフォルトの名無しさん
08/05/20 21:17:01
環境にもよるんじゃないか

505:デフォルトの名無しさん
08/05/20 21:49:34
WinSockだとポート空けるのをユーザー側に頼まなければならないので
UPnP対応してるDirectPlayつかうことにしたぽ

506:デフォルトの名無しさん
08/05/20 22:42:13
UPnPの対応はDirectPlayに頼らなくても簡単に出来るぞ

507:デフォルトの名無しさん
08/05/20 22:55:18
>>506
URLリンク(www.bosuke.mine.nu)
これためしてみたけどルータがふるくてだめだった
しかしDirectPlayだとポート開放しなくても通信できる

もっといい方法があるならおしえてくださいませ

508:デフォルトの名無しさん
08/05/20 22:56:06
Direct3D9.0のデバイスロストからの復帰で
・D3DPOOL_DEFAULTのテクスチャ解放
・D3DXFONTのOnLostDevice()呼び出し     この2つは順番適当
・D3DXSpriteのOnLostDevice()呼び出し

   pDevice -> Reset(&Param);

・D3DXSpriteのOnResetDevice()呼び出し
・D3DPOOL_DEFAULTのテクスチャ確保
・D3DXFONTのOnResetDevice()呼び出し     この2つは順番適当
・レンダーステートの回復

てやってるんだけど、画面真っ暗です。これ以外に何やるんでしょう?
あと順番に決まりはあるんでしょうか?

509:デフォルトの名無しさん
08/05/20 23:03:40
>>508
確保したリソースの解放をちゃんとしましょう。
Debug Runtimeでエラーメッセージの確認をしましょう。

510:デフォルトの名無しさん
08/05/21 20:30:26
>>506
ひょっとして upnp.h とか使うの?
ネット探しても具体的なやりかたが乗ってるところがないのが困る

511:デフォルトの名無しさん
08/05/21 23:15:17
>>510
URLリンク(www.bosuke.mine.nu)
おもくそ有名なサイトがあるわけで
ぐぐろうよ

512:デフォルトの名無しさん
08/05/22 00:12:19
お前は空気読め

513:デフォルトの名無しさん
08/05/22 02:01:13
「頂点ベースの描画」という言葉の意味がよく分かりません
対になるものは何でしょうか?

514:デフォルトの名無しさん
08/05/22 16:48:56
ポリゴンで描画(3つの頂点)で描画と思ったらいいんじゃね?
ポリゴン2個で四角形になるお

515:513
08/05/22 16:53:09
>>514
知識不足ですみませんが、そうでない描画の方法があるのでしょうか?

516:デフォルトの名無しさん
08/05/22 16:56:14
つーか、「ポリゴンで描画で描画」ってなんだよ。

517:デフォルトの名無しさん
08/05/22 17:25:02
そもそも
「頂点ベースの描画」なんて聞いたことがない

518:デフォルトの名無しさん
08/05/22 17:28:55
>"ポリゴンで描画で描画"との一致はありません。
>"頂点ベースの描画"の検索結果 1 件中 1 - 1 件目 (0.14 秒)
>"頂点ベース" の検索結果 約 148 件中 1 - 10 件目 (0.24 秒)

519:デフォルトの名無しさん
08/05/22 17:59:10
頂点シェーダーでライト当てるかピクセルシェーダーでライト当てるかって事でないん?
そのくらいしかない気がするんだが。

520:デフォルトの名無しさん
08/05/22 19:50:11
>>513
どこで頂点ベースって聞いたんだよ?

>そうでない
DirectDrawのスプライト描画のことじゃね?

さいきんのゆとりはDirectX7以前を知らんのか

521:デフォルトの名無しさん
08/05/22 19:50:44
ポリゴンで描画の間違い

522:デフォルトの名無しさん
08/05/22 22:30:57
そもそもDirectXにスプライトなど存在しない

523:デフォルトの名無しさん
08/05/22 22:39:14
ジオメトリベースド
イメージベースド

524:508
08/05/22 23:22:56
バックバッファの解放と確保
ステンシルの解放と確保も付けたんですが、まだPresent(0,0,0,0)がD3DERR_DEVICELOSTを
出してきます。何が足りないんでしょうかT-T

525:デフォルトの名無しさん
08/05/22 23:27:27
それは作った本人にしかワカリマセン。

526:デフォルトの名無しさん
08/05/22 23:29:53
POOL以外で作ったテクスチャとか頂点とか全部削除する

527:デフォルトの名無しさん
08/05/22 23:32:30
>>526
StateBlockとかもだな。

EffecとかFontとかSpriteも中でStateBlock作ってるからロスト対策が要るけどなー

528:508
08/05/22 23:45:28
フロントバッファは何もしなくていいんでしょうか?StateBlockは作ってるつもり
はないんですが・・・何か他に暗黙的なものがあったら教えていただけないでしょうか?

529:デフォルトの名無しさん
08/05/22 23:52:57
スレ住人が超能力に目覚めるよりはソースを出す方が解決は早い思います。

530:デフォルトの名無しさん
08/05/22 23:53:04
D3DX~系のLostDevice()は全部やってる?

531:デフォルトの名無しさん
08/05/23 00:16:03
DX10で作ればおk

532:デフォルトの名無しさん
08/05/23 00:17:15
Resetしてないんだろwww

533:508
08/05/23 00:43:08
>>528ソースのみですか?関係ないクラスを除いた抜粋でいいですか?
>>530フォントとスプライトなら呼んでます。
>>532Resetからの返り値も出力してるので多分大丈夫だと思います・・・

534:デフォルトの名無しさん
08/05/23 00:53:32
ResetはPresenがD3DERR_DEVICELOST以外を返した後の話だから関係なくね?

535:508
08/05/23 00:58:54
URLリンク(ccfa.info)
なんかいろいろ言われそうで怖い・・・よろしくお願いします。

536:デフォルトの名無しさん
08/05/23 12:09:02
現在、大学3年でシェーダーの勉強をしています。
それで、データの可視化の研究をしてみたいと思うようになったのですが、シェーダーの出番ってありますか?
無駄になるのもなあと思っているのですが。
OpenGLも少し勉強したことはあったのですが、可視化の分野はどちらを使ったほうがいいでしょうか?
また、仮にシェーダーを使う場合、どのような研究のネタがあるでしょうか?

537:デフォルトの名無しさん
08/05/23 13:04:30
どう可視化したいのかも書かずに質問とな?

538:デフォルトの名無しさん
08/05/23 13:10:17
と言うか、綺麗に見せたきゃ使うような物だからあんまり意味なくね?

539:デフォルトの名無しさん
08/05/23 14:29:49
>>535
common.h無いいわれるお
できればプロジェクトもあげてほすぃ
デバッグしやすい

540:デフォルトの名無しさん
08/05/23 15:47:51
関係ないが Graphics::drawSprite のBegin End の対応がおかしい

541:508
08/05/23 19:03:13
>>539
URLリンク(ccfa.info)
プロジェクトはBCCのしかなかったので、ついてません。申し訳ないです。
>>540
多分治ってると思います(?
C++と窓とDirectX同時に勉強してたんで、拙いところがたくさんありますが

542:デフォルトの名無しさん
08/05/23 23:08:12
現在ブロック崩しを製作中なのですが、もし「20個あるブロックがなくなったら」という状況を表現するために下記のように打ったら、「error C2106: '=' : 左のオペランドが、左辺値になっていません」とエラーが出ました。
どうすればいいのでしょうか。

if(block1==0&&block2==0&&block3==0&&block4==0&&block5==0&&block6==0&&block7==0&&block8==0&&
block9==0&&block10==0&&block11=0&&block12==0&&block13==0&&block14==0&&block15==0&&
block16==0&&block17==0&&block18==0&&block19==0&&block20==0)

543:デフォルトの名無しさん
08/05/23 23:12:19
すいません、正式に言うと「ブロックがなくなったら」ではなく、「ブロック変数がゼロになったら」でしたね

544:デフォルトの名無しさん
08/05/23 23:25:17
block11=0

545:508
08/05/23 23:26:17
よくこの釣り間違い探しをやるな

546:デフォルトの名無しさん
08/05/23 23:26:42
>>544
intした名前が「block11」だったのがまずかったってことですか?

547:デフォルトの名無しさん
08/05/23 23:40:00
>>546
マジで言っているならプログラミングなんてやめて旅にでも出ることをお勧めしておく。

548:デフォルトの名無しさん
08/05/23 23:42:28
>>547
今気がつきました=が一つしかありませんでしたね
初歩的なミスでした

549:デフォルトの名無しさん
08/05/23 23:43:40
もっと根本的に変数使いすぎ
配列など、別のアプローチを考えれ

550:デフォルトの名無しさん
08/05/23 23:46:02
いやあ、恥ずかしいです…

551:デフォルトの名無しさん
08/05/23 23:48:11
配列はおろか、ブロックの数をカウントするカウンター作ったほうがいいだろ…。あとここDirectXスレ…

552:デフォルトの名無しさん
08/05/23 23:51:29
おっとここはDirectXスレだったな
釣られちまったぜ

553:デフォルトの名無しさん
08/05/24 01:25:59
>>545
誰もやってない悪寒。
少なくとも俺はソースがあまりにひどかったので1度動かして消した。

554:デフォルトの名無しさん
08/05/24 11:40:55
この前RADEONだと色々厳密という話しがでたので、RADEON買って来て試してみた
今まで遊びで作ってたほとんどのゲーム、まともにうごかねえw
色々見直そう

555:デフォルトの名無しさん
08/05/24 12:02:08
Radeon、Geforce両方をDebugRuntimeでチェックするのがベスト。
nVidiaのドライバーは空気を読見すぎるのが困る。
しいていうならタグが変でも一応見れちゃうIEと手厳しいネスケの違いみたいなもんか。

556:508
08/05/24 12:18:10
>>553
545のは直上の人に言った言葉です
ていうか、特に何がやばそうでしたか?

557:デフォルトの名無しさん
08/05/24 13:05:57
>>556
まずアプリの終了時にバックバッファ解放してないだろ。
Getしたものは全部Releaseしろ。

あとSDKいれてるならDebugRuntimeで試せ。
それなら終了時に解放してなかったりD3Dエラーが出たときにデバッガで落ちるようになる。

558:デフォルトの名無しさん
08/05/24 14:31:53
CComPtrマンセー

559:デフォルトの名無しさん
08/05/24 16:51:30
俺はこんな感じでやってるわ

class ICallbackDeviceReset
{
public:
ICallbackDeviceReset();// std::setでつくられたグローバルリストに登録
virtual ~ICallbackDeviceReset();// std::setでつくられたグローバルリストから解除

virtual OnLostDevice()=0;
virtual OnResetDevice()=0;
};

デバイスのロスト>リセット時に呼び出されたいクラスは、このクラスを継承するようにすれば
自動的に呼び出されるようになる。

560:508
08/05/24 16:59:16
>>557
バックバッファの解放とはGraphicsオブジェクトにセットしたポインタをリリースしろということでしょうか?
それならばGraphicsオブジェクト終了時に自動解放されています。
ところが、デバッグモードで見たらMemory still allocated! Alloc count = 94の文字がorz
しかもAllocIDが出ないので、何がまずいのか分かりませんでした・・・
CreateDeviceの際にパラメータに書いてあるバックバッファやステンシルバッファといった物は
明示的な解放はいらないですよね?

>>559std::setがstd::listなだけでまったく同じことしてます。

561:デフォルトの名無しさん
08/05/24 17:06:50
>>560
listに入ってないリソースを疑うか
listの処理そのものを疑え。

562:508
08/05/24 17:27:19
リリース忘れはどうやらスプライトのようでした・・・
これで先のエラーは出なくなったんですが、Ctrl+Del+Altを押した時に
Direct3D9: (ERROR) :Device is in an invalid state. Only Reset, TestCooperativeLevel or Release could be called
がひたすら出てしまいました。デバイスロストからの復帰に失敗してるんでしょうが、なにぶんメッセージの意味が分かりません

>>561どうやらlistが怪しいようです・・・。ここをもうちょい詰めてみます。

563:デフォルトの名無しさん
08/05/24 17:54:12
>>562
listだと、アドレスを登録する時に
・重複が怖い(コンストラクタでのみ自動登録されるなら心配ないが)
・解放時の検索速度が、setのほうが圧倒的に速い
って利点があるぜ。

ソース見ようとしたけど404だったんで突っ込んだアドバイスしてあげられないな。
もう一回UPする気ない?(スプライト修正版を)

564:デフォルトの名無しさん
08/05/24 17:54:58
なんか日本語があからさまにおかしいが、脳内補完してくれ。
setのほうがいいよってことで(;´Д`)

565:デフォルトの名無しさん
08/05/24 17:58:53
メッセージの意味は、

デバイスが不正な状態になってます。
この場合、Reset、TestCooperativeLevel、Releaseのどれかのメソッドしか呼び出せません。

つまり、まぁデバイスがロストしてるよと。復帰させるか、あきらめろと。

566:508
08/05/24 18:01:32
>>563
リストどうやら間違ってませんでした。
URLリンク(ccfa.info)
よろしくお願いします。

567:デフォルトの名無しさん
08/05/24 18:16:31
oggがどこで生成されるのか謎だからあくまで予測なんだが

デバイスを作成したスレッドと、デバイスをリセットしようとするスレッド。
違うスレッドになってね?
全部リソース解放してても、スレッドが違うと失敗するんだが。

568:デフォルトの名無しさん
08/05/24 18:26:22
すまん、oggの作成場所発見したわ。
同じスレッド上だな。

しかし綺麗なソースだな。
うちの部下どもに爪の垢を煎じて飲ませてやりたいわ

パッと見問題はなさそうな分、とりあえずD3D関連の生成物を全部カットしてリセットして、問題なければ一部だけ生成するようにしてリセットしてみて…
ってやっていくしかないなぁ

569:デフォルトの名無しさん
08/05/24 18:47:42

Graphics& GameWindow::getGraphics(){
if(device != NULL && g.target->target == NULL){
device->GetBackBuffer(0,0,D3DBACKBUFFER_TYPE_MONO,&(g.target->target));
}
return g;
}

ここのバックバッファをReleaseしてないのが原因じゃねーか?

570:508
08/05/24 19:03:26
>>569できたお
ありがとうございました。

ところでテクスチャからサーフェイスをGetしていた場合Releaseの順番てどちらからでも問題ないですか?

571:デフォルトの名無しさん
08/05/24 19:07:54
作ったのと逆の順で解放するのが良い。
そうしなかった場合不具合が起きるかは未検証だが、プログラムでは逆順解放が基本。

サーフェイスは描画前に取得して、描画終わったらさっさとReleaseしちゃいな。
取得にほとんど時間かからないから。

572:デフォルトの名無しさん
08/05/24 19:42:45
CComPtrとか使えって言ってんだろ。初歩的なミスが綺麗さっぱりなくなるぜ?

573:508
08/05/24 19:50:08
>>572
CComPtrってデバイスロストでもリリースとかしてくれるんですか?
なんか話のポイントが違う気が・・・

574:デフォルトの名無しさん
08/05/24 19:50:52
>>572
確保しっぱなしだったから、結局はデバイスリセットの時に正しく解放できなかったと思うぜw

そういや508よ。
「ベース メンバ初期化リストで使用されました」
のワーニング出てたぞ。直しておけよ。

575:デフォルトの名無しさん
08/05/24 20:04:05
warningをちゃんと潰す、DebugRuntimeでエラーがない事を確認する、
nVidiaのドライバはATiに比べるとかなりエラーに甘いのでちゃんと
nVidiaとATiの両方で動作確認をしっかり行なう。

576:508
08/05/24 20:39:35
>>574マジすか・・・BCCでは出なかったのに、工夫してみます。
本当に親切にありがとうございました。ノシ


577:デフォルトの名無しさん
08/05/24 21:13:16
デバッグの警告レベルを最大にしたら
(WARN) :Ignoring redundant SetTextureStageState
が出まくるんだけど・・・
かといって、デフォルト値使われるのかと思ってコメントアウトしたら全然違う動作しやがる

578:デフォルトの名無しさん
08/05/24 21:42:26
同じのを何度も設定してるんでないの?
最大レベルだとどうでもいいwarningが大量にでるから1レベル下がいいよ。

579:デフォルトの名無しさん
08/05/24 21:50:56
あるねー>どうでもいいwarning
なんか最近のVCで昔ながらのstr~関数を使うだけで
警告出しやがるようになりやがったし
VC作った奴の感性がちょっとわからなくなった
リソースわけられないとかそっちの方をどうにかしてほしいのに
余計なもんばっかり増えていくな

580:577
08/05/24 21:52:09
何度も設定はしていないけど、
一番最初に描画される時にも出てるから、そこで警告出るんならデフォルト値使われてるのかな、と思ったんだけど、
ちゃんと設定しないときちんと描画されない。
余計な警告は無視する方が吉みたいですね

581:デフォルトの名無しさん
08/05/24 21:59:51
警告でウザイのは、例外を使ったときのだな。
わかって使ってるのに

582:デフォルトの名無しさん
08/05/24 22:25:58
>>580
それはデフォルト値が使われているという警告じゃなくて、
Aという値を前回セットしたにも関わらず、同じ値をセットしたときに起きる。
フレームをまたいでもチェックされる。

583:577
08/05/24 22:36:24
いやだから、一番初めにセットした時に出るってことは、デフォルト値とかぶってるんじゃないのか、
と思ってたってこと

584:デフォルトの名無しさん
08/05/25 00:22:38
DirectXで両面ポリゴンは、描画可能なのでしょうか?

585:デフォルトの名無しさん
08/05/25 00:26:38
可能です!

586:デフォルトの名無しさん
08/05/25 00:41:07
ありがと。
エクスポートがうまくいかなかったのかな…。

もしかして、なにか設定が必要ですか?

587:デフォルトの名無しさん
08/05/25 00:47:21
自己レスです。
LW使ってたのですが、付属プラグインは片面になってしまうそうで・・・。
LWからのエクスポートで、何か方法を知っていたら教えてください。

588:デフォルトの名無しさん
08/05/25 01:13:55
実行時のD3DのSetRenderState()の設定次第なんだが・・・

589:デフォルトの名無しさん
08/05/25 01:23:46
LWでダブルサイド指定じゃなく、
ちゃんと倍の頂点使って裏のポリゴンを作っておく

エクスポート時に、ダブルサイド指定のポリゴンを
裏ポリ用頂点を作ってくれるエクスポーターなんて知らんね…

UVやらマテリアルやら関係なく、ただ両面描画しれてば良いだけなら
>588の言う通り

590:デフォルトの名無しさん
08/05/25 01:45:51
とりあえずD3DRS_CULLMODE(ですよね?)を指定しておき、
あとで裏にポリゴンを作ろうと思います。
ありがとうございました。

591:デフォルトの名無しさん
08/05/25 06:32:23
Xファイルを出力、編集するソフトって何がありますか?

592:デフォルトの名無しさん
08/05/25 09:44:08
メタセコイア
有料版でもインポート・エクスポート以外は使える。
その.mqoをLEで読み込めば・・・・

593:デフォルトの名無しさん
08/05/25 10:23:25
現状、メタセコでモデル作成。POSERでBVH作成。LWで合成してXファイルで出力
ってやってるわ

594:デフォルトの名無しさん
08/05/25 11:26:51
DLL_APIってなんですか?DLLを作る命令?

595:デフォルトの名無しさん
08/05/25 12:04:04
>>594
マルチすなや。

596:デフォルトの名無しさん
08/05/25 16:40:33
デバイスロスト時ってもしかしてSetTextureStageStateで設定した情報も失われてる!?

597:デフォルトの名無しさん
08/05/25 18:53:43
Presentしたらステート必ずセットし直すか、ステートブロックでも使え。


598:デフォルトの名無しさん
08/05/25 18:57:10
Xファイルに出力したカメラのアニメーションを利用したいのですが、どうすればいいのでしょうか?

599:デフォルトの名無しさん
08/05/25 19:06:22
>>597
ステートブロックはデバイスロストしたら一緒にロストすんぞ。

>>598
どうもこうもアニメーション情報を読んで再生する。

600:デフォルトの名無しさん
08/05/28 03:43:28
フルスクリーンのときにスクリーンサイズを600×400にするとCreateDeviceに失敗し、
640×480などのサイズにすると成功するんですが、どういった理由でこうなるのですか?

LPDIRECT3D9 p_d3d;
D3DPRESENT_PARAMETERS d3dpp;
D3DDISPLAYMODE d3ddm;

p_d3d = Direct3DCreate9(D3D_SDK_VERSION);
m_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm);

ZeroMemory(&m_D3Dpp, sizeof(D3DPRESENT_PARAMETERS));
d3dpp.BackBufferCount = 1;
m_D3Dpp.Windowed = TRUE;
m_D3Dpp.BackBufferFormat = d3ddm.Format;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
// ここまで同じ設定

d3dpp.BackBufferWidth = 600;
d3dpp.BackBufferHeight = 400;
// これをCreateDeviceに指定すると失敗する

d3dpp.BackBufferWidth = 640;
d3dpp.BackBufferHeight = 480;
// これをCreateDeviceに指定すると成功する

601:デフォルトの名無しさん
08/05/28 05:26:43
600x400のモードをデバイスがサポートしてないだけじゃないの?
関数の戻り値とか調べてください

602:デフォルトの名無しさん
08/05/28 08:55:42
600x400なんて画面モード、存在するのか?

603:デフォルトの名無しさん
08/05/28 12:36:49
>>600
グラフィックボードで使える解像度じゃないからだよ
EnumAdapterModes( )でそのデバイスで使える解像度を列挙できるからその中から選べ

604:デフォルトの名無しさん
08/05/28 17:09:35
>>602
PC-98時代の遺産だな。仕事で出会う確立はもはやレアだろ。

605:デフォルトの名無しさん
08/05/28 17:31:36
PC-98でも横は640だし・・・

606:604
08/05/28 17:54:34
をや??・・・640×400と見間違えた。

607:600
08/05/28 20:59:35
>>601-606
なるほど、使用出来る解像度の問題だったんですね。
ありがとうございます。

ついでに質問なんですが、解像度は現在のディスプレイの解像度を使ったほうがいいのでしょうか?
それとも各ディスプレイごとに使用出来る解像度を調べて、自分のプログラムにあった解像度を選んだほうがいいのでしょうか?


608:デフォルトの名無しさん
08/05/28 21:09:54
>>607
他のゲームを参考に汁
どっちのタイプもあるよ
自分の合う方法を探せ

609:デフォルトの名無しさん
08/05/28 21:18:53
320×240,640×480,800×600,1024×768のどれかなら、
必要な解像度を動作環境に明記しとけば大丈夫。
一般的な解像度はこの辺だからな。

610:デフォルトの名無しさん
08/05/28 21:21:45
そういや、2Dゲーは解像度固定が、3Dゲーは解像度可変が多いよな。

611:デフォルトの名無しさん
08/05/28 21:30:33
ポリゴンは解像度に依存しにくいからな

612:600
08/05/29 01:10:37
>>608-611
他のゲームの解像度と一般的な解像度と開発環境などと相談して決めるのがよさそうなので、
そこらへんを考慮しつつ可変か固定か決めてみたいと思います。
ありがとうございました。


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