【C++】 DirectX初心者質問スレ Part19 【C】

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
※回答する人も、質問する人も必ず読んでください

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

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

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

【C++】 DirectX初心者質問スレ Part18 【C】
http://pc11.2ch.net/test/read.cgi/tech/1216270204/
2デフォルトの名無しさん:2008/10/25(土) 22:55:53
>>1

>>2

>>3
3デフォルトの名無しさん:2008/10/25(土) 23:04:28
Zって言われちゃった
4デフォルトの名無しさん:2008/10/25(土) 23:07:20
スプライトとサーフォースはどっちを使えばいいの
5デフォルトの名無しさん:2008/10/25(土) 23:29:53
サーフォース?
ダークサイドの力は強力なのか?
6デフォルトの名無しさん:2008/10/25(土) 23:37:53
さーふぇーすかな?かな?
7デフォルトの名無しさん:2008/10/26(日) 00:20:25
スプライト自作とか車輪の再開発だろ
8デフォルトの名無しさん:2008/10/26(日) 01:23:30
×スプライト
○スプライト操作用インターフェース

人間のことを自動車といってるようなもんだな
9デフォルトの名無しさん:2008/10/26(日) 01:29:09
別にスプライトの自作も可能だろ。
10デフォルトの名無しさん:2008/10/26(日) 01:53:44
ええ…メッシュもメッシュ操作用インターフェースって言わないとだめなの?
11デフォルトの名無しさん:2008/10/26(日) 01:56:42
昔のスプライトみたいに制限枚数以内なら負荷成無しみたいな特殊な処理されてるわけでもないんでしょ?
12デフォルトの名無しさん:2008/10/26(日) 05:03:28
ある程度ゲームが形になってきた頃に
固定ウィンドウで作ってたものを可変に切り替える事は
可能でしょうか?
(ウィンドウを可変にする事で
 画面内のゲーム画像もサイズがウィンドウにあわせて変更可能?)
初めから可変を想定した場合、
ゲーム内の画像描写作成時もそれに合わせた構成の仕方が必要だったりしますか?


13デフォルトの名無しさん:2008/10/26(日) 05:50:38
サイズに関してはビューポートいじればいいだけだから問題ないが
ピクセルの補間が問題になる
ウィンドウ解像度を可変にするのなら補間をしないと見れたものじゃないので
最初からピクセル補間ありで作ったほうがいい
14デフォルトの名無しさん:2008/10/26(日) 11:11:19
サーフェイスに対しピクセル処理で、モノクロ化やラスタスクロール、セル平均を取る矩形モザイクなどを
リアルタイムで処理しようと思って、ピクセルシェーダに手を出したのですが、Lockでやるのと違って
白黒にはなるのですがところどころに水平線のゆがみのような物がでてしまいます。シェーダはこんな感じです。
texture tex1;
sampler texSampler = sampler_state{
  Texture = <tex1>;
  MinFilter = NONE;
  MagFilter = NONE;
  MipFilter = NONE;
  AddressU = Wrap;
  AddressV = Wrap;
};
float4 pixelS(float2 tex : TEXCOORD0 , float4 src : COLOR0) : COLOR{
  src = tex2D(texSampler,tex)*src;
  float bright = src.r * 0.3f + src.g * 0.59f + src.b * 0.11f;
  src.r = bright;
  src.g = bright;
  src.b = bright;
  return src;
}
頂点フォーマットは変換済みのものを使っています。処理自体はシェーダの方が早そうなので何とか
利用したいんですが・・・
15デフォルトの名無しさん:2008/10/26(日) 11:33:05
ID3DXSpriteで奥行きを0以外にすると表示されなくなるのはどうして?
16デフォルトの名無しさん:2008/10/26(日) 12:18:32
>>14
頂点座標の設定に誤りがあるのでは?
このままではないが、俺のはこんな感じだ。

void RenderFullScreenQuad( const vector4& srcTexCoords, rect_t destRect)
{
const DWORD fvf = D3DFVF_XYZRHW | D3DFVF_TEX1 | D3DFVF_TEXCOORDSIZE2(0);

struct Vertex
{
vector4f p;
vector2f t;
};

const Vertex vertex[] =
{
{ vector4f( destRect.left -0.5f, destRect.top -0.5f, 0.5f, 1.0f), vector2f( srcTexCoords.x, srcTexCoords.y)},
{ vector4f( destRect.right -0.5f, destRect.top -0.5f, 0.5f, 1.0f), vector2f( srcTexCoords.z, srcTexCoords.y)},
{ vector4f( destRect.left -0.5f, destRect.bottom -0.5f, 0.5f, 1.0f), vector2f( srcTexCoords.x, srcTexCoords.w)},
{ vector4f( destRect.right -0.5f, destRect.bottom -0.5f, 0.5f, 1.0f), vector2f( srcTexCoords.z, srcTexCoords.w)}
};

D3DDevicePtr->SetFVF( fvf);
D3DDevicePtr->DrawPrimitiveUP( D3DPT_TRIANGLESTRIP, //Primitivetype
countof(vertex)-2, //プリミティブの数
vertex,
sizeof(vertex[0]));
}
17デフォルトの名無しさん:2008/10/26(日) 14:18:24
おーい
18デフォルトの名無しさん:2008/10/26(日) 16:36:57
>>15
投影済みの座標に奥行きもクソもないだろ
19デフォルトの名無しさん:2008/10/26(日) 19:11:07
>>14
質問とは関係ないけど、FilterのNONEはMipFilterを無効にするときだけに使うもので、
MagFilterとMinFilterをポイントサンプリングにしたいならPOINTだと思うが。
あと、ラスタースクロール以外ならAddressU,VはWrapよりClampかな。

水平線のゆがみってのがスクリーンショットを見てみないと何とも言えんが、
元の画像とポリゴンの大きさとテクスチャ座標がマッチしてないんじゃないか?
縦が400の画像を398とか402とかのサイズで描画してるんじゃない?
20デフォルトの名無しさん:2008/10/26(日) 19:15:23
>>15
準備してねーからだろ

↓managedだが基本的に一緒な
ttp://www.atelier-blue.com/program/mdirectx/3d/3d01-21.htm
21デフォルトの名無しさん:2008/10/26(日) 19:57:45
初歩的な質問ですみませんが・・・
DirectXでただウィンドウを立ち上げるだけのプログラムで躓いてます。
コンパイルすると、ウィンドウやdirectX関連の変数が未解決だといわれます。
どうしたらいいでしょうか?



下にソースを上げておきます。
コンパイル環境はVisualC++.NETです
ttp://gonzo.dip.jp/~gonzo/cgi-bin/uploader2/upload.cgi?mode=dl&file=5281
DLキーは 1234 です
22デフォルトの名無しさん:2008/10/26(日) 20:03:11
libがリンクされてない予感
23デフォルトの名無しさん:2008/10/26(日) 20:16:19
libがリンクされてない場合どうすればいいのでしょうか・・・?
それとプログラムを書くのに「はじめての3Dゲーム開発」って本を
見て書いてるんですが、その本だとd3dx9dt.libというライブラリを使っているのに、
sdk9.0cにそれが入ってないので d3dx9.lib と d3dx9d.libというのに書き換えてる(名前が似てるから)
んですがそれと何か関係あるでしょうか?
24デフォルトの名無しさん:2008/10/26(日) 20:22:20
d3d9.libとd3d9x.libのリンク、およびmain.cppの#define MAIN_CPPを
include文より上に持っていけばいい。
25デフォルトの名無しさん:2008/10/26(日) 20:25:08
おっと、xの位置間違った。
まあそのlibをリンクしてるなら、defineの位置替えるだけでいけると思うよ
26デフォルトの名無しさん:2008/10/26(日) 20:25:40
>>23-24
解決しました。ありがとうございます。
確かにMAIN_CPPの定義があとじゃ意味ありませんでした
27デフォルトの名無しさん:2008/10/26(日) 22:05:43
スプライトが遅いって何年前の話だよw
28デフォルトの名無しさん:2008/10/26(日) 22:20:08
突然出てきて、話の流れと全く無関係で意味不明なことを口走る、
>>27みたいな馬鹿の脳味噌には、やはりウジが涌いているんだろうか?
29デフォルトの名無しさん:2008/10/26(日) 22:21:37
DirectXを始めてたいのですが、Cがわかればできるでしょうか?
C++でやってるところが多いようなので。
30デフォルトの名無しさん:2008/10/26(日) 22:24:31
COMの使い方がわかればおk
31デフォルトの名無しさん:2008/10/26(日) 22:29:06
>DirectXを始めてたいのですが
過去形に希望をもたれても、既に始めていないのなら成立し得ない。
よって無理。
32デフォルトの名無しさん:2008/10/26(日) 22:34:44
始めたいでした
33デフォルトの名無しさん:2008/10/26(日) 22:37:56
DirectXってC言語でもコンパイルできるようになってるんじゃなかったっけ
34デフォルトの名無しさん:2008/10/26(日) 22:52:12
>>29
最短コース

C → C++ → Win32API → DirectX
35デフォルトの名無しさん:2008/10/26(日) 22:58:50
Win32APIは猫でもわかるWindowsプログラミングのメモ帳もどきまでやってるけどWin32APIはどれくらいまでやればいいですか?
それとC++はWisdomSoftのC++の項目を一通り読めばいいでしょうか?
36デフォルトの名無しさん:2008/10/26(日) 23:00:38
どこまでやったとか読んだとかじゃなくて
自分で1つ何かを作ったことがない程度じゃきつい
37デフォルトの名無しさん:2008/10/26(日) 23:03:34
なんとかなるよ、なんとかならなくなってから考えれ
38デフォルトの名無しさん:2008/10/26(日) 23:14:10
Cでオセロを作った程度ですが
39デフォルトの名無しさん:2008/10/26(日) 23:23:58
出来る出来ないとかウジウジウジウジくだらないことを言っている暇があるなら、
とっとと始めろ。
40デフォルトの名無しさん:2008/10/27(月) 00:11:56
うざいスレだな
41デフォルトの名無しさん:2008/10/27(月) 00:18:26
ほんと使えねー奴ら
42デフォルトの名無しさん:2008/10/27(月) 00:23:58
使えねー
の意味がわからんww
4334:2008/10/27(月) 01:29:59
>>35
とりあえずオセロを作れるくらいまでやるといいよ
ねこわかで画面描画の基礎がわかれば、
オセロゲームの素体くらいはつくれる筈

ねこわかだけでは心もとないってなら
赤坂玲音のWinゲームプログラムとかを立ち読みするといいかな
ただしC++じゃなくてCベースなんでC++的な意味合いではあまり参考にならない


4414:2008/10/27(月) 01:45:55
>>19まぁ、多分テクスチャのUVとかの設定が間違ってそうなんですが、その辺の処理の流れとしては
struct Vertex2D{
  D3DXVECTOR3 pos;
  FLOAT rhw;
  D3DCOLOR diffuse;
  FLOAT u,v;
};
エフェクトBegin
SetFVF(2D用の設定)
Vertex2D v[4];
テクスチャからサイズを取得して(GetDesc)4つの頂点をそのサイズに合うようにセット
rhwとdiffuseを1.0fと0xffffffffにセット
uvは0.0fと1.0fでセット
DrawPrimitiveUP
エフェクトEnd

というかんじです。頂点とuv座標でなんか間違ってますかね?
45デフォルトの名無しさん:2008/10/27(月) 08:35:36
つか
シェーダーにきちんと頂点フォーマットが伝わってないんじゃ?
SetFVFじゃなくてSetVertexDeclarationしろ
46デフォルトの名無しさん:2008/10/27(月) 10:25:59
2Dの画像を描写する場合って
spriteを使うのと板ポリに貼るのはどちらがいいですか?
47デフォルトの名無しさん:2008/10/27(月) 10:29:08
2Dを表示させることが目的ならspriteのがお手軽
将来3Dもやったり、Direct3Dの勉強したいなら板ポリ勉強した方がいい
48デフォルトの名無しさん:2008/10/27(月) 11:25:44
そもそもspriteって何のことだよ?
49デフォルトの名無しさん:2008/10/27(月) 11:41:49
ディスプレイ上を動き回る2D画像の総称
50デフォルトの名無しさん:2008/10/27(月) 12:49:05
>>45なるほどそれかもしれません。ところで頂点構造体のRHWメンバはD3DVERTEXELEMENT9のUsageメンバに
どんな値をセットすればいいんでしょうか?
51デフォルトの名無しさん:2008/10/27(月) 14:17:01
>>50
D3DDECLUSAGE_POSITIONT
D3DDECLUSAGE_POSITIONと違ってD3DDECLTYPE_FLOAT4なので注意
あと当然ながら頂点シェーダは使えない
52デフォルトの名無しさん:2008/10/27(月) 20:14:29
 ヘイクーに与えた暗号はイマーゴがなくても使えるように改造した擬似的なものだ。
 駅向こうもおそらく同じだろう。だがお前のは違う。イマーゴと直結してる。
 いまのお前の状態はおそらく私と同じだ。
 暗号炉はイマーゴと直結して思考から直接暗号を取り出す構造体だ。
 しかし、イマーゴと直結した暗号炉もあの新型のレベル3フォーマットで攻撃されたら無事では済まない。
  とくに私のように深く直結して./ ̄ ̄ ̄ ̄ ̄ ̄ ̄\いる場合は。おまけに、この古流
\ の暗号、イマーゴを消費して|  うるさい黙れ   |暗号を出している。危険すぎる /
   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\_______/ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                           ∨      (゚д゚ )
                          <⌒/ヽ-、__ノヽノ |
                        /<_/____/ < <

53デフォルトの名無しさん:2008/10/27(月) 20:43:58
MDIウィンドウの上にスプライトを表示させたいのですが、
IDirect3DDevice9::Clear() 時に
MDIウィンドウが上書きされ、同時に表示できません。
Clearの引数にあるColorのアルファ値を有効にする手段はありませんか?

オフスクリーンという機能を使って、
BITMAPとしてレンダリングし、マスクして描画させるか、
ウィンドウの内容をあらかじめキャプチャしておき、
キャプチャした内容ごとD3Dで描画するしか方法はないのでしょうか?
5421:2008/10/27(月) 21:09:27
また質問ですみませんがxファイルってどうやって読み込めばいいんでしょうか?
D3DXLoadMeshFromX関数で読み込もうとするとミスにばかりなります…
D3DXLoadMeshFromX関数の引数がLPSTRなのにchar*で渡してるのがいけない
んでしょうか・・・?

ソースをあげておきます。DLキーは1234です
このファイルには入れ忘れていましたが Chips.x は用意してコンパイルしています
ttp://www1.axfc.net/uploader/He/so/152246
55デフォルトの名無しさん:2008/10/27(月) 21:20:09
DirectX 9.0 SDK Update (Summer 2003) の ID3DXSprite ですが,調べてみる限りではバッファリングを行って DrawIndexedPrimitive の呼び出し回数を減らしているように見えます.
詳しいことは以前書きましたのでそちらを参考にしてください.

http://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi?log=39&vew=284

どうも「ID3DXSpriteは遅い/速い」や「DrawIndexedPrimitiveUPは遅い/速い」といった言葉だけ一人歩きする傾向があるようです.
DirectX Graphicsのパフォーマンスに関する議論は,最終的に
・DirectX Graphicsのパフォーマンス特性に適合しているから速い
・DirectX Graphicsのパフォーマンス特性と適合していないから遅い
の二種類と,
・自分の望むパフォーマンスが達成できているからこれ以上の最適化は不要
・自分の望むパフォーマンスが(ハードウェア上は可能なのに)達成できていないから一層の最適化が必要
の二種類の組み合わせに集約されるはずで,なまじメソッドの格付けみたいな方向に議論を持って行くと誤解が誤解を呼ぶことになりかねませんのでご
56デフォルトの名無しさん:2008/10/27(月) 21:28:25
>>54
デバイスを作成する前に読み込めるわけがない
57デフォルトの名無しさん:2008/10/27(月) 21:40:09
>>21
本を見てやってるみたいだが
最初からちゃんと読むことをお勧めする

著者のHPも見たほうがいいかもね
58デフォルトの名無しさん:2008/10/27(月) 21:59:42
>>56-57
どうもです。
一回ちゃんと本読み通すことにします
59デフォルトの名無しさん:2008/10/27(月) 22:08:35
具体的に言うとInitD3dの前にload_3dobjしてるのがダメ
60デフォルトの名無しさん:2008/10/29(水) 00:12:17
DirectX9でシューティングゲームを作っているんですけど、
弾を進行方向に向かせるためにD3DXMatrixRotationZ関数を使って回転
して進行方向に向かせるにはどうすればいいですか?
61デフォルトの名無しさん:2008/10/29(水) 00:25:24
その情報だけでどう答えるのか
62デフォルトの名無しさん:2008/10/29(水) 00:28:04
多分、弾の移動べクトルから向きを計算する方法を求めてるんだろう
atanを使えばいいんじゃね
63デフォルトの名無しさん:2008/10/29(水) 00:30:53
DirectX関係ないし。。。
Z軸回転ってことでXY平面状の2Dシューティングとして
弾の加速度をVX、VYとして軸の向きがよくわからんからなんとも言えんが
D3DXMatrixRotationZ( &mat, atan2(1VY,VX) ) ;
64デフォルトの名無しさん:2008/10/29(水) 00:34:14
むしろこんなわかんない状態でDirectX始めちゃうぐらいでいいと思うよ
数学どれぐらい勉強したらいいですかねなんて質問してる人よりも
65デフォルトの名無しさん:2008/10/29(水) 00:56:13
弾の画像を進行方向に向かせる時もD3DXMatrixRotationZを使えばいいですか?
66デフォルトの名無しさん:2008/10/29(水) 01:00:00
変なのがいるね
進行方向って何の?
67デフォルトの名無しさん:2008/10/29(水) 01:08:39
弾が進んでる方向に画像を向ける感じです。
68デフォルトの名無しさん:2008/10/29(水) 01:12:32
Direct3dで2Dゲームを作成しようと散策中ですが、
参考になるお勧めの書籍、サイト等ありましたら
アドバイスお願いします

ちなみにジャンルはベルトスクロールアクションです。
69デフォルトの名無しさん:2008/10/29(水) 01:12:38
D3DXMatrixRotationZでぐるぐる回せてはいるんだろ?

それが出来てるなら、あとは>>63のように向きを計算すればいいだけだよ
70デフォルトの名無しさん:2008/10/29(水) 01:18:39
>>65
オレも初心者だが
D3DXMatrixRotationZ
でぐぐるだけで結構でて来るよ

そこの説明が良くわからないってことなのか
どうかはしらんけど。
DirectDrawはある程度弄ったけどDirect3dはこれから。
71デフォルトの名無しさん:2008/10/29(水) 02:09:23
RENDER_TARGETととして作ったテクスチャに半透明のピクセルを含むテクスチャを描画したとき
バッファリング?とかされているのかも知れないんですが、先に描画した背景画像に対してαブレンドされずに
サーフェイスのクリアに使った色とブレンドされてしまいます。
しかもこれはRENDER_TARGETのテクスチャの時だけに再現します。(自動のバックバッファでは起こらない)
何か足りない設定があるのでしょうか?
72デフォルトの名無しさん:2008/10/29(水) 21:03:29
XYZRHWのペラペラを描く命令で蓄えておいて
一箇所でどどーんってのは出来るの?
73デフォルトの名無しさん:2008/10/29(水) 21:17:13
日本語でおk
74デフォルトの名無しさん:2008/10/29(水) 21:19:30
>>72
同じテクスチャ、同じ設定ならできる
75デフォルトの名無しさん:2008/10/29(水) 21:20:41
最近命令って言う人が多いな
76デフォルトの名無しさん:2008/10/29(水) 21:25:50
頂点情報を命令という馬鹿は、ピクセル情報も命令に見えるんだろうな
77デフォルトの名無しさん:2008/10/29(水) 21:27:30
78デフォルトの名無しさん:2008/10/29(水) 22:12:21
                  /\
                /    \
              /  <●>  \     
            /            \     
             ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
            ___________           
          //TTTTTTTTTTTTTTTTTT\
        /:::::/TTTTTTTTTTTTTTTTTTTTT\
      /:::::::::/TTTTTTTTTTTTTTTTTTTTTTTT\
    /:::::::::::::/TTTTTTTTTTTTTTTTTTTTTTTTTTT\
  /:::::::::::::::::/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT\
              M D C C L X X V I

            NOVUS ORDO SECLORUM
79デフォルトの名無しさん:2008/10/29(水) 22:54:03
directs3dで2Dゲームのことが書いてそうなのって
今日秋葉のヨドバシで捜したけど
このくらいしか

アクションゲームプログラミング (大型本)
藤田 和久 (著)

ちなみにお昼にちらちらとしか探せなかった
この本持っててしかも2Dなら任せろって方
この本実際需要はどれほどなのか、よければ購入したい

今更2D?って感じかもしれないが
レトロ好きなんで、ドット絵がたまらんのですよ
作るなら徹底的に作りたいし
今日も徹夜して検索かな;
80デフォルトの名無しさん:2008/10/29(水) 22:57:48
directs3d
direct3d
orz
81デフォルトの名無しさん:2008/10/29(水) 23:05:38
>需要はどれほどなのか
これのほうが変だと思うw
82デフォルトの名無しさん:2008/10/30(木) 10:44:34
どうせ
これ1冊あればOK、なんて本ないから好きなのやればいいと思うよ
5冊くらい良いとこ取りすればそこそこ理解も深まるし
83デフォルトの名無しさん:2008/10/30(木) 14:33:07
2DゲームとDirect3D関係ないし
描画部分だけ変えればいいだけなのだから
2Dゲーム(といっても色々あるが)そのものについて詳しく書いてある本でいいんでないの
84デフォルトの名無しさん:2008/10/30(木) 16:34:33
二次元を描くときは変換済みのと厚みが1の箱とどっちがいいの?
85デフォルトの名無しさん:2008/10/30(木) 17:04:57
Windows APIを学ぼうとしているのですが,何か初心者に向いたWindows API関連の書籍はないでしょうか?
86デフォルトの名無しさん:2008/10/30(木) 17:05:47
>>84
厚みが何であれ真正面から見りゃ平らだろ
87デフォルトの名無しさん:2008/10/30(木) 17:18:26
>>83
> 2DゲームとDirect3D関係ないし  ×

現実に使ってある
計算が楽になるらしい。
3Dオブジェクトを使わないとしても3D効果を使うからかな。
88デフォルトの名無しさん:2008/10/30(木) 17:57:08
>>85
はじめてのういんどうずぷろぐらむ びじゅあるしーぷらすぷらす
ってのがおすすめだが
入手困難な上にVC6でのサンプルなんでVSで動かすのが面倒
しかしこれより簡単なWin32APIの本は
俺は見たことがないので
手に入るならおすすめ
89デフォルトの名無しさん:2008/10/30(木) 17:58:35
3D効果もそうだし
描画順番をZソートに任せちゃうとか
90デフォルトの名無しさん:2008/10/30(木) 18:46:24
これからはDirect2Dの時代なんだぜ
91デフォルトの名無しさん:2008/10/30(木) 18:50:06
Direct3D 10.1にのっかるのか
92デフォルトの名無しさん:2008/10/30(木) 22:14:31
質問です。
DirectX9で
http://www.shader.jp/xoops/html/masafumi/directx9/3dtips/d3d19.htm
を参考に文字列の描画をしたのですが
指定した座標の部分に文字が表示されず赤い四角形が表示されてしまいます。
原因がわかる方がいたら教えてください。
DrawTextの戻り値は0ではありませんでした。

文字の描画
SetRect(&rect,100,0,0,0);
dxfont->DrawText(sprite,"ABC",-1,&rect,DT_NOCLIP,0xffff0000);
93デフォルトの名無しさん:2008/10/30(木) 22:54:02
>>87
アホですか
3D効果なんて3Dの勉強をすりゃいいだけの話だろ
2Dゲームとはなんの関係もないよ
94デフォルトの名無しさん:2008/10/30(木) 22:57:06
ラざいスレだな
95デフォルトの名無しさん:2008/10/30(木) 22:58:29
3D効果が使われた時点でそれは3Dゲームなのだよ
96デフォルトの名無しさん:2008/10/30(木) 23:00:15
Asso
97デフォルトの名無しさん:2008/10/30(木) 23:01:45
どうでもいいので>>92の質問に早く答えなさい
98デフォルトの名無しさん:2008/10/30(木) 23:03:44
>>92
Rectの意味を理解していないという事はわかった
99デフォルトの名無しさん:2008/10/30(木) 23:51:27
>>71も答えてくだされ
100デフォルトの名無しさん:2008/10/31(金) 00:13:27
Zバッファクリア?
101デフォルトの名無しさん:2008/10/31(金) 00:28:43
先に描画した物を通過してブレンドされるのとZバッファって何か関係があるんですか?
良かったら教えてください
102デフォルトの名無しさん:2008/10/31(金) 00:42:05
ステートどんなのあるか調べるんだ!
103デフォルトの名無しさん:2008/10/31(金) 03:15:06
とりあえず
まともな回答が帰ってこない人は
質問の仕方が悪いだけだからソース晒せばいいと思うよ
104デフォルトの名無しさん:2008/10/31(金) 03:41:35
>>101って前スレのマルチ?
105デフォルトの名無しさん:2008/10/31(金) 07:44:36
回答側が根性腐ってるだけだろwww
106デフォルトの名無しさん:2008/10/31(金) 09:28:29
質問の仕方が悪いが悪いっていうか
単純に経験不足なんだろうけど質問のポイントがわかってないのは多い
そんな聞かれ方してもぱっと思いつくだけで原因がいくつもありそうだったり
そんなのやり方が悪い、としか言いようがないものだったり
難しく考えすぎて実は単純な凡ミスが原因だったり
確かにソースを上げてしまうのが一番手っ取り早いってのはある
107デフォルトの名無しさん:2008/10/31(金) 11:23:38
ttp://books.google.co.jp/books?q=4798013161
この本ってプレビューあったんだね
108デフォルトの名無しさん:2008/10/31(金) 12:31:04
現在フルスクリーンにて作成しているのですが
フルスクリーンで起動中他のアプリケーションに制御を
移した後
もう一度フルスルリーンに切り替えると
なにも表示されないのですが
これはどういった対応をすればよいのでしょうか?
109デフォルトの名無しさん:2008/10/31(金) 12:37:10
デバイスロスト
110デフォルトの名無しさん:2008/10/31(金) 12:46:20
>>108
それに限らず 
解像度が変更されたり
スクリーンセーバーが起動したりするると
D3Dデバイスが消失してしまう
これはフルスクリーンではなくウインドウモードでも消失することがあるから注意
よってデバイスを作り直さなければならない
そしておまいは其の程度の解説も載っていない
参考書やHPで勉強するのはやめるべきだと思う


>>105
実際性根が腐ってるやつは多いと思う
そういうゴミが回答しないのに初心者いじめるから
わざわざこうやって初心者スレが別にあるだろうに
ご丁寧に初心者虐めをしにくるのは見てらんない
ただし日本語でOKな質問者は除く
111デフォルトの名無しさん:2008/10/31(金) 13:05:50
デバイスのロストに対応するか否かで
設計のめんどくささが全く違うからなぁ
初心者に対しては触れられたくない話題ではあるためスルーされることが多いよね
製品でもウィンドウモードやサイズの切り替えは
起動時のランチャーで制御してロストには対応してないものが多いし
112デフォルトの名無しさん:2008/10/31(金) 13:23:18
DirectX10にしちゃいなよ!シェーダーわからないだって?
113デフォルトの名無しさん:2008/10/31(金) 15:52:40
vistaがない
114デフォルトの名無しさん:2008/10/31(金) 17:12:57
俺はXファイル読めないんで諦めました
115デフォルトの名無しさん:2008/10/31(金) 17:24:00
いや3Dがわからない
116デフォルトの名無しさん:2008/10/31(金) 17:26:15
2Dしか愛せない
117デフォルトの名無しさん:2008/10/31(金) 17:54:57
ー回のDrawPrimitiveでたくさんの板を描くにはどうすればいいの?
118デフォルトの名無しさん:2008/10/31(金) 18:01:20
たくさん頂点指定すればいい
119デフォルトの名無しさん:2008/10/31(金) 18:19:51
・Windows95ゲームプログラミング DirectX入門 - DirectX1 (DirectDrawのみ)
・Windows95ゲームプログラミング ------------ DirectX2
・3DグラフィックスプログラミングforWindows95--- DirectX2
・DirectX5ゲームプログラミング入門----------- DirectX3 (RMのみ)
・3Dゲームプログラミング入門---------------- DirectX7
・入門DirectX7プログラミング----------------- DirectX7

親戚が捨てようとしていたので貰ったのですが
今でも役立つ本があったら教えてください。
古い本で勉強したら意味が無かったり、悪影響があるでしょうか?
120デフォルトの名無しさん:2008/10/31(金) 18:26:30
正直意味がないと思われる
121デフォルトの名無しさん:2008/10/31(金) 18:29:37
普遍的な部分と今では通用しない部分を見分けられるくらいなら
それはそれで、その本いらないよな
122デフォルトの名無しさん:2008/10/31(金) 18:30:01
それらの本を読んで、DX9のプログラムを組めるかと言えば答えはNo
123デフォルトの名無しさん:2008/10/31(金) 18:31:19
暇でしょうが無いときに流し読みして古紙回収にでもまわせば
124デフォルトの名無しさん:2008/10/31(金) 18:31:46
でもちょっと読んでみたいw
125デフォルトの名無しさん:2008/10/31(金) 18:33:11
全部読んだわけではないが、ゲームプログラムって部分でちゃんとゲーム作れてないのが多いと思う
126デフォルトの名無しさん:2008/10/31(金) 19:44:25
>>119
読んでから書き込みしろ
127デフォルトの名無しさん:2008/10/31(金) 20:00:01
>>119
DirectX7は、WindowsXPの9とそれほど変わらないと思う。

> 3Dゲームプログラミング入門
> 3DグラフィックスプログラミングforWindows95
DirectXのバージョンはともかく、3Dデータの扱いとかフォーマットの参考資料にはなるだろ。

古いバージョンでもわかりやすくまとめたものは参考になるよ。
最新バージョンの機能はオンラインヘルプで見れるわけだけど、サンプルコードがないとね。
もちろん最新バージョンの本があればそんな古い本はいらない。
128デフォルトの名無しさん:2008/10/31(金) 20:13:35
デバイスに指定するD3DRS_AMBIENTと
D3DLIGHT9のAmbientはなにがちがうの
129デフォルトの名無しさん:2008/10/31(金) 22:49:03
D3DRS_AMBIENTは
ステートブロック内の全ての物体に影響する
ライトのAmbientはライトの当たってる範囲にのみ影響する
ライトの範囲内では
D3DRS_AMBIENTで指定した値
+ライトで指定したAmbientが環境光になる
130デフォルトの名無しさん:2008/10/31(金) 23:16:41
ほー
131119:2008/10/31(金) 23:47:08
>>120-127
皆様ありがとうございました。
最新の本を購入するか、DirectX7の本から始めてみます。
132デフォルトの名無しさん:2008/10/31(金) 23:54:24
ぶっちゃけWebのコードだけで十分だけどなw
133デフォルトの名無しさん:2008/11/01(土) 00:14:32
DirectX7の本なんか捨てちまえよ
過去に縛られるのはいくない
134デフォルトの名無しさん:2008/11/01(土) 01:32:18
日本はエロゲ方面から発達してきたからかロースペックのマシンをサポートする事が何よりも大事だという風潮がある。
海外は俺の技術すげーだろ?的なものを見せたがるので最新技術をバンバン投入してくる。

その結果が今の3D技術の「海外>>>越えられない壁>>>日本」になって現れていると思う。
INTELの845をサポートしつつ3Dゲームを作るとかわけわからん事言い出すヤツもたまにいる。
135デフォルトの名無しさん:2008/11/01(土) 01:38:02
PCに関しては英語を読めない馬鹿が多いからだろwww
136デフォルトの名無しさん:2008/11/01(土) 01:53:59
なんかそれって外国のほうが初めから
技術高いって言ってることになるぞ?
137デフォルトの名無しさん:2008/11/01(土) 02:03:07
海外製のネトゲとかで810で動作してたのは結構あった気がするけど
当時810が普及しすぎて対応せざるを得なくなってたのは日本だけじゃない気が
138デフォルトの名無しさん:2008/11/01(土) 02:13:36
まぁ、コンシューマ(PS3、Wii)等を見れば、そういった差は無いことが一目瞭然なわけで。
単純に国の需要の問題だと思うけど。
ゲームなんかは特に、派手な見た目が喜ばれるのは最初の30分くらい。
後は操作性の方が全然優先される。
139デフォルトの名無しさん:2008/11/01(土) 09:32:31
140デフォルトの名無しさん:2008/11/01(土) 10:51:53
その最初の30分が売れるためには重要なのかも知れないね。
141デフォルトの名無しさん:2008/11/01(土) 10:56:32
GBAとかDSの2Dゲー見てると、2D表現は日本のほうがこなれてるなーって思う
142デフォルトの名無しさん:2008/11/01(土) 11:14:21
2Dゲーなんて俺の触手(食指)が動かないぜ
143デフォルトの名無しさん:2008/11/01(土) 13:06:17
DirectXってもう9や10から入るのはつらいよな
5や7の時代は良かったのに・・・
144デフォルトの名無しさん:2008/11/01(土) 13:43:38
9からのほうが楽だろ・・・。俺的には10のほうが自由でもっと楽だけど。
145デフォルトの名無しさん:2008/11/01(土) 14:44:12
楽なのは 10>9>8>7>他 だと思うけどな
146デフォルトの名無しさん:2008/11/01(土) 15:03:34
>>145
情報の量は逆だね 10<9<8<7
147デフォルトの名無しさん:2008/11/01(土) 16:06:31
今後Vista以降のOSを使えばDX9世代以前のGPUでもDX10を使えるようになるみたいだけど
果たしてどれだけ意味があるのか
148デフォルトの名無しさん:2008/11/01(土) 16:11:47
>>146
そりゃ歴史が浅いほど情報は少ないだろ。
ただDirectX10に関しては9までのと違って細かいメーカールールとかなくてかなり扱いやすいけどね。
Vistaはもう仕方ないのでWindows7でDirectX11と一緒にブレイクするのを期待する。

シェーダーモデル2.0なんかじゃまともに組めめーし。
149デフォルトの名無しさん:2008/11/01(土) 16:37:28
>>148
> ただDirectX10に関しては9までのと違って細かいメーカールールとかなくてかなり扱いやすいけどね。
マジスカ。
確かにハードと切り離されてるんだからOSが吸収してくれて簡単になっててもおかしくない。
じゃあWindowsXPの終焉とともにDirectX9以前は消滅か。
でもeeePCとかで今も大人気のXPがなくなるのはいったいいつになるやら。
150デフォルトの名無しさん:2008/11/01(土) 17:02:28
まぁ3Dの本だされても理解できないんですけどね





















ゆ と り 教 育 の 結 果 が こ れ だ よ ! ! !
151デフォルトの名無しさん:2008/11/01(土) 19:16:23
>>150
こんなつまんねー書き込みで改行やらないでくんない?
152デフォルトの名無しさん:2008/11/01(土) 19:17:44
>>151
詰 め 込 み 教 育 の 結 果 が こ れ だ よ ! ! !
153デフォルトの名無しさん:2008/11/01(土) 20:01:47
7はついにD3Dがネットワーク透過になると聞いてちょっとwktkですよ
154デフォルトの名無しさん:2008/11/01(土) 20:04:32
どういう事?
XWindowみたいになんの?
155デフォルトの名無しさん:2008/11/01(土) 20:07:51
>>149
eeePCはサポート外でいいだろ。
156デフォルトの名無しさん:2008/11/01(土) 21:08:48
>>154
うん、グラフィックス処理をクライアント側に丸投げできる
案ずるより産むが易しってことで詳しくはこっち見て下さい
ttp://mschnlnine.vo.llnwd.net/d1/pdc08/WMV-HQ/ES21.wmv
157デフォルトの名無しさん:2008/11/01(土) 21:14:45
>>156
1時間以上ですか。
しかも英語。わかりません。
158デフォルトの名無しさん:2008/11/01(土) 21:19:25
>>157
実演は17分くらいからと33分くらいから
159デフォルトの名無しさん:2008/11/01(土) 21:20:36
DCOM?
160デフォルトの名無しさん:2008/11/01(土) 21:24:22
OpenGLみたいな〜っと勝手に妄想
161デフォルトの名無しさん:2008/11/01(土) 22:19:36
 /|\
 | キ |        n/ ̄\n
 | キ |        /  (・(・|
 \|/        三    ∞ |三
  ||         /  / ̄ ̄)
 /──────   \ ̄ ̄)
 |           | |/| | ̄ ̄
 |_| ̄|_| ̄ ̄ ̄ ̄ ̄|_|  |_|
162デフォルトの名無しさん:2008/11/01(土) 22:44:29
グラフィックなんて自分でコツコツ作るから面白いと思うんだが・・・。
GPGPUとかシェーダーこつこと弄るのがかわらなきゃ別にいいわ
163デフォルトの名無しさん:2008/11/01(土) 22:49:12
楽なら楽な方がいいよ。その分他の事ができるんだから
164デフォルトの名無しさん:2008/11/01(土) 23:23:50
テクスチャとZ値でソートする場合
どういう順番で並べたらいいの?
165デフォルトの名無しさん:2008/11/01(土) 23:30:12
ザパニーズでおk
166デフォルトの名無しさん:2008/11/01(土) 23:33:18
自分の好きなように並べたらいい。
そうとしか言えない。
167デフォルトの名無しさん:2008/11/02(日) 00:09:29
>>164
テクスチャとZ値って意味わかんない
キーワードあげるからテキトーにググって知識いれてきてよ

キーワード
Zバッファ アルファテスト Zソート 前から描画
168デフォルトの名無しさん:2008/11/02(日) 00:46:18
>>164

コスト優先ならテクスチャを、見た目優先ならZを
169デフォルトの名無しさん:2008/11/02(日) 00:50:21
一枚のテクスチャにして、欲しい絵の部分をRECTで切りだせばいいだろ
170デフォルトの名無しさん:2008/11/02(日) 00:57:02
171デフォルトの名無しさん:2008/11/02(日) 01:06:15
今どきSetTextureのコストとか…
172デフォルトの名無しさん:2008/11/02(日) 01:31:55
SetTextureのコストは変わらないだろ?
転送速度なんだから
173デフォルトの名無しさん:2008/11/02(日) 09:10:24
ひんと 回数
174デフォルトの名無しさん:2008/11/02(日) 09:21:13
テクスチャが一回ずつしか使われてなかったらソートの手間損だろ
175デフォルトの名無しさん:2008/11/02(日) 09:40:20
SetTexture()のコストなんてどうでもいいが、
それに伴うDrawPrimitive()のコストは洒落にならない。

未だにどのエンジンも如何にしてDrawPrimitive()を減らすかに
躍起になっている理由くらい分かるだろ。
176デフォルトの名無しさん:2008/11/02(日) 09:45:16
>>175
俺もうそんなの考えてねぇよ
必要なら必要な分だけ何回でもレンダリングしてる
汎用性とシェーダの兼ね合い考えたら
もう汎用性をとるしかない

何度でもDrawPrimitiveしまくる
177デフォルトの名無しさん:2008/11/02(日) 09:51:39
そもそもSetTextureってなにかメモリ的な動きあるのか?
これフラグ立てるだけだべ
DrawPrimitiveしたときにすべてを実行してるんじゃねぇのか?
178デフォルトの名無しさん:2008/11/02(日) 10:01:06
DrawPrimitiveの前にSetTextureやりまくってみりゃわかる
ついでにテクスチャサイズでの違いの検証も

よ ろ し く
179デフォルトの名無しさん:2008/11/02(日) 10:08:32
>>176
せめてジオメトリインスタンス使えよ
180デフォルトの名無しさん:2008/11/02(日) 10:12:41
>>177
>DrawPrimitiveしたときにすべてを実行してるんじゃねぇのか?

つまりSetTextureを呼ぶと、DrawPrimitiveに時間がかかるわけだろ。
181デフォルトの名無しさん:2008/11/02(日) 10:15:46
富豪的処理
182デフォルトの名無しさん:2008/11/02(日) 10:37:30
DrawSubsetというかDrawPrimitiveは非常に重い処理。 流石に1フレームに1000回はかなり無茶なレベルだぞ。 まったく同じモデルを複数表示してるならジオメトリ インスタンスを使え。
183デフォルトの名無しさん:2008/11/02(日) 11:22:49
ジオメトリ インスタンス
って何ですか?
184デフォルトの名無しさん:2008/11/02(日) 11:31:37
やふれ
185デフォルトの名無しさん:2008/11/02(日) 12:05:20
たぶん、DirectX10は飛ばされて
11がメジャーバージョンになるんじゃないかと踏んでいるんだが
186デフォルトの名無しさん:2008/11/02(日) 12:52:49
偶数バージョンが空気になるのは毎度のこと
187デフォルトの名無しさん:2008/11/02(日) 13:12:06
7⇒8でさっぱり変わって9で完成形を見たように
9⇒10でさっぱり変わってるから11で完成形を見るんだろう。

8でシェーダーが対応されて9で完成されたのと一緒で
10でGPGPUが使えるようになったから11でより楽にサポート的な。
188デフォルトの名無しさん:2008/11/02(日) 13:29:58
>>184

77 :デフォルトの名無しさん:2008/07/29(火) 09:32:33
>>73
DrawSubsetというかDrawPrimitiveは非常に重い処理。
流石に1フレームに1000回はかなり無茶なレベルだぞ。

まったく同じモデルを複数表示してるならジオメトリインスタンスを使え。

同じの見つかったよw
189デフォルトの名無しさん:2008/11/02(日) 13:30:15
結局のところ
テクスチャ取り替えたり変換行列変える度に
DrawPrimitiveガ必要になるわけだろ。
いちいち回数減らす小細工しても変わらないよ。

DX10は知らんが。
190デフォルトの名無しさん:2008/11/02(日) 13:36:37
そう思うなら好きにすればいいさ
191デフォルトの名無しさん:2008/11/02(日) 13:38:24
その小細工の為に大層なエンジンを組むんだろ・・・
骨の行列をfloat4のテクスチャに格納して切り替えを減らすのとか
ジオメトリインスタンスの機能があるのは何のためなのかと。

GPU Gems3を読んで来い。
192デフォルトの名無しさん:2008/11/02(日) 15:06:08
っ フレームごとの消去をやめて変化しないものは描きなおさない
193デフォルトの名無しさん:2008/11/02(日) 15:08:33
なんか知らんがステートブロック使うだろ
194デフォルトの名無しさん:2008/11/02(日) 15:19:33
遅い環境に合わせてもしょぼいゲームが出来るだけ
195デフォルトの名無しさん:2008/11/02(日) 16:30:01
くだらない高速化に目を向ける前に、完成直前まで持っていいって遅いと感じてから直せ。
余計なところに気を回している暇があったら、とっとと完成させる方に目を向けろ。
どうせ描画の一部を直すより、システム全体のロジックを見直した方が速くなることに気がつくだけなんだから。
196デフォルトの名無しさん:2008/11/02(日) 16:40:54
そして定期的に速いグラボ買わせる訳ですね。
197デフォルトの名無しさん:2008/11/02(日) 17:13:36
testes
198デフォルトの名無しさん:2008/11/02(日) 17:46:08
DrawPrimitive()が使うのはGPUじゃなくCPUだぞ、っと。
199デフォルトの名無しさん:2008/11/02(日) 17:57:21
所詮はCOM
秒間何百回も呼ぶように作られちゃいねーのよん
200デフォルトの名無しさん:2008/11/02(日) 19:09:27
COMを一秒間にたった数百回呼び出したところで、それがシステム全体にどんな影響を与えると?
頭が悪いにも程がある。
201デフォルトの名無しさん:2008/11/03(月) 00:01:33
おまいらはこの本から勉強しなおすべきだな。

ttp://image.excite.co.jp/feed/news/Excite/bit/2008/E1225123817444_1_s.jpg
202デフォルトの名無しさん:2008/11/03(月) 02:50:42
>>189
まったくだな
しかも、一発で描くようにしたらシェーダをアフォかってほど書かなきゃならない
もはや人間がやってられる量を完全に超えてる

もう俺なんかあきらめて2度塗り3度塗り上等だよ
ディフューズやスペキュラ、ライト1個目、2個目・・・
DrawPrimitiveなんて呼びまくってナンボだろ
203デフォルトの名無しさん:2008/11/03(月) 08:04:53
>>201
ドイツ人はこんな教科書で日本語を勉強してるのか・・・・orz
204デフォルトの名無しさん:2008/11/03(月) 09:56:48
>>199
>>200
DrawPrimitiveが重いのはCOM云々じゃなくて
中でGPUコマンドの生成を行なってるからだぞ・・・。
この辺はMSやnVIDIAの技術者からも情報がいろいろ出てるだろ。
205デフォルトの名無しさん:2008/11/03(月) 10:43:14
流れを切ってしまうが・・・

みんなはDXUTとか使ってる?
206デフォルトの名無しさん:2008/11/03(月) 10:52:51
使ってない。
DirectXも使ってない。
ていうかプログラム作ってない。
207デフォルトの名無しさん:2008/11/03(月) 11:06:59
使っていない。
その程度自前で作れる程度でないと、そもそも何も出来ない。
208デフォルトの名無しさん:2008/11/03(月) 11:24:14
使ってる
楽できるとこは楽しないと
自己満足のために納期は待ってくれないし
209デフォルトの名無しさん:2008/11/03(月) 11:30:33
仕事で使ってる人がなぜ初心者スレに・・
210デフォルトの名無しさん:2008/11/03(月) 11:35:47
まだ初心者だけどGUI機能だけ使おうかと思ってる
211デフォルトの名無しさん:2008/11/03(月) 11:55:18
ゲームクリエイターズバイブル
に自分しか信じない病って書いてあったなー
212デフォルトの名無しさん:2008/11/03(月) 13:40:41
D3DX系の高レベルAPIは信用出来ないぞ。
バグがあってもいつ直るか分からないは、勝手に仕様を変更されるは、
そんな物を使っている奴は気が狂っているとしか思えない。
213デフォルトの名無しさん:2008/11/03(月) 13:47:01
あれはラッパライブラリと同列に扱うものであって基盤になるAPIじゃない
214デフォルトの名無しさん:2008/11/03(月) 15:37:16
ID3DXFont::GetDC()で取得したHDCって使い終わったらどうすればいいんでしょうか?
Win32Apiで解放した方が委員でしょうか?ID3DXFont::ReleaseDC()が見当たらないので
215デフォルトの名無しさん:2008/11/03(月) 15:53:11
216デフォルトの名無しさん:2008/11/03(月) 16:37:01
えーと、その405は自分です。元の戻すのはいいんですが、解放はどうするのかなぁ、と思ったもので・・・
217デフォルトの名無しさん:2008/11/03(月) 17:09:00
Fontは遅いから使うなとかなんとか…
218デフォルトの名無しさん:2008/11/03(月) 18:11:12
そもそもGetDCで何がしたいんだろう?
あまり安全じゃないから使わないほうが良いという話だが
一度削除されて、いつのまにか復活してる
219デフォルトの名無しさん:2008/11/03(月) 18:21:35
ID3DXFont::GetGlyphDataは使ってる
220デフォルトの名無しさん:2008/11/03(月) 19:21:51
まぁ、多少遅くてもいいかなと思って使ってます。
>>218危険性についてググッても出なかったんですが、何が危ないんでしょう?
221デフォルトの名無しさん:2008/11/03(月) 19:35:55
>>220
アルファチャンネル
222デフォルトの名無しさん:2008/11/03(月) 19:41:28
LPD3DXFONT::Release
て無くなったの?
前はなかったっけ?
223デフォルトの名無しさん:2008/11/03(月) 20:21:08
>>222
COMだからQueryInterface, AddRef, Releaseは必ず存在する。
224デフォルトの名無しさん:2008/11/03(月) 20:27:44
あぁゴメンReleaseDCか
225デフォルトの名無しさん:2008/11/03(月) 21:06:16
冗談かと思ってたら本当にDirect2Dとかでるのな
http://channel9.msdn.com/pdc2008/PC18/
226デフォルトの名無しさん:2008/11/03(月) 21:16:57
また海のものとも山のものともつかぬようなAPIが増えるのか
227デフォルトの名無しさん:2008/11/03(月) 21:27:39
>>221今回はコンパチの作成とフォントハンドルの取得にしか使ってないんですが・・・
分からないっちゃ分からないですよね。安全かどうかは・・・
でも、それはさておきID3DXFont::GetDCで取得したHDCはリリースすべきなのか、どうするのか
分かる人いないですか?
228デフォルトの名無しさん:2008/11/03(月) 21:32:08
正直いまさら2D機能なんて作られてもいらねぇだろ・・・
229デフォルトの名無しさん:2008/11/03(月) 21:38:07
日本は2D
230デフォルトの名無しさん:2008/11/03(月) 21:56:58
>>227
普通にリリースすればいいんじゃね?

http://msdn.microsoft.com/en-us/library/bb173963(VS.85).aspx
特になにも書いてないね
231デフォルトの名無しさん:2008/11/03(月) 21:59:41
ぶっちゃけた話DirectWriteの為だけに用意された気がしないでもない
232デフォルトの名無しさん:2008/11/03(月) 22:03:29
エロゲなんざDirectDrawかGDIでつくりゃーいい。
いまどき同人ですらDirect3Dでゲームつくってるっつーのに
233デフォルトの名無しさん:2008/11/03(月) 22:04:47
さすがに今GDIはないわ
234デフォルトの名無しさん:2008/11/03(月) 22:13:10
3Dゲームだってアイコンやらゲージやらマップやら2D表示部分はいくらでもあるだろ
235デフォルトの名無しさん:2008/11/03(月) 22:19:47
3DゲームならそういうのはなおさらDirect3Dで描くだろ。
236デフォルトの名無しさん:2008/11/03(月) 22:22:42
Direct3Dの上に実装されるらしいから問題ないだろ
237デフォルトの名無しさん:2008/11/03(月) 22:25:53
Direct2Dの中身も分からないのに何を言っているのやら
Direct3Dでやるより楽なら使えばいいし面倒なら使わなきゃいいだけの話だろ
新しい物を試しもしないうちから否定してもプログラマとして成長しないぜ
238デフォルトの名無しさん:2008/11/03(月) 22:42:10
やる前にある程度のことは分かれよ、大人なら(笑)
239デフォルトの名無しさん:2008/11/03(月) 23:19:24
>>238
憶測で分かったつもりになるのが大人というなら
大人になんかなりたくないと、ぼくはおもいます
240デフォルトの名無しさん:2008/11/03(月) 23:20:33
どうでもいい機能が追加されることなんてよくあるだろ
そんなのどうでもいいと思う事すらどうでもいいだろうに
241デフォルトの名無しさん:2008/11/03(月) 23:23:32
それだけ要望が多かったんだろ。
その程度の実装すら自分で出来ない馬鹿の。
242デフォルトの名無しさん:2008/11/03(月) 23:57:07
DirectDrawの焼き直し。DD扱いにくかったからな・・・。
243デフォルトの名無しさん:2008/11/04(火) 00:19:35
動画やってる人にも需要ないかな?
244デフォルトの名無しさん:2008/11/04(火) 01:08:51
>>230
::ReleaseDC()で開放しろって意味ですよね?
HDCはいいけど、HWND引っ張ってくるのめんどいズェ・・・ID3DXFontから引っ張れるけど・・・
解放しなくていい気がしてきた。怖いなぁ。 よし放置しよう!
245デフォルトの名無しさん:2008/11/04(火) 05:31:41
DirectShowは糞
246デフォルトの名無しさん:2008/11/05(水) 08:40:37
DirectX9 とC++で
DirectX Graphicsを2Dについても濃厚に解説している
お勧めの書籍があれば教えてください。
247デフォルトの名無しさん:2008/11/05(水) 12:45:16
その質問は何度もでていますが
残念ながらそのような本は存在しませんので
直接本屋に足を運んで
自分のレベルにあっていると思われる本をお選びください
ある程度慣れてくると
その本に何が足りなくて、自分が何を必要としているのかがわかってくるので
そのとき改めて別の本を買うなりネットを検索するなりしたほうが良いと思われます
248デフォルトの名無しさん:2008/11/05(水) 14:37:52
ネットで十分ですよ
249デフォルトの名無しさん:2008/11/05(水) 14:40:17
本を片っ端から買う金がないならネットでコツコツと探せ
わかんない人にとっては無駄じゃないから
250デフォルトの名無しさん:2008/11/05(水) 19:42:41
IDirect3DDevice9::CreateStateBlock
でググって絶望するわけですな。
251デフォルトの名無しさん:2008/11/05(水) 19:50:23
ちゃんとMSDNがヒットするぞ
252デフォルトの名無しさん:2008/11/05(水) 23:34:35
250みたいな馬鹿はググリ方すら分からないから、
インターネッツの使い方の本なら買う価値があるかもね
253デフォルトの名無しさん:2008/11/06(木) 00:03:00
なんでここの連中って高圧的なの?
254デフォルトの名無しさん:2008/11/06(木) 00:13:38
ストレス溜まってるからだろ
255デフォルトの名無しさん:2008/11/06(木) 00:57:55
>>246じゃないが
DrectDrawに相当するものについて説明してるところないだろうか
3Dの解説してるところは山ほどあるけど
2Dになると「もうなくなったからあきらめてね」みなたいな流れなのが悲しい
とりあえず画面に線を引くくらいでいいから取っ掛かりがほしい
256デフォルトの名無しさん:2008/11/06(木) 01:41:06
画面に三角形を書く、その三角形にテクスチャを張るぐらいの説明はどこでもやってる気が
257デフォルトの名無しさん:2008/11/06(木) 01:42:45
よくある3Dの解説サイトでも、最初は画面にポリゴン一枚から、とかじゃない?
そのポリゴン一枚を2Dの絵と見立てれば解決のような。それじゃ嫌なのかな?
258デフォルトの名無しさん:2008/11/06(木) 01:44:51
3Dができれば2Dなんて軸が1本減っただけだろう

>>255
D3DPT_LINELISTかD3DPT_LINESTRIPで引けば
259デフォルトの名無しさん:2008/11/06(木) 01:49:54
>>255
DirectDrawには、画面に線を引くなんて機能すらないよ。
あるのは画像のブロック転送だけ。
線を引きたかったら、1ピクセルずつ自分で描かないとダメ。

あと、あらゆるピクセルフォーマットに対応できる仕様になっているから、
物凄く面倒だよ。フォーマットの変換はやってくれないから、全部自分で
読み込み時に変換しないとダメ。

最近のDirect3Dで2Dだけを扱うよりも数倍面倒。
デバイスの初期化だけで100行くらいのコードになるし。
260デフォルトの名無しさん:2008/11/06(木) 01:50:16
そこまでやる気ないのだとしたら
ゲームライブラリとか公開してる人がいるからそういうのを使う方がいいかも
261デフォルトの名無しさん:2008/11/06(木) 07:51:25
>>255
モニターの設定を取得してそのカラー設定に応じて自分で点を打っていく
RGB888( )とかRGB565( )みたいなマクロ作っとくといいよ
262デフォルトの名無しさん:2008/11/06(木) 10:02:55
線を引きたいなら1ドットのビットマップを引き伸ばして回転させて線にするとか
263デフォルトの名無しさん:2008/11/06(木) 13:15:43
>>262
DirectDrawに回転ないってw
264デフォルトの名無しさん:2008/11/06(木) 13:51:53
265デフォルトの名無しさん:2008/11/06(木) 13:52:38
>DrectDrawに相当するもの
って書いてあるからDDじゃないと思ってた
266デフォルトの名無しさん:2008/11/06(木) 14:06:04
>>255の言いたい事は、2Dグラフィクを扱う方法と考えるべきだな。
頭の悪い奴は、DirectDrawでできることというお馬鹿な解釈をする。
>>259>>263のようにね。
267デフォルトの名無しさん:2008/11/06(木) 15:42:03
DirectDrawで線を引く機能があっても意味ねー。
ゲームの画面が線で描かれることは無い。
すべて絵だし。ビットマップだし。
268デフォルトの名無しさん:2008/11/06(木) 15:45:37
まー解説サイトも板ポリゴン作って拡大回転テクスチャをごにょごにょのレベルまでだけどな

DrawPrimitiveの削減とか考えると本買うしかない
269デフォルトの名無しさん:2008/11/06(木) 16:00:25
2Dでそこまでしなくても
270デフォルトの名無しさん:2008/11/06(木) 16:55:05
最新のDirectXがどうしてもインストールできません。
何度やっても「ファイルをダウンロードできませんでした。
後でもう一度実行するか、ネットワーク接続を確認してください」
というダイアログが出ます。

どういった原因なのか分かる方いらっしゃいますでしょうか・・・?
271デフォルトの名無しさん:2008/11/06(木) 16:58:39
ブラウザ変えてやってみるとか。
うちでも一定バイト数以上にならなくて別ブラウザにしたら一発だった。
272デフォルトの名無しさん:2008/11/06(木) 17:04:46
VC++で説明している本の内容をC#で実装するのって手間かかりますか?
273デフォルトの名無しさん:2008/11/06(木) 17:17:09
SlimDX使えば
274デフォルトの名無しさん:2008/11/06(木) 17:22:42
最初はオープンソースのライブラリを使ってゲームを作る
そしてライブラリの中身を見ながら自分風のライブラリに置き換えていく。
俺はこうやってWinAPIとDirectXを習得した。

まぁDirectX7+ELの時代なんですけどね。

今だとオープンソースで使えるライブラリつったらDXライブラリかな?
275デフォルトの名無しさん:2008/11/06(木) 17:36:29
自分で書いたほうが早い
276デフォルトの名無しさん:2008/11/06(木) 17:42:07
Direct Graphics だとか Audio なんかはフリーのライブラリを見て勉強できますが、
ゲームオブジェクトの管理とか設計がままなりません。
オブジェクト指向本とか勉強するべき?
277デフォルトの名無しさん:2008/11/06(木) 18:46:03
>Direct Graphics
そんな物は存在しない
278デフォルトの名無しさん:2008/11/06(木) 18:47:46
>>271
>>270へのレスでしょうか?

そうでしたら、違うブラウザーでも駄目でした。
同じような現象が現れた人はいないでしょうかね・・・。
279デフォルトの名無しさん:2008/11/06(木) 19:41:24
ウイルス対策ソフトをアンインストールしてから出直せ
280デフォルトの名無しさん:2008/11/06(木) 23:20:18
はじめまして
Visual C++ 2008でdirectXをやろうとしてるのですが
コンパイルできません。
次のようなエラーが表示されてしまいます。

1>MSVCRTD.lib(crtexe.obj) : error LNK2019: 未解決の外部シンボル _main が関数 ___tmainCRTStartup で参照されました。
1>C:\Users\takuya\Documents\Visual Studio 2008\Projects\AAA\Debug\AAA.exe : fatal error LNK1120: 外部参照 1 が未解決です

SDKはインストールしましたし、ソースはコピペなので完璧なはずです。
何がいけないのでしょうか?
281デフォルトの名無しさん:2008/11/06(木) 23:23:36
Win32アプリケーションじゃなくてWin32コンソールアプリケーションとしてプロジェクトを作成してる。
DirectXと関係ねー話だからよく分らんかったらVSのスレにでも池
282デフォルトの名無しさん:2008/11/07(金) 11:35:23
シェーダで隣のテクセルなどを参照する方法ってありますか?
283デフォルトの名無しさん:2008/11/07(金) 12:09:20
in float2 inTexture : TEXCOORD0, // [入力] テクスチャ座標

// 中心点と隣接する4点をサンプリング
float4 t0, ti, t2, t3, t4 ;
t0 = tex2D(TexSampler, inTexture),
t1 = tex2D(TexSampler, inTexture+float2( -1.0f/TEX_SIZE_X, 0)),
t2 = tex2D(TexSampler, inTexture+float2( 1.0f/TEX_SIZE_X, 0)),
t3 = tex2D(TexSampler, inTexture+float2( 0, -1.0f/TEX_SIZE_Y)),
t4 = tex2D(TexSampler, inTexture+float2( 0, 1.0f/TEX_SIZE_Y)) ;

ただし、テクスチャのサイズTEX_SIZE_X, TEX_SIZE_Yは既にわかっていて
外部から与えられるものとする
284デフォルトの名無しさん:2008/11/07(金) 12:40:54
シェーダで1.0f/TEX_SIZE_Xを計算させると精度で泣くよ。
TEX_SIZE_Xを与えるついでに逆数も与えた方がいい。
285デフォルトの名無しさん:2008/11/07(金) 12:48:52
>>283
なるほど、ありがとうございます。
自分がtex2Dについてよく理解していなかったようです。すいません。
286デフォルトの名無しさん:2008/11/07(金) 13:34:15
逆数を与えるとは?
287デフォルトの名無しさん:2008/11/07(金) 14:45:15
質問させていただきます。
DirectXをつかってC++でゲームを作る場合、オブジェクト指向でClassを作るというやり方は一般的ではないのでしょうか。
ちょっとしたゲームの入門書を読んでみても、Classは出てきておらず、疑問に思いました。
Javaでコードを書いていた期間が長く、Class 自分、Class 敵 、とクラスを作っていこうと考えていたのですが処理が遅くなるなどのデメリットが生じるでしょうか?
288デフォルトの名無しさん:2008/11/07(金) 15:00:11
今時クラスを使わない方が少数派だよ。仕事ならなおさらね。
その程度のリスクを気にするような時代じゃない

まあ全てをクラスで管理しなくてもいいわけだし、上位はクラスで管理して
下位を入門書のコピペでやるというのもありか
289デフォルトの名無しさん:2008/11/07(金) 15:06:54
現場ではまず使わないね。
まあ趣味なら好きにすれ
290デフォルトの名無しさん:2008/11/07(金) 15:09:06
どこの現場だよ^^;
Cだけで組んでるなんて10年前ぐらいの話だぞ
291デフォルトの名無しさん:2008/11/07(金) 15:13:15
リスク?コスト?
292デフォルトの名無しさん:2008/11/07(金) 15:18:47
公開されてるToHeart2のソースだとCだけで組んでるっぽいな
あそこのプログラマは知識なさそうだから参考になるか知らんがw

DirectXで仕事した事はないけど、家庭用ゲームの開発ではクラス使ってる
293デフォルトの名無しさん:2008/11/07(金) 15:30:04
少人数の開発だとプログラマー1人で全部やるようになるからその人次第じゃね
294デフォルトの名無しさん:2008/11/07(金) 15:43:05
クラスでやっても実行速度はかわらんだろ
295デフォルトの名無しさん:2008/11/07(金) 15:44:10
まあ共同制作の場合はクラス作る方が都合がいいやね
ちゃんとオブジェクト指向と言える物になってればの話だが
グローバル変数が各ソースで呼ばれるようになるとバグ修正が困難になる
296デフォルトの名無しさん:2008/11/07(金) 15:49:37
>>294
それは組み方次第じゃね
少なくともクラス自体のnewとdeleteの手間はあるわけだし
全く変らないとは言い切れないが、別に気にするような事じゃない
297デフォルトの名無しさん:2008/11/07(金) 16:12:26
俺は、一つのcppファイルをクラスと見立ててコード書いてる。だからクラス自体は使ってない。
まぁあくまでも趣味だから俺は
298デフォルトの名無しさん:2008/11/07(金) 16:44:25
仮想関数って致命的なオーバーヘットもあるしな
299デフォルトの名無しさん:2008/11/07(金) 16:59:02
classでも何でもとりあえずデバッグしやすい構造でがしがし組んで行って、
最後速度が本当に気になるなら実装をいじればいい
300デフォルトの名無しさん:2008/11/07(金) 17:40:25
オーバーヘッドがどうこう言う>>298みたいな奴は、
それこそ致命的に頭が弱い。
中身が空っぽに近いメソッドをぐるぐる呼び出して、
ベンチマークをとったと勘違いしているんだろうが、
実際に目的があって組まれたプログラムの仮想関数を、
別の方法に置き換えたところで、1FPSすら速度の向上に貢献しない。
301デフォルトの名無しさん:2008/11/07(金) 18:00:18
>>300
なんで頭が弱いとか人を馬鹿にするような書き込みをわざわざすんの?
おまえに限らずこのスレはくだらない自尊心を満たすために汚い言葉つかうやつが多くて困る
302デフォルトの名無しさん:2008/11/07(金) 18:35:48
どのスレでも馬鹿は馬鹿にされるでござりまするよ
303デフォルトの名無しさん:2008/11/07(金) 18:37:14
2ちゃんなんてこんなもん
それが嫌なら綺麗な掲示板に行こう
304デフォルトの名無しさん:2008/11/07(金) 18:39:32
言語仕様のどうでもいい一部にこだわるよりも、
いらん処理を省いたり、目立たない部分を簡略化したりする事に時間を割いた方が、
よっぽど全体のパフォーマンスが上がる。
305デフォルトの名無しさん:2008/11/07(金) 19:59:41
Windows + DirectX + C++ で開発する場合、DirectXの前にWindowsプロシージャの
ラップやらMFCやらを説明しないとならない。
DirectX入門という触れ込みなのに中々絵のでない解説が延々続くと読者の興味が持たないし、
前書きに「最低限C++とWindowsプログラムの知識が必要です」とかだと対象が狭まってしまう。
多分、著者側のそんな苦悩があるのでは。
306デフォルトの名無しさん:2008/11/07(金) 20:01:23
いまどき仮想関数のオーバーヘッドとか・・・
危うくつられるところだったぜ・・・・・・。

いまどきクラスなしでゲーム開発なんて携帯機くらいじゃねーの?
new/deleteでオーバーヘッドっつーならmalloc/freeはノーコストなのかと。
307デフォルトの名無しさん:2008/11/07(金) 20:08:24
DSの開発はC++ですぜ
308デフォルトの名無しさん:2008/11/07(金) 23:15:22
すんません質問させらくだ際


ゲーム中の画像の描画にアルファ適用したくて
元画像から一個一個DDS作ってるんだが正直免土井

そんで、元画像とアルファ情報入ったグレースケールの画像を一度に二つ読み込んで
DDSとかをいちいちつくらずアルファを実装してるゲームとかたまに見るんだけど
あれはどうやったらできるの?
309デフォルトの名無しさん:2008/11/07(金) 23:22:28
目的のサイズのテクスチャ作って、直接ARGB値を書き込むんじゃないの?
310デフォルトの名無しさん:2008/11/07(金) 23:31:09
>>309 ぐぐってみたらそれらしいのが出てきたんで試してみます
thxでした
311デフォルトの名無しさん:2008/11/07(金) 23:36:16
元からPNGとかでα込みのデータ作ればいいのに。
あくまでもマスク画像と合成してDDS作りたいなら、自分でバッチ処理する
プログラムでも書けばいいかと。DDSでの保存はD3DXで簡単にできる。
312デフォルトの名無しさん:2008/11/07(金) 23:36:23
つか、どっちにしろ何らかの
アルファチャンネル付きフォーマットを用意することには変わらないんじゃ
313デフォルトの名無しさん:2008/11/07(金) 23:38:25
最初からグラフィックソフトでDDS作る方が数倍簡単だろ・・・
αとカラーを別々の画像で扱う方がメンドイしキャッシュにもやさしくない
314デフォルトの名無しさん:2008/11/07(金) 23:42:49
普通にマルチテクスチャしてるんじゃまいか?
315sage:2008/11/07(金) 23:44:53
>>311-313 割と多く画像を扱うからDDSへの変換が結構手間だったり
ファイルが増えて煩雑な感じになったりだったんで
ファイル二つですめばいいなあと思いやってみてたんだが
あんまりよろしくはなかったのか…
316デフォルトの名無しさん:2008/11/08(土) 00:55:32
Photoshopでバッチ変換とかすりゃいいだけだろう。
nVIDIAのプラグインでミップマップとか圧縮とかも全部出来るし。
って流石にPhotoshopはかえねーよって人のために
コマンドラインツールがDriectXのSDKん中に入ってたりする。
317デフォルトの名無しさん:2008/11/08(土) 03:54:15
うちの社内ツールがBMPしか読めませんとか、RGBとAが別でないと読めませんとかだったお。
面倒すぎて自分でPSD→社内形式のツール作ったw



318デフォルトの名無しさん:2008/11/08(土) 04:32:11
どこの社内ですか?
319デフォルトの名無しさん:2008/11/08(土) 05:23:00
320デフォルトの名無しさん:2008/11/08(土) 13:23:54
乗り遅れたが・・・
趣味→クラス使っても使わなくても
仕事→クラスを使わないとえらいことになりそう

しかし上でも言われてるように、使うのと使わないのでは差が出ると行ってもほんのちょっとだろう。
俺もCで組んだことあるが違いが実感できなかった
321デフォルトの名無しさん:2008/11/08(土) 13:29:04
そもそも仮想関数ってただの関数テーブル化されるだけだろ。
インライン展開しないような大きさなの関数なら差なんて無いだろ。
322デフォルトの名無しさん:2008/11/08(土) 13:29:35
素人乙
323デフォルトの名無しさん:2008/11/08(土) 13:38:37
そういうのを気にするのは
まともにゲームも作ったことのない
ライブラリ厨だけだってばっちゃが言ってた
324デフォルトの名無しさん:2008/11/08(土) 13:41:32
うちのじっちゃも言ってた
てことはまさか
325デフォルトの名無しさん:2008/11/08(土) 13:42:51
じっちゃやばっちゃの世代なら仮装関数を噛ますことのオーバーヘッドなんて許容しがたくて当然じゃねw
326デフォルトの名無しさん:2008/11/08(土) 14:03:51
言語論争は絶対に決着がつかないのでここまでで
327デフォルトの名無しさん:2008/11/08(土) 14:19:11
どう考えても一定以上の規模のものを作るならC++必須なんだし、
速度がそんなに気になるなら全部アセンブラで書いたら?
328デフォルトの名無しさん:2008/11/08(土) 14:35:33
今はコンパイラが利口すぎて
PGが最適化しなくてもそれなりに動くし
初心者スレだからそれでいいと思うんだが

あと論議するならDirectXのスレじゃなく
C++のスレでやってくれ
329デフォルトの名無しさん:2008/11/08(土) 14:41:11
仮想関数のテーブル参照のコストを気にするのなら、
仮想メモリのアドレス変換のコストなんか失禁ものだぞ。
そういう奴は素直にDOSでも使ってろ。
330デフォルトの名無しさん:2008/11/08(土) 14:45:42
そんな事よりDrawPrimitiveの呼び出し回数を減らせよと
331デフォルトの名無しさん:2008/11/08(土) 14:47:50
1時間に1回しか呼ばない俺は関係ないな
332デフォルトの名無しさん:2008/11/08(土) 14:54:52
行列の乗算のコスト考えたら関数呼び出しなんて失笑ものだよな
333デフォルトの名無しさん:2008/11/08(土) 15:00:45
今のCPU速いしな
オンボ+速いCPUの組み合わせのPCはあっても
ちゃんとしたビデオカード+遅いCPUの組み合わせはありえんし
作りやすいように作るのがいいと思うぞ
334デフォルトの名無しさん:2008/11/08(土) 16:27:26
DrawPrimitiveの回数云々よりも、いらないキャラクターの描画を削ったり、
遠くのオブジェクトのポリゴン数を減らすようなシステム改善の方が、
よっぽど全体の速度向上に繋がる。
335デフォルトの名無しさん:2008/11/08(土) 16:33:11
>>334
それを含めてDrawPrimitiveの回数を減らす努力だろ・・・
336デフォルトの名無しさん:2008/11/08(土) 16:38:36
後出しご苦労様。
DrawPrimitive限定と、他の命令も大幅に削減出来るかどうかの差は天と地ほどある。
337デフォルトの名無しさん:2008/11/08(土) 17:02:58
DrawPrimitiveだけを限定して減らす事なんて出来ない。
最低でも対になるSetRenderStateやSetTextureは減る。
338デフォルトの名無しさん:2008/11/08(土) 17:42:27
速度のネックになるのは描画、アニメーション処理全てだよ
その中にDrawPrimitiveの回数というのも当然含まれる

クラスを使う使わないとか、その他もろもろの処理の重さなんて
描画やアニメーションに比べれれば0に等しい
339デフォルトの名無しさん:2008/11/08(土) 18:03:38
ゆとりらしいレスだな。
PIの値に3とか使ってそうw
それぐらいの誤差は0に等しいとか言ってw
340デフォルトの名無しさん:2008/11/08(土) 18:15:11
ほほう、それじゃ比較してどれほどのものになるというのかね?
341デフォルトの名無しさん:2008/11/08(土) 18:17:33
特定の内容にこだわって遅いだのこうしろだの言い出す人間が、
いかに木を見て森を見ない奴だかよく分かる。
342デフォルトの名無しさん:2008/11/08(土) 18:19:52
おまえらそんなことはいいからゲーム完成させろよ
343デフォルトの名無しさん:2008/11/08(土) 23:31:26
C++使ったらオブジェクト指向で分かりやすくなると思ったら間違いなんだよC++で分かりやすいソースが書けるやつはCでも分かりやすいプログラムが書ける表面的なことばかり追求する姿勢を改め機械語からやり直すことが近道だ
344デフォルトの名無しさん:2008/11/09(日) 00:45:48
機械語とか中途半端なんだよ、アセンブリか、回路そのものにしろ

>>C++使ったらオブジェクト指向で分かりやすくなると思ったら間違いなんだよC++で分かりやすいソースが書けるやつはCでも分かりやすいプログラムが書ける
禿同
345デフォルトの名無しさん:2008/11/09(日) 00:50:18
>機械語からやり直すことが近道だ
そんなことをいったら半導体の設計からさらにその前にさかのぼっていくことになるぞ。
なんでそんなに頭が悪いんだ?
それこそ猿からやり直せ。
346デフォルトの名無しさん:2008/11/09(日) 00:57:35
同じだったらより低コストで開発できるC++を選ぶのが一番の早道になるわけだが

なにがなんでもC言語を使うための方法を考えてるくらいなら
さっさとC++で実装してしまったほうが良い場合もあるし
環境によってはC言語だけで組んだほうがベストの場合もあるだろう
言語はあくまで手段であって目的と取り違えてはいけない
同じではなくそれぞれのメリットとデメリットを理解して使い分けるべき
347デフォルトの名無しさん:2008/11/09(日) 01:04:32
最低でもクラスとSTL相当の機能は使えないとやってられないけどな・・・。
2,3人で1年程度で完成するようなゲームならCオンリーでも別にかまわんけど。
348デフォルトの名無しさん:2008/11/09(日) 01:33:18
ゲーム本体、グラフィックツール等→C++
データコンバーター等→Cで適当に

だな
349デフォルトの名無しさん:2008/11/09(日) 02:11:28
おまえらCとかC++とか言うまえに
スレタイ読めるようにしてこいよ?
350デフォルトの名無しさん:2008/11/09(日) 10:06:28
>>348
モノによって言語仕様を変えていたら、コードの再利用がしにくくなって、生産性が落ちるだろ。
なんでそんなにどうしようもない思考しか出来ないほど間抜けなの?
351デフォルトの名無しさん:2008/11/09(日) 10:17:04
常に再利用できる環境にいるなら
再利用しやすい言語を使えってことだろ?
組み込みとかアミューズメントとか再利用ってなんですか?
って世界もあるわけで
352デフォルトの名無しさん:2008/11/09(日) 10:20:51
本体⇒C++
ツール類⇒C# & C++/CLI
が鉄板だな。
353デフォルトの名無しさん:2008/11/09(日) 10:32:20
>>351
DirectXスレで組み込みを語り出す馬鹿って何なの?
354デフォルトの名無しさん:2008/11/09(日) 10:37:30
>>350
あるねー
ツールをVBなんかで作られると
出来たデータの読み込みルーチンを違う言語で2つ作らなきゃいけなくなってすげー面倒だよね

ちょwおまwなんでVBなんかで作ったの?

って感じだった
後、エクセルに埋め込んであるVBA
てめーは比較ツールで差分すらみえねーから逝っていいぞw
355デフォルトの名無しさん:2008/11/09(日) 11:11:51
>>350
構造体のフォーマットはそのままでいいんだからCだろうがC++だろうが同じことだろ
君はデータコンバーター自体にゲーム本体での読み込みコードまで書き込むわけ?

だいたい、C++を使うという事はCのコードでも再利用できるということだよ。
なんでそんなにどうしようもない思考しか出来ないほど間抜けなの?
356デフォルトの名無しさん:2008/11/09(日) 11:24:27
>>350>>354は適材適所という言葉を知らんのだろう。
それとも、ひとつの言語しか使えないのか・
357デフォルトの名無しさん:2008/11/09(日) 11:28:14
自作のクラスライブラリとかつかわんのか。
358デフォルトの名無しさん:2008/11/09(日) 11:35:26
>>356
うーん、でもC++で扱うデータをVBやらスクリプト言語やらで作るなよとは思う
その上データのバイナリイメージの詳細をきちんと示さない奴は氏ねよと

ただ、エクセルVBAはないと仕事にならない事も多い
パラメーターなんかのデータ入力は基本エクセルでやるからな
自分で使うだけなら全て自作のスクリプトでいいけれど
俺の場合はエクセルVBAからCのツール呼び出すけど
359デフォルトの名無しさん:2008/11/09(日) 11:46:46
脱線しすぎだなw
DirectXの話に戻ろうぜ
360デフォルトの名無しさん:2008/11/09(日) 12:08:29
周辺ツールなんか
Excelでデータ管理したり
PerlやPythonやC#でさらっと作成してるのが普通だと思ってた秋
361デフォルトの名無しさん:2008/11/09(日) 12:37:13
C#(笑)
362デフォルトの名無しさん:2008/11/09(日) 12:51:13
>>355
>だいたい、C++を使うという事はCのコードでも再利用できるということだよ。
>なんでそんなにどうしようもない思考しか出来ないほど間抜けなの?

C++からCの場合は対応させるために大幅な修正が必用。
CをC++側のコーディングスタイルに合わせるためにラッパーの追加。
そんな無駄な作業をしてまで
>データコンバーター等
をCに限定する意味が不明。

余計なコードが増えた分だけテストのチェック項目が増えるというのに、どれだけ頭が悪いの?
363デフォルトの名無しさん:2008/11/09(日) 12:51:22
今だったらツールはC#が当たり前かと思ってた。
未だにWin32でGUIとか作ってるところあんのかね。
364デフォルトの名無しさん:2008/11/09(日) 13:10:10
>>362
あのさ、
読み込みルーチンわざわざ別の言語で2回作らなきゃいけないのに
これでチェックを少なくできるとおもってんの?

しかも読み込みルーチンだけならいいけど
C++でこさえてあるほかの関数まで必要になっても全部別の言語で
書き直さなきゃならないじゃない?

みるからに手間がハンパねぇよ
ちょっとしたもんだって嫌だよ
だいたいそんなにその言語強力かよ
ちょっとした手間惜しんでっていうか自分がさわってみたかっただけの
言語を会社で使うんじゃねーよ
絶対お前使えねぇって
365デフォルトの名無しさん:2008/11/09(日) 13:12:20
>>363
.NetFrameworkさえ使えりゃいいんじゃねぇの?
366デフォルトの名無しさん:2008/11/09(日) 13:46:04
まーた生産性厨か
367デフォルトの名無しさん:2008/11/09(日) 13:50:30
>>362
>C++からCの場合
どこにもそんな事を書いた覚えはないんだが?
よっぽど馬鹿な事をしていない限りはそのような無駄な作業は
一切発生しないから心配しなくても大丈夫だよ。

よくわからんが、君が作るとなぜか余計なコードとやらが
無駄に増えてしまうのかもしれないね。
368デフォルトの名無しさん:2008/11/09(日) 13:52:49
てか、>>362=364なん?
誰にレスしてんの?意味不明なんだが。
369デフォルトの名無しさん:2008/11/09(日) 14:01:02
確かに、アンカー番号すら間違う>>364のような頭の悪い子には
複数言語を扱うのは無理かもね
他言語を覚える程度のちょっとした手間を惜しむような怠惰な子は
仕事じゃ使えねぇって
370デフォルトの名無しさん:2008/11/09(日) 14:17:26
言語なんて時代が流れるにつれて移り変わっていくものなんだから好きなの使えばいいんだよ

C++しかやってなくて他言語を使えないんだったらちょっとしたツールでもC++で作ればいいだろうさ
でも別言語だろうと苦もなく使えるぐらいの柔軟性がなければプロとしては失格
371デフォルトの名無しさん:2008/11/09(日) 14:21:04
会社とかプロとか一人で何言ってんだろ。
ストレスですね。わかります。
早死にしてください。
372デフォルトの名無しさん:2008/11/09(日) 14:22:42
そうだな。ここは初心者の素人が集まるスレだからプロも会社も関係ないんだ。
373デフォルトの名無しさん:2008/11/09(日) 14:26:08
ところでここしばらくDirectXのDの字も見てない気がするんだが
374デフォルトの名無しさん:2008/11/09(日) 14:30:55
質問です。DirectXでのおっぱいのリアルな揺らし方を教えてください。お願いします
375デフォルトの名無しさん:2008/11/09(日) 15:02:58
あ泉風呂でDirectX呼べるの?
376デフォルトの名無しさん:2008/11/09(日) 15:31:24
>>374
解剖学を勉強汁。
モーションだけなら乳限定で開発していた日本のベンダーがあった気がする・・・
377デフォルトの名無しさん:2008/11/09(日) 15:33:13
>>374
まずは>>374自身が「おっぱいのリアルな揺れ方」を勉強してくるんだ。
エロゲーの2次アニメや3DCGではなく、本物の。
DirectXの出番はその後。
378デフォルトの名無しさん:2008/11/09(日) 15:39:14
今まで:
単純な運動をそれぞれ担当する下請けがいくつかあって
どれを組み合わせるか決める元請けみたいなのがまた別の場所にある

今:
同じ場所に高速担当と低速担当がいて
これらが適当に組み合わせとかを変えることで
柔軟な運動ができる

ってことか?
379デフォルトの名無しさん:2008/11/09(日) 18:03:34
XP+VC2008EEで DirectX9のプログラムを開発しているのですが
SDKは最新版(2008 Nov)を入れた方が良いのでしょうか?
DX10/11は開発できないのでぶっちゃけて古めのSDK(2008 Mar)でもいいのかなと・・。
380デフォルトの名無しさん:2008/11/09(日) 18:15:35
自分で判断できない馬鹿は何使っても同じ。
381デフォルトの名無しさん:2008/11/09(日) 18:41:09
たぶん、またくだらない質問しにくることになるから
2007 August にしとけ
382デフォルトの名無しさん:2008/11/09(日) 20:15:44
Windows98対応も考えてOctober 2006をお勧め
リリースノートをみるとその後のバージョンでは98に対応してないらしい
383デフォルトの名無しさん:2008/11/09(日) 20:25:37
2006じゃなくて2004じゃね?
ってかWindowsXPより前のOSなんてサポートしても仕方ないと思うけど・・・
384デフォルトの名無しさん:2008/11/09(日) 20:26:51
だれも対応を望んでいるなんて言っていないのに、
とっくにサポートが切れたセキュリティリスクの塊なOSを
話に持ってくるのは、頭がおかしいから?
385デフォルトの名無しさん:2008/11/09(日) 20:35:03
>>383
最新版のリリースノートにも明記してあるぞ
本語版ドキュメントのOctober 2004と勘違いしてるんでね?
>>383-384
家にもまだWin98マシンがあるからな。動かないのは寂しい。
386デフォルトの名無しさん:2008/11/09(日) 20:58:59
NT4.0ならともかく98、Meとかありえねーから
387デフォルトの名無しさん:2008/11/09(日) 21:01:21
DX6以降は逆立ちしても使えないNT4とな
388デフォルトの名無しさん:2008/11/09(日) 21:14:25
NT4.0は9x系以上にねーよw
389デフォルトの名無しさん:2008/11/09(日) 21:31:51
だったらもうWindowsServer2003に対応しろよ
390デフォルトの名無しさん:2008/11/09(日) 21:32:51
というか、"SDKでの開発"がサポート外なだけで、
出来上がったexeの実行自体はできるんじゃないかしら。
391デフォルトの名無しさん:2008/11/09(日) 22:03:51
>>385
セキュリティーホールが永遠に塞がれることのないOSでネットに繋ぐな。
迷惑以外の何ものでもないのが分からないのか?
392デフォルトの名無しさん:2008/11/09(日) 22:07:24
サポートの方には98.Me使ってるって話は未だにくるな
393デフォルトの名無しさん:2008/11/09(日) 22:12:37
上のツールの話だけど単純にいままで作ったライブラリが使えないのに
わざわざ新しい言語でツールを作る意味あるの?
394デフォルトの名無しさん:2008/11/09(日) 22:13:32
職場に来た新卒君が同じことやっちゃって
ちょっとどういう神経でそういうことしたのか聞いてみたかった
395デフォルトの名無しさん:2008/11/09(日) 22:17:42
何のツールかによるだろ
描画やファイルフォーマットが絡むツールなら共通部分を
ライブラリ化するなりメインのプログラムからコピってくるなりした方が早い
396デフォルトの名無しさん:2008/11/09(日) 22:20:50
自分の中でどういう理由があろうとも駄目だしすることが決定してるのに
その意図をいまさら他の人に聞く意味はあるの?
397デフォルトの名無しさん:2008/11/09(日) 22:36:13
GraphEdit(DirectShow)で
ファイル名.avi→AVISplitter
としようとしたら 繋げないのは何で?
398デフォルトの名無しさん:2008/11/09(日) 22:36:48
それが女って奴だよ。

理由なんて興味はないのさ。
この人は私を愛してくれる、くれないで値踏みしたいんだ。
399デフォルトの名無しさん:2008/11/09(日) 22:37:36
>>394
後輩に直で聞けない君は大丈夫か?
400デフォルトの名無しさん:2008/11/10(月) 00:06:51
質問です。BeginSceneの後にRENDER_TARGETなテクスチャをSetRenderTargetでセットして
そのままEndScene→Presentとした時、画面が真っ黒でレンダリング結果が何も表示されないのですが、
こういう使い方は許されないんでしょうか?
401デフォルトの名無しさん:2008/11/10(月) 00:10:25
入門書を読んでゲーム作成を学んで行っているのですが、質問させていただきます。
アニメーションのところで、頂点の変換について読んでいるのですが、そこでは
CPUで頂点座標、法線を計算した後にシェーダーや固定機能パイプラインを使って
残りの描画を行っています。
その理由が、「頂点シェーダだと大規模なフレーム構造をもつモデルが処理できないため」
と書いてあります。
しかし、CPUに付加をなるべくかけたくないので、このあたりも頂点シェーダで行いたいと思っています。
具体的には、
モトの頂点バッファのSUBETENO座標と法線に、それぞれスキニング行列とウェイトをかけると言う作業です。
フレーム数が少なければこの処理も頂点シェーダで出来るとのことですが、具体的な方法などを解説されているサイトなどは無いでしょうか?

まだ初心者なので、とりあえずCPUで処理するように組んだとして、後に頂点シェーダに変更が容易かどうかだけでも教えていただければうれしいです。
402デフォルトの名無しさん:2008/11/10(月) 00:11:36
すいません・・・上の10行目の「SUBETENO」は「すべての」ですorz
403デフォルトの名無しさん:2008/11/10(月) 00:19:05
404デフォルトの名無しさん:2008/11/10(月) 00:25:46
すれ違いでしたか・・・申し訳ありません。
誘導先の方でもう一度聞いてみます。ありがとうございました。
405デフォルトの名無しさん:2008/11/10(月) 00:39:16
>>400
SetRenderTarget()でテクスチャに設定して描画したなら
描画結果はそのテクスチャに書かれてるんだろ。

バックバッファには何も書いてないんだからPresent()してもそりゃ真っ黒だろ。
406デフォルトの名無しさん:2008/11/10(月) 01:03:33
>>405ありがとうございました。

IDirect3DStateBlock9って内容をコピーする場合は一度デバイスに適用して取得、という手順を踏まないと
できないんでしょうか?むしろ、これ使ってる人っているんでしょうか・・・
407デフォルトの名無しさん:2008/11/10(月) 01:10:30
コピーをしない。する必要ないじゃん。設計を見直せ。
408デフォルトの名無しさん:2008/11/10(月) 01:37:46
ステートブロックを保持するクラスのオブジェクトを作ったときに初期状態として、デフォルトの設定をコピーしたり、
コピーコンストラクタ等で処理するときに使います。
409デフォルトの名無しさん:2008/11/10(月) 08:13:20
設定項目の類は自分で保持したほうがよくね?
デバイス吹き飛んだら一緒に吹き飛ぶもんもあるし
410デフォルトの名無しさん:2008/11/10(月) 16:49:38
その手間省けるかと思ったんですが、やっぱりそういうことになるんですかね・・・

うーん、ありがとうございました?
411デフォルトの名無しさん:2008/11/10(月) 17:18:12
ぐぐれ
412デフォルトの名無しさん:2008/11/11(火) 18:19:57
DirectXでゲーム作ってるけど、描画ってすごく大変なんですね。
線形補間のところを自分でやったんだけど、描画のたびにいちいちこんなに細かい処理するのか・・・
近いキーを捜してウェイトをかけて。。。って。
MMOとかでもさすがに線形補間はしてるだろうけど、やっぱ3DMMORPGはすごいな・・
413デフォルトの名無しさん:2008/11/11(火) 18:31:27
414デフォルトの名無しさん:2008/11/11(火) 18:34:06
何の補間の話だ?描画じゃなくてモーションの話をしてんのか?
415デフォルトの名無しさん:2008/11/11(火) 19:00:25
あ、ごめん。モーションだ。
416デフォルトの名無しさん:2008/11/11(火) 19:06:40
てか、いまどき頂点ブレンドの話?
417デフォルトの名無しさん:2008/11/11(火) 20:55:54
モーションの補間なんて別に難しい話じゃねぇと思うが・・・。
てっきりバイリニアを自前で実装でもしてるのかと思った。
418デフォルトの名無しさん:2008/11/11(火) 22:00:19
きちんとクオータニオンを使って補完しろよ
線形でやると動きが滅茶苦茶不自然になるぞ
419デフォルトの名無しさん:2008/11/11(火) 23:51:27
>>416
普通にモーションで、前と後ろのキーにウェイトをかけて補間してるのですが、最近はこんなのしないんでしょうか?
本からの知識だけだから常識的なことがわからないorz
420デフォルトの名無しさん:2008/11/12(水) 00:03:42
>>419
それは前提。その2つを単純な線形補間でやるかどうかの問題。

移動やスケールならTCBスプラインでつないだりするし、
回転ならクォータニオンでつないだりする。

ウェイトかけて足すだけで終わりなんてのはプレステ時代とか携帯機ぐらいじゃないかい。
421デフォルトの名無しさん:2008/11/12(水) 00:22:43
液晶ディスプレイだと、個々のディスプレイの相変換反応スピードに応じて適切に表示がなされるように設計しないといけないのですか?
422デフォルトの名無しさん:2008/11/12(水) 01:11:32
>>421
readmeに反応速度遅い液晶お断りって書くだけでOK
423デフォルトの名無しさん:2008/11/12(水) 19:23:40
最近、横に広いディスプレイが増えてきて
640x480で作った昔のゲームが

( ´∀`)
   ↓
(  ´ ∀ ` )

こんな感じで困る
424デフォルトの名無しさん:2008/11/12(水) 19:25:44
○が⊂⊃な感じになってるしよ・・・w
425デフォルトの名無しさん:2008/11/12(水) 19:30:59
っ 額縁君
426デフォルトの名無しさん:2008/11/12(水) 20:03:19
横広ディスプレイなんてパソコンの主な使用用途であるテキスト表示には
不利益しかもたらさないのになぁ
頻繁に縦スクロールしなくちゃなんなくてめんどいわ
427デフォルトの名無しさん:2008/11/12(水) 20:13:04
高さ一緒なら、同時にたくさんウィンドウ並べられるワイドの方が効率いいだろ
428デフォルトの名無しさん:2008/11/12(水) 20:16:35
横長モニターでフルスクリーンの場合ってどういう処理するのがスマートなの?
429デフォルトの名無しさん:2008/11/12(水) 20:19:12
ワイドディスプレイに魂を売り渡すくらいならマルチディスプレイにする
430デフォルトの名無しさん:2008/11/12(水) 20:34:35
>>426
pivotして縦長に使う
431デフォルトの名無しさん:2008/11/13(木) 00:31:49
directx 9.0cをダウンロードしようとすると
「ファイルをダウンロードできませんでした。後でもう一度〜」と出るんですが、時間がたてば
ダウンロードできるようになるのでしょうか?
432デフォルトの名無しさん:2008/11/13(木) 00:35:04
それはこのスレで聞かないといけない質問だったんか?
433デフォルトの名無しさん:2008/11/13(木) 01:54:43
NMIなんてZ80の頃からあるわけだが。問答無用に0066hに飛んじゃう命令。
ハード的にはプルアップされて使えないようになってた。
パイプラインなんてjmp使えば一発だし。
434デフォルトの名無しさん:2008/11/13(木) 04:22:58
おれもdirectx9.0c最近ダウンロードできない・・・。
お詳しい方ひとつよろしくおねがいします。



435デフォルトの名無しさん:2008/11/13(木) 05:05:38
>>431
どのくらい待ってみたの?
436デフォルトの名無しさん:2008/11/13(木) 16:24:41
Vector4 の w ってなんなの?
437デフォルトの名無しさん:2008/11/13(木) 16:33:50
(笑)
438デフォルトの名無しさん:2008/11/13(木) 16:38:17
>>436
4次元数とかクォータニオンで調べてみれ
439デフォルトの名無しさん:2008/11/13(木) 17:02:45
時間軸だよ
440デフォルトの名無しさん:2008/11/13(木) 17:09:54
    _, ._
  ( ・ω・)
  ○={=}〇,
   |:::::::::\, ', ´
、、、、し 、、、(((.@)wwwwwwwwwwwwwwwwwwwwwww
441デフォルトの名無しさん:2008/11/13(木) 18:37:42
>>436
(藁
442デフォルトの名無しさん:2008/11/13(木) 18:41:05
Vector4のw要素は通常1でいいんだよ
要素が4つあるのは4×4マトリクスとの演算のときに都合がいいから

まあクォータニオンとかは別に素人が覚えなくてもいい
443デフォルトの名無しさん:2008/11/13(木) 23:39:49
頂点バッファを生成

頂点バッファを設定

loclk

頂点バッファを書き込み

unlock

SetStreamSource

SetFVF

DrawPrimitive

の手順で実行しているのですが
板ポリが表示できません。。。

DirectXグラフィックスゲームプログラミングやリアルタイムレンダリングなどを買って読んだのですが解決できません。

ttp://www7.uploader.jp/dl/inoguma/inoguma_uljp00001.zip.html

ソースUPするので誰か直していただけませんか・・・。
444デフォルトの名無しさん:2008/11/13(木) 23:46:49
その前にチュートリアルはきちんとやったのか?
445デフォルトの名無しさん:2008/11/14(金) 00:23:07
2008か・・・・
Express Edition入れたくないなぁ
446デフォルトの名無しさん:2008/11/14(金) 00:47:56
>>443
× D3DXMatrixRotationZ(&mt, m_rotate.z);
○ D3DXMatrixRotationZ(&mwork, m_rotate.z);
よね。
447デフォルトの名無しさん:2008/11/14(金) 00:48:57
D3DXは使うなって書いてあった
448デフォルトの名無しさん:2008/11/14(金) 01:38:17
なんの根拠もないけどな
449デフォルトの名無しさん:2008/11/14(金) 06:24:28
>>446

ぱおおおおおおおおおおおおおおおおおん!!

ありがとうございます!!

嬉しすぎてぞうの雄たけびをあげてしまいました

D3DXMatrixRotationZ(&mwork, m_rotate.z);

に変更したら表示されました。
450デフォルトの名無しさん:2008/11/14(金) 06:42:28
コナミの人が自宅のベランダでチンコぱおおんさせて逮捕されたって昔聞いた
451デフォルトの名無しさん:2008/11/14(金) 17:48:54
○○勤務の会社員が自宅のベランダでチンコぱおおんさせて逮捕されたって昔聞いた
○○病院の医師が自宅のベランダでチンコぱおおんさせて逮捕されたって昔聞いた
○○学校の教諭が自宅のベランダでチンコぱおおんさせて逮捕されたって昔聞いた

まぁ、よくある話だな
452デフォルトの名無しさん:2008/11/14(金) 19:11:29
開発環境
OS:Vista64bit
DirectXSDK:Microsoft DirectX SDK (March 2008)
VisualStudio2008

http://www.h2.dion.ne.jp/~takusoft/directx8/d3d/

このサイトのコードを試すと

1>test.obj : error LNK2019: 未解決の外部シンボル _Direct3DCreate9@4 が関数 "long __cdecl InitD3D(void)" (?InitD3D@@YAJXZ) で参照されました。
1>C:\Users\xxx\Documents\Visual Studio 2008\Projects\DirectX\Debug\test.exe : fatal error LNK1120: 外部参照 1 が未解決です。

とのエラーが表示されます

ツール→オプション→プロジェクトおよびソリューション→VC++ディレクトリ に
IncludeとLibのx64・x86は追加しています

関数Direct3DCreate9で右クリックをして定義に移動をするとd3d9.hに移動し
IDirect3D9 * WINAPI Direct3DCreate9(UINT SDKVersion);が表示されて
IDirect3D9で再度同じことをすると表示される関数内部の
#ifdef D3D_DEBUG_INFOが定義されてないのが原因かな?と
以上の情報からどういった事が考えられますか?
453デフォルトの名無しさん:2008/11/14(金) 19:28:19
ここはDirectX初心者であって、統合環境初心者スレじゃない。
ライブラリの指定も出来ない奴はDirectX云々以前の問題。
454デフォルトの名無しさん:2008/11/14(金) 19:46:29
DirectX勉強する前に、C++の勉強をする
これマジおすすめ
455デフォルトの名無しさん:2008/11/14(金) 20:23:32
LIBのディレクトリ指定だけで完了と思い込んで個別のLIB指定しないのは
外部のLIB初めて使う人か
456デフォルトの名無しさん:2008/11/14(金) 20:35:04
とはいえC++だけの勉強だと
ライブラリの追加体験しないこともあるしな

15歳からはじめるDirectXとかいう本は
統合環境のインストールの解説してるのに
ライブラリの追加について一切書いてなくて笑ったのを思い出した
457452:2008/11/14(金) 20:42:31
>>454
C++はそこそこ書けると自分では思っています

>>455
プロジェクト→プロパティ→構成プロパティ→リンカ→入力→追加の依存ファイルには
d3dx9.lib d3d9.libを追加してます、DirectXを使う前にDXライブラリを使ってみて
そのときにはそんなこんなで上手くいったんですけどね・・・
458デフォルトの名無しさん:2008/11/14(金) 20:45:59
まずコンパイルがどういう手順で行われているか
ライブラリをリンクするには何が必要か

directxとは関係ないことだと思うんだよね
459デフォルトの名無しさん:2008/11/14(金) 20:46:51
追加の依存ファイルじゃなくてファルダじゃね?
460452:2008/11/14(金) 21:01:49
すいませんお騒がせしました・・・
実行可能ファイルに追加するのを忘れていました・・・

現在VisualStudio2008を使っていて
以前使っていたVisualStudio2008EEで試した所実行できたのでそこから発覚しました
461デフォルトの名無しさん:2008/11/14(金) 22:16:10
>>431ですが、待っていても全然インストールが始まらないんですが・・・
コンポーネントのインストール
初期化しています→「ファイルをダウンロードできませんでした。後でもう一度実行するか、ネットワーク接続を確認してください」
のループなんですが・・・自分だけでしょうか?
462デフォルトの名無しさん:2008/11/14(金) 22:17:11
セキュリティぬるくkしてみりゃいいんじゃね。知らんけど。
463デフォルトの名無しさん:2008/11/14(金) 22:25:20
質問:ウィンドウモードにおけるティアリングの解消
環境:WindowsXP SP2, DirectX9.0c

ウィンドウモードにおいて、Direct3D9で垂直同期待ちを行っている
にもかかわらず、ティアリングが発生します。
その際、ポリゴン数が増えるに従いティアリングの境界線は下降します。
また、当然かもしれませんがフルスクリーンモードでは正常に描画されます。

ビデオカードの仕様かと思いましたが、ひぐらしデイブレイク体験版では
ティアリングは確認できませんでした。

何か解決法があるとは思うのですが、見当がつきません。
ご教授頂ければ幸いです。
464デフォルトの名無しさん:2008/11/14(金) 22:25:46
>>461
OSが割れじゃね?
割れじゃ無理だけど
心当たりは?
465デフォルトの名無しさん:2008/11/14(金) 22:26:26
>>463
ウィンドウモードでティアリングって回避できるの?
466デフォルトの名無しさん:2008/11/14(金) 22:28:09


ティアリング ウィンドウモード

でぐぐってみたらそのものずばりが出てきたけど
俺的には本当にできるんかちょっと疑問
仕組み的に〜・・・まあ、できたら報告ヨロ
467463:2008/11/14(金) 22:36:08
>>464
OSは正規品です。

>>465
Direct3D9から垂直同期待ちが可能になったようです。
ビデオカードに影響を受けるため確実ではないようですが。

>>466
GetRasterStatusを利用してもティアリングは解消されませんでした。
468デフォルトの名無しさん:2008/11/14(金) 22:41:17
ライトを計算してモデルを表示すると普通に表示されます。

ライトと計算して板ポリに貼ったテクスチャを表示させると全体的に暗くなってしまいます。

ライトを計算しないと通常に表紙されます。

ライトを計算させて 通常に表示させるにはどうすればいいんですか?
469468:2008/11/14(金) 22:43:18
テクスチャステージの設定はこうです

m_pd3ddevice->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
m_pd3ddevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
m_pd3ddevice->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
m_pd3ddevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
m_pd3ddevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
m_pd3ddevice->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);


ライトは

CDXLight::CDXLight()
{
ZeroMemory(&m_light, sizeof(m_light));

D3DCOLORVALUE c, c2;
D3DVECTOR v;
c.a = c.r = c.g = c.b = 1.0f;
c2.a = c2.r = c2.g = c2.b = 0.2f;
v.x = 0.0f; v.y = 0.5f; v.z = 1.0f;
SetDirectional(c, c, c2, v);
470デフォルトの名無しさん:2008/11/14(金) 22:45:17
>>461です
この間変な音がしたり、PC画面にラグが出たりしてたので、OSがこわれているのかもしれません・・・
その場合どうすればいいんですか?
471デフォルトの名無しさん:2008/11/14(金) 22:46:20
>>467
無理でしょ
できる道理がわからない
472デフォルトの名無しさん:2008/11/14(金) 22:47:19
パソコン変えろよカス
全然DirectXと関係ない質問だ
もう二度とくるなよ
473デフォルトの名無しさん:2008/11/14(金) 22:48:23
>>470
新しいPCを買う
(自作orノートPCの方向は無しで
趣味ゲーPGでノートPC買う人がいるけど
何回も実行繰り返してるとノートだとなんかグラボの調子悪くなるなーっての俺だけ?)
474デフォルトの名無しさん:2008/11/14(金) 22:51:51
>>464>>473さん返答アリでした
他の旧バージョンDirectXはDLインスコできたのですが、関係なさそうですね
475デフォルトの名無しさん:2008/11/14(金) 22:56:38
9.0cなんてダウンロードできるところからいって見つかりにくいし
やめたほうがいいんじゃね?
情報の共有者も少ないことを意味してるよ
476デフォルトの名無しさん:2008/11/14(金) 22:57:34
9.0cがよかったのはなんか他のバージョンがdllを配ってくれなかった頃だけど
今はパックで全部くばってるからつかう意味ないよ
477463:2008/11/14(金) 23:09:47
>>471
出来ないかもしれないですが
垂直同期待ちを正確に行えるなら理論上は可能かなと。

>>475
>>476
確かに。
バージョンを更新すれば改善される可能性もあるかもしれませんね。
478デフォルトの名無しさん:2008/11/14(金) 23:22:42
デスクトップ分のバッファを取ってフルスクリーン風に扱えばいけるのだろうか?w
479デフォルトの名無しさん:2008/11/14(金) 23:34:42
ID3DXFont に PreloadText
って関数が出来てるんだけど。
これ使うとはやまなったりする?
480463:2008/11/14(金) 23:45:13
>>478
壮大ですね。
ただ、フルスクリーンにしないなら、垂直同期を取る必要がありますし、
結局ティアリングは回避できないかとおもいます。

少し話はかわるのですが、描画コストが同じなら同じところに境界線が発生します。
そして、描画コストが増大するに従い境界線は下降します。
ということは、垂直同期は実は正確に取れていて、
描画にかかった時間分ずれが生じてティアリングが発生しているのかと思いました。
そのため、EndScene()を呼んだ後、描画完了まで
Sleepで数十ms待たせてみたのですが解消されませんでした。
ちなみに、クエリは自分の環境では作成できないため実験は行えていません。

他にアイデアはないでしょうか。
481デフォルトの名無しさん:2008/11/15(土) 00:15:51
DirectX9でもウインドウモードで垂直同期をとるもは無理。
あれは内部でタイマーを使ってそれっぽくしているだけ。
単純にウインドウモードと挙動を合わせるためのものであって、
それ以上でもそれ以下でもない。
482デフォルトの名無しさん:2008/11/15(土) 00:24:08
Presentするとちゃんと60Hzで返ってくるよ
483463:2008/11/15(土) 00:42:52
>>481
なるほど。
ただ、Present内部ではGetRasterStatusを使用して
画面がリフレッシュされていないタイミングをはかっているようです。
その際に、タイマーを利用しているのかもしれませんが、走査線が下端に到達
するまでの時間を算出してその時間分待っているのではないでしょうか。
少し、Presentがブラックボックス化しているのが気になりますね。

本当にバックバッファとフロントバッファのコピーは高速なんでしょうか。
ポインタを入れ替えるだけとドキュメントには書かれていますが。
もし、そこに時間がかかっているなら、描画コストが増えるに従って
境界線が下降する理由もわかります。
484デフォルトの名無しさん:2008/11/15(土) 00:56:45
>>467
俺はウインドウモードでティアリングを防ぐなんて試したことはないが、
GetRasterStatusの使い方が悪いんじゃない?VBlank待ってない?
走査線がクライアント領域より下にいったら、即Presentでいいかと。

あと、GetRasterStatusの前にD3DQUERYTYPE_EVENTいれとかないと
意味がないと思う。
485デフォルトの名無しさん:2008/11/15(土) 01:02:27
> フルスクリーン モードは、リフレッシュ レートやスワップ効果にかかわらず D3DPRESENT_INTERVAL_IMMEDIATE をサポートすることにより、
> ウィンドウ モードと同様の使い方をサポートします。D3DPRESENT_INTERVAL_DEFAULT はデフォルトのシステム タイマ精度を使います。

システムタイマーは1000msの精度。60Hzのエミュレートなら16.66666…で割り切れないのでどっちにしろ徐々にずれる。
D3DSWAPEFFECT_COPYを指定しない限りは明示的にバック⇒フロントへのコピーはない。
コピーしてたとしても全画面描画1回相当の処理が目に見えるほど遅延していくなら根本的に1/60秒で動かないだろ。

まぁそこまで細かく気にするならゲームなんだしフルスクリウーンでやれや、って事だろう。
486デフォルトの名無しさん:2008/11/15(土) 10:00:50
ウィンドウモードでゲームプレイする奴はその程度の事を気にしない
487デフォルトの名無しさん:2008/11/15(土) 10:06:43
試してみようと思ったら、俺のところでは全くティアリングが発生しない。
Vistaだからか?
488デフォルトの名無しさん:2008/11/15(土) 10:23:36
はやくおまいらの話についていきたい45歳秋
489デフォルトの名無しさん:2008/11/15(土) 11:50:15
基本的な質問で申し訳ないのですが、質問させていただきます。
DirectXをつかったゲームで、入力された情報は一般的にはどうやって受け取ればいいのでしょうか?
WIN32APIでは普通にウィンドウプロシージャで受け取っていましたが、入門書では、WinMainのメッセージループで
while(message != WM_QUIT)
{
if(PeekMessae(&msg,NULL,0,0,PM_REMOVE))
{
//省略
}
else{
GetKey() //デバイス->Acquire()でキー入力を受けつける
//以下はRender()などの呼び出し
}
}

としていました。
後者の方がDirectXでは一般的なのでしょうか?
490デフォルトの名無しさん:2008/11/15(土) 12:01:57
別に好きな方で問題ない
491デフォルトの名無しさん:2008/11/15(土) 12:05:10
スレッド
492デフォルトの名無しさん:2008/11/15(土) 12:28:58
>>489
DirectつながりでDirectInput使う
493463:2008/11/15(土) 17:27:54
>>484
D3DQUERYTYPE_EVENTは自分の環境では作成できないです。
走査線がクライアント領域より下にいった直後にPresentしても多少
境界線の位置がかわる程度で違いはほとんどありませんでした。

>>485
なるほど。タイマーを使っているとは知りませんでした。
確かに、少しずつずれていきますね。
D3DSWAPEFFECT_COPYにしてみましたが、さほど違いは出なかったです。
とすると、疑問なのはGetRasterStatusを使ってもずれるという点です。
D3DPRESENT_INTERVAL_IMMEDIATEで生成しておいて、GetRasterStatusを使っても
ほとんど同じところに境界線ができるんです。

>>486
最悪、気にしない方向で諦めようかと思ってます。

>>487
vistaはOSレベルで制御しているため、ティアリングが生じないようですね。
494449:2008/11/15(土) 17:32:37
あれから色々いじってみて
キー入力で画像を動かすのを作りました。

一応思うようにできたのですが
もっと簡単なやり方・効率のいい方法 などありましたら ご指摘お願いします。

ソースです
http://www7.uploader.jp/dl/inoguma/inoguma_uljp00001.zip.html

↑ → ↓ ← キーで操作できます

よろしくお願いします。
495デフォルトの名無しさん:2008/11/16(日) 06:42:43
>>494

ゲームを作りたいならもっと汎用性がある方が良い

とは言ったものの、自分じゃ直し方良く分からないので他の人に(ry
496デフォルトの名無しさん:2008/11/16(日) 09:14:26
>>494
frame.cpp: line 117-118
m_dwStyle = GetWindowLong(m_hwnd, GWL_STYLE);
m_dwStyle = 2495741952;
これはどんな意図があるんですか…?
497デフォルトの名無しさん:2008/11/16(日) 09:34:51
スタイル初期値です。
498デフォルトの名無しさん:2008/11/16(日) 09:37:59
3Dリアルタイムアニメーション

という本から参考にした部分があるのですが

その部分の補足には

スタイル初期値(とりあえずこれで問題はない)

と本にコメントが付け加えられてました
499デフォルトの名無しさん:2008/11/16(日) 10:40:46
>>498
問題しか見えないw
500デフォルトの名無しさん:2008/11/16(日) 11:26:39
GetWindowLongPtr使うべきだし
GetWindowLongした意味ないし
マジックナンバー使うし
501デフォルトの名無しさん:2008/11/16(日) 11:32:33
>>498

移動のコードは間違いじゃないけど、
せっかく入力・演算・描画を分けた意味がない気がする。

他の人にも意見を聞いてみるといいよ。
502デフォルトの名無しさん:2008/11/16(日) 12:15:53
スミマセン質問があります。
環境 : VC2005 / SDK(March 2008) / XP

DirectXでXファイルを扱うときに頂点カラーを引っ張りたいのですが何処を見ればいいのでしょうか。
HLSLで描画する際にVertex ShaderのCOLOR0に自動的に入ってくると思ったらそうじゃないみたいで……・
503デフォルトの名無しさん:2008/11/16(日) 12:31:30
ダダーンウーボヨボヨボヨアーアーアー
504デフォルトの名無しさん:2008/11/16(日) 13:16:30
>>502
xファイルに頂点カラーの情報(MeshVertexColors)が入っていないか
入っていたとしても頂点フォーマットに頂点カラーが含まれてないかのどっち

単純にテクスチャなしのxファイルを表示したいだけなら
マテリアルのDiffuseをシェーダーに渡して色情報として計算する
505デフォルトの名無しさん:2008/11/16(日) 13:32:10
返信ありがとう御座います。
xファイルにはデータが入っていることを確認したので頂点フォーマットに無いのでしょうね……

マテリアルはオブジェクトの識別に使うという変な使い方してて、
同一マテリアル内で色を変える場合頂点カラーが必要という珍妙な設計になってるのです。
大人しくマテリアルでやる方向に変えた方が良いかもしれないですね
506デフォルトの名無しさん:2008/11/16(日) 13:35:23
>>505
まるで頂点フォーマットを何かが勝手に作るように書いてるが
頂点フォーマットを作るのはおまえさんの仕事だぞ。
507502:2008/11/16(日) 14:10:07
D3DXLoadMeshFromXでXファイルを読み込む前に、
FVFをどこかで設定出来ると言うことですか……?
すみません勉強不足過ぎました。もう少し調べてきます。
508463:2008/11/16(日) 14:31:41
Presentの代わりにBitBltを利用してみました。
確かにティアリングは減った(ほとんど見えない)と思いますがFPSが著しく落ち込みガタガタです。
ただ、FPSが25程度なのでがたがたして気づかないだけかもしれませんが。
一応、環境や最適化不足のためかもしれないので手順を書いておきます。

1, Flags=D3DPRESENTFLAG_LOCKABLE_BACKBUFFERでDirect3DDevice9を生成。
2, GetRasterStatusで垂直同期待ちを行う。
3, バックバッファからHDCを取得し、BitBltでウィンドウへ書き込む。

もう少し細かい話もありますが、大方こういう手順になるかと思います。
どうもBitBltの負荷が高そうですが、高速化する手はありますか?
509デフォルトの名無しさん:2008/11/16(日) 14:36:42
GDIの遅さや不便さを何とかするために
DirectXが開発されたのに原点にもどったら本末転倒
510デフォルトの名無しさん:2008/11/16(日) 14:36:55
>>508
FPS25じゃ垂直同期に間に合う合わないなんて関係無いクオリティじゃないか?
511デフォルトの名無しさん:2008/11/16(日) 14:41:03
モデルを最初から左にずれた場所に配置したいのですが

D3DXMATRIX mtx;

D3DXMatrixIdentity(&mtx);

D3DXMatrixTranslation(&mtx, -2.0f, 0.0f, 0.0f);

d3ddevice->SetTransform(&mtx, 0);

で配置すると確かに配置できるのですが キーボードでキーを押した分ずらすコードを加えるにはどうすればいいですか
512デフォルトの名無しさん:2008/11/16(日) 14:45:35
そろそろ自分で考える努力をしたらどうかな。
513デフォルトの名無しさん:2008/11/16(日) 14:45:54
Win32APIすれで聞くといいんじゃね
514デフォルトの名無しさん:2008/11/16(日) 14:48:47
D3DXMatrixTranslationの引数の値を変える
515デフォルトの名無しさん:2008/11/16(日) 14:58:02
>>512 分かりました 自分で悩みまくって作った方が上達する気がしてきました

それではしばらく失礼します。
516デフォルトの名無しさん:2008/11/16(日) 15:48:33
描画内容があまり頻繁に変化しないので、
変更があったときのみ描画処理を行うようにして、それ以外はフロントバッファに表示されているものをそのまま表示したいのですが、
presentする直前にバックバッファをサーフェイスにコピーしておいて、それを書き戻すとかでいいんでしょうか?
一般的な方法があれば、教えてください。
517デフォルトの名無しさん:2008/11/16(日) 15:56:41
そもそも描画が行われなかったときは
サーフェイスをクリアしなければいいのでは?
518デフォルトの名無しさん:2008/11/16(日) 16:13:36
>>516
D3DPRESENT_PARAMETERSのSwapEffectに
D3DSWAPEFFECT_COPYを指定する。
519デフォルトの名無しさん:2008/11/16(日) 16:32:11
本にはD3DSWAPEFFECT_DISCARDにしろって書いてあったよ
520デフォルトの名無しさん:2008/11/16(日) 16:35:53
入門サイトを見て
とりあえずデバイスを作ってPrsentだけしてみたら
アダルトゲームの画面が表示されたんですけどバグですか。
521デフォルトの名無しさん:2008/11/16(日) 16:39:17
いいえ、仕様です。
522デフォルトの名無しさん:2008/11/16(日) 16:41:01
ハッキングされてます
523516:2008/11/16(日) 16:57:14
レスいただいた方々、ありがとうございます。

>>517
質問させていただく前に描画関数の中身とか呼出位置を変えて色々試してたんですが、
他のウィンドウがかぶった時の挙動とか、どうにも思い通り行かなくて質問させていただいた次第でしてorz

>>518
バッチリ思い通りになりました、ありがとうございました。

>>519
ご忠告どうもです。
もうすこし詳しく調べてみます。
524デフォルトの名無しさん:2008/11/16(日) 17:10:14
>>520 VRAM
525デフォルトの名無しさん:2008/11/16(日) 20:46:13
ちょっとお聞きしたいのですが、よくゲームの動作環境で
VRAM幾つ以上というようなのがありますよね
自作ゲームの動作環境にそういう情報を明記したいのですが、そのために
現在PCで使われているVRAM容量を調べるにはどうすればいいのでしょうか?
使用VRAM情報をチェックする関数とかはありますか?
526デフォルトの名無しさん:2008/11/16(日) 20:52:43
>>525
うん
527デフォルトの名無しさん:2008/11/16(日) 21:27:25
>>526
DirectX9なのですがなんという関数を使えばいいのでしょうか?
528デフォルトの名無しさん:2008/11/16(日) 21:41:40
>>527
GetAvailableTextureMem
だが、推定
BBXに「?」ってのが書いてある
529デフォルトの名無しさん:2008/11/16(日) 21:50:15
そこは遥か昔に閉鎖したぞ
530デフォルトの名無しさん:2008/11/16(日) 21:51:49
SDK(March 2008 以降)に VideoMemory ってサンプルがあるわよ。
ttp://msdn.microsoft.com/en-us/library/cc308070(VS.85).aspx
\Samples\C++\Misc\VideoMemory
531デフォルトの名無しさん:2008/11/16(日) 22:03:27
>>529
いや、生きてるぜ
532デフォルトの名無しさん:2008/11/16(日) 22:41:37
今時はVRAMなんてほとんど基準にならんけどなー
533525:2008/11/16(日) 22:56:06
レスありがとうございます。
>>523
LoadTextureをやる毎に使ってみました。
が、数値は70MBちょいぐらいで固定っぽいです。(ビデオカードのVRAMは96MB)

テクスチャは読み込んでもVRAMには格納されないんでしょうか?
簡単な2Dゲームなのでで処理スピードには問題がない為別にいいのですが…
LoadTextureってVRAMに読み込む/読み込まないの切り替えができるんですかね

>>530
旧バージョンを使ってるので役にたつかわかりませんが、後で見てみます

>>532
確かに、最近のPCゲーだとVRAM容量表記が特にないものが多いですよね
534デフォルトの名無しさん:2008/11/16(日) 22:58:50
DX8あたりからマネージドになってるから気にする必要ないんじゃない。パフォーマンスに影響はあるけど。
昔は全部自前で管理する必要があった。
535525:2008/11/16(日) 23:00:35
>>533
LoadTextureじゃなくてD3DXCreateTextureFromFileInMemoryでした
536525:2008/11/16(日) 23:17:09
>>534
自分なりに調べて見たらD3DXCreateTextureFromFileInMemoryEXというのを使えば
意図的にVRAMに読み込ませる事もできるみたいですね
パフォーマンスが必要になるようなソフトを作る場合にはこちらを使おうと思います。
ありがとうございました。
537デフォルトの名無しさん:2008/11/16(日) 23:22:14
それ主記憶じゃなくてVRAMにストックしておく関数だっけ?
538デフォルトの名無しさん:2008/11/16(日) 23:30:49
プール先を指定できる
539502:2008/11/16(日) 23:35:53
スミマセン、色々調べてみたのですが結局分かりませんでした。
Xファイル自体には頂点色を保持しているのは確認済みです。

D3DXLoadMeshFromXを使ってxファイルを読み込み頂点色が欲しい場合、
LPDirect3DDevice9::SetFVFを使ってFVFを通知してからXファイルを読み込むという手順ではダメで、
いったん読み込んでから、CloneMeshで頂点フォーマットを設定し直すと言うのもやはりダメでした。

D3DXLoadMeshFromXで頂点色を捕まえる方法は有るのでしょうか。
そもそもVertex ShaderのInputのCOLOR0セマンティクスに入ってくるのは頂点色という認識で良いのでしょうか。
540デフォルトの名無しさん:2008/11/17(月) 08:54:08
Xファイルに頂点色が入っているならD3DXLoadMeshFromX()の時点で
作られたメッシュには頂点色が入っている。
541デフォルトの名無しさん:2008/11/17(月) 11:55:27
Vista入りのノート買ったからDX10に手を出してみたけど、意外と変わってるのね。
FVF消えたりD3DFMTが気持ち悪いことになってたり。

で、質問なんだけど、サンプルコードのライセンスってどこに書いてあるの?
卒論のためにコード書かなきゃいけないんだけど、カメラとかいちいち書くのが面倒だから
BasicHLSL10のサンプルを流用したいのよ。
*nixの世界みたいに、ルートディレクトリにはっきりとライセンス定義を置いておいてくれると有り難いんだけど……。
542デフォルトの名無しさん:2008/11/17(月) 12:05:55
別に三流学生の卒論コードなんてどうだっていいだろ
一般公開しなければ
543デフォルトの名無しさん:2008/11/17(月) 12:32:08
HLSLでsamplerオブジェクトを定義するとき
今まではtexture2DやtextureCUBEに関係なく"sampler"と書いていたのですが
textureに合わせてsampler2D, samplerCUBEにしたほうがいいのでしょうか?
違いや書き分ける意味はありますか?
544デフォルトの名無しさん:2008/11/17(月) 16:03:42
>>542
公開するから質問してるに決まってるだろ高卒
545デフォルトの名無しさん:2008/11/17(月) 17:28:01
公開しないでいいよ。君の糞コードなんて。
546デフォルトの名無しさん:2008/11/17(月) 17:51:58
D3DX〜は使ったら駄目って常識のはずなんだが
547デフォルトの名無しさん:2008/11/17(月) 18:00:27
ライセンスについて調べようと思ったら、まずは使用許諾書に目を通すものだが、
なんでその程度の、ごく当たり前のことをする程度の知能すら持ち合わせていないのかが謎。
548デフォルトの名無しさん:2008/11/17(月) 20:45:26
デバッグモードでは正常にビルドできるんですがリリースモードだと以下のエラーが山ほど出てしまいます、、、
予想ではunicodeとマルチバイトが混在しているのが不味いような気がするんですが、、、
色々調べてみたんですが、解決方が見当たらないのでどなたか原因わかる方がいたら教えてください。

boss.obj : error LNK2001: 外部シンボル "_D3DXMatrixScaling@16" は未解決です。
boss.obj : error LNK2001: 外部シンボル "_D3DXMatrixMultiply@12" は未解決です。
d3d.obj : error LNK2001: 外部シンボル "_D3DXMatrixLookAtLH@16" は未解決です。
d3d.obj : error LNK2001: 外部シンボル "_D3DXCreateTextureFromFileA@12" は未解決です。
d3d.obj : error LNK2001: 外部シンボル "_D3DXCreateTextureFromFileExA@56" は未解決です。
d3d.obj : error LNK2001: 外部シンボル "_D3DXVec3Normalize@8" は未解決です。
d3d.obj : error LNK2001: 外部シンボル "_D3DXMatrixOrthoLH@20" は未解決です。
dsound.obj : error LNK2001: 外部シンボル "__imp__mmioGetInfo@12" は未解決です。
fps.obj : error LNK2001: 外部シンボル "__imp__timeGetTime@0" は未解決です。
main2.obj : error LNK2001: 外部シンボル "_D3DXCreateSprite@8" は未解決です。
main2.obj : error LNK2001: 外部シンボル "__imp__timeBeginPeriod@4" は未解決です。
x_file.obj : error LNK2001: 外部シンボル "_D3DXLoadMeshFromXA@32" は未解決です。

コンパイラはVisualC++2008を使っています。
コンパイラの問題かと思ったんですが、エラー吐くのが殆どDirectX周りだったのでここで質問させていただきました。

デバッグモードで作ったexeファイルとデータファイルを同梱すればとりあえず配布は大丈夫でしょうか?
一応そのやり方で自分の環境では動作したのですが、、、
549548:2008/11/17(月) 20:48:54
ずっとDebugモードのプロパティいじってた\(^o^)/

自己解決しました、スレ汚しすいませんw
550デフォルトの名無しさん:2008/11/17(月) 20:49:21
プロジェクトの設定はリリースとデバッグで別々だが、ライブラリとか両方に設定してある?
551502:2008/11/17(月) 20:49:49
>>540
遅れましたがありがとうございました。
おかげさまで何とか出来そうです。
552デフォルトの名無しさん:2008/11/18(火) 10:30:08
誰か>>543知りませんか?
553デフォルトの名無しさん:2008/11/18(火) 10:35:13
好きにしろよばーか
554デフォルトの名無しさん:2008/11/18(火) 11:14:48
自分の知らない事、どうでもいい事を聞くと怒り出す奴っているよね。キチガイ?
好きにしていいならsamplerとsampler2Dが分かれてる意味ないじゃん。
555デフォルトの名無しさん:2008/11/18(火) 13:42:30
別れてることに特に意味はないし
好きにすればいいと思うよ
同じサンプリングで描画するなら一つでいいし
物によって変えるなら複数作って使い分ければいいだけ
556デフォルトの名無しさん:2008/11/18(火) 13:52:29
好きにしちゃいけないって誰が決めたの?
当然の事を言われて怒られてるだのキチガイだの言い出す>>554はアホかと。
557デフォルトの名無しさん:2008/11/18(火) 14:36:08
よくわからずに使ってるのか
558デフォルトの名無しさん:2008/11/18(火) 14:37:51
ただのaliasなの?
559デフォルトの名無しさん:2008/11/18(火) 14:44:29
sampler3DやsamplerCUBEのみのSamplerStateがあるため

意味なんかないから好きにしていいとか馬鹿にも程がある
プログラマ失格
560デフォルトの名無しさん:2008/11/18(火) 18:04:21
GLSLでは違うけど
HLSLではまったく同じものなんだが
561デフォルトの名無しさん:2008/11/18(火) 18:10:44
>>559
じゃあ意味があるから好きにしちゃダメだよ
とでもいえば納得するのかな?(笑)
562デフォルトの名無しさん:2008/11/18(火) 18:36:17
というわけで、>>543は好きにしちゃダメだという事で。
はい次の人〜。
563デフォルトの名無しさん:2008/11/18(火) 18:40:53
はい次の人〜。
564デフォルトの名無しさん:2008/11/18(火) 18:46:50
あのぅ、私は…
565デフォルトの名無しさん:2008/11/18(火) 18:47:02
自分の想定と違う事を言われると納得できないんなら最初からそうすりゃいいのにな
他人の同意がないと何もできないのかね
566デフォルトの名無しさん:2008/11/18(火) 18:48:17
>>564
どちらさまですか?
567デフォルトの名無しさん:2008/11/19(水) 16:24:01
640*480で作ったデバイスを引数にD3DXCreateSprite関数でID3DXSpriteを作ったら、
レンダーターゲットを1024*1024にしてID3DXSprite::Drawを実行したら、画像が引き延ばされて
描画されたんだけど、そうならないようにするにはどうすればいいんですか?
ちなみにレンダーターゲットの大きさは変えられません。
568デフォルトの名無しさん:2008/11/19(水) 16:39:32
好きにしろよばーか
569デフォルトの名無しさん:2008/11/19(水) 16:53:55
わざわざそうしてるんだろ
570デフォルトの名無しさん:2008/11/19(水) 16:59:31
自分の知らない事、どうでもいい事を聞くと怒り出す奴っているよね。キチガイ?
640*480と1024*1024が分かれてる意味ないじゃん。
571デフォルトの名無しさん:2008/11/19(水) 17:00:24
はい次の人〜。
572デフォルトの名無しさん:2008/11/19(水) 17:14:06
ウィンドウサイズが640*480じゃないとダメで、レンダーターゲットはテクスチャでなくてはならない。(ピクセルシェーダー使うため)
テクスチャは2のn乗サイズじゃないとピクセルが1対1対応してくれないので、1024*1024にしてるんです。
573デフォルトの名無しさん:2008/11/19(水) 17:17:29
ViewPort
574デフォルトの名無しさん:2008/11/19(水) 17:17:52
1024×1024の画像ファイルの内必要な部分を範囲指定して表示すればいい
575デフォルトの名無しさん:2008/11/19(水) 18:18:38
>>572
>テクスチャは2のn乗サイズじゃないとピクセルが1対1対応してくれない
これの意味が分からん
576デフォルトの名無しさん:2008/11/19(水) 20:00:53
お前が低能無知なだけだろ
577デフォルトの名無しさん:2008/11/19(水) 20:20:04
おれもわからん
一体何とピクセルが1対1?
たてよこ?
578デフォルトの名無しさん:2008/11/19(水) 21:19:49
1:1対応にテクスチャのサイズなんて関係ねぇだろ。
描画する時の問題だ。
579デフォルトの名無しさん:2008/11/19(水) 21:37:13
1:1は意味不明だがテクスチャの元画像の縦横を2のべき乗にすんのが普通。
元画像とテクスチャのバッファサイズが違うと引き伸ばされる
んで、読み込んだテクスチャバッファのうち、640*480の範囲を指定して
スプライトを描画すればよい。
580デフォルトの名無しさん:2008/11/19(水) 22:31:40
なんで自らが引き伸ばして描画しているのに、「されて」とか他人のせいにする奴が現れるんだろう?
581デフォルトの名無しさん:2008/11/19(水) 23:01:32
>>575
2のn乗以外のサイズで作ったときってDrawPrimitiveなんかで描画した時どうしても歪んで描画されないピクセルとかありませんか?
何かやり方があるならそれを知りたいです。
>>577テクスチャ上のピクセルと画面のピクセルがです。
582デフォルトの名無しさん:2008/11/19(水) 23:08:24
まずはD3DXを一切使うのをやめ、画像ファイルをテクスチャに読み込んで自分でUVを設定し描画するところまでやれ。
それで全て解決する上に、自分がいかに間抜けなことを言っているかも理解出来る。
583デフォルトの名無しさん:2008/11/19(水) 23:09:57
とんでもなくボロいビデオカードだと2のn乗以外のサイズのテクスチャ使えない?
584デフォルトの名無しさん:2008/11/19(水) 23:15:52
馬鹿が余計なもん使って遠回りしてらぁw
m9(^Д^)プギャー
585デフォルトの名無しさん:2008/11/19(水) 23:18:21
>>583
正方はさすがにないと思うけど
n乗は守ってるな俺
あんま意味無いかも
っていうか最近のグラボ事情知らん
586デフォルトの名無しさん:2008/11/19(水) 23:34:35
使えても内部的に無駄が出るんじゃね
587デフォルトの名無しさん:2008/11/19(水) 23:36:16
2^n以外のテクスチャが使える場合でもパフォーマンスは2^nより落ちるとかいう話を聞いたこともある
588デフォルトの名無しさん:2008/11/19(水) 23:39:10
2乗は必須だけど正方かどうかはハード次第だろ。
589デフォルトの名無しさん:2008/11/20(木) 00:06:26
GeForce6以降はテクスチャサイズの最大サイズ以外の全ての制限がなくなったわけだが。
DXTテクスチャですら適当なサイズのまま作れるぞ。
590デフォルトの名無しさん:2008/11/20(木) 03:00:35
>>583
2のn乗が使えないのは、一番新しいのだとIntelの815の統合ビデオ機能かな?
っていうか、NONPOW2CONDITIONALは、2のn乗しか使えないハードウェアでも
ドライバの対応だけでクリアできるものだと思う。
591デフォルトの名無しさん:2008/11/20(木) 03:32:25
おまえらの記憶にもうVoodooは無いのね・・・
592デフォルトの名無しさん:2008/11/20(木) 07:36:53
あんな糞ボードサポートしてどうすんだよ
593デフォルトの名無しさん:2008/11/20(木) 08:56:42
日韓併合における韓国皇帝の勅諭(原漢文)

皇帝、若(ここ)に曰く、朕否徳にして艱大なる業を承け、
臨御以後今日に至るまで、維新政令に関し承図し備試し、
未だ曽て至らずと雖も、由来積弱痼を成し、疲弊極処に至り、
時日間に挽回の施措望み無し。
中夜憂慮善後の策茫然たり。
此に任し支離益甚だしければ、終局に収拾し能わざるに底(いた)らん。
寧ろ大任を人に託し完全なる方法と革新なる功効を奏せいむるに如かず。
故に朕是に於いて瞿然として内に省み廊然として、
自ら断じ、茲に韓国の統治権を従前より親信依り仰したる、
隣国日本皇帝陛下に譲与し、外東洋の平和を強固ならしめ、
内八域の民生を保全ならしめんとす。
惟爾大小臣民は、国勢と時宜を深察し、煩擾するなく各其業に安じ、
日本帝国の文明の新政に服従し、幸福を共受せよ。
朕が今日の此の挙は、爾有衆を忘れたるにあらず、
専ら爾有衆を救い活かせんとする至意に出づ。
爾臣民は朕の此の意を克く体せよ。

隆煕四年八月二十九日

御璽
594デフォルトの名無しさん:2008/11/20(木) 23:50:43
テクスチャをDDSファイルで読み込もうとしているんですが
複数のDDSファイルを読み込むと途中で動かなくなってしまいます
DDSファイルには特殊な処理が必要なんでしょうか?

ちなみに1つであればどのDDSファイルでも
見ている範囲では正常に動いているんですが・・・
595デフォルトの名無しさん:2008/11/20(木) 23:53:06
随分アバウトな質問だな
それはDDS以外のフォーマットなら複数読んでもとまらないってことか?
596デフォルトの名無しさん:2008/11/21(金) 00:02:14
>>595
すいません
よくよく試してみたら他の形式でも同様の止まり方をしましたorz
ちょっと前までDDSは使ってなくてその間は特に問題が無かったんで
DDSのせいだろうと決めてかかってました
多分他のところに問題があると思うのでもう少しコードを見直してきます
またわからないことが出てきたらお願いします
597デフォルトの名無しさん:2008/11/21(金) 00:24:57
エスパーするとマルチスレッドで読み込もうとしてデバイスがマルチスレッドのフラグつけていない
598デフォルトの名無しさん:2008/11/21(金) 00:48:02
Voodooはさすがにもういいだろ
SiS辺りのクソオンボとかi810とかはまだ使ってる人居るけど
599デフォルトの名無しさん:2008/11/21(金) 00:50:18
>>597
あーありそう、昔一度やったことある
600デフォルトの名無しさん:2008/11/21(金) 00:57:04
つーか今から何か出すなら最低でもシェーダーモデル3.0でいいだろ。
GeForce6なんて何世代前のビデオカードだとおもっとるんだ。

3Dゲームやるようなユーザーなら定期的にPC構成弄ってるし。
601デフォルトの名無しさん:2008/11/21(金) 01:02:08
んーどうなのかな
PCのスペック二極化してるから下の層を拾うような仕様だと未だに糞ボードの対応までやってる感じするけど
602デフォルトの名無しさん:2008/11/21(金) 02:11:10
ゲフォ5200と旧ATI9200以上の対応だけすればいい
理由はウチにあるそこそこ低いボードだからだ

作り手で線引きしないときりがない
603デフォルトの名無しさん:2008/11/21(金) 02:26:25
ショップの品揃えで判断するとか。
GFX5200とか未だに定番商品みたいに新品売られてるのが泣ける。
604デフォルトの名無しさん:2008/11/21(金) 08:20:24
だってそれ挿せばとりあえずVista(Aero)動くもん
605デフォルトの名無しさん:2008/11/21(金) 08:37:31
つってもHD3450が5000円で買えるんだし下見るのももういいだろって気がする。
だから日本はエロゲ以外のゲームがろくに出ないんだよ。
606デフォルトの名無しさん:2008/11/21(金) 12:00:45
DirectX10+SM4.0だろ
今更昔のクオリティのゲーム作って何が楽しいんだ

つーかこのスレやっぱりゲーム作る人多いのね
607デフォルトの名無しさん:2008/11/21(金) 12:51:16
>>605
そういうのはPCメーカーが底上げしないと駄目だな
あとVRAMみたいな初心者でもわかりやすい目安みたいなのあればいいのに

>>606
楽しさも人それぞれっしょ
むしろ絵を綺麗にするだけの作業なんて何が楽しいんだよとか思うが
608デフォルトの名無しさん:2008/11/21(金) 13:30:03
>むしろ絵を綺麗にするだけの作業なんて何が楽しいんだよとか思うが
リアルタイム3DCG技術についていけなくなった人が自分を慰めるための常套句ですね。わかりますw
609デフォルトの名無しさん:2008/11/21(金) 13:40:39
自己満足ならそれでもいいんだが
ゲームは結局他人に遊んでもらってなんぼだからな
どんな流麗なCGでも動かなければ意味がない

マイロソフトのやり方だと次あたりのVisualStudioをXP非対応にして
まず開発者側の首を締めにかかってくるだろう
Vista以上でなければソフトが作れない環境ができてしまえば
市場からXPが消えるのも時間も問題と思われる
DirectXSDKはもっと早くXPのサポートを打ち切るだろうしね
610デフォルトの名無しさん:2008/11/21(金) 13:42:37
>>608
海外向けのゲーム作ってる一部の人がそれ言うなら煽りに聞こえるが
日本向けゲーム作ってる人が言うとただの同意にしか見えない
611デフォルトの名無しさん:2008/11/21(金) 14:42:16
すみません。DirectSoundをはじめて利用して、プログラムを作成しています。
そこでよくわからない状況になって困っています。
SDKはDirectX8(VC6++のサンプルがあるため)を利用しているのですが、
そのサンプルを参考にWAVファイルを再生するところまでたどり着きました。
ところが、再生前にフォーカスをはずすと、音が鳴らなくなるという現象が
発生してしまいます。
フォーカスが外れていても、音が鳴るようにするにはどのようにすればよいでしょうか?
よろしくお願いいたします。
612デフォルトの名無しさん:2008/11/21(金) 14:54:05
サウンドバッファをつくるときに
DSBCAPS_GLOBALFOCUSフラグを立てる

この説明でわからないならソースうp
613デフォルトの名無しさん:2008/11/21(金) 15:02:49
>>612
解決しました!!ありがとうございます。
これで無事システムを納品できそうです。
即答ありがとうございました。
614デフォルトの名無しさん:2008/11/21(金) 15:06:04
DirectSound8のサンプルをそのまま利用していたので、パラメータの存在に
気がつきませんでした。説明を読むと、確かにそのとおりの内容になっていますね。
http://msdn.microsoft.com/ja-jp/library/cc354147.aspx
615デフォルトの名無しさん:2008/11/21(金) 17:57:23
>>608
何人でどのくらいの期間で何をつくるのか知らんが
少数人チームで絵なんかこだわってる暇あったら
中身のほうを煮詰めてほしいと思うんだが
どんな凝ったエフェクトつけようとCG屋がウンコな時点で終了
逆に凝らなくても元のCGがきれいならそれなり
そもそも日本の個人ゲーはリアルタイム3DCGだのシェーダがどうのとか
そういうことを気にする以前のレベルだと思う

無論絵が綺麗に越したことはないが、だからといってゲームが面白いかというと別問題
616デフォルトの名無しさん:2008/11/21(金) 18:38:21
バンプや反射、屈折の初級エフェクトすらプロでもあんまり使ってくれない
っていうかそんな時間ないや
デザイナがシェーダの設定ファイルを書いてると遊んでると思われる空気
617デフォルトの名無しさん:2008/11/21(金) 20:34:32
IBasicVideo の GetCurrentImage を使って、
ビデオのワンフレームをビットマップとして保存しようと思っているのですが、
ソースが mpeg2 の場合だと何故か真っ黒なビットマップしか取得できません。
ソース、取得するフレームの位置、mpeg2 video decoder を色々変えて試してみたのですが、
結果は変わりませんでした。
ソースが avi, wmv, mpeg1 の場合は正常なビットマップを取得でることを確認済みです。
このことについて何かご存知の方おられましたらご教示お願いします。
試した mpeg2 video decoder は次のものです。
MpegVideoDecoder PIXELA, Cyberlink Video/SP Decoder
618デフォルトの名無しさん:2008/11/21(金) 20:53:43
正直D3D10に興味が涌かないな

仕事以外で使うならsm3での表現力に不足はないし
ジオメトリシェーダやその他諸々は高速化以外の用途が見出せないからつまらん
619デフォルトの名無しさん:2008/11/21(金) 20:54:16
620デフォルトの名無しさん:2008/11/21(金) 21:04:44
>>619
ありがとうございます。移動します。
621デフォルトの名無しさん:2008/11/24(月) 19:25:36
D3D10をチュートリアルから勉強し始めたんだが、Tutorial09以降にDXUTがあって(08は07と等価(見た感じ)だったからスルー)、
DXUTを勉強するべきか悩んでるんだ。皆はDXUT使ってる?やったほうがいいのかちょっと意見を聞かせてほしい。
622デフォルトの名無しさん:2008/11/24(月) 19:41:22
やったほうがいいもなにも
もう大分前からサンプルは全てDXUTで書かれてるんだから
極める必要はなくても理解はしておく必要はあるだろ
623デフォルトの名無しさん:2008/11/24(月) 19:48:59
そうか なら08からやっていってみることにする。
624デフォルトの名無しさん:2008/11/24(月) 20:53:18
DXUTは簡単に説明してるHPとか書籍とかほとんどないのをどうにかしてくれ
625デフォルトの名無しさん:2008/11/24(月) 21:00:29
MSDNライブラリじゃだめ?
626デフォルトの名無しさん:2008/11/24(月) 21:07:18
あれ以上どう簡単に説明しろと…
627デフォルトの名無しさん:2008/11/24(月) 21:32:36
ソースコードあるんだからそれ見て分かれ。
628デフォルトの名無しさん:2008/11/25(火) 02:03:07
どうやったらアレ以上簡単に説明できないという結論になるんだか
629デフォルトの名無しさん:2008/11/25(火) 08:48:25
しかしアレをわざわざ説明なんてする奴はいないだろ。
630デフォルトの名無しさん:2008/11/26(水) 03:12:39
DirectXの最新版の再配布用パッケージってMarch 2008であってますか?
もう更新してないんですか?
631デフォルトの名無しさん:2008/11/26(水) 06:24:53
3Dゲームでオンライン対戦が存在するゲームを作っています。
通信対戦の際に小数点演算の計算結果が不特定のタイミングで微妙に
異なる場合があり、結果的にそれが原因で同期がズレるケースがあります。

調べた所、FPUのコントロールワードの値がバックで動いているアプリや
環境等によって変更される事があり、それで演算結果がPCによって
異なっているというのが原因ではないかと突き止めました。

しかしながら、DirectXの算術関数や関数群は浮動小数点を引数に取る物が
多いですし、すべての演算を整数値で済ませるのはなかなか困難です。

D3DCREATE_FPU_PRESERVEというフラグを指定すればFPUの計算精度を
変化させてPCによる演算誤差を無くせると聞いているのですが、これは
あくまでもDirectXの算術関数についてのみなのでしょうか?
(ちなみに当方はこのフラグを指定しても対戦がズレます)

また、SinやCos等の標準算術関数も同じように浮動小数点を用いますが
これに関しても対処しなければならないと思います。
その術はあるんでしょうか?

どなたかFPUのコントロールレジスタのリセット方法かアドバイスを
お願いします。
632デフォルトの名無しさん:2008/11/26(水) 06:37:28
そんだけわかっていて設定方法が見つけられないなんて・・・。定番なのであえて教えないw

コントロールワードはスレッドごとに独立している。もちろんプロセスはお互いに干渉しない。
DirectXを使わないでデバッグしてみるといいよ。CWに関係なく自身のコード的なバグである可能性が高いように見える。
633デフォルトの名無しさん:2008/11/26(水) 06:48:51
俺も昔同じ問題にはまったことがある
PCごとに計算結果が変わるなんだこれ?とか思ってびっくりした
2chで質問したら計算結果なんて変わるわけねーだろ、バカかとかってあしらわれたよ
634デフォルトの名無しさん:2008/11/26(水) 08:07:22
>>630
Summer2008とかNorvember2008とかリリースされてる。
DirectX9も10も延々と拡張され続けていくと思った方がいい。

>>631
環境によって計算結果が違うなんて事はありえない。
そんな事があったら根本的な部分で大問題になるから。

たとえばシングルコア環境とマルチコア環境でスレッドの動作が違っていて
結果がおかしくなる事があるとそういうロジックのミスを疑うのが先。

あえて助言をするならD3DX関係の算術関数(行列、ベクトル)は内部で
CPUの拡張命令を利用するために分岐してるのでそれが原因で計算結果が変わる。

環境AではSSEを利用するけど環境BではFPUを利用するなら計算結果がちょっとずつずれていく。
これを回避する簡単な方法は行列やベクトル演算を全部自分で書くこと。

当然これはネットワークとか関係なくオフゲーのリプレイとかでもずれの原因になってる。
635デフォルトの名無しさん:2008/11/26(水) 08:25:14
IEEE754準拠させずに、浮動小数点の計算を速度優先でコンパイルすると、
CPU依存になるのは当たり前の話なのに、
計算結果が違うのはあり得ないとか言っている馬鹿がいることに驚いた。
636デフォルトの名無しさん:2008/11/26(水) 09:31:07
>>634
>D3DX関係の算術関数(行列、ベクトル)は内部でCPUの拡張命令を利用するために分岐して
こちらの問題に関してはレジストリエントリを使用することで
共通の処理を取らすための処理をかませておりますしDirectX側に
関しては問題が起きている可能性は低いと思います。

>>635
IEEE754準拠というのは具体的にはどういう事をやればいいのでしょうか?
VC2005 Expressではコンパイラオプションの「浮動小数点モデル」に
「Strict (/fp:strict)」を指定する事で丸め誤差を厳密に行うという
事でして、デフォルトでこれにチェックがついてたので問題無いかと。

ただ数値計算の誤差がコンパイラの最適化に依存するという情報を
先ほど見つけ、「-O2」(実行速度優先)のチェックをつけた際にこの
問題が発生するというトピックをネット上でみかけました。
これが影響しているとは考えにくいのですが、コンパイルオプション次第で
この問題を回避できるものなのでしょうか?

基本プログラマーではないので、専門の知識には詳しくないのです・・・
何かアドバイス等ありましたらお願いします。
637デフォルトの名無しさん:2008/11/26(水) 10:12:41
たとえばIEEE754準拠だとdoubleは80bitの精度で計算されるが、
これがFPUではなくSSE2が使われると64bitの精度になる。
当然使うか使わないかで微妙な誤差が発生するので、
CPUが拡張命令に対応しているかいないかで命令を変えているなら結果も変わる。
638デフォルトの名無しさん:2008/11/26(水) 14:40:00
つーか、FPU_PRESERVE やっても直らん言っている時点で、バグの原因は自分のコードだと決定したようなもの
639デフォルトの名無しさん:2008/11/26(水) 17:19:13
よくわからんけどIEEE754準拠ってのにするには
具体的にどうしたらいいの?
俺も操作情報だけで同期させるネット対戦ゲー作り始めたから
やりかたが知りたいです
640デフォルトの名無しさん:2008/11/26(水) 18:01:37
同期のさせ方が悪いだけだろ
誤差を修正するようなつくりにしてないのが悪い
641デフォルトの名無しさん:2008/11/26(水) 18:45:17
DXUTのファイルは作品につけて配ってもいいですか?
642デフォルトの名無しさん:2008/11/26(水) 19:39:30
日本語で頼む
643デフォルトの名無しさん:2008/11/26(水) 20:02:14
再配布でググれ
644デフォルトの名無しさん:2008/11/26(水) 20:42:58
>>641
NG
645デフォルトの名無しさん:2008/11/26(水) 21:53:48
フルスクリーン時でのリフレッシュレートですが
GetAdapterDisplayMode等でD3DDISPLAYMODE構造体に読み込んだリフレッシュレートの値は
ディスプレイアダプタが1つの場合はD3DPRESENT_RATE_DEFAULTと同じと考えていいですか?
646デフォルトの名無しさん:2008/11/26(水) 22:00:28
同じである決まりはない
647デフォルトの名無しさん:2008/11/26(水) 22:06:45
バックバッファを320x240でつくって、スクリーンのサイズを640x480にしたのですが、
無理矢理拡大しているせいか画面全体がぼやけてしまいます。
SetSamplerState(D3DSAMP_MAGFILTER, ...) は、テクスチャ->バックバッファ
のときのフィルタ設定ですよね?
バックバッファ->スクリーンでのフィルタはどこで設定すればよいでしょうか?
補完なしに設定したいのですが。。。
648デフォルトの名無しさん:2008/11/26(水) 22:13:06
>>635
おまえは準拠させないプログラムをわざわざ作るわけ?
同期や再現性が大事なアプリケーションで。
649デフォルトの名無しさん:2008/11/26(水) 22:36:32
幾ら煽られたからってその返しはあるまいよ

精度による誤差の問題は、精度が必要になる計算一回だけで結果変わってくるんだから
まずはそうなるような計算の結果を環境ごとに出してみればいいよ
650デフォルトの名無しさん:2008/11/26(水) 22:38:59
再現性が重要な業務はハードも統一する。
PCなんて結果を信用するだけ無駄。
651デフォルトの名無しさん:2008/11/26(水) 22:59:13
そうはいっても現実として多くのPCゲームが別環境での正常なリプレイの再生に対応してるよなぁ
652デフォルトの名無しさん:2008/11/26(水) 23:06:26
うざくなってきたので
_control87
x64ではSSEで統一されていたから要らなかった気がする。
653デフォルトの名無しさん:2008/11/26(水) 23:10:14
誤差が出てもいいように作ってるからというだけ。
適当なネットゲーを二台並べて動かしてみればわかるが、
お互いの動きは完全に同期しているわけではない。
動画の圧縮と同じで誤差が蓄積しないように途中途中でキーフレームを作る。
654デフォルトの名無しさん:2008/11/26(水) 23:13:18
>>652
統一はされていない、調べもしないで嘘情報を流すな。
CPU発売前にスレッドのスイッチでFPUのレジスタが保存されないという誤情報に踊らされた馬鹿の戯れ言。
SSEが推奨されているが両方使える。
655デフォルトの名無しさん:2008/11/26(水) 23:16:44
>>654
x64ではFPUじゃなくてSSEで浮動小数を演算すんだお
656デフォルトの名無しさん:2008/11/26(水) 23:24:13
元々の見てる方向が間違ってるってことで
一致しないから一致させようではなく
元から一致しないもの同士で同期させよう、に考え方を改めよう
657デフォルトの名無しさん:2008/11/26(水) 23:34:25
だいたい、いくらPC側で頑張ったって回線速度でのずれが出てくるんだから、
PCの誤差がどうこうとか些細な事にすぎんでしょ。
考えるべきなのは誤差でずれたならどこで適度にごまかして合わせるかと言う事だな。
658デフォルトの名無しさん:2008/11/26(水) 23:37:51
>>655
80bit精度が必用な場合のために使えるようになってるんだが、
いったい何を言っているんだ?
659デフォルトの名無しさん:2008/11/26(水) 23:50:54
ネットワークの同期のずれとPC毎の演算結果のずれは別の問題だろ。
普通にWindowsPC使ってるだけならCPU拡張命令に頼ってない限りfloatの演算がずれたりはしない。

ネットワークはずれるのが当然でどうやってそれをごまかして綺麗に見せるかが各社各ゲームの肝だろ。
こんなところで聞いて答えてくれるわけが無い。
660デフォルトの名無しさん:2008/11/26(水) 23:56:41
OSまで自作しているならともかく、どのDLLが違う挙動をするか分からない環境で、同じ結果を求めても無駄。
同じように動くかも知れないが、全く同じ動きをする保証などどこにもない。
661デフォルトの名無しさん:2008/11/27(木) 00:01:14
>>651
リプレイに関しては、浮動少数精度の問題をちゃんと解決してる所もいれば、固定少数でやって所もあるよ

精度の問題わかんない人は固定少数使っとけ
これで解決だ
662デフォルトの名無しさん:2008/11/27(木) 01:35:15
環境やCPUによって計算結果がかわるとかいう話題も結構だが
具体的にVCとかBCだとどういう設定すりゃいいの?
それとも何かをdefineすんのか?
663デフォルトの名無しさん:2008/11/27(木) 02:17:52
DirectX9でD3DXCreateTextureFromFileInMemoryExを使って
画像を読み込んで

g_pD3DDevice->DrawPrimitiveUP(D3DPT_TRIANGLELIST, 2, vertex, sizeof(D3DTLVERTEX));

てかんじで描画しているのですが
高さが16ptのビットマップを行がすると
微妙につぶれて表示されます

前のPCでは問題なかったのですが
なんででしょうか?

ちなみに画面の解像度は1280×800(ノートPC)なのですが
関係あるのでしょうか?
664デフォルトの名無しさん:2008/11/27(木) 02:47:54
ウィンドウサイズとビューポートが一致してないか
一致してるけど射影行列の生成時に指定しているアス比があってないかじゃね
665デフォルトの名無しさん:2008/11/27(木) 05:37:24
>>662
アライメントとか誤魔化したときにたしかそういうモードを設定するもんがあった希ガス
666デフォルトの名無しさん:2008/11/27(木) 08:14:37
>>660
おまえさんはゲームの挙動部分でOSのシステム関連のDLLなんて使うのかよ・・・。
667デフォルトの名無しさん:2008/11/27(木) 08:32:39
DirectXってCOMじゃないの
668デフォルトの名無しさん:2008/11/27(木) 08:37:32
DirectXは描画Iだろ。
ロジック的にずれてるのはDirectX関係ないじゃん。
669デフォルトの名無しさん:2008/11/27(木) 08:55:00
D3DXの計算精度が変わってくるんだから、それをロジック側で利用すれば結果変わるでしょ
ポリゴンモデルつかっててボーン位置で当たり判定取るような処理が入ってたりとかすればそれもずれてくると思うけど
670デフォルトの名無しさん:2008/11/27(木) 09:07:58
だからリプレイとかで再現をさせる場合はD3DXのCPU拡張をレジストリ弄ってOFFにするとか
ちゃんとやるなら行列やベクトル演算を全部SSEで書き直すでしょ。

実際にそれでSTGのリプレイで60FPSの約30分程度のものは一切ずれずに対応できたし。
671デフォルトの名無しさん:2008/11/27(木) 09:49:03
>>658
VC++からでも使える?
672デフォルトの名無しさん:2008/11/27(木) 09:56:00
>>666

>>660じゃないけど、メッセージフックとかで割り込んでくるDLLとか
ドライバ処理の一部が裏で_control87系の処理をやっていて
しかも元に戻さない奴がいるというのがたまにあるらしい。

まあ大抵の場合はゲーム本体のただのケアレスミスだけどね。

今後内部で勝手にマルチスレッド化みたいなライブラリが増えてくると
計算の再現性がまた問題になってくるんだろうか。
673デフォルトの名無しさん:2008/11/27(木) 10:22:22
つまりD3DX使うなと
674デフォルトの名無しさん:2008/11/27(木) 10:29:04
そのものずばりで解決できる方法あるし、ちゃんとわかってる人いるのにあえて書き込まないのは
何が問題なのかわかってない人が多いからなんだろうな
いっそもっと荒れて今の間に色々と意識できた方がいい気がする
675デフォルトの名無しさん:2008/11/27(木) 10:36:40
結構有名なネタかと思ってた
676デフォルトの名無しさん:2008/11/27(木) 17:08:24
FPU伝々以前にD3DX使うなって常識だろ
677631:2008/11/27(木) 17:15:04
同期ズレの対処を複数組み込んだので_controlfpがどの程度効果が
あったのかどうか分かりませんが、同期ズレが現状のところ、
検出されないようになりました。

ただ、浮動小数点の演算結果自体はやはりCPUによって異なるらしく、
controlfpを用いて演算精度を(可能ならば毎フレーム)指示するのは
確かに効果があるようです。

その他に行った同期ズレの対処は「コンパイル時の最適化を無効」
「位置座標等の値を0.001単位にしてそれより細かい値を切り捨てる」等
です、アドバイスありがとうございました。
678デフォルトの名無しさん:2008/11/27(木) 17:20:31
「コンパイル時の最適化を無効」
679デフォルトの名無しさん:2008/11/27(木) 17:44:04
ぶっちゃけ全部floatで動くようにしとけばいいんだけどねw
680デフォルトの名無しさん:2008/11/27(木) 18:46:21
そのfloatをどう処理するかで結果が異なるという話なんだが、
どれだけ頭が足りないんだ?
681デフォルトの名無しさん:2008/11/27(木) 18:54:44
よっしゃお前らint使おうぜ
682デフォルトの名無しさん:2008/11/27(木) 19:14:04
DirectMusicでMIDIを再生すると
コントロールパネルあたりで設定した規定のデバイス無視して
みんな同じ音色で再生してくれるんですが、
自分で好きな音色にするにはどうしたら救われますでしょうか
MCIはどうにもラグが多かったりでうまくいかなかったです
683デフォルトの名無しさん:2008/11/27(木) 19:15:01
ttp://appleloader.bbsnow.net/pic_loader/nomal/html/1_1.html

Xファイルを読み込んで表示されるプログラムなんですが

一部分だけ正常に表示されて他の部分がかなり引き伸ばされて表示されてしまいます。

テクスチャサイズは512*512です。

何が原因だと思われますか?

一応画像だけあげてみました
684デフォルトの名無しさん:2008/11/27(木) 19:31:56
単純にモデルのUVがおかしいんじゃなくて?
685デフォルトの名無しさん:2008/11/27(木) 20:06:06
3Dソフト上では正しく表示されます。

もしかしたらXファイルを読み込ませる設定が違う?かもしれないので
もう一度コードを見直してきます。
686デフォルトの名無しさん:2008/11/27(木) 20:43:49
3Dソフトじゃなくて
SDKについてるDirectXViewerで確認しる
きちんと表示されるならプログラムの問題
表示されないならモデルをXファイルにコンバートしたソフトが悪さしてる
687デフォルトの名無しさん:2008/11/27(木) 20:52:37
>>686
指摘ありがとうございます

確認してみます
688デフォルトの名無しさん:2008/11/27(木) 21:06:01
>>680
float使っても変なことしなけりゃずれないから。
689デフォルトの名無しさん:2008/11/27(木) 21:31:38
DirectXViewerでは正常に表示

書籍についてたXFileを読み込ませるサンプルプログラムで読み込ませても683と同じように表示されます

プログラムのほう再確認してきます。
690デフォルトの名無しさん:2008/11/27(木) 21:40:01
一個のXfileだけ表示してみれば?
あとポリの区切りがわからないな
ラップの仕方のような気がするけど
691デフォルトの名無しさん:2008/11/27(木) 21:55:14
>>688
そう思い込んでる分には当面それでもいいと思う
いずれこの問題にあたったときにはこのスレを思い出すだろう
692デフォルトの名無しさん:2008/11/27(木) 22:07:05
だから重要なのは適度な補正をかけることであって、
ひたすら細かい正確な数値が必要だったらそれこそ自分で
大容量固定少数点数でも作って自分で管理すればいい。
演算制度を語る奴が浮動小数点数なんてちゃんちゃらおかしな話。
693デフォルトの名無しさん:2008/11/27(木) 22:08:32
演算制度じゃなくて演算性奴だな
694デフォルトの名無しさん:2008/11/27(木) 22:22:04
>>691
実際3Dのアクションゲームでリプレイに対応したが一晩中再生してても
30分毎のクリア状態での結果はまったく変わらなかったわけだが。

同じロジックで組まれて同じ方法で演算されてるなら誤差やオーバーフローの挙動もまったく同じ結果になるだろ。
ゲームなら精度より再現性が大事なんだし。
695デフォルトの名無しさん:2008/11/27(木) 22:29:51
テキトーに入れたrand()が怖すぎるw
696デフォルトの名無しさん:2008/11/27(木) 22:29:59
それは問題そのものを誤解してると思うよ
697デフォルトの名無しさん:2008/11/27(木) 22:37:41
>同じロジックで組まれて同じ方法で演算されてるなら誤差やオーバーフローの挙動もまったく同じ結果になるだろ。
これがちがうんだろ?
698デフォルトの名無しさん:2008/11/27(木) 22:38:15
ウィンドウの指定位置に指定の大きさで描画したいのですが、
SetViewportを使うしかないのでしょうか?
何か設定メソッドがあるのか、
それとも子ウィンドウにデバイスを作成する方法があるのかの
どちらかのように思えるのですがどちらも方法がわかりませんでした
699デフォルトの名無しさん:2008/11/27(木) 22:39:44
float使えばDirectXの単精度制限で演算結果が変化することはないよね?
700デフォルトの名無しさん:2008/11/27(木) 22:53:50
1フレームに進む距離をtで時間計って計算してると違う結果になるけど
1フレームに進む距離が固定なら結果は同じになるね

でもリプレイか・・・嫌な思い出しかないな
俺が作ったランダム爆撃をリプレイのために廃止にするっていうんだぜ
あの企画畜生
終いにはエフェクトまでリプレイで統一しろとかいいだすし
ソース中のrand()関数を潰した苦い思い出が・・・
701デフォルトの名無しさん:2008/11/27(木) 23:10:48
>>694
まずはテストした環境のCPUを挙げてみろ。

頭が弱いみたいなのでこの点を明確にしておくが、
一晩中とか時間の問題を語っているんじゃないんだよ。
702デフォルトの名無しさん:2008/11/27(木) 23:16:51
>>697
同じ環境で延々とテストしてるんだろう
703デフォルトの名無しさん:2008/11/27(木) 23:21:02
つまりfloatの1.0f+1.0fの結果はC2DとAthlonで違うって事だ。
でなければ問題などおきようが無いからね。
704デフォルトの名無しさん:2008/11/27(木) 23:22:15
>>694は釣りかプログラム少しやって
仲間に自慢げに話す奴
オーバーフローとか普通この話で出るか?
705デフォルトの名無しさん:2008/11/27(木) 23:24:24
>>700
ランダムで出た結果をリプレイ用に保持しときゃいいだけじゃん
そう言わなかった、そうしなかったお前の負け
706デフォルトの名無しさん:2008/11/27(木) 23:25:04
>>705
rand()を自作して、種を保存しとくだろ普通。
707デフォルトの名無しさん:2008/11/27(木) 23:29:45
他の要素で全く使われないんならな。
708デフォルトの名無しさん:2008/11/27(木) 23:31:14
>>707
インスタンス複数作ってリプレイに絡むやつと関係ないやつ分けとけよ。
709デフォルトの名無しさん:2008/11/27(木) 23:32:21
俺に言われても困るが。リプレイなんて作らんし。
710デフォルトの名無しさん:2008/11/27(木) 23:32:25
floatの計算のずれの話だけどエースコンバットとか
全部固定小数点で作るのが常識だったりするん?
711デフォルトの名無しさん:2008/11/27(木) 23:34:26
>>706
また頭の弱い馬鹿が紛れ込んでいるが、何でrandを自作する必用があるんだ?
乱数リストから毎回同じ順序で出てくることを理解していないだろ。
取り出す順序が同じなら、常に同じ結果にしかならないんだよ。
712デフォルトの名無しさん:2008/11/27(木) 23:36:55
>>710
誤差の累積が起こらないようにキーフレームを用意するだけ。
713デフォルトの名無しさん:2008/11/27(木) 23:37:44
>>711
そういうレスはそれ以降を読んでからにしたほうがいいんじゃね
714デフォルトの名無しさん:2008/11/27(木) 23:39:36
>>712
誤差の累積つってもfloatの計算そのものの誤差であって
環境毎に違う誤差なわけじゃないなら関係ない気がするんだけど。
715デフォルトの名無しさん:2008/11/27(木) 23:41:08
環境毎に違う誤差なわけであるから関係ある気が(ry

while(1){};
716デフォルトの名無しさん:2008/11/27(木) 23:42:28
>>710
CPUが基本的に同じなコンシューマーではこの問題は起こりえないだろ

PCでも精度を統一する方法がいくつかあるし
知ってる人からしたら常識みたいなもんだ
717デフォルトの名無しさん:2008/11/27(木) 23:44:36
IEEE 754準拠の単精度つかっときゃ問題なんて起こらん。
718デフォルトの名無しさん:2008/11/27(木) 23:45:15
環境の異差を心配をするぐらいならキーフレームを埋め込んだ方が遥かに楽。
719デフォルトの名無しさん:2008/11/27(木) 23:45:54
>>709
そう思っててあるとき突然リプレイが必要とか言われると死ぬんだよ
誰もはじめからリプレイあるって知ってりゃ困んないよ
ソース中にバラマイタrand()が面倒過ぎる
720デフォルトの名無しさん:2008/11/27(木) 23:48:29
>>718
リプレイでキーフレーム保存ってものすごいデータ容量にならないか・・・
721デフォルトの名無しさん:2008/11/27(木) 23:48:51
X=5からX+=5という相対的な形式ではなく
X=5からX=10で絶対値からその差分を再現するように作ればいいだけ。
722デフォルトの名無しさん:2008/11/27(木) 23:49:24
そもそもばらまくって
コードが変なんじゃね?
723デフォルトの名無しさん:2008/11/27(木) 23:50:45
>>721
いやいや・・・弾幕シューティングとかステージ1つだけでメガ単位の容量になるだろそれ。
724デフォルトの名無しさん:2008/11/27(木) 23:53:05
>>723
どうしようもないほど頭が悪いな。
変化していない部分は入れる必用がないんだから、
相対だろうが絶対だろうがデータサイズは変わらない。
725デフォルトの名無しさん:2008/11/27(木) 23:55:00
60fpsでキーボードのデータをGetDeviceStateで取り込むと
止めたいところを通過して移動するけど。どうすればいいの?
726デフォルトの名無しさん:2008/11/27(木) 23:57:38
うぇーと
727デフォルトの名無しさん:2008/11/28(金) 00:09:32
>>724
それじゃリプレイの保存と復帰が激しく面倒だろう・・・。

パッドの入力と乱数の種だけ保存しといて毎フレームパッドの情報だけ与えれば
余計な事しなくても他の全ての処理がまったく同じように再生されるように作るだろ普通。
728デフォルトの名無しさん:2008/11/28(金) 00:12:06
リプレイの巻き戻し機能とか付いてるのもあるね
こういうのはキーフレーム方式だろう
しかしジャンルによると思う、弾幕シューティングでキーフレーム式は正気の沙汰とは思えん
729デフォルトの名無しさん:2008/11/28(金) 00:16:48
ネトゲとかどうなんの?
730デフォルトの名無しさん:2008/11/28(金) 00:21:22
座標やパラメータを記録するだけでいいやん。
731デフォルトの名無しさん:2008/11/28(金) 00:43:22
>>716
>PCでも精度を統一する方法がいくつかあるし
kwsk
732デフォルトの名無しさん:2008/11/28(金) 00:44:52
今度はリプレイの話か

おまえらもういい加減にfloatの精度の話は終わりにしろよ
733デフォルトの名無しさん:2008/11/28(金) 00:46:55
リプレイバグで変な所でいきなり死ぬ事があるんなら、
キャラが死んだか死んでないかくらいは保存しておいて欲しい。
734デフォルトの名無しさん:2008/11/28(金) 04:03:44
>>728
巻き戻しだけなら、再生時にキーフレーム生成でもできると思うが。
735689:2008/11/28(金) 07:27:44
自分でできる限りのことはしたのですが、解決できません

XファイルとテクスチャUPするのでちゃんと表示されるか確認していただけませんか

//------------------------
// モデルは全て三角分割
// テクスチャは512*512
// DirectXViewerでは正常に表示
//------------------------

よろしくお願いします
736689:2008/11/28(金) 07:28:39
追記:

ttp://www7.uploader.jp/dl/inoguma/inoguma_uljp00002.zip.html

XFileとテクスチャです
737デフォルトの名無しさん:2008/11/28(金) 08:51:10
>>725
バッファリングで取り込んでまとめるか、
入力を取り込むフレームを間引くか、
移動量を減らす。
738デフォルトの名無しさん:2008/11/28(金) 08:54:26
>>736
自作のツールでは普通に読めたのでプログラムが原因だろ。
ただ球にはってるせいか極地でゆがんでるから張り方も考えた方がいいと思うけどね。

>>733
リプレイでそんなのがあったらプログラマ失格だろ。
739690:2008/11/28(金) 10:34:45
>>689
ファイル見たがやっぱりラップの仕方だな
UVが1以上の値がある
これをどう処理するかがラップの仕方だよね?

てか俺のレスは無視かよ
740690:2008/11/28(金) 10:38:10
テスクチャのアドレッシングでググレ
741デフォルトの名無しさん:2008/11/28(金) 21:52:00
最近始めたんだけどXファイルって動画はあるの?
動画って言うか連続アニメーションっていうか
742デフォルトの名無しさん:2008/11/28(金) 21:58:43
Xファイル ザ ムービー はあったと思う
743デフォルトの名無しさん:2008/11/28(金) 22:00:36
ない、
Xファイルは単なる数字の羅列だ
無理だからあきらめろ
744デフォルトの名無しさん:2008/11/28(金) 22:08:58
じゃあDirectXのアニメーションってどういう構造になってるの?
745デフォルトの名無しさん:2008/11/28(金) 22:15:18
ファックスとSCSIとスキャナーを買ってくればいいと思うよ
746デフォルトの名無しさん:2008/11/28(金) 22:17:37
ok教えるよ
単位はkeyで何個かのkeyがあって
そのkeyごとに頂点の位置を記録してる(みたいなもの)
key何個使うかとかkey間の秒数は自分で決める。
みたいなもの、のところが、君が中学生なら無理
高校生なら卒業してからにしろ

747デフォルトの名無しさん:2008/11/28(金) 22:23:48
ようするにFFとかはアニメーションファイルがあってそれを読み込んでるんじゃなくて
DirectXの計算式のファイルがあっていちいち計算してアニメーションみたいな扱いになってる感じ?
748デフォルトの名無しさん:2008/11/28(金) 22:26:34
商用ソフトはXファイルなんて使ってない。
749デフォルトの名無しさん:2008/11/28(金) 22:27:42
例えばの話じゃん
750デフォルトの名無しさん:2008/11/28(金) 22:28:54
751デフォルトの名無しさん:2008/11/28(金) 22:29:00
じゃあ具体的に質問してくれ
752デフォルトの名無しさん:2008/11/28(金) 22:30:54
まず動画って定義がおかしい
その辺りから調べなおさないと駄目
FFってファイナルファンタジーのことか?
これだとますます動画の定義がなんだかわからないと先に進めないよ
753デフォルトの名無しさん:2008/11/28(金) 22:32:05
じゃあゼルダで剣を振る動作は独自のアニメーションファイルがあるの?
その内部は計算だろうけど、作ってる時はツールでポリゴンの計算を意識しないで作ってるの?
754746:2008/11/28(金) 22:41:35
どんなアニメーションでもファイル形式ちがくても
数字の羅列
755デフォルトの名無しさん:2008/11/28(金) 23:09:53
要するに3Dモデラーのアニメーション制作の機能は意味ないわけね
756デフォルトの名無しさん:2008/11/28(金) 23:17:01
教えてください(><

DXUTguiクラスを使おうと思っているのですが、
コンパイルするとCGrowableArrayでエラーが出ます
CGrowableArrayって何なんですか??

当方 VC6.0 DirectX(October 2004)で開発してます。
757デフォルトの名無しさん:2008/11/28(金) 23:22:38
エラーが出ますだけで?
758デフォルトの名無しさん:2008/11/28(金) 23:24:52
失礼ぶっこきました!!!
下記のエラーがでます。
'CGrowableArray' : 識別名を宣言するのに、型が指定されていません。
759デフォルトの名無しさん:2008/11/28(金) 23:26:58
ちなみに、ここでエラーが出ます。

CGrowableArray< CDXUTDialog* > m_Dialogs; // Dialogs registered
760デフォルトの名無しさん:2008/11/29(土) 00:23:48
まさか
DXUTgui.hを単独で使おうとしてるとか?
761デフォルトの名無しさん:2008/11/29(土) 01:27:36
>>747
いやだからファイルはデータであって計算はプログラムが行うんだよ
もっと簡単に言うと君はここに来るレベルにすら達してないってことだな
762デフォルトの名無しさん:2008/11/29(土) 02:09:32
なんで簡単にまとめられないの?
自分達が長年掛けて知ったことを一瞬で知られるのが悔しいの?
763デフォルトの名無しさん:2008/11/29(土) 02:15:06
まさかそんな底の浅い人間はここにはいないだろう
764デフォルトの名無しさん:2008/11/29(土) 02:27:23
で、結局剣を振る時のパーツの曲がり具合とかってどうやって作られてるの?
1コマづつ作ったら計算式を出してくれるツールがあるの?
自分で計算するの?
計算はツールまかせで内部でやってくれててアニメーション自体が記録されてるファイルを呼び出してくるの?
765デフォルトの名無しさん:2008/11/29(土) 02:30:00
マジレスすると好きに設計すればいいし
FFとかゼルダの実装方法を知りたければスクエニや任天堂傘下のセカンドに聞いて下さいとしか
766デフォルトの名無しさん:2008/11/29(土) 02:32:55
>>746が言ってるのが理解できないかい?
ツールではkey時点の頂点情報はあるしファイルに書き出されてる
767デフォルトの名無しさん:2008/11/29(土) 02:37:42
ボーンみたいな感じじゃないのか?
768デフォルトの名無しさん:2008/11/29(土) 02:42:55
要するにほとんどのゲームは手でアニメーションを作ったりモーションキャプチャしたりで
モーションデータとしてファイルに記録してある

で、プログラムでそれを再生してる

実はそれだけじゃないけどまぁ大体そんなかんじ
769デフォルトの名無しさん:2008/11/29(土) 02:43:24
>計算はツールまかせで内部でやってくれててアニメーション自体が記録されてるファイルを呼び出してくるの?
これであってるよ
xファイルにはこのアニメーションの情報を含むことができる

最初動画って言い方をしてたが動画っていうのは普通ムービーって言われてる方を指す
FFを例に出してたけど、FFでもムービーは使ってるだろ
770デフォルトの名無しさん:2008/11/29(土) 02:46:45
ボーンは作成過程だろその結果が頂点情報だ
数学の知識はどれくらいある?

理系の大学に入れるレベルが必要だ
間違ってもゲーム製作用の基礎数学の本とか買うな
このレベルある奴向けだからな
771デフォルトの名無しさん:2008/11/29(土) 02:51:15
ああ、ごめん全然初心者だから
blender使っててコマ送りのアニメーションを作ったんだけどそれをXファイルで出力できないっぽかったから計算式で全部動かすのを考えないといけないのかと思った
772デフォルトの名無しさん:2008/11/29(土) 02:52:20
行列はわかるけど大学行ってないから線形代数とかはわからないレベル
773デフォルトの名無しさん:2008/11/29(土) 02:54:22
>Xファイルで出力できない
この時点で無理だw
blenderのファイル形式なんてみんな知らない
774デフォルトの名無しさん:2008/11/29(土) 02:56:51
>>771
xファイル使えないなら、計算式で全部動かさないと駄目
775デフォルトの名無しさん:2008/11/29(土) 02:59:54
blenderはXファイル出力できる
使い方が悪いんじゃね?
776デフォルトの名無しさん:2008/11/29(土) 03:02:51
そうそう、できるっぽかったんだけど英語だしやり方がわからなくて
やり方ググってる時についでに質問してみたっていうそういう流れ
多分保存はできないけど、エクスポートでできるみたいな感じだと・・・その時に消しちゃって
777デフォルトの名無しさん:2008/11/29(土) 03:35:34
昔の話だけど俺がblender触ったときは
既存のフォーマットだとスキンメッシュも出せないし
アニメーションもできんし、uvずれまくるしいけてない感じだったな

自分でプラグインっぽいの書いてそれで出力するようにしないと駄目な感じに見えたよ>blender

いまはなんか違うのかな?
778デフォルトの名無しさん:2008/11/29(土) 03:52:04
今やったら普通にXファイルのアニメーション出力できた
779デフォルトの名無しさん:2008/11/29(土) 03:53:09
あとはこれをたくさんつくって
当たり判定せっていしたら
ゲーム完成?
780デフォルトの名無しさん:2008/11/29(土) 03:55:14
ああ完成だよ
781デフォルトの名無しさん:2008/11/29(土) 04:47:54
>>778
スキンニングやシェーダはいける?
782デフォルトの名無しさん:2008/11/29(土) 05:01:23
1〜9までの数字をランダムに入れ替えて、ランダムに
数字を9個作るプログラムを教えて
783デフォルトの名無しさん:2008/11/29(土) 06:29:14
>>782
鼬害。ここは日本語も読めない人の来るところじゃありませんぜ。
784デフォルトの名無しさん:2008/11/29(土) 11:10:47
アニメーションはDirectXが万能な数式自体を初めから持ってて、動きの合成のタイミングやら、ポーズを表す
パラメータやらをプログラマが指定するって感じ
785デフォルトの名無しさん:2008/11/29(土) 11:16:54
つーかスキンメッシュのサンプル見ればアニメーション関連も全部インターフェイス用意されてるんだからコピペしとけ。
786デフォルトの名無しさん:2008/11/29(土) 14:52:38
787デフォルトの名無しさん:2008/11/29(土) 21:42:41
スキンメッシュのサンプルでドラッグしたらオブジェクトの座標が変わる処理ってどのファイルでやってるかわかる?そういうのってどうやって調べるの?
788デフォルトの名無しさん:2008/11/29(土) 21:59:26
まずはチュートリアルを順番に実行しつつ動作を確認するところから始めろ。
それが終わるまでは余計なことは考えるな。
789デフォルトの名無しさん:2008/11/29(土) 22:07:54
サンプルに入ってるチュートリアルってファイルのこと?
790デフォルトの名無しさん:2008/11/29(土) 22:16:18
ヘルプに載っているだろ
791デフォルトの名無しさん:2008/11/29(土) 22:17:25
たぶんDXUTのカメラ処理のことだと思うけど
DXUTが何やってるのか理解できないレベルの人に
説明するのはほぼ不可能なので
とりあえずそれは忘れてできるとこからやりなさい
792デフォルトの名無しさん:2008/11/29(土) 22:26:43
わかりました
てかヘルプなんてどこにあるの?
793デフォルトの名無しさん:2008/11/29(土) 22:30:18
ヘルプの存在も知らないでプログラムを組もうとする愚か者を初めて見た。
いくら何でも酷い。
794デフォルトの名無しさん:2008/11/29(土) 22:34:04
msdnなら知ってるがマイクロソフト系の背景が水色のやつは読む気がしないんだけど重要なの?
795デフォルトの名無しさん:2008/11/29(土) 22:35:50
DirectX9.0SDKの日本語ヘルプって2004までしかねーんじゃね?
796デフォルトの名無しさん:2008/11/29(土) 22:41:59
スキンメッシュなら2004で十分だろ、かわってねぇ
797デフォルトの名無しさん:2008/11/29(土) 22:43:47
日本語ヘルプがないのはあんまり手を出さないほうがいい
情報を共有できる人間も少ないだろうし
何より質問に答える奴がいたとしても「なに?君?英文も読めないの?(笑)」的な
クズばっかだからやってもいい未来はない

それよりツールウィンドウでもだしたほうがナンボか楽だぜ
798デフォルトの名無しさん:2008/11/29(土) 22:45:51
>>797
おまえらと一緒だなw
799デフォルトの名無しさん:2008/11/29(土) 22:46:42
managedみたいにすぐ消えるからそれでもおk
800デフォルトの名無しさん:2008/11/30(日) 07:16:25
Xファイルが真っ黒なんだけどなんで?
法線とAmbientが関係してるのは見たんだけど
TinyのサンプルはAmbientじゃないの?
801デフォルトの名無しさん:2008/11/30(日) 08:00:03
聞き方が悪い奴は答えない
802デフォルトの名無しさん:2008/11/30(日) 10:21:04
全くの初心者がゼロから始めるのに適したサイト教えてください
803デフォルトの名無しさん:2008/11/30(日) 10:45:28
>>802
そういうやつはサイトじゃなく本を買え
804デフォルトの名無しさん:2008/11/30(日) 11:07:33
そしてまた
書籍厨とWebサイト厨の論争が始まるわけですねわかります
805デフォルトの名無しさん:2008/11/30(日) 11:41:10
論争はいらん。本を読んでwebも見ろ。
806デフォルトの名無しさん:2008/11/30(日) 11:43:33
>>805
激しく同意
どっちかしか使わないなんていってる時点で不毛
Webで知識を広げて、本で深く追っていくといいかも
807デフォルトの名無しさん:2008/11/30(日) 11:45:49
この世はすべて金
金がすべて
書籍買う程度の金の無い奴はPCに触るな
808デフォルトの名無しさん:2008/11/30(日) 11:48:35
PC買えるんだから本は買えてるだろ。
月3万くらいなら本代にプールするだろ。
809デフォルトの名無しさん:2008/11/30(日) 12:32:22
月3万か
やっぱこのスレの住人は勉強してるな
俺も中学生のころは全財産を技術書に使ってたのに
何今の体たらく
810デフォルトの名無しさん:2008/11/30(日) 12:59:51
金を使っただけで分かった気になっちゃだめだよw
811デフォルトの名無しさん:2008/11/30(日) 13:03:22
逆に考えるんだ
書籍に金を掛ける必要がなくなるほど知識が身についたと
812デフォルトの名無しさん:2008/11/30(日) 16:40:59
P2Pの時代に金で買うとかw
情弱乙
813デフォルトの名無しさん:2008/11/30(日) 16:43:00
うんこ
814デフォルトの名無しさん:2008/11/30(日) 16:44:32
乞食自慢は勘弁しろよ…
815デフォルトの名無しさん:2008/11/30(日) 17:39:50
detours.lib(detours.obj) : warning LNK4099: PDB 'detours.pdbってリビルトするんですが解決方法ありませんか
816デフォルトの名無しさん:2008/11/30(日) 17:42:14
マルチ市ね
817デフォルトの名無しさん:2008/11/30(日) 17:47:06
detours.lib(detours.obj) : warning LNK4099: PDB 'detours.pdb' が 'C:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Lib\detours.lib'に見つかりません。デバッグ情報がないものとして、オブジェクトにリンクします。これの意味と解決方教えてください
818デフォルトの名無しさん:2008/11/30(日) 17:54:04
ほっときゃいい
819デフォルトの名無しさん:2008/11/30(日) 17:54:50
無視でいいんすか?

820デフォルトの名無しさん:2008/11/30(日) 19:03:38
>>812 プログラミングの洋書なんぞほとんど流れてねーんだよハゲ
821デフォルトの名無しさん:2008/11/30(日) 19:05:32
いや
大人ならちゃんと買えよ
822デフォルトの名無しさん:2008/11/30(日) 19:11:55
GEMSとか電車で読むのにデータ化されても印刷すんの困るだろ・・・
823デフォルトの名無しさん:2008/11/30(日) 19:15:50
あんなもん電車で読めるわけねぇだろw
824デフォルトの名無しさん:2008/11/30(日) 19:17:18
むしろデータ化されてて
電車で読む分だけ印刷したほうが使えるじゃん
825デフォルトの名無しさん:2008/11/30(日) 19:20:05
>>822は低脳
826デフォルトの名無しさん:2008/11/30(日) 19:36:32
カバンに入れて読んでるが・・・
827デフォルトの名無しさん:2008/11/30(日) 20:32:55
エスパー発見w
828デフォルトの名無しさん:2008/11/30(日) 20:50:31
普通にデータのまま読んでるが何か。
829デフォルトの名無しさん:2008/11/30(日) 21:18:01
原書の古い奴は公開されてなかったっけ?GPUGEMSだっけ
830デフォルトの名無しさん:2008/12/01(月) 00:01:56
ああ、nVidia公式で公開中
831デフォルトの名無しさん:2008/12/01(月) 00:04:00
やっぱり長々と読むなら本じゃないとね。
832デフォルトの名無しさん:2008/12/01(月) 00:08:25
初めてプログラマブルシェーダ使ってみたんですが、なぜか何も描画されません
テクスチャ貼って描画してるだけの単純なプログラムです
一応プログラムとHLSLのファイルをうpしました
http://ossanloda.fam.cx/up/uploda1/src/ossan2515.zip.html
833デフォルトの名無しさん:2008/12/01(月) 00:13:28
よかったね。
834デフォルトの名無しさん:2008/12/01(月) 01:39:05
一つのプロセスでデバイスを複数作ったり、複数のウィンドウにDirectXで描画するにはどうすればいいんですか?
835デフォルトの名無しさん:2008/12/01(月) 01:59:54
デバイスの作成方法を基礎から勉強しようね
836デフォルトの名無しさん:2008/12/01(月) 02:13:42
デバイスを解放して作り直す場合、確保したリソースは解放すべき?するならデバイス解放直前が望ましいですか?
あと、ここにいる人は文字の描画はどういう解法でやってますか?ID3DXFont以外で
837デフォルトの名無しさん:2008/12/01(月) 02:17:03
COMも勉強しようね。
838デフォルトの名無しさん:2008/12/01(月) 02:18:52
普通はプログラム終了までデバイスは破棄しない
839デフォルトの名無しさん:2008/12/01(月) 02:19:24
o リソース開放せんとそもそも作り直せないよ。
o GetGlyphOutlineとかFreeTypeとか
840デフォルトの名無しさん:2008/12/01(月) 02:43:39
>>832
てこずったから、直接は教えない。
ちゃんとメソッドの戻り値をチェックすれば
一発でわかるよ。
841デフォルトの名無しさん:2008/12/01(月) 07:48:55
>>834
普通に2個作ればおk
842デフォルトの名無しさん:2008/12/01(月) 08:15:15
DXライブラリって良いですか?
843デフォルトの名無しさん:2008/12/01(月) 08:16:56
844デフォルトの名無しさん:2008/12/01(月) 08:21:46
>>840
どの辺か、もうちょっと詳しく教えて頂けませんか?
845デフォルトの名無しさん:2008/12/01(月) 08:30:42
DirectInputで日本語を入力するにはどうすればいいの?
846デフォルトの名無しさん:2008/12/01(月) 08:36:19
本当にDirectInputでやるなら、キーボードから得られた情報を、
キーボードの種類を判別するところから、変換処理まで地道に自分で一つ一つ作っていくしかない。
847デフォルトの名無しさん:2008/12/01(月) 08:39:43
>>844
840じゃないけど
シェーダーに渡してる変換行列の変数の名前が
プログラムとシェーダーで一致してないぜ
848デフォルトの名無しさん:2008/12/01(月) 08:39:59
ゲーム機みたいに文字並べて選ばせたら
849デフォルトの名無しさん:2008/12/01(月) 08:48:15
CDXUTIMEEditBox
850デフォルトの名無しさん:2008/12/01(月) 08:51:15
>>847
ありがとうございます!!
851デフォルトの名無しさん:2008/12/01(月) 09:24:28
>>845
普通にWM_CHARひっかけろよ・・・
852デフォルトの名無しさん:2008/12/01(月) 23:48:49
こわれた にんげん はこぶよ れいきゅうしゃ れいきゅうしゃ

さかみち くだるの らくらく くるまいす くるまいす

よだれを たらして わらうよ しんしょうしゃ ♪
853デフォルトの名無しさん:2008/12/02(火) 01:53:31
>>850
間違っています。
以上。
↓次どうぞ
854デフォルトの名無しさん:2008/12/02(火) 11:42:39
なんか変なのが湧いてるな
855デフォルトの名無しさん:2008/12/02(火) 14:51:48
↑とかな
856デフォルトの名無しさん:2008/12/02(火) 15:37:17
SampleBrowser(august2008)のEmptyProject10にtutorialのLightsなどをどのように適用すればいいのでしょうか。
DeviceCreated, FrameMove, FrameRender, DeviceDestroyedの関数内に書くようですけど
例えばLightsのどのコードをEmptyProject上に組み込んでいくかが分からないです。
EmptyProject上にTutorialソースを組み込んだファイルを参照できればいいのですが。
環境はVS2008を使用しています。
どうかよろしくお願いします。
857デフォルトの名無しさん:2008/12/02(火) 15:57:09
どうでもいい。
以上。
↓次どうぞ
858デフォルトの名無しさん:2008/12/02(火) 16:05:04
一つ一つの関数を調べて理解してけよ。
お前がどうしたいかなんて知ったこっちゃないんだよ。
859デフォルトの名無しさん:2008/12/02(火) 17:46:25
テラ異常者のすくつwww
860デフォルトの名無しさん:2008/12/02(火) 18:20:58
自分の思った答えが返ってこないとそうやってすぐ態度を変える
質問自体が異常者、幼稚園児並なのにな
861デフォルトの名無しさん:2008/12/02(火) 18:26:07
要はチュートリアルをDXUTで書き直したいってことだろ?
DXUTが分かってないなら使わなくていいよ
EmptyProjectに移植するのは素直にあきらめなさい。
たぶん、まだ理解が足りてない
分かってて聞いてるならSimpleSampleを参考に移植できるはず
862デフォルトの名無しさん:2008/12/02(火) 19:07:42
あれ気持ち悪いし入門者以外がわざわざ使うようなものじゃないだろ。
863デフォルトの名無しさん:2008/12/02(火) 19:38:59
質問なんですがシステムのファイルがないとDirectX診断ツールで表示されたんですがどうしたらいいですか?長文すいません。
864デフォルトの名無しさん:2008/12/02(火) 19:45:31
最新版でもインストールすれば?
865デフォルトの名無しさん:2008/12/02(火) 19:48:47
最新版をインストールしてもだめだったんです。システムファイルがないと表示されました。他に方法はないでしょうか?教えてください。
866デフォルトの名無しさん:2008/12/02(火) 19:52:53
OSでも再インストールすれば?
867デフォルトの名無しさん:2008/12/02(火) 19:57:02
分かりました。説明頂いてありがとうございます。
868デフォルトの名無しさん:2008/12/02(火) 20:03:19
http://www13.plala.or.jp/kmaeda/directx9/tinya2007.htm
このページに元のTiny4はWキーとかで歩く、走るが変更できるって書いてあるけどできなくないですか?
やってみてくれませんか?
869デフォルトの名無しさん:2008/12/02(火) 20:14:18
ぽめんできたわ
870デフォルトの名無しさん:2008/12/02(火) 20:56:37
871デフォルトの名無しさん:2008/12/03(水) 00:26:17
ソフトがどのDirectXのdll使ってるか調べる方法ってありまんすか
872デフォルトの名無しさん:2008/12/03(水) 00:34:10
dependency walker
873デフォルトの名無しさん:2008/12/03(水) 00:56:28
>>872ありがとうございます。
これで
874デフォルトの名無しさん:2008/12/03(水) 16:59:48
DirectInputDeviceで製品名取得したいんだけど、DIEnumDevicesCallbackの中でlpddiから取り出したら
「USB joystick」って言うどう見ても製品名じゃないのが取れてしまったんだが、何ででしょう?
IDirectInputDevice8から取得しようとすると、GetDeviceInfoが失敗してしまいます。
875デフォルトの名無しさん:2008/12/03(水) 17:42:59
その製品用のドライバをインストールしないで
Windows標準のドライバを使ってるから
876デフォルトの名無しさん:2008/12/03(水) 19:06:01
DirectXで、画像を読み込んでスプライトで表示したのですが、
どうしても元画像よりぼやけた感じになってしまいます。
元の絵をそっくりそのまま表示するにはどうすれば良いでしょうか?
画像は256x256で作ってあります。

ttp://www.dotup.org/uploda/www.dotup.org20933.zip.html
ソース一式です。
どなたかご教授お願いします…。
877デフォルトの名無しさん:2008/12/03(水) 19:48:04
>>875そうなんですか。それじゃあこの場合プログラムには問題は無いようですね。
ちなみにドライバのインストールの有無による違いって識別情報とか製品情報以外に何かあるんでしょうか?
878デフォルトの名無しさん:2008/12/03(水) 20:56:49
経験上、ハードによってピクセルずれ問題があったりなかったりする。(テクセルのずれとも言う)
最低限、ATIとNVIDIAのビデオカードでテストすることは必須。
矩形の右下の座標を0.5くらい増やすと上手くいったりなかったり。
879デフォルトの名無しさん:2008/12/04(木) 02:22:26
>876
RECT rect = { 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT };
::AdjustWindowRect( &rect, WS_OVERLAPPEDWINDOW, FALSE );

hWnd = CreateWindow("DX",
"フルスクリーン",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
rect.right - rect.left,//WINDOW_WIDTH,
rect.bottom - rect.top,//WINDOW_HEIGHT,
NULL,
NULL,
hInstance,
NULL);

ウィンドウのサイズ≠クライアント領域サイズなのよね。
880デフォルトの名無しさん:2008/12/04(木) 02:52:50
>>876
デバッグもしないでソース丸投げなんていい度胸だな。
881876:2008/12/04(木) 06:48:10
>>879
画像がそのまま表示されました!
CreateWindowの引数はウィンドウ全体のサイズだったんですね…
勉強になりました、本当にありがとうございます!
>>878さんもありがとうございました!

>>880
ソースを直接みて頂いたほうがわかりやすいのではと思って書き込んでしまいました
申し訳ありませんでした
882デフォルトの名無しさん:2008/12/05(金) 14:53:24
別にソースを上げるのはいいんじゃね?
自分で勝手に問題の原因を限定してしまって
実は今回みたいな凡ミスが原因でした、みたいな場合は特に
883デフォルトの名無しさん:2008/12/05(金) 16:06:00
884デフォルトの名無しさん:2008/12/05(金) 20:00:51
世界的な秘密結社「フリーメーソン」を名乗った文書が日清製粉(東京都千代田区)の取引先に送られた事件で、
警視庁組織犯罪対策3課は5日、信用棄損の疑いで、無職の男(61)ら3人を書類送検した。

 3人は6月下旬、日清製粉の取引先に「不正がある。
全世界のフリーメーソンを通じて糾弾する」などとする虚偽の内容のファクスを送信し、同社の信用を傷つけた疑い。

http://sankei.jp.msn.com/affairs/crime/081205/crm0812051916024-n1.htm
885デフォルトの名無しさん:2008/12/06(土) 17:35:50
6関節のマニピュレータの姿勢シミュレーション結果をDirectXによって可視化を行いたいのですが
一番容易な方法はどのようなものになるんでしょうか?
886デフォルトの名無しさん:2008/12/06(土) 17:37:56
ポリゴン描画するのに簡単も難しいもない。ただやるだけだ。
887デフォルトの名無しさん:2008/12/06(土) 17:57:36
失礼しました.
関節変数の計算を行いつつ,算出した角度分だけ関節を回転させたいです.
関節変数の入力により可視化を行います.

リンク,関節を分割したモデルデータをあらかじめ用意し
関節変位または角度にあわせてリンクを回転させ,リンクと関節をひとつづつ表示していくのと

リンク,関節を初期状態として作成し,
中に骨組みを入れて動かす方法

2つ方法を思いついたのですが,どちらが一般的で容易でしょうか?
888デフォルトの名無しさん:2008/12/06(土) 18:06:37
どちらの方法でも
階層構造の下から行列を掛けていくことには変わりないんだが
889デフォルトの名無しさん:2008/12/06(土) 18:32:42
D3DXCreateSpriteで間接を
D3DXCreateBoxでリンクを、個数分生成する
それぞれが初期位置となる行列を保持するものとする
D3DXCreateMatrixStackで行列スタックを生成する

間接1の回転行列*間接1の初期位置の行列を
行列スタックにpush
行列スタックのトップ行列をつかって間接1とリンク1を描画

間接2の回転行列*間接2の初期位置の行列を
行列スタックにpush
行列スタックのトップ行列をつかって間接2とリンク2を描画

以下末端まで繰り返す
分岐がある場合は分岐間接までpopして
分岐地点からpushと描画の繰り返し
890デフォルトの名無しさん:2008/12/06(土) 18:55:50
>>887
ロボのような固形物なら前者で問題ないが
人間の皮膚のようにポリゴンが複数の部位の影響を受ける場合は
骨を入れてポリゴンに対するウェイトをかけなきゃだめよ
891デフォルトの名無しさん:2008/12/06(土) 19:48:57
>>888
順運動学でもそうなりますのでそれはなんとも・・・・

>>889
試してみます.
ありがとうございます.

>>889
すべて剛体ですので,前者のほうで試してみることにします.
892デフォルトの名無しさん:2008/12/06(土) 20:33:16
Direct3DDeviceってHWNDが無効になる前にWM_CLOSEなりWM_DESTROYのハンドラでReleaseするのか
ウィンドウが破壊されてもどうせ描画が失敗するだけだからと、メッセージループ抜けてからReleaseするのか
どちらがまっとうだと思いますか。
893デフォルトの名無しさん:2008/12/07(日) 10:44:31
LPD3DXSPRITEの機能を使って2D描画するのと。
自分で頂点4つ作ってテクスチャ貼り付けてDrawPrimitiveする。
どっちも同じ結果を表示する場合どっちが軽いですか?

拡張性など考えたら自分で作る方が良い気がするんですがどうでしょうか。
894デフォルトの名無しさん:2008/12/07(日) 10:47:03
LPD3DXSPRITEはただのポインタの定義だが、それを使うか使わないかに何の意味があるのかさっぱり理解出来ない。
895デフォルトの名無しさん:2008/12/07(日) 10:51:23
ID3DXSprite::Drawのことですね、言葉足らずですいません。
896デフォルトの名無しさん:2008/12/07(日) 14:48:04
>>892
作ったのと逆順に解放するのがまっとうじゃね
897デフォルトの名無しさん:2008/12/07(日) 17:08:31
シャドウマップとトゥーンシェードを両立させるには、
ひとつのシェーダー関数に両方の処理書くしかないんですよね。

トゥーンで色を決めつつ、影判定で暗くするしか
898デフォルトの名無しさん:2008/12/07(日) 22:08:45
>>897
俺のGPUは2.0世代なのでライティング+シャドウイングのマルチパスで対応してるが
昨今のGPUは強力らしいし、リソースが十分足りるなら1本でいくのもありかもね。
899デフォルトの名無しさん:2008/12/07(日) 22:16:21
マルチパスのが重いけどな
900デフォルトの名無しさん:2008/12/08(月) 04:55:05
シェーダーで
D3DMaterialを使った
.Diffuse.Emissive.Ambient.Specular.Power
シェーダーを使わない時と同じ描画をする

色の計算式が乗っているサイトとかありませんか?
901デフォルトの名無しさん:2008/12/08(月) 09:55:56
>>900
昔のSDKのサンプルに入ってた。
902デフォルトの名無しさん:2008/12/08(月) 10:55:36
903デフォルトの名無しさん:2008/12/08(月) 11:30:18
DrawPrimitiveUP()を使いポリゴンを描画しているのですが、
ワールドマトリクスが無視されてしまいます
ビューマトリクスなどは反映されているため、
何か設定がおかしいのだと思いますが、ヒントをいただけないでしょうか?
ちなみに設定されていることはGetTransform()により確認済みです。

また、SetTransform()を検索すると
ワールドマトリクスを先に設定しているサンプルばかりですが
順番などはあるのでしょうか?
(順番を変えてもワールドマトリクスは無視されましたが・・・)
904デフォルトの名無しさん:2008/12/08(月) 13:00:38
コードの断片を書いたほうがいいと思うんだけど
ワールド→ビュー→プロジェクションにしてるって事?
逆にもう少しヒントください
905903:2008/12/08(月) 13:14:21
自己解決しました
D3DFVF_XYZRHW を指定していたのが間違いだったようです
D3DFVF_XYZW に変更すると想定どおりに動作しました
お騒がせしてすみませんでした

>>904
すみません
どこをどう抜粋すべきなのかがわからなかったのです
>ワールド→ビュー→プロジェクションにしてるって事?
ビュー -> プロジェクション -> loop{ ワールド } という形にしていました。
906デフォルトの名無しさん:2008/12/08(月) 15:44:31
http://www.shader.jp/xoops/html/masafumi/directx9/3dtips/d3d19.htm
2007augustですがこちらのサイトの方法でテキストの表示って出来ますか?
自分で確認を出来たらいいのですがビルドが上手くいかないので確認が取れません
よろしくお願いします
907デフォルトの名無しさん:2008/12/08(月) 15:51:16
なんで、お前の仕事を他人がやらなきゃいけないの?
ビルドできないって、ちゃんと頭使って解決しろよ。
908デフォルトの名無しさん:2008/12/08(月) 16:34:54
>>907
ちょっと痛いけど、概ね同意
909デフォルトの名無しさん:2008/12/08(月) 19:24:41
職場でもこういうアフォ増えたよなw

やってみてここがわかりませんなら協力もするけど
ここまでナメタ奴の相手したくねぇよな
死ねばいいのに
910デフォルトの名無しさん:2008/12/08(月) 19:42:18
ビルドできないエラー内容を書かないと
次スレにはエラーガ出てる場合はエラー内容を
書きましょうと追加したほうがよいようだな
911デフォルトの名無しさん:2008/12/08(月) 20:12:44
キャプチャボード付属のTV視聴ソフトが、Direct3DかAudioの少なくともどちらか一方でDebug runtime使うと画面が表示されないんだけど、
DebugかRetailかを判断ってどうやったらできますか。
912デフォルトの名無しさん:2008/12/08(月) 20:17:59
それで、お前以外に詳しい状況が分かると思っている?
913デフォルトの名無しさん:2008/12/08(月) 22:02:34
914デフォルトの名無しさん:2008/12/09(火) 14:43:10
ペイントソフトで、RGB値を指定してペンで書くように
alpha値(0〜255)を指定してペンで描けるようなソフトってありますか?

どのソフトもアルファチャンネルレイヤーには対応しているんですが
直にアルファ値をペンや塗り潰しできるものが見つからなくて・・・
915デフォルトの名無しさん:2008/12/09(火) 14:47:29
Paint.net
916デフォルトの名無しさん:2008/12/09(火) 15:32:28
>>914
RGBチャンネルに描いてDirectX Texture Toolでαに読み込ませるのはダメ?
っていうか、どのソフトでもRGBチャンネルからαへのコピーくらいない?
917デフォルトの名無しさん:2008/12/09(火) 21:28:19
DXUTのGUIコントローンってみかん聖者泣いてせ巣カァーΣ^)/?
918デフォルトの名無しさん:2008/12/10(水) 00:45:51
どこのスレがいいのか悩みましたが、もしスレ違いなら誘導していただけると幸いです。

スプライトに不透明なテクスチャと半透明なテクスチャを一部が重なるように順に貼り付けたとき、
DirectXでPresentすると重なった部分は不透明になってくれるのですが、
そのバックバッファ(をオフスクリーンサーフェイスにコピーしたもの)を
DirectshowのVMR9に渡して動画と合成すると、重なった部分が半透明になります。
(合成の際のアルファ値は1(不透明)です、念のため)

後者でも前者の結果が表れてほしいのですが、結果が異なる原因がいまいちわからないまま、
SetRenderStateのD3DRS_SRC/DESTBLENDをいじれば何とかごまかせることは分かったのですが、
例えば半透明+半透明の組み合わせだと違う設定が必要だったり、文字列描画をD3DBLEND_ONEで行ったら文字が潰れたりで右往左往しています。
根本的な原因と解決方法を教えていただけないでしょうか。
919デフォルトの名無しさん:2008/12/10(水) 01:09:01
エスパー必要な質問止めような。
結果だけを目で確認しないで、処理の途中途中でダンプなりして実際にデータがどうなっているか確認しろ。
そして何故目的の状態にならないか理解しろ。
920デフォルトの名無しさん:2008/12/10(水) 01:57:51
March2008のDirectX9.0のSDKでコンパイルが通るバンプマッピングのサンプルが欲しいんですが
以前のサンプルはコンパイルが通らないし、今のサンプルにはバンプマッピングが含まれてないので
どこかにサンプルとかありませんか?
921デフォルトの名無しさん:2008/12/10(水) 02:07:17
ビルドできないのをソースのせいにしてはいけない
922デフォルトの名無しさん:2008/12/10(水) 02:40:48
>>918
VMR9は使ったことがないが、バックバッファのα値が半透明の
スプライトを描画したときに更新されているんだろう。

バックバッファのα成分が必要なければα無しのフォーマットを
選択するか、D3DRS_COLORWRITEENABLEでαをマスク。

α成分が必要な場合は、難しい問題になる。
半透明が複数重なったときの正しいα値は定義できない。
重なることがないなら、アルファテストを使ってDestのαが1のところは
α書き込みをマスクで描画、1未満のところはαを描画するように
したらいいんじゃない?
923デフォルトの名無しさん:2008/12/10(水) 08:43:40
>>917
そりゃーサンプルだし
924デフォルトの名無しさん:2008/12/10(水) 08:51:04
>>920
ParallaxOcclusionMappingってのが入ってるだろ
925デフォルトの名無しさん:2008/12/10(水) 12:30:15
>>919
質問が理解できないのを質問者のせいにしてはいけない

>処理の途中途中でダンプなりして実際にデータがどうなっているか確認
こんなこと言っている時点で質問の意味を理解していないのは明白だが。
こういう馬鹿ほど頼んでもいないのに自分にエスパー要求されていると思い込むんだよな〜。
馬鹿は回答、発言しなくていい。つーかするなウザイ。
926デフォルトの名無しさん:2008/12/10(水) 12:36:21
じゃあお前が回答してやれよw
927デフォルトの名無しさん:2008/12/10(水) 13:14:40
低脳薄知だから答えられない
だから現実で煽られる
その仕返しをしたい
928デフォルトの名無しさん:2008/12/10(水) 14:03:46
自分の思った回答がこないで馬鹿にされるとすぐキレる質問者って多いよな。
質問する奴は自分が低脳であることを自覚してからきてくださいな。
929デフォルトの名無しさん:2008/12/10(水) 14:19:43
低脳だから自分にはわかりませんって素直に言えない奴らってかわいそうだよな
930デフォルトの名無しさん:2008/12/10(水) 14:25:21
質問者が低脳であることは聞くまでもないし言うまでも無い
にも関わらず低脳低脳と吊るし上げるためにここにいる奴らもろくなもんじゃないが
931929:2008/12/10(水) 14:28:30
ああ、そうやって馬鹿にする現実でストレス溜められてる底辺のこと言ったんだよ、俺も
932デフォルトの名無しさん:2008/12/10(水) 14:32:05
自分にはわかりませんって素直に言ったら、
わからないならレスしないでくださいって言われると思うんだが、
どうすりゃいいんだ?
言った方がいいのか言わない方がいいのか
933929:2008/12/10(水) 14:39:02
言ったらいいと思うよ
934デフォルトの名無しさん:2008/12/10(水) 14:48:43
>>915-916
Paint.NETもアルファ値を直接書き込めるわけじゃないじゃないですか
RGB=(255,0,0)としてペンでピクセルを打つように
RGBA=(255,0,0,128)としてペンでピクセルを打ったり領域を塗りつぶししたいわけですよ。
アルファマスクつくってツールで結合してって二度手間じゃないですか。
935デフォルトの名無しさん:2008/12/10(水) 14:56:02
そいつぁ使い方知らないだけだ
936デフォルトの名無しさん:2008/12/10(水) 15:10:35
てか何でオマイラ答えるのw
ソフトってありますか?
このスレ関係ないじゃん。

自分で作れよ1時間もあれば作れるだろw
937デフォルトの名無しさん:2008/12/10(水) 15:15:32
>>935
アルファブレンドと勘違いしてませんか?
938デフォルトの名無しさん:2008/12/10(水) 15:17:35
まあ知らないならいいんだよ
939デフォルトの名無しさん:2008/12/10(水) 15:22:56
>>938
低脳だから自分にはわかりませんので教えてください
940デフォルトの名無しさん:2008/12/10(水) 15:27:44
>>934
GDIPlus
941デフォルトの名無しさん:2008/12/10(水) 15:33:13
池沼はWin32API質問スレへ帰ってくれ
942デフォルトの名無しさん:2008/12/10(水) 15:43:18
どうでもいいけど質問回答するわけでもないのに必死に自己主張してる
>>929は何がしたいんだろう
943デフォルトの名無しさん:2008/12/10(水) 15:45:25
Paint.NETでペンでアルファ値を描く方法だけ教えてください
できるんですよね?
944デフォルトの名無しさん:2008/12/10(水) 15:48:52
塗り直しツールを使う
945デフォルトの名無しさん:2008/12/10(水) 15:51:16
つーかなんでこんなムカつく聞き方するやつに説明しなきゃならんのだ
946デフォルトの名無しさん:2008/12/10(水) 15:59:30
できませんよ。DirectXと関係ないですからでてってください。
947デフォルトの名無しさん:2008/12/10(水) 16:07:59
>>944
できないんですが
948デフォルトの名無しさん:2008/12/10(水) 16:10:32
だから言ってるじゃないですか。DirectXと関係ないですからでてってください。
949デフォルトの名無しさん:2008/12/10(水) 16:22:05
法線マップのbmpに直接alpha値としてハイトマップを描き込みたいので一応DirectX関係あります
950デフォルトの名無しさん:2008/12/10(水) 16:25:23
ここにいるのはそんなことわからない底辺+低脳だけですよ
知ってたら教えてますよ
知らないから強がってるんです
951デフォルトの名無しさん:2008/12/10(水) 16:26:59
>>950
君はちょっと黙ってて
今俺が質問してるんだから
952デフォルトの名無しさん:2008/12/10(水) 16:30:00
>>951
自演乙
953デフォルトの名無しさん:2008/12/10(水) 16:48:18
で、直接アルファ値描き込めるのってないんですか?
ここの住人はハイトマップにも無縁なDirectX APIをこねくり回しているだけの人達なの?
954デフォルトの名無しさん:2008/12/10(水) 17:20:51
そうですからでてってください。
955デフォルトの名無しさん:2008/12/10(水) 17:22:30
おまえはこのスレの管理人か
956デフォルトの名無しさん:2008/12/10(水) 17:23:16
そうですからでてってください。
957デフォルトの名無しさん:2008/12/10(水) 17:24:00
ただの荒らしか
958デフォルトの名無しさん:2008/12/10(水) 17:28:20
すぐ質問者にキレるいつものヒス野郎だろ。
よほどリアルでストレスが溜まっているのか何なのか。
959デフォルトの名無しさん:2008/12/10(水) 17:31:40
頓珍漢な質問し続けたらストレスで早死にしそうw
損な性分だねw
960デフォルトの名無しさん:2008/12/10(水) 17:32:47
頼んでもいないのにご苦労なこった
自意識過剰なんだろうよ
961デフォルトの名無しさん:2008/12/10(水) 17:34:39
いっとくけどオレは運個スレを田てたほどのけんりょく遮那んぜだ
どげざしてどげざしろ
962デフォルトの名無しさん:2008/12/10(水) 17:38:14
>>961
大変申し訳ございませんでした!!
運個スレを田てたほどのけんりょく遮那んぜとは露知らず・・・
どうか直接アルファ値描き込めるソフトを教えてくださいませんか!?
963デフォルトの名無しさん:2008/12/10(水) 17:39:52
ないなら作ればいいんじゃね?
964デフォルトの名無しさん:2008/12/10(水) 17:47:01
初心者スレで質問してる低脳の分際ですぐ回答者にキレるなよ
自分の望む質問、回答じゃなければスルーするぐらいの度量は備えとけ
965デフォルトの名無しさん:2008/12/10(水) 17:49:28
>>962
ここはプログラムスレであってソフトウェアスレじゃないよ
そんな事も理解してないから周りから馬鹿にされんだよ
966デフォルトの名無しさん:2008/12/10(水) 17:50:40
>>963
仕方ないそうするか
2次元スカルプトツールみたいな感じでピクセルごとに描くより使いやすそうだ
まったく、ここの住人ときたらハイトマップも使えないのか
でてってくださいとは笑わせる
967デフォルトの名無しさん:2008/12/10(水) 17:51:09
さようならー
968デフォルトの名無しさん:2008/12/10(水) 17:52:05
>>965
で?

ちなみに作ったソフトは公開しませんので
969デフォルトの名無しさん:2008/12/10(水) 17:52:54
>そうですからでてってください。
>さようならー

・・・ガキの喧嘩かっつの
970デフォルトの名無しさん:2008/12/10(水) 17:53:33
そんな涙目にならんでも
971デフォルトの名無しさん:2008/12/10(水) 17:55:09
しかし、一つのスレ違い質問の回答を聞き出すために
ここまで自演するとは、ある意味すごいな
972デフォルトの名無しさん:2008/12/10(水) 17:56:13
>>971
だなw
激しく同意
973デフォルトの名無しさん:2008/12/10(水) 17:57:40
>>969-970
( ・∀・ )
974デフォルトの名無しさん:2008/12/10(水) 18:22:59
次スレまだ?
975デフォルトの名無しさん:2008/12/10(水) 18:25:12
質問者も回答者も大人気ない人達ばかりなので
もうスレは立てません。
976デフォルトの名無しさん:2008/12/10(水) 18:28:11
次スレのテンプレには「DirectX API以外の話題厳禁」と加えておいたほうがいいな
シェーダや数学の話題も板違いなので厳禁
977デフォルトの名無しさん:2008/12/10(水) 18:35:44
了解
978デフォルトの名無しさん:2008/12/10(水) 18:37:46
体裁かえると馬鹿が乱立させるからやめたほうがいい
979デフォルトの名無しさん:2008/12/10(水) 18:39:13
今よりはマシだ。
980デフォルトの名無しさん:2008/12/10(水) 18:40:27
【C++】 DirectX初心者質問スレ Part20 【C】
ttp://pc11.2ch.net/test/read.cgi/tech/1228901973/
981デフォルトの名無しさん:2008/12/10(水) 18:42:45
いかに人を馬鹿にするかしか考えていない、978のような高慢な回答者も排除できるしな
982デフォルトの名無しさん:2008/12/10(水) 18:45:39
荒れる原因のほとんどは、スルーできないヒステリック回答者のせい。
早くストレスで早死にしてください^^
983デフォルトの名無しさん:2008/12/10(水) 18:45:51
馬鹿と言われてヒス起こす質問者も排除できるしな
984デフォルトの名無しさん:2008/12/10(水) 18:48:00
人を馬鹿にするかしか考えていない、>>983のような高慢な人種も排除できるしな
985デフォルトの名無しさん:2008/12/10(水) 18:48:25
回答者も質問者も同じぐらいの知識量だからな。実際
986デフォルトの名無しさん:2008/12/10(水) 18:48:39
次スレからは、馬鹿、ヒス、ストレス、早死に禁止な
書き込んだ奴は荒らしのヒステリック質問者回答者ってことで
987デフォルトの名無しさん:2008/12/10(水) 18:49:35
高慢、排除も禁止な。コーマンあるいはマンコ、排卵ならOK
988デフォルトの名無しさん:2008/12/10(水) 18:50:03
などと意味不明な自分ルールを発しており
989デフォルトの名無しさん:2008/12/10(水) 18:53:32
Kicked any wall at small egg.
990デフォルトの名無しさん:2008/12/10(水) 18:53:37
馬鹿が出てくる前にとっとと埋めるか
991デフォルトの名無しさん:2008/12/10(水) 18:55:42
馬鹿にされてよっぽどくやしかったのかな
カワイソス
992デフォルトの名無しさん:2008/12/10(水) 18:56:46
馬鹿は自分のことを馬鹿と思っていない
993デフォルトの名無しさん:2008/12/10(水) 18:57:32
早く埋めろよグズ
994デフォルトの名無しさん:2008/12/10(水) 19:03:07
お前が責任もって埋めろよ
995デフォルトの名無しさん:2008/12/10(水) 19:07:30
>>992
鏡見て言うなよ
996デフォルトの名無しさん:2008/12/10(水) 19:11:16
ペンでアルファ値を描き込めるソフト(アルファブレンドではなくアルファ値を指定したい)ってないですか?
997デフォルトの名無しさん:2008/12/10(水) 19:14:54
Photoshopならアルファチャンネルで書き込めばいいだけですよ
998デフォルトの名無しさん:2008/12/10(水) 19:19:26
フリーソフトでは無いのですか?
Paint.netというソフトでできるらしいのですが
999デフォルトの名無しさん:2008/12/10(水) 19:19:32
この質問者はチャンネルという言葉自体知らん低脳なんだよ
とっとと自分で作る作業に戻れ
1000デフォルトの名無しさん:2008/12/10(水) 19:20:32
\(^o^)/オワタ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。