1 :
名前は開発中のものです。 :
02/12/10 17:34 ID:tkEwMMYm
2getzusa-
ResetはD3D_OK返してます。 D3DPOOL_MANAGED以外は使ってないので、 各オブジェクトのReleaseもしてません。
あぼーん
6 :
1 :02/12/10 19:02 ID:tkEwMMYm
DirectXAudioでデバイスの列挙をする関数を教えてください。
>>8 IDirectMusic8::EnumPort
関数じゃなくてメソッドだ罠
10 :
名前は開発中のものです。 :02/12/11 00:45 ID:nElzBzIF
>3 デバイスの設定が初期化されてんじゃないの? 具体的に何かは忘れたが、再設定してやらないといけなかったと思う。 識者よろしく
あぼーん
>>7 2chブラウザによっては、リンク先のスレッド名を取得するのでバレバレというのをご存知か?
13 :
名前は開発中のものです。 :02/12/11 18:13 ID:dYtn0SwM
C言語ではfloatよりdoubleの方が計算が速いと言うのを聞いたことがあるのですが、 なぜDirectXは多くの場面でfloatを使うのでしょうか? 使用メモリ量の関係ですか?
floatの方が早いに決まってるじゃねぇか
15 :
13 :02/12/11 18:42 ID:dYtn0SwM
float型の演算は内部でdoubleにキャストしてから行われるというのを何かで見たのですが、 それはVisualC++には当てはまらないのですか?
>>15 コンパイラ依存ではなく
アーキテクチャ依存だと思われ
>>13 SSE,3DNowのためかと思ってたけどよく知りません
>>15 >float型の演算は内部でdoubleにキャストしてから
コプロ(内蔵してるが)使用するときはその様な感じになってると
聞いたことがあるような気がするがよく知りません
使用メモリ量と帯域の影響だと思う。ちょっとくらいCPUが重くなっても メモリから取り出すデータ量が減ったほうが効率がいいんじゃないかな?
20 :
名前は開発中のものです。 :02/12/11 20:14 ID:frs86VqQ
たしか浮動小数点の演算をするところがdoubleにあわせて作られてるとム板できいたことがある。 たしかにfsinfとかの関数をおってくと floatでキャストしただけになってて最適化なんてやってくれそうもない。
あぼーん
float dir = 0.5; float vx = sin(3.141492 * dir)l; ↑これにはfloatからdoubleへの暗黙のキャストが隠れている。 それを避けたければこう。↓ float vx = sinf(3.141492f * dir);
23 :
名前は開発中のものです。 :02/12/11 23:18 ID:5cp9RTbD
だからそれってさあ、デバッガでおってくと強引にfloatでキャストしてあるだけだよ。
あぼーん
>>23 > だからそれってさあ、デバッガでおってくと強引にfloatでキャストしてあるだけだよ。
それは最適化なしの場合だろ。
最適化ありだとFPU命令になるだけで
そもそも関数呼び出しにならないよ。
22 の場合もどっちも同じ命令にコンパイルされる。
26 :
名前は開発中のものです。 :02/12/12 00:23 ID:E1h2ul2n
そうなんだ関数呼び出しにもならなんだ。
あぼーん
あぼーん
あぼーん
30 :
13 :02/12/12 10:27 ID:YYFVkYo6
>14-29 安心してfloat使ってよいと言うことですね(最適化ありで)。 ありがとうございました。 ソボークな疑問なんですけど、floatとFLOATって何か意味が違うんですか? 違いはなくても意味があって大文字のものと小文字のものがあるんですか?
あぼーん
あぼーん
34 :
名前は開発中のものです。 :02/12/12 11:21 ID:smOf7KP3
あぼーん
あぼーん
あぼーん
あぼーん
39 :
王様 :02/12/12 17:08 ID:27oI7cTX
>>34 ソフトウェアのすばらしいサテンは、明日その心臓にある慈悲を感じて、そしてついにDirectX 9のための苦しめる待機を終えて、そしてそれを発表しそうです。
3つのベータと2人の解放候補者の我々がゆっくり見たバージョン、と確かにそのDirectXで、9は、本物のより幸福ないくつかの会社を助けて、そしてDirectX 9人の運転手を解放するだろう充分に羽がでるまで育てられた鳥になるところです。
それを支える唯一のカードを現在送ることは、Radeon 9700および9500のプロとアマチュアです、そして、それは多くがクリスマスツリーのもとできらきら輝いているのを見つけるでしょう。
Nvidiaは、本当に、そのDirectX 9支持者を贈りました、Geforce FXしかしこのカードは、大量に2月ほどにはすぐに利用できないでしょう。
ATIは、それが公式に発表されると同時に、彼らが9月と彼らが彼らの顧客にDirectX 9の全面的支援をもつフリーのドライバーを提供するだろう今の最終版からのDirectX 9ハードウェアを出荷しているので、誰より先にこれから利益を得るでしょう。
ATIは、9700および9500の世代のためにRC0にDirectX 9、そのファンシーなデモとドライバーのバージョンをすでに提供していて、しかし、約1日で、それは、その揺れ動いている役割の用意ができている最終の1があるでしょう。
開発者は、ついに彼らが遊ぶことができる本当のAPIを持つでしょう。μ
>>34 マジであってほしい・・・
そうならRadeon9700買う。
しかしGeForce5発表後とは予定通りだなあ。 やっぱりバランス取ってるのね。
43 :
名前は開発中のものです。 :02/12/13 14:38 ID:7xJaeg/e
fraps
http://www.fraps.com/ みたいに、他のDirectXソフトの画面に他アプリケーションが
重ね描きするのって、どうやればいいんでしょう?
どなたか、キーワードだけでも知らないですか?
あぼーん
☆ チン マチクタビレタ〜 マチクタビレタ〜 ☆ チン 〃 Λ_Λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・) < DX9まだー? \_/⊂ ⊂_ ) \_____________ / ̄ ̄ ̄ ̄ ̄ ̄ /| | ̄ ̄ ̄ ̄ ̄ ̄ ̄| | | .佐賀みかん. |/
MS DirectX 9 final version coming any day nowで検索すると 12日付けで結構引っかかるな。
47 :
名前は開発中のものです。 :02/12/14 17:31 ID:1VN/aEFO
あぼーん
>19 それもあるが、プロセッサに載ってる命令セットの問題もある。 3D 演算では行列・ベクトルが多用されるわけだが、この処理を高速化するため に載ってる命令が、単精度浮動小数点 * 4 の 128bit データを前提としてる。 IA-32 でも PlayStation 2 でも、この手の SIMD 命令を使う演算ユニットと、汎用 の浮動小数点演算用コプロセッサと両方持ってるんだが、行列演算では前者を 使わんと性能が一桁落ちる。
50 :
16 :02/12/14 22:32 ID:S4SiGzG1
>floatよりdoubleの方が計算が速い ふと思ったんだけど、これって for(int i;i<=1000000:i++,f++); とかの命令を実行したとき、 fはfloat型よりもdouble型のほうが速いってことを言ってるんじゃないかな? これだったらレジスタでバリバリ計算できるからメモリ読み出しは皆無 だからネイティブなdoubleのほうが速いんじゃないかな? こういうことはあんまり詳しくないので詳しい人、解説きぼんぬ
51 :
16 :02/12/14 22:33 ID:S4SiGzG1
うわ、int iになってる・・・ とんでもなく恥ずかしいコードだ int i=0でよろ
単純にメモリ量が2倍になるとか。
> 50 > だからネイティブなdoubleのほうが速いんじゃないかな? ネイティブなdoubleってのがよくわからんのですけど float も double もアセンブラレベルでは同じなんで 速さも変わらんでしょ。 逆にメモリへの読み書きが double の方が倍多くなるんで double 使った方が遅くなるかも。 49 のとおり SSE やグラフィックボードも32ビット浮動小数点なんで DirectX やるなら普通は float 使ってどうしても精度が問題になるときだけ double にすべきでしょ。
メモリアクセスもあるが、それよりもFPUを単精度モードに固定する から速くなるんだろ。 DX7の頃はヘルプにもっと詳しく書いてあったんだが、DX8ではほとんど 説明が無くなってる。
55 :
49 :02/12/15 02:23 ID:GQA1dSUc
>50 > だからネイティブなdoubleのほうが速いんじゃないかな? x87 FPU のレジスタは 80bit だから、レジスタ内部の型と一致するのは double ではなく long double です。(型と内部表現の関係は厳密には処理系依存だけ ど、大抵の IA-32 向け処理系では float = 32bit, double = 64bit, long double = 80bit としてる)。 ただ x87 ではメモリ上のビット表現の如何によらず、レジスタ・メモリ間でデータ 転送する際に「ハードウェアによって」型変換されます。この型変換のコストはゼ ロですから、float でも double でも差はありません。 あと x87 を使う際に厳しいのは、レジスタの数が 8 本と少ないことと、スタック アーキテクチャを採っているのでコンパイラによる最適化が利きにくいこと。 レジスタ 8 つといったら同次ベクトル 2 本で既に溢れてしまうわけで、計算以前 にメモリとのロード・ストアに忙殺されることになります。
>54 > メモリアクセスもあるが、それよりもFPUを単精度モードに固定する > から速くなるんだろ。 DirectX では単精度モードに固定はしてないよ。 FPUレジスタサイズと同じ拡張倍精度のままだよ。 単精度モードにしても内部では拡張倍精度で計算されて 丸め精度が単精度になるだけなんで速くなるとは思えない。 あとVisualC++だと double も long double も 64bit なんで レジスタと一致する型はないですね。
>>56 Direct3Dはデバイスを作成したときにFPUを単精度モード、FPU例外無効に
設定する。デバイス作成前と後で計算結果が変わるという報告もあるから、
これは間違いないかと。
たぶんD3DCREATE_FPU_PRESERVEを指定しないでデバイスを作成した後に
doubleを使ってもdoubleの精度では計算されていないと思う。
Direct3DはFPUの状態がデバイス作成時から変わらないことを前提に最適化
されているから、doubleを使うときはD3DCREATE_FPU_PRESERVEを指定するか
自分でモードを切り替える必要がある。
D3DCREATE_FPU_PRESERVEを指定すると、Direct3Dの関数呼び出しの前後で
FPUの状態を同じに保つようにするから、それがパフォーマンスに影響する。
…というのがMSの説明。
_controlfpとか使って手動で切り替えればいいのかも。
58 :
56 :02/12/15 15:59 ID:TrKuLw0B
>56 すいません、今確認してみたらたしかに単精度モードでした。 なんか DirectX とは関係ないライブラリの初期化時に で倍精度モードに書き換えられてた。 CreateDevice 直後に見たら単精度モードでした。 でも Pen4 で実測してみたんだけど 単精度/倍精度に関係なくFPUの計算速度は同じだった。 Pen4 以前の CPU だと速くなったりするんですかね?
精度であって速度ではないかと・・・
>>58 デバイス作成した後にDLLをロードするとリセットされるよ。
速度はFPUのモード切り替え以外ではほとんど差がないんじゃない?
三角関数なんかは精度によって速度が変わるかもしれないが。
61 :
56 :02/12/16 00:05 ID:LbANvt5G
>60 FPU 使ってなさそなやつだったんで 何でモード変えちゃってるか疑問だったんだけど DLL ロードでリセットされるんですか。 納得です。
確か精度で速度が変わるのはFDIVだけじゃなかったかな。
63 :
56 :02/12/16 13:07 ID:lLWQwiGl
>62 fdiv だとたしかに速度変わりますね。 しかも微妙にじゃなく結構豪快に変わった。 fmul と fsin しか調べてなかったよ・・・
floatとdoubleの話なんだが、この話の原因である「doubleの方が早いのか」のヒントになりそうな文章を見つけたよ
その文章を抜粋すれば ()の中身は文章をわかりやすくするため漏れが付け加えました
>・floatの計算
>以前(ANSI C以前のC)はfloatはdoubleに変換されてから計算されていましたが、
>直接計算されるようになりました。
>そのため必要とする精度が少ないない場合は float を使った方が高速になりました。
↑なんだけど、doubleのほうが早いって言うのはANSI C以前のCについての記述じゃないかな?
漏れは詳しくないから良くわかんないんだけど、知っている人おしえてくらはい。
ソースはここ
ttp://member.nifty.ne.jp/Ryuz/c/about_ansi.html
66 :
名前は開発中のものです。 :02/12/19 09:42 ID:+qpAae3H
あぼーん
69 :
66 :02/12/19 17:40 ID:+qpAae3H
>>68 ありごとうございます。
環境不足ですね。
サンプルソース激しく参考にさせていただきます。
お互い頑張りましょう。
70 :
名前は開発中のものです。 :02/12/21 00:21 ID:H0pabYy8
>>70 ナイス
休みの暇つぶしが できそうだYO
Direct X9を入れてからDirect Audio8の挙動がおかしい 具体的にはDirectMusicPerformance8::CreateStandardAudioPathが失敗するようになった。 戻り値は0x88781226で、意味は 「パフォーマンス チャンネルがIDirectMusicPerformance8::AssignPChannel を使ってセットアップされたので、 パフォーマンスはオーディオパスをサポートできない。 」 なんだそうだ。しっかし、AssignPChannelを使った覚えはなく、自分のソースを検索しても見つからない(使っていない) 第一、今まで正常に動いていたのが動かなくなる理由にはならないし、 使い方が間違っていて偶然動いていたにしては、戻り値が明らかにおかしいし。 同じ症状の人いませんか?解決策はありますか? このままだと今まで作ってきたソフトが全滅してしまうのです・・・
73 :
72 :02/12/21 11:22 ID:BdqHu3/h
うわ!Direct Music8のチュートリアル2まで動かなくなってるよ・・・ (\samples\Multimedia\DirectMusic\Tutorials\Tut2) サウンドデバイスはUSBオーディオだからドライバもクソもないし・・・ こ・・・こりはDirect X9のせいにしてもよかですか?
74 :
名前は開発中のものです。 :02/12/21 11:35 ID:eiYZ1q8i
基本的なところでバージョン定数はちゃんと定義しましたか?
あぼーん
C#での使い心地はどうよ?
プログラムは昔からやっているんだが、DirectXの勉強をしようと思う。 で、質問なんだがD3DってXファイル以外使えないの? 環境:Visual C++.net Windows 2000 SP3
78 :
名前は開発中のものです。 :02/12/21 15:29 ID:WU56vZJB
>>77 いいえ、そんなことはないですよ。
ただXファイルなら読みこむ関数が用意されているので楽なのです、
ちなみにその関数はD3DではなくてD3Dを使いやすくするための付属ライブラリの
D3DXについてます。
市販ソフトや良く出来たフリーソフトは
独自形式データ&独自の読みこみルーチンが一般的です。
79 :
名前は開発中のものです。 :02/12/21 15:33 ID:0+pehiHA
>>78 なるほど、だから市販のソフトにはXファイルがないのか。
しかし、モデリングとかはどうするのかな?自分でプラグインとかをつくるの?
80 :
名前は開発中のものです。 :02/12/21 15:36 ID:WU56vZJB
>>79 モデラーからフォーマットが公開されている形式で出力させる
↓
独自フォーマットへ
っていうコンバータ作るのが一般的かな?
>>80 ありがとうございますた。最初はXファイルでやってみて実用的になったら
独自形式の方法もやってみます。
82 :
名前は開発中のものです。 :02/12/21 15:46 ID:CgoKZUqk
おいおい、C#のサンプルめっちゃ速えよ。十分すぎるほどだ。 どうせ使うつもりないけど、下手にC++にこだわって泥沼に入ってる オレみたいなのには脅威かも。
83 :
名前は開発中のものです。 :02/12/21 16:13 ID:i7W/82mb
VISUAL C++ 6.0 WIN MEでやってるけど、 XPでも動くの?C++ 6.0は?
>>82 C++とどっちが速いですか?
メモリ使用量も気になるが。
>>82 .\ オオオオオオ―――――ッッッッッ . /
\. /
(゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚)
(゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)
(゚∀゚)(゚∀゚)(゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚)(゚∀゚)(゚∀゚)
(゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚)
( ゚∀゚)( ゚∀゚)( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )(゚∀゚ )(゚∀゚ )
.( ゚∀゚)( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ ) ( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )(゚∀゚ )
( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ ) ( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )
────────────────────────────────
じゃぁ、C#でDirectXを始めよう!!
ゲームルーチンを加えるとドンと重くなったりして。
>87 C#をunsageで使うぐらいならC++のほうがらくだ
質問なんだけど、Managed DirectX って結局はDirect Xを扱うためのもう一つの方法なんだよね? Microsoft.DirectX.DirectDraw.DrawEffects の項目を見てて、 相変わらずDirect Drawでα値を使えるみたいなこと書いてあるんだけど、 別に、使えるようになったわけじゃないんだよね?Direct Xの本体はおんなじ物なんだよね?
今更そんなことを聞く理由が理解できない
91 :
名前は開発中のものです。 :02/12/22 00:11 ID:VTU8yluM
いろんな問題が起きそうなのでDrawは終了だろ? グラボの方のサポートも怪しくなってきそうだし。
あぼーん
93 :
名前は開発中のものです。 :02/12/22 06:16 ID:YI0WQzNU
おまえらひきこもんな 終
94 :
名前は開発中のものです。 :02/12/22 09:59 ID:6B/yK4Zz
DirectDraw使い = 引きこもり同人STG作者 終了
HLSLの予約語。 −−−−−−−−−−−−−−−−−−−− 次のキーワードは未使用だが、予約されている。 asm* bool compile const auto break case catch char class const_cast continue default delete dynamic_cast enum explicit friend goto long mutable namespace new operator private protected public register reinterpret_cast short signed sizeof static_cast switch template this throw try typename union unsigned using virtual −−−−−−−−−−−−−−−−−−−− なんかclassとかありますな。 今のとこ使えないようだが、 シェーダもオブジェクト指向で書けるようになるわけですか。 シェーダプログラムの拡張がしやすくなってウマー…なのか?
C++ の予約語に合わせてみただけに一票。
97 :
名前は開発中のものです。 :02/12/22 10:20 ID:6B/yK4Zz
8.1からの移行で、いままでnvasmを使ってた人はdx9の dcl_position どうするの?
あぼーん
99 :
名前は開発中のものです。 :02/12/22 12:54 ID:6B/yK4Zz
この板はもうだめだと思いますが、 他にまともなDirectXのBBSありますか?
>>98 前から思っていたが、なんでこのすれは終わるんですか?
101 :
名前は開発中のものです。 :02/12/22 13:10 ID:6KQt+AoQ
>>99 directxで検索してみればあるでよ。
荒らしてるヤシはpcゲーム作りたいのだが、オカネが無い、
担当させてもらえない、技術ガナイ、英語が読めない、
リストラされて荒れてるだけだから、、、許してやってね。
あぼーん
103 :
名前は開発中のものです。 :02/12/22 16:14 ID:mBDSZwTf
あぼーん
105 :
名前は開発中のものです。 :02/12/22 17:22 ID:sSsEI5R3
以前DirectX7で作ったノベルゲームをDirectX8で作り直そうと思いやってみたのですが、 テクスチャを使うと背景画像やキャラ画像が512x512になってしまいます。 やはりサーフェイスを使うべきでしょうか? DirectX8のスプライト機能は重いって聞くけど、 ポリゴンにテクスチャを貼るようにしたほうがいいのでしょうか?
106 :
名前は開発中のものです。 :02/12/22 17:37 ID:IeNHUVjA
WinAPIで組むかテクスチャをよりでかいサイズを使うぐらいしか解決策がねぇな。 後は7以前で組むとか。
107 :
名前は開発中のものです。 :02/12/22 17:47 ID:ab12EPgU
DX9の2D描画系ではダメか
>>106 DX8の2D系はあまり良くないみたいですね。
もう少し弄ってみてダメそうなら諦めます。
>>107 DX9はまだ触ってないのでなんとも言えません。
触るのはもうちょと先ですね・・・
109 :
名前は開発中のものです。 :02/12/22 19:06 ID:Zc9XiYaJ
8は中途半端だから、俺はまだしばらく7を使うよ。 7なら大抵の環境で動くしな。1年後くらいに9に移行する。
今から9やってそのまま一年経過させれば良いのでは?
111 :
名前は開発中のものです。 :02/12/22 23:33 ID:3R93okVP
DirectX8.1を使ってメッシュの頂点配列やマテリアルなどのオプション子データを 抜き出して、メッシュを表示しながらそれらを編集するプログラムを作って います。 D3DXLoadMeshFromXofでメッシュを作ると、そのメッシュXfileDataの中に あるマテリアルリストのデータやメッシュノーマルのデータ等の子データが GetNextObjectで取得できなくなってしまいます。先にその子データを取得すると今度は D3DXLoadMeshFromXofの方でエラーがでるため、多分この関数内でGetNextObjectを やっているのだと思います。そのせいでこの関数が子を取得するとこのメッシュデータ の子を自分で取得できなくなる、という風に考えているのですが、どうにかして GetNextObjectでの子オブジェクトの参照カウントを元に戻す方法ってありますか? AddrefやReleaseをしてみても何も変化はないです。教えて下さい。
112 :
111 :02/12/22 23:36 ID:3R93okVP
>先にその子データを取得すると今度は >D3DXLoadMeshFromXofの方でエラーがでるため 間違えました。エラーはでないのですが、マテリアルリスト等の子データを 持たないメッシュができてしまい、表示がおかしくなります。
あぼーん
なんでDX9SDKのC++のサンプルにはSkinnedMeshがあるのに、 Managed DirectX(C#とVB.NET)にはないんだろう。 単に省略しただけなのか、使えない理由があるのか。
Managedで書きにくいサンプルは全部はしょったとか。 あまりに遅くて泣く泣く削った… では無い事を祈る。
DXチームにC#の熟達者がいないんだよきっと
117 :
114 :02/12/23 23:44 ID:NO9DtWWS
どーも まー、たいした理由でないといいですな。
DXチームにC#に興味ある奴がいないんだよきっと やつらは3Dがやりたいんであって、C#やVBは上からのお達しで 仕方なくやってるdake
単純に労力の問題じゃないか?俺としては初めてC#対応したのにこれだけの 数のサンプルを用意してきた事に驚いたけど。 本音を言うと、C#のサンプルなんか用意するよりもD-MAPやMRTのサンプルを 作って欲しいんだが。毎度のことだけど、売りであるはずの新しい機能の サンプルが無いんだよな。
120 :
名前は開発中のものです。 :02/12/24 06:10 ID:IMP3us1S
超初歩的な質問だけど、教えて。 DX9落としたんだけど、サンプルがコンパイル出来ません。 UINTPTRが未定義とか言われる。 basetsd.hてのに宣言されてるけど、エラー出ていてるヘッダファイル D3D9.h(かな?)には、#includeそのものがない。 どうなってるんでしょうか? 同じエラー出た人います? (オプション>ディレクトリのパスは通してます(C:\DXSDK\include))
>>120 そのディレクトリの検索順は一番上にageてあるか?
122 :
名前は開発中のものです。 :02/12/24 12:23 ID:RrtXDOZR
DX9キター
>>105 テクスチャサイズは2の累乗にしなくちゃいけないんじゃなかったっけ?
DX9来てもマターリしてるなぁ。
>>123 DX8から部分的にサポートされてるよ
ただし利用方法が激しく制限されてるので
2^nの一部を使ったほうがまだマシ
>>125 どこが激しいのか疑問。
ミップマップ以外は制限とは言えない程度のささいな事じゃん。
2^nであってもCLAMPにしたらテクスチャラッピングは使えないから、
実質的に制限は2つだけ。
>>126 使ったことないのに無理しないで。
あとサポートしてる環境を把握してる?
>>127 そういう自分こそ使ったことない&把握してないのでは?
あの制限のどこが問題になるのか説明してくれる?
130 :
名前は開発中のものです。 :02/12/25 00:41 ID:o5sX+mEC
DirectX8でフルスクリーンにして、最小化して、元に戻そうとすると、 戻らないのですが、元に戻すには何かしなければいけないのですか?
>>130 Resetが必要なんではないか。
詳しくはサンプルを参照。
DX9 でも D3DX は dll じゃないの?
↑電波
>>130 D3Ddevice 作り直さないとだめなのよ〜ん(タブン)
んなこた〜ない
あぼーん
137 :
名前は開発中のものです。 :02/12/25 07:41 ID:BoDn9JVh
5 REM 10 DEFINT A-Z:SCREEN 3,0,0,1WIDTH 80,25:CONSOLE 0,25,0,1:CLS 3 20 device = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, presentParams); 30 RELEASE(device);
あぼーん
139 :
名前は開発中のものです。 :02/12/25 10:23 ID:vBfJXHZb
最近、DirectX系のHPって見ないなぁ。 BBXも野郎BBSも閉鎖だし、ここはこんな風だし… 日本のアマチュアゲーム開発は終了だな。(´・ω・`)ショボーン
140 :
名前は開発中のものです。 :02/12/25 10:45 ID:N0hSeH2R
BBX閉鎖するの?
if氏のHPってなんで閉鎖したのかな
143 :
名前は開発中のものです。 :02/12/25 11:58 ID:cEvsDgEI
BBXもif氏のとこも閉鎖してないぞ
[厨房法則] 調べることができない人間ほどBBSに頼りたがる BBSに頼りたがる人間ほど移転しただけで閉鎖したと勘違いする 勘違いする人間ほど自分が頼るものを失った時点で全てのアマチュアプログラマが開発を終了したと思いこむ
あぼーん
あぼーん
147 :
名前は開発中のものです。 :02/12/25 16:10 ID:o5sX+mEC
DirectXAudioについて聞きたいことがあるのですが、いいでしょうか。 自分のプログラムでは、MIDIを再生すると、リバーブ等のエフェクトが 最大になってしまいます。一度再生すると、全てのMIDIとWAVがこうなってしまいます。 そこで、エフェクトを削除する方法がわかったので、SetFX(0, NULL, NULL)で エフェクトを削除したら、すでに再生しているMIDIがとまってしまいました。 で、もう一度MIDIを再生しようとすると、またエフェクトがかかってしまうのです。 エフェクトを削除したら、再生しているMIDIがとまったというのは、 工学社のサンプルでもそうだったので(コードも同じでした)、そういうもんなのだと思ったのですが、 では、どうすればいいのでしょう。 そもそもMIDIを再生した時点でエフェクトがかかるのが間違いですか?
あぼーん
( `∀`)オマエガナー
150 :
名前は開発中のものです。 :02/12/25 20:54 ID:PzwC4Far
すつもん、よろしいでしょか? メッシュにxファイルを読み込みたいのですが、 そのファイルはどこら辺に入れておいたらよいのでしょうか? 本を買って勉強しているのですが、その辺がどうもわからなくて、つい。
151 :
名前は開発中のものです。 :02/12/25 21:16 ID:NnnYhCf/
あぼーん
あぼーん
>>151 お返事ありがとう!
…つまり、プロジェクトが入っているフォルダ?
155 :
名前は開発中のものです。 :02/12/25 22:09 ID:NnnYhCf/
>>154 VisualStudioから実行した場合はたぶんそうだけど
普通はexeファイルがあるところ、
カレントディレクトリをゲットする関数(Win32)とかもあるんで
調べてみたらいいかも?
156 :
名前は開発中のものです。 :02/12/25 23:29 ID:/fn3aOJD
DirectX8.1のSPRITE(LPD3DXSPRITE)を使って自分のライブラリを作ってるんだけど、 SPRITEで半透明ってできませんか?
>>150 カレントディレクトリはプログラムの実行の仕方や、実行中の操作で変化
するから、できればフルパスで指定した方がいいよ。
でも、大抵の場合はカレントディレクトリから読み込んで問題無い。
VisualStudioから実行した場合は、デフォルト設定のままならプロジェクト
のある場所がカレントディレクトリになるけど、プロジェクトの設定の
作業用のディレクトリで変更できる。
ちなみに、実行中にファイル選択ダイアログを使う場合は、このダイアログ
がカレントディレクトリを変更してしまうので要注意。
158 :
_ :02/12/25 23:34 ID:7ccBlzyE
>>154 どうやるのが一般的か知りませんが、自分は
char path[_MAX_PATH];
GetModuleFileName(hInst,path,_MAX_PATH);
で、exeファイルフルパスを取得したあと、邪魔なファイル名を削ってカレントディレクトリを取得しています。
実行ファイル名の削り方は、
char pDrive[_MAX_DRIVE+1];
char pDir[_MAX_DIR+1];
char pFname[_MAX_FNAME+1];
char pExt[_MAX_EXT+1];
_splitpath(path,pDrive,pDir,pFname,pExt);
でフルパスを分解してから、
string currentDirectory=pDrive+pDir;
currentDirectory+="\\";
くらいでいいのでは。
例えば、
Text.xというxファイルを、exeのあるフォルダにいれたとしたら、
ファイルを読み込むときに、
string filename=currentDirectory;
filename+="Test.x";
のようにかいて、それをファイルを読み込むメソッドの引数に入れるとか。
う〜ん、わかりずらいですね…。
159 :
158 :02/12/25 23:37 ID:7ccBlzyE
すまん。↑のコード currentDirectory+="\\"; は必要なかった。
160 :
名前は開発中のものです。 :02/12/26 00:15 ID:IJOtQDAy
悪いことはいわない。 ぜぇっっってぇーフルパスにしとけ。 なにがなんでもフルパスを使うくせをつけろ。
>156 DirectX8のスプライトはあまり良くないので、ポリゴンでスプライトの代用した方が 自由度が高いよ。
163 :
_ :02/12/26 00:52 ID:p7bBeRQy
>>156 ID3DXSprite使ったこと無いけど、たぶん
ID3DXSprite::Drawの引数D3DCOLORのα値を指定するのかと。
例えば50%半透明なら、
D3DCOLORにD3DCOLOR_ARGB(128,255,255,255)を入れればいいと思う。
>>162 同意。ID3DXSpriteには、あまりいい噂はききませんね。
フルパスマンセーの奴がいるが、正気か? exeのある場所を最初にカレントにして、そこから相対パスってのが基本だろ。
> exeのある場所を最初にカレントにして、そこから相対パス 開発中はdebug\hoge.exeとかになってるぽ
>>164 コモンダイアログのファイル選択ダイアログを使ったことがあれば
フルパスマンセーになるぞ。
ゲームならあまり使わないかもしれないがツールだとまず確実に使う。
>>166 ファイル選択ダイアログのフラグにOFN_NOCHANGEDIRつけとけばカレントディレクトリかわらないよ。
まあ、毎回元のディレクトリから始まるようになるので、
遠くのファイルを何回も選ぶ場合には面倒だけど。
嫌なら毎回ディレクトリ保存しておいて復元してもいいし。
あぼーん
169 :
名前は開発中のものです。 :02/12/26 07:04 ID:ePwyo9mV
問題は開発の誰かがカレントを変更してしまうおそれがある。 ってのが一番面倒、ぶんなぐれ。 でかいツール作ってるときは誰がなにやってくれるかわからない。 ゲーム本体でもユーザーに保存場所を選ばせる場合だと必要になるから、いっそフルパスマンセーのが楽に逝ける。
VCを個人で使ってるなら作業ディレクトリ設定できるからカレント云々は困らないけどね。
171 :
156 :02/12/26 07:10 ID:h8wBSWcJ
>>161 ,
>>162 ,
>>163 お、ちゃんとα描画できました。
SPRITEの方が簡単に作れると思ったのですが、やはり普通に
ポリゴンで扱ったほうがいいみたいですね…。
ありがとうございました(・∀・)
あぼーん
173 :
名前は開発中のものです。 :02/12/26 07:52 ID:f4uAG8Os
お、ディレクトリ管理の話ですか。標準でついてるExporterが Xファイルのテクスチャをフルパスで吐き出すのが困りものなのよね。 ところで、フルパスからカレントパスを作るのも意外とめんどい んだけどなんか良い関数ないもんですかね?
174 :
150 :02/12/26 09:15 ID:ik1sR7sq
答えてくださった方、ありがとう。 こんなにレスがつくとは思いもよりませんでした。 本当にありがとうございます!! では引き続き作業を頑張ります。
nvidiaのサイトからcg_toolkitが落とせない。 どっか他にない?
>>173 PathRelativePathToあたりどう?
環境(IEのバージョン?)によっては動かないかもしれないけど。
178 :
名前は開発中のものです。 :02/12/26 11:46 ID:Tz6MkjNI
DirectX初心者です。 現在.hackの様な視点の3Dゲームを作ろうとしているのですが、 周りの物体が妙に傾いたように描画されてしまいます。 プロジェクションマトリックスのセットはこんな感じです、 D3DXMatrixPerspectiveFovLH(&mProj, 60*PI/180 , 1.0f , 0.5f , 640.0f); 何か解決策は無いでしょうか。
引数三つ目のアスペクト比は1.0でいいの? 画面の縦横比をいれなきゃダメよ。
アドバイスありがとうございます。 早速アスペクト比をWIDTH/HEIGHTで入れたのですが、 やっぱり画面端に行くにつれ、木などが傾いてしまいます。
181 :
名前は開発中のものです。 :02/12/26 12:34 ID:j+J1+fQK
1.0のところを変えてみたらどうでしょ。 ってか、連書き規制きびしすぎねえ?1時間以上経つのにかけなかったよ
そういえば、アスペクト比でDirect X7かなんかの本のサンプルが逆になってたな 640*480の解像度で1.33333fとか入ってるの。 0.75だろうが!って突っ込みたかった。
60*PI/180の60を減らしてみよう
DXは横を1とした縦のサイズだったかな。 あとはfloatにキャストしてないとか int W = 320; int H = 240; D3DX...( ... , W/H, ...); じゃあダメよ。
あぼーん
>144 ありがちだな
みなさんのアドバイスを参考に、 D3DXMatrixPerspectiveFovLH(&mProj , 35.0f*PI/180 ,(float)WIDTH/(float)HEIGHT , 1.0f ,640.0f); と、してみたところ結構マシになりました。 ありがとうございました。
>>187 おめでとう。
あと、WとHが逆だったかもしれん。
DirectX3Dにはフラットシェーディングとグーローシェーディング があるそうですがどの関数で切り替えられれますか?
190 :
189 :02/12/26 18:38 ID:SuFqab0r
解決しましたが、フラットシェーディングとグーローシェーディング では処理速度はフラットの方が速いでしょうか?
>190 試してみるのが一番だ。
あぼーん
194 :
名前は開発中のものです。 :02/12/27 12:24 ID:7dHzV0a8
スプライトのBeginとEndの間に書ける処理って、 スプライトのDraw「だけ」なんですか? ポリゴンを描画しようとすると、自分の環境では表示がおかしくなるのですが、 ほかにおかしそうなところが見当たらないので、そういうもんと認識しても いいのでしょうか。
195 :
名前は開発中のものです。 :02/12/27 13:20 ID:vFPVFOou
>>147 パフォーマンスの初期化のところでデフォルトのオーディオパス・タイプをみて
DMUS_APATH_SHARED_STEREOPLUSREVERBになってませんか?
DMUS_APATH_DYNAMIC_STEREOにすればエコーがなくなります。
196 :
195 :02/12/27 13:22 ID:vFPVFOou
// パフォーマンスの初期化 hr = g_pPerformance->InitAudio( NULL, // IDirectMusicインターフェイスは不要 NULL, // IDirectSoundインターフェイスは不要 NULL, // ウィンドウのハンドル /*DMUS_APATH_SHARED_STEREOPLUSREVERB*/DMUS_APATH_DYNAMIC_STEREO , // デフォルトのオーディオパス・タイプ 64,// パフォーマンス・チャンネルの数 /*DMUS_AUDIOF_ALL*/NULL, // シンセサイザの機能 NULL); // オーディオ・パラメータにはデフォルトを使用 if (FAILED(hr)) { DXTRACE_ERR("DirectMusicPerformance8の初期化に失敗", hr); return FALSE; } 参考書コードの修正後ソース・・・この方が分かりやすいかと・・・
あぼーん
198 :
名前は開発中のものです。 :02/12/28 18:56 ID:pcScEEbX
レベル低すぎ 終了 おまえら首吊れ
シェーダ使えない環境でDirectX9のメリットってあるの?
>>195 うわぁ〜。すごいすごい。
その通りやったら見事直りました。
ありがとうございました。
あぼーん
>>199 まともな製品作るならシェーダで突っ走るに決まってる。
糞ユーザーのためにシェーダ使わない選択するのは愚挙。
そういうときはソフトウェアで頂点シェーダ動かしてピクセルシェーダは放置
203 :
名前は開発中のものです。 :02/12/29 05:46 ID:YZiM0Z3W
俺はWinXPに標準で載ってる8.1を選ぶぜ。 それは別として、DirectX 9の日本語HTMLヘルプがウィンドウサイズ記憶してくれない……。 どうなっとるんでしょうかこれわ。8のはちゃんと覚えてくれるのに。
あぼーん
205 :
名前は開発中のものです。 :02/12/29 09:23 ID:UWWAc8w/
シェーダーマンセーな人に悪いけどそんなのありえないからね。 まあ、大手でサポートバッチリならいいけど、 それ以外なら駄目よ。 だってグラボを自分でつけかえないかぎりピクセルシェーダなんてついてこねーだろ? ドライバだってとってくるとは思えない。 バンプだってまともに動くもんがすくないぞ
>>205 はいはい
別に使わなくていいよ
君はドライバ由来の不具合も自分の責任の範囲とする立派な方だ。
NECの98時代から受け継がれた日本の美徳だね。
207 :
名前は開発中のものです。 :02/12/29 11:25 ID:BImKIoRD
なにこの人つっかかってんだろう。 理想はそうかもしれんが、ユーザーにドライバの不具合がどうたら言ってもなあ。
ピクセルシェーダが使えるビデオボード持ってるユーザー 日本にどのくらいいるんだろ…? 10万人いるのかな? FF効果で結構増えたと思うが…。
210 :
_ :02/12/29 12:14 ID:WzbQdq3y
PCでゲームやる人はビデオカードくらい買い換えるでしょ。 一般ユーザーはPCでゲームなんてやらない(特に洋ゲーなんて)から、 シェーダー使いまくっても問題ないんじゃね
212 :
名前は開発中のものです。 :02/12/29 13:46 ID:XzXpe3S+
>PCでゲームやる人はビデオカードくらい買い換えるでしょ。 どの程度買い換えると思うんだい。 ゲームだけのために何万円も出せるやつぁなかなかいないよ。 今ならGeForce2MXか4MXあたりで満足してるだろうな。
213 :
名前は開発中のものです。 :02/12/29 15:23 ID:ZUUThS54
ヘルプより抜粋なんですが、 > D3DX8.CreateTextureFromFileInMemory メモリ内のファイルからテクスチャを作成する。 > > object.CreateTextureFromFileInMemory( _ > Device As Direct3DDevice8, _ > SrcData As Any, _ > LengthInBytes As Long) As Direct3DTexture8 > > SrcData > テクスチャの作成に使用するメモリ内のファイル。 このメモリ内のファイルとは、どうやって作成するのですか?
抜粋する場所間違えました。 これのC++バージョンでお願いします。
215 :
名前は開発中のものです。 :02/12/29 15:42 ID:Z7eWPCRp
ああ、まだわかってないやつがいるね。 グラボがどういうものかなんてちゃんと認識してかってるやつなんていないんだよ。 大抵は知ったか野郎の馬鹿ばっかと考えて、まず間違いない、 GForce4MX買ってきて動きませんとかいう質問が何百件ときてその一人一人に説明すんだぞおめ。 サポートがしっかりしてればべつね。
216 :
213 :02/12/29 17:08 ID:ZUUThS54
解決しました。
普通はシェーダが使えなければそのぶん画質が悪くなるだけで ゲーム自体が動かないようには作らない
218 :
名前は開発中のものです。 :02/12/29 17:30 ID:+snDuV4e
本当にそんなことが可能なのか? もし、その機能がなかったらこの機能を代わりに使うということを逐一考えて作るのか? 判定をミスると透過やフォグの類は最悪だぞ、 ラデオン7000ではフォグがきかずユーザーの画面には白い板がでてたそうな。笑 ピクセルシェーダはどうなるんだ? 透過が入ってくると無ければ使いませんとはいかないだろ
同じルーチンを使いまわそうとするからいけないのでは? 手間はかかりますが有り無しを別々に作れば問題ありません 実際市販ゲームでは最低スペックの条件はあるにしても 最新機能の有り無しは速度と画質にしか影響してません
skinnedmeshを詳しく説明してる日本語 サイト知ってる人いますか?
221 :
名前は開発中のものです。 :02/12/29 18:11 ID:UWWAc8w/
一つ一つに手間をかけろということで? でもそれなら、いっそ上はみないで低機能マシンでも動く範囲内で作りこんだほうが綺麗になるかも。 という結論になっちゃうよ。 だってモデルやテクスチャも動かないマシンむけと本物むけを用意しなくちゃいけないこともでてきそうだし。
あぼーん
>>221 言ってることが極端すぎないか?ようは低機能のマシン(といっても
限度があるだろうな。さすがにVirgeって事は無いはず)でちゃんと動く
ように作り、プラスアルファの部分として、ピクセルシェーダーのある
マシンなら使う部分がある、みたいにするんじゃないの?判定はできるんだし。
ピクセルシェーダーの無いハードは、細かい機能の有無なんかチェック
しないで、低機能マシン汎用ルーチンで処理しちゃえばいいでしょ(もちろんこの
部分をちゃんと作る必要はあるんだが)。
ちなみに頂点シェーダは、8.1までの機能なら、ノープロブレムで使えると
思ってる(CPUがちゃんとエミュしてくれる)けど、実際は問題があることも
あるのかな?個人レベルでは、そういう経験は無いんだけど。
現在.hackの様な視点の3Dゲームを作っていて、 モデルの全面検索で当たり判定をとって、避け補正を付けたのですが。 面ががT型に交わっているところに斜めに進入すると、 その面の向こう側に垂直に立っている面とも当たり判定を取ってしまいます。 何か良い回避方法は無いでしょうか。
225 :
名前は開発中のものです。 :02/12/30 02:16 ID:q+UcSJ4d
低スペックマシン対応プラスαでピクセルシェーダをつけるのか んな作業時間あるわけねーだす、大抵はプラスαをきって納品だす笑 頂点シェーダがどこまで可能かってのはやったことない。 やってみてくれ もしを考えると恐くて使えないっす。無知ゆえの恐怖もあります 当たり判定は当たり自体のアルゴリズムをいじるより 判定をする当たりの絞り込み自体をなんとかしないとどうにもなりません。 一体自分の現在地からあたりうる当たりはどれだろう?、という判定に力をいれます。
226 :
名前は開発中のものです。 :02/12/30 04:27 ID:sZfvlTCt
実際結構考えずに買うオンボードチップのユーザーが多いからなあ。 っつーかDirectX7はいいよ。大抵動く。 シェーダーじゃないと表現できないような凝った事もしたいけれど とりあえず売上重視だからね。
あぼーん
あぼーん
つまりお前らはcapsを調べないで出来る範囲でやりたいんだろ? 固定機能ではなにか追加するたびcapsを気にしなければならない。 「VS1.1で出来る範囲」とかにすれば、その方が圧倒的に楽だが。
230 :
名前は開発中のものです。 :02/12/30 11:43 ID:g0rhF4sT
いやそのcapsがあてにならねーときやできても結果が違うときが多すぎるから いちいちたくさんのマシンでチェックしなきゃいけないのが嫌。 簡単なシェーダでONOFFですむならそれでいいんよ。 だけどその処理はできるんだけどこのマシンだとやらないほうがいいっていう結果になっちゃうことがあるでしょ。 速度の面とかでも。 アンチエイリアスも迂闊にかけられないよマジで。
デフォルトで最低機能で設定しておいて、オプションで設定できるようにしておけばいいだけでは? 市販ゲームでは対応が危なそうな機能はオプションで選択制になっていることが多い 少しは既製品を研究した方がいいのでは?
232 :
名前は開発中のものです。 :02/12/30 15:06 ID:uVOS/p5i
いや、一番の問題はその手間だよ。 どの機能がどうなるおそれがあってどういった対処が必要かって 調べてる時間もマシンもないんよ。 もっというと低スペック向け、高スペック向け両方用意してチェックしてる時間もない。 ここで金がからんでくるんよ。 果たして少数派の高スペックマシン向けの実装をさせるかさせないかってね。 で、開発側に対応におわれる時間の見積もりがくるけどわからないとしか答えようがないね。 そうすると上の決定は当然低スペックマシンに絞るようになる。 て、わけ。 ターゲットをしぼるってこういうことじゃない
あぼーん
234 :
名前は開発中のものです。 :02/12/30 15:26 ID:yXyS1emC
DirectXについて、ここで語られてる言い訳は 世界的にも一般的なことなんですか?
236 :
名前は開発中のものです。 :02/12/30 20:32 ID:sZfvlTCt
市場の大きさがまるで違うからねえ
日本のPCゲームが韓国よりショボイのも仕方ないわけね。
>>237 そうだよ。仕方ないんだよ。
PCゲーに関しては
韓国ではメジャー。
日本ではマイナー。
日本で国産PCゲーつったらエロゲ。確実に9割以上がエロゲ。
海の向こうと比較したらミジンコ級。でも、それはガイシュツの話。
だから、DirectXスレで3Dの話をするなら日本のPCゲーを
持ち出すのは不毛であり、実りナシ。洋ゲーを且黙セヨ。
× 且黙セヨ ○ 注目セヨ バガボンド病
241 :
名前は開発中のものです。 :02/12/31 04:51 ID:oc5uE3wq
クソスレ探知機
駄レス探知機
あぼーん
>>239 つまり、国産ならエロ3Dゲーに注目せよ、と。汗ばんだ肌のしっとり感や、
汁のヌルヌルとした光具合なんかはピクセルシェーダの本領発揮だもんな。
単なるテクスチャだけじゃ、限界あるし(一方向ならともかく、動いた時に
対応でき無さそう)。
そこまで(リアルタイムで)やってるトコは無いけど。
245 :
名前は開発中のものです。 :02/12/31 11:07 ID:FV93/G5N
てゆうか高額グラボ小僧はネットゲにいりびたりなのでエロゲやりません。
>>245 ネットゲーやってるヤツは、エロゲには興味ないのかな、やっぱり。
>>246 ムービーはともかく、リアルタイム部分はDX7世代じゃないか?デモの
「必要な環境」にもDirectX7って書いてあるし。おそらく頂点シェーダも
使ってないと思う。モデルとテクスチャの出来(要するにグラフィッカーの
働き)のおかげで見た目はそれなりだけど。
248 :
名前は開発中のものです。 :02/12/31 19:13 ID:1dSZw+e8
終了
あぼーん
250 :
名前は開発中のものです。 :02/12/31 22:05 ID:BlKQMtOE
あけましておめでとう
(~ヽ γ~) |ヽJ .あ し' | | (~ヽ .け γ~) | (~ヽー|ヽJ ま し' |ーγ~) |ヽJ | | お .し .| | し' | | | |―| め .て |―| | | ミリ(,,゚Д゚)彡 で ミ(゚Д゚,,)ノ彡 ミUミソ彡ミつ と (/ミソ彡ミU彡 》======《 う 》======《 |_|_|_|_|_|_|_| |_|_|_|_|_|_|_| U~U U~U
253 :
名前は開発中のものです。 :03/01/01 19:46 ID:e7Ne/kcW
C#からDirectXつかいたいのでDirectX 9.0 SDK for C#をダウソしようとおもいますが これについているドキュメントって日本語でつか?
えい語でつよ
あぼーん
257 :
名前は開発中のものです。 :03/01/02 14:42 ID:0pIs0I1Q
低レベルスレはウザイので終了です☆ ほんだすずな
誰か高レベルな事かいてください。
フリフリ☆みゅーみゅー について語りましょう
あぼーん
あぼーん
ちょっと聞いていいスか?
ただ今3Dの格闘アクションゲームを作ろうかなと、色々算段している
ところなんスけど、なるべくただで作成できるように、フリーのツールを
探しているんですが(VisualStudioは買いました。.netではないけど)…。
ゲームのキャラクターのアニメーションて、どうすれば良いでしょうか?
ちなみに、キャラクター自体はメタセコイアで作成しました。
それで、アニメーションですが、
ttp://macosx2.ncs.gr.jp/~masa/jpn/softs/animadio/ ↑ここでアニメディオという作成ツールを拾ってきたんスけど、これで
作成したアニメーションをDirectX内で用いることは可能なんでしょうか?
ひょっとして無理なんでしょうか?
それとも、このツールの保存形式を読み込む処理を自分で作れば
どうにかなるのでしょうか(この読み込み処理自体も漏れにはまだ難しい)?
よろしくお願いします。
>>262 マニュアルにフォーマットが書いてあるからこれを元に読み込みルーチンでも作ればいいんでない?
…というかこれよさそうだな…ちょっと使ってみよ
264 :
263 :03/01/03 13:12 ID:oyTIoU9r
これってスーパーキティの人か 地道にやってるねえ
266 :
262 :03/01/03 15:35 ID:cFgMZ44q
>>263 ルーチンという奴を作ればよいのですね?
差し支えなければ
>>264 あたりについても教えてください。
えーと、つまりライブラリをインクルードしてプログラムで
書けば宜しいということですか?
あぼーん
268 :
:03/01/03 20:10 ID:av/haVG8
メッシュを描画する時に、一度デバイスにセットしたマテリアルやテクスチャを 外すにはどうすればいいでしょうか?メッシュを描画した直後にそのメッシュの バウンディングボックスを描きたいのですが最後のサブセットのマテリアルやテクスチャ がこのボックスの線に描画されて頂点色が出ません。
>最後のサブセットのマテリアルやテクスチャ >がこのボックスの線に描画されて 意味不明だよもん
pD3DDevice->SetTexture( 0, NULL );
>>266 >
>>263 > ルーチンという奴を作ればよいのですね?
>
> 差し支えなければ
>>264 あたりについても教えてください。
> えーと、つまりライブラリをインクルードしてプログラムで
> 書けば宜しいということですか?
壮絶だ。
272 :
268 :03/01/03 20:44 ID:av/haVG8
273 :
名前は開発中のものです。 :03/01/03 22:34 ID:6v3Nw3Kt
>>271 いや、キティになぞらえた壮大なネタの可能性もある。可能性だけど。
あぼーん
275 :
名前は開発中のものです。 :03/01/04 09:23 ID:XosybrCW
スーパーキティって聞いてなんて失礼なやつだ、と思ったら本当にそう書いてあるのね。 超キチガイage
276 :
名前は開発中のものです。 :03/01/07 01:17 ID:0XEP6pRY
DirectX8で質問です。 フレームバッファをテクスチャとして再利用したいのですが可能でしょうか?
SetRenderTarget
あぼーん
279 :
276 :03/01/07 01:53 ID:0XEP6pRY
>>277 すみません。もう少し分かりやすく教えてください。
SetRenderTargetで新しいカラーバッファを設定しそのカラーバッファに
フレームバッファをテクスチャとして書き込み、SetRenderTargetで
フレームバッファを元に戻すということでしょうか?
テクスチャとして使うにはIDIRECT3DTEXTURE8形式になっていないといけない
思うのですが、IDirect3DSurface8形式であるフレームバッファをテクスチャとして
使う方法がわかりません。
拙い文章ですみません。よろしくお願いします。
SetRenderTargetを使ったサンプルを一つでも探してみたか? と以前も書いた覚えがあるよ・・・
>>276 発想を逆にシロ。フレームバッファをテクスチャにするのではなくて
テクスチャをフレームバッファにする。
あぼーん
283 :
276 :03/01/07 03:52 ID:0XEP6pRY
出来ました。ご助言ありがとうございました。
あぼーん
285 :
名前は開発中のものです。 :03/01/07 07:23 ID:zXdjSHC1
ワンスキンモデルで複数のアニメーションが重なるときってどうすればいいですか?
>>285 1.ある時点の位置・回転・スケールと、新しい位置・回転・スケールの間で補完
2.tweening
3.併用
287 :
名前は開発中のものです。 :03/01/07 08:24 ID:1zV9RidK
レスありがとうございます。 補完はわかるけど、tweeningはわからないので調べてみます。
あぼーん
289 :
名前は開発中のものです。 :03/01/07 12:16 ID:ayoee00I
DirectX9からソフトウェア シェーダっていう機能があるんですが、 これはリファレンスラスタライザのためにあるわけじゃなくて、 例えばGeForceTi4600でPixel Shader 3.0を使ったソフトを 作りたいときにPixel Shaderの部分だけをソフトウェア処理 してくれる機能なんでしょうか? 普通にPixel Shader 3.0のコードを書いてps_3_swとしても 使えなかったのですが・・・
あぼーん
>>289 Pixel Shaderのソフトウェア処理は非対応では?
293 :
名前は開発中のものです。 :03/01/07 23:48 ID:Qcb79TRA
スキンメッシュのサンプルのメニューにあるnonIndexってなんですか?
あぼーん
295 :
だんき :03/01/08 06:43 ID:bHt0t039
自称3D野郎の清水が、ドワンゴアメリカをクビになり帰国したらしいぞ。 あの本はそんなに通用しないことが分かったね。 結婚はちゃっかりしたらしい。 駄目な奴は、何をやってもだめ。
あぼーん
>>295 スレ違い。
そんなに彼のことが気になりますか?w
298 :
289 :03/01/08 13:54 ID:9gTimowN
>>292 > Pixel Shaderのソフトウェア処理は非対応では?
そうなんですか?
ヘルプには思いっきり実装されましたって書いてあるんですが・・・
あぼーん
>>295 > 結婚はちゃっかりしたらしい。
これだけで勝ち組∧||∧
さて、18日のCマガは買う価値ありますかね…
301 :
名前は開発中のものです。 :03/01/08 19:50 ID:Sj92UHg5
なんで?
あぼーん
>>298 >ヘルプには思いっきり実装されましたって書いてあるんですが・・・
ヘルプのどこらへん?
>>295 どうでもいい個人ネタは専用スレでもたててやってくれ
298じゃないけど DirectX Graphics > Reference > Shader Reference > Software Shaders
あぼーん
307 :
名前は開発中のものです。 :03/01/09 09:10 ID:hbEz0lun
Cマガの特集なんて中途半端なのじゃなくてC#+DX9の 単行本キボンヌ。 おっさんが対象のストーカーは別のスレじゃなくて別の板でやってくれ。
あぼーん
あぼーん
DirectPlay8 で IDirectPlay8Server IDirectPlay8Client IDirectPlay8Peer が、ありますが、 サーバ、クライアントクラスを自分で作る時 IDirectPlay8Serverオブジェクトと IDirectPlay8Clientオブジェクトを使うのではなく、 IDirectPlay8Peerオブジェクトのクラスを、 サーバクラスとクライアントクラス(クラスのインターフェースで制限をつける) に分けて継承させたほうが、 IDirectPlay8Peerオブジェクトを利用するだけなので いいような気がしますが、 IDirectPlay8Server IDirectPlay8Client を使う理由ってありますか?
あぼーん
>>310 PeerToPeerではディアブロはできないわけだ。わかるか?
ディアブロはp2pじゃなかったか?あれ?
p2pだろ、ディアブ炉は
あぼーん
ん。battle netはサーバーじゃないの?
>>317 マッチングサービスって何なのか調べてきなさい
319 :
310 :03/01/13 22:03 ID:G2t52B6D
めんどかったけど、
IDirectPlay8Server
IDirectPlay8Client
をラップしてやることにしました。
分けてるには何か意味(処理速度的なものも)があるのだろうし
DirectPlay8初心者な俺には、
これがわかりやすくていいです。
>>312 俺が言いたいのは、サーバーはPeerを全員分、
クライアントの方は、サーバーだけのPeerを持つ
と言うことだ。
これをやると、IDirect8Peerをラップして派生するだけでいいから
Initialize等を2個分やらなくてすむからいいということだ。
Peer使ってるからって全員分ピアツーピアやるわけじゃないの。
わかるか?
>>313 禿同
>>314 、315
ブロディアやったことないから知らん。
あぼーん
ファンタシスターオンラインもp2pじゃないとか言い出しそうだな
ファンタシスターオンラインはチト特殊じゃなかったかなあ。 誰かプロトコル解析したひといる?
まず、ロビーサーバーにつないで接続者を決め、 接続者1台のマシンをサーバーにしてそこに他の接続者がクライアントとして繋ぐ方式だったかな。 前といってることが違うな、俺、。
>>323 クライアントはほかのクライアントのIPを知ることは無いってこと?
「IP」 -> 「IPアドレス」に訂正。
PSOはどっかのスレに開発者がいろいろ喋ってる記事へのリンクがあった。
DirectX8とDirectShowの組み合わせを初めて使っています MPEG1の動画をウインドウ全体に表示しようとしたのですが IVideoWindowに任せるとフルスクリーン化しているときに動画が全く表示されません ウインドウモードで表示しているときも毎フレームウインドウをInvalidateRect() してやらないとうまく表示されないようです 仕方なく今はIVideoWindowを使わずにSampleGrabberを使って1フレームごとに テクスチャに転送して表示しているのですがこれだと無駄が多くて重いので 何かもう少しマシな方法は無いでしょうか? ビデオカードはGeForce2 MXです 動画の表示時にはDirectX8側の描画は行わないようにしています
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ∧w∧ < オワリじゃ __( ゚π ゚ )__ \________ \ y/ // 〈っ ==_cノ (_†________)
AppWizardで吐くソース(D3DApp.cpp等)をベースにやってる人と、 自作クラスでやってる人と、 どっちが多いんですかね? 一応参考までに。
DirectX8.0〜8.1bのDirect3Dって、カラーキー指定できんの?
>>331 D3Dにカラーキーはない。でもアルファ値で透過率を変えられるんでそれ使ってやってみ。
一応カラーキー指定っぽい事をする関数もあったはず。
あぼーん
334 :
名前は開発中のものです。 :03/01/18 11:15 ID:fwQsozHF
DirectXAudioで、外部音源を利用して音を出すプログラムを書きたいのですが、 ヘルプを見てもさっぱりわかりません。 サンプルプログラムを探してみたのですが、以前までのDirectMusicを使うやつなら あったのですが、DirectXAudioのやつではありませんでした。 誰か方法を教えてもらえませんか?
>>331 テクスチャをファイルから読み込むときに(CreateTextureFromFileだっけ?)
透過させたい色を指定することができますが、うちの環境では
透過させた部分と透過させない部分の境界が思いっきりボケたのでお勧めできません。
DDS形式でファイルを作ることが推奨されてるみたい。
さて、今日発売のCマガは買う価値あるのかな…
もう18日か 年をとるごとに時間の流れが早くなるな このままジジイ一直線か
MS曰く、カラーキーよりはαを使うようにとのことでしたよ
>>331
Cマガ立ち読みしてきたけどDirectX9の解説は大したことが書かれていない SDKが欲しいナローバンド利用者の専門誌
あぼーん
341 :
336 :03/01/19 01:04 ID:AthUUo2G
>>339 あ、本当ですか〜。当方ちょっと入手が面倒な身なのですが、
それじゃ無理して買うことないかな。
地平線ってどうしてますか? 自分の場合、まず最初に空の一枚絵をカメラ座標と注目点の差のベクトルを テクスチャ座標数値に加工することで空が回ったりさせてます。 その後Zバッファをクリアしてその他オブジェクトを描画という感じです。 しかし、地平線がうまくいきません。タイルを並べるようにすると角度によって 尖ってるところとか、平坦な地平線になってしまったり。 多めに地面を書いておいて遠方のZ座標で切れるようにするのが ベストなのでしょうか?
>342 >尖ってるところとか、平坦な地平線になってしまったり。 地平線を部分的に尖らせたいの?ちょっとやりたいことが分かり にくいんで、もう少し具体的に説明してくれた方がアドバイス しやすいかも。 カメラの位置がどういう範囲を動くのか(地上だけなのか、それとも フライトものみたいなのかとか)によってもやり方(誤魔化し方でもいい) かわるだろうし。
(*´Д`*)ハァハァ
あぼーん
346 :
名前は開発中のものです。 :03/01/22 19:32 ID:7dFMnuhZ
>>342 マップチップみたいにしてるのかな?
□□□□□□□□
□□□□□□□□
□□□□□□□□ Aの位置からOを見た場合は平らだけど、
□□□O □□□□ Bの位置からOを見るとぎざぎざになってしまうとか……
□□□□□□□□
□□□□□□□□ こういう場合なら俺は適当にfogかけてごまかすようにしてる。
□□□□□□□□
□□□A □□□B
あぼーん
348 :
名前は開発中のものです。 :03/01/24 00:09 ID:4XYPiP4d
Zバッファーを使ってポリゴンを描画する時に、z値に関係なく 常に指定したポリゴンを手前に描画させる機能がD3Dにありますか?
349 :
348 :03/01/24 00:14 ID:4XYPiP4d
あ、書き忘れたけど、コード上でも先に記述していようが いまいが 常に手前という事も含みます。
Z値を一番手前にしときゃいいじゃん。 rhwさえ正常ならZ値をいじっても見た目は変わらんよ。
351 :
348 :03/01/24 05:04 ID:gG+pDg+X
>>350 D3DLVERTEXには rhwが無いんですが・・
この場合はどうするんですか?
>>348 Zバッファをいったん無効にすればよろし
353 :
名前は開発中のものです。 :03/01/24 13:50 ID:AyqJgxUO
>>348 Zバッファを無効にするか、VIEWPORTのZ幅を0.0f〜0.0fにする。
あるいは、Zバッファをクリアする。
普通はこのどっちかだろう。
>>352 , 353
ふむふむ、良く分かりました。
サンキュウです!
355 :
348 :03/01/24 18:13 ID:YMrIBv76
ちなみに自分は、まだDirectX7.0a使ってます。 ラッパークラスを前に作ってたので またver9で書き直すのが面倒なのです。 まあ、本格的に3Dゲーム作るときは、最新バージョン使いますが・・ 他にも古いバージョン使ってる人 居ますか?
これから2D作るんで、7使いますよ。 Direct3Dで2Dポリゴンだと、いろいろ面倒だし。
357 :
348 :03/01/24 18:55 ID:/3DHAAC+
>>356 ほほー 使ってますか。
やはりアルファとか、回転は 自分で計算しますか?
2Dでチクチクいじるのも楽しそうですね。
ちなみに自分は、D3Dで2Dポリゴンです。
>>356 9になってからはサーフェイス間のコピーが容易になったので
ポリゴン経由しなくても2D描けるようになってるけどそれでも駄目なの?
359 :
356 :03/01/24 20:57 ID:3Ir1Qlvw
>>357 アルファや回転だけ2Dポリゴンにしようかとも考えてます。
アクションなので速度を重視したい。でも、これやると2Dなのに3Dカード必須になるけど。
>>358 9の2D機能についてwebでちょっと調べたけど、単純な矩形転送しか無さそうだから
やめてました。2Dどうなんですか?カラーキーで色抜いたり。(今更)パレットも使いたい。
360 :
348 :03/01/24 22:15 ID:7fK0WY2B
>>359 自分も最初、2Dのみで行くつもりでしたけど、
ちょっと凝った事をしようとすると、めんどいんでポリゴン使ってます。
まぁ、その分なんでも出来るポリゴンスプライトが出来ましたが。
DX9は、たしかカラーキーよりα値を使う事になっていたような気がしますが・・
361 :
356 :03/01/24 22:56 ID:Q2rmQbLw
そういえば、7時代に3D+2Dポリゴンでシューティングをちょっと作った時に α値のためにDDSファイル使ってました。256x256とかで・・・ 確か、D3DとDDを混ぜると遅くなる、てことで2Dもポリゴンにしたような気がします。 まぁgeforceとかなら、気にすることもないかな。 今回は2Dだし、遅いマシンでも遊べるように、やっぱり7にしようと思います。
>>358 9は一般に普及してるの?
せいぜい8だと思ってたんだけど。
>>362 一般には9は普及してない
メーカー品のパソコンなんかはオンボードだから普及してるといえるのは7まで
本当に誰でもプレイできるゲーム作るなら3Dはまだしんどい
とはいえ研究、勉強なら最新のものに触れておいて損は無い
あと、ひっそりと公開してるのを探してくる連中はたいてい3Dボードは比較的新しいのつけてるから問題ないと思う
そういう場合、個人的には最低動作環境はGF2MXだとおもってる
364 :
名前は開発中のものです。 :03/01/25 01:42 ID:QkkrKYgM
GF2MXか。 こいつもドライバを更新してくれないと微妙な奴だったはず。 一応ポリゴン表示ができてアルファが使えます。以上。 みたいな。笑
αカラーテクスチャポリならTNT2で充分
366 :
名前は開発中のものです。 :03/01/25 02:23 ID:k9WFGzeD
TNT2もいいね。 OSはいくつまでサポートしてる? そろそろ98系捨てようかと思ってるんだけど。
367 :
名前は開発中のものです。 :03/01/25 02:29 ID:GicUwGaa
半年後にリリースする予定なら、9が妥当。 すぐリリースするなら7or8が妥当。 ってとこかな。 9がWindows Update に出るのってやっぱ春だよな・・。
GF2MXか。 ……俺のマシンだヽ(`Д´)ノウワアァァァァン
GF2MXでDX9を使っていて、エラーで落ちた。 すると、「エラーをMSへ送信しますか?」というダイアログが出たので、 試しにYESを選んでみた。どうせ実験マシンで個人データも入ってないので。 すると、「ドライバを更新したらこのエラーは解消します」というメッセージと、 ドライバのダウンロードページへのリンクが表示された。 そのとおりに実行すると、エラーが消えた。 ちょっとMSを見直したよ。
>>368 ィ`
既存の機能しか使わないなら、やっぱり9にするメリットはないのかな…。
それでもDXライブラリとか、やっぱりこなれてきてるのかなぁ…。
371 :
名前は開発中のものです。 :03/01/25 10:24 ID:DmUZxhDu
DX9はまだ要らないと思うよ。
俺自身は来年の夏までいらないと思う。
なんだかんだ言って欲しい機能はレイディオンでもエミュレートだし。
9世代が一般化するなんて今年中には無理だろう。
追加機能も便利といえば便利だけど、DX9で追加された機能がないと作れないなんて言う奴は初めから辞めちまえ。
あんなもん今ごろ追加したんか、って内容だよ。
っていうか8と手続きが変わっただけみたいなもんじゃねぇか。
DD使わないなら8でいいし、D3D使わないなら7で全然いいと思うぞ。
>>363 研究、勉強なら最新のものに触れておいて損は無い
結局、今研究してみたところで使う頃にはさらに新しいのが出ている罠
同人開発者さん? 達はこういう技術に惑わされないでおもろいゲーム作ってくだされ。
>>366 TNT2のドライバはnvidiaのunified driverだね
95/98/Me/2000/XPで動くみたい
単純なα・カラー・テクスチャポリならTNT2は現役スピードなんだがなー
>>371 ゲーム製作技術板とはいえ、
ゲームを作るのが目的という人ばかりではないと思う。
GDIが使いやすくなったのでDX9にケテーイ
>>373 8ではできなかったGDI収得できるようになったんだ
375 :
名前は開発中のものです。 :03/01/25 17:42 ID:5sgeCX1k
バージョン情報取得できるじゃん
DirectX 8対応グラボとかいう場合、どの機能を満たせば対応っていえるの?
ドライバが対応してればOK。
サンプルが全てHALで動けばOK
379 :
名前は開発中のものです。 :03/01/26 15:37 ID:AtmSkBLN
Maya4.5に対応したxexport.mllはいつ出ますか?
380 :
名前は開発中のものです。 :03/01/26 16:06 ID:JLmSZuF5
381 :
380 :03/01/26 17:51 ID:jBIKlZDp
荒らさないでくださいね(^^)
383 :
名前は開発中のものです。 :03/01/26 19:23 ID:GieoIa+/
前にも書き込みしたのですが。 DirectXAudioで、外部音源を利用して音を出すプログラムを書きたいのですが、 ヘルプを見てもさっぱりわかりません。 サンプルプログラムを探してみたのですが、以前までのDirectMusicを使うやつなら あったのですが、DirectXAudioのやつではありませんでした。 誰か方法を教えてもらえませんか?
386 :
:03/01/26 21:58 ID:tw6ZSSDO
∧ ∧ ( ̄ー ̄) (つ つ ( ヽノ し(_) Now Thread Stoping. ... 大変見苦しいスレでありました. スレストするまでお待ちください。。。ニヤリッ
アラヤダ(゜д゜) これっぽちも盛り上がってないんですね、DirectX9 っていうか新機能何一つわかんねぇよ=□○_ 皆さん分かるのかなぁ…すごいなぁ… せめて線のジャギとって来ます λ.......
DirectX8.0からDirectDrawが無くなったということで、 Direct3D(Graphics?)を勉強しているのだが、 どうも2D物を作ろうとすると、テクスチャサイズの変な制限を受けて汚くなったり、 カラーキーの代わりのアルファなんたらが意味不明だったり・・・ 俺、どうしよう・・・このままDirect3Dで行っていいんだろうか・・・
ジャギとるって? 絵描きさん?
>>389 無理せんでDirectDraw7のままでいいんでないの。
DirectX9環境だろうと使えるんだし。
392 :
名前は開発中のものです。 :03/01/28 00:16 ID:BuukEUTR
2Dならなおさら アルファ使ったらカラーキーに戻りたくなくなると思うが・・・ いまどき画面とテクスチャは32bitで当たり前だろ
い ま ど き
初心者ならDirectDraw7でもいいんでない? 2Dのパズルとかシューティングとか作って 物足りなかったら必然的にDirect3Dにいくし 挫折するならどっちでも同じことだし ついでに言っておくと3Dでも2Dでも 上のほうでやることはそんなに変わらん 経験が薄いなら動かすまでに時間のかからない2Dから入るのは有効だと思う あと、いまどきでも3Dのまともに動かない環境はごろごろしてる
SoundBlasterってメジャーな割には問題が出たって話をよく聞くけどなんで?
どんな問題?
>>395 IDワラタw
691Hz……
で、問題って?
参考にぜひ聞きたい。
(Windows9xでドライバが……とかそういう問題?)
398 :
395 :03/01/28 03:42 ID:691HzMn8
いや、いろいろなゲームメーカーのサポートページ廻ってると SoundBlasterで云々という のが結構あるから、Voodooのテクスチャサイズみたいになんか問題あるのかと。 よくかんがえたらDirectXとは直接関係ないかも。 やっぱ691Hzの頭ではこのスレにふさわしくないみたいです。
>>398 Mがもう2文字ほど左にずれてればよかったのにね。
むしろSoundBlaster互換推奨は良く見るけど……
もしかしたら何か問題あるかもしれないので知ってる人いたら情報提供キボン。
1997年頃が頂点だが、Creativeはドライバが糞で有名だった。 いまでもXpのSBLiveドライバとか糞だがな。
AWE64Gを頂点として、そこから下り坂なのは言うまでもない
402 :
379 :03/01/28 23:36 ID:YFXNvO3T
>>385 まさかと思ってやったらちょっと修正するだけでコンパイルできました。
前バージョンファイルでもソースに互換性あるんですね。
どうも。
403 :
名前は開発中のものです。 :03/01/29 00:17 ID:2DSWNUEU
DirectX9のメッシュビューワ、8より改良されててイイ! ボーンしこんでMayaで吐かせたヤツを8で読み込んだら強制終了してたけど、今度はちゃんと読み込まれる。 DirectX9 SDK おすすめだね。
そうなのか。 ちょっと使ってみようかなぁ。 Maya持ってないけど。
オフスクリーンサーフェスが作れるようになったみたいだけど これのアルファ合成は無理ぽ…?
406 :
名前は開発中のものです。 :03/01/29 19:49 ID:nWa8l28z
DDCAPSでトータルVRAMが取得出来ますが、 プライマリーサーフェスと、ドライバが確保するキャッシュが引かれてますよね? プライマリーサーフェスはあれとしても、 ドライバのキャッシュ量の方はどうやって取得しますか。
407 :
名前は開発中のものです。 :03/01/29 19:59 ID:CtmlCSOc
DirectX8.1SDKのSPLITEを使って自分のライブラリを組んでいるのですが 640*480のBMPファイルをD3DXCreateTextureFromFileを使用して読み込み GetLevelDescでBMPファイルの詳細を見ると幅1024、縦512になってしまいます。 どうすればサイズをそのままにして読み込む事ができるのですか?
>>407 2の階乗になってしまうのはハードウェアのせいだと思われ。
409 :
407 :03/01/29 20:21 ID:CtmlCSOc
んー…グラフィックボードはATI RADEON7500を使っています。 ゲフォ買うしかないのかな…(´・ω・`)
>>407 テクスチャとして使用するので、どうしても2の階乗に固定されます。
スプライト用画像を512*512の画像に収まるようにしてみてはどうですか?
640*480で一枚の絵なら大きい領域で確保するしかないです。
>>410 なるほど。分かりました(・∀・)
ありがとうございましたー。
412 :
405 :03/01/29 20:32 ID:mBZAZkjz
>>406 DDCAPSとやらの仕様は知らないけど、そこまでわかってるなら
その値からプライマリの値を引けばいいと思うんだけどどうか。
640*480の16bitだとしたら600kbくらい。
>>407 こちらもD3DXSpriteの仕様は知らないがDirect3Dで作れるテクスチャサイズは
2の累乗じゃないとだめだったりする。そんなわけで読み込もうとすると
そのサイズを含むデバイスが作れるサイズに広げられてしまうとか
512*512とかのサイズに詰め込まれて、伸縮が発生する為に画像がぼやけてしまう。
解決策で一番安全なのは自動で256*256のサイズに分割するルーチンを組んでしまうこと。
>>412 確かフラグの指定でフィルタリングさせない方法があったと思いますよ。
D3DX_FILTER_NONEだったと思いますが。
414 :
405 :03/01/29 22:27 ID:mBZAZkjz
>>412 それで解決できない状況が無かったっけ?
と言っても俺が412みたいな分割ルーチン書いたのDirectX5か6ぐらいの
頃だから記憶があいまいなのよね…。今はそれで問題無いんだったらゴメソ。
で、DX9になってオフスクリーンサーフェス復活、しかもカラーキーとかアルファが
指定できるみたいだからこの辺の問題がサクっと解決して初心者にも
2DゲームでもDirectX9が良いよ、とか言えるようになったかなと思って
いろいろやってみた訳なんだけど、いまだにアルファどころかカラーキーすら
効かないありさまだったりする。UpdateSurfaceとStretchRect以外に転送方法あるのかな?
カラーキーの部分が黒で塗りつぶされるだけになってしまう。(環境はGF3デトネタ4019)
RenderStateもそれらしいのみつからないし。
やっぱりテクスチャに転送しない限りこの辺は有効にならないのかな。
415 :
405 :03/01/29 22:29 ID:mBZAZkjz
416 :
406 :03/01/29 22:42 ID:nQW2MsuD
>>412 もちろんプライマリーサーフェスのサイズを引けば良いのは分かります・・
問題は、ドライバが確保するキャッシュの方です。
トータルメモリ += サーフェスサイズ
と、計算してもドライバのキャッシュ分足りないのです・・
ドライバごとに確保するキャッシュサイズが違うので、
足りない分を勝手に足す訳にもいかないのです。
age
418 :
406 :03/01/29 22:48 ID:nQW2MsuD
ああ・・ 良く見たら412は、サーフェスサイズを引いてと書いてあった・・ えっと、どちらにしてもドライバごとに確保するサイズが違うので 足りない分を足すだけではダメみたいです。
>>415 うーん……。結局アルファを使うにしろステンシルにしろ、
やっぱり基礎知識が要るので、初心者さんにならカラーキーでできるDX7を私なら薦めますよ。
>分割ルーチン書いたのDirectX5か6ぐらいの
なつかしいね。当時は必須っぽかた気も。Voodoo多かったしね(GLIDE本気にやらなくてよかった…)。
>UpdateSurfaceとStretchRect
これはアルファとかサポートしていないただの転送だと思いますよ。
DirectDrawのように使うためにあるメソッドではないと思いますが…
Spriteじゃだめなの?
結局アルファにしろステンシルにしろ
Direct3Dのラスタライザを通さなければ駄目です。
確かにD3DX9はまた…中途半端にサポートされてますが、
やはりDirectDrawユーザーに進められるものではないと思いますよ。
420 :
405 :03/01/30 01:13 ID:xdIz9k41
やっぱそうなのね…。・゚・(ノД`)・゚・。 最初ヘルプ眺めてて見つけた時はMSに紙が降臨したのかと思ったが… ライブラリの8>9移行ついでにもうちょっと遊んでみよう。
421 :
名前は開発中のものです。 :03/01/30 02:14 ID:SuI7xxzp
よっし!いっちょDirectX9で簡単な2D描画ライブラリでも組みますか!
>>421 おお、期待。初心者がとりあえずDirectX始められるようなのがいいね。
423 :
名前は開発中のものです。 :03/01/30 03:31 ID:jEmNkGyn
>>421 期待して良いのか分からないけど、応援しておこう。
424 :
凄いサイト見つけました :03/01/30 04:51 ID:fICqPKaz
425 :
名前は開発中のものです。 :03/01/30 05:25 ID:Lzu43Gsx
426 :
名前は開発中のものです。 :03/01/30 06:58 ID:JQ9GRIy/
ポイントスプライトの縦横比が画面幅に合わせて伸縮しちゃうんですけど 一定の縦横比で固定するにはどうすればいいですか?
427 :
名前は開発中のものです。 :03/01/30 07:04 ID:zHVLpj9S
428 :
名前は開発中のものです。 :03/01/30 08:47 ID:VhhqZnNP
スプライトなんて使おうとしないで、はなっから3D使えよ。
429 :
名前は開発中のものです。 :03/01/30 09:04 ID:vxgq1fWo
3Dでもポイントスプライトは使うよー
>>426 パースペクティブを勉強しなさい。
これは人に説明を聞くより自分で学んだ方がよいよ。
o. /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ / / このスレは無様に . / / 終了いたしました / / ありがとうございました / / / / モララーより / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/ ∧_∧ / /∧_∧ ( ・∀・) / /(・∀・ ) ( )つ ⊂( ) | | | | | | (__)_) (_(__)
433 :
名前は開発中のものです。 :03/01/30 20:15 ID:VhhqZnNP
どうせ分母と分子がひっくりかえってるのにきづかないんだろ?
434 :
421 :03/01/31 01:20 ID:1k5hi3pC
やったぞ!ついに念願のライブラリが完成したぞっ! スプライトつかった。カラーキーとアルファブレンドと回転拡大縮小だけできる。 初心者がとりあえずDirectXはじめられるようにはなっていると思う。 アプローダが腐っててアップできないけど。
ジオシティとか借りればよろしい。
436 :
名前は開発中のものです。 :03/01/31 02:10 ID:4EXFic4+
カラーキー厨 = ゲームを作れないゲームライブラリ野郎。 DirectX7の時代から今までずっとライブラリ作ってたのか? お前見込みねーよ
>>436 ( ´,_ゝ`) プッ
妬みですか?
>>436 実感こもってるなぁ。自分の事?w
>カラーキー厨
って……。DX7で作りつづけている人もいるんじゃないの?
ここにいますが何か? 中身のないデモばかり作って最新技術のみを追い求めるヤシよりはまし。
価値なんて人それぞれだろ
441 :
名前は開発中のものです。 :03/01/31 10:21 ID:6VWpyBYm
まあでも、いまだにカラーキーにこだわるのはどうかと思うんだけどな。 今まで2Dゲー作ってて不便感じなかったのかと。 アンチエイリアスかかった文字描画とか。
442 :
名前は開発中のものです。 :03/01/31 10:45 ID:XKk8Mtcg
>>アンチエイリアスかかった文字描画とか なぜこれが出てくるのかが疑問
紙芝居エロゲー作ってんだろ
納得
>>442 カラーキーでまずぶつかるところだからでしょ?
>>441 確かに一度無くなった概念といえばそうだしね。
というかアルファチャネルはいっぺん使うともう離れられなくなるわな。
443氏の軽蔑して止まない紙芝居ゲーでさえ、 カネを取ろうと思ったら、GDIで文字をべた書きで満足せずに 半透明を使った美しい処理を行うのはすでに常識じゃないの? GDIで文字をべた書きでも右下に少しずらした場所に黒で文字を書いてから 正しい場所に白で文字を書くとほーら影付き文字、とか そういう小技が出来ないわけじゃないけれど。 それより個人的に過去の遺物にしたいのはMMXを使った半透明処理。 確かに作ってて楽しいけど、DirectX の思想から考えると、 GPUにお任せする方向に移行していかなくちゃいけないんじゃ…? どうなんだろ。 識者の意見を待つ。
俺もそう思う。 いいかげん、GPUでやってくれっつー気もする。 クソ環境でも動かしたいのもわかるが、いつまでたってもユーザー環境が成長せん。 まあ、紙芝居にはもともと必要ないのか。
448 :
421 :03/01/31 14:14 ID:1k5hi3pC
>>448 スプライトってやっぱ大量に描画してなんぼって気もするよね。
とりあえずできたという点は良し。
もっと使い勝手の良い環境が欲しい、という人のために
画像を統一管理して、そのDynamicDrawInfo?の中にpageってのを用意して、それで一意にアクセスできるようにするとかね。
スプライトにrx,ryはあまり使わないということであれば、シェーダーを使うと高速で且つ帯域も少なくやれるけど、
それはちょっと上級かな? 説明大変だし…。
>>446 昔はハードでできる事でも、対応してないかも、と言う理由で自前でやったりもしたけど、
今はもうそんな時代ではないよね。
ハードの進歩は早すぎる。いろいろなルーチンをハードが対応してくれるようになった。
ここまできたらあっさりと過去の知識は捨てて、次の時代に乗らなければならない。
それがこの業界に生きる者の辛いところだね。
過去の苦労が水の泡になっていくのは辛いよ。
でも世の中がそういう風に進んでいるからにはしょうがない。
PCユーザーに関して言えば、上と下の差が激しすぎる。
もう下は切り捨てて行かなければならないと私は思うよ。
海外メーカーはもうそのつもりなのに、日本人はやさしいのか、狡いのか…。
エロゲー業界にしてもどうなのかな? 私はわからないけど、そろそろ改革の時期でしょうか?
最近は3Dのエロゲも見かけるしね。若者をターゲットにするなら、今まで以上にゲーム性を考えることになるんでしょうね。
何、長文書いてんだオレ……やべぇ。さいなら。
〈 ̄ヽ ,、____| |____,、 〈 _________ ヽ, | | | | ヽ' 〈^ー―――^ 〉 |/ ,、二二二二二_、 〈__ _ __〉 | | | | / / | | |\ ___/ / | |___| ヽ \__/ ヽ_____)
エロゲでもアンチエイリアス描画、半透明重ね合わせはもう アタリマエみたいだねえ。最近知った。
452 :
名前は開発中のものです。 :03/02/01 00:07 ID:PG2XqJ1K
ポイントスプライトって、どのへんが便利になるんですか? というより、画像を一枚表示するのと、どこが違うのですか?
ポイントスプライトは便利というより、普通にポリゴンで描くよりも速いのが利点。 その分自由度はかなり低いが。
スプライトが相当小さくない限り、フィルレートがネックになって、 頂点4つ用意する場合とほとんど速度が変わらなくなる罠。
o. /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ / / このスレは無様に . / / 終了いたしました / / ありがとうございました / / / / モララーより / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/ ∧_∧ / /∧_∧ ( ・∀・) / /(・∀・ ) ( )つ ⊂( ) | | | | | | (__)_) (_(__)
ポイントスプライトって、頂点を送る回数を1/4にするためのもの と考えてええの?
457 :
名前は開発中のものです。 :03/02/01 22:35 ID:X2Cx4OAm
tiny.xに抜群のセンスを感じる。
スキンメッシュ研究してたらtinyで起つようになりました・・・(鬱
459 :
406 :03/02/02 01:22 ID:8xiGQDVW
どうでもいい事ですが・・ DDCAPSで得られるトータルメモリにサーフェスサイズ分のデータ量を足して、 メガバイト単位に変換して、整数値に切り上げてやる事にしました・・ サーフェスサイズを足してやると、だいぶ値が近くなるのでどんな環境でも大丈夫と思うんだけど・・ それに、VRAMのトータル量なんて区切りの良い数値ばかりだし。
461 :
名前は開発中のものです。 :03/02/02 13:29 ID:Yh8sRLf0
DX8で2Dを表示しているサンプルとか無いですかね?
463 :
名前は開発中のものです。 :03/02/02 13:49 ID:Yh8sRLf0
>>463 それくらい自分で探せ。
Googleで検索すりゃでてくる。
>>463 あなたの開発に使っているマシンの中にあります
466 :
名前は開発中のものです。 :03/02/02 15:14 ID:6i0/vwvm
頂点バッファって使うとどんないいことがあるのですか? 頂点バッファを使わなくてもとりあえず実装はできるので、使ってない ですが、使うと便利なら切り替えてみます。 というか、そもそも頂点バッファってナンデスカ?
>>466 VRAMに頂点データを置いたり、ストリームソースとか、まぁ色々使うけど、
D3Dを2D感覚で使用するつもりなら使わんでもいいだろう。
>>461 基本も知らずにスプライトか?
……まったく、D3DX無くせよMSさんよ……。こういう手合いが増えるだけだろ。
>>454 この相当小さいっていうのは、具体的にどのくらいなのでしょうか。
やっぱりビデオカード依存だと思いますが…。
>>466 >頂点バッファって使うとどんないいことがあるのですか?
速くなる
Lockしまくったら逆に遅くなるが…
>というか、そもそも頂点バッファってナンデスカ?
頂点バッファを使わないときは頂点データは通常のメモリに
あるで描画のたびに全部(頂点サイズ×頂点数)送らなきゃいけない
頂点バッファを使うと先にVRAMに送ってるので
描画の時は場所(使用する頂点バッファ)を指定するだけなので
速いって感じ
まぁドキュメントなり解説サイトなり読んでちゃんと理解して使え
>>466 頂点バッファを使う利点は速度。頂点バッファをVRAMに作れば頂点データを
遅いAGPバスを通さなくて済むし、システムメモリに作ってもCPUとの排他
アクセスができるからDMA使って転送できる。(AGPバスってのは意外と遅い)
頂点バッファを動的に書き換える場合でも、DMAの終了を待たずに書き換える
ことができるから速い。(実際には新しいバッファを確保しているんだが)
>>468 ポイントスプライトは火花みたいなエフェクトくらいしか使い道ないから
面積はあまり気にしなくていいかと。
(火花でも1フレームで数千、数万の単位になるとさすがに厳しいが)
一般的なビルボードとして使うにはあまり向いてないよ。
471 :
名前は開発中のものです。 :03/02/02 20:23 ID:047/xv5q
Xファイルを使わない場合、アニメーションって自分でスキニングしてるんですか? 僕はD3DXUtilityのソースを流用してメッシュをアニメーションさせているのですが、これらを自分でやるってかなり難しくないですか?
シコシコやってればそれなりのモノになるよ。 事例は沢山あるので、自分で調べて自分なりに実装してみれば、 理解が深まって、応用が利くようになるよ。 あ、ライブラリで済ますことを否定してるわけじゃないよん。
473 :
名前は開発中のものです。 :03/02/02 22:38 ID:dqWXQSHP
質問age (僕はゲ製やってません=初心者) 板違いスレスレでゴメソ。 WB3DEMOやったら、DirectXが使えないとかで(+д+)マズーでした。 どうやらnv3.dllが古い(?)とかなんとか。 製造元によって提供されている最新のものか確認してください だそうですが・・ 誰か教えてください!
>>473 板違いと判っているなら来るなボケ。Windows板にでも逝け。
そこまで分かっとんならメーカーサイト行ってドライバ落とせ。
インストール時のCustom Setup→DirectX Utilitiesに DirectX Extensions for Visual Studio .NETの項目そのものが出てこないんだが… 俺だけ? シェーダ デバッガが使えなくてもたいして問題は無いんだが、何か損した気分。
>>476 VS.NETいれてる?
ちなみにうちでもその項目は出てこない。VS6.0だからだと思うが。
>>476 VS.NETいれてるけどウチも出なかった
479 :
468 :03/02/03 06:07 ID:9sa58WUG
>>470 レスありがとうございます。素直に今まで通りでやっていくことにします。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄○ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ O 。 , ─ヽ ________ /,/\ヾ\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |__|__|__|_ __((´∀`\ )< というお話だったのサ |_|__|__|__ /ノへゝ/''' )ヽ \_________ ||__| | | \´-`) / 丿/ |_|_| 从.从从 | \__ ̄ ̄⊂|丿/ |__|| 从人人从. | /\__/::::::||| |_|_|///ヽヾ\ / ::::::::::::ゝ/|| ────────(~〜ヽ::::::::::::|/ = 完 =
481 :
age :03/02/03 09:46 ID:yH0659nv
tinyのウェイトってどういう感じになってるんですか?LWのようなツール 持ってないんで解析結果が正しいのか確認できないっす。 自前だとメチャクチャなとこにウェイトが出るんで間違ってるとは思うんですけど。 もものボーンなら正直にももの周りにだけウェイトがあるのかな・・・?
>>482 どうなってるもなにも
> template SkinWeights {
> <...>
> STRING transformNodeName;
> DWORD nWeights;
> array DWORD vertexIndices[nWeights];
> array FLOAT weights[nWeights];
> Matrix4x4 matrixOffset;
> }
とtiny.xにテンプレートが書いてあるんだが…。
>もものボーンなら正直にももの周りにだけウェイトがあるのかな・・・? うん。
485 :
名前は開発中のものです。 :03/02/03 13:16 ID:OcEz8SkM
ボーンのあるモデルの読み込みはボーンが使えるモデリングソフト買う気が無い人はやらないほうがいいよ。 Xファイルで練習する人いるけど俺はおすすめしないぞ
486 :
名前は開発中のものです。 :03/02/03 13:52 ID:AJCGdyXN
ボーンのウェイトってどうやって決めるの?
マジレス: モデラーのアーティステイックな判断で決める。
o. /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ / / このスレは無事に . / / 終了いたしました / / ありがとうございました / / / / ペイピッポォより / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ / . / __(^^) ../ /__ \/ | | | | (_) (__)
489 :
名前は開発中のものです。 :03/02/03 15:35 ID:9sa58WUG
困った困った・・・どなたか8.1のSDK落とせる場所 御存知ないでしょうか・・・自分で探すのがすじですが時間がなくて・・・TT
>>490 神よ仏よ490様よ!
本当に感謝です、ありがとうございました。
あなたに良いことが起こりますように!
さ、さぁ、いそがな・・・・・
 ̄ ̄ ̄ ̄ ̄ ̄ ̄○ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ O 。 , ─ヽ ________ /,/\ヾ\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |__|__|__|_ __((´∀`\ )< というお話だったのサ |_|__|__|__ /ノへゝ/''' )ヽ \_________ ||__| | | \´-`) / 丿/ |_|_| 从.从从 | \__ ̄ ̄⊂|丿/ |__|| 从人人从. | /\__/::::::||| |_|_|///ヽヾ\ / ::::::::::::ゝ/|| ────────(~〜ヽ::::::::::::|/ = 完 =
493 :
名前は開発中のものです。 :03/02/04 12:03 ID:f4NjRERM
Xファイルって使ったことないので使ってみたいのですが、 Xファイルを吐き出させるソフトで、フリーのやつがあれば教えてください。
吐き出すだけならいくらでもあるけど、テクスチャも貼れて モーションデータまでつけられるので、良いのないよねぇ…。 Animadioに期待してたけど… データ周りはばっちりですが、肝心の使用感が…_| ̄|○
Maya買え
497 :
名前は開発中のものです。 :03/02/04 17:17 ID:pDuEwNTu
DirectX初心者です。 現在製作中のゲームで、フィールドと建物のレンダリングに最遠方距離 だけ違うプロジェクションマトリクスを使っているのですが。 マウスのスクリーン座標をワールド座標に変換するときにかける プロジェクションマトリクスの逆行列は、この場合別々にしないと いけないのでしょうか。
∧ ∧ ∧ ∧ /⌒~~~⌒\ ( ,,) (,,・Д・) / ( ゚>t≡ )y─┛~~ 〜(___ノ 〜(___ノ ,γ_ (_ ノγ U ∩_∩) THANK YOU 2ch ┌───────┐ \ α___J _J and (| ● ● | ヽ / ̄ ̄ ̄ ̄\ GOOD-BYE 2ch WORLD! /.| .┌▽▽▽▽┐ .|____|__||_| )) / ● ●、 ( ┤ .| | .|□━□ ) |Y Y \ またどこかで会おうね \. .└△△△△┘ .| J |) |.| | .▼ | | \あ\ | ∀ ノ | \/ _人|∧∧∩゛冫、 .∧_∧ | \り.\ . | - ′ | _/)/)/( ゚Д゚)/ ` . (´∀` )..ヽ(´ー`)ノ \が\ . | ) \ / 〔/\〕 U / ∩∩ ( ) (___) \と.\ .|/ | | | c(*・_・) | |ヽ(´ー`)ノ_| | | | |〜 /\.\う\| (-_-) (__)_) UUUU /∪∪ (___)(_(__) ◎ ̄ ̄◎─┘ .└──┘.(∩∩)
>>497 遠方クリップ面の視点からの距離の違いは見え方には影響しないと思うがどうか。
Z値をフレームバッファから取り込むんなら話は違うけど。
501 :
名前は開発中のものです。 :03/02/05 00:52 ID:N+d6L0pq
ちょい聞きたいんだけど、いわゆるインデクスリスト、DrawIndexedPrimitiveで 表示すんのとトライアングルストライプをDrawPrimitive で表示すんのはどっちが ええのん? D3DXMeshに振り回されるのも飽きてきたのでどちらかに絞りたいのだけど。
>>501 頂点キャッシュ意識しつつDrawIndexedPrimitive
503 :
名前は開発中のものです。 :03/02/05 02:42 ID:OmM2oqc6
「Xファイルからメッシュに読み込む」 の日本語の意味が分からないのですが、Xファイルとメッシュって 別物だったんですか?Xファイルってメッシュとどう違うのですか? なんか言葉の問題ですが、分かったような分からないような 気持ち悪い感じなのでだれか教えてください。
Xファイルは、ファイル メッシュは、ポリゴンを格納する箱のこと。
o. /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ / / このスレは無事に . / / 終了いたしました / / ありがとうございました / / / / ペイピッポォより / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ / . / __(^^) ../ /__ \/ | | | | (_) (__)
>>501 トライアングルストライプって何?
縞模様のテクスチャを貼った三角形?
三角形ストリップ(D3DPT_TRIANGLESTRIP)のことじゃねーの?
508 :
497 :03/02/05 08:07 ID:asHOMshy
>>500 アドバイスありがとうございました。解決しました。
質問ばかりで申し訳ありません。
Xファイルから読み込んだメッシュから頂点座標を1ポリゴン(3点)ずつ取得したいのですが、上手くいきません。
自分ではこれで合っているような気がするのですが・・・
models[mdl].pMesh -> LockVertexBuffer (D3DLOCK_READONLY,&pVertices);
models[mdl].pMesh -> LockIndexBuffer (D3DLOCK_READONLY,&pIndices);
for( i=0 ; i<models[mdl].dwNumFaces ; i++ )
{
pVertices += ( models[mdl].dwVertexSize * (*(pIndices))) ;
v1 = *(D3DXVECTOR3*)pVertices;
pVertices -= ( models[mdl].dwVertexSize * (*(pIndices))) ;
pIndices ++;
pVertices += ( models[mdl].dwVertexSize * (*(pIndices))) ;
v2 = *(D3DXVECTOR3*)pVertices;
pVertices -= ( models[mdl].dwVertexSize * (*(pIndices))) ;
pIndices ++;
pVertices += ( models[mdl].dwVertexSize * (*(pIndices))) ;
v2 = *(D3DXVECTOR3*)pVertices;
pVertices -= ( models[mdl].dwVertexSize * (*(pIndices))) ;
pIndices ++;
処理
}
アンロック
※dwNumFaces 面数 , dwVertexSize 頂点サイズ
>>508 v2へのベクトルの代入が2回あるよ
最後はv3の間違いでは
>>508 pVerticesの型は問題無い?
それと余計なお世話かもしれないが、いちいちpVerticesの値を書き換える
のはどうかと思うが。
511 :
名前は開発中のものです。 :03/02/05 11:43 ID:Rpyfjb59
VC++6.0、DX8.1SDK使って開発してるんですが VCの機能で、構造体がstだとするとst.と打つと変数がズラっと出てくるのですが DXの場合でてきません(;´Д`) たとえばこんば場合 lpD3DDEV-> この場合だとメンバがズラっと出てきてもおかしくないはずでは…?
>>503 ニュアンスとしては「テキストファイルから文字配列に読み込む」と似たようなもんだ。
>>511 DirectXに限らずいつの間にか出なくなってるのはよくあることさ。
VC終了させてncbファイルを削除してリビルドすると直ることがある。
o. /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ / / このスレは無様に . / / 終了いたしました / / ありがとうございました / / / / モララーより / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/ ∧_∧ / /∧_∧ ( ・∀・) / /(・∀・ ) ( )つ ⊂( ) | | | | | | (__)_) (_(__)
>>512 DirectX関係のヘッダファイルを
メニューの「プロジェクトに追加」から追加すれば すべて表示される様になるよ。
516 :
497 :03/02/05 15:56 ID:Px3YyVPb
>>509 すみません、コピぺミスでした。
プログラムの方は3になっています。
>>510 pVerticesはBYTE*型で宣言しています。
517 :
名前は開発中のものです。 :03/02/05 20:05 ID:33SsFAZ7
VisualBasic環境でDirectXを解説しているホームページがあったら 教えて下さい。 ほとんど、C/C++環境しか載ってませんでした。
あ、DirectXってキーワードは要らないか……
あぼーん
>>508 pIndicesってBYTE*?
インデックスってunsigned short(2バイト)だよね。
>pVertices += ( models[mdl].dwVertexSize * (*(pIndices))) ;
これだとDWORDにcharを掛けることになるんじゃない?
インデックスは16bitの場合と32bitの場合があるよ。
>>521 >models[mdl].pMesh -> LockIndexBuffer (D3DLOCK_READONLY,&pIndices);
でもここでエラーが出るよ。これってエラー回避できたっけ?
アドバイスありがとうございます。 参考に、いろいろと調べながら改良したところ上手くいったのですが。 pVerticesは自前の頂点フォーマットなので、Xファイルの頂点フォーマットが変わったら対処出来なくなりますよね・・・ models[ObjInfo[obj_num].mdl_num].lpVertexBuffer -> Lock(0,0,(BYTE**)&pVertices,D3DLOCK_READONLY); models[ObjInfo[obj_num].mdl_num].lpIndexBuffer -> Lock(0,0,(BYTE**)&pIndices,D3DLOCK_READONLY); for(i=0;i<models[ObjInfo[obj_num].mdl_num].dwNumFaces;i++) { indx0 = *pIndices++; indx1 = *pIndices++; indx2 = *pIndices++; v1.x = (pVertices+indx0)->x; v1.y = (pVertices+indx0)->y; v1.z = (pVertices+indx0)->z; ※以下v2,v3はindx0をindx1とindx2にする。
526 :
名前は開発中のものです。 :03/02/06 00:18 ID:h7fxXUIR
DirectXで文字列を描画するのにCreateFontを使っているのですが 文字の出来栄え(?)がよく見えません…。 もっと自然に見せるのはどうしたらいいですか?
527 :
名前は開発中のものです。 :03/02/06 00:48 ID:XOPRT3wt
最近、エイジオブミソロジーをやったのですが あのゲームの海岸の処理が綺麗でちょっと興味が…。 あれって具体的にどうやってるんでしょうかね? 海岸線を記憶しておいて、半透明テクスチャを多重に重ねてるだけ?
あぼーん
何とか解決しました、ありがとうございました。 そう言えば、色々な所でD3DRS_LIGHTINGは重いので自前で計算するというのを見かけるのですが。 どれくらい違ってくるのでしょうか。 また、自前で計算するとすれば頂点から光源までのベクトルと、法線ベクトルとの角度が 大きくなるにつれ、頂点色を黒に近づければ良いのでしょうか?
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
536 :
名前は開発中のものです。 :03/02/06 20:32 ID:pjoIkZid
>>528 あー、AoMの表現は繊細やねー。
2Dエンジンの頃の「味」を3Dエンジンで再現してやろう
みたいな開発者の姿勢に惚れたよ。
海岸線の技法はごく普通の頂点α&テクスチャUVのアニメーションの
マルチパスレンダリングかと思われ。
>>536 なるほど。テクスチャアニメーションですか。
海岸線を割り出すのが面倒そうですが、
理論的にはできそうですね。ちょっと試してみますw
>>530 >そう言えば、色々な所でD3DRS_LIGHTINGは重いので自前で計算するというのを見かけるのですが。
点光源や複数光源は確かに重いですね
光源計算を自前ってシェーダーでってことでしょう
でもVertexShaderをソフトウェア処理すればもちろん重いです
まぁ点光源を使わず平行光源1〜2個程度なら重くはないと思いますが…
539 :
名前は開発中のものです。 :03/02/07 02:13 ID:cVuOSA76
重いか? てか、そいつらちゃんとライトのクリッピングしてるのかな? 単純に考えて描画されない範囲はライトの計算はない。 さらにその中でライトの影響があるものに絞れるわけだから結構糞みたいなもんだと思うのだが。 そうでもない?
あぼーん
541 :
名前は開発中のものです。 :03/02/07 02:54 ID:vOLsbN51
シェーダってなんですか? 自前で作るシェーダってどういうことですか?
543 :
名前は開発中のものです。 :03/02/07 05:01 ID:q+CKg/Cp
DirectX8.1 SDKを使ってゲーム開発を行っているのですが、 フルスクリーンにした際にメニューバーが見えてしまうのでメニューバーを隠したい のですが、メニューバーを隠すにはどうしたらいいですか?
>>543 SDKのサンプルを見ろ。HMENUで検索すればすぐ見つかるよ。
あぼーん
あぼーん
>>530 >>538-539 そこそこ新しいグラボだったらそんなに重くない気がする
>>530 の言ってるのがどんな方法かわからんのだが
>>538 の言ってる方法は古いグラボと新しいグラボの差を広げるので
使いにくいのではないかなぁ。
光源固定の場合にはマップなど動かないオブジェクトのライティングも固定なので
最初に一回だけ計算しておいてライティング済頂点として描画、
という方法なら、状況によってはそこそこ速くなるんでない?
548 :
530 :03/02/08 00:16 ID:r5v2mdj8
アドバイスありがとうございます。 今使っているのは、平行光源とAMBIENT(全体の明度?)なので大丈夫そうですね。
あぼーん
550 :
530 :03/02/08 05:53 ID:tP3Uar1n
現在製作中(とは言ってもいろいろと実験しながらですが・・・)のゲームは、 フルスクリーン動作を前提に作っているのですが。 マウスカーソルを画面上の方に持っていくとタイトルバーに常駐するアプリが、 表示はされていないのですが反応してしまいます。 市販のゲームではこう言う現象は起きないのですが、どうやって回避すれば良いのでしょうか? 詳しい方ご教授お願いします。
タイトルバー無くせば?
一旦終了させれば?
ウィンドウスタイル = WS_POPUP 分からないところが出る度にこうやって聞きにくるつもりかな? 自分で調べる力がないとゲームを作る上で大きな障害になるぞ。
ありがとうございました。解決しました。
WS_POPUPでは無理だったので、ウィンドウを生成する直前で
long nStyle = GetWindowLong ( hWnd, GWL_STYLE );
nStyle &= ~WS_BORDER;
SetWindowLong ( hWnd, GWL_STYLE, nStyle );
SetWindowPos(hWnd, NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED);
としたところ、上手くいきました。
>>554 googleでいろいろ検索しているのですが、情報があまりにも少なかったり
いろいろな方法があったりと、ここで聞くと最良の方法がわかりそうで
ついつい質問してしまいます。
頑張って質問は3日に一回くらいにします。
と言うかコテハンにします(・∀・ )
>>555 ウィンドウ位置 = CW_USEDEFAULT
これまで書かなきゃいかんかったのかな。
あと行数多い上にWS_BORDERは必要ないぞ。
前の質問も見てみたけど、ポインタの意味も理解できてないようだから
ttp://www.kumei.ne.jp/c_lang/ ここを紹介しておく。よ〜く理解を深めてからDirectXを始めるといい。
いろいろ試したところ、 SetWindowPos(hWnd, NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED); だけでいけるようです。 WS_POPUP等は真っ先に試したのですがだめでした。 どうやら、Direct3Dデバイスを初期化した後にクライアント領域を上書きする 必要があるようです。
WS_EX_TOPMOSTとかSetCapture関数とかは?
>>559 こんな感じです。一応ウィンドウモードに切り替えることも考慮してます。
RECT rect;
SetRect(&rect, 0, 0, WIDTH, HEIGHT);
DWORD style = (FULLSCREEN) ? WS_POPUP :(WS_CAPTION|WS_SYSMENU|WS_BORDER|WS_MINIMIZEBOX);
AdjustWindowRect(&rect, style, FALSE);
int width = rect.right - rect.left;
int height = rect.bottom - rect.top;
WNDCLASS wc;
ZeroMemory(&wc, sizeof(WNDCLASS));
wc.hbrBackground= (HBRUSH)GetStockObject(BLACK_BRUSH);
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
wc.hInstance = hInst;
wc.lpfnWndProc= MsgProc;
wc.lpszClassName= CAPTION;
if(RegisterClass(&wc) == 0) return 0;
HWND hWnd = CreateWindow(CAPTION,CAPTION,style,CW_USEDEFAULT,CW_USEDEFAULT,width,height,NULL,NULL,hInst,NULL);
if(hWnd == NULL) return 0;
if(FAILED(InitD3D(hWnd))){return 0;}
if(FULLSCREEN)
{
SetWindowPos(hWnd, NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED);
}
ImmAssociateContext(hWnd,0);
ShowWindow(hWnd, SW_SHOW);
UpdateWindow(hWnd);
>>560 環境は?DXバージョン、OSとグラフィックカード、メモリ容量も書いて。
DX9だと、どんなウィンドウの設定にしてもキレイにフルスクリーンになるみたいよ。 あとはアホな組み方してもCPU使用率が100%にならないんだけど」ウチだけ? デフォルトでPresentにSleepが入るようになったんかな。 自前で制御してるからいらんのだが、無効にするやり方がわからん・・・ まぁ特に害は無いから良いんだけど。
>>562 それだけで9に移行したくなった、へたれグラマがここに…
GFTi4200 + Athlon2200+XPでも遅いな。遅すぎる。もっと早くなれ。
アルゴリズムが悪いとかじゃなくて?
そうかな。 アニメーションする700ポリぐらいのXファイルを10個ばかり連続して描いたら遅くなるんだが。
アルゴリズム(=お前の書いたソース)が悪いな、それは。
俺もそう断言しとく。
>>561 環境は、
DirectX8, OS Win2000pro , CPU P4 1.6Ghz, RAM ddr512MB, VideoCard Radeon9000pro, VRAM 128MB です。
>>562 9に移行したくなりますた。
でも、とりあえず8で基本押さえて一本完成させてからにします。
検索しても見つからなかったので、ここで質問させて下さい。
現在建物との当たり判定は、自キャラから一定距離以内のモデルの全面検索(一応いろいろ絞り込んでますが)
で取っているのですが。
フレーム毎に頂点バッファをロックして頂点座標を取得するのと、
マップを作るときに予め頂点座標のみ取得しておき、それを使うのではどちらが良いのでしょうか。
ロックアンロックは重いというのをちらほら見かけたし、予め格納するなら結構無駄にメモリを食いそうで悩んでます。
何も考えずにそうやったらそれくらいで頭打ちになるよ。 テクスチャ等の切り替え回数を減らすとか工夫しないと。
>>569 Windows98SE AthlonXP1500+DDR512MB+GFMX400(VRAM64MB) DirectX8.1では
正常に表示されるんだがな。win2000では無理って事か。ふむふむ・・・。
>フレーム毎に頂点バッファをロックして頂点座標を取得するのと、
>マップを作るときに予め頂点座標のみ取得しておき、
>それを使うのではどちらが良いのでしょうか。
どちらがいいでしょうか、ってそりゃソフトの使い道や環境によって自分で決めれば
いいことだろう。必ずこっち、という解答があるわけではない。
>>569 の環境だとグラフィックカードがよさげなのでバッファロックも特に問題なさそう
だが、速度重視ならソフトでバッファを持てばいい。建物(直方体)ならそれほどメモリ
を食わないので普通ゲームを作る場合はこちらの方法で速度を上げる。
あと分かってないみたいだが当たり判定というのはあらかじめバウンでィングボックス(もしくは球)
を作ってそれを使い衝突判定をする。いちいち全部の頂点・面を判定に使用するのは
地形接触判定以外ではやらない。オブジェクトごとにそんな事をしていたらロック無しでも
アホみたいに遅くなる。バウンディングボックスという言葉は分かるよな?
>>569 よほど複雑だったり数が多くなければ、後者ならそんなにメモリ食わないと思うけど。
計算してみた?
アドバイスありがとうございます。
>>570 計算してみます・・・
>>571 バウンディングボックスは最初考えていたのですが、家の中に入ったり家の中の
階段を上ったりするので。家の中をどうするかを考える時点で挫折しますた・・・
全面検索だと、この辺は簡単にいけるのですが。
>>572 建物はかなりローポリで作ってテクスチャでごまかしてます。
今のところ小さい家で、頂点数118(GetNumVerticesで取った値)
2階建ての家で390くらいなので、恐らくこれから追加するモデルも500は越えないと思います。
人やモンスター等、複雑な形状になる物体には周りにエフェクト貼り付け用の透明な六角柱を用意して
それと当たり判定を取る予定です。
>>573 >バウンディングボックスは最初考えていたのですが、家の中に入ったり家の中の
>階段を上ったりするので。家の中をどうするかを考える時点で挫折しますた・・・
>全面検索だと、この辺は簡単にいけるのですが。
クリッピングもできないみたいだな・・・。ポインタもよく分からないのだから
この辺が限界か。ま、頑張れ。
>>574 クリッピングはバウンディングボックス使ってスクリーン座標から8頂点全部
はみ出したら描画しないようにしているのですが、ダメなのでしょうか・・・
>>575 笑 家のモデルはたしか頂点数118の単一モデルだったよな?
家の中もそのモデル内に作ってあるとすればお前の仕様だと家に入ると家の内部を
いちいち全て描画することになる。
家の外装と内装(部屋、廊下、ドア、階段、壁)をそれぞれ
家のオブジェクト内に存在する子オブジェクトとして持てば描画範囲からあたり判定、
個別の仕様変更にも耐える設計となる。無論自作エディタも必要になってくるがな。
まぁ、ちいちゃい箱庭作って遊んでる程度なら気にしなくてもいいよw。
>>Newbie こんなことを言ってしまうと元も子もないが、はっきり言ってどうでもいい。 メモリを鬼のように食おうが泣けるほど重かろうが、とにかくまず動くものを。 今のおまいの話は完成後(ここ肝心)に速度その他に疑問をもったら聞きに来ればいい。 迷わず進めでFA。
>>576 なるほど、かなり参考になります。
そうなった場合、いかにバウンディングボックスを作るかが問題になりますね。
まだLightWaveではき出したXファイルをメッシュ単位で描画している程度なので、
そのレベルまでの道のりは遠そうです・・・
連続投稿規制はじめて食らいますた・(ノД`)・゜
>>577 はい、とりあえずいろいろ割り切って進めてみます。
>>573 >>バウンディングボックスは最初考えていたのですが、家の中に入ったり家の
>>中の階段を上ったりするので
普通は別にコリジョン用のモデルを準備しとく
家ならさらにローポリで単純な形のモデル
表示しないのでテクスチャ、マテリアル、頂点カラーも不要
メモリも表示用モデルに比べれば小さくてすむし
>>577 いいこというねぇ。
とりあえず動くものができてからだよね。
582 :
DirectPlay :03/02/10 02:44 ID:Oiatng7o
DirectPlayで、ロビーサーバーを使用しない接続で、 「セッションの場所」という、接続を検出する先のホストを入力するためのダイアログボックスが、 自動的に起動してしまうのですが、これは、ロビーに対応しないでは抑制するのは不可能なのでしょうか? また、擬似的でもなんでもいいので、見えなくする、とか、なんでも方法を知っている方がいらっしゃいましたらご教授くださいまし。。
点の可視判定をどう実装しようか迷ってます。 カメラ座標系の行列mCamera,透視座標系の行列mPersを DirectXにある演算でD3DXMATRIXとして作って 点の座標をD3DVECTOR3型のpointで宣言して pointDst=point*mCamera*mPers; としたときに、その点がx[-1,1] y[-1,1] z[0,1]の 中に入っていなかったらその点は見えないと言えるのでしょうか? 実際には、8X8の64ボックスのエリアからなる街を効率よく レンダリングするために、4分木にして可視判定を行っていこうと おもっています。上記のことで正しいならば、実行半径と軸にして それを行おうと思っているのですがどうなんでしょうか?
あぼーん
>>582 オレがいじってたのはDirectX5のトキなのだが、
そんときはダイアログ無しでアプリ側から「TCP/IPでホストになる」とか
「123.45.56.78に接続」とかできたよ。当然今のバージョンでもできるはず。
でもやりかたほとんど覚えてない。
ダイアログから得られる情報を使って次の接続処理をしていると思うのだが、
その情報を自前で生成して接続する...ってカンジだったよーな...
スマソ。いろいろ調べてみてくれ
NT系で動いたDirectPlayのソースが9x系で動かないです。 クラサバからピアのセッションを張るときに コールバック内からいろんな処理やったのがまずかったのかも クラサバとピアのセッションって同時に張れますよね? もう一度ちゃんとしたコードで書き直そうと思っているんですが 原因も知りたいので、知ってる人いたら教えて欲しいです。 リファレンスにある 「DirectPlay では、Windows 2000 上で動作するときに I/O 完了ポートを使用する。」 ↑これよくわかんないんですが関係ありますか?
588 :
586 :03/02/10 22:36 ID:nRuciNwT
エラーというより反応がないんです。 9xのコールバックがマルチスレッドじゃないとしたら そんな動きかな?って感じでした。
DirectPlayよくしらんが、コールバックではフラグを立てるとか Eventをシグナルするとかメッセージを投げるとかそれくらいに しといたほうがいい気がする。
590 :
名前は開発中のものです。 :03/02/11 01:27 ID:u2o+UQ0a
質問です。 DirectPlay8の PeerToPeerで 接続している プレイヤーすべてのDPNIDは取得できるのですが 起動させている自分自身のDPNIDはどうやって特定するのでしょうか?
あぼーん
592 :
名前は開発中のものです。 :03/02/11 06:28 ID:KQOMDYQi
>>569 その環境でその負荷は、ありえないよ。
コリジョンつっても、数が全然少ない。
(とりあえず、CPU使用率確認すべし。表示とアニメだけなら、
CPU使用率5%以下の筈。全部HWなら)
多分、小さい頂点バッファを沢山描画してると思うんだが?
ストールしまくるよ。
>>580 アドバイスありがとうございます。
なるほど。参考になりますた。
>>583 D3DXVec3Projectという便利なモノがあります。
範囲はD3DVIEWPORT8で宣言した値で決まります。
>>592 566さんへのレスでしょうか?
俺の方は今のところ可視範囲を家で埋め尽くしても全然軽いです。
この先アニメーション付きの人物とか追加していくと不安ですが・・・
あぼーん
595 :
1/2 :03/02/11 18:44 ID:iYhjkWBr
Win2000SP3 DirectX8.1 GeForce2MX VC++6.0SP5 640*480の画面いっぱいに同サイズのbmpファイルを表示させようとしてるんですが、 ぼやけてしまうのはなぜでしょうか?(表示はできてるんですが) #define FVF_CUSTOM (D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX1) struct CUSTOMVERTEX { FLOAT x, y, z, rhw; DWORD color; FLOAT tu, tv; }; 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
m_vtx[0].x = -0.5f;m_vtx[0].y = -0.5f;m_vtx[0].z = 0.0f; m_vtx[1].x = 639.5f;m_vtx[1].y = -0.5f;m_vtx[1].z = 0.0f; m_vtx[2].x = 639.5f;m_vtx[2].y = 479.5f;m_vtx[2].z = 0.0f; m_vtx[3].x = -0.5f;m_vtx[3].y = 479.5f;m_vtx[3].z = 0.0f; m_vtx[0].rhw = 0.5f;m_vtx[0].color = 0xffffffff; m_vtx[1].rhw = 0.5f;m_vtx[1].color = 0xffffffff; m_vtx[2].rhw = 0.5f;m_vtx[2].color = 0xffffffff; m_vtx[3].rhw = 0.5f;m_vtx[3].color = 0xffffffff; m_vtx[0].tu = 0.0f;m_vtx[0].tv = 0.0f; m_vtx[1].tu = 1.0f;m_vtx[1].tv = 0.0f; m_vtx[2].tu = 1.0f;m_vtx[2].tv = 1.0f; m_vtx[3].tu = 0.0f;m_vtx[3].tv = 1.0f; 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 m_pd3dDevice->SetVertexShader(FVF_CUSTOM); m_pd3dDevice->SetTexture(0, m_pTexture); m_pd3dDevice->DrawPrimitiveUP(D3DPT_TRIANGLEFAN, 2, m_vtx, sizeof(CUSTOMVERTEX));
597 :
3/2 :03/02/11 18:46 ID:iYhjkWBr
他の環境ないので試せませんが、ビデオカードの仕様だったら泣いてさしあげます
640x480のテクスチャって作れたっけ? 1024x512のが拡大縮小されてる余寒。
>>598 内部的には1024*512作ってるので、どうしてもぼやけてしまうんでしょうか?
うは、そりゃボケるべ。 1024x512の、640x480の部分(たとえば左上)にBMPを転送して、 テクスチャの頂点位置を調節しろ。
601 :
_ :03/02/11 19:40 ID:jSG2fsEs
>>596 for(i=0;i<4;i++)
{
m_vtx[i].x-=0.5f;
m_vtx[i].y-=0.5f;
}
たぶん、描画前これを入れるとうまく行くと思う。
602 :
_ :03/02/11 19:42 ID:jSG2fsEs
すまん。すでに、0.5f引いてたのね…
603 :
595 :03/02/11 19:57 ID:WEOw/ne+
>>600 だよね、640*480なんてありえないよね。
D3DXCreateTextureFromFileでおかしな大きさのテクスチャでも作れてたから、
それをそのまんま使ってた。
512*512で試したらボケもなく表示されました。
お騒がせしました。
ああ、ボケてるのは画像じゃなくて自分の頭だ……
メシ食って歯磨いてオナニして風呂入って寝よう。
あぼーん
>>595 D3DXのテクスチャ作成サポート関数で画像をロードすると、
デフォルトではサイズを2の階乗に合わせてフィルタリングを行います。
読み込みの際にフィルタリング設定でD3DX_FILTER_NONEを設定して、
頂点のuvに(imgが640*480 テクスチャが1024*512として)
u = 0.625; v = 0.9375;
と入れれば正常に描画できると思いますよ。
>メシ食って歯磨いてオナニして風呂入って寝よう。
メシ食ったら風呂場で歯磨いてオナニすればよかろう…
って人生も最適化始めたら人間おしまいよね(笑)
606 :
名前は開発中のものです。 :03/02/12 03:03 ID:1pSK5fDw
DirectInput8を使用しているのですが、ジョイスティックを接続して、 ジョイスティックからの入力を受け取ろうとプログラムを実行すると、 ある特定のキーが押しっぱなしになった状態で起動しまうと何件か 報告されました。 自分の環境ではないので(自分の環境では大丈夫でした)、デバッグを することが難しいのですが、どのへんがあやしそうかを教えてください。 ちなみに、起動時に何もキーなどは押していないそうです。
あぼーん
>>606 「ある特定のキー」ってのが十字キーなら、少し遊びを持たせてみるとか。
>>606 > どのへんがあやしそうかを教えてください。
方向キー押しっぱなしなら一回以上キャリブレーションを行う。
homeキーに割り当てる、という手もある。で、怪しいと思ったときにユーザが押す。
いや、これはどの解説書にも書いてあることだから
98%すでにキャリブレーションを行っていると思いますが…。
あとはユーザの環境に問題があるケース。
ジョイスティック関連は自分の環境をアプリケーションのせいにする輩が
非常に多いことで有名なので…。
「パッド付属のユーティリティで正しく設定しろ」以上の対処法は無い。
コントロールパネルで パッドの設定が正しくできてないぐらいしか おもいつかん
DirectX9.1!!
コンパネで調整してもニュートラル位置が安定しないパッドはあったよ。 十字キーを押した状態を1.0の強さとすれば、押してなくとも 0.3くらい偏ってるような糞パッド。 入力の遊びを大きくとるしかない。
糞というか、サウンドカードのゲームポートを使用するコントローラの 場合は細かく位置を特定することが不可能なんでしょうがないかと。 (サイドワインダーのようなデジタル接続の物は別)
あぼーん
>>613 いくつかプレステのパッドをつなぐコンバータを持ってるが、
海外の輸入物はほんとに駄目なものが多いよ。
ニュートラルでも動く動く。即効ゴミ行きさ。
少々高くても日本でパッケージされている程のものはまず大丈夫の模様。
617 :
616 :03/02/12 16:11 ID:HUarmbXk
俺のはUSB接続の物の話ね
スマートジョイパッドがダメダメなのを確認しますた(他の安物も同じだった) ひょっとして変換機じゃなくてPSコントローラのほうがダメなんじゃないかと
>>618 どうだろうね。
PSのコントローラー自体が判定シビアなんじゃない?
デュアルショックで試したけど、思いっきり倒して元に戻すと±0.1位残ることもある。
(もちろんうまくやれば0になる。)
だから俺は
>>613 のように遊びを作って調整してる。
あぼーん
621 :
616 :03/02/13 00:07 ID:o+He/HHX
うちにスマートジョイパッド3が二つばかりあるけど、 十字キーはデフォルトで特に問題なし。 アナログは確かに少しずれてる。ブルブルするってことはさすがにない。 キャリブレートすると十字キーの方に影響出るから結局やってないや。 いやまあアナログは使わないから別にいいけど。
スマートジョイパッド3+DUALSHOCK2(PS2のコントローラー)使ってますが、十字キー 大丈夫です。スティックはずれてますが、デッドゾーン指定すれば問題ないみたいです。 クラスを3段階に定義しており、 #include"cb.h" class CA{ CB cb; }; #include "cc.h" class CB{ CC cc; }; class CC{ }; とインクルードファイルを3つに分けているのですが、ビルドすると error C2011 class型の再定義と出てしまうのですが、これは何なのでしょうか?
>>622 なんだかよくわかんない。
どこかでinclude間違ってんじゃない?
>>622 漏れ全く同じ使い方してる。プリプロセッサに再定義させない指定してるけど。
cc.hなら例えば
#ifndef __CC_H__
#define __CC_H__
〜ヘッダの内容〜
#endif
多分これで回避できると思う。
アドバイスどうもです。解決しました。 クラスCBのメソッドを収容してあるファイル cb.cpp の最初に #include"cc.h" と書いてしまったため、まさしく再定義されたようでした。
626 :
名前は開発中のものです。 :03/02/13 21:57 ID:T2BpaXoT
DirectX 8と9、両方のDirectPlayに携わった方、よろしければ質問お願いします。 DirectPlay8から9にかけて、たとえばDirect3DからDirectGraphicsに 移行したときの様な、大幅な変更はありましたでしょうか。 また、少々無理してでも9の方を学ぶべき、理由などございますでしょうか。 障害として、9のsdkを入れると、動かなくなるアプリがある事情がありまして…。 初歩的な質問で恐縮ですが、よろしくお願いします。
あぼーん
628 :
名前は開発中のものです。 :03/02/14 00:25 ID:xilLUCvM
DirectInput8でキャリブレーションをする関数を教えてください。 キャリブレーションで調べても全然見つからない… 他のキーワードかなんかあるんですか?
629 :
名前は開発中のものです。 :03/02/14 00:29 ID:T9kWfjsm
VC++ & DirectInput8を使っていて、 パッドの数を取得して、 0〜複数を自動で認識したいんですが、 流れとしてはどうやるんでしょうか? とりあえず、パッド一個を動かす事はできています。 VB+DirectX7の時は Set EnumDevice = DInput.GetDIEnumDevices(DIDEVTYPE_JOYSTICK, DIEDFL_ALLDEVICES) で、EnumDev.GetCountに何個パッドがあるか出てきて、 Set PadDeviceInfo(i) = EnumDev.GetItem(i + 1) Set PadDevice(i) = DInput.CreateDevice(PadDeviceInfo(i).GetGuidInstance) で、一個ずつ割り当てていったんですが・・・
あぼーん
>>628 そんな関数無かったと思うけど…
ジョイスティックのセンタ合わせなどはその製品のドライバ、ツールがやるべきことで
アプリケーションの仕事ではないでしょう。
それとも絶対座標軸で正確な中心を取る方法とかいう話ですか?
どうしてもというなら相対座標で受け取れば、なんとかなる場合もあるんじゃないでしょうか?
>>629 ……一つ作成できてるなら、それと同じ方法を繰り返すだけでよくないですか?
列挙した時にGUIDが入った構造体が与えられるので、それに使って作成していけばよいはずです。
マニュアルのようにインターフェイスをグローバルで与えたくなければ、
列挙する時にLPVOID型の転送用の引数がありますので、
そこにインターフェイスを与えればよいと思いますよ。
632 :
629 :03/02/14 01:59 ID:T9kWfjsm
>>631 回答\(・∀・)/ アリガトン
使用するコールバック関数がイマイチ分かってませんでした。
取得に成功したら、DIENUM_STOPを返してて、次に行かないようになってました。
忠告されるまでLPVOID型の引数を無視してました。(笑)
これを使ってもう少しいいように作ってみます。
ためになりました。
633 :
626 :03/02/14 02:04 ID:e3XCNwxz
くぅ、小粋なPlayBoyはいらっしゃらないのか(´Д⊂ もう一度上げさせてください
>>633 わずかな機能追加とバグフィクスが変更の中心です。
大きな変更はありません。
あぼーん
>>634 ありがとうございます!おかげで心おきなく8Playの猛勉強開始できます。
これで安心して眠れます…本当に感謝です。
今日はきっとあなたの日ですよ(*´Д`)ノ◆パッ
>>628 >>631 の言うとおり、アプリ側でやることじゃないと思う。
もしやるなら、うんこハード、ドライバ用に十字キーの閾値の設定くらいかな。
638 :
名前は開発中のものです。 :03/02/14 19:24 ID:tJTzQwc9
変換行列で、頂点座標を変換するにはどうやって計算しますか? 要するに、変換後の頂点座標が取得したいのですけど・・
>>638 pD3DDevice->SetTransform(D3DTS_WORLDMATRIX(0),&Matrix);
のMatrixを保存しておいて、変換後の座標が必要なときに
座標に掛けてあげればOK。
640 :
名前は開発中のものです。 :03/02/14 22:27 ID:FTji8okw
DirectX7で、描画先ウィンドウを変えたいんだけど 8以降にある Presentに渡すウィンドウハンドル見たいに 途中で転送先ウィンドウを変えたいんだけど・・・ 7では無理ですか?
641 :
638 :03/02/14 22:33 ID:fnvvsKQl
>>639 レスどうも。
頂点座標にマトリクスの各配列を
どういう形で掛ければ良いのですか?
検索でも出てこないもので・・
>>641 D3DXVec3TransformCoord関数で一発
あんまり難しく考えないようにね
643 :
638 :03/02/14 23:50 ID:NpYIeDIA
>>642 そいった物が・・
さっそく使ってみます〜 どうも〜
あぼーん
645 :
名前は開発中のものです。 :03/02/15 02:42 ID:iI0jLvcO
Direct3D8を使ってるんですけど、 現在フレーム毎に、全部描き直してますが、 DirectDrawで別のSurfaceに書き残すみたいに、 描画した情報をどこか他のものに残す事はできないでしょうか? IDirect3DDevice8::CreateImageSurface()なるものはあるようなのですが、 これも作っただけで、どう使えばいいか分かりません・・・
646 :
名前は開発中のものです。 :03/02/15 03:14 ID:ruB4cEsX
ジョイスティックの遊びを設定できるようにしたいのですが、 あの遊びの値というのは、一般的に使われている式があるのですか? なんか漏れが見たゲームの設定だと、1〜1000で設定できるように なってたんだけど、これが一般的なのですが?
>>645 8はよく知らないんだけどスワップチェインをFLIPじゃなくCOPYで
作成すればバックバッファには常にフロントと同じ内容が残るのでは?
要はWindowモード時と同じ処理。
D3DSWAPEFFECT_FLIP,D3DSWAPEFFECT_COPY<このへんがキーワードかな。
あぼーん
>>645 IDirect3DDevice8::SetRenderTarget はどうかな?
ちょっとズレてるかもしれんけど。
━━━━━( ・∀・)=終)´Д`(了=(・∀・ )━━━━━
>>646 1〜1000ってのはユーザーに判り易く変換してるだけだと思う。
652 :
名前は開発中のものです。 :03/02/15 07:01 ID:ruB4cEsX
軸の傾きって、一番ひどいパッドでどれくらいずれてますか?
>>645 それはスナップショット的な物が欲しいということ?
それだったらGetBackBuffer()でサーフェイスを取得しておいて、
レンダリングが終了してたときにCopyRectsで用意しておいたサーフェイスに
転送すれば、描画されたイメージを取得できるよ。
>>646 それはアプリケーションが決めればいい事ですよ。好きにやったらいい。
遊びって大体10%〜30%くらいじゃないのかな?
>>643 おいおい、数学的処理や意味を知らずに使うのはマズイだろ。
簡単に
struct VECTOR
{
float x, y, z;//同時座標じゃなくても出来る
};
struct MATRIX
{
float _11, _12, _13, _14;
float _21, _22, _23, _24;
float _31, _32, _33, _32;
float _41, _42, _43, _44;
};
で、ベクトルと行列の掛け算はで得られる結果X1, Y1, Z1は
X1 = x*_11 + y*_21 + z*_31 + _41;
Y1 = x*_12 + y*_22 + z*_32 + _42;
Z1 = x*_13 + y*_23 + z*_33 + _43;
//左手系、ベクトル×行列の順で、同時座標でいうwは常に1を補うとする。
簡単だろ、各回転行列やなんかは分るだろ?
で、_41, _42, _43が平行移動成分ってのも。
655 :
654 :03/02/15 09:40 ID:2CJAwmu6
タイプミス >同時座標 同次座標
656 :
638 :03/02/15 11:12 ID:7dXkqCa/
>>654 どうも、為になります。
確かに意味も分からずに作って行くと、
後で行き詰まるのは、目に見えてますが・・
どうしても、試したかった事がありまして。
D3DXなんかが有るので、3Dの知識が貧しくてもどうにかなっていたものでして。
一段落したら、3Dの勉強をじっくりしたいですねぇ。
∧ ∧ ( ̄ー ̄) (つ つ ( ヽノ し(_) Now Thread Stoping. ... 大変見苦しいスレでありました. スレストするまでお待ちください。。。ニヤリッ
単純にD3DXVECTOR4で宣言した変数と 行列を vec4=vec4*matrix; って感じで頭の3つを取り出せば座標が出ますよね。
659 :
名前は開発中のものです。 :03/02/16 01:52 ID:3xyVlE7Z
ウィンドウ内でゲームが動いている時、セーブとかオプションを変更する為に 右クリックしてポップアップメニューを出したいのですが、どのようにして出せばいいですか? 環境はVisualC++6.0、DirectXSDK8.1です。
_、,_ ( _!_ )
661 :
名前は開発中のものです。 :03/02/16 02:48 ID:uicgqHLM
なあ? バンプマップはわかるんだが、ディスプレースメントマップってなんのためにあるの? モデリングでつくっときゃいいじゃん
>>662 そこだけじゃなくて他のサイトも見て理解してください。
>>659 「猫でもわかるプログラミング」ってサイトにいろいろ詳しく
掲載されてるっぽ。検索してみれ。
665 :
名前は開発中のものです。 :03/02/16 04:00 ID:ZVOz3UrZ
DirectXは、バージョンをあげても動くというのが建前ですよね。 しかし、実際には動かないゲームやアプリがあります。 うちのWinFastという古いアプリもそうですし、FFもそんな噂を聞きます。 これの原因は何なのでしょうか? 単にコードの冒頭でバージョンを定義してないせいとか…、 いやそんな単純じゃないですよねぇ…。よろしければご教授を。
ドライバやOSも関係してくるから一概に言えない
>>666 ありがとうございます。ではコーディングする側としては
どうしようも無いんですね。ある意味ほっとしました。
あぼーん
他にもOSの種類を9x系に限定したりとかが原因で動かなかったり。
>>661 例えば、バンプマップで表現した面を、ライティングで壁に影として映し出そうとした場合。
バンプだと描画のみなのでポリゴンの形の影になるが、
ディスプレースメントならポリゴンも変形してるので、その描画されている形の影が落ちる。
そんな感じか。
DirectSound は同時に演奏できる数に制限はないんですよね。 WDMドライバの場合の WaveOut も同時演奏数に制限はないから、 結局 同時演奏数に制限が加わるのは vxdドライバで WaveOut を使ったときだけなんですね。
>>661 よくわからんけど、LODが実装しやすいんじゃなかろーか。
>>661 何のために使うか分からなければ使わないでいいと思うよ。
使う時が来たら使えばいい。
だいたいDX9が一般に広がるのっていつの頃だよ……。来年?
DirectX9が広まる心配などする必要ない。 問題は、DirectX9対応(というか使いたい機能を持った)ハードウェアがいつ広まるかだ。 前者はこちら側の対処でどうにでもなる。 後者は難しい。
>>675 いや、そういう意味で言ったんだけどね。
だって俺もまだDX8世代のカードで我慢してるし。ゲームやる友達のパソコンも
酷い奴はまだDX7世代だもん。
1,2年前のメーカー品使ってる連中が買い替え始める時期がいつか……。
変な話、シェーダー3.0に完全対応したカードが出てくれないと
俺はビデオボード変えないかも(笑)
ん?ゲームする人の論理?
あぼーん
679 :
名前は開発中のものです。 :03/02/16 15:10 ID:lNvw3jDD
670-677レスありがとうございます。 なんか微妙な用途ですね。 地面につかうとでっぱったポリゴンがキャラにめり込むし。 うーん、誰か効果的な使い方を発見してくれるのをまつことにします。
>>677 いや、DX9で定義された仕様を全部サポートしてくれた製品じゃないと嫌だなぁって話。
>>679 ディスプレースメントマップをハードでサポートなんて最高じゃんか。
使いまくれ!
ほら、6面体で焼けて膨らむ餅が表現できるぞ(笑)
それより俺はボリュームを何とかして欲しいなぁ……
681 :
名前は開発中のものです。 :03/02/16 16:54 ID:tDr+jqjf
プログラム内でスクリーンショット機能を付けたいのですが、 どういう手順でやればいいですか? 環境はVB6.0+DIRECTXでお願いします。
VBは知らないのでC++の例。ウィンドウ枠が可変でプライマリバッファからコピーの場合 LPDIRECT3DSURFACE8 tmp; D3DLOCKED_RECT lock; d3ddevice->CreateImageSurface(::GetSystemMetrics(SM_CXSCREEN), ::GetSystemMetrics(SM_CYSCREEN), D3DFMT_A8R8G8B8, &tmp); d3ddevice->GetFrontBuffer(tmp); tmp->LockRect(&lock, NULL, 0); RECT rc; GetClientRect(hwnd, &rc); int w = rc.right - rc.left; int h = rc.bottom - rc.top; ClientToScreen(hwnd, (POINT*)&rc); BYTE *buf = new BYTE[sizeof(DWORD) * w * h]; for (int i = 0; i < h; i++){ CopyMemory( buf + sizeof(DWORD) * w * i, (BYTE*)lock.pBits + lock.Pitch * (rc.top + i) + rc.left * sizeof(DWORD), sizeof(DWORD) * w); } delete[] buf; tmp->UnlockRect();
あぼーん
>>673 DirectSoundではサウンドの同時処理は処理速度が許すかぎりいくらでもできる。
CAPSはハードウェアで処理できる限界であってソフトウェアの限界ではない。
686 :
名前は開発中のものです。 :03/02/17 04:19 ID:WS9BVvAx
3Dを背景とした2Dゲームって、二つの頂点の定義を作っておいて、 毎フレームごとに切り替えるんですか? つまり、1フレームごとに、座標変換ありの頂点と座標変換なしの頂点を 交互に描画するんですか?
689 :
名前は開発中のものです。 :03/02/17 05:25 ID:aOw8ezq9
少々わかりにくいが間違いはなさそうだが
ああ、背景は座標変換あり、2Dオブジェクト郡は座標変換ありってだけのことか。 だがな、用語が変だぞ。
691 :
名前は開発中のものです。 :03/02/17 07:55 ID:vF3bZenv
あり?
2Dは「なし」だな。すまん。もうこない
693 :
名前は開発中のものです。 :03/02/17 08:23 ID:jFMHe3lL
逃げちゃ駄目だ!
694 :
名前は開発中のものです。 :03/02/17 08:58 ID:dBcKYU7J
普通、同じフレーム内に座標変換あり、なし両方書き込むぞ。 なんだ、交互にって?テレビのインターレースかいな。 で、その頂点座標変換あり、なし混在の場合、 頂点変換なし(2D)描画が常に画面の手前になってしまう。 背景(3D)のobjectと何かしら処理が絡むなら(objectをくぐるとか) 自キャラ(2D)もビルボード使って 板ポリで、頂点変換ありでやった方が良いんでない?
座標変換無しでもポリゴンは描画できるよ。
あぼーん
なんか半年ぶりくらいにこの板キタ。 3Dを背景とした2Dゲーって言われてもピンと来ないのよね… 地形が3Dで2Dのビルボードを使ったゲームなのか、 背景は3Dだが見た目は完全に2Dなのか。 前者ならビルボードだけど後者だとスプライト。
ややこしくするなよ。ビルボードならこんな質問するわけないだろ。
3D背景の2Dゲーなら、ゲーセンにカプコンの格ゲーがいくらでもあるじゃん。
>3Dを背景とした2Dゲー
>>700 のほかにも、
サターンの初期にクロックワークナイトってゲームがあったけど、
あれが確かそういうタイプのゲームだったような。
横やりで申し訳ないですが、パワーゲージとか 残り時間の表示とかは座標変換無しでそのままやりますよね。 まあ、Zバッファ切ってから最後に描画するんでしょうけど。
703 :
名前は開発中のものです。 :03/02/17 22:59 ID:68dkEVgw
Zバッファ斬る? なんで?いいじゃん描いちゃえよ。
>>703 Zバッファ切らないで描画したら上書きされないの?
>>702 座標変換なしで描画したら解像度変わった場合大きさが変わらない?
このスレの人間が高解像度対応なんて ちょっとでも気の利いたことするわけないじゃん。 640x480x16bpp 60fps固定 FSAAなし 以外選べないゲーム作ってる奴らだからな。
>>704 解像度変わったらそれに合わせた座標にすりゃいいじゃん。
っていうか、ほとんどのゲームで2Dアートワークってサイズ固定で、
高解像度にすると小さくならない?
707 :
名前は開発中のものです。 :03/02/18 00:20 ID:2XDOY6wz
てか、何いってるのかわからないけど。 解像度は3:4をまもっとけば後からでも変更はいくらでも効くでしょ。 Zバッファはそもそも座標変換ありのものもなしのものも違いないでしょ。 ちなみに2D座標の場合のZの値は1.0が最前面だった気がする。 まあ、前面に描くものはα物だらけだと思うが。
708 :
704 :03/02/18 00:22 ID:qi2fP5U0
>>706 >ほとんどのゲームで2Dアートワークってサイズ固定で、
>高解像度にすると小さくならない?
それはカコワルイと思うけどなぁ
709 :
名前は開発中のものです。 :03/02/18 00:24 ID:G8QFcNbI
3Dアニメーションのモーションつくるのどうしてる?
>>707 その違いが無い、座標変換ありと無しの
無しの方Zの値をどうやって決める?
ワールド上を自由に動くオブジェクトやカメラの場合、ワールド変換、カメラ変換、ビュー変換
して座標変換ありの頂点は、Z値を持つ訳だ。
そのZバッファに、変換無しの頂点のZ値を、どう対応させる?
まさか、前面描画なんて言うなよ。
それと、α物とZバッファの関係が分ってないようだね。
もしα物が画面奥にあって、その周りを何か物体が回っているなんて場合
君のやり方じゃ、実装不可能だろ。
711 :
名前は開発中のものです。 :03/02/18 00:59 ID:r2vh2WJc
trueSpaceの60000円ぐらいするやつ。
あぼーん
>>713 そういうのって10マンぐらいするよね。
やっぱ買うわけ?
ポケットを叩くとビスケットは2つの原理です。
>>714 当たり前でしょ。あと値段、30万近くするって。
718 :
名前は開発中のものです。 :03/02/18 02:36 ID:Ahzziud7
ドングルもなんとかできるもんなの?
あぼーん
モーションをしっかり勉強したいんだけど それを専門に扱った本がみつからないんですよね。 何かありますか?
アドバイスありがとうございます。 ところでみなさん、浮動小数点の絶対値を求めるときどんな関数を使ってますか? fabsだとdouble型対象となってるので他に何かいいのあったら使いたいのですが。
>>722 0より小さければ−1をかける、でいいのでは
>>722 fabsf・・・結局はdoubleだけどさ・・・。
725 :
名前は開発中のものです。 :03/02/18 09:19 ID:5aGkziqd
VC++6.0でスクリプトエンジンもどきを作成しているのですが strcmpで"}"を文字列比較をする時に、lpStringに"てすと"等の違う文字列が 入っていても1(true)が帰ってきてしまいます。 例: int tmp; tmp=strcmp(lpString,"}"); しかし、上記で1がtrueと言っていますがMSDNを見ると0が帰ってくるとtrueらしいのです(;´Д`) 0なんて帰ってきた事なんてありませんし…。 どなたかアドバイスお願いします
r=strcmp(a,b); ↓ if (a<b) r=負の数; if (a==b) r=0; if (a>b) r=正の数;
>>725 なんだかな。ココはDirectXスレな訳で。
Cの構文なら、プログラム板にでも…。
アスキーコード知ってるかい。
文字は全て、数字が対応してるのよ。
strcmpは内部で減算してるだけ。
つまり同じ文字列なら、減算の結果が0で、戻り値が0な訳だ。
だから、戻り値が0なら同時な文字列であろうって感じなだけで
それがtrueな分け無い。
アドバイスありがとうございました。 ということは、これでいいわけですね(・∀・) if(lpString[0]=='>'){ }
数行のプログラムで実験すらできないのか?
次は'\'と比較して全角二バイト目とぶつかる罠、だな つかDirectXと全然関係ないやん
>>707 >解像度は3:4をまもっとけば
3:4以外にも対応するべし。1280*1024は5:4なんだなこれが。
2D表示部分はタスクバーのように画面の端にくっつくようにプログラムを組むべし。
>>708 今までサイズ固定じゃないゲームを見たこと無いんだが。
まあquake2を高解像度でプレイしたときの文字の小ささはアレだと思ったが。
テクスチャ画像のサイズってどうしてますか? 私が以前 DirectDraw でプログラムしていた時は 640x480(画面サイズ)の画像にチップを詰めてたのですが Direct3D の場合は普通はどういう感じなんでしょうか。 同じように比較的大き目の画像にチップを詰めるのか、 各チップ(パターン)毎に1ファイルずつとか。 サイズはよく256x256というのを聞きますが となるとやはりパターン毎に(最大256x256の)ファイルにするんでしょうか。 普通はこのぐらいのサイズまでなら大丈夫なんじゃない? という基準とか あったら教えてください。
2^nのサイズが良いと言われますね。 256 x 256 (2^8 x 2^8) 推奨というのはそのへんから来ているのではないかと。
あぼーん
普通にテクスチャデータを作ろうとすると、 DirectXの場合は1X1までミップマップをつくってくれちゃうんでしたよね。
>>733 最大256x256が無難といえば無難。
あと、ファイルをそのままテクスチャにしなければならない、
という決まりはないと思う。
>>736 ミップマップを作成しないこともできるけど?
>>733 自分は、テクスチャーを作る時に
ハードウェアの制限調べて(最大サイズとか、2の累乗のみとか、正方形のみとか)、
それにしたがって、内部で分割したり、正方形に修正したりしてるよ。
今のカードだと、制限もだいぶ無くなってきたけど、
Voodooとかだと、最大256*256 & 正方形のみ & 2の累乗のみ
とかの制限に全部引っかかったりするので。
739 :
733 :03/02/18 18:29 ID:BxcSfeKF
>>734 そうですね。
4:3に慣れてしまったので違和感がありますが、、
>>737 256x256だと Voodoo も含めOKと。
>>738 それって難しくないですか?
絵を貼り付けた板を移動するときとか
今は一枚なのか二枚なのか意識しなくちゃならないし
自分がヘタレなだけかもしれませんけど。
最近の市販ゲームだと Voodoo には対応してません
と明記してあるやつが多いですけどそういうやつは
どのぐらいのサイズで作ってるのかなと。
と思ったら
>>4 のサイトで調べられますね、、、
Rage Mobilityやi810ですら 1024x1024 いけるんですね。
不勉強でスミマセンでした。
740 :
738 :03/02/18 18:58 ID:PMYVEmVG
>>739 難しくないよ。
スプライトクラスとかを作っておいて、
そのスプライトクラスのメソッド
例えば、CSprite::Load()とかで、テクスチャーを作成する時
ハードの制限等を調べて、分割なり、修正なりすればよい。
描画する時は、描画メソッド
例えば、CSprite::Draw()とかで、テクスチャーの修正情報に従って、修正描画すればよい。
1回スプライトクラスを作っとけば、使う時は何も考えずに使えるよ。
自分は大体こんな感じでやってるけど、みんなは違うのかな?
>>740 なるほど。
Spriteクラスは1枚以上の板から成っている、と。
私がこの間3D始めてやっとこさ作ったSpriteクラス(Billbordクラス?)は
1インスタンス = 1枚という感じだったので、、
勉強になります。
あぼーん
>>740 俺もラッパークラス作って使いまわしてるよ。
DirectAudio(DirectX8)って、どうやって始めればいいんですか? ヘルプを見て、いきなり >1. COM の初期化 >DirectMusic オブジェクトを作成するためのヘルパー関数はないので、 >CoInitializeEx を呼び出して COM を初期化する必要がある。 この関数(CoInitializeEx())の使い方、意味、次への繋げ方がもう分からんのですが。 [定義されてない識別子です。] ヘルプ通り、objbase.h ってのIncludeしたのに!!!ヽ(`Д´)ノ
なぜサンプルから当たらない?
>>744 COMのこと知らないみたいだからCOMの勉強すれば。
あとはサンプルやウィザードが吐くコードを見るとか。
Voodooはドライバ更新ないんじゃないの? そもそもDirectX8で動くんか?
749 :
名前は開発中のものです。 :03/02/19 04:34 ID:K2W4Cmx9
ケースバイケースだとは思うのですが、皆さんはモーションデータを どのクラスに保持させていますでしょうか? とりあえずDirectX8のサンプルにあるフレームやメッシュと同じ感覚で、 モーションデータをパーツ毎に持たせてみました。 しかし、これでは動作がボトムアップといいますか…一元的に管理できない感じで…。 かといって、モーションクラスを作り、トップダウンに個々の パーツを管理するのも、主体が2重になりそうで…。 言ってることが曖昧ですいません。要するにモーションデータの管理について 悩んでいまして…なにか示唆をいただければ幸いです。
あぼーん
あーやだやだ設計厨は。
>>749 上位では階層化メッシュクラスのサブクラスで
アニメーションメッシュクラスを作って管理してます。
内部では各フレームごとにモーション情報を持たせてます。
自分的にはシーングラフには内部の詳細は不要なので、
混乱せずに扱えて便利だと思ってるです。
753 :
749 :03/02/19 10:38 ID:K2W4Cmx9
>>752 レスが遅れて申し訳ありません。ついウトウトと…。
おお!フレーム毎に持たせてらっしゃるのですね。
私も内部の詳細は一切触らず(触れず)に、ただ状況に合わせて
アニメーションさせるだけなんです。やっぱり分かりやすいのが一番ですよねぇ…。
ただ初めての3Dということもあって、もしかしたらこういうのは
トップダウンの方が把握しやすのかなぁと、不安になりまして…。
おかげで安心しました。レスありがとうございました。
754 :
名前は開発中のものです。 :03/02/20 01:00 ID:aBMYS0Zf
みなさん、8.1でシェーダってどうやって管理していますかねぇ? ブレンド数やライトやらスペキュラを自由にOn/Offしようとすると かなり破綻しそうなんですけど…。 9.0のフラグメントナントカって使えるかなー?
>>754 マテリアルとかうまく管理しているならそれとよく似た方法で管理すれば問題ないはず。
# というか、シェーダーだけそんなに特別か?
あぼーん
みなさんはDirectXが返したエラーをなにで処理していますか? 例外を返していますか?
なにで、って、普通にif文で処理してるよ?(C++ね) そもそもDirectXで例外ってあんまりみたことない。 (経験不足名だけかもしれないけれど) DirectXのエラーを例外で処理するメリットが見当たらない。
例外を使ったほうが圧倒的に実装がすっきりする。 C++つかってるのに例外を使わないなんて考えられない。
DirectXだろうが何だろうが、実行時エラーは基本的に例外。 予測可能かつ対処可能な失敗コードなら復帰を試みるけど。 DirectXが戻り値でエラーを通知するのはかなり限られた ケースなんで、ほとんどの場合は例外になると思う。
アセンブラコード見ると例外ってかなり重い気が。
>>761 関数一つ一つをtry catchで包むわけじゃないのでトータルすればif elseより速くなる(場合もある)。
|・ω・`) メインループをtryで包んで、対処不能なエラーとか出たら 例外投げて終了するようにしてるんですがダメでしょうか…。
>>762 まあそりゃそうだがね。
1つずつ包む(w)なんて使いかたしなきゃコードも見やすくなるし利点は大きいわな。
俺は例外アレルギーだから使わないなぁ なんかどこでエラー起こったか良く分からないこと多いし 自作のエラー処理ならどのファイルの何行目で起こったか一目瞭然だし。。。
講義よく聞いていなかったから詳しく覚えていないけど(汗) JAVAの例外処理は遅くならない形で実装されている…らしい。 そもそも単にエラーを検出するための手段が本筋のプログラムの動作に影響していたら本末転倒だしね。 もしその発想がC++の設計思想にもあるのなら、エラー検出以外にも使わないのは損じゃない?
>>765 むしろ例外使わないほうが破局に至ると思うが。
どこで起こったかわからないって、そら適切にキャッチしてないからやろ。
768 :
765 :03/02/20 16:40 ID:tbIY2ozE
そうかなぁ・・・ STLとか使ってるとたまに例外出るけど どこでそれが起こったのかさっぱり分からん(英語で何やら書かれているけど・・・
>>766 もともと遅いからあんまり気にならないだけ。
うろ覚えの知識をひけらかして叩かれてみるテスト Javaとか.NETのようなGC環境では、throw後スタックを リワインドする時に破棄すべきオブジェクトを識別しなくて いいからちょっとだけ速いと。 C++とかは、tryの時点で、throwされた後に破棄する オブジェクトを区別する仕掛けをセットアップするので ちょとだけ重いと。 C++なら、DirectX呼出し毎にtryやthrowしてては大変なので せめてtryは大局的に使おう。と。 キーボードにマヨネーズが飛んだからこの辺で。と
771 :
名前は開発中のものです。 :03/02/20 22:53 ID:zbgoXdj/
はじめまして。 みなさん、C++なんですか?
いえ、オレは大内ですけど。
むしろ、大馬鹿さんかと。
774 :
名前は開発中のものです。 :03/02/21 01:32 ID:gtRtCCD/
DirectX8を使っているのですが、 7以前の、DltFastみたいに、画像の(10,10)から(100,120)を表示するにはどのような関数を使えばよいのでしょうか?
Bltじゃないの? Bltなら、CopyRectsが相当するのでしょうか? Helpで検索して見てよ。 でも、クリッピング、カラーキー、拡大縮小、αブレンドは対応してないと思ったけど。 8だと、Spriteが推奨されてるよ。 つうか、DirectX9に切り替えれば? Blt復活してますよ。
あぼーん
777 :
名前は開発中のものです。 :03/02/21 02:00 ID:gtRtCCD/
まじで? Blt復活? 今手元には、I/O別冊DirectX8.03Dアクションゲーム・プログラムだけあるんだけど、概要だけの本なのでちとつらい。 自分で調べようと思って、ヘルプを今見ていたんだが、どうせヘルプで1からやるなら9がいいかなと思っていた。 9に以降しまつ。 おすすめHPなど教えてください。
>>777 USAのマイクロソフトのDLから
SDKと日本語HELPが落せた筈。
HELP最強。
日本語HELP最高に手っ取り早い。
…日本をサポートしてるのか、馬鹿にしてるのか分らん。
お得意さま言語HELPって意味なのか、
お前等、英語も読めないんだろ?なのか…
後、WEBサイトも、そこからリンクしてるデベロッパー系は
良い感じだよ。勿論、英語サイトだけど。
あぼーん
>>778 なぜかDirectXだけは日本語ヘルプもすぐ出るんだよねー。
他は間違えが何年も修正されずに放置されていたり、
英語版のみとかも多いのに
仮にもゲーム大国日本の開発者をないがしろにするわけにはいくまい。 将来的にはないがしろにされるかもだけど。
意味不明な英語で質問攻めされたくないから。
あぼーん
日本のゲームわぁぁぁーーー世界一ぃぃぃーーーー
785 :
名前は開発中のものです。 :03/02/21 14:27 ID:6qw0d6w5
D3Dの質問なんですが、 インデックス付頂点の扱いに困っております。 テクスチャ座標まで共有してしまうので、テクスチャが猛烈に貼りにくいの ですが、どうすればいいんでしょうか? きめ細かくテクスチャを貼るには、インデックスを使わない方がいいのでしょうか? あと、 ペイピッポォ てなんですか?
あぼーん
手前のドアの陰になるのでその後ろのポリゴンは描画する必要がない〜みたいな判断は 自分でやるよりもビデオカードに任せたほうが速いとおもうんだが。
>>787 ドアが10000個ある地平線までまっすぐな廊下があったとして、それを常に
全て描画するのか?
あぼーん
>>785 その質問はDirect3DでもOpenGLでもFAQかもしれん。
結論からいうと、頂点を重複させ、テクスチャ座標と一対一にするしかない。
しかしそうすると形状アニメーションが面倒になる
(重複させたことを覚えておく必要がある)
形状アニメーションするのなら、indexをあきらめる。
形状アニメーションしないのなら、重複させる。
ところで、形状アニメしない(=静的な形状)のなら、
ビデオメモリ上に頂点データを置けるから、indexにしてもしなくても
パフォーマンス的にあんまり変わらんと思うがどうか。
超ハイポリかつtriangle stripがウマくできてる、なら解らんでもないけど。
>>787 軽くエリアに分けて、見えない、あるいは遠くのエリアの描画を省く、
ぐらいはやったほうがいいと思うズラ。
エリア内の描画については、荒い単位(ポリゴンでなくオブジェクトとか)
でソートして、手前から描いてあげるのがZバッファ方式上、有利。
手前から描くのはヘルプにも書いてるぐらいの定石だな。 ポリゴンを描かないのが最速だとも書いてあるが。
>>787 可視判定とZバッファを混同してないか?
間単に説明すると、Zバッファ処理をしてる時点でアウチ。
つまり、描画を減らすというのは、
Zバッファ処理するまでも無く、描画しないって判定する事。
2Dで例えると、640×480でやってるときにx,y (1000, 1000)のピクセルを
描画しても無駄だろ?
それと同じ。つまり、一番簡単なカメラ視錐台カリング(ニア、ファーを含む)をして
更に、壁や他オブジェクトに隠れて丸々見えなから描画しないって処理をして
画面に見えるだろ物だけ、描画する。
この判定を、ハード実装してるグラボなんて無いと思ったが…
>>787 実際にやってみな。
手前にドア(板ポリ)つくって、その後ろに100000個くらいの立方体置いたりとか。
WM_PAINTで再描画が必要な範囲を得るには BeginPaint() EndPaint() をいちいち呼び出さないと駄目なんですか?
いちいち自分でチンタラとヘボイ可視判定するよりも いいからビデオカードよお前描いてみろっつったほうが速い場合はあるかもな。
オブジェクト単位の可視判定のコストは、 それを描画しようとするコスト ・テクスチャやマテリアルのセットアップ ・頂点バッファのセットアップ ・描画コマンド送信 に比べれば遥かに小さい
しかし可視判定はきちんと作っておくこと。 漏れはキャラクタの首が見えなくなるバグを作ってしまった。 (オブジェクトごとに判定してなかったのがいけなかったんだが)
>>799 何気に凄い処理ですね。
メッシュを、首と体別々に持っていたのでしょうか?
一つのメッシュを、分割表示なのですか?
気になりますね。自分の場合、そのメッシュのボリューム判定が
少しでも視錐台にかかるなら、
例えメッシュの極一部しか見えないってなっても、描画としています。
数日前までDirectX8.1でやってきたんだけど、 昨日重い腰をあげてDirectX9にしたんですね。 やってることは水面シミュ(KanoさんのデモのTLWaterみたいなやつ)。 時間の大半は水面の更新なのでDirectXとはあまり関係なさそう。 ソースコードも〜〜8って奴を〜〜9に変更するくらいしかしてない。 多分一番大きな変更がシェーダをvs1.0から1.1に書き換えたくらい。 で、そのようなコードなのにDirectX9に移植しただけで速度が半減。。 ほんとに不思議でしょうがないです。 DirectX9に移植したときに重くなった人ってほかにいません?
D3DPRESENT_PARAMETERSのPresentationIntervalを D3DPRESENT_INTERVAL_IMMEDIATEにするとかじゃないすかね?
>>802 ありがとうございました。今やってみました。
なんか微妙にCPU負荷率が落ちてる気がしました。
なんというか、実行するたびに負荷率がだいぶ変わってて、
これだ!という原因がつかみにくいっす。
もうちょい色々テストしてみたいと思います。。
804 :
名前は開発中のものです。 :03/02/22 18:28 ID:pnxUDlK2
俺はマクロ等でいつでもDirectX9/DrectX8でビルドしなおせるようにしてるけど どうもDirectX9が若干重い。 vsync切って 同じ場面で DirectX8で180fpsでるのが 140fps位に落ちる。 知らないうちに高い負荷に変わった何かがあるのか ドライバがこなれてないだけにも思えるし・・・どうなんだろ 環境は WinXp P4-1.8G GeForce3 Det-v41.09
DX9の方が頂点シェーダの切り替えは重そう。 それだけでそこまで重くなるとは思わないが。
あぼーん
>>804 俺もGeForce4Ti4600だがDX8の方が速い。
どうせごく一部除いて出来ることは変わらないのだし、
DX9ハードでない限りはDX8のままの方が良い、という判断。
ちなみに
>>804 に聞きたいことがある。
大抵のDX8->9変更箇所はマクロで対応できるけど、
シェーダおよびその管理部分はどうしてる?
俺は仕方ないから全部書き直したよ、数百個のシェーダを(w
808 :
804 :03/02/23 08:06 ID:jmiZ+vZf
シェーダはインクルードファイルで差異を吸収。 ゲーム側はアセンブル済みの*.vso *.psoを読み込んでる。 DX8用はnvasmでやってる。
>>800 つまり、首から上と首から下の目主をいくつか用意して
組み合わせることによりキャラクタのパターンを増やそうとしたわけで・・・
(2Dのころの考えに支配されていたわけね)
最初のころ空中に首が浮くバグもありました。
DirectInputでキーボードの状態取得するとき GetDeviceStateで直接取得するのと キーボード・バッファからデータを取得するのとありますが どちらを使うべきですか?
VCで float型 sin con計算するときって結局 doubleに型変換してから計算して 再度 float型に変換されるんで効率悪いなあ。
>>810 DirectInputを使いましょう。
GetDeviceStateは遅くなる、…気がしました(笑)。
キーボードバッファから取得する場合、微妙なタイムラグが生じないとも限りません。
814 :
名前は開発中のものです。 :03/02/23 15:30 ID:d99B5g5x
コプロがそうなっているんだからどうしようもないと思うが
質問 P2Pのネットワークゲームをつくたいんですけど、 ロビーサーバって 自前で 専用サーバー立てなきゃいけないんでしょうか? 無料ホームページでCGIを使って作ることはできますか? チャット、IP取得、ゲームグループ管理ができればいいのですが。 その場合は、perl ruby なんかで作成できますか? クライアント側は、WinSock or DirectPlayを 使うつもりです。
>>813 全部 doubleで計算して最後に floatに変換するとちょっとだけ速くなるよ。
もっとも、俺は普段はテーブル使うけど。
float型で返してくれる sinf,cosf,powf,sqrtfを俺はずっと使ってきたのだが、それは間違いだったのか?
sage
あ、書き込めた。 Yahoo規制解除かな?
824 :
名前は開発中のものです。 :03/02/23 23:40 ID:2Vs9uH0j
Managed DirectX 9.0 のドキュメントを読むには、Microsoft Visual Studio .Net が必要です。Managed ドキュメントのインストールの前に Microsoft Visual Studio .Net をインストールする必要があります。 VC++6.0しかないんだが・・・ どうすればいいのだ・・・ マジで教えてください
>>824 Managed DirectX 9.0 ってなに?
リファレンスとはちがうの?
もしそうなら
C:\DXSDK\doc\DirectX9\DirectX9_c.chm
>>824 VC++6.0からManaged DirectX 9.0は使えないから
そのドキュメントを読む必要は無いと思われ
827 :
名前は開発中のものです。 :03/02/24 00:49 ID:45UBPIAm
828 :
名前は開発中のものです。 :03/02/24 02:33 ID:uTM8GmS8
インストールすると.NETのヘルプと合体するんだなこれが
>>827 さん
dx90_sdkextras_jpndocs.exeを実行した後(展開先)に、単独でDirectX9_c.chm(JPN)があると思いますが、如何でしょう?
ちなみに、Visual Studio .NETに統合(関連付け)する場合には、****.msiを実行してインストールすると思ったけど...
あぼーん
>>829 一度、検索をかけてみるのがいいと思われ
>>819 きみのマシンのCPUはなんだね?
この質問の意味がマジでわからないんですけど。
ちなみにP4の2.23ですが。
>>831 さん
> 一度、検索をかけてみるのがいいと思われ
「問題の趣旨を間違っているよ」という意味でしょうか?
>>827 さん
Managed DirectXですが、ヘルプに以下のように書かれていましたので、利用は無理かと...
以下、抜粋です。
> 問題点
> Managed DirectX ドキュメントは、Visual Studio .NET IDE ヘルプ システム経由でのみ利用可能である。
参考までに、多分DirectX9_m.Hx*がヘルプ(chm)相当になると思います。
まぁ、問題点らしいので、DirectX9.1SDK位の時には、直るのではないかと言ってみるテスト(w
>>832 ヘッダファイルぐらい読めよ。
Alphaとかじゃなくてx86つかってるならsinf(x) は (float)sin((float)x)
そもそもfloat型命令がCPUにないんだから仕方がないことなので
気にする必要なんてないがな。
あぼーん
DirectX9 D3DDEVTYPE_HAL は成功するのに D3DDEVTYPE_REF が失敗する。 というか、Device Type が HAL しかない。なぜだろう?
REFが対応してないようなステンシルバッファを指定してるとか?
838 :
836 :03/02/24 23:07 ID:Le/4D7YY
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; d3dpp.BackBufferFormat = D3DFMT_UNKNOWN; d3dpp.Windowed = TRUE; で他は 0 なんですが。 もちろん D3DCREATE_SOFTWARE_VERTEXPROCESSING です。
>>829 さん、その他大勢の方
DirectX9_c.chmありました
ありがとう
とりあえず、これから3時ぐらいまでヘルプ見て勉強します。
初期化、表示取得までどのくらいかかりますかね?
チュートリアルのサンプルコード見ればすぐに出来るよ やることと言えば変数を自分の好みの形に変えるくらいか(藁
841 :
名前は開発中のものです。 :03/02/25 01:21 ID:UKMPV8OC
Microsoft DirectMusicR は、DirectMusic Producer で作成した波形、MIDI サウンド、または動的コンテンツに基づく 音楽サウンドトラックや音楽以外のサウンドトラックの両方に使える、完全なソリューションである。 ソ、ソリューション?
>>836 普通にインストールしただけだとリファレンスラスタライザは
無効になってるよ。
| | | | | |_____ | | | ̄ ̄ ̄ /| | | | / /| | /\ | /|/|/| | / / |// / /| | / / |_|/|/|/|/| | / / |文|/ // / ∧∧ |/ /. _.| ̄|/|/|/ /⌒ヽ) スデニオワッテタヨ・・・ /|\/ / / |/ / [ 終 _] ∧∧ /| / / /ヽ 三____|∪ /⌒ヽ) クソスレダッタネ・・・ | | ̄| | |ヽ/l (/~ ∪ [ 了 _] | | |/| |__|/ 三三 三___|∪ | |/| |/ 三三 (/~∪ | | |/ 三三 三三 | |/ 三三 | / 三三 |/ 三三
844 :
844 :03/02/25 16:25 ID:5gCUJNuo
質問です 中学入学祝にGF4とHTPen4を買ってもらって VS 6.0Proもお年玉で買って何かを作ってみようと思い 簡単な3Dオブジェクトを動かすだけのコードを書いてみたくなりました。 完全に初心者なのでちょっとわからないのですが 一般的にDOOM系のゲームに出てくる3Dオブジェはどのように書かれているのでしょうか? 友人に聞いたところDirectXのメッシュファイルを作成してテクスチャを張るのが一番簡単と聞いたのですが このメッシュファイルの作成方法がわかりません 何かツールを使うのでしょうか? 初心者なので見当違いな事を言ってるかもしれませんがよろしくお願いします。
>>844 >初心者なので
初心者ならこの言葉は使わないほうがいいと思うよ。
レス付ける人にとってはあなたが初心者か否かってことは関係ないから。
風当たりが強くなるだけ。
847 :
844 :03/02/25 17:07 ID:5gCUJNuo
>>845 どうもすみません、もう少し自分で調べるべきでしたね
>>846 なるほど・・・
これから気を付けます。
>>844 まぁそうあせらずもう少しゲームして遊んでなさい。
その内どういう仕組みで動いてるのか分かってくるから。
849 :
名前は開発中のものです。 :03/02/25 17:10 ID:Op/TV79I
初心者なので、と書かなかったらもっとひどいことを言われると思うが
>>846 >>844 「3Dオブジェクトを作る」という言葉の意味がいまいち通じてないのだが、
「.Xファイル(DirectXで使うメッシュ)を作る」という意味なら、
メタセコイアなどのモデラを使って出力しなさい。
「すでにある.Xファイルを空間内に配置し、表示する」という意味なら、
そういうサンプルを穴が開くほど読むように。
DirectX9あたりのSDKをダウンロードしてくれば、そういったサンプルは
付いているぞ。
850 :
849 :03/02/25 17:17 ID:Op/TV79I
・・・・ていうか、漏れもわけの分からんこと書いてるな。
斜め読みでレス書いたよ。スマソ
>>844 とりあえず、幾つかの無料のモデラでも.Xファイルは出力できるから、
それでも使うといいよ。VisualStudioそのものにはそういう機能は全く無い。
んで、それらを自力で表示したくなったら、DirectXのサンプルを読め。
851 :
846 :03/02/25 17:40 ID:0G2Uk19e
>>844 中身について何も触れてなかったスマソ。
中学入ったばっかだと三角関数・ベクトル・行列とか
わからんだろうからゲーム作りたいなら先に
2Dでゲームの仕組みの方を勉強した方がいいと思う。
ただ3Dで動かしたいってだけなら最初は板を表示するところから
やった方がいんでないの。
あとは
>>849 と同じ。
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□ □□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□ □□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□ □■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□ □□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□ □□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□ □□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□ □□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□ □■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□ □□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□ □□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□ □□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□ □■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□ □■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□ □□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□ □□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
845Gのグラフィックス性能はすばらしいですな。 ほとんどの機能がOFFになりやがるので、対応させるのにかなり苦労しますよハッハッハ。 テクスチャも1枚だけだしストリームも1つだし。 ところで「終了」の連打が一気にあぼーんしましたな。削除人さんご苦労様です。
∧ ∧ ∧ ∧ /⌒~~~⌒\ ( ,,) (,,・Д・) / ( ゚>t≡ )y─┛~~ 〜(___ノ 〜(___ノ ,γ_ (_ ノγ U ∩_∩) THANK YOU 2ch ┌───────┐ \ α___J _J and (| ● ● | ヽ / ̄ ̄ ̄ ̄\ GOOD-BYE 2ch WORLD! /.| .┌▽▽▽▽┐ .|____|__||_| )) / ● ●、 ( ┤ .| | .|□━□ ) |Y Y \ またどこかで会おうね \. .└△△△△┘ .| J |) |.| | .▼ | | \あ\ | ∀ ノ | \/ _人|∧∧∩゛冫、 .∧_∧ | \り.\ . | - ′ | _/)/)/( ゚Д゚)/ ` . (´∀` )..ヽ(´ー`)ノ \が\ . | ) \ / 〔/\〕 U / ∩∩ ( ) (___) \と.\ .|/ | | | c(*・_・) | |ヽ(´ー`)ノ_| | | | |〜 /\.\う\| (-_-) (__)_) UUUU /∪∪ (___)(_(__) ◎ ̄ ̄◎─┘ .└──┘.(∩∩)
855 :
名前は開発中のものです。 :03/02/27 03:32 ID:kDkZ+grY
DirectX9をインストールしてしまったのですがアンインストールする方法はないでしょうか? 以前のDirectX8.1に戻したいのです。 OSはwindowsXP homeです。 DirectXアンインストーラーはXPに対応してないと書いてあったので・・・。 いったいどのようにすれば宜しいのでしょうか? OSのクリーンインストールorデータバックアップなどは出来ない状態です。 お知恵をお貸しください・・・!
>>842 リファレンスラスタライザを有効にするにはどうしたらよいのでしょうか。
ユーザー環境で Redist\DirectX9\dxsetup.exeでインストールするだけでは駄目なんですよね?
o. /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ / / このスレは無様に . / / 終了いたしました / / ありがとうございました / / / / モララーより / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/ ∧_∧ / /∧_∧ ( ・∀・) / /(・∀・ ) ( )つ ⊂( ) | | | | | | (__)_) (_(__)
DirectX7を手に入れたいんだけどどこにありますか?
861 :
winmainを隠蔽してみた :03/02/27 09:51 ID:JfZFQlLW
directxをインストールしたばかりなんだけど、 関数のパラメーターとか自動で表示されるやつって directxには適用されないの?
何の話だ?
863 :
winmainを隠蔽してみた :03/02/27 10:07 ID:JfZFQlLW
たとえば、 nanntara-> と入力したときに、メンバリストがでない。 Direct3DCreate9( といれたときに、引数がでないとか。
d3d9.hとかをプロジェクトに追加しる
865 :
winmainを隠蔽してみた :03/02/27 10:14 ID:JfZFQlLW
メンバは出たけど、引数の方は出てこなかったッす、、、
866 :
名前は開発中のものです。 :03/02/27 12:37 ID:lgKStMoo
>>855 ランタイムは無理だけど、SDKは9と8.1別のフォルダに入れれば共生できるんちゃうかな。
>863 それやるとメチャ重くならない? 1回やってみたんだけど、重すぎて、俺はやめたよ。
>>867 >それやるとメチャ重くならない?
そうかな、全然重くないけど・・・
DirectX関係のヘッダをプロジェクトに全部追加してるよ。
うちは、Pen4 2GHzで、Win2000 + VC6.0だけど。
そっちは?
俺は867じゃないが…… PenII400/320MB/Win2000/VC6だけど重いと感じたことはないよ。 ncbファイルを消したりclwファイルを消したりしてVC起動後にリビルドすると直ってたりするとかしないとか。 ヘッダファイルをプロジェクトに追加→いったん保存とかいう手もあるらしい。 全部未確認(´Д`;
DirectX9ではリファレンスデバイスがデフォルトでつかえないなら DirectX8で CreateDeviceでやってた "HAL作れなかったら REFで"ってテクニックが意味ないわけだ。
そもそもREFで実用的速度が出せるのかかなり疑問なので、 X8以前でも潔くエラーメッセージ出して終了するのがよろしいかと
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□ □□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□ □□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□ □■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□ □□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□ □□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□ □□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□ □□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□ □■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□ □□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□ □□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□ □□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□ □■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□ □■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□ □□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□ □□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
873 :
867 :03/02/27 16:16 ID:58ylrgvU
>ncbファイルを消したりclwファイルを消したりしてVC起動後にリビルドすると直ってたりするとかしないとか。 >ヘッダファイルをプロジェクトに追加→いったん保存とかいう手もあるらしい。 おお! 良い事を聞いた。 なんか問題が発生して重かっただけなのねん。 早速ヤッテミマス
DirectX8でもデフォルトではREFなんて使えないが?
>>857 レジストリの
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Direct3D\Drivers の
EnumReferenceの値をゼロ以外の DWORD 値に設定する
C#とManagedDirectXでプログラムかいて公開したんだが。 「動きません」のメールが大量に来やがる。 Direct X9と.NETフレームワークの両方がインストールされている必要があるためなんだろうけど、 ここまで浸透していないとは思わなかった。
Xファイルには面法線という項目がありますが、面法線ってDirectXでは頂点法線から割り出して使うから 意味ないですよね?
878 :
名前は開発中のものです。 :03/02/28 01:40 ID:KEn2AUec
うん
何で意味ないの? 面法線使いたいときは必要じゃん。
>>877 それを言うなら、頂点法線だって
ポリゴンを形成する頂点座標から割り出して使うから意味無いよですよね?
(フラット、グローシェーディングでも)
ってなるだろ、普通に使うならXfile読み込み処理。
使わないなら、自前で割り出す。それだけだろ。
881 :
名前は開発中のものです。 :03/02/28 02:02 ID:tSkXT/sy
計算で割り出せないような使い方をしたいときは必要。 あるいは、計算する時間が惜しいか、だな。
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□ □□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□ □□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□ □■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□ □□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□ □□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□ □□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□ □□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□ □■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□ □□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□ □□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□ □□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□ □■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□ □■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□ □□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□ □□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
883 :
名前は開発中のものです。 :03/02/28 03:16 ID:a4NM2ktj
XFILE自体必要ない。 と、思う。 貧相な感じだし。
たしかに製品に*.Xファイルが入ってると萎えるよな。
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□ □□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□ □□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□ □■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□ □□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□ □□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□ □□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□ □□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□ □■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□ □□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□ □□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□ □□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□ □■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□ □■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□ □□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□ □□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
>>880 頂点法線ってポリゴンの頂点座標から割り出せるの?
887 :
名前は開発中のものです。 :03/02/28 07:55 ID:LjVvJzq/
うん
どうやって割り出すんですか?法線が2つに絞られたところから教えて下さい。
889 :
名前は開発中のものです。 :03/02/28 08:12 ID:6LX7AMhK
自分が関わってる面のホウセンをすべてたして正規化。 ってやってるけどちがう?
でもそれって面法泉がいりますよね。それだと頂点法線がないと出ないって 書いてありましたけど・・・。
891 :
名前は開発中のものです。 :03/02/28 08:28 ID:d+1j6U8A
? 面のホウセンは頂点からだして、頂点のホウセンは面からだすと思われ。
面から頂点法泉を出すのと頂点座標から面法泉割り出すのとでは法泉が2つ出ますよね。 裏表ってどうやって割り出すんですか?
893 :
名前は開発中のものです。 :03/02/28 08:57 ID:JnJywKSZ
面ホウセンから頂点ホウセンをだすんでした。 すみません
質問! voodooってD3Dの初期化のやり方が違うんすか? sdkのサンプルをビルドしても初期化できないっす。 create deviceがnot availableを返すんですけど。 引数が違うんでしょうか?
895 :
名前は開発中のものです。 :03/02/28 09:47 ID:z2gmOGX9
896 :
名前は開発中のものです。 :03/02/28 10:18 ID:BcmXYmEO
>>894 DirectXのバージョンくらい書いとけ。
せめてvoodooドライバがどのDirectXまで対応してるかドキュメント読め。
初代VoodooでもOmega DriverならDirectX8いけるんだっけ? 詳しい人いる?
voodoo3と、directX 9.0です。 ドライバが対応してないって事はないんですよ。 サンプルプログラムは動かないんですけど、 AppWizardで作ったやつは動くんですね。 だから、初期化のコードが問題だとおもうんですけど。 voodooは他のビデオカードと違うって言うのをどっかで見たことがあるんで。 とりあえず、CreateDeviceの引数をAppWizardのと同じにしただけだと動かないです。
Voodoo3は16bitカラーしか使えないのと、テクスチャが256*256以下しか 使えないくらいしか制限は知らないな。 Voodoo1/2になるとまた話は別なんだが。 っていうか、Voodoo3なんて燃えないゴミの日に出した方がいいよ。
899 :
982 :03/02/28 13:24 ID:QQP01RY2
質問です。 *.xファイルを実行ファイルに埋め込みたいのですが これに詳しい解説サイトは無いですか? あと、DX9SDKで作ったプログラムはDX8までの機能しか使って無くても 利用者はDX9のランタイムを入れないと駄目なのでしょうか? 初歩的な質問でスマソ・・・
900 :
名前は開発中のものです。 :03/02/28 13:38 ID:noUxi+c2
「データー調査」の信用情報機関
電話番号から住所 年収 財産 結婚暦
暗証番号 旧住所〜新住所 ブラックリスト
生存 行方 本名 などなど
初恋の人 思い出の人に逢えるかも・・・・?
http://www.tyousa.com
>>899 サイトは知らないけどリソース(.rc)にバイナリデータを作って、
Xファイルをバイナリで開いて全コピー&ペースト。
バイナリリソースデータの作り方は、リソースの追加>カスタム>
リソースの種類を例えば"XFILE"にする。
リソースデータへのアクセスはWinAPIのLoadResource、FindResource、
MAKEINTRESOURCE あたりを調べてみよう。
D3DX使うなら、D3DXLoadMeshFromXResourceなんかをサンプルから
検索すればいいかも。
あとインクルードファイルに"d3d8.h"とかを使ってるならランタイムは8で
いいはずです。
ホウセンとカタカナで書かれると、いちいち呂布が頭に浮かぶんだよな。 どうでもいいけど。
面の法線の求め方だけど、 面を定義する頂点ベクトルを時計回りにa,b,cとすると (b-a)と(c-a)の外積(D3DXVec3Cross関数など)で求められる・・・ 気がする((b-a)と(c-a)の順番は逆かも知れない)。
904 :
982 :03/02/28 14:24 ID:QQP01RY2
>>901 どうもありがとうございました。
これで安心してSDK9を入れられます。。
メッシュって遅いわりにカスタマイズが効かないので好きになれないんだが みんな結構使ってんの?メッシュとシェーダって併用可能?
o /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ / / このスレは無事に / / 終了いたしました / / ありがとうございました / / / / モララーより / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/ ∧_∧ / /∧_∧ ( ・∀・) / /(・∀・ ) ( )つ ⊂( ) | | | | | | (__)_) (_(__)
907 :
名前は開発中のものです。 :03/02/28 16:30 ID:7/pJFALY
>>899 詳しいも何もリソースに組み込めばふつーに読めるだろう。
∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ・∀・) < 今がその時だ!!逝くぞ2号!! ./ つ つ \_____________ 〜(_⌒ヽ (´⌒(´ .)ノ `J≡≡≡(´⌒;;;≡≡≡ (´⌒(´⌒;; OK!!わかってるぜ1号!!  ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ (´´ ∧∧ ) (´⌒(´ ⊂(・∀・⊂⌒`つ≡≡≡(´⌒;;;≡≡≡  ̄ ̄ (´⌒(´⌒;; ズザーーーーーッ o /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ / / このスレは無事に / / 終了いたしました / / ありがとうございました / / / / モララーより / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/ ∧_∧ / /∧_∧ ( ・∀・) / /(・∀・ ) ( )つ ⊂( ) | | | | | | (__)_) (_(__)
>>905 DX9なら普通に併用可能。
DX8ではDrawPrimitive使わないと駄目。
>>903 それが、頂点法線の求め方。
その話で言うと、頂点aの法線の求め方。
後、裏表なんて言ってる方は、最初からやり直しですよ。
右手系か、左手系と、頂点の並びの順番で、裏表は決定できます。
でだ、皆勘違いしてるようだが、先ず形成するポリゴンから頂点の法線ありき、なの。
そして、共有頂点の法線処理をして、最終的頂点法線から面法線を求めるのですよ。
みんな逆に考えてないか?Xfileに法線情報があるからって
法線ありきじゃ無い。頂点で形成するポリゴンがないと法線は求まりませんよ。
(ポリゴンとは面の意味では無く、頂点の並びと言う意味な)
フラットシェード、グローシェード、フォンシェードって分らないだろ?
そんな事言ってるようじゃ。
>>910 面と頂点の法線、言ってることが逆に思えるんだが・・・
DirectX9のヘルプにはこうある
面法線ベクトルと頂点法線ベクトル
--------------------------------------------------------------------------------
メッシュの各面には、垂直の法線ベクトルがある。法線ベクトルの方向は、頂点が定義されている
順序と、座標系が左手座標系か右手座標系かによって決まる。面の法線ベクトルは面の前面から離
れる方向に向く。(この文のあとに図解があり、頂点法線ベクトルと書いてあるがミスプリだと思う)
Direct3D は、グーロー シェーディング、ライティング エフェクト、テクスチャ エフェクトの
制御に頂点法線を使う。
912 :
名前は開発中のものです。 :03/03/01 01:23 ID:1fMHGpBA
おお!まともそうな方が。 この機会にちと質問なんですが、 頂点の順番がバラバラのモデルの表裏判定のやりかたしりませんか? ある面をひとつとって、そいつのホウセンを基準にして、 となりの奴から連鎖的に面のホウセンを決めてるんですが。 この方法だと裏か表かのにたくが全く手がかりありません。 誰かタスケテ
913 :
912 :03/03/01 01:38 ID:7K3Mhdwx
すいません頂点の順番がバラバラというのは一つの三角形を構成する頂点の並びがということです。
>>912 頂点の順番がバラバラというのがどういう状態かわからないけど・・・
面を定義する頂点ベクトルを時計回りにa,b,cとすると
(b-a)と(c-a)の内積(D3DXVec3Dot関数など)が正の数なら
って感じかな・・・自信はないw
915 :
912 :03/03/01 02:00 ID:JknjQlEm
頂点がバラバラというのはCWで描いてもCCWで描いても ホウセンが逆方向をむいてしまう三角形が存在するということです。 まわりの人間からは不可能といわれてしまいました。 うう、モデル1000個以上あるのに・・・ 目で確認するんか。笑
>>910 xファイルにある面の頂点配列は順番込みだから法線情報は求まる。
実際、面法線リストを削除してもMeshViewで読めるし。
>>911 面法線は結局どこで使うんだ?
>>912 頂点の順番をバラバラじゃなくする。
>>911 ミスプリじゃないよ。
法線ベクトルは、方向を示すものであって
位置ベクトルとは違う。
ポリゴンの面から伸びてるが、あれはどう考えても頂点ベクトル。
ポリゴン一枚だけだから、フラットシェードと同じ考え。
頂点の法線を、面の法線とする。
つまり、あのポリゴンの面法線は、頂点の法線を求めて
それ(頂点法線)を、面法線とするから、ああ書いてある。
つーか、英語版読めよ。NormalVectorってしか書いてない。
訳者が、わざわざ3D理論を分らない人用に、頂点ベクトルってしてくれたんだろうが、逆効果だな。
そもそも外積を式じゃ無く、理論で分っているのかな。
二つのベクトルに、互いに垂直になるベクトルが求まるんだよ。
外積は不可逆だから、かける順序に意味がある。これがポリゴンの裏表。
因みに、単位化したベクトルで外積を取れば、単位ベクトルが求まる。
これが意味する物は、そのままのベクトルで外積から求めたベクトルの大きさはポリゴンの面積の大きさを表す。
話は元に戻して、二つのベクトルとは、頂点と頂点を結んだベクトルだ。
911は自分で、(b-a)×(c-a)って、頂点か算出したベクトルで外積取った式を書いてるじゃん。
で、共有頂点が無い一枚ポリなら、それが面の法線だろ。
919 :
名前は開発中のものです。 :03/03/01 02:14 ID:KboLdtOH
DirectX8.1SDKを使用してゲームを開発してるのですが DXで描画中にダイアログボックスを表示しても表示されません。 しかし、GDIを使用して描画している時は普通に表示されます。 DirectX使用時にダイアログボックスを表示させるにはどのようにしたらいいでしょうか?
凸のモデルなら外側が表だってわかるんじゃないの? 1000個のうち凸のモデルがほとんどなら、やってみると作業量減らせるかも。 ちゅーかなんでそんなことになっちゃったのよ
>>912 >>915 ですから、貴方も3Dが分ってない。
左手系だと時計周り、右手系だと反時計周りで形成されるポリゴンで
裏表が決定されるのです。理論で決まっている事を
無視して裏表を自分の理論で求めてはいけません。
つまり、裏表の判定をして、自分に都合の悪い裏表は逆にするって処理がしたいのか
判定がしたいだけなのか、言ってる事から分らないんですよ。
ですから申し訳ないが、分ってないと決め付けました。
922 :
912 :03/03/01 02:35 ID:jjke4YoR
凸は串さしてはじめもしくは終わりにささった面のホウセンを優先的にやってます。 はじめとおわりが食い違うようなものは危険物として隔離しておいてます。 しかし、これではあと300個ぐらいどうにもなりません。 なんでこうなっちゃったかは私がききたいぐらいです。 てか、なんのデータなんでしょうね。
923 :
912 :03/03/01 02:49 ID:mh+YM4On
おそらく空間にある適当な点を三つずつまとめただけのデータな感じ。
>>912 基本を書くぞ。
右手系なら、三角形を形成する頂点の並ぶ順番と、
(a,b,cの順番で形成されるのか、a,c,bで形成されるのか)
右手で同じ方向になぞった時に親指側が表。
左手系は、左手で同じ事をする。
モデルとはMeshで良いのか?
Meshとは、閉じた空間を形成するポリゴンモデルの事。
つまり、三角形の裏表と、閉じた空間に対しての裏表を
混同してるとしか思えない発言しかしてませんよ?って事だ。
閉じた空間に対して、法線が外側を向く様に
変換するアルゴリズムが知りたいのか?可能だぞ。
LightWave使いなもんで、
LightWaveの話で悪いが、その機能があるからね。
ぱっと、アルゴリズムは考え付かないが、
自分なら、描画して(任意の回転、平行移動可能)
ポリゴンクリッピングして、指定のポリゴンを裏返すって
ツール作る。
925 :
名前は開発中のものです。 :03/03/01 03:31 ID:UIOVZYpz
CWでもCCWでも矛盾が起きる物体はそんなやわな方法じゃ無駄だと思われ。 DXF?
まあ、ココはDirectXスレだから言ってもしょうが無いけど 描画エンジン以外使わないで居るもんで つまり、自前でデータ読み取り、データ変換、データ構造、データ処理や算術演算 勿論、独自Mesh形式だし、その位やってれば只の、アルゴリズム処理→データ変換だろ。 つーか、LightWaveでクリック一発で出切るんだから DirectXの用意した環境、関数しか使ってない奴ならともかく 1日、2日の仕事だろ。そんな物。
数学的な話題で盛り上がってるところ申し訳ないんだが、 フルスクリーンプログラムが終了した後にウィンドウが左上に集まってしまう現象を 対策するプログラムの手段って何かないでしょうか? SetWindowPosとか何かを駆使して対策取れないかなぁ…
928 :
名前は開発中のものです。 :03/03/01 03:45 ID:3aUNx0UC
君の方法を聞きたい
929 :
名前は開発中のものです。 :03/03/01 03:50 ID:SCvhJiOz
亜斗武
1)適当に一つ三角形ABCを選択してそいつを基準に。 2)その三角形と辺を共有している三角形ABDを探し出す。 3)そいつの頂点順序がABDだったらDBAにしてやる。 4)あとは再帰的に。 隣接する三角形の頂点の並び順を一定方向にするっていうだけっす。 ていうか簡単なアルゴリズムすぎて逆に怖すぎるんですけど余裕で間違ってたりする?
>>930 は
>>912 からのお話へのレスです
>>928 正直検討つかないんで… 真面目に分かりません。
自分AoKよくやってるんだけど、nVidia系VGAのときは大丈夫で、
最近ATi系VGAにしたらその現象が起きるようになってしまった。
って訳でドライバも原因の一つになってるような気もします。
ちなみにDia2とかだと、GFだろうがRADEONだろうが問答無用でそうなる。
DPSっていうプログラム(対策するプログラムらしい)を入れてみたんだが、
AoKはそれで直ったけどDia2はそれでもダメでした。
o /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ / / このスレは無事に / / 終了いたしました / / ありがとうございました / / / / モララーより / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/ ∧_∧ / /∧_∧ ( ・∀・) / /(・∀・ ) ( )つ ⊂( ) | | | | | | (__)_) (_(__)
EnumWindowsでウインドウを調べ上げて位置を取得して保持。 終了時に全てのウインドウを元の位置に戻す。
>>919 DX8.1では無理だと思ってくれ(できなくもないが)。DX9なら可能。
というわけで移行を勧めるよ。
>>920 全て両面ポリゴンで扱うモデラだと、出力するデータの面の向きが
統一されてないことが多いよ。このスレにはそんなモデラの存在すら
知らない奴が多いようだが。
>>934 >全て両面ポリゴンで扱うモデラだと、出力するデータの面の向きが
>統一されてないことが多いよ。このスレにはそんなモデラの存在すら
>知らない奴が多いようだが。
そんな、バグまがいのソフトなんて知る必要も使う必要も無い。
つーか、両面ポリでも裏表はある。
それを統一しなのは、ソフトじゃなくて”デザイナー”(モデリングする人間)だと思うが?
そのソフトのデータ出力分ってるの?
>>934 両面でもテクスチャを張れば一発で分かるが、そのモデラーの具体名は?
とりあえずニゲルナヨ?
∧ ∧ ∧ ∧ /⌒~~~⌒\ ( ,,) (,,・Д・) / ( ゚>t≡ )y─┛~~ 〜(___ノ 〜(___ノ ,γ_ (_ ノγ U ∩_∩) THANK YOU 2ch ┌───────┐ \ α___J _J and (| ● ● | ヽ / ̄ ̄ ̄ ̄\ GOOD-BYE 2ch WORLD! /.| .┌▽▽▽▽┐ .|____|__||_| )) / ● ●、 ( ┤ .| | .|□━□ ) |Y Y \ またどこかで会おうね \. .└△△△△┘ .| J |) |.| | .▼ | | \あ\ | ∀ ノ | \/ _人|∧∧∩゛冫、 .∧_∧ | \り.\ . | - ′ | _/)/)/( ゚Д゚)/ ` . (´∀` )..ヽ(´ー`)ノ \が\ . | ) \ / 〔/\〕 U / ∩∩ ( ) (___) \と.\ .|/ | | | c(*・_・) | |ヽ(´ー`)ノ_| | | | |〜 /\.\う\| (-_-) (__)_) UUUU /∪∪ (___)(_(__) ◎ ̄ ̄◎─┘ .└──┘.(∩∩)
938 :
名前は開発中のものです。 :03/03/01 15:54 ID:kTpKLr9W
934はにげだした
きっとワイヤフレーム用のデータだんったんだよ。
/ヽ /ヽ / ヽ / ヽ ______ /U ヽ___/ ヽ | ____ / U :::::::::::U:\ | | /○ ○ ::::::::::::::| | | このスレ | ├──┤ U :::::::::::::| オワッチャッタ・・・ | | 終了い..|U | | ::::::U::::| | | ありがと ..| └―┘ U.....:::::::::::::::::::/ | |____ ヽ .....:::::::::::::::::::::::< └___/ ̄ ̄ :::::::::::::::::::::::::| |\ | :::::::::::::::::::::::| \ \ \___ :::::: 〜 終 了 〜
六角大王という定番があるじゃないか>面の向きがバラバラ
>>941 六角ってそうだったのか!
俺は912じゃないけど、ちょっと気になってたナゾが解けた気がする。ありがとう
>>936 = ID:XyiRWfFs はアホでした。完
6角つかったことなかったけど糞だったんだな
六角わけわからん。 俺はまともに形すら作れない
>935 934>統一されてないことが多いよ。このスレにはそんなモデラの存在すら 934>知らない奴が多いようだが。 935>それを統一しなのは、ソフトじゃなくて”デザイナー”(モデリングする人間)だと思うが? 935>そのソフトのデータ出力分ってるの? そーいや中堅メーカーに居た頃、 マンピーだかミソピーだかいうソフツで妙なデータを作ってくる、自信過剰な女デザイナーがいた。 sin,cosを酷使してモデルを作ったとか言ってたのだが、、 世間にはいろいろなモデラーがあるなと思った22の早春。
頂点バッファもテクスチャもメインメモリ上にとればデバイス消失しなくなりますか?
リソースをメインメモリーにとることと、デバイスの消失は無関係
949 :
912 :03/03/02 01:23 ID:alKpiLZ4
( ̄□ ̄;)!! そうだったんだ。 面の向きって統一されてないことって結構多いんだ。 仕事だからにげらんないしノイローゼになるよ。 あとねそんな馬鹿なって思ってる人へ いまねゲーム会社も色んな分野に手をだしてるから 会社入ってもor移っても思い通りの仕事は回って来ないかもよ。 まさかそんなものがってカルチャーショック多すぎ。 例えば頂点の数だけで100MBこえちまうようなデータでその用途に裏も表もないなら 確認用のホウセンなんて邪魔でしかない。
950 :
912 :03/03/02 02:32 ID:Y7rDLHtY
あっそうだ。 これも苦労したからかいとこ。 同じ苦労をしょってしまった人の為に。 UV座標もないときはないです。 なんでも、UV座標でやると頂点数が増えると役に立たないからだそうです。 計算方法のインデックスと式の係数があるだけです。 私がなんとかできたのが平行投影と円柱と極座標のはりかただけでした。 難しいですね。
/ヽ /ヽ / ヽ / ヽ ______ /U ヽ___/ ヽ | ____ / U :::::::::::U:\ | | /○ ○ ::::::::::::::| | | このスレ | ├──┤ U :::::::::::::| オワッチャッタ・・・ | | 終了い..|U | | ::::::U::::| | | ありがと ..| └―┘ U.....:::::::::::::::::::/ | |____ ヽ .....:::::::::::::::::::::::< └___/ ̄ ̄ :::::::::::::::::::::::::| |\ | :::::::::::::::::::::::| \ \ \___ :::::: 〜 終 了 〜
画面の更新のせいでマウスカーソルがちらついてしまうのはどうしようもないんでしょうか。 SDKのサンプルとかでもちらついているんですが。
>>952 自前で描画するとちらつかない。(当たり前か)
マウスの形状を特殊な物に変更せず、ハードウェアで描画される物を使う 標準状態でちらつくのならビデオカードが腐っている
前に試したときは ATi のは特に問題なかったけど S3 と Matrox のカードは画面のプロパティで ハードウェアアクセラレーションを少し下げないと ちらついてました。
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| | ここでおしまい | |________| ∧∧ || ( ゚д゚) || / づΦ
ときにそろそろ次スレかと。
>>912 以下、面の向きがどうのいってる奴は、全然分ってない。
頂点の並びで、向きが決定されるって何度言えば分るんだ?
之は、DirextXだろうが、OpenGLだろうが、Mayだろうが、LigthWaveだろうが
関係無い、3Dの前提なの。(あるのは、左手系、右手系のZ軸の向き)
それを、管理できないソフトウェア(それを扱う人間含む)は
三流以下、おとなしくDirectXのフォーマットでやってなさい。
因みに、
1000byte = 1kbyte
1000kbyte = 1Mbyte
100Mbyte = 100000000byte
まあ、テキストで扱ってる事は無いとして(テキスト扱いなら、情報Sizeの大きさを出す時点でDQN)
各、XYZ情報をfloat型つまり、4byte * 3 = 12byte
でカンマあたりで区切っていたとしても +2byte
1頂点あたり14byte使用としても、700万頂点オーバー
三角ポリゴンで換算すると、233万ポリゴンオーバー
マジで言ってるなら、是非、是非、
御社のお名前を知りたい。
そんなバリバリの会社なら転職したいです。
3Dの人たちは10進で数える文化があるのか。 ちょっと勉強になった。
ネタだよな?
>>959 細かい誤差はどうでもいいんだろね。不思議だけど。
918は最近外積を学校で習ったばかりの工房
1024byte = 1kbyte の事いってるか?細かい事言うなよ。 今の時代のハードで、912は衝撃の、200万ポリゴンモデルを仕事で使っているんだぞ? 230万ポリだろうが200万ポリだろうが、漏れは どちらも手が出ないレベルの、ちんけな仕事場です。 30万ポリが、どうでも良く感じられる200万ポリゴンのモデルですよ?
>>958 >まあ、テキストで扱ってる事は無いとして(テキスト扱いなら、情報Sizeの大きさを出す時点でDQN)
>各、XYZ情報をfloat型つまり、4byte * 3 = 12byte
>でカンマあたりで区切っていたとしても +2byte
バイナリなのにカンマで区切るのか?
>>962 そうなの?
最近の高校数学要項では、外積あるんだ。
漏れの時代は、大学の線形代数からだったよ。
ゆとり教育とやらの、しわよせか?
ちょっと質問 たとえば、RPGのマップの頂点データをVertexBufferに入れておいて、 MAPに橋がかかっている場合のIndexBufferと MAPに橋がかかっていない場合のIndexBufferを作っておけば、 それらを切り替えることによって橋がかかったりするような 2Dのころのパレットみたいな処理が出来るって解釈でよろしいのですか?
うん、そういう解釈でいいと思う。 でも、複数持つくらいだったら、 使用範囲を切り替えたほうが経済的かもしれんが。
>>966 DirectXの場合は、座標変換をソフトウェアで行うと常に全ての頂点を
座標変換してしまうから、その方法はやめた方がいいかも。
(Indexで参照していない頂点も変換する)
単純に橋があるかないか程度なら問題には、大した問題ではないけれど。
それよりも、そういう動いたり消えたりするオブジェクトは、敵やアイテム
と同じようにマップとは独立した物として扱った方がいいよ。
2Dの頃で例えると、地形はBGで乗ると落ちる床はスプライトみたいな感じ。
970 :
名前は開発中のものです。 :03/03/03 01:49 ID:zO95E7dP
CoUninitialize を呼び出して COM を初期化する必要がある。 CoInitialize を呼び出したら、対応する CoUninitialize を呼び出さなければならない。 COM を明示的に初期化する必要があるアプリケーションでは、スタートアップ ルーチンで COM を初期化し、 クリーンアップ ルーチンで初期化されていない状態に戻すのが一般的である。 ヘルプのCOMオブジェクトの作成の分なんですが、 1行目は、initializeなのではと思うのですが、どうなんでしょうか?
o /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ / / このスレは無事に / / 終了いたしました / / ありがとうございました / / / / モララーより / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/ ∧_∧ / /∧_∧ ( ・∀・) / /(・∀・ ) ( )つ ⊂( ) | | | | | | (__)_) (_(__)
973 :
名前は開発中のものです。 :03/03/03 09:33 ID:Q0URcY8K
>>963 おそらく912が言ってる100MB近くのデータってのは、モデル一体についてじゃなくて、
パックされたデータのこと言ってんじゃないの?
>>973 真面目に考えるなって。
頂点データが与えられて、それの裏表が関係無いって言ってるんだぞ?
どう考えても、3Dを仕事にしてるとは思えない。
裏表は純然と在って、それを使わないのは自身や会社の勝手だが
そのデータがもともと表裏の統一が為されてないデータとは思えない。
自社コンバーターなりで、飛ばしちゃってるじゃんないの?
そんなデータにしがみついて云々してるなんてナンセンス。
それ以外に方法が無いなら。責任問題物だろ。
こんな3D分って無い奴に、データ修正させようとする会社在る訳ない。
そろそろ次スレの必要を感じますが。 うちからは作れないので誰か作りませんか?
∧ ∧ ∧ ∧ /⌒~~~⌒\ ( ,,) (,,・Д・) / ( ゚>t≡ )y─┛~~ 〜(___ノ 〜(___ノ ,γ_ (_ ノγ U ∩_∩) THANK YOU 2ch ┌───────┐ \ α___J _J and (| ● ● | ヽ / ̄ ̄ ̄ ̄\ GOOD-BYE 2ch WORLD! /.| .┌▽▽▽▽┐ .|____|__||_| )) / ● ●、 ( ┤ .| | .|□━□ ) |Y Y \ またどこかで会おうね \. .└△△△△┘ .| J |) |.| | .▼ | | \あ\ | ∀ ノ | \/ _人|∧∧∩゛冫、 .∧_∧ | \り.\ . | - ′ | _/)/)/( ゚Д゚)/ ` . (´∀` )..ヽ(´ー`)ノ \が\ . | ) \ / 〔/\〕 U / ∩∩ ( ) (___) \と.\ .|/ | | | c(*・_・) | |ヽ(´ー`)ノ_| | | | |〜 /\.\う\| (-_-) (__)_) UUUU /∪∪ (___)(_(__) ◎ ̄ ̄◎─┘ .└──┘.(∩∩)
必死な人がいるな。
必死埋め。
\∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ,,、,、,,, / \〇ノゝ∩ < 1000とり合戦いくぞゴルァ!! ,,、,、,,, /三√ ゚Д゚) / \____________ ,,、,、,,, /三/| ゚U゚|\ ,,、,、,,, ,,、,、,,, ,,、,、,,, U (:::::::::::) ,,、,、,,, \ ぶーぶーぶー / //三/|三|\ タリー ∪ ∪ (\_/)タリー タリー まだ早えよ〜 ( ´Д) タリー タリー / つ (\_/) (\_/)ノ⌒ヽ、 (_(__つ⊂(´Д`⊂⌒`つ(´Д` )_人__) ))
982 :
982 :03/03/03 23:24 ID:MpW4oaEi
982
983 :
名前は開発中のものです。 :03/03/03 23:26 ID:zO95E7dP
d3d9.h ってありますか? 何をするときにインクルードするものなんでしょうか? 検索したら、1件しか出てこなかった・・・
以下、ネタで1000とり合戦です
COBOLで DirectX を使うにはどうしたらいんですか。
COBOL.NET を使う
びる毛ってどこの毛ですか?
λ...... λ...... λ...... λ...... λ...... λ...... λ...... λ...... λ...... λ...... λ...... λ...... λ...... λ...... λ...... このスレ、終了だって カエロッカ…
990 :
名前は開発中のものです。 :03/03/04 06:45 ID:lcBXDtM7
>>988 それは100ドル札の事です
ところで私はSDK収集マニアなんですが、DirectX4SDKが見つかりません。
お持ちの方、私の持っているレアなSDKと交換しましょう。
希望するSDKを言ってください。
>>990 DX4のSDK? たしか5年くらい前のバージョンだよね。
それなら本の付録でついてきたものが、たぶん探せばまだ手元にあると思う。
問題は、部屋が散らかりすぎて探す気にならないこと。
>>991 DirectX4のSDK持ってんのか。
すげぇな、アンタ
4ってあったっけ...
なかったような…
DirectX4はドリカス専用だね。知らない人多いと思うけど まだ使ってるとこは使ってる。 最後に見たバージョンは4.5bだったかな。今どのくらいだろう。
996 :
名前は開発中のものです。 :03/03/04 10:44 ID:lcBXDtM7
>>993 994
ラストはネタで終わらすんでしょ?
実はDirectX9の中の人はOpenGLである
>>996 そうか、DirectX9がWin32sで動くのはそれでか!!
DirectXも9で終わりなんだってね。 ついに待ちに待ったDirectXIがリリースでつね!
999 :
名前は開発中のものです。 :03/03/04 14:17 ID:lcBXDtM7
>>998 な ぜ そ れ を 知 っ て い る ?
知っていても書くなよ。守秘義務があるだろうに……
まぁ、DirectXPよりはマシだよなぁ
今だ!1000ゲットォォォォ!!  ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´ ∧∧ ) (´⌒(´ ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡  ̄ ̄ (´⌒(´⌒;; ズザーーーーーッ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。