【C++】 DirectX初心者質問スレ Part36 【C】at TECH
【C++】 DirectX初心者質問スレ Part36 【C】 - 暇つぶし2ch1:デフォルトの名無しさん
11/10/19 22:47:45.95
回答する人も、質問する人も必ず読んでください

これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ

【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
 「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。

【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。

現在の最新バージョンはDirectX 11です。

前スレ
【C++】 DirectX初心者質問スレ Part35 【C】
スレリンク(tech板)

2:デフォルトの名無しさん
11/10/19 22:55:30.98
スレ立て感謝です。

現在D3D11とDirect2DとDirectWriteを同時使用するためDXGIって何ぞや・・と勉強中。
DirectWriteサンプルのGabriolaフォントかっこよすぎワロタ。
実際の処理内容以上にすごいことをやっているように見えるw

3:デフォルトの名無しさん
11/10/21 18:51:17.67
DirectX-ゲームグラフィックス-プログラミング-NextCreator-CREATOR
マスタリングDirectXプログラミング

入門者向けだとどっちがいい本?

4:デフォルトの名無しさん
11/10/21 20:21:04.76
>>3
大きい本屋での立ち読みと、
アマゾンレビューを参考に選ぶべき


5:クリエイト
11/10/22 12:00:25.85
DirectX9で2Dのシューティングを作っていて、自機の表示をrhwで行っていますが、
位置を変える度にバーテックスバッファをロックして座標の変更を行うのは非効率だと思い、
違う方法を考えています。DrawPrimitiveUPを使えばロックせずに済みますが、勉強のためと速度のために
DrawPrimitiveを使った方法にしたいと思っています。

ワールド変換などの行列を使うのかと思いましたが、座標変換済み頂点なので出来ないと思いました。
どういった方法がありますか。

6:デフォルトの名無しさん
11/10/22 12:08:45.68
>>5
数回のDrawPrimitiveで一括描画できれば、upでもそうでなくても
2Dシューティングごときパフォーマンス足りなくなることはないだろう

7:クリエイト
11/10/22 12:13:57.97
パフォーマンスに問題は無いだろうと思いますが、
ビデオカードの扱いに慣れたいのでDrawPrimitiveを使いたいです。

8:デフォルトの名無しさん
11/10/22 19:29:38.75
>>4
大きい書店を回ってみましたがどこにもおいてませんでした(T_T)

9:デフォルトの名無しさん
11/10/22 19:51:22.63
>>7
座標変換済みでも、正射影描画でも
一括ロック&書き変え→一気にDrawPrimitiveすればよろし
ちまちまロックは効率よくないが

10:デフォルトの名無しさん
11/10/22 19:59:44.31
>>8
その大きな書店にある分かりやすそうなのを選ぶのはだめなん?

ここで質問するよりアマゾンレビューの方が参考になるとおもうなぁ

11:デフォルトの名無しさん
11/10/22 20:08:48.57
>>10
情報資格試験や読み物や言語の本ばかりでDirectXの本が全然置いてないんです(;_;)

12:デフォルトの名無しさん
11/10/22 20:48:35.08
三角形ストリップ1つに対してロック1回が最小?
幾つかのストリップをまとめて1回のロックでという訳にはいかないのかな?

13:クリエイト
11/10/22 21:18:12.24
>>12,>>9
いくつかのストリップをうまくまとめて一回のバーテックスバッファの書き換えで済ます方法を思いつきました。ありがとうございました。
それでも毎フレーム一回はロックする必要がありそうです。

14:デフォルトの名無しさん
11/10/23 00:40:38.81
>>11
図書館に取り寄せてもらうか、自分に合わないのを覚悟して買って勉強する。

15:デフォルトの名無しさん
11/10/23 12:38:55.64
まずDirectXでなにをやりたいかによるんじゃないか?
タイトルだけみただけだが
上はグラフィックに重点を置いていて
下は全般的なDirectXくさそう。

個人的にはDirectXの入門書だったら
DirectX9 実践プログラミング( 2.0か1.0でいいとおもう )
11とかやるなら話は別だが入門なら9から初めていいとおもうし

その後Direct3D等々の専門書買うのがベストかと

16:デフォルトの名無しさん
11/10/23 12:54:00.03
DirectX臭そう、まで読んだ

17:デフォルトの名無しさん
11/10/23 14:24:41.53
読力なさ杉ワロタ

18:デフォルトの名無しさん
11/10/23 14:25:52.30
DirectX臭そう、だけ読んだ

19:デフォルトの名無しさん
11/10/23 14:58:43.45
だけ読んだ だけ読んだ。

20:デフォルトの名無しさん
11/10/23 15:01:50.85
だけ読んだ だけ読んだ だけは読んだけど結局どこだけ読めばいいんだっけ?

21:デフォルトの名無しさん
11/10/23 15:18:33.22
DirectX臭そう

22:デフォルトの名無しさん
11/10/23 16:09:44.41
てめぇらツボりすぎだろ


23:デフォルトの名無しさん
11/10/23 17:41:36.66
BAKA BAKKARI

24:デフォルトの名無しさん
11/10/29 14:35:11.37
だな

25:デフォルトの名無しさん
11/10/29 15:30:24.64
ふーん

26:デフォルトの名無しさん
11/10/30 05:36:35.31
Direct3DDeviceって何を表してるの?どの単位で作るものなの?
描画先毎?VRAM毎?GPU毎?

27:デフォルトの名無しさん
11/10/30 06:57:36.71
>26
頂点毎

28:クリエイト
11/10/30 18:57:41.55
テクスチャードクアッドをDrawPrimitive()で2D描画しようと考えていますが、
下記のコードで描画されません。ライティングとマテリアルの設定を変えてみても駄目で、頂点情報の指定で根本的に誤解があるのかもしれないので指摘お願いします。
ちなみに、サンプルからのコピペでXファイルを表示させることはできているので、初期化部分は合っていると思います。

STANDARD_VERTEX lm[4];
LPDIRECT3DVERTEXBUFFER9 vb;
LPDIRECT3DTEXTURE9 pTexture;

STANDARD_VERTEX newVERTEX[]={
{-1.f,0.f,0.f,0,0,-1.f,0xffffffff,0.f,0.f},
{1.f,0.f,0.f,0,0,-1.f,0x55ffffff,1.f,0.f},
{-1.f,1.f,0.f,0,0,-1.f,0x55ff44ff,0.f,1.f},
{1.f,1.f,0.f,0,0,-1.f,0xffffffff,1.f,1.f}
};
memcpy(lm,newVERTEX,sizeof(newVERTEX));
MY_VERTEX_RHW *v;
STANDARD_VERTEX *vv;

pDevice->CreateVertexBuffer(sizeof(STANDARD_VERTEX)*4,0,D3DFVF_XYZ| D3DFVF_NORMAL | D3DFVF_DIFFUSE | D3DFVF_TEX1,D3DPOOL_MANAGED,&vb,NULL);
vb->Lock(0,0,(void **)&vv,0);
memcpy(vv,lm,sizeof(STANDARD_VERTEX)*4);
vb->Unlock();

//ワールド、ビュー、プロジェクション変換省略。

pDevice->SetTexture(0,pTexture);
pDevice->SetStreamSource(0,vb,0,sizeof(STANDARD_VERTEX)*4);
pDevice->SetFVF(D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_DIFFUSE | D3DFVF_TEX1);
pDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP,0,2);

29:クリエイト
11/10/30 18:59:41.09
追記です。
DirectX9で
struct STANDARD_VERTEX{
float x,y,z;
float nx,ny,nz;
D3DCOLOR colour;
float tu,tv;
};
です。スレ汚し失礼しました。

30:デフォルトの名無しさん
11/10/30 19:07:12.03
>>28
SetStreamSourceの最後の引数のstrideは1つの頂点のサイズじゃね?
つまり*4がいらねぇんじゃないかな?
しばらくDirectXから離れてたから違ってたらごめん。

31:クリエイト
11/10/30 19:27:46.28
回答ありがとうございます。msdnで確認したところ確かに一つ当たりでしたので、*4を外したんですが、
やはりまだ描画されていません。まだ間違っているところがあるみたいです。

32:デフォルトの名無しさん
11/10/30 19:40:10.21
初期化処理って
パラメータセットの配列にゲームを実行可能なパラメータのすべての組み合わせを性能の良い順に詰めて
初期化が成功するまで配列を走査、全部失敗したらエラー通知
みたいな感じでいいの?


33:デフォルトの名無しさん
11/10/30 20:09:26.80
>>29
CULL_MODEどうしてる? XYZRHWだとY+が下でXYZだとY+が上方向とかになって時計回りが上下反転するとかありそうだけど。
xファイルを原点で表示しながら横にそのソースを埋め込んでみたりは?
ライティングも疑うならNORMAL消してやってみるってのもどうか?
SetTextureStageStateも疑いたいからDirectXSDKのTut05_Texturesあたりに埋め込んでみて出るかどうか試してみるとか。
あんま役に立たなくてごめん。

>>32
いいんじゃね?
動く最低条件から調べて後はあればいいなって機能が使えればそっち優先するようにするのでもいいし

34:クリエイト
11/10/30 20:21:10.04
>>33
カリングNONEにしたら描画されました。感動しました。
仰るとおり、上下逆になったので調整が必要ですが。
本当にありがとうございました。

35:デフォルトの名無しさん
11/10/30 20:56:54.78
>>34
解決してよかった。

XYZRHWでシューティング作ってた人だよね?
XYZになったのならついでにXYZB1とかの行列インデックス使って
行列だけで自機や弾の移動とかやるのも面白いかもよ
STRIPだと縮退させない限りつながっちゃうからTRIANGLE_LISTでDrawIndexedPrimitiveになると思うけど
256個までの弾なら一度に描画できるようになる
(頂点ロックの代わりに行列の転送になる)

さらに自分でシェーダー書くなら4x4のfloatでなく2D平面の場合3~4個のfloatだけでxyと回転(スケール)ができるよ

36:デフォルトの名無しさん
11/10/31 00:31:05.54
DirectXでオブジェクトを1回送っただけで複数のカメラから見た画像を1度にレンダリングできますか?


37:デフォルトの名無しさん
11/10/31 01:12:19.75
送るのは1回でもいいけど一度にレンダリングは無理だなぁ
VertexBuffer使いまわしで何度かViewMatrixだけ回転とかさせてそのたびにDrawPrimitive系でレンダリングになっちまう

38:デフォルトの名無しさん
11/10/31 13:53:19.93
>>26

39:デフォルトの名無しさん
11/10/31 15:03:27.89
>DrawPrimitive系でレンダリング
DrawPrimitiveの時点ではレンダリングなどされないんだが、何の話をしているんだ?

40:デフォルトの名無しさん
11/11/01 00:52:51.15
>>39
発言が下らないよ

どっちにしてもzバッファもめちゃくちゃじゃね

41:デフォルトの名無しさん
11/11/01 09:36:46.12
BackBufferWidth, BackBufferHeight
これはフルスクリーンの時はデバイスがサポートしてる値
ウィンドウなら自由(123などの半端な数でも可)ということでおk?


42:デフォルトの名無しさん
11/11/01 12:29:23.97
イエス

43:デフォルトの名無しさん
11/11/01 12:29:41.16
IDirect3D9に有効なDepthStencilFormatを列挙するメソッドがないとかおかしいだろ
どうやって調べるんだよこれ

44:デフォルトの名無しさん
11/11/01 12:33:05.58
有効なって何よ
IDirect3D9::CheckDepthStencilMatchで駄目なん?

45:デフォルトの名無しさん
11/11/01 12:52:07.46
初歩的な質問かもしれませんがお願いします。
背景に画像を描画する状態で、10~20ほどの物体を個別に回転させたいのですが、
デバイスやスプライトはその数だけ生成する必要があるのでしょうか。

46:デフォルトの名無しさん
11/11/01 13:07:48.12
>>45
まずはチュートリアルをやれ。

47:デフォルトの名無しさん
11/11/01 13:19:37.00
>>42
あざっす


48:デフォルトの名無しさん
11/11/01 14:45:03.76
>>47
いえいえ

49:デフォルトの名無しさん
11/11/02 17:28:52.48
>>43
documentよめよ

50:デフォルトの名無しさん
11/11/02 17:35:50.23
D3DFMT_D16の決め打ちでおk
だいたいこんな所でコケるしょんぼりシステムで派手なゲームがまともに動くわけない

51:デフォルトの名無しさん
11/11/02 19:50:45.27
さすがにD_16はないわ。
なんもできねー。

52:デフォルトの名無しさん
11/11/02 21:44:38.14
転売用にAmazon自動予約スクリプト使いたいけど、パソコンの台数と、回線の数、どっちが大事?

53:デフォルトの名無しさん
11/11/02 21:45:41.60
>>52
ルールを守るのが大事。

54:デフォルトの名無しさん
11/11/02 23:05:10.63
>>51
でも32だとクソ重くなるな
いまどきのグラボって速いところはクソ速いけど遅いところはちっとも進化してないな
塗りとかいまだにアフォかってほどおもいな

55:デフォルトの名無しさん
11/11/04 00:36:34.09
頂点色じゃなくてマテリアルのディフューズ色を使ってポリゴンを描画させたいのですが
pID3DDevice->SetRenderState(D3DRS_COLORVERTEX, FALSE);
これでは頂点色が使われてしまい
pID3DDevice->SetRenderState(D3DRS_COLORVERTEX, TRUE);
pID3DDevice->SetRenderState(D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_MATERIAL);
これでもやはり頂点色が使われ、マテリアルの色は全く反映されません

ヘルプを見るとこれらのレンダーステートを設定すれば良いと思ったんですが
私の解釈が間違っているんでしょうか

56:デフォルトの名無しさん
11/11/04 00:55:19.69
ライティング無効にしてるとかじゃないの?

余計なこと考えずに、SDKチュートリアルを4番から真似てりゃできると思うけどね

57:デフォルトの名無しさん
11/11/04 02:55:50.84
表示キャラクタの移動量(dx, dz)から角度を計算したいんですが同じベクトル
または逆方向のベクトルの時にNaNになってしまいます(dxが0だと時々発生)

float angle;
D3DXVECTOR3 v(dx, 0, dz);

D3DXVec3Normalize(&v, &v);
angel = acosf(D3DXVec3Dot(&D3DXVECTOR3(0.0f, 0.0f, -1.0f), &v));

一応無理やり

if (!(ang < 7.0f)) ang = (va.z < 0.0f) ? 0.0f : D3DX_PI;

みたいにして対応してるんですがもっとスマートな方法はないでしょうか?
移動方向にキャラクタを向けたいんです

58:57
11/11/04 02:57:27.56
if (!(angle < 7.0f)) angle = (v.z < 0.0f) ? 0.0f : D3DX_PI;
でした

59:デフォルトの名無しさん
11/11/04 03:23:37.56
深夜のテンションでレスするとatan2じゃなくてacosfでいいのかな?

60:デフォルトの名無しさん
11/11/04 08:55:06.41
2Dなら単位ベクトルの成分でatan2するだけでおk


61:57
11/11/04 09:48:42.64
>>59-60
余計な処理もなく1行になりましたw
ありがとうございます

62:デフォルトの名無しさん
11/11/04 10:20:35.44
あ、ていうかノーマライズもいらないか
(x,z)==(0,0)の時だけ注意してatan2(x, z)でいい

63:デフォルトの名無しさん
11/11/04 17:21:46.75
自分で作るdirectxのゲームはフルスクリーン時でも簡単にキャプチャ取ったり
デュアルウィンドウの時はカーソルを隣のウィンドウに行き来したりしたいんですけど
ひょっとしてフルスクリーンで行うのは実は無理でウィンドウバーを消した拡大表示をするしかないですか?


64:デフォルトの名無しさん
11/11/05 12:42:42.88
>>63
ん?・・・

65:デフォルトの名無しさん
11/11/05 13:57:20.66
ひょっとしてウィンドウモードの時って1ピクセルでも描画領域のサイズが変化したらリストアするべきなんですか?

66:デフォルトの名無しさん
11/11/05 14:38:37.07
>>65
バックバッファとウィンドウのサイズが常に一致することが望ましいならね

まあ、リサイズ時のデバイスのリセットを回避したいだけなら
デバイス作成時の既定のスワップチェインは無視して
ウィンドウに追加スワップチェインを割り当てると
リサイズ時は追加スワップチェインを作り直すだけで済むよ

ツール上のレンダリングを想定しててXP捨てていいならD3D11にするのがベストだけどね

67:デフォルトの名無しさん
11/11/05 18:10:59.46
へえ

68:55
11/11/05 22:03:11.27
>>56
2D描画なのでライティングは無効にしているんですけど、ライティング無効だと頂点色を使うことしかできないんですか?
頂点色を変えるのにいちいち全ての頂点の色変えるのもなあ、と思い、マテリアルのディフューズ色で出来たらと思ったんですが
できないっぽいですね・・・ 素直に全ての頂点色を変えようと思います

69:55
11/11/05 22:10:09.80
へえ

70:デフォルトの名無しさん
11/11/05 23:01:50.29
>>68
シェーダ使えやハゲ

71:デフォルトの名無しさん
11/11/06 00:09:15.65
>>68
D3DTSS_CONSTANT/D3DTA_CONSTANTあたりで出来るんじゃねえの

使ったこと無いけど

72:デフォルトの名無しさん
11/11/06 10:40:44.70
(´・ω・`)無いけどね

73:デフォルトの名無しさん
11/11/06 16:27:22.43
そんな事するぐらいなら頂点色使うわ

74:デフォルトの名無しさん
11/11/06 19:15:57.63
>>73
頂点色つかうよね

75:デフォルトの名無しさん
11/11/07 06:51:31.13
頂点色を変えるのにいちいち全ての頂点の色変えるのもなあ
って何?

76:デフォルトの名無しさん
11/11/07 06:57:55.89
モデラーに無い機能実装して実機でしか見れない状況作って
仕事増やして自分の居場所を確保するとか涙ぐましいにも程がある

77:デフォルトの名無しさん
11/11/07 07:13:45.05
D3DXCreateTextureで生成したテクスチャに図形ソースのマスク後付けって出来ます?

78:デフォルトの名無しさん
11/11/07 07:30:27.01
ロックしてアルファ値に書き込めばいいじゃねえの

79:デフォルトの名無しさん
11/11/07 11:25:52.54
>>78
なるほど
あざまーす

80:デフォルトの名無しさん
11/11/07 16:12:05.63
遅そうだけど

81:デフォルトの名無しさん
11/11/07 18:23:09.94
>>79
いえいえ

82:動け動けウゴウゴ2ちゃんねる
11/11/08 00:01:13.61
超初心者なんですが、Managedで勉強少ししたんですが、
C++で勉強した方が後々良いのでしょうか。
ちなみに、C#で正四面体を表示しようと
URLリンク(sorceryforce.com)
上記のページを参考にコードを書いたのですがうまくいきません
スレ違いはわかってますが、できれば教えていただきたいです。
private byte[] vertexIndices = new byte[] {
0,1,3,
3,2,1,
1,0,3,
3,2,0
};
vertex = new VertexBuffer(typeof(CustomVertex.PositionColored),
4, device, Usage.None, CustomVertex.PositionColored.Format, Pool.Managed);
using (GraphicsStream data = vertex.Lock(0, 0, LockFlags.None))
{
CustomVertex.PositionColored[] vertices = new CustomVertex.PositionColored[4];
vertices[0] = new CustomVertex.PositionColored(1f, 1f, 1f, Color.Red.ToArgb());
vertices[1] = new CustomVertex.PositionColored(1f, -1f, -1f, Color.Green.ToArgb());
vertices[2] = new CustomVertex.PositionColored(-1f, 1f, -1f, Color.Blue.ToArgb());
vertices[3] = new CustomVertex.PositionColored(-1f, -1f, 1f, Color.Yellow.ToArgb());
data.Write(vertices);
vertex.Unlock();
}
indexBuffer = new IndexBuffer(device, 4 * 3 * 1, Usage.WriteOnly,
Pool.Managed, true);
using (GraphicsStream data = indexBuffer.Lock(0, 0, LockFlags.None))
{
data.Write(vertexIndices);

indexBuffer.Unlock();
}

83:82
11/11/08 00:03:36.60
なんか名前欄の名前がどっかでコピーしたものを
そのままペーストしてしまったみたいで、気にしないでください。

84:デフォルトの名無しさん
11/11/08 00:04:55.35
Managed Directxとかオワコン
SlimDXかXNA推奨

85:デフォルトの名無しさん
11/11/08 10:17:20.86
XNAは資料とかあるけど、SlimDXはほとんどないよね


86:デフォルトの名無しさん
11/11/08 11:55:39.41
ただのラッパーに必要な資料とは何ぞや

87:デフォルトの名無しさん
11/11/09 06:53:02.80
>>82
パッと見、vertexIndicesがbyte配列なのがまずいんだと思うよ。
short配列にするかint配列にしてsixteenBitIndicesをfalseにしてやってみ。

88:デフォルトの名無しさん
11/11/11 17:16:53.86
頂点ブレンドに関して、線形でやっていたのですが、つぶれに我慢できずデュアルクォータニオンにしてみました。
しかしねじれに関しては中々なのですが、曲げに関しては膨らんでしまうのがどうも・・・。

知人に、今はデュアルクォータニオンより良いブレンド方法があると聞いたのですが、どういうものなんでしょうか?

89:デフォルトの名無しさん
11/11/11 17:55:05.98
>>88
知人に聞け

90:88
11/11/11 18:16:01.14
知人はモデラーでして、曖昧な上にプログラム的なことはさっぱりなのです
検索しても出てきませんし、知人の勘違いですかねぇ

91:デフォルトの名無しさん
11/11/11 20:16:39.47
>>90
モデリングソフトの話ならメーカー独自のワケわからんのがたくさんある
でも計算式が公開されてるわけではないんだぜ

92:デフォルトの名無しさん
11/11/11 23:34:35.46
曲げに関して膨らんでしまうのはブレンド手法うんぬんよりも
むしろデータの方に問題があるんじゃね。
どんな入力データでも破綻なく描画できる魔法のブレンド手法っつー意味ならないよ。

ところでここは初心者スレな。

93:デフォルトの名無しさん
11/11/12 00:51:55.22
上級者スレなんかあるのか
鬱出し脳スレも昔になりにけり

94:デフォルトの名無しさん
11/11/12 05:54:09.18
C++とDirectxSDKを落として参考書もそろえたのに、1週間経ってもエラーだらけで何も始められていない
何がいけないんだ・・・

95:デフォルトの名無しさん
11/11/12 06:22:18.55
>>94


96:デフォルトの名無しさん
11/11/12 13:58:21.75
誰か上級者スレ立てろよ
俺みたいなスーパーハイレベルプログラマになると
このスレの話題は初歩的すぎて暇つぶしにもならない

97:デフォルトの名無しさん
11/11/12 15:37:25.85
上級車は自己解決できるから、スレなど不要。

98:デフォルトの名無しさん
11/11/12 18:08:57.81
中級者は?

99:デフォルトの名無しさん
11/11/12 19:02:16.49
ハイパーかわいいスーパープログラマなオレも中級以上スレはあればうれしいな
会社でいまだにXP使わされてるやついるから9まででしかプログラムさせてもらえないオレに
テッセレーションとかの話題を見せ付けて癒してくれ

100:デフォルトの名無しさん
11/11/12 19:06:59.99
曲線の話ならもしかしたらいくつかのサンプル点から連立方程式を解けば計算式が出・・・無理無理w

101:デフォルトの名無しさん
11/11/12 21:01:57.59
サンプル点の最小の数としてとりあえず3つのP0、P1、P2があるとして
そこからコントロールポイントを各線に二つ生成して3次ベジェを作るとする
(3次はいろんなお絵かきソフトで使われてて馴染み深いから)

P1の両脇に生やすCPのの傾きは
sv = normalize( P2 - P0 )
もしくは
nv = normalize( P1 - P0 ) + normalize( P1 - P2 )
cv = P2 - P0
sv = cv - nv * dot( cv, nv )
とかやって長さは∠P1の角度をもとに線の長さの1/3~2/3あたりになるようにし
3次元上に曲線を引いてみたら結構きれいにいったんだけど
それをPathとしてキャラを歩かせたりしたら
当たり前だが速度が一定にならず困ったもんだ。

ニコニコで有名なあのPV作成ツールのように時間軸も曲線で補間するしかないが
あれのパラメータでやると二分探索(Newton法)かBezierClipで求めることになるのかな

とかそういう話題でハイパーかわいいスーパープログラマ、オレを癒してくれ

102:デフォルトの名無しさん
11/11/12 21:10:05.24
3D技術の話はスレチ
ここはDirectXを応用する前段階の人が来るスレです

103:デフォルトの名無しさん
11/11/12 23:08:23.59
>>101
てか、こんな馬鹿な方法で1メーカーの1コンテンツを再現できるわけない
っていう予想も立てられずにやってみてる時点で無駄てか馬鹿

104:デフォルトの名無しさん
11/11/13 11:41:55.56
3Dアルゴリズム全般
スレリンク(tech板)

105:デフォルトの名無しさん
11/11/15 22:05:26.53
モニタの解像度より小さくできないゲーム(アプリでサイズを変更したら右と下が切れる)があるんだけど
これをキャプチャして縮小して再表示して遊ぶ、みたいなことはDirectXでできる?

106:デフォルトの名無しさん
11/11/15 22:08:54.98
常にフルスクリーンなアプリなの?
意味が分からん

107:デフォルトの名無しさん
11/11/15 22:17:49.55
今使ってるモニタよりゲームの要求してる解像度のが大きいということです
ゲームのクライアント領域が1024*768(無理やり小さくすると右と下がはみ出て描画されない)だけどモニタが1024*600しかない、という感じで


108:デフォルトの名無しさん
11/11/15 23:29:19.53
>>107
キャプチャ・縮小再表示まではできる
遊べるかどうかは君のパソコンのスペック次第だろうが・・・無理だろ?
でかいディスプレイ買うべきだと思うけど、きっとネットブックか何かだろ?

109:デフォルトの名無しさん
11/11/16 00:09:47.55
CreateFont関数って実用性ありますか?
ノベルゲームで使えるぐらい文字を表示したら遅かったりしませんかね?

110:デフォルトの名無しさん
11/11/16 00:14:40.17
ID3DXFontですね、すみません

111:デフォルトの名無しさん
11/11/16 08:50:57.20
>>110
bitmap画像用意する方法と比較検討したことがあるけど、速度面で大して有利でもなかった
ノベルゲームで使う分には申し分ないはずだけど、過去の資産があるなら乗り換えるほどじゃないよ

112:デフォルトの名無しさん
11/11/16 17:41:49.71
>>111
なるほどありがとう

113:デフォルトの名無しさん
11/11/17 03:25:08.69
Direct3Dのベクターデータをプリンターに出力することってできますか?

114:デフォルトの名無しさん
11/11/17 08:09:33.43
レンダリング結果じゃなくベクトル?
まわりではポリライン使ってる人が多かったかも、ノーマライズしてるのだけ色分けしたりしてた

115:デフォルトの名無しさん
11/11/17 12:11:55.30
>>114
>レンダリング結果じゃなくベクトル
そうです。ベクトルデータを出力したいです。
四苦八苦しましたが、どうも無理な気がして質問してみました。
ポリラインですか。ちょっと調べてみます!



116:デフォルトの名無しさん
11/11/17 12:24:49.40
どういうふうに出力したいのか不明だし、それが分からない限り無理だろう。

117:デフォルトの名無しさん
11/11/17 12:34:48.53
初心者スレだし、質問者に正確さだとか詳細さを求めてもなあ

118:113
11/11/17 12:40:34.79
>どういうふうに
Direct3Dで描画してるんですが、
デバイス作成(CreateDevice)時にウィンドウのハンドルを渡しますよね。
プリンターの場合はウィンドウハンドルが存在しないのでデバイス作成できずに困っている状態です。。。



119:デフォルトの名無しさん
11/11/17 13:39:36.16
ほら、結局は話を聞かないで余計な気を回すと、こういうくだらない落ちになる。

120:デフォルトの名無しさん
11/11/17 14:49:08.99
>>118
発想の飛躍っぷりがすげー。
プリンタ(プロッター?)をD3Dデバイスとして扱おうってのは完全に用途外だし無理な相談。

そもそもD3Dを使わなきゃいかんほどのリアルタイム性が求められるような話でもないだろうから
それ用に設計された別のライブラリ探すか自力で組むかした方が早いと思うよ。

D3Dは3Dに関することなら何でもやってくれる魔法のライブラリ、ではないので。

121:デフォルトの名無しさん
11/11/17 15:08:43.95
単にサーフェイスへレンダリングした後、それをBltすればいいだけの話。
D3Dは何でもやってくれる訳じゃないが、今回のケースぐらい処理できる。
直前にアホが混ざってるけど。

122:デフォルトの名無しさん
11/11/17 15:28:20.05
デバイスコンテキストハンドルとDirect3Dのデバイスをごっちゃにしてるのかね
秒間60枚印刷するプリンタを想像してワロタ、パラパラ漫画とか作れそうだな

123:デフォルトの名無しさん
11/11/17 15:47:43.50
>>121
>>115見る限りベクター形式の(解像度非依存の)印刷用データを
D3D使って吐きたい、というように読めるんで
そういう方向には対応してませんよという意味での「魔法のライブラリではない」なんだけど。

124:デフォルトの名無しさん
11/11/17 15:48:51.27
物理的に印刷して遊べるゲームか
プリンタ何台必要なんだ


125:デフォルトの名無しさん
11/11/17 18:05:21.70
環境型ゲームで主人公がカメラ持ってて、写真取ると物理的にプリンタから出てくるとか。妄想妄想・・・。

126:113
11/11/17 18:19:10.50
自分の無知と言葉足らずのせいで混乱させてしまったようでスイマセン

「プリンターに出力」というのは紙を印刷するわけではなく
具体的には「仮想プリンタドライバに出力」するのが目的です

>>121
>それをBltすればいいだけ
Bltしちゃうとベクトルデータではなくなってしまいますよね?
D3Dにおけるベクトルデータがどれにあたるのかが分かってないですが。。。

>>120
勝手な推測ですが、あなたは私の目的を過不足なく理解してくれている気がします
>プリンタ(プロッター?)をD3Dデバイスとして扱おうってのは完全に用途外だし無理な相談
このトドメのひとことを言ってもらって諦めがつきました

頂いたレスにあるようにリアルタイム性が求められる部分ではないので
描画方法を変えるしかない、というのを前提に対策を考えようと思います

127:デフォルトの名無しさん
11/11/17 19:16:24.47
ベクトルが何か分からないってのはかなり問題、3Dの基礎から順番に学ぶべきかと

128:デフォルトの名無しさん
11/11/17 19:28:34.98
出力結果をどうしたいのかはっきりしないのに、
プログラムの組みようがないだろう。

129:113
11/11/17 19:57:43.80
>>127
>3Dの基礎から
その通りですね
現状のコードは自分が書いたものでなく、処理の流れを最初から確認していったら
初っ端のCreateDeviceで困ってしまったという情けない状態です。。。
GDIでの処理は経験あるので簡単にできるとナメてました

>>128
出力結果をどうしたいのかはハッキリしているので大丈夫です
ただ、D3Dを使わずに現状の処理を実現できるんだろうか、と途方に暮れています

最悪BMPデータで妥協するしかないかもしれません

130:デフォルトの名無しさん
11/11/17 20:05:55.76
3Dグラフィックスなんかで使う数論的な意味での「ベクトル」と
画像データの格納形式区分としての(ラスターに対する)「ベクター」は
言葉としては同じvectorだが全然別の概念なので注意な。

131:デフォルトの名無しさん
11/11/17 20:08:28.76
>>129
たぶんあなたに必要なのはベクトルや行列を計算するライブラリであってDirectXではない
Direct3Dってのは最終的にラスタライズする使い方がメイン、これに固執してもきっと遠回りになる

132:113
11/11/17 21:21:38.97
>>131
>たぶんあなたに必要なのはベクトルや行列を計算するライブラリであって
いえソッチじゃないです
>画像データの格納形式区分としての「ベクター」
こっちです

GDIでの画像処理の経験はあるのでそのへんの混乱はしてないです
日本語で表記するときベクターって書いたりベクトルって書いたりしちゃいますけど

133:デフォルトの名無しさん
11/11/17 21:27:44.58
まずはプリンタに出力したいものをディスプレイに出せ。
あとはプリンタのDCにBltすれば解決する。
ただそれだけの話だ。

134:113
11/11/17 22:01:11.82
>>133
>プリンタのDCにBltすれば解決する
BltしちゃうとBMPデータになっちゃいますよね?
最悪そうするしかないかと思っているんですが、
自分がやりたいのはベクトルデータの出力なんですよ。

かなり無理のある話だとは思うんですが。。。

135:デフォルトの名無しさん
11/11/17 22:29:55.74
プリンタもディスプレイと同じ、点の集合で紙の上に何かを表示するデバイスだ
抽象的な話をしててもきりがない、具体的にプリンタの機種名出せよ

136:デフォルトの名無しさん
11/11/17 22:32:16.72
2Dのベクタ画像を3D空間中で処理して、その結果をまたベクタ画像として取り出したいの?
だったらビューポート変換までやった後の画面バッファから頂点位置取り出せばいけるんでない?

137:デフォルトの名無しさん
11/11/18 03:37:42.92
>>132
君がご所望のは以下のようなものだと思うのだけど、DXは関係ないと思うナー。
URLリンク(ja.wikipedia.org)

モデラー作って変換して印刷って感じになるような気がする、気がする。

138:113
11/11/18 12:34:02.44
>>135
>プリンタもディスプレイと同じ、点の集合で紙の上に何かを表示する
いいえ違うと思います
プリンタは処理するときに点の集合でなくベクトルデータとして処理しています
自分は仮想プリンタドライブに出力し、
ベクトル形式の画像ファイルを作るのが目的です(これができれば紙にも印刷できると思いますが)。

>>136
ありがとうございます
調べてみます!

>>137
そうです。MetaFileのようなベクトル形式のデータが欲しいです
そのデータを作るうえでD3Dを利用できないのかなあと暗中模索しているところです

おそらく結論は>>120ってことになる気がしています。。。

139:デフォルトの名無しさん
11/11/18 12:36:47.21
>>138
>プリンタは処理するときに点の集合でなくベクトルデータとして処理しています
それはプロッタじゃ

140:デフォルトの名無しさん
11/11/18 13:09:28.89
>>138
プリンタの実装にもよるけど基本的に現行のプリンタは原理的にラスターではあるよ。
内部的にPostscriptやらHPGLやらのベクターデータを実装してるような機種もあるけど
いわゆるレーザープリンタとかインクジェットプリンタってのは最終的には全部ラスターに変換される。
ペンを使ってドローするタイプであれば確かに原理的にベクターだけど、それは>>139の言う通り、普通はプリンタとは言わずにプロッタと言う。

なんつーか>>135もあなたも自分のフィールドの知識だけで物事を断定するのは止めたほうがいいと思うよ。
っていうかもう結論出てるんだしそろそろスレチ。

141:113
11/11/18 18:22:37.79
>>140
そうですね、「プリンタ」だと間違いですね

140さんの言う通り、話題がプリンタになってしまっているんで、ここらで終了にして下さい
色々と教えて頂きありがとうございました

142:デフォルトの名無しさん
11/11/19 20:07:21.74
どこかにDirectShowのサンプルプログラム置いてるとこ無いですか?

143:デフォルトの名無しさん
11/11/19 22:47:55.58
C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow
あたりはどうだ?

144:デフォルトの名無しさん
11/11/19 22:59:37.67
>>143
7.1には入ってるのか。7.0なんだけど入ってなかったわ。
んで、7.1入れようと思うんだけど7.0は消しちゃっていいの?

145:デフォルトの名無しさん
11/11/19 23:15:06.61
D3DXCreateTextureFromFileEx();でWidthとHeightに0を渡すと、
例えば元のファイルが96*48だったときには実際には128*64で読み込まれるではないですか
このとき元の画像は128*64に拡大されるのですか
それとも元の画像はそのまま左上に寄せられて、他の部分は何かで埋められてしまうのですか

146:デフォルトの名無しさん
11/11/19 23:17:08.25
埋立工事されます

147:デフォルトの名無しさん
11/11/19 23:22:37.90
どういった素材で埋め立てられるのですか

148:デフォルトの名無しさん
11/11/19 23:44:55.87
>>144
うちのv7.0には入ってるんだけど 入れるときにケチってカスタムでサンプルのインストール省かなかった?

めんどくさくてv7.0消さずにv7.1入れちゃったけど7.0のほうにあって7.1にないものってなさそうだし消しちゃってもいいんじゃね?

149:デフォルトの名無しさん
11/11/20 00:06:09.59
>>148
ありがとう。
7.0は元から入ってたわ。もしからしたらVC++入れるときに一緒にインスコされたのかな。
7.0は一応そのままにしてインスコしますた。

150:デフォルトの名無しさん
11/11/20 00:53:27.01
>>145
フィルタの設定次第でどれにでもなる

151:デフォルトの名無しさん
11/11/20 01:58:03.34
透過についての質問です。
URLリンク(uploader.sakura.ne.jp)
上のようなエフェクトを実装しようと考えているのですが、
このような透過のポリゴンを描画する場合、お互いに前後干渉してしまってうまく描画されません。
URLリンク(uploader.sakura.ne.jp)
上の図で説明すると、赤の右側を描画する場合、先に奥の黄色がないといけないし、
かといって黄色を先に描画すると左部分で赤が先に描画されていないといけないしでうまくいきません。
どのようにすればこの問題を解決できるでしょうか?

152:デフォルトの名無しさん
11/11/20 02:20:36.83
円じゃなくて半円の画像にすればいいじゃん

153:デフォルトの名無しさん
11/11/20 02:24:20.44
>>152
その方法だと回転しながら描画した場合にやっぱり干渉してしまいますね...。

154:デフォルトの名無しさん
11/11/20 02:27:18.18
画像を表示で前後関係がうまくいかないってことならわかるけど
メッシュだったらなぜそうなるのか分からない

155:デフォルトの名無しさん
11/11/20 02:35:05.96
あんまりいい方法じゃないかもしれんけど、クロスしてるメッシュ2枚をY軸でナイフ入れて4枚に分割するとかはどうだろう。

156:デフォルトの名無しさん
11/11/20 02:38:32.56
加算で描けば?
Zの書き込みはDisableで。

157:デフォルトの名無しさん
11/11/20 03:17:46.77
分割面が常に固定ならクリッピング使って交差面の前と後2パスとかで描けるだろうけど
例示されたエフェクトみたいなのならそんなにコストかけるようなもんでもないし素直に加算使っとけだな。
α付き交差ポリゴンを1パスでお手軽に綺麗に描く方法はいまんとこない。

まさか単純にZWriteとかZCompの使い方がわからんっていう話じゃないよな?

158:デフォルトの名無しさん
11/11/20 16:25:05.98
>>151はエロサイトへの誘導、通報済です。

159:デフォルトの名無しさん
11/11/20 23:06:29.93
URLリンク(iup.2ch-library.com)

文字化けするんですが、直せますか?

160:デフォルトの名無しさん
11/11/21 00:59:04.71
>>159
CharSetが0ってAnsiじゃね? そこをSHIFTJIS_CHARSETにして
FaceNameはフォントの名前の設定だと思うから"MS Pゴシック"とかそのへんだろ

161:デフォルトの名無しさん
11/11/21 01:06:12.51
>>160
マジ神
ホントに出来た

162:デフォルトの名無しさん
11/11/21 08:20:20.64
リファレンスよめよ、、、

163:デフォルトの名無しさん
11/11/21 11:41:48.09
マジ神とか回答者をバカにしてるとしか思えんわ。
礼の言葉くらいきちんと言え。

164:デフォルトの名無しさん
11/11/21 12:53:47.66
そんなんでいちいち目くじら立てるなら初心者スレなんて見なけりゃいいだろ…

165:デフォルトの名無しさん
11/11/21 13:32:03.51
ここは紙スレですか?

166:デフォルトの名無しさん
11/11/21 16:18:12.98
IDirect3DDevice9からD3DPRESENT_PARAMETERSを取得する方法はないので自分で保存するしか無いってことでいいんですか?

167:デフォルトの名無しさん
11/11/21 17:11:19.06
スワップチェイン経由で取るがよい

168:デフォルトの名無しさん
11/11/21 22:09:05.19
あのDirectX9で2D描画したいと思っています
DrawPrimitive系の関数って実用的にはどう使われて居るのですか
DrawPrimitiveは遅いので呼び出しは一フレーム一度だけにしろと云われたのですが
そうなると複数テクスチャとか複数ポリゴンを扱うときに一体どうしろと云うのですか
あと3Dゲームでの実用についても知りたいです

169:デフォルトの名無しさん
11/11/21 22:12:49.13
>>167
ども

170:デフォルトの名無しさん
11/11/21 23:14:14.45
>>168
Direct3D9って前提で話をするけど、余程カリカリにチューニングするってんでもなければ
大体「ポリゴン単位で呼び出すな」程度の認識で大丈夫。
1フレーム1回ってのは流石に現代では無理がある。
余程古いハードウェアを前提にするんでもなければ別に数十回DrawPrimitive呼び出ししても60fpsは出るよ。
もちろんまとめられるようなパスは可能な限りまとめるべきだけど。

171:デフォルトの名無しさん
11/11/21 23:18:20.29
一般的に見て一番早い描画法はなんなの?
インデックスバッハとかいうやつですか?

172:デフォルトの名無しさん
11/11/21 23:42:21.22
>>170
ありがとうござます
ポリゴン単位とはつまり長方形の板ポリ一つずつということで合ってますか
それと、まとめるというのは頂点バッファをと云うことですよね
もしそうならテクスチャも纏めなければなりませんか
ユーザ側で元画像を用意してもらい、また任意で板ポリの数を増やして貰おうと思っているのですが、
画像を纏めるのをユーザが負担すると云うのは考えたくないものです

173:デフォルトの名無しさん
11/11/21 23:45:07.19
>>171
一応インデックスバッファありの方が行列演算の絶対数は減るので
GPU的には早いとは言える。
正直それ以外のところで発生するボトルネック要因がいっぱいあるので
速度を理由にインデックスバッファを採用する理由はあんまないが。

174:デフォルトの名無しさん
11/11/22 00:09:12.79
>>172
板ポリ一つずつで合ってるよ。
100スプライトなら4頂点+6インデックス+DrawPrimitive*100ではなくて
400頂点+600インデックス+DrawPrimitive*1する方が良いっちゃ良い。
その場合はもちろんテクスチャも一つにまとめるにこしたことはないけど
パターン数が少ないようならパターン毎にインデックスバッファを用意しておいて
パターン毎にパスを切り替えるやり方でもいいかもね。

175:デフォルトの名無しさん
11/11/22 00:13:33.76
同じテクスチャ同士で頂点つなげてDrawPrimitiveならテクスチャの枚数分のオーバーヘッドで済むからもう十分じゃね?

176:デフォルトの名無しさん
11/11/22 07:43:17.82
>>174-175
本当にありがとうございました


177:デフォルトの名無しさん
11/11/22 12:16:53.30
すみません。.x形式でモデル&モーションを書き出しているのですが、
ツールが右手座標系で、プログラムが左手座標系なので反転させようとしています。
モデルはちゃんと反転できたのですが(x軸を-1倍)
ボーンの座標(中心位置)の反転(x軸を-1倍)が上手く行きません。

SkinWeights 項目のマトリクスの4_1(13番目)
FrameTransformMatrix relative 項目のマトリクスの4_1(13番目)
を-1倍してみたのですが、単純な回転モーションで確認しても変化が有りません。
ボーンの座標ではなくAnimationKeyに座標など全てが収まっているのでしょうか?

178:デフォルトの名無しさん
11/11/22 13:09:25.40
.x形式まともに使ったことないからはっきりは言えないけど
アニメーションキーが存在していてそれを使って再生しているのであれば
普通は非アニメーション状態の変換行列は無視される。
(じゃないと取り回しが色々と不便になるから)
なのでアニメーションキーを変換する必要はあるだろうね。
その場合、おそらくメッシュの法線も反転するけど。

179:177
11/11/22 14:57:57.57
>>178
>普通は非アニメーション状態の変換行列は無視される。
>(じゃないと取り回しが色々と不便になるから)
そうなんですね。その方が計算減りますよね。
ありがとうございました。 もう少し粘ってだめなら逆向きに作るとします。

180:デフォルトの名無しさん
11/11/22 21:51:29.16
すみません、質問です。
新しく接続されたコントローラー(デバイス)を認識して
DIRECTINPUTDEVICE8で取得したいのですが、DIRECTINPUT8::FindDevice()
が"クラスが登録さてません"というエラーを返してうまくいきません。
引数にはDBT_DEVICEARRIVAL→DBT_DEVTYP_DEVICEINTERFACEイベントの
DEV_BROADCAST_DEVICEINTERFACE::dbcc_nameとdbcc_classguidを渡しています。
もしかして使い方が間違ってるでしょうか?分かる方がいらしたら教えてください。
デバイス認識の試験にはコントローラを使用してます。

181:デフォルトの名無しさん
11/11/22 23:45:40.99
void CMain::TP2(int left_in_x,int up_in_y,int right_in_x,int down_in_y,float *left_x,float *up_y,float *right_x,float *down_y){

*left_x=(1/16*(left_in_x-1));
*up_y=(1/16*(up_in_y-1));
*right_x=(1/16*right_in_x);
*down_y=(1/16*down_in_y);
}


float
Tx_Left_X,
Tx_Right_X,
Tx_Up_Y,
Tx_Down_Y;

TP2(1,1,1,1,&Tx_Left_X,&Tx_Up_Y,&Tx_Right_X,&Tx_Down_Y);

うまく数字が変わらないんです
ホントはTP2関数を使ったら
Tx_Left_Xとかの値が変わってるはずなんですが…

182:デフォルトの名無しさん
11/11/23 01:16:16.28
とりあえず
1.0f/16.0f
こんな感じにしてみるとか・・・w

183:デフォルトの名無しさん
11/11/23 02:28:40.61
だね。/も*も左から結合されていくから1/16が整数演算でゼロになっているという話。

184:デフォルトの名無しさん
11/11/23 06:25:21.80
>>180
実行中に接続されたコントローラーを認識したいというのでもなければ
FindDeviceじゃなくてEnumDevices使えば?

185:デフォルトの名無しさん
11/11/23 08:06:35.61
>>182-183
ありがとうございました
レスした後にこれは文法の問題だと気づきました
DirectX関係無いですよね、スレチですすみません

186:デフォルトの名無しさん
11/11/23 16:02:18.48
HRESULT Render() {
if(SUCCEEDED(d3ddev->BeginScene())) {
RenderImpl();
if(SUCCEEDED(d3ddev->EndScene())) { return d3ddev->present(0, 0, 0, 0); }
else { ??? }
}}

EndSceneが失敗したらなにをするべきなんでしょうか
これって失敗したまま放置したら永遠にロックされたままになりますよね?

187:デフォルトの名無しさん
11/11/23 17:52:41.59
>>186
EndScene呼び出し自体は単にデバイスに状態を通知するだけなので
BeginSceneが適切に呼び出されている限り失敗することはまずないよ。
失敗するのはBeginSceneとEndSceneがきちんと組になってない時くらい。

なので、もしも失敗したのなら、やるべき事はコードパスを見直すことだね。
その時は多分ロックとか以前の問題なので。

188:デフォルトの名無しさん
11/11/23 19:16:19.85
>>184
ありがとうございます。
EnumDevicesは初期化時に呼びます。コントロ-ラーがなかった場合や
足りなかった場合に接続されたコントローラーを取得したいので
FindDeviceを使用しようとしてます。

FindDeviceで失敗したコントローラーでもEnumDevicesでなら列挙されることは
確認済みですがEnumDevicesは遅いので出来ればFindDeviceを使用したいと思っています。
原因分かる方いらしたらお願いします。

189:デフォルトの名無しさん
11/11/23 19:41:49.82
>>187
あざっす
安心しました

190:デフォルトの名無しさん
11/11/24 17:00:12.86
D3DXVECTOR3    vFace;
DWORD      dwFaceIndex;
VERTEX      *vertex;// 自分で定義した構造体

D3DXIntersect( BenkiMesh, &vRay, &vRayDir, &bHit, &dwFaceIndex, NULL, NULL, &Dist, NULL, NULL
UnkoMesh->LockVertexBuffer(ほにゃららREADONLY, (void**)&vertex );
vFace = vertex[dwFaceIndex].position;
UnkoMesh->UnlockVertexBuffer();


…みたいにして、D3DXIntersectで当たり判定みたいな事して、
LockVertexBufferしてポリゴンのデータを1つだけ取得して、
値を画面に表示させてみたらところどころに「-1.#R」ってのがあるんよ。

これ、一体どうしたら正しい値が入ってくるますか?

191:デフォルトの名無しさん
11/11/24 18:00:12.28
交差判定はBenkiMesh上でやってるのにLockVertexBufferで参照しようとしているのが
UnkoMeshなんだが、こりゃ同じメッシュを指してるっつーことでいいのかね。
あとそのコードには書いてないがbHitフラグはちゃんと確認してるか?

192:デフォルトの名無しさん
11/11/24 18:29:57.23
あとdwFaceIndexに戻って来るのは頂点インデクスじゃなくて面インデクスなのに
それでVertexBufferを参照しているのもおかしい。

193:デフォルトの名無しさん
11/11/24 18:32:07.44
交差判定もLockVertexBufferもBenkiMeshに対してでした。
LockVertexBufferは、bHitがTRUEを返した場合に行っています。

書き間違えてたよ。ご指摘、ありがとうね。


>>190投下の後でコードを見直してみたら、
BenkiMesh->OptimizeInplace( D3DXMESHOPT_ATTRSORT | D3DXMESHOPT_VERTEXCACHE, &lpdwAdjacency[0], 0, 0, 0 );
という行があったんだけど、(必要があって書いたコードだったはず。結構前だったから忘れちゃった。)
これが悪さしてるのかな?



194:デフォルトの名無しさん
11/11/24 18:36:58.87
>>192
言われてみれば…確かにそうですね。
直してきます。
ありがとうございました。


195:デフォルトの名無しさん
11/11/25 18:24:43.70
プリミティブ描画の時に

196:デフォルトの名無しさん
11/11/25 18:26:03.87
途中送信したすまん
プリミティブ描画の時にTRIANGLESTRIPにしたらカリングモードに関係なく全部描画されるよね?

197:デフォルトの名無しさん
11/11/25 18:58:57.07
全部描画されるの意味が「常にCullMode=None指定するのと同じって事だよね」という意味ならNO。
偶数番目の面のカリング順判定が入れ替わる(CW⇔CCW)だけでカリング自体の適用はLISTの場合と一緒。

198:デフォルトの名無しさん
11/11/25 19:23:10.26
なるほどありがとう

199:デフォルトの名無しさん
11/11/26 01:54:49.23
>>190です。
こんな感じに変更したら、
何か、うまくいっちゃったので晒していきます。。



D3DXIntersect( BenkiMesh, &vRay, &vRayDir, &bHit, &dwFaceIndex, NULL, NULL, &Dist, NULL, NULL );
if( bHit )
{
  BenkiMesh->GetIndexBuffer( &lpIB );
  BenkiMesh->GetVertexBuffer( &lpVB );
  lpIB->Lock( 0, 0, ( void** )&pIndices, D3DLOCK_READONLY );
  lpVB->Lock( 0, 0, ( void** )&pVertices, D3DLOCK_READONLY );
  pfVertices = ( float* )&pVertices[BenkiMesh->GetNumBytesPerVertex() * pIndices[dwFaceIndex * 3]];
  vUnkoPosition[0] = D3DXVECTOR3( pfVertices[0], pfVertices[1], pfVertices[2] );
  pfVertices = ( float* )&pVertices[BenkiMesh->GetNumBytesPerVertex() * pIndices[dwFaceIndex * 3 + 1]];
  vUnkoPosition[1] = D3DXVECTOR3( pfVertices[0], pfVertices[1], pfVertices[2] );
  pfVertices = ( float* )&pVertices[BenkiMesh->GetNumBytesPerVertex() * pIndices[dwFaceIndex * 3 + 2]];
  vUnkoPosition[2] = D3DXVECTOR3( pfVertices[0], pfVertices[1], pfVertices[2] );
  lpVB->Unlock();
  lpIB->Unlock();
  lpIB->Release();
  lpVB->Release();
}


200:デフォルトの名無しさん
11/11/27 21:43:09.71
テクスチャ座標の誤差ってどうにかなりませんか?

201:デフォルトの名無しさん
11/11/27 21:52:07.65
ちゃんと質問しろ

202:デフォルトの名無しさん
11/11/27 22:14:05.37
ごめん

Direct3D9で頂点バッファを使ってテトラゴンを描画するとき、
2048*2048pxのテクスチャのx, y, w, h = 1344, 96, 48, 48の範囲を貼りつけたいのですが

頂点を
{0.0f, 0.0f, 0.0f},
{0.0f, 48.0f, 0.0f},
{48.0f, 0.0f, 0.0f},
{48.0f, 48.0f, 0.0f}
のように定義して、
テクスチャ座標を
{1344.5f / 2048.0f, 144.5f / 2048},
{1344.5f / 2048.0f, 96.5f / 2048},
{1392.5f / 2048.0f, 144.5f / 2048},
{1392.5f / 2048.0f, 96.5f / 2048}
こうすると元の画像と比べて横方向に広がるのです

URLリンク(www.dotup.org)
上半分がDirectXの描画で、下半分が画像をビューワで開いたものです

203:デフォルトの名無しさん
11/11/27 22:25:08.54
テクスチャでマップチップを表現するのが難しいってやつだな
フィルタとかかかったりするとサンプリングするとこがまたおかしくなってとなりの奴まで
描画に使っちゃったりして超うまくいかない

っていうかその画像なら1フレームでチップ全部必要になるわけじゃねぇんだから
あきらめて別のテクスチャにしろよ的な

マップチップで描画したいマップに関しては綺麗に表示させたいなら
テクスチャ1枚でなにやらやろうとするのは鬼門かもしれんな
環境や条件を絞った上でやればなんとかなるかもしれんが・・・
PCの設定によってうまくいったりいかなかったり

ま、ハードウェアの苦手なことはするもんじゃないよ(笑)

204:デフォルトの名無しさん
11/11/27 22:31:47.62
データの方に誤差も考えてマージン持たせるんだよ

205:デフォルトの名無しさん
11/11/27 22:32:53.29
>>202
そのコード片だけじゃ頂点とテクスチャのy座標の対応が逆なってるようにしか見えんけど

それと+0.5テクセルずらすんじゃなくて位置座標から-0.5ピクセルずらした方がいい
理由は忘れた

206:202
11/11/27 22:54:35.44
>>203
とりあえずフィルタはNONEにしてるのですが
つまり48*48の範囲の正確な描画はDirect3Dでは出来ないのですね

>>204
データというのはテクスチャの事ですか
そうなると厳しいですね……

>>205
特にy座標が逆になってるようにはみえませんが

207:デフォルトの名無しさん
11/11/27 22:57:10.93
浮動小数の形式上の誤差はなかなか逃れられんだろう。

208:202
11/11/27 23:05:06.31
なかなかと云うからには逃れる方法はあるのですか

209:デフォルトの名無しさん
11/11/27 23:05:48.95
>>206
>特にy座標が逆になってるようにはみえませんが

ん? Direct3Dのテクスチャ座標って上から下に向かうよ?
まあ読み込み時に逆なってるなら帳尻は合うのかもしらんけど

210:デフォルトの名無しさん
11/11/27 23:15:48.04
>>208
実用に足るかは知らないが、誤差のでない数字っていうのが有るのよ。
具体的には、少数点以下のビットの保持方法を把握しないと難しい。
少数点以下の数字をビットシフトすると、1/(2n)になるのは知ってるよね。
情報の教科書とかにかいてあったと思うけど。
そういう数字はごさがほぼでない。でも実用に足るかはしらない。

211:デフォルトの名無しさん
11/11/27 23:22:38.14
1/(2^n)だな。

212:デフォルトの名無しさん
11/11/27 23:50:24.83
横に広がるならProjectMatrixに入れてるアスペクトの問題じゃね?
ためしにテクスチャ張ってない正方形でも描いてキャプチャしてみて横に広がってたらそれ

213:デフォルトの名無しさん
11/11/28 00:03:06.27
画面作成時にタイトルバーの大きさが考慮されてなくてクライアント領域みてみたら
実は想定していたサイズじゃなかったってオチな
でもそれを解決してもなおこの問題は解決には至っていないと思う
なんか方法変えたほうがいいと思うんだよね

214:デフォルトの名無しさん
11/11/28 00:27:55.52
だよね

215:デフォルトの名無しさん
11/11/28 04:03:59.50
テクセル1.0は実質(テクスチャの軸あたりの総ピクセル数+1ピクセル)目なので
きっちりパーピクセル対応させようと思うと計算が面倒くさいよね。


216:デフォルトの名無しさん
11/11/28 07:44:42.33
>>210
なるほど、少し調べてみますん

>>212
テクスチャを貼らなければきちんとした48*48の正方形が描画されます……と思ってよく見たら横に伸びてますね
クライアント領域が640*480のウィンドウに正射影で
D3DXMatrixOrthoLH(&projection, 640.0f, 480.0f, 0.0f, 100.0f);
とやってますが
これでは問題があるのでしょうか

>>213
そこに関しての調整は既に一度躓いていて修正済みです

217:デフォルトの名無しさん
11/11/28 09:48:26.83
ちゃんとAdjustWindowRect使って領域計算してウィンドウ作ってるかとか
バックバッファとかビューポートのw,hがちゃんとクライアントレクトのw,h(640*480)になってるかどうかとか

218:デフォルトの名無しさん
11/11/28 14:03:11.81
>>216
横はいいけど縦は?
Ortho使ってアスペクト比が狂うってのはバックバッファ→ウィンドウ転送でサイズが合致してないか
どっかで余計な値掛けてるかくらいしかないと思うんだがなあ。
全体的に一様に拡大されてるってんならわかるけども。

Pixで実行時のバックバッファ内容をキャプチャして比較してみた場合だとどうかね。

219:202
11/11/28 16:36:04.73
>>217
GetSystemMetrics()を使ってDLGFRAMEとCAPTIONを適切な分だけ足してウィンドウを作っているのですが
AdjustWindowRect()の方が正確なんですかね

>>218
縦は正しく描画されます
とりあえずPixというものを初めて使ってみます

220:202
11/11/28 21:35:19.29
ああ……

221:202
11/11/28 21:38:59.30
ごめんなさい、こちらの凡ミスでした
どうやら頂点座標の打ち間違えだったようです。質問を認めるときに何故気が付かなかったのか解りませんが……
本当にありがとうございました。お騒がせしました

222:デフォルトの名無しさん
11/11/28 23:07:37.31
(#^ω^)ビキビキ

223:202
11/11/28 23:59:45.24
>>222
バーカ

224:デフォルトの名無しさん
11/11/29 09:32:44.18
>>221
自分の凡ミスだと正直に報告した点については評価しよう。
今度逆ギレする時は名前欄ちゃんと消したかどうかを確認しとけよ。

では次の方どうぞ。

225:デフォルトの名無しさん
11/11/29 21:57:21.45
俺はそうは思ってなくて
実はやり方自体のまずさに気がついてこの方法での実現を断念したんだと思う

226:デフォルトの名無しさん
11/11/30 00:12:13.98
別にどうでもいい

227:デフォルトの名無しさん
11/11/30 06:08:38.25
何気に昔ながらの2Dゲー作るって結構知識いるんだよね
矩形ごとにDrawPrimitiveすると遅くて描画間に合わないし
テクスチャまとめると今度は横のチップの絵が出てきたりするし
フィルタかけるとすごくきったないしフィルタのONOFFはユーザ側の設定依存になるし

まあ、こんな程度だと思うけど

228:デフォルトの名無しさん
11/11/30 08:25:06.74
タイリングパターンとチップからでかいテクスチャを生成するんじゃダメなの?

229:デフォルトの名無しさん
11/11/30 09:15:44.71
メモリが無限にあるならそれでいんじゃね

230:デフォルトの名無しさん
11/11/30 10:50:52.32
ここで思考停止するのが凡人
ここからメガテクスチャを生み出したのが天才

231:デフォルトの名無しさん
11/11/30 12:22:38.90
昔ながらの2Dゲームが作りたいならDirectDrawでも使った方がよっぽどいいと思うが。

232:デフォルトの名無しさん
11/11/30 14:55:32.86
DirectDrawってまだあるの?

233:デフォルトの名無しさん
11/11/30 15:02:23.34
無いけど使える

234:デフォルトの名無しさん
11/11/30 21:08:57.55
>>233
詳しく教えてほしいな!
昔のソース引っ張りだしてきたらビルドエラー起こすもんで
DirectDraw7からDirect3D9へ引っ越し作業してたんだ
過去のコード使えるならその方がありがたい

235:デフォルトの名無しさん
11/11/30 22:36:05.65
GDI+でいいじゃん

236:デフォルトの名無しさん
11/11/30 22:54:59.88
BeginSceneって必ずEndSceneとペアなんですか?

237:デフォルトの名無しさん
11/11/30 23:15:04.43
ペアだと何か困るのですか?

238:デフォルトの名無しさん
11/11/30 23:28:32.09
>>236
どっちか一人にすると悪さをするので必ずペアで呼んであげましょう

>>234
233じゃないが、DXSDK(June 2010)からddraw.libが含まれてないそうなので
それ以前のSDKをどっかから探してインスコしてパス張ってやればいいんじゃないか
以前と挙動が同じかどうかはわからんが

239:デフォルトの名無しさん
11/11/30 23:51:05.40
>>238
ああそういう意味で「ないけど使える」って事か

240:デフォルトの名無しさん
11/12/04 12:22:54.10
ワールド座標をスクリーン座標とZバッファの値に変換する方法を教えてください。

241:デフォルトの名無しさん
11/12/04 12:49:54.34
出来ればこんな感じが良いです。省略した部分をどう書けば良いのかが分からなくって・・・

void Convert(D3DVECTOR3 &vectScreen,D3DXMATRIXA16 mWorld,D3DXMATRIXA16 mView,D3DXMATRIXA16 mProj,D3DVECTOR3 vWorld)
{
/* 省略 */
}


242:デフォルトの名無しさん
11/12/04 12:55:01.75
3Dでボンバーマンのようなものを作ってるんだけど3Dだと透視画法のように奥に行くほど小さく見えるじゃないですか
あれ微妙にプレイしづらいんで正規品の2Dボンバーマンの見た目にマッチするように奥行きと大きさを無関係に表示させたいんですけど
そういう場合はどう設定すればいいんですか?

243:デフォルトの名無しさん
11/12/04 12:58:17.35
>>242
3Dにしない

244:デフォルトの名無しさん
11/12/04 13:06:02.08
正射影

245:デフォルトの名無しさん
11/12/04 14:21:18.44
理屈の上ではカメラから遠く離れた場所にオブジェクトを置き、
それに合わせて前方・後方クリップ面を遠く、視野角を狭くすればそういう効果は得られると思う。
ただZバッファがどうなるかは知らん。
奥行きの影響を限りなくゼロじゃなくてゼロにする必要があるならそういう関数があるのかな?
なければ射影行列を自前で設定することになるかも。


246:240=241
11/12/04 17:47:17.39
色々調べた結果、D3DXVec3Projectという関数がありました。
ちなみに242は私と違います。

247:デフォルトの名無しさん
11/12/04 21:06:28.37
とりあえず音鳴らすときはXAudio2でいいの?
頑張ってDirectMusicで作ったらヘッダがなくなってたし・・・

248:デフォルトの名無しさん
11/12/04 21:09:39.33
もうXPは切り捨てていいの?


249:デフォルトの名無しさん
11/12/04 21:11:52.47
>>248
そ、そんな言い方ってあんまりだよ…

250:デフォルトの名無しさん
11/12/04 22:49:45.48
XPからWindows8にアップデート出来るとかうんたらかんたら

251:デフォルトの名無しさん
11/12/04 23:47:37.72
>>247
おk。ただirrKlang楽だよirrKlang

252:デフォルトの名無しさん
11/12/05 00:09:19.61
ハード的にもXP積んでるやつは結構厳しくなってきたと思うしなぁ・・・
どうしてもやって欲しい人がXP持ちだとか言わないなら、もう切っても良い頃合いだと思う。俺はね


253:デフォルトの名無しさん
11/12/05 04:46:32.28
変える必要性を感じない

254:デフォルトの名無しさん
11/12/05 10:09:53.68
感じないね

255:デフォルトの名無しさん
11/12/05 11:14:26.53
ゲームパッドなんですが読み込んで普通に利用するのはわかるのですけど
逆にこちらから操作(プログラム上から押したことにする)って可能ですか?

パッド二つ接続してる状態でパッド1の操作をパッド2で操作出来るように
出来ないかなと思っています

256:デフォルトの名無しさん
11/12/05 11:24:14.95
生入力をゲームコマンドにマッピングするクラスをちょっと変更するだけでいいよ

257:デフォルトの名無しさん
11/12/05 12:58:42.33
>>256
アクションマッピングを使うってことでしょうか?
まだよくわからないので調べてきます

簡単に言えば、よくあるパッド入力→キー入力変換のソフトみたいな感じで
パッド入力→他のパッドの入力に変換したいのです
そんな簡単なものじゃないのかな…


258:デフォルトの名無しさん
11/12/05 13:09:59.51
パッドに入力があったらSendMessageでキーボードの入力イベントを送ればいいよ

259:デフォルトの名無しさん
11/12/05 14:53:40.25
>>255
関数ポインタで差し替えるとか、そもそもキーコンフィグがどうやって実現してるとか、
そういう話じゃないの?

え?勘違いですか、そうですか・・・・。

260:デフォルトの名無しさん
11/12/05 19:21:36.39
>>258>>259
ちょっと説明が下手で申し訳ないです
「Joy to Key」 じゃなくて 「Joy to Joy」 をやりたいなあと
パッド1のAボタン押したら、パッド2のAボタンが押された事になるみたいな

色々調べてみるとDirectXじゃなくてHIDとかで直接やらんといけないのかな
自分はスキル不足なので難しいのかもしれませんね

261:デフォルトの名無しさん
11/12/05 19:26:15.21
それは、同アプリ内で?別アプリに送る感じで?
SendInputってパッド情報おくれたっけ?

262:デフォルトの名無しさん
11/12/05 21:37:15.79
>>261
別アプリですね
別のアプリで反応出来るようにという感じです
調べてみるとキーとマウスだけという感じですかね

263:デフォルトの名無しさん
11/12/05 21:54:19.72
それはDXの範疇超えてる気がするんだけど。自分はわからん!

264:デフォルトの名無しさん
11/12/05 21:57:47.93
コントローラークラスでプロセス間通信すれば?

265:デフォルトの名無しさん
11/12/05 22:26:02.71
また、botでも作ろうとしてるのか?
いい加減に乞食に餌やるなよお前等

266:デフォルトの名無しさん
11/12/06 02:36:57.21
検索してもあまり出てきませんね
連射を作ってる人が近かったかなという感じです

確かに範疇超えてるみたいです
もう少し調べてみて諦めるか何かしてきます
ありがとうございました

ちなみに、別アプリというと怪しく聞こえるかもしれませんがbotではありません
それならパッドはいらないですから
単純に余ってるパッドをキーやマウスのように、メインのパッドにアサインしたいだけでした

267:デフォルトの名無しさん
11/12/06 09:21:00.38
キーボードで操作できないPCゲーなんて稀なんだから
パッドからキーボードでいいじゃん


268:デフォルトの名無しさん
11/12/06 23:31:35.00
いいじゃんね

269:デフォルトの名無しさん
11/12/07 12:09:43.42
いいじゃんね

270:デフォルトの名無しさん
11/12/07 12:52:04.51
HLSLでif文を使うと遅いらしいから、エフェクトインターフェース側でパスを切り替えて擬似的に実現しようと思うのだけど、
どっちの方が速いんだろう?

271:デフォルトの名無しさん
11/12/07 13:39:16.09
動的分岐じゃないならifでいい

272:デフォルトの名無しさん
11/12/07 14:00:46.54
そうなのかサンクス

273:デフォルトの名無しさん
11/12/07 14:08:32.00
動的分岐 語句がわからなかったからググってみた

URLリンク(msdn.microsoft.com)(v=vs.85).aspx
動的分岐は、シェーダーの実行を高速化するのに役立ちます。ジオメトリまたはピクセルが表・・・・

さらにわからなくなった
動的分岐ってなんですか?

答えてくれた方thx

274:デフォルトの名無しさん
11/12/07 14:09:45.15
アセンブラ出力して比べるのが一番確実

275:デフォルトの名無しさん
11/12/07 20:53:41.14
いいんじゃね

276:デフォルトの名無しさん
11/12/09 17:16:40.69
調べても分からない=まだ経験値が足りないんだ

二つめの街にいったところで古代竜と戦おうとしているようなものだ

277:デフォルトの名無しさん
11/12/09 18:28:52.63
ものだね

278:デフォルトの名無しさん
11/12/10 16:14:06.38
的確すぎわろた


279:デフォルトの名無しさん
11/12/11 13:25:45.05
このスレにお世話になり、おかげさまでゲームを公開できる寸前のところまで来ました。
ゲームの「動作推奨環境」のサウンドの表記について質問があります。
ゲームは DirectX 9.0c を使って開発しました。サウンドは DirectSound を使用しています。

DirectX 9.0cを使って開発したので動作推奨環境に『サウンド:DirectSound8.0以上』という
表記は確かに間違ってはいないと思いますが、現在あまり使われていない表記だと思います。

★『A列車で行こう レジェンドパック』仕様・動作スペック
URLリンク(www.artdink.co.jp)
⇒ 対応音源 上記OS及びDirectSound8.0以上に対応したサウンドカード

ちなみに比較的最近のパソコンのゲームは下記の表記になっています。

★STREET FIGHTER IV(PC版)の動作スペック
URLリンク(www.capcom.co.jp)
⇒ サウンドカード DirectSound対応 DirectX 9.0c以上対応

★FINAL FANTASY XIV(PC版)の動作スペック
URLリンク(www.finalfantasyxiv.com)
⇒ サウンドカード DirectSound 互換サウンドカード(DirectX 9.0c以上)

「サウンドカード」という表記は「オンボードのサウンドチップ」が存在するので個人的に
好きではありません。

自分なりに考えたのですが、『サウンド:DirectSound(DirectX 9.0c以上)』という表記が
一番すっきりしていると思っています。

皆様方は、どう思われるか意見を聞かせていただけないでしょうか。
以上、よろしくお願いします。

280:デフォルトの名無しさん
11/12/11 13:55:13.43
好きにしろとしか
>「サウンドカード」という表記は「オンボードのサウンドチップ」が存在するので個人的に
好きではありません。
じゃビデオカードはどう表現してんの

281:279
11/12/11 15:37:46.83
>>280
「ビデオ:DirectX 9.0c以上」です

282:デフォルトの名無しさん
11/12/12 00:27:17.55
うちのビデオはマックロードです

283:デフォルトの名無しさん
11/12/12 03:46:52.63
ビデオカードはDirectX9の全ての機能に対応してなくても
DirectX9対応って書いていいことになってる
だからその表記では不十分だ
普通はVRAM256MB以上とか、SM2.0以上とか
そういうことを書くものだ

284:279
11/12/12 05:03:06.56
レスをしていただけてありがたいのですが、>>280の発言で
サウンドの話題からビデオの話題にすり替わってしまっています。
僕が知りたいのはビデオではなくてサウンドのみについてです。

285:デフォルトの名無しさん
11/12/12 07:33:59.74
>>280の一行目で既に答えは出てるだろ。

グラフィック機能もサウンド機能もマザーボードの機能ではないのだし
歴史的に考えればオンチップであっても「カード」表記で問題ないと思うが
(むしろビデオやサウンドだけのが混乱する)
個人的に好きではないというのなら「そうですか」としか。

286:279
11/12/12 09:43:54.38
僕の望んでいない議論がされています。

>>279にて下記余計な2行を書いたことは謝ります。
>「サウンドカード」という表記は「オンボードのサウンドチップ」が存在するので個人的に
>好きではありません。

質問の核心は DirectX 9.0c の DirectSound 機能を使って作ったゲームの
動作推奨環境に『DirectSound(DirectX 9.0c以上)』という表記が適切で
あるかどうかということです。

よろしくお願いします。

287:デフォルトの名無しさん
11/12/12 14:59:03.00
DirectSoundの表記なんて今じゃ慣例以上の意味なんてねえんだから
その他大勢に従っておけよ
お前の好みなんてユーザーは知ったこっちゃねえんだよ

288:デフォルトの名無しさん
11/12/12 16:56:27.87
>>286
汎用的な記法が欲しいのだろうけど、色々言われてる通り、一通りではないわけだ。
だから、一番大きなパイだと思うものをくいなはれ。それが最適解だから。

289:デフォルトの名無しさん
11/12/12 19:07:52.55
(´・ω・`)

290:デフォルトの名無しさん
11/12/12 19:43:56.68
ゲーム作っているんですがクイックソートって必要ですかね?
必要なら、たとえばどんな時必要ですか?

291:デフォルトの名無しさん
11/12/12 20:00:31.10
>>290
マージソート使いたいけどメモリが無い時かな。
テストで使う分にはバブルソートでも意外といけるからね。
O(N*((N-1)/2))で安定だし、表記も楽だし。

292:デフォルトの名無しさん
11/12/12 20:01:42.50
>>291
何を実装するときソート使うの?
教えろ

293:デフォルトの名無しさん
11/12/12 20:09:50.66
>>292
Zソートとか、プライオリティキュー実装するとか。
噂だと、アルファ付きポリゴン関係とか。
整列が必要なゲームシステムとか。そのチェックコードとか。

例えば何かをチェックするときにソート済みという条件であれば簡単にチェックできるという事があり得る。

294:デフォルトの名無しさん
11/12/12 20:16:11.46
>>293
なるほど。

CGのキャラクターを動かすのにソートとかって必要ですか?
たとえば、キャラクターが前転する時とか。

295:デフォルトの名無しさん
11/12/12 20:41:05.99
DXでは、Zバッファがあるので、基本、3D描画周りでのソートはハードが勝手にやってくれる。
2Dだと、Y軸でソートして描画したほうが奥行きが出て自然になるかも。
3Dのビルボードにしたらハードがやってくれるので関係ないかもだけど。

296:デフォルトの名無しさん
11/12/12 21:05:32.30
>>295は勘違いしてるね
Zバッファはソートはしないよ。
描画の際にピクセルの奥行き値(z)を比較して描画するかどうかを決めるだけ。
だからZバッファ。
ソートとは考え方が異なる。
ハードウェア側でバッファ最適化のためにソートすることはあるかもしらんが。

>>294
メッシュの事前最適化とかアニメーションキーの格納順が最適化されてない時とかには
使うかもだが、リグアニメーション自体にはあんま関係ない。
ていうかもう少し問題のフレームを絞れ

297:デフォルトの名無しさん
11/12/12 22:27:17.73
ID3DXBufferはビデオメモリ内に作られるんでしょうか?

298:デフォルトの名無しさん
11/12/12 22:35:09.47
全部システムメモリだょ

299:デフォルトの名無しさん
11/12/12 22:44:01.90
ありがとうございました

300:デフォルトの名無しさん
11/12/15 00:16:24.90
外部から1ピクセル分ずつ送られてくる情報を1画像分集まったところで画面に表示、ってのをやりたいんだけど、

1画像分集まる→テクスチャ作る→表示する→テクスチャ破棄する→1画像分集まる→テクスチャ作る・・・

ってやるしかない?
もっと高速にやる方法とかあるのかな

301:デフォルトの名無しさん
11/12/15 00:25:47.03
ピクセルより圧縮した画像データを送った方が安定して早い気がする

302:300
11/12/15 00:41:42.01
>>301
レスあり
送る側はとりあえず置いておいて、送られた側の処理時間を短縮したいのだわ

303:デフォルトの名無しさん
11/12/15 01:08:05.20
ちゅーかなんでいちいちテクスチャ破棄すんのよ
UpdateTextureでGPUにアップロードするのが普通だでよ


304:デフォルトの名無しさん
11/12/15 17:32:17.80
DirectShowってオワコンですか?

305:デフォルトの名無しさん
11/12/15 17:35:20.05
WindowsSDKに統合されたんだっけ?

306:デフォルトの名無しさん
11/12/15 18:19:57.70
つまりDirectXももうすぐオワコンに...

307:デフォルトの名無しさん
11/12/15 18:45:17.05
Dx自体はそろそろ11.1が出るんだっけか。Win8でDx12だっけ??

308:デフォルトの名無しさん
11/12/15 19:01:27.42
win8のが11.1で、今後はDXSDKの提供ではなくWindowsSDKに統合らしいよ

309:デフォルトの名無しさん
11/12/15 19:08:57.63
そうなんだ。ほぇ~。
エアロとかも標準でDx使ってるからそういう扱いになるのかな?ふむふむ。

310:デフォルトの名無しさん
11/12/15 19:24:08.27
月間DirectXじゃなくなったしな

311:デフォルトの名無しさん
11/12/15 20:56:11.96
Vistaでも動くのかな?

312:デフォルトの名無しさん
11/12/16 08:54:19.76
そうなんですか。DirectXって何なんだったんだろう?

313:デフォルトの名無しさん
11/12/16 08:58:05.25
拡張ライブラリだったのが標準に取り込まれたのだろう。

314:デフォルトの名無しさん
11/12/16 10:19:39.72
DirectShowはオワコンぽいですね。
URLリンク(ja.wikipedia.org)

315:デフォルトの名無しさん
11/12/16 23:13:15.20
エフェクトインターフェイスのGetFunction()などで取得したハンドルは何に使うんですか?

316:デフォルトの名無しさん
11/12/18 00:58:42.24
すみません。質問です。
DirectX9.0c + VC++2008 を使って作ったプログラムが異常終了して
下記のメッセージが表示されました。

▽▽▽
xxx.exe の 0x00412924 でハンドルされていない例外が発生しました: 0xC0000005:
場所 0x010e0000 に書き込み中にアクセス違反が発生しました。
△△△

0x010e0000 は何か特別な意味のあるアドレスのような気がしますが、
このアドレスの意味を、ご存じのかたがいらっしゃれば教えていただけないでしょうか。

317:デフォルトの名無しさん
11/12/18 01:06:51.10
まるち死ね

318:デフォルトの名無しさん
11/12/18 12:59:16.56
質問失礼します。
DirectX初心者なんですが、当方、Sampleフォルダ等にあるソースコードを見ただけで目眩がするレベルです。
このWinMain関数の処理やDirectInput等を別のソースファイルに追いやって、C言語のmain関数のように簡易に記述することって可能でしょうか?

319:デフォルトの名無しさん
11/12/18 13:31:23.82
自分でラッパーライブラリを書いてそれ経由でDirectXの処理を呼ぶようにすれば自分の好きなようにできるんじゃないかな

320:デフォルトの名無しさん
11/12/18 14:06:34.96
もしこれからもDirectXを使い続けるつもりなら、結局はWinMainでウィンドウプロシージャで
ウィンドウメッセージがうんたらという書き方に慣れるほうが近道だとは思う。
あとDXUTは「地道ではあるが退屈な」処理を肩代わりしてくれる関数群だけど、むしろDXUTが
見通しを悪くしているということであればDXUTを使っていないサンプルから手をつけていくとか。
(Tutorialの最初のほう or DirectX11未満のサンプル or June2010以前のサンプルか忘れたけどどこかにあるはず)

簡易に記述することは可能か?という問いへの直接の回答は>>319さんのそれですね。
それかネットから他の人が作ったそういうのがあれば探してみるとか。俺は知らないけどありそうな気はする。


321:デフォルトの名無しさん
11/12/18 14:16:26.84
今年の10月頃から少しずつ始めました。
初の質問ですがよろしくお願いいたします。
ダイレクト9必携 鎌田茂雄さんの本を読みながら勉強してる初心者なんですが、
ビルボードで2Dアニメーションさせたい場合(例えば炎が燃えてるとか)
Xファイルの側でアニメーションさせたのを読み込むのがいいのでしょうか?
自分まだ計算が苦手でしてビルボードのしている物体の、縦、横の拡大率が出来ていない子なので
あわせて教えていただいたら幸いです。

322:デフォルトの名無しさん
11/12/21 10:55:55.89
驚いたことにテクスチャのある範囲をビューポート指定して、同じテクスチャの別の範囲をUV指定して、
UV指定した箇所をビューポートしていした場所へコピーやエフェクトを掛けることが出来た
が、やっぱGPUが対応してないらしくまた別の範囲で同じことやるとノイズが表示されるようになった。
レンダリングターゲットの変更やテクスチャセットの回数を減らすために同じテクスチャ内でやってみたんだけど
ここらへんのGPUの仕様ってわかんないよね、、だれかこれならうまくいくって方法知ってる?

>>318
DXUTから入るのはちょっときついから、入門書おすすめ

>>321
2Dアニメーションは一枚の画像(bmpで書いといてddsに変換)に1コマずつ書いて、UVを切り替えながら描画すればいいと思う
xファイルは3D専用だから2Dは関係ない、ビルボードはサンプルコードがネット上に結構あるのでそれを参考にすればいいよ。

323:デフォルトの名無しさん
11/12/22 16:14:08.39
rawOvalやDrawBoxで書いた図形を回転させたいのですがどうしたらいいでしょうか?

324:デフォルトの名無しさん
11/12/22 19:21:39.42
>>323
java?

325:デフォルトの名無しさん
11/12/22 19:28:27.31
>>324
URLリンク(homepage2.nifty.com)

このHPの方が作ってくれたライブラリに入っていた関数でした.
これの中に図形の回転というのが無いのでどうしたらいいのかなーと思って質問しました.

326:デフォルトの名無しさん
11/12/22 22:07:42.17
>>325
それならDXライブラリのスレもしくは掲示板にいって聞くが吉
てか三角形もしくは線で書けばいいじゃん
なにいってるの

327:デフォルトの名無しさん
11/12/26 14:12:07.57
>>322
そんなの偶然に動いてるだけで、
イリーガルな操作、ダーティな領域って奴じゃないのか

つまり逆の発想で、本来やってはいけない動作が、
動いてしまうGPUドライバが少し存在する
って感じ

常識で考えて、テクスチャレンダリングの手法が出てきて
更に国外含めて、皆最適化を散々追求してるのに
聞いた事もない手法だろ?

328:デフォルトの名無しさん
11/12/27 13:46:14.92
>>326

>てか三角形もしくは線で書けばいいじゃん

これこそ何言ってるのか、さっぱりわからん。
三角形や線で描いた3次元図形をある軸まわりに回転させたいんだろ?

同時変換形の回転移動行列は自分で用意しなければならないみたいだね。
ここまで用意してくれると便利だけどね。

任意の単位ベクトルnの周りにθだけ回転させたときの回転行列は
コンピュータグラフィックがロボット工学の教科書にのっていると
思う。


329:デフォルトの名無しさん
11/12/31 22:37:19.16
DirectX9.0cのD3Dで質問です。
ワールドマトリックスの変換を自分でやりたいので
Direct3D側を無効化したいのですが
// pD3DDev->SetTransform( D3DTS_WORLD, NULL );
これでいいんでしょうか?

330:デフォルトの名無しさん
11/12/31 23:59:12.60
>>329
NULLじゃなくて単位行列を渡せばいいよ

331:デフォルトの名無しさん
12/01/01 00:05:00.97
自分でやりたい行列渡せばいいのにいったいどうしたことだろうか?

332:デフォルトの名無しさん
12/01/01 00:49:32.49
>>330
目から鱗~。ただ無効化はできないってことですね。

>>331
レイピックをやりたいのでワールド座標を自分で出すため
D3Dでも変換したら二度手間なのかなーと思い。

333:デフォルトの名無しさん
12/01/01 01:21:00.15
レイピックはレイをモデル座標系に変換するのが普通だぞ。

334:デフォルトの名無しさん
12/01/01 11:32:51.46
モデル座標には板ポリ(トライアングルx2)しかなくて、板ポリが大量にワールド座標に置いてあるんですが、
これでもモデル座標でレイと交差判定したほうがいいんでしょうか。
普通はメッシュに大量のトライアングルがあるのでモデル座標でやらないと
いけないのだと思いますが。

335:デフォルトの名無しさん
12/01/04 03:09:22.13
板ポリが大量にワールド座標と言っているが、
それがローカルなのかワールドなのかを決定するのは自分の処理次第じゃん

その言ってる状態から、更に板ポリ群全体を回転やら移動やらさせるなら
最初に言ってる座標系は、ワールドと数値が重なるけどローカルになるわけじゃん

例えば、モデル座標の板ポリ1枚をワールドに変換してるつもりが
それはモデル形成処理の内&ワールド処理は無いって考える処理の仕方もあると言う事

336:デフォルトの名無しさん
12/01/04 03:13:30.99
つか、シェーダー使えば?
普通にワールド -> ビュウ -> 透視変換のプロジェクションマトリクス渡す事になるから
それにワールドマトリクス単体も渡して頂点シェーダー内で処理すれば良いじゃん

337:デフォルトの名無しさん
12/01/04 03:29:59.16
頂点バッファを頻繁にLOCKする必要がある場合の使用フラグに関する質問です
D3DUSAGE_DYNAMICで作ったバッファをD3DLOCK_DISCARDでLOCKして書き込むのと
D3DUSAGE_WRITEONLYで作ったバッファをフラグ指定なしで書きこむのは
一般的に、どちらが高速ですか?
宜しくお願いします

338:デフォルトの名無しさん
12/01/04 11:53:37.28
>>337
混ぜて使う。

339:デフォルトの名無しさん
12/01/04 19:38:43.98
DDSファイルの画像のプレビューってWindows7では対応していないよな?
DirectX SDKを入れてDxtex.exeをDDSファイルに関連付けしても表示できない。
ただしDxtex.exeを起動してファイルオープンから開くと見える。

一説によると、レジストリをいじくると関連付けでファイルクリックから表示できるようになるらしいな?
普通にDirectX SDKのインストールだけで対応しろよな。
マイクロソフトはアフォですか?

340:デフォルトの名無しさん
12/01/04 19:40:36.04
irfanviewってフリーウエアで見れたと思うよ。

341:デフォルトの名無しさん
12/01/04 19:40:53.88
関連付けするとAPPCRASHが出るんですけどw
何、このOS?

342:デフォルトの名無しさん
12/01/04 19:42:01.83
>>340
うそー?さっき入れて試したらエラーになった。
OSはWindows7の64ビット版だけどね。

343:デフォルトの名無しさん
12/01/04 19:43:24.33
32ビットで関連付けアプリを動かすのってどうするんだっけ?

344:デフォルトの名無しさん
12/01/04 19:46:33.29
いまさら配布版のSDKが2010年版で止まっているからおかしいとは思ったんだけどな。
Microsoft DirectX SDK (June 2010)が最新版だろ?

うざす。

345:デフォルトの名無しさん
12/01/04 19:46:35.32
>>342
自分もwin7home x64
ウルティマオンラインのエンハンスクライアントに入ってるdds読めるんだけど。あるぅえ??
圧縮フォーマットかな??

346:デフォルトの名無しさん
12/01/04 19:50:15.75
単純に関連付けした場合にAPPCRASH。
Dxtex.exeフォームアプリ上のファイルオープンでは開く。
これ、前々からそんな雰囲気だったけどな。

DDSって言ってもDxtex.EXEでPNGから変換したDXT1。
3Dアプリ上ではちゃんと動いてる。

347:デフォルトの名無しさん
12/01/04 19:52:17.43
エラーになるDDSファイルはこれとか。
URLリンク(anyhub.net)


348:デフォルトの名無しさん
12/01/04 19:53:17.24
俺の今使っているPC以外では関連付けで開くのかな?

349:デフォルトの名無しさん
12/01/04 19:54:01.79
>>346
なんか怪しいものインストールした記憶はないかい?
関連付けが壊れるときって大体OSがマズくなってる時なんだよなぁ・・・。

350:デフォルトの名無しさん
12/01/04 19:55:53.61
irfanviewで「礼文」と書いてあるのを確認した。

351:デフォルトの名無しさん
12/01/04 19:57:41.60
2048×2048で、2MB固定ってDXT1のテクスチャパターンだな。

APPCRASHさせてデータパクろうってのはマイクロソフトに対するUCLウィルスか米軍ウィルスか、何なんだ?って印象。

352:デフォルトの名無しさん
12/01/04 19:58:13.54
出るじゃん?参ったね。

353:デフォルトの名無しさん
12/01/04 20:01:52.12
しょせんパクって書き換えたテクスチャデータで出元は米軍系なんだけどな。
本当に欲しいのはメッシュデータだろ?
三菱系とか、いくらでもチェックされてそうだよな?

354:デフォルトの名無しさん
12/01/04 20:03:54.60
参考になった。どうもありがとう。

355:デフォルトの名無しさん
12/01/04 20:15:48.77
障害モジュールの名前: MSVCR100.dll
って出てた。パスが通っていないのか?と思ってコピーしたけれどもダメだな。
x64のフォルダのDxTex.exeでもx86のフォルダのDxTex.exeでも一緒みたい。
・・・もしかしてバージョン違い?

356:デフォルトの名無しさん
12/01/04 20:26:58.89
PNGからDxTex.exeに関連付けしても同じエラーが出てるな。
・・・うーむ。

357:デフォルトの名無しさん
12/01/04 20:38:33.87
クソだな
もうDirectXなんて使うのやめよう
俺はunity使うよ

358:デフォルトの名無しさん
12/01/04 20:59:28.83
レジストリエディタregedit上でDxtexで調べたら、全部x86のファイルを参照していた。
エラーが出るので、x64フォルダのDxtex.exeを関連付けしても、レジストリ上に反映されないらしい。
・・・もしかしてx64とx86でレジストリが別なのか?
なぜx64のフォルダ上に実行ファイルがあるのに、x86フォルダ上のものを参照するように指定してあるんだろう?

359:デフォルトの名無しさん
12/01/04 21:05:05.26
MSVCR100.DLLは
今使っているPC上ではファイルバージョンが
10.0.30128.1
のものと
10.0.30319.1
のものがあった。

10.0.30319.1
はVC++2010に添付されていたものだな。
10.0.30128.1
はさっきのテクスチャを利用しているアプリにこっそりと添付されていたものだろうな。
Dxtex.exeがパス指定もなくある特定のバージョンのものを勝手に参照している可能性か?
勝手に総なめしているのか?と思って古いものを消しても、動かなかったようだ。

障害モジュールのバージョン: 10.0.40219.1
って出てる。いったい何を見てんだよ?内蔵して固定にしてしまったのか?
しかし問題点は、関連付けでのエラー問題に過ぎないぞ。

360:デフォルトの名無しさん
12/01/04 21:11:22.76
もしかして、ATIがドライバインストール時におかしな改変を入れているのか?
そうなのか!?ほんとうにそうなのか?
たとえばNVIDIAのVGAボードが特にないのでなんとも言えないが、本当にそうなのか?
しかもCCCインストール時になにかをインストールしているように見えるが、それなのか?

361:デフォルトの名無しさん
12/01/04 22:26:04.24
11.0>11.1に追加されたのってどこみればいいんだい?

362:デフォルトの名無しさん
12/01/05 01:30:52.81
irfanviewでddsは拡張パックを入れないと見れなかったと思う

363:デフォルトの名無しさん
12/01/05 03:15:18.14
URLリンク(www.nicovideo.jp)
これが凄いんだけど、WindowsVistaとかWindows7でだと、
画面に表示する手前にフィルターみたいのを無理やりかけることって出来るのかな?
途中に自作のシェーダーをかませて下さい、みたいな?
3Dだけだから、Aeroに限定することもないのかな。

364:デフォルトの名無しさん
12/01/05 14:48:53.03
こんなの見つけた
URLリンク(code.google.com)

365:デフォルトの名無しさん
12/01/05 19:29:27.33
へえ

366:デフォルトの名無しさん
12/01/07 10:23:05.22
ほう

367:デフォルトの名無しさん
12/01/08 23:52:36.40
DirectXの関数(D3DXも)って、内部でSIMD命令による128bitベクトル演算を行ってるでしょうか?
だとしたら、処理速度、堅牢性から、積極的に使用したいと思っています。
(対するOpenGLも気になります)

368:デフォルトの名無しさん
12/01/09 00:27:27.96
行っている。

D3DXMATRIXA16 time = 0.005056 : Gflops/sec = 2.903717
XMMATRIX time = 0.002452 : Gflops/sec = 5.986870
自作matrix4x4(SSE 32bit) time = 0.003341 : Gflops/sec = 4.393590
自作matrix4x4(FPU 32bit) time = 0.014704 : Gflops/sec = 0.998358

369:367
12/01/09 00:49:45.16
>>368
ありがとうございます!
自作されているとはすごいです。
それを上回るXNAのマトリクスがすごいですが、
D3DXMATRIXA16が遅めなのが気になりますね・・・。

370:デフォルトの名無しさん
12/01/09 17:34:47.11
2012年1月8日にスタートするNHK大河ドラマ『平清盛』は、2005年放送の『義経』以来となる、平安時代を舞台にした物語。
主人公である清盛(松山ケンイチ)の生涯を中心に、平家一族の栄枯盛衰が描かれる。

“松ケン清盛”は、本当の父親が違うという自分の出生の秘密を知り、葛藤する無頼で豪胆なキャラクターとして描かれているが、実際はどうなのか。
今回のドラマの時代考証を務める歴史研究家の本郷和人さんは次のように解説する。

「高下駄を履いて闊歩するような荒くれ者だったという説と、エリート気質の品のある少年だったという両方の説があります」(本郷さん)

「当時の平家の人々は貴族趣味に走り、華美な服装だったと伝えられています。
清盛の自警団と呼ばれる14~16才の童子も髪を禿(肩までに切りそろえた児童期の髪形)にし、真っ赤な服を着させていたといわれています。
清盛自身もきらびやかな衣装を好んでいたと思われます」

URLリンク(zasshi.news.yahoo.co.jp) ※女性セブン2012年1月19・26日号

王家論の立場に立つサヨク学者の言葉
URLリンク(twitter.com)

皇室を王家と表記するNHK(8月にもやらかしていた)
URLリンク(blog.livedoor.jp)

【大河ドラマ・平清盛】「王家」についてのNHKからの回答[桜H23/9/15]
URLリンク(www.nicovideo.jp)

チャンネル桜 NHK解体デモ 2011年12月31日
URLリンク(www.nicovideo.jp)

【討論!】フジテレビ・NHK問題、マスメディアの終焉2[桜H23/10/8]
URLリンク(www.nicovideo.jp)

【討論!】フジテレビ・NHK問題、マスメディアの終焉[桜H23/9/17]
URLリンク(www.nicovideo.jp)

371:デフォルトの名無しさん
12/01/09 21:15:39.73
RenderTargetのサーフェスとってきて
それをテクスチャにコピーしてスクリーンショット撮ろうとしてるんだけど

結構うまくいくけどたまにデットロックしてるのか
D3DXLoadSurfaceFromSurface
が終わらないって言う事が起こります

描画関数呼ばれないようにはブロックしてる

画面出力時に飛んでるのか…

別にRenderTarget(画面出力用のサーフェス)のSS取れればOKなのですが…

372:371
12/01/09 22:09:46.15
IDirect3DSurface9* back;
if(FAILED(_device->GetRenderTarget(0, &back)))
//エラー

D3DSURFACE_DESC desc;
back->GetDesc(&desc);

              if(FAILED(handle->GetSurfaceLevel(0,&dest)))
//エラー

D3DSURFACE_DESC destdesc;
dest->GetDesc(&destdesc);

if(destdesc.Format!=desc.Format||destdesc.Pool!=D3DPOOL_SYSTEMMEM)
               //エラー

if(FAILED(_device->GetRenderTargetData(back,dest)))
                   //エラー
          

そのあと
GetRenderTargetDataに変えてみましたら100%失敗するように…
handleはテクスチャのポインタです
これでうまくいかない…

エラー処理は省いてます
GetRenderTargetDataでエラーでてるっぽいです

373:デフォルトの名無しさん
12/01/10 00:26:46.77
エラー内容をちゃんと調べようよ。

374:デフォルトの名無しさん
12/01/10 01:33:15.01
エラーは出なくなりました

ウィンドウサイズが800*600だと表示部分も800*600だと思ってた…

その後取得できたサーフェスを
UpdateSurfaceでテクスチャのサーフェスにコピーする事はできましたが

この取得したサーフェスをReleaseするところで固まりました…
だいたい1/3程度の確率です

375:デフォルトの名無しさん
12/01/10 04:27:15.45
解決しました

デバイス作成の設定が変だったらしいです

376:デフォルトの名無しさん
12/01/10 04:47:42.32
URLリンク(headlines.yahoo.co.jp)

大阪の3放送局、看板やガラス壊される被害
読売新聞 1月10日(火)1時34分配信
 大阪市内の3放送局で9日夜、看板などが壊される被害が3件、相次いだ。
 現場にはコンクリート片が落ちており、府警が器物損壊容疑などで関連を調べる。
 9日午後7時25分頃、大阪市福島区福島の朝日放送の警備員から「ガラスが割られた」と110番。福島署によると、
同社1階北西のショーウインドーのガラス1枚(縦3・8メートル、横1・5メートル、厚さ2・2センチ)にヒビが入っていた。
ガラス下にコンクリート片(縦18センチ、横10センチ、厚さ10センチ)1個が落ちており、警備員は通行人から「自転車
に乗った人が、何かを投げていた」と聞いたという。
 また、同日午後8時頃、同市北区茶屋町の毎日放送でも社屋外のプラスチック看板が割られ、近くにコンクリート片
が落ちていた。同11時30分頃には、同市北区扇町の関西テレビの建物でも、ガラスが割られているのを警備員が見
つけた。
最終更新:1月10日(火)1時34分
読売新聞

377:デフォルトの名無しさん
12/01/10 12:38:23.75
板違い荒らしめ・・・

378:デフォルトの名無しさん
12/01/10 12:51:14.69
×荒しコピペ
○啓蒙活動

379:デフォルトの名無しさん
12/01/10 14:14:53.53
D3DXMATRIXとD3DXMATRIXA16ってどっちを使うべき?

380:デフォルトの名無しさん
12/01/10 14:19:50.69
XMMATRIX

381:デフォルトの名無しさん
12/01/10 14:41:58.30
BBC世界27カ国好感度調査 2011年
Positive views of Brazil have sharply improved in the annual BBC World Service Country Rating Poll of 27 countries around the world.
URLリンク(news.bbc.co.uk)

好きな国ランキング世界総合 1位 ドイツ 2位 イギリス →3位 日本 4位 EU 5位 カナダ 6位 フランス

嫌いな国ランキング世界総合 1位 イラン 2位 北朝鮮 3位 パキスタン 4位 イスラエル 5位 ロシア →6位 韓国

382:デフォルトの名無しさん
12/01/10 20:51:06.09
>>380
なんでXMMATRIX??

383:デフォルトの名無しさん
12/01/11 08:15:08.93
すみませんが、HSPから卒業しようとおもい
C++とDirectx学ぼうとしているんですが、
最初に参考にするには
URLリンク(homepage2.nifty.com)
ここぐらいでよいですかね?
他にもおすすめページがあればお教えください。

384:デフォルトの名無しさん
12/01/11 08:31:57.98
節子、それDirectXやないDXライブラリや!

385:デフォルトの名無しさん
12/01/11 13:54:56.65
>>384
という感じに、これぐらいのレベルですので
初心者でもわかりやすいページを教えていただければ幸いですw


386:デフォルトの名無しさん
12/01/11 14:03:11.81
DXライブラリのスレで聞いてください。

387:デフォルトの名無しさん
12/01/11 15:56:40.64
DirectXの入門向けのWebサイトは内容古いものが多いんじゃないか?
普通に本買えよ

388:デフォルトの名無しさん
12/01/11 18:10:47.41
本を買え

389:デフォルトの名無しさん
12/01/11 18:30:52.55
チュートリアルじゃ不満かね

390:383
12/01/11 22:05:02.65
いや、ちょこっと趣味でプログラムはじめてみようとHSP使ってみたんですが、
ちょこっとマップチップ並べるだけで、滅茶苦茶遅くて・・・
どうも素の状態のHSPはCGの処理と配列の処理が遅いみたいですね
で、プラグインでDirectx仕込むものがあるんですが、
どうせならHSPで覚えるんじゃなくて、Cで覚えて行った方がいいかなと思いまして

で、変に自分だけで探して偏った知識を身につける前に
一般的に広まっている開発環境を聞いておいた方がよいかな?と思いました

のちのち、行き詰まった時に調べやすく、サンプルなども探しやすいものがあれば・・・
色々、ワガママを言ってすみません



次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch