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


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

鬱だ氏のう DirectX (Part 10)
1 名前: ◆Manna2uCLg :03/08/21 08:04
DirectXについて、にいさま達がマターリと
技術情報交換&雑談するためのスレッド。
初心者用相談室では扱わないような少し高度な話題も受け持つ。

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

2 名前: ◆Manna2uCLg :03/08/21 08:04
//// 過去スレ
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/ (ゲ製作板)
Part 9 http://pc2.2ch.net/test/read.cgi/tech/1054553472/

//// 外部
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 名前: ◆Manna2uCLg :03/08/21 08:05
//// 関連
- vb.NETでやるDirectX
http://pc2.2ch.net/test/read.cgi/tech/1039357620/
- Managed DirectX vol.2
http://pc2.2ch.net/test/read.cgi/tech/1061285378/

- C++相談室 part22
http://pc2.2ch.net/test/read.cgi/tech/1060361082/
- ★初心者にVisual C++を教えるスレ★ Part7
http://pc2.2ch.net/test/read.cgi/tech/1056280510/
-Win32API質問箱 Build13
http://pc2.2ch.net/test/read.cgi/tech/1059549320/

4 名前:デフォルトの名無しさん :03/08/21 08:25
リンクが生きてるかどうかくらい確認しろよ

5 名前:デフォルトの名無しさん :03/08/21 08:26
C++相談室は関係ない。

6 名前:デフォルトの名無しさん :03/08/21 09:18
質問です、DTMなどで使用するMIDIキーボードの入力データーを取得したいのですがDirectInputで取得できるでしょうか?
仮にEnumDeviceで列挙され、デバイスを作成したとしてGetDeviceState、GetDeviceDataで
キーデーターを取得とする場合MIDIキーボードはジョイスティックとして扱われるのでしょうか?
また、DirectInputでデーターを取得できない場合はほかにどのような方法があるのでしょうか?
なにぶんMIDIキーボードが手元に無いので検証の方法がありません。

よろしくおねがいします。

7 名前:デフォルトの名無しさん :03/08/21 09:32
>>6
・・・・・・・・・・・・・・・・・・・・・・・・・・。

8 名前:デフォルトの名無しさん :03/08/21 10:00
>>6
いまどきはMIDI楽器でゲームするのが流行りなのか?
ギターやドラムもほしいな。

9 名前:デフォルトの名無しさん :03/08/21 14:06
>>6
おとなしくmidiInなんたら系の関数使っとけ

10 名前:1 :03/08/21 15:51
宇治社中改 は、消えてたのか…
未確認ですまそ

11 名前:デフォルトの名無しさん :03/08/21 17:54
- 宇治社中改(3D基礎講座)
http://web.archive.org/web/20020607052151/http://www.cc.rim.or.jp/~devilman/

12 名前:デフォルトの名無しさん :03/08/21 20:46
度数をラジアンに変換するには、D3DXToRadianというマクロがあるんですけど、
その逆でラジアンを度数に変換するマクロか関数ってありますか?

13 名前:デフォルトの名無しさん :03/08/21 20:51
>>12
はいな!
D3DXToDegree
ラジアンを度に変換する。



14 名前:12 :03/08/21 20:59
>>13
ありがとうございます

15 名前:デフォルトの名無しさん :03/08/21 21:04
どうでもいいけど、この程度の関数でもD3DXほにゃららって
どうも腹立つんだよな。

C++版のAPIもとっととC#版みたいにしてくれりゃ
使ってやるぜゲイツ!って気になるにやぶさかでないんだが。

16 名前:デフォルトの名無しさん :03/08/21 21:09
最初、くだらねーw と思ったけど、案外役に立ってる関数

        D3DXCreateTeapot()

17 名前:デフォルトの名無しさん :03/08/21 21:11
>>15
関数の名前関連なら、
D3DXAssembleShaderFromFileA
みたいに途中までD3DX以外の省略なんて一切しない勢いなのに
最後のAってなんだよ、とかの方が俺は気にいらない。

18 名前:トリビアinDX :03/08/21 21:13
>>16
ティーポットの元ネタって知ってる?

19 名前:デフォルトの名無しさん :03/08/21 21:19
>>18
某有名所のABOUTんとこに書いてあるから
かなりの人が知ってそう。しかもDirectXスレだし。

