トップページgamedev
1001コメント352KB

鬱だ氏のう DirectX (Part 7)

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。02/12/10 17:34ID: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/
0014名前は開発中のものです。02/12/11 18:27ID:tvq6Mbgl
floatの方が早いに決まってるじゃねぇか
00151302/12/11 18:42ID:dYtn0SwM
float型の演算は内部でdoubleにキャストしてから行われるというのを何かで見たのですが、
それはVisualC++には当てはまらないのですか?
0016名前は開発中のものです。02/12/11 19:00ID:8GcUuocM
>>15
コンパイラ依存ではなく
アーキテクチャ依存だと思われ
0017名前は開発中のものです。02/12/11 19:15ID:2vYAZWWI
>>13
SSE,3DNowのためかと思ってたけどよく知りません
0018名前は開発中のものです。02/12/11 19:19ID:2vYAZWWI
>>15
>float型の演算は内部でdoubleにキャストしてから
コプロ(内蔵してるが)使用するときはその様な感じになってると
聞いたことがあるような気がするがよく知りません
001916連続投稿スマソ02/12/11 19:20ID:8GcUuocM
使用メモリ量と帯域の影響だと思う。ちょっとくらいCPUが重くなっても
メモリから取り出すデータ量が減ったほうが効率がいいんじゃないかな?
0020名前は開発中のものです。02/12/11 20:14ID:frs86VqQ
たしか浮動小数点の演算をするところがdoubleにあわせて作られてるとム板できいたことがある。
たしかにfsinfとかの関数をおってくと
floatでキャストしただけになってて最適化なんてやってくれそうもない。
0021あぼーんNGNG
あぼーん
0022名前は開発中のものです。02/12/11 22:26ID:wIFL56Nc
float dir = 0.5;
float vx = sin(3.141492 * dir)l;

↑これにはfloatからdoubleへの暗黙のキャストが隠れている。
それを避けたければこう。↓

float vx = sinf(3.141492f * dir);
0023名前は開発中のものです。02/12/11 23:18ID:5cp9RTbD
だからそれってさあ、デバッガでおってくと強引にfloatでキャストしてあるだけだよ。
0024あぼーんNGNG
あぼーん
0025名前は開発中のものです。02/12/12 00:20ID:b6a4sQZk
>>23
> だからそれってさあ、デバッガでおってくと強引にfloatでキャストしてあるだけだよ。
それは最適化なしの場合だろ。
最適化ありだとFPU命令になるだけで
そもそも関数呼び出しにならないよ。
22 の場合もどっちも同じ命令にコンパイルされる。
0026名前は開発中のものです。02/12/12 00:23ID:E1h2ul2n
そうなんだ関数呼び出しにもならなんだ。
0027あぼーんNGNG
あぼーん
0028あぼーんNGNG
あぼーん
0029あぼーんNGNG
あぼーん
00301302/12/12 10:27ID:YYFVkYo6
>14-29
安心してfloat使ってよいと言うことですね(最適化ありで)。
ありがとうございました。

ソボークな疑問なんですけど、floatとFLOATって何か意味が違うんですか?
違いはなくても意味があって大文字のものと小文字のものがあるんですか?
0031あぼーんNGNG
あぼーん
0032名前は開発中のものです。02/12/12 10:32ID:Hn1bHLmY
>>30
ヘルプ嫁
0033あぼーんNGNG
あぼーん
0034名前は開発中のものです。02/12/12 11:21ID:smOf7KP3
http://www.theinquirer.net/?article=6640

ガセ?マジ?
0035あぼーんNGNG
あぼーん
0036あぼーんNGNG
あぼーん
0037あぼーんNGNG
あぼーん
0038あぼーんNGNG
あぼーん
0039王様02/12/12 17:08ID: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を持つでしょう。μ

0040名前は開発中のものです。02/12/12 21:46ID:Qr4JjMmi
>>39
>運転手を解放
ハイジャックかよ!
0041名前は開発中のものです。02/12/13 00:43ID:1uA3wOfS
>>34
マジであってほしい・・・
そうならRadeon9700買う。
0042名前は開発中のものです。02/12/13 00:43ID:1uA3wOfS
しかしGeForce5発表後とは予定通りだなあ。
やっぱりバランス取ってるのね。
0043名前は開発中のものです。02/12/13 14:38ID:7xJaeg/e
fraps
http://www.fraps.com/
みたいに、他のDirectXソフトの画面に他アプリケーションが
重ね描きするのって、どうやればいいんでしょう?

どなたか、キーワードだけでも知らないですか?
0044あぼーんNGNG
あぼーん
0045名前は開発中のものです。02/12/13 21:52ID:mZ92GDES
          ☆ チン     マチクタビレタ〜
                         マチクタビレタ〜
        ☆ チン  〃  Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ヽ ___\(\・∀・) <  DX9まだー?
             \_/⊂ ⊂_ )   \_____________
           / ̄ ̄ ̄ ̄ ̄ ̄ /|
        | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
        | .佐賀みかん.  |/
0046名前は開発中のものです。02/12/14 00:28ID:bU5z0g+9
MS DirectX 9 final version coming any day nowで検索すると
12日付けで結構引っかかるな。
0047名前は開発中のものです。02/12/14 17:31ID:1VN/aEFO
>>45
( ´,_ゝ`)プッ
0048あぼーんNGNG
あぼーん
0049名前は開発中のものです。02/12/14 22:03ID:NabTMAnA
>19
それもあるが、プロセッサに載ってる命令セットの問題もある。

3D 演算では行列・ベクトルが多用されるわけだが、この処理を高速化するため
に載ってる命令が、単精度浮動小数点 * 4 の 128bit データを前提としてる。

IA-32 でも PlayStation 2 でも、この手の SIMD 命令を使う演算ユニットと、汎用
の浮動小数点演算用コプロセッサと両方持ってるんだが、行列演算では前者を
使わんと性能が一桁落ちる。
00501602/12/14 22:32ID:S4SiGzG1
>floatよりdoubleの方が計算が速い
ふと思ったんだけど、これって
for(int i;i<=1000000:i++,f++);
とかの命令を実行したとき、
fはfloat型よりもdouble型のほうが速いってことを言ってるんじゃないかな?
これだったらレジスタでバリバリ計算できるからメモリ読み出しは皆無
だからネイティブなdoubleのほうが速いんじゃないかな?

こういうことはあんまり詳しくないので詳しい人、解説きぼんぬ
00511602/12/14 22:33ID:S4SiGzG1
うわ、int iになってる・・・
とんでもなく恥ずかしいコードだ
int i=0でよろ
0052名前は開発中のものです。02/12/14 22:41ID:opMbyaXl
単純にメモリ量が2倍になるとか。
0053名前は開発中のものです。02/12/15 00:49ID:JrJSKr2Y
> 50
> だからネイティブなdoubleのほうが速いんじゃないかな?
ネイティブなdoubleってのがよくわからんのですけど
float も double もアセンブラレベルでは同じなんで
速さも変わらんでしょ。

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

49 のとおり SSE やグラフィックボードも32ビット浮動小数点なんで
DirectX やるなら普通は float 使ってどうしても精度が問題になるときだけ
double にすべきでしょ。
0054名前は開発中のものです。02/12/15 01:59ID:QBp3zywp
メモリアクセスもあるが、それよりもFPUを単精度モードに固定する
から速くなるんだろ。
DX7の頃はヘルプにもっと詳しく書いてあったんだが、DX8ではほとんど
説明が無くなってる。
00554902/12/15 02:23ID: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 本で既に溢れてしまうわけで、計算以前
にメモリとのロード・ストアに忙殺されることになります。
0056名前は開発中のものです。02/12/15 04:00ID:JrJSKr2Y
>54
> メモリアクセスもあるが、それよりもFPUを単精度モードに固定する
> から速くなるんだろ。
DirectX では単精度モードに固定はしてないよ。
FPUレジスタサイズと同じ拡張倍精度のままだよ。

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

あとVisualC++だと double も long double も 64bit なんで
レジスタと一致する型はないですね。
0057名前は開発中のものです。02/12/15 09:08ID:QBp3zywp
>>56
Direct3Dはデバイスを作成したときにFPUを単精度モード、FPU例外無効に
設定する。デバイス作成前と後で計算結果が変わるという報告もあるから、
これは間違いないかと。

たぶんD3DCREATE_FPU_PRESERVEを指定しないでデバイスを作成した後に
doubleを使ってもdoubleの精度では計算されていないと思う。

Direct3DはFPUの状態がデバイス作成時から変わらないことを前提に最適化
されているから、doubleを使うときはD3DCREATE_FPU_PRESERVEを指定するか
自分でモードを切り替える必要がある。
D3DCREATE_FPU_PRESERVEを指定すると、Direct3Dの関数呼び出しの前後で
FPUの状態を同じに保つようにするから、それがパフォーマンスに影響する。
…というのがMSの説明。

_controlfpとか使って手動で切り替えればいいのかも。
00585602/12/15 15:59ID:TrKuLw0B
>56
すいません、今確認してみたらたしかに単精度モードでした。
なんか DirectX とは関係ないライブラリの初期化時に
で倍精度モードに書き換えられてた。
CreateDevice 直後に見たら単精度モードでした。

でも Pen4 で実測してみたんだけど
単精度/倍精度に関係なくFPUの計算速度は同じだった。
Pen4 以前の CPU だと速くなったりするんですかね?
0059名前は開発中のものです。02/12/15 18:30ID:/qOF98KW
精度であって速度ではないかと・・・
0060名前は開発中のものです。02/12/15 18:54ID:T3iOSbyz
>>58
デバイス作成した後にDLLをロードするとリセットされるよ。

速度はFPUのモード切り替え以外ではほとんど差がないんじゃない?
三角関数なんかは精度によって速度が変わるかもしれないが。
00615602/12/16 00:05ID:LbANvt5G
>60
FPU 使ってなさそなやつだったんで
何でモード変えちゃってるか疑問だったんだけど
DLL ロードでリセットされるんですか。
納得です。
0062名前は開発中のものです。02/12/16 10:35ID:QrSABSJY
確か精度で速度が変わるのはFDIVだけじゃなかったかな。
00635602/12/16 13:07ID:lLWQwiGl
>62
fdiv だとたしかに速度変わりますね。
しかも微妙にじゃなく結構豪快に変わった。
fmul と fsin しか調べてなかったよ・・・
0064名前は開発中のものです。02/12/17 04:03ID:rBdu6F04
Microsoft postpones DirectX 9 for a week
The new "final date" is 19th of December,
http://www.theinquirer.net/?article=6744
0065名前は開発中のものです。02/12/18 18:56ID: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
0066名前は開発中のものです。02/12/19 09:42ID:+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を使っています。
0067あぼーんNGNG
あぼーん
0068名前は開発中のものです。02/12/19 14:38ID:dDMU8wxm
>>66
CreateDevice判定を1回しかしてないので環境によっては失敗するのでは?
まあ、俺もDX8の勉強初めて一ヶ月ほどなんでえらそうな事は言えないが。

一応サンプル上げときます。
へっぽこソースだけど、よかったら眺めてやってくださいな。
ttp://www10.ocn.ne.jp/~kc39fgax/DirectX8_SKL.zip
00696602/12/19 17:40ID:+qpAae3H
>>68
ありごとうございます。
環境不足ですね。

サンプルソース激しく参考にさせていただきます。
お互い頑張りましょう。
0070名前は開発中のものです。02/12/21 00:21ID:H0pabYy8
DirectX9 キタ━━(゚∀゚)━━ !!!!!

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

興奮のあまり、旧スレに書いてしまったぜい。
誘導してくれた人、アリガトン。
0071名前は開発中のものです02/12/21 04:40ID:aw46BnhU
>>70
ナイス
休みの暇つぶしが できそうだYO
0072名前は開発中のものです。02/12/21 10:57ID:BdqHu3/h
Direct X9を入れてからDirect Audio8の挙動がおかしい
具体的にはDirectMusicPerformance8::CreateStandardAudioPathが失敗するようになった。
戻り値は0x88781226で、意味は
「パフォーマンス チャンネルがIDirectMusicPerformance8::AssignPChannel を使ってセットアップされたので、
パフォーマンスはオーディオパスをサポートできない。 」
なんだそうだ。しっかし、AssignPChannelを使った覚えはなく、自分のソースを検索しても見つからない(使っていない)
第一、今まで正常に動いていたのが動かなくなる理由にはならないし、
使い方が間違っていて偶然動いていたにしては、戻り値が明らかにおかしいし。
同じ症状の人いませんか?解決策はありますか?
このままだと今まで作ってきたソフトが全滅してしまうのです・・・
00737202/12/21 11:22ID:BdqHu3/h
うわ!Direct Music8のチュートリアル2まで動かなくなってるよ・・・
(\samples\Multimedia\DirectMusic\Tutorials\Tut2)
サウンドデバイスはUSBオーディオだからドライバもクソもないし・・・
こ・・・こりはDirect X9のせいにしてもよかですか?
0074名前は開発中のものです。02/12/21 11:35ID:eiYZ1q8i
基本的なところでバージョン定数はちゃんと定義しましたか?
0075あぼーんNGNG
あぼーん
0076名前は開発中のものです。02/12/21 15:13ID:f6s/Xm4R
C#での使い心地はどうよ?
0077名前は開発中のものです。02/12/21 15:18ID:0+pehiHA
プログラムは昔からやっているんだが、DirectXの勉強をしようと思う。
で、質問なんだがD3DってXファイル以外使えないの?

環境:Visual C++.net
Windows 2000 SP3
0078名前は開発中のものです。02/12/21 15:29ID:WU56vZJB
>>77
いいえ、そんなことはないですよ。
ただXファイルなら読みこむ関数が用意されているので楽なのです、
ちなみにその関数はD3DではなくてD3Dを使いやすくするための付属ライブラリの
D3DXについてます。

市販ソフトや良く出来たフリーソフトは
独自形式データ&独自の読みこみルーチンが一般的です。
0079名前は開発中のものです。02/12/21 15:33ID:0+pehiHA
>>78
なるほど、だから市販のソフトにはXファイルがないのか。
しかし、モデリングとかはどうするのかな?自分でプラグインとかをつくるの?
0080名前は開発中のものです。02/12/21 15:36ID:WU56vZJB
>>79
モデラーからフォーマットが公開されている形式で出力させる

独自フォーマットへ

っていうコンバータ作るのが一般的かな?
0081名前は開発中のものです。02/12/21 15:39ID:0+pehiHA
>>80
ありがとうございますた。最初はXファイルでやってみて実用的になったら
独自形式の方法もやってみます。
0082名前は開発中のものです。02/12/21 15:46ID:CgoKZUqk
おいおい、C#のサンプルめっちゃ速えよ。十分すぎるほどだ。
どうせ使うつもりないけど、下手にC++にこだわって泥沼に入ってる
オレみたいなのには脅威かも。
0083名前は開発中のものです。02/12/21 16:13ID:i7W/82mb
VISUAL C++ 6.0 WIN MEでやってるけど、
XPでも動くの?C++ 6.0は?
0084名前は開発中のものです。02/12/21 16:29ID:0+pehiHA
>>82
C++とどっちが速いですか?
メモリ使用量も気になるが。
0085名前は開発中のものです。02/12/21 16:52ID:f6s/Xm4R
>>82
 .\         オオオオオオ―――――ッッッッッ       .   /
   \.                                    /
      (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚)
     (゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)
    (゚∀゚)(゚∀゚)(゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚)(゚∀゚)(゚∀゚)
   (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚)
 ( ゚∀゚)( ゚∀゚)( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )(゚∀゚ )(゚∀゚ )
.( ゚∀゚)( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ ) ( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )(゚∀゚ )
( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ ) ( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )
────────────────────────────────

じゃぁ、C#でDirectXを始めよう!!
0086名前は開発中のものです。02/12/21 17:52ID:cUrNSFms
ゲームルーチンを加えるとドンと重くなったりして。
0087名前は開発中のものです。02/12/21 20:16ID:n7PDff7R
>>86
同感。
でも重くなる部分はunsafeで書けば何とかなるんじゃないかなぁ
と言ってみるテスト。
http://www.atmarkit.co.jp/fdotnet/csharp_abc/csharp_abc_021/csharp_abc05.html
0088名前は開発中のものです。02/12/21 22:18ID:1u4LlFCS
>87
C#をunsageで使うぐらいならC++のほうがらくだ
0089名前は開発中のものです。02/12/21 23:18ID:qv5/NQ3k
質問なんだけど、Managed DirectX って結局はDirect Xを扱うためのもう一つの方法なんだよね?
Microsoft.DirectX.DirectDraw.DrawEffects の項目を見てて、
相変わらずDirect Drawでα値を使えるみたいなこと書いてあるんだけど、
別に、使えるようになったわけじゃないんだよね?Direct Xの本体はおんなじ物なんだよね?
0090名前は開発中のものです。02/12/21 23:55ID:BzlxTchV
今更そんなことを聞く理由が理解できない
0091名前は開発中のものです。02/12/22 00:11ID:VTU8yluM
いろんな問題が起きそうなのでDrawは終了だろ?
グラボの方のサポートも怪しくなってきそうだし。
0092あぼーんNGNG
あぼーん
0093名前は開発中のものです。02/12/22 06:16ID:YI0WQzNU
おまえらひきこもんな
0094名前は開発中のものです。02/12/22 09:59ID:6B/yK4Zz
DirectDraw使い = 引きこもり同人STG作者
終了
0095Jumper⌒Y⌒Y⌒( ゚∀゚) ◆JumpZrpgkU 02/12/22 10:02ID:/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とかありますな。
今のとこ使えないようだが、
シェーダもオブジェクト指向で書けるようになるわけですか。
シェーダプログラムの拡張がしやすくなってウマー…なのか?
0096名前は開発中のものです。02/12/22 10:14ID:rCjzYQTs
C++ の予約語に合わせてみただけに一票。
0097名前は開発中のものです。02/12/22 10:20ID:6B/yK4Zz
8.1からの移行で、いままでnvasmを使ってた人はdx9の dcl_position
どうするの?
0098あぼーんNGNG
あぼーん
0099名前は開発中のものです。02/12/22 12:54ID:6B/yK4Zz
この板はもうだめだと思いますが、
他にまともなDirectXのBBSありますか?
0100名前は開発中のものです。02/12/22 13:09ID:tpBxr2+C
>>98
前から思っていたが、なんでこのすれは終わるんですか?
0101名前は開発中のものです。02/12/22 13:10ID:6KQt+AoQ
>>99
directxで検索してみればあるでよ。

荒らしてるヤシはpcゲーム作りたいのだが、オカネが無い、
担当させてもらえない、技術ガナイ、英語が読めない、
リストラされて荒れてるだけだから、、、許してやってね。
0102あぼーんNGNG
あぼーん
0103名前は開発中のものです。02/12/22 16:14ID:mBDSZwTf
>>99
実はプログラム技術板にもDirectXスレがあったり…

鬱だ氏のう DirectX 2
http://pc3.2ch.net/test/read.cgi/tech/997101556/l50
0104あぼーんNGNG
あぼーん
0105名前は開発中のものです。02/12/22 17:22ID:sSsEI5R3
以前DirectX7で作ったノベルゲームをDirectX8で作り直そうと思いやってみたのですが、
テクスチャを使うと背景画像やキャラ画像が512x512になってしまいます。
やはりサーフェイスを使うべきでしょうか?
DirectX8のスプライト機能は重いって聞くけど、
ポリゴンにテクスチャを貼るようにしたほうがいいのでしょうか?
0106名前は開発中のものです。02/12/22 17:37ID:IeNHUVjA
WinAPIで組むかテクスチャをよりでかいサイズを使うぐらいしか解決策がねぇな。
後は7以前で組むとか。
0107名前は開発中のものです。02/12/22 17:47ID:ab12EPgU
DX9の2D描画系ではダメか
0108名前は開発中のものです。02/12/22 18:01ID:sSsEI5R3
>>106
DX8の2D系はあまり良くないみたいですね。
もう少し弄ってみてダメそうなら諦めます。

>>107
DX9はまだ触ってないのでなんとも言えません。
触るのはもうちょと先ですね・・・
0109名前は開発中のものです。02/12/22 19:06ID:Zc9XiYaJ
8は中途半端だから、俺はまだしばらく7を使うよ。
7なら大抵の環境で動くしな。1年後くらいに9に移行する。
0110名前は開発中のものです。02/12/22 20:55ID:O6Yda65i
今から9やってそのまま一年経過させれば良いのでは?
0111名前は開発中のものです。02/12/22 23:33ID:3R93okVP
DirectX8.1を使ってメッシュの頂点配列やマテリアルなどのオプション子データを
抜き出して、メッシュを表示しながらそれらを編集するプログラムを作って
います。
D3DXLoadMeshFromXofでメッシュを作ると、そのメッシュXfileDataの中に
あるマテリアルリストのデータやメッシュノーマルのデータ等の子データが
GetNextObjectで取得できなくなってしまいます。先にその子データを取得すると今度は
D3DXLoadMeshFromXofの方でエラーがでるため、多分この関数内でGetNextObjectを
やっているのだと思います。そのせいでこの関数が子を取得するとこのメッシュデータ
の子を自分で取得できなくなる、という風に考えているのですが、どうにかして
GetNextObjectでの子オブジェクトの参照カウントを元に戻す方法ってありますか?
AddrefやReleaseをしてみても何も変化はないです。教えて下さい。
011211102/12/22 23:36ID:3R93okVP
>先にその子データを取得すると今度は
>D3DXLoadMeshFromXofの方でエラーがでるため

間違えました。エラーはでないのですが、マテリアルリスト等の子データを
持たないメッシュができてしまい、表示がおかしくなります。
0113あぼーんNGNG
あぼーん
■ このスレッドは過去ログ倉庫に格納されています