【C++】 DirectX初心者質問スレ Part19 【C】
※回答する人も、質問する人も必ず読んでください
これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ
【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。
【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。
【C++】 DirectX初心者質問スレ Part18 【C】
http://pc11.2ch.net/test/read.cgi/tech/1216270204/
Zって言われちゃった
4 :
デフォルトの名無しさん :2008/10/25(土) 23:07:20
スプライトとサーフォースはどっちを使えばいいの ?
サーフォース? ダークサイドの力は強力なのか?
6 :
デフォルトの名無しさん :2008/10/25(土) 23:37:53
さーふぇーすかな?かな?
7 :
デフォルトの名無しさん :2008/10/26(日) 00:20:25
スプライト自作とか車輪の再開発だろ
×スプライト ○スプライト操作用インターフェース 人間のことを自動車といってるようなもんだな
別にスプライトの自作も可能だろ。
ええ…メッシュもメッシュ操作用インターフェースって言わないとだめなの?
昔のスプライトみたいに制限枚数以内なら負荷成無しみたいな特殊な処理されてるわけでもないんでしょ?
12 :
デフォルトの名無しさん :2008/10/26(日) 05:03:28
ある程度ゲームが形になってきた頃に 固定ウィンドウで作ってたものを可変に切り替える事は 可能でしょうか? (ウィンドウを可変にする事で 画面内のゲーム画像もサイズがウィンドウにあわせて変更可能?) 初めから可変を想定した場合、 ゲーム内の画像描写作成時もそれに合わせた構成の仕方が必要だったりしますか?
サイズに関してはビューポートいじればいいだけだから問題ないが ピクセルの補間が問題になる ウィンドウ解像度を可変にするのなら補間をしないと見れたものじゃないので 最初からピクセル補間ありで作ったほうがいい
サーフェイスに対しピクセル処理で、モノクロ化やラスタスクロール、セル平均を取る矩形モザイクなどを リアルタイムで処理しようと思って、ピクセルシェーダに手を出したのですが、Lockでやるのと違って 白黒にはなるのですがところどころに水平線のゆがみのような物がでてしまいます。シェーダはこんな感じです。 texture tex1; sampler texSampler = sampler_state{ Texture = <tex1>; MinFilter = NONE; MagFilter = NONE; MipFilter = NONE; AddressU = Wrap; AddressV = Wrap; }; float4 pixelS(float2 tex : TEXCOORD0 , float4 src : COLOR0) : COLOR{ src = tex2D(texSampler,tex)*src; float bright = src.r * 0.3f + src.g * 0.59f + src.b * 0.11f; src.r = bright; src.g = bright; src.b = bright; return src; } 頂点フォーマットは変換済みのものを使っています。処理自体はシェーダの方が早そうなので何とか 利用したいんですが・・・
15 :
デフォルトの名無しさん :2008/10/26(日) 11:33:05
ID3DXSpriteで奥行きを0以外にすると表示されなくなるのはどうして?
>>14 頂点座標の設定に誤りがあるのでは?
このままではないが、俺のはこんな感じだ。
void RenderFullScreenQuad( const vector4& srcTexCoords, rect_t destRect)
{
const DWORD fvf = D3DFVF_XYZRHW | D3DFVF_TEX1 | D3DFVF_TEXCOORDSIZE2(0);
struct Vertex
{
vector4f p;
vector2f t;
};
const Vertex vertex[] =
{
{ vector4f( destRect.left -0.5f, destRect.top -0.5f, 0.5f, 1.0f), vector2f( srcTexCoords.x, srcTexCoords.y)},
{ vector4f( destRect.right -0.5f, destRect.top -0.5f, 0.5f, 1.0f), vector2f( srcTexCoords.z, srcTexCoords.y)},
{ vector4f( destRect.left -0.5f, destRect.bottom -0.5f, 0.5f, 1.0f), vector2f( srcTexCoords.x, srcTexCoords.w)},
{ vector4f( destRect.right -0.5f, destRect.bottom -0.5f, 0.5f, 1.0f), vector2f( srcTexCoords.z, srcTexCoords.w)}
};
D3DDevicePtr->SetFVF( fvf);
D3DDevicePtr->DrawPrimitiveUP( D3DPT_TRIANGLESTRIP, //Primitivetype
countof(vertex)-2, //プリミティブの数
vertex,
sizeof(vertex[0]));
}
17 :
デフォルトの名無しさん :2008/10/26(日) 14:18:24
おーい
18 :
デフォルトの名無しさん :2008/10/26(日) 16:36:57
>>14 質問とは関係ないけど、FilterのNONEはMipFilterを無効にするときだけに使うもので、
MagFilterとMinFilterをポイントサンプリングにしたいならPOINTだと思うが。
あと、ラスタースクロール以外ならAddressU,VはWrapよりClampかな。
水平線のゆがみってのがスクリーンショットを見てみないと何とも言えんが、
元の画像とポリゴンの大きさとテクスチャ座標がマッチしてないんじゃないか?
縦が400の画像を398とか402とかのサイズで描画してるんじゃない?
20 :
デフォルトの名無しさん :2008/10/26(日) 19:15:23
libがリンクされてない予感
libがリンクされてない場合どうすればいいのでしょうか・・・? それとプログラムを書くのに「はじめての3Dゲーム開発」って本を 見て書いてるんですが、その本だとd3dx9dt.libというライブラリを使っているのに、 sdk9.0cにそれが入ってないので d3dx9.lib と d3dx9d.libというのに書き換えてる(名前が似てるから) んですがそれと何か関係あるでしょうか?
d3d9.libとd3d9x.libのリンク、およびmain.cppの#define MAIN_CPPを include文より上に持っていけばいい。
おっと、xの位置間違った。 まあそのlibをリンクしてるなら、defineの位置替えるだけでいけると思うよ
>>23-24 解決しました。ありがとうございます。
確かにMAIN_CPPの定義があとじゃ意味ありませんでした
27 :
デフォルトの名無しさん :2008/10/26(日) 22:05:43
スプライトが遅いって何年前の話だよw
突然出てきて、話の流れと全く無関係で意味不明なことを口走る、
>>27 みたいな馬鹿の脳味噌には、やはりウジが涌いているんだろうか?
DirectXを始めてたいのですが、Cがわかればできるでしょうか? C++でやってるところが多いようなので。
COMの使い方がわかればおk
>DirectXを始めてたいのですが 過去形に希望をもたれても、既に始めていないのなら成立し得ない。 よって無理。
始めたいでした
DirectXってC言語でもコンパイルできるようになってるんじゃなかったっけ
>>29 最短コース
C → C++ → Win32API → DirectX
Win32APIは猫でもわかるWindowsプログラミングのメモ帳もどきまでやってるけどWin32APIはどれくらいまでやればいいですか? それとC++はWisdomSoftのC++の項目を一通り読めばいいでしょうか?
どこまでやったとか読んだとかじゃなくて 自分で1つ何かを作ったことがない程度じゃきつい
なんとかなるよ、なんとかならなくなってから考えれ
Cでオセロを作った程度ですが
出来る出来ないとかウジウジウジウジくだらないことを言っている暇があるなら、 とっとと始めろ。
40 :
デフォルトの名無しさん :2008/10/27(月) 00:11:56
うざいスレだな
ほんと使えねー奴ら
使えねー の意味がわからんww
43 :
34 :2008/10/27(月) 01:29:59
>>35 とりあえずオセロを作れるくらいまでやるといいよ
ねこわかで画面描画の基礎がわかれば、
オセロゲームの素体くらいはつくれる筈
ねこわかだけでは心もとないってなら
赤坂玲音のWinゲームプログラムとかを立ち読みするといいかな
ただしC++じゃなくてCベースなんでC++的な意味合いではあまり参考にならない
44 :
14 :2008/10/27(月) 01:45:55
>>19 まぁ、多分テクスチャのUVとかの設定が間違ってそうなんですが、その辺の処理の流れとしては
struct Vertex2D{
D3DXVECTOR3 pos;
FLOAT rhw;
D3DCOLOR diffuse;
FLOAT u,v;
};
エフェクトBegin
SetFVF(2D用の設定)
Vertex2D v[4];
テクスチャからサイズを取得して(GetDesc)4つの頂点をそのサイズに合うようにセット
rhwとdiffuseを1.0fと0xffffffffにセット
uvは0.0fと1.0fでセット
DrawPrimitiveUP
エフェクトEnd
というかんじです。頂点とuv座標でなんか間違ってますかね?
つか シェーダーにきちんと頂点フォーマットが伝わってないんじゃ? SetFVFじゃなくてSetVertexDeclarationしろ
46 :
デフォルトの名無しさん :2008/10/27(月) 10:25:59
2Dの画像を描写する場合って spriteを使うのと板ポリに貼るのはどちらがいいですか?
2Dを表示させることが目的ならspriteのがお手軽 将来3Dもやったり、Direct3Dの勉強したいなら板ポリ勉強した方がいい
そもそもspriteって何のことだよ?
ディスプレイ上を動き回る2D画像の総称
>>45 なるほどそれかもしれません。ところで頂点構造体のRHWメンバはD3DVERTEXELEMENT9のUsageメンバに
どんな値をセットすればいいんでしょうか?
>>50 D3DDECLUSAGE_POSITIONT
D3DDECLUSAGE_POSITIONと違ってD3DDECLTYPE_FLOAT4なので注意
あと当然ながら頂点シェーダは使えない
52 :
デフォルトの名無しさん :2008/10/27(月) 20:14:29
ヘイクーに与えた暗号はイマーゴがなくても使えるように改造した擬似的なものだ。 駅向こうもおそらく同じだろう。だがお前のは違う。イマーゴと直結してる。 いまのお前の状態はおそらく私と同じだ。 暗号炉はイマーゴと直結して思考から直接暗号を取り出す構造体だ。 しかし、イマーゴと直結した暗号炉もあの新型のレベル3フォーマットで攻撃されたら無事では済まない。 とくに私のように深く直結して./ ̄ ̄ ̄ ̄ ̄ ̄ ̄\いる場合は。おまけに、この古流 \ の暗号、イマーゴを消費して| うるさい黙れ |暗号を出している。危険すぎる /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\_______/ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ∨ (゚д゚ ) <⌒/ヽ-、__ノヽノ | /<_/____/ < <
MDIウィンドウの上にスプライトを表示させたいのですが、 IDirect3DDevice9::Clear() 時に MDIウィンドウが上書きされ、同時に表示できません。 Clearの引数にあるColorのアルファ値を有効にする手段はありませんか? オフスクリーンという機能を使って、 BITMAPとしてレンダリングし、マスクして描画させるか、 ウィンドウの内容をあらかじめキャプチャしておき、 キャプチャした内容ごとD3Dで描画するしか方法はないのでしょうか?
54 :
21 :2008/10/27(月) 21:09:27
また質問ですみませんがxファイルってどうやって読み込めばいいんでしょうか?
D3DXLoadMeshFromX関数で読み込もうとするとミスにばかりなります…
D3DXLoadMeshFromX関数の引数がLPSTRなのにchar*で渡してるのがいけない
んでしょうか・・・?
ソースをあげておきます。DLキーは1234です
このファイルには入れ忘れていましたが Chips.x は用意してコンパイルしています
ttp://www1.axfc.net/uploader/He/so/152246
55 :
デフォルトの名無しさん :2008/10/27(月) 21:20:09
DirectX 9.0 SDK Update (Summer 2003) の ID3DXSprite ですが,調べてみる限りではバッファリングを行って DrawIndexedPrimitive の呼び出し回数を減らしているように見えます.
詳しいことは以前書きましたのでそちらを参考にしてください.
http://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi?log=39&vew=284 どうも「ID3DXSpriteは遅い/速い」や「DrawIndexedPrimitiveUPは遅い/速い」といった言葉だけ一人歩きする傾向があるようです.
DirectX Graphicsのパフォーマンスに関する議論は,最終的に
・DirectX Graphicsのパフォーマンス特性に適合しているから速い
・DirectX Graphicsのパフォーマンス特性と適合していないから遅い
の二種類と,
・自分の望むパフォーマンスが達成できているからこれ以上の最適化は不要
・自分の望むパフォーマンスが(ハードウェア上は可能なのに)達成できていないから一層の最適化が必要
の二種類の組み合わせに集約されるはずで,なまじメソッドの格付けみたいな方向に議論を持って行くと誤解が誤解を呼ぶことになりかねませんのでご
>>54 デバイスを作成する前に読み込めるわけがない
>>21 本を見てやってるみたいだが
最初からちゃんと読むことをお勧めする
著者のHPも見たほうがいいかもね
具体的に言うとInitD3dの前にload_3dobjしてるのがダメ
DirectX9でシューティングゲームを作っているんですけど、 弾を進行方向に向かせるためにD3DXMatrixRotationZ関数を使って回転 して進行方向に向かせるにはどうすればいいですか?
その情報だけでどう答えるのか
多分、弾の移動べクトルから向きを計算する方法を求めてるんだろう atanを使えばいいんじゃね
DirectX関係ないし。。。 Z軸回転ってことでXY平面状の2Dシューティングとして 弾の加速度をVX、VYとして軸の向きがよくわからんからなんとも言えんが D3DXMatrixRotationZ( &mat, atan2(1VY,VX) ) ;
むしろこんなわかんない状態でDirectX始めちゃうぐらいでいいと思うよ 数学どれぐらい勉強したらいいですかねなんて質問してる人よりも
弾の画像を進行方向に向かせる時もD3DXMatrixRotationZを使えばいいですか?
変なのがいるね 進行方向って何の?
弾が進んでる方向に画像を向ける感じです。
68 :
デフォルトの名無しさん :2008/10/29(水) 01:12:32
Direct3dで2Dゲームを作成しようと散策中ですが、 参考になるお勧めの書籍、サイト等ありましたら アドバイスお願いします ちなみにジャンルはベルトスクロールアクションです。
D3DXMatrixRotationZでぐるぐる回せてはいるんだろ?
それが出来てるなら、あとは
>>63 のように向きを計算すればいいだけだよ
70 :
デフォルトの名無しさん :2008/10/29(水) 01:18:39
>>65 オレも初心者だが
D3DXMatrixRotationZ
でぐぐるだけで結構でて来るよ
そこの説明が良くわからないってことなのか
どうかはしらんけど。
DirectDrawはある程度弄ったけどDirect3dはこれから。
RENDER_TARGETととして作ったテクスチャに半透明のピクセルを含むテクスチャを描画したとき バッファリング?とかされているのかも知れないんですが、先に描画した背景画像に対してαブレンドされずに サーフェイスのクリアに使った色とブレンドされてしまいます。 しかもこれはRENDER_TARGETのテクスチャの時だけに再現します。(自動のバックバッファでは起こらない) 何か足りない設定があるのでしょうか?
72 :
デフォルトの名無しさん :2008/10/29(水) 21:03:29
XYZRHWのペラペラを描く命令で蓄えておいて 一箇所でどどーんってのは出来るの?
日本語でおk
最近命令って言う人が多いな
頂点情報を命令という馬鹿は、ピクセル情報も命令に見えるんだろうな
77 :
デフォルトの名無しさん :2008/10/29(水) 21:27:30
78 :
デフォルトの名無しさん :2008/10/29(水) 22:12:21
/\ / \ / <●> \ / \  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ___________ //TTTTTTTTTTTTTTTTTT\ /:::::/TTTTTTTTTTTTTTTTTTTTT\ /:::::::::/TTTTTTTTTTTTTTTTTTTTTTTT\ /:::::::::::::/TTTTTTTTTTTTTTTTTTTTTTTTTTT\ /:::::::::::::::::/TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT\ M D C C L X X V I NOVUS ORDO SECLORUM
79 :
デフォルトの名無しさん :2008/10/29(水) 22:54:03
directs3dで2Dゲームのことが書いてそうなのって 今日秋葉のヨドバシで捜したけど このくらいしか アクションゲームプログラミング (大型本) 藤田 和久 (著) ちなみにお昼にちらちらとしか探せなかった この本持っててしかも2Dなら任せろって方 この本実際需要はどれほどなのか、よければ購入したい 今更2D?って感じかもしれないが レトロ好きなんで、ドット絵がたまらんのですよ 作るなら徹底的に作りたいし 今日も徹夜して検索かな;
80 :
デフォルトの名無しさん :2008/10/29(水) 22:57:48
directs3d direct3d orz
>需要はどれほどなのか これのほうが変だと思うw
どうせ これ1冊あればOK、なんて本ないから好きなのやればいいと思うよ 5冊くらい良いとこ取りすればそこそこ理解も深まるし
2DゲームとDirect3D関係ないし 描画部分だけ変えればいいだけなのだから 2Dゲーム(といっても色々あるが)そのものについて詳しく書いてある本でいいんでないの
84 :
デフォルトの名無しさん :2008/10/30(木) 16:34:33
二次元を描くときは変換済みのと厚みが1の箱とどっちがいいの?
Windows APIを学ぼうとしているのですが,何か初心者に向いたWindows API関連の書籍はないでしょうか?
86 :
デフォルトの名無しさん :2008/10/30(木) 17:05:47
>>83 > 2DゲームとDirect3D関係ないし ×
現実に使ってある
計算が楽になるらしい。
3Dオブジェクトを使わないとしても3D効果を使うからかな。
>>85 はじめてのういんどうずぷろぐらむ びじゅあるしーぷらすぷらす
ってのがおすすめだが
入手困難な上にVC6でのサンプルなんでVSで動かすのが面倒
しかしこれより簡単なWin32APIの本は
俺は見たことがないので
手に入るならおすすめ
89 :
デフォルトの名無しさん :2008/10/30(木) 17:58:35
3D効果もそうだし 描画順番をZソートに任せちゃうとか
これからはDirect2Dの時代なんだぜ
Direct3D 10.1にのっかるのか
92 :
デフォルトの名無しさん :2008/10/30(木) 22:14:31
>>87 アホですか
3D効果なんて3Dの勉強をすりゃいいだけの話だろ
2Dゲームとはなんの関係もないよ
ラざいスレだな
3D効果が使われた時点でそれは3Dゲームなのだよ
96 :
デフォルトの名無しさん :2008/10/30(木) 23:00:15
Asso
>>92 Rectの意味を理解していないという事はわかった
Zバッファクリア?
先に描画した物を通過してブレンドされるのとZバッファって何か関係があるんですか? 良かったら教えてください
ステートどんなのあるか調べるんだ!
とりあえず まともな回答が帰ってこない人は 質問の仕方が悪いだけだからソース晒せばいいと思うよ
105 :
デフォルトの名無しさん :2008/10/31(金) 07:44:36
回答側が根性腐ってるだけだろwww
質問の仕方が悪いが悪いっていうか 単純に経験不足なんだろうけど質問のポイントがわかってないのは多い そんな聞かれ方してもぱっと思いつくだけで原因がいくつもありそうだったり そんなのやり方が悪い、としか言いようがないものだったり 難しく考えすぎて実は単純な凡ミスが原因だったり 確かにソースを上げてしまうのが一番手っ取り早いってのはある
108 :
デフォルトの名無しさん :2008/10/31(金) 12:31:04
現在フルスクリーンにて作成しているのですが フルスクリーンで起動中他のアプリケーションに制御を 移した後 もう一度フルスルリーンに切り替えると なにも表示されないのですが これはどういった対応をすればよいのでしょうか?
デバイスロスト
>>108 それに限らず
解像度が変更されたり
スクリーンセーバーが起動したりするると
D3Dデバイスが消失してしまう
これはフルスクリーンではなくウインドウモードでも消失することがあるから注意
よってデバイスを作り直さなければならない
そしておまいは其の程度の解説も載っていない
参考書やHPで勉強するのはやめるべきだと思う
>>105 実際性根が腐ってるやつは多いと思う
そういうゴミが回答しないのに初心者いじめるから
わざわざこうやって初心者スレが別にあるだろうに
ご丁寧に初心者虐めをしにくるのは見てらんない
ただし日本語でOKな質問者は除く
デバイスのロストに対応するか否かで 設計のめんどくささが全く違うからなぁ 初心者に対しては触れられたくない話題ではあるためスルーされることが多いよね 製品でもウィンドウモードやサイズの切り替えは 起動時のランチャーで制御してロストには対応してないものが多いし
DirectX10にしちゃいなよ!シェーダーわからないだって?
113 :
デフォルトの名無しさん :2008/10/31(金) 15:52:40
vistaがない
俺はXファイル読めないんで諦めました
いや3Dがわからない
2Dしか愛せない
117 :
デフォルトの名無しさん :2008/10/31(金) 17:54:57
ー回のDrawPrimitiveでたくさんの板を描くにはどうすればいいの?
たくさん頂点指定すればいい
・Windows95ゲームプログラミング DirectX入門 - DirectX1 (DirectDrawのみ) ・Windows95ゲームプログラミング ------------ DirectX2 ・3DグラフィックスプログラミングforWindows95--- DirectX2 ・DirectX5ゲームプログラミング入門----------- DirectX3 (RMのみ) ・3Dゲームプログラミング入門---------------- DirectX7 ・入門DirectX7プログラミング----------------- DirectX7 親戚が捨てようとしていたので貰ったのですが 今でも役立つ本があったら教えてください。 古い本で勉強したら意味が無かったり、悪影響があるでしょうか?
正直意味がないと思われる
普遍的な部分と今では通用しない部分を見分けられるくらいなら それはそれで、その本いらないよな
それらの本を読んで、DX9のプログラムを組めるかと言えば答えはNo
暇でしょうが無いときに流し読みして古紙回収にでもまわせば
でもちょっと読んでみたいw
全部読んだわけではないが、ゲームプログラムって部分でちゃんとゲーム作れてないのが多いと思う
>>119 DirectX7は、WindowsXPの9とそれほど変わらないと思う。
> 3Dゲームプログラミング入門
> 3DグラフィックスプログラミングforWindows95
DirectXのバージョンはともかく、3Dデータの扱いとかフォーマットの参考資料にはなるだろ。
古いバージョンでもわかりやすくまとめたものは参考になるよ。
最新バージョンの機能はオンラインヘルプで見れるわけだけど、サンプルコードがないとね。
もちろん最新バージョンの本があればそんな古い本はいらない。
128 :
デフォルトの名無しさん :2008/10/31(金) 20:13:35
デバイスに指定するD3DRS_AMBIENTと D3DLIGHT9のAmbientはなにがちがうの
D3DRS_AMBIENTは ステートブロック内の全ての物体に影響する ライトのAmbientはライトの当たってる範囲にのみ影響する ライトの範囲内では D3DRS_AMBIENTで指定した値 +ライトで指定したAmbientが環境光になる
130 :
デフォルトの名無しさん :2008/10/31(金) 23:16:41
ほー
131 :
119 :2008/10/31(金) 23:47:08
>>120-127 皆様ありがとうございました。
最新の本を購入するか、DirectX7の本から始めてみます。
ぶっちゃけWebのコードだけで十分だけどなw
DirectX7の本なんか捨てちまえよ 過去に縛られるのはいくない
日本はエロゲ方面から発達してきたからかロースペックのマシンをサポートする事が何よりも大事だという風潮がある。 海外は俺の技術すげーだろ?的なものを見せたがるので最新技術をバンバン投入してくる。 その結果が今の3D技術の「海外>>>越えられない壁>>>日本」になって現れていると思う。 INTELの845をサポートしつつ3Dゲームを作るとかわけわからん事言い出すヤツもたまにいる。
PCに関しては英語を読めない馬鹿が多いからだろwww
なんかそれって外国のほうが初めから 技術高いって言ってることになるぞ?
海外製のネトゲとかで810で動作してたのは結構あった気がするけど 当時810が普及しすぎて対応せざるを得なくなってたのは日本だけじゃない気が
まぁ、コンシューマ(PS3、Wii)等を見れば、そういった差は無いことが一目瞭然なわけで。 単純に国の需要の問題だと思うけど。 ゲームなんかは特に、派手な見た目が喜ばれるのは最初の30分くらい。 後は操作性の方が全然優先される。
139 :
デフォルトの名無しさん :2008/11/01(土) 09:32:31
その最初の30分が売れるためには重要なのかも知れないね。
GBAとかDSの2Dゲー見てると、2D表現は日本のほうがこなれてるなーって思う
2Dゲーなんて俺の触手(食指)が動かないぜ
DirectXってもう9や10から入るのはつらいよな 5や7の時代は良かったのに・・・
9からのほうが楽だろ・・・。俺的には10のほうが自由でもっと楽だけど。
楽なのは 10>9>8>7>他 だと思うけどな
今後Vista以降のOSを使えばDX9世代以前のGPUでもDX10を使えるようになるみたいだけど 果たしてどれだけ意味があるのか
>>146 そりゃ歴史が浅いほど情報は少ないだろ。
ただDirectX10に関しては9までのと違って細かいメーカールールとかなくてかなり扱いやすいけどね。
Vistaはもう仕方ないのでWindows7でDirectX11と一緒にブレイクするのを期待する。
シェーダーモデル2.0なんかじゃまともに組めめーし。
>>148 > ただDirectX10に関しては9までのと違って細かいメーカールールとかなくてかなり扱いやすいけどね。
マジスカ。
確かにハードと切り離されてるんだからOSが吸収してくれて簡単になっててもおかしくない。
じゃあWindowsXPの終焉とともにDirectX9以前は消滅か。
でもeeePCとかで今も大人気のXPがなくなるのはいったいいつになるやら。
まぁ3Dの本だされても理解できないんですけどね ゆ と り 教 育 の 結 果 が こ れ だ よ ! ! !
>>150 こんなつまんねー書き込みで改行やらないでくんない?
>>151 詰 め 込 み 教 育 の 結 果 が こ れ だ よ ! ! !
7はついにD3Dがネットワーク透過になると聞いてちょっとwktkですよ
どういう事? XWindowみたいになんの?
>>156 1時間以上ですか。
しかも英語。わかりません。
>>157 実演は17分くらいからと33分くらいから
159 :
デフォルトの名無しさん :2008/11/01(土) 21:20:36
DCOM?
OpenGLみたいな〜っと勝手に妄想
161 :
デフォルトの名無しさん :2008/11/01(土) 22:19:36
/|\ | キ | n/ ̄\n | キ | / (・(・| \|/ 三 ∞ |三 || / / ̄ ̄) /────── \ ̄ ̄) | | |/| | ̄ ̄ |_| ̄|_| ̄ ̄ ̄ ̄ ̄|_| |_|
グラフィックなんて自分でコツコツ作るから面白いと思うんだが・・・。 GPGPUとかシェーダーこつこと弄るのがかわらなきゃ別にいいわ
楽なら楽な方がいいよ。その分他の事ができるんだから
164 :
デフォルトの名無しさん :2008/11/01(土) 23:23:50
テクスチャとZ値でソートする場合 どういう順番で並べたらいいの?
ザパニーズでおk
自分の好きなように並べたらいい。 そうとしか言えない。
>>164 テクスチャとZ値って意味わかんない
キーワードあげるからテキトーにググって知識いれてきてよ
キーワード
Zバッファ アルファテスト Zソート 前から描画
168 :
デフォルトの名無しさん :2008/11/02(日) 00:46:18
>>164 コスト優先ならテクスチャを、見た目優先ならZを
169 :
デフォルトの名無しさん :2008/11/02(日) 00:50:21
一枚のテクスチャにして、欲しい絵の部分をRECTで切りだせばいいだろ
170 :
デフォルトの名無しさん :2008/11/02(日) 00:57:02
今どきSetTextureのコストとか…
SetTextureのコストは変わらないだろ? 転送速度なんだから
ひんと 回数
テクスチャが一回ずつしか使われてなかったらソートの手間損だろ
SetTexture()のコストなんてどうでもいいが、 それに伴うDrawPrimitive()のコストは洒落にならない。 未だにどのエンジンも如何にしてDrawPrimitive()を減らすかに 躍起になっている理由くらい分かるだろ。
>>175 俺もうそんなの考えてねぇよ
必要なら必要な分だけ何回でもレンダリングしてる
汎用性とシェーダの兼ね合い考えたら
もう汎用性をとるしかない
何度でもDrawPrimitiveしまくる
そもそもSetTextureってなにかメモリ的な動きあるのか? これフラグ立てるだけだべ DrawPrimitiveしたときにすべてを実行してるんじゃねぇのか?
DrawPrimitiveの前にSetTextureやりまくってみりゃわかる ついでにテクスチャサイズでの違いの検証も よ ろ し く
>>177 >DrawPrimitiveしたときにすべてを実行してるんじゃねぇのか?
つまりSetTextureを呼ぶと、DrawPrimitiveに時間がかかるわけだろ。
富豪的処理
DrawSubsetというかDrawPrimitiveは非常に重い処理。 流石に1フレームに1000回はかなり無茶なレベルだぞ。 まったく同じモデルを複数表示してるならジオメトリ インスタンスを使え。
ジオメトリ インスタンス って何ですか?
やふれ
たぶん、DirectX10は飛ばされて 11がメジャーバージョンになるんじゃないかと踏んでいるんだが
偶数バージョンが空気になるのは毎度のこと
7⇒8でさっぱり変わって9で完成形を見たように 9⇒10でさっぱり変わってるから11で完成形を見るんだろう。 8でシェーダーが対応されて9で完成されたのと一緒で 10でGPGPUが使えるようになったから11でより楽にサポート的な。
>>184 77 :デフォルトの名無しさん:2008/07/29(火) 09:32:33
>>73 DrawSubsetというかDrawPrimitiveは非常に重い処理。
流石に1フレームに1000回はかなり無茶なレベルだぞ。
まったく同じモデルを複数表示してるならジオメトリインスタンスを使え。
同じの見つかったよw
結局のところ テクスチャ取り替えたり変換行列変える度に DrawPrimitiveガ必要になるわけだろ。 いちいち回数減らす小細工しても変わらないよ。 DX10は知らんが。
そう思うなら好きにすればいいさ
その小細工の為に大層なエンジンを組むんだろ・・・ 骨の行列をfloat4のテクスチャに格納して切り替えを減らすのとか ジオメトリインスタンスの機能があるのは何のためなのかと。 GPU Gems3を読んで来い。
っ フレームごとの消去をやめて変化しないものは描きなおさない
なんか知らんがステートブロック使うだろ
194 :
デフォルトの名無しさん :2008/11/02(日) 15:19:33
遅い環境に合わせてもしょぼいゲームが出来るだけ
くだらない高速化に目を向ける前に、完成直前まで持っていいって遅いと感じてから直せ。 余計なところに気を回している暇があったら、とっとと完成させる方に目を向けろ。 どうせ描画の一部を直すより、システム全体のロジックを見直した方が速くなることに気がつくだけなんだから。
196 :
デフォルトの名無しさん :2008/11/02(日) 16:40:54
そして定期的に速いグラボ買わせる訳ですね。
testes
DrawPrimitive()が使うのはGPUじゃなくCPUだぞ、っと。
199 :
デフォルトの名無しさん :2008/11/02(日) 17:57:21
所詮はCOM 秒間何百回も呼ぶように作られちゃいねーのよん
COMを一秒間にたった数百回呼び出したところで、それがシステム全体にどんな影響を与えると? 頭が悪いにも程がある。
201 :
デフォルトの名無しさん :2008/11/03(月) 00:01:33
>>189 まったくだな
しかも、一発で描くようにしたらシェーダをアフォかってほど書かなきゃならない
もはや人間がやってられる量を完全に超えてる
もう俺なんかあきらめて2度塗り3度塗り上等だよ
ディフューズやスペキュラ、ライト1個目、2個目・・・
DrawPrimitiveなんて呼びまくってナンボだろ
>>201 ドイツ人はこんな教科書で日本語を勉強してるのか・・・・orz
>>199 >>200 DrawPrimitiveが重いのはCOM云々じゃなくて
中でGPUコマンドの生成を行なってるからだぞ・・・。
この辺はMSやnVIDIAの技術者からも情報がいろいろ出てるだろ。
205 :
デフォルトの名無しさん :2008/11/03(月) 10:43:14
流れを切ってしまうが・・・ みんなはDXUTとか使ってる?
使ってない。 DirectXも使ってない。 ていうかプログラム作ってない。
使っていない。 その程度自前で作れる程度でないと、そもそも何も出来ない。
使ってる 楽できるとこは楽しないと 自己満足のために納期は待ってくれないし
仕事で使ってる人がなぜ初心者スレに・・
まだ初心者だけどGUI機能だけ使おうかと思ってる
211 :
デフォルトの名無しさん :2008/11/03(月) 11:55:18
ゲームクリエイターズバイブル に自分しか信じない病って書いてあったなー
D3DX系の高レベルAPIは信用出来ないぞ。 バグがあってもいつ直るか分からないは、勝手に仕様を変更されるは、 そんな物を使っている奴は気が狂っているとしか思えない。
あれはラッパライブラリと同列に扱うものであって基盤になるAPIじゃない
ID3DXFont::GetDC()で取得したHDCって使い終わったらどうすればいいんでしょうか? Win32Apiで解放した方が委員でしょうか?ID3DXFont::ReleaseDC()が見当たらないので
えーと、その405は自分です。元の戻すのはいいんですが、解放はどうするのかなぁ、と思ったもので・・・
217 :
デフォルトの名無しさん :2008/11/03(月) 17:09:00
Fontは遅いから使うなとかなんとか…
そもそもGetDCで何がしたいんだろう? あまり安全じゃないから使わないほうが良いという話だが 一度削除されて、いつのまにか復活してる
219 :
デフォルトの名無しさん :2008/11/03(月) 18:21:35
ID3DXFont::GetGlyphDataは使ってる
まぁ、多少遅くてもいいかなと思って使ってます。
>>218 危険性についてググッても出なかったんですが、何が危ないんでしょう?
LPD3DXFONT::Release て無くなったの? 前はなかったっけ?
>>222 COMだからQueryInterface, AddRef, Releaseは必ず存在する。
あぁゴメンReleaseDCか
また海のものとも山のものともつかぬようなAPIが増えるのか
>>221 今回はコンパチの作成とフォントハンドルの取得にしか使ってないんですが・・・
分からないっちゃ分からないですよね。安全かどうかは・・・
でも、それはさておきID3DXFont::GetDCで取得したHDCはリリースすべきなのか、どうするのか
分かる人いないですか?
正直いまさら2D機能なんて作られてもいらねぇだろ・・・
229 :
デフォルトの名無しさん :2008/11/03(月) 21:38:07
日本は2D
ぶっちゃけた話DirectWriteの為だけに用意された気がしないでもない
エロゲなんざDirectDrawかGDIでつくりゃーいい。 いまどき同人ですらDirect3Dでゲームつくってるっつーのに
さすがに今GDIはないわ
3Dゲームだってアイコンやらゲージやらマップやら2D表示部分はいくらでもあるだろ
3DゲームならそういうのはなおさらDirect3Dで描くだろ。
Direct3Dの上に実装されるらしいから問題ないだろ
Direct2Dの中身も分からないのに何を言っているのやら Direct3Dでやるより楽なら使えばいいし面倒なら使わなきゃいいだけの話だろ 新しい物を試しもしないうちから否定してもプログラマとして成長しないぜ
やる前にある程度のことは分かれよ、大人なら(笑)
>>238 憶測で分かったつもりになるのが大人というなら
大人になんかなりたくないと、ぼくはおもいます
どうでもいい機能が追加されることなんてよくあるだろ そんなのどうでもいいと思う事すらどうでもいいだろうに
それだけ要望が多かったんだろ。 その程度の実装すら自分で出来ない馬鹿の。
DirectDrawの焼き直し。DD扱いにくかったからな・・・。
動画やってる人にも需要ないかな?
>>230 ::ReleaseDC()で開放しろって意味ですよね?
HDCはいいけど、HWND引っ張ってくるのめんどいズェ・・・ID3DXFontから引っ張れるけど・・・
解放しなくていい気がしてきた。怖いなぁ。 よし放置しよう!
DirectShowは糞
DirectX9 とC++で DirectX Graphicsを2Dについても濃厚に解説している お勧めの書籍があれば教えてください。
その質問は何度もでていますが 残念ながらそのような本は存在しませんので 直接本屋に足を運んで 自分のレベルにあっていると思われる本をお選びください ある程度慣れてくると その本に何が足りなくて、自分が何を必要としているのかがわかってくるので そのとき改めて別の本を買うなりネットを検索するなりしたほうが良いと思われます
ネットで十分ですよ
本を片っ端から買う金がないならネットでコツコツと探せ わかんない人にとっては無駄じゃないから
250 :
デフォルトの名無しさん :2008/11/05(水) 19:42:41
IDirect3DDevice9::CreateStateBlock でググって絶望するわけですな。
251 :
デフォルトの名無しさん :2008/11/05(水) 19:50:23
ちゃんとMSDNがヒットするぞ
250みたいな馬鹿はググリ方すら分からないから、 インターネッツの使い方の本なら買う価値があるかもね
253 :
デフォルトの名無しさん :2008/11/06(木) 00:03:00
なんでここの連中って高圧的なの?
ストレス溜まってるからだろ
>>246 じゃないが
DrectDrawに相当するものについて説明してるところないだろうか
3Dの解説してるところは山ほどあるけど
2Dになると「もうなくなったからあきらめてね」みなたいな流れなのが悲しい
とりあえず画面に線を引くくらいでいいから取っ掛かりがほしい
画面に三角形を書く、その三角形にテクスチャを張るぐらいの説明はどこでもやってる気が
よくある3Dの解説サイトでも、最初は画面にポリゴン一枚から、とかじゃない? そのポリゴン一枚を2Dの絵と見立てれば解決のような。それじゃ嫌なのかな?
3Dができれば2Dなんて軸が1本減っただけだろう
>>255 D3DPT_LINELISTかD3DPT_LINESTRIPで引けば
>>255 DirectDrawには、画面に線を引くなんて機能すらないよ。
あるのは画像のブロック転送だけ。
線を引きたかったら、1ピクセルずつ自分で描かないとダメ。
あと、あらゆるピクセルフォーマットに対応できる仕様になっているから、
物凄く面倒だよ。フォーマットの変換はやってくれないから、全部自分で
読み込み時に変換しないとダメ。
最近のDirect3Dで2Dだけを扱うよりも数倍面倒。
デバイスの初期化だけで100行くらいのコードになるし。
そこまでやる気ないのだとしたら ゲームライブラリとか公開してる人がいるからそういうのを使う方がいいかも
>>255 モニターの設定を取得してそのカラー設定に応じて自分で点を打っていく
RGB888( )とかRGB565( )みたいなマクロ作っとくといいよ
線を引きたいなら1ドットのビットマップを引き伸ばして回転させて線にするとか
264 :
デフォルトの名無しさん :2008/11/06(木) 13:51:53
>DrectDrawに相当するもの って書いてあるからDDじゃないと思ってた
>>255 の言いたい事は、2Dグラフィクを扱う方法と考えるべきだな。
頭の悪い奴は、DirectDrawでできることというお馬鹿な解釈をする。
>>259 や
>>263 のようにね。
DirectDrawで線を引く機能があっても意味ねー。 ゲームの画面が線で描かれることは無い。 すべて絵だし。ビットマップだし。
268 :
デフォルトの名無しさん :2008/11/06(木) 15:45:37
まー解説サイトも板ポリゴン作って拡大回転テクスチャをごにょごにょのレベルまでだけどな DrawPrimitiveの削減とか考えると本買うしかない
269 :
デフォルトの名無しさん :2008/11/06(木) 16:00:25
2Dでそこまでしなくても
270 :
デフォルトの名無しさん :2008/11/06(木) 16:55:05
最新のDirectXがどうしてもインストールできません。 何度やっても「ファイルをダウンロードできませんでした。 後でもう一度実行するか、ネットワーク接続を確認してください」 というダイアログが出ます。 どういった原因なのか分かる方いらっしゃいますでしょうか・・・?
ブラウザ変えてやってみるとか。 うちでも一定バイト数以上にならなくて別ブラウザにしたら一発だった。
272 :
デフォルトの名無しさん :2008/11/06(木) 17:04:46
VC++で説明している本の内容をC#で実装するのって手間かかりますか?
273 :
デフォルトの名無しさん :2008/11/06(木) 17:17:09
SlimDX使えば
最初はオープンソースのライブラリを使ってゲームを作る そしてライブラリの中身を見ながら自分風のライブラリに置き換えていく。 俺はこうやってWinAPIとDirectXを習得した。 まぁDirectX7+ELの時代なんですけどね。 今だとオープンソースで使えるライブラリつったらDXライブラリかな?
275 :
デフォルトの名無しさん :2008/11/06(木) 17:36:29
自分で書いたほうが早い
Direct Graphics だとか Audio なんかはフリーのライブラリを見て勉強できますが、 ゲームオブジェクトの管理とか設計がままなりません。 オブジェクト指向本とか勉強するべき?
>Direct Graphics そんな物は存在しない
278 :
デフォルトの名無しさん :2008/11/06(木) 18:47:46
>>271 >>270 へのレスでしょうか?
そうでしたら、違うブラウザーでも駄目でした。
同じような現象が現れた人はいないでしょうかね・・・。
ウイルス対策ソフトをアンインストールしてから出直せ
280 :
デフォルトの名無しさん :2008/11/06(木) 23:20:18
はじめまして Visual C++ 2008でdirectXをやろうとしてるのですが コンパイルできません。 次のようなエラーが表示されてしまいます。 1>MSVCRTD.lib(crtexe.obj) : error LNK2019: 未解決の外部シンボル _main が関数 ___tmainCRTStartup で参照されました。 1>C:\Users\takuya\Documents\Visual Studio 2008\Projects\AAA\Debug\AAA.exe : fatal error LNK1120: 外部参照 1 が未解決です SDKはインストールしましたし、ソースはコピペなので完璧なはずです。 何がいけないのでしょうか?
Win32アプリケーションじゃなくてWin32コンソールアプリケーションとしてプロジェクトを作成してる。 DirectXと関係ねー話だからよく分らんかったらVSのスレにでも池
シェーダで隣のテクセルなどを参照する方法ってありますか?
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は既にわかっていて 外部から与えられるものとする
シェーダで1.0f/TEX_SIZE_Xを計算させると精度で泣くよ。 TEX_SIZE_Xを与えるついでに逆数も与えた方がいい。
>>283 なるほど、ありがとうございます。
自分がtex2Dについてよく理解していなかったようです。すいません。
逆数を与えるとは?
287 :
デフォルトの名無しさん :2008/11/07(金) 14:45:15
質問させていただきます。 DirectXをつかってC++でゲームを作る場合、オブジェクト指向でClassを作るというやり方は一般的ではないのでしょうか。 ちょっとしたゲームの入門書を読んでみても、Classは出てきておらず、疑問に思いました。 Javaでコードを書いていた期間が長く、Class 自分、Class 敵 、とクラスを作っていこうと考えていたのですが処理が遅くなるなどのデメリットが生じるでしょうか?
今時クラスを使わない方が少数派だよ。仕事ならなおさらね。 その程度のリスクを気にするような時代じゃない まあ全てをクラスで管理しなくてもいいわけだし、上位はクラスで管理して 下位を入門書のコピペでやるというのもありか
289 :
デフォルトの名無しさん :2008/11/07(金) 15:06:54
現場ではまず使わないね。 まあ趣味なら好きにすれ
どこの現場だよ^^; Cだけで組んでるなんて10年前ぐらいの話だぞ
リスク?コスト?
公開されてるToHeart2のソースだとCだけで組んでるっぽいな あそこのプログラマは知識なさそうだから参考になるか知らんがw DirectXで仕事した事はないけど、家庭用ゲームの開発ではクラス使ってる
少人数の開発だとプログラマー1人で全部やるようになるからその人次第じゃね
294 :
デフォルトの名無しさん :2008/11/07(金) 15:43:05
クラスでやっても実行速度はかわらんだろ
まあ共同制作の場合はクラス作る方が都合がいいやね ちゃんとオブジェクト指向と言える物になってればの話だが グローバル変数が各ソースで呼ばれるようになるとバグ修正が困難になる
>>294 それは組み方次第じゃね
少なくともクラス自体のnewとdeleteの手間はあるわけだし
全く変らないとは言い切れないが、別に気にするような事じゃない
俺は、一つのcppファイルをクラスと見立ててコード書いてる。だからクラス自体は使ってない。 まぁあくまでも趣味だから俺は
298 :
デフォルトの名無しさん :2008/11/07(金) 16:44:25
仮想関数って致命的なオーバーヘットもあるしな
classでも何でもとりあえずデバッグしやすい構造でがしがし組んで行って、 最後速度が本当に気になるなら実装をいじればいい
オーバーヘッドがどうこう言う
>>298 みたいな奴は、
それこそ致命的に頭が弱い。
中身が空っぽに近いメソッドをぐるぐる呼び出して、
ベンチマークをとったと勘違いしているんだろうが、
実際に目的があって組まれたプログラムの仮想関数を、
別の方法に置き換えたところで、1FPSすら速度の向上に貢献しない。
>>300 なんで頭が弱いとか人を馬鹿にするような書き込みをわざわざすんの?
おまえに限らずこのスレはくだらない自尊心を満たすために汚い言葉つかうやつが多くて困る
どのスレでも馬鹿は馬鹿にされるでござりまするよ
2ちゃんなんてこんなもん それが嫌なら綺麗な掲示板に行こう
言語仕様のどうでもいい一部にこだわるよりも、 いらん処理を省いたり、目立たない部分を簡略化したりする事に時間を割いた方が、 よっぽど全体のパフォーマンスが上がる。
Windows + DirectX + C++ で開発する場合、DirectXの前にWindowsプロシージャの ラップやらMFCやらを説明しないとならない。 DirectX入門という触れ込みなのに中々絵のでない解説が延々続くと読者の興味が持たないし、 前書きに「最低限C++とWindowsプログラムの知識が必要です」とかだと対象が狭まってしまう。 多分、著者側のそんな苦悩があるのでは。
いまどき仮想関数のオーバーヘッドとか・・・ 危うくつられるところだったぜ・・・・・・。 いまどきクラスなしでゲーム開発なんて携帯機くらいじゃねーの? new/deleteでオーバーヘッドっつーならmalloc/freeはノーコストなのかと。
DSの開発はC++ですぜ
308 :
デフォルトの名無しさん :2008/11/07(金) 23:15:22
すんません質問させらくだ際 ゲーム中の画像の描画にアルファ適用したくて 元画像から一個一個DDS作ってるんだが正直免土井 そんで、元画像とアルファ情報入ったグレースケールの画像を一度に二つ読み込んで DDSとかをいちいちつくらずアルファを実装してるゲームとかたまに見るんだけど あれはどうやったらできるの?
目的のサイズのテクスチャ作って、直接ARGB値を書き込むんじゃないの?
310 :
デフォルトの名無しさん :2008/11/07(金) 23:31:09
>>309 ぐぐってみたらそれらしいのが出てきたんで試してみます
thxでした
元からPNGとかでα込みのデータ作ればいいのに。 あくまでもマスク画像と合成してDDS作りたいなら、自分でバッチ処理する プログラムでも書けばいいかと。DDSでの保存はD3DXで簡単にできる。
つか、どっちにしろ何らかの アルファチャンネル付きフォーマットを用意することには変わらないんじゃ
最初からグラフィックソフトでDDS作る方が数倍簡単だろ・・・ αとカラーを別々の画像で扱う方がメンドイしキャッシュにもやさしくない
普通にマルチテクスチャしてるんじゃまいか?
315 :
sage :2008/11/07(金) 23:44:53
>>311-313 割と多く画像を扱うからDDSへの変換が結構手間だったり
ファイルが増えて煩雑な感じになったりだったんで
ファイル二つですめばいいなあと思いやってみてたんだが
あんまりよろしくはなかったのか…
Photoshopでバッチ変換とかすりゃいいだけだろう。 nVIDIAのプラグインでミップマップとか圧縮とかも全部出来るし。 って流石にPhotoshopはかえねーよって人のために コマンドラインツールがDriectXのSDKん中に入ってたりする。
うちの社内ツールがBMPしか読めませんとか、RGBとAが別でないと読めませんとかだったお。 面倒すぎて自分でPSD→社内形式のツール作ったw
どこの社内ですか?
319 :
デフォルトの名無しさん :2008/11/08(土) 05:23:00
乗り遅れたが・・・ 趣味→クラス使っても使わなくても 仕事→クラスを使わないとえらいことになりそう しかし上でも言われてるように、使うのと使わないのでは差が出ると行ってもほんのちょっとだろう。 俺もCで組んだことあるが違いが実感できなかった
そもそも仮想関数ってただの関数テーブル化されるだけだろ。 インライン展開しないような大きさなの関数なら差なんて無いだろ。
素人乙
そういうのを気にするのは まともにゲームも作ったことのない ライブラリ厨だけだってばっちゃが言ってた
うちのじっちゃも言ってた てことはまさか
じっちゃやばっちゃの世代なら仮装関数を噛ますことのオーバーヘッドなんて許容しがたくて当然じゃねw
言語論争は絶対に決着がつかないのでここまでで
どう考えても一定以上の規模のものを作るならC++必須なんだし、 速度がそんなに気になるなら全部アセンブラで書いたら?
今はコンパイラが利口すぎて PGが最適化しなくてもそれなりに動くし 初心者スレだからそれでいいと思うんだが あと論議するならDirectXのスレじゃなく C++のスレでやってくれ
仮想関数のテーブル参照のコストを気にするのなら、 仮想メモリのアドレス変換のコストなんか失禁ものだぞ。 そういう奴は素直にDOSでも使ってろ。
そんな事よりDrawPrimitiveの呼び出し回数を減らせよと
1時間に1回しか呼ばない俺は関係ないな
行列の乗算のコスト考えたら関数呼び出しなんて失笑ものだよな
今のCPU速いしな オンボ+速いCPUの組み合わせのPCはあっても ちゃんとしたビデオカード+遅いCPUの組み合わせはありえんし 作りやすいように作るのがいいと思うぞ
DrawPrimitiveの回数云々よりも、いらないキャラクターの描画を削ったり、 遠くのオブジェクトのポリゴン数を減らすようなシステム改善の方が、 よっぽど全体の速度向上に繋がる。
>>334 それを含めてDrawPrimitiveの回数を減らす努力だろ・・・
後出しご苦労様。 DrawPrimitive限定と、他の命令も大幅に削減出来るかどうかの差は天と地ほどある。
DrawPrimitiveだけを限定して減らす事なんて出来ない。 最低でも対になるSetRenderStateやSetTextureは減る。
速度のネックになるのは描画、アニメーション処理全てだよ その中にDrawPrimitiveの回数というのも当然含まれる クラスを使う使わないとか、その他もろもろの処理の重さなんて 描画やアニメーションに比べれれば0に等しい
ゆとりらしいレスだな。 PIの値に3とか使ってそうw それぐらいの誤差は0に等しいとか言ってw
ほほう、それじゃ比較してどれほどのものになるというのかね?
特定の内容にこだわって遅いだのこうしろだの言い出す人間が、 いかに木を見て森を見ない奴だかよく分かる。
おまえらそんなことはいいからゲーム完成させろよ
343 :
デフォルトの名無しさん :2008/11/08(土) 23:31:26
C++使ったらオブジェクト指向で分かりやすくなると思ったら間違いなんだよC++で分かりやすいソースが書けるやつはCでも分かりやすいプログラムが書ける表面的なことばかり追求する姿勢を改め機械語からやり直すことが近道だ
機械語とか中途半端なんだよ、アセンブリか、回路そのものにしろ >>C++使ったらオブジェクト指向で分かりやすくなると思ったら間違いなんだよC++で分かりやすいソースが書けるやつはCでも分かりやすいプログラムが書ける 禿同
>機械語からやり直すことが近道だ そんなことをいったら半導体の設計からさらにその前にさかのぼっていくことになるぞ。 なんでそんなに頭が悪いんだ? それこそ猿からやり直せ。
同じだったらより低コストで開発できるC++を選ぶのが一番の早道になるわけだが なにがなんでもC言語を使うための方法を考えてるくらいなら さっさとC++で実装してしまったほうが良い場合もあるし 環境によってはC言語だけで組んだほうがベストの場合もあるだろう 言語はあくまで手段であって目的と取り違えてはいけない 同じではなくそれぞれのメリットとデメリットを理解して使い分けるべき
最低でもクラスとSTL相当の機能は使えないとやってられないけどな・・・。 2,3人で1年程度で完成するようなゲームならCオンリーでも別にかまわんけど。
ゲーム本体、グラフィックツール等→C++ データコンバーター等→Cで適当に だな
おまえらCとかC++とか言うまえに スレタイ読めるようにしてこいよ?
>>348 モノによって言語仕様を変えていたら、コードの再利用がしにくくなって、生産性が落ちるだろ。
なんでそんなにどうしようもない思考しか出来ないほど間抜けなの?
常に再利用できる環境にいるなら 再利用しやすい言語を使えってことだろ? 組み込みとかアミューズメントとか再利用ってなんですか? って世界もあるわけで
本体⇒C++ ツール類⇒C# & C++/CLI が鉄板だな。
>>351 DirectXスレで組み込みを語り出す馬鹿って何なの?
>>350 あるねー
ツールをVBなんかで作られると
出来たデータの読み込みルーチンを違う言語で2つ作らなきゃいけなくなってすげー面倒だよね
ちょwおまwなんでVBなんかで作ったの?
って感じだった
後、エクセルに埋め込んであるVBA
てめーは比較ツールで差分すらみえねーから逝っていいぞw
>>350 構造体のフォーマットはそのままでいいんだからCだろうがC++だろうが同じことだろ
君はデータコンバーター自体にゲーム本体での読み込みコードまで書き込むわけ?
だいたい、C++を使うという事はCのコードでも再利用できるということだよ。
なんでそんなにどうしようもない思考しか出来ないほど間抜けなの?
>>350 、
>>354 は適材適所という言葉を知らんのだろう。
それとも、ひとつの言語しか使えないのか・
自作のクラスライブラリとかつかわんのか。
>>356 うーん、でもC++で扱うデータをVBやらスクリプト言語やらで作るなよとは思う
その上データのバイナリイメージの詳細をきちんと示さない奴は氏ねよと
ただ、エクセルVBAはないと仕事にならない事も多い
パラメーターなんかのデータ入力は基本エクセルでやるからな
自分で使うだけなら全て自作のスクリプトでいいけれど
俺の場合はエクセルVBAからCのツール呼び出すけど
脱線しすぎだなw DirectXの話に戻ろうぜ
周辺ツールなんか Excelでデータ管理したり PerlやPythonやC#でさらっと作成してるのが普通だと思ってた秋
C#(笑)
>>355 >だいたい、C++を使うという事はCのコードでも再利用できるということだよ。
>なんでそんなにどうしようもない思考しか出来ないほど間抜けなの?
C++からCの場合は対応させるために大幅な修正が必用。
CをC++側のコーディングスタイルに合わせるためにラッパーの追加。
そんな無駄な作業をしてまで
>データコンバーター等
をCに限定する意味が不明。
余計なコードが増えた分だけテストのチェック項目が増えるというのに、どれだけ頭が悪いの?
今だったらツールはC#が当たり前かと思ってた。 未だにWin32でGUIとか作ってるところあんのかね。
>>362 あのさ、
読み込みルーチンわざわざ別の言語で2回作らなきゃいけないのに
これでチェックを少なくできるとおもってんの?
しかも読み込みルーチンだけならいいけど
C++でこさえてあるほかの関数まで必要になっても全部別の言語で
書き直さなきゃならないじゃない?
みるからに手間がハンパねぇよ
ちょっとしたもんだって嫌だよ
だいたいそんなにその言語強力かよ
ちょっとした手間惜しんでっていうか自分がさわってみたかっただけの
言語を会社で使うんじゃねーよ
絶対お前使えねぇって
>>363 .NetFrameworkさえ使えりゃいいんじゃねぇの?
366 :
デフォルトの名無しさん :2008/11/09(日) 13:46:04
まーた生産性厨か
>>362 >C++からCの場合
どこにもそんな事を書いた覚えはないんだが?
よっぽど馬鹿な事をしていない限りはそのような無駄な作業は
一切発生しないから心配しなくても大丈夫だよ。
よくわからんが、君が作るとなぜか余計なコードとやらが
無駄に増えてしまうのかもしれないね。
てか、
>>362 =364なん?
誰にレスしてんの?意味不明なんだが。
確かに、アンカー番号すら間違う
>>364 のような頭の悪い子には
複数言語を扱うのは無理かもね
他言語を覚える程度のちょっとした手間を惜しむような怠惰な子は
仕事じゃ使えねぇって
言語なんて時代が流れるにつれて移り変わっていくものなんだから好きなの使えばいいんだよ C++しかやってなくて他言語を使えないんだったらちょっとしたツールでもC++で作ればいいだろうさ でも別言語だろうと苦もなく使えるぐらいの柔軟性がなければプロとしては失格
会社とかプロとか一人で何言ってんだろ。 ストレスですね。わかります。 早死にしてください。
そうだな。ここは初心者の素人が集まるスレだからプロも会社も関係ないんだ。
ところでここしばらくDirectXのDの字も見てない気がするんだが
質問です。DirectXでのおっぱいのリアルな揺らし方を教えてください。お願いします
375 :
デフォルトの名無しさん :2008/11/09(日) 15:02:58
あ泉風呂でDirectX呼べるの?
>>374 解剖学を勉強汁。
モーションだけなら乳限定で開発していた日本のベンダーがあった気がする・・・
>>374 まずは
>>374 自身が「おっぱいのリアルな揺れ方」を勉強してくるんだ。
エロゲーの2次アニメや3DCGではなく、本物の。
DirectXの出番はその後。
378 :
デフォルトの名無しさん :2008/11/09(日) 15:39:14
今まで: 単純な運動をそれぞれ担当する下請けがいくつかあって どれを組み合わせるか決める元請けみたいなのがまた別の場所にある 今: 同じ場所に高速担当と低速担当がいて これらが適当に組み合わせとかを変えることで 柔軟な運動ができる ってことか?
XP+VC2008EEで DirectX9のプログラムを開発しているのですが SDKは最新版(2008 Nov)を入れた方が良いのでしょうか? DX10/11は開発できないのでぶっちゃけて古めのSDK(2008 Mar)でもいいのかなと・・。
自分で判断できない馬鹿は何使っても同じ。
たぶん、またくだらない質問しにくることになるから 2007 August にしとけ
Windows98対応も考えてOctober 2006をお勧め リリースノートをみるとその後のバージョンでは98に対応してないらしい
2006じゃなくて2004じゃね? ってかWindowsXPより前のOSなんてサポートしても仕方ないと思うけど・・・
だれも対応を望んでいるなんて言っていないのに、 とっくにサポートが切れたセキュリティリスクの塊なOSを 話に持ってくるのは、頭がおかしいから?
>>383 最新版のリリースノートにも明記してあるぞ
本語版ドキュメントのOctober 2004と勘違いしてるんでね?
>>383-384 家にもまだWin98マシンがあるからな。動かないのは寂しい。
386 :
デフォルトの名無しさん :2008/11/09(日) 20:58:59
NT4.0ならともかく98、Meとかありえねーから
DX6以降は逆立ちしても使えないNT4とな
NT4.0は9x系以上にねーよw
だったらもうWindowsServer2003に対応しろよ
というか、"SDKでの開発"がサポート外なだけで、 出来上がったexeの実行自体はできるんじゃないかしら。
>>385 セキュリティーホールが永遠に塞がれることのないOSでネットに繋ぐな。
迷惑以外の何ものでもないのが分からないのか?
サポートの方には98.Me使ってるって話は未だにくるな
上のツールの話だけど単純にいままで作ったライブラリが使えないのに わざわざ新しい言語でツールを作る意味あるの?
職場に来た新卒君が同じことやっちゃって ちょっとどういう神経でそういうことしたのか聞いてみたかった
何のツールかによるだろ 描画やファイルフォーマットが絡むツールなら共通部分を ライブラリ化するなりメインのプログラムからコピってくるなりした方が早い
自分の中でどういう理由があろうとも駄目だしすることが決定してるのに その意図をいまさら他の人に聞く意味はあるの?
GraphEdit(DirectShow)で ファイル名.avi→AVISplitter としようとしたら 繋げないのは何で?
398 :
デフォルトの名無しさん :2008/11/09(日) 22:36:48
それが女って奴だよ。 理由なんて興味はないのさ。 この人は私を愛してくれる、くれないで値踏みしたいんだ。
質問です。BeginSceneの後にRENDER_TARGETなテクスチャをSetRenderTargetでセットして そのままEndScene→Presentとした時、画面が真っ黒でレンダリング結果が何も表示されないのですが、 こういう使い方は許されないんでしょうか?
401 :
デフォルトの名無しさん :2008/11/10(月) 00:10:25
入門書を読んでゲーム作成を学んで行っているのですが、質問させていただきます。 アニメーションのところで、頂点の変換について読んでいるのですが、そこでは CPUで頂点座標、法線を計算した後にシェーダーや固定機能パイプラインを使って 残りの描画を行っています。 その理由が、「頂点シェーダだと大規模なフレーム構造をもつモデルが処理できないため」 と書いてあります。 しかし、CPUに付加をなるべくかけたくないので、このあたりも頂点シェーダで行いたいと思っています。 具体的には、 モトの頂点バッファのSUBETENO座標と法線に、それぞれスキニング行列とウェイトをかけると言う作業です。 フレーム数が少なければこの処理も頂点シェーダで出来るとのことですが、具体的な方法などを解説されているサイトなどは無いでしょうか? まだ初心者なので、とりあえずCPUで処理するように組んだとして、後に頂点シェーダに変更が容易かどうかだけでも教えていただければうれしいです。
すいません・・・上の10行目の「SUBETENO」は「すべての」ですorz
403 :
デフォルトの名無しさん :2008/11/10(月) 00:19:05
すれ違いでしたか・・・申し訳ありません。 誘導先の方でもう一度聞いてみます。ありがとうございました。
>>400 SetRenderTarget()でテクスチャに設定して描画したなら
描画結果はそのテクスチャに書かれてるんだろ。
バックバッファには何も書いてないんだからPresent()してもそりゃ真っ黒だろ。
>>405 ありがとうございました。
IDirect3DStateBlock9って内容をコピーする場合は一度デバイスに適用して取得、という手順を踏まないと
できないんでしょうか?むしろ、これ使ってる人っているんでしょうか・・・
コピーをしない。する必要ないじゃん。設計を見直せ。
ステートブロックを保持するクラスのオブジェクトを作ったときに初期状態として、デフォルトの設定をコピーしたり、 コピーコンストラクタ等で処理するときに使います。
409 :
デフォルトの名無しさん :2008/11/10(月) 08:13:20
設定項目の類は自分で保持したほうがよくね? デバイス吹き飛んだら一緒に吹き飛ぶもんもあるし
その手間省けるかと思ったんですが、やっぱりそういうことになるんですかね・・・ うーん、ありがとうございました?
411 :
デフォルトの名無しさん :2008/11/10(月) 17:18:12
ぐぐれ
DirectXでゲーム作ってるけど、描画ってすごく大変なんですね。 線形補間のところを自分でやったんだけど、描画のたびにいちいちこんなに細かい処理するのか・・・ 近いキーを捜してウェイトをかけて。。。って。 MMOとかでもさすがに線形補間はしてるだろうけど、やっぱ3DMMORPGはすごいな・・
413 :
デフォルトの名無しさん :2008/11/11(火) 18:31:27
何の補間の話だ?描画じゃなくてモーションの話をしてんのか?
あ、ごめん。モーションだ。
てか、いまどき頂点ブレンドの話?
モーションの補間なんて別に難しい話じゃねぇと思うが・・・。 てっきりバイリニアを自前で実装でもしてるのかと思った。
きちんとクオータニオンを使って補完しろよ 線形でやると動きが滅茶苦茶不自然になるぞ
>>416 普通にモーションで、前と後ろのキーにウェイトをかけて補間してるのですが、最近はこんなのしないんでしょうか?
本からの知識だけだから常識的なことがわからないorz
>>419 それは前提。その2つを単純な線形補間でやるかどうかの問題。
移動やスケールならTCBスプラインでつないだりするし、
回転ならクォータニオンでつないだりする。
ウェイトかけて足すだけで終わりなんてのはプレステ時代とか携帯機ぐらいじゃないかい。
液晶ディスプレイだと、個々のディスプレイの相変換反応スピードに応じて適切に表示がなされるように設計しないといけないのですか?
>>421 readmeに反応速度遅い液晶お断りって書くだけでOK
最近、横に広いディスプレイが増えてきて 640x480で作った昔のゲームが ( ´∀`) ↓ ( ´ ∀ ` ) こんな感じで困る
○が⊂⊃な感じになってるしよ・・・w
425 :
デフォルトの名無しさん :2008/11/12(水) 19:30:59
っ 額縁君
横広ディスプレイなんてパソコンの主な使用用途であるテキスト表示には 不利益しかもたらさないのになぁ 頻繁に縦スクロールしなくちゃなんなくてめんどいわ
高さ一緒なら、同時にたくさんウィンドウ並べられるワイドの方が効率いいだろ
横長モニターでフルスクリーンの場合ってどういう処理するのがスマートなの?
ワイドディスプレイに魂を売り渡すくらいならマルチディスプレイにする
431 :
デフォルトの名無しさん :2008/11/13(木) 00:31:49
directx 9.0cをダウンロードしようとすると 「ファイルをダウンロードできませんでした。後でもう一度〜」と出るんですが、時間がたてば ダウンロードできるようになるのでしょうか?
432 :
デフォルトの名無しさん :2008/11/13(木) 00:35:04
それはこのスレで聞かないといけない質問だったんか?
433 :
デフォルトの名無しさん :2008/11/13(木) 01:54:43
NMIなんてZ80の頃からあるわけだが。問答無用に0066hに飛んじゃう命令。 ハード的にはプルアップされて使えないようになってた。 パイプラインなんてjmp使えば一発だし。
434 :
デフォルトの名無しさん :2008/11/13(木) 04:22:58
おれもdirectx9.0c最近ダウンロードできない・・・。 お詳しい方ひとつよろしくおねがいします。
436 :
デフォルトの名無しさん :2008/11/13(木) 16:24:41
Vector4 の w ってなんなの?
437 :
デフォルトの名無しさん :2008/11/13(木) 16:33:50
(笑)
>>436 4次元数とかクォータニオンで調べてみれ
時間軸だよ
_, ._ ( ・ω・) ○={=}〇, |:::::::::\, ', ´ 、、、、し 、、、(((.@)wwwwwwwwwwwwwwwwwwwwwww
Vector4のw要素は通常1でいいんだよ 要素が4つあるのは4×4マトリクスとの演算のときに都合がいいから まあクォータニオンとかは別に素人が覚えなくてもいい
その前にチュートリアルはきちんとやったのか?
2008か・・・・ Express Edition入れたくないなぁ
>>443 × D3DXMatrixRotationZ(&mt, m_rotate.z);
○ D3DXMatrixRotationZ(&mwork, m_rotate.z);
よね。
D3DXは使うなって書いてあった
なんの根拠もないけどな
>>446 ぱおおおおおおおおおおおおおおおおおん!!
ありがとうございます!!
嬉しすぎてぞうの雄たけびをあげてしまいました
D3DXMatrixRotationZ(&mwork, m_rotate.z);
に変更したら表示されました。
コナミの人が自宅のベランダでチンコぱおおんさせて逮捕されたって昔聞いた
○○勤務の会社員が自宅のベランダでチンコぱおおんさせて逮捕されたって昔聞いた ○○病院の医師が自宅のベランダでチンコぱおおんさせて逮捕されたって昔聞いた ○○学校の教諭が自宅のベランダでチンコぱおおんさせて逮捕されたって昔聞いた まぁ、よくある話だな
開発環境
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が定義されてないのが原因かな?と
以上の情報からどういった事が考えられますか?
ここはDirectX初心者であって、統合環境初心者スレじゃない。 ライブラリの指定も出来ない奴はDirectX云々以前の問題。
454 :
デフォルトの名無しさん :2008/11/14(金) 19:46:29
DirectX勉強する前に、C++の勉強をする これマジおすすめ
LIBのディレクトリ指定だけで完了と思い込んで個別のLIB指定しないのは 外部のLIB初めて使う人か
とはいえC++だけの勉強だと ライブラリの追加体験しないこともあるしな 15歳からはじめるDirectXとかいう本は 統合環境のインストールの解説してるのに ライブラリの追加について一切書いてなくて笑ったのを思い出した
457 :
452 :2008/11/14(金) 20:42:31
>>454 C++はそこそこ書けると自分では思っています
>>455 プロジェクト→プロパティ→構成プロパティ→リンカ→入力→追加の依存ファイルには
d3dx9.lib d3d9.libを追加してます、DirectXを使う前にDXライブラリを使ってみて
そのときにはそんなこんなで上手くいったんですけどね・・・
まずコンパイルがどういう手順で行われているか ライブラリをリンクするには何が必要か directxとは関係ないことだと思うんだよね
追加の依存ファイルじゃなくてファルダじゃね?
460 :
452 :2008/11/14(金) 21:01:49
すいませんお騒がせしました・・・ 実行可能ファイルに追加するのを忘れていました・・・ 現在VisualStudio2008を使っていて 以前使っていたVisualStudio2008EEで試した所実行できたのでそこから発覚しました
>>431 ですが、待っていても全然インストールが始まらないんですが・・・
コンポーネントのインストール
初期化しています→「ファイルをダウンロードできませんでした。後でもう一度実行するか、ネットワーク接続を確認してください」
のループなんですが・・・自分だけでしょうか?
セキュリティぬるくkしてみりゃいいんじゃね。知らんけど。
463 :
デフォルトの名無しさん :2008/11/14(金) 22:25:20
質問:ウィンドウモードにおけるティアリングの解消 環境:WindowsXP SP2, DirectX9.0c ウィンドウモードにおいて、Direct3D9で垂直同期待ちを行っている にもかかわらず、ティアリングが発生します。 その際、ポリゴン数が増えるに従いティアリングの境界線は下降します。 また、当然かもしれませんがフルスクリーンモードでは正常に描画されます。 ビデオカードの仕様かと思いましたが、ひぐらしデイブレイク体験版では ティアリングは確認できませんでした。 何か解決法があるとは思うのですが、見当がつきません。 ご教授頂ければ幸いです。
>>461 OSが割れじゃね?
割れじゃ無理だけど
心当たりは?
>>463 ウィンドウモードでティアリングって回避できるの?
で ティアリング ウィンドウモード でぐぐってみたらそのものずばりが出てきたけど 俺的には本当にできるんかちょっと疑問 仕組み的に〜・・・まあ、できたら報告ヨロ
467 :
463 :2008/11/14(金) 22:36:08
>>464 OSは正規品です。
>>465 Direct3D9から垂直同期待ちが可能になったようです。
ビデオカードに影響を受けるため確実ではないようですが。
>>466 GetRasterStatusを利用してもティアリングは解消されませんでした。
ライトを計算してモデルを表示すると普通に表示されます。 ライトと計算して板ポリに貼ったテクスチャを表示させると全体的に暗くなってしまいます。 ライトを計算しないと通常に表紙されます。 ライトを計算させて 通常に表示させるにはどうすればいいんですか?
469 :
468 :2008/11/14(金) 22:43:18
テクスチャステージの設定はこうです m_pd3ddevice->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE); m_pd3ddevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE); m_pd3ddevice->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE); m_pd3ddevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE); m_pd3ddevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE); m_pd3ddevice->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE); ライトは CDXLight::CDXLight() { ZeroMemory(&m_light, sizeof(m_light)); D3DCOLORVALUE c, c2; D3DVECTOR v; c.a = c.r = c.g = c.b = 1.0f; c2.a = c2.r = c2.g = c2.b = 0.2f; v.x = 0.0f; v.y = 0.5f; v.z = 1.0f; SetDirectional(c, c, c2, v);
>>461 です
この間変な音がしたり、PC画面にラグが出たりしてたので、OSがこわれているのかもしれません・・・
その場合どうすればいいんですか?
パソコン変えろよカス 全然DirectXと関係ない質問だ もう二度とくるなよ
>>470 新しいPCを買う
(自作orノートPCの方向は無しで
趣味ゲーPGでノートPC買う人がいるけど
何回も実行繰り返してるとノートだとなんかグラボの調子悪くなるなーっての俺だけ?)
>>464 >>473 さん返答アリでした
他の旧バージョンDirectXはDLインスコできたのですが、関係なさそうですね
9.0cなんてダウンロードできるところからいって見つかりにくいし やめたほうがいいんじゃね? 情報の共有者も少ないことを意味してるよ
9.0cがよかったのはなんか他のバージョンがdllを配ってくれなかった頃だけど 今はパックで全部くばってるからつかう意味ないよ
477 :
463 :2008/11/14(金) 23:09:47
>>471 出来ないかもしれないですが
垂直同期待ちを正確に行えるなら理論上は可能かなと。
>>475 >>476 確かに。
バージョンを更新すれば改善される可能性もあるかもしれませんね。
デスクトップ分のバッファを取ってフルスクリーン風に扱えばいけるのだろうか?w
ID3DXFont に PreloadText って関数が出来てるんだけど。 これ使うとはやまなったりする?
480 :
463 :2008/11/14(金) 23:45:13
>>478 壮大ですね。
ただ、フルスクリーンにしないなら、垂直同期を取る必要がありますし、
結局ティアリングは回避できないかとおもいます。
少し話はかわるのですが、描画コストが同じなら同じところに境界線が発生します。
そして、描画コストが増大するに従い境界線は下降します。
ということは、垂直同期は実は正確に取れていて、
描画にかかった時間分ずれが生じてティアリングが発生しているのかと思いました。
そのため、EndScene()を呼んだ後、描画完了まで
Sleepで数十ms待たせてみたのですが解消されませんでした。
ちなみに、クエリは自分の環境では作成できないため実験は行えていません。
他にアイデアはないでしょうか。
DirectX9でもウインドウモードで垂直同期をとるもは無理。 あれは内部でタイマーを使ってそれっぽくしているだけ。 単純にウインドウモードと挙動を合わせるためのものであって、 それ以上でもそれ以下でもない。
Presentするとちゃんと60Hzで返ってくるよ
483 :
463 :2008/11/15(土) 00:42:52
>>481 なるほど。
ただ、Present内部ではGetRasterStatusを使用して
画面がリフレッシュされていないタイミングをはかっているようです。
その際に、タイマーを利用しているのかもしれませんが、走査線が下端に到達
するまでの時間を算出してその時間分待っているのではないでしょうか。
少し、Presentがブラックボックス化しているのが気になりますね。
本当にバックバッファとフロントバッファのコピーは高速なんでしょうか。
ポインタを入れ替えるだけとドキュメントには書かれていますが。
もし、そこに時間がかかっているなら、描画コストが増えるに従って
境界線が下降する理由もわかります。
>>467 俺はウインドウモードでティアリングを防ぐなんて試したことはないが、
GetRasterStatusの使い方が悪いんじゃない?VBlank待ってない?
走査線がクライアント領域より下にいったら、即Presentでいいかと。
あと、GetRasterStatusの前にD3DQUERYTYPE_EVENTいれとかないと
意味がないと思う。
> フルスクリーン モードは、リフレッシュ レートやスワップ効果にかかわらず D3DPRESENT_INTERVAL_IMMEDIATE をサポートすることにより、 > ウィンドウ モードと同様の使い方をサポートします。D3DPRESENT_INTERVAL_DEFAULT はデフォルトのシステム タイマ精度を使います。 システムタイマーは1000msの精度。60Hzのエミュレートなら16.66666…で割り切れないのでどっちにしろ徐々にずれる。 D3DSWAPEFFECT_COPYを指定しない限りは明示的にバック⇒フロントへのコピーはない。 コピーしてたとしても全画面描画1回相当の処理が目に見えるほど遅延していくなら根本的に1/60秒で動かないだろ。 まぁそこまで細かく気にするならゲームなんだしフルスクリウーンでやれや、って事だろう。
ウィンドウモードでゲームプレイする奴はその程度の事を気にしない
試してみようと思ったら、俺のところでは全くティアリングが発生しない。 Vistaだからか?
はやくおまいらの話についていきたい45歳秋
基本的な質問で申し訳ないのですが、質問させていただきます。 DirectXをつかったゲームで、入力された情報は一般的にはどうやって受け取ればいいのでしょうか? WIN32APIでは普通にウィンドウプロシージャで受け取っていましたが、入門書では、WinMainのメッセージループで while(message != WM_QUIT) { if(PeekMessae(&msg,NULL,0,0,PM_REMOVE)) { //省略 } else{ GetKey() //デバイス->Acquire()でキー入力を受けつける //以下はRender()などの呼び出し } } としていました。 後者の方がDirectXでは一般的なのでしょうか?
別に好きな方で問題ない
スレッド
>>489 DirectつながりでDirectInput使う
493 :
463 :2008/11/15(土) 17:27:54
>>484 D3DQUERYTYPE_EVENTは自分の環境では作成できないです。
走査線がクライアント領域より下にいった直後にPresentしても多少
境界線の位置がかわる程度で違いはほとんどありませんでした。
>>485 なるほど。タイマーを使っているとは知りませんでした。
確かに、少しずつずれていきますね。
D3DSWAPEFFECT_COPYにしてみましたが、さほど違いは出なかったです。
とすると、疑問なのはGetRasterStatusを使ってもずれるという点です。
D3DPRESENT_INTERVAL_IMMEDIATEで生成しておいて、GetRasterStatusを使っても
ほとんど同じところに境界線ができるんです。
>>486 最悪、気にしない方向で諦めようかと思ってます。
>>487 vistaはOSレベルで制御しているため、ティアリングが生じないようですね。
494 :
449 :2008/11/15(土) 17:32:37
>>494 ゲームを作りたいならもっと汎用性がある方が良い
とは言ったものの、自分じゃ直し方良く分からないので他の人に(ry
>>494 frame.cpp: line 117-118
m_dwStyle = GetWindowLong(m_hwnd, GWL_STYLE);
m_dwStyle = 2495741952;
これはどんな意図があるんですか…?
スタイル初期値です。
3Dリアルタイムアニメーション という本から参考にした部分があるのですが その部分の補足には スタイル初期値(とりあえずこれで問題はない) と本にコメントが付け加えられてました
GetWindowLongPtr使うべきだし GetWindowLongした意味ないし マジックナンバー使うし
>>498 移動のコードは間違いじゃないけど、
せっかく入力・演算・描画を分けた意味がない気がする。
他の人にも意見を聞いてみるといいよ。
スミマセン質問があります。 環境 : VC2005 / SDK(March 2008) / XP DirectXでXファイルを扱うときに頂点カラーを引っ張りたいのですが何処を見ればいいのでしょうか。 HLSLで描画する際にVertex ShaderのCOLOR0に自動的に入ってくると思ったらそうじゃないみたいで……・
ダダーンウーボヨボヨボヨアーアーアー
>>502 xファイルに頂点カラーの情報(MeshVertexColors)が入っていないか
入っていたとしても頂点フォーマットに頂点カラーが含まれてないかのどっち
単純にテクスチャなしのxファイルを表示したいだけなら
マテリアルのDiffuseをシェーダーに渡して色情報として計算する
返信ありがとう御座います。 xファイルにはデータが入っていることを確認したので頂点フォーマットに無いのでしょうね…… マテリアルはオブジェクトの識別に使うという変な使い方してて、 同一マテリアル内で色を変える場合頂点カラーが必要という珍妙な設計になってるのです。 大人しくマテリアルでやる方向に変えた方が良いかもしれないですね
>>505 まるで頂点フォーマットを何かが勝手に作るように書いてるが
頂点フォーマットを作るのはおまえさんの仕事だぞ。
507 :
502 :2008/11/16(日) 14:10:07
D3DXLoadMeshFromXでXファイルを読み込む前に、 FVFをどこかで設定出来ると言うことですか……? すみません勉強不足過ぎました。もう少し調べてきます。
508 :
463 :2008/11/16(日) 14:31:41
Presentの代わりにBitBltを利用してみました。 確かにティアリングは減った(ほとんど見えない)と思いますがFPSが著しく落ち込みガタガタです。 ただ、FPSが25程度なのでがたがたして気づかないだけかもしれませんが。 一応、環境や最適化不足のためかもしれないので手順を書いておきます。 1, Flags=D3DPRESENTFLAG_LOCKABLE_BACKBUFFERでDirect3DDevice9を生成。 2, GetRasterStatusで垂直同期待ちを行う。 3, バックバッファからHDCを取得し、BitBltでウィンドウへ書き込む。 もう少し細かい話もありますが、大方こういう手順になるかと思います。 どうもBitBltの負荷が高そうですが、高速化する手はありますか?
GDIの遅さや不便さを何とかするために DirectXが開発されたのに原点にもどったら本末転倒
>>508 FPS25じゃ垂直同期に間に合う合わないなんて関係無いクオリティじゃないか?
モデルを最初から左にずれた場所に配置したいのですが D3DXMATRIX mtx; D3DXMatrixIdentity(&mtx); D3DXMatrixTranslation(&mtx, -2.0f, 0.0f, 0.0f); d3ddevice->SetTransform(&mtx, 0); で配置すると確かに配置できるのですが キーボードでキーを押した分ずらすコードを加えるにはどうすればいいですか
そろそろ自分で考える努力をしたらどうかな。
Win32APIすれで聞くといいんじゃね
D3DXMatrixTranslationの引数の値を変える
>>512 分かりました 自分で悩みまくって作った方が上達する気がしてきました
それではしばらく失礼します。
描画内容があまり頻繁に変化しないので、 変更があったときのみ描画処理を行うようにして、それ以外はフロントバッファに表示されているものをそのまま表示したいのですが、 presentする直前にバックバッファをサーフェイスにコピーしておいて、それを書き戻すとかでいいんでしょうか? 一般的な方法があれば、教えてください。
そもそも描画が行われなかったときは サーフェイスをクリアしなければいいのでは?
>>516 D3DPRESENT_PARAMETERSのSwapEffectに
D3DSWAPEFFECT_COPYを指定する。
本にはD3DSWAPEFFECT_DISCARDにしろって書いてあったよ
入門サイトを見て とりあえずデバイスを作ってPrsentだけしてみたら アダルトゲームの画面が表示されたんですけどバグですか。
いいえ、仕様です。
ハッキングされてます
523 :
516 :2008/11/16(日) 16:57:14
レスいただいた方々、ありがとうございます。
>>517 質問させていただく前に描画関数の中身とか呼出位置を変えて色々試してたんですが、
他のウィンドウがかぶった時の挙動とか、どうにも思い通り行かなくて質問させていただいた次第でしてorz
>>518 バッチリ思い通りになりました、ありがとうございました。
>>519 ご忠告どうもです。
もうすこし詳しく調べてみます。
ちょっとお聞きしたいのですが、よくゲームの動作環境で VRAM幾つ以上というようなのがありますよね 自作ゲームの動作環境にそういう情報を明記したいのですが、そのために 現在PCで使われているVRAM容量を調べるにはどうすればいいのでしょうか? 使用VRAM情報をチェックする関数とかはありますか?
>>526 DirectX9なのですがなんという関数を使えばいいのでしょうか?
>>527 GetAvailableTextureMem
だが、推定
BBXに「?」ってのが書いてある
そこは遥か昔に閉鎖したぞ
今時はVRAMなんてほとんど基準にならんけどなー
533 :
525 :2008/11/16(日) 22:56:06
レスありがとうございます。
>>523 LoadTextureをやる毎に使ってみました。
が、数値は70MBちょいぐらいで固定っぽいです。(ビデオカードのVRAMは96MB)
テクスチャは読み込んでもVRAMには格納されないんでしょうか?
簡単な2Dゲームなのでで処理スピードには問題がない為別にいいのですが…
LoadTextureってVRAMに読み込む/読み込まないの切り替えができるんですかね
>>530 旧バージョンを使ってるので役にたつかわかりませんが、後で見てみます
>>532 確かに、最近のPCゲーだとVRAM容量表記が特にないものが多いですよね
DX8あたりからマネージドになってるから気にする必要ないんじゃない。パフォーマンスに影響はあるけど。 昔は全部自前で管理する必要があった。
535 :
525 :2008/11/16(日) 23:00:35
>>533 LoadTextureじゃなくてD3DXCreateTextureFromFileInMemoryでした
536 :
525 :2008/11/16(日) 23:17:09
>>534 自分なりに調べて見たらD3DXCreateTextureFromFileInMemoryEXというのを使えば
意図的にVRAMに読み込ませる事もできるみたいですね
パフォーマンスが必要になるようなソフトを作る場合にはこちらを使おうと思います。
ありがとうございました。
それ主記憶じゃなくてVRAMにストックしておく関数だっけ?
プール先を指定できる
539 :
502 :2008/11/16(日) 23:35:53
スミマセン、色々調べてみたのですが結局分かりませんでした。 Xファイル自体には頂点色を保持しているのは確認済みです。 D3DXLoadMeshFromXを使ってxファイルを読み込み頂点色が欲しい場合、 LPDirect3DDevice9::SetFVFを使ってFVFを通知してからXファイルを読み込むという手順ではダメで、 いったん読み込んでから、CloneMeshで頂点フォーマットを設定し直すと言うのもやはりダメでした。 D3DXLoadMeshFromXで頂点色を捕まえる方法は有るのでしょうか。 そもそもVertex ShaderのInputのCOLOR0セマンティクスに入ってくるのは頂点色という認識で良いのでしょうか。
Xファイルに頂点色が入っているならD3DXLoadMeshFromX()の時点で 作られたメッシュには頂点色が入っている。
Vista入りのノート買ったからDX10に手を出してみたけど、意外と変わってるのね。 FVF消えたりD3DFMTが気持ち悪いことになってたり。 で、質問なんだけど、サンプルコードのライセンスってどこに書いてあるの? 卒論のためにコード書かなきゃいけないんだけど、カメラとかいちいち書くのが面倒だから BasicHLSL10のサンプルを流用したいのよ。 *nixの世界みたいに、ルートディレクトリにはっきりとライセンス定義を置いておいてくれると有り難いんだけど……。
別に三流学生の卒論コードなんてどうだっていいだろ 一般公開しなければ
543 :
デフォルトの名無しさん :2008/11/17(月) 12:32:08
HLSLでsamplerオブジェクトを定義するとき 今まではtexture2DやtextureCUBEに関係なく"sampler"と書いていたのですが textureに合わせてsampler2D, samplerCUBEにしたほうがいいのでしょうか? 違いや書き分ける意味はありますか?
>>542 公開するから質問してるに決まってるだろ高卒
公開しないでいいよ。君の糞コードなんて。
D3DX〜は使ったら駄目って常識のはずなんだが
ライセンスについて調べようと思ったら、まずは使用許諾書に目を通すものだが、 なんでその程度の、ごく当たり前のことをする程度の知能すら持ち合わせていないのかが謎。
デバッグモードでは正常にビルドできるんですがリリースモードだと以下のエラーが山ほど出てしまいます、、、 予想では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ファイルとデータファイルを同梱すればとりあえず配布は大丈夫でしょうか? 一応そのやり方で自分の環境では動作したのですが、、、
549 :
548 :2008/11/17(月) 20:48:54
ずっとDebugモードのプロパティいじってた\(^o^)/ 自己解決しました、スレ汚しすいませんw
プロジェクトの設定はリリースとデバッグで別々だが、ライブラリとか両方に設定してある?
551 :
502 :2008/11/17(月) 20:49:49
>>540 遅れましたがありがとうございました。
おかげさまで何とか出来そうです。
好きにしろよばーか
自分の知らない事、どうでもいい事を聞くと怒り出す奴っているよね。キチガイ? 好きにしていいならsamplerとsampler2Dが分かれてる意味ないじゃん。
別れてることに特に意味はないし 好きにすればいいと思うよ 同じサンプリングで描画するなら一つでいいし 物によって変えるなら複数作って使い分ければいいだけ
好きにしちゃいけないって誰が決めたの?
当然の事を言われて怒られてるだのキチガイだの言い出す
>>554 はアホかと。
よくわからずに使ってるのか
ただのaliasなの?
sampler3DやsamplerCUBEのみのSamplerStateがあるため 意味なんかないから好きにしていいとか馬鹿にも程がある プログラマ失格
GLSLでは違うけど HLSLではまったく同じものなんだが
>>559 じゃあ意味があるから好きにしちゃダメだよ
とでもいえば納得するのかな?(笑)
というわけで、
>>543 は好きにしちゃダメだという事で。
はい次の人〜。
はい次の人〜。
あのぅ、私は…
自分の想定と違う事を言われると納得できないんなら最初からそうすりゃいいのにな 他人の同意がないと何もできないのかね
640*480で作ったデバイスを引数にD3DXCreateSprite関数でID3DXSpriteを作ったら、 レンダーターゲットを1024*1024にしてID3DXSprite::Drawを実行したら、画像が引き延ばされて 描画されたんだけど、そうならないようにするにはどうすればいいんですか? ちなみにレンダーターゲットの大きさは変えられません。
好きにしろよばーか
わざわざそうしてるんだろ
自分の知らない事、どうでもいい事を聞くと怒り出す奴っているよね。キチガイ? 640*480と1024*1024が分かれてる意味ないじゃん。
はい次の人〜。
ウィンドウサイズが640*480じゃないとダメで、レンダーターゲットはテクスチャでなくてはならない。(ピクセルシェーダー使うため) テクスチャは2のn乗サイズじゃないとピクセルが1対1対応してくれないので、1024*1024にしてるんです。
ViewPort
1024×1024の画像ファイルの内必要な部分を範囲指定して表示すればいい
>>572 >テクスチャは2のn乗サイズじゃないとピクセルが1対1対応してくれない
これの意味が分からん
お前が低能無知なだけだろ
おれもわからん 一体何とピクセルが1対1? たてよこ?
1:1対応にテクスチャのサイズなんて関係ねぇだろ。 描画する時の問題だ。
1:1は意味不明だがテクスチャの元画像の縦横を2のべき乗にすんのが普通。 元画像とテクスチャのバッファサイズが違うと引き伸ばされる んで、読み込んだテクスチャバッファのうち、640*480の範囲を指定して スプライトを描画すればよい。
なんで自らが引き伸ばして描画しているのに、「されて」とか他人のせいにする奴が現れるんだろう?
>>575 2のn乗以外のサイズで作ったときってDrawPrimitiveなんかで描画した時どうしても歪んで描画されないピクセルとかありませんか?
何かやり方があるならそれを知りたいです。
>>577 テクスチャ上のピクセルと画面のピクセルがです。
まずはD3DXを一切使うのをやめ、画像ファイルをテクスチャに読み込んで自分でUVを設定し描画するところまでやれ。 それで全て解決する上に、自分がいかに間抜けなことを言っているかも理解出来る。
とんでもなくボロいビデオカードだと2のn乗以外のサイズのテクスチャ使えない?
馬鹿が余計なもん使って遠回りしてらぁw m9(^Д^)プギャー
>>583 正方はさすがにないと思うけど
n乗は守ってるな俺
あんま意味無いかも
っていうか最近のグラボ事情知らん
使えても内部的に無駄が出るんじゃね
2^n以外のテクスチャが使える場合でもパフォーマンスは2^nより落ちるとかいう話を聞いたこともある
2乗は必須だけど正方かどうかはハード次第だろ。
GeForce6以降はテクスチャサイズの最大サイズ以外の全ての制限がなくなったわけだが。 DXTテクスチャですら適当なサイズのまま作れるぞ。
>>583 2のn乗が使えないのは、一番新しいのだとIntelの815の統合ビデオ機能かな?
っていうか、NONPOW2CONDITIONALは、2のn乗しか使えないハードウェアでも
ドライバの対応だけでクリアできるものだと思う。
おまえらの記憶にもうVoodooは無いのね・・・
あんな糞ボードサポートしてどうすんだよ
日韓併合における韓国皇帝の勅諭(原漢文) 皇帝、若(ここ)に曰く、朕否徳にして艱大なる業を承け、 臨御以後今日に至るまで、維新政令に関し承図し備試し、 未だ曽て至らずと雖も、由来積弱痼を成し、疲弊極処に至り、 時日間に挽回の施措望み無し。 中夜憂慮善後の策茫然たり。 此に任し支離益甚だしければ、終局に収拾し能わざるに底(いた)らん。 寧ろ大任を人に託し完全なる方法と革新なる功効を奏せいむるに如かず。 故に朕是に於いて瞿然として内に省み廊然として、 自ら断じ、茲に韓国の統治権を従前より親信依り仰したる、 隣国日本皇帝陛下に譲与し、外東洋の平和を強固ならしめ、 内八域の民生を保全ならしめんとす。 惟爾大小臣民は、国勢と時宜を深察し、煩擾するなく各其業に安じ、 日本帝国の文明の新政に服従し、幸福を共受せよ。 朕が今日の此の挙は、爾有衆を忘れたるにあらず、 専ら爾有衆を救い活かせんとする至意に出づ。 爾臣民は朕の此の意を克く体せよ。 隆煕四年八月二十九日 御璽
テクスチャをDDSファイルで読み込もうとしているんですが 複数のDDSファイルを読み込むと途中で動かなくなってしまいます DDSファイルには特殊な処理が必要なんでしょうか? ちなみに1つであればどのDDSファイルでも 見ている範囲では正常に動いているんですが・・・
随分アバウトな質問だな それはDDS以外のフォーマットなら複数読んでもとまらないってことか?
>>595 すいません
よくよく試してみたら他の形式でも同様の止まり方をしましたorz
ちょっと前までDDSは使ってなくてその間は特に問題が無かったんで
DDSのせいだろうと決めてかかってました
多分他のところに問題があると思うのでもう少しコードを見直してきます
またわからないことが出てきたらお願いします
エスパーするとマルチスレッドで読み込もうとしてデバイスがマルチスレッドのフラグつけていない
Voodooはさすがにもういいだろ SiS辺りのクソオンボとかi810とかはまだ使ってる人居るけど
つーか今から何か出すなら最低でもシェーダーモデル3.0でいいだろ。 GeForce6なんて何世代前のビデオカードだとおもっとるんだ。 3Dゲームやるようなユーザーなら定期的にPC構成弄ってるし。
んーどうなのかな PCのスペック二極化してるから下の層を拾うような仕様だと未だに糞ボードの対応までやってる感じするけど
ゲフォ5200と旧ATI9200以上の対応だけすればいい 理由はウチにあるそこそこ低いボードだからだ 作り手で線引きしないときりがない
ショップの品揃えで判断するとか。 GFX5200とか未だに定番商品みたいに新品売られてるのが泣ける。
だってそれ挿せばとりあえずVista(Aero)動くもん
つってもHD3450が5000円で買えるんだし下見るのももういいだろって気がする。 だから日本はエロゲ以外のゲームがろくに出ないんだよ。
DirectX10+SM4.0だろ 今更昔のクオリティのゲーム作って何が楽しいんだ つーかこのスレやっぱりゲーム作る人多いのね
>>605 そういうのはPCメーカーが底上げしないと駄目だな
あとVRAMみたいな初心者でもわかりやすい目安みたいなのあればいいのに
>>606 楽しさも人それぞれっしょ
むしろ絵を綺麗にするだけの作業なんて何が楽しいんだよとか思うが
>むしろ絵を綺麗にするだけの作業なんて何が楽しいんだよとか思うが リアルタイム3DCG技術についていけなくなった人が自分を慰めるための常套句ですね。わかりますw
自己満足ならそれでもいいんだが ゲームは結局他人に遊んでもらってなんぼだからな どんな流麗なCGでも動かなければ意味がない マイロソフトのやり方だと次あたりのVisualStudioをXP非対応にして まず開発者側の首を締めにかかってくるだろう Vista以上でなければソフトが作れない環境ができてしまえば 市場からXPが消えるのも時間も問題と思われる DirectXSDKはもっと早くXPのサポートを打ち切るだろうしね
>>608 海外向けのゲーム作ってる一部の人がそれ言うなら煽りに聞こえるが
日本向けゲーム作ってる人が言うとただの同意にしか見えない
611 :
デフォルトの名無しさん :2008/11/21(金) 14:42:16
すみません。DirectSoundをはじめて利用して、プログラムを作成しています。 そこでよくわからない状況になって困っています。 SDKはDirectX8(VC6++のサンプルがあるため)を利用しているのですが、 そのサンプルを参考にWAVファイルを再生するところまでたどり着きました。 ところが、再生前にフォーカスをはずすと、音が鳴らなくなるという現象が 発生してしまいます。 フォーカスが外れていても、音が鳴るようにするにはどのようにすればよいでしょうか? よろしくお願いいたします。
サウンドバッファをつくるときに DSBCAPS_GLOBALFOCUSフラグを立てる この説明でわからないならソースうp
613 :
デフォルトの名無しさん :2008/11/21(金) 15:02:49
>>612 解決しました!!ありがとうございます。
これで無事システムを納品できそうです。
即答ありがとうございました。
614 :
デフォルトの名無しさん :2008/11/21(金) 15:06:04
>>608 何人でどのくらいの期間で何をつくるのか知らんが
少数人チームで絵なんかこだわってる暇あったら
中身のほうを煮詰めてほしいと思うんだが
どんな凝ったエフェクトつけようとCG屋がウンコな時点で終了
逆に凝らなくても元のCGがきれいならそれなり
そもそも日本の個人ゲーはリアルタイム3DCGだのシェーダがどうのとか
そういうことを気にする以前のレベルだと思う
無論絵が綺麗に越したことはないが、だからといってゲームが面白いかというと別問題
バンプや反射、屈折の初級エフェクトすらプロでもあんまり使ってくれない っていうかそんな時間ないや デザイナがシェーダの設定ファイルを書いてると遊んでると思われる空気
IBasicVideo の GetCurrentImage を使って、 ビデオのワンフレームをビットマップとして保存しようと思っているのですが、 ソースが mpeg2 の場合だと何故か真っ黒なビットマップしか取得できません。 ソース、取得するフレームの位置、mpeg2 video decoder を色々変えて試してみたのですが、 結果は変わりませんでした。 ソースが avi, wmv, mpeg1 の場合は正常なビットマップを取得でることを確認済みです。 このことについて何かご存知の方おられましたらご教示お願いします。 試した mpeg2 video decoder は次のものです。 MpegVideoDecoder PIXELA, Cyberlink Video/SP Decoder
正直D3D10に興味が涌かないな 仕事以外で使うならsm3での表現力に不足はないし ジオメトリシェーダやその他諸々は高速化以外の用途が見出せないからつまらん
D3D10をチュートリアルから勉強し始めたんだが、Tutorial09以降にDXUTがあって(08は07と等価(見た感じ)だったからスルー)、 DXUTを勉強するべきか悩んでるんだ。皆はDXUT使ってる?やったほうがいいのかちょっと意見を聞かせてほしい。
やったほうがいいもなにも もう大分前からサンプルは全てDXUTで書かれてるんだから 極める必要はなくても理解はしておく必要はあるだろ
そうか なら08からやっていってみることにする。
DXUTは簡単に説明してるHPとか書籍とかほとんどないのをどうにかしてくれ
MSDNライブラリじゃだめ?
あれ以上どう簡単に説明しろと…
ソースコードあるんだからそれ見て分かれ。
どうやったらアレ以上簡単に説明できないという結論になるんだか
しかしアレをわざわざ説明なんてする奴はいないだろ。
DirectXの最新版の再配布用パッケージってMarch 2008であってますか? もう更新してないんですか?
3Dゲームでオンライン対戦が存在するゲームを作っています。 通信対戦の際に小数点演算の計算結果が不特定のタイミングで微妙に 異なる場合があり、結果的にそれが原因で同期がズレるケースがあります。 調べた所、FPUのコントロールワードの値がバックで動いているアプリや 環境等によって変更される事があり、それで演算結果がPCによって 異なっているというのが原因ではないかと突き止めました。 しかしながら、DirectXの算術関数や関数群は浮動小数点を引数に取る物が 多いですし、すべての演算を整数値で済ませるのはなかなか困難です。 D3DCREATE_FPU_PRESERVEというフラグを指定すればFPUの計算精度を 変化させてPCによる演算誤差を無くせると聞いているのですが、これは あくまでもDirectXの算術関数についてのみなのでしょうか? (ちなみに当方はこのフラグを指定しても対戦がズレます) また、SinやCos等の標準算術関数も同じように浮動小数点を用いますが これに関しても対処しなければならないと思います。 その術はあるんでしょうか? どなたかFPUのコントロールレジスタのリセット方法かアドバイスを お願いします。
そんだけわかっていて設定方法が見つけられないなんて・・・。定番なのであえて教えないw コントロールワードはスレッドごとに独立している。もちろんプロセスはお互いに干渉しない。 DirectXを使わないでデバッグしてみるといいよ。CWに関係なく自身のコード的なバグである可能性が高いように見える。
俺も昔同じ問題にはまったことがある PCごとに計算結果が変わるなんだこれ?とか思ってびっくりした 2chで質問したら計算結果なんて変わるわけねーだろ、バカかとかってあしらわれたよ
>>630 Summer2008とかNorvember2008とかリリースされてる。
DirectX9も10も延々と拡張され続けていくと思った方がいい。
>>631 環境によって計算結果が違うなんて事はありえない。
そんな事があったら根本的な部分で大問題になるから。
たとえばシングルコア環境とマルチコア環境でスレッドの動作が違っていて
結果がおかしくなる事があるとそういうロジックのミスを疑うのが先。
あえて助言をするならD3DX関係の算術関数(行列、ベクトル)は内部で
CPUの拡張命令を利用するために分岐してるのでそれが原因で計算結果が変わる。
環境AではSSEを利用するけど環境BではFPUを利用するなら計算結果がちょっとずつずれていく。
これを回避する簡単な方法は行列やベクトル演算を全部自分で書くこと。
当然これはネットワークとか関係なくオフゲーのリプレイとかでもずれの原因になってる。
IEEE754準拠させずに、浮動小数点の計算を速度優先でコンパイルすると、 CPU依存になるのは当たり前の話なのに、 計算結果が違うのはあり得ないとか言っている馬鹿がいることに驚いた。
>>634 >D3DX関係の算術関数(行列、ベクトル)は内部でCPUの拡張命令を利用するために分岐して
こちらの問題に関してはレジストリエントリを使用することで
共通の処理を取らすための処理をかませておりますしDirectX側に
関しては問題が起きている可能性は低いと思います。
>>635 IEEE754準拠というのは具体的にはどういう事をやればいいのでしょうか?
VC2005 Expressではコンパイラオプションの「浮動小数点モデル」に
「Strict (/fp:strict)」を指定する事で丸め誤差を厳密に行うという
事でして、デフォルトでこれにチェックがついてたので問題無いかと。
ただ数値計算の誤差がコンパイラの最適化に依存するという情報を
先ほど見つけ、「-O2」(実行速度優先)のチェックをつけた際にこの
問題が発生するというトピックをネット上でみかけました。
これが影響しているとは考えにくいのですが、コンパイルオプション次第で
この問題を回避できるものなのでしょうか?
基本プログラマーではないので、専門の知識には詳しくないのです・・・
何かアドバイス等ありましたらお願いします。
たとえばIEEE754準拠だとdoubleは80bitの精度で計算されるが、 これがFPUではなくSSE2が使われると64bitの精度になる。 当然使うか使わないかで微妙な誤差が発生するので、 CPUが拡張命令に対応しているかいないかで命令を変えているなら結果も変わる。
つーか、FPU_PRESERVE やっても直らん言っている時点で、バグの原因は自分のコードだと決定したようなもの
よくわからんけどIEEE754準拠ってのにするには 具体的にどうしたらいいの? 俺も操作情報だけで同期させるネット対戦ゲー作り始めたから やりかたが知りたいです
同期のさせ方が悪いだけだろ 誤差を修正するようなつくりにしてないのが悪い
DXUTのファイルは作品につけて配ってもいいですか?
日本語で頼む
再配布でググれ
フルスクリーン時でのリフレッシュレートですが GetAdapterDisplayMode等でD3DDISPLAYMODE構造体に読み込んだリフレッシュレートの値は ディスプレイアダプタが1つの場合はD3DPRESENT_RATE_DEFAULTと同じと考えていいですか?
同じである決まりはない
バックバッファを320x240でつくって、スクリーンのサイズを640x480にしたのですが、 無理矢理拡大しているせいか画面全体がぼやけてしまいます。 SetSamplerState(D3DSAMP_MAGFILTER, ...) は、テクスチャ->バックバッファ のときのフィルタ設定ですよね? バックバッファ->スクリーンでのフィルタはどこで設定すればよいでしょうか? 補完なしに設定したいのですが。。。
>>635 おまえは準拠させないプログラムをわざわざ作るわけ?
同期や再現性が大事なアプリケーションで。
幾ら煽られたからってその返しはあるまいよ 精度による誤差の問題は、精度が必要になる計算一回だけで結果変わってくるんだから まずはそうなるような計算の結果を環境ごとに出してみればいいよ
再現性が重要な業務はハードも統一する。 PCなんて結果を信用するだけ無駄。
そうはいっても現実として多くのPCゲームが別環境での正常なリプレイの再生に対応してるよなぁ
うざくなってきたので _control87 x64ではSSEで統一されていたから要らなかった気がする。
誤差が出てもいいように作ってるからというだけ。 適当なネットゲーを二台並べて動かしてみればわかるが、 お互いの動きは完全に同期しているわけではない。 動画の圧縮と同じで誤差が蓄積しないように途中途中でキーフレームを作る。
>>652 統一はされていない、調べもしないで嘘情報を流すな。
CPU発売前にスレッドのスイッチでFPUのレジスタが保存されないという誤情報に踊らされた馬鹿の戯れ言。
SSEが推奨されているが両方使える。
>>654 x64ではFPUじゃなくてSSEで浮動小数を演算すんだお
元々の見てる方向が間違ってるってことで 一致しないから一致させようではなく 元から一致しないもの同士で同期させよう、に考え方を改めよう
だいたい、いくらPC側で頑張ったって回線速度でのずれが出てくるんだから、 PCの誤差がどうこうとか些細な事にすぎんでしょ。 考えるべきなのは誤差でずれたならどこで適度にごまかして合わせるかと言う事だな。
>>655 80bit精度が必用な場合のために使えるようになってるんだが、
いったい何を言っているんだ?
ネットワークの同期のずれとPC毎の演算結果のずれは別の問題だろ。 普通にWindowsPC使ってるだけならCPU拡張命令に頼ってない限りfloatの演算がずれたりはしない。 ネットワークはずれるのが当然でどうやってそれをごまかして綺麗に見せるかが各社各ゲームの肝だろ。 こんなところで聞いて答えてくれるわけが無い。
OSまで自作しているならともかく、どのDLLが違う挙動をするか分からない環境で、同じ結果を求めても無駄。 同じように動くかも知れないが、全く同じ動きをする保証などどこにもない。
>>651 リプレイに関しては、浮動少数精度の問題をちゃんと解決してる所もいれば、固定少数でやって所もあるよ
精度の問題わかんない人は固定少数使っとけ
これで解決だ
環境やCPUによって計算結果がかわるとかいう話題も結構だが 具体的にVCとかBCだとどういう設定すりゃいいの? それとも何かをdefineすんのか?
DirectX9でD3DXCreateTextureFromFileInMemoryExを使って 画像を読み込んで g_pD3DDevice->DrawPrimitiveUP(D3DPT_TRIANGLELIST, 2, vertex, sizeof(D3DTLVERTEX)); てかんじで描画しているのですが 高さが16ptのビットマップを行がすると 微妙につぶれて表示されます 前のPCでは問題なかったのですが なんででしょうか? ちなみに画面の解像度は1280×800(ノートPC)なのですが 関係あるのでしょうか?
ウィンドウサイズとビューポートが一致してないか 一致してるけど射影行列の生成時に指定しているアス比があってないかじゃね
>>662 アライメントとか誤魔化したときにたしかそういうモードを設定するもんがあった希ガス
>>660 おまえさんはゲームの挙動部分でOSのシステム関連のDLLなんて使うのかよ・・・。
DirectXってCOMじゃないの
DirectXは描画Iだろ。 ロジック的にずれてるのはDirectX関係ないじゃん。
D3DXの計算精度が変わってくるんだから、それをロジック側で利用すれば結果変わるでしょ ポリゴンモデルつかっててボーン位置で当たり判定取るような処理が入ってたりとかすればそれもずれてくると思うけど
だからリプレイとかで再現をさせる場合はD3DXのCPU拡張をレジストリ弄ってOFFにするとか ちゃんとやるなら行列やベクトル演算を全部SSEで書き直すでしょ。 実際にそれでSTGのリプレイで60FPSの約30分程度のものは一切ずれずに対応できたし。
>>666 >>660 じゃないけど、メッセージフックとかで割り込んでくるDLLとか
ドライバ処理の一部が裏で_control87系の処理をやっていて
しかも元に戻さない奴がいるというのがたまにあるらしい。
まあ大抵の場合はゲーム本体のただのケアレスミスだけどね。
今後内部で勝手にマルチスレッド化みたいなライブラリが増えてくると
計算の再現性がまた問題になってくるんだろうか。
つまりD3DX使うなと
そのものずばりで解決できる方法あるし、ちゃんとわかってる人いるのにあえて書き込まないのは 何が問題なのかわかってない人が多いからなんだろうな いっそもっと荒れて今の間に色々と意識できた方がいい気がする
結構有名なネタかと思ってた
FPU伝々以前にD3DX使うなって常識だろ
677 :
631 :2008/11/27(木) 17:15:04
同期ズレの対処を複数組み込んだので_controlfpがどの程度効果が あったのかどうか分かりませんが、同期ズレが現状のところ、 検出されないようになりました。 ただ、浮動小数点の演算結果自体はやはりCPUによって異なるらしく、 controlfpを用いて演算精度を(可能ならば毎フレーム)指示するのは 確かに効果があるようです。 その他に行った同期ズレの対処は「コンパイル時の最適化を無効」 「位置座標等の値を0.001単位にしてそれより細かい値を切り捨てる」等 です、アドバイスありがとうございました。
「コンパイル時の最適化を無効」
ぶっちゃけ全部floatで動くようにしとけばいいんだけどねw
そのfloatをどう処理するかで結果が異なるという話なんだが、 どれだけ頭が足りないんだ?
よっしゃお前らint使おうぜ
DirectMusicでMIDIを再生すると コントロールパネルあたりで設定した規定のデバイス無視して みんな同じ音色で再生してくれるんですが、 自分で好きな音色にするにはどうしたら救われますでしょうか MCIはどうにもラグが多かったりでうまくいかなかったです
単純にモデルのUVがおかしいんじゃなくて?
3Dソフト上では正しく表示されます。 もしかしたらXファイルを読み込ませる設定が違う?かもしれないので もう一度コードを見直してきます。
3Dソフトじゃなくて SDKについてるDirectXViewerで確認しる きちんと表示されるならプログラムの問題 表示されないならモデルをXファイルにコンバートしたソフトが悪さしてる
>>686 指摘ありがとうございます
確認してみます
>>680 float使っても変なことしなけりゃずれないから。
DirectXViewerでは正常に表示 書籍についてたXFileを読み込ませるサンプルプログラムで読み込ませても683と同じように表示されます プログラムのほう再確認してきます。
一個のXfileだけ表示してみれば? あとポリの区切りがわからないな ラップの仕方のような気がするけど
>>688 そう思い込んでる分には当面それでもいいと思う
いずれこの問題にあたったときにはこのスレを思い出すだろう
だから重要なのは適度な補正をかけることであって、 ひたすら細かい正確な数値が必要だったらそれこそ自分で 大容量固定少数点数でも作って自分で管理すればいい。 演算制度を語る奴が浮動小数点数なんてちゃんちゃらおかしな話。
演算制度じゃなくて演算性奴だな
>>691 実際3Dのアクションゲームでリプレイに対応したが一晩中再生してても
30分毎のクリア状態での結果はまったく変わらなかったわけだが。
同じロジックで組まれて同じ方法で演算されてるなら誤差やオーバーフローの挙動もまったく同じ結果になるだろ。
ゲームなら精度より再現性が大事なんだし。
テキトーに入れたrand()が怖すぎるw
それは問題そのものを誤解してると思うよ
>同じロジックで組まれて同じ方法で演算されてるなら誤差やオーバーフローの挙動もまったく同じ結果になるだろ。 これがちがうんだろ?
ウィンドウの指定位置に指定の大きさで描画したいのですが、 SetViewportを使うしかないのでしょうか? 何か設定メソッドがあるのか、 それとも子ウィンドウにデバイスを作成する方法があるのかの どちらかのように思えるのですがどちらも方法がわかりませんでした
float使えばDirectXの単精度制限で演算結果が変化することはないよね?
1フレームに進む距離をtで時間計って計算してると違う結果になるけど 1フレームに進む距離が固定なら結果は同じになるね でもリプレイか・・・嫌な思い出しかないな 俺が作ったランダム爆撃をリプレイのために廃止にするっていうんだぜ あの企画畜生 終いにはエフェクトまでリプレイで統一しろとかいいだすし ソース中のrand()関数を潰した苦い思い出が・・・
>>694 まずはテストした環境のCPUを挙げてみろ。
頭が弱いみたいなのでこの点を明確にしておくが、
一晩中とか時間の問題を語っているんじゃないんだよ。
つまりfloatの1.0f+1.0fの結果はC2DとAthlonで違うって事だ。 でなければ問題などおきようが無いからね。
>>694 は釣りかプログラム少しやって
仲間に自慢げに話す奴
オーバーフローとか普通この話で出るか?
>>700 ランダムで出た結果をリプレイ用に保持しときゃいいだけじゃん
そう言わなかった、そうしなかったお前の負け
>>705 rand()を自作して、種を保存しとくだろ普通。
他の要素で全く使われないんならな。
>>707 インスタンス複数作ってリプレイに絡むやつと関係ないやつ分けとけよ。
俺に言われても困るが。リプレイなんて作らんし。
floatの計算のずれの話だけどエースコンバットとか 全部固定小数点で作るのが常識だったりするん?
>>706 また頭の弱い馬鹿が紛れ込んでいるが、何でrandを自作する必用があるんだ?
乱数リストから毎回同じ順序で出てくることを理解していないだろ。
取り出す順序が同じなら、常に同じ結果にしかならないんだよ。
>>710 誤差の累積が起こらないようにキーフレームを用意するだけ。
>>711 そういうレスはそれ以降を読んでからにしたほうがいいんじゃね
>>712 誤差の累積つってもfloatの計算そのものの誤差であって
環境毎に違う誤差なわけじゃないなら関係ない気がするんだけど。
環境毎に違う誤差なわけであるから関係ある気が(ry while(1){};
>>710 CPUが基本的に同じなコンシューマーではこの問題は起こりえないだろ
PCでも精度を統一する方法がいくつかあるし
知ってる人からしたら常識みたいなもんだ
IEEE 754準拠の単精度つかっときゃ問題なんて起こらん。
環境の異差を心配をするぐらいならキーフレームを埋め込んだ方が遥かに楽。
>>709 そう思っててあるとき突然リプレイが必要とか言われると死ぬんだよ
誰もはじめからリプレイあるって知ってりゃ困んないよ
ソース中にバラマイタrand()が面倒過ぎる
>>718 リプレイでキーフレーム保存ってものすごいデータ容量にならないか・・・
X=5からX+=5という相対的な形式ではなく X=5からX=10で絶対値からその差分を再現するように作ればいいだけ。
そもそもばらまくって コードが変なんじゃね?
>>721 いやいや・・・弾幕シューティングとかステージ1つだけでメガ単位の容量になるだろそれ。
>>723 どうしようもないほど頭が悪いな。
変化していない部分は入れる必用がないんだから、
相対だろうが絶対だろうがデータサイズは変わらない。
60fpsでキーボードのデータをGetDeviceStateで取り込むと 止めたいところを通過して移動するけど。どうすればいいの?
うぇーと
>>724 それじゃリプレイの保存と復帰が激しく面倒だろう・・・。
パッドの入力と乱数の種だけ保存しといて毎フレームパッドの情報だけ与えれば
余計な事しなくても他の全ての処理がまったく同じように再生されるように作るだろ普通。
リプレイの巻き戻し機能とか付いてるのもあるね こういうのはキーフレーム方式だろう しかしジャンルによると思う、弾幕シューティングでキーフレーム式は正気の沙汰とは思えん
ネトゲとかどうなんの?
座標やパラメータを記録するだけでいいやん。
>>716 >PCでも精度を統一する方法がいくつかあるし
kwsk
今度はリプレイの話か おまえらもういい加減にfloatの精度の話は終わりにしろよ
リプレイバグで変な所でいきなり死ぬ事があるんなら、 キャラが死んだか死んでないかくらいは保存しておいて欲しい。
>>728 巻き戻しだけなら、再生時にキーフレーム生成でもできると思うが。
735 :
689 :2008/11/28(金) 07:27:44
自分でできる限りのことはしたのですが、解決できません XファイルとテクスチャUPするのでちゃんと表示されるか確認していただけませんか //------------------------ // モデルは全て三角分割 // テクスチャは512*512 // DirectXViewerでは正常に表示 //------------------------ よろしくお願いします
736 :
689 :2008/11/28(金) 07:28:39
>>725 バッファリングで取り込んでまとめるか、
入力を取り込むフレームを間引くか、
移動量を減らす。
>>736 自作のツールでは普通に読めたのでプログラムが原因だろ。
ただ球にはってるせいか極地でゆがんでるから張り方も考えた方がいいと思うけどね。
>>733 リプレイでそんなのがあったらプログラマ失格だろ。
739 :
690 :2008/11/28(金) 10:34:45
>>689 ファイル見たがやっぱりラップの仕方だな
UVが1以上の値がある
これをどう処理するかがラップの仕方だよね?
てか俺のレスは無視かよ
740 :
690 :2008/11/28(金) 10:38:10
テスクチャのアドレッシングでググレ
最近始めたんだけどXファイルって動画はあるの? 動画って言うか連続アニメーションっていうか
742 :
デフォルトの名無しさん :2008/11/28(金) 21:58:43
Xファイル ザ ムービー はあったと思う
ない、 Xファイルは単なる数字の羅列だ 無理だからあきらめろ
744 :
デフォルトの名無しさん :2008/11/28(金) 22:08:58
じゃあDirectXのアニメーションってどういう構造になってるの?
ファックスとSCSIとスキャナーを買ってくればいいと思うよ
ok教えるよ 単位はkeyで何個かのkeyがあって そのkeyごとに頂点の位置を記録してる(みたいなもの) key何個使うかとかkey間の秒数は自分で決める。 みたいなもの、のところが、君が中学生なら無理 高校生なら卒業してからにしろ
747 :
デフォルトの名無しさん :2008/11/28(金) 22:23:48
ようするにFFとかはアニメーションファイルがあってそれを読み込んでるんじゃなくて DirectXの計算式のファイルがあっていちいち計算してアニメーションみたいな扱いになってる感じ?
商用ソフトはXファイルなんて使ってない。
749 :
デフォルトの名無しさん :2008/11/28(金) 22:27:42
例えばの話じゃん
じゃあ具体的に質問してくれ
まず動画って定義がおかしい その辺りから調べなおさないと駄目 FFってファイナルファンタジーのことか? これだとますます動画の定義がなんだかわからないと先に進めないよ
753 :
デフォルトの名無しさん :2008/11/28(金) 22:32:05
じゃあゼルダで剣を振る動作は独自のアニメーションファイルがあるの? その内部は計算だろうけど、作ってる時はツールでポリゴンの計算を意識しないで作ってるの?
754 :
746 :2008/11/28(金) 22:41:35
どんなアニメーションでもファイル形式ちがくても 数字の羅列
755 :
デフォルトの名無しさん :2008/11/28(金) 23:09:53
要するに3Dモデラーのアニメーション制作の機能は意味ないわけね
756 :
デフォルトの名無しさん :2008/11/28(金) 23:17:01
教えてください(>< DXUTguiクラスを使おうと思っているのですが、 コンパイルするとCGrowableArrayでエラーが出ます CGrowableArrayって何なんですか?? 当方 VC6.0 DirectX(October 2004)で開発してます。
エラーが出ますだけで?
758 :
デフォルトの名無しさん :2008/11/28(金) 23:24:52
失礼ぶっこきました!!! 下記のエラーがでます。 'CGrowableArray' : 識別名を宣言するのに、型が指定されていません。
759 :
デフォルトの名無しさん :2008/11/28(金) 23:26:58
ちなみに、ここでエラーが出ます。 CGrowableArray< CDXUTDialog* > m_Dialogs; // Dialogs registered
まさか DXUTgui.hを単独で使おうとしてるとか?
>>747 いやだからファイルはデータであって計算はプログラムが行うんだよ
もっと簡単に言うと君はここに来るレベルにすら達してないってことだな
なんで簡単にまとめられないの? 自分達が長年掛けて知ったことを一瞬で知られるのが悔しいの?
まさかそんな底の浅い人間はここにはいないだろう
764 :
デフォルトの名無しさん :2008/11/29(土) 02:27:23
で、結局剣を振る時のパーツの曲がり具合とかってどうやって作られてるの? 1コマづつ作ったら計算式を出してくれるツールがあるの? 自分で計算するの? 計算はツールまかせで内部でやってくれててアニメーション自体が記録されてるファイルを呼び出してくるの?
マジレスすると好きに設計すればいいし FFとかゼルダの実装方法を知りたければスクエニや任天堂傘下のセカンドに聞いて下さいとしか
>>746 が言ってるのが理解できないかい?
ツールではkey時点の頂点情報はあるしファイルに書き出されてる
767 :
デフォルトの名無しさん :2008/11/29(土) 02:37:42
ボーンみたいな感じじゃないのか?
要するにほとんどのゲームは手でアニメーションを作ったりモーションキャプチャしたりで モーションデータとしてファイルに記録してある で、プログラムでそれを再生してる 実はそれだけじゃないけどまぁ大体そんなかんじ
>計算はツールまかせで内部でやってくれててアニメーション自体が記録されてるファイルを呼び出してくるの? これであってるよ xファイルにはこのアニメーションの情報を含むことができる 最初動画って言い方をしてたが動画っていうのは普通ムービーって言われてる方を指す FFを例に出してたけど、FFでもムービーは使ってるだろ
ボーンは作成過程だろその結果が頂点情報だ 数学の知識はどれくらいある? 理系の大学に入れるレベルが必要だ 間違ってもゲーム製作用の基礎数学の本とか買うな このレベルある奴向けだからな
ああ、ごめん全然初心者だから blender使っててコマ送りのアニメーションを作ったんだけどそれをXファイルで出力できないっぽかったから計算式で全部動かすのを考えないといけないのかと思った
行列はわかるけど大学行ってないから線形代数とかはわからないレベル
>Xファイルで出力できない この時点で無理だw blenderのファイル形式なんてみんな知らない
>>771 xファイル使えないなら、計算式で全部動かさないと駄目
blenderはXファイル出力できる 使い方が悪いんじゃね?
そうそう、できるっぽかったんだけど英語だしやり方がわからなくて やり方ググってる時についでに質問してみたっていうそういう流れ 多分保存はできないけど、エクスポートでできるみたいな感じだと・・・その時に消しちゃって
昔の話だけど俺がblender触ったときは 既存のフォーマットだとスキンメッシュも出せないし アニメーションもできんし、uvずれまくるしいけてない感じだったな 自分でプラグインっぽいの書いてそれで出力するようにしないと駄目な感じに見えたよ>blender いまはなんか違うのかな?
今やったら普通にXファイルのアニメーション出力できた
あとはこれをたくさんつくって 当たり判定せっていしたら ゲーム完成?
ああ完成だよ
782 :
デフォルトの名無しさん :2008/11/29(土) 05:01:23
1〜9までの数字をランダムに入れ替えて、ランダムに 数字を9個作るプログラムを教えて
>>782 鼬害。ここは日本語も読めない人の来るところじゃありませんぜ。
アニメーションはDirectXが万能な数式自体を初めから持ってて、動きの合成のタイミングやら、ポーズを表す パラメータやらをプログラマが指定するって感じ
つーかスキンメッシュのサンプル見ればアニメーション関連も全部インターフェイス用意されてるんだからコピペしとけ。
スキンメッシュのサンプルでドラッグしたらオブジェクトの座標が変わる処理ってどのファイルでやってるかわかる?そういうのってどうやって調べるの?
まずはチュートリアルを順番に実行しつつ動作を確認するところから始めろ。 それが終わるまでは余計なことは考えるな。
サンプルに入ってるチュートリアルってファイルのこと?
ヘルプに載っているだろ
たぶんDXUTのカメラ処理のことだと思うけど DXUTが何やってるのか理解できないレベルの人に 説明するのはほぼ不可能なので とりあえずそれは忘れてできるとこからやりなさい
わかりました てかヘルプなんてどこにあるの?
ヘルプの存在も知らないでプログラムを組もうとする愚か者を初めて見た。 いくら何でも酷い。
msdnなら知ってるがマイクロソフト系の背景が水色のやつは読む気がしないんだけど重要なの?
DirectX9.0SDKの日本語ヘルプって2004までしかねーんじゃね?
スキンメッシュなら2004で十分だろ、かわってねぇ
日本語ヘルプがないのはあんまり手を出さないほうがいい 情報を共有できる人間も少ないだろうし 何より質問に答える奴がいたとしても「なに?君?英文も読めないの?(笑)」的な クズばっかだからやってもいい未来はない それよりツールウィンドウでもだしたほうがナンボか楽だぜ
managedみたいにすぐ消えるからそれでもおk
800 :
デフォルトの名無しさん :2008/11/30(日) 07:16:25
Xファイルが真っ黒なんだけどなんで? 法線とAmbientが関係してるのは見たんだけど TinyのサンプルはAmbientじゃないの?
聞き方が悪い奴は答えない
802 :
デフォルトの名無しさん :2008/11/30(日) 10:21:04
全くの初心者がゼロから始めるのに適したサイト教えてください
>>802 そういうやつはサイトじゃなく本を買え
そしてまた 書籍厨とWebサイト厨の論争が始まるわけですねわかります
論争はいらん。本を読んでwebも見ろ。
>>805 激しく同意
どっちかしか使わないなんていってる時点で不毛
Webで知識を広げて、本で深く追っていくといいかも
この世はすべて金 金がすべて 書籍買う程度の金の無い奴はPCに触るな
PC買えるんだから本は買えてるだろ。 月3万くらいなら本代にプールするだろ。
月3万か やっぱこのスレの住人は勉強してるな 俺も中学生のころは全財産を技術書に使ってたのに 何今の体たらく
金を使っただけで分かった気になっちゃだめだよw
逆に考えるんだ 書籍に金を掛ける必要がなくなるほど知識が身についたと
P2Pの時代に金で買うとかw 情弱乙
うんこ
乞食自慢は勘弁しろよ…
815 :
デフォルトの名無しさん :2008/11/30(日) 17:39:50
detours.lib(detours.obj) : warning LNK4099: PDB 'detours.pdbってリビルトするんですが解決方法ありませんか
マルチ市ね
817 :
デフォルトの名無しさん :2008/11/30(日) 17:47:06
detours.lib(detours.obj) : warning LNK4099: PDB 'detours.pdb' が 'C:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Lib\detours.lib'に見つかりません。デバッグ情報がないものとして、オブジェクトにリンクします。これの意味と解決方教えてください
ほっときゃいい
819 :
デフォルトの名無しさん :2008/11/30(日) 17:54:50
無視でいいんすか?
>>812 プログラミングの洋書なんぞほとんど流れてねーんだよハゲ
いや 大人ならちゃんと買えよ
GEMSとか電車で読むのにデータ化されても印刷すんの困るだろ・・・
あんなもん電車で読めるわけねぇだろw
むしろデータ化されてて 電車で読む分だけ印刷したほうが使えるじゃん
カバンに入れて読んでるが・・・
エスパー発見w
普通にデータのまま読んでるが何か。
原書の古い奴は公開されてなかったっけ?GPUGEMSだっけ
ああ、nVidia公式で公開中
やっぱり長々と読むなら本じゃないとね。
よかったね。
一つのプロセスでデバイスを複数作ったり、複数のウィンドウにDirectXで描画するにはどうすればいいんですか?
デバイスの作成方法を基礎から勉強しようね
デバイスを解放して作り直す場合、確保したリソースは解放すべき?するならデバイス解放直前が望ましいですか? あと、ここにいる人は文字の描画はどういう解法でやってますか?ID3DXFont以外で
COMも勉強しようね。
普通はプログラム終了までデバイスは破棄しない
o リソース開放せんとそもそも作り直せないよ。 o GetGlyphOutlineとかFreeTypeとか
>>832 てこずったから、直接は教えない。
ちゃんとメソッドの戻り値をチェックすれば
一発でわかるよ。
DXライブラリって良いですか?
>>840 どの辺か、もうちょっと詳しく教えて頂けませんか?
DirectInputで日本語を入力するにはどうすればいいの?
本当にDirectInputでやるなら、キーボードから得られた情報を、 キーボードの種類を判別するところから、変換処理まで地道に自分で一つ一つ作っていくしかない。
>>844 840じゃないけど
シェーダーに渡してる変換行列の変数の名前が
プログラムとシェーダーで一致してないぜ
ゲーム機みたいに文字並べて選ばせたら
CDXUTIMEEditBox
>>845 普通にWM_CHARひっかけろよ・・・
こわれた にんげん はこぶよ れいきゅうしゃ れいきゅうしゃ さかみち くだるの らくらく くるまいす くるまいす よだれを たらして わらうよ しんしょうしゃ ♪
なんか変なのが湧いてるな
855 :
デフォルトの名無しさん :2008/12/02(火) 14:51:48
↑とかな
SampleBrowser(august2008)のEmptyProject10にtutorialのLightsなどをどのように適用すればいいのでしょうか。 DeviceCreated, FrameMove, FrameRender, DeviceDestroyedの関数内に書くようですけど 例えばLightsのどのコードをEmptyProject上に組み込んでいくかが分からないです。 EmptyProject上にTutorialソースを組み込んだファイルを参照できればいいのですが。 環境はVS2008を使用しています。 どうかよろしくお願いします。
どうでもいい。 以上。 ↓次どうぞ
一つ一つの関数を調べて理解してけよ。 お前がどうしたいかなんて知ったこっちゃないんだよ。
テラ異常者のすくつwww
自分の思った答えが返ってこないとそうやってすぐ態度を変える 質問自体が異常者、幼稚園児並なのにな
要はチュートリアルをDXUTで書き直したいってことだろ? DXUTが分かってないなら使わなくていいよ EmptyProjectに移植するのは素直にあきらめなさい。 たぶん、まだ理解が足りてない 分かってて聞いてるならSimpleSampleを参考に移植できるはず
あれ気持ち悪いし入門者以外がわざわざ使うようなものじゃないだろ。
863 :
デフォルトの名無しさん :2008/12/02(火) 19:38:59
質問なんですがシステムのファイルがないとDirectX診断ツールで表示されたんですがどうしたらいいですか?長文すいません。
最新版でもインストールすれば?
865 :
デフォルトの名無しさん :2008/12/02(火) 19:48:47
最新版をインストールしてもだめだったんです。システムファイルがないと表示されました。他に方法はないでしょうか?教えてください。
OSでも再インストールすれば?
867 :
デフォルトの名無しさん :2008/12/02(火) 19:57:02
分かりました。説明頂いてありがとうございます。
868 :
デフォルトの名無しさん :2008/12/02(火) 20:03:19
ぽめんできたわ
ソフトがどのDirectXのdll使ってるか調べる方法ってありまんすか
dependency walker
DirectInputDeviceで製品名取得したいんだけど、DIEnumDevicesCallbackの中でlpddiから取り出したら 「USB joystick」って言うどう見ても製品名じゃないのが取れてしまったんだが、何ででしょう? IDirectInputDevice8から取得しようとすると、GetDeviceInfoが失敗してしまいます。
その製品用のドライバをインストールしないで Windows標準のドライバを使ってるから
>>875 そうなんですか。それじゃあこの場合プログラムには問題は無いようですね。
ちなみにドライバのインストールの有無による違いって識別情報とか製品情報以外に何かあるんでしょうか?
経験上、ハードによってピクセルずれ問題があったりなかったりする。(テクセルのずれとも言う) 最低限、ATIとNVIDIAのビデオカードでテストすることは必須。 矩形の右下の座標を0.5くらい増やすと上手くいったりなかったり。
>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); ウィンドウのサイズ≠クライアント領域サイズなのよね。
>>876 デバッグもしないでソース丸投げなんていい度胸だな。
881 :
876 :2008/12/04(木) 06:48:10
>>879 画像がそのまま表示されました!
CreateWindowの引数はウィンドウ全体のサイズだったんですね…
勉強になりました、本当にありがとうございます!
>>878 さんもありがとうございました!
>>880 ソースを直接みて頂いたほうがわかりやすいのではと思って書き込んでしまいました
申し訳ありませんでした
別にソースを上げるのはいいんじゃね? 自分で勝手に問題の原因を限定してしまって 実は今回みたいな凡ミスが原因でした、みたいな場合は特に
885 :
デフォルトの名無しさん :2008/12/06(土) 17:35:50
6関節のマニピュレータの姿勢シミュレーション結果をDirectXによって可視化を行いたいのですが 一番容易な方法はどのようなものになるんでしょうか?
ポリゴン描画するのに簡単も難しいもない。ただやるだけだ。
失礼しました. 関節変数の計算を行いつつ,算出した角度分だけ関節を回転させたいです. 関節変数の入力により可視化を行います. リンク,関節を分割したモデルデータをあらかじめ用意し 関節変位または角度にあわせてリンクを回転させ,リンクと関節をひとつづつ表示していくのと リンク,関節を初期状態として作成し, 中に骨組みを入れて動かす方法 2つ方法を思いついたのですが,どちらが一般的で容易でしょうか?
どちらの方法でも 階層構造の下から行列を掛けていくことには変わりないんだが
D3DXCreateSpriteで間接を D3DXCreateBoxでリンクを、個数分生成する それぞれが初期位置となる行列を保持するものとする D3DXCreateMatrixStackで行列スタックを生成する 間接1の回転行列*間接1の初期位置の行列を 行列スタックにpush 行列スタックのトップ行列をつかって間接1とリンク1を描画 間接2の回転行列*間接2の初期位置の行列を 行列スタックにpush 行列スタックのトップ行列をつかって間接2とリンク2を描画 以下末端まで繰り返す 分岐がある場合は分岐間接までpopして 分岐地点からpushと描画の繰り返し
>>887 ロボのような固形物なら前者で問題ないが
人間の皮膚のようにポリゴンが複数の部位の影響を受ける場合は
骨を入れてポリゴンに対するウェイトをかけなきゃだめよ
>>888 順運動学でもそうなりますのでそれはなんとも・・・・
>>889 試してみます.
ありがとうございます.
>>889 すべて剛体ですので,前者のほうで試してみることにします.
Direct3DDeviceってHWNDが無効になる前にWM_CLOSEなりWM_DESTROYのハンドラでReleaseするのか ウィンドウが破壊されてもどうせ描画が失敗するだけだからと、メッセージループ抜けてからReleaseするのか どちらがまっとうだと思いますか。
LPD3DXSPRITEの機能を使って2D描画するのと。 自分で頂点4つ作ってテクスチャ貼り付けてDrawPrimitiveする。 どっちも同じ結果を表示する場合どっちが軽いですか? 拡張性など考えたら自分で作る方が良い気がするんですがどうでしょうか。
LPD3DXSPRITEはただのポインタの定義だが、それを使うか使わないかに何の意味があるのかさっぱり理解出来ない。
ID3DXSprite::Drawのことですね、言葉足らずですいません。
>>892 作ったのと逆順に解放するのがまっとうじゃね
シャドウマップとトゥーンシェードを両立させるには、 ひとつのシェーダー関数に両方の処理書くしかないんですよね。 トゥーンで色を決めつつ、影判定で暗くするしか
>>897 俺のGPUは2.0世代なのでライティング+シャドウイングのマルチパスで対応してるが
昨今のGPUは強力らしいし、リソースが十分足りるなら1本でいくのもありかもね。
マルチパスのが重いけどな
シェーダーで D3DMaterialを使った .Diffuse.Emissive.Ambient.Specular.Power シェーダーを使わない時と同じ描画をする 色の計算式が乗っているサイトとかありませんか?
DrawPrimitiveUP()を使いポリゴンを描画しているのですが、 ワールドマトリクスが無視されてしまいます ビューマトリクスなどは反映されているため、 何か設定がおかしいのだと思いますが、ヒントをいただけないでしょうか? ちなみに設定されていることはGetTransform()により確認済みです。 また、SetTransform()を検索すると ワールドマトリクスを先に設定しているサンプルばかりですが 順番などはあるのでしょうか? (順番を変えてもワールドマトリクスは無視されましたが・・・)
コードの断片を書いたほうがいいと思うんだけど ワールド→ビュー→プロジェクションにしてるって事? 逆にもう少しヒントください
905 :
903 :2008/12/08(月) 13:14:21
自己解決しました
D3DFVF_XYZRHW を指定していたのが間違いだったようです
D3DFVF_XYZW に変更すると想定どおりに動作しました
お騒がせしてすみませんでした
>>904 すみません
どこをどう抜粋すべきなのかがわからなかったのです
>ワールド→ビュー→プロジェクションにしてるって事?
ビュー -> プロジェクション -> loop{ ワールド } という形にしていました。
なんで、お前の仕事を他人がやらなきゃいけないの? ビルドできないって、ちゃんと頭使って解決しろよ。
職場でもこういうアフォ増えたよなw やってみてここがわかりませんなら協力もするけど ここまでナメタ奴の相手したくねぇよな 死ねばいいのに
ビルドできないエラー内容を書かないと 次スレにはエラーガ出てる場合はエラー内容を 書きましょうと追加したほうがよいようだな
キャプチャボード付属のTV視聴ソフトが、Direct3DかAudioの少なくともどちらか一方でDebug runtime使うと画面が表示されないんだけど、 DebugかRetailかを判断ってどうやったらできますか。
それで、お前以外に詳しい状況が分かると思っている?
ペイントソフトで、RGB値を指定してペンで書くように alpha値(0〜255)を指定してペンで描けるようなソフトってありますか? どのソフトもアルファチャンネルレイヤーには対応しているんですが 直にアルファ値をペンや塗り潰しできるものが見つからなくて・・・
Paint.net
>>914 RGBチャンネルに描いてDirectX Texture Toolでαに読み込ませるのはダメ?
っていうか、どのソフトでもRGBチャンネルからαへのコピーくらいない?
DXUTのGUIコントローンってみかん聖者泣いてせ巣カァーΣ^)/?
どこのスレがいいのか悩みましたが、もしスレ違いなら誘導していただけると幸いです。 スプライトに不透明なテクスチャと半透明なテクスチャを一部が重なるように順に貼り付けたとき、 DirectXでPresentすると重なった部分は不透明になってくれるのですが、 そのバックバッファ(をオフスクリーンサーフェイスにコピーしたもの)を DirectshowのVMR9に渡して動画と合成すると、重なった部分が半透明になります。 (合成の際のアルファ値は1(不透明)です、念のため) 後者でも前者の結果が表れてほしいのですが、結果が異なる原因がいまいちわからないまま、 SetRenderStateのD3DRS_SRC/DESTBLENDをいじれば何とかごまかせることは分かったのですが、 例えば半透明+半透明の組み合わせだと違う設定が必要だったり、文字列描画をD3DBLEND_ONEで行ったら文字が潰れたりで右往左往しています。 根本的な原因と解決方法を教えていただけないでしょうか。
エスパー必要な質問止めような。 結果だけを目で確認しないで、処理の途中途中でダンプなりして実際にデータがどうなっているか確認しろ。 そして何故目的の状態にならないか理解しろ。
March2008のDirectX9.0のSDKでコンパイルが通るバンプマッピングのサンプルが欲しいんですが 以前のサンプルはコンパイルが通らないし、今のサンプルにはバンプマッピングが含まれてないので どこかにサンプルとかありませんか?
ビルドできないのをソースのせいにしてはいけない
>>918 VMR9は使ったことがないが、バックバッファのα値が半透明の
スプライトを描画したときに更新されているんだろう。
バックバッファのα成分が必要なければα無しのフォーマットを
選択するか、D3DRS_COLORWRITEENABLEでαをマスク。
α成分が必要な場合は、難しい問題になる。
半透明が複数重なったときの正しいα値は定義できない。
重なることがないなら、アルファテストを使ってDestのαが1のところは
α書き込みをマスクで描画、1未満のところはαを描画するように
したらいいんじゃない?
>>920 ParallaxOcclusionMappingってのが入ってるだろ
>>919 質問が理解できないのを質問者のせいにしてはいけない
>処理の途中途中でダンプなりして実際にデータがどうなっているか確認
こんなこと言っている時点で質問の意味を理解していないのは明白だが。
こういう馬鹿ほど頼んでもいないのに自分にエスパー要求されていると思い込むんだよな〜。
馬鹿は回答、発言しなくていい。つーかするなウザイ。
じゃあお前が回答してやれよw
927 :
デフォルトの名無しさん :2008/12/10(水) 13:14:40
低脳薄知だから答えられない だから現実で煽られる その仕返しをしたい
自分の思った回答がこないで馬鹿にされるとすぐキレる質問者って多いよな。 質問する奴は自分が低脳であることを自覚してからきてくださいな。
929 :
デフォルトの名無しさん :2008/12/10(水) 14:19:43
低脳だから自分にはわかりませんって素直に言えない奴らってかわいそうだよな
質問者が低脳であることは聞くまでもないし言うまでも無い にも関わらず低脳低脳と吊るし上げるためにここにいる奴らもろくなもんじゃないが
931 :
929 :2008/12/10(水) 14:28:30
ああ、そうやって馬鹿にする現実でストレス溜められてる底辺のこと言ったんだよ、俺も
自分にはわかりませんって素直に言ったら、 わからないならレスしないでくださいって言われると思うんだが、 どうすりゃいいんだ? 言った方がいいのか言わない方がいいのか
933 :
929 :2008/12/10(水) 14:39:02
言ったらいいと思うよ
934 :
デフォルトの名無しさん :2008/12/10(水) 14:48:43
>>915-916 Paint.NETもアルファ値を直接書き込めるわけじゃないじゃないですか
RGB=(255,0,0)としてペンでピクセルを打つように
RGBA=(255,0,0,128)としてペンでピクセルを打ったり領域を塗りつぶししたいわけですよ。
アルファマスクつくってツールで結合してって二度手間じゃないですか。
そいつぁ使い方知らないだけだ
てか何でオマイラ答えるのw ソフトってありますか? このスレ関係ないじゃん。 自分で作れよ1時間もあれば作れるだろw
>>935 アルファブレンドと勘違いしてませんか?
まあ知らないならいいんだよ
>>938 低脳だから自分にはわかりませんので教えてください
池沼はWin32API質問スレへ帰ってくれ
どうでもいいけど質問回答するわけでもないのに必死に自己主張してる
>>929 は何がしたいんだろう
Paint.NETでペンでアルファ値を描く方法だけ教えてください できるんですよね?
塗り直しツールを使う
つーかなんでこんなムカつく聞き方するやつに説明しなきゃならんのだ
できませんよ。DirectXと関係ないですからでてってください。
だから言ってるじゃないですか。DirectXと関係ないですからでてってください。
法線マップのbmpに直接alpha値としてハイトマップを描き込みたいので一応DirectX関係あります
950 :
デフォルトの名無しさん :2008/12/10(水) 16:25:23
ここにいるのはそんなことわからない底辺+低脳だけですよ 知ってたら教えてますよ 知らないから強がってるんです
>>950 君はちょっと黙ってて
今俺が質問してるんだから
で、直接アルファ値描き込めるのってないんですか? ここの住人はハイトマップにも無縁なDirectX APIをこねくり回しているだけの人達なの?
そうですからでてってください。
おまえはこのスレの管理人か
そうですからでてってください。
ただの荒らしか
すぐ質問者にキレるいつものヒス野郎だろ。 よほどリアルでストレスが溜まっているのか何なのか。
頓珍漢な質問し続けたらストレスで早死にしそうw 損な性分だねw
頼んでもいないのにご苦労なこった 自意識過剰なんだろうよ
いっとくけどオレは運個スレを田てたほどのけんりょく遮那んぜだ どげざしてどげざしろ
>>961 大変申し訳ございませんでした!!
運個スレを田てたほどのけんりょく遮那んぜとは露知らず・・・
どうか直接アルファ値描き込めるソフトを教えてくださいませんか!?
ないなら作ればいいんじゃね?
初心者スレで質問してる低脳の分際ですぐ回答者にキレるなよ 自分の望む質問、回答じゃなければスルーするぐらいの度量は備えとけ
>>962 ここはプログラムスレであってソフトウェアスレじゃないよ
そんな事も理解してないから周りから馬鹿にされんだよ
>>963 仕方ないそうするか
2次元スカルプトツールみたいな感じでピクセルごとに描くより使いやすそうだ
まったく、ここの住人ときたらハイトマップも使えないのか
でてってくださいとは笑わせる
さようならー
>>965 で?
ちなみに作ったソフトは公開しませんので
969 :
デフォルトの名無しさん :2008/12/10(水) 17:52:54
>そうですからでてってください。 >さようならー ・・・ガキの喧嘩かっつの
そんな涙目にならんでも
しかし、一つのスレ違い質問の回答を聞き出すために ここまで自演するとは、ある意味すごいな
次スレまだ?
質問者も回答者も大人気ない人達ばかりなので もうスレは立てません。
次スレのテンプレには「DirectX API以外の話題厳禁」と加えておいたほうがいいな シェーダや数学の話題も板違いなので厳禁
了解
体裁かえると馬鹿が乱立させるからやめたほうがいい
今よりはマシだ。
いかに人を馬鹿にするかしか考えていない、978のような高慢な回答者も排除できるしな
荒れる原因のほとんどは、スルーできないヒステリック回答者のせい。 早くストレスで早死にしてください^^
馬鹿と言われてヒス起こす質問者も排除できるしな
人を馬鹿にするかしか考えていない、
>>983 のような高慢な人種も排除できるしな
回答者も質問者も同じぐらいの知識量だからな。実際
次スレからは、馬鹿、ヒス、ストレス、早死に禁止な 書き込んだ奴は荒らしのヒステリック質問者回答者ってことで
高慢、排除も禁止な。コーマンあるいはマンコ、排卵ならOK
などと意味不明な自分ルールを発しており
Kicked any wall at small egg.
馬鹿が出てくる前にとっとと埋めるか
馬鹿にされてよっぽどくやしかったのかな カワイソス
馬鹿は自分のことを馬鹿と思っていない
早く埋めろよグズ
お前が責任もって埋めろよ
ペンでアルファ値を描き込めるソフト(アルファブレンドではなくアルファ値を指定したい)ってないですか?
Photoshopならアルファチャンネルで書き込めばいいだけですよ
フリーソフトでは無いのですか? Paint.netというソフトでできるらしいのですが
この質問者はチャンネルという言葉自体知らん低脳なんだよ とっとと自分で作る作業に戻れ
\(^o^)/オワタ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。