トップページ⇒tech
1001コメント275KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2008/10/25(土) 22:55:11
※回答する人も、質問する人も必ず読んでください

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

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

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

【C++】 DirectX初心者質問スレ Part18 【C】
http://pc11.2ch.net/test/read.cgi/tech/1216270204/
0002デフォルトの名無しさん2008/10/25(土) 22:55:53
>>1
乙
>>2
乙
>>3
乙
0003デフォルトの名無しさん2008/10/25(土) 23:04:28
Zって言われちゃった
0004デフォルトの名無しさん2008/10/25(土) 23:07:20
スプライトとサーフォースはどっちを使えばいいの
?
0005デフォルトの名無しさん2008/10/25(土) 23:29:53
サーフォース?
ダークサイドの力は強力なのか?
0006デフォルトの名無しさん2008/10/25(土) 23:37:53
さーふぇーすかな?かな?
0007デフォルトの名無しさん2008/10/26(日) 00:20:25
スプライト自作とか車輪の再開発だろ
0008デフォルトの名無しさん2008/10/26(日) 01:23:30
×スプライト
○スプライト操作用インターフェース

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


0013デフォルトの名無しさん2008/10/26(日) 05:50:38
サイズに関してはビューポートいじればいいだけだから問題ないが
ピクセルの補間が問題になる
ウィンドウ解像度を可変にするのなら補間をしないと見れたものじゃないので
最初からピクセル補間ありで作ったほうがいい
0014デフォルトの名無しさん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;
}
頂点フォーマットは変換済みのものを使っています。処理自体はシェーダの方が早そうなので何とか
利用したいんですが・・・
0015デフォルトの名無しさん2008/10/26(日) 11:33:05
ID3DXSpriteで奥行きを0以外にすると表示されなくなるのはどうして?
0016デフォルトの名無しさん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]));
}
0017デフォルトの名無しさん2008/10/26(日) 14:18:24
おーい
0018デフォルトの名無しさん2008/10/26(日) 16:36:57
>>15
投影済みの座標に奥行きもクソもないだろ
0019デフォルトの名無しさん2008/10/26(日) 19:11:07
>>14
質問とは関係ないけど、FilterのNONEはMipFilterを無効にするときだけに使うもので、
MagFilterとMinFilterをポイントサンプリングにしたいならPOINTだと思うが。
あと、ラスタースクロール以外ならAddressU,VはWrapよりClampかな。

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

↓managedだが基本的に一緒な
ttp://www.atelier-blue.com/program/mdirectx/3d/3d01-21.htm
0021デフォルトの名無しさん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 です
0022デフォルトの名無しさん2008/10/26(日) 20:03:11
libがリンクされてない予感
0023デフォルトの名無しさん2008/10/26(日) 20:16:19
libがリンクされてない場合どうすればいいのでしょうか・・・?
それとプログラムを書くのに「はじめての3Dゲーム開発」って本を
見て書いてるんですが、その本だとd3dx9dt.libというライブラリを使っているのに、
sdk9.0cにそれが入ってないので d3dx9.lib と d3dx9d.libというのに書き換えてる(名前が似てるから)
んですがそれと何か関係あるでしょうか?
0024デフォルトの名無しさん2008/10/26(日) 20:22:20
d3d9.libとd3d9x.libのリンク、およびmain.cppの#define MAIN_CPPを
include文より上に持っていけばいい。
0025デフォルトの名無しさん2008/10/26(日) 20:25:08
おっと、xの位置間違った。
まあそのlibをリンクしてるなら、defineの位置替えるだけでいけると思うよ
0026デフォルトの名無しさん2008/10/26(日) 20:25:40
>>23-24
解決しました。ありがとうございます。
確かにMAIN_CPPの定義があとじゃ意味ありませんでした
0027デフォルトの名無しさん2008/10/26(日) 22:05:43
スプライトが遅いって何年前の話だよw
0028デフォルトの名無しさん2008/10/26(日) 22:20:08
突然出てきて、話の流れと全く無関係で意味不明なことを口走る、
>>27みたいな馬鹿の脳味噌には、やはりウジが涌いているんだろうか?
0029デフォルトの名無しさん2008/10/26(日) 22:21:37
DirectXを始めてたいのですが、Cがわかればできるでしょうか?
C++でやってるところが多いようなので。
0030デフォルトの名無しさん2008/10/26(日) 22:24:31
COMの使い方がわかればおk
0031デフォルトの名無しさん2008/10/26(日) 22:29:06
>DirectXを始めてたいのですが
過去形に希望をもたれても、既に始めていないのなら成立し得ない。
よって無理。
0032デフォルトの名無しさん2008/10/26(日) 22:34:44
始めたいでした
0033デフォルトの名無しさん2008/10/26(日) 22:37:56
DirectXってC言語でもコンパイルできるようになってるんじゃなかったっけ
0034デフォルトの名無しさん2008/10/26(日) 22:52:12
>>29
最短コース

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

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


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

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

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

ソースをあげておきます。DLキーは1234です
このファイルには入れ忘れていましたが Chips.x は用意してコンパイルしています
ttp://www1.axfc.net/uploader/He/so/152246
0055デフォルトの名無しさん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のパフォーマンス特性と適合していないから遅い
の二種類と,
・自分の望むパフォーマンスが達成できているからこれ以上の最適化は不要
・自分の望むパフォーマンスが(ハードウェア上は可能なのに)達成できていないから一層の最適化が必要
の二種類の組み合わせに集約されるはずで,なまじメソッドの格付けみたいな方向に議論を持って行くと誤解が誤解を呼ぶことになりかねませんのでご
0056デフォルトの名無しさん2008/10/27(月) 21:28:25
>>54
デバイスを作成する前に読み込めるわけがない
0057デフォルトの名無しさん2008/10/27(月) 21:40:09
>>21
本を見てやってるみたいだが
最初からちゃんと読むことをお勧めする

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

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

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

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

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

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

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

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

現実に使ってある
計算が楽になるらしい。
3Dオブジェクトを使わないとしても3D効果を使うからかな。
0088デフォルトの名無しさん2008/10/30(木) 17:57:08
>>85
はじめてのういんどうずぷろぐらむ びじゅあるしーぷらすぷらす
ってのがおすすめだが
入手困難な上にVC6でのサンプルなんでVSで動かすのが面倒
しかしこれより簡単なWin32APIの本は
俺は見たことがないので
手に入るならおすすめ
0089デフォルトの名無しさん2008/10/30(木) 17:58:35
3D効果もそうだし
描画順番をZソートに任せちゃうとか
0090デフォルトの名無しさん2008/10/30(木) 18:46:24
これからはDirect2Dの時代なんだぜ
0091デフォルトの名無しさん2008/10/30(木) 18:50:06
Direct3D 10.1にのっかるのか
0092デフォルトの名無しさん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);
0093デフォルトの名無しさん2008/10/30(木) 22:54:02
>>87
アホですか
3D効果なんて3Dの勉強をすりゃいいだけの話だろ
2Dゲームとはなんの関係もないよ
0094デフォルトの名無しさん2008/10/30(木) 22:57:06
ラざいスレだな
0095デフォルトの名無しさん2008/10/30(木) 22:58:29
3D効果が使われた時点でそれは3Dゲームなのだよ
0096デフォルトの名無しさん2008/10/30(木) 23:00:15
Asso
0097デフォルトの名無しさん2008/10/30(木) 23:01:45
どうでもいいので>>92の質問に早く答えなさい
0098デフォルトの名無しさん2008/10/30(木) 23:03:44
>>92
Rectの意味を理解していないという事はわかった
0099デフォルトの名無しさん2008/10/30(木) 23:51:27
>>71も答えてくだされ
0100デフォルトの名無しさん2008/10/31(金) 00:13:27
Zバッファクリア?
0101デフォルトの名無しさん2008/10/31(金) 00:28:43
先に描画した物を通過してブレンドされるのとZバッファって何か関係があるんですか?
良かったら教えてください
0102デフォルトの名無しさん2008/10/31(金) 00:42:05
ステートどんなのあるか調べるんだ!
0103デフォルトの名無しさん2008/10/31(金) 03:15:06
とりあえず
まともな回答が帰ってこない人は
質問の仕方が悪いだけだからソース晒せばいいと思うよ
0104デフォルトの名無しさん2008/10/31(金) 03:41:35
>>101って前スレのマルチ?
0105デフォルトの名無しさん2008/10/31(金) 07:44:36
回答側が根性腐ってるだけだろwww
0106デフォルトの名無しさん2008/10/31(金) 09:28:29
質問の仕方が悪いが悪いっていうか
単純に経験不足なんだろうけど質問のポイントがわかってないのは多い
そんな聞かれ方してもぱっと思いつくだけで原因がいくつもありそうだったり
そんなのやり方が悪い、としか言いようがないものだったり
難しく考えすぎて実は単純な凡ミスが原因だったり
確かにソースを上げてしまうのが一番手っ取り早いってのはある
0107デフォルトの名無しさん2008/10/31(金) 11:23:38
ttp://books.google.co.jp/books?q=4798013161
この本ってプレビューあったんだね
0108デフォルトの名無しさん2008/10/31(金) 12:31:04
現在フルスクリーンにて作成しているのですが
フルスクリーンで起動中他のアプリケーションに制御を
移した後
もう一度フルスルリーンに切り替えると
なにも表示されないのですが
これはどういった対応をすればよいのでしょうか?
0109デフォルトの名無しさん2008/10/31(金) 12:37:10
デバイスロスト
0110デフォルトの名無しさん2008/10/31(金) 12:46:20
>>108
それに限らず 
解像度が変更されたり
スクリーンセーバーが起動したりするると
D3Dデバイスが消失してしまう
これはフルスクリーンではなくウインドウモードでも消失することがあるから注意
よってデバイスを作り直さなければならない
そしておまいは其の程度の解説も載っていない
参考書やHPで勉強するのはやめるべきだと思う


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

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

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

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

その結果が今の3D技術の「海外>>>越えられない壁>>>日本」になって現れていると思う。
INTELの845をサポートしつつ3Dゲームを作るとかわけわからん事言い出すヤツもたまにいる。
0135デフォルトの名無しさん2008/11/01(土) 01:38:02
PCに関しては英語を読めない馬鹿が多いからだろwww
0136デフォルトの名無しさん2008/11/01(土) 01:53:59
なんかそれって外国のほうが初めから
技術高いって言ってることになるぞ?
0137デフォルトの名無しさん2008/11/01(土) 02:03:07
海外製のネトゲとかで810で動作してたのは結構あった気がするけど
当時810が普及しすぎて対応せざるを得なくなってたのは日本だけじゃない気が
0138デフォルトの名無しさん2008/11/01(土) 02:13:36
まぁ、コンシューマ(PS3、Wii)等を見れば、そういった差は無いことが一目瞭然なわけで。
単純に国の需要の問題だと思うけど。
ゲームなんかは特に、派手な見た目が喜ばれるのは最初の30分くらい。
後は操作性の方が全然優先される。
0139デフォルトの名無しさん2008/11/01(土) 09:32:31
日本は2.5D

ttp://www.teatime.ne.jp/Set1.html
0140デフォルトの名無しさん2008/11/01(土) 10:51:53
その最初の30分が売れるためには重要なのかも知れないね。
0141デフォルトの名無しさん2008/11/01(土) 10:56:32
GBAとかDSの2Dゲー見てると、2D表現は日本のほうがこなれてるなーって思う
0142デフォルトの名無しさん2008/11/01(土) 11:14:21
2Dゲーなんて俺の触手(食指)が動かないぜ
0143デフォルトの名無しさん2008/11/01(土) 13:06:17
DirectXってもう9や10から入るのはつらいよな
5や7の時代は良かったのに・・・
0144デフォルトの名無しさん2008/11/01(土) 13:43:38
9からのほうが楽だろ・・・。俺的には10のほうが自由でもっと楽だけど。
0145デフォルトの名無しさん2008/11/01(土) 14:44:12
楽なのは 10>9>8>7>他 だと思うけどな
0146デフォルトの名無しさん2008/11/01(土) 15:03:34
>>145
情報の量は逆だね 10<9<8<7
0147デフォルトの名無しさん2008/11/01(土) 16:06:31
今後Vista以降のOSを使えばDX9世代以前のGPUでもDX10を使えるようになるみたいだけど
果たしてどれだけ意味があるのか
0148デフォルトの名無しさん2008/11/01(土) 16:11:47
>>146
そりゃ歴史が浅いほど情報は少ないだろ。
ただDirectX10に関しては9までのと違って細かいメーカールールとかなくてかなり扱いやすいけどね。
Vistaはもう仕方ないのでWindows7でDirectX11と一緒にブレイクするのを期待する。

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





















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

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

コスト優先ならテクスチャを、見た目優先ならZを
0169デフォルトの名無しさん2008/11/02(日) 00:50:21
一枚のテクスチャにして、欲しい絵の部分をRECTで切りだせばいいだろ
0170デフォルトの名無しさん2008/11/02(日) 00:57:02
>>167
まず・お前が知識つけろよw
ttp://www.plustarnet.com/aspil/Programming/ID3DXSprite.htm
0171デフォルトの名無しさん2008/11/02(日) 01:06:15
今どきSetTextureのコストとか…
0172デフォルトの名無しさん2008/11/02(日) 01:31:55
SetTextureのコストは変わらないだろ?
転送速度なんだから
0173デフォルトの名無しさん2008/11/02(日) 09:10:24
ひんと 回数
0174デフォルトの名無しさん2008/11/02(日) 09:21:13
テクスチャが一回ずつしか使われてなかったらソートの手間損だろ
0175デフォルトの名無しさん2008/11/02(日) 09:40:20
SetTexture()のコストなんてどうでもいいが、
それに伴うDrawPrimitive()のコストは洒落にならない。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最近のDirect3Dで2Dだけを扱うよりも数倍面倒。
デバイスの初期化だけで100行くらいのコードになるし。
0260デフォルトの名無しさん2008/11/06(木) 01:50:16
そこまでやる気ないのだとしたら
ゲームライブラリとか公開してる人がいるからそういうのを使う方がいいかも
0261デフォルトの名無しさん2008/11/06(木) 07:51:25
>>255
モニターの設定を取得してそのカラー設定に応じて自分で点を打っていく
RGB888( )とかRGB565( )みたいなマクロ作っとくといいよ
0262デフォルトの名無しさん2008/11/06(木) 10:02:55
線を引きたいなら1ドットのビットマップを引き伸ばして回転させて線にするとか
0263デフォルトの名無しさん2008/11/06(木) 13:15:43
>>262
DirectDrawに回転ないってw
0264デフォルトの名無しさん2008/11/06(木) 13:51:53
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=5493f76a-6d37-478d-ba17-28b1cca4865a&DisplayLang=en
DirectX Software Development (November 2008)
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en
DirectX End-User Runtime Web Installer
0265デフォルトの名無しさん2008/11/06(木) 13:52:38
>DrectDrawに相当するもの
って書いてあるからDDじゃないと思ってた
0266デフォルトの名無しさん2008/11/06(木) 14:06:04
>>255の言いたい事は、2Dグラフィクを扱う方法と考えるべきだな。
頭の悪い奴は、DirectDrawでできることというお馬鹿な解釈をする。
>>259や>>263のようにね。
0267デフォルトの名無しさん2008/11/06(木) 15:42:03
DirectDrawで線を引く機能があっても意味ねー。
ゲームの画面が線で描かれることは無い。
すべて絵だし。ビットマップだし。
0268デフォルトの名無しさん2008/11/06(木) 15:45:37
まー解説サイトも板ポリゴン作って拡大回転テクスチャをごにょごにょのレベルまでだけどな

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

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

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

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

そうでしたら、違うブラウザーでも駄目でした。
同じような現象が現れた人はいないでしょうかね・・・。
0279デフォルトの名無しさん2008/11/06(木) 19:41:24
ウイルス対策ソフトをアンインストールしてから出直せ
0280デフォルトの名無しさん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はインストールしましたし、ソースはコピペなので完璧なはずです。
何がいけないのでしょうか?
0281デフォルトの名無しさん2008/11/06(木) 23:23:36
Win32アプリケーションじゃなくてWin32コンソールアプリケーションとしてプロジェクトを作成してる。
DirectXと関係ねー話だからよく分らんかったらVSのスレにでも池
0282デフォルトの名無しさん2008/11/07(金) 11:35:23
シェーダで隣のテクセルなどを参照する方法ってありますか?
0283デフォルトの名無しさん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は既にわかっていて
外部から与えられるものとする
0284デフォルトの名無しさん2008/11/07(金) 12:40:54
シェーダで1.0f/TEX_SIZE_Xを計算させると精度で泣くよ。
TEX_SIZE_Xを与えるついでに逆数も与えた方がいい。
0285デフォルトの名無しさん2008/11/07(金) 12:48:52
>>283
なるほど、ありがとうございます。
自分がtex2Dについてよく理解していなかったようです。すいません。
0286デフォルトの名無しさん2008/11/07(金) 13:34:15
逆数を与えるとは?
0287デフォルトの名無しさん2008/11/07(金) 14:45:15
質問させていただきます。
DirectXをつかってC++でゲームを作る場合、オブジェクト指向でClassを作るというやり方は一般的ではないのでしょうか。
ちょっとしたゲームの入門書を読んでみても、Classは出てきておらず、疑問に思いました。
Javaでコードを書いていた期間が長く、Class 自分、Class 敵 、とクラスを作っていこうと考えていたのですが処理が遅くなるなどのデメリットが生じるでしょうか?
0288デフォルトの名無しさん2008/11/07(金) 15:00:11
今時クラスを使わない方が少数派だよ。仕事ならなおさらね。
その程度のリスクを気にするような時代じゃない

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

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

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


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

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



0318デフォルトの名無しさん2008/11/08(土) 04:32:11
どこの社内ですか?
0319デフォルトの名無しさん2008/11/08(土) 05:23:00
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=886acb56-c91a-4a8e-8bb8-9f20f1244a8e&DisplayLang=en
DirectX End-User Runtimes (November 2008)
0320デフォルトの名無しさん2008/11/08(土) 13:23:54
乗り遅れたが・・・
趣味→クラス使っても使わなくても
仕事→クラスを使わないとえらいことになりそう

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

( ´∀`)
   ↓
(  ´ ∀ ` )

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



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

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

頂点バッファを設定

loclk

頂点バッファを書き込み

unlock

SetStreamSource

SetFVF

DrawPrimitive

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

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

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

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

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

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

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

D3DXMatrixRotationZ(&mwork, m_rotate.z);

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

まぁ、よくある話だな
0452デフォルトの名無しさん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が定義されてないのが原因かな?と
以上の情報からどういった事が考えられますか?
0453デフォルトの名無しさん2008/11/14(金) 19:28:19
ここはDirectX初心者であって、統合環境初心者スレじゃない。
ライブラリの指定も出来ない奴はDirectX云々以前の問題。
0454デフォルトの名無しさん2008/11/14(金) 19:46:29
DirectX勉強する前に、C++の勉強をする
これマジおすすめ
0455デフォルトの名無しさん2008/11/14(金) 20:23:32
LIBのディレクトリ指定だけで完了と思い込んで個別のLIB指定しないのは
外部のLIB初めて使う人か
0456デフォルトの名無しさん2008/11/14(金) 20:35:04
とはいえC++だけの勉強だと
ライブラリの追加体験しないこともあるしな

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

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

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

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

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

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

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

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

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

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

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

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

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

ライトを計算させて 通常に表示させるにはどうすればいいんですか?
04694682008/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);
0470デフォルトの名無しさん2008/11/14(金) 22:45:17
>>461です
この間変な音がしたり、PC画面にラグが出たりしてたので、OSがこわれているのかもしれません・・・
その場合どうすればいいんですか?
0471デフォルトの名無しさん2008/11/14(金) 22:46:20
>>467
無理でしょ
できる道理がわからない
0472デフォルトの名無しさん2008/11/14(金) 22:47:19
パソコン変えろよカス
全然DirectXと関係ない質問だ
もう二度とくるなよ
0473デフォルトの名無しさん2008/11/14(金) 22:48:23
>>470
新しいPCを買う
(自作orノートPCの方向は無しで
趣味ゲーPGでノートPC買う人がいるけど
何回も実行繰り返してるとノートだとなんかグラボの調子悪くなるなーっての俺だけ?)
0474デフォルトの名無しさん2008/11/14(金) 22:51:51
>>464>>473さん返答アリでした
他の旧バージョンDirectXはDLインスコできたのですが、関係なさそうですね
0475デフォルトの名無しさん2008/11/14(金) 22:56:38
9.0cなんてダウンロードできるところからいって見つかりにくいし
やめたほうがいいんじゃね?
情報の共有者も少ないことを意味してるよ
0476デフォルトの名無しさん2008/11/14(金) 22:57:34
9.0cがよかったのはなんか他のバージョンがdllを配ってくれなかった頃だけど
今はパックで全部くばってるからつかう意味ないよ
04774632008/11/14(金) 23:09:47
>>471
出来ないかもしれないですが
垂直同期待ちを正確に行えるなら理論上は可能かなと。

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

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

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

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

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

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

まぁそこまで細かく気にするならゲームなんだしフルスクリウーンでやれや、って事だろう。
0486デフォルトの名無しさん2008/11/15(土) 10:00:50
ウィンドウモードでゲームプレイする奴はその程度の事を気にしない
0487デフォルトの名無しさん2008/11/15(土) 10:06:43
試してみようと思ったら、俺のところでは全くティアリングが発生しない。
Vistaだからか?
0488デフォルトの名無しさん2008/11/15(土) 10:23:36
はやくおまいらの話についていきたい45歳秋
0489デフォルトの名無しさん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では一般的なのでしょうか?
0490デフォルトの名無しさん2008/11/15(土) 12:01:57
別に好きな方で問題ない
0491デフォルトの名無しさん2008/11/15(土) 12:05:10
スレッド
0492デフォルトの名無しさん2008/11/15(土) 12:28:58
>>489
DirectつながりでDirectInput使う
04934632008/11/15(土) 17:27:54
>>484
D3DQUERYTYPE_EVENTは自分の環境では作成できないです。
走査線がクライアント領域より下にいった直後にPresentしても多少
境界線の位置がかわる程度で違いはほとんどありませんでした。

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

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

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

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

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

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

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

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

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

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

その部分の補足には

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

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

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

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

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

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

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

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

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

D3DXMATRIX mtx;

D3DXMatrixIdentity(&mtx);

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

d3ddevice->SetTransform(&mtx, 0);

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

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

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

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

>>519
ご忠告どうもです。
もうすこし詳しく調べてみます。
0524デフォルトの名無しさん2008/11/16(日) 17:10:14
>>520 VRAM
0525デフォルトの名無しさん2008/11/16(日) 20:46:13
ちょっとお聞きしたいのですが、よくゲームの動作環境で
VRAM幾つ以上というようなのがありますよね
自作ゲームの動作環境にそういう情報を明記したいのですが、そのために
現在PCで使われているVRAM容量を調べるにはどうすればいいのでしょうか?
使用VRAM情報をチェックする関数とかはありますか?
0526デフォルトの名無しさん2008/11/16(日) 20:52:43
>>525
うん
0527デフォルトの名無しさん2008/11/16(日) 21:27:25
>>526
DirectX9なのですがなんという関数を使えばいいのでしょうか?
0528デフォルトの名無しさん2008/11/16(日) 21:41:40
>>527
GetAvailableTextureMem
だが、推定
BBXに「?」ってのが書いてある
0529デフォルトの名無しさん2008/11/16(日) 21:50:15
そこは遥か昔に閉鎖したぞ
0530デフォルトの名無しさん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
0531デフォルトの名無しさん2008/11/16(日) 22:03:27
>>529
いや、生きてるぜ
0532デフォルトの名無しさん2008/11/16(日) 22:41:37
今時はVRAMなんてほとんど基準にならんけどなー
05335252008/11/16(日) 22:56:06
レスありがとうございます。
>>523
LoadTextureをやる毎に使ってみました。
が、数値は70MBちょいぐらいで固定っぽいです。(ビデオカードのVRAMは96MB)

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

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

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

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

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

で、質問なんだけど、サンプルコードのライセンスってどこに書いてあるの?
卒論のためにコード書かなきゃいけないんだけど、カメラとかいちいち書くのが面倒だから
BasicHLSL10のサンプルを流用したいのよ。
*nixの世界みたいに、ルートディレクトリにはっきりとライセンス定義を置いておいてくれると有り難いんだけど……。
0542デフォルトの名無しさん2008/11/17(月) 12:05:55
別に三流学生の卒論コードなんてどうだっていいだろ
一般公開しなければ
0543デフォルトの名無しさん2008/11/17(月) 12:32:08
HLSLでsamplerオブジェクトを定義するとき
今まではtexture2DやtextureCUBEに関係なく"sampler"と書いていたのですが
textureに合わせてsampler2D, samplerCUBEにしたほうがいいのでしょうか?
違いや書き分ける意味はありますか?
0544デフォルトの名無しさん2008/11/17(月) 16:03:42
>>542
公開するから質問してるに決まってるだろ高卒
0545デフォルトの名無しさん2008/11/17(月) 17:28:01
公開しないでいいよ。君の糞コードなんて。
0546デフォルトの名無しさん2008/11/17(月) 17:51:58
D3DX〜は使ったら駄目って常識のはずなんだが
0547デフォルトの名無しさん2008/11/17(月) 18:00:27
ライセンスについて調べようと思ったら、まずは使用許諾書に目を通すものだが、
なんでその程度の、ごく当たり前のことをする程度の知能すら持ち合わせていないのかが謎。
0548デフォルトの名無しさん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ファイルとデータファイルを同梱すればとりあえず配布は大丈夫でしょうか?
一応そのやり方で自分の環境では動作したのですが、、、
05495482008/11/17(月) 20:48:54
ずっとDebugモードのプロパティいじってた\(^o^)/

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

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

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

隆煕四年八月二十九日

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

それよりツールウィンドウでもだしたほうがナンボか楽だぜ
0798デフォルトの名無しさん2008/11/29(土) 22:45:51
>>797
おまえらと一緒だなw
0799デフォルトの名無しさん2008/11/29(土) 22:46:42
managedみたいにすぐ消えるからそれでもおk
0800デフォルトの名無しさん2008/11/30(日) 07:16:25
Xファイルが真っ黒なんだけどなんで?
法線とAmbientが関係してるのは見たんだけど
TinyのサンプルはAmbientじゃないの?
0801デフォルトの名無しさん2008/11/30(日) 08:00:03
聞き方が悪い奴は答えない
0802デフォルトの名無しさん2008/11/30(日) 10:21:04
全くの初心者がゼロから始めるのに適したサイト教えてください
0803デフォルトの名無しさん2008/11/30(日) 10:45:28
>>802
そういうやつはサイトじゃなく本を買え
0804デフォルトの名無しさん2008/11/30(日) 11:07:33
そしてまた
書籍厨とWebサイト厨の論争が始まるわけですねわかります
0805デフォルトの名無しさん2008/11/30(日) 11:41:10
論争はいらん。本を読んでwebも見ろ。
0806デフォルトの名無しさん2008/11/30(日) 11:43:33
>>805
激しく同意
どっちかしか使わないなんていってる時点で不毛
Webで知識を広げて、本で深く追っていくといいかも
0807デフォルトの名無しさん2008/11/30(日) 11:45:49
この世はすべて金
金がすべて
書籍買う程度の金の無い奴はPCに触るな
0808デフォルトの名無しさん2008/11/30(日) 11:48:35
PC買えるんだから本は買えてるだろ。
月3万くらいなら本代にプールするだろ。
0809デフォルトの名無しさん2008/11/30(日) 12:32:22
月3万か
やっぱこのスレの住人は勉強してるな
俺も中学生のころは全財産を技術書に使ってたのに
何今の体たらく
0810デフォルトの名無しさん2008/11/30(日) 12:59:51
金を使っただけで分かった気になっちゃだめだよw
0811デフォルトの名無しさん2008/11/30(日) 13:03:22
逆に考えるんだ
書籍に金を掛ける必要がなくなるほど知識が身についたと
0812デフォルトの名無しさん2008/11/30(日) 16:40:59
P2Pの時代に金で買うとかw
情弱乙
0813デフォルトの名無しさん2008/11/30(日) 16:43:00
うんこ
0814デフォルトの名無しさん2008/11/30(日) 16:44:32
乞食自慢は勘弁しろよ…
0815デフォルトの名無しさん2008/11/30(日) 17:39:50
detours.lib(detours.obj) : warning LNK4099: PDB 'detours.pdbってリビルトするんですが解決方法ありませんか
0816デフォルトの名無しさん2008/11/30(日) 17:42:14
マルチ市ね
0817デフォルトの名無しさん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'に見つかりません。デバッグ情報がないものとして、オブジェクトにリンクします。これの意味と解決方教えてください
0818デフォルトの名無しさん2008/11/30(日) 17:54:04
ほっときゃいい
0819デフォルトの名無しさん2008/11/30(日) 17:54:50
無視でいいんすか?

0820デフォルトの名無しさん2008/11/30(日) 19:03:38
>>812 プログラミングの洋書なんぞほとんど流れてねーんだよハゲ
0821デフォルトの名無しさん2008/11/30(日) 19:05:32
いや
大人ならちゃんと買えよ
0822デフォルトの名無しさん2008/11/30(日) 19:11:55
GEMSとか電車で読むのにデータ化されても印刷すんの困るだろ・・・
0823デフォルトの名無しさん2008/11/30(日) 19:15:50
あんなもん電車で読めるわけねぇだろw
0824デフォルトの名無しさん2008/11/30(日) 19:17:18
むしろデータ化されてて
電車で読む分だけ印刷したほうが使えるじゃん
0825デフォルトの名無しさん2008/11/30(日) 19:20:05
>>822は低脳
0826デフォルトの名無しさん2008/11/30(日) 19:36:32
カバンに入れて読んでるが・・・
0827デフォルトの名無しさん2008/11/30(日) 20:32:55
エスパー発見w
0828デフォルトの名無しさん2008/11/30(日) 20:50:31
普通にデータのまま読んでるが何か。
0829デフォルトの名無しさん2008/11/30(日) 21:18:01
原書の古い奴は公開されてなかったっけ?GPUGEMSだっけ
0830デフォルトの名無しさん2008/12/01(月) 00:01:56
ああ、nVidia公式で公開中
0831デフォルトの名無しさん2008/12/01(月) 00:04:00
やっぱり長々と読むなら本じゃないとね。
0832デフォルトの名無しさん2008/12/01(月) 00:08:25
初めてプログラマブルシェーダ使ってみたんですが、なぜか何も描画されません
テクスチャ貼って描画してるだけの単純なプログラムです
一応プログラムとHLSLのファイルをうpしました
http://ossanloda.fam.cx/up/uploda1/src/ossan2515.zip.html
0833デフォルトの名無しさん2008/12/01(月) 00:13:28
よかったね。
0834デフォルトの名無しさん2008/12/01(月) 01:39:05
一つのプロセスでデバイスを複数作ったり、複数のウィンドウにDirectXで描画するにはどうすればいいんですか?
0835デフォルトの名無しさん2008/12/01(月) 01:59:54
デバイスの作成方法を基礎から勉強しようね
0836デフォルトの名無しさん2008/12/01(月) 02:13:42
デバイスを解放して作り直す場合、確保したリソースは解放すべき?するならデバイス解放直前が望ましいですか?
あと、ここにいる人は文字の描画はどういう解法でやってますか?ID3DXFont以外で
0837デフォルトの名無しさん2008/12/01(月) 02:17:03
COMも勉強しようね。
0838デフォルトの名無しさん2008/12/01(月) 02:18:52
普通はプログラム終了までデバイスは破棄しない
0839デフォルトの名無しさん2008/12/01(月) 02:19:24
o リソース開放せんとそもそも作り直せないよ。
o GetGlyphOutlineとかFreeTypeとか
0840デフォルトの名無しさん2008/12/01(月) 02:43:39
>>832
てこずったから、直接は教えない。
ちゃんとメソッドの戻り値をチェックすれば
一発でわかるよ。
0841デフォルトの名無しさん2008/12/01(月) 07:48:55
>>834
普通に2個作ればおk
0842デフォルトの名無しさん2008/12/01(月) 08:15:15
DXライブラリって良いですか?
0843デフォルトの名無しさん2008/12/01(月) 08:16:56
知らんがな

http://pc11.2ch.net/test/read.cgi/gamedev/1224923873/
0844デフォルトの名無しさん2008/12/01(月) 08:21:46
>>840
どの辺か、もうちょっと詳しく教えて頂けませんか?
0845デフォルトの名無しさん2008/12/01(月) 08:30:42
DirectInputで日本語を入力するにはどうすればいいの?
0846デフォルトの名無しさん2008/12/01(月) 08:36:19
本当にDirectInputでやるなら、キーボードから得られた情報を、
キーボードの種類を判別するところから、変換処理まで地道に自分で一つ一つ作っていくしかない。
0847デフォルトの名無しさん2008/12/01(月) 08:39:43
>>844
840じゃないけど
シェーダーに渡してる変換行列の変数の名前が
プログラムとシェーダーで一致してないぜ
0848デフォルトの名無しさん2008/12/01(月) 08:39:59
ゲーム機みたいに文字並べて選ばせたら
0849デフォルトの名無しさん2008/12/01(月) 08:48:15
CDXUTIMEEditBox
0850デフォルトの名無しさん2008/12/01(月) 08:51:15
>>847
ありがとうございます!!
0851デフォルトの名無しさん2008/12/01(月) 09:24:28
>>845
普通にWM_CHARひっかけろよ・・・
0852デフォルトの名無しさん2008/12/01(月) 23:48:49
こわれた にんげん はこぶよ れいきゅうしゃ れいきゅうしゃ

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

よだれを たらして わらうよ しんしょうしゃ ♪
0853デフォルトの名無しさん2008/12/02(火) 01:53:31
>>850
間違っています。
以上。
↓次どうぞ
0854デフォルトの名無しさん2008/12/02(火) 11:42:39
なんか変なのが湧いてるな
0855デフォルトの名無しさん2008/12/02(火) 14:51:48
↑とかな
0856デフォルトの名無しさん2008/12/02(火) 15:37:17
SampleBrowser(august2008)のEmptyProject10にtutorialのLightsなどをどのように適用すればいいのでしょうか。
DeviceCreated, FrameMove, FrameRender, DeviceDestroyedの関数内に書くようですけど
例えばLightsのどのコードをEmptyProject上に組み込んでいくかが分からないです。
EmptyProject上にTutorialソースを組み込んだファイルを参照できればいいのですが。
環境はVS2008を使用しています。
どうかよろしくお願いします。
0857デフォルトの名無しさん2008/12/02(火) 15:57:09
どうでもいい。
以上。
↓次どうぞ
0858デフォルトの名無しさん2008/12/02(火) 16:05:04
一つ一つの関数を調べて理解してけよ。
お前がどうしたいかなんて知ったこっちゃないんだよ。
0859デフォルトの名無しさん2008/12/02(火) 17:46:25
テラ異常者のすくつwww
0860デフォルトの名無しさん2008/12/02(火) 18:20:58
自分の思った答えが返ってこないとそうやってすぐ態度を変える
質問自体が異常者、幼稚園児並なのにな
0861デフォルトの名無しさん2008/12/02(火) 18:26:07
要はチュートリアルをDXUTで書き直したいってことだろ?
DXUTが分かってないなら使わなくていいよ
EmptyProjectに移植するのは素直にあきらめなさい。
たぶん、まだ理解が足りてない
分かってて聞いてるならSimpleSampleを参考に移植できるはず
0862デフォルトの名無しさん2008/12/02(火) 19:07:42
あれ気持ち悪いし入門者以外がわざわざ使うようなものじゃないだろ。
0863デフォルトの名無しさん2008/12/02(火) 19:38:59
質問なんですがシステムのファイルがないとDirectX診断ツールで表示されたんですがどうしたらいいですか?長文すいません。
0864デフォルトの名無しさん2008/12/02(火) 19:45:31
最新版でもインストールすれば?
0865デフォルトの名無しさん2008/12/02(火) 19:48:47
最新版をインストールしてもだめだったんです。システムファイルがないと表示されました。他に方法はないでしょうか?教えてください。
0866デフォルトの名無しさん2008/12/02(火) 19:52:53
OSでも再インストールすれば?
0867デフォルトの名無しさん2008/12/02(火) 19:57:02
分かりました。説明頂いてありがとうございます。
0868デフォルトの名無しさん2008/12/02(火) 20:03:19
http://www13.plala.or.jp/kmaeda/directx9/tinya2007.htm
このページに元のTiny4はWキーとかで歩く、走るが変更できるって書いてあるけどできなくないですか?
やってみてくれませんか?
0869デフォルトの名無しさん2008/12/02(火) 20:14:18
ぽめんできたわ
0870デフォルトの名無しさん2008/12/02(火) 20:56:37
通報先一覧

一水会
http://www.issuikai.jp/
大日本愛国党
http://www.geocities.co.jp/WallStreet/6551/
大行社
http://www.taikousya-sumera.com/
同血社
http://www23.tok2.com/home/douketusya/
日本青年社
http://www.seinensya.org/
関東塾
http://www.kantoujyuku.com/
菊水国防連合
http://www.geocities.co.jp/WallStreet/2211/
玄洋社 昭護連合会
http://www.syogo-rengou.jp/
皇國同志會
http://www.geocities.jp/koukokudoushikai/
皇國憂和会
http://www.geocities.jp/koukoku_y/
皇御国同盟
http://sumeragimikokudoumei.fc2web.com/
皇道維新連盟
http://www.k5.dion.ne.jp/~ishin/
鳥肌実
http://www.torihada.com/
0871デフォルトの名無しさん2008/12/03(水) 00:26:17
ソフトがどのDirectXのdll使ってるか調べる方法ってありまんすか
0872デフォルトの名無しさん2008/12/03(水) 00:34:10
dependency walker
0873デフォルトの名無しさん2008/12/03(水) 00:56:28
>>872ありがとうございます。
これで
0874デフォルトの名無しさん2008/12/03(水) 16:59:48
DirectInputDeviceで製品名取得したいんだけど、DIEnumDevicesCallbackの中でlpddiから取り出したら
「USB joystick」って言うどう見ても製品名じゃないのが取れてしまったんだが、何ででしょう?
IDirectInputDevice8から取得しようとすると、GetDeviceInfoが失敗してしまいます。
0875デフォルトの名無しさん2008/12/03(水) 17:42:59
その製品用のドライバをインストールしないで
Windows標準のドライバを使ってるから
0876デフォルトの名無しさん2008/12/03(水) 19:06:01
DirectXで、画像を読み込んでスプライトで表示したのですが、
どうしても元画像よりぼやけた感じになってしまいます。
元の絵をそっくりそのまま表示するにはどうすれば良いでしょうか?
画像は256x256で作ってあります。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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