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


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

鬱だ氏のう DirectX (Part 9)
1 名前:998 ◆oqSJWu4Ch2 :03/06/02 20:31
DirectXについて、お兄ちゃんたちがマターリと
技術情報交換&雑談するためのスレッド。
初心者用相談室では扱わないような少し高度な話題も受け持つ。

ちなみに、言語はC++がメイン。
C# / VB.NET 使いは、専用スレの方が話がスムーズに進むと思われ。

2 名前:998 ◆oqSJWu4Ch2 :03/06/02 20:33
/** 過去スレ **/
Part 1 http://piza.2ch.net/tech/kako/966/966655286.html (迷子)
Part 2 http://pc2.2ch.net/tech/kako/997/997101556.html
Part 3 http://game.2ch.net/gamedev/kako/1005/10051/1005119775.html (ゲ製作板)
Part 4 http://game.2ch.net/gamedev/kako/1016/10162/1016276254.html (ゲ製作板)
Part 5 http://game.2ch.net/test/read.cgi/gamedev/1027351925/ (ゲ製作板)
Part 6 http://game.2ch.net/test/read.cgi/gamedev/1033920036/ (ゲ製作板)
Part 7 http://pc2.2ch.net/test/read.cgi/gamedev/1039509250/ (ゲ製作板)
Part 8 http://pc2.2ch.net/test/read.cgi/gamedev/1046676308/ (ゲ製作板)

/** 外部 **/
MSのDirectX関連ページ
- DirectX Home Page
http://www.microsoft.com/japan/windows/directx/default.asp
- MSDN>DirectX
http://www.microsoft.com/japan/msdn/directx/default.asp

- DirectX Info Lib (デバイス情報のデータベース。すばらしい!)
http://www.netsphere.jp/dxinfo/
- BBX(掲示板)
http://isweb8.infoseek.co.jp/computer/bbx/
- spin
http://spin.s2c.ne.jp/
- 宇治社中改(3D基礎講座)
http://www.cc.rim.or.jp/~devilman/

3 名前:998 ◆oqSJWu4Ch2 :03/06/02 20:34
/** 関連 **/
- DirectX C# vol.1
http://pc2.2ch.net/test/read.cgi/tech/1040435898/
- vb.NETでやるDirectX
http://pc2.2ch.net/test/read.cgi/tech/1039357620/
- Direct3D
http://pc2.2ch.net/test/read.cgi/tech/1011762546/
- DirectShowと戦うスレ
http://pc2.2ch.net/test/read.cgi/tech/1026666092/
- OpenGL VS Direct3D
http://pc2.2ch.net/test/read.cgi/tech/1044308707/

- C++相談室 part19
http://pc2.2ch.net/test/read.cgi/tech/1052625846/
- ★初心者にVisual C++を教えるスレ★ Part6
http://pc2.2ch.net/test/read.cgi/tech/1052931903/
- Win32API 質問箱 Build11
http://pc2.2ch.net/test/read.cgi/tech/1052651750/


4 名前:デフォルトの名無しさん :03/06/02 20:34
スレタイ見て鬱になった

5 名前:デフォルトの名無しさん :03/06/02 20:39
以後放置

6 名前:デフォルトの名無しさん :03/06/02 21:35
>1オツ
1000ワラタ

7 名前:デフォルトの名無しさん :03/06/02 22:11
厨房隔離板から出てくんなよ……

8 名前:デフォルトの名無しさん :03/06/02 22:13
キター

9 名前:デフォルトの名無しさん :03/06/02 22:14
板違い
ゲ制作技術
http://pc2.2ch.net/gamedev/

10 名前:デフォルトの名無しさん :03/06/02 22:53
煽りに負けずマターリ逝きましょう

11 名前:デフォルトの名無しさん :03/06/03 00:14
おつ〜

12 名前:デフォルトの名無しさん :03/06/03 07:44
>>9
こっちへ誘導しろよ。

鬱だ氏のう DirectX (ゲ製作技術避難所)
http://bbs.gamdev.org/test/read.cgi/gamedev/1054109966/


13 名前:デフォルトの名無しさん :03/06/03 11:27
>>1
おつかれ、なんかこっちでやるのは懐かしい気すら

14 名前:デフォルトの名無しさん :03/06/03 12:58
DirectXはゲームだけが目的ではないので、特に板違いではないよ。他にもスレあるしね。
まあ、ゲ製板避難所のスレと平行してやってくってことで。

15 名前:工房って高校生? :03/06/04 02:52
じゃ、一発目の質問です。
サンプルやヘルプ、WinAPIバイブルと格闘して初期化して何も描画しないプログラム
(Tutorialの01と同じ結果になる物)を組んで見ました。
一応、Libryにしたいので処理を分けて組みました。
VC++6.0 DirectX9 Win2000環境です。
一瞬上手く行ってる見たい何ですが、テストアプリケーションを落すと
Clearメソッドで例外ハンドルを指してデバッグモードになってしまいます。
これってアプリケーション実行中はINVALIDCALLを返してないので
開放時の問題でしょうか?
悩む事三日目の悩める高校生です。どなたか助けて下さい。

16 名前:デフォルトの名無しさん :03/06/04 07:19
VC6あるのならデバッガでおいかければ?

17 名前:デフォルトの名無しさん :03/06/04 15:31
>>15
どこにどう処理をわけたのかわかんなきゃ答えようがない質問だと思うんだが。

18 名前:デフォルトの名無しさん :03/06/04 18:28
>>一応、Libryにしたいので処理を分けて組みました。
ここら辺りがよくわかりませんな。

19 名前:工房って高校生? :03/06/05 01:40
すみません。
処理を分けたってのは、初期化してグラボの性能みてデバイス制作部分(関数単位)
とClearだけ実装した関数、Presentだけ実装した関数、Windouwsの処理部分
各オブジェクトをReleaseする部分と分けたのです。
つまり、ソースファイルなりLibなりをプロジェクトに組み込めば
関数単位で呼び出してアプリを構築出来る様にしたいのです。
で、Clear部分は、Libraryのglobal領域にZバッファやステンシルを使用したかの
フラグがありそれを見て適応したクリアーを呼び出してるのです。
引き数にXRGBの型を渡せるようにしてあり、任意のカラーでクリアできます。

20 名前:デフォルトの名無しさん :03/06/05 09:05
初期化し忘れだったら笑うなw

21 名前:デフォルトの名無しさん :03/06/05 10:31
俺のおすすめは、処理を分ける云々はひとまず置いといて、まず
六つのチュートリアルをすべてやってみたほうがいいと思うけど。(すでにやってたらスマン)

>>アプリを終了させると、、、
WM_DESTROYメッセージでどんな処理をしてるの?
g_pd3dDevice->Clear(...); はどこで処理してます?

22 名前:デフォルトの名無しさん :03/06/05 16:13
スコープの問題に一票

23 名前:デフォルトの名無しさん :03/06/05 20:39
ライブラリに分けるのは相当うまく設計していない限りお勧めはできないな

24 名前:デフォルトの名無しさん :03/06/05 20:44
分けるのは当たり前として、分ける理由が個別のグローバル領域確保という時点で、
うまく設計されている可能性はゼロ

25 名前:デフォルトの名無しさん :03/06/05 20:59
ソース出せ、といいたい……
安心しろ、誰もパクらんからw

26 名前:デフォルトの名無しさん :03/06/06 02:11
DirectX用のライブラリがいくつかあるみたいだけど、
どれが出来が良いのかな?この板(スレ?)的にお勧めが
あったら教えてください。

27 名前:工房って高校生? :03/06/06 02:14
皆さん解決しました。
親身な問い、辛口問い、でしたが一人で詰まっていたら解決しなかったです。
ちなみに、問題は設計でした。
Windowsのメッセージ処理で各オブジェクトを開放したあとも
一回だけClear,begin,end,presentが回ってしまい
Clearの呼び出し前に!NULLの条件を付けたら問題はなくなりました。
勿論、beginやpresentにも付けてなかったです。
精進が足りないみたいです。
ちなみにVCはもっと精進が足りません、MFCはチンプンカンプンで
デバッカで変数の値やアドレス追う程度しか使えません。

28 名前:デフォルトの名無しさん :03/06/06 03:24
>>26
よほど高度な機能があってサポートが期待できない限り、
(ぶっちゃけ市販のゲームエンジンほどに)
DirectXを生で使うのが一番いいんじゃないかと愚考します。

29 名前:デフォルトの名無しさん :03/06/06 09:06
>>28
同意。
質問文からはどの程度の機能があればいいのかもサッパリわからんしね。

そこそこいいんじゃないか、と思うのがLuna。
ttp://www.twin-tail.jp/

30 名前:デフォルトの名無しさん :03/06/06 13:36
今のDirect3Dは下手にライブラリ化する必要が無いくらいに使いやすいと思う。

31 名前:デフォルトの名無しさん :03/06/06 13:55
ライブラリ化はするだろう
ただしそれは自分が使うために機能をまとめることであって、
それをわざわざ他人にしてもらう必要性がないということ

32 名前:デフォルトの名無しさん :03/06/06 16:44
Wizardが吐いたコードをそのまま使うヘタレですが、何か?
さすがにシーンクラスは作るけど……。

33 名前:デフォルトの名無しさん :03/06/06 17:33
そら正道や思うでー。

CD3DApplicationに不満を覚えて自分でフレームワーク作ったけど、頭痛いトラブル続出で、
ほぼ安定した今でも素直にCD3DApplication使ったほうが苦労がなくて済むんちゃうかと
揺れてる今日この頃。

34 名前:26 :03/06/07 03:29
みなさんありがとうございます。
生で使うのは難しくはないでしょうか?
というか知り合いにそういう風に脅されてまして。

C言語は一通り勉強してて、UNIX上で小さなゲームやら
システムやら開発したことはありますが、Windowsプログラミング
に関しては素人で、DirectXもまだ扱ったことがありません。
いずれは自力でDirectXのコードを書く予定なので、それくらいなら
はじめから自分で勉強して自力で記述した方が良いんですかね?

35 名前:26 :03/06/07 03:35
29さん、Luna見てみようと思います。
ありがとうございます。

どの程度の機能というのも難しいですが、
ある程度汎用的で、将来自力でやることを踏まえて
良い勉強になるようなライブラリが良いですね。
って要求多すぎっすか?すんません・・・。

最近のDirectXは使いやすいのでしょうか?9.0とか。
あと、皆さんははじめはどのように勉強しました?
マイクロソフトのドキュメントをゴリゴリ読んでいった
んでしょうか?それとも書籍やネットで勉強したんでしょうか?
参考までに教えてくださると嬉しいです。


36 名前:デフォルトの名無しさん :03/06/07 06:16
>>26
俺simpleXっていうライブラリ使ってるんだけど
超初心者の俺でもめっちゃつかいやすいよ
あんたもつかってみ

http://www.geocities.co.jp/SiliconValley-SanJose/8134/

37 名前:_ :03/06/07 06:20
http://homepage.mac.com/hiroyuki43/jaz09.html

38 名前:デフォルトの名無しさん :03/06/07 06:23
26さんがどういう層のライブラリを欲しいのか分からない…

本はI/OのDirectX8実践プログラミングがある。周りで評判が良いので買った。
この本は大まかな指針を提示してくれるので、DirectX入門にはよいと思う。
でもDXSDKのヘルプやサンプルが最高の教科書。後はネット上のサンプルなど。

もし3Dデビューしたいのなら、Direct3Dを叩いて勉強するのが一番だよ。
3Dやってく上での問題はAPIの形式じゃないから。

39 名前:デフォルトの名無しさん :03/06/07 09:47
>>Windowsプログラミングに関しては素人で、DirectXもまだ扱ったことがありません。

ということでしたら、まずはWindowsプログラミングに慣れることから
初めてはいかがでしょうか。
私もはじめてWindowsのコードを見たときは難しそうだなと思いましたが、
Petzoldを読み始めてからは、意外と簡単に感じるようになりました。
DirectXに関しては公式の日本語ヘルプで十分だと思います。しかし、
このヘルプのコードを理解するには、Windowsプログラミングの知識が必須です。

40 名前:26 :03/06/07 19:38
確かに、ヘルプを少し読んでみましたが良く分かりませんでした。
Windowsプログラミングの知識が必須ですか・・・、
頑張って勉強しようと思います。38さんの仰る本も
今度見てみようと思います。勉強しなければいけないことが
たくさんあるなぁ。早くみなさんの会話についていけるように
頑張りたいです。

41 名前:デフォルトの名無しさん :03/06/07 19:48
もしWindowsプログラミングの参考書を買おうと思っているなら、これがおすすめです。
http://www.ascii.co.jp/pb/msp/36001/36001.htm


42 名前:26 :03/06/08 01:42
>>41
わお、わざわざありがとうございます。このスレの
人たちはホント親切で感動しますた!
個人的にはあの有名な猫でも〜のサイトでも読むか、あの人の
書いた本でも買ってみようかと思ったんだけど、41のがいいっすか?
買ってみようかな。それにしても高い・・・。なんでこんなプログラミング
関係の本とかアホみたいに高いんだろう・・・。書籍もアカデミック版
とか出してくれ・・。

43 名前:デフォルトの名無しさん :03/06/08 02:07
図書館に頼むのが吉

44 名前:デフォルトの名無しさん :03/06/08 02:16
Petzold本は一家に一冊あって損はないと思う。

45 名前:デフォルトの名無しさん :03/06/08 18:26
ちと、お聞きしたいのだが、

Windows Media Player 9 で、avi ファイルとか再生して、
そのあと更に別のファイルを見ようと、ファイルを Media Player 9 に投げると、
必ずといっていいほど、"ASSERT Failed" というダイアログが出てくる。
DirectShow あたりのソースコードでアサートに引っかかってるみたいなんだけど……
(ちなみに、Media Player 6.4 での再生だと出てこない。)

更に、MIDIシーケンサの「Sonar 2.1」で、VSTプラグイン等を設定しようとすると、
やっぱり似たような アサートダイアログが出てくる。
正直鬱陶しい。


DirectX コンパネでの、デバッグ出力レベルをすべて Less にしても出てくるし、
Retail 版のランタイムを使用する設定にしても出てくる……

……これって、どうにかならんのですかね?

46 名前:26 :03/06/08 19:40
大学の図書館でPetzold本を検索してみたら、
一応あったが・・、1989年出版って・・、初版かいな!
ある意味貴重かもしれないけど。
>>43
図書館に頼んだら入れてくれますかね?

47 名前:デフォルトの名無しさん :03/06/08 20:22
>>46
図書館によると思われ

>>45
解決方法知らないから力になれんが、こっちも参考に見てみるといいかも。
ttp://pc2.2ch.net/test/read.cgi/win/1053402028/l50
ttp://www.experts-exchange.com/Networking/Broadband/DSL_Cable/Q_20294228.html

48 名前:26 :03/06/09 17:09
このスレでみんな絶賛するから、とうとう買っちまったよ。
petzold。高かった・・・。まぁ先行投資だと思って頑張ろう。
DirectXへの道のりは遠いのであった・・・。

スレ違いスマソ。

49 名前:デフォルトの名無しさん :03/06/09 19:00
みごとに騙されて増すな

50 名前:デフォルトの名無しさん :03/06/09 19:01
みてね〜♪
http://www1.free-city.net/home/s-rf9/page002.html

51 名前:工房って高校生? :03/06/10 03:23
書き込みが多くてすみません。またまた質問です。
8.xの頃のFVFは使い方は分るのですが、VERTEXELEMENT構造体についてです。
頂点データの構造体を宣言して、一つの構造体で座標や法線やUVなどを扱う場合に
VERTEXELEMENT構造体に値をセットする方法は、ストリームを0指定、offsetでストリームを区切ってくと
考えて宜しいのでしょうか?

またその場合(データタイプの宣言時)、実際の頂点バッファサイズ(頂点数)はコーディングするまで未定ですね?
つまりFVF時代は出来た、良く使う宣言をヘッダーに宣言しておいて使うってような感覚で
良く使う組み合わせのVERTEXELEMENT構造体を予め宣言しておくって出来ませんよね?
(offsetが未定の為)

どなたか御講義お願いします。HELPだと上記の理解が精一杯です。

52 名前:デフォルトの名無しさん :03/06/10 11:15
前者はそう。

後者はできる。実体をどこかのcppで定義してヘッダでexternなど。
でもそんなことをする必要があるかどうかは疑問。
毎回シェーダにあわせて専用の形式を作ればいいんでは?

53 名前:デフォルトの名無しさん :03/06/10 18:11
>>49
全然

54 名前:デフォルトの名無しさん :03/06/10 23:25
DX9を使ってますが、
スキンメッシュ作成のサンプルってどこかにないですかね。
Xファイルから読み込むやつじゃなくて、
メッシュを新規にスキンメッシュ化する方法で。

ID3DXSkinInfoがうまく動いてくれないんだよ。

55 名前:デフォルトの名無しさん :03/06/11 04:34
メッシュのデータと別にボーンのデータを持っておいて、
自力で頂点の重み付けをしたい、ってこと?
そんなのはLightWaveとかに任せちゃえばいいと思うんだが。

ていうか、D3DXで出来ないことを実装したいのならともかく、何か不満があるの?
基本的なことは大体出来る気がするんだがなあ。

56 名前:動画2音声 :03/06/11 14:44
DirectXの初心者です。
さっそく質問ですが、
DirectShowサンプルとして提供されている
WavDestというフィルタを拾ってきました。
そして、「REGSVR32.EXE wavdest.ax」でフィルタ
の登録もでき、GraphEditで使用できるようになりました。
そこで、CLSIDを定義してプログラム上からフィルタグラフ
マネージャを利用してWavDestフィルタを呼び出したい
のですが、なにをどうしていいかわかりません。
初歩的な質問でもうしわけないですが、
ご教授おねがいします。

57 名前:デフォルトの名無しさん :03/06/11 15:15
SHLSLHSHLSHHHSHSLLLHHHSLHSLHSLSHHHLSHLHSLHSLHLHHHLSLHSLHS

58 名前:デフォルトの名無しさん :03/06/11 22:49
なんでアセンブラのニーモニックのSHLを連呼してるのかと思ったがHLSLのことか

59 名前:デフォルトの名無しさん :03/06/11 23:12
  ∧⊂ヽ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (゚Д゚)ノ <  シェーダ
  | ⊃|   \__________
  |  |
  ⊂ノ〜
  ∪


60 名前:デフォルトの名無しさん :03/06/12 12:46
d3dx9d.dllを自作ゲームと一緒に配布したらまずいかな?
名前を変えればバレないかな?


VC++を買う踏ん切りがつかん、、、

61 名前:デフォルトの名無しさん :03/06/12 14:45
>>60
再配布パッケージを使いなよ

62 名前:デフォルトの名無しさん :03/06/12 15:35
デバッグ環境のDLLって再配布パッケージに入ってたっけ?
っていうか、なぜデバッグ環境のを配布せにゃならんのだろう。

63 名前:デフォルトの名無しさん :03/06/12 17:02
>>59
不覚にもワラタ

64 名前:デフォルトの名無しさん :03/06/12 22:49
directxを始めたばかりの初心者です。
directx9 sdkについているdirect graphicsのsampleを
実行すると一瞬だけウインドウが表示されてその後消えてしまいます。
何が原因なのかさっぱりわからずに困っています。
誰か教えてもらえないでしょうか?


65 名前:デフォルトの名無しさん :03/06/12 23:00
自分でコンパイルしてデバッグ環境でどこで落ちてるのか調べてみては?
そのくらいの情報量じゃ、当人でない人から見たらお手上げだよ。

66 名前:デフォルトの名無しさん :03/06/13 09:26
>>64
65に同意。
ただ「消えます」って言われてもねぇ。

67 名前:デフォルトの名無しさん :03/06/13 10:59
DirectX9でポイントのサイズを変えて描画しようとして、
DWORD m_Pointsize = 4;
hr = m_pd3dDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_POINT)
hr = m_pd3dDevice->SetRenderState( D3DRS_POINTSIZE, *(DWORD*)&m_Pointsize);
として描画しようとすると、描画時に
Direct3D9: (INFO) :Result of drawing primitives with D3DFILL_POINT fill mode
and point size not equal 1.0f could be different on different devices
と出ます。
REFの場合、正しく描画されますが、HALの場合は1ポイントで頂点が描画されます。
HAL時にD3DCAPS9.MaxPointSizeを調べ、64でしたので、HALの制限ではないと思います。
「ポイントサイズが1じゃないと、他のデバイス上で描画結果が異なるかも」
というのは分かったので、この情報がもうでないようにする方法と、
HALで正しく表示させる方法に、心当たりがあれば教えてください。

68 名前:デフォルトの名無しさん :03/06/13 13:19
>>67
DWORD じゃなく float でサイズ指定しないとまずいのでは?


69 名前:67 :03/06/13 14:04
試しに、
hr = m_pd3dDevice->SetRenderState( D3DRS_POINTSIZE, *(FLOAT*)&m_Pointsize);
と、やってみましたが、だめでした。

また、ヘルプに
「Direct3DDevice9::SetRenderState メソッドは DWORD 値を使うため、
次のコードに示すように、アプリケーションでは値を格納した変数を
キャストしなければならない。
pDevice9->SetRenderState(D3DRS_POINTSIZE, *((DWORD*)&PointSize));」
と書いてるので、ここが原因ではないと思います。

70 名前:デフォルトの名無しさん :03/06/13 15:28
>>67
D3DFVF_PSIZE あたりが臭いような。
何の根拠もないけど……w

71 名前:54 :03/06/13 15:34
>>55
いや、Mikotoもどきを作ろうとしているんだよ。
それに動的なボーンの追加、変更とかをやりたいんだ。

LightWaveは高いって。
MikotoがXファイルに出力してくれれはいいんだが。

72 名前:デフォルトの名無しさん :03/06/13 15:58
>>69
SetRenderStateのプロトタイプの型がDWORDだからfloatで直接渡せないので
型を騙してコンパイルを通すようにしているだけ
float値が必要なのにDWORDの値を送ったら正常に動かないのは当たり前
少しは考えろ