20 名前:デフォルトの名無しさん :03/08/21 21:41
>>19
(σ`・ω・)σ 根畜生!(最近知っていい気になってた俺の気持ちを少しは以下略)

21 名前:デフォルトの名無しさん :03/08/21 22:46
>>17
どうせマクロでラップされて直接使わないからじゃね?

D3DXって「3」の部分でシフトを放さないといけないから
慣れないうちはD#DXとか打ってたなぁ。

22 名前:デフォルトの名無しさん :03/08/22 00:04
WinAPI+DirectXで質問があります。
ダイアログ上でDirectinputを使いたいのですが、
ジョイパッドの入力は通常のウィンドウと同じで取得できるのですが
キーボード入力の取得がうまくいきません。
どうしたらよいでしょうか?

23 名前:デフォルトの名無しさん :03/08/22 01:27
>>16
いやまったく。くだらないけど、ありがたい。
何でもいいからとにかく表示するものが欲しいとき、
非常に便利っすね。

24 名前:デフォルトの名無しさん :03/08/22 08:49
>>22
DirectX SDKサンプルに答えがあります

25 名前:デフォルトの名無しさん :03/08/22 11:05
DirectX9でサーフェースのDCが復活したそうですが、そのDCに対して
描画した場合も、Lockと同じくダーティ領域云々が発生するんでしょうか?

それともDirectX6以前の様にVRAMに直接描いてくれます?

26 名前:デフォルトの名無しさん :03/08/22 11:12
>>18
知りたいっす >ティーポットの元ネタ

27 名前:デフォルトの名無しさん :03/08/22 12:55
ttp://www.t-pot.com/about/about.html
思い当たって見に行ってみた。これすか。

28 名前:デフォルトの名無しさん :03/08/22 13:06
( ・∀・)つ〃∩ ヘェーヘェーヘェー  知らんかった

29 名前:デフォルトの名無しさん :03/08/22 13:11
>>17
なぜAをつける…
CreateFileとかもCreateFileAって書いてるのか?

30 名前:デフォルトの名無しさん :03/08/22 14:49
誰か自分のライブラリUPしてくれませんか?

31 名前:デフォルトの名無しさん :03/08/22 15:59
Aつけてたら後でUNICODEにするときどうするんだよ・・・

32 名前:デフォルトの名無しさん :03/08/22 16:25
UNICODEは逆から読むとEDOCINUなので使いません

33 名前:デフォルトの名無しさん :03/08/22 16:32
な、(ry

34 名前:デフォルトの名無しさん :03/08/22 18:30
ウニコード

35 名前:デフォルトの名無しさん :03/08/22 18:35
DirectX9 DirectGraphicsにて、
320*240のウィンドウを作り
WM_PAINTでStretchRect()で画像を表示するプログラムを作りました。

ウィンドウをドラッグすると描画されず真っ白になってしまうのはどうしてなんでしょうか?

初歩的なことで申し訳ありません、ご教示ください

36 名前:22 :03/08/23 00:57
>>24さま
サンプルがまさに自分が求めていた処理を行っていました。
ありがとうございました。

37 名前:デフォルトの名無しさん :03/08/23 11:54
>>35
ウィンドウをドラッグしたときにWM_PAINTはきていますか?

38 名前:デフォルトの名無しさん :03/08/23 12:37
35じゃないけど、トップウィンドウをドラッグしてもWM_PAINTは来ないような。
単純にウィンドウを移動先にベタコピーするだけ。

39 名前:デフォルトの名無しさん :03/08/23 16:16
>35
そもそもゲームでイベントドリブンなのが間違い。

40 名前:デフォルトの名無しさん :03/08/23 17:32
>>39
はぁ??

41 名前:デフォルトの名無しさん :03/08/23 20:32
救いようがないヴァカだな

42 名前:35 :03/08/24 03:14
>>37さん
はい、ウィンドウドラッグ中もWM_PAINTは来ていました。
VCのアウトプットウィンドウにメッセージを出して確認しました。
しかし、その方法で見てみたところ常にWM_PAINTが来ていました。
原因はわからないのですが不可解な動作ですよね。。。
DirectGraphicで使用したウィンドウは常に更新されつづけるのかしら・・・

43 名前:デフォルトの名無しさん :03/08/24 03:20
DirectGraphicではClearとPresentで更新するんじゃ無いの?
君のゲーム設計でのWinMessageの取り扱い次第のような気がするが…

44 名前:デフォルトの名無しさん :03/08/24 03:39
○  ヘコヘコ     ★ 無修正DVD ★       ○  ドピュ
( ヽ  ○   モロ見えサンプルDVDプレゼント中 ( ヽ.。   ○
)))」 ̄[     http://www.d-para.com       )))」 ̄[


45 名前:デフォルトの名無しさん :03/08/24 05:04
>>35
このままでは埒が明かないので、
ソースをどっかに上げてみなされ。

46 名前:デフォルトの名無しさん :03/08/24 05:12
case WM_PAINT:

device->Clear(1, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER , D3DCOLOR_XRGB(0,0,0),1.0f,0);
device->BeginScene();
//描画
device->EndScene();
device->Present(NULL,NULL,NULL,NULL);
ValidateRect(hWnd,NULL);
break;

でどう?

47 名前:デフォルトの名無しさん :03/08/24 05:35
更新領域の有効化忘れでWM_PAINTが継続ポストされるっていうオチ?

48 名前:デフォルトの名無しさん :03/08/24 05:46
>>46
ちょっと訂正。
うちの場合、ゲームループ時は描画処理入れてるけど、
WM_PAINT時はPresentだけ行って、
前回描画した画面を上書きしてるだけだった。
これでドラッグ中もちゃんとでるが・・・。

49 名前:デフォルトの名無しさん :03/08/24 06:01
WM_PAINTが来るたびにレンダリングしてたら大変だ罠。
普通はValidateRectだけする。

50 名前:デフォルトの名無しさん :03/08/24 06:10
アクティブ時(レンダリングループが回ってるとき)は
どうせループ側で描画されるから更新領域の削除のみ。

非アクティブ時(レンダリングがとまっているとき)はPresentも行う。

こんな感じがよろしいのではないかと。

51 名前:35 :03/08/24 12:45
恐縮ながらWM_PAINTのソースです。
case WM_PAINT:
Device->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,0), 0, 0);
Device->BeginScene();
RECT SrcRect,DestRect;
SetRect( &SrcRect, 0, 0, Width, Height);
SetRect( &DestRect, 0, 0, Width, Height);
Device->StretchRect( Surface, &SrcRect, BackBuffer, &DestRect, D3DTEXF_NONE);
Device->EndScene();
Device->Present( NULL, NULL, NULL,NULL);
break;


52 名前:デフォルトの名無しさん :03/08/24 13:26
>>51
とりあえず、WM_PAINTが何の目的でポストされるか調べて見れ。

それはさておき、ValidateRectを追加することで
WM_PAINTがポストされ続ける現象は収まると思う。
ドラッグすると白塗りされる現象に関してはこれだけじゃなんとも。

53 名前:35 :03/08/24 13:53
WM_PAINTにValidateRectを追加してみました。
WM_PAINTがポストされつづける現象は無くなり、ドラッグ時にも白塗りはなくなりました。
ありがとうございます!

しかし、ここでウィンドウの端を掴んでウィンドウサイズをグリグリ変えてみると
同じようにウィンドウが白くなってしまいました。

54 名前:デフォルトの名無しさん :03/08/24 14:17
>>53
ウィンドウクラスで背景ブラシを白に設定してるなら
それをNULLにしてみたら?

すでにNULLになっていたら・・・う〜ん、
正直、出てきている情報だけじゃ判断は難しい。

55 名前:35 :03/08/24 14:27
わ!ブラシをNULLにしたらサイズをぐりぐり変えても正しく画像がウィンドウに貼り付けられました。

う〜ん、なんでだろうなあ???
ブラシを設定していても、Presentで描画されて正しく表示されそうなのに・・・

56 名前:デフォルトの名無しさん :03/08/24 14:35
>>55
DefWindowProcがなんかしてるのかもね。

それから、WM_PAINTベースでやってる今のプロジェクトは破棄して
SDKのフレームワークを利用したりして作り直したほうがいい。

WM_PAINTは「君のクライアント領域のここが消えてる(無効になってる)から
描画して」というメッセージ。
Windows側の都合でガンガン送られてくる事があるので
WM_PAINTハンドラでレンダリングするのは非効率極まりない。

例えば、いったんウインドウを画面外に出して、ゆっくり画面内に戻すと
画面内に戻って来た部分を描画させるため、WM_PAINTを1つ処理する傍から
新しいWM_PAINTがポストされてしまう。

57 名前:デフォルトの名無しさん :03/08/24 15:57
>>55
ただ単にブラシで塗りつぶされなくなっただけだと思われ

58 名前:デフォルトの名無しさん :03/08/24 18:22
まぁフツーはApplication.OnIdleとかApplicationEvents.OnIdleとかでやるわな(同じだ)

59 名前:デフォルトの名無しさん :03/08/24 19:00
俺はWM_PAINTのハンドラはPresentとValidateRect呼んでるだけ。
いちいちレンダリングする必要はないよ。

60 名前:デフォルトの名無しさん :03/08/24 19:27
レンダリング部に再入しているんじゃないのか

61 名前:デフォルトの名無しさん :03/08/24 19:56
漏れはWM_PAINTでは再描画フラグ立てるだけだ。

62 名前:デフォルトの名無しさん :03/08/24 21:21
どうやって検証したもんか悩んでるんですけど、
例えばD3DDevice->Resetとかを意図的にエラーにする方法ってあるんですか?
例えばデバッグ版ランタイムで実行して○○というツールを使えば、とか

63 名前:デフォルトの名無しさん :03/08/25 01:30
まあ、DirectXのtutorialからしてWM_PAINTでレンダリングしてるからな。

64 名前:デフォルトの名無しさん :03/08/25 05:12
誰か>>62を訳してくれ。

65 名前:デフォルトの名無しさん :03/08/25 09:07
ハードがエラーを返す状況をシミュレートしたいってことなのでは?

66 名前:デフォルトの名無しさん :03/08/25 09:43
>>65
そうそう
エラー処理が正しく実行されるのか検証したい

67 名前:デフォルトの名無しさん :03/08/25 09:56
それは自分でエラーの生じる状況を作ってやる必要があるんじゃないかな?

単純に呼び出し側がD3D_OKを握りつぶすんじゃなくて、
Direct3Dランタイムの方もエラー時と同じ挙動をさせたいんでしょ?

68 名前:デフォルトの名無しさん :03/08/25 13:20
おれは戻り値にエラーコード入れて確認してる。

69 名前:デフォルトの名無しさん :03/08/25 13:39
>>67
そんな感じ
例えば実際にHALデバイスをサポートしないアダプタでHALでCreateDeviceしちゃったときに
どうなるのかテストしたい、みたいな

無茶言うなって事ですか?

70 名前:デフォルトの名無しさん :03/08/25 13:57
>>69
難しいでしょうね。

デバイスロスト時の処理は、実際にデバイスロストさせるなどして
試してみるしかない。
自分の環境で起こせないエラーは、仕様を確認しつつ、
D3D_OKを握りつぶして仮チェックするくらいしかできない。

71 名前:デフォルトの名無しさん :03/08/25 14:19
漏れは普通に、実行中に画面のプロパティで解像度・色変えて
持ちこたえるか確認するが。

72 名前:デフォルトの名無しさん :03/08/25 15:07
今は色数変えても何事も無かったように動くように作ってある

73 名前:デフォルトの名無しさん :03/08/25 15:28
自分はアホだから、窓サイズ変わっただけでも一旦全部解放して
一から作り直す。

74 名前:デフォルトの名無しさん :03/08/25 15:37
>>73
俺もそう。

75 名前:デフォルトの名無しさん :03/08/25 15:44
バックバッファのサイズを変えるなら、
いったん全部解放したほうがメモリ配置に優しいかもなー。

まぁ、D3DPOOL_MANAGEDにしとけば解放する必要はないわけだが。

76 名前:デフォルトの名無しさん :03/08/25 17:23
DirectDrawの頃はCapsの項目ごとにEnable/Disableを切り替えられたのに
今はそういうソフトを用意してくれないね>MS

77 名前:デフォルトの名無しさん :03/08/25 23:32
Visual Studio 6.0 と .NET 2003 を一緒に入れているわけだが、
DirectX9.0b SDK をインストールしたら
新機能であるAppWizardが、後から入れた.NET 2003で選択できないんだけど何とかできないですか?

78 名前:デフォルトの名無しさん :03/08/26 00:36
>>77
何度も何度も同じ話題が出ているのだが
オマエはファイルのコピーも満足に出来ないのか?

79 名前:デフォルトの名無しさん :03/08/26 01:31
しかしそんなにAppWizardって需要があるのか?

80 名前:デフォルトの名無しさん :03/08/26 05:50
>>79
ちょっとした実験的なもの、学習的なものを作る場合には重宝するよ。
難点はPCHを設定してくれないことか。

81 名前:デフォルトの名無しさん :03/08/26 08:05
ログ読んでも分かりませんでした。ヘタレですいません。

82 名前:デフォルトの名無しさん :03/08/26 09:59
>>79
他人が作ったAppWizardって便利だし使わない?
最近ではGCCをVSで使うときに重宝したよ

>>81
どの部分がわからないかがわからないとわからないよ

83 名前:デフォルトの名無しさん :03/08/26 18:10
>>81
ここではなく、C#スレの方にあったと思うぞ。

84 名前:デフォルトの名無しさん :03/08/26 19:54
>>78
おまいも過去ログには存在しないと何度言えばわかるんだ

85 名前:デフォルトの名無しさん :03/08/26 21:36
>>84
どこに過去ログと書いてある?
勝手に脳内変換するなよ

86 名前:デフォルトの名無しさん :03/08/26 21:41
AppWizardはDLLの一種なんだから必要なものを必要な場所にコピーすれば動く
PC初心者ならともかく、プログラマがその程度も考えられないのが不思議

87 名前:デフォルトの名無しさん :03/08/26 21:43
>>86
プログラマだからといって必ずしもVisualStudioについて詳しいとは限らない罠

88 名前:デフォルトの名無しさん :03/08/26 21:47
統合環境に詳しくなくてもプログラマなら動作原理が予測できる
出来ないのは考えようとしないから

89 名前:デフォルトの名無しさん :03/08/26 22:04
>>85
藻前の身近で何度も話題にでたって漏れの汁ところじゃねーよっ!!

90 名前:デフォルトの名無しさん :03/08/26 22:18
珍しく回答側が言い訳するパターンだな

91 名前:デフォルトの名無しさん :03/08/26 22:23
AppWizardの話はmanagedのスレで出てるね
もう落ちたようだが

92 名前:デフォルトの名無しさん :03/08/26 22:27
.NET2002とかにDX9のAppWizardをインストールしていて、
2003を入れる代わりに2002をアンインストールした人は
比較的簡単に自力で解決できたかもね。
DX9AppWizard関連のファイルは、アンインストされずに残るから。

93 名前:デフォルトの名無しさん :03/08/26 22:30
>>86
DLLの一種というか、JScriptですよ。プププ

94 名前:デフォルトの名無しさん :03/08/26 23:14
番組の途中ですが、>>88たんによるDLLと
AppWizardの類似性に関する長文レスは

ご 遠 慮 下 さ い

95 名前:デフォルトの名無しさん :03/08/26 23:31
>>86はVC++6ユーザー

96 名前:デフォルトの名無しさん :03/08/27 13:56
あるD3DFORMAT型の数値からBit深度を逆算する関数ってありますか?
DXGetErrorDescription9みたいな

それともいちいちSwitchで調べるんですか?

97 名前:デフォルトの名無しさん :03/08/27 19:02
>>96
いちいち調べてください。

98 名前:デフォルトの名無しさん :03/08/27 20:56
>>96
普段使うのはたいした数じゃないだろ。
どうして正解を聞かないとプログラムできないわけ?

99 名前:デフォルトの名無しさん :03/08/27 21:12
>>98
>どうして正解を聞かないとプログラムできないわけ?
は?既に組んであるけど不細工だからどうにかならんかなと思っただけだけど?
どこにもやり方がわかりませんなんて書かなかったし

どうしてそんな頓珍漢な憶測が飛び出してくるわけ?
頭おかしいんじゃないの?

100 名前:デフォルトの名無しさん :03/08/27 21:48
そこで逆ギレですよ。

101 名前:デフォルトの名無しさん :03/08/27 21:51
ハッシュでも使ってエレガントに実装しる!

102 名前:デフォルトの名無しさん :03/08/27 22:31
不細工なのは御前が不細工だからだろ( ´,_ゝ`)プ

103 名前:デフォルトの名無しさん :03/08/28 02:15
顔は不細工でもかまわんけど脳みそが不細工なのはヤだな。

104 名前:デフォルトの名無しさん :03/08/28 10:26
まあマターリと卓球でもしようぜ。
( ´ー)ρ┳┻┳°σ(ー` )

105 名前:デフォルトの名無しさん :03/08/28 14:11
DirectX9のSDKインスコして、サンプルプログラムコンパイルしたが、
実行すると、たちまち未定義命令例外が出てしまう(movhlps xmm0, mmx1)。
Pentium!!!だからSSEは動くだろうし、なぜ未定義命令例外...。
同様の現象出ている人いませんか?

106 名前:デフォルトの名無しさん :03/08/28 19:34
>>105
CPUの刻印をよく見てみろ

「Pontium川」

そういうことだ。

107 名前:デフォルトの名無しさん :03/08/28 19:58
>>105
SSEがDiableになってるとか。

108 名前:デフォルトの名無しさん :03/08/28 19:59
Disable

109 名前:デフォルトの名無しさん :03/08/28 20:14
>>105
バイナリの方はどなのよ

110 名前:デフォルトの名無しさん :03/08/28 20:20
>>105
コードのアライメントの問題じゃないか?
ほとんどの命令が16バイト境界に置かないとだめらしいぞ。

111 名前:デフォルトの名無しさん :03/08/28 20:35
うちのCPUコアがけでSSEが使えなくなった。
Athlonだけど。

112 名前:105 :03/08/28 22:53
SDKは今日落とした9.0bで、ランタイムも然り。
例外は、D3D関数内で起きていて、コードはバイナリレベルで見たけど、問題なし。
その命令までSSEの命令が動いているので、SSEがDisableという可能性も無く、
アライメントはレジスタ間の命令だから、関係あったらむしろ怖い。
その一命令前はメモリアクセスしていたが、アドレス最下位バイトは0で
16バイト境界にあり、特に問題はなさそう(というかD3D内であって、自身の
コードではないので、これがバグってるとしたら、問題と思われ)
VTuneとかが悪さをしているのかと思って、OSからクリーンインスコしたけど、
再現してしまいました。となるとビデオカードか? (GeForce FX5600)
3DMarkはちゃんと動いてるし。う〜ん。マシン毎入れ替えか!?
Illegal instructionとDirectXでググると、いくつか同じような現象が
出ているみたいだけど、ここの住人には居ないのかな〜?

113 名前:105 :03/08/28 22:55
同じバイナリを他のマシンで実行したらちゃんと動いた。
これはマシンの問題なのか...鬱だ氏のう...

114 名前:デフォルトの名無しさん :03/08/28 22:57
>112
DX7あたりの似たサンプルで、同じことやってみれ

115 名前:デフォルトの名無しさん :03/08/28 22:58
HDDが壊れてるのかもよ

116 名前:105 :03/08/28 23:26
レスThanksです。明日またトライしてみます。
Slot1のPentium!!! 450MHzという化石マシンで開発しているのがイカン
のかもしれません。そろそろマシン更新したいんですがね。
会社のマシンなので贅沢いえない...これをネタに買い換えを交渉するか...。

117 名前:デフォルトの名無しさん :03/08/29 15:08
デスクトップの色深度が32bitに設定されている状態で
実際に色深度を変える事無く16bitの時どのフォーマットが使われるか
知る方法はありますか?

それとも手近な環境ではどれもR5G6B5だけだったんだけど
X1R5G5B5になる環境ってまず無いのかな?

118 名前:デフォルトの名無しさん :03/08/29 15:55
>>117
CheckDeviceTypeで16bitのD3DFORMATを確認する。

119 名前:デフォルトの名無しさん :03/08/29 16:29
両方可能な環境もあるがそんなことを確認してどうするんだろう?

120 名前:デフォルトの名無しさん :03/08/29 22:19
3Dのシミュレーションを作っているのですが、
参考になるサイトや情報無いでしょうか?
ちょっと古いですが、FFTみたいなタイプ。
マップは全部モデルで作ってるのかな?

121 名前:デフォルトの名無しさん :03/08/29 22:45
何を参考にしたいんだね…

122 名前:デフォルトの名無しさん :03/08/29 22:56
↓高速フーリエ変換についてのサイトを紹介するヤシ

123 名前:デフォルトの名無しさん :03/08/29 23:01
>>118
両方調べてValidだった方という意味ですか?
ユーザーが手動でデスクトップの色深度を16bitにしたときに
どのフォーマットが使われるのか知りたいんですけど・・・

>>119
出来るだけフレキシブルに対応したいだけです
フルスクリーンの16bitモードとウィンドウでの16bitモードで
描画結果が違ったらイヤなので

124 名前:デフォルトの名無しさん :03/08/29 23:26
あとついでといっては失礼ですが
16/32bit両方とも、ValidだったフォーマットでEnumDisplayModeしたとき
使える解像度に差がある環境ってありえるかわかる方いますか?

125 名前:デフォルトの名無しさん :03/08/29 23:31
アナクロで無駄な苦労を続ける人が多いな。ご苦労なこった。
DirectX8は事実上 X8R8G8B8とR5G6B5しかないよ。


126 名前:デフォルトの名無しさん :03/08/29 23:50
>>125
とどのつまり、そのセリフが欲しかったんです
信じてみますありがとう

127 名前:デフォルトの名無しさん :03/08/30 00:37
>>126
意外とそういう要素って大事だよね。

DirectXっていらないステータス多すぎるんだよ。
どう考えても使わない使えないいらないものが多すぎる。
この問題だって結局、8888と565しかねーんだから、
それ以外を用意しておく必要ってあるのか?
DirectXを作ってる人って使う側が全く見えていない気がする。
くだらねー手続きばっかりですすまねー。

128 名前:デフォルトの名無しさん :03/08/30 00:45
今更どうでも良い話だがS3/Virge系だとX1R5G5B5とR5G6B5が選択可能だったな


129 名前:デフォルトの名無しさん :03/08/30 01:28
>>127
しかしここで選択肢が用意されてないと本当に使いたい人がどうしようもなくなる
そういう通常は不要なものをバッサリ切り落とすというのはライブラリ集なんかに期待した方がいいんでないかね

130 名前:デフォルトの名無しさん :03/08/30 01:44
>>129
いや、それ、逆でしょ。
DirectXは不要な設定をわざわざしなければいけないようになってるけど
必要なときによんでくるような設計にできないわけじゃないでしょ。

131 名前: :03/08/30 03:30
少し関係ないかもしれませんが,
テクスチャの1テクセルの中に貼り付け対象の画像のピクセルが
何個も入ってることってあるんですか?

132 名前:デフォルトの名無しさん :03/08/30 09:35
>>131
よくしらないけど。
ないんじゃん、ずれることはあっても。

133 名前:デフォルトの名無しさん :03/08/30 11:20
テクスチャサイズの制限などで
元画像が小さくなって貼られるときは
複数のピクセルが1テクセルになるけど

134 名前:132 :03/08/30 11:57
>ないんじゃん
うそつき俺。(´・д・`)めっ

135 名前:デフォルトの名無しさん :03/08/30 11:58
誰か>>131を訳してください。

136 名前:デフォルトの名無しさん :03/08/30 15:21
>>133
131は、1テクセルの中にその元画像がそのまま入ってる事があるか
聞いてるんじゃないのかね。 自分で何言ってるか解らんが。

137 名前:デフォルトの名無しさん :03/08/30 15:46
>>136
安心しろ。俺もお前が何言ってるか解らん。

138 名前:デフォルトの名無しさん :03/08/30 16:10
>>127
これで多すぎると思う奴は、ラッパー使えばいいだけじゃん。
俺はむしろDX8から設定できる項目が減ってしまって困っているくらいだが。

139 名前:デフォルトの名無しさん :03/08/30 16:27
>>138
そのラッパーに満足できず自分用ラッパーを作ろうとしたときに
まずつまずくところではあると思うんだけど
膨大な設定値を前に「で、普通みんなどうしてんの・・・」みたいな

でもそういう細かいところもちゃんとサポートしてるラッパーなんて
そうそうないだろうけどね

140 名前:デフォルトの名無しさん :03/08/30 17:17
D3DDEVTYPE_REF・D3DCREATE_SOFTWARE_VERTEXPROCESSING
でCreateDeviceしても、環境に依存する部分はあるのでしょうか?

141 名前:デフォルトの名無しさん :03/08/30 18:31
>>139
言ってることがよくわからんな。
DirectXを触ってて、「膨大な設定値だ」なんて思ったことも無い。

142 名前:デフォルトの名無しさん :03/08/30 18:51
>>141
画面クリアしたいだけなんですけど。
HRESULT Clear(
DWORD Count,
CONST D3DRECT* pRects,
DWORD Flags,
D3DCOLOR Color,
float Z,
DWORD Stencil
);

143 名前:デフォルトの名無しさん :03/08/30 18:53
"画面クリア"が何を指すのか。

144 名前:デフォルトの名無しさん :03/08/30 18:57
>>142
それのどこが膨大なんだ?

145 名前:デフォルトの名無しさん :03/08/30 19:00
>>142
これを以って「で、普通みんなどうしてんの・・・」なんて言い出す奴がいたら、
俺、泣いちゃうかも。

146 名前:デフォルトの名無しさん :03/08/30 19:09
>>143
そう、問題はそれでしょ。
普通画面クリアっつったら素直に通常考えうるようにしてくれりゃ
いいのに、なんのつもりでこんな設定をさせるのか意図がわからない。
もし、このパラメータになんらかの意図を持ってNULL以外の値を
使うならもはやClearの用途はClearでない。
うーんセンスわりー。ってこと。

147 名前:デフォルトの名無しさん :03/08/30 19:14
ほかにもあるぞ
HRESULT D3DXCreateTextureFromFileExA(
LPDIRECT3DDEVICE8 pDevice,
LPCSTR pSrcFile,
UINT Width,
UINT Height,
UINT MipLevels,
DWORD Usage,
D3DFORMAT Format,
D3DPOOL Pool,
DWORD Filter,
DWORD MipFilter,
D3DCOLOR ColorKey,
D3DXIMAGE_INFO* pSrcInfo,
PALETTEENTRY* pPalette,
LPDIRECT3DTEXTURE8* ppTexture
);
いやーD3DPOOL_MANAGEDを設定してみたかっただけなのに
容赦ないねぇ。ほんとに全部なんかいれなきゃ駄目ですか?w

148 名前:デフォルトの名無しさん :03/08/30 19:17
番外編(マイクロソフトってことで)
HFONT CreateFont(
int nHeight, // フォントの高さ
int nWidth, // 平均文字幅
int nEscapement, // 文字送り方向の角度
int nOrientation, // ベースラインの角度
int fnWeight, // フォントの太さ
DWORD fdwItalic, // 斜体にするかどうか
DWORD fdwUnderline, // 下線を付けるかどうか
DWORD fdwStrikeOut, // 取り消し線を付けるかどうか
DWORD fdwCharSet, // 文字セットの識別子
DWORD fdwOutputPrecision, // 出力精度
DWORD fdwClipPrecision, // クリッピング精度
DWORD fdwQuality, // 出力品質
DWORD fdwPitchAndFamily, // ピッチとファミリ
LPCTSTR lpszFace // フォント名
);
頭おかしいだろ?

149 名前:デフォルトの名無しさん :03/08/30 19:19
>>146
ハァ?
「画面」が何を指し、それを「クリア」するとは、どういう行為なのか?
そのために、どういうパラメータが必要なのか?
その点から考えてDirect3DDevice::Clearは妥当だ。

ていうか、ネーミングの話が微妙に混同されてるし。

150 名前:デフォルトの名無しさん :03/08/30 19:24
>>149
だからクリアだろ。
引数なんて必要なだけでおかしいだろ。

151 名前:デフォルトの名無しさん :03/08/30 19:30
>>150
だから何をクリアしたいんだよ。
昔ながらの、ベーシックのクリアだとすると、フロントバッファを
背景色でクリアする事になるが、それで良いの?

152 名前:デフォルトの名無しさん :03/08/30 19:33
>>151
仕様でレンダリングターゲットってのは変えられないでそ。

153 名前:152 :03/08/30 19:35
×仕様でレンダリングターゲットってのは変えられないでそ。
○仕様でClearでレンダリングターゲットってのは変えられないでそ。


154 名前:デフォルトの名無しさん :03/08/30 19:37
>>152
漏れの場合クリアと言えば、まずその動作を思い浮かべるから。

155 名前:デフォルトの名無しさん :03/08/30 19:39
>>153
強いて言えば、フロントバッファの時点でターゲットの問題じゃないw

156 名前:デフォルトの名無しさん :03/08/30 19:39
誰が誰かわからん。
とりあえず150だけが孤立してるだろうから
お前だけでもトリップ付けれ。

157 名前:デフォルトの名無しさん :03/08/30 19:41
引数が多すぎるという点のみ同意
構造体渡しにして欲しいな

158 名前:デフォルトの名無しさん :03/08/30 19:42
>引数なんて必要なだけでおかしいだろ。

159 名前:デフォルトの名無しさん :03/08/30 19:44
つまりだ。汎用性のある関数はいやだ、と。
じゃ、Zバッファやステンシルバッファをクリア対象にするかどうかの指定をしたいときや
クリアカラーを指定したいときはどうするの。

別関数を用意する?
それってパラメータを関数名に組み込むのと同意だよ。
リファレンスの複雑さは変わらないよ。

160 名前:150 :03/08/30 19:51
>>159
>それってパラメータを関数名に組み込むのと同意だよ。
違うよ。
別の関数にすれば、
少なくとも使わない人はみなくてすむじゃない。
その前に別の関数を用意しなくても引数にデフォルト値を設定しといて
くれれば多少は楽にいくんだけど。
D3DRECT* pRects=NULL
例えば↑こんなんやっといてくれれば文句無い。

161 名前:デフォルトの名無しさん :03/08/30 19:57
>>160
それは違うな。
使わない人は見なくて済むのではない。使わない人は全ての”Clear”を
見た上で、自分が必要なClearを見つけなければならない。

ステンシルやZバッファ等もある以上、一定量の複雑さは避けられない。

162 名前:デフォルトの名無しさん :03/08/30 19:59
DirectXのリファレンスを見たくないから
高レベルなライブラリをどっかで拾って使う。
でも、そのライブラリに満足できなくて、
自分で作ろうと思ったら、パラメータがいっぱいで嫌になる。
こういう事か。

結論。
大工道具も使えないのに家を建てようとするな。

163 名前:デフォルトの名無しさん :03/08/30 20:13
>>160
省略できるのは引数リスト末のみというデフォルト引数の性質上、
デフォルト値を適用したい引数と、こちらが指定したい引数が入り乱れている場合、
難しいことになる。
単純に引数の並びを変えただけじゃ対応は仕切れないし、
呼び出し方法に柔軟性が増える分、思わぬミスを呼ぶ恐れもある。

それらを補えるだけのメリットがあるわけでもない。
所詮は素人と面倒くさがりと不勉強な人間におもねった設計でしかないからね。

164 名前:デフォルトの名無しさん :03/08/30 20:31
> でも、そのライブラリに満足できなくて、
> 自分で作ろうと思ったら、パラメータがいっぱいで嫌になる。
> こういう事か。

いい経験になったのでは?

165 名前:デフォルトの名無しさん :03/08/30 21:33
刃がすべて出っ放しの十得ナイフと
職人さんの、用途ごとに違う種類がそろった道具箱

ま、ライブラリでラッピングすれば両方使えるわけだが
ソフトってそう言うものだ罠。
けど、マイクロソフトのAPI群にパラメータが多すぎるのは
設計レベルで抽象化に失敗しているせいもあるとは思うが。

166 名前:デフォルトの名無しさん :03/08/30 21:49
>>160
自分で好きなようにラッピングして、関数を一回作れば良いだけだと思うが
予め用意されている必要は全くない

167 名前:デフォルトの名無しさん :03/08/30 21:58
>>166
んで、結局できるものはみんな同じようなラッパーということだね。

168 名前:デフォルトの名無しさん :03/08/30 21:59
>>165
その例はまったく当を得ていない。
用途ごとに細分化された職人の道具こそがAPIのパラメータだ。

169 名前:デフォルトの名無しさん :03/08/30 22:01
>>167
同じようなラッパーだが、同じラッパーではない。これ重要。

170 名前:デフォルトの名無しさん :03/08/30 22:05
要するに150は骨抜き魚しか喰えないんだろ。

171 名前:デフォルトの名無しさん :03/08/30 22:13
>>165
>けど、マイクロソフトのAPI群にパラメータが多すぎるのは
>設計レベルで抽象化に失敗しているせいもあるとは思うが。

詳細きぼん。
ちょっとカッコいい事言ってみたかっただけじゃないよね?

172 名前:デフォルトの名無しさん :03/08/30 22:23
APIを抽象化してどうするんだろう
仕舞いにはマシン語も抽象化しろとか言い出すんだろうか?

173 名前:150 :03/08/30 22:25
>>170
アホか。ただ使いにくいっていってるだけでしょ。
パラメータが無駄に多いのが職人の道具か?
お前の作る関数もあんなに引数が多いのか?
あのクソみたいなパラメータの多さは、関数を使う側を意識して
ないからあるものであって決して質のいいものじゃない。
ただ単に設計失敗してるだけだろ。

あと、もうちょっと使う頻度を考えろ。
あまり使わないものとよく使うものをいっしょにするな。

Clearの例でいうとおおよそ大部分の人間が
Clear()で引数なんてほとんど0(デフォ)で事足りるだろ?

全部覚えるとかいってるやついるけど、この先仕事で俺と
あたったときにその言葉は後悔することになるぞ。
全部覚えるんだなw?(俺だっておぼえちゃいねーのにご苦労なこった)
二言はねーなw?

174 名前:デフォルトの名無しさん :03/08/30 22:36

 さ ぁ 厨 度 が 上 が っ て ま い り ま す た



175 名前:デフォルトの名無しさん :03/08/30 22:44
>>173
気持ちは分かるけど、結局 API であってユーティリティではないと。

ラッパー関数を書いて引数のなしの clear() を作ればいいだけなんですから。
そうすれば、毎回プログラムを書くときに、「なんてパラメーターの群れだ」と
怒りながら長々とカッコの中を埋める必要もなくなります。

176 名前:デフォルトの名無しさん :03/08/30 22:45
Clear() をデフォにしたところで、その内部で
Clear(パラメータいっぱい)を実行することには変わらない。
薄皮1枚レイヤーが被るだけで、そんなことはAPIの仕事ではない。

177 名前:デフォルトの名無しさん :03/08/30 22:46
DirectXのAPIは昔と比べりゃだいぶよくなったが
まだ平均からすれば悪いほうぢゃねーの?

まあ、いろんなハードウェアに対応する必要上仕方ないかもだ。

178 名前:デフォルトの名無しさん :03/08/30 22:49
>>173
APIのような低レベル層だから、必須パラメータは多くなって当然だろーが。
いったいどんなウマーな設計したら、それを減らせる魔法が使えるってんだ。

>全部覚えるとかいってるやついるけど、この先仕事で俺と
>あたったときにその言葉は後悔することになるぞ。
違う意味で後悔しそうだ。
お前みたいなのがいっぱしのプログラマ名乗ってたら洒落にならん。

>全部覚えるんだなw?(俺だっておぼえちゃいねーのにご苦労なこった)
で、それって誰が言ったの?
普通にドキュメント見るだろ。


179 名前:デフォルトの名無しさん :03/08/30 22:54
そもそもデフォルトがどうこう以前に、
そういう前提で踏み込んでいったらClearという命令自体隠蔽される
だがそれはAPIの仕事ではない

180 名前:デフォルトの名無しさん :03/08/30 23:03
DirectXとそこら辺に落ちている【初心者でもできる】みたいな物を
混同しているんじゃないのか?

181 名前:デフォルトの名無しさん :03/08/30 23:23
要するに「俺が使わない機能のパラメーターなんか邪魔だ、そんなもんはDirectXから消せ」
ってことなんでしょ?

アフォか?

182 名前:デフォルトの名無しさん :03/08/30 23:30
なんだマカーがいるのか?

183 名前:デフォルトの名無しさん :03/08/30 23:35
>>181
>俺が使わない機能
っていうけど使う人がいるの?

まあ、こんなにパラメータがあるわりにはついこの間まで
リフレッシュレートの設定すらできなかったからな。
制作者の頭がおかしいのもあながちはずれではない。

184 名前:139 :03/08/30 23:36
うわー何気ない愚痴がとんでもないフレームになってるよTT

漏れが言いたかったのは全然違う事で
引数1つとってもアホみたいに設定できる値があって
どういう設定が一般的でどれがマイナー(ハードによって未対応)で
っていうのがヘルプみてもサパーリわからんし
何を基準に選んでいけばいいのか初心者には難しすぎる
ということ

例えば16bitのバックバッファフォーマットとかだと
32bitはX8R8G8B8が一般的なのにX1R5G5B5に対応してるハードは
あんまり無いみたいなそういう慣例(常識?)がまったくわからない

185 名前:デフォルトの名無しさん :03/08/30 23:48
>>184
ヘルプで説明不足な部分は、サンプルで解消できることが多いよ。

186 名前:デフォルトの名無しさん :03/08/30 23:50
>>183はフリーソフトの作者に要望をつきつけて罵倒するタイプ

187 名前:デフォルトの名無しさん :03/08/30 23:56
>>185
いやサンプルって悪い意味でDirectXのサンプルじゃん
実務レベルのサンプルはそうそう無いんじゃない?
「普通どうするの」ってゲームとかで実装するときに途方に暮れてるんだと思うけど

188 名前:デフォルトの名無しさん :03/08/31 00:00
>>187
よくわからんが、ヘルプ見てサンプル見て、それでも途方にくれてるようなら
無理してDirectXなんて使わなくていいじゃん。

189 名前:デフォルトの名無しさん :03/08/31 00:08
良くも悪くも3Dに関してはまだ発展途上。
わかりにくいとかグデグデ言ってるなら5年くらい待ってろ
そうすれば少しはAPIもサンプルも出そろってくる

190 名前:デフォルトの名無しさん :03/08/31 00:11
つまり大工道具一式が目の前にあって、
周りの家を見ても家の建て方が分からないと言いたいわけだな?
初心者でも簡単に思った通りの家が建てられたら、大工などいらない

191 名前:デフォルトの名無しさん :03/08/31 00:13
で、OpenGLあたりと比較するとそのへんどうなんだ?

192 名前:デフォルトの名無しさん :03/08/31 00:15
変わらん

193 名前:デフォルトの名無しさん :03/08/31 00:26
>>190
俺が設計士やってお前が土方でうまくいくと思うよホント。

194 名前:デフォルトの名無しさん :03/08/31 00:35
>>193
いや、お前の方が土方だよ。
能力要らずで作れる家の設計と部品が上がってくるのを待っている、な。

195 名前:デフォルトの名無しさん :03/08/31 00:54
>>194
いや、大工道具一式目の前に出されても俺には使えないよ。
その代わり設計には自身があるからさ。

196 名前:デフォルトの名無しさん :03/08/31 01:05
ま、無能な奴は消えろってことだ。
いい加減、技術的な話題を振れや。

197 名前:デフォルトの名無しさん :03/08/31 01:15
ちなみに glClear は引数1個ダヨ

198 名前:デフォルトの名無しさん :03/08/31 01:23
>>197
それは素晴らしい!

続きはぜひこちらで
  http://pc2.2ch.net/test/read.cgi/tech/1039984523/

199 名前:デフォルトの名無しさん :03/08/31 02:06
もの凄い勢いでレスついてると思ったら……

200 名前:デフォルトの名無しさん :03/08/31 10:59
結論:( ´∀`)Clearは引数1つで十分。

201 名前:デフォルトの名無しさん :03/08/31 11:20
あっそ

勝手に言っとけ

202 名前:デフォルトの名無しさん :03/08/31 12:18
こんなどうでもいいことで騒いでる奴は
どうせ大したもの作れてないだろ

203 名前:デフォルトの名無しさん :03/08/31 12:35
>>202
上の話はよく読んでないけど引数の数ということで。
塵も積もればなんとやら。
汎用性だとかいって激薄のラッパーしか作らない奴がいて
かなり面倒なソースになってる。
いうまでもなく関数の引数の数が爆発する。
ちょっとしたことでいちいち面倒な設定がつきまとうので
そいつのクラスのラッパーをまた作らないと仕事にならない。
まわりにこんな奴いない?

204 名前:デフォルトの名無しさん :03/08/31 13:09
>>200
>>198へ逝ってください

205 名前:デフォルトの名無しさん :03/08/31 13:12
>>204
OpenGLスレって人少ないの?

206 名前:デフォルトの名無しさん :03/08/31 13:57
Direct3Dでの関数の引数の数だけ、個別の関数呼び出しをするのがOpenGL。
OpenGLで引数が一番多いのはテクスチャの更新だったかな。

void glTexImage2D(
 GLenum target,
GLint level,
GLint internalformat,
GLsizei width,
GLsizei height,
GLint border,
GLenum format,
GLenum type,
const GLvoid *pixels
);

>>147にある引数でここにないフィルタなどの設定は、別の関数で行う。

パラメータが複数必要な機能の実現方法は大きく分けて2つあって
・ステートを持たせて、関数を複数回呼ぶ(GL)
・関数に引数を沢山のせる/構造体を渡す(D3D)
となるわけだけど、その優劣を比べたいのかね?

話題のclearにしても、結局glClearColor()/glClearDepth()を呼び出して
再設定する羽目になると思うんだが・・・

207 名前:デフォルトの名無しさん :03/08/31 14:44
う〜んホント自分の愚痴から全然違う方向に話が進んでる・・・

漏れは引数がいっぱいあろうと別にかまわないし
そんなことでDirectXがクソだと言うつもりも全然無い

大工の話が出てたけど、漏れが途方に暮れたのは
例えばレンチ1つとっても、六角とか四角とかアホみたいに種類があって
しかもそれぞれミリ数がずらっとそろってたりして
自分で使う用に便利セットにまとめようとしたときに
「んで、どれを現場に持ってけばいいわけ?」というところ

つまり引数そのものの数じゃなくて、引数に渡せる膨大な規定値を
何を基準に選べば良いのかほとんどわからない
自分が必要な機能を選べばいいとかいう頓珍漢な答えが来そうなので
話を戻すけど、例のサーフェイスフォーマットでも
X8R8G8B8と似た形式のX1R5G5B5がほとんどサポートされてないみたいな

みんなこういう問題(取捨選択)ってどうしてんの?

208 名前:デフォルトの名無しさん :03/08/31 15:37
どれが来ても良いように、メジャーなフォーマットには全対応

209 名前:デフォルトの名無しさん :03/08/31 15:41
DirectXって、もともと
「与えられた環境で、いかに最速に動かすか」
というコンセプトで、それを目指して、いろんな表現方法を取り入れたみたいだけど、
DX9.0になって、ようやく「意味ねーことやってた」って気付いて、
そこで終わりになったんでしょ。
OSによって資金に余裕ができたから、一つ未知の領域にチャレンジってことだたと想うけど。

漏れ的には、任天堂のゲームキューブの3D開発環境のがよっぽどイイ気がする。
使ったことないけど。

210 名前:デフォルトの名無しさん :03/08/31 15:44
だから、このスレタイには、感心したよ

211 名前:デフォルトの名無しさん :03/08/31 16:43
三角ポリゴンしか使えないって時点で既に鬱だ氏

212 名前:デフォルトの名無しさん :03/08/31 16:46
211氏の文意とは微妙に違うけど…
誰かDirectXで多角形も扱えるようなソースくれないかなぁ

213 名前:デフォルトの名無しさん :03/08/31 16:54
211氏の文意とは微妙に違うけど…
誰かDirectXでNURBSも扱えるようなソースくれないかなぁ

214 名前:デフォルトの名無しさん :03/08/31 17:00
三角ポリゴンだけだとテクスチャがまともに貼れない。

215 名前:デフォルトの名無しさん :03/08/31 17:00
将来NURBSで描画できるようになるかもしれんね。
何年先になるかは知らんが

216 名前:デフォルトの名無しさん :03/08/31 17:20
>>207
とりあえずピクセルフォーマットに関しては
X1R5G6B5とR5G6B5の違いなんて
ロックして書き込むとき以外は考える必要ないから、
取捨選択に迷うことは無い。

>>209
そりゃチップ仕様がキッチリ決まってるコンシューマハードなら楽で当然。
GCに限らずXboxだって同じことかと。

217 名前:デフォルトの名無しさん :03/08/31 17:26
>>216
Xboxは、めんどくさかった。もちろんパソコンよりは、3倍くらい(当社比)マシだったけど。

でも、ヘルプの日本語はPC版のほうがよかった。全く同じ英文を訳している場合でも、
XBOXのほうは、かなりひどい。しかも、PCの例外的なデバイスのための説明文なんか
が削られないまま残っているから、PCで開発した経験のない人には意味不明な
記述が山盛りあった。

218 名前:デフォルトの名無しさん :03/08/31 17:40
>>217
へぇ意外だ。Xbox=PCでグラボ決め打ち感覚と思っていたので。

219 名前:デフォルトの名無しさん :03/08/31 17:40
>>214
三角形だろうと多角形だろうと、頂点の組み合わせが変わるだけで、テクスチャ座標には関係しない
よって三角形ではなくてもオマエは永遠にテクスチャをまともに張ることは出来ない

220 名前:デフォルトの名無しさん :03/08/31 17:42
>>212
俺も欲しいぜ、多角形プリミティブ。
NURBSは来るにしても、多角形は絶対来ないだろうなぁ。

くそぉ、OpenGLなら多角形あったのになぁ。
凸型くらいなら簡単だけど、凹や回が俺にはむりぽ…。

221 名前:デフォルトの名無しさん :03/08/31 17:45
>>219
えとね、Direct3Dで、台形のポリゴンに正方形のテクスチャを
四隅合わせて破綻しない様に貼れる?


222 名前:デフォルトの名無しさん :03/08/31 17:49
>>221
それは三角形だろうが多角形だろうが難易度は変わらない

223 名前:デフォルトの名無しさん :03/08/31 17:51
>>222
ちゃんと考えてくれた? もしくは試してみた事ある?

224 名前:デフォルトの名無しさん :03/08/31 17:53
引数の個数の次は何がネタになってるの?

225 名前:デフォルトの名無しさん :03/08/31 17:53
>>221
「破綻しない」って具体的にどういう状態?

226 名前:デフォルトの名無しさん :03/08/31 17:55
>>225
三角ポリゴンの境目が露骨に出ない かな

227 名前:デフォルトの名無しさん :03/08/31 18:01
結論:
四角形ポリゴンが一発で描画できないDirectXはダサイ。

ところでテクスチャってどうやって貼られるんだろう。
もしかして単に三角形二枚にしてるだけ?

228 名前:デフォルトの名無しさん :03/08/31 18:02
>>226
まず台形にテクスチャを展開するときの種類を答えてください
どの手法を使ったときの話ですか?

229 名前:デフォルトの名無しさん :03/08/31 18:05
>>228
>>221 でも言った様に、四隅合わせてフィット

>>227
低レベルで四角扱えるのは、四隅のUV01にするだけで問題なし

230 名前:デフォルトの名無しさん :03/08/31 18:12
> 四隅のUV01にするだけで問題なし

具体的な処理方法はどんなの?

> 低レベルで

OpenGLは低レベル云々関係ないね。

231 名前:212 :03/08/31 18:15
>>220
おお、同志!用途はなんでしょ?
私は卒研で必要で(多角形自体とは無関係ですが)。
OpenGLだと出来るんですねぇ。乗り換えを検討してみようかな

232 名前:デフォルトの名無しさん :03/08/31 18:15
処理法って何よ。 線形補完で良いのか?

233 名前:デフォルトの名無しさん :03/08/31 18:19
OpenGLネタはOpenGLスレへ

234 名前:デフォルトの名無しさん :03/08/31 18:31
219はどうした

235 名前:220 :03/08/31 18:32
>>231
やぁ、すいません。OpenGLで出来るというのは聞いた話でして
実際は良く知らなかったりで、タハハ。たぶんあると思います。

用途というほどではなく単に趣味です。ただ、空間に好きな多角形を
配置することが出来るだけで、今の仕事、すごい思考の助けになるんです。

tessellationでぐぐると、色々出てくると思います。私には無理でしたが
学術でやっている方なら理解できると思います。
頑張って下さい(そしてソースを公開してください(笑)。

私の場合線だけで十分なんですよね。ただあれだと裏が透けますし…。
前時代に戻って陰"線"処理を勉強してみようか…tessellationよりは敷居が低そうだ…。

236 名前:デフォルトの名無しさん :03/08/31 18:44
>低レベルで四角扱えるのは、四隅のUV01にするだけで問題なし
問題ありすぎです。
そんなことしたら境界線が出て当たり前です。

237 名前:デフォルトの名無しさん :03/08/31 18:47
そもそもVGAが三角形しか描画できないことをご存知ないようです(・∀・)ニヤニヤ

238 名前:212 :03/08/31 18:48
>>235
キーワードありがとうございます。なるほど、多角形を
三角形プリミティブで埋めていく感じなんですね。
しかしこいつは難しそうだ。

手元の教科書見ると隠面処理はあるのですが
隠線処理って載ってないですね。これまた難しそうだ。
そちらもお仕事がんばってください。

239 名前:デフォルトの名無しさん :03/08/31 18:51
>>236-237
的を射てない揚げ足取ってないで、貼れるなら貼ってくれよ。
このままだらだら茶濁してるなら消えるよ。

240 名前:デフォルトの名無しさん :03/08/31 18:51
台形の破綻はどうしようもないと思われ。
別に致命的な欠陥でもなし。

241 名前:デフォルトの名無しさん :03/08/31 18:54
>>239 消えていいよ

242 名前:デフォルトの名無しさん :03/08/31 18:54
で、四角形に正常にポリゴン貼れるの?貼れないの?

243 名前:デフォルトの名無しさん :03/08/31 18:58
なんか、自分はろくに工夫もせずに
低レベル処理層にいちゃもんばっかりつけてる奴が多い。

引数の奴にしても、台形の奴にしても。

244 名前:デフォルトの名無しさん :03/08/31 18:59
>>243
じゃあ 工夫して貼ってみてくれ。 いくら分割しても良い。

245 名前:デフォルトの名無しさん :03/08/31 19:03
>>244
Direct3Dは別に科学技術用じゃないよ?
正確な結果なんていらないの。
1枚のテクスチャを破綻無く貼り付ける必要なんてないの。

246 名前:デフォルトの名無しさん :03/08/31 19:07
木を見て森を見ず

247 名前:デフォルトの名無しさん :03/08/31 19:09
>>245
うん。 三角ポリゴンしか使えないDirect3Dに正確な結果求めてないし、
求めようともしてないけど、219を始め、いまいち意図が分かって無い人が
多い様だから。

248 名前:デフォルトの名無しさん :03/08/31 19:10
あまりにも初歩的な質問にごめんなさい。
抜き色のやりかたがよく分かりません。

D3DXCreateTextureFromFileExでテクスチャーの読み込み時に
ColorKeyを0xFF000000にセットしましたが
その後のアルファ値のブレンディング係数なんかの指定がよく分かりません。
(SetRenderStateとSetTextureStageState)

よろしくお願いします。

249 名前:デフォルトの名無しさん :03/08/31 19:11
>>235 >>238
tessellationはかなり面倒だな
自分も昔やった記憶がかすかにあるけど、あまりスマートじゃなかったっけ
一応コード探したけどみつからずスマソ

大学数学レベルだが、外積が分かる程度でなんとかなったと思う
質問ならこういうスレより学術板行った方がいいかも
あまり携わるもんじゃないから、ここは知ってる人少なそうだ

250 名前:デフォルトの名無しさん :03/08/31 19:11
ともかくVGA自体が三角形しか描画できない仕様なわけで、
三角ポリゴン2枚で描画しようとする以上は、UVが歪むことは避けられん。
これはどのような描画APIを使っても一緒のことです。

>>244
ハードウェアを直に叩く物と考えたほうがいいんでないかな。
ハードの仕様の中での正確な結果は必要です。


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