■過去ログ置き場に戻る■ 1- 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

鬱だ氏のう DirectX (Part 7)
1 名前:名前は開発中のものです。 :02/12/10 17:34 ID:tkEwMMYm
DirectXについてマターリと技術情報交換&雑談するためのスレッド。
初心者用相談室では扱わないような少し高度な話題も受け持つ。

■ 過去スレ
Part 1 http://piza.2ch.net/tech/kako/966/966655286.html (プログラム板)
Part 2 http://pc3.2ch.net/test/read.cgi/tech/997101556/ (プログラム板)
Part 3 http://game.2ch.net/gamedev/kako/1005/10051/1005119775.html
Part 4 http://game.2ch.net/gamedev/kako/1016/10162/1016276254.html
Part 5 http://game.2ch.net/test/read.cgi/gamedev/1027351925/
Part 6 http://game.2ch.net/test/read.cgi/gamedev/1033920036/

2 名前:名前は開発中のものです。 :02/12/10 18:17 ID:hBDtdJ2C
2getzusa-

3 名前:名前は開発中のものです。 :02/12/10 18:34 ID:Dd4Ue4un
ResetはD3D_OK返してます。

D3DPOOL_MANAGED以外は使ってないので、
各オブジェクトのReleaseもしてません。



4 名前:名前は開発中のものです。 :02/12/10 18:45 ID:ZtlKmS92
前スレからのコピペだが......

MSのDirectX関連ページ

DirectX Home Page
http://www.microsoft.com/japan/windows/directx/default.asp

MSDN>DirectX
http://www.microsoft.com/japan/msdn/directx/default.asp

個人サイトはあんまり知らない・・・

DirectX Info Lib (デバイス情報のデータベース。すばらしい!)
http://www.netsphere.jp/dxinfo/

BBX(掲示板)
http://isweb8.infoseek.co.jp/computer/bbx/

spin
http://spin.s2c.ne.jp/

宇治社中改(3D基礎講座)
http://www.cc.rim.or.jp/~devilman/


5 名前:あぼーん :あぼーん
あぼーん

6 名前:1 :02/12/10 19:02 ID:tkEwMMYm
>>4
フォローサンクス

7 名前:名前は開発中のものです。 :02/12/10 22:41 ID:Yh8uDVWN
http://game2.2ch.net/test/read.cgi/game/1038243467/
M$のあの人が降臨して噂? 電波? まき散らしてます。DX9も。

8 名前:名前は開発中のものです。 :02/12/10 23:16 ID:4d7wQ+to
DirectXAudioでデバイスの列挙をする関数を教えてください。

9 名前:名前は開発中のものです。 :02/12/11 00:11 ID:JGGuGsUV
>>8
IDirectMusic8::EnumPort

関数じゃなくてメソッドだ罠

10 名前:名前は開発中のものです。 :02/12/11 00:45 ID:nElzBzIF
>3

デバイスの設定が初期化されてんじゃないの?
具体的に何かは忘れたが、再設定してやらないといけなかったと思う。

識者よろしく

11 名前:あぼーん :あぼーん
あぼーん

12 名前:名前は開発中のものです。 :02/12/11 08:15 ID:4B0/2BCo
>>7
2chブラウザによっては、リンク先のスレッド名を取得するのでバレバレというのをご存知か?

13 名前:名前は開発中のものです。 :02/12/11 18:13 ID:dYtn0SwM
C言語ではfloatよりdoubleの方が計算が速いと言うのを聞いたことがあるのですが、
なぜDirectXは多くの場面でfloatを使うのでしょうか?
使用メモリ量の関係ですか?

14 名前:名前は開発中のものです。 :02/12/11 18:27 ID:tvq6Mbgl
floatの方が早いに決まってるじゃねぇか

15 名前:13 :02/12/11 18:42 ID:dYtn0SwM
float型の演算は内部でdoubleにキャストしてから行われるというのを何かで見たのですが、
それはVisualC++には当てはまらないのですか?

16 名前:名前は開発中のものです。 :02/12/11 19:00 ID:8GcUuocM
>>15
コンパイラ依存ではなく
アーキテクチャ依存だと思われ

17 名前:名前は開発中のものです。 :02/12/11 19:15 ID:2vYAZWWI
>>13
SSE,3DNowのためかと思ってたけどよく知りません

18 名前:名前は開発中のものです。 :02/12/11 19:19 ID:2vYAZWWI
>>15
>float型の演算は内部でdoubleにキャストしてから
コプロ(内蔵してるが)使用するときはその様な感じになってると
聞いたことがあるような気がするがよく知りません

19 名前:16連続投稿スマソ :02/12/11 19:20 ID:8GcUuocM
使用メモリ量と帯域の影響だと思う。ちょっとくらいCPUが重くなっても
メモリから取り出すデータ量が減ったほうが効率がいいんじゃないかな?

20 名前:名前は開発中のものです。 :02/12/11 20:14 ID:frs86VqQ
たしか浮動小数点の演算をするところがdoubleにあわせて作られてるとム板できいたことがある。
たしかにfsinfとかの関数をおってくと
floatでキャストしただけになってて最適化なんてやってくれそうもない。

21 名前:あぼーん :あぼーん
あぼーん

22 名前:名前は開発中のものです。 :02/12/11 22:26 ID:wIFL56Nc
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でキャストしてあるだけだよ。

24 名前:あぼーん :あぼーん
あぼーん

25 名前:名前は開発中のものです。 :02/12/12 00:20 ID:b6a4sQZk
>>23
> だからそれってさあ、デバッガでおってくと強引にfloatでキャストしてあるだけだよ。
それは最適化なしの場合だろ。
最適化ありだとFPU命令になるだけで
そもそも関数呼び出しにならないよ。
22 の場合もどっちも同じ命令にコンパイルされる。

26 名前:名前は開発中のものです。 :02/12/12 00:23 ID:E1h2ul2n
そうなんだ関数呼び出しにもならなんだ。

27 名前:あぼーん :あぼーん
あぼーん

28 名前:あぼーん :あぼーん
あぼーん

29 名前:あぼーん :あぼーん
あぼーん