73 名前:デフォルトの名無しさん :03/06/13 16:08
>>67
んー、それは要するにハードウェアが対応してないってことでは?(w
MAXPOINTSIZEって、もしかするとポイントスプライトの時専用だったりするとか、
そういうことはないかね。

>>68
そのままだとDWORDに暗黙変換されるから、ああやってメモリイメージ渡すのよ。

>>71
自力で頂点重み付けをしたいと。。。
ぶっちゃけその辺のサンプルは見たことがないっす。
しらみつぶしに頂点に最も近いボーンに関連付けさせるしかないんでは…
もちろん、二つのボーンに影響しそうな部分は適当にブレンドして。
Gemsにスキニングの話があったような気がしないでもないなぁ…。

74 名前:デフォルトの名無しさん :03/06/13 16:09
>>72
いや、だから本人はそうやっていたんでは?
68が言ってるからわざわざ試しただけで。

75 名前:デフォルトの名無しさん :03/06/13 16:11
なんか最近あちこちで句点が使えない攻撃的なヤツを見かけるが、気のせいか。

76 名前:デフォルトの名無しさん :03/06/13 16:24
>>74
書いてあることを考えようともしていないだろう
それとも説明されても分からないほど馬鹿なのか?
floatの構造を持つデータをDWORD型と騙してプロトタイプを回避するように、
ヘルプにも書いてあるだろ

>>68が言っていることを試したって、やっていることを全然はき違えている
>>67の段階で
>DWORD m_Pointsize = 4;
何故この程度の間違いに気が付かない?

77 名前:69 :03/06/13 16:24
一応、
floatm_Pointsize;
hr = m_pd3dDevice->SetRenderState( D3DRS_POINTSIZE, *(DWORD*)&m_Pointsize);

floatm_Pointsize;
hr = m_pd3dDevice->SetRenderState( D3DRS_POINTSIZE, *(float*)&m_Pointsize);

DWORDm_Pointsize;
hr = m_pd3dDevice->SetRenderState( D3DRS_POINTSIZE, *(DWORD*)&m_Pointsize);
は試しました。
だめだったけど。

78 名前:デフォルトの名無しさん :03/06/13 16:57
DirectX9のDirect3Dで2Dアプリケーションを作ろうとしています。
FAQのような気がしますが、答えを見つけられなかったので質問させて下さい。

画面サイズは640x480を考えています。

以前は、テクスチャサイズが2のn乗でなければならないという制限があったと
思うのですけれど、試してみたところ640x480のテクスチャでも表示できてい
ます。(DrawPrimitiveでテクスチャを描画しています。)

DirectXが新しくなって、テクスチャのサイズの制限がなくなったのではと少
し期待しているのですが、これは、たまたま私のビデオカードで表示できてい
るだけで、ビデオカードによっては表示されない場合があるのでしょうか?

以前のDirectXのマニュアルには「テクスチャサイズは2のn乗にしろ」という
ような記述があったような気がするのですが、DirectX9のマニュアルでは見つ
けられません。


79 名前:68 :03/06/13 16:58
>>77
正しいのは一番上のやつです。
>DWORD m_Pointsize = 4;
だけ見て書き込んじゃったけど
エラーメッセージ見てみたら D3DFILL_POINT がまずいんじゃない?
D3DFILL_SOLID でやってみるといいかも。


80 名前:デフォルトの名無しさん :03/06/13 17:01
68が指摘してたのは変数宣言のほうだったのな。
申し訳ないが適当にソースを読んでたのが悪かった。
だからってなんでそーいう攻撃的な発言するんだ。
正しいこと言っててもそれじゃ敵を作るだけだ。

>>77
floatで宣言した変数をDWORDに代入すると暗黙の変換が起こるだろ?
ソレを避けるためにFLOATのメモリイメージを77の一番上の方法で渡すの。

>>78
nVidiaの一部のドライバが2^nじゃないテクスチャにも対応していたらしい。
やっぱり2^n制限はあるから2^nで作るとよいです。

81 名前:デフォルトの名無しさん :03/06/13 18:28
>>76は、なぜそんなに必死なんだ。



会社や学校で嫌われていないかい?

82 名前:デフォルトの名無しさん :03/06/13 19:49
>>78
D3DPTEXTURECAPS_NONPOW2CONDITIONALでヘルプを検索。

83 名前:デフォルトの名無しさん :03/06/13 21:00
>>75
2ch中毒、疑心暗鬼
>>81
不毛

84 名前:デフォルトの名無しさん :03/06/13 22:21
香ばしい人がいるな

85 名前:78 :03/06/13 22:32
>>80
>>82

ありがとうございました。モヤモヤしていたのがクリアになりました。

うちは、ATI RADEON9000なのですが、DirectX Caps Viewerで見ると、
確かに D3DPTEXTURECAPS_NONPOW2CONDITIONAL がついていました。

やはりテクスチャを分割して組み合わせないといけないということですね。こ
ういう場合、皆さんはあらかじめグラフィックファイルを256x256などに分割
したりしているのでしょうか?それとも、ファイルを読み込んでから、分割し
てテクスチャにコピーしているのでしょうか?

D3DXCreateTexture系の関数で手抜きをするとなると、後者は難しそうですね。
この辺をうまくラップしてくれるようなスプライトライブラリは公開されてい
ないですかねぇ。なければ自分で作るしかないですが。


86 名前:デフォルトの名無しさん :03/06/14 01:47
D3DXCreateTextureは拡大させずにピクセルをそのまま読み込めるはず。
拡大フィルタだったかなんだったか忘れたが、その辺の設定をするべし。

分割して組み合わせってのは、テクスチャメモリを効率よくさせたいということかね?
それは普通はめんどくさいから、画面サイズより大きなテクスチャを確保する。
例えば640*480の画面に一枚絵を張りたいなら1024*512のテクスチャを用意。
流石に256*256が限界なVGAは無視してもかまわんと思う。
そのようなVGAはちょっと古すぎだし、3Dのサポートもままならん。

87 名前:78 :03/06/14 06:01
>>86
D3DCreateTexture*Ex()で、Width,Heightを1024,512にして、Filterを
D3DX_FILTER_NONEにして、テクスチャ座標を
(0., 0.)-(640./1024., 480./512)にして期待通りに動きました。

これでずいぶん楽になります。
あとで、他のビデオカードでもうまくいくか、試してみます。

テクスチャ座標の誤差が出て、ピクセルが欠けたりしないかちょっと心配して
しまいますが、3DのAPIっていうのはこういうものなのでしょうね。

基本的な質問に、重ね重ねありがとうございました。


88 名前:86 :03/06/14 09:50
ああ、テクスチャ座標とピクセル座標の関係だが、ヘルプに出ているよ。
ピクセルは点のように思えがちだが、面積を持つ正方形ということらしい。
だから640*480の画面のスクリーン座標は(-0.5,-0.5)-(639.5,639.5)になる。

89 名前:86 :03/06/14 09:58
ぶっ
(-0.5,-0.5)-(639.5,479.5)だぜ
鬱死

90 名前:デフォルトの名無しさん :03/06/14 10:32
(・∀・)イイヨーイイヨー

91 名前:デフォルトの名無しさん :03/06/14 10:41
n/1024とかn/512とかは浮動小数では有限小数になるので、
あとはグラフィックプロセッサがどうラスタライズしてるかですな。

>>89のようにちゃんと座標合わせてフィルタ切っておけば
まず100%正確な描画は保証されると思う。
バイリニアでもたしか各ピクセル±1〜2くらい誤差が出たと思ったけど、
見た目で分かるほどではない。

92 名前:デフォルトの名無しさん :03/06/16 03:14
DirectX Texture Toolを使おうとしたら
「This program uses the reference rendering device.
Your computer has a reduced-functionality reference device installed.
You can still use this program to manipulate textures, but the textures will not be visible in this program.
Install the DirectX SDK to install the reference device.」
というコメントが出ます。翻訳したところ、
「テメーの状態では全ての機能が使えない。SDK入れろ」と言われているようです。
DirectXSDK8.1bを入れているのですが、まだ何か足りないのでしょうか?

93 名前:デフォルトの名無しさん :03/06/16 04:30
いままで OpenGL でプログラムを書いていましたが、DirectX9も勉強してみたくなり、
OpenGLのプログラムをDirectX9に移植しています。

作業はおおむね順調で、大部分はすんなり移植できたのですが、
2つほど問題にぶつかってしまいました。

1. DrawPrimitiveで D3DPT_LINESTRIP をかくときに、 線種/線幅は
どうやって指定するのでしょうか? 線種に関しては、DirectXのヘッダをのぞくと
D3DLINEPATTERN なんてのがあってそれっぽいことができそうなのですが・・・
線幅はまったく情報がつかめませんでした。

2. テクスチャに関しても DrawPrimitiveUP のように メインメモリのデータを
直接テクスチャとして貼り付けることはできないのでしょうか?
現在は pTex->GetSurfaceLevel()で取り出したサーフェスに対して
D3DXLoadSurfaceFromMemory() を呼び出していますが、
OpenGLに比べてだいぶ遅くなってしまいました。
(OpenGLで glBindTextureを毎回呼び出したときぐらい遅い)

開発環境は VC++です。以上、よろしかったらご教授お願いいたしますです。


94 名前:デフォルトの名無しさん :03/06/16 07:47
1→ID3DXLineでヘルプを検索。

2→CreateTextureでD3DUSAGE_DYNAMICを指定すると、動的テクスチャを作ることができます。
ただ、D3DPOOL_DEFAULTなんかと一緒に指定しなきゃいけなかったり制約があるので、
その辺はヘルプを参考にしてくらはい。

95 名前:デフォルトの名無しさん :03/06/16 07:47
>>91
ピクセルが欠けたりはしないけど、色が微妙に変わってしまうことがあるから
100%正確ではないな。32bitカラーでRGB値が1小さくなったりする。(GeForce)

>>93
Direct3Dでは線種/線幅の変更は不可能。
線種はテクスチャで、線幅はポリゴン化して自分で処理する必要有り。
DX9ならID3DXLineがやってくれるから、そっちを利用するのがいいかと。

それと、メインメモリのデータをテクスチャとして貼ることもできない。
必要なら毎回転送しないと駄目。
D3DXLoadSurfaceFromMemoryはピクセルフォーマットの変換をしながら
1ピクセルずつCPUが更新していくから、フォーマットの変換がいらない
場合はUpdateTextureかUpdateSurfaceで転送した方がいい。
(メインメモリ側のバッファもTextureやSurfaceにする必要有り)
頻繁に更新するテクスチャはD3DUSAGE_DYNAMICを指定するのも忘れずに。

96 名前:93 :03/06/17 01:54
情報ありがとうございます。おかげさまで助かりました。

まだ触り始めて1週間ぐらいの感想ですが、
OpenGL も DirectX も一長一短がありますね。
でも、DirectX の方がローレベルなところまで細かく制御できて
面白いです。

ちなみに、その他のOpenGLオンリーの便利機能は
・セレクション/フィードバック
・ディスプレイリスト
あたりかと思ってますが、あってますかね?(DirectXにももしかしたらあります?)
本当にセレクションがないとしたらちょっと残念。


97 名前:デフォルトの名無しさん :03/06/17 07:41
昔のDirect3Dには似たような物はあったが、今は自分で実装しろって
ことになってる。

98 名前:デフォルトの名無しさん :03/06/18 01:50
最近のDirectX9とかは昔に比べると鬱ではないですか?

99 名前:デフォルトの名無しさん :03/06/18 02:02
DirectX8以降のDirectX Graphicsはいいね。

100 名前:工房って高校生? :03/06/18 04:43
昔かどうかは分りませんが、手元にある3Dグラフィックスの本にある
3Dモデルを空間内で座標変換しビュウ画面にスキャンラスタライズして描画する部分の説明を読んでると
座標変換やシェーディングしたojbectのピクセル単位の描画などは、
とても簡単に実装できるようになってると思います。

DirectDrawとの比較は分りません。8.1からのヒヨッコ世代ですので。


101 名前:デフォルトの名無しさん :03/06/19 01:05
DirectXのビルド番号とバージョン番号の対応表みたいなの
持ってる人とかURL知ってる人とかいたら教えてくれませんか?
おながいします。

102 名前:デフォルトの名無しさん :03/06/19 01:25
>>99
俺は7までしか使ったことないけどそんなにいいの?
簡単になったとか?


103 名前:デフォルトの名無しさん :03/06/19 07:30
俺は別によくなったとは思わないがな。
かゆいところに手が届かなくなって、大雑把になってしまった。
例えばプライマリサーフェスに直接描画なんてできなくなった。
初期化関係はCheck系のメソッドが出来たおかげで、ある程度限定した
用途ならEnum系を使わなくても済むようになって楽にはなったけど。
でも、初期化なんて1回書いたら終わりだし。

104 名前:デフォルトの名無しさん :03/06/19 11:46
>例えばプライマリサーフェスに直接描画なんてできなくなった。
7以前でもバックバッファに書くものだと思うんだけど、何故プライマリ?

105 名前:デフォルトの名無しさん :03/06/19 18:15
キャラクタに表情をつけるには、表情のモデルデータを表情の種類だけいくつか作って普通にブレンドすればいいんですか?

106 名前:デフォルトの名無しさん :03/06/19 18:20
工房頑張れ。
俺も工房だが。

107 名前:デフォルトの名無しさん :03/06/19 23:25
>>104
たまにはプライマリに描画したくなることもあるんだよ。
普通に必要だったら、使えなくなってたらかゆいところどころの話じゃない。

108 名前:デフォルトの名無しさん :03/06/20 00:20
次期WindowsではGUIからすべてがバックバッファに描画されるというのに、
いつまでフロントバッファ直描きにこだわってますか。

109 名前:デフォルトの名無しさん :03/06/20 01:32
たんに一例として出しただけで、こだわってるわけじゃないけど?

110 名前:デフォルトの名無しさん :03/06/20 05:16
プライマリって・・・。
使わないものを比較に出されても困る・・

111 名前:デフォルトの名無しさん :03/06/20 13:40
ぶっちゃけ、必要ないじゃん。ねえ?

112 名前:デフォルトの名無しさん :03/06/20 17:01
時代はオールバックに向かっているんだよ。
ポマードはたっぷりつけるんだ。

113 名前:デフォルトの名無しさん :03/06/21 05:27
DirectX8で質問です。
マルチテクスチャに対応していないビデオカードで
マルチテクスチャを表示しようとすると、
動かない、表示しない、のどちらになるんでしょうか?
SetVertexShaderの時点で止まりますか?

114 名前:デフォルトの名無しさん :03/06/21 07:46
どうなるのか自分で試してみたら?

115 名前:デフォルトの名無しさん :03/06/21 09:48
表示しない

116 名前:デフォルトの名無しさん :03/06/22 04:35
DirectX8で、今までテクスチャの読み込みにD3DX使っていたんですが、
自前でやろうとした所、LockRectがどうしても失敗してしまいます。

POOL_DEFAULTは駄目だそうなので、POOL_MANAGEDにもしました。

何か心当たりのある方いらっしゃいますでしょか。

117 名前:デフォルトの名無しさん :03/06/22 05:10
DirectX8、DirectShowを使ってMP3を鳴らしているのですが、
一度でも音を鳴らした後に終了すると以下のエラーがでます。
(無音のまま終わらせるとでない)

ASSERT Failed

g_cFGObject == 0
At line 5868 of d:builds\nt32_chk\multimedia\dshow\filters\core\filgraph\filgraph\filgraph.cpp

このg_cFGObject == 0って何でしょうか?



118 名前:デフォルトの名無しさん :03/06/22 07:58
ソース見たら?

119 名前:デフォルトの名無しさん :03/06/22 12:21
>>118
初歩的な質問かもしれませんが、
DirectShowのソースってどうやって見るのでしょうか?
(libの中のソース?)

120 名前:デフォルトの名無しさん :03/06/22 16:43
FGObject・・・filgraphObjectじゃないの?
それが0ということは作成されてないとか?
あるいはオブジェクトが削除されたということか?

121 名前:デフォルトの名無しさん :03/06/22 21:36
>>120
分かりました。
どうもCoCreateInstanceを2度やっていたのがまずかったようです。
空のIGraphBuilderが生成されちゃってたという事でしょうか。
お騒がせしました。

122 名前:デフォルトの名無しさん :03/06/23 05:00
D3Dのライト有効にしたらポリゴンが全て真っ黒になってしまいますた。
どうやれば直りますかね?

123 名前:デフォルトの名無しさん :03/06/23 06:23
>>122
だからライトを無効にすればいいだろうがボケ

124 名前:デフォルトの名無しさん :03/06/23 22:28
>>122
法線が明後日の方向むいてんじゃないの?

125 名前:デフォルトの名無しさん :03/06/24 00:49
ライティングを有効にしたにもかかわらず、ライトを配置していないとか

126 名前:デフォルトの名無しさん :03/06/24 04:37
最近、固定機能のライティングとか設定がめんどくさいから、
シェーダで書いたほうが直感的で分かりやすいとか思うようになってきた
フォンシェーディングとかも出来るし

127 名前:デフォルトの名無しさん :03/06/26 07:48
DirextX8でフルスクリーンモード時にWindowsのメニューを表示したいのですが、
Present()すると、メニューが上書きされてしまいます。
DirectDraw時代のClipperみたいなものはないのでしょうか?

D3DPRESENT_PARAMETERSのSwapEffectは、D3DSWAPEFFECT_COPYを使っています。

皆さんどうされているのでしょうか?
また、参考になるWebページなどをご存知でしたら教えて頂けませんか?


128 名前:デフォルトの名無しさん :03/06/26 19:42
error C2146: 構文エラー : ';' が、識別子 'DXGetErrorString9A' の前に必要です。

#include <dxerr9.h>
でインクルードして、
DXTRACE_MSG( "メインウインドウ作成に失敗" );
のように使っています。

c:\dxsdk\include\dxerr9.h(26)の
// Return: Converted string
//
const char* WINAPI DXGetErrorString9A(HRESULT hr);  ←ここにカーソルが来る
const WCHAR* WINAPI DXGetErrorString9W(HRESULT hr);

C++で使っているせいかなぁと思うのですが、原因は何なんでしょうか?

129 名前:デフォルトの名無しさん :03/06/26 19:42
あ、DirectX9です

130 名前:デフォルトの名無しさん :03/06/26 19:49
■■■かわいそうな「ゲーム君」を2ちゃんの力でトップにしよう!■■■

HSPプログラムコンテスト2003オンライン投票
http://www.onionsoft.net/hsp/contest2003/entryn1.html

HSPプログラムコンテスト2003に一番乗りで出展したものの              
Windowsに標準でついてくるゲームを手軽に起動できるという(というかただのショートカットつめあわせ)
しょーもないプログラムでたたかれまくっているプログラミング暦3年(!)の高校生の
作品、ゲーム君をみんなの力で一位にしよう。
【【【 投票方法 】】】
http://www.onionsoft.net/hsp/contest2003/entryn1.html の一番下、エントリーNo8の「ゲーム君」
評価を「A」で選んでコメントを記入して「送信」(コメントいれるとなおよし)           
http://www.onionsoft.net/hsp/contest2003/eval/eval.cgi?md=cmt&id=8
でいままで送信されたコメントが見えるよ!(けっこう笑える)    
順位 http://www.onionsoft.net/hsp/contest2003/eval/eval.cgi

131 名前:デフォルトの名無しさん :03/06/26 20:19
D3DXって、レイと球・ボックスの交差はあるくせに球・球の交差とかボックス・球の交差はないんだね。

132 名前:デフォルトの名無しさん :03/06/26 20:28
>>131
レイトレっぽいのに使ってね、って意図だからじゃない?
ちなみに速度と角速度をパラメーターにもつ
楕円体と平面の交差判定は14次元の多項式になる。
こんなもん自分でなんて作ってられないよね。
Direct3Dとは別に、本格的な汎用ゲームAPIが欲しい。
BPSとかでゲームシーンを簡単に構築出来るやつが。


133 名前:デフォルトの名無しさん :03/06/26 20:36
>>126
同意。
PixelShader1xは、まだ制限がきつくて別の意味で難しいけど
2x以上なら格段に楽になる。
ステートの方は直感的じゃなくて、覚えるのが苦痛。

134 名前:デフォルトの名無しさん :03/06/26 20:45
>>131
球と球の交差だけは勘弁してくれ。
ヘルパー関数無しでも流石にできるだろう(w

135 名前:デフォルトの名無しさん :03/06/26 20:47
>>134
うんできるよ。でもあったらいちいち新しい関数書かなくていいから便利だし。

136 名前:132 :03/06/26 20:56
BPSじゃなくてBSPでした。失礼。

137 名前:デフォルトの名無しさん :03/06/26 21:02
D3DXの関数といえばD3DXCreateTeapotのヤケクソっぷりに笑った。

138 名前:デフォルトの名無しさん :03/06/26 21:16
でも3Dオブジェクト同士の当たり判定となると
まさかID3DXMesh同士でやるわけにもいかないし
それようの新たなオブジェクトが必要になるよね。
やっぱりそれぐらいが3DAPIの限界かもね。
でもそれをやってくれたら、世界が広がるっつーか
敷居がもう一段低くなるのにな。

139 名前:デフォルトの名無しさん :03/06/26 21:42
鼻くそほじっているだけで全部やってくれたら、世界が広がるっつーか
敷居がもう一段低くなるのにな。

140 名前:デフォルトの名無しさん :03/06/26 22:12
>>139
ありがちな返答だな。
こういう文句は全部やった上での
感想みたいなもんだよ。
まさか昨今のゲームや3Dアプリレベルの代物が
個人がゼロから作れるなんて思ってやしないだろ?
いったいどれだけの労力がかかるか。
それらを作るのに時間を浪費した
その見返りに金でももらえるんなら喜んでやるさ。
妄想なんて語らんよ。

141 名前:デフォルトの名無しさん :03/06/26 22:22
>>139
あと敷居は低ければ低いほど良い。
これは俺の持論。
君みたいな人は気に入らないんだろう。
自分が今まで積み上げてきた、言わば自分の特技
アイデンティティ的ものが、ぽっと出の奴等に
APIコール1つで実現されちゃたまらんわな。

142 名前:デフォルトの名無しさん :03/06/26 22:36
何を主張してるんだかサッパリ分からん

143 名前:デフォルトの名無しさん :03/06/26 23:08
つーか既存でも自作でも
処理を理解しないで関数呼んでじゃロクな実装にならんだろ。
多分、思うような実装にならずD3DXは使えんとか言い出すのがオチ。

そもそも誰でも共通で使える処理なんて基本の処理だけで
それ以上は、自分で必要な処理を加えて自分なりの処理になるもんだ。
関数クレクレ房は、自分が実装できずにいる能力の無さを棚にあげて何を言ってるのやら。

144 名前:デフォルトの名無しさん :03/06/26 23:28
>>143
>共通で使える処理なんて基本の処理
だからこの部分を定式化してあればラクだなと。
俺が指しているのは最初から最後までこの部分だよ。
結局は誰が作っても各オブジェクトが区分木に分割されて
保持され、バウンディングボックスで衝突判定されて
ビューボリュームでカリングされるエンジンになるんなら
最初から作ってあった方がラクじゃない?
勘違いしないんで欲しいんだけど、「能力」じゃなくて「労力」
確かに能力はないけど、能力がないからクレクレ言ってる訳じゃない。
労力がないから言ってるの。
君のような意見の方はザラにいるけど、逆に実際に取り組んだことがあるのかと
勘ぐってしまうよ。

145 名前:デフォルトの名無しさん :03/06/26 23:46
MSがHavokのライセンスを買って、D3DXにでも組み込んでくれないかのぉ。

146 名前:デフォルトの名無しさん :03/06/27 00:11
クレクレで貰ったとして、自分なりに組み込めたのならそれでいいと思う

147 名前:デフォルトの名無しさん :03/06/27 00:12
あー、どっちの話も理解できるけどな。

ま、プログラミングするならとりあえず末端まで理解しとけってのは正論だが、
すべてのことに首を突っ込み、あまつさえ自分でコードを書きたがるようなヤツは、
これからはフェードアウト組確定だろうよ。

何かオンリーワンの技術を持つでもなく、
ありものを組み合わせて優れたソリューションを提示できるでもなく、
車輪の再発明に無駄なコストをつぎ込んでるだけなんだから。

148 名前:デフォルトの名無しさん :03/06/27 00:14
ゲームの世界もやっと一般系のようになってきたってことかな。

149 名前:デフォルトの名無しさん :03/06/27 05:04
一度でも実装やコード書いたなら、自分のリソースとして持ってるか
DirectXで提供されてるかの違いだけだろ。
マジで、クレクレ房はプロジェクト毎にコピる事すら出来ないのか?
労力やありの物なんて言って奴は、絶対に実装出来てない&理解出来てない奴だろ?
一応さ、DX8の頃の3D系算術処理や物理処理は自分(あま、会社か)のPS2用のをC++に直して使ってるよ。
関数のヘルプ見て、関数呼び出すのとなんら手間なんて変わりませんでしたが?
(むしろヘルプ見たりヘルプで調べたりが無い分、手間はかかってないかと)
DX9では、まんま使いまわしだしさ…(シェーダーの部分を少しイジッた程度)

出来る&理解してるが、関数欲しいって言って奴は
マジでソースの資産化が出来てないのか、嘘付いて出来てない&理解してないんか?
と勘ぐってしまうよ。

150 名前:デフォルトの名無しさん :03/06/27 05:18
>確かに能力はないけど、能力がないからクレクレ言ってる訳じゃない。
>労力がないから言ってるの。

一応、日本語の突っ込みを入れると
能力がないんなら、それが労力がない原因だと思うよ…
…その意見や考えで仕事をする奴を、俗に使えない奴って…

151 名前:デフォルトの名無しさん :03/06/27 06:37
プログラムを放棄してるゲームツクール化房のなんと多いことか‥‥

152 名前:デフォルトの名無しさん :03/06/27 07:58
>>140
>まさか昨今のゲームや3Dアプリレベルの代物が
>個人がゼロから作れるなんて思ってやしないだろ?

モデルやモーション、テクスチャやグラフィックが大変なのであって
貴方の求める機能の部分は用意されていても、無くても開発スピードになんら影響しないよ。
理解出来なくて組めなくて、お勉強に時間がかかるから用意して欲しいんじゃないの?
本当に全部やったのかな?
自分の能力の無さ、理解力の無さを棚に上げるようにしか聞えんよ。

153 名前:デフォルトの名無しさん :03/06/27 09:18
だから俺は鼻くそをほじるから、だれかやっといてくれよ

154 名前:デフォルトの名無しさん :03/06/27 11:25
だから何をそんなに必死なのか分からん。
お互い電柱を相手にファイティングポーズ取ってるように見える。

155 名前:デフォルトの名無しさん :03/06/27 11:45
> 出来る&理解してるが、関数欲しいって言って奴は
> マジでソースの資産化が出来てないのか、嘘付いて出来てない&理解してないんか?

理解度と、ありものを使うかどうかは別の問題だろう。
FFT理解してても、MP3とかOgg Vorbisとかを自分で作り直したりはせんのと同じで。

いや、意地でも再発明してるヤツもいるかも知れんが……。

156 名前:デフォルトの名無しさん :03/06/27 12:33
MP3やOgg Vorbisなんかはさすがにやらんけど、MD5とかだと再発明しちゃう罠。

157 名前:デフォルトの名無しさん :03/06/27 14:58
馬鹿じゃねーの。MP3なんて規格モンじゃん。
つまり、同じデータを複数が同じく処理できるようにあるものじゃん。
で、ゲームの処理なんてゲームごとに違うのに
クレクレの挙句、全てのゲームでまったく同じ処理をしてる如くの発言。
最適化や独自データ形式なんて縁がない人なのか?


モデルもXFileじゃないと描画出来ないとか、Xfileに変換するプラグインとか
言っちゃうレベルの奴だったりして…

158 名前:デフォルトの名無しさん :03/06/27 15:24
>>157
だからキミが誰を叩いてるのかわかんねーよ。

159 名前:デフォルトの名無しさん :03/06/27 16:29
>で、ゲームの処理なんてゲームごとに違うのに

いかにも古い世代の思い込みだね。
テレビゲームごときに一体どれほどの処理の幅があると言うんだい。
そりゃゲームそのもののロジックは個々に違うが、
他は今のハード性能をもってすれば容易に共通化・汎用化できるものばかりだろ。

こういう極めて高度な汎用エンジンが出てくる情勢について、何か思うところはないのか?
ttp://www.4gamer.net/specials/gdc24/cry.html
それとも、居場所がなくなる危機感を抱いてるからこそヒステリックに否定するのか。

というかスレ違い気味だが。続きはこの辺でどうかね。
ttp://bbs.gamdev.org/test/read.cgi/gamedev/1054235183/

160 名前:デフォルトの名無しさん :03/06/27 16:57
>こういう極めて高度な汎用エンジンが出てくる情勢について、何か思うところはないのか?

無料配布のDirectXとミドルウェアを比べている時点で理解してないだろ。
例えるなら、本屋のレジ横にある無料の冊子に
3Dの数学と物理の処理が全て記述してあるのが当然のような発想だ。

161 名前:デフォルトの名無しさん :03/06/27 17:26
>>159
ゲームだからこそ共通には出来ないんだが
たしかにQuake系なんかのシステムは売られていて共通化できる
しかし似たり寄ったりのゲームになってしまって飽きられる
そしてツクール系と同じ現象が起こることになる
似せないように作ろうと、用意されているものの範疇をこえれば、
結局自分で何かしらを作らなければならない

162 名前:デフォルトの名無しさん :03/06/27 17:53
>>161
CRYエンジンは、今までのQuake系とかツクール系のような
応用範囲が限られるエンジンじゃないから騒がれているのでは。

この3次元世界の事象をあらかた網羅されて、それを自在に扱えるとなれば
描画系や力学系にはもう仕事残ってないじゃん。

163 名前:デフォルトの名無しさん :03/06/27 17:58
>>138
SOLIDとかOPCODEとか使ったら?

164 名前:デフォルトの名無しさん :03/06/27 19:41
俺もヘタレなのでOPCODE使ってる。速いんだもん。

165 名前:デフォルトの名無しさん :03/06/28 03:53
あー勘違いしてる人が多いかも。
そのCRYエンジンとやらを導入すれば、
物理計算や描画全て上手く行くとでも思っているのかな。
そんなのMAYA導入してCG制作は何でも出来るとか言ってるのと同じ位勘違い。
MAYAならデザイナが、そのエンジンならプログラマ?(オペレーター)が使いこなせないと意味がないでしょ。
でだ、3Dの数学的意味や物理の意味を知らずに使いこなせる訳が無いでしょ。
マニュアルも理解出来ずに宝の持腐れがオチ。

166 名前:デフォルトの名無しさん :03/06/28 09:52
まあDirect3D自体が数学的な知識なけりゃどーにもならんな
知らなかったらその辺の入門書にありそうなメッシュの表示程度しかできないし

167 名前:デフォルトの名無しさん :03/06/28 11:11
質問です。
DirectShowを使っていろいろなファイルを再生しています。
ファイルとしてならば再生できるのですが、次に、
データとして再生をしてみたいと思うのですが、そんなことができるのでしょうか?

たとえば一つのファイルの中に五個のデータが以下のように
連結されているとします。

|----------------|-------------|------------------|-----------|

一つのファイルとして一つのデータならば通常通りにすればよいのですが、
連結されたファイルの中で、ある一定の点から一定の点までを指定して
再生してみたいというわけです。よろしくお願いします。
とりあえずヘルプは目を通したつもりです。
うまい具合にIMediaSeekingインターフェイスを使えば
できそうな気がしないでもないですが…。

168 名前:167 :03/06/28 11:14
図では四個しか書いてなかったです、鬱。

169 名前:デフォルトの名無しさん :03/06/28 11:27
>でだ、3Dの数学的意味や物理の意味を知らずに使いこなせる訳が無いでしょ。

そりゃそうだ。それについては誰も異議を唱えていないと思うが。

170 名前:デフォルトの名無しさん :03/06/28 11:31
>>165
こいつこそ何もわかってないだろ。どっからMAYAなんて言葉持ってきたか知らんがな。
いや、心当たりがあるが、あいつかな(ワラ こんなところまでご苦労さん 工房ちゃん

171 名前:デフォルトの名無しさん :03/06/28 12:26
DirextX8.0の日本語ドキュメントをダウンロードしたんですが、
exeファイルを実行しても「指定されたパスが見つかりません」とかいって
解凍できないんですよね・・・。どなたかお助けを。
それともWinXPではだめなんでしょうか。

172 名前:167 :03/06/28 12:30
>>171
そのメッセージボックスが開いている間に
C:\Document and Settings\<<UserName>>\Local Settings\Temp
の中に生成されるフォルダの中に入っていたりします。

173 名前:デフォルトの名無しさん :03/06/28 12:31
XPが駄目なのではありません
責任転嫁はいけません、>>171が駄目なのです

174 名前:デフォルトの名無しさん :03/06/28 12:37
>>172
あぁ!ありました。ありがとうございました。
なんかややこしいことになってるんですね。


175 名前:デフォルトの名無しさん :03/06/28 12:39
>>173
うっさいヨガ。
MSのサイトではXPはサポートされてないみたいに
書いてあんだよ。

176 名前:デフォルトの名無しさん :03/06/28 13:08
そもそもDirextX8.0ってなに?

177 名前:デフォルトの名無しさん :03/06/28 13:14
拡張されたDirectX8.0だろ。


178 名前:デフォルトの名無しさん :03/06/28 13:20
http://download.microsoft.com/download/win98/dx8Cdoc/8.0/W9X2KMe/JA/DX8JHelpC.exe
XPでも何の問題もなく展開できたけど?

179 名前:アンチパターン :03/06/28 13:39
ゲームの処理はゲームごとに違う!

こーゆー奴は時間ばっかり使ってボリュームやクオリティの全くないゲームを作る。
処理の一般化もヌルいから同じような処理を何個も書く。
バグが増えまくって手がつけられない。
設計能力が欠落していることが問題だと思われます。

180 名前:デフォルトの名無しさん :03/06/28 13:59

実例を挙げず具体性のない抽象的な言い方をする典型的な例
これを続けると、いつまで経っても収束しない無駄な議論になる

181 名前:デフォルトの名無しさん :03/06/28 16:08
>>180
実例なんか挙げたって馬鹿の180にわかるわけないだろ。
無駄なことさせんなよ。

182 名前:ちよ :03/06/28 16:08
http://kotarou.free-city.net/page002.html

183 名前:デフォルトの名無しさん :03/06/28 16:53
>>181
実例を挙げられるような経験が無いのは分かっているので、
無理に突っ張らなくてもいいよ

184 名前:181 :03/06/28 16:55
>>183
ごめんなさいすいませんでした。

185 名前:デフォルトの名無しさん :03/06/28 18:05
超初心者です。オブジェクトの移動に関して質問があります。
オブジェクトを、オブジェクトが向いている方向に移動させることができません。
DOOMみたいな一人称のゲームに良くある移動の仕方のこと(上キーで前進・左右キーで回転など)です。

D3DXMATRIXA16 temp;
if(前進)
{
MatrixTranslation*=*D3DXMatrixTranslation(&temp,0,0,1.0f);
}
if(後退)
{
MatrixTranslation*=*D3DXMatrixTranslation(&temp,0,0,-1.0f);
}
if(左へ回転)
{
MatrixRotation*=*D3DXMatrixRotationY(&temp,D3DXToRadian(-8));
}
if(右へ回転)
{
MatrixRotation*=*D3DXMatrixRotationY(&temp,D3DXToRadian(8));
}
D3DXMatrixIdentity(&Matrix);
Matrix*=MatrixScale;
Matrix*=MatrixRotation;
Matrix*=MatrixTranslation;
DX9.D3DDevice->SetTransform(D3DTS_WORLD,&Matrix);

だと、当然向いている方向へは進まずに、クルクル回りながら前後に行き来するだけです。
カメラの位置は考慮しないものとして、どうすれば上手くいくのでしょうか?


186 名前:デフォルトの名無しさん :03/06/28 18:08
適当だが
MatrixRotationとMatrixTranslationの掛ける順番変えてみたら?

187 名前:デフォルトの名無しさん :03/06/28 18:15
というよりも、行列で計算していたら無駄が多すぎなので、
座標と角度だけ別データを持って、移動量はsin,cosを乗算するだけで出る
最後に位置を行列に入れるだけ

188 名前:デフォルトの名無しさん :03/06/28 18:34
>>187
それってローカル座標を飛び回るときも役に立つのか?

189 名前:デフォルトの名無しさん :03/06/28 18:37
立つよ

190 名前:デフォルトの名無しさん :03/06/28 18:40
普通ベクトルで座標&スケーリング、クオータニオンで回転を保持して
描画直前にくっつけるんじゃないか?

191 名前:188 :03/06/28 18:50
>>190
だからさ、直進してるリフトから回転してるリフトへ飛び移るところとか
想像してよ。

192 名前:デフォルトの名無しさん :03/06/28 18:52
>>191
別に、何か不都合が?

193 名前:デフォルトの名無しさん :03/06/28 18:55
>>192
ローカル座標からローカル座標に変換しなくちゃいけないじゃん。
めんどいじゃん。
足場が回転してたらのってるやつも回転やん。
めんどいじゃん。

194 名前:185 :03/06/28 20:00
レスありがとうございます。

>MatrixRotationとMatrixTranslationの掛ける順番変えてみたら?
それだと、ローカルの中心ではなく、親オブジェクトの中心(デフォルトだと画面の中心)を回転軸として回ってしまいます。(蚊取り線香みたく)

>座標と角度だけ別データを持って、移動量はsin,cosを乗算するだけで出る
これは、できます。
自分としては行列を使った方がスマートに見えるのですが・・・。
行列よりもsin・cosの方が一般的なのでしょうか?


195 名前:デフォルトの名無しさん :03/06/28 20:02
計算量が全然違う

196 名前:デフォルトの名無しさん :03/06/28 23:08
>>195
>>188
以降ループ

197 名前:デフォルトの名無しさん :03/06/29 03:02
プロのプログラマーは何ていうの。

198 名前:デフォルトの名無しさん :03/06/29 05:24
prostitute?

199 名前:デフォルトの名無しさん :03/06/29 14:04
D3DXはInverseTranspose(逆転置)やMatrixMuliplyRotation(回転させる)など頻繁に使う
算術関数のラッパーをもっと強化してほしい。
いちいちラッパー作るの面倒だよ。
どうでもいい?
そうかなぁ。
ところでみんな算術ライブラリって自分でつくっちゃうの?
それともあるもの使う?

200 名前:デフォルトの名無しさん :03/06/29 18:51
>>199
その発想の根本はプログラマに向いてない事につながってる様な気が…
ラッパー程度で面相なら、プログラム組むの面相、コード書くのも面相。
最終的に、じゃ、人様が作った物を使おう。
それって、アプリのユーザーと何ら変わらないかと。

算術ライブラリについては、手間と思うのは数的処理を理解してないからでは?
別に必要な時に無ければ、その場でちゃっちゃと関数作って感じで
自分のライブラリに足してけば、苦もなく充実して行って
気が付けば、別にD3DXに有ろうが無かろうがって物だね。

処理や数的理解がなく、調べたりして組むのが時間かかるから
面倒とか手間なんて思うんじゃないの?
たかが数分の作業じゃん。この程度が手間ならコード書くのも手間ってレベルでしょ。
プログラマじゃないよ。

201 名前:デフォルトの名無しさん :03/06/29 20:04
>>200
経験だけど一番楽なのがプログラムを自分色に染めてしまうのが一番楽。
つまり、他で用意されているラッパーを一切使わずに
自分のやり方で自分用にカスタマイズしてしまうこと。
それってカスタマイズが気が付いたとき程度でいいなら楽だけど
プロジェクトがでかくなるとみんながみんな自分のやり方で操作をしてたら
同じ操作を違う方法で実装する人間が出てくる。
だから同じ操作で千差万別のバグを生んでしまうことがある。
ラッパーははじめにすべてそろっていないと意味がない。
これがDirectXレベルでそろってると楽じゃない?

202 名前:デフォルトの名無しさん :03/06/29 20:13
>>クソグラマ

203 名前:デフォルトの名無しさん :03/06/29 20:17
人に聞くのが一番。
自分で考えるのは良くない。そんなことしてると
偉くなれないぞ。

204 名前:デフォルトの名無しさん :03/06/29 20:58
技術者なら聞く前に調べろってあれ絶対嘘だよな
教えたくないヤツを断る方便
えらい人はみんな人に聞いて覚えたっていってるぞ

205 名前:デフォルトの名無しさん :03/06/29 21:13
えらいヒトって、やねうらおとか?

206 名前:デフォルトの名無しさん :03/06/29 21:14
>>200
一人で組んでるときは気にならないところかもしれないけど、
複数で組んでるときは気付いたら実装じゃ遅いんだよね。
でもって、いまのプロジェクト、なんか算術関数気色悪い感じでできてるし。
で、作った本人、マニュアルも書く気ないみたいだし、
最後まで面倒見る気ないくせに中途半端に実装した挙句、
後は自分で足りない部分足してください、なんて人いるからね。
作ってもらえます?とかいったらキレ気味になるしね。
一つのソースみんなで突くよりはあんたがやるのがスジでしょう?
とかいったらキレかねない。危険だ。

207 名前:デフォルトの名無しさん :03/06/29 21:15
やねうらおは3年前ならえらい人だね

208 名前:デフォルトの名無しさん :03/06/29 21:51
やねは技術は認めるが嫌いだ。人間としてどーも。
ていうかスレ違いだな……。

209 名前:デフォルトの名無しさん :03/06/29 21:53
えらい人ではなくえろい人です

210 名前:デフォルトの名無しさん :03/06/29 22:57
ここのスレッドは得ろいひとばかり。

211 名前:デフォルトの名無しさん :03/06/29 23:09
得ろエロやる前に、プログラム作れ。
取り合え図、シナリヲ作れ。


212 名前:デフォルトの名無しさん :03/06/29 23:12
>>200
君は人の用意したものを使ったほうがいいんじゃない?
だって面相だもん。
この先どんなに頑張っても、やっぱり面相どまりだと思うよ。
打ってて気付かないのか?面相。
ライブラリにいれとけよ面相。

213 名前:貧乏脱出!これであなたはお金持ち :03/06/29 23:18
普通に働いてお金持ちになれるのは全体の1%のみって本当!?
本当にお金持ちになるにはやはり「副収入」が必要!
一日30分 おうちでコピペ、コピペ!
嘘だと思うんならランキング見てみてくださいよ↓↓
(直リン不可)
http://www.adultshoping.com/addclickport.cgi?pid=1053353765(直リン不可)

/////// //////// ///////

214 名前:デフォルトの名無しさん :03/06/29 23:20
しかし、ダイレクトXを
使いこなしているプログラマはもしいらっしゃるなら
すごい。

215 名前:デフォルトの名無しさん :03/06/29 23:21
マッハバンドとかいまだに遊んでる。

216 名前:   :03/06/30 02:33
DirectX9.0のSDKをインストールしたら7.0や8.1向けのプロジェクトもコンパイルできるの?

217 名前:デフォルトの名無しさん :03/06/30 05:10
>>216
バージョン定数 でヘルプを検索しれ!

218 名前:デフォルトの名無しさん :03/06/30 23:55
ところで皆さん、バージョンはいくつで開発してます?
今まで私は7でやってたんですが、そろそろ8あたりに
移行していいかなぁ。新しいもの好きの私としては
今すぐ9でプログラム組みたいところなんだけどなぁ。


219 名前:デフォルトの名無しさん :03/07/01 00:03
9でいいだろ。DX入れるのマンドクセな奴なんか無視無視。
但し9世代の機能を何でも使ってよいというわけではない(PS2.0を無闇に使う等)。

220 名前:デフォルトの名無しさん :03/07/01 00:11
>>218
俺は8だな。
ほとんどの環境に入ってるし、9にそれほど必要な機能がなかったから

221 名前:デフォルトの名無しさん :03/07/01 00:50
必要ではなくても、8よりは9の方がいいな。
8は駄目なところが大杉。

222 名前:デフォルトの名無しさん :03/07/01 01:41
8よりは9の方が作りやすいよなー
GetDC復活してるし。
でもユーザに8の環境(というかハードが9未対応)が多いから8で作ってるっス

223 名前:デフォルトの名無しさん :03/07/01 02:21
ハードが9未対応でも、9で追加されたハードウェア支援が必要な
機能を使わなければ、問題無いのでは?

という訳で、俺は9

224 名前:218 :03/07/01 02:58
なるほどー、結構最新版で開発してる方も多いんですね。
7とかでやってた折れアホ・・・?まぁいいや。
どうしようかなぁ。9の方が良いみたいなんで、9に
移行しようかな。

225 名前:デフォルトの名無しさん :03/07/01 05:04
あー、朝起きたらDirectXのヘルプが全部頭の中に入ってたりしないかなー。

226 名前:デフォルトの名無しさん :03/07/01 07:23
俺は全部頭の中に入ってるけどな

227 名前:デフォルトの名無しさん :03/07/01 07:33
グラフィックドライバが未対応で、DirectX9入れただけでシステムが不安定になる場合もあり、
一概にユーザーが最新版を入れてくれるとは限らなかったりする。

って、うちの環境のことだが。

って、まあ、そんなクソドライバ捨てていいか。

って、そのクソドライバがATIだったりす(ry

228 名前:デフォルトの名無しさん :03/07/01 10:26
DirectXのヘルプってちょっと不親切じゃないか。

229 名前:デフォルトの名無しさん :03/07/01 18:07
>>228
あんなもんで十分だと思う。

230 名前:デフォルトの名無しさん :03/07/01 20:53
ライブラリのヘルプでDirectXのヘルプより親切なのってあるの?
俺は十分過ぎるというか、むしろもっと無駄を削ってコンパクトにして
欲しいと思ってる。
気が向いたときは自分でヘルプの再構築やってるくらいだし。

231 名前:デフォルトの名無しさん :03/07/01 22:28
DirectX付属ヘルプは丁寧すぎるぐらいだねえ
ただし、3Dの基礎知識は前提になってるけど

232 名前:デフォルトの名無しさん :03/07/02 00:28
確かに、丁寧過ぎて膨大な量になってるな。ある程度使えるように
なってる人にはいらない説明も多いしな、Win32APIの話とか。
まぁ逆に言うと初心者の頃にはすごく助かったわけだが。

233 名前:デフォルトの名無しさん :03/07/02 13:26
たまに引数名の説明で「なんなんだ、これは」と思うような奴は無い?
いや、全体的にはよく出来てる、の一言なんだが…

234 名前:デフォルトの名無しさん :03/07/02 16:50
洗練されているに超したことは無いけど、説明が無さ過ぎて
困るよりは良いっすよ。MSACMのコードを実装したときは
解説がぜんぜん無くて大変ですた…。

235 名前:デフォルトの名無しさん :03/07/02 22:15
最近DirectXを使い始めて2Dのゲームでも作ろうかと奮闘中
なのですが、2Dのbmp画像を描画するだけでもいろいろ方法が
ありますよね。どういう使い分けをしたら良いのか、良く分かりません。
とりあえずSpriteだけを使っておけばいいんでしょうか。
実行速度などに違いはあるんでしょうか?

236 名前:デフォルトの名無しさん :03/07/02 22:19
分からなかったらとりあえずD3DXSPRITE使っとけ。

237 名前:デフォルトの名無しさん :03/07/02 22:28
日本語ヘルプも昔に比べるとだいぶ良くなったね。
7あたりまでは、英語ヘルプでは文中に出てくる構造体の名前がリファレンス
ページへのリンクになっていたのに、日本語ヘルプではほとんどリンクに
なってなかったけど、9のヘルプを見た感じだと英語ヘルプを忠実に再現して
るみたいだね。

238 名前:デフォルトの名無しさん :03/07/02 22:51
X5の時点で今くらい充実してれば…
あんな本にお金使わなかったのに…

239 名前:デフォルトの名無しさん :03/07/02 23:03
一枚のビットマップにキャラクタをたくさん描いておいてそれをテクスチャにするときに
切り分けたいのですがいかがなさいますか?

240 名前:デフォルトの名無しさん :03/07/02 23:06
>>233
DXに限ったことじゃないが、たまにあるな。

UINT hoge - 符号無し整数

んなこたぁわかってるから何のための引数か書けっての

241 名前:デフォルトの名無しさん :03/07/02 23:06
何がわからないの?

242 名前:デフォルトの名無しさん :03/07/02 23:37
DrawIndexedPrimitiveの引数の説明にかなり混乱した

243 名前:デフォルトの名無しさん :03/07/02 23:46
>>242
どう混乱したか説明してもらえると更にスレの質が向上いたします。

244 名前:デフォルトの名無しさん :03/07/03 01:00
C++のヘルプはそれなりに充実しているが、C#のヘルプはひどいよ。
C++のヘルプと両方見ないとわからない。

245 名前:デフォルトの名無しさん :03/07/03 01:19
VBのヘルプはどうですか?

246 名前:デフォルトの名無しさん :03/07/03 01:41
MSDN、詳しいのは結構だが1.8Gって……。

247 名前:デフォルトの名無しさん :03/07/03 01:41
いまDirectX9SDKを使って開発しているのですが
DirectXのバージョンなどによってOSが制限されることってありますか?

248 名前:デフォルトの名無しさん :03/07/03 01:47
9はwin95では動かないんじゃなかったっけ

249 名前:デフォルトの名無しさん :03/07/03 01:57
ターゲットの環境はWin98以降みたいですよ
http://www.microsoft.com/japan/windows/directx/default.aspx?url=/japan/windows/directx/downloads/drx90.htm

250 名前:デフォルトの名無しさん :03/07/03 02:00
>>244 それって翻訳の問題?それとも原文が腐ってる??


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