2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

鬱だ氏のう DirectX (Part 4)

1 :名前は開発中のものです。:02/03/16 19:57 ID:0VBfShh8
DirectXについてマターリと技術情報交換&雑談するためのスレッド。
初心者用相談室では扱わないような少し高度な話題も受け持つ。

■旧スレ(プログラム板)
http://piza.2ch.net/tech/kako/966/966655286.html  (Part 1)
http://pc.2ch.net/test/read.cgi/tech/997101556/   (Part 2)
http://game.2ch.net/test/read.cgi/gamedev/1005119775/ (Part 3)

2 :名前は開発中のものです。:02/03/16 20:04 ID:???
なんか重い

3 :名前は開発中のものです。:02/03/16 20:28 ID:???
前スレ999の訂正
×ユーザーを
○ユーザーに

4 :名前は開発中のものです。:02/03/16 21:05 ID:0wG/b+eS
おもしろさはかませないよ

5 :名前は開発中のものです。:02/03/17 02:25 ID:???
>>1
スレ立てお疲れー。

6 :名前は開発中のものです。:02/03/17 12:06 ID:???
DirectX8.1で、IDirectDraw3使用。
Matrox Millenium G400で、Lock後のDDSURFACEDESCのddpfPixelFormatで、
BPPやRGBビットマスクが正しい値を示さないようなんだけど、
同じ症状の人居ない?


7 :名前は開発中のものです。:02/03/17 15:58 ID:???
せめてIDirectDraw4以降にしてあげなよ・・・

8 :名前は開発中のものです。:02/03/18 00:37 ID:e4TWzhqJ
前スレで気になったことを少しだけ。

Direct Xのコンパネは一般ユーザー用のDirect Xをインストールしただけでは追加されません。
ゆえに、コンパネを一般ユーザーにいじくられることは無いということ。
っていうかむしろ、一般ユーザーにいじくらせてはいけない。

9 :6:02/03/18 03:25 ID:???
>>7
そうしたいところだけど、デフォのWin95やNTをサポートしないといけないのよ。

10 :名前は開発中のものです。:02/03/18 04:20 ID:cC7IKhF7
単純なビットマップ(BITMAPではない)
typedef struct {
unsigned char r;
unsigned char g;
unsigned char b;
unsigned char a;
} ORG_PIX;
とか用意します。

そんで、CreateSurface()で、適当なサーフェースを作ります。ポインタをpSurとしましょう。
で、ORG_PIX* imgに展開されているイメージを、作ったサーフェースにコピーしたいんです。

こいつのピクセルフォーマットがA8R8G8B8のときなら
dc = pSur->GetDC();
StretchDIBits(dc,.....);
pSur->ReleaseDC();
でどうにかαの値も転送できたんですけど、

それ以外、例えばA4R4G4B4の時なんかはどうにもなりません。
どうするべきなんでしょう?
(転送元のPIXは、それなりに減色したりパックしたり、当然します)



11 :名前は開発中のものです。:02/03/18 04:27 ID:???
>10
サーフェスをLockしてがりがりやるだけなのでは?
転送ルーチンを想定フォーマット分作る。
サーフェスをビデオメモリに取るとLockした時激遅になるから、
システムメモリに取った方が良いよ。

12 :10:02/03/18 04:59 ID:dk9uRKOS
>>11
ありがと。いろいろ見てみたんだけど、

DDSURFACEDESC2 desc;
void* img = desc.lpSurface;

pSur->GetSurfaceDesc( &desc );
pSur->Lock();
..... imgを処理 ......
pSur->Unlock();

って感じになるのかな?
テクスチャに使用するつもりなんで、ビデオメモリに取って、
最初の初期化だけで使用するなら問題ないよね??

で、あとここで直接のimgなんだけど、
A1R5G5B5 : WORD*、
R8G8B8 : DWORD*
A8R8G8B8 : DWORD*
となるんでしょうか?このあたりの資料が見当たらない・・・
あと、システムメモリだったら
*img = 0x00;
とか直接書き換えてよさそうなんだけど、ビデオメモリでも
そんなことが許されるんでしょうか?


13 :10:02/03/18 05:00 ID:dk9uRKOS
DDSURFACEDESC2 desc;
pSur->GetSurfaceDesc( &desc );

void* img = desc.lpSurface;
pSur->Lock();
..... imgを処理 ......
pSur->Unlock();

こうでした・・鬱

14 :10:02/03/18 05:06 ID:dk9uRKOS
ああ!!わかった!!
「クライアント メモリ サーフェスの作成」
ってヤツだ!!!見つけた!!!
なんだ、CreateSurface()で、
DDSURFACEDESC2 ddsd2;
ddsd2.dwFlags = DDSD_WIDTH | DDSD_HEIGHT | DDSD_LPSURFACE |
DDSD_PITCH | DDSD_PIXELFORMAT | DDSD_CAPS;
ddsd2.lPitch = (LONG)1テクセルのバイト数 * 横ドット数;
ddsd2.lpSurface = lpSurface;

ってやって、ピクセル情報とバッファを指定できるんだね。
ありがとう!






15 :名前は開発中のものです。:02/03/18 17:41 ID:???
>>9
デフォのWin95はDirectXはいってないでしょ?

16 :6:02/03/18 17:56 ID:???
>>15
いや確かにそうなんだけど、NTはどのバージョンまでサポートだったかな。
というかそういう事について議論したいんじゃなくて、G400の挙動について
知りたいんだけど…。
プライマリのddpfPixelFormatが嘘を返すみたいだ。プライマリ以外は全て
システムメモリに取ってるからかな。

17 :名前は開発中のものです。:02/03/18 18:51 ID:???
ドライバは最新だよね?
G400は・・・かなり手ごわいと聞くぞ。

18 :6:02/03/18 20:53 ID:???
>>17
クライアント(ユーザね)は最新だと言ってるみたい。
Matrox製はいつになっても手強いな。

19 :6:02/03/19 02:29 ID:???
原因判明。PrimaryのLockが出来ないために、DDSURFACEDESC自体が
取得できていなかった模様。何故Lock出来ないかは不明。
バグなのか仕様なのか。
while((hr=pSurface->Lock(NULL, &dddesc, 0, NULL))==DDERR_WASSTILLDRAWING);
Lockしてるところはこんな感じ。代わりにセカンダリを見るようにして対処。

20 :名前は開発中のものです。:02/03/19 04:24 ID:31ewjsnk
プログラマ板でも書いたのですがレスがつかなかったのでこちらで・・・。

Zバッファをbltで別のZバッファに
保存しているのですが、Zバッファのbltをサポート
しているかどうかを調べることは出来るのでしょうか。

それとも調べるまでも無く、
基本的に備わっている機能なのでしょうか。

使用しているのはDirectX 7です。


21 : :02/03/19 05:00 ID:???
そんな事できる環境あるんだ

Geforce(DX8&HAL)じゃZbufferのLockすら出来ないよ

GetSurfaceDescで調べられるんじゃない?

22 :名前は開発中のものです。:02/03/19 07:28 ID:???
>Geforce(DX8&HAL)じゃZbufferのLockすら出来ないよ

うげ。ヤなこと聞いちゃったなー。
レンズフレアのサイズ決めるのどうしよう。


23 :6:02/03/19 10:49 ID:???
一部のビデオカードだと逆にLockしないと、
GetSurfaceDesc出来なさそうで怖いなぁ。
うちはRIVATNT2なんだけど、プライマリをLockできる。
最近のビデオカードだと駄目なのかもしれないなぁ。

24 :名前は開発中のものです。:02/03/19 11:40 ID:???
このスレのタイトルどおりだ…

25 :20:02/03/19 13:08 ID:tA4eHCtW
念のために、という程度の軽い気持ちで聞いたのに・・・
まさか出来るほうが稀だとは。

ビデオ表示関係作り直しです。

 (゚∀゚ )   アヒャ!

>>21さんありがとうございました。

26 :20:02/03/19 13:26 ID:9k2LxFbF
あぁ・・・でも>>21さんはDX8でって言ってますね。
たしかサーフェス関係の操作はDX8で大分制限されてると聞きました。

うちはGeForce2 MX+DirectX 7なんですが、ZバッファのbltもLockも出来ました。
DirectX 7でも出来なかったという方はいますでしょうか。

作り直すのはもうちょっと調べてからにします。
でないと本当に

 (゚∀゚ )   アヒャ!

ってなるので。

27 :名前は開発中のものです。:02/03/19 13:42 ID:7hnDVQXs
ラデオンとかGF4とかって
チップ内部にZバッファのMIPMAPみたいなの持ってるって言うじゃん。
そういうのが影響しとるのかの?

28 :20:02/03/20 00:34 ID:J9JVDwtj
DirectX 8使ってみました。

ZバッファのLockは>>21さんの言っていたように出来なくなってました。
フォーマットにD3DFMT_D16_LOCKABLEを指定してみましたが、
そのときはデバイスの作成すら出来なかったです。

ただ、SetRenderTargetでZバッファの交換は出来ました。
これなら、私のようにZバッファの書き換えではなく、
Zバッファを差し替えることが目的であれば使えそうです。


29 : :02/03/20 00:44 ID:???
差し替えるにしても、書き込めないと使えなくない?

FFみたいな背景のプリレンダーした結果のZバッファを書き込む
とかできないんかねぇ?

30 :名前は開発中のものです。:02/03/20 01:10 ID:TL0LxE1T
プログラム板では誰も答えてくれない、鬱・・・
親切な人教えてください。

これからDirectXを学習してみようと思ってるとこです。
で、現在CでWinアプリがぼちぼち書ける状態なのですが、
DirectXに行く前にC++覚えたほうがいいですか?

DirectXのサンプル見ると、classやnewやdeleteを使っているので
C++覚えないで行くとハマる?


31 : :02/03/20 01:15 ID:???
ちゃんとCがわかってるなら問題にならないよ
まぁNew、Delete位は知らないと駄目だし、
MSのサンプル読むなら 継承(ポリモーフィズム) も知らないと駄目かな

工学社のDX入門本とか読めば問題ないと思われ


32 :名前は開発中のものです。:02/03/20 01:23 ID:3xx3+7Z6
>>30
自分の場合いきなりC++から覚えましたよ。
VC++に付いてた参考書がC++だったので・・。
おかげで挫折して1年間ぐらい無駄にしましたけどね。
既にCをマスターしているのならC++を覚えるのはそう難しくないので
DXの前に軽くこのなしてしまって良いと思います。
ただC++は膨大なのであんまり深入りしないで、classの文法程度を覚えたら
DirectXと同時進行で覚えていくのが良いと思います。

33 :20:02/03/20 01:26 ID:J9JVDwtj
>>29
私の場合はDirect3Dでレンダリングした時のZバッファを
保存しているだけなので書き込みは必要ないんです。

と、思ったんですが、これ使えるのは1回だけですね。
差し替えた後にレンダリングしたら当然Z値が変わってしまう・・・。
何回も使う必要があるのに・・・。

やっぱりDirectX 7でZバッファをbltしていいのかどうか知りたいです。
誰か出来ないビデオカード持ってる人いませんか〜 (;´Д`)

34 :30:02/03/20 01:35 ID:TL0LxE1T
>>31-32
レスどうもです。
C++の基本的なところを理解してからDirectX行ってみようと思います。

それにしてもDirectX8のヘルプ、3D初心者の為の解説とかあって
すっごく親切ですね。

35 :名前は開発中のものです。:02/03/20 01:43 ID:???
>>33
ヘルプ見た?

>現時点では、Z バッファは Direct3D アプリケーションでしか使用されないが、
>DirectDrawSurface7::Blt を使用して DDBLT_DEPTHFILL フラグを設定することにより、
>Z バッファ サーフェスの深度値を設定できる。
>詳細については、Direct3D 直接モードの「深度バッファのクリア」を参照すること。

>DirectDraw を使用して深度バッファをクリアすることもできる。
>これをクリアするには、深度バッファ サーフェスの IDirectDrawSurface7::Blt メソッドを呼び出す。
>DDBLT_DEPTHFILL フラグは、ブリットによって深度バッファをクリアすることを示す。
>このフラグを指定するときは、IDirectDrawSurface7::Blt メソッドに渡す
> DDBLTFX 構造体を初期化し、その dwFillDepth メンバを必要な深度に設定しなければならない。

と書いてある。

書いてあるからといって実際に使用できるかどうか不明だが、
すくなくとも基本的には使えると思っていいんじゃないの。




36 :20:02/03/20 02:12 ID:???
>>35
はい、私も基本的に使えるものだと思いつつ、
念のために聞いてみたのですが、
>>21さんのレスでちょっと不安になりまして・・・。

一応、保険ということで
Zバッファを保存できなかった場合の対処コードは書くつもりです。
パフォーマンスが落ちると思うので、この保険を使わずに済めばいいのですが。

37 :顔も名前も出さずに毎月100万円:02/03/20 02:28 ID:X28IDIqU
Future-Web(フューチャーウェブ)登場
なんと10,000円単位の収入    

●10,000円単位の高収入
 1件につき最大10、000円の高額収入。月収100万円以上も可能。
●画期的なビジネス!
 インターネットを利用したこれまでにない斬新で画期的なビジネスです。
●誰でも出来ます!
 インターネットが出来る環境の方なら誰でも参加可能です。
●専門的な知識は一切不要!
 ビジネスに必要なツールはすべて当社で用意いたします。また、サポ
 ートも万全です。
●詳細は今すぐHPをご覧ください。
  http://www.future-web.tv/7823/


38 :名前は開発中のものです。:02/03/20 16:29 ID:7vhr8N1/
D3DX のヘルプファイルってないのでしょうか?
英語でもいいんですけど .chm っていうのかな、いつものヤツ。
使ってる人はどうやってるんだろう?ヘッダだけ?

39 : :02/03/20 16:54 ID:???
日本語版あるじゃん

40 :名前は開発中のものです。:02/03/21 03:20 ID:5/uSd78r
そういえばchmヘルプって検索使ったら
ネットにつなごうとするんだけど・・・。
なんかいやだなぁ。

41 :名前は開発中のものです。:02/03/21 04:27 ID:4EcPxfN/
シツモンです。
マウスのカーソルがウィンドウに乗った途端に遅くなるのはなぜですか?
遅くなるプログラムとならないプログラムを見比べても違いは見つからないんです。


42 :38:02/03/21 06:44 ID:UEeaAHcN
>>39
どこにあるのでしょう?探したけれど見つかりません。
MS のサイトを見てもそれらしいものは見つからないし…

43 :名前は開発中のものです。:02/03/21 08:02 ID:???
>42
探したなら見つかるはず。どこ探してるの?

44 :名前は開発中のものです。:02/03/21 11:51 ID:???
>>41
WM_PAINTで全面描画してるからです。

45 :名前は開発中のものです。:02/03/21 13:32 ID:Z3SYmda6
>>41
私のプログラムでも、VooDoo3000、G400でカーソルが遅れて動く現象
が発生します。フルスクリーン時には発生しません。
レンダリング後にSleepやGetDC・ReleaseDCなどを入れると
軽減することがありますが、グラフィックカードによって挙動は様々です。
それにSleepなんて無駄なので、おすすめしません。
おそらくウインドウメッセージ関連だとは思うのですが、はっきりした
ことは私にもわかりません。


46 :名前は開発中のものです。:02/03/21 16:22 ID:0p7f/wDg
日本語の文字表示を、市販のゲーム(エロゲー)みたいに 丸っこい
滑らかなフォントで表示するにはどうすればいいのでしょうか?
 別個で、フォントデータが必要なのでしょうか?

47 :名前は開発中のものです。:02/03/21 17:23 ID:gYyzC957
>>46
太字にしてアンチエイリアスかけるとか。

48 :名前は開発中のものです。:02/03/21 20:00 ID:???
>>46
丸っこいフォントを用意しなさい。

49 :名前は開発中のものです。:02/03/21 22:49 ID:Z3SYmda6
>>46
X フォントファイル自体の配布(ソフトに組み込む)
○ ゲームや広告で使用する
だと思うのですが、フォントをビットマップに書き込んで
転送して使えばOKなんじゃないででしょうか。
一般に売っているフォントでの話ですが。


50 :名前は開発中のものです。:02/03/21 23:25 ID:UEDPziA9
>>44
thx

51 :名前は開発中のものです。:02/03/21 23:33 ID:???
うちの環境なんてマウスカーソルをウインドウ内に*置かないと*遅くなる。
どうもウインドウにハードウェアで拡大してBltするときに起こるらしい。
OSが違うと起こらない。ドライバの不都合の模様。もうアホかと。

52 : :02/03/21 23:39 ID:???
環境かけよ

53 :名前は開発中のものです。:02/03/22 00:13 ID:???
例えば、51みてーに既知外がコピぺするわな。
そうすると、OSが違うとなにが反応するか分からないのよ。
もうアゴかと。置かないと、遅くなるどころか早く振動するのよ。
もう終わってり(以下尺)


54 :38:02/03/22 00:35 ID:???
>>43
ローカルディスクの中を .chm で検索しました。
通常の機能についてのヘルプはありましたが D3DX については書いてありません。
MS のサイトを調べてみましたがダウンロードできるのはローカルディスク内に
あるのと同じ物でした。

D3DX のヘルプはどこにあるのでしょう?探し方がおかしいのだとは
思いますが、本当にわかりません。よろしくお願いします。

55 :名前は開発中のものです。:02/03/22 00:39 ID:???
http://www.microsoft.com/downloads/release.asp?releaseid=26072

ご苦労様。確かにMSサイトはどこにあるかわかりにくい


56 :名前は開発中のものです。:02/03/22 00:40 ID:bpcg30Y5
>>54
DirectX 8.0のヘルプの中にあったよ。

57 :名前は開発中のものです。:02/03/22 00:53 ID:???
SDKのヘルプを開いて「キーワード」ペインでD3DXと打ってみる、と。


58 :38:02/03/22 01:10 ID:???
>>55
ありがとうございます!!
無事ヘルプを得る事ができました!!

59 :名前は開発中のものです。:02/03/22 01:14 ID:???
というか、英語ヘルプにもD3DXのAPIリファレンス含まれてますけど……。
未だに38の状況が良く分からない拙者であった。


60 :名前は開発中のものです。:02/03/22 01:21 ID:???
       ∧_∧
      ( ´Д`) 
     /    \
  __| |  60 | |__
  \   ̄ ̄ ̄ ̄ ̄   \
  ||\            \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||

61 :名前は開発中のものです。:02/03/22 02:36 ID:sbFQt95u
最近 DirectGraphics8 をはじめたばかりなのでよくわからないのですが、
同じ頂点データをシーンの様々な場所に使いまわすには
それぞれの物体を描く前に、SetTransform(D3DTS_WORLD, 位置とかを設定した行列)
をするという事でしょうか?
一般的なやりかたというのはこういう感じでいいのでしょうか?

62 : :02/03/22 02:40 ID:???
OKです。それで対応できない状況は別の方法でやります

63 :61:02/03/22 02:43 ID:sbFQt95u
>>62
ありがとうございます。これでオッケイなのですね。
後学の為に聞いておきたいのですが、この方法で対応できない状況というのは
どんな場合なのでしょう?


64 :名前は開発中のものです。:02/03/23 00:18 ID:U1CJ6Ne+
D3DXMatrixLookAtLH の pUp って pEye からの相対位置じゃなくて
(0,0,0) からの位置ですか?

65 :名前は開発中のものです。:02/03/23 01:06 ID:B+RYlbts
>>64
ワールド座標系での、視点の上方を表すベクトルですね。多分。
(0,0,0) からの位置。

66 :64:02/03/23 02:43 ID:U1CJ6Ne+
>>65
どもです。pEye からの相対値だと勘違いして随分ハマリました。

67 :名前は開発中のものです。:02/03/23 19:34 ID:6+0k3M1g
Bio100%でも書いたのですがレスがつかなかったため
2重投稿になってしまい申し訳無いのですがよろしくお願いします。

VBで作成していてDirectPlayVoiceTestのレジストリを参照する作業は、
DirectPlayVoiceTest8.CheckAudioSetup("", "", 0, DVFLAGS_QUERYONLY)
であると思ったのですが、テスト(全2重と確認)後に値を取得したときに『2』であり、DVERR_RUN_SETUPもDV_FULLDUPLEXもDV_HALFDUPLEXも値が違いました。
何処かに間違えがあるのでしょうが、全く判りません。

解決方法を教えて頂きたいです。お願いします。

68 :名前は開発中のものです。:02/03/23 20:20 ID:bIOVjYAR
HRESULTでいうと0x2はERROR_FILE_NOT_FOUNDになるんだけど。
DVFLAGS_ALLOWBACKは成功すんの?

69 :名前は開発中のものです。:02/03/23 20:58 ID:6+0k3M1g
戻るボタンを押すとオートメーションエラーとなってしまいました。
(DirectPlayVoiceTest8.CheckAudioSetup("", "", Me.hwnd, DVFLAGS_ALLOWBACK))
その後、デバックを押し、その一時停止状態からもう一度開始すると↑をもう一度やりました。

70 :67.69:02/03/24 13:42 ID:5HzI58ib
DVERR_RUN_SETUPの値はDirectPlayVoiceTest8.CheckAudioSetup("", "", 0, DVFLAGS_QUERYONLY)の
エラーの値で一致したのですが、全2重等を確認した後はエラーは出ず、
値を取得する事は出来ませんでした。

71 :67.69.70:02/03/24 13:45 ID:5HzI58ib
ただ、エラーコードの中にDV_FULLDUPLEXもDV_HALFDUPLEXもあるため、
Err.Numberから値を取るような気はしてるのですが、上手くいきませんです。

72 :名前は開発中のものです。:02/03/24 20:33 ID:5HzI58ib
『エラーは負の値で表され、組み合わせて使用されることはない。』のはずなのに、
DV_FULLDUPLEX = 1376261
DV_HALFDUPLEX = 1376266
となるのと、テスト後のDirectPlayVoiceTest8.CheckAudioSetup("", "", 0, DVFLAGS_QUERYONLY)の値は
『0』だったり『2』だったりします。


73 :名前は開発中のものです。:02/03/25 19:52 ID:???
マルチ投稿する奴には答えないという暗黙のルールが。

74 :名前は開発中のものです。:02/03/26 22:30 ID:???
VB使ってる奴が少ないと言う罠。

75 :名前は開発中のものです。:02/03/27 00:54 ID:???
VC++.net でDirectXはどんな感じになったの?
誰か試した人いる?

76 :名前は開発中のものです。:02/03/27 00:59 ID:???
DirectXはDirectXだろーが
あほかお前

77 :名前は開発中のものです。:02/03/27 02:08 ID:???
          /⌒彡:::
        /冫、 )::: ・・・・その自作自演に何の意味があるのだ・・・
       __| `  /:::
      / 丶'  ヽ:::
     / ヽ    / /:::
    / /へ ヘ/ /:::
    / \ ヾミ  /|:::
   (__/| \___ノ/:::
      /    /:::

78 :名前は開発中のものです。:02/03/27 03:23 ID:???
>>75
VC++.netnに入ってるのはdx8.0だね。


79 :名前は開発中のものです。:02/03/27 06:39 ID:???
x ファイルの構造について、詳しく解説してるサイトはないでしょうか?
特にアニメーションがさっぱりです

80 :名前は開発中のものです。:02/03/27 22:32 ID:???
>>79
俺もきぼんぬ。
ただ今の野望はアニメキャラを3Dで動かすこと。

81 :名前は開発中のものです。:02/03/27 22:46 ID:???
>>79-80
SDKのヘルプ以上に詳しくわかりやすい情報は無いと思いますが。


82 :79:02/03/28 01:46 ID:???
ここのソース参考にして頑張ってみます
ttp://home7.highway.ne.jp/nomura_y/program.htm
なんかわかったら教えてください。


83 :80:02/03/28 02:34 ID:???
>>82
サンクス。俺も勉強します。
サンプルのSkinnedMeshがワケワカメなのが俺だけじゃなくて安心した。

84 :79:02/03/28 04:33 ID:???
結構わかってきたかも、これから自分のコードに落としこみます。
80さん、わかんないことあったら聞いてください。できたら答えますんで

85 :名前は開発中のものです。:02/03/28 12:10 ID:???
          /⌒彡:::
        /冫、 ):::  ・・・その(以下略
       __| `  /:::
      / 丶'  ヽ:::
     / ヽ    / /:::
    / /へ ヘ/ /:::
    / \ ヾミ  /|:::
   (__/| \___ノ/:::
      /    /:::

86 :80:02/03/28 19:43 ID:???
>>85
全然自作自演じゃないんだが。

こんな普通のやり取りも自作自演に見えるほど
この板の住人は少ないのか?

87 :名前は開発中のものです。:02/03/28 23:10 ID:heIiu0GQ
>>86
85が自作自演なんだよ(藁

88 :名前は開発中のものです。:02/03/29 02:06 ID:???
皆さんは8.1SDKに付いてるDirectX AppWizard使ってますか?

89 :名前は開発中のものです。:02/03/29 04:28 ID:AV6+tb2a
シツモーン

皆様Xファイル読み込んでアニメーションさせたい言ってますが、
その元のXファイルはどうやって作るんでしょうか?
お安いところでメタセコイヤなど有りますが、アニメーションは?

なんかフリーでいいものあるんでしょうか?


90 :名前は開発中のものです。:02/03/29 08:36 ID:???
max安いよ

91 :名前は開発中のものです。:02/03/29 10:14 ID:???
たかいって・・・

92 :名前は開発中のものです。:02/03/29 12:05 ID:Jx1kEynD
SHADEはXファイル吐かないんだっけ?
当方はライトウェーブのプラグインを使ってる。

93 :名前は開発中のものです。:02/03/30 19:08 ID:NfT6Ft0o
DirectX8のDirectSoundはDSBCAPS_CTRLFXを持つバッファに
DuplicateSoundBufferを使えませんが、
銃弾や爆発音などは中身の同じ複数のサウンドバッファを
作ってやるものなんですか? 無茶苦茶むだっぽいんですが・・・
それともIKsPropertySetでEAX使うんでしょうか?


94 :名前は開発中のものです。:02/04/01 03:05 ID:0JhLjDkQ
ぶっちゃけメッシュという単語の意味がわかりません。
検索かけてもばらばらな意味合いで、どれがそうなのか判別つかず。。。

だれか教えて。

95 :名前は開発中のものです。:02/04/01 03:17 ID:BvPbMnQF
ポリゴンが集まってりゃメッシュです。
いやいや、1枚でもメッシュかも?
そんなもんです。

深く考えるのはよしまショー

96 :名前は開発中のものです。:02/04/01 03:28 ID:0JhLjDkQ
Σ('ロ')なんと

なんか「メタセコではDX8のメッシュ情報は云々・・・・」とかいうのが
どこかにあったんで、DX8から取り入れられた何かしらの技術だと
思ってたんですが・・・そうなのね。

thx!

97 :名前は開発中のものです。:02/04/02 20:16 ID:evm2qedr
みんなどうやってキー入力取ってる?
WndProcでやると簡単だけどカクカク。
DirectInput使ってる?

98 :名前は開発中のものです。:02/04/02 20:22 ID:Ks0FRQrf
>>97
当然DirectInput。初期化部分はサンプルからコピペすれば簡単だよ。
WndProcはALT+TABとかALT+F4のようなシステムコマンドに使うもの。


99 :名前は開発中のものです。:02/04/02 20:40 ID:evm2qedr
>>98
ほほう。
サンプルってこれ?
ソース ファイル :(SDK ルート)\Samples\Multimedia\DirectInput\Joystick
ちょっとこれ見てみるよ。

100 :名前は開発中のものです。:02/04/02 21:55 ID:???
      ∧∧
 丿′ ̄;'',,';Д。) <アア〜100だ〜げっとだ〜
  UU ̄U U


101 :名前は開発中のものです。:02/04/03 04:28 ID:???
>>97
そこらへんのライブラリからコピペしてくると良いよ。

102 :名前は開発中のものです。:02/04/03 09:07 ID:???
フルスクリーンでVSync待たずにビルトしたいのですが
D3DSWAPEFFECT_COPYだと思ったら違った
質問しようと思ってメンバ調べたら下にD3DPRESENT_INTERVAL_IMMEDIATEがあった
鬱だ詩嚢

103 :名前は開発中のものです。:02/04/03 11:15 ID:???
>>97
DirectInput使うのがめんどくさいときとかテスト用のプログラム作ってるときは
GetAsyncKeyStateとかGetKeyboardState使うと楽だよ

104 :97:02/04/03 18:35 ID:pyeIqBtk
MSのサンプルに見きりをつけてライブラリから探してみるよ〜。
ホタテのコードでも見てみるか。

105 :名前は開発中のものです。:02/04/03 18:49 ID:???
>>104
どこがわからんの?
チュートリアル通りにやれば誰でも出来ると思うんだが?

106 :97:02/04/03 19:58 ID:???
できたよ〜。

107 :名前は開発中のものです。:02/04/03 20:13 ID:5L/0y8l8
DirectX8で2Dシューティングゲーム作ってるんだが
背景マップをオフスクリーンサーフェースに描いていきたいんだが、
オフスクリーンサーフェースってどうやって用意するんですか?

108 :名前は開発中のものです。:02/04/03 20:38 ID:???
んだが

109 :名前は開発中のものです。:02/04/03 20:51 ID:???
DirectX9まだ?(゚ε゚)

110 :名前は開発中のものです。:02/04/03 21:02 ID:esV7cwkm
>>107

DirectX8では、オフスクリーンサーフェス自体がなくなったから
DIBSectionにでも描いてBltするんじゃなかったっけ?


111 :105:02/04/03 21:12 ID:???
>>107
DirectX8の場合、サーフェスに描いてCopyRectか自分で転送、テクスチャで描くかしか
方法が無かったように思う。

2DならDirectX7でD3DX使った方がかなり楽。


112 :名前は開発中のものです。:02/04/03 21:37 ID:???
>>110,111
ありがとうございます。オフスクリーンサーフェース自体なくなったのか?
知らなかったよ。
事情があってDirectX8でやらなくちゃいけないんです。
どなたか、もし他に方法知ってたら教えてください。

113 :105:02/04/03 21:56 ID:???
>>112
>サーフェスに描いてCopyRectか自分で転送
方法書いたが?これじゃ駄目なのか?

事情はしらんけど、とりあえずはヘルプを熟読することを推奨。

114 :名前は開発中のものです。:02/04/03 23:12 ID:JWGNVBMk
Direct X7でDirect Music使っています。
ポートの列挙でMidi Mapperを探し出したいんですけど、
なんだか環境によって「Midi マッパー」とか「MIDI Mapper」とか
名前が変わりすぎです。(泣
名前以外で判定する方法ってありますでしょうか?
一通りヘルプを読んだんですけど、Midi Mapperについては何もかかれてなくて・・・

115 :名前は開発中のものです。:02/04/03 23:28 ID:???
orで検索すればいいだけじゃん?

116 :名前は開発中のものです。:02/04/03 23:32 ID:JWGNVBMk
全環境のMIDIマッパーリストってあるんですか?
もしあるのなら教えていただきたいです。
一体、何通りあるのでしょう・・・。
英語日本語中国語韓国語。
さらにOSのバージョンによっても微妙に違うし。
ああ、鬱だ。

117 :114:02/04/03 23:37 ID:JWGNVBMk
あきらめてデフォルトの
Microsoft Synthesizerを使うべきなのでしょうか(泣

118 :97:02/04/04 02:08 ID:3oFlzdXM
DirectInput使ってのその後の話、
なんか人のワークスペースをそのまま使うとエラーが起きないのに、
自分のワークスペースでやると
c:\dxsdk\include\dinput.h: DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800

pad.obj : error LNK2001: unresolved external symbol _GUID_SysKeyboard
pad.obj : error LNK2001: unresolved external symbol _IID_IDirectInput8A
dinput8.lib(dilib4.obj) : error LNK2001: unresolved external symbol _GUID_POV
dinput8.lib(dilib4.obj) : error LNK2001: unresolved external symbol _GUID_Slider
等のエラーがでる。
自分で用意した新しいワークスペースに人のコードをまったく手を加えずに追加してコンパイルしても上のエラーがでる。
ちゃんとdinput8.libも設定で追加したし・・・。なぜ?

119 :名前は開発中のものです。:02/04/04 02:24 ID:g7m5dzie
うちは市販ソフトだけど、もうMIDIなんて使う気
さらさらありません。


120 :名前は開発中のものです。:02/04/04 02:37 ID:???
>>119
何使ってます?
CD-DA? or MP3系?
まあ MIDI は音が音源によって変わりますからなぁ。

121 :名前は開発中のものです。:02/04/04 02:39 ID:???
>>118
dxguid.lib

122 :97:02/04/04 02:45 ID:???
>>121
おー、なるほど、つーかバカかおれわ。
さんきゅー。

123 :名前は開発中のものです。:02/04/04 06:56 ID:???
>119
フリーソフトだけど禿同。
回線速度上がったし、もせでも十分いける。

124 :名前は開発中のものです。:02/04/04 14:08 ID:VskWoZt9
鬱age

125 :名前は開発中のものです。:02/04/04 14:48 ID:VWxy3QQo
>>113さん
ありがとうございます。
おかげさまでオフスクリーンサーフェイスを使うことができましたが、
転送がかなり遅いです。
//オフスクリーンからバックバッファにコピー
LPDIRECT3DSURFACE8 pBackBuffer=NULL;
g_pD3DDevice->GetBackBuffer( 0, D3DBACKBUFFER_TYPE_MONO, &pBackBuffer);
RECT rect={0,0,640,480};
g_pD3DDevice->CopyRects(g_pOffSurface,&rect, 1, pBackBuffer,NULL);
てな感じでやっているんですが、何か注意点があれば教えてやってください。

126 :名前は開発中のものです。:02/04/04 21:22 ID:???
CopyRectsってLockして転送してるだけだよ。
DirectX8だと2D描画でもDrawPrimitive使わないと遅いよ。

127 :名前は開発中のものです。:02/04/04 22:45 ID:???
>>125
速度の話なら環境を書かないとなんとも言えない。

128 :名前は開発中のものです。:02/04/04 22:58 ID:AXMg/Cri
Direct3Dの座標変換がうまくいきません。助けて・・・
DirectX8.1です。

単に三角を表示するだけなんですが、D3DFVF_XYZRHW で座標変換しない場合は
表示できたのですが、D3DFVF_XYZを使うと表示してくれないんです。

(頂点の定義部分)
------------------------------------------------------------------
struct CUSTOMVERTEX{
  FLOAT x, y, z;
  DWORD color;
};
CUSTOMVERTEX g_vertecs[] = {
  { 0, 50, 0, 0xffff0000},
  { 50, -50, 0, 0xff00ff00},
  {-50, -50, 0, 0xff0000ff},
};
#define D3DFVF_CUSTOMVERTEX  (D3DFVF_XYZ|D3DFVF_DIFFUSE)
------------------------------------------------------------------

(トランスフォーム部分)
------------------------------------------------------------------
D3DXMATRIX matWorld;
D3DXMATRIX matView;

BOOL InitDevice()
{
  // ワールドトランスフォーム(今のところ使ってない)
/*
  D3DXMatrixIdentity(&matWorld);
  if(FAILED(CD3D.lpD3DDevice->SetTransform(D3DTS_WORLD, &matWorld))){
    CD3D.DispErrMsg("Failed CDirect3D::InitDevice SetTransform(D3DTS_WORLD)");
    return FALSE;
  }
*/
  // ビュートランスフォーム
  D3DXMatrixLookAtLH(&matView, &D3DXVECTOR3(0, 0, -200), &D3DXVECTOR3(0, 0, 0), &D3DXVECTOR3(0, 1, 0));
  if(FAILED(CD3D.lpD3DDevice->SetTransform(D3DTS_VIEW, &matView))){
    CD3D.DispErrMsg("Failed CDirect3D::InitDevice SetTransform(D3DTS_VIEW)");
    return FALSE;
  }
  return TRUE;
}
------------------------------------------------------------------


129 :128の続き:02/04/04 22:58 ID:AXMg/Cri
(描画部分)
------------------------------------------------------------------
BOOL AppMain()
{
  // 画面描画
  CD3D.BeginRender();

  CD3D.lpD3DDevice->SetVertexShader(D3DFVF_CUSTOMVERTEX);
  CD3D.lpD3DDevice->DrawPrimitiveUP(D3DPT_TRIANGLELIST, 1, g_vertecs, sizeof(CUSTOMVERTEX));

  CD3D.EndRender();

  return TRUE;
}
------------------------------------------------------------------

こんな感じですが、実行しても3角形がまったく表示されません。
何が悪いんでしょうか?

130 :名前は開発中のものです。:02/04/04 23:26 ID:???
頭が悪いのではないでしょうか?

131 :名前は開発中のものです。:02/04/04 23:35 ID:WlT6GFeI
>>129
DrawPrimitiveUPがおかしいヨ。
エラーが帰ってきてるはず、
きちんとエラーコード取得して、
ヘルプを参照なさい。


132 :名前は開発中のものです。:02/04/04 23:52 ID:???
>>125
本来の使い方をしていないのだから、速度は求められないんじゃないかなあ。
DirectX8だけどDirectDraw7を使うとか、DIB使って最後だけDirectX使うとか。

事情というのがどの程度の事情で、どんなものを作っているのかわからないから
これ以上はアドバイスのしようが無いと言うのが本音。

133 :128:02/04/05 00:29 ID:qZbbZCHa
>>131
調べてみましたが、DrawPrimitiveUPは0が返ってきてます。

134 :名前は開発中のものです。:02/04/05 00:29 ID:???
DirectX8 SDKじゃDirectX7を使えないと思ってるのかも。

135 :名前は開発中のものです。:02/04/05 00:33 ID:7BV1qZd5
09049541756 おじいさんの謎メッセージが聞ける

136 :119:02/04/05 00:56 ID:???
OggVorbis先物買い

137 :名前は開発中のものです。:02/04/05 07:09 ID:???
>>128
行列を1つ忘れてないか?

138 :128:02/04/05 23:43 ID:qZbbZCHa
>>137
プロジェクション行列追加したら表示できました。ありがと。
ワールド行列は省略可だけど、ビューとプロジェクションは省略不可なのね。

139 :名前は開発中のものです。:02/04/05 23:52 ID:T9OfWPyd
フライトシミュレータとかでオイラー法で積分するとして、
メッセージループから呼び出して計算した場合にFPSが落ちてくると冲が大きくなって
計算精度が落ちると思うんだけど解決法法はあるんですか?
常に同じくらいの冲を取ってプレイヤーの入力後に計算するためには一体どうすればいいんですか?

140 :名前は開発中のものです。:02/04/06 00:30 ID:???
>>139
スレッド使って計算しる
または、毎フレーム最低10回計算するようにしる

ってのはどう?
dtは0に近ければ近いほど良いはずでしたよね?たしか。



141 :名前は開発中のものです。:02/04/06 02:34 ID:???
冲の最大値固定>スローになる
or
描画間引き
or
姿勢行列なら予言数


142 :79:02/04/06 03:12 ID:???
やっとできた...しかも82のサイトの劣化コピーにしかならなかったよ...鬱

143 :139:02/04/06 13:35 ID:2sBUZSQs
>>140-141
ありがとう。
ちょっとこれから試してみます。
まとまったらまた書きます。

144 : :02/04/06 15:30 ID:gGSxUTnj
スレッド使って計算すると、変数が表示用と計算用とダブルバッファに必要になるよね〜
単純な変数構成ならいいけど、親子関係とかあるとグチャグチャになりそう
更にリプレイ用に一部、保存したりすると嫌かも…
いい書き方はないもんか

俺は描画前に凾狽ェ大きければ再度、計算ループを回す方法にした。楽だし


145 : :02/04/06 16:02 ID:gGSxUTnj
あ、ダブルじゃなくトリプルか?

146 :名前は開発中のものです。:02/04/06 16:17 ID:XrlyzQXc
【コピペ1周年】4月7日同時多発オーダーIN吉野家【祭り】
(1)馴れ合い禁止。(一人で来る事。同伴禁止:いても知らぬ顔)
(2)「大盛りねぎだくギョク」を頼むこと。(並盛りねぎだくギョクも可)
(3)各会場ごとに指定時間厳守で現地集合。
(4)食ったら即帰る。
注)吉野家は家に帰るまでが吉野家です。

本スレ
http://ex.2ch.net/test/read.cgi/entrance/1017935504/l50
スレよりぬき等
http://www2.mnx.jp/carvancle/yoshigyu/
お祭り板
http://live.2ch.net/test/read.cgi/festival/1014549688/l50


147 :名前は開発中のものです。:02/04/06 18:09 ID:0Pv1iBiS
DirectX8.1のDirectXAppWizardでDirect3Dベースで作成したプログラムに
DirectShowのビデオ・レンダリング・グラフが作るウインドウを
アプリケーションの子ウインドウにして再生する方法でムービーを流そうと
試みてるんですが再生開始時にビデオウインドウが準備される様子が
一瞬見えてしまうのですがこれを何とかする方法はないでしょうか?
へっぽこな質問でなんですが、アドバイスお願いします。
ちなみに、このムービーの流すやりたかって適切なんでしょうか?
(DirectShowってみんな使ってるのかな?)
どなたか、DirectShowを使ってムービーを流しているゲームのサンプルソースとか
を公開しているHPを知っていたら教えてください。
っていうか、良い文献ないですかねぇ?

148 :名前は開発中のものです。:02/04/07 03:07 ID:KL8x70+x
DirectX8での当たり判定ってどうやるんすか?
3DでやるにはGetBoxっていうのがあるらしいと、検索出たんですが、
ヘルプには乗ってないんです。
誰か教えてタモーレ

149 :名前は開発中のものです。:02/04/07 03:33 ID:CvXz8lsB
>>148
ガッツと根性で数学の勉強しれ

150 :名前は開発中のものです。:02/04/07 03:49 ID:KL8x70+x
数学?
座標の比較するだけではないの?
バウンティンボックスは分かったがこれって自前で設定するのかな。


151 :名前は開発中のものです。:02/04/07 04:39 ID:???
>GetBox
RM時代にフレームのどうのこうのであったんじゃないでしょうか?
円でも箱でもポリゴンでも,基本的には自前でやるもんじゃないの?

152 :名前は開発中のものです。:02/04/07 05:39 ID:???
>150
それくらい自力で出来ないなら諦めた方がいいよ。

153 :名前は開発中のものです。:02/04/07 05:44 ID:v2QhgIlM
どこの板にでもいるんだな、こういう自作自演君は・・・

154 :名前は開発中のものです。:02/04/07 07:26 ID:???
素直に共分散行列の固有ベクトルを使って最適OBBを計算した方がいいよ。

155 :名前は開発中のものです。:02/04/07 08:22 ID:???
AABBしかやったことないんですがOBBの方がいいのかな?
てゆーか時と場合によるだろうけど・・・
しかし共分散行列の固有ベクトルとか初耳なので勉強してみます.。oO(素直にか・・・)

156 :名前は開発中のものです。:02/04/07 17:15 ID:???
AABBとOBBだと、ピーク時はOBBの方が計算量少なくなるって
話を聞いたことあるな。
どこかに両者を比較した論文あるらしいけど忘れた。

157 :名前は開発中のものです。:02/04/07 18:30 ID:???
(´ー`).。oO(OBBを使ってるゲームなんてあるのかなぁ・・・)

158 :名前は開発中のものです。:02/04/07 23:48 ID:sAXQvgZ2
D3DXIntersect
D3DXComputeBoundingBox
D3DXBoxBoundProbe

159 :転がる:02/04/08 00:29 ID:???
BBXとマルチポストなんですが・・・
今回の質問は、ヒラヒラと舞い落ちる葉っぱの表現方法についてです。
キャラクターが木に突っ込んだ時などに、エフェクトとして葉っぱを落としたい
と思っています。
Xファイルから読み込んだ葉っぱを、適当に回しながら落としてみたのですが、
どうやっても独特のヒラヒラ感が出ません。ただ回転して落ちているように見えて
しまいます。
葉っぱのシミュレーションについてご存知の方、よろしくお願いします。

160 :名前は開発中のものです。:02/04/08 02:45 ID:???
>>159
今適当に考えたんですが支点が等速度で落下していく振り子とかはどうでしょう
葉っぱの表面が支点を向くようにして。

161 :名前は開発中のものです。:02/04/08 03:18 ID:lp3UXeXE
>>159
160さんの意見ぽくお手軽にやるなら、

モデリングするとき葉っぱを原点より下に描いて、
レンダリングするときX,Z軸(DirectXの場合)回転を適度に加えるのがいいカモ
(±45度以内でsin使って…とか)
"適当に回しながら"は、Y軸回転だと思うので

シミュとか言われると次元が違いそうで心配ですが(w

162 :名前は開発中のものです。:02/04/08 03:23 ID:???
マウスの入力を取得するのに、DirectInput(DX8)を使ってます

CooperativeLevelに(DISCL_EXCLUSIVE|DISCL_FOREGROUND)を指定して、
WA_INACTIVEを受け取ったらUnacquire()すると、alt+tabで他の窓を
アクティブにしてもマウスが使えます
が、VCのデバッガのブレイクポイントで止まってデバッガがアクティブになると、
マウスが使えなくなってしまいます

NONEXCLUSIVEもフルスクリーンモードもヤなんですが、
対処法を教えてくださぃ

163 :名前は開発中のものです。:02/04/08 06:58 ID:???
>>160
>>161
なるほど、まだためしてませんが、それはいい感じですね・・・
たしかにヒラヒラして見えそうです。厳密にシミュレーションしなくても
それらしく見えればOKですので、これで行きたいと思います。ありがとうございました

164 :名前は開発中のものです。:02/04/08 08:04 ID:M88RZzWM
>>163
適当にまわしながら・・・
は当然1/f揺らぎでね。
(たぶん、葉っぱのゆれも1/f揺らぎ特性があると思われ)

165 :名前は開発中のものです。:02/04/08 13:37 ID:???
>>164
その「適当」具合が一番難しいという罠。

166 :名前は開発中のものです。:02/04/08 14:21 ID:???
ブラウン運動

167 :名前は開発中のものです。:02/04/09 02:43 ID:???
電子雲

168 :名前は開発中のものです。:02/04/09 05:32 ID:???
1/fゆらぎ = ピンクノイズ ≒ ブラウン運動?

169 :名前は開発中のものです。:02/04/09 07:44 ID:JLB9fUqE
>>168
それで良いと思ふ
でも、もしかしたら
1/fゆらぎ = ピンクノイズ ∋ ブラウン運動
かもしれない

170 :名前は開発中のものです。:02/04/09 12:01 ID:???
1/fゆらぎ = ピンクノイズ = フラクタルノイズ

171 :名前は開発中のものです。:02/04/09 13:53 ID:???
>>168-169
ブラウン運動は 1/(f^2) だったような気が・・・。

172 :名前は開発中のものです。:02/04/10 02:07 ID:0pI8WtGk
3Dゲームを作るときに速度や加速度、モーメント等をどの型でとるのが定石ですか?
行列(D3DXMATRIX)にしようかベクトル(D3DXVECTOR3、D3DXVECTOR4)にしようか・・・。
最低限のものだとD3DXVECTOR3なんだろうけど、というかD3DXVECTOR3しかないか。

173 :名前は開発中のものです。:02/04/10 09:23 ID:???
>172
回転モーメント、Matrix以外で表せるの?
普通はMatrixで回転、移動いっぺんに片付けると思ってたが。

174 :名前は開発中のものです。:02/04/10 09:41 ID:???
>>173
モーメントは三次元ベクトル、M(Mx,My,Mz)だよ

175 :名前は開発中のものです。:02/04/10 10:05 ID:???
>>173
ネタですか?

176 :名前は開発中のものです。:02/04/10 14:41 ID:???
>>173
おいおい、運動と座標変換(剛体変換)を混同してないか?

177 :名前は開発中のものです。:02/04/10 23:24 ID:/lR3pti2
>>171
ブラウン運動の位置は1/(f^2)
ブラウン運動の速度は1/f

178 :鼻毛:02/04/10 23:28 ID:3mEoS2rY
3Dバウンディングボックス同士の当たり判定で悩んでいます。
現在、キャラクタが持っている領域情報は、vecMin(左手座標系で手前・左下)とvecMax(同じく奥・右上)で、これらのベクトルと、キャラクタ描画用のMatrixを1セットにしています。
で、これが2セット(バウンディングボックスA、B)あったとして、現在行っている当た
り判定方法は以下のとおりです。

1.バウンディングボックスAの2つのベクトルから、直方体の全頂点に相当するベクトル8つを算出
2.8つのベクトルを、バウンディングボックスAのMatrixでD3DXVec3TransformCoordしてワールド座標に変換
3.更にバウンディングボックスBの逆行列を掛けて、バウンディングボックスBから見た座標系に変換
4.面の方程式を利用して、バウンディングボックスAの12本の辺がバウンディングボックスBの6面と交差していないか検査
5.AとBの立場を変えて1からやりなおす

で、問題というのは、なぜか微妙に当たり判定の位置がずれてしまう事なのです。特に、Matrixにスケーリングの処理が入っていたりすると明らかにずれてしまいます。
なお、vecMinとvecMaxの値は信頼できます。
自己流ですのでもっといい方法があるのかもしれませんが、これしか思いつかなかったので・・・
どなたかご指示を。

179 :名前は開発中のものです。:02/04/11 00:01 ID:???
>>177 サンクス。
水分子の熱運動で駆動されていると考えれば、加速度が白色ノイズになって、
それを積分して得られる速度は確かに1/f(ピンクノイズ)になるね。

180 :171:02/04/11 00:02 ID:???
179=171です。スマソ。

181 :名前は開発中のものです。:02/04/11 01:06 ID:wvSp2EOM
>>178
スケール含みの逆行列掛けるなら、4.の交差判定時も異方性考慮しないと
いけないのが出来てないとかは?

もっといい方法は色々あると思うけど、とりあえずワールドで取る方が楽だと
思う。

182 :鼻毛:02/04/11 20:19 ID:/dNrEQMM
>>181
レスありがとうございます。
スケーリングをしなくてもずれてしまうんです。
そもそも、バウンディングボックスの頂点をワールド座標系→相手の
バウンディングボックスの座標系へと変換する場合、D3DXVec3TransformCoord
を使うというのは正しいのでしょうか?
このへんがイマイチよく分らないままなんです

183 :名前は開発中のものです。:02/04/11 23:07 ID:???
>>182
ワールド座標でやったほうが速いのでは??
さらに、
12本の辺を立場変えて2回もやらなくても、
一方のBOXにもう一方のオブジェクトの6つの頂点が入ってないか
調べるだけで十分。
これだけ単純にしてしまえばズレが出ることはまず無い。
ズレが出てもすぐ見つけられると思うが、どうか?

184 :183:02/04/11 23:09 ID:???
>もう一方のオブジェクトの6つの頂点が

もう一方のBOXの8つの頂点が

の間違いでした。

185 :名前は開発中のものです。:02/04/11 23:18 ID:???
>>183
お答えありがとうございます。

>ワールド座標でやったほうが速いのでは??

ワールド座標系でのやり方がわからなかったんです(汗
それに、8頂点2セットをワールド座標へ変換するのも、8頂点1セットを
ワールド座標系に変換&相手の座標系に変換するのも、コスト的には
変わらないのでは・・・

>一方のBOXにもう一方のオブジェクトの6つの頂点が入ってないか
>調べるだけで十分。

うーん、あんまりレアケースを考えてもキリがないのですが、これだと
細長い物体が交差した場合に判定出来なくないですか?

186 :名前は開発中のものです。:02/04/12 05:33 ID:i7M8RqfU
Direct Input使おうとして、LPDIRECTINPUT8オブジェクトを宣言しようとすると
"error C2146: 構文エラー : ';' が、識別子 'g_pDI' の前に必要です。"
というエラーが起きるのですが、理由がわかりませぬ。
dinput8.libもリンクしてるし、dinput.hもインクルードしているのですが・・・
サンプルをビルドしようとしても同じエラーがおきます。
D3D8オブジェクトは問題ないのですが・・・

誰かお助けを、、

187 :名前は開発中のものです。:02/04/12 06:09 ID:???
>186
多分 ";" が抜けてるんだと思うが、その部分のソース晒せ。

188 :名前は開発中のものです。:02/04/12 06:38 ID:???
>>186
すぐ上でがいしゅつ
dxguid.lib

189 :名前は開発中のものです。:02/04/12 06:48 ID:???
>>182
D3DXVec3TransformCoordはw=1で計算だからあってると思う
あとは簡単なモデルとデバッガで調べればどこがおかしいかすぐわかる
マトリクス自体が誤差の積み重ねで正規直行になってないとか・・
まあ「微妙」がどれくらいかによるけど
>>186

構文エラーなんだからリンク以前の問題でしょう

190 :名前は開発中のものです。:02/04/12 06:51 ID:???
>>189
プ

191 :名前は開発中のものです。:02/04/12 06:58 ID:i7M8RqfU
いやDirectX付属のサンプルでもなるんですが・・・
>>188
それも入れてるんですが

192 :名前は開発中のものです。:02/04/12 07:00 ID:???
>>189
>藁
>構文エラーなんだからリンク以前の問題でしょう

アホか>>189

193 :名前は開発中のものです。:02/04/12 07:10 ID:i7M8RqfU
笑われてしまった・・・
上のログみましたが、dxguid.libはリンクしてるし、うーん、何故だろう・・

194 :名前は開発中のものです。:02/04/12 07:17 ID:jFcfvtj.
# なんか変なのがいるなぁ

>>186
DirectX8のヘッダにパスが通ってない.。
VC++付属のDirectX5のヘッダを読んでるに1票。

195 :186:02/04/12 07:22 ID:i7M8RqfU
>>194
VC付属のdinput.hを消したら上手く行きました。。
VCにDirectXのSDKが付属しているとは知らなかったです。
どうもです。お騒がせしました。。

196 :名前は開発中のものです。:02/04/12 07:34 ID:???
>>182
なぜ貴方様がこのようなところに!

197 :名前は開発中のものです。:02/04/12 07:42 ID:hwRIELgs
>>195
け・・・消さなくても良いのに

198 :186:02/04/12 08:08 ID:i7M8RqfU
>>197
イヤ本当はリネームですが、、
インクルードディレクトリの優先順位を一番上にすればよかったんですね、本当は。

199 :名前は開発中のものです。:02/04/12 08:45 ID:HHg4tI.6
200Get!
志望志望志望志望志望志望志望志望志望志望志望志望志望志望志望志望志望
カフ
ビーグル

200 :名前は開発中のものです。:02/04/12 09:37 ID:t1MnZNUs
なにもわかっていない189に幸あれ!!
そして200ズサー

201 :名前は開発中のものです。:02/04/12 09:41 ID:sNQyI/Ws
>>189
どうもです。
vecMinとvecMaxはポリゴンとして表示してますから、値は信頼できます。
で、バウンディングボックスのMatrixも、同様に信頼できるわけです。
後考えられるのはD3DXVec3TransformCoordによる計算誤差くらいのもの
なんです・・・誤差が問題なんでしょうか・・・マイッタナー

202 :名前は開発中のものです。:02/04/12 21:10 ID:wmHrPQzY
Direct 3Dで、今までメインルーチンでジョイスティック等の入力情報を取得した後
描画していたのですが、
ゲームの速度を一定にするためにタイマーを使って入力を取得するようにしたら、
動きがカクカクになってしまいました。
具体的にはプロシージャのWM_TIMERメッセージ毎に、1/1000秒単位で入力情報を取得しています。
他のタイマー関数などを使ったほうがいいのでしょうか?

ちなみにFPSは殆ど変わっていないのですが・・・

203 :名前は開発中のものです。:02/04/12 21:15 ID:???
>>202
WM_TIMERはウィンドウメッセージの中でも最もプライオリティの低い物ですよ。
(WM_PAINTよりは上だったっけ?)

それと1/1000秒間隔で入力を取得するのは意味がないし、多くのジョイスティック
はそんなに速く反応できません。物によっては1/100秒でも無理です。

204 :名前は開発中のものです。:02/04/12 22:31 ID:???
>>203
> WM_TIMERはウィンドウメッセージの中でも最もプライオリティの低い物ですよ。
しかも、メッセージキューに複数の WM_TIMER がたまると一つにまとめ
られるし。(そうでないと困るんだけど)

1/1000 秒で WM_TIMER を投げても、実際にはかなり不規則・長い間隔で
WM_TIMER が一つ飛んでくるだけ。

205 :202:02/04/12 23:40 ID:wmHrPQzY
なるほどWM_TIMERは駄目でしたか。
しょうがないのでtimeGetTimeなど使ったらだいぶ改善しましたです。
しかしこれでもまだスムーズにいかんです。
昔みたいにVsyncでも使おうかな、、

206 :名前は開発中のものです。:02/04/13 00:48 ID:???
timeGetTimeでスムーズにならないならばプログラムに問題あり。
ハードの性能とプログラムのバランスがとれていないとか。
ちなみにDirectXのバージョンがDebugとRetailでは動作が変わるが知ってるよね?

207 :名前は開発中のものです。:02/04/13 01:05 ID:nn/6jc3U
動作かわんの?! エラーチェックが厳しいだけちゃうんか?

208 :名前は開発中のものです。:02/04/13 01:10 ID:???
チェックが厳しいから動作がはるかに重くなる。

209 :名前は開発中のものです。:02/04/13 01:12 ID:???
はるかに遅いか?
Debugモードでも問題あるプログラムの方がおかしいような
素Pentium@133とかならしらんけどさー

210 :名前は開発中のものです。:02/04/13 01:24 ID:???
デバッグモードで遅くなるのはMSのサイト見たほうが早いが
DirectXのバージョンによってはデバッグモードではそのほかにマウスカーソルがカクカクするらしい

211 :202:02/04/13 02:08 ID:nprCXGIE
うちの環境では、Releaseで実行速度優先にしても、FPSを見る限りはあまり変わりませんね。
元が400FPSぐらいでるプログラムだったので、400/1秒ぐらいの精度が求められる
タイマー求めるのは贅沢ですかね、、、

212 :名前は開発中のものです。:02/04/13 02:25 ID:???
>>211
それはコンパイラのDebugモード。
上に書かれているのはDirectXのDebugモード。

213 :名前は開発中のものです。:02/04/13 04:39 ID:???
>>211
timeBeginPeriod使ってる?

214 :名前は開発中のものです。:02/04/13 06:03 ID:???
市販のゲームでdebugとretailと再頒布用のランタイムでそれぞれ動作違うのがあるよね(藁

215 :名前は開発中のものです。:02/04/13 06:20 ID:???
スタート→設定→コントロールパネル→DirectX→各モード
debugとretail変えながらSDKのサンプル動かせばどれだけ差があるかわかる罠。
debugじゃサンプルのMFCFogが遅すぎて使い物にならないがretailだと滑らか@Win98、DirectX8.1、128MB、VooDoo3

216 :名前は開発中のものです。:02/04/13 06:52 ID:???
Pentium2 392MHz、Win2000、DirectX 8.1、384MB、TNT2 32MBでテスト。

debug: 180fps
retail: 350fps

まさか倍違うとは。

217 :名前は開発中のものです。:02/04/13 08:11 ID:???
バージョン8.1でDirectInputを使うと、コンパイルするときに
DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800
の警告が出ます。動作には支障はないんですが、なんか気持ち悪いので
消したいです。どうすればいいでしょうか?

218 :名前は開発中のものです。:02/04/13 08:53 ID:???
>>217
メッセージ見ろよ…

219 :名前は開発中のものです。:02/04/13 11:50 ID:mB6ENfdk
Direct Inputの初期化で、キーボードの強調レベルをセットしようとすると
SetCooperativeLevel関数がDIERR_INVALIDPARAMを返します。
ジョイスティックは大丈夫なのですが、原因が解りません。
誰か教えてください

if(FAILED(hr=DirectInput8Create(hInst,DIRECTINPUT_VERSION,IID_IDirectInput8,(VOID**)&g_pDI,NULL)))
return hr;
if(FAILED(hr=g_pDI->CreateDevice(GUID_SysKeyboard,&g_pKeyboard,NULL)))
return hr;
if(FAILED(hr=g_pKeyboard->SetDataFormat(&c_dfDIKeyboard)))
return hr;
hr=g_pKeyboard->SetCooperativeLevel(hWnd,DISCL_EXCLUSIVE);
if(FAILED(hr)){
if(hr==DIERR_INVALIDPARAM){
MessageBox( hWnd,"sine","aho",MB_OK);
}
return hr;
}

220 :名前は開発中のものです。:02/04/13 12:07 ID:???
>>219
少しくらいHELP読め

IDirectInputDevice8::SetCooperativeLevel
>アプリケーションは、DISCL_FOREGROUND または DISCL_BACKGROUND のどちらか一方を指定しなければならない。両方指定することも、まったく指定しないこともエラーとなる。
>同様に、アプリケーションは、DISCL_EXCLUSIVE または DISCL_NONEXCLUSIVE のどちらか一方を指定しなければならない。

221 :219:02/04/13 12:12 ID:mB6ENfdk
>>220
即レス有難うございます。
これでアホダイアログが出ずにすみます。

222 :名前は開発中のものです。:02/04/16 07:38 ID:KKgE4dNw
Xファイルサンプルがわからねぇー

皆どうしてる?
ちなみにスキンメッシュの方。
誰か解説しておくれ

223 :名前は開発中のものです。:02/04/16 07:53 ID:???
xファイルの読込関係専門のスレに解説(つか、やりとり)があったはず

224 :なまえをいれてください:02/04/18 03:51 ID:mMey5w46
3DXでDiectXプログラム初心者です。

ライブラリの関数内でよくハングするのですが、
みなさんデバックってどうやっていますか?

使い方がいけないのだとは思いますが、
出来ればMFCのようにライブラリ内部のコードまで追うことができれば
原因もつかみやすいのですが....

玄人のかた宜しくお願いします。

225 :名前は開発中のものです。:02/04/18 04:24 ID:gMNkMEys
nai

226 :名前は開発中のものです。:02/04/18 07:41 ID:gMNkMEys
とりあえずテンプレートとファイル読み込みの勉強するか。。。

227 :名前は開発中のものです。:02/04/19 01:34 ID:ElxWJZ42
DirectSoundBuffer から DirectSoundNotify を取得できなくて困っています。

バッファは 非プライマリ で
DSBUFFERDESC dsbd;
ZeroMemory(&dsbd, sizeof(dsbd));
dsbd.dwSize = sizeof(dsbd);
dsbd.dwFlags = DSBCAPS_GETCURRENTPOSITION2 | DSBCAPS_GLOBALFOCUS | DSBCAPS_LOCDEFER;
dsbd.dwBufferBytes = dataSize;
dsbd.lpwfxFormat = &waveFormat;

というデスクリプションで作成しており、

HRESULT hRet = pバッファ->QueryInterface(IID_IDirectSoundNotify, (LPVOID*) &受け取るポインタ);

という感じで取得しようとしているのですが、
QueryInterface に失敗してしまいます。

どうしてなのでしょうか?よろしくお願いします。

で取得しようとしている

228 :227:02/04/19 01:55 ID:nuN89apc
フラグが足りないだけでした…
DSBCAPS_CTRLPOSITIONNOTIFY ですね。

鬱。

229 :名前は開発中のものです。:02/04/19 15:24 ID:mCs8PDIE
DXライブラリっていうのでいろいろ試しながら勉強してるんですけど、
フルスクリーンのFlipがウインドウモードに比べてかなり遅いです。
これって、普通なんですか?
それとも、DXライブラリがなんかおかしいんですか?

230 :名前は開発中のものです。:02/04/19 16:13 ID:???
>>229
DXライブラリってD3DXか?
そもそもウィンドウモードではFlipじゃなくBltになるが、
遅くなるのは環境次第じゃないか?
とりあえず自分の環境書け。

231 :名前は開発中のものです。:02/04/19 16:21 ID:???
>229
マジレスすると、ウインドウモードの場合、リフレッシュレートに左右されないが、
フルスクリーンでプライマリサーフィスのFlipを使うとモニタのリフレッシュレートの上限でしか
更新できなくなる。

232 :名前は開発中のものです。:02/04/19 16:26 ID:mCs8PDIE
>>230-231
どうもサンキューです。
DXライブラリってこれのことです。
http://homepage2.nifty.com/natupaji/DxLib/

233 :名前は開発中のものです。:02/04/19 23:04 ID:j6.t32zw
おい、誰かいるかー?

234 :名前は開発中のものです。:02/04/19 23:16 ID:???
>>233
何か?

235 :名前は開発中のものです。:02/04/19 23:24 ID:qxqX/Wuc
シツモン!
参照カウントってなんすか。

これはてんぷれーと系の単語?

236 :名前は開発中のものです。:02/04/19 23:42 ID:???
>235
ヘルプ読め。

>オブジェクトは、参照カウントが 0 になると解放される。
>AddRef メソッドを呼び出すと、オブジェクトの参照カウントは 1 だけ増加する。

237 :名前は開発中のものです。:02/04/20 00:13 ID:???
>>235
http://www.fsinet.or.jp/~nito/CocoaClub/article02.html
こんな感じか?
この場合、ココアだけど。

238 :名前は開発中のものです。:02/04/20 03:55 ID:jnbDEuhc
>>237
thx!!

239 :名前は開発中のものです。:02/04/21 23:33 ID:PLg4cUfA
なんかいろんなところでFlipすると必ず垂直同期を待つみたいなこと
言ってる人がいるけど、待たないFlipもできるんですが・・・
(リフレッシュレートに依存するからFlipは使うべきではないとか言ってる人の気持ちがわからん)
皆知らないだけ?思いっきりヘルプに載ってると思うんですが・・・
何でこのことが話題にすら出ないのか、かなり謎なんですが・・・

240 :名前は開発中のものです。:02/04/21 23:41 ID:???
>>239
逆に聞きたいが、ティアリングが起こるFlipを使うメリットはあるのか?

241 :名前は開発中のものです。:02/04/21 23:55 ID:???
>>240
ティアリングが起こってもかまわないなら、BltよりはFlipの方が速いから
ベンチマーク目的なんかでは使うことはあるな。

>>239
一応言っておくと、NOVSYNCは使えない場合もあるよ。
NOVSYNCを指定したからといって本当にVSYNCを待たないかどうかはドライバ
次第。ドライバによってはNOVSYNCを指定しても常に待つものもあるし、
指定しなくても待たないものもある。

242 :名前は開発中のものです。:02/04/22 00:08 ID:???
>>239
マ板のリフレッシュレートスレが詳しいと思う。

243 :名前は開発中のものです。:02/04/22 01:26 ID:???
Direct X8で、いままでDrawPrimitiveUPを使ってたのですが、
DrawPrimitiveでたとえば(1,1,1)の座標に描画したい時って
D3DXMatrixTranslation(&objMat,1,1,1)
みたいに使うんですか?
なんか上手くいかんのですが、、、、

244 :名前は開発中のものです。:02/04/22 03:30 ID:???
>>243
DrawPrimitiveUPで(1,1,1)の座標に描画したい時は
どうしていたのかと

245 :243:02/04/22 09:21 ID:bz.uCQ66
具体的にいうと、SetTransformでワールド座標にセットすると、
その前に描画していたポリゴンが消えてしまうのです。
SetTransformをコメントアウトすると前に描画していたのは残ってるのですが・・・

D3DXMatrixTranslation(&objMat,1,1,1);
lpD3DDEV->SetTransform(D3DTS_WORLD,&ObjMat);
lpD3DDEV->SetStreamSource(0,obj[0],sizeof(LVERTEX));;
DrawPrimitive(D3DPT_TRIANGLEFAN,0,2);

ってやってます

246 :名前は開発中のものです。:02/04/22 16:40 ID:???
>>245
状況がよくわからんけど
lpD3DDEV->SetStreamSource(0,obj[0],sizeof(LVERTEX));;
DrawPrimitive(D3DPT_TRIANGLEFAN,0,2);
D3DXMatrixTranslation(&objMat,1,1,1);
lpD3DDEV->SetTransform(D3DTS_WORLD,&ObjMat);
lpD3DDEV->SetStreamSource(0,obj[0],sizeof(LVERTEX));;
DrawPrimitive(D3DPT_TRIANGLEFAN,0,2);
こうするとどうだ?

247 : :02/04/22 21:48 ID:FyuY6QgE
http://tmp.2ch.net/test/read.cgi/download/1019446859/
皆さんの力で助けて下さい。

248 :名前は開発中のものです。:02/04/22 22:11 ID:mGNBYW3s
from BBX
>プログラムのコメントの書き方が、あまりよくないと思います。
>「サーフェスを得る」や「イメージサーフェスを作成」などといったことは、
>使っている関数名(メソッド名)などを見れば一目で判りますし、
>逆にそれで判らなければプログラマとしてまずいです。
>
>自分で後からそのプログラムソースを見たり、他人が見たりした時、
>知りたいのは「サーフェスを得ているかどうか」ではなく、
>「なぜサーフェイスを得ているのか、何の目的なのか」ということだと思います。
>だから一連の処理の頭に「処理の目的、簡単な流れ」を書けばそれで十分だと思います。
>関数を使う毎に、その関数のただの日本語名のような文章を書いていると、
>意味の少ないコメントが乱立して、メンテナンスし難くなる場合が多いです。
うぜえええ。なんでこんな事まで言われにゃならんのだ

249 :名前は開発中のものです。:02/04/22 22:23 ID:???
あれ、いつのまにBBXのアドレス変わったんだ?
>>248
確かにうざいが、引用にこの一文が抜けてるぞ
「あと、余計なお世話だとは思いますが、」

まぁ、いいじゃん、相手どうみても初心者だし。
つか引っかかるほどのもんじゃないし、
言われた本人がプライド傷つけられて来たのかな(・∀・)ニヤニヤ

250 :名前は開発中のものです。:02/04/22 22:28 ID:???
>>248
一連の流れからするといわれてもしゃーないねー。

251 :名前は開発中のものです。:02/04/22 22:42 ID:???
>だから一連の処理の頭に「処理の目的、簡単な流れ」を書けばそれで十分だと思います。
そんなのソース見れば解るじゃん。
コメントなんかイラネーよ。

逆にそれで判らなければ、ソースとしてまずいです。(ワラ

252 :名前は開発中のものです。:02/04/22 22:56 ID:???
そんな無理して噛みつかんでも・・・

253 :名前は開発中のものです。:02/04/22 22:59 ID:???
質問した奴がタコだったってことで。
次逝こう。

254 :名前は開発中のものです。:02/04/23 00:16 ID:???
豊田芳彰って何者?

255 :転がる:02/04/23 00:59 ID:kCdUFZP2
BBXでレスつかずでした・・・皆さんお願いします

http://isweb8.infoseek.co.jp/computer/bbx/cgi-bin/bbx.cgi?log=24&vew=249

256 :名前は開発中のものです。:02/04/23 01:16 ID:???
>>255
環境書いてないから適当に答えるけど、マスクの画像用意してANDを取ってからORすればいいんじゃないの?

257 :名前は開発中のものです。:02/04/23 02:17 ID:???
ここはBBX補完スレですか?

258 :名前は開発中のものです。:02/04/23 02:20 ID:???
>>254
googleで検索しますた。
http://www.google.com/search?num=50&lr=lang_ja&q=豊田芳彰

↓キリストの父親に興味があるらしいな(・∀・)ニヤニヤ
http://www.ntv.co.jp/FERC/request/req0708.html

259 :名前は開発中のものです。:02/04/23 12:07 ID:???
はいはい、ヲチはここで終了。

260 :名前は開発中のものです。:02/04/23 15:47 ID:???
>>259本人必死だな(藁)
(・∀・)ニヤニヤ

261 :名前は開発中のものです。:02/04/23 16:28 ID:???
低脳な煽りほど効果ある、とか言うんだろうなぁ。低脳は。

262 :名前は開発中のものです。:02/04/23 17:48 ID:???
とにかく、この由緒ある名スレを荒らすんじゃない。
やるならせめて他のスレでやれ。

263 :名無しさん:02/04/23 18:16 ID:???
マリアは処女で身篭った(本人談)から父親が居るわけがない。
芳彰って天才たけどボケも面白い。

264 :名前は開発中のものです。:02/04/23 20:01 ID:???
赤ちゃんはコウノトリは運んでくるんですよってか?(藁

265 :名前は開発中のものです。:02/04/23 21:15 ID:???
>>256
どうやればいいんでしょうか?今までポリゴンにテクスチャ貼り付ける事しかやった事がないもんで・・・
ちなみに環境はDirectX8.1です

266 :名前は開発中のものです。:02/04/24 00:18 ID:sJ/Mtu..
age

267 :名前は開発中のものです。:02/04/24 00:35 ID:???
>>265
ここにソース書くのか?

268 :名前は開発中のものです。:02/04/24 07:30 ID:???
>>265
はいお願いします。全ソースじゃなくても、ポイントだけ押さえて頂ければ後は何とかしますので

269 :名前は開発中のものです。:02/04/24 07:31 ID:sJ/Mtu..
間違い
>>268

270 :名前は開発中のものです。:02/04/24 16:17 ID:???
てゆーかまず>>265がどうやってるか書けYo。
どうせやり方を書いたって僕の使っている方法とは違うのでとか言い出すんだろ。

大体>>256で答えが出てんじゃねーか。

271 :265:02/04/24 17:38 ID:ukW4/.uI
うっせー、ヴォケ。
素直に教えを請うてるんだから教えろよ、禿。
いいから速く教えろ

272 :名前は開発中のものです。:02/04/24 17:46 ID:???
>>271
まっ煽りなんだろうが、答えは出ている品(藁

273 :名前は開発中のものです。:02/04/24 18:22 ID:???
>>272
むしろ騙りじゃない?まぁ>>268の物言いも何だか居丈高だけど…。

とりあえずそのレベルなら、D3DXCreateTextureFromFileExAで読み込むとき、
カラーキーを設定して、そのレーダーの回りの部分とやらを抜いて
おけばいいんじゃない。テクスチャをロックしてα値書き込んだりは慣れてから。

というか、ぷよ〜ん氏のサイト閉じちゃったんだね(´・ω・`)ガクーリ
なんかあったのかな…。

274 :名前は開発中のものです。:02/04/24 18:29 ID:???
>>273
レーダー上のアイコンがはみ出るってことだろうね

ステンシルバッファ使えばとか言ってみるテスト

275 :名前は開発中のものです。:02/04/24 19:11 ID:???
>>274
うぉ、サンクスかなり読み間違えてた。
というわけですまない、273は無視してくれ。

276 :名前は開発中のものです。:02/04/24 20:40 ID:???
普通は敵は1ドットにするか、アイコンにするなら枠からはみ出るようにするかな。
あとは、外枠を描画してはみ出た部分を隠すってのが常套手段。

255の要望通りの動作にするならステンシルやDestαを使うのが素直な実装方法だけど、
どっちも環境が限定されるので注意。NV系では16bitカラーでは使用不能。
一番汎用的な方法は、α成分に円を描いたマスク用のテクスチャを併用するか、円形の
ポリゴンに敵のアイコンテクスチャを張り付ける方法かな?前者はマスクのテクスチャ
座標を上手く計算する必要があって、後者は1テクスチャにアイコン1つにしないと駄目。

あとは、円の中心からの距離をαに入れてαテストで抜くとか、レーダーをテクスチャに
描画するとか色々やり方はあるな。あ、一番初歩的なのを忘れてた。Lockして描画。

277 :名前は開発中のものです。:02/04/24 20:59 ID:sJ/Mtu..
271は騙りです。

>>270
>てゆーかまず>>265がどうやってるか書けYo。
素直にxyzwの頂点を4つ用意して、SetTextureでテクスチャを指定してDrawPrimitiveUPです。
まずレーダーのディスプレイになる円状の物をテクスチャを描いてから、その上にアイコンを同じように描画してます。
>どうせやり方を書いたって僕の使っている方法とは違うのでとか言い出すんだろ。
いやあ、そんな事は言いませんからよろしくお願いします。
>大体>>256で答えが出てんじゃねーか。
そのテクスチャに対してANDとかORする方法が分らないのです。

>>274
ステンシルバッファは、対応しているハードが少なくないですか?
GeForce2MXあたりをターゲットにしているのですが、GeForce2MXでステンシルバッファのサンプルが動かなかったので心配です。

278 :名前は開発中のものです。:02/04/24 21:04 ID:???
レンダリングステートでなんとかできないか?

279 :名前は開発中のものです。:02/04/24 21:12 ID:sJ/Mtu..
>>276
色々候補を挙げていただいてありがとうございます。
>α成分に円を描いたマスク用のテクスチャを併用するか
レーダーの円状のテクスチャのエッジに、元画像のα値を使ってアンチエイリアス
を利かせたいと思っていますので、この方法で行きたいと思います。
これは、マスク用の画像のα値の一部を、アイコンのテクスチャのα値にLockして書き込んでやればいいのでしょうか?
もっと速いやり方がありますでしょうか?

280 :名前は開発中のものです。:02/04/25 00:38 ID:llT4pS1c
>>279
単純にD3DXCreateTextureFromFileExの最後から4番目の引数に透明色指定するだけじゃ駄目なの?
例えばD3DCOLOR_ARGB(255, 0, 0, 0)とか

281 :276:02/04/25 03:13 ID:???
>>277
NVIDIAのチップならだいぶ前からステンシルバッファをサポートしてるよ。
ただし32bitカラー限定。

>>276
マルチテクスチャでステージ0にアイコン、ステージ1に円形マスクを指定して
色をステージ0のテクスチャ、αをステージ1のテクスチャから取得するように
するだけ。
αマスクの方のテクスチャ座標はTexGen使うと簡単だけど、トランスフォーム
済み頂点使うなら自分で設定しないと駄目だね。

282 :名前は開発中のものです。:02/04/25 20:10 ID:L3yRfTHs
>>281
レスありがとうございます。
>マルチテクスチャでステージ0にアイコン、ステージ1に円形マスクを指定して
また質問なのですが、アイコンが元々持っているα値も一緒に使用する事は出来ないのでしょうか?
レーダーとアイコン両方のテクスチャのα値の積を使用したいのです・・・
こうなるとLockするしかないでしょうか

283 :名前は開発中のものです。:02/04/25 20:19 ID:???
>>282
実際にやってみたのか?
そのものズバリな回答が欲しいのなら、ソース上げれば誰かが追加してくれる。

284 :名前は開発中のものです。:02/04/25 21:34 ID:???
>>282
>レーダーとアイコン両方のテクスチャのα値の積を使用したいのです・・・
そのまんまの設定があるけど、ちゃんとヘルプ読んでる?

285 :名前は開発中のものです。:02/04/25 22:01 ID:???
>>282
BBXざっと見たけど、一度ヘルプをざっと眺めておいた方が良いと思うYo!

286 :282:02/04/25 22:31 ID:???
みなさんのおっしゃる通り、ヘルプをよく読んでみたいと思います。
変な文章が多いし、今まではちょっと読んで分らなかったらスグ投げ出していたので・・・
それでも分らなかった場合は、また質問させてください。みなさんありがとうございました。

287 :名前は開発中のものです。:02/04/26 02:01 ID:???
I/O別冊のDirectX8についてるsafuli2.xっていうファイルなんですけど、
これを自分で読み込んだときと、DirectX8のサンプルで読み込んだときで、質感が変わってしまいます…。
サンプルとの違いを調べてみたんですが、多分、
FVFを強制変更して、法線ベクトルを計算しているとこが違うと思うんです。
なんでこんなことしてるのでしょう?
XFileのデータをそのまま表示するほうが元のデータに忠実に表現できるような…
と思うのは間違いなのでしょうか。

(しかもこの部分のコード入れても俺のは綺麗にならなかったLOL)

288 :287:02/04/26 02:21 ID:???
今、DirectX付属のSkinnedMeshサンプルで読み込ませたら、
やはり同様に質感が変わって見えました…。
…XFileのほうが例外的なファイルであるという結論にしてしまおうか(爆

でもやっぱりスッキリしないなぁ。

289 :名前は開発中のものです。:02/04/27 12:00 ID:Nzn80/ZM
>>287
ライトのプロパティとかレンダーステートは同じなんか?
法線ベクトルは、元のXファイルにデータとして付加されていない場合
頂点情報から生成しているだけだと思った。

290 :287:02/04/27 17:13 ID:???
>>289
今レス書いてて気づいたんだけど、
自動法線正規化のレンダーステートに完全に惑わされてました。
法線を計算するんじゃなくて、法線を正規化するだけなんでした。
あー、もう俺ってバカ…。
参考になるレスをどうもありがとうございました。

291 :名前は開発中のものです。:02/04/28 20:16 ID:JfpcGEt2
メタセコイアで作ったテクスチャつきのメッシュを、サンプルのOptimizedMeshで表示させてみると、
陰影が滑らかに付かない個所が出てきてしまいます。
単純な円柱を表示させてみても、他のところは滑らかに陰影がついているのに、
特定の個所だけは急に暗くなったりします。
これってメタセコイアの出力するxファイルがまずいんでしょうか?

292 :名前は開発中のものです。:02/04/28 20:18 ID:???
メタセコのスムージングの角度設定 だな
設定角度以上はわざと滑らかに繋がないでエッジを出せるようになってるんだよ

293 :287:02/04/28 21:23 ID:???
>>291
 メタセコで立方体を製作
→オブジェクトのスムージング角度を89.5に設定
→見た目を確認
→オブジェクトのスムージング角度を90.5に設定
→見た目を確認
→ウマー

294 :名前は開発中のものです。:02/04/29 03:12 ID:???
>>292>>293
なるほど。ライティングの問題かと思ってたYO!サンクス!

295 :名前は開発中のものです。:02/04/29 20:52 ID:yRZDCEAY
 DirectX7 のBlt命令を使って、
転送元画像から転送先画像への転送を、
32x32(または16x16)のパターン画像でくりぬいて転送することは可能でしょうか?
またはαブレンドのように、
自前で転送処理を書く必要があるのでしょうか?

296 :名前は開発中のものです。:02/04/29 20:53 ID:???
可能。つか、SourceRECTで指定するだけじゃん

297 :295:02/04/29 21:05 ID:???
>>296
 説明不足ですみません。
たとえば、src(0,0)-(99,99)を、dest(50,50)へ転送するために、
16x16(or32x32)のパターンを使って、
フェードインっぽい処理をしたいと思っています。

298 :名前は開発中のものです。:02/04/29 21:08 ID:???
>>297
>>296

299 :名前は開発中のものです。:02/04/29 21:08 ID:???
たぶん可能だけど今一伝わらない。
画像なんかを解説してくれれば一発なんだが

300 :名前は開発中のものです。:02/04/29 21:09 ID:???
>画像なんかを
画像なんかで

301 :295:02/04/29 21:14 ID:???
>299
まだ設計してる最中なのでソースは書いてないのですが、
とりあえず下のような感じの処理です。
(即興なので、バグってたらすみません)(^^;

BYTE *pbyInp;  // 引数・入力バッファ
BYTE *pbyOut;  // 引数・出力バッファ
BYTE *pbyPattern;// 引数・転写パターン

*pbyOut = *pByInp & *pbyPattern
    | *pbyOut & ( ~*pbyPattern );

302 :295:02/04/29 21:16 ID:???
(301)書いた後でみてみたら、この処理は、
1pixel=1bitとして考えたときの処理になってます。
24bitで考えるとヘンになるので念のため・・(^^;

303 :名前は開発中のものです。:02/04/29 21:23 ID:???
>>295
カラーキーを使って先にマスク画像を重ねて、その後転送すれば一発じゃん。

304 :295:02/04/29 21:35 ID:???
>303
 確かにその手を使えば1発なのですが、
その方法だとユーザ側にカラーキーを固定してもらう必要があります。
汎用スクリプトエンジンの中に組み込みたいので、
できればカラーキーも自由にしたいのです。
(現状では、画像単位で自由に出来るように設計しています。)

 あと、αなどの都合でシステムメモリサーフェスを利用するとすれば、
あまりBltそのものの回数を増やしたくないというのも・・・(^^;
(転送面積÷パターン面積分の転送が必要なので。)

305 :名前は開発中のものです。:02/04/29 22:14 ID:???
>>304
ノベルツールだろうか、、、
現状と仕様と制限を詳しくキボンヌ

306 :295:02/04/29 23:49 ID:???
>>305
 当方、同人サークルをやっておりまして、
今まで2作ほど、DirectX3でゲームを作ったのですが、
その流れで考えている2Dのライブラリです。
前作のものもスクリプトでノベル程度のものは作れたのですが、
次はプログラムとしてはデザインパターン重視で仕様追加を行いやすく、
仕様追加として画面効果を幾つか増やそうと思っています。
 基本的には自サークルで使おうと思っているのですが、
知り合いのサークルさんでも使ってもらうような話になっているので、
出来る限り、プログラム側の一方的な制限を設けないようにしたいと思いました。

 ・・ただ、[304]からレスが増えない所をみると無理なのかな・・(^^;
個人的には、"DDBLTFX::lpDDSPattern"というのが気になっているのですが。
(解説書には"タイルパターンとして使用するサーフェスのポインタ"とだけ。)

307 :295:02/04/29 23:59 ID:???
 大まかには、セル画管理ライブラリです。
ライブラリに、"画像読み込み"と"テキスト画像化"を指示した上で、
ライブラリ内のZバッファを管理できるクラスに対して、
どのサーフェス(番号)のどの範囲を、指定Zオーダ(番号)で登録すれば、
その結果を画面に表示するようなものです。
 登録済みのセルに対して、移動(目的地・速度)などのオペレーションが指定できて、
2度目以降の描画は変更セル範囲のみ・・っと、これは常識ですね。(^^;

 このライブラリの関数をさらにパックした簡単なスクリプト言語を作って、
スクリプトで動きを実現出来るようにしたものが前作までの仕様です。

 各画像は、BMPファイルから暗号化を兼ねて圧縮していまして、
その圧縮時にカラーキーを指定することが出来るようにしていましたので、
CG1枚に対して1つのカラーキーが持てるようになっていました。
(>>303さんの手法が素直に使えない理由なんですが・・)

308 :名前は開発中のものです。:02/04/30 00:25 ID:???
>>307
カラーキーが使えないのなら、LOCKして抜けば?

309 :名前は開発中のものです。:02/04/30 00:27 ID:???
いちまいちわかってないけど、特定のパターン(渦巻きとか)でフェードインとかしたいって事?
そら、MMXでゴリゴリ書くパターンですな

または、3dビデオカードなら、
パターンをテクスチャ(ラップテクスチャモード←貼る面積よりテクスチャが小さい場合、テクスチャ模様を繰り返し適用する)
にして重ねれば出切る

310 :295:02/04/30 00:39 ID:???
>>308

 αブレンド(=Lockで抜く)処理の部分に対して、
スペック的に付いてこないマシンで描画する時に、逃げ道として
パターンによるフェードアウトをしたいと思っています。

>>309

 まず、渦巻きなどのPixelの位置まで移動する処理は考えてないです。
(初歩がわからない内にその先へ進むと後々大変なので・・)
ただ単純な『Bltでマスクパターンの指定が出来ないかな・・』というものです。
(実処理は>>301のような感じです。)

 あと、Direct3D や、DirectX8 使用となると、
必須スペックが上がってしまうので、同人レベルでは所詮・・(^^;

311 :名前は開発中のものです。:02/04/30 01:16 ID:???
>310
そんなのGDIで十分じゃん。
DirectDraw使うにしても、本買えばそういう基本的なことは載ってる。

312 :295:02/04/30 01:28 ID:???
>311
 それを画面更新あたり300枚以上のセル画に対して処理すると考えると、
GDIでは処理落ちしてしまいますので、
出来る限りDirectDrawのAPIで改善できないかと考えています。

 DirectDrawの本についても、単純なBlt使用法なら、
大抵の本に載っていますが、すこし特殊?な方法になると、
私の購入した本には載っていません。
もし、よろしければ、事象が掲載されている本を教えて頂けると嬉しいです。
(当方、DirectX3の時には、『翔泳社 DirectDrawプログラミング』が、
 メインの参照本となりました。)(ISBN4-88135-450-7)
 本業がフリープログラマのため、(クレジットカードが作れないため)
米国の本は直接購入出来ないですが、
普通に注文・購入できるものであれば、是非買いたいと思います。

313 :名前は開発中のものです。:02/04/30 01:50 ID:oS/CyFd2
他のスレで誰も教えてくれませんでした。
すこし前のレスにメタセコの話があったので期待。

ライトウェブのXファイルを吐き出すプラグインの質問(ディストームのHPで落とせる奴)
ボーンの情報が、吐き出されていません。親子関係の動きは正常に吐き出されています。
DirectX8でやってます。ライトウェブは、6.5Bです。
何方か、分かる方いませんか?

314 :名前は開発中のものです。:02/04/30 01:58 ID:???
>>313
プラグインって内部の情報公開してた?
多分ディストームに問い合わせないと駄目じゃない?

315 :名前は開発中のものです。:02/04/30 02:00 ID:???
>>312
っていうか、セルを描画し終わったサーフェスに対してGDIでもDirectDrawでも描画すれば?

>それを画面更新あたり300枚以上のセル画に対して処理すると考えると、 GDIでは処理落ちしてしまいますので、

>スペック的に付いてこないマシンで描画する時に、逃げ道として パターンによるフェードアウトをしたいと思っています。
から考えると、どうしたってハードウェアが駄目なら同じだと思うが。

本当にフリープログラマなの?

316 :名前は開発中のものです。:02/04/30 02:16 ID:???
そもそも、DirectDraw使う事が間違ってると思う。
DIBSectionで十分だし、そっちの方が向いてるかと。
あとは、NxLibとかのライブラリを利用するとか。

317 :295:02/04/30 02:32 ID:???
>315
 全体のフェードアウトの実装を目的とするならば、
(同じような機構で実現できるのなら)それが、個々のセルでも実現できると。
それで、元々の質問が、DirectDrawAPIで実装可能か?
(→ハードウエア側で実現できる可能性を持たせることができるか?)
というものなので、途中で話が曲がってるような気が。
っで、本当にフリープログラマです・・が、実用ソフトの。(^^;
(・・なので、DirectDrawに関しては素人と同レベルです)
>>316
 今回、質問させて頂いた件は、考えているライブラリの
一部の処理なので、DIBSection使用で考えると、
別の部分で色々な壁にあたってしまいます。
ほかの(オープンソース)ライブラリを利用することも
考えてはいるのですが、今はパターンの問題だけなので、
(結果が分かれば簡単に実装できるはずと思って)
元々のソースを再利用していく考えです。

318 :名前は開発中のものです。:02/04/30 02:42 ID:???
>>317
サイズ次第とは言え300枚以上のセル画に対してマスク処理を行うという設計自体が無理があると思うが

319 :295:02/04/30 02:54 ID:???
>>318
 もちろん、全部マスク処理を行うわけではなく、
転写方法クラスで、セルの転写情報を持ちます。
実際に使用する段階では、そのほとんどが通常の転写(Blt)を
利用すると思いますし、幾つかのセルの集合体のセルを定義して、
そのセルをプライマリにマスク描画する事で、
重たくなる処理の回数自体を減らすことは出来ると思います。

320 :名前は開発中のものです。:02/04/30 10:58 ID:???
>>313
割れXマソ発見

321 :名前は開発中のものです。:02/04/30 12:45 ID:???
DirectX9まだ?(゚ε゚)

322 :名前は開発中のものです。:02/04/30 13:21 ID:???
>>321
正直あまり来て欲しくないヘタレは、オレだけだろうか…

323 :名前は開発中のものです。:02/04/30 13:39 ID:???
>>322
安心しろ、ここにもいる。
やっとWizardが吐くコードを理解したのに…

324 :名前は開発中のものです。:02/04/30 13:58 ID:???
大幅に変わるの?

325 :名前は開発中のものです。:02/04/30 15:45 ID:fNd92hNg
7から8に変わったときは正直面倒くせーって思ってたけど、
今となっては7には戻りたくないな、、

326 :名前は開発中のものです。:02/04/30 16:10 ID:a3cFuDTc
D3DXの拡張はガンガンやって欲しいな。

327 :名前は開発中のものです。:02/04/30 16:54 ID:???
拡張より洗練を!
とかぃぅ

328 :名前は開発中のものです。:02/04/30 20:38 ID:???
d3dfile.cpp で定義されてる CD3DFile と CD3DMesh ってどう違うの?
どちらもファイルからXファイル読めるみたいだけど…

329 :名前は開発中のものです。:02/04/30 23:53 ID:ZnWxoeAg
>>325
漏れはDirect X8が出る直前にDirect X7使ってゲーム開発はじめたよ
Direct X8でいろいろと便利になった(不便になった床もあるらしいけど)って聞いて
ちょっと悲しくなったりしたよ
今からDirect X8つかい始めるとX7の時の二の舞になるので、
Direct X9出てから開発はじめようと思うんだけど、
なかなかでなくて困ってる・・・いつ頃出るの?夏だっけ?

330 :名前は開発中のものです。:02/05/01 00:53 ID:???
まだβも出てないよ>DirectX9
βが出てから半年以上はかかるから、安心してDirectX8を使いなさい。
DirectX7以下と8で大きく変わってるから、8でシェーダーで遊んでおくのがいいかも。

331 :名前は開発中のものです。:02/05/01 02:02 ID:???
今から7をやってみようというのは無謀ですか

332 :名前は開発中のものです。:02/05/01 02:18 ID:???
>>331
勉強にはなるだろうけど、開発効率は悪い。

333 :sage:02/05/01 03:41 ID:7caWKSiI
Win32 Console Application でDirectXを使うにはどうしたらいいんでしょ?
引数のHINSTANCEに何を入れればいいのか分からない・・・。

334 :名前は開発中のものです。:02/05/01 04:49 ID:ko02TnFs
>>333
検索しれ。
http://www.geocities.co.jp/Playtown-Spade/4804/console.htm
インスタンスハンドルは::GetWindowLongで取得できる

335 :なあ:02/05/01 07:56 ID:???
(^^;
↑この顔文字はやめようぜ。

336 :名前は開発中のものです。:02/05/01 08:21 ID:???
::GetModuleHandle(NULL)

337 :名前は開発中のものです。:02/05/01 14:16 ID:???
>>335
ごめんなさい(^^;

338 :名前は開発中のものです。:02/05/01 14:34 ID:???
わーい(^^;

339 :336:02/05/01 17:40 ID:???
>>334
軽く読んでみたけど、イベントドリブンが性に合わないってのは、
適当なメッセージループの説明を読んでしまったからなんだろうなぁ。
WindowsプログラムだってMS-DOSの時と何ら変わりなく組めるのにな…。
と愚痴ってみるテスト。

340 :名前は開発中のものです。:02/05/01 22:03 ID:???
イベントドリブンはOOみたいなもんで、受け入れられるかどうかが問題だね。
馴れてしまえばなんでもないことなのに。
それか、メッセージポンプをメインループに組み込めばコンソールアプリケーション
にする必要もないのに。キー入力のついでにPeekMessageすればいい。

341 :名前は開発中のものです。:02/05/01 22:46 ID:???
>>340
そしてメッセージポンプをメインループに入れてソースを見渡すと、
アプリのアイドル処理とはゲームのメイン処理だった、ってことになるんだよな。

342 :名前は開発中のものです。:02/05/02 00:39 ID:???
(^^;
(T_T)
(^^)/

343 :335:02/05/02 06:16 ID:???
DirectX9のベータがまもなく出るらしいage(^^;

344 :名前は開発中のものです。:02/05/02 10:15 ID:???
DirectX9のβが出たら、誰かインストールする?
インストールしたとして、普通にアンインストールできるのかな?

345 :名前は開発中のものです。:02/05/02 10:17 ID:YqVtkjO.
>344
.NETでひどい目に合った立場から言わせてもらえば、
DriveImageでバックアップ取ってから入れるのが吉。

346 :名前は開発中のものです。:02/05/02 10:22 ID:???
そりゃもちろん、パーティッション新たに切って入れるよ。
OSとVC++と・・全部いれるの大変だなあ。

347 :名前は開発中のものです。:02/05/02 12:27 ID:S25ejeZM
ふふふ、DirectX 9が出たらDirectX 8.1ユーザがまた嘆き悲しむのかね。
APIを容赦なく刷新してくれるのは嬉しいけどね。
DirectX 3あたりのがずっと生き残ってたらと思うと寒気がする。

348 :名前は開発中のものです。:02/05/02 12:36 ID:???
つか、素人なら、開発の長期化にそなえて影響受けないようにクラス設計しとけ
DX抽象クラスから派生でDX9クラス作れ

349 :名前は開発中のものです。:02/05/02 13:41 ID:LSedsLX2
Direct3Dは、8からはしばらく変わらんだろ。
忘れがちだが、バージョンアップで大規模な改変が行われたのは
7→8のときだけだよ。

350 :名前は開発中のものです。:02/05/02 14:25 ID:???
DirectX10までは予定が発表されてるしね。
PSとVSの統合って文法が同じになるだけかな?
PSでも成分の入れ換えができるようになるならめちゃくちゃ嬉しい。

351 :名前は開発中のものです。:02/05/02 14:46 ID:???
しかし、メーカーはXBOXのGPUをターゲットにしないかな
結局、新機能はほとんど普及しない罠

352 :名前は開発中のものです。:02/05/02 15:12 ID:???
結局デモプログラムぐらいしかピクセルシェーダ−も使えんのはつまらんよなあ・・・

353 :名前は開発中のものです。:02/05/02 16:33 ID:???
>>349
カナーリ安心したよ

354 :名前は開発中のものです。:02/05/02 17:23 ID:7aVH7DDk
対象をXboxに絞るんなら
PS/VSとも、作り上げることの出来る
シェーダールーチンって限られてこないか?
結局どこも自前レンダーステート(又はNVLink)
みたくなってるんだろうなあ。

355 :アゲ:02/05/03 05:24 ID:???
DirectXでゲーム作ってるんだけど起動して1分くらいでパソがごおおおおおおおおおおおおおおおおおおおおおおおお
って轟音を上げるんだが処理が重いのかな?普通?
あまりパソゲーやらないんでよく分からん。ちなみにペンチ700MHz。

356 :名前は開発中のものです。:02/05/03 06:22 ID:???
おれはゲームやると何分かしたら
轟音上げるけど。
環境は同じくらい。

357 :名前は開発中のものです。:02/05/03 08:43 ID:???
おれはゲームしなくても常に轟音。

358 :名前は開発中のものです。:02/05/03 11:19 ID:???
CPUファンの回転数が上がってるとかでなくて?

359 :名前は開発中のものです。:02/05/03 11:27 ID:wKrDTHAc
一つのトライアングルでuv値を0〜10とすると
0〜1に比べて物凄く遅くなりますが
どういった理屈でこうなるのでしょうか???

地形の表示で,遠くのポリゴンを何個かまとめて表示させているのですが,
これのおかげであまり速くなりません...

360 :名前は開発中のものです。:02/05/03 11:30 ID:wKrDTHAc
>>355
ファンにほこりが溜まっているのではないですか?
私は轟音がして一ヶ月くらい放っておいたら電源が壊れました

361 :アゲ:02/05/03 14:36 ID:???
>>357
やばくないか?それ
まぁ漏れが前使ってたデスクトップはプレステ2よりうるさかったけどね。
>>360
ノートだから開けられんです。トーシロなんで・・・。

つーか同時に描画できるサーフェス(キャラクター)て何個くらいまですかね?
当然環境によって変わるんだろーけど・・ ちなみに漏れのVRAMは8M。

362 :名前は開発中のものです。:02/05/03 20:27 ID:???
>>361
DirectDrawかDirect3Dかで違うし(w

363 :名前は開発中のものです。:02/05/03 21:50 ID:???
>>359
テクスチャのキャッシュミス?

364 :アゲ:02/05/03 21:51 ID:???
>>362
Drawナリヨ;_;

365 :名前は開発中のものです。:02/05/03 23:10 ID:ZQ0w8Z/2
>>364
キャラクターってどのくらいの大きさやねん!
スプライトが何枚表示できるかはVRAM関係ないぞ。
(もしかして、別のスプライトか?)

366 :名前は開発中のものです。:02/05/04 00:15 ID:???
>>365
ビデオメモリに入りきらず、システムメモリになると遅くなるからでは?

367 :名前は開発中のものです。:02/05/04 01:11 ID:???
>>364
WinGを使いましょう

368 :アゲ:02/05/04 02:57 ID:???
>>364
よく知らんがそれって古い技術なのでわ?
つーか厨房でも使えるの?

369 :名前は開発中のものです。:02/05/04 02:59 ID:???
>>368
2Dでチョット前のPCもターゲットにするならDirectDrawで充分

370 :アゲ:02/05/04 03:05 ID:???
>>368
それを聞いて安心したぜ。
てか左右反転で転送することってできますか?
も〜〜ダイレクトXのヘルプは全部英語でサパーリです(´д`;

371 :名前は開発中のものです。:02/05/04 05:02 ID:???
>>370
それってbltで?rectで?どっちにしてもできるけど
WinGBitBltがお勧め

372 :名前は開発中のものです。:02/05/04 07:48 ID:???
>ダイレクトXのヘルプは全部英語で
ネタ?

373 :名前は開発中のものです。:02/05/04 08:35 ID:???
WinGってDIBSectionになってるんだけよな?
なぜ今ごろ?
Windows3.1用のゲームでも作る気なのかな?

374 :名前は開発中のものです。:02/05/04 08:59 ID:???
WinGマニアは帰れ。

鬱だ氏のう WinG
http://game.2ch.net/test/read.cgi/gamedev/1020152759/l50

375 :名前は開発中のものです。:02/05/04 10:58 ID:???
>>374
こ、これほど「鬱だ氏のう」の文字が、似合うスレもないな…。

376 :名前は開発中のものです。:02/05/04 11:27 ID:LhfxDlgg
表示は全てgifをつかうようなアプリケーションなら、
GDIだけで作れるんでしょうか?

377 :名前は開発中のものです。:02/05/04 12:42 ID:???
別にGIFとかBMPだとか関係ない。
要は速く描画したい時とか、標準のAPIでできない事をする時にライブラリ使うの。
解ったら早速WinG使いなさい。

378 :名前は開発中のものです。:02/05/04 12:43 ID:???
ついでにPCMで和音使いたい時はWaveMIXを使う事。これ最強。

379 :名前は開発中のものです。:02/05/04 12:45 ID:???
>>373 374 375
君たちも、聴きたい事や言いたい事があったら是非書き込みおながいします
http://game.2ch.net/test/read.cgi/gamedev/1020152759/l50

380 :名前は開発中のものです。:02/05/04 14:15 ID:???
>>377-379
連書きウゼェよ。
失せろ。

381 :名前は開発中のものです。:02/05/04 14:22 ID:???
こっちこそ真のWinGスレだな

382 :アゲ:02/05/04 17:36 ID:???
>>371
DirectDrawでできるってこと?それともそのWinGを使えってことですかい?
だが簡単に引数のオプションで指定したりしてできるわけじゃないんデショ?
てかWinGって評判悪いの?(付加疑問文)

383 :名前は開発中のものです。:02/05/04 19:13 ID:???
どっちでも簡単にできるが
大評判のWinGつかっとけ。

384 :名前は開発中のものです。:02/05/04 20:23 ID:???
2DはWinG。最強。

385 :名前は開発中のものです。:02/05/04 20:29 ID:???
ガンダムの一種ですか?

386 :名前は開発中のものです。:02/05/04 20:34 ID:DoQwTAVw
彡    ビュウウウ…
          彡
  彡
        .∧ ∧    このスレ寒いなオイ・・・。
       ヾ(,,゚Д゚),)                   
        人つゝ 人,,                   
      Yノ人 ノ ノノゞ⌒〜ゞ              
    .  ノ /ミ|\、    ノノ ( 彡           
     `⌒  .U~U`ヾ    丿 

387 :名前は開発中のものです。:02/05/05 02:23 ID:???
WinGさえあれば、モテモテになれそうな気がしてきたよ…。

388 :名前は開発中のものです。:02/05/05 05:34 ID:???
>>385
ある意味正解。

389 :名前は開発中のものです。:02/05/05 21:51 ID:GK7msIf2
ノベル系のゲームで、キャラを喋らせたいのですが、音声データって普通は
なにを使うものなのでしょうか?
http://www.nengollo.com/ngtxt/ponkan/yukie.html
このページを見ると、
「サンプルVoiceはmpeg(32kHz,64kbps)です。
製品では、44kHz,16bit WAVです」
と書いてありますが、WAVEを使うのが一般的?

390 :名前は開発中のものです。:02/05/05 21:53 ID:GK7msIf2
age

391 :名前は開発中のものです。:02/05/05 21:57 ID:GK7msIf2
http://game.2ch.net/test/read.cgi/gamedev/1016276254/l50
↑こっちの389の書き込みが表示されない。
なぜ?

392 :名前は開発中のものです。:02/05/05 21:57 ID:???
>>389
CD-DA

393 :名前は開発中のものです。:02/05/05 21:57 ID:???
>>389
ってこのスレで聞く質問か?

394 :名前は開発中のものです。:02/05/05 23:44 ID:HZ/kacKY
DirectSound3Dで川のせせらぎの音のような不定形のものを表現するとき
川がある位置にところどころ音源を置くやりかたでいいんでしょうか。
音源が物凄い勢いで増えてしまうような気がして不安です。

395 :名前は開発中のものです。:02/05/06 02:08 ID:???
>>393
川のせせらぎって水がはねてるところから聞こえるよね?
川全体から聞こえているわけではないのよ。

396 :名前は開発中のものです。:02/05/06 11:00 ID:???
DirectX8にて2Dシューティング作っているんだが
2D格ゲーの超必殺技を使う時に光るような効果は
3Dで表現するにはどんな感じでやればいいんでしょうか?
どなたかヒントでもいいので教えていただけると嬉しいです。

397 :名前は開発中のものです。:02/05/06 11:03 ID:???
目コピできない人は
ゲームプログラマの才能ないよ

398 :名前は開発中のものです。:02/05/06 12:02 ID:???
3D格ゲーの超必殺技を参考にすればいいじゃん

399 :名前は開発中のものです。:02/05/06 17:51 ID:JfFPQD72
モデラーに、よくメタセコの名前がでてきますが、
これで出力したXファイルって、読み込ませても表示されないんですが、
どうすればできますか?
なんか8には対応してないとも聞いたのですが、、、

400 :名前は開発中のものです。:02/05/06 18:49 ID:???
2Dシューティングを作っていて2D各ゲー参考に…って言うときに
どうして3D云々が必要になるの?

401 :名前は開発中のものです。:02/05/06 19:44 ID:???
>>396
エフェクト用の画像を用意して、半透明処理使って描画。
というか、これ以外にやりようがない気がするが…(w

フラッシュってことなら、画像と加算して描画しる!

402 :名前は開発中のものです。:02/05/06 19:45 ID:???
効果だけ3Dにしたいんでしょ
エフェクトだけ3D使ってるのって結構あるじゃん

403 :名前は開発中のものです。:02/05/06 19:45 ID:VKx4oYY2
>>400
3Dエフェクトを使って絵を用意せずにきれいなのをやりたいと
思ったからです。

404 :名前は開発中のものです。:02/05/06 20:27 ID:FxlgJW6E
ポイントスプライトでパーティクル

405 :名前は開発中のものです。:02/05/06 21:36 ID:???
>>403
それ、「2D格ゲーの超必殺技を使う時に光るような効果」には
ならないと思われ。
だって、あれは画像使ってるんだし…。

406 :名前は開発中のものです。:02/05/06 21:52 ID:???
>399
普通にできます

407 :名前は開発中のものです。:02/05/06 23:52 ID:iMlkcTys
DirectX8のフルスクリーンモードでメニューやダイアログを表示させる方法はありますか?
7以前はFlipToGDISurface(だっけ?)でできたようなんですが…。

408 :名前は開発中のものです。:02/05/07 00:21 ID:beSQZnQE
>>407
俺の場合、640x480で!D3DSWAPEFFECT_FLIPで
表示されるダイアログに重なるように事前にマウスカーソルを
置いておくようにするとダイアログが表示可能だ。w
まあ精進しろ。

409 :名前は開発中のものです。:02/05/07 07:57 ID:GYsO3cnI
今までDrawPrimitiveUPで描画していたのをDrawPrimitiveに変えたら、
FPS落ちてもた。
HT&L対応してないビデオカードだとそうなるのだろうか、、、、

410 :名前は開発中のものです。:02/05/07 10:07 ID:???
VertexBufferのフラグを適切に指定しないと遅くなるよ。
NVIDIA曰く、適切に指定すれば常にDrawPrimitiveの方が速いそうだ。

411 :名前は開発中のものです。:02/05/07 11:13 ID:???
その適切を解り易く解説している所知りませんか?
セットアップしたらもう変更も参照もしねーよって時は
WRITEONLYとPOOL_DEFAULTでいいのかぁぁ?よくわかんない

412 :名前は開発中のものです。:02/05/07 11:19 ID:Aw7Dnvr2
>適切に指定すれば常にDrawPrimitiveの方が速い
それってHT&L対応していないチップででもですかね・・・

413 :名前は開発中のものです。:02/05/07 11:20 ID:H21ddL0Q
IDirect3DDevice8::CreateVertexBufferで
D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY

414 :名前は開発中のものです。:02/05/07 11:55 ID:Aw7Dnvr2
D3DUSAGE_DYNAMICフラグを指定したら、CreateVertexBufferの時点で
何故か落ちてしまうのですがビデオカード関係あるんですかねぇ、、、
D3DUSAGE_WRITEONLYは大丈夫でしたが、、、

415 :名前は開発中のものです。:02/05/07 12:08 ID:H21ddL0Q
>>414
ヘルプにD3DUSAGE_DYNAMICは
D3DPOOL_MANAGEDでは使用できないと
書いてあるな。

416 :名前は開発中のものです。:02/05/07 12:15 ID:Aw7Dnvr2
>>416
その通りでした。どうもお騒がせしますた。
しかし、D3DUSAGE_DYNAMIC指定してもFPSかわらんです、、、
やっぱTNT2が悪いのか???

417 :名前は開発中のものです。:02/05/07 13:29 ID:???
Direct3Dばかりのスレで質問するのも恐縮ですがDirectPlay関係で質問があります。

DPN_MSGID_RECEIVEだと、別スレッドで処理させるためのような戻値のDPNSUCCESS_PENDINGがありますが、
それ以外のメッセージではとても別スレッドで処理させるものとは思えないんです。
特にDPN_MSGID_INDICATE_CONNECTはイベントを作って同期を取れ、っていってるくらいの仕様で…。
これらについてはメッセージを受け取ったスレッドで処理してしまうのが良いのでしょうか?
そうするとスレッド間の同期がまたややこしくなりそうな気がするのですが…。

418 :名前は開発中のものです。:02/05/07 14:14 ID:???
>>412
GeForceだってソフトウェア頂点処理は使えるし、常にって言うくらいだから
T&L無しのビデオカードでもそうなんじゃない?

でも、T&L無しの場合は速くなったとしても誤差の範囲だと思うよ。
T&L使う場合は、VertexBufferを作る場所なんかでも大きく変わるし、Lockの
仕方でもかなり変わるんだけど。

パフォーマンス関係の資料はNVのとこにいっぱいあるから見てみるといいかと。
頂点は32バイトの倍数のサイズが一番効率いいとかいう資料もあるよ。
(Indexedでなければ単純に小さいほど良さそうな気がする)

419 :396:02/05/07 16:29 ID:djkdk0uQ
>>401
>>404
ご意見ありがとうございます。
>>402
よくあるんですか?
もし3Dエフェクトについて少しでも書いてあるページをご存知でしたら
お教え願います。

420 :名前は開発中のものです。:02/05/08 15:36 ID:???
>>419
アーケードゲームだとGGX、カプエス2とか、どう見ても3D使ってるね。
PCゲーだと、英雄伝説4とかが使ってたぞ。
エフェクトならレンダリングステートの設定とか変えるだけでも結構変わる。
わかったらOpenGL使いなさい

421 :名前は開発中のものです。:02/05/08 15:45 ID:???
>>420
オチにちょっとワラタ

422 :名前は開発中のものです。:02/05/09 04:04 ID:???
見なくてもNAOMIという時点でポリゴンなのは当然かと>GGX、カプエス

423 :名前は開発中のものです。:02/05/09 18:17 ID:OK3DVRvU
SDKに入っているサンプルXファイルで、Tiger.xはきちんと表示できるのですが、
car.xだと真っ白に表示されてしまいます。

DrawSubset()を使っているのですが。

424 :名前は開発中のものです。:02/05/09 18:42 ID:69MmpqZc
>>423
後学の為に、Xファイルの中身は見るようにした方がいい。
Tiger.xは単一のメッシュでテクスチャで色付けされている。
一方car.xは複数のメッシュに分割されており
おのおの違うマテリアルを設定することで色分けをしている。
D3DXLoadMeshFromXでXファイルをロードした際
マテリアルの配列を取得しているはず。
DrawSubset()で使う前に
それに合わせたマテリアルを設定しなければ
単色で表示されてしまう。

425 :名前は開発中のものです。:02/05/09 19:42 ID:OK3DVRvU
>>424
即レスありがとうございます。
SDKのサンプル(EnhancedMesh.cpp)見るとパッチ(?)数分、
D3DRS_PATCHSEGMENTSをセットしているみたいですね。
Xファイルの中身も解析してみようと思います。

426 :名前は開発中のものです。:02/05/09 20:01 ID:3FuHlBew
>>425
それはNパッチの用の定数で
今回の件には関係ないと思われ。

427 :名前は開発中のものです。:02/05/11 10:53 ID:bZs7B3mQ
DirectX 9が3DLabsとMatroxを復活させる
http://www.watch.impress.co.jp/pc/docs/2002/0510/kaigai01.htm
興味深かったので、ageついでに。

428 :名前は開発中のものです。:02/05/11 13:18 ID:???
おおう、こんな記事が…
ハードウェアが一新されるってことは、ソフトウェアのほうにも影響出てくるの?
DirectX9で書いたプログラムはDirectX8以前にしか対応してないハードで動かないとか。

429 :名前は開発中のものです。:02/05/11 13:33 ID:???
GeForce4はソフトウェアエミュレーションで動作します
くらいのもんじゃないか?

430 :名前は開発中のものです。:02/05/11 15:18 ID:Z2/0mNSI
いやあマジ全然わかんね。
Tessellatorって何?
へたにレガシーパイプラインに熟知している分だけ
思考の切替に苦労する奴続出しそう。

431 :名前は開発中のものです。:02/05/11 17:07 ID:???
へたにレガシーパイプラインに熟知している分だけ

432 :名前は開発中のものです。:02/05/11 17:47 ID:???
Borland C++でDirextDraw失敗しまくり・・
鬱だ氏のう

433 :名前は開発中のものです。:02/05/11 17:48 ID:???
曲面をポリゴンで近似して、その頂点座標を算出する装置のことかなあ。
曲面は方程式でもN-Patchでも構わんと思うけど、そういう感じで。

434 :名前は開発中のものです。:02/05/11 19:50 ID:c8jMVapM
>>433
>DirectX 8では、Vertex ShaderとPixel Shaderの間で処理していたクリップなどもなくなる。
>概念は存在するのだが、その機能はTessellatorの段階に入る
Tessellatorは従来のクリッピングの代替になるって書いてあるぞ。
VertexShaderを通して初めて、ワールド座標系での頂点の位置が生成されるのに
その前フューズでクリッピングなんか出来るんか?

435 :名前は開発中のものです。:02/05/11 20:04 ID:c8jMVapM
「Tessellator(平面分割ユニット)」とも書いてあるんで、
折れが想像するに、ワールド空間をXYZで区切り小さな正方形の空間に分割して
ポリゴンオブジェクトもそれぞれの空間に属するよう分割するってやつじゃないのか。
PowerVRの3次元版みたいな。
そうすりゃクリッピングも出来るし、Z軸に対し前列の方から処理をすれば
陰面消去もかなり省ける。半透明もいける。
だけど>>434が問題なんだよなあ。
実はトランスフォームはGPUでは行わないとか?

436 :名前は開発中のものです。:02/05/11 20:12 ID:???
後藤たんにだまされるな。

437 :名前は開発中のものです。:02/05/11 20:18 ID:???
>>434
漏れもそこは納得できなかった。おそらく後藤たんの勘違いだろう。
Tessellatorが担うのは高次元サーフェスやディスプレイスメントマッピングだと思われ。

438 :名前は開発中のものです。:02/05/11 21:39 ID:???
従来どおりの頂点単位のクリッピンク「も」やります。
ってことは?

439 :名前は開発中のものです。:02/05/12 01:30 ID:Xo7NVnZk
うちのDirectX8のヘルプには、レンダリングパイプラインの頂点シェーダーの
前にTessellatorあるけどなぁ。

それと、DirectX10でシェーダーを統合するとは言ってるけど、文法を同じに
するだけで一緒に処理するわけじゃないと思うんだが。一緒に処理するような
次元のものじゃないし。
ただ、文法が同じになれば頂点シェーダーとピクセルシェーダーで同じ回路を
共有なんてこともできるようになるかも?ビットマップからジオメトリを形成
するような処理が最近の流行だから、頂点シェーダーでもテクセル補間みたい
なのは必要になるし、同じ回路を使いまわせそうな気もする。

440 :名前は開発中のものです。:02/05/12 05:43 ID:???
TessellatorはDX8からある。後藤たんが知らなかっただけ。

441 :名前は開発中のものです。:02/05/12 10:22 ID:???
>>439
>ビットマップからジオメトリを形成するような処理が最近の流行だから、
>頂点シェーダーでもテクセル補間みたいなのは必要になるし、
それこそ、まさにDX9のディスプレイスメントマッピングだな。
テセレーションのLOD制御もかなり自由度が高いらしいぞ。
それにしても、後藤たんの妄想記事は何とかならないのか・・・。

442 :名前は開発中のものです。:02/05/12 20:15 ID:JIgZ5ftk
DirectX8のD3DXSPRITE::Drawを使ってスプライトを描画した上に
ポリゴンを描画したいんですが、どうしてもポリゴンの方がしたに
なってしまいます。何かうまい方法はないでしょうか?

443 :442:02/05/12 20:27 ID:???
解決しました。
SetRenderState(D3DRS_ZENABLE,D3DZB_FALSE)
を最初に実行しておけばいいだけでした。

444 :名前は開発中のものです。:02/05/14 14:39 ID:???
後藤たん、推測は外れるし事実は誤認してるし…
知ったかですか?アホですか?

445 :名前は開発中のものです。:02/05/14 21:33 ID:gp9yAFEg
 

446 :名前は開発中のものです。:02/05/16 22:20 ID:???
IDirect3DSurface8間でのイメージの転送って
CopyRectsしかありませんか?

447 :名前は開発中のものです。:02/05/17 15:38 ID:xxARlwQE
C++/C では、Microsoft® Direct3D® サーフェスにイメージをコピーする場合に、次のメソッドも使用できる。

D3DXLoadSurfaceFromFileA
D3DXLoadSurfaceFromFileInMemory
D3DXLoadSurfaceFromFileW
D3DXLoadSurfaceFromMemory
D3DXLoadSurfaceFromResourceA
D3DXLoadSurfaceFromResourceW
D3DXLoadSurfaceFromSurface
IDirect3DDevice8::CopyRects

448 :名前は開発中のものです。:02/05/18 22:03 ID:nLBOy5nA
なに?DDrawってもう用済みなの?D3DのIMってどこいっちゃったの?

449 :名前は開発中のものです。:02/05/18 22:06 ID:???
ぜんぶD3D IMになっちゃった。

450 :名前は開発中のものです。:02/05/18 22:07 ID:???
>>447
それも結局内部でCopyRects呼び出してるだけだね

451 :名前は開発中のものです。:02/05/18 22:08 ID:???
>>449
ぜんぜんIMじゃないけど

452 :名前は開発中のものです。:02/05/18 23:09 ID:vV3OwEEg
>>449
RMがDx7で廃止
IMがDx8で廃止(名前が消えただけ?)
DrawもDx8で廃止

453 :名前は開発中のものです。:02/05/18 23:31 ID:v4jBUbb2
>>450
何故解る?

454 :名前は開発中のものです。:02/05/18 23:32 ID:???
RMが無くなったからIMと言い分ける必要が無くなっただけで、中身は
IMそのものだよ。

455 :名前は開発中のものです。:02/05/18 23:35 ID:???
>>453
D3DXの関数はすべてD3DDevのラッパーだから

456 :名前は開発中のものです。:02/05/19 02:30 ID:xPxMqsdA
D3Dのリソースマネージャクラスを作っているのですが、
ロスト時に再ロードする仕組みで悩んでいます。

1 ロードしたリソースを保存しておいて、そこから復元
2 ロードする手順を保存しておいて、再生

1はメモリを食いすぎるし、プログラムで動的に作成したリソースの復元が不可能
2はリソース管理クラス自体がファイル読み込みなどの機能を備えなければならず、
巨大なクラスになってしまう上に、暗号化ファイルなどのサポートも
管理クラスで行わなければならず、アプリケーションごとに修正を加えなければ
ならなくなってしまう。

何かいい妥協点か、第3の方法とか無いでしょうか?
それとも、ここを汎用化しようと言う考え自体間違っているのでしょうか?

457 :名前は開発中のものです。:02/05/19 03:29 ID:???
2の方法でいいと思うよ。いまどうやってロードしてるわけ?
外部の関数呼べばいいじゃん なにもリソースクラス内に読み込みのコード書く必要ないじゃん

規模にも寄るけど、アマチュアレベルなら別にメモリに保存でいいと思うよ。
VRAMに入るくらいだから数Mでしょ

458 :名前は開発中のものです。:02/05/19 03:47 ID:???
>>457
2だとリソースマネージャがローダなりファイルクラスを知らなければならないでしょ?
ファイルクラスのような低レベルのクラスまで含むとなると、
一種のフレームワークを形成することになってしまい、クラスの独立性が保てなくなる。

ローダを実装するにしても、すべてのリソース取得はマネージャを通すので、
結局マネージャ専用ローダとなり、マネージャに機能を実装するのと変わらなくなる。

って、ローダのフレームワークを提供すればいいのか・・・
クラス図書いて検討してみます、ありがとでした。

459 :457:02/05/19 04:20 ID:???
むしろ、ファイル管理もリソースクラスでやらせるように作るけどな

クラスの独立性ったって低レベルなモノほど切り離せないでのでは?
ロードクラスの基底クラスを作って抽象化すればいいんちゃうん?

460 :名前は開発中のものです。:02/05/19 04:25 ID:???
>>459
それがそうもいかないんですよ。
GDI/OpenGL/DirectXクラスをインプリメントしてるんですが、
DirectXのロストってのが特殊すぎてどうしようもないんです。

グラフィックスサブシステム周りを大きくしていくと、
他の箇所に影響が出まくりなんで、困っちゃうんです。

461 :名前は開発中のものです。:02/05/19 04:37 ID:???
>>460
DirectXのバージョンは?

462 :名前は開発中のものです。:02/05/19 04:39 ID:???
8.1です。

463 :457:02/05/19 04:40 ID:???
俺も、GL&DX対応させてるよ。コチラも基底クラスを作って
Core->Resotre(pMesh)
グラフィックエンジン毎に専用のリストア関数書けばいいんじゃないの?
MeshやTextureクラスにはファイル名とか、頂点バッファのポインタいれてさ〜

リソースクラスに、現在使ってるエンジンのポインタを持たせて
for(全部だゴルァ)
core->Restore(*)
とかしてる

464 :名前は開発中のものです。:02/05/19 06:04 ID:???
>>456
俺は2の方法だよ。
つーかGDIまでサポートするよう作ってるなら
Direct3Dは自動リソース管理にして
ロストそのものを無くした方がよくない?

465 :名前は開発中のものです。:02/05/19 06:08 ID:???
DXのロスト回避ってどこまで信用できるようになったの?
毎回、手が入れられてるよね

466 :名前は開発中のものです。:02/05/19 06:25 ID:???
>>464
こんな便利な機能があったんですね。
鬱だ・・・・
逝ってきます

467 :名前は開発中のものです。:02/05/19 06:28 ID:???
>>465
VRAMに格納出来て、画面モードの変更などにより
消失する可能性があるVバッファやテクスチャなどのリソースは
全てIDirect3DResource8から継承されてるんだけど、
こいつは作成時にD3DPOOL_MANAGEDフラグを設定してやれば
D3Dが勝手にメインメモリにコピーを作ってくれて
消失した場合自動でリロードしてくれる。
よって論理上だがロストは皆無にすることが出来るようになった。
プリロードや優先レベルの設定も出来るのでパフォーマンスの問題も
殆ど無いと思う。やっぱ問題は精神衛生上的なものか。w

468 :名前は開発中のものです。:02/05/19 10:27 ID:???
DirectX8のヘルプ流し読みしてみたんだけど、
テクスチャのサイズが2^nで無ければならないと言う記述が見あたらないんだけど、
もしかしてこの制限なくなったの?

469 :名前は開発中のものです。:02/05/19 10:47 ID:???
カード依存だけど、とっくに無くなってるよ
ただしパフォーマンス的には2^nが有利

470 :名前は開発中のものです。:02/05/19 13:00 ID:???
2^n以外ではミップマップが使えないよ。
スクリーン等倍のフルシーンエフェクトやスプライト専用だね。
あと、テクスチャ圧縮も使えないみたい。

471 :名前は開発中のものです。:02/05/19 13:11 ID:???
やべー趣味でやってるから、ミップマップなんて対応した事ないよ
あれって自動でやってくれんの?
つーか どーいう判定でテクスチャサイズ選ぶか基準かヘルプ書いてある?あんまみたことないんだけど

472 :名前は開発中のものです。:02/05/19 13:18 ID:???
mipmapってテクスチャのLODのこと?

473 :名前は開発中のものです。:02/05/19 14:41 ID:???
>>471
>どーいう判定でテクスチャサイズ選ぶか基準かヘルプ書いてある?
日本語が意味不明

474 :名前は開発中のものです。:02/05/19 14:46 ID:???
カメラ〜オブジェクト間の距離でサイズ設定すんでしょ?
例えばどの位距離が開くと1段サイズ落すとか そーいうのはどういう条件なのかな と

475 :名前は開発中のものです。:02/05/19 15:26 ID:???
>>470
ヘルプには正方形じゃなくても良いって書いてあるよ。

476 :名前は開発中のものです。:02/05/19 15:33 ID:???
誰も正方形の話なんかしてない

477 :名前は開発中のものです。:02/05/19 15:59 ID:???
>>476
ゴメンゴメン勘違いしてた。w

478 :名前は開発中のものです。:02/05/20 01:15 ID:???
>>474
それはDirectXは関係ない。ビデオチップ側の処理。
チップによって結果が変わるよ。

479 :名前は開発中のものです。:02/05/21 02:00 ID:???
どうも
c:\DXSDK\INCLUDE\d3dx8math.h(259) : error C2065: 'UINT_PTR' : 定義されていない識別子です。
c:\DXSDK\INCLUDE\d3dx8math.h(259) : error C2146: 構文エラー : ')' が、識別子 'p' の前に必要です。
c:\DXSDK\INCLUDE\d3dx8math.h(271) : error C2146: 構文エラー : ')' が、識別子 'p' の前に必要です。
cl.exe の実行エラー

480 :名前は開発中のものです。:02/05/21 02:01 ID:YNgZ7oAU
↑エラーが出てコンパイルできなくて困っています。
どうすればいいんでしょうか?

481 :名前は開発中のものです。:02/05/21 02:12 ID:???
エラー通りだろ。
先にCの勉強しろ。

482 :名前は開発中のものです。:02/05/21 02:28 ID:???
新しいPlatform SDKを入れろ

483 :名前は開発中のものです。:02/05/21 04:50 ID:???
>>481
言ってることはもっともだが、あまり門前払いしすぎるのも
この板の発展にとって良くないと思う。

>>480
UINT_PTRっていう型をコンパイラに知らせてないのが原因。
手っ取り早く言うと、必要なヘッダファイルが includeされていない。

typedef unsigned __int64 UINT_PTR, *PUINT_PTR;
この1行を、自分のソースの適当な場所に追加してみろ。

俺の記憶違いかもしれんが、BorlandのコンパイラからDirectXを使おう
としたとき、このエラーが出たような気がする。

484 :名前は開発中のものです。:02/05/21 07:16 ID:???
>>471
>どーいう判定でテクスチャサイズ選ぶか基準かヘルプ書いてある?
>>474
>カメラ〜オブジェクト間の距離でサイズ設定すんでしょ?
>例えばどの位距離が開くと1段サイズ落すとか そーいうのはどういう条件なのかな と

SDKのヘルプ [Enumerated Types]→[D3DTEXTUREFILTERTYPE] に少し書いてある。

DeviceCapsを調べた上で

アプリケーション側で用意したMIPMAP用画像データを
テクスチャサーフェスに転送、あとは例えば
SetTextureStageState( ステージ番号, D3DTSS_MAGFILTER, D3DTEXF_LINEAR );
SetTextureStageState( ステージ番号, D3DTSS_MINFILTER, D3DTEXF_LINEAR );
SetTextureStageState( ステージ番号, D3DTSS_MIPFILTER, D3DTEXF_LINEAR );
のように糞真面目に設定すれば、おおむね同じ出力は得られる。
リファレンスラスタライザの出力と若干違いが出るだろうが
これはハードウェアレンダラの怠慢なので仕方が無い。

でも、MIPMAPを自動生成にまかせたりフィルタ設定をデフォルトのままにすれば
ビデオカードのドライバ設定が適用される。当然、環境によっては出力がだいぶ
変わるだろうが、それはアプリケーション側の怠慢なのだから改善可能。(の場合が多い)

485 :名前は開発中のものです。:02/05/21 07:21 ID:???
テクスチャとかサーフェースのダーティって何?
マニュアルに用語解説もなくサッパリなんだけど

486 :名前は開発中のものです。:02/05/21 07:22 ID:???
>>483
typedef unsigned __int64 UINT_PTR, *PUINT_PTR;
これは64bitの環境のみ
32bitのwindowsだとUINTです

487 :名前は開発中のものです。:02/05/21 07:59 ID:???
>>485
Dirty = みだらな、下品な
つまりはそういうことだ!!

488 :名前は開発中のものです。:02/05/21 08:03 ID:???
>>487
そんなこと言われても意味が分かりません。
ダーティ領域を追加すると淫らなテクスチャが出来上がるんですか?

489 :名前は開発中のものです。:02/05/21 08:16 ID:7XvRBffw
>>483
どうもありがとうございます。助かりました VC++5とDirectX8の組み合わせだとServicePack3
も必要だったみたいです

490 :名前は開発中のものです。:02/05/21 08:26 ID:???
ダーティって普通は データーの改変が行われた状態の事だな
ワープロなんかでSAVE後、編集で内容が変わった状態

491 :名前は開発中のものです。:02/05/21 08:33 ID:???
素直にmodifiedって言えよー

492 :名前は開発中のものです。:02/05/21 08:39 ID:???
>>491同意

493 :名前は開発中のものです。:02/05/21 08:46 ID:???
DirectX8ラッパー作るのものすごく鬱だ
DirectX自体がよくできているので、基本的にメソッドをそのまま通すことになり、
ラッパーを作ること自体が無意味に思えてならないよ

494 :名前は開発中のものです。:02/05/21 08:54 ID:???
そのまま通すような、シンプルな構造だからでしょ

オブジェクトの描画順とか、コントロールするにはラップ必須

495 :名前は開発中のものです。:02/05/21 08:59 ID:???
いんや、描画順の制御はまた別のレイヤーで行うので、
DirectXはそれ自体で独立したモノとして作ってるので。
DX8自体は単なるラスタライザとして使う設計なんだけどね。

496 :名前は開発中のものです。:02/05/21 13:37 ID:???
<ヽ`∀´>・・・。

497 :名前は開発中のものです。:02/05/22 06:04 ID:???
Direct3DとOpenGL両対応にするとか、
DirectX9になったときの違いを吸収しやすくするとか
じゃないと意味ないということか

498 :名前は開発中のものです。:02/05/22 23:31 ID:???
質問、当方DirectX7でプログラムしてるのですが、
絵の透過処理ってどうすればいいのでしょうか?

499 :名前は開発中のものです。:02/05/23 00:11 ID:???
>>498
カラーキー使えばいいんじゃないの

500 :498:02/05/23 00:14 ID:???
>>499
絵の半透明処理と言った方がよかったかな?
転送時に転送先サーファイスにANDしながら転送するには
どうしたらいいのかと・・・

501 :名前は開発中のものです。:02/05/23 00:27 ID:???
>>500
サーフェスをLockして自分で計算して結果を書きこむ

502 :498:02/05/23 00:39 ID:???
>>501
Bltにそういう機能はないのですか・・・
自作関数作でも作ってみます。
ありがとうございました。

503 :名前は開発中のものです。:02/05/23 07:15 ID:CX9eFXSY
and程度なら、DCゲットしてBitBltでフラグ指定すればいいのでは?

504 :名前は開発中のものです。:02/05/23 10:28 ID:???
>>503
絵の半透明処理とも書いてあるからBitBltでは無理ではないでしょうか。

505 :名前は開発中のものです。:02/05/23 10:58 ID:???
and演算を行うbitbltなんて無い

506 :名前は開発中のものです。:02/05/23 10:58 ID:???
bitbltじゃなくて、半透明だ

507 :名前は開発中のものです。:02/05/23 13:35 ID:???
>転送時に転送先サーファイスにANDしながら転送するには
ANDらしいが?

508 :498:02/05/23 13:36 ID:???
503を見てとりあえずBitBltでやってみたんですが、
下になる絵の色がおかしくなるのでダメみたいです。
これやるには下の絵の色+重ねる絵の色をやらないといけないみたいですね。
これからバイトに行かないといけないんでバイト中にちょっと考えてみます。
半透明処理が無いのなら結局501の言うようになると思いますが・・・

509 :名前は開発中のものです。:02/05/23 13:49 ID:???
半透明じゃなくて色抜き転送したいんじゃないの?
マスクパターンを作ってAND/ORで転送じゃなかった?

510 :名前は開発中のものです。:02/05/23 16:28 ID:???
何がやりたいのかはっきり言えーーーーーー!!!!

511 :名前は開発中のものです。:02/05/23 18:31 ID:???
言うのならできるけど文章にはできん

512 :名前は開発中のものです。:02/05/23 18:32 ID:???
結 論
W i n G を 使 え

513 :名前は開発中のものです。:02/05/23 18:52 ID:???
結 論
W i n G L を 使 え

514 :498:02/05/23 23:18 ID:EcEbM6h2
はっきり言わなかった為混乱させてしまいすみません。
初めに透過処理とか言ったのがいけなかったみたいです。
初めはANDで半透明処理が出来るのでは・・・と思っていたので。
ANDではそれっぽく見えるけど下の絵がはっきりわからなくなります。
要は書き込む絵を半透明にして下の絵と重ねたいと言う事なので、
色抜き転送ではありません。

515 :498:02/05/23 23:20 ID:EcEbM6h2
で、ちょっと組んでみたんですが・・・

void CMyApp::TranslucentBlt( LPDIRECTDRAWSURFACE lpS_Point,int PointX1,int PointY1,int PointX2,intPointY2,LPDIRECTDRAWSURFACE lpS_Source,int SourceX,int SourceY )
{
DDSURFACEDESC ddsd1,ddsd2;
short *lpsSource = NULL;
short *lpsPoint = NULL;

ZeroMemory( &ddsd1,sizeof( DDSURFACEDESC ) );
ZeroMemory( &ddsd1,sizeof( DDSURFACEDESC ) );
ddsd1.dwSize = sizeof( ddsd1 );
ddsd1.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
ddsd1.dwWidth = WinXMax;
ddsd1.dwHeight = WinYMax;
ddsd2.dwSize = sizeof( ddsd2 );
ddsd2.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
ddsd2.dwWidth = WinXMax;
ddsd2.dwHeight = WinYMax;

lpS_Source -> Lock( NULL,&ddsd1,DDLOCK_WAIT,NULL );
lpS_Point -> Lock( NULL,&ddsd2,DDLOCK_WAIT,NULL );
lpsSource = ( short * )ddsd1.lpSurface;
lpsPoint = ( short * )ddsd2.lpSurface;
lpsSource += SourceX + ( SourceY * WinXMax );
lpsPoint += PointX1 + ( PointY1 * WinXMax );

516 :名前は開発中のものです。:02/05/23 23:20 ID:???
厨な質問で申し訳ないが、8.0のSkinnedMeshサンプルが理解し切れない…。

他に、スキンメッシュのサンプルコードや解説してる本があったら教えてくだされ。

517 :498:02/05/23 23:21 ID:EcEbM6h2
for( int i = 0 ; i < ( PointY2 - PointY1 ) ; i++ )
{
for( int j = 0 ; j < ( PointX2 - PointX1 ) ; j++,lpsSource++,lpsPoint++ )
{
*lpsPoint = ( *lpsPoint + *lpsSource ) / 2;
}
lpsSource += ( WinXMax - PointX2 ) + PointX1;
lpsPoint += ( WinXMax - PointX2 ) + PointX1;
}
lpS_Point -> Unlock( 0 );
lpS_Source -> Unlock( 0 );
}
これだと色がおかしくなるので、一度色を要素別に分け、
それらを足してから2で割り、色データに変換しないといけないような気がします。
しかし、色データをRGBの要素別に分けるのにはどうすればいいのでしょうか?
その辺の解説をしていただけると助かります。

518 :498:02/05/23 23:22 ID:EcEbM6h2
あ”−なんだか変になってる

519 :名前は開発中のものです。:02/05/24 02:30 ID:rNrOyBCE
>>516
ない、多分。
はっきり言って
SDKのSkinnedMeshサンプルは
ソースが汚い。
俺も読む気が失せたが、気合で読んだ。

520 :名前は開発中のものです。:02/05/24 02:49 ID:???
なんかSkinnedMeshサンプルのスキニングウエイトの扱いって変なん
だよなぁ。Maxからコンバートしてるんだけど、どう考えても有り得
ない曲がり方しやんの。どっかでウエイト数値が補正されてると思う
んだけど、チンプンカンプン。
 ちょいとわかる方いましたら教授頂きたいです。

521 :名前は開発中のものです。:02/05/24 06:50 ID:???
>>517
この手の自力半透明は一昔前に流行ったから、検索すると参考ページが結構出てくるぞ

522 :名前は開発中のものです。:02/05/24 08:44 ID:???
結 論
W i n G を 使 え

523 :名前は開発中のものです。:02/05/24 08:53 ID:???
今時WinGを使えとは言わんが、VRAMのSurfaceをLockするくらいなら
DIBの方がラクだし速度も出るぞ。

524 :名前は開発中のものです。:02/05/24 11:47 ID:???
>>520
いや俺の場合は大丈夫だけど。
自作クラスでアニメーションさせてるけど
tiny.x以外の2種類のXFILEも普通に動いてるよ。

525 :516:02/05/24 13:24 ID:???
レス感謝。

やはり、このソースを解読するしかないということか…。
とりあえずmload.cppとmdraw.cppを切り離してクラス化し、
自作プログラムの中にでも組み込んで見ます。

526 :名前は開発中のものです。:02/05/24 17:39 ID:sqwn/yLQ
DirectX8にて256以上のサイズのテクスチャーを読み込みたいのですが、
何かうまい方法はないでしょうか?

527 :y2kbest@k9.dion.ne.jp:02/05/24 17:56 ID:???

「高性能ビデオスタビライザー」です↓
http://user.auctions.yahoo.co.jp/jp/user/NEO_UURONNTYA

店頭販売価格は、13900 円なんですが、
今回だけ、破格の 7700 円に設定して
おります。

購入希望の方は、メールを下さい。

不安な方は、落札をして頂いても
構いません。

528 :名前は開発中のものです。:02/05/24 18:36 ID:???
>>526
普通に読み込めてるんだけど?

529 :名前は開発中のものです。:02/05/24 18:52 ID:???
>>526
3Dfx?

530 :名前は開発中のものです。:02/05/24 19:02 ID:???
ウチのSPECTRAくんは2048x2048までのテクスチャが使えると言ってきてます

531 :名前は開発中のものです。:02/05/24 23:03 ID:???
>>526
マジレス。
ビデオカード変えれ。
数世代前のうちのTNT2ですら2048x2048まで扱える。

Voodoo?ナニソレ。オイシイ?

532 :名前は開発中のものです。:02/05/25 00:58 ID:???
TNT2?ナニソレ。オイシイ?

533 :名前は開発中のものです。:02/05/25 01:15 ID:???
>>524
 んー、微妙に意図するスキニング結果が得られないのよねぇ。間接とか
きちゃなく曲がるし。四肢の付け根はガタガタになるやがるし。MAX側の
スキキングがそのまま再現出来る訳じゃないのかなー?

534 :名前は開発中のものです。:02/05/25 06:48 ID:???
ふつうに読め
■■■終了■■■

535 :516:02/05/25 10:53 ID:???
>>533
それ、もしかしてtiny.xがゾンビ化して表示されるという現象デスカ?
(全身の骨をプレス機で粉々に砕いたかの如き姿で表示される)
だったら今の漏れと同じ状況(藁

skinnedmeshサンプルをそのまま流用しようとしてるんだけど、
その中のSetProjectionMatrixの使い方が怪しいと睨んでる。

536 :705:02/05/25 13:30 ID:???
よく見たら、そんな基本レベルの問題じゃないね(w
スマンす。

537 :名前は開発中のものです。:02/05/25 17:42 ID:???
当方DirectX8.1にてRPGの見下ろし型のスクロールを
やりたいのですが、クリッピングが上手くいきません。
画面から少しでもはみ出すと表示されないようです。

何か良い方法ありますか?

538 :名前は開発中のものです。:02/05/25 17:46 ID:???
DX9beta1きたね

539 :名前は開発中のものです。:02/05/25 18:42 ID:???
もうDX9か。GeForce2ダメかなぁ
SPECTRA高いし、どうするか。

540 :537:02/05/25 18:52 ID:???
>>537
http://www.cong.ac.jp/~maeda/directx8/directx8.htm
ここを参考に2DのRPGを作ってます。

541 :名前は開発中のものです。:02/05/25 19:08 ID:???
ぶっちゃけた話DX9って 何が売り?
シェーダーとか現状じゃ扱いづらいので、あんまいらん

542 :名前は開発中のものです。:02/05/25 23:16 ID:???
>>540
>DirectX を使うと Windows のシステムに邪魔されることなく、グラフィックボードや入力機器に 直接アクセスすることが可能になり、
見てみたが、これを筆頭に間違いだらけだぞ

543 :名前は開発中のものです。:02/05/25 23:54 ID:???
>>541
シェーダーのC風高級言語や、VSに統合されるデバッガとかがあるよ。
Vertex Shaderは条件分岐やループも使えるようになって、かなりマシになるかも。
あと、何気に2D機能が復活したっぽいのが嬉しい(詳細不明)

544 :名前は開発中のものです。:02/05/26 01:46 ID:XI5aVJYk
DirectX9βテスタの皆様、やっぱりEULAの関係上、
ここでDX9スレとかは立て無いの?
まだ立って無いみたいだけど。
公式のニュース鯖も、まだ全然活動してないみたいだし。

545 :名前は開発中のものです。:02/05/26 03:24 ID:???
スレ立てる必要あるの?

546 :537:02/05/26 11:49 ID:???
>見てみたが、これを筆頭に間違いだらけだぞ
まじですかヽ(`Д´)ノ ウワァァン
画面一杯(例えば640*480全体)に表示してスクロールするのは上手くいかなかったので
画面の一部(例えば320*240)に表示してそのまわに枠をつけることでなんとか
妥協しました。

ご指摘ありがとうございした。他に良さそうなDirectX8の入門ページ探してみます。

547 :名前は開発中のものです。:02/05/26 12:32 ID:???
 技術を盗みたいシナは、あまり無茶はできません。苛められたら撤退すりゃいいだけのこと。

そうか?ロックして取得したアドレスで内容書き変えれるだから 直接アクセス という表現をしてもいいんじゃないか?
チップのレジスタに直で触れるわけではないが

548 :名前は開発中のものです。:02/05/26 12:33 ID:???
あぁ 変なコピペしちゃった。

>DirectX を使うと Windows のシステムに邪魔されることなく、グラフィックボードや入力機器に 直接アクセスすることが可能になり、



549 :名前は開発中のものです。:02/05/27 04:52 ID:???
>>547
実はものによってはUnlockの時点で転送してるので本当に直接アクセス
してるわけではない罠

550 :名前は開発中のものです。:02/05/27 12:51 ID:???
>>544
>ここでDX9スレとかは立て無いの?

何故すぐに新スレを立てたがるのか、小一時間問い詰めたい。

551 :名前は開発中のものです。:02/05/27 15:35 ID:???
>>549
そんな1Byte1Byteいちいちアクセスしてどうなる。
DirectXのいう直接アクセスというのは、
直アクセス並に柔軟な扱いが可能になるということであり
Windowsの厚いレイヤーを通さずにすむという意味も兼ねている。
>>540のリンク先もそんなにおかしなことを言っている訳でもない。

552 :549:02/05/27 18:40 ID:???
>>551
いや、別にDirectXがどうとか540のリンク先がどうとか言う気はなくて
たんに547にツッコミを入れただけだが。そのツッコミは547にしてよ。

ところで537は画面全体をCopyRectsか何かで転送してるの?

553 :名前は開発中のものです。:02/05/27 18:44 ID:hVSF2hTA
>実はものによってはUnlockの時点で転送してるので本当に直接アクセス

ものって具体的にはなに?
どうやってポインタの先書き換えを記録してんの?

554 :名前は開発中のものです。:02/05/27 19:20 ID:???
>>553
Lock した時点で主記憶にコピーを作って、Unlock で主記憶から VRAM にコピー
なのでは? 知らんけど。

555 :名前は開発中のものです。:02/05/27 19:29 ID:hVSF2hTA
あーそーなのかーLock重いのは、タイミング待ちかなにかと思ったら
コピー時間なわけね。つーことはデカイバッファは比例して重いのか?

VGAとUXGAで6倍程違うが、それだとちょっと差がありすぎで困りそうだね
サーフェイス系は違うのかな

556 :名前は開発中のものです。:02/05/27 19:38 ID:???
>>555
そういう物もありうる(あるの?)って話だろ。
実際にウチだとLock先のポインタにさわるの自体がえらく遅いんで、
Lockで帰ってきたのはメモリマッピングされたVRAMのアドレスだと思われ

557 :nyamo:02/05/27 23:25 ID:0dHGsNog
 DX7を使っています。
 Bltでサーフェイスをコピーするとき、srcRectとdstRectの大きさが
違っていると自動でリサイズしてくれますが、ウチのビデオカード(GeForce256
16ビットカラーモード)だとバイリニア法っぽくボンヤリ拡大してくれます。
 ニアレストネイバー法でカチカチに拡大して欲しいのですが、Lockして
1ピクセルずつちまちまコピーするプログラムを書くのが常套でしょうか。
なんかオプション渡せばやってくれそうな気がします。ご存知の方
おしえてくだちぃ

558 :名前は開発中のものです。:02/05/27 23:30 ID:???
遅くなるけどシステムメモリにサーフェス確保しる。

559 :名前は開発中のものです。:02/05/27 23:30 ID:???
厨質問で申し訳ないが、DX7のDirectDrawのWindowモードで画面左側にはみ出すようにBlt転送すると、
戻り値はDD_OKで返ってくるのに画面に反映されていないのは、クリッパーの仕様?
それくらいは自分で転送元/転送先共に設定してやれって事なのかな?
ちなみに、画面右側がはみ出ていてもきちんと反映されている。
あ、転送先Windowのクライアント領域の座標は取得してます。

560 :名前は開発中のものです。:02/05/27 23:33 ID:???
MSのヘルプだかFAQでそういう話を見たことはあるな。
DirectX登場以前のチップだとメモリ配置がDirectDrawの想定しているのと
違う可能性があるからそういうチップならそういう実装もあったんじゃない?
16色の頃はプレーンごとに分かれてる方が普通だったじゃん。
今でもひょっとすると一部のOpenGL向けのチップはそういう特殊な実装をして
いるかもね。

ところで最近のDirectXのヘルプには、Lockの説明にバンクメモリ云々の注意
事項が書いてないね。もうそんなチップ無いから無視していいってこと?

561 :nyamo:02/05/27 23:57 ID:0dHGsNog
>558
早速試すでつ

562 :nyamo:02/05/28 00:12 ID:U/sOJx5k
>>558
できたよ!ほんとだ!dstサーフェイスをシステムメモリに配置したところ
ニアレストネイバーのカチカチ拡大になりました。そうかビデオカード使わ
なきゃいいんだ。。。

563 :名前は開発中のものです。:02/05/28 01:25 ID:???
遅いという罠

564 :名前は開発中のものです。:02/05/28 01:55 ID:???
それが嫌で某エミュではDirect3D化しました

565 :名前は開発中のものです。:02/05/28 02:17 ID:???
それ,起動する時に解像度が一瞬変わるのやめてホスィねw

566 :名前は開発中のものです。:02/05/28 04:27 ID:???
それってどれのこと?

567 :名前は開発中のものです。:02/05/28 04:33 ID:bqsf0q/I
今時DDRAW使うなよといいたい

568 :名前は開発中のものです。:02/05/28 06:13 ID:???
>>567
じゃあ何を使えと?DGraphicsでも同じだぜ?

569 :名前は開発中のものです。:02/05/28 06:20 ID:???
2dもD3dつかえと

570 :名前は開発中のものです。:02/05/28 07:17 ID:???
>569
低スペックマシンでうごかねぇじゃん。
アフォか。

571 :名前は開発中のものです。:02/05/28 08:50 ID:???
ん?3Dにしてテクスチャのフィルターカットで描画するって事?

572 :名前は開発中のものです。:02/05/28 08:51 ID:sdv9PJPc
DX8のID3DXSprite::Drawで、スケール設定してもビデオカードによっては機能しない
のがあって萎え。
色々な環境で調べた方が良いね・・・

573 :名前は開発中のものです。:02/05/28 08:52 ID:???
低スペックを相手にしてるエログラマはいらないよ。
もう氏んだら

574 :名前は開発中のものです。:02/05/28 09:49 ID:???
最近はノートPCのビデオチップも少しずつまともになりつつある罠

575 :名前は開発中のものです。:02/05/28 09:55 ID:???
D3Dで2Dやるとラスターエフェクトとかが使えない罠

576 :名前は開発中のものです。:02/05/28 10:34 ID:???
時代はピクセルシェーダという罠

577 :名前は開発中のものです。:02/05/28 10:35 ID:???
pixelShader 対応は流石にまだ少ない罠

578 :名前は開発中のものです。:02/05/28 10:42 ID:???
PixelShaderに対応しているビデオカードってどれくらいあるの?
Geforce3、4(not MX)、Radeon8500、他には?

579 :名前は開発中のものです。:02/05/28 16:54 ID:???
むむ、DX9でGetDC復活してんのか
XBOXにwindowsが載る日は近いのかー?(適当。そうなの?

580 :名前は開発中のものです。:02/05/28 17:48 ID:???
>>579
もう組込用Win2kが乗ってるけど

581 :名前は開発中のものです。:02/05/28 17:56 ID:???
カーネルでなくて、window表示周り つーことを察してください

582 :名前は開発中のものです。:02/05/28 21:15 ID:PCwwkiQQ
世の中、超高価なビデオカードを頻繁に取り替えては
宝の持ち腐れ状態にしている人が大勢いるのに
俺にはPixelShader実行環境なんて永久に手が届かない罠。

583 :名前は開発中のものです。:02/05/28 23:57 ID:???
>>582
そんなあなたにWinG。
もう環境に振りまわされないで済みますよ

584 :名前は開発中のものです。:02/05/29 00:26 ID:???
>>582
そんなあなたにリファレンスラスタライザ。
もう時代に取り残されないで済みますよ

585 :名前は開発中のものです。:02/05/29 08:41 ID:???
>>583-584=フェードアウター

586 :名前は開発中のものです。:02/05/29 12:06 ID:???
MacDXどうよ
http://www.coderus.com/

587 :名前は開発中のものです。:02/05/29 17:33 ID:5A.rxik2
だむぇだぁDirectInput教えてくだされ。
ジョイパッドの軸入力をバッファリングモードで取得してるんだけど
ずっと十字キーを押してるのに、押した瞬間の1回しか反映されず
それ以降は0になってしまいます。
軸の範囲が-100〜100だとすると
100、0、0、0 みたいな感じです。
100、100、100、100 という風にしたいんです。
サンプルと見比べてみたんですが、設定し残しは特に見当たらない感じです。

588 :名前は開発中のものです。:02/05/29 18:18 ID:WglpNvG.
バッファに収めときゃいい

589 :587:02/05/29 19:27 ID:SjTOp7to
>>588
解決しますた。
バッファの使い方がよくわかってませんでした。
アクションマップは便利だけど、バッファがうざいですね。
ありがとうございました。

590 :名前は開発中のものです。:02/05/29 23:43 ID:/Fl9zVk.
DX7 で作るか DX8 で作るか悩んでます。
より多くの人に見てもらうには、やはり DX7 でしょうか?

作ろうとしているのは、簡単なポリゴンのデモです。

591 :名前は開発中のものです。:02/05/29 23:45 ID:???


592 :名前は開発中のものです。:02/05/29 23:57 ID:???
>>590
別にDirect3Dを使うんなら
7でも8でも差は無いでしょ。

593 :名前は開発中のものです。:02/05/30 01:00 ID:???
>>590
ころころ仕様が変わるDirectXは無視してOpenGLを使いなさい

594 :名前は開発中のものです。:02/05/30 01:06 ID:???
機種依存しまくりのOpenGLなんて使い物にならん

595 :名前は開発中のものです。:02/05/30 02:19 ID:3VHBqsV2
D3DXのC++拡張機能は便利だ。
D3Dは別に使わなくていいけど、
D3DXQUATERNIONとかは使った方がいい。

596 :名前は開発中のものです。:02/05/30 02:27 ID:???
よく593みたいな事言う人いるけど、新しいバージョンが出たら古いのは
使えなくなると思ってるのかな?

597 :名前は開発中のものです。:02/05/30 03:03 ID:???
>>595
おまえひねくれ者だな。
D3DXを使ってラスタライザは自前かよ
普通自前でラスタライザを書くならfloatじゃなくてdoubleを使うから
基本floatのD3DXは使い物にならん

598 :名前は開発中のものです。:02/05/30 04:32 ID:???
DDraw+自作3dエンジンでえーんでないの
簡単なデモなら

599 :名前は開発中のものです。:02/05/30 04:36 ID:OepbMKuk
>>597
違う違う、別に強制はしないよという意味。
座標系の違いがあったかどうかは忘れたけど
OpenGL+D3DXでもいいんじゃないのみたいな。

>普通自前でラスタライザを書くならfloatじゃなくてdoubleを使うから
これはちょっとわからん。精度の問題?
floatで問題になるケースがあるとは思えないけど。

600 :名前は開発中のものです。:02/05/30 08:15 ID:???
OpenGLの仕様は変わらないというけど
ハードが変わるとコードを変えなきゃなんないから(エクステンション等)
結局DXと変わらないという罠

601 :名前は開発中のものです。:02/05/30 10:27 ID:???
OpenGLはもうすぐ仕様が変わりそうという罠

602 :名前は開発中のものです。:02/05/30 11:38 ID:???
doubleでラスタライザ書くなんて人は初めて見た。レイトレ?
固定小数点使う方が一般的だと思うけど。

>>600
まだ統一規格のあるDirect3Dの方がマシかも。

603 :名前は開発中のものです。:02/05/30 14:26 ID:???
貧乏な漏れのノートPCはレガーシなんで
8はまともに動かん、で7キボンヌ。

604 :名前は開発中のものです。:02/05/30 14:59 ID:???
なるほどー、特にノートだと、最新のドライバが提供されなかったりとかありそうだね。デスクトップでも、いろんなチップメーカーが消えていったもんなぁ・・・・

605 :259:02/05/30 17:04 ID:???
実際、DX8って大半のノートじゃ動かんだろ。
なのに、なんでDX8用のソフトを作ろうとするわけ?

コピペ

606 :名前は開発中のものです。:02/05/30 17:16 ID:???
>>605
Direct3D7.0が動く環境ならDirect3D8.0も当然動く。
D3Dを使う分には7を選ぶメリットはない。GetDCぐらい?

607 :名前は開発中のものです。:02/05/30 17:22 ID:???
そもそも3Dやるのにノートを眼中に入れることが間違い。

自虐的なノート使いの戯言だが。

608 :名前は開発中のものです。:02/05/30 17:32 ID:???
PC9801VX対応。これ最強。

609 :名前は開発中のものです。:02/05/30 18:27 ID:???
>>608
RXの方が名機だけど?

610 :名前は開発中のものです。:02/05/30 18:29 ID:???
>>609
608じゃないが、98ソフトといえばVX対応だろ〜(笑

611 :名前は開発中のものです。:02/05/30 19:14 ID:???
ノーマル98と言えば高嶺の花
PC-9821An/C9Tしか無いだろ。

612 :516:02/05/30 23:15 ID:???
スキンメッシュって、HAL T&L(D3DCREATE_HARDWARE_VERTEXPROCESSING)を使っては
いけないんでしょうか?
skinnedmeshサンプルのcreatedevice関数で、ココいじるとモデルが崩壊
するようなんですが(´Д`;

私の勘違いでなければ、VGAの機能の大半が役に立たなくなってしまうのでは…。
回避策があるようでしたら、ヒントだけでもいいので教えてくださいませ。

613 :名前は開発中のものです。:02/05/30 23:17 ID:???
>>606
フィードバックエフェクトやろうとすると、8はBltないのが痛いよ。

614 :名前は開発中のものです。:02/05/31 00:21 ID:???
CopyRectsがあるじゃん

615 :名前は開発中のものです。:02/05/31 01:27 ID:???
>>612
それはモデルのウエイト数が、
Direct3DHALのジオメトリブレンディング能力の
キャパシティを超えている為だと思う。
バーテックスブレンドなら、ひとつの面にかかるウエイト数。
インデックスブレンドなら、ひとつの頂点にかかるウエイト数になる。
D3D8CAPS見てみ。
ソフトウェアTLの場合は最大で4つ。
ハードウェアTLの場合はGPUによる。
GeForce256ならバーテックスブレンドが2つで
インデックスブレンドが0、
GeForce2GTS以降なら多分バーテックスブレンドが4つで
インデックスブレンドが0になる。
それ以上のウエイトを使うようなモデルだと、
ID3DXSkinMeshの変換メソッドが失敗するか、表示が崩れる。

616 :名前は開発中のものです。:02/05/31 01:30 ID:???
つーか何でSkinnedMeshサンプルは450FPS出るのに
自分のプログラムだと300FPS以下しか出ないんだ・・。
単純にドロープリミテブ繰り返してるだけなのに。
むかつくぜ。

617 :名前は開発中のものです。:02/05/31 02:08 ID:6a0xSIHk
環境変えたら LNK1106 エラーが出てリンク通んねぇ・・・
鬱・・・

618 :名前は開発中のものです。:02/05/31 03:44 ID:???
>>614
Stretchできないから使い物にならない>CopyRects
IDirect3DDevice9::StretchRectはちゃんとハードウェアで実行してくれるのかな?

619 :名前は開発中のものです。:02/05/31 06:09 ID:???
スキンメッシュいじってる人アニメーションどうやって作ってるの?
やっぱLW7とかmax4なんかな。

620 :516:02/05/31 09:56 ID:???
>>615
超感謝。ありがとうございます。

tiny.xそのまま再現させてたんで、ウェイトかかりまくってると思われるので。

621 :名前は開発中のものです。:02/05/31 10:38 ID:???
つーか、おまえら
DX7とDX8の違いをおさえてないだろ。
両者のメリットとデメリットを言ってみ。

622 :名前は開発中のものです。:02/05/31 11:03 ID:???
まず貴方様の素晴らしい知識をご開陳いただきたく。

623 :名前は開発中のものです。:02/05/31 12:15 ID:???
skinMeshのサンプルって、ハードのブレンド数の上限にあわせて、分割表示してなかったけ?

624 :615:02/05/31 15:43 ID:???
>>623
いや、1頂点にかかるウエイト数の問題だから
メッシュを分割してどうにかなるもんでもない。
tiny.xは、1頂点あたり4ウエイトのモデルだがそれを
2ウエイトのモデルに変換しょうとしても出来ない。
ID3DXSkinMeshの変換は超高速だが、あんまり親切じゃない。

625 :名前は開発中のものです。:02/05/31 15:45 ID:???
thank you

626 :名前は開発中のものです。:02/05/31 21:40 ID:gCpEEKqg
草原ってどうやって表現しる?

627 :名前は開発中のものです。:02/05/31 22:38 ID:???
1年くらい前のMSDNマガジンで頂点シェーダの
スキンメッシュやってた記憶があるが、
どんなのだったっけ。

628 :名前は開発中のものです。:02/05/31 22:43 ID:???
>>627
全然参考にならなかったような
sdk sampleの方がマシでは

629 :名前は開発中のものです。:02/05/31 23:27 ID:???
頂点シェーダを使う場合、頂点ストリームを複数入れるようにして
1本は普通のFVF、残りはウエイトの塊っていうふうにすれば
事実上ウエイトの制限はなくなるよねえ。
つーか、MAXでは1頂点につき16x256Bのデータが使えるので
1頂点つきそれぞれ別々のライト10個使用なんてのも出来るね。
速度を無視すれば何でもありってこと?

630 :名前は開発中のものです。:02/06/02 22:24 ID:???
Direct3Dで、一部ポリゴンを平行投影しようと思っているのですが、
投影行列を平行に指定した途端、ちゃんと描画されなくなってしまいます。

w 0 0 0
0 h 0 0
0 0 Q 1
0 0-QZ0

が透視投影行列で

w 0 0 0
0 h 0 0
0 0 Q 0
0 0-QZ0

が平行投影行列で良いんですよね?3行4列目の数値を0に下途端
何も出なくなってしまうのですが、D3Dで平行投影は可能なのですか?

631 :名前は開発中のものです。:02/06/02 22:24 ID:YU8oew0w
age忘れました。すみません。

632 :名前は開発中のものです。:02/06/02 22:31 ID:???
w 0 0 0
0 h 0 0
0 - 1 0
0 0 -Q 0

633 :名前は開発中のものです。:02/06/03 04:48 ID:???
>>630
もう少しだけ、もう少しだけ頭を使えばいい。

634 :名前は開発中のものです。:02/06/03 13:13 ID:???
>>630
ベクトルのw成分を0にしちゃいかんよ。

635 :名前は開発中のものです。:02/06/04 21:55 ID:QedpiA6w
DirectX8.0a使ってます。

D3DXCreateSpriteやlD3DXSprite::Drawを使ってスプライトを行うとき、
D3DXCreateTextureFromFileなどを使い使用する画像ファイルを読み込むわけですが、
外部に配布するゲームなどで、ファイルの中身を簡単には見られたくない場合、
D3DXCreateTextureFromFileじゃダメですよね?
画像ファイルを暗号化して、それを読み込めるようにして
…って理屈はわかるんだけれども、こんな場合どうすりゃいいんだろう…。

プログラム暦浅いのでこんなんでスマソ。

636 :名前は開発中のものです。:02/06/04 21:57 ID:???
>>635
一番目の方法としてID3DXSpriteの使用をやめる
それが嫌なら
DibSectionなりをつかって独自フォーマットを一時的にbmpに置き換えて
それを読みこませる。
まぁVRAM復帰で死ぬけど。

637 :名前は開発中のものです。:02/06/04 22:00 ID:???
>>636
うそだった、
Textureをlockして書きこめばよかった…

鬱死

638 :名前は開発中のものです。:02/06/04 23:33 ID:z0uR.zsQ
>>635-636
D3DXCreateTextureFromResource

639 :名前は開発中のものです。:02/06/04 23:48 ID:???
おのれでファイルを開き、全部メモリに読み込んでから
D3DXCreateTextureFromMemory
後から暗号化するのも変更点少ないからこれにしとき。

640 :名前は開発中のものです。:02/06/05 08:03 ID:ci2rQ1FE
DirectX9β1でたよね。runtimeだけ?SDKは?

641 :名前は開発中のものです。:02/06/05 09:13 ID:???
2ch来てるような 同人STG作者には関係ないということで・・・終了

642 :名前は開発中のものです。:02/06/05 10:04 ID:???
>641口から泡出てるヨ。

643 :名前は開発中のものです。:02/06/05 12:52 ID:8Vcze9a.
同人シューティングって、なんでRay Force/Stormみたいのが多いの?

644 :名前は開発中のものです。:02/06/05 12:54 ID:???
えを多く用意しなくて良いから

645 :名前は開発中のものです。:02/06/05 13:22 ID:???
マクロスみたいな 誘導ミサイル を3Dゲームに落とし込むのか企画屋の夢だったから
RAYシリーズで見事やられちゃったけど、未だにその夢の残骸を追いつづけてる

646 :名前は開発中のものです。:02/06/05 13:24 ID:8Vcze9a.
システムだけじゃなくて絵とかまでくりそつじゃん。

647 :名前は開発中のものです。:02/06/05 21:11 ID:???
>>643
それしか知らないから

648 :名前は開発中のものです。:02/06/06 00:37 ID:???
レイでなければ東亜系だが、ダサすぎて売れずに轟沈

649 :名前は開発中のものです。:02/06/06 03:47 ID:???
3Dシューティングでボンバー搭載のもちょっと見たい
ボンバーの演出燃えそう

650 :名前は開発中のものです。:02/06/06 07:57 ID:3HfZgzKI
省ポリゴンで3D縦シュー作るとなぜかレイストームになっているという罠

651 :名前は開発中のものです。:02/06/06 09:04 ID:???
ストーリーも、とってつけ方がレイなのが多いな。
絶望的戦局の最後の希望とかなんとか。

652 :名前は開発中のものです。:02/06/06 11:06 ID:???
DirectX8にて、画面が16ビットモードなら問題なく初期化できるのですが、
24ビットモードで同じプログラムを実行すると初期化に失敗します。
D3DPRESENT_PARAMETERSのBackBufferFormatにちゃんとディスプレイモードを
セットしているのですが、失敗します。
どなたか教えていただけないでしょうか?

653 :名前は開発中のものです。:02/06/06 11:12 ID:VX129WA.
VRAMがたりてないとか。解像度どうよ?
最近のビデオカードだとありえないとも思うけど、
トリプルバッファでやってるとか。

654 :名前は開発中のものです。:02/06/06 11:49 ID:???
レイシリーズは好きだけど、バックストーリィは知らなかった。

655 :652:02/06/06 11:58 ID:???
>>653
即レスありがとうございます。
トリプルバッファはやってません。
VRAMは足りているはずです。
解像度は今、変えてみましたが、24ビットではうまくいきません。
他に考えられる原因がありましたらよろしくお願いいたします。

656 :名前は開発中のものです。:02/06/06 12:02 ID:???
実は32ビットモードだと上手く行くとか

657 :名前は開発中のものです。:02/06/06 14:00 ID:???
>>655
ビデオカードは?
24ビットモードが無いだけのような気がする。

658 :名前は開発中のものです。:02/06/06 17:53 ID:???
画面モードを列挙しる!

659 :652:02/06/06 18:18 ID:???
24ビット時に取得したディスプレイモード(D3DDISPLAYMODE::Format)の
値はD3DFMT_R8G8B8 = 20 です。

660 :名前は開発中のものです。:02/06/06 19:30 ID:VX129WA.
フルスクリーンモードで初期化するとうまくいく罠

661 :名前は開発中のものです。:02/06/06 20:06 ID:RxPMJbQM
RPGみたいなマップチップを敷き詰めて表示するプログラムやってます。

DirectX8.0aで組んでいたプログラムをDirectx8.1でコンパイルしてみたら
なぜかマップチップ同士の継ぎ目が見えちゃうようになったんですが…

なんででしょ? lD3DXSprite::Draw使ってます。

662 :名前は開発中のものです。:02/06/06 20:15 ID:???
ID3DXSpriteを使うなってことだろ。
ファイルをテクスチャにロードする際に
2^nのサイズに補正されてロードされるから、
イメージの補完式が変わると当然結果も違ってくる。

663 :名前は開発中のものです。:02/06/06 22:02 ID:AuhGqnfs
mmioOpenを使ってWavファイルを読み込んでいますが、
Wavファイルの中身を簡単には見られたくない場合どのようにしたら
いいのでしょうか?

664 :名前は開発中のものです。:02/06/06 22:08 ID:???
winnt\system32\dllcacheとかに紛れ込ませる

665 :名前は開発中のものです。:02/06/06 22:18 ID:???
>>662
テクスチャサイズは大丈夫なはず。
やっぱ自前でSprite組んだ方が良いのかな

666 :名前は開発中のものです。:02/06/06 22:20 ID:???
>>663
読み込んだデータを自前の形式でセーブすれ

667 :名前は開発中のものです。:02/06/06 22:56 ID:???
>>665
テクスチャの問題ということじゃなくて。
テクスチャの幅と高さが2^nのサイズになるように引き延ばされてロードされるから、
当然bi-linearだったりその他アルゴリズムで補間(画像を変形される)される。
Spriteとして描画するときはその都度縮小描画をするんだけど、
ロード時にすでに元絵が崩れているから、綺麗にならない場合がある。

で、8.0で正常に表示できていて8.1でダメになったと言うことは、
そのときの補間式が変更になって、1dot単位で厳密に絵があわなくなったって事じゃないの?

668 :名前は開発中のものです。:02/06/06 23:54 ID:???
>>667
512x512の画像を読み込んで、そこから48x48単位で
切り出してマップチップとして使ってます。

で、48が2^n単位ではないからおかしくなってる、
って事かな?

669 :名前は開発中のものです。:02/06/07 00:31 ID:???
DIRECTDRAWSURFACE7のサーフェスのメモリを直接操作したいのですが、
LPSURFACEDESC2 sd;
pBmp1->Lock(NULL,sd,DDLOCK_SURFACEMEMORYPTR ,0);
こうやると、DDERR_INVALIDPARAMSが返されて、サーフェスをロックできません。
pBmp1にはLoadImage("",LR_FROKFILE);で読み込んだイメージをpBmp1のHDCを取得してBitBltしたイメージが入っています。
WEB上のさまざまなサンプルの組み合わせを試しましたが、原因がわかりません。

670 :名前は開発中のものです。:02/06/07 00:46 ID:???
DDSURFACEDESC2 sd;
ZeroMemory( &sd, sizeof(sd) ); < これはいらないかも
sd.dwSize = sizeof(DDSURFACEDESC2);

pBmp1->Lock(NULL,&sd,0,NULL);

これで出来んか?

671 :名前は開発中のものです。:02/06/07 01:12 ID:???
>670
できました。どうもありがとうございました。

672 :名前は開発中のものです。:02/06/07 23:54 ID:???
DirectXでワイプインをしたいのですが,どのようにやればできるでしょうか?

値を少しずつ減らしていくのはわかるんですが

673 :名前は開発中のものです。:02/06/08 04:03 ID:I7s5cA6M
SkinMeshのデーターを作りたいんですが、IDXSkinMeshってLoadだけですよね?
どうやったら、IDSkinMeshで読める形のデーたーが作れるでしょうか?

なんか、SkinMesh用に拡張されたXファイルのヘッダー情報がどっかにあったけど、
それみて、自前でやるしかないんでしょうか?

ツールの出力プラグインも使えない状態です。出力プラグインのソースって公開されてます?

674 :名前は開発中のものです。:02/06/08 04:23 ID:???
>>673
>出力プラグインのソースって公開されてます?
これは?
http://www.asia.microsoft.com/downloads/release.asp?ReleaseID=33783

675 :名前は開発中のものです。:02/06/08 04:36 ID:I7s5cA6M
あ、どうも。MAXとMAYAで共通なソースファイルのないですね〜(萎え
勉強しまふ

つか、実は結構、大変そうな予感

676 :名前は開発中のものです。:02/06/08 11:06 ID:???
DirectXでワイプインをしたいのですが,どのようにやればできるでしょうか?

値を少しずつ減らしていくのはわかるんですが

677 :名前は開発中のものです。:02/06/08 11:09 ID:???
値って何の値だよ?主語をはっきりさせろ

678 :名前は開発中のものです。:02/06/08 11:18 ID:I7s5cA6M
画面いっぱいの半透明ポリゴン
またはMMXでゴリゴリ計算

679 :名前は開発中のものです。:02/06/08 11:36 ID:???
>>678
それは単なるαブレンド。
ワイプじゃない

680 :名前は開発中のものです。:02/06/08 14:27 ID:Mv7t19VY
>>675
これで判らなかったらあきらめと毛。
http://www.dstorm.co.jp/developer/download/lwlib.html

681 :名前は開発中のものです。:02/06/08 14:38 ID:I7s5cA6M
サンキュ。 そういえばMAX版はバグってるつー話聞いたけど
一生懸命、バグ付ソース読むのは切ない…
LightWaveのはちゃんとうごくのかなぁ

682 :名前は開発中のものです。:02/06/08 15:00 ID:???
そもそもそんな高級アプリに手が出せない

683 :名前は開発中のものです。:02/06/08 18:09 ID:???
LwのDirectX Export
WeightMap関係のいろいろな値を見てない。
WeightMapなし、WeightMapあり、
WeightMapMapOnlyなしが混じってるとダメ。

684 :名前は開発中のものです。:02/06/08 19:42 ID:???
サンクス。まともなXファイルExporterは存在しないのかー?

685 :名前は開発中のものです。:02/06/14 21:48 ID:???
>>681
MAX用プラグインで出せるスキンはphysiqueのBoneのみ(readme.txtに書いてあるけど)
MAXはVer.Upを重ねてブクブク太りすぎなので他のBoneを使ってると落ちます。
座標系も直さず吐き出すから不便。

686 :名前は開発中のものです。:02/06/15 00:23 ID:???
>>685
さんくす。鬱になってきました

687 :名前は開発中のものです。:02/06/18 10:51 ID:321WPTBQ
┗(゚д゚;)┛age

688 :名前は開発中のものです。:02/06/18 11:23 ID:???
DirectX Audio を使ってMIDIを鳴らしているんですが
ボリューム調整(フェードイン/アウト)ってどうやるんでしょうか。

検索してサンプルソース探してみたんですが、ありそうで
ありません。参考になるサイトや知ってるって方いらっしゃいましたら
教えてください。

689 :名前は開発中のものです。:02/06/18 17:46 ID:???
>>688
IDirectMusicPerformance8->SetGlobalParam(GUID_PerfMasterVolume,&Volume,sizeof(long));

690 :名前は開発中のものです。:02/06/18 17:57 ID:???
マスターボリュームいじるなコノヤロウ!

691 :名前は開発中のものです。:02/06/18 21:12 ID:???
688です。
マスターボリュームは全体のボリュームですか?
いくつかのセグメントがあって、それぞれのボリュームを動的に
コントロールしたいんですが、セグメント単位でボリュームを
コントロールできる方法をご存知でしたら、ぜひ教えてください。

692 : :02/06/18 23:42 ID:???
最近DirectX+LightWaveで開発はじめてみますた。
LightWaveのDirectX Exportを調べてみたのですが
WeightMapを1枚でも使用すると全てのBoneにUseWeightMapOlnyの
チェックが入ったのと同じ状態で出力されるようです。(合ってます??)

なので現状の回避策としては
・WeightMapを使用しない
・全BoneをUseWeightMapOnlyにする→BoneごとにWeightMapを用意する(´Д`;)
マジ使えない状況です...

しょーがないのでObject,Scene Libraryに含まれるDirectXコンバーターの
ソースに手を加えているトコロです...だりぃ....

693 :689:02/06/19 01:01 ID:???
>>691
マスターボリュームは全体のボリュームです
セグメント単位で変えたいのであれば

IDirectMusicAudioPath8->SetVolume(Volume,0);

としてあげましょう

694 :名前は開発中のものです。:02/06/19 01:02 ID:???
>>692
私もdxskm.cppに手を加えてWeightMap対応にしたかったが
挫折中。成功したらあなたは神

695 :名前は開発中のものです。:02/06/19 04:31 ID:???
とある本にDirectXのライトは重いので使うなと書いてあったのですが実際のところどうなんでしょうか。

696 :692:02/06/19 05:14 ID:???
>>694
成功しますた。
私はいまんとこUseWeightMapOnlyは使ってないので、ソレには対応させてないですが。

あと、このプログラム(含plugin)、張力計算も変ですね。
ミョーにパキパキ曲がるカンジ。FallOffをでかくしすぎたのに近いかな?
今はそっちの調節をしてみてます。

697 :名前は開発中のものです。:02/06/19 05:20 ID:99tvqaKY
面手

698 :名前は開発中のものです。:02/06/19 07:27 ID:???
>>695
いつの時代だ。ただ俺もどこか見た覚えがある。
洋ゲーではフォーセーケン(自前ライト)
国産ではミッドガルドの頃か

699 :名前は開発中のものです。:02/06/19 08:46 ID:???
>>695
ソフトウェアだった頃は事実重かった。
Hardware TnL になってからは、気にならない。
パイプラインに組み込まれてるからか、フィルレートが壷首だからか。

700 :名前は開発中のものです。:02/06/19 08:55 ID:???
つか、昔のゲームは、ライティング計算 簡素な方法で近似してたじゃん。
DXは真面目に計算してたし重いのはある意味当たり前

最近はどうなんだろう?シェーダ−で簡素化しても、昔と違って
ハイポリだし、誤差の見えるおかしな絵になちゃうなんてことある?

701 :名前は開発中のものです。:02/06/19 15:18 ID:mOOoeDK.
シェーダ−でFixedTLのライトを実装しようとしたら
死ぬと思う。

702 :名前は開発中のものです。:02/06/19 15:25 ID:j/iFmOMQ
D3DXVECTOR2の2Dベクトルを回転させるには何使えばいいんでしょうか?
D3DXMatrixRotationZで回転行列を作って積をとるの?

703 :名前は開発中のものです。:02/06/19 15:33 ID:???
691です。
>>689さんありがとうございます。

それぞれのセグメントに対して次のようにして
IDirectMusicAudioPath8* audiopath を作ろうとしたのですが、
GetAudioPathConfig関数がエラーを返してオーディオパスを取得
することができませんでした。

IUnknown* config = NULL;
if (SUCCEEDED(segment->GetAudioPathConfig(&config))) {
 performance->CreateAudioPath(config, TRUE, &audiopath);
 config->Release();
}

他に、performance->GetDefaultAudioPath(&audiopath); でデフォルトの
オーディオパスを取得できたのですが、audiopath->SetVolume(vol, 0);
とすると全てのセグメントのボリュームが変わってしまいます。

どうしたものでしょう(泣

704 :名前は開発中のものです。:02/06/19 17:10 ID:???
>>701
litっていうそのまんまの命令があるよ。
でも頂点シェーダー2.0では消えたみたい。

705 :名前は開発中のものです。:02/06/19 21:53 ID:6L5LvgJg
>>704
いや減衰率とかスポットのコーンとかさ。

706 :名前は開発中のものです。:02/06/20 02:34 ID:XwaxD532
 なぜか出し惜しみスレで締め出し食らったのでこちらに転載させて
頂きます。よろしくお願いします。

> ちょっと困っています。DirextXSDK付属のMAX用Xファイルプラグインです
>が、MAX4.2用にコンパイルし直すとテクスチャーが一切付いてこないのです。
>何方か原因解りませんか?上のほうだとうまく言ったという報告がチラホラ
>なんですが…。とほほ

ほんと、とほほです。

707 :名前は開発中のものです。:02/06/20 02:58 ID:???
>>706
タイーホ

708 :名前は開発中のものです。:02/06/20 07:16 ID:???
>>706
割れ物MAX使ってるのか。
通報しとく。

709 :名前は開発中のものです。:02/06/20 08:27 ID:???
>>706はこの板から出てけ。

710 :名前は開発中のものです。:02/06/20 21:47 ID:bvvsEuks
複数人で3Dの簡単なゲームを作成しようと思い、3Dアニメーション作成ツールを作りました。

ところが間抜けな失敗が…。1つのオブジェクトを中心とした
アニメーションならば問題ないのですが、2つ以上のオブジェクトが
関わってくるようなアニメーションのことをすっかり失念していたのです。

たとえば自分の周りを球がくるくる回った後、球が任意の敵座標に向かって
投げ出されるようなアニメーションなどが実現できません。
私がコード的に解決することはできますが、それだと担当の人がしょんぼりですし…。

市販のエディタツールを参考にしようとしても、相互に作用するものまで
踏み込んでいるものは無そうですし…どうしたら良いのか途方にくれています。
一般にはどうやっているのでしょうか?相談に乗って頂ければ嬉しいです。

711 :名前は開発中のものです。:02/06/20 21:53 ID:???
親子関係を切り離せるようにする
または
球のスケールを0にして、別オブジェクトで新規球を作る
または
カメラに写らないほど遠くに球を移動して、逆に遠くに用意しておいた別オブジェクトを近くに持ってくる

712 :名前は開発中のものです。:02/06/20 22:05 ID:???
>>706
座標軸が左手Yアップじゃない点を除けば問題無く出たと思うが。
テキスト形式で出して確認してみれば?

MAX使っててXファイルに書き出す必要に迫られる状況が思いつかん。

713 :名前は開発中のものです。:02/06/20 22:22 ID:hTuEOYZY
>>710
そういう自分と球のような
関係が切り離されるものどうしは
はなっから親子関係で括らない。
球はあくまでワールド座標系での移動行為として
自分の周りをまわるようにする。

714 :710:02/06/20 23:27 ID:???
>>711 >>713
お二人ともレスありがとうございます。
最初から、あるいはある時点から別のオブジェクトとして
扱うというのがセオリーなんですね。とても参考になりましたですm(_ _)m

しかし、そうなるとワールド座標の移動方法は、かなりコードの方で
補わなければいけないという認識で良いのでしょうか?
正直、イベントに対してその都度アニメーションを変える程度で
それなりにゲーム作れると思っていたのですが…甘かったです…。

うー、最初から設計し直しの予感です…いや、いっそ飛び道具禁止に…(´・ω・`)

715 :名前は開発中のものです。:02/06/20 23:37 ID:???
アニメーションデーターに 親を切り替える等のコマンド組み込めば?
frameに連動した効果音の発生とかも必要になるでしょ

まぁ、アニメデーターと同じ構造体に入れるかは別問題だけど

716 :DirectXは知らないが、:02/06/21 00:50 ID:vXM1TDO.
>710
ローカル・ワールド変換マトリックス作って、座標変換すればよいのだよ。
移動速度もワールド基準に変換するのを忘れ尿に名。

717 :名前は開発中のものです。:02/06/21 03:45 ID:???
DirectInputのAcquire()が失敗します。原因を特定するにはどうすればいいんでしょうか…
コードはヘルプのをまんま使ってます。

718 :名前は開発中のものです。:02/06/21 04:07 ID:???
>>717
戻り値を調べる

719 :717:02/06/21 04:21 ID:???
>>718
戻り値が何を意味してるのかがわかんないんですよ…
エラー一覧みたいなのがないのか探しているんですが。

720 :名前は開発中のものです。:02/06/21 04:32 ID:AR4pKO1Y
>>717
それは、先日
折れが遭遇したのに似てる。
それデバックビルドのEXEじゃない?
SetCooperativeLevelで
DISCL_EXCLUSIVE | DISCL_BACKGROUNDにしてみ。

721 :717:02/06/21 04:45 ID:???
>>720
レスどうもです。やってみたんですがSetCooperativeLevelで失敗してしまいます。
デバッグビルドではあるのですが。

722 :717:02/06/21 05:13 ID:???
とりあえずエラーがDIERR_OTHERAPPHASPRIOだということがわかりました。
さて、どうしたらいいものか…

723 :名前は開発中のものです。:02/06/21 05:18 ID:???
DISCL_NONEXCLUSIVEを指定してみてはどうか

724 :717:02/06/21 05:42 ID:???
とりあえずエラーを無視してGetDeviceStateの直前にもう一度Acquireしたら無事動きました。
いいのかな?これ。まあいいや、もう寝よ。

>>723
レスありがとうございます。
ヘルプのコードをそのまま使っているのでDISCL_FOREGROUND | DISCL_NONEXCLUSIVEを指定しています。

725 :名前は開発中のものです。:02/06/21 16:33 ID:???
>>724
違うよ、DISCL_BACKGROUND| DISCL_NONEXCLUSIVEにしろってこったろ。
これで事実上優先レベルでの制限はなくなるから、エラーも出なくなるだろう。

726 :名前は開発中のものです。:02/06/21 16:39 ID:ABfUs.Fk
つーかマジでD3DXMATHって
3DNow/SSEに対応してんのな。
折れブラフかと思って、
3DNow対応に書き直してたよ。
速めに気付いて良かった。

727 :717:02/06/21 22:30 ID:???
>>725 >>723
あああ、そういうことですか、勘違いしてました。
そのとおりやってみたら問題なく動きました。どうもありがとうございました。

728 :名前は開発中のものです。:02/06/21 22:42 ID:???
VC6だとD3DXMATRIXA16って本領発揮しないの?
.net買わないとだめ?

729 :名前は開発中のものです。:02/06/21 22:47 ID:???
だめ

730 :726:02/06/22 00:05 ID:Rtzwl2bk
>>728
プロセッサーパック入れれば
サポートされるよ。
つーか、既出だったらアレだけど
VisualC++6.0のスタンダートは
プロセッサーパックのサポート外なんだけど
無理矢理入れると、プロ並みにグレードアップする罠。
インライン展開や最適化、MFCの静的リンクも出来てしまう。w

731 :名前は開発中のものです。:02/06/22 00:09 ID:???
#ifdefで区切られてるからどっちにしろダメだと思うが。
ヘッダを編集するのに抵抗がないならいいのか

732 :726:02/06/22 00:20 ID:???
>>731
編集が嫌なら、#undefして
新たに定義し直してやりゃいい。
つーかアライメント16バイトって
何か意味あるの?

733 :名前は開発中のものです。:02/06/22 01:54 ID:???
SSEでレジスタへ直接ロード出来るようになる

734 :名前は開発中のものです。:02/06/22 04:25 ID:???
ここ見て思い出して
俺も8.0の頃に作ったasmのコード外したよ

735 : :02/06/22 17:17 ID:???
俺も自作行列ベクトルライブラリ使うのやめようかしらん。
こうしてMSの策略にはまっていく罠

736 :名前は開発中のものです。:02/06/22 17:46 ID:jMNDBe2Q
DirectXの画面キャプチャってどうやってんの?

737 :名前は開発中のものです。:02/06/22 18:18 ID:???
TRIANGLELISTで作った物体を簡単にワイヤーフレームで表示させる方法ってありますか?

738 :名前は開発中のものです。:02/06/22 18:29 ID:???
>>737
どうした?遊んで欲しいのか?

739 :名前は開発中のものです。:02/06/22 19:00 ID:???
>>735
はっきり言って
ベクトルだのマトリクスだの
そういった細かいレベルで
SIMDなりなんなりで最適化しようというのは
あんまり意味ないよな。
1つの関数にする時点で多少なりともオーバーヘッドが発生するし
MMXや3DNowだとFPU切替がイタい。
戻り値としてfloatやdoubleを返そうとすると
FPU切替は避けられないからな。

740 :名前は開発中のものです。:02/06/22 19:01 ID:???
>>736
>>737
FAQ

741 :736:02/06/22 19:36 ID:jMNDBe2Q
>>740
だからどうやってんの?

742 :名前は開発中のものです。:02/06/22 19:38 ID:TTRL1PrI
尻文字で"F","A","Q"と書けば宇宙から託宣が下るよ。

743 :名前は開発中のものです。:02/06/22 19:42 ID:???
>>739
SSEはEMMS命令必要ないから、切り替えのオーバーヘッドは無いよ。
MMXでfloatやdoubleの行列の計算する奴なんていないだろうよ。

実際にSSEで書いたコードとCでベタに書いたコードを比較すると1シーンで
使用する行列演算の回数によっては無視できないほどの差があるよ。

744 :名前は開発中のものです。:02/06/22 20:55 ID:???
まあ、素人にとってはMMX=オナニーのネタってこった

745 :名前は開発中のものです。:02/06/23 02:38 ID:???
どっちにしろD3DXが対応してるから自分で書くほどのものでもないわな。
MMXだと単純過ぎて面白くないけど、プリフェッチが絡んでくるSSEは
最高のオナニーネタだよ。

746 :名前は開発中のものです。:02/06/23 19:54 ID:???
688です。
パフォーマンスオブジェクトを1つしか用意していなかったんですが、これを
セグメント毎に用意してそれぞれの SetVolume() を呼出すことで、セグメント
単位にボリュームを変えることができました。他にも方法があるかもしれま
せんが、一応解決しましたので報告します。

回答くださった方々ありがとうございました。

747 :名前は開発中のものです。:02/06/24 11:33 ID:KZTjZaw2
#define WIN32_LEAN_AND_MEAN
#define INITGUID
#define DIRECTDRAW_VERSION 0x0700
#include <windows.h>
#include <ddraw.h>
#pragma comment( lib, "ddraw.lib" )

LPDIRECTDRAW7 g_lpDD = NULL;

void Hoge( void )
{
  HRESULT hResult;
  hResult = DirectDrawCreateEx( NULL, (LPVOID*)&g_lpDD, IID_IDirectDraw7, NULL );
}

上のコードを VC++ で C としてコンパイルすると次のようなエラーが出ます。

error C2115: 'function' : 互換性のない型が含まれています。
warning C4024: 'DirectDrawCreateEx' : の型が 3 の仮引数および実引数と異なります。

どうも IID_IDirectDraw7 が通らないみたいです。
ファイルの拡張子を .cpp にして C++ としてコンパイルすると問題ありません。

C で通す方法は無いのでしょうか?

748 :名前は開発中のものです。:02/06/24 14:45 ID:???
GUID は、アプリケーションが C または C++ のどちらで書かれているかによって使い方が違うので注意する。
C の場合は、GUID (たとえば、&IID_IDirect3D) にポインタを渡すが、
C++ では参照を渡す (単に IID_IDirect3D)。

749 :747:02/06/24 15:48 ID:???
hResult = DirectDrawCreateEx( NULL, (LPVOID*)&g_lpDD, &IID_IDirectDraw7, NULL );

これで通りました。
他にも C と C++ だとこんな違いがあるみたいですね。

C  IDirectDraw7_SetCooperativeLevel( g_lpDD, ... );
C++ g_lpDD->SetCooperativeLevel( ... );

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

750 :名前は開発中のものです。:02/06/24 17:48 ID:???
DirectXのクラス、AppWizardが吐き出したのを使ってる?
自前で行こうかAppWizをベースにしようか今迷ってるとこ。

751 :名前は開発中のものです。:02/06/24 22:14 ID:28pp8cdw
>>750
吐いたのを多少参考にして
自前のを作る

752 :名前は開発中のものです。:02/06/25 03:35 ID:???
DirectX8.1で初めてDirectXいじるからとりあえずAppWizardで様子見てる。

753 :名前は開発中のものです。:02/06/27 23:58 ID:???
誰か・・・ヘルプ・・・

Windows 2000 DirectX8.1
ビデオカードは RADEON 7200

最新のドライバ入れたら
Direct X7のDirext 3D IMでカラーキーが有効にならず、
透明色の指定をしたはずの黒い色が描画されてしまいました
(板のようなポリゴンをスプライトとして使用)
カラーキーは左上(0,0)の座標に指定しています

しかも、このような症状が出るのは「とある一つのテクスチャ」のみです
とあるクスチャの画像ファイルが壊れているのかな?と思い、
テキスチャに他の画像を読み込ませると、正常に表示されました

対策として画像エディタで壊れていると思われる画像データを読み込み、
必要な部分をコピーペーストして正常に表示される画像データに貼り付け、
その正常になったはずのデータを指定してみましたが、異常な表示のままです

逆に、正常な画像データに異常な画像データのほんの16*16ドットを
カラーキーなどとは関係の無い画像の中央の領域にちょことコピーしただけで
正常なデータは異常なデータに変わってしまいました・・・

わけがわかりません、私のマシンで一体何がおこっているのでしょう
画像データ・異常な画像データともに、(0,0)の座標は完璧に真っ黒です
何度見てもRGBで0x000000のデータしか入っていません
また、アルファ値はまったく使っていません

いったいどうすればよいのでしょう・・・

754 :名前は開発中のものです。:02/06/28 01:24 ID:???
>753
問題の画像をうぷすれ。

755 :名前は開発中のものです。:02/06/28 06:17 ID:???
>753
>最新のドライバ入れたら
元に戻せw

756 :名無しサソ:02/06/28 15:25 ID:???
>750
 DirectX8になってから、サンプルが軒並みCD3DApplicationから
派生されて物で作られて居るけど、みんなこれをどうやって自分の
プログラムに落とし込んでいるのかが気になる。

 特に、動的フルスクリーン←→ウィンドウモード切り替えとかは、
ほとんどサンプルコードのままにしておくのが吉なのかな?今
自前でD3D8とD3DDevice8その他を解像度切り替え時に全て
リリースして、0からインターフェースを取得し直してウィンドウ
を作り直す様にしているんだけど、何故か上手く行かない。再構築
に時間はかかるけど、こっちの方が確実かつ簡単に行くと考えた
んだけど・・・。

757 :名前は開発中のものです。:02/06/29 00:03 ID:???
>>756
俺はサンプルなんて殆ど見ないよ。
なんか苦手みたい、他人のソース見るの。
まずね、D3D8はリリースする必要ないです。
最初から最後まで生かしっぱなしでOK。
俺なんて、自作ライブラリのDllMainが呼ばれた瞬間に作ってるよ。
んで、D3DDevice8は作った時のIDirect3D8::CreateDeviceの引数があるじゃん。
あれのDeviceTypeとhFocusWindowとBehaviorFlagsのどれか1つでも
変わる様なら、再構築の必要がある。
逆に変わらないなら、ResetでOK。

758 :名前は開発中のものです。:02/06/29 00:10 ID:???
そんなん気にするより、
全部作り直すで統一した方が楽

759 :名前は開発中のものです。:02/06/29 00:35 ID:???
>>758
いやいや、ライブラリの基底部分はそれなりにしっかり作っといた方がいいよ。
後々やりたいことが出来たけど、現状の仕様ではかなり厳しいちゅう状況になったりするからね。
でもまあ、ちょっとめんどくさいのは確かかもね。
デバイスを作り直すとすると、テクスチャとかリソース管理も自分でやらなきゃならなくなるから。

760 :名前は開発中のものです。:02/06/29 00:37 ID:???
リセットだけにするか、全部作り直すか。
同じ事を達成できるんだから2つルーチン書くより
上位互換である全部作り直す方が楽。

761 :名前は開発中のものです。:02/06/29 00:47 ID:uNPXzVbU
>>760
例えば、D3Dのリソース自動管理を使えば
Resetならテクスチャとか頂点バッファとか
作り直す必要がなくなる。だからその分切り替えが速くなるメリットがあるよ。
正直、1からXFileとか読み直してると結構時間食う。経験的に。
後はゲームが起動したら切り替えはさせないっつーのがあるね。
実際やる立場からするとこれで十分だったりする。

762 :名前は開発中のものです。:02/06/29 05:46 ID:???
フルスクリーンのゲームで何かあるたびにデバイスを開放するのはやめて欲しいな。
3DMark2001とかベンチが切り替わるときに解像度が変化するの嫌じゃない?
メニューとゲーム中で解像度が違うのも最悪

763 :名前は開発中のものです。:02/06/29 05:51 ID:???
モニタの寿命が縮みそうだな。
カチカチカチカチ…

764 :名無しサソ:02/06/29 07:14 ID:???
>757
 確かD3DDeviceのResetを行って、失ったリソースを再ロード
すれば良いんだよね?でも、何故かそれだとフルスクリーン→ウィンドウ
時にウィンドウの枠が出てこない(altを一回押すと戻る)。

 サンプルコードを読まないって事は、全部一から作ってるの?
自分はあのドキュメントだけでは到底作れないよ・・・。とりあえず
サンプルで流れを掴んではいるつもりだけど、インターフェースを
全部解放して再取得するorリセット時に何が悪さをしてるのかが謎。
Resetメソッド使った時は、それまでのリソース(メッシュとか)は
明示的に解放する必要なく再ロードして良いんだよね?

 >761の言うとおり、動的切り替えなんて市販ゲームでも一部MSの
奴くらいしか対応してないし、別にフルスクリーンでフォーカス外した
時の対策くらいで良い筈なんだけどね。でも、何となく・・・と(悪い癖)

765 :名前は開発中のものです。:02/06/29 07:55 ID:???
動的にフルスクリーン切り替えが出来るのは
ほとんどエロゲくらいだろ。

枠が出てこないのならSetWindowPosでSWP_NOMOVE|SWP_NOSIZEで対処

766 :名前は開発中のものです。:02/06/29 09:20 ID:???
寿命が縮むなにもモニタを実際に寿命まで使うことはない罠。

767 :名前は開発中のものです。:02/06/29 09:20 ID:???
>>765
もっと普通のゲームもやろうよ

768 :名前は開発中のものです。:02/06/29 10:04 ID:ERmjHl2U
>>764
自分では、サンプルは殆ど見てないつもりだったけど
あらためてサンプルと自分のコードを見比べてみたら
結構パクってた。自分が忘れてただけみたいね。(笑
Resetが失敗すると、D3DDeviceはロストしたままだから
そもそも表示すら出来ない。だから原因はD3Dとは別。
>>765の方法で直るんじゃない?
ちなみにサンプルからパクってた俺のソースでは
SWP_NOZORDER | SWP_NOMOVE | SWP_NOCOPYBITS | SWP_SHOWWINDOW
になってたね。

>Resetメソッド使った時は、それまでのリソース(メッシュとか)は
>明示的に解放する必要なく再ロードして良いんだよね?
D3DPOOLの値による。D3DPOOL_DEFAULTなら駄目、それ以外ならOK。
D3DPOOL_DEFAULTだと通常はVRAM上に確保されるから、
Reset等でレンダリングバッファの領域を変えれば
その干渉を受けてしまうからつーのが理由だね。

769 :768:02/06/29 10:12 ID:ERmjHl2U
>>768は間違ってた
D3DPOOL_DEFAULTならReleaseして、再度Create。
それ以外は、Releaseも最ロードもする必要はない。

770 :名無しサソ:02/06/29 10:49 ID:???
>765
>768
 成る程。目から鱗。確かに最初期化の時使ってなかったよ<SetWindowPos
多謝多謝。

>768-769
 こちらも納得。ちゃんとドキュメント読みながら筋道立てて考えないと
駄目だね。ありがとう。

771 :名前は開発中のものです。:02/06/29 21:20 ID:???
>>766
寿命の前に病気で死ぬって事?

772 :名前は開発中のものです。:02/06/30 09:18 ID:1AkGsz1g
貴様等、D3DPOOLはどれにしてるか?
朕は最近D3DPOOL_DEFAULTとD3DPOOL_MANAGEDは
共存出来ない知って、どっちを使うか迷っておる。

773 :名前は開発中のものです。:02/06/30 09:20 ID:???
D3DXCreateTextureFromFileExで読み込んだ
Textureのサイズ(x,y方向のピクセル)は
得ることは出来ないのでしょうか?

774 :名前は開発中のものです。:02/06/30 09:24 ID:???
>>772
共存出来るよ、同時にフラグの設定が出来ないだけで。
じゃないと、MANAGEDを利用したプログラムじゃテクスチャへのレンダリングが行えなくなる。

775 :名前は開発中のものです。:02/06/30 09:25 ID:???
>>773
IDirect3DTexture8::GetLevelDesc

776 :名前は開発中のものです。:02/06/30 09:32 ID:1nknoVE6
>>774
おお、そうなのか。
じゃあ、基本はMANAGED
特殊用途にはDEFAULTと使い分けるのが
ベストという訳か。
うむ、朕は満足した。下がってよいぞ。

777 :名前は開発中のものです。:02/06/30 10:02 ID:???
>>775
どうもありがとうございました、
GUIクラス作っててどうしても画像のサイズが分かりませんでした。

778 :名前は開発中のものです。:02/06/30 10:35 ID:???
頂点ごとに法線を持たせてるんですが、立方体を作る場合、それぞれの頂点にはどんな法線を持たせればいいのでしょうか。
その頂点を含む面の法線の平均を使うと角が丸っこく見えてしまい上手くいきません。

779 :名前は開発中のものです。:02/06/30 10:42 ID:???
各頂点を複製して、面の法線と同じ値に汁

780 :名無しサソ:02/06/30 10:47 ID:???
>778
 簡単な方法としては、モデラー側で最初から面を切り離した立方体を作る。
これ最凶。ただ、ストリップとかを考えるとあまりよろしくない諸刃の剣。
玄人にはお勧めできない。

781 :名前は開発中のものです。:02/06/30 10:52 ID:???
では立方体一個作るのに頂点24個用意しなければいけないんでしょうか?

782 :名前は開発中のものです。:02/06/30 11:00 ID:???
>>781
D3DXCreateBox

783 :名前は開発中のものです。:02/06/30 11:07 ID:???
POINTS p = MAKEPOINTS(lParam);のように
DirectInputで直接マウス座標を取得する方法は無いのですか?
相対 DIMOFS_X ,Y を加減算する方法以外に思いつきません・・

784 :名前は開発中のものです。:02/06/30 11:44 ID:???
マウスに絶対的な座標などありませんが

785 :名前は開発中のものです。:02/06/30 13:24 ID:0bTRua52
つまらないレースゲームを作るため、コース全体を一つの
DXMeshで持ったXfileで不遜にも表そうとしています。

よくある自分の車を後ろから眺めるタイプのもので、視点は車より
大分後ろにおき、コースの表示は車と視点の中間位の位置でクリップ、
さらに視点と車の間を遮るものは非表示にしたいと思ったのですが…。

Cマガジンとかに載っている、BSPとかの手法を試そうとしても
単一Xfileからどう持っていけばいいのか途方に暮れていて…。

駄目を承知でお伺いしたいのですが、単一Xfileで
こういう処理を上手くやる方法ってありますでしょうか?

786 :名前は開発中のものです。:02/06/30 15:07 ID:???
なにいってんだ?

787 :名無しサソ:02/06/30 15:26 ID:???
>785
 もしかして、非常にもしかして、D3DXでLoadして、そのままD3DXMeshの
DrawSubsetだけで何とかなるだろうとか考えていたりする?いや、頭の悪い
自分では考えもつかないような、素晴らしいアイディアとかあるのかもしれないけど。

 領域をマテリアルで分割してみたりとか。テクスチャを貼るのが前提なら
色で分けられる・・・かな?(適当)

788 :785:02/06/30 16:22 ID:???
>>787
OH!!これは痛烈な…素人ですいません(´Д⊂
表示はXFileに一括してまかせて、当たり判定用のデータは別にもたせれば、
細かいこと考えずモデルに力を注げる!などと思ってたのですが…。たはは、浅知恵でした。

仰るとおりAttributeを分割用途に使えば良さそうですが、でもその辺は
本来の用途で一杯一杯なんです…。Xfileだけでは無理なんですかねぇ…。
かといって独自形式にコンバートなんて考えると気が遠くなりそうです(´・ω・`)

要するに、魂削って作った箱庭モデルを表示したいだけなのですが…。
この辺、表示分割用データとどう折り合いをつければいいのやら…。
いずれにせよ、レスありがとうございました。もすこし頑張ってみます。

789 :名前は開発中のものです。:02/06/30 16:24 ID:???
コース自体と視界を遮りそうな周りのオブジェクトのメッシュをなるべく別にして
個別に判定(球で十分)、遮ってそうだったらマテリアルいじって半透明とかはどう?
もの凄いポリゴン数とかじゃなければコース自体はクリッピングしなくてもかまわんと思う。
その周りのオブジェクトを視錐台クリップするとかで処理速度も上がる・・・かもしれない。

どうしても今の状態のままでやるならメッシュ読み込みの時にグリッドに分けてしまって
そのグリッドの中のポリゴンを判定していく感じになると思う。
GameProgrammingGems1のオクトツリーあたりが参考になるかも。

790 :切実:02/06/30 16:28 ID:???
DirectX9.0SDKつかいたいよ〜〜(切実
デモつくりたいよ〜〜

791 :785:02/06/30 16:48 ID:???
>>789
あああ、ありがとうございますヽ(;゚∀゚)ノ=3
オブジェクト毎の視錐台クリップならば私にも出来そうです!

しかも(モデラ内で分けてある)オブジェクト毎に相対座標付きXFileをはき出す
プラグインを作れば、何の面倒もなくそのまま使えそうです(*´Д`)

後半はまだ理解できないのですが。横着せず必ず調べてみます。
3Dプログラムを始めたばかりで…本当に参考になりました。重ね重ね感謝であります。

792 :名無しサソ:02/06/30 16:57 ID:???
>791
 ちょっと待った。Xファイル形式って、二種類あるのを知らない?
バイナリとかの話でなくて、フレーム形式とメッシュ形式。メッシュが
単一のオブジェクト、フレームがメッシュを複数持った親子構造を成す
形式。フレーム形式で作る&読む工夫をすれば、ちゃんとツリー構造
で読んでくれるから、幸せになれると思う。

793 :名無しサソ:02/06/30 16:58 ID:???
 って、相対座標付き云々って、フレーム形式の事かな?自滅。

794 :名前は開発中のものです。:02/06/30 19:57 ID:w0m4oEsQ
>>792
2種類というより、メッシュのは
フレーム付きのサブセットだね。
つーか、D3DXATTRIBUTERANGEを拡張して
メンバのIdを1個増やしてやって
そこにグリッドのNoでもいれてやりゃいいんでない。

795 :名前は開発中のものです。:02/07/04 23:50 ID:???
停滞age
8.1bの変更点ってナニ?

796 :名前は開発中のものです。:02/07/05 02:09 ID:vl./cU5E
ところで、アクションマッピングってどう思います?
なんだか全然使えない気が・・・

797 :名前は開発中のものです。:02/07/05 02:36 ID:3/OZFy0A
>>796
自分でコンパネ作らなくて済むので
楽といえば楽。

798 :名前は開発中のものです。:02/07/05 05:36 ID:???
>>797
あのコンパネをユーザーに見せるのはちと恥ずかしいと思うのは偏見でしょうか?

799 :名前は開発中のものです。:02/07/05 06:57 ID:???
>>798
いや、正常。
そもそもwinのGUIで環境設定をやらせるゲームは萎える

800 :名前は開発中のものです。:02/07/05 07:09 ID:a5y6mja.
>>799
あれはFULLSCREENでも出せるよ。
別にいいと思うけどね、どうせフリーでしょ?

801 :名前は開発中のものです。:02/07/05 09:23 ID:???
>>800
フルスクリーンで出せるとかそういう問題じゃないだろ。
センスの問題だ。

802 :名前は開発中のものです。:02/07/05 09:34 ID:???
>>796
基本的にMSのやる事は、やり方はともかくやる事は間違ってはいないので、
「なんだよこれつかえねーな」とか思ってしまったら、自分の理解が足りない
か考え方が遅れていると思った方がいいよ。

803 :名前は開発中のものです。:02/07/05 10:59 ID:???
D3DXEffectは?

804 :名前は開発中のものです。:02/07/05 11:05 ID:???
>>802
MSのやることは間違っていようがなんだろうが正義だから
センスもひっくるめて黙って従っておいたほうが吉。

だろ?

805 :名前は開発中のものです。:02/07/05 14:37 ID:vQ3tZoQI
>>803
Effectはちょっと・・。
あれ、最初どう使っていいかわからなかったよ。
すんげえ奇抜。IndexまでLPCSTRだからね。
読み込むアプリ側とEffectFileであらかじめ
つじつまを合わせてないと駄目なんだよね。
例えばテクスチャの1枚目は"TEX1"で2枚目は"TEX2"とか。
これが"Diffuse"とかにされてると、もうアプリ側で識別する術はないんだよね。

806 :名前は開発中のものです。:02/07/05 15:40 ID:???
>>804
MS信者は盲目の羊。

807 :名前は開発中のものです。:02/07/05 16:54 ID:???
>>806
でもアンチMSと比べると
信者の方がいくらかマシ。

808 :名前は開発中のものです。:02/07/05 17:10 ID:???
そういや昔、ソースにバグがあるのにコンパイラが壊れてるって言って
コンパイラの所為にしてたのがいたなあ(苦笑

809 :名前は開発中のものです。:02/07/05 19:55 ID:???
アクティブウィンドウのDirectXプログラムを
外部プログラムで操作することは出来ますか?

810 :名前は開発中のものです。:02/07/05 23:43 ID:???
>>810
あなた自身がヤバイかも。とりあえず猫わかを勧めます

811 :名前は開発中のものです。:02/07/05 23:45 ID:???
俺じゃなくて
>>809 猫わかでもなんでもいいから頑張れ

812 :名前は開発中のものです。:02/07/05 23:45 ID:???
DirectInputのアクションマップ、メモリリーク起こしてないか?

813 :名前は開発中のものです。:02/07/06 06:48 ID:???
>>809
出来ないこともありません。

814 :名前は開発中のものです。:02/07/06 19:29 ID:???
突然すんません。
DX8.1 SDK Extra についてるシンボルファイルって、どこに入れたらいいの?
あと、初心者向けスレあったら教えてちょ

815 :名前は開発中のものです。:02/07/07 01:12 ID:???
>>812
漏れもそれ思った。
ウィザードから作ってもエラー出るしな。

816 :名前は開発中のものです。:02/07/08 10:28 ID:tCvK08q2
>>812
8.1bで直るんかな?

817 :名前は開発中のものです。:02/07/09 07:55 ID:???
アクションマップでなくとも、
DirectInputでジョイパッドデバイスを作って
Acquire()した以降、リークしてないか?
SDKサンプルもそう。

818 :名前は開発中のものです。:02/07/09 13:30 ID:???
柔軟な頂点データーフォーマットの先頭から 特定部分(例えば法線)までのoffset値を返す関数
作りたいんですけど、MSからは提供されてませんよね?(総サイズを返す関数はあるけど)

マニュアル見てD3DXDeclaratorFromFVF って関数があるけどこれってなんでしょ??
解説ほとんどないし

柔軟な頂点フォーマット (FVF) コードから宣言子を返す。

HRESULT D3DXDeclaratorFromFVF(DWORD FVF, DWORD Declaration[MAX_FVF_DECL_SIZE]);
パラメータ
FVF
[in] 宣言子の配列を生成する元となる FVF を記述する、柔軟な頂点フォーマット フラグの組み合わせ。
Declaration
[out] 照会されたメッシュに含まれる頂点の頂点フォーマットを記述する返された配列。この宣言子の配列の上限は MAX_FVF_DECL_SIZE で、宣言子を 15 DWORD の最大数に制限する

この場合の宣言子って何??

819 :名前は開発中のものです。:02/07/09 17:38 ID:???
>>818
頂点シェーダの自前シェーダを定義する時に使うやつ。
シェーダでは頂点フォーマットを定義するのにFVFではなく
そいつを定義する。

820 :名前は開発中のものです。:02/07/10 10:32 ID:???
ありがと。シェーダー放置してるのでワカラナカターヨ

821 :名前は開発中のものです。:02/07/10 12:55 ID:Zr7aprQc
Direct3Dでプログラマブルシェーダーを使う場合、
シェーダーでも有効なレンダーステートと
シェーダーでは無効になるステートはどうやって見分ければいいですか?
推測ですか?

822 :名前は開発中のものです。:02/07/11 01:30 ID:kjXjHXAI
はじめまして。DirectXを勉強している者です。
勉強していたんですが、一から低レベルな関数作るのがいやになってしまいました。
簡単に3Dのゲームが作れる手軽なライブラリありませんか?
・Xファイルを簡単に扱うクラスがある(アニメーションも)
・衝突判定が手軽にできる
・2Dも充実している(αブレンディングや各種アフィン変換)
・早い
こんな感じでおすすめのあったら教えてください。

823 :名前は開発中のものです。:02/07/11 01:40 ID:kjXjHXAI
少し調べてみました。
AXISっていうライブラリが有名みたいなので、これちょっと見てみます。

824 :名前は開発中のものです。:02/07/11 02:01 ID:???
822-823
ご苦労さん

825 :名前は開発中のものです。:02/07/11 02:08 ID:???
このAXISっての、全然使えなかったです・・・
あー、自分でこさえるかな。
それか我慢してDirectXに付属しているユーティリティ使うか・・・

826 :名前は開発中のものです。:02/07/11 02:10 ID:???
ところでここってsageにするとID消えるんですね。

827 :名前は開発中のものです。:02/07/11 02:57 ID:DA2y7Lzk
>>825
http://macosx2.ncs.gr.jp/~masa/jpn/program/library/KM_DirectXGraphics/docs/index.html
こんなのは?
ちょっとD3DXとかぶってる機能が付いて冗長だけどな。
まぁ初期化とアニメぐらいはできるんじゃない?

828 :名前は開発中のものです。:02/07/11 03:07 ID:???
KIT-M キタ━━━━(゚∀゚)━━━━!!!!!!

829 :名前は開発中のものです。:02/07/11 03:16 ID:???
>>828
何?
有名なの?
よく知らんで挙げちゃったけど、
俺まずいことしたかな?(汗

830 :名前は開発中のものです。:02/07/11 06:31 ID:eAYJVnX6
きみまずいよ!
もう俺しらねえよ
責任とれよ…

831 :名前は開発中のものです。:02/07/11 07:56 ID:???
masa叩きスレが立ちます

832 :名前は開発中のものです。:02/07/11 10:06 ID:???
歴史は繰り返される。か・・・

833 :名前は開発中のものです。:02/07/11 11:16 ID:???
>>829
Webにおいてあるもの見て察してやれよ・・・カワイソウニ

834 :名前は開発中のものです。:02/07/11 12:00 ID:WO9TAO.o
DirectX7 なんですが、サーフェスが明示的に作成されたものか
暗黙的に (GetAttachedSurface を使って) 作成されたものかを
知る方法はありますか?

835 :名前は開発中のものです。:02/07/11 13:15 ID:ASB5.U4o
DirectXのCOMの初期化で質問です。
初期化にCoInitializeEx(NULL, COINIT_MULTITHREADED)を使った場合(MTA)と
CoInitialize(NULL)を使った場合(STA)の差って、パフォーマンスにペナルティが
入るぐらいで、スレッド単位でSTAかMTAか決めとけば問題ないんでしょうか?

それとも「DirectPlayはMTAじゃなきゃ駄目です」とかあるんでしょうか?

836 :名前は開発中のものです。:02/07/11 18:31 ID:???
DirectX-SDKのxxxxutil系の実装も相当酷い。プロが書いたものとは
思えない。

837 :名前は開発中のものです。:02/07/11 19:16 ID:???
>>836
具体的には?

838 :名前は開発中のものです。:02/07/11 21:19 ID:lFJ4dkAI
>>835
結論から言えばYES、だと思う。
クライアントのスレッドモデルと
COMサーバーのスレッドモデルのアンマッチは
COMが吸収してくれるはずなので、問題が出るのは
パフォーマンス面だけと思う。
例えばクライアントをMTAで初期化し、
使用するCOMサーバーのスレッドモデルがsingleだった場合
COMは新たにSTAを作ってそこにサーバーを生成する。
そしてそのサーバーへのアクセスは、COMが勝手に作った
プロキシスタブを介して行われる。つまりアクセスは出来るが
パフォに影響が出ると。
ちなみにDirectPlayのモデルはBoth(どっちも可)なので
どちらでもいい。まあMTAを使う方が自然と思う。

839 :名前は開発中のものです。:02/07/11 21:32 ID:???
STAだかMTAだかが
解らんのだと言っている!

840 :名前は開発中のものです。:02/07/11 21:37 ID:???
Single Thread Architechture

841 :名前は開発中のものです。:02/07/11 21:42 ID:???
>>839
過去の遺物だから、今更覚えなくていいよ。
無駄もいいとこ。COMなんてもうだめぽ。

842 :名前は開発中のものです。:02/07/11 22:05 ID:???
.NETに移行しない分野ではまだまだ現役ですが、何か?

843 :名前は開発中のものです。:02/07/12 02:35 ID:???
ライブラリ厨の予感sage

844 :名前は開発中のものです。:02/07/12 02:40 ID:CQahmC3Q
HELをCreateDirectDrawEx()でDDEMULATION_ONLYにしたらその時点で強制終了するPCがあるんだが、どうすればいいんだろう。
DELLのinspiron4000。ATI RAGEだ。他のPCならなんともないんだが、このノートPCの糞ビデオカードときたらマジでぶちきれる。
HALでやったらバグるしさー。ヤネウラオのページにもHELが速いって書いてあるし。実際HALでやったらぼやけたり色抜きが半端だったりするし。
どうすりゃいいんだよ。CoInitializeってやつでDDもらうとまた何かちがうのか?

845 :名前は開発中のものです。:02/07/12 02:43 ID:???
>>844
DIBを使う

846 :名前は開発中のものです。:02/07/12 03:01 ID:CQahmC3Q
DIBは面倒くさい。
RPGつくーる2000なんてすごく汎用性あるけど、どうやってんだろうな。

847 :名前は開発中のものです。:02/07/12 06:26 ID:???
>>844
ドライバは最新版使ってる?
DELLのサイトから落とせるドライバは古いと思うよ。

848 :名前は開発中のものです。:02/07/12 08:11 ID:???
ATIへ行ってノートPCのドライバを探しても、
ベンダーごとに配布されているものを使えと言われ、落とせない罠。

とりあえず、海外DELLのドライバが新しい場合もあるが、
それでもHALのバグは治らないことが多い罠。

やはりATIはクソ。

849 :835:02/07/12 10:05 ID:???
>>838
レスありがとう。これで、数日悩んでた事がようやく解決しそう。

>>839
STA=Single Thread Apartment model
MTA=MultiThread Apartment model
http://support.microsoft.com/default.aspx?scid=%2Fisapi%2Fgomscom%2Easp%3Ftarget%3D%2Fjapan%2Fsupport%2Fkb%2Farticles%2Fjp150%2F7%2F77%2Easp&LN=JA#
↑ここにある程度の説明がありますよ。私も今朝発見したばかりですが…

850 :名前は開発中のものです。:02/07/12 12:25 ID:7alQPTjQ
>>848
デバックランタイムだとどう?
DXはリテールだとすぐ落ちる脆弱野郎だが
デバックだとかなり堅固になる。
警告がデバックアウトプットされているようだと、
アプリ側でやることがまだあるかもね。
無いようだとお手上げ。

851 :名前は開発中のものです。:02/07/12 19:57 ID:ta2l.s0c
視錐台クリッピングを解説しているページを見ると
六面と干渉計算して・・・とかこ難しいことやってますが、
バウンディングボックスなり球なりを射影トランスフォームして
x,yは-1〜1、zは0〜1でクリップするのはまずいのですか?

852 :名前は開発中のものです。:02/07/12 20:17 ID:???
>>851
それでいいとおもう。

853 :名前は開発中のものです。:02/07/12 20:31 ID:???
射影変換すると球が楕円体になる罠

854 :851:02/07/12 20:33 ID:???
>852
OKその言葉がほしかった。ありがとう
今さっき実験も通った。上手くいってます。
pDevice->GetTransformして、Multiply何回かして、
D3DXVec3TransformCoordするだけだもんね。

855 :851:02/07/12 20:34 ID:ta2l.s0c
>>853
ああ!ほんとだぁぁぁ
でも、判定自体がおかしくなることってあります?
はみ出ちゃう??

856 :851:02/07/12 20:40 ID:???
楕円ははまずいわな。余計にややこしくなる。
ちなみに実験したのは
BBoxの8頂点を変換>見えてる? というもの。
まぁいいや。おかしくなったらすぐわかるから後回し・・・

857 :名前は開発中のものです。:02/07/12 21:31 ID:d4nWsxd.
>>851
精度の問題も出そう。

858 : :02/07/13 02:37 ID:???
>>851
わかってると思うけど一応...
バウンディングボックスでやるとして
 ・ -1<x<1 かつ -1<y<1 かつ 0<z<1 な頂点が一つでもある → 描画
だとダメです。
 ・ 全ての頂点のx<-1 または 全ての頂点のx>1 または
   全ての頂点のy<-1 または 全ての頂点のy>1 または
   全ての頂点のz< 0 または 全ての頂点のz>1 → 描画しない
で判定するのが吉

859 :851:02/07/13 08:40 ID:???
>>858
実は書いたときには解ってなかった・・・

その後オブジェクトがでかくて視錐台をまたいでしまって、キャラが宙ぶらりん
まあいいや、朝起きたら12辺で・・・
なんて思っていました。

いやあ、いいこと聞いた ありがとう

860 :名前は開発中のものです。:02/07/13 10:58 ID:CmHrdi.Q
DirectSoundで15音ぐらい出したところで突然ブルースクリーン
になります。似たような現象を解決された方がいらしたら
教えてほしいのですが

<現象>
例外 0E 0028:C16C1F95
以後、再起動するまでサウンドが使えない。

<環境>
調べたところSoundBlaster PCI128では起こるのですが
MounsterSound MX300やADIでは発生しないようです。

Windows98SEで発生するけど、Windows2000やXPでは
発生しないようです。

ドライバは最新のものをインストールしています。

OS : Windows98SE
CPU : Athlon(TB) 1.4GHz
MEM: 128MB
Video: Geforce4 Ti4200
Sound: SoundBlaster PCI128

861 :名前は開発中のものです。:02/07/13 11:58 ID:???
解決策: あなたのアプリがサウンドOFFで動くようにする

不良なハード・バグがあるまま放置されたドライバ・
インストールに失敗した環境が原因で、
その尻拭いをするのが自分の仕事だと思うなら → やねうらお本を読もう

「ほんの一握りの糞な環境で動かないから○○は使わない」
という思考が正しいと思うなら → やねうらお本を読もう

862 :名前は開発中のものです。:02/07/13 13:47 ID:???
どっちにせよ読むんかい(´д`;)

863 :名前は開発中のものです。:02/07/13 15:05 ID:???
できないのは切り捨てるタイプなんで
あてはまらいですね。

864 :822:02/07/13 20:51 ID:DNjNUGVA
あいかわらず勉強しています。
Xファイルのスキンメッシュについて簡単に説明してあるサイトってどこかにないですか?

865 :名前は開発中のものです。:02/07/13 20:55 ID:???
うちのマシンはmidi再生時にHDアクセスが入ると完全にフリーズします
スピーカOFFでのwebサーフは超危険
それに比べればたいしたことない→ やねうらお本を読もう

866 :名前は開発中のものです。:02/07/13 20:59 ID:???
>>865
デフォルトのMIDIの出力先を変えておけばいいだけでは?

867 :名前は開発中のものです。:02/07/13 21:35 ID:JU2lSMO.
OS:Win98SE
ダイレクトX8.1をダウソしてインストールしようとしても
「このバージョンのダイレクトXは現在インストールされているwindowsのバージョンとは互換性がありません」
と出てインストールできません。原因は何なんでしょうか?

868 :名前は開発中のものです。:02/07/13 21:39 ID:???
ランタイムがWin98用じゃないんじゃないの?

869 :名前は開発中のものです。:02/07/13 22:08 ID:???
>>867
NECのPC-98使ってないか?

870 :名前は開発中のものです。:02/07/13 23:26 ID:JU2lSMO.
>>868
すいません、よくわかりません
>>869
使ってます。

お二人とも血レススマソ

871 :名前は開発中のものです。:02/07/13 23:58 ID:???
PC98で開発してる人がまだいたんだね・・・

872 :名前は開発中のものです。:02/07/14 00:25 ID:HS8odNe2
でも来年にはあたらしいの買います〜

873 :名前は開発中のものです。:02/07/14 00:25 ID:???
涙が止まりません・・・

874 :名前は開発中のものです。:02/07/14 00:29 ID:???
>>872
ボクはあなたを尊敬します

875 :名前は開発中のものです。:02/07/14 00:34 ID:HS8odNe2
すいません、ゲームの開発はしていません。
ただダイレクトXスレがあったので質問してみただけです。

876 :869:02/07/14 00:57 ID:???
>>870
公式にはPC-98にDirectX8.xはインストールできない

877 :名前は開発中のものです。:02/07/14 01:10 ID:HS8odNe2
>>870
そうですか、残念

878 :名前は開発中のものです。:02/07/14 01:16 ID:HS8odNe2
しかし昔日経Win−PCのCDについてたDX8.0は動いたのですが、何故でしょう?

879 :名前は開発中のものです。:02/07/14 01:19 ID:???
9βもチェックを回避すればインストールできるよ

880 :名前は開発中のものです。:02/07/14 01:22 ID:HS8odNe2
チェックを回避とは?

881 :名前は開発中のものです。:02/07/14 01:36 ID:???
>>880

if ( PC-98 ) return; ←これを消すこと

882 :名前は開発中のものです。:02/07/14 01:41 ID:HS8odNe2
どのファイルですか?

883 :名前は開発中のものです。:02/07/14 01:43 ID:???
>881
ぼくはアセンブラができないのでわかりません

884 :822:02/07/14 02:34 ID:VQfhQCBE
インストールできるようにするパッチがあったはず

885 :A-Fo ◆rY8kGqzs:02/07/14 03:06 ID:VQfhQCBE
http://hp.vector.co.jp/authors/VA007918/dx8nec98.htm
あったよ。これこれ。

886 :858:02/07/14 06:37 ID:???
858の方法はちと不備があったっす。
よく考えたら、視点の裏側だと反転しちゃうんで
視点の表と裏を分ける平面と干渉するオブジェクトを余計に描画しがちです。
wが負の場合は反転させるとイイと思われ

あと、完全なバウンディングボックス計算ではないので、
辺の近くの微妙な位置のを余計に描画してしまうこともありまふ。

887 :名前は開発中のものです。:02/07/14 06:47 ID:???
>>864
こんなんどうかね
http://www.gamedev.net/reference/articles/article1835.asp

888 :名前は開発中のものです。:02/07/14 19:46 ID:arzFPCgg
http://www.google.co.jp/search?q=cache:ijdTGgLEsbcC:www2.bbspink.com/test/read.cgi/erog/999446678/+DIBSection+%E3%82%A2%E3%83%AB%E3%83%95%E3%82%A1%E3%83%96%E3%83%AC%E3%83%B3%E3%83%89&hl=ja&ie=UTF-8
このスレの話は現在にも適用できますか?MMXがないとアルファブレンドがきついなど

889 :名前は開発中のものです。:02/07/14 21:22 ID:???
>>888
読んでみて、エロゲのプログラマがたかが紙芝居システムを、
とことん磨き上げようとする熱意に感激しました。

MMXがどうとかいう問題は、はっきりいって常識は通用しません。
各々のソフトハウスのプログラマ連中の認識や合意の問題です。
まあ基本的に世代交代遅いので推して氏ってください。

890 :889:02/07/14 21:26 ID:???
というか普段Direct3D使ってる人とは別の世界観が確固と存在する。

891 :A-Fo ◆rY8kGqzs:02/07/14 22:49 ID:???
>>887
どうもありがとう。やっぱり英語の文献の方がいいものがありますね。

892 :名前は開発中のものです。:02/07/17 11:17 ID:Qrh/om0o
3DXSPRITE::Draw関数を使ってテクスチャーを2倍に拡大表示してみたところ、
ぼやけて描画されてしまい、きっちりドットが描画されません。
別のパソコンで試してみたら、なぜか、きっちりドットが描画されました。
原因は何しでしょうか?

893 :名前は開発中のものです。:02/07/17 12:04 ID:???
>>892
IDirect3DDevice8::SetRenderState( ) を使って
テクスチャフィルタリングのタイプを明示的に指定する。
指定しないとHALのデフォルト設定を使うので環境が変われば
出力も変わる。場合もある。

894 :名前は開発中のものです。:02/07/17 12:54 ID:ZmKYpjcw
そうでもない。HALの場合ドライバーが勝手に bltにフィルターかけちゃうものがある

HALが効かないような状態(SYSTEMメモリーサーフェイス)なら問題でないよ
あと、事前にblt使わずに2倍しておくとかね

895 :892:02/07/17 20:02 ID:???
>>893-894
ありがとうございます。
遅いですが、REFモードでやります。

896 :名前は開発中のものです。:02/07/17 22:04 ID:???
SDKでDirectX8にでウィンドウモードとフルスクリーンモードの切り替え
をやってみましたが失敗してしまいます。

SetWindowLongでウインドウスタイルをセット
3DXSPRITE等のオブジェクトの解放
D3DPRESENT_PARAMETERSに値をセット
LPDIRECT3DDEVICE8::Reset()の実行

と、順番にやりました。これだけではダメなのでしょか?
起動時にウインドウモード、フルスクリーンモードでの初期化には
成功しています。

897 :tcns003.zaq.ne.jp:02/07/17 22:46 ID:???
Win98seでDirectX7SDKを使っているんですが、
Win2000に変えようと思っています。
2000に変えると今まで作ったプログラムやDirectX7SDKは
そのまま使えるのでしょうか?

時期外れな質問だと思いますが、教えてください。

898 :名前は開発中のものです。:02/07/17 23:04 ID:???
>>896
たしか、SDKのサンプルのほうは切り替えがやってるよな。
そっちのソースを見たほうが話が早いんでないの?

899 :名前は開発中のものです。:02/07/17 23:06 ID:???
>>897
使えるよ。

900 :名前は開発中のものです。:02/07/17 23:32 ID:???
>>894
なんでDirect3Dの話してるときにBltが出てくるの?
それにSystemメモリサーフェスでもNVIDIA系はBltでフィルタかかるよ。

893の言っている事の方が正しい。
ただしSetRenderStateではなくて、SetTextureStageStateね。
本当はデフォルト値がD3DTEXF_POINTに決まっているんだが、ドライバに
よっては守ってないのもある。かもしれない。
D3DRS_DITHERENABLEもドライバの設定によってデフォルト値が変わる場合
があるから注意した方がいいよ。

>>895
リファレンスラスタライザなんか使う必要はないよ。
ちゃんとRenderStateを設定しろって事。設定すれば無問題。

901 :名前は開発中のものです。:02/07/18 00:07 ID:9hEE2xqo
>それにSystemメモリサーフェスでもNVIDIA系はBltでフィルタかかるよ。

ありえなーい。本当か? AGPメモリに作ってんじゃねぇの?

902 :名前は開発中のものです。:02/07/18 00:17 ID:???
>>901
ドライバの設定って可能性が高いような気がする

(ドライバが勝手にVSYNC待ちoffにしたりするのはやめてほしい)

903 :名前は開発中のものです。:02/07/18 01:30 ID:???
NVIDIAドライバがSystem→Localでもフィルタかけるのは有名な話だと思うが。
もちろんドライバでon/offの切り替えはできるが。
ATiとかIntelのだとSystemメモリに作ればバイリニアフィルタは無効になるけどね。
結局2DなのにBltやめてDrawPrimitiveに変えたよ。

904 :名前は開発中のものです。:02/07/18 01:42 ID:9hEE2xqo
system-> local でフィルタ掛かるのは当たり前じゃない?
転送サイズが違えばグラフィックチップが介在して処理するんだから
(つか、AtiとIntelはそうなのか。MGAは途中からNVidiaコンパチになって泣けた)

ドライバでon/OFF出来るようになったの?
エミュレーターの多くは解決策がなくて泣いていた筈だけど
(作者は技術力あるし、仲間も多いのに、見落としてるとも思えないが)

905 :名前は開発中のものです。:02/07/18 01:43 ID:???
>>902
馬鹿麦価。D3DPOOL_SYSTEMMEMは更新の転送元だけ

906 :893:02/07/18 03:35 ID:???
>>894
俺、昔Riva128使ってたのでなんとなく思い出したよ。
DirectDraw-HALのBlt( )で拡大描画させるときに
強制的に補間フィルタがかかっちゃうアレだろ。
(あとたしか、Win32のStretchBlt( )でも同様の症状アリだったやつな)

907 :893:02/07/18 03:36 ID:???
ちなみに2Dゲームなら、DirectDrawだろうとWin32だろうと
System Memory上のバッファに自前のソフトレンダラで描画する
スタイルを使ってれば問題になる話じゃなかったよな。
つまり、Blt( )を使うのはスクリーン全体をLocal Memory上の
バッファに当倍転送するときだけっていうスタイル。

908 :893:02/07/18 03:37 ID:???
あと、どうしてもBlt( )でスプライトを一つ一つ描画したいっていう人は
System Memory → System Memory でBlt( )使って拡大描画してたらしいな。
もっとも、このときの内部処理は要するにHELデバイスでやってることと
同じなのだから速度的なメリット無し。

909 :893:02/07/18 03:44 ID:???
>>894
で、本題。

あのクソヘボだったRiva128でも、Direct3D-HALで板ポリなスプライトを描画する場合は
テクスチャフィルタリングの変更はしっかり反映されていたし、問題なかった。

そこで、ちょっと質問させてくだされ。
今回の話はD3DXSPRITEだろ?
上で書いたような、DirectDrawのBlt( )などで起きる強制的な補間フィルタリング問題と
同じ現象がD3DXSPRITE起きるってことなの?もし確認済みならその辺ぜひ教えてくだされ。

もうRiva128を手放しちゃってて、その辺のヘボカードの挙動を確認できないんだ。

910 :893:02/07/18 03:49 ID:???
>>900
>ただしSetRenderStateではなくて、SetTextureStageStateね。

うっかりしてた。スマンかった。

911 :893:02/07/18 03:53 ID:???
訂正
× Win32
○ GDI

912 :903:02/07/18 07:46 ID:???
>>904
一部のアンオフィシャルなMAMEはDirect3D化されていて解決しています。
オフィシャルの方もDirect3D化は予定に入っているので、そのうち移行するかと。
それと、海外だとフィルタのかかったボケた画像が好きな人も結構いるんだよね。
(Cool!とかいうメールを結構貰ったけど、日本人にそんなこと言われた事ない)

ユーザがドライバの設定でフィルタのON/OFFができたのは昔の話。
Detonator2とかそのあたりだったと思う。
今でもできないかと暇なときにレジストリを眺めているけど、そういう設定
は無さそう。CoolBitsみたいに新規で追加すればできるかも?

913 :名前は開発中のものです。:02/07/18 18:13 ID:WWZ1jX4Q
MAXのデータをつかうには、どうしたらいいのでしょうか。

914 :名前は開発中のものです。:02/07/18 18:45 ID:???
>>913
http://www.google.co.jp/search?q=%E8%B3%AA%E5%95%8F%E3%81%AE%E4%BB%95%E6%96%B9

915 :名前は開発中のものです。:02/07/18 18:50 ID:???
すごく初歩的な事だと思うんですが、
D3DXMATRIX構造体の各要素を扱うにはどうしたらいいんですか?

916 :名前は開発中のものです。:02/07/18 18:55 ID:9hEE2xqo
扱う の意味がわからん。何がしたいんだ?

max のデーターはMicrosoftが提供してる Xファイルのコンバーター(不完全)がある
それ以外は自分で作ってくれ(Xファイルにコンバートしたところで、読み込みの手間が減るくらいだ)

917 :名前は開発中のものです。:02/07/18 19:35 ID:???
D3DXMATRIX mat;       )
mat.┌───────┐   )
   │■operator !=  │   )
   │■operator () │   )
   │■operator *  │   )
_____________)

     ○
     O
    o
      / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧ ∧ < メンバにアクセスできないぞゴルァ!
 ( ゚Д゚)  \_________________
(つ_つ_____
 ̄\| VC++  | \
    =========   \

に2ペソ

918 :名前は開発中のものです。:02/07/18 19:51 ID:???
>>917
そうです・・・
ハズカシイ

919 :名前は開発中のものです。:02/07/18 22:39 ID:???
>>917
爆笑した(笑

>>918
typedef struct D3DXMATRIX : public D3DMATRIX {
                            ↑ここ、ここ
D3DXMATRIXじゃなくてD3DMATRIXの方をみるよろし

920 :名前は開発中のものです。:02/07/19 01:50 ID:iuVx658Y
D3DXで2Dゲームくみたいのですが、回転・ブレンドなどのスピードは自前+DirectDrawと比べてどうなんでしょう。

921 :名前は開発中のものです。:02/07/19 02:49 ID:???
10倍以上速い場合も。

922 :名前は開発中のものです。:02/07/19 08:11 ID:???
10倍どころじゃないでしょ

923 :918:02/07/19 15:41 ID:???
>>919
あぁwマジサンクスです・・・w

924 :名前は開発中のものです。:02/07/19 16:47 ID:opPBTcIU
Direct Play の鯖プログラムについて聞いてみたいです。
ズバリ、サーバープログラムっていうのはどこのゲーム
でも似たようなものなんでしょうか?

925 :名前は開発中のものです。:02/07/19 18:27 ID:???
>>924
ゲームのプログラムがどれも似ているのと同じくらい似ています。

926 :名前は開発中のものです。:02/07/20 07:42 ID:???
>>920
ハードウェアによる。
うちの環境だとD3Dの方が圧倒的に遅い。

927 :名前は開発中のものです。:02/07/20 09:10 ID:???
>>926は紙芝居エロゲのフェードイン/アウトにDirect3Dを使おうとしたが
遅くて断念とかそんなレベル。

928 :名前は開発中のものです。:02/07/20 17:39 ID:LEd6YzEU
D3DXでカラーキーが表現できません。
ネットをいろいろ調べた結果、アルファテストが重要らしいのですが、どうすればよいのでしょう。
A8R8G8B8の空のテクスチャをつくり、それにビットマップをロードしたテクスチャをLoadTextureFromSurfaceで転送してからA8を設定してやれば良いのかと思ったのですが、Lockしたあと消したいピクセルのA8 を0にしてもうまくいきませんでした。
アルファブレンドはできるのですが、カラーキーのためにはSetRenderStateに何を設定すればいいのか、多すぎてわかりません。

929 :名前は開発中のものです。:02/07/20 17:39 ID:LEd6YzEU
ちなみにDirectX7です。

930 :928:02/07/20 17:54 ID:LEd6YzEU
これが描画前にしているSetRenderStateです。

SetRenderState( ( D3DRENDERSTATE_ALPHATESTENABLE), TRUE);
SetRenderState( ( D3DRENDERSTATE_SRCBLEND ), TRUE);
SetRenderState( D3DRENDERSTATE_CULLMODE, D3DCULL_NONE );
SetRenderState( D3DRENDERSTATE_LIGHTING, FALSE );

SetRenderState( (D3DRENDERSTATE_COLORKEYENABLE), TRUE);
SetRenderState( (D3DRENDERSTATE_ALPHABLENDENABLE), TRUE);
SetRenderState( D3DRENDERSTATE_ALPHATESTENABLE , TRUE ) ;
SetRenderState( D3DRENDERSTATE_SRCBLEND, D3DBLEND_SRCALPHA );
SetRenderState( D3DRENDERSTATE_DESTBLEND, D3DBLEND_ONE );
SetRenderState( D3DRENDERSTATE_ALPHATESTENABLE , TRUE ) ;

931 :名前は開発中のものです。:02/07/21 00:10 ID:???
>>920
自前の場合、最適化でいろいろがんばったとしても、
アクションゲームなどの動きの激しいゲームで満足の行く速度を出すのは困難
かつ、最適化によって自由度が相当下がる場合がある
さらに、いくら最適化しても結局メモリアクセスの時間がおおきいから
ある速度以上だすのは不可能だし

で、ビデオカードはそういう問題を解決するためにつけられているんだから、
素直にビデオカードの機能を使ったほうがいいかと

932 :名前は開発中のものです。:02/07/21 00:14 ID:???
しかし、ビデオカード依存だと
出力品質が保証されている物ではないからなー

933 :名前は開発中のものです。:02/07/21 00:59 ID:???
1年前のノートでも動かしたい、って場合は?

934 :名前は開発中のものです。:02/07/21 01:15 ID:???
一年前のノートなら既に3Dアクセラレーションはついているものがほとんどです

935 :名前は開発中のものです。:02/07/21 01:52 ID:???
>>930
RenderStateがめちゃくちゃ。重複だらけな上に設定内容がトンチンカンなのもある。
括弧つけてる意味も分からんし。
ビルボードのサンプルでアルファテストを使ってたと思う。

936 :931:02/07/21 04:03 ID:???
>>932
・自前
実用的な速度の場合出力品質はお粗末

・ビデオカード
カードによって異なる。出力品質はお粗末〜最高

どっちがいいかは明白かと・・・
自前派は出力品質が保証されていないことを理由にすることが多いけど、
それって本末転倒だと思う

素直に自力で弄くるのが楽しいとか言えばいいのに・・・
と、おもいまふ(正直な個人的見解)

937 :名前は開発中のものです。:02/07/21 04:10 ID:gMIk8lKs
>935
PFをA1R5G5B5にしてアルファ部分のビットをOFFにしてビルボードと同じにしたらできますた!胃やあああっほおーーーーーーーーーーー!!!!

938 :名前は開発中のものです。:02/07/21 06:26 ID:???
>>937
D3DRENDERSTATE_ALPHAREFとD3DRENDERSTATE_ALPHAFUNCは適切に設定してる?
その2つを設定しておけばα成分さえあればA1R5G5B5以外でも問題無いし、
設定してないのなら環境によって結果が変わる可能性大。

それとアルファテスト使うなら、D3DRENDERSTATE_COLORKEYENABLEと
D3DRENDERSTATE_ALPHABLENDENABLEは設定するだけ無駄。遅くなる。

939 :名前は開発中のものです。:02/07/21 08:04 ID:???
>>936
ん?3Dやるなら確かにその通りだが。
しかし、2Dならそうでもない。品質を完全にコントロール出来るんだが。

っていうか、自前の出力品質がお粗末って根拠は?

940 :名前は開発中のものです。:02/07/21 10:01 ID:???
>>939
ソフトウェアレンダリングで動くゲームは倍リニア・鳥リニア等してるのは無いな。
要するに、PS1みたいな画面。

941 :名前は開発中のものです。:02/07/21 10:43 ID:???
ゲームするのに支障きたさなければ、出力品質なんてどーでもいいや。
と、思うのは漏れだけなのだろうか?
ゲームやりたいだけであって、絵みたいわけじゃないしなー

942 :名前は開発中のものです。:02/07/21 12:33 ID:???
>>941
本当に面白ければ見た目しょぼくても売れるので頑張ってください。
ただ、見た目が「どーでもいいや」って奴は往々にして中身も・・・

943 :名前は開発中のものです。:02/07/21 13:01 ID:???
>>940
いつから3D前提の話になったん?
D3DXで2Dスプライト云々って流れじゃなかったのか?
3Dをやるならハードウェアを使うことには異論ないが、
2Dなら、手抜きじゃない限りソフトレンダリングすべきだと思っている。

944 :名前は開発中のものです。:02/07/21 13:20 ID:???
2DSTGもハードが良くねえ?

945 :名前は開発中のものです。:02/07/21 13:37 ID:???
世の中のコンシューマチップが3DLabsとnVidiaとATIしか無いなら、
ハードでもやる気が起こるけど、S3とかMatroxとかIntelとか、
マイナーチップを使ってる香具師も居るから、やっぱり3Dじゃない限りハードはイヤだ。

946 :名前は開発中のものです。:02/07/21 13:48 ID:???
>>945
香具師の意味分かって使っているのか小一時間問いつめたい

947 :名前は開発中のものです。:02/07/21 13:56 ID:???
>>946
おまえは何をそんなにも(以下略

948 :名前は開発中のものです。:02/07/21 14:00 ID:???
水掛け論はうんざりだ!!!

【激論】最適化厨vs高スペックヲタ
http://game.2ch.net/test/read.cgi/gamedev/1025939917/l50

やね本 no.2
http://game.2ch.net/test/read.cgi/gamedev/1023639382/l50

949 :名前は開発中のものです。:02/07/21 14:49 ID:???
>>934
一応ついてるんだが、Direct3DCreate8が失敗するのよ・・・
NeoMagicの糞ビデオチップ
ベンダーは新しいドライバ提供してくれないし

950 :名前は開発中のものです。:02/07/21 14:54 ID:???
NMはダメじゃねーの?
Geforce3GO(だっけ?)とかATIのモバイルチップとか搭載している奴ならってことでしょ

951 :名前は開発中のものです。:02/07/21 20:13 ID:???
DirectX7か6を使えばいいのでは?
スプライト描画に使うだけなら、8よりも7の方が使いやすいと思う。
7は初期化が少し面倒なだけで、それは一度書いてしまえば済むことだし、
D3DXで初期化すればむしろ8よりも簡単。
あと、8はプライマリサーフェスに直接描画できないのがちょっと不便。

952 :名前は開発中のものです。:02/07/21 20:37 ID:???
>>951
プライマリは7以前でも無理

953 :931:02/07/21 23:31 ID:???
>>943
>>>出力品質お粗末
>>ソフトウェアレンダリングで動くゲームは倍リニア・鳥リニア等してるのは無いな
>いつから3D前提の話になったん?
回転拡大縮小のことを言っているのです

多分あなたは一部分の趣旨に過剰に反応し、全体の趣旨を見落としています
もう一度、全体に目を通していただけると助かります

954 :931:02/07/21 23:32 ID:???
>>952
私のゲームは元気にプライマリサーフェスにBltしてますが・・・

955 :名前は開発中のものです。:02/07/21 23:41 ID:???
>>953 回転拡大縮小のことを言っているのです
あ、そう。じゃ、世間知らずなのね。
回転拡縮でニアレストネイバー法を使っているゲームってほとんど無いけど。
さすがにトリリニアはみたこと無いけど、バイリニアは普通に使ってますがなにか?

956 :931:02/07/21 23:52 ID:???
>>955
多分あなたは一部分の趣旨に過剰に反応し、全体の趣旨を見落としています
もう一度、全体に目を通していただけると助かります

>あ、そう。じゃ、世間知らずなのね。
このような、相手を罵倒する内容の発言は私は嫌いです
どのような意図があってこのような発言をしたのですか?
あなたを理解する(許す)ために知りたいです。

>バイリニアは普通に使ってますがなにか?
それよりもお粗末だとしてもビデオカードを使用したほうが早いと言っているのですが

957 :名前は開発中のものです。:02/07/22 00:00 ID:???
>>956 許す

ハァ?許すってなんだよ。

>出力品質お粗末

あんたはこの根拠として

>ソフトウェアレンダリングで動くゲームは倍リニア・鳥リニア等してるのは無いな

こう言っているだろ?
ソフトレンダリングでバイリニアを使っていないゲームといったら、
3D(それでも最近はバイリニアくらいは使っている)くらいなもんだろ。
2Dの場合は、遙かに昔からバイリニアは使われていた。

改めて聞く。
ソフト処理の出力品質が お粗末=ハードに劣る 根拠はどこにある?
ハードの場合、出力品質が最高ってどういう事?

>お粗末だとしてもビデオカードを使用したほうが早いと

速い、早いのは同意。
しかし、俺が問題にしていたのは出力品質で、
あんたはそれもハードに劣ると書いたが、なぜに?

958 :931:02/07/22 00:08 ID:???
>>957
>許すってなんだよ。
あなたを理解することです

>ソフト処理の出力品質が お粗末=ハードに劣る 根拠はどこにある?
メモリアクセスのタイムラグ
そもそもこの問題を解決するために作られたのがビデオカードだから

959 :931:02/07/22 00:09 ID:???
>ソフトウェアレンダリングで動くゲームは倍リニア・鳥リニア等してるのは無いな
これは私の発言では有りません

960 :名前は開発中のものです。:02/07/22 00:10 ID:???
>多分あなたは一部分の趣旨に過剰に反応し、全体の趣旨を見落としています

全体の趣旨ってなんだ?
ハード任せるか、ソフト処理にするかで選択の基準になるのは以下の4つほどだろう
・速度
・早さ(手軽さ)
・出力品質
・動作保証

前2者は明らかにハードに軍配が上がるのは認める。
しかし、最後の出力品質については、見た目の綺麗汚いも重要だけど、
「品質の保証」要するに、意図した出力を得られる事が重要だと考える。
ハードに任せると、基本的にドライバ、ハードウェアの制限、仕様が
つきまとい、それはハードの種類によって様々で、
利用者(プログラマ)が制御できるたぐいの物ではない。
動作保証はそのまま、ドライバのバグに左右されずに適切な処理が出来るという点。

プログラマの技術によって、速度の点が必要十分なレベルにまでクリア出来るのであれば、
管理コストを考えた上でも、ソフト処理がベストな選択だと考えるんだが。

961 :名前は開発中のものです。:02/07/22 00:13 ID:???
>>958 メモリアクセスのタイムラグ
タイムラグのどこが出力品質なんだよ?
output image qualityとでも言い換えようか?

>>959 これは私の発言では有りません
んじゃぁ、>>953でレスするなよ。
俺は940にレス入れたんだ。

962 :名前は開発中のものです。:02/07/22 00:23 ID:???
>>954
それは直接アクセスとは言わないと思うが。。。

963 :931:02/07/22 00:24 ID:???
>>960
>「品質の保証」
失礼しました、今までの発言はこの点の議論は抜きにしての発言です
出力品質の意味を広義と狭義で取り違えていたようです

私は品質の保証は推奨動作環境で取るものだと考えております
ソフトウェア処理は「ドライバのバグ」に対する究極の解ではありますが、
「開発」コストと表現の幅という意味での出力品質において、
本末転倒な結果となると思うからです
そもそも、PC上で品質の保証を行うには限界がありますので、
どこかで妥協しなければなりません。
当然その妥協点を議論しているわけですが

そうなるのならば、動作環境という方法を用いることで、
コストを軽減した方がより効果的だと述べるまでです
実際、ほとんどの開発でこの方法が取り入れられてはいませんか?

964 :名前は開発中のものです。:02/07/22 00:29 ID:???
とりあえず、俺が考える931の問題点を挙げるか。

>アクションゲームなどの動きの激しいゲームで満足の行く速度を出すのは困難
>かつ、最適化によって自由度が相当下がる場合がある

勝手にアクションゲームでは十分な速度が出せないと結論づけている
最適化で自由度が下がるのは、最適化をやり慣れていないだけ。
必要な部分のみ小さいスコープでピンポイントで最適化すれば構造に大幅な変更は生じない。

>実用的な速度の場合

際限なく速度を求める場合の勘違いか?
実用的の定義ってなんだ?

要するに、トレードオフによる最適な手法の選択というのが出来ない人間だと思える。
俺だって自分の力で解決できない部分はハードに頼る部分はあるが、
あんたの文章を見る限り、あんたはハードウェア至上主義としか見えないんだが。

965 :名前は開発中のものです。:02/07/22 00:33 ID:???
ソフトウェアレンダリングのための、速度追及のための研究開発コストって
誰が払うの?

966 :名前は開発中のものです。:02/07/22 00:35 ID:???
>>965
964の給料。そのために彼は雇われているのです。

967 :名前は開発中のものです。:02/07/22 00:35 ID:???
>>963
一つ聞きたいんだが、ソフトレンダラだと開発コストがかかるってどういうことだ?
もしかして、毎回毎回1からレンダラを書くとでも思っているのか?
ソフトレンダラは言ってしまえば仮想ハードウェア。
一度必要な範囲で高性能な物を書けば、利用側の手間ははハードを使うのと大して変わらない。

自分たちの管理基準の範囲内で、ソフトウェア自体の品質も保証されているので、
その範囲内では無条件に信じてアプリケーションプログラムを書くことも出来る。

968 :名前は開発中のものです。:02/07/22 00:38 ID:???
> ソフトレンダラだと開発コストがかかるってどういうことだ

そんなDQN仕事を好んでやる奴なんてそうそう見つからないからでは?

969 :名前は開発中のものです。:02/07/22 00:44 ID:???
PixelShaderなんてお粗末な物じゃなくて、
FullProgrammableShaderを搭載したらすべて
ビデオカードに処理を任せても良いと思うが、
そうでないならやっぱりどこかで妥協せにゃならん。

970 :名前は開発中のものです。:02/07/22 00:45 ID:???
ハードによる差異って、今現在どれくらいあるんだろ。
以前に比べればカナリ淘汰されてるから、
ソフトレンダ至上主義の彼が思ってるよりは小さいと思うんだけど。

971 :名前は開発中のものです。:02/07/22 01:07 ID:???
>>968
そこら辺に転がってる最適化された転送コードをパクって来て検証するだけじゃん

972 :名前は開発中のものです。:02/07/22 01:16 ID:???
最近の「ソフトウェアレンダラー」な市販PCゲームって
例えばどんなのがあるんですか?

973 :名前は開発中のものです。:02/07/22 11:28 ID:???
エ ロ ゲ ー に き ま っ て る だ ろ う が ! ! !
い わ せ る ん じ ゃ ね え よ

974 :名前は開発中のものです。:02/07/22 18:36 ID:???
2Dで四角形の衝突判定ならバウンディングボックスを使うのはわかるのですが、
その四角形が360度回転する場合、どういう判定方法がありますか?

975 :名前は開発中のものです。:02/07/22 18:40 ID:???
バウンディングボックス

976 :974:02/07/22 18:51 ID:???
>>975
その場合、座標の単純な大小関係じゃないと思いますが何か参考文献ありませんか?
検索しても大小関係での判断か、それ以外だと3Dの判定しか見つかりません。

977 :名前は開発中のものです。:02/07/22 18:56 ID:???
>>976
1 バウンディングボックスで判定
2 でかい方の四角形を4つの直角三角形に分割
2 小さい方の四角形の各頂点が、分割した各三角形の内部にあるか判定

だけじゃないのん?

978 :名前は開発中のものです。:02/07/22 18:57 ID:???
回転出来てる時点でそんなこと聞くまでもないと思うが・・・
また算数から教えなきゃならないのか?

979 :名前は開発中のものです。:02/07/22 20:14 ID:???
>>977
それでは駄目。例えば全く同じ大きさの正方形を2つ完全に重ねた
状態で片方を45度回転させると、どの頂点も相手の正方形の外に出る。

>>978
こういう質問に答えてやらないから、デブ板は中身が無いんだと思う。
974の質問は結構良い質問だと思うが。世の中には疑問にすら思わずに
AABBしか使わない(使えない)人間も多いんだから。
ただ、DirectXの質問ではないからスレ違いではあるが。

980 :名前は開発中のものです。:02/07/22 20:23 ID:???
>>979
頂点じゃなくて、線分の交差にすればいいんでない?

981 :名前は開発中のものです。:02/07/22 21:51 ID:???
>>979
スレ違いかなぁ?他に妥当なスレも無いと思うが。

982 :名前は開発中のものです。:02/07/22 22:18 ID:???
Collision Detectionというそのまんまなスレがあるな

983 :名前は開発中のものです。:02/07/22 22:52 ID:???
>>980
線分の交差だけだと、完全に内包される場合に判定できない。
回←こんな感じ

984 :名前は開発中のものです。:02/07/22 22:55 ID:???
じゃあどうすんの?

985 :名前は開発中のものです。:02/07/22 23:50 ID:???
次スレたてますか?

986 :名前は開発中のものです。:02/07/23 00:20 ID:???
>>984
次スレが立つまでの宿題

987 :名前は開発中のものです。:02/07/23 00:33 ID:???
次スレたてますた
http://game.2ch.net/test/read.cgi/gamedev/1027351925/l50

988 :名前は開発中のものです。:02/07/23 00:34 ID:???
早っ

989 :名前は開発中のものです。:02/07/23 02:46 ID:???
989getaa

990 :名前は開発中のものです。:02/07/23 12:53 ID:???
沙羅曼蛇の1面後半に出てくるピンク色の細胞壁ってどうやって実現してるん
だろう? データ的には、ミサイルやレーザーが当たった座標をバッファに
保存して、最も古く破壊された所から順に復活(再生)させているのだろうけど、
グラフィック的な処理が分からない。

991 :名前は開発中のものです。:02/07/23 21:39 ID:???
埋め立て

992 :名前は開発中のものです。:02/07/23 22:11 ID:???
>>990
壁全体を8x8ピクセル四方に区切って、1つずつ処理してるんじゃないの?

993 :名前は開発中のものです。:02/07/23 22:39 ID:BMDBV8mo
1000GETイクゾー

994 : :02/07/23 22:40 ID:???
ほも

995 : :02/07/23 22:40 ID:???
勝丸ホモ

996 : :02/07/23 22:41 ID:???
池○ほも

997 : :02/07/23 22:41 ID:???
安心して
ほもほもほも

998 : :02/07/23 22:41 ID:???
 〈 ドモッ、スミマセン....。 〈 スミマセンスミマセン...。 〈 コノトオリデス!
  ∨ ̄ ̄ ̄ ̄ ̄ ̄  ∨ ̄ ̄ ̄ ̄ ̄ ̄  ∨ ̄ ̄ ̄ ̄ ̄
 (´Д`;)ヾ       (;´Д`)            ヾ
   ∨)        (  八)         (´Д`;)、
   ((          〉 〉           ノノZ乙

999 :  :02/07/23 22:41 ID:???
ひぃひぃ

1000 :  :02/07/23 22:42 ID:???
はい1000

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

250 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)