30 名前:13 :02/12/12 10:27 ID:YYFVkYo6
>14-29
安心してfloat使ってよいと言うことですね(最適化ありで)。
ありがとうございました。

ソボークな疑問なんですけど、floatとFLOATって何か意味が違うんですか?
違いはなくても意味があって大文字のものと小文字のものがあるんですか?

31 名前:あぼーん :あぼーん
あぼーん

32 名前:名前は開発中のものです。 :02/12/12 10:32 ID:Hn1bHLmY
>>30
ヘルプ嫁

33 名前:あぼーん :あぼーん
あぼーん

34 名前:名前は開発中のものです。 :02/12/12 11:21 ID:smOf7KP3
http://www.theinquirer.net/?article=6640

ガセ?マジ?

35 名前:あぼーん :あぼーん
あぼーん

36 名前:あぼーん :あぼーん
あぼーん

37 名前:あぼーん :あぼーん
あぼーん

38 名前:あぼーん :あぼーん
あぼーん

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を持つでしょう。μ



40 名前:名前は開発中のものです。 :02/12/12 21:46 ID:Qr4JjMmi
>>39
>運転手を解放
ハイジャックかよ!

41 名前:名前は開発中のものです。 :02/12/13 00:43 ID:1uA3wOfS
>>34
マジであってほしい・・・
そうならRadeon9700買う。

42 名前:名前は開発中のものです。 :02/12/13 00:43 ID:1uA3wOfS
しかしGeForce5発表後とは予定通りだなあ。
やっぱりバランス取ってるのね。

43 名前:名前は開発中のものです。 :02/12/13 14:38 ID:7xJaeg/e
fraps
http://www.fraps.com/
みたいに、他のDirectXソフトの画面に他アプリケーションが
重ね描きするのって、どうやればいいんでしょう?

どなたか、キーワードだけでも知らないですか?

44 名前:あぼーん :あぼーん
あぼーん

45 名前:名前は開発中のものです。 :02/12/13 21:52 ID:mZ92GDES
          ☆ チン     マチクタビレタ〜
                         マチクタビレタ〜
        ☆ チン  〃  Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ヽ ___\(\・∀・) <  DX9まだー?
             \_/⊂ ⊂_ )   \_____________
           / ̄ ̄ ̄ ̄ ̄ ̄ /|
        | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
        | .佐賀みかん.  |/

46 名前:名前は開発中のものです。 :02/12/14 00:28 ID:bU5z0g+9
MS DirectX 9 final version coming any day nowで検索すると
12日付けで結構引っかかるな。


47 名前:名前は開発中のものです。 :02/12/14 17:31 ID:1VN/aEFO
>>45
( ´,_ゝ`)プッ

48 名前:あぼーん :あぼーん
あぼーん

49 名前:名前は開発中のものです。 :02/12/14 22:03 ID:NabTMAnA
>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でよろ

52 名前:名前は開発中のものです。 :02/12/14 22:41 ID:opMbyaXl
単純にメモリ量が2倍になるとか。

53 名前:名前は開発中のものです。 :02/12/15 00:49 ID:JrJSKr2Y
> 50
> だからネイティブなdoubleのほうが速いんじゃないかな?
ネイティブなdoubleってのがよくわからんのですけど
float も double もアセンブラレベルでは同じなんで
速さも変わらんでしょ。

逆にメモリへの読み書きが double の方が倍多くなるんで
double 使った方が遅くなるかも。

49 のとおり SSE やグラフィックボードも32ビット浮動小数点なんで
DirectX やるなら普通は float 使ってどうしても精度が問題になるときだけ
double にすべきでしょ。

54 名前:名前は開発中のものです。 :02/12/15 01:59 ID:QBp3zywp
メモリアクセスもあるが、それよりも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 本で既に溢れてしまうわけで、計算以前
にメモリとのロード・ストアに忙殺されることになります。

56 名前:名前は開発中のものです。 :02/12/15 04:00 ID:JrJSKr2Y
>54
> メモリアクセスもあるが、それよりもFPUを単精度モードに固定する
> から速くなるんだろ。
DirectX では単精度モードに固定はしてないよ。
FPUレジスタサイズと同じ拡張倍精度のままだよ。

単精度モードにしても内部では拡張倍精度で計算されて
丸め精度が単精度になるだけなんで速くなるとは思えない。

あとVisualC++だと double も long double も 64bit なんで
レジスタと一致する型はないですね。

57 名前:名前は開発中のものです。 :02/12/15 09:08 ID:QBp3zywp
>>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 だと速くなったりするんですかね?

59 名前:名前は開発中のものです。 :02/12/15 18:30 ID:/qOF98KW
精度であって速度ではないかと・・・

60 名前:名前は開発中のものです。 :02/12/15 18:54 ID:T3iOSbyz
>>58
デバイス作成した後にDLLをロードするとリセットされるよ。

速度はFPUのモード切り替え以外ではほとんど差がないんじゃない?
三角関数なんかは精度によって速度が変わるかもしれないが。

61 名前:56 :02/12/16 00:05 ID:LbANvt5G
>60
FPU 使ってなさそなやつだったんで
何でモード変えちゃってるか疑問だったんだけど
DLL ロードでリセットされるんですか。
納得です。

62 名前:名前は開発中のものです。 :02/12/16 10:35 ID:QrSABSJY
確か精度で速度が変わるのはFDIVだけじゃなかったかな。

63 名前:56 :02/12/16 13:07 ID:lLWQwiGl
>62
fdiv だとたしかに速度変わりますね。
しかも微妙にじゃなく結構豪快に変わった。
fmul と fsin しか調べてなかったよ・・・

64 名前:名前は開発中のものです。 :02/12/17 04:03 ID:rBdu6F04
Microsoft postpones DirectX 9 for a week
The new "final date" is 19th of December,
http://www.theinquirer.net/?article=6744

65 名前:名前は開発中のものです。 :02/12/18 18:56 ID:qPtEvAdZ
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
これからDirectX8勉強するんで、
講座ページ見つけたんですが
そこのサンプルを実行しても
「初期化に失敗しました」になってしまいます。
その原因がどうしてもわからないので
ご協力ください。

ttp://www.roy.hi-ho.ne.jp/pastel/home/index.htm
  ↑
講座ページ

ttp://www.roy.hi-ho.ne.jp/pastel/home/DirectX/DX8_kouza/HelloDX8.zip
  ↑
サンプル

ちなみにVC++6 DirectX8.1を使っています。

67 名前:あぼーん :あぼーん
あぼーん

68 名前:名前は開発中のものです。 :02/12/19 14:38 ID:dDMU8wxm
>>66
CreateDevice判定を1回しかしてないので環境によっては失敗するのでは?
まあ、俺もDX8の勉強初めて一ヶ月ほどなんでえらそうな事は言えないが。

一応サンプル上げときます。
へっぽこソースだけど、よかったら眺めてやってくださいな。
ttp://www10.ocn.ne.jp/~kc39fgax/DirectX8_SKL.zip

69 名前:66 :02/12/19 17:40 ID:+qpAae3H
>>68
ありごとうございます。
環境不足ですね。

サンプルソース激しく参考にさせていただきます。
お互い頑張りましょう。

70 名前:名前は開発中のものです。 :02/12/21 00:21 ID:H0pabYy8
DirectX9 キタ━━(゚∀゚)━━ !!!!!

ttp://msdn.microsoft.com/library/default.asp?url=/downloads/list/directx.asp

興奮のあまり、旧スレに書いてしまったぜい。
誘導してくれた人、アリガトン。

71 名前:名前は開発中のものです :02/12/21 04:40 ID:aw46BnhU
>>70
ナイス
休みの暇つぶしが できそうだYO


72 名前:名前は開発中のものです。 :02/12/21 10:57 ID:BdqHu3/h
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
基本的なところでバージョン定数はちゃんと定義しましたか?

75 名前:あぼーん :あぼーん
あぼーん

76 名前:名前は開発中のものです。 :02/12/21 15:13 ID:f6s/Xm4R
C#での使い心地はどうよ?

77 名前:名前は開発中のものです。 :02/12/21 15:18 ID:0+pehiHA
プログラムは昔からやっているんだが、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
モデラーからフォーマットが公開されている形式で出力させる

独自フォーマットへ

っていうコンバータ作るのが一般的かな?

81 名前:名前は開発中のものです。 :02/12/21 15:39 ID:0+pehiHA
>>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は?

84 名前:名前は開発中のものです。 :02/12/21 16:29 ID:0+pehiHA
>>82
C++とどっちが速いですか?
メモリ使用量も気になるが。

85 名前:名前は開発中のものです。 :02/12/21 16:52 ID:f6s/Xm4R
>>82
 .\         オオオオオオ―――――ッッッッッ       .   /
   \.                                    /
      (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚)
     (゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)
    (゚∀゚)(゚∀゚)(゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚)(゚∀゚)(゚∀゚)
   (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚)
 ( ゚∀゚)( ゚∀゚)( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )(゚∀゚ )(゚∀゚ )
.( ゚∀゚)( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ ) ( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )(゚∀゚ )
( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ ) ( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )
────────────────────────────────

じゃぁ、C#でDirectXを始めよう!!

86 名前:名前は開発中のものです。 :02/12/21 17:52 ID:cUrNSFms
ゲームルーチンを加えるとドンと重くなったりして。

87 名前:名前は開発中のものです。 :02/12/21 20:16 ID:n7PDff7R
>>86
同感。
でも重くなる部分はunsafeで書けば何とかなるんじゃないかなぁ
と言ってみるテスト。
http://www.atmarkit.co.jp/fdotnet/csharp_abc/csharp_abc_021/csharp_abc05.html

88 名前:名前は開発中のものです。 :02/12/21 22:18 ID:1u4LlFCS
>87
C#をunsageで使うぐらいならC++のほうがらくだ

89 名前:名前は開発中のものです。 :02/12/21 23:18 ID:qv5/NQ3k
質問なんだけど、Managed DirectX って結局はDirect Xを扱うためのもう一つの方法なんだよね?
Microsoft.DirectX.DirectDraw.DrawEffects の項目を見てて、
相変わらずDirect Drawでα値を使えるみたいなこと書いてあるんだけど、
別に、使えるようになったわけじゃないんだよね?Direct Xの本体はおんなじ物なんだよね?

90 名前:名前は開発中のものです。 :02/12/21 23:55 ID:BzlxTchV
今更そんなことを聞く理由が理解できない

91 名前:名前は開発中のものです。 :02/12/22 00:11 ID:VTU8yluM
いろんな問題が起きそうなのでDrawは終了だろ?
グラボの方のサポートも怪しくなってきそうだし。

92 名前:あぼーん :あぼーん
あぼーん

93 名前:名前は開発中のものです。 :02/12/22 06:16 ID:YI0WQzNU
おまえらひきこもんな


94 名前:名前は開発中のものです。 :02/12/22 09:59 ID:6B/yK4Zz
DirectDraw使い = 引きこもり同人STG作者
終了

95 名前:Jumper⌒Y⌒Y⌒( ゚∀゚) ◆JumpZrpgkU :02/12/22 10:02 ID:/sB53JfV
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とかありますな。
今のとこ使えないようだが、
シェーダもオブジェクト指向で書けるようになるわけですか。
シェーダプログラムの拡張がしやすくなってウマー…なのか?

96 名前:名前は開発中のものです。 :02/12/22 10:14 ID:rCjzYQTs
C++ の予約語に合わせてみただけに一票。

97 名前:名前は開発中のものです。 :02/12/22 10:20 ID:6B/yK4Zz
8.1からの移行で、いままでnvasmを使ってた人はdx9の dcl_position
どうするの?

98 名前:あぼーん :あぼーん
あぼーん

99 名前:名前は開発中のものです。 :02/12/22 12:54 ID:6B/yK4Zz
この板はもうだめだと思いますが、
他にまともなDirectXのBBSありますか?

100 名前:名前は開発中のものです。 :02/12/22 13:09 ID:tpBxr2+C
>>98
前から思っていたが、なんでこのすれは終わるんですか?

101 名前:名前は開発中のものです。 :02/12/22 13:10 ID:6KQt+AoQ
>>99
directxで検索してみればあるでよ。

荒らしてるヤシはpcゲーム作りたいのだが、オカネが無い、
担当させてもらえない、技術ガナイ、英語が読めない、
リストラされて荒れてるだけだから、、、許してやってね。

102 名前:あぼーん :あぼーん
あぼーん

103 名前:名前は開発中のものです。 :02/12/22 16:14 ID:mBDSZwTf
>>99
実はプログラム技術板にもDirectXスレがあったり…

鬱だ氏のう DirectX 2
http://pc3.2ch.net/test/read.cgi/tech/997101556/l50

104 名前:あぼーん :あぼーん
あぼーん

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描画系ではダメか

108 名前:名前は開発中のものです。 :02/12/22 18:01 ID:sSsEI5R3
>>106
DX8の2D系はあまり良くないみたいですね。
もう少し弄ってみてダメそうなら諦めます。

>>107
DX9はまだ触ってないのでなんとも言えません。
触るのはもうちょと先ですね・・・

109 名前:名前は開発中のものです。 :02/12/22 19:06 ID:Zc9XiYaJ
8は中途半端だから、俺はまだしばらく7を使うよ。
7なら大抵の環境で動くしな。1年後くらいに9に移行する。

110 名前:名前は開発中のものです。 :02/12/22 20:55 ID:O6Yda65i
今から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の方でエラーがでるため

間違えました。エラーはでないのですが、マテリアルリスト等の子データを
持たないメッシュができてしまい、表示がおかしくなります。

113 名前:あぼーん :あぼーん
あぼーん

114 名前:名前は開発中のものです。 :02/12/23 13:40 ID:NO9DtWWS
なんでDX9SDKのC++のサンプルにはSkinnedMeshがあるのに、
Managed DirectX(C#とVB.NET)にはないんだろう。
単に省略しただけなのか、使えない理由があるのか。

115 名前:名前は開発中のものです。 :02/12/23 15:55 ID:EfpKXfeu
Managedで書きにくいサンプルは全部はしょったとか。
あまりに遅くて泣く泣く削った… では無い事を祈る。

116 名前:名前は開発中のものです。 :02/12/23 16:11 ID:qFc82hVW
DXチームにC#の熟達者がいないんだよきっと

117 名前:114 :02/12/23 23:44 ID:NO9DtWWS
どーも
まー、たいした理由でないといいですな。

118 名前:名前は開発中のものです。 :02/12/24 01:15 ID:JJdtC4Ut
DXチームにC#に興味ある奴がいないんだよきっと

やつらは3Dがやりたいんであって、C#やVBは上からのお達しで
仕方なくやってるdake



119 名前:名前は開発中のものです。 :02/12/24 04:52 ID:U9xcR896
単純に労力の問題じゃないか?俺としては初めてC#対応したのにこれだけの
数のサンプルを用意してきた事に驚いたけど。

本音を言うと、C#のサンプルなんか用意するよりもD-MAPやMRTのサンプルを
作って欲しいんだが。毎度のことだけど、売りであるはずの新しい機能の
サンプルが無いんだよな。

120 名前:名前は開発中のものです。 :02/12/24 06:10 ID:IMP3us1S
超初歩的な質問だけど、教えて。

DX9落としたんだけど、サンプルがコンパイル出来ません。
UINTPTRが未定義とか言われる。
basetsd.hてのに宣言されてるけど、エラー出ていてるヘッダファイル
D3D9.h(かな?)には、#includeそのものがない。
どうなってるんでしょうか?
同じエラー出た人います?
(オプション>ディレクトリのパスは通してます(C:\DXSDK\include))


121 名前:名前は開発中のものです。 :02/12/24 06:18 ID:6zRcQ9qZ
>>120
そのディレクトリの検索順は一番上にageてあるか?

122 名前:名前は開発中のものです。 :02/12/24 12:23 ID:RrtXDOZR
DX9キター


123 名前:名前は開発中のものです。 :02/12/24 20:46 ID:CjExnJI6
>>105
テクスチャサイズは2の累乗にしなくちゃいけないんじゃなかったっけ?


124 名前:名前は開発中のものです。 :02/12/24 20:51 ID:8FHlCXa7
DX9来てもマターリしてるなぁ。

125 名前:名前は開発中のものです。 :02/12/24 22:14 ID:sve9Duu3
>>123
DX8から部分的にサポートされてるよ
ただし利用方法が激しく制限されてるので
2^nの一部を使ったほうがまだマシ

126 名前:名前は開発中のものです。 :02/12/24 23:39 ID:wBChHQUX
>>125
どこが激しいのか疑問。
ミップマップ以外は制限とは言えない程度のささいな事じゃん。
2^nであってもCLAMPにしたらテクスチャラッピングは使えないから、
実質的に制限は2つだけ。

127 名前:名前は開発中のものです。 :02/12/24 23:54 ID:sve9Duu3
>>126
使ったことないのに無理しないで。
あとサポートしてる環境を把握してる?

128 名前:名前は開発中のものです。 :02/12/24 23:58 ID:nM8z+tpm
>>126
痛い香具師ハケーン

129 名前:名前は開発中のものです。 :02/12/25 00:28 ID:5yYW1Zio
>>127
そういう自分こそ使ったことない&把握してないのでは?
あの制限のどこが問題になるのか説明してくれる?

130 名前:名前は開発中のものです。 :02/12/25 00:41 ID:o5sX+mEC
DirectX8でフルスクリーンにして、最小化して、元に戻そうとすると、
戻らないのですが、元に戻すには何かしなければいけないのですか?

131 名前:名前は開発中のものです。 :02/12/25 00:56 ID:C+V8gp8b
>>130
Resetが必要なんではないか。
詳しくはサンプルを参照。

132 名前:名前は開発中のものです。 :02/12/25 01:06 ID:loF3ndqX
DX9 でも D3DX は dll じゃないの?

133 名前:名前は開発中のものです。 :02/12/25 01:23 ID:MT7gu6YF
↑電波

134 名前:名前は開発中のものです。 :02/12/25 03:30 ID:PtOPqJI+
>>130
D3Ddevice 作り直さないとだめなのよ〜ん(タブン)

135 名前:名前は開発中のものです。 :02/12/25 03:44 ID:Km2eVg0y
んなこた〜ない

136 名前:あぼーん :あぼーん
あぼーん

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);


138 名前:あぼーん :あぼーん
あぼーん

139 名前:名前は開発中のものです。 :02/12/25 10:23 ID:vBfJXHZb
最近、DirectX系のHPって見ないなぁ。
BBXも野郎BBSも閉鎖だし、ここはこんな風だし…

日本のアマチュアゲーム開発は終了だな。(´・ω・`)ショボーン

140 名前:名前は開発中のものです。 :02/12/25 10:45 ID:N0hSeH2R
BBX閉鎖するの?

141 名前:名前は開発中のものです。 :02/12/25 11:55 ID:ztzHsFBr
if氏のHPってなんで閉鎖したのかな

142 名前:名前は開発中のものです。 :02/12/25 11:58 ID:srbFeJO+
>99
http://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi

教えて欲しかっただけだろ?


143 名前:名前は開発中のものです。 :02/12/25 11:58 ID:cEvsDgEI
BBXもif氏のとこも閉鎖してないぞ

144 名前:名前は開発中のものです。 :02/12/25 12:06 ID:6xTmGeBz
[厨房法則]
調べることができない人間ほどBBSに頼りたがる
BBSに頼りたがる人間ほど移転しただけで閉鎖したと勘違いする
勘違いする人間ほど自分が頼るものを失った時点で全てのアマチュアプログラマが開発を終了したと思いこむ

145 名前:あぼーん :あぼーん
あぼーん

146 名前:あぼーん :あぼーん
あぼーん

147 名前:名前は開発中のものです。 :02/12/25 16:10 ID:o5sX+mEC
DirectXAudioについて聞きたいことがあるのですが、いいでしょうか。

自分のプログラムでは、MIDIを再生すると、リバーブ等のエフェクトが
最大になってしまいます。一度再生すると、全てのMIDIとWAVがこうなってしまいます。

そこで、エフェクトを削除する方法がわかったので、SetFX(0, NULL, NULL)で
エフェクトを削除したら、すでに再生しているMIDIがとまってしまいました。

で、もう一度MIDIを再生しようとすると、またエフェクトがかかってしまうのです。

エフェクトを削除したら、再生しているMIDIがとまったというのは、
工学社のサンプルでもそうだったので(コードも同じでした)、そういうもんなのだと思ったのですが、
では、どうすればいいのでしょう。

そもそもMIDIを再生した時点でエフェクトがかかるのが間違いですか?

148 名前:あぼーん :あぼーん
あぼーん

149 名前:名前は開発中のものです。 :02/12/25 18:50 ID:srbFeJO+
( `∀`)オマエガナー

150 名前:名前は開発中のものです。 :02/12/25 20:54 ID:PzwC4Far
すつもん、よろしいでしょか?

メッシュにxファイルを読み込みたいのですが、
そのファイルはどこら辺に入れておいたらよいのでしょうか?
本を買って勉強しているのですが、その辺がどうもわからなくて、つい。

151 名前:名前は開発中のものです。 :02/12/25 21:16 ID:NnnYhCf/
>>150
カレントデレクトリ

152 名前:あぼーん :あぼーん
あぼーん

153 名前:あぼーん :あぼーん
あぼーん

154 名前:名前は開発中のものです。 :02/12/25 22:05 ID:PzwC4Far
>>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で半透明ってできませんか?

157 名前:名前は開発中のものです。 :02/12/25 23:29 ID:lmj/8fOx
>>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
悪いことはいわない。
ぜぇっっってぇーフルパスにしとけ。
なにがなんでもフルパスを使うくせをつけろ。

161 名前:名前は開発中のものです。 :02/12/26 00:18 ID:hDb5j8vT
>>156
テクスチャのα値をいじれば?

162 名前:名前は開発中のものです。 :02/12/26 00:49 ID:ZW5MFsfx
>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には、あまりいい噂はききませんね。


164 名前:名前は開発中のものです。 :02/12/26 02:43 ID:8elQi3d2
フルパスマンセーの奴がいるが、正気か?
exeのある場所を最初にカレントにして、そこから相対パスってのが基本だろ。

165 名前:名前は開発中のものです。 :02/12/26 02:49 ID:u+QTkfIN
> exeのある場所を最初にカレントにして、そこから相対パス

開発中はdebug\hoge.exeとかになってるぽ

166 名前:名前は開発中のものです。 :02/12/26 03:48 ID:9RUwBm5s
>>164
コモンダイアログのファイル選択ダイアログを使ったことがあれば
フルパスマンセーになるぞ。
ゲームならあまり使わないかもしれないがツールだとまず確実に使う。

167 名前:名前は開発中のものです。 :02/12/26 05:51 ID:AGlHM0EQ
>>166
ファイル選択ダイアログのフラグにOFN_NOCHANGEDIRつけとけばカレントディレクトリかわらないよ。

まあ、毎回元のディレクトリから始まるようになるので、
遠くのファイルを何回も選ぶ場合には面倒だけど。

嫌なら毎回ディレクトリ保存しておいて復元してもいいし。

168 名前:あぼーん :あぼーん
あぼーん

169 名前:名前は開発中のものです。 :02/12/26 07:04 ID:ePwyo9mV
問題は開発の誰かがカレントを変更してしまうおそれがある。
ってのが一番面倒、ぶんなぐれ。
でかいツール作ってるときは誰がなにやってくれるかわからない。
ゲーム本体でもユーザーに保存場所を選ばせる場合だと必要になるから、いっそフルパスマンセーのが楽に逝ける。

170 名前:名前は開発中のものです。 :02/12/26 07:08 ID:oxPiSeR2
VCを個人で使ってるなら作業ディレクトリ設定できるからカレント云々は困らないけどね。

171 名前:156 :02/12/26 07:10 ID:h8wBSWcJ
>>161,>>162,>>163
お、ちゃんとα描画できました。
SPRITEの方が簡単に作れると思ったのですが、やはり普通に
ポリゴンで扱ったほうがいいみたいですね…。
ありがとうございました(・∀・)

172 名前:あぼーん :あぼーん
あぼーん

173 名前:名前は開発中のものです。 :02/12/26 07:52 ID:f4uAG8Os
お、ディレクトリ管理の話ですか。標準でついてるExporterが
Xファイルのテクスチャをフルパスで吐き出すのが困りものなのよね。

 ところで、フルパスからカレントパスを作るのも意外とめんどい
んだけどなんか良い関数ないもんですかね?

174 名前:150 :02/12/26 09:15 ID:ik1sR7sq
 答えてくださった方、ありがとう。
 こんなにレスがつくとは思いもよりませんでした。
 

 本当にありがとうございます!!
 では引き続き作業を頑張ります。

175 名前:名前は開発中のものです。 :02/12/26 09:53 ID:8elQi3d2
nvidiaのサイトからcg_toolkitが落とせない。
どっか他にない?

176 名前:名前は開発中のものです。 :02/12/26 11:22 ID:8ZNjq3av
>>175
ftpからはおとせたYO!
ftp://download1.nvidia.com/developer/cg/


177 名前:名前は開発中のものです。 :02/12/26 11:34 ID:AGlHM0EQ
>>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);
何か解決策は無いでしょうか。

179 名前:名前は開発中のものです。 :02/12/26 12:12 ID:u+QTkfIN
引数三つ目のアスペクト比は1.0でいいの?
画面の縦横比をいれなきゃダメよ。

180 名前:名前は開発中のものです。 :02/12/26 12:19 ID:Tz6MkjNI
アドバイスありがとうございます。
早速アスペクト比をWIDTH/HEIGHTで入れたのですが、
やっぱり画面端に行くにつれ、木などが傾いてしまいます。

181 名前:名前は開発中のものです。 :02/12/26 12:34 ID:j+J1+fQK
1.0のところを変えてみたらどうでしょ。

ってか、連書き規制きびしすぎねえ?1時間以上経つのにかけなかったよ

182 名前:名前は開発中のものです。 :02/12/26 12:40 ID:W0NkvfZI
そういえば、アスペクト比でDirect X7かなんかの本のサンプルが逆になってたな
640*480の解像度で1.33333fとか入ってるの。
0.75だろうが!って突っ込みたかった。

183 名前:名前は開発中のものです。 :02/12/26 12:47 ID:+a+DZGj7
60*PI/180の60を減らしてみよう

184 名前:名前は開発中のものです。 :02/12/26 13:18 ID:u+QTkfIN
DXは横を1とした縦のサイズだったかな。
あとはfloatにキャストしてないとか
int W = 320;
int H = 240;
D3DX...( ... , W/H, ...);
じゃあダメよ。

185 名前:あぼーん :あぼーん
あぼーん

186 名前:名前は開発中のものです。 :02/12/26 16:50 ID:rNK9GIom
>144

ありがちだな


187 名前:名前は開発中のものです。 :02/12/26 17:30 ID:Tz6MkjNI
みなさんのアドバイスを参考に、
D3DXMatrixPerspectiveFovLH(&mProj , 35.0f*PI/180 ,(float)WIDTH/(float)HEIGHT , 1.0f ,640.0f);
と、してみたところ結構マシになりました。
ありがとうございました。

188 名前:名前は開発中のものです。 :02/12/26 17:39 ID:u+QTkfIN
>>187
おめでとう。
あと、WとHが逆だったかもしれん。

189 名前:名前は開発中のものです。 :02/12/26 18:25 ID:SuFqab0r
DirectX3Dにはフラットシェーディングとグーローシェーディング
があるそうですがどの関数で切り替えられれますか?

190 名前:189 :02/12/26 18:38 ID:SuFqab0r
解決しましたが、フラットシェーディングとグーローシェーディング
では処理速度はフラットの方が速いでしょうか?

191 名前:名前は開発中のものです。 :02/12/26 20:39 ID:bqU4KP+U
>190
試してみるのが一番だ。

192 名前:名前は開発中のものです。 :02/12/27 07:45 ID:md1EDfNJ
>>190
激しく環境依存ってことも忘れずにね

193 名前:あぼーん :あぼーん
あぼーん

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;
}
参考書コードの修正後ソース・・・この方が分かりやすいかと・・・

197 名前:あぼーん :あぼーん
あぼーん

198 名前:名前は開発中のものです。 :02/12/28 18:56 ID:pcScEEbX
レベル低すぎ

終了
おまえら首吊れ

199 名前:名前は開発中のものです。 :02/12/28 21:55 ID:EVvwHmrD
シェーダ使えない環境でDirectX9のメリットってあるの?

200 名前:名前は開発中のものです。 :02/12/28 23:48 ID:KFOt0L7z
>>195
うわぁ〜。すごいすごい。
その通りやったら見事直りました。

ありがとうございました。

201 名前:あぼーん :あぼーん
あぼーん

202 名前:名前は開発中のものです。 :02/12/29 04:51 ID:mxtUttMf
>>199
まともな製品作るならシェーダで突っ走るに決まってる。
糞ユーザーのためにシェーダ使わない選択するのは愚挙。
そういうときはソフトウェアで頂点シェーダ動かしてピクセルシェーダは放置


203 名前:名前は開発中のものです。 :02/12/29 05:46 ID:YZiM0Z3W
俺はWinXPに標準で載ってる8.1を選ぶぜ。

それは別として、DirectX 9の日本語HTMLヘルプがウィンドウサイズ記憶してくれない……。
どうなっとるんでしょうかこれわ。8のはちゃんと覚えてくれるのに。

204 名前:あぼーん :あぼーん
あぼーん

205 名前:名前は開発中のものです。 :02/12/29 09:23 ID:UWWAc8w/
シェーダーマンセーな人に悪いけどそんなのありえないからね。
まあ、大手でサポートバッチリならいいけど、
それ以外なら駄目よ。
だってグラボを自分でつけかえないかぎりピクセルシェーダなんてついてこねーだろ?
ドライバだってとってくるとは思えない。
バンプだってまともに動くもんがすくないぞ

206 名前:名前は開発中のものです。 :02/12/29 10:39 ID:mxtUttMf
>>205
はいはい
別に使わなくていいよ

君はドライバ由来の不具合も自分の責任の範囲とする立派な方だ。
NECの98時代から受け継がれた日本の美徳だね。

207 名前:名前は開発中のものです。 :02/12/29 11:25 ID:BImKIoRD
なにこの人つっかかってんだろう。
理想はそうかもしれんが、ユーザーにドライバの不具合がどうたら言ってもなあ。

208 名前:名前は開発中のものです。 :02/12/29 11:45 ID:Yj/SuFlV
ピクセルシェーダが使えるビデオボード持ってるユーザー
日本にどのくらいいるんだろ…?
10万人いるのかな?
FF効果で結構増えたと思うが…。

209 名前:名前は開発中のものです。 :02/12/29 12:02 ID:Rd+l9s3F
>>203
うちもなぜかDirectX9のヘルプがウィンドウサイズ記憶しないので、仕方なく
MSDNに統合して使ってるよ。
http://www.sofarts.com/computer/env-soft/windows/app_programming/vs/vs-dx-msdn2.htm


210 名前:_ :02/12/29 12:14 ID:WzbQdq3y






http://freeweb2.kakiko.com/dengeki/indexe.htm






211 名前:名前は開発中のものです。 :02/12/29 12:48 ID:mFB76vnS
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
> テクスチャの作成に使用するメモリ内のファイル。

このメモリ内のファイルとは、どうやって作成するのですか?

214 名前:名前は開発中のものです。 :02/12/29 15:36 ID:ZUUThS54
抜粋する場所間違えました。
これのC++バージョンでお願いします。

215 名前:名前は開発中のものです。 :02/12/29 15:42 ID:Z7eWPCRp
ああ、まだわかってないやつがいるね。
グラボがどういうものかなんてちゃんと認識してかってるやつなんていないんだよ。
大抵は知ったか野郎の馬鹿ばっかと考えて、まず間違いない、
GForce4MX買ってきて動きませんとかいう質問が何百件ときてその一人一人に説明すんだぞおめ。
サポートがしっかりしてればべつね。

216 名前:213 :02/12/29 17:08 ID:ZUUThS54
解決しました。

217 名前:名前は開発中のものです。 :02/12/29 17:09 ID:d5AOLlrA
普通はシェーダが使えなければそのぶん画質が悪くなるだけで
ゲーム自体が動かないようには作らない

218 名前:名前は開発中のものです。 :02/12/29 17:30 ID:+snDuV4e
本当にそんなことが可能なのか?
もし、その機能がなかったらこの機能を代わりに使うということを逐一考えて作るのか?
判定をミスると透過やフォグの類は最悪だぞ、
ラデオン7000ではフォグがきかずユーザーの画面には白い板がでてたそうな。笑
ピクセルシェーダはどうなるんだ?
透過が入ってくると無ければ使いませんとはいかないだろ

219 名前:名前は開発中のものです。 :02/12/29 17:41 ID:kj0kwrPh
同じルーチンを使いまわそうとするからいけないのでは?
手間はかかりますが有り無しを別々に作れば問題ありません
実際市販ゲームでは最低スペックの条件はあるにしても
最新機能の有り無しは速度と画質にしか影響してません

220 名前:名前は開発中のものです。 :02/12/29 17:55 ID:YfCnAzDb
skinnedmeshを詳しく説明してる日本語
サイト知ってる人いますか?

221 名前:名前は開発中のものです。 :02/12/29 18:11 ID:UWWAc8w/
一つ一つに手間をかけろということで?
でもそれなら、いっそ上はみないで低機能マシンでも動く範囲内で作りこんだほうが綺麗になるかも。
という結論になっちゃうよ。
だってモデルやテクスチャも動かないマシンむけと本物むけを用意しなくちゃいけないこともでてきそうだし。


222 名前:あぼーん :あぼーん
あぼーん

223 名前:名前は開発中のものです。 :02/12/29 23:58 ID:fsGk3LPm
>>221
 言ってることが極端すぎないか?ようは低機能のマシン(といっても
限度があるだろうな。さすがにVirgeって事は無いはず)でちゃんと動く
ように作り、プラスアルファの部分として、ピクセルシェーダーのある
マシンなら使う部分がある、みたいにするんじゃないの?判定はできるんだし。

 ピクセルシェーダーの無いハードは、細かい機能の有無なんかチェック
しないで、低機能マシン汎用ルーチンで処理しちゃえばいいでしょ(もちろんこの
部分をちゃんと作る必要はあるんだが)。

 ちなみに頂点シェーダは、8.1までの機能なら、ノープロブレムで使えると
思ってる(CPUがちゃんとエミュしてくれる)けど、実際は問題があることも
あるのかな?個人レベルでは、そういう経験は無いんだけど。

224 名前:名前は開発中のものです。 :02/12/30 00:58 ID:9z/BycTF
現在.hackの様な視点の3Dゲームを作っていて、
モデルの全面検索で当たり判定をとって、避け補正を付けたのですが。

面ががT型に交わっているところに斜めに進入すると、
その面の向こう側に垂直に立っている面とも当たり判定を取ってしまいます。
何か良い回避方法は無いでしょうか。

225 名前:名前は開発中のものです。 :02/12/30 02:16 ID:q+UcSJ4d
低スペックマシン対応プラスαでピクセルシェーダをつけるのか
んな作業時間あるわけねーだす、大抵はプラスαをきって納品だす笑
頂点シェーダがどこまで可能かってのはやったことない。
やってみてくれ
もしを考えると恐くて使えないっす。無知ゆえの恐怖もあります

当たり判定は当たり自体のアルゴリズムをいじるより
判定をする当たりの絞り込み自体をなんとかしないとどうにもなりません。
一体自分の現在地からあたりうる当たりはどれだろう?、という判定に力をいれます。

226 名前:名前は開発中のものです。 :02/12/30 04:27 ID:sZfvlTCt
実際結構考えずに買うオンボードチップのユーザーが多いからなあ。
っつーかDirectX7はいいよ。大抵動く。
シェーダーじゃないと表現できないような凝った事もしたいけれど
とりあえず売上重視だからね。

227 名前:あぼーん :あぼーん
あぼーん

228 名前:あぼーん :あぼーん
あぼーん

229 名前:名前は開発中のものです。 :02/12/30 10:01 ID:0ibw0CFK
つまりお前らはcapsを調べないで出来る範囲でやりたいんだろ?
固定機能ではなにか追加するたびcapsを気にしなければならない。
「VS1.1で出来る範囲」とかにすれば、その方が圧倒的に楽だが。


230 名前:名前は開発中のものです。 :02/12/30 11:43 ID:g0rhF4sT
いやそのcapsがあてにならねーときやできても結果が違うときが多すぎるから
いちいちたくさんのマシンでチェックしなきゃいけないのが嫌。
簡単なシェーダでONOFFですむならそれでいいんよ。
だけどその処理はできるんだけどこのマシンだとやらないほうがいいっていう結果になっちゃうことがあるでしょ。
速度の面とかでも。
アンチエイリアスも迂闊にかけられないよマジで。

231 名前:名前は開発中のものです。 :02/12/30 13:47 ID:c0Wr5svx
デフォルトで最低機能で設定しておいて、オプションで設定できるようにしておけばいいだけでは?
市販ゲームでは対応が危なそうな機能はオプションで選択制になっていることが多い
少しは既製品を研究した方がいいのでは?

232 名前:名前は開発中のものです。 :02/12/30 15:06 ID:uVOS/p5i
いや、一番の問題はその手間だよ。
どの機能がどうなるおそれがあってどういった対処が必要かって
調べてる時間もマシンもないんよ。
もっというと低スペック向け、高スペック向け両方用意してチェックしてる時間もない。
ここで金がからんでくるんよ。
果たして少数派の高スペックマシン向けの実装をさせるかさせないかってね。
で、開発側に対応におわれる時間の見積もりがくるけどわからないとしか答えようがないね。
そうすると上の決定は当然低スペックマシンに絞るようになる。
て、わけ。
ターゲットをしぼるってこういうことじゃない

233 名前:あぼーん :あぼーん
あぼーん

234 名前:名前は開発中のものです。 :02/12/30 15:26 ID:yXyS1emC
     ∧_∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ( ´∀`)/<先生!こんなのがありました!
 _ / /   /   \___________
\⊂ノ ̄ ̄ ̄ ̄\
 ||\        \
 ||\|| ̄ ̄ ̄ ̄ ̄||
 ||  || ̄ ̄ ̄ ̄ ̄||
http://muryou.gasuki.com/mona/

235 名前:名前は開発中のものです。 :02/12/30 20:29 ID:vC7TdZzh
DirectXについて、ここで語られてる言い訳は
世界的にも一般的なことなんですか?



236 名前:名前は開発中のものです。 :02/12/30 20:32 ID:sZfvlTCt
市場の大きさがまるで違うからねえ

237 名前:名前は開発中のものです。 :02/12/30 21:29 ID:vC7TdZzh
日本のPCゲームが韓国よりショボイのも仕方ないわけね。

238 名前:名前は開発中のものです。 :02/12/30 21:45 ID:3ANQZMfG
>>237
んー。
韓国のゲームやったことある?

239 名前:名前は開発中のものです。 :02/12/30 22:14 ID:iymMZc68
>>237
そうだよ。仕方ないんだよ。
 
PCゲーに関しては
韓国ではメジャー。
日本ではマイナー。
 
日本で国産PCゲーつったらエロゲ。確実に9割以上がエロゲ。
海の向こうと比較したらミジンコ級。でも、それはガイシュツの話。
だから、DirectXスレで3Dの話をするなら日本のPCゲーを
持ち出すのは不毛であり、実りナシ。洋ゲーを且黙セヨ。

240 名前:名前は開発中のものです。 :02/12/30 22:18 ID:iymMZc68
× 且黙セヨ
○ 注目セヨ
 
バガボンド病

241 名前:名前は開発中のものです。 :02/12/31 04:51 ID:oc5uE3wq
クソスレ探知機

242 名前:名前は開発中のものです。 :02/12/31 04:53 ID:PbZ/vk0q
駄レス探知機

243 名前:あぼーん :あぼーん
あぼーん

244 名前:名前は開発中のものです。 :02/12/31 10:47 ID:lszDRwtA
>>239
 つまり、国産ならエロ3Dゲーに注目せよ、と。汗ばんだ肌のしっとり感や、
汁のヌルヌルとした光具合なんかはピクセルシェーダの本領発揮だもんな。
単なるテクスチャだけじゃ、限界あるし(一方向ならともかく、動いた時に
対応でき無さそう)。

そこまで(リアルタイムで)やってるトコは無いけど。


245 名前:名前は開発中のものです。 :02/12/31 11:07 ID:FV93/G5N
てゆうか高額グラボ小僧はネットゲにいりびたりなのでエロゲやりません。

246 名前:名前は開発中のものです。 :02/12/31 14:29 ID:EmdLJTGn
http://www.illusion.jp/
ここはどうなの?

247 名前:名前は開発中のものです。 :02/12/31 16:26 ID:lszDRwtA
>>245
ネットゲーやってるヤツは、エロゲには興味ないのかな、やっぱり。
>>246
 ムービーはともかく、リアルタイム部分はDX7世代じゃないか?デモの
「必要な環境」にもDirectX7って書いてあるし。おそらく頂点シェーダも
使ってないと思う。モデルとテクスチャの出来(要するにグラフィッカーの
働き)のおかげで見た目はそれなりだけど。

248 名前:名前は開発中のものです。 :02/12/31 19:13 ID:1dSZw+e8
終了

249 名前:あぼーん :あぼーん
あぼーん

250 名前:名前は開発中のものです。 :02/12/31 22:05 ID:BlKQMtOE
>>247
同意。
安全対策バリバリ。


■過去ログ置き場に戻る■ 1- 次250 最新50
DAT2HTML 0.33f Converted.