【C++】 DirectX初心者質問スレ Part13 【C】
1 :
デフォルトの名無しさん :
2007/06/21(木) 00:03:46 ※回答する人も、質問する人も必ず読んでください これらに当てはまる人のための質問スレです。 1.C/C++は多少理解している。 2.最近DirectXを始めたばかり 3.SDKを見ても、Googleで検索しても、いまいち理解できない人 4.余計な雑談は不要ですよ 【 回答してくださる方 】 ・ できるだけ優しく質問に答えてあげてください。 ・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。 「ググれ」「SDK見れ」以外の回答でおながいします。 ・ 神ですら理解不能な質問は無視して下さい。 【 質問する方 】 ・ どんな事で躓いているのか明確にしよう。 ・ 長くならないなら躓いている部分のコードを晒してみれ。 ・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。 ・ 回答して貰ったら、出来るだけお礼もしよう。
2 :
デフォルトの名無しさん :2007/06/21(木) 00:05:38
(´・ω・)乙 これはアイスラッガーで勘違いがうんたらかんたら
4 :
デフォルトの名無しさん :2007/06/21(木) 05:31:33
カメラ中心の回転ができませんTwT クォータニオンで試したりゲームプログラムWIKIなどで試してるのですがうまくいかないです よければ皆さんの知識をお貸しください
5 :
デフォルトの名無しさん :2007/06/21(木) 10:33:31
D3DXCreateTextureFromFileInMemoryEx でテクスチャを読み込んでいるんですが、たまに読み込まれないことがあります。 常に、読み込まれない、とかならわかるんですが、再現性が低いので原因がつかめません。 テクスチャのサイズが 1024x1024と少々、大きめです。 ビデオボードは nVidia 系です。同じような症状の方、いらっしゃいますか?
>>4 自分はクォータニオンは使ったことないが、よーするに
何らかの操作で、自分がその場でくるくる回るような回転をやりたいわけか?
だとすると、D3DXMatrixLookAtLHの引数で言うなら
カメラの位置=pEye は固定で、注目点=pAt のベクトルを
ぐるぐる回せばいいだけじゃね?
それともオブジェクトをカメラを中心として回すのか??
DX10のサンプルどれも動かないんだけど・・・ X1300pro(非128bit地雷) Athlon64 X2 3800+ そんなに重くなって何が変わったんだ?
8 :
デフォルトの名無しさん :2007/06/21(木) 14:15:20
>>6 返答ありがとうございます
ようは自分目線で部屋の中などをぐるぐる見たり移動したいんです
移動だけ、または回転だけならできてるんですが
移動とカメラ軸回転を同時に出すとカメラが向いている方向とは逆の方向に動いたり等おかしなことになってしまいます
なにか定石的なカメラ移動全般処理のサイト様、または方法などありましたら
ご教授お願いいたします
行列すらまともに理解してない状態でクォータニオンに手を出すなんて・・・
10 :
6 :2007/06/21(木) 14:51:41
>>8 なるほど。だがそういう計算に定石ってのはない。
要は数学的にやりたいことを表現できるかどうか。
線形代数やベクトル幾何の勉強が全然足りてないんだと思うから本でも買ってみ。
端折って言うと、それは行列の掛ける順番がおかしい、もしくは
移動の計算がおかしいんだと思う。
カメラに与える移動のベクトルに対して、いま現在の回転量の行列を
ちゃんと掛けてる?
12 :
デフォルトの名無しさん :2007/06/21(木) 18:36:49
>>10 ありがとうございます
勉強してみます
またよろしくお願いします
>>11 VistaならDX10動くじゃん
木を表示するサンプルさえ0.11fpsなんだけどサンプル画像ではDX9と違いがわからない
何が違うのか知りたかった
それリファレンスラスタライザで動いてるだけだろ
>それリファレンスラスタライザで動いてるだけだろ ソフトウェア処理でも遅すぎだろ・・・ 結局DX10は何が違うの?
次世代の土台
refがなんなのか分かってるのか?
>>17 GPUをソフトでエミュるんじゃないの?
DX9をソフトウェア処理にしても動くけど何が違うの?
わかった質問変える DX9とDX10の違いがわからない どちらもソフトウェア処理なのだけどDX9はぬるぬる動くのに対してDX10は止まる どちらもサンプル画像では違いがわからない DX10劇重なわけだが何が違うのか?
> ソフトウェア処理でも遅すぎだろ・・・ つまりこれが9と10の違いって事だろ。
>>19 具体的にはどのサンプルで比較してる?
俺も試してみるから
REF(リファレンスラスタライザ)ってのはその名の通り リファレンスになるような書き方をしてる、ソフトウェアによるドライバのこと。 だから実用的な速度にするための高速化はなんもやってない。らしい。 (その代わり、シェーダーなんかもREF上で動かせるしpure device指定できる) そのDX9のソフトウェア処理ってのは、頂点処理はソフトウェアでやる、ってことじゃね? REFはビデオカードの機能を一切使わんよ。 DX10のそのサンプルは見たことないが、要求するシェーダバージョンを満たしてないから (DX10のサンプルは新しいシェーダバージョンの機能を使ってるから) REFで動作してるだけだと思われる
>>22 >REFはビデオカードの機能を一切使わんよ。
そうなんですか・・・知りませんでした。
>>21 BasicHLSLとBasicHLSL10の違いがわかりません。
あと、Direct3D 10 Shader Model 4.0 Workshop がなぜ重くて何がすごいのかわかりません。
使用しているSDKは2007Juneです
BasicHLSLとBasicHLSL10は3〜5倍くらいfps違います
質問です。 現在、VC++EE,platformSDK,directxSDK(oct2005) で使っていますが、 スタティックリンクできるdec2004に切り替えようと思っています。 この場合、oct2005をアンインストールしてdec2004を入れなおし、 VC++のパスを設定しなおすだけで問題ないでしょうか? OSから入れなおした方が安全でしょうか?
29 :
26 :2007/06/22(金) 00:32:06
>>27 >>28 ありがとうございます。
バージョン落として使うことってあまりないと思っていたので、安心しましたm(_)m
DX10やりたいなら現状だとG8x買うしかないよ。 リファレンスラスタライザは死ぬほど遅いから。
遊びでDX10触るならもう少し待ったほうがいいってことですかね
REFは遊ぶためのものじゃないんだからREFしか使えない環境で遊ぼうと思うのがおかしい
G8xとか使ってて、あれ?おかしいなぁ、って思ったらREFでドライバーがバグってないか確認した方がいい程度がREFの役目。
34 :
デフォルトの名無しさん :2007/06/22(金) 20:03:34
超初心者で申し訳ないのですが質問です。 今、ヴァーチャルPC2004をインストールして、ゲームを動かしたいのですが、 実際のPC上のグラボは使えないみたいなんですが、なにか方法はないでしょうか? ゲーム起動だけがエラーがでてしないんです>< ホルダー共有とかのタグはあるんですが・・・ すみませんがよろしくお願いします
>>34 プログラム作成と何の関わりがあるのか明確に述べよ。
36 :
デフォルトの名無しさん :2007/06/22(金) 20:12:02
ちなみにいま確認したところ VM Additions S3 Trio32/64 というアダプターが入っているそうです・・・ 8MBしかない><
とりあえずコンパイルしてデバッグできるのか?
リソースからの読み込みについて質問です。 D3DXLoadMeshHierarchyFromX を使ってリソースからアニメーションメッシュを読み込むには FindResource()、LoadResource()、LockResource() を使ってファイルポインタを渡せばいいのでしょうか? (D3DXLoadMeshHierarchyFromResource という関数が無いようなので) ためしに、D3DXLoadMeshFromX を使って上記方法でファイルポインタを渡してもうまくいきませんでした。 HANDLE hTest; LPBYTE lpTest; hTest = LoadResource(NULL, FindResource(NULL, "XFILE01", "XFILE")); lpTest = (LPTSTR)LockResource(hTest); このlpTestをD3DXLoadMeshFromX の第1引数に渡したのですが、何か間違えてますでしょうか? D3DXLoadMeshFromResource を使えばうまく表示できたのですが・・・。
>>34 方法はない。VPC2004はDirectX HAL関係は動作しない仕様
>>38 D3DXLoadMeshHierarchyFromXInMemoryを使ってみたらどうだい?
41 :
デフォルトの名無しさん :2007/06/23(土) 00:55:08
>>39 DirectDrawはきっちり動作するだろ。
DirectXのHALが動かないわけではない。
特定のコンポーネントとDirectX自体を混同するなこの馬鹿。
VMWareなら、設定変えれば動くんだっけ?
2007 JuneいれてDebugに切り替えたら_ftol2_sseが大量発生 dxdiagでさえ出るんだけどお前らも出る? The procedure entry point _ftol2_sse could not be located in the dynamic linked library msvcrt.dll
環境はXP
>>44 ちょっと検索したら海外のフォーラムでも報告されてるね
Vista+VS2005 でも発生するらしい
原因はワカンネ;;
DIJOYSTATE構造体メンバのlZ(z軸)やlRz(z軸回転)の押下判定は lX(x軸)やlY(y軸)と同じように使えますか? 調べてみた所、32767を基準にしたような値になるんですが・・・。 DIRECTINPUT_VERSIONは0x700です。(バージョンの問題でしょうか?)
>>44 実はVistaだと起きないとか?
ひょっとするとコンパイルする時にコンパイルレベルにVista以上と設定してしまっているのかもね。
Releaseだと大丈夫だから気づかなかったとか。多分コンパイル環境が変わっているんじゃないかな?
>>48 Vistaで起きるかはわからない
2007 June付属のDXCapsViewer.exeでも出る(Microsoftがコンパイルしたもの)
50 :
47 :2007/06/24(日) 05:47:22
DIPROPRANGE構造体の内容を変えたらうまくいきました。
>>49 やっぱVistaに付いて来るmsvcrt.dllだと_ftol2_sseを持っているみたいだな。
何らかの理由でコンパイル時に対象OSをVista以上に設定してしまっているんじゃないかな?
52 :
デフォルトの名無しさん :2007/06/24(日) 11:54:55
コンパイルしたら ------ ビルド開始: プロジェクト: saiki, 構成: Debug Win32 ------ コンパイルしています... WinMain.cpp .\WinMain.cpp(5) : fatal error C1083: include ファイルを開けません。'windows.h': No such file or directory kooh2.cpp ってエラーが出たんだが、どう解決すればよいの?
ファイルを用意する。 パスを通す。
>>54 DirectXの管轄外
これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
テンプレ通りここじゃスレ違い。
>>54 そんな質問をするぐらいのレベルならC++を勉強し直さないと・・
>>saikikooh 具体的には、Googleを使います。 具体的には、スレ違いに気付け。
了解しました。出直してきます。
別に出直さなくても、それにふさわしいスレなりで質問すれば ちゃんとした答えが返ってくると思うけど
>>51 どういうこと?
SDKのユーティリティを全部コンパイルし直せばいい?
Directx使うアプリ全部っぽいんだけどソースないものはどうすれば・・・
yahooでググレよ・・・
VBランタイムしか無い 弱った・・・
>>51 Vistaからぶっこ抜いたけど64bit板しかないから意味ないじゃん
64 :
デフォルトの名無しさん :2007/06/25(月) 20:20:46
C++でゲームを作ろうと思ったんだけど 基本のグラフィッククラスを作って(一部抜粋) class CGraphics { // Direct3Dインタフェース、デバイス LPDIRECT3D9 D3D; LPDIRECT3DDEVICE9 Device; } そのクラスの派生でデバッグ用プリミティブを表示する class Prim : public CGraphics { void Draw_Line(D3DXVECTOR3 p1,D3DXVECTOR3 p2); void Draw_Box(D3DXVECTOR3 p1,D3DXVECTOR3 p2); }; みたいなクラスを作ったんだけど、一個しか作られないCGraphicsのD3DとかDeveiceって、Primクラスで持ってくるにはどうすればいいんだろう? CGraphicsを作った時のクラスポインタをPrimクラス初期化時に引数で渡した方がいいのかなあ?
デザインパターンか何か勉強すれ
singletonパターンでいいんじゃね
>>64 派生の使い方を完全に間違えてる。
だからそういうわけの分からない疑問が出てくる。
PrimはCGraphicsから派生すべきクラスではない。
DirectXなんかより前にまずはオブジェクト指向の基礎を勉強しないと、
そういう問題が次々に出てきて手に負えなくなるよ
意味の分からない派生すると後でキツイよな PrimがCGraphicsを持つのが自然な希ガス
あれか、竿から糸が出ているのか、糸に竿が付いているかという考え方の違いか。
>>64 デバイス類をカプセル化してDraw類もCGraphicsのメソッドでいいんでない
71 :
64 :2007/06/25(月) 23:33:40
あーやっぱり間違えてるかぁ dクス。 C++実際に使った事ないからよくわかってないんだよねw 勘違いしてたんだけど、 クラスの継承って変数を引き継ぐ様な使い方しないよね。 PrimクラスはCGraphicsに入れるか、派生なしのクラスとして作ってデバイスのポインタを渡した方がよさそうだね それかシングルd(だっけ?)でCGraphicsを作ってそのポインタを持ってきた方がいいのかなぁ
うぜぇ どっかいけ
問題はDirectXでなくC++の基礎知識の不足だと言ってるのに、 なぜこのスレで再度ごたごた言うかねえ そういうチラ裏はC++初心者スレでやれよ
DX10ってDX9から移行する価値あるかな?あんまり変わらないならDX11までスキップと思うのだが。
DX11???
>>74 あまり変わらないのであればDX10が出来ればDX11になっても何の問題もなくね?
512*512のbmpを読み込、その中にいる32*32のキャラクターを2倍に拡大して表示しました。 そうしたらキャラクターがぼけてしまいました。 g_pD3DDevice->SetTextureStageState(0, D3DTSS_MAGFILTER, D3DTEXF_POINT); g_pD3DDevice->SetTextureStageState(0, D3DTSS_MINFILTER, D3DTEXF_POINT); の様にしてみましたがそれでもぼけています。 くっきり表示させるにはどうしたらいいでしょうか。 DirectX8を使っています。
>>77 ポリゴンの頂点座標を2倍になるように引き伸ばすだけかと
拡大と引き伸ばしは違う
ミップマップ効いてね? pDevice->SetTextureStageState( 0, D3DTSS_MIPFILTER, D3DTEXF_POINT ); とか・・・そんなわけねぇかw もう考え得るフィルタ全部探してPOINTにしてみれw
>>82 何をもって「拡大」って言ってるかわかんねぇじゃん
初心者スレだしよ
単にスケールを2.0にして2倍とか言ってる気がしないでもないし
ここはレスどおりとらないでみた
そんなことより俺はキャラクターがさりげなく擬人化されていることに地味にフイタ。すまん >512*512のbmpを読み込、その中にいる32*32のキャラクターを2倍に拡大して表示しました。 >そうしたらキャラクターがぼけてしまいました。
m_p3DDevice->SetRenderState ( D3DRENDERSTATE_TEXTUREMAG, D3DFILTER_LINEAR ); m_p3DDevice->SetRenderState ( D3DRENDERSTATE_TEXTUREMIN, D3DFILTER_LINEAR ); m_p3DDevice->SetRenderState ( D3DRENDERSTATE_TEXTUREMAG, D3DFILTER_NEAREST ); m_p3DDevice->SetRenderState ( D3DRENDERSTATE_TEXTUREMIN, D3DFILTER_NEAREST ); レンダリングステータスに設定があった時代ってなかったっけ?
>>85 >>77 はDX8って言ってるが、それDX8じゃなくね?
見た瞬間やたらなつい気分に襲われたんだが
>>86 DirectX7だっけ?
>>85 は・・・
SetSamplerState
がDirectX9だっけ?
もう色々あって覚えてねーなw
SetRenderStateとSetTextureStageStateと両方設定する必要が
あったのは俺の勘違いかな?w
あ、俺、DirectX8のヘルプ持ってるじゃんw
DirectX8でのやり方は
>>77 の方法で正しいな
90 :
デフォルトの名無しさん :2007/06/27(水) 01:23:43
プログラム、プログラマー系の板って自分の知ってる事を「みんな知っていて当然」みたいに話す人多いよね。 プログラマーがコミュニケーション能力低いと言われるわけだ
>>89 いわゆる「0.5ずれ」がボケの原因となるのは、
ピクセル:テクセル=1:1で、かつニアレストネイバー(POINT)フィルタ以外の
フィルタを使ってるときだけだよ。
テクスチャマッピングの基本を抑えていれば簡単にイメージできるはず。
で
>>77 は、「2倍に拡大」って言ってるし(質問者が拡大率の定義を間違えている可能性もあるが)、
さらにD3DTEXF_POINTを使っているとも言ってるから、
恐らくボケの原因はモニタの調子がおかしいとか眼鏡の度が合ってないとか別のところにあると思う。
>>92 最近の英語版ヘルプはちょっと絵がきれいになってる。
http://msdn2.microsoft.com/en-us/library/bb219690.aspx ちなみに、アライメント補正用の-0.5は、ある意味理にかなっているんだけど
あまりにも人々を混乱させすぎたのかD3D10では廃止されちゃった。
コード移植時に注意だね。
>>77 今回はさらに拡大も入っているので、もう1ひねり必要だね。
-0.5は2倍されるべきか否かだけど、
基本は目標とするドットの整数座標から-0.5なので、
そのこところお間違いなきよう。
あと、32*32ってテクスチャに隙間なくぴったり敷き詰めちゃってる?
拡大とか回転で、フィルタの関係で外側の色が滲み込むっていう
これまたFAQがあるので注意。
34*34の領域を確保して、外側1ピクセルはエッジの色を広げておいた方がいいよ。
>>94 なぜ34*34にする必要がある?
33x33で十分だし普通そうする。
ああもちろん、ポイントフィルタと共に生き共に死すような人なら 心おきなくぴっちり敷き詰めちゃってください。 後でポイントフィルタ以外を使いたくなったときには ちゃんと思い出して欲しいけど。
>>94 D3D10ではどの部分が廃止になったの?
>>99 -0.5「引く」だと意味的に逆になっちゃうか。
正しくは、いままで0.5引いていたコードなら、
今度からは引かないのが正解になった、みたいな。
>>97 ああ、さらに誤解を・・・
>>95 で言いたかったのは、ポイントフィルタを使うってことではなく、
マージンは2pxでなく1pxで十分だろってこと。
つまり、フォントをテクスチャとして使う場合にように、
マージンの部分にチップの周辺色ではなく背景色(主に透明)を置いておく使い方のことを
言ってると勘違いしていたってことです。
ぐわ、
>>101 は日本語がかなりバグってた・・・すまん
縁取り付のポリゴンを表示するにはどうすればよいでしょうか? 容量節約のためテクスチャは使いたくありません
トゥーンレンダリングか
トゥーンじゃなくて、ポリゴンの上からワイヤフレーム描画したいってことなんとちゃう?
ポリゴンとワイヤーフレームを切り替えて二回描けばいいだけ。
>>100 0.5引いていたコードが要らなくなるという事は、どっち側の挙動が変わったの?
多分、テクセル側はそのままだろうから、ラスタライザー側が変わったのかな?
108 :
77 :2007/06/27(水) 18:34:55
みなさんいろいろとレスありがとうございます。
拡大というのはID3DXSprite::Drawの第3引数を(2.0, 2.0)としています。
>>83 から察するに、ひょっとして何かとんでもない勘違いをしているのでしょうか。
>>108 ちょwww
おま、D3DXSpriteかよwwwww
それは一番先に言わないとらめええええ
DX8のD3DXSpriteって、いくらこっち側でポイントフィルタを設定しても、
ステート系は全て内部で上書きされるから意味ないのでは?
(もちろん描画終わったらステートは戻してくれるけど)
DX8を使っている時点でとんでもない勘違い。 このスプライトは糞重くなかったっけ。 一生DX8をやるなら別に構わないけど、ただでさえDX9の更新箇所が多いのに飛ばしてDX10以降をやるのは大変だぜ?
DX8+スプライトの組み合わせはDX9でTL頂点描画の5〜10倍ぐらい重いんだっけか DSの時代にGBのプログラム組んでいるみたいだな
>>100 じゃあ逆にDX9でバーテックスから0.5引いてたコードをそのままDX10に移植すると、今度はおかしくなるって事か?面倒だな。。。
0.5テクセルを
食う
と?
ボケる
118 :
77 :2007/06/28(木) 17:00:41
やはりとんでもない勘違い野郎だったんですね。 今まではDirectX9で組んでいたのですが、 8の方が対応しているハードが多いのかなと思い今回は8で組んでいます。 とりあえず描画はこのままにして、完成したら描画部分だけ変更してみようかと思います。 本当にご親切にありがとうございました。
>>118 で、ボケの問題にはどう対処したの?解決したってこと?見送るってこと?
これだけ多くの人間が回答くれてんのに、
何も関係ない自分の予定だけ書き込んどきながら
問題についての報告は何も無し、ってのはあんまりだと思うぞ。
120 :
77 :2007/06/28(木) 21:57:18
>>119 ボケは見送ることにしました。
Spriteでは簡単にボケ防止はできないというのが自分の結論です。
>>120 ボケに限った話じゃないが、D3DXのスプライトは基本的に汎用性が強烈に低い。
さらに、
>>110-111 も言ってるかDX8の頃のスプライトは半端なく重かった。
DX9になって、フラグが多数追加されるなどして汎用性や重さの問題は改善されてきてはいるけれど、
やはりスプライトくらいはまずは自分で実装してみることをオスメすスる。
>>118 はぁ?
たかが、0.5足すのがそんなに苦痛か?
やってもみないで面倒臭そうな気がするだけだろお前
結局、よくわからねぇ描画部分を触るのが嫌なだけだろ
「できない」ならまだわかる
「面倒臭い」は救いようがない
>>121 言わばスーパーで売ってる惣菜みたいなものだからな。
誰でも利用できるけど価格は高めだし、ほぼそのまま利用するしかない。
やっぱ材料があれば売っているような惣菜だけでなく自分で思い通りの物が作れるようにならないとな。
まぁ、スプライトはせいぜいゆで卵か。
>>77 はゆで卵を使って卵かけ悟飯を作ろうとしている状態。
その行く末が
>>120
>>122 >>120 によると、0.5がどーのこーのではなくて、
2倍表示で強制的にバイリニアがかかっちゃうからボケる、って話でしょ
でDX8のD3DXSpriteだとバイリニアをOFFにできないっていう
普通に板ポリに描けよもう
メッシュのアニメーションを勉強しているのですが、 ID3DXAllocateHierarchyクラスの使用方法がいまいちよく分からないのですが。 階層構造を割り当てる・・・という名前のようですが このインターフェイスは一体何をするクラスなんでしょうか? あと、このインターフェイスはどうやって作ればいいのでしょうか? Xファイルを読み込むときにD3DXLoadMeshHierarchyFromXに渡さないといけないのですが、 NULLにするとエラーになってしまいます
すいませんクラスとインターフェイスの意味の違いが分かってなくて 変かもしれないですけど無視してください
とりあえずSDKにはサンプルというものがあってだな
ああ、ドモホルンリンクルですね 知ってます とりあえず申し込んできます
サンプルは私には効果がなかったので返品しました もうちょっと簡単で分かりやすいサンプルだと助かります
参考に買った本についてきたサンプルをコンパイルしたらリンクエラー LNK2019: 未解決の外部シンボル _DirectInput8Create@20 が関数 "long __cdecl InitDinput(struct HWND__ *)" (?InitDinput@@YAJPAUHWND__@@@Z) で参照されました。 とでました。 サンプルをそのままコンパイルしようとしているのでプログラム自体に間違いがあるとは思えないんですが、libファイルの設定とかが間違っているんでしょうか? コンパイラは.NET2003です。
何の本かも分からんし、環境ですら分からんから回答するの難しくね?
>>134 「はじめての3Dゲーム開発」という本で、DirectInputでテクスチャを移動させるプログラムです。
自己解決しました
最近の厨房はなぜ、どう解決したのか書かないかねえ・・・
>>137 教えてほしいならそう言えばいいんじゃないでしょうか?人のこと厨房呼ばわりしてるあなたのほうこそ厨房です。
>>138 お前の
>>133 の質問を見て、回答してあげようと資料を調べたり
手元の環境で問題を再現するために時間を割いてくれた回答者のことをお前は考えないのか?
正直いうと、俺もその一人だ。
たまたま件の書籍を持ってたから、実際に再現してみようとあれこれ実験してた矢先に
「自己解決しました」 〜糸冬〜
だ。
自己解決にしろ何にしろ解決したらその過程を書く。
ここに関わらず、質問する者としての最低限のマナーだ。
同じような質問が出たとき過去の解決方法が分かるだけでも回答しやすいんだけどな。 初心者に過去ログ全て漁れというよりも、スレの経過を知っている人がコピペなりしたほうが早いしね。
>>139 教えてクンに、こっちが費やした時間のことを考えれなんて長々といっても無駄
答える人間のことを考えない者こそが教えてクン
初心者を煽るためにわざと"自己解決"をまにうけてこそ2ちゃんねらー
よし真に受けてやるぜ自己解決かかってきな
自己解決しません(´;ω;`)
自己解凍しますたw w w ww www w w
自己中の多いスレですね
今ごろ気付いたのか
>>147 お前がそうでないというならその証拠を見せてみろ
質問があります!
>>150 お先失礼します。
DirectInputを使ってます。
プログラムの起動時に初期化してるんですが、ゲームパッドを
プログラムの起動後(初期化後)に接続した場合も検出して入力を受け付けるには、
どのようにすればいいでしょうか?
PnPに対応してれば 後は一定時間毎にポーリングして調べればいいのかな?
自己解決しました><
だれやねん
155 :
デフォルトの名無しさん :2007/06/30(土) 01:44:35
DirectX8であったレンダーステート、D3DRS_ZBIAS がなくなっちゃったんだけど代わりになるものないかなあ? D3DRS_ZBIASで優先度とか設定してたから、同じ様な事したくて
ちゃんとありました 自己解決しました
157 :
デフォルトの名無しさん :2007/06/30(土) 03:21:21
>>155 D3DRS_DEPTHBIASとかじゃ駄目なのん?
スーパーの惣菜が高いと思って自分で野菜や調味料を買って作ってみると 一人暮らしでは食べきれない量が出来てしまい、結局惣菜を買った方が安くつくことに気づく
そうでもないよ
164 :
デフォルトの名無しさん :2007/06/30(土) 17:09:52
DirectShowを用いたAVIファイルの再生方法について教えてください。 ゲームでオープニングムービーを流すためにDirectShowを利用しています。 今、ゲームウインドウ上でムービーを流すために、IVideoWindowインタフェースを用いて、 ゲームのメインウインドウの子ウインドウを作成し、そこにAVIファイルを再生しています。 そしてAVIファイルの終わりまで再生するためにWaitForCompletionを使用しています。 この方法ですと、ムービー再生中にウインドウの移動や、×ボタンによるゲームの終了が できません。 オープニングムービー再生中もウインドウを移動させたり、ゲームを終了させたりしたい のですが、どうしたらよいでしょうか?
ぎあ・・・片方 間違えました って言っておけ マルチは嫌われるぞ
166 :
デフォルトの名無しさん :2007/06/30(土) 18:02:32
165様 質問の内容はちがいますよ
167 :
デフォルトの名無しさん :2007/06/30(土) 18:22:36
>>165 / ̄ ̄^ヽ /::.__ .::::::::::::: __ ヽ_
l l / / ヽ_ヽv /: / ヽ ヽ
_ /,--、l ノ /  ̄ ̄ √___丶 ̄ ̄ |
,--、_ノ:: `ー':: 、ミー---‐,,l | // tーーー|ヽ |
,/ ::: i ̄ ̄ | | ..: | |ヽ |
/ l::: l::: l | | |⊂ニヽ| | |
l . l !:: |::: l | | | |:::T::::| ! |
| l l |:: l: l \: ト--^^^^^┤ 丿
| l . } l:::::,r----- l \::  ̄ ̄^ヽ 丿
ヽ :l:::: ト:;;;;;;;/-/__........... / __o
| 二|二゛ ___
ノ | ヤ
同じ奴じゃね?
ふつうにマルチだなw 違う質問つーかなんか誤魔化した感ムンムンだしよw
マルチがなぜ嫌われるのかよく考えてみろ。
>>171 【マルチ】
某人気エロゲキャラの名前を真似た教えてクン固定ハンドル
質問と回答を1人で行う
はわわー
なでなで
XXですぅ〜
とか言って正直ウザイ
173 :
デフォルトの名無しさん :2007/06/30(土) 23:56:34
古い(DirectX7の)ヘルプって手に入らないでしょうか? DirectInputCreateExの戻り値が知りたいのですが、DirectInput8Createと同じですか?
手に入りますよ 以上
>>174 DirectInputCreateEx DirectX7
のキーワードでググるとそれっぽいのがでてくるぞ
初心者スレなのでいっておくが、昔の保守でもやってんのか?
そうでなけりゃDirectXはバージョンについていく形で
組み換えていけない環境であるなら使わないほうがいいぞ
業務系アプリ作ってて後悔したことある
>>163 吹いたw
>>164 自分もDirectShow使うときは苦労したのでヒント教えちゃる。
IMediaEventEx使え。
そういう同期モノは大抵ウインドウメッセージで非同期にできるようになっとる
>>174 DirectInputCreateEx
DirectInputCreateEx 関数は、IDirectInput、IDirectInput2、または IDirectInput7 COM インターフェイスをサポートする DirectInput オブジェクトを作成する。
戻り値
成功すれば DI_OK を返す。
失敗すれば次のエラー値のいずれかを返す。
DIERR_BETADIRECTINPUTVERSION
DIERR_INVALIDPARAM
DIERR_OLDDIRECTINPUTVERSION
DIERR_OUTOFMEMORY
google DirectX7の日本語ヘルプ
DirectMusicを使ってMIDIファイルをCH(楽器パート)毎に再生をオンオフしたいのですが方法が分かりません。 最近DirectMusicを勉強し始めて、ファイルの再生や停止までは何とか理解できたのですが それ以上の情報はググってもまともに見つからずお手上げ状態です。 DirectMusicに詳しいサイトや書籍があればあわせて教えていただければ助かります。 どなたか宜しくお願いします。
>>179 てか、お前マジかw
googleに突っ込みもしないでこんなところきて恥ずかしくないのか?
道でチンコ丸出しで歩いてるのと同じぐらい恥ずかしいことだぞ
ググってもまともに見つからずじゃなくて 理解する頭がないんだろ?もう諦めたら
183 :
179 :2007/07/01(日) 23:44:49
180のURLは何故か開けないのですが、DirectMusicでグーグル検索しただけですよね? だとしたら当然私もその辺のページは見ましたので、どうやら私の理解力不足ようです。 ありがとうございます。 もう一度勉強しなおしてみることにします。
そういう逃げ方されると納得いかないんだけど
てかID表示してほしいな。
そりゃ逃げるわよね
187 :
179 :2007/07/02(月) 01:27:31
「僕は逃げません!あなたが好きだから!!僕は逃げません!」
>>184 最近、同じような逃げ方をする質問者を
異様に多く目撃するのは気のせいかな
しかも似たようなスレに集中している気が・・・・
期末テスト?作品提出?とか分からんけどそういうのの時期なんだろうか
>>180 昔いろいろいじった俺がいってやる
お前は間違っている
DMで179のことをするにはBandオブジェクト操作か自作Grpahでフィルタをかける方法しかないが
この2つのクラス名でMSのリファレンス以外にサイトがひっかからないということは
説明しているサイトなどは存在しない
>>189 自分でMIDIファイルを読み込んで、IDirectMusicBufferに逐次セットしていく。
再生したくないデータは出力しなければいいだけ。
説明しているサイトは思いっきり引っかかる。
お前がやり方を勘違いして無いと思いこんでいるだけ。
191 :
デフォルトの名無しさん :2007/07/02(月) 09:59:31
177様 ありがとうございました。IMediaEventExを利用したところ上手くいきました。
>>190 それやったらパフォーマンスクラス関係の機能何もつかえなくなるじゃん
リアルタイム制御いろいろするデータ、機能あるってのに
DM使って出力する価値あんまり無くね?
というかその方法完全に忘れてたわ。すまん
DirectMusicさんは近々引退する予定なんじゃなかったっけ
XAudio2はいつ実装されるのですか?
全く持って未定
196 :
デフォルトの名無しさん :2007/07/03(火) 22:37:32
D3DXMatrixTransformation2Dの引数の 3番目のFLOAT ScalingRotationにどんな値を入れれば正常に動くのかがわかりません。 MSDNにも載ってませんでした。 分かる方いらっしゃいますか?
197 :
196 :2007/07/03(火) 22:44:01
すみません、言葉足らずでした。 スプライトの反転を実行したいのですが、スプライトの縮尺をいじると D3DXMatrixTransformation2Dの3番目の引数を変更しなければならないようで。 -1とかインクリさせてみたりしましたがイマイチ分かりません。 以上、お願いします。
┌――――――――――――――――――――┐ |D3DXMatrixTransformation2D | └――――――――――――――――――――┘ ┌――――――┐ | Google 検索. | └――――――┘
>>196 そこには角度を指定できるけど、変な平行四辺形になるだけだから
使わなくていいわよ。
>>196 シアー変形させないなら、大人しく0.0を入れとけ。
201 :
196 :2007/07/04(水) 21:41:02
>>199-200 回答ありがとうございます。
また何度か試してみましたが、無理でしたのでポリゴン使ってみます。
SpriteのDrawの引数が変わってからめんどくなりましたな。
DirectXのスプライト自体初心者向けのだからね。 1から教えるならスプライト描画なんて使わさせんが。
スプライトはゲーム用途で使うもんじゃねーな
初心者用のDirectXの解説書がスプライトを使っているケースが多い。 別に意図的に使っているなら問題ないが、勉強するため本に沿ってやってるとスプライトから技術が進歩しなくなる。 DirectXを始める前に数学を学んで3Dの概念を理解してから、3D(ポリゴンの描画)→3D上での2Dの描画と進めるべきだよな。 本によってはゲームのアルゴリズムが載ってたりするけど、今ここで読者に伝えなきゃいけないのかと問いかけたい。
205 :
デフォルトの名無しさん :2007/07/05(木) 21:32:10
今まさにID3DXSprite使わないで2D描画しようとしてます。射影マトリックスを D3DXMatrixOrthoOffCenterLH(&m_proj, 0, vp.Width, vp.Height, 0, 0.0f, 1.0f); として今の所うまくいってますが、この関数の意味はあまり理解していません。 座標変換済み頂点を使うより楽な気がするんですが、デメリットありますか?
2D描画ならTL頂点使えよ。 スクリーン座標を指定するだけ(あと頂点カラーとかUV値はご自由に)だから、わざわざ変換行列を使う必要ないし。
207 :
やっくん :2007/07/05(木) 21:52:58
学校の課題を家でしようと思ったのですが、DirectDrawの設定がうまくいきません!! ディレクトリの所で「c:\mssdk\include」「c:\mssdk\lib」をちゃんと入れたのに、なぜかDirectDrawSurfaceが使えないのです(泣) 誰でもいいので、アドバイスをくださいお願いします!!
>>206 アニメーションする時は座標を直接書き換えorポリゴンを作り直しでしょうか?
UVでアニメーションじゃないの
>>207 そのフォルダに目的のものは入っているのか?
合成なし SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE,integer(false)); 通常合成 SetRenderState(D3DRENDERSTATE_SRCBLEND,integer(D3DBLEND_SRCALPHA)); SetRenderState(D3DRENDERSTATE_DESTBLEND,integer(D3DBLEND_INVSRCALPHA)); 加算合成 SetRenderState(D3DRENDERSTATE_SRCBLEND,integer(D3DBLEND_ONE)); SetRenderState(D3DRENDERSTATE_DESTBLEND,integer(D3DBLEND_ONE)); 減算合成 SetRenderState(D3DRENDERSTATE_SRCBLEND,integer(D3DBLEND_ZERO)); SetRenderState(D3DRENDERSTATE_DESTBLEND,integer(D3DBLEND_INVSRCCOLOR)); 乗算合成 SetRenderState(D3DRENDERSTATE_SRCBLEND, integer(D3DBLEND_DESTCOLOR)); SetRenderState(D3DRENDERSTATE_DESTBLEND, integer(D3DBLEND_ZERO)); //モノクロでしか調べてませんが合成すると加算合成+減算合成の効果が SetRenderState(D3DRENDERSTATE_SRCBLEND,integer(D3DBLEND_INVDESTCOLOR)); SetRenderState(D3DRENDERSTATE_DESTBLEND,integer(D3DBLEND_ONE)); //反転 SetRenderState(D3DRENDERSTATE_SRCBLEND, integer(D3DBLEND_INVDESTCOLOR)); SetRenderState(D3DRENDERSTATE_DESTBLEND, integer(D3DBLEND_ZERO));
>>213 なんか変じゃね?
それと実際使うには全部アルファでブレンド率調節できないと面倒じゃん
>>213 なんだよ・・・通常って・・・w
加重平均っていうんだ
自作ライブラリのサンプルプログラムでしか使わないので 実用には興味がありません。
>>216 だったらなおさら加算ブレンドは客寄せになるからマスターしておけ
>>213 減算合成がおかしい。
減算は1パスではSRCBLENDとDESTBLENDだけでは設定不可能。
BLENDOPで減算合成が可能になる。
(BLENDOP無しだと3パスで可能)
219 :
デフォルトの名無しさん :2007/07/06(金) 21:29:38
Microsoft Visual C++ 6.0を使っていて、エラーコードが error C2065: 'LPDIRECTDRAWSURFACE7' : 定義されていない識別子です。 で、ディレクトリのインクルードに「c:\mssdk\include」ライブラリに「c:\mssdk\lib」を入れたのですが、DirectDrawが使えません・・・・・・(泣) 初心者な質問ですいません。でも、どうしても課題を家でやりたくて、お願いします教えてください。
DirectX7かよw
222 :
デフォルトの名無しさん :2007/07/06(金) 21:50:57
>>220 はい、入れました。学校では普通にできたんですけど、何度やってもエラーが出るばかりで・・・・・・(泣)
何かコンピューターに至らない所でもあるのでしょうか?
一番上に入れても駄目なら分からんな。 一番下に入れるとVC6ではデフォのライブラリ(DX3かな?)が 先に検索にヒットしてしまうから、駄目だったりするが。
224 :
デフォルトの名無しさん :2007/07/06(金) 21:56:53
>>223 お答えありがとうございます。
一つ質問なんですが、実はVC6は海賊版でそれは関係あるのでしょうか?
SDKが入っていなかったりして
>>224 そういう事をここで書くなよ・・・
ていうかVC++2005落としてくれば
学生ってこんなのばっかりか。折角学生証があるならアカデミック版買えよ
>>224 DirectX7を無料でやりたかったら、Migwでも入れろ、ボケ。
>>224 諸々の事情でVC6を使わざるを得ない、ってのなら理解できるが、
諸々の事情で海賊版、ってのはどう弁明したところで違法以外何者でもないぞ
DirectX Texture Tool でDDSファイルを作りたいのですがうまくいきません。 白黒のhoge_a.jpgを同ディレクトリに作ってhoge.jpgをオープンしてるのですが、 アルファチャンネルを読み込みません。 画像を変えても同じでした。 どこがおかしいのでしょうか?
憶測ですまんが、JPEG形式が駄目なんじゃね。 PNGかBMPで試したらどだろ。
Expressっていう無料版じゃだめなん?
アンカくらい付けれ
DirectShowの質問もここでいいですか?
悪くはないが、同じム版に専用スレがあって 詳しい住人が多いから、そっちの方がいい。 まあみんな似たようなスレ巡回してんだけどね
240 :
デフォルトの名無しさん :2007/07/10(火) 17:22:09
横170×縦250の テクスチャー読み込んで、スプライトで表示したら、 勝手に255×255にされたんだけど、これは仕様なのかな?
仕様でつ 170*250→256*256
242 :
デフォルトの名無しさん :2007/07/10(火) 18:43:12
DirectX8の時は自由なサイズ使えたんだけどなあ。 グラボとかによるのかな
DX8から今でもスプライトなんか使い続けるなよな。 なんで重くて汎用性の無いものを何年も使うのか分からん。
そもそもDirectXにスプライトなど無い。
あるにはあるけど着飾ったものだからね。 だから重いし汎用性も薄い。
だから無いって。
スプライトで十分な用途ならわざわざポリゴン使うより生産性高くていいじゃん
ポリゴンに最適化されてるGPUにそりゃないべ つうか板ポリの方が汎用性たかくね
無いものをどうやって使うつもりなんだ?
250 :
デフォルトの名無しさん :2007/07/10(火) 21:23:25
JPEGファイルで抜き色(透明にする色)を指定したいのですが、上手くできません。 現在、D3DXCreateTextureFromFileExを用いています。 BITMAPファイルなら上手くできるのですが・・・ どうしたらJPEGで抜き色を指定できますか?教えてください。
マスクを作るとか、jpgなら思い切ってddsにするとか
そういう用途にjpegは向いていない。 というわけで、jpegについて調べてみると勉強になると思う。 "jpeg ノイズ" とかで調べてみると情報が引っかかるだろう。
でも別にしたい奴向けにできるようにしておいてもよさそうなもんだけどな てか、むしろjpegだけ弾くとか器用だよなw まあ、できるようにしておくとQ&Aで聞いてくる奴がいることを予想できるからあえて切ってるんだろうな まあ、jpegなんかマスクにしたら結果はあきらかだがな
>>250 テクスチャをロックして自分で該当部分のα値をセットすれば良いだけ。
悩む所など微塵もない。
SDKのテクスチャツールで頑張ってるとみた
このスレでスプライトっつったらD3DXのSpriteのことだべ。 誰も、厳密なスプライトアーキテクチャを指してなんてしゃべってないでしょ。
257 :
デフォルトの名無しさん :2007/07/11(水) 09:30:50
D3DXのスプライト関数あるの知ってるくせに、自分の知識をひけらかしたいのか、したり顔で ____ / \ /\ キリッ . / (ー) (ー)\ / ⌒(__人__)⌒ \ <DirectXにスプライトはない! | |r┬-| | \ `ー'´ / ノ \ /´ ヽ | l \ ヽ -一''''''"~~``'ー--、 -一'''''''ー-、. ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒)) ____ /_ノ ヽ、_\ ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ /⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒) | / / / |r┬-| | (⌒)/ / / // だっておwwwwwwwwwwwwwwwww | :::::::::::(⌒) | | | / ゝ :::::::::::/ | ノ | | | \ / ) / ヽ / `ー'´ ヽ / / プログラマーってこういう空気読めない奴多いよなあ・・・
間投助詞ダブった、スマソ
260 :
デフォルトの名無しさん :2007/07/11(水) 09:57:01
>>258 でも、マイクロソフト自らスプライトっていう表現使ってるのに、わざわざ
「スプライトじゃない!!」って言う奴は馬鹿じゃん
しかも、質問に答えるわけでもなく聞いてもいない事を偉そうに言ってさ
ま、俺もD3DXのスプライト機能は使ってないけど
そもそもID3DXSpriteをスプライトとか言っちゃうから、
スプライトとポリゴンを比較する
>>247 みたいな馬鹿が出てくるんだよ。
262 :
デフォルトの名無しさん :2007/07/11(水) 11:21:01
>>247 だって別に間違えた事言ってないでしょ
スプライト関数用意されてて、それを使ってすぐ表示出来るんだから生産性は高いでしょ
インフォメーション程度に2D表示するだけなら、スピードなんて遅くたっていいし。
2DゲーでID3DXSprite使うのはどうかと思うけど、ID3DXSpriteをスプライトと言うのは間違いではないよ
昔のゲーム機についてた所謂”スプライト”なんて、過去の遺物なんだから2Dとして表示する物を”スプライト”と言ってもなんの問題もないじゃん
どうして、どーでもいい細かい事にこだわる奴が多いのかなあ・・・
こだわってるというよりは、知ってるくせに認めたくないと言うか・・
ポリゴンを使うID3DXSpriteとポリゴンを比較している時点で大間違いなんだよ。 そうやって間違いを認めずに繰り返すから、それを見た初心者が勘違いをして意味不明な質問をすることになる。
もしかするとID3DXSpriteの中身がDrawPrimitiveだということを 分かってない奴がいるのかもしれん。
D3DXってソース公開されてんの?
ねえよ
ソースが公開されていなくてもPIX使えば必要な情報は十分わかるからなぁ。 頂点バッファ作成時の設定や更新頻度、DrawIndexedPrimitiveを呼ぶときのレンダーステート等。 「高レベル描画APIで十分ならわざわざプリミティブ描画APIを使うより生産性高くていいじゃん」 なら別に異論はないけど、元々スプライトってハードウェアのプリミティブ機能だっただけに、 「スプライトで十分な用途ならわざわざポリゴン使うより生産性高くていいじゃん」には違和感がある。 てか実際にDirect3DにはPoint Spriteって名のハードウェアスプライトが存在するし。 やっぱ誤解招きやすいと思うよ。
まあ、荒れるの承知で書くけど、PointSpriteはポリだぜ。 現在、ハードウェアスプライトを実装するメリットは無いし。 DirectXにはポリしかない。名前だけスプライト。 ただ、そんな事は100も承知で このスレでスプライト=DirectXの機能 or 自前の板ポリ の事なのは自明。 イチイチ「スプライトじゃない」とか言う意味は無い。
>>268 同意。
いちいちハードウェアスプライトの話をもってくる奴ウザスギ
いくらなんでも空気読め無いにもほどがある
間違っていることは明白なのに、素直に認められないのがプログラマのプライド。
>>268 >DirectXにはポリしかない。名前だけスプライト。
そういう意味で言ってるんじゃなくて、
「ポリゴンかスプライトか」という表現は、
プリミティブタイプにどっちを使うべきかみたいな議論でもありうるんだけど、
とにかく情報が欠落しまくりのネット上の議論だと
「スプライトってD3DXとプリミティブタイプのどっちのこと言ってる?」
と聞き直す羽目になることが多いという話。
・点 + (ポイントスプライト)
・線分
・三角形
のどれよ? と。まあ線分はありえんけど。
別に聞き直されるのがうざくなければD3DXのをスプライトと呼ぶのを止めはせんよ。
てか、ポイントスプライトって帯域圧縮効果はそこそこあると思うだけどな。
デモ用のパーティクルシステムとか結構ポイントスプライト使ってない?
あれをハードウェアスプライトと呼びたくないなら別に構わんが。
272 :
デフォルトの名無しさん :2007/07/12(木) 16:07:48
ここで 「DirectXのはスプライトじゃない」って言い張ってる馬鹿は、スプライトを狭義の意味で捉えてるだけなんだよね。 よーするに「ハードウェア機能としてのスプライトしかスプライト」しか認めないって言ってるだけ。 そもそも、スプライトって”表示画面のイメージパターン”っていう意味だから、DirectXでの表示もスプライトって言って構わない 古くさい考え方しか出来ない奴はファミコンとかX68000のゲームでも作ってろww
誤解される表現をわざわざ意地になって使う奴って、何が楽しくてやってるんだろう?
いちいちスプライトという言葉に反応するやつは FM-TOWNSで「これはスプライトぢゃないっ!!!」とか言ってたやつだな
どうせ「スプライトっていうなー」言ってもみんな言うんだし、
ならD3DXのはスプライトでいいじゃんと思うんだけど、
>>268 のみたいに「ポイントスプライトはハードウェアスプライトじゃない」は違和感ある。
ドライバレベルで定義されてるんだしハードウェアでいいんじゃね?
何でそこだけやたら狭い定義を採用するんだと。
276 :
デフォルトの名無しさん :2007/07/12(木) 16:48:34
>>273 だからさ・・・どう誤解するの?
今、ハードウェア機能のスプライト使っての開発なんてないだろ。板ポリかバッファにイメージデータの転送だろ。
2Dをスプライトって言って誰が困るのよ?
くだらないこだわりしてる奴はただの老害
もう全部スプライトってことでいいよ。 DrawPrimitive使った板ポリ描画もスプライト。 BitBlt使った矩形転送もスプライト。 これで満足だろ?
>>275 そういやD3D10からポイントスプライト廃止だっけ。
まあGeometry Shaderでエミュレートできるからこその廃止とはいえ
パフォーマンス大丈夫なんかいな。
アルファテストもシェーダで書けるからという理由でD3D10から廃止だしなぁ。 リセット感がすげえ。 【消えたもの】 ・固定機能頂点処理 ・アルファテスト ・ユーザークリッププレーン ・フォグ ・シェーダモードのGouraudとFlat ・D3DFILL_POINT ・TLVERTEX描画
>>277 背景と別レイヤーに見せかければソフトウエアスプライトと呼べるが、
単純に描画するだけではスプライトとは呼べない。
よって大間違い。
初心者が関数とかインタフェイスをカタカナで書いて、 訳の分からない内容の質問をしているのを見かけるが、 結局こうやって勝手なカタカナ表記を使う奴がいるから真似をするんだろうな。 普通にインタフェイスの名前をそのまま書けばいいだけで、綴りに自信がなければ確認すれば済むのに。
>>280 あーBitBltでD3D9のStretchRectみたいなのを連想したんだな。
すまんね。
DirectDraw(+カラーキー)とかGDIのマスク描画みたいなのを想像してた。
当時もスプライト論争あったから。
GDIのBitBltでソフトウエアスプライトを実現する方法とか
もはや古代技術になりつつあるけど。
でもこいつらも多分君の定義だとソフトウエアスプライトに入るはずなんで
広い心で入れてやってくれ。
おまえらスプライトの定義はよそでやれよ
初心者が落とし穴にはまって騒いで本当うるさくて うざくてたまらないのがスプライトとカラーキーだ。
カラーキーはDirectX以前の問題な気もするが。 いくら初心者スレでもC(C++)をある程度理解してたら途中に画像描画も通ってそうだけどな。
286 :
デフォルトの名無しさん :2007/07/12(木) 21:52:30
質問失礼します。 ビルド時に error C3861: 'D3DX_SKIP_DDS_MIP_LEVELS': 識別子が見つかりませんでした と言われ、ビルドが通りません。 D3DX_SKIP_DDS_MIP_LEVELS の定義場所が知りたいです。 分かる方いらっしゃいますでしょうか? XP SP2 VS2005 DirectX 2007 April です。 よろしくお願いします。
質問失礼します。 新たに社内用開発ツールを作成したく、 そのツールにて高速な2Dの描画(アニメーション)を行いたいのですが、 現在まで使用していたAPI関数では表示が追いつかない可能性がある為 新たに高速に描画を行える物を学びたいを思っております。 現行の開発環境がVS2005 ツールを配布したいPCは OS:XP(SP2) .NexFramework2.0インストール済み なのですが、DirectX10はVista専用 2D描画は9.0以降WindowsSDKに引っ越したとのこと どれを学ぶのが賢いのか分かりかねています。 できるなら容易に関連書籍が購入できるとありがたいのですが 学ぶのに何が好ましいかどなたか教えていただけませんでしょうか。 言語はB,C/C++ができますがWindows上にてのプログラム経験は浅い為、 勉強する覚悟はできています。 宜しくお願い致します。
2Dのあぬめーひょんって具体的にどんなーん? 単純にスプライトを大量に表示する必要があるってんなら兎も角、 ピクセルをゴリゴリ弄るような処理ではDirect3Dはなんの力にもなれないよー。
抜き色無しのアニメーションならGDIでも十分高速。
Direct3D ○:抜き色有・無描画、拡縮、回転、それらの同時掛け X:ピクセル単位の処理 その他 グラフィックボードによって動作が違うことがある(大抵は大丈夫、ただ客が馬鹿だと苦労する) 1ドットに対して正確に色をおかなきゃいけないときに拘ると最悪(できないわけじゃないだろうけど・・・) デバイスのロスト等描画以外でかなり手間がかかる、復旧方法を全部知っておかないと苦労する GDI ○:抜き色有・無描画、拡縮、回転、ピクセル単位の処理 X:抜き色有・無描画、拡縮、回転の同時掛け その他 Direct3Dと比べるとかなり遅い、環境による差が少ない、面倒が少ない
292 :
286 :2007/07/13(金) 11:52:44
解決しました。 SDK 2007 April の d3dx9tex.h に //----------------------------------------------------------------------------- // D3DX_SKIP_DDS_MIP_LEVELS is used to skip mip levels when loading a DDS file: //----------------------------------------------------------------------------- #define D3DX_SKIP_DDS_MIP_LEVELS_MASK 0x1F #define D3DX_SKIP_DDS_MIP_LEVELS_SHIFT 26 #define D3DX_SKIP_DDS_MIP_LEVELS(levels, filter) ((((levels) & D3DX_SKIP_DDS_MIP_LEVELS_MASK) << D3DX_SKIP_DDS_MIP_LEVELS_SHIFT) | ((filter) == D3DX_DEFAULT ? D3DX_FILTER_BOX : (filter))) と定義してありました。 よって、SDKバージョンの相違でした。
質問失礼します。 よくXFileを使うくらいなら独自形式を使え、といった話になるのですが 独自形式に変換するためには何のファイルから変換するのが分かりやすいでしょうか? アニメーション情報もキーフレームでファイル内に含むことが出来るように したいのですがよい方法はありませんか?
自分が使っているモデリングソフト用のプラグインを作るだけ。 余計な形式から変換する必用は微塵もない。
なるほど、ではMax用のプラグインを制作してみます。 ありがとうございました。
Maxってフォーマット公開されてたっけ?
プラグインを作るのにフォーマットなんて関係ないだろ。
298 :
デフォルトの名無しさん :2007/07/14(土) 15:30:59
m_pMesh->Release() ←こういうような Releaseし忘れを警告してもらえる方法ってありますか? 自分の環境だとリリースしなくても何にも警告でないんです…
テクスチャについて質問なのですが フォーマットD3DFMT_D24S8で生成されたIDirect3DTexture9を 状況によってD3DFMT_A8R8G8B8で扱うといったようなことはできないのでしょうか? なぜこんなことを、というとシェーダー内でサンプリングする際に D3DFMT_D24S8でセットされたテクスチャはtex2Dを使ったときに 深度比較としてあつかわれてしまうのですが、 (通常shadow mapとかであればそれを意図しているので問題ないのですが) あくまで通常のARGBとして扱いたい場合どうすればいいんですかね。 テクスチャは毎フレーム更新されるので、 あまりコストのかかる処理は避けたいです。
上司か先輩か知らないが、デバッガ気取りのそのクソ野郎のPCを起動し、 コンパネのDirectXを開き、Direct3DのタブのUse Retail Version of Direct3Dのチェックを入れろ
>>299 Direct3DではデプスバッファをARGBとして読むことは不可能。
代替処理として、深度をカラー情報に格納するシェーダを書く必要がある。
302 :
299 :2007/07/14(土) 20:00:03
>>301 ありがとう、
なるほど、じゃあ
通常レンダリング時に
通常ピクセル>COLOR0
深度値>COLOR1
みたいにマルチレンダーターゲットとかにして2枚つくるしかないのかな?
テクスチャについて質問なのですが Zオーダー指定の違うテクスチャを重ねると、上になったテクスチャの周りに、デバイスクリア色で縁が付きます。 これは、SetRenderState(D3DRS_ZENABLE, TRUE)でZオーダー指定すると回避できないのでしょうか? それとも、なにか他の指定方法で回避可能でしょうか? よろしくお願いします。
アルファブレンド(透過)がされていない訳じゃなくて?
>>304 透過されますが、絵の透明色と非透明色の境界にデバイスクリア色がでます。
文字のテクスチャを表示すると、縁取り文字みたいに表示されます。
他の透明色付きテクスチャも同じ現象が出ます。
Zオーダが同じならでません。
Zオーダーとアルファブレンドが相性の悪いのはわかってるのですが、
透過色を使用していない(上位ビットが0xFF000000)データでも出ます。
透明色側に縁が出ているような感じで、ずれているような表示ではなく
周りにデバイスクリア色が付いているような感じになります。
>>305 現象が何かも確認できていないうちに回避策もあったもんじゃないんだが。
1) 拡大表示か何かでアルファ値が補間されて、境界部分が半透明状態になる
2) サーフェイスクリア直後のサーフェイスに1)を描画したところ
サーフェイスクリア色とブレンドされるようなレンダーステートになっていた。
さらにアルファテストもやっていたので、完全透明なところ以外はZ値が更新される
3) その上から背景(推測)を描画したところ、Z値が更新されていないところのみ描画された。
という状況なのかね?
>>306 まず、拡大縮小はしていません。
きっちりした透明色(0x00000000)と非透明色(0xFF??????)の境界、透明色側に
デバイスクリア色がでます。
描画順番にかかわらず出ます。(あきらかに後から上書きしたZが0.0の画像にも縁が付く)
テクスチャは手前も後ろもD3DXCreateTextureFromFile()で読み込んだpngファイル。
縁に半透明処理等はしていません。
背景Zオーダー1.0 前景Zオーダー0.0 → 縁が付く
背景Zオーダー0.0 前景Zオーダー0.0 → 縁が付かない
普通にDrawで描いてるんですけどね。
>>307 描画順序にかかわらずってのが謎だねぇ。
それ本当にサーフェイスクリア色?
とりあえずよくわからんのでPIX for Windows使ってピクセルの色変化履歴見てみてみたら?
>>307 に補足
画像は既に256×256に切ったものなので、読み込み時に拡大縮小はかかっていません。
>>308 赤でクリアすると赤く、グレイデクリアするとグレイになります。
何かの影響だとは思いますが、デバイスクリア色が出ているのは間違いないと思います。
とりあえずご指摘のPIX for Windowsで変化を見てみます。
ありがとうございます。
z が 0.0 か 1.0 忘れたけど、丁度のやつは グラボによって表示されないことがあったりとか過去に聞いた気がする 0.01 や 0.99 くらいにしてみたらどうだろ
>>311 文字表示に横着しまして、ID3DXFontを使用しています。
その表示がZ0.0なので、強制的にトップは0.0で表示(後ろの字が消えるように)しています。
あと、Z深度をいじってみたんですが、結果としては変わらなかったです。(Z値が違うと縁)
後ろのZ深度は変更してみます。
ありがとうございました。
>>303 ピクセルとテクセルが0.5ずれてる話は知っている?
テクスチャの拡大縮小フィルタはどう設定している?
D3DSAMP_ADDRESSU, Vは何に設定している?
なんかすげーちょっとした設定間違いのような気がする いままでそんな報告なかったし アルファの掛け合わす設定が間違ってるとか 下の色と混ざるように設定してはいるものの 設定が間違っててアルファが0のときに下の色が描画されてなくて 結果クリア色と混ざっちゃうとか テクスチャの色もデバイスクリア色と同じ色でクリアしてて実は・・・とか
とりあえず見てみんとしょうがないのは アルファの設定とブレンドの設定とZの比較設定とZの更新設定と テクスチャの色とテクスチャのフォーマットとポリゴンの色かな?
DXUTは今後も生き残れると思いますか? それともいつものごとく無かったことにされてしまいますか?
>>318 文章がおかしい。「それとも」の使い方を明らかに間違っている。
投稿する前に文章を読み直す癖をつけましょう。
「それとも」の使い方を明らかに間違っている。
「それとも」の使い方を明らかに間違っている。
座標p,速度ベクトルv,上ベクトルuの物体を、 座標pp,速度ベクトルvv,上ベクトルuu へ変換する行列を作りたいのですが、どうすればいいのでしょうか? ヒントでも良いので御願いします。
D3DXUTって2ヶ月ごとに互換性なくなるものと いままで思ってましたがそうでもないんですか?
>>322 数学と物理を学びなおすのと、現実を見たほうがいいと思う。
とりあえず1つ1つの計算を行列にすればあとは掛け合わせて1つの行列にするわけだし。
まぁ、この例だと無理だが。
解釈によっては車が
東京(p)にあって 停車中(v)で 上方向(u)は空を向いている
何か色々あって車が
大阪(p)に移動し 地中方向に時速60km(v)で進みつつ 横転している(uu)
とか訳の分からんことに。
例えば前へ進むとかじゃなく、どの方向に進むのかちゃんと決めてやらないとな。
ESP使ってやれよ。 ゲームキャラの移動か誘導弾じゃねえの?
327 :
デフォルトの名無しさん :2007/07/15(日) 20:28:13
メッシュを白く点滅させたいんですがどういった方法が考えられますか?
用途は? もしダメージ食らいエフェクトとしての点滅だったら、俺はその表現は嫌いだからな。
まさにそんな感じで使いたいんですが、なんかダメなんですか?
>>330 相手の意図を読みきってベストな回答を出す事
なるほど。トン。
>>327 やり方は無数にあるが、
「メッシュ全体に色を加算」を固定機能でやると仮定すれば
D3DRS_TEXTUREFACTORに点滅色を設定して、
SetTextureStageState(1, D3DTSS_COLOROP, D3DTA_ADD);
SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_CURRENT);
SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_TFACTOR);
のような感じか。
>>325 すいません。では、弾が
位置p(1,1,1)、速度v(0,0,1)、上(0,1,0)から
位置pp(3,3,3)、速度vv(1,0,0)、上(0,0,-1)
に移動する時の、この姿勢を変換する行列の求め方を教えてください。
>>333 D3DTA_ADDというのはありませんでしたので、
代用として適当に見つけたD3DTSS_ALPHAOPでやってみました
他の色はいけるんですが、白を合成しても変化ありませんでした
白で点滅させることはできないんですかね?
>>334 4x4の行列の[0][0](._11)に何が入るか理解してる?
>>335 D3DTA_ADDの誤記の代わりとしてはD3DTSS_ALPHAOPはダメ。D3DTOP_ADDが正しい。
>>338 おお!白でも合成できました
ありがとうございます
内部でD3DXMatrixScalingを使わないで済むように Xファイルのサイズを変更したいんですがそういったソフトはありますか?
そういう計算を事前に済ましておくということも、 自前フォーマットを採用する理由の一つ。
340のやりたいことと自前フォーマットは全然関係ないと思うが。
まあ最近の若いのには、質問には答えず どうでもいいチラウラばかり書きたがる人間が多いからな
本来なら予めゲーム内の『1』という単位を決めるべきなんだよな。 例えば『1』を『1メートル』としていれば、人や車などをモデリンクソフトでどれぐらいの大きさで吐き出せばいいか分かりやすいし。
>>340 変更したかったら読み込んで書き替えて書き出せばいいだろ。
Direct3D自体に簡単に読み書きできるようにパーサが付いてるんだから。
なんでプログラムを作る人間なのにその程度のことをやろうとしないんだ?
おまえら 「そういうソフトはあるだろうけど俺はしらね。つうか自分で作った方が早くね」 と正直にいいなさい
だって他ツールはあまり信用できないよ。 ツール独自のフォーマットのほかにXファイルの読み書きが出来たとしても フレーム名を変えられたり、勝手に最適化されて頂点が入れ替えられるのが邪魔なこともあるし 自分でやるのがいいって。
>>346 >>347 に同意
みんな色々探したんだけど
ホントにないんだよ
・細かいところで整合性があってない
・そもそも機能を満たしてない
・1つの機能の実現の仕方が普通の方法とは異なる(そのソフト独自のデータを持つ)
・無駄に最適化や圧縮がしてある
とかありがちなのから、この他にもたくさん問題がある
3Dソフトでフォーマット→フォーマット変換はできないとさえ思う
そもそも自社のフォーマットをサポートしつつ他のフォーマットまでサポートするってのが
作業量的に無理なんじゃないかと思う
最終的にXファイルを出力したツールで(機能があればだけど)編集・調整すりゃ 整合性はとれるんじゃないの? わざわざ自分で作る必要あるんかね というかモデルツール用のマスターデータくらい用意しろよ、と
だから出力用プラグインぐらい自分で作れと。
>>349 >最終的にXファイルを出力したツールで(機能があればだけど)編集・調整すりゃ
>整合性はとれるんじゃないの?
そうやって物事の表面しかみてない発言やめろ
一口に出力っていったってフレーム名がめちゃくちゃだったり
ちゃんとサポートできてなかったり、アニメーションがついてなかったり
できてるように見えて微妙にUVの値が変だったり
ロクなもんがねーのがいまの状況なんだよ
モデリングツールのパッケに
○Xファイル出力
なんて書いてあったって騙されちゃ駄目
大抵、アニメーション、スキニングのサポートは無い
してあってもどこか変。
多分、フレーム階層のもんとワンスキン構造のもんの整合性がとれてないのと
その辺の整合性をとるのが面倒でどこもやってないっぽい
現状、出力プラグインを作るのが正解
>>351 すまん。俺が言ってんのは
>>340 への内容。
希望通りの出力できてんなら他ツールなんて不要だろ、という意味
が、現状の話もよくわかった。つまり
○現状、出力プラグインを作るのが正解
◎現状、出力プラグインを作って売るのが正解
か
そもそも一般的な3Dソフトは、レンダリングまでの過程をサポートしているだけで、 途中経過のデータを出力するのを考慮していない。 だからプラグインで無理矢理書き出す形をとっているわけだが、 中途半端なデータにどういう意味を持たせるかは、個々で決めるしかない。 しかも補助用のプラグインが途中経過のデータを引き出す方法を公開していなかったり、 標準機能のレンダリングに連動して初めてデータを生成するものまである。 結局エクスポート部分どころか、かなりの部分を自分で書かないとならない。 しかし趣味でプラグインを書いているレベルの人間はほとんどいない。 洋ゲーのカスタマイズツールはエクスポート用のプラグインとセットになっている場合がけっこうあるが、 日本では全く見かけられない。
プラグイン作るのが面倒だったらもうXファイルでいいんじゃねとか思うのは俺だけか。 趣味で作っている作品をさらに追求したいわけなんだし、プラグイン作成もその延長だろ。
まともなものを作ろうとすると、まずはソフトの購入に大金をはたく必用がある。 フリーで使えるものはスキニングやアニメーションを考えると、はっきり言って全く使い物にならない。
中間ファイルなら調度いいのがあるじゃん ほら、有名なゲームハードメーカーが音頭をとってやってるやつが
HDRに関してなんですが、 A16B16G16R16、A16B16G16R16F、A32B32G32R32Fのフォーマットってαブレンドをサポートしていないの? A8R8G8B8とかに変えるとαブレンドされるのに32bitよりも大きいフォーマットだとされないのは仕様?
すいません、メッシュを画面のいろいろな位置に表示させると端になるほど微妙に斜めに表示されるんですけど 画面のどの位置にいても正面から見たように表示させることってできませんか?
>>360 できればソースとかでお願いできませんか?
とりあえず3D入門的なサイトや本をあたった方が・・・
>>359 D3DXMATRIX matShift;
D3DXMatrixTranslation(&matShift, 0.5f, 0.0f, 0.0f);
matProj *= matShift;
g_pd3dDevice->SetTransform(D3DTS_PROJECTION, &matProj);
これが一番楽よね。
>>357 GeForce7とかだとアンチエリアスが使えなかったと思う。
>>364 ってどのへんが359の求めるものを満たしているんだ?
D3DXCreateFontなんですが 戻り値が毎回-2005529767で失敗するんですが グラボの性能次第で使えなかったりしますか? SDKバージョンは9.0cの(DEC2004)です。
テクスチャにフォントイメージを直接描くことによって回避できます。
>>368 テクスチャにフォントイメージを直接描くとはどういうことでしょうか?
本当にプログラマか?聞いてばかりで恥ずかしくないか? 「ネットで調べる方法」に「2chで聞く」なんて書いてるクソ学校があるけどな
>>369 ロックして描け、それ以上でもそれ以下でもない。
>>371 そういうことですか、ありがとうございます。
最近、固定機能が許されるのは小学生までのようなふいんきを感じるんですが、 例えば(べつに例えじゃないけど)、DirectX 8.1以上対応の同人ゲーを作るとして、 GPUの貧弱なユーザを考慮してピクセルシェーダも使わないとして、 シェーダを使うメリットは奈辺にありましょうか? 手元で固定機能のコードが動いてるんでこれでいいかなーと思っちゃうわけですが。 将来的にはシェーダ使うつもりですけど。
使いたければ黙って使え。
自分にとってのシェーダを使わないデメリットを考えてみろ。 それが無ければ、使わなくてもいいんじゃない。
アタマイイ
自分にとってのDirectXを使うメリットを考えてみろ。 それが無ければ、このスレ見なくてもいいんじゃない。 つか来んな
全然詳しくないので質問させてください。 DirectXのバージョンは9.0以上なのですが ディスプレイのとこを見ると機能が全て利用できませんってことになっています。 ゲームがしたくて色々チェックしたのですがよくわかりませんでした。 どなたかアドバイスしてくださるとありがたいです。 ついでに他のとこも見たところ、ドライバのDDIバージョンは不明になっています。 DirectXバージョンは9.0cとなっています。スレ違だったらすいません。
>>378 頭が悪いんだからゲームをしている場合じゃないだろ。
ただでさえ他人よりも劣っているんだから、もっとマシなことに時間を使え。
>>378 ここはプログラム板。
C/C++以前にプログラムと何の関係も無い
スレ違い以前に板違い
能力のない者は最低スペックのことが頭にひっかかって結局何もできないんだよね。 自分のやりたいレベルのことをこなしながら、それなりに低スペックも救済するのができないのはなんでだろうね。
誰に言ってんのキミ
明らかに誤爆だろw
明らかに自己紹介だろw
明らかにイジメだろw
自己紹介ワロタ
387 :
デフォルトの名無しさん :2007/07/22(日) 15:38:01
全然詳しくないので質問させてください。 仕事全然できない派遣クンが 「DirectXがプログラムどおりに動かない原因を調べるのは僕の仕事ではありません。」 と言っています。 原因を調べるのは誰の仕事なのでしょうか?
それはオマイの周囲の人間が考えることだ
>>387 フイタw
そんなの職場によるだろ、ここで質問してどうすんだよ
DirectXのサポート受けられる状態?MSとどういう契約になってる?
もしくはDirectXについてサポートしてくれるような企業と契約してるのか?
ベンダの窓口として、その製品を扱うチームか担当者はいないの?
いなきゃ作れ、体制がまずい
少なくとも、DirectXのバグである疑いがあるなら、その先は派遣君の仕事ではないな
派遣を窓口にさせるわけにはいかないだろ
>>387 派遣クンのプログラムのバグなのかどうか調べるのは派遣クンの責任
その派遣クンを1ケ月後に切るか今の契約終了まで使うか決めるのは担当社員の責任
>>387 プログラマの仕事だ
そもそも「派遣」という時点では人間失格だ
「お前にはコンビニのバイトが似合う」と言ってやれ
>>390 >その派遣クンを1ケ月後に切るか今の契約終了まで使うか決めるのは担当社員の責任
ありえねー
うちの会社なら即日辞めてもらうぞ
>>392 即日辞めさせれる契約を結んでいるのかw
>>389 >DirectXのサポート受けられる状態?MSとどういう契約になってる?
>もしくはDirectXについてサポートしてくれるような企業と契約してるのか?
派遣が書いたプログラムが動かないからといってサポートしろと言われましても・・・
まずは御社のプログラムに原因がないことを確認いただいて・・・
395 :
デフォルトの名無しさん :2007/07/22(日) 16:20:00
>>392-393 自社の社員なら「お前の仕事だよ、ボケ!」と叱り飛ばせばいいが、
派遣には契約というものがある。
遅刻欠勤がない限り辞めていただくには最低1ケ月は必要。
Releaseメソッドが返す値が全部0になっていたら Releaseし忘れは無いと考えていいのでしょうか?
派遣プログラマに任せてる点で会社も社員も高が知れてる
>>394 派遣が書いたコードにバグがあるといってる?なんだ、んじゃシラネ
>>398 つーか、普通の対応だろ
問題モジュールが自社のものと特定されていない段階でサポートできるかっての
>>387 具体的にどんな問題が起こってるかによるかな?
DirectX使ってると必ずぶち当たるけどゲームなら問題ないくらいの誤差なんだけど
業務だとラスタの計算でちょっとずれてるのが気に入らないとかそういう話になると
解決できない場合もある
ターゲットとしてDirectXを使う以上しょうがない問題なのかそうでないのか
調べるにも与えられた期間ではどうしようもない場合もある
具体的にどんなことしたん?
デバッガーにプログラミング能力を求めているようなもんか? デバッガーは不具合を見つけるのが仕事であって修正は別だしね。
所詮、派遣だと「言われた通りにコーディングしたけど動きません、調べるのは僕の仕事じゃありません」が関の山だろ それ以上の仕事は入社試験に受かるような正社員でないとできない
ちなみに俺がこういう問題にあたったときは 該当箇所のソースをプリントアウトしてみんなで1行づつレビューしてくれるように頼んでる 2万行ぐらいあっても頑張れば1日でなんとかなるしやってもらったほうがいい あの悪名高い富○通ですらやってくれたから多分どこでもやってくれると思う だからプリントアウトして1行づつなにをやってるかレビューさせたら? 原始的な方法だけどこれが一番確実 ソースの内容がそいつしかわかる奴がいないっていうとちょっときついかな・・・ 前のソースの改変であればDFっていつツールで差分を出せば済む話だし
>>402 それはちょっと短絡的じゃね?
こういう問題は常に説明しにくい微妙な問題が絡んでるときが多いと思われ
まずは相手の話をよく聞いてよく理解することだと思う
>>404 >まずは相手の話をよく聞いてよく理解すること
これはあれだな、つまり
>>402 ってことだな
>>404 派遣の話:僕は言われた通りに作りました。他に何を説明するんですか?
>>406 こういう意図で考えていたんだけど
その通りいってない部分を書き出してくれるかな?
って言えばいいんじゃない?
408 :
デフォルトの名無しさん :2007/07/22(日) 17:50:29
派遣の話:明日から夏休みなので書き出す時間がありません。
>>408 ありがちな話だな
夏休みを返上して解決するまでの責任感もないただシットダウンマネーをもらうだけの派遣
>>408 それは本心じゃないな
残業代の出る派遣にとって休日出勤はかなりの金になる
知らない奴はモグリ
おまえらマ板でやれよ
派遣はマージン搾取業だからな 派遣社員もそれを知ってていい加減に働く。質はバイトより酷い んなもん使ってたら、そんな事態になって当たり前。自業自得
>>410 あまいぜ。
派遣クンは自分の書いたプログラムがまったく動かずニッチもサッチもいかなくなり、
DirectXのせいにして逃げきろうとしてるんだよ。
夏休み明けには正社員が問題を解決してくれてるってわけだ。
そのあとに切られても次の派遣先で同じようなことを繰り返す。
夏休みはたまたまで普通は「体調不良」で3日ほど休むのが派遣クオリティ
あぁ、そうか 製品の問題なのか、自社の問題なのかを切り分ける作業を、派遣がやるべきなのか、どうかって話? この場合、派遣は自分の仕事じゃない、って言ってるんだから、 とりあえず自社で解析チーム作って、原因を特定するべき ヤル気の無いやつに無理やりやらせたって、原因解明が遅くなるだけ 原因特定後、派遣のコードミスによるものなら、何故そのバグが混入されたのか、とかいろいろ突き詰めればいい 設計のミスなのか、派遣のDirectXの理解不足なのか、とか。 それから再発防止の施策をたてりゃいい。派遣をクビにして、雇用基準を見直す、とかさ。 とりあえず原因特定が先よね。
>>415 >とりあえず自社で解析チーム作って、原因を特定するべき
そんな大袈裟な問題とは思えんな
状況から考えて、英語のドキュメントが読めないし、辞書引いてでも読む根性もないから
試行錯誤で適当に作った、でも動かない、僕知ーらっない、
てとこじゃねーのか
派遣にはよくある話だ
>>416 >状況から考えて、英語のドキュメントが読めないし、辞書引いてでも読む根性もないから
でもなんか辻褄があわないんだよね
そもそも派遣が「ボクの仕事じゃない」なんて口にするわけがない
これには派遣というシステムに大きな理由がある
俺も派遣やってるけどさ
納期とか俺の責任じゃないし、基本的に残業代もらえるから残業するの大好きだしで
先の見えない仕事大好きだもん(毎週出勤すると残業代、休日出勤で月収が50万とかいく)
なるべく他の人がよくわからない問題抱え込んだり、自分にしかわからないことをたくさん増やすのは
はっきりいって派遣社員にとってノルマといって過言ではない
その環境で「面倒」とか「できない」とか言う意味がないんだよね
できなくても「できます」、わからなくても「やります」これ派遣では常識
できないことわからないことを深く追求される職場は今のところない
ならどんな仕事でも開口一発「やります」と言う。これ常識だし、こういう返事をするのは外勤先もわかってる(はず?w)
なんで
>>387 は俺的にネタにしか見えない
ポイントは残業代や休日手当てが出るということこれがでるとどんな仕事でも永遠にだらだら伸ばしたほうが得
なるほど 派遣を見下したいがためのネタと思えば自然か
ドキュメントなどを調べること、他人と調整すること、状況を整理することが嫌で 「ボクの仕事じゃない」なんて口にする人はいっぱいいますが
>>419 全部ダラダラ時間かけて残業代アップします
嫌なんていいませんよ
なんたって残業代出ますから
ダラダラ時間かけて最後に「頑張ったけどできませんでした、僕のせいではありません」 か。最悪だなw
>>421 支持出すほうが悪いと思うけどな
少なくともこういう場面で「好きにやっといて」ってほうが頭どうかしてる
とりあえずここまで調べました
ここの部分は不明です
文献や掲示板にもそれらしい情報は調べた範囲ではありませんでした
って報告が限界だろうな
はぁ、 「頑張ったけどできませんでした、僕のせいではありません」 「指示が悪いです」 か、極悪だなw
>>423 直接そうは言わんけど
無理だった報告だけして終了だろうな
その報告を聞いてさらに調査を続けるか
そこで調査を打ち切るかは派遣のできる判断じゃないでしょ?
こういう仕事って勝手にやらせてる限り優劣つけられないと思うんだけど?
カスども マ板でやれ
>>417 のような糞派遣が残業代欲しさにダラダラ時間とシットダウンマネー(座ってりゃ貰える金)を
浪費した挙句、
>>423 のような結論だったらねマジギレだね、お父さん
>>426 調べてみた結果できない・資料が無いってわかるのと
なんも調べてない状態ではやっぱり違うよ
こういうことの違いがわからない人は人を指示できる立場にふさわしくない
シットダウンマネー目的でダラダラ時間を浪費する派遣と 問題解決が目的の人ではやっぱり違うよ こういうことの違いがわからない人は人を指示できる立場にふさわしくない
>>427 >調べてみた結果できない・資料が無いってわかるのと
>なんも調べてない状態ではやっぱり違うよ
実力主義、結果主義って知ってる?
>>429 同じわからないでも
調査した結果を細かく報告する俺と
結果だけしか報告しないアンタと
どっちが評価されるか比べるまでもないだろ?w
>>430 俺はシットダウンマネー目的でダラダラ時間を浪費してわからない、
なんて仕事はしないから。
ちゃんと制限時間を区切って調査するよ、お前みたいな派遣根性が染みついた
シットダウンマネー野郎とは違うのだよ。
調べた結果が他の人に引き渡せる形で残せるなら、断然その方が良い。 ただしベストなのは、調べてる途中で分かりそうになかったら、 そこまでの内容をまとめて、誰かにSOSを出すことだな。 人に頼れない状況なら、相談だけでもする。 それで責任が分散できる。
433 :
派遣クズ野郎 :2007/07/22(日) 20:55:30
調べた結果なんて関係ない、断然残業代もらえる方が良い。 ただしベストなのは、調べてる途中でわけわかんなくなっても、 ダラダラ仕事を続けることだな。 失敗を人のせいにできない状況なら、相談だけでもする。 それで責任が分散できる。
434 :
432 :2007/07/22(日) 21:06:54
>>433 作業工数内で終わらせることは前提で書いてるよ。
工数内で終わらせて、最悪の場合でも
>>432 のようなことは行っておくということ。
435 :
デフォルトの名無しさん :2007/07/22(日) 21:08:45
はあ?
ダラダラ仕事するって
>>420 で書いてるだろ?
氏ねよ、無責任派遣野郎!
436 :
432 :2007/07/22(日) 21:16:31
俺は432が初出だよ。
ここが初心者質問スレとは思えないのですが
おまえら本当スレちがいうざいな
まあ、DirectXの質問は派遣辞めて就職してダラダラしないでしてね、ってこった
>>438 マ板でやれよなぁ。
発端になった奴もいつもマ板から来て派遣ネタで荒らしてるやつだし。
ム板は見てるがマ板は見てないって人が結構居るんじゃまいか 新鮮なネタに見えたんだろう
派遣専用のプログラム板が必要だな
ここもかw派遣派遣って
やたら新着多いなーと思ってみてみたら・・・、
>>387 すげー。
ム版だと派遣クンネタだけで半日で50レスも釣れるのか
派遣がDirectXってゲーム屋さん? 元レスの意図をエスパーすると (環境依存で)DirectXが(テスト環境以外のPCで)プログラムどおりに動かない原因を調べるのは僕の仕事ではありません。 って所じゃね? ゲーム屋以外ならSEが悪い(設計ミス)だし ゲーム屋ならそれぐらいはPGがやる範囲(少なくとも作り始める前に「動作確認が必要な環境を用意してください」ぐらいは言うべき)だよなぁ
いつものコピペと同じネタで釣られている馬鹿が多すぎ。 あまたが悪いにも程がある。
派遣に何も求めているのやら、、、重要な仕事なんか任せちゃ駄目だろ? 派遣には3Kワークをさせるのが普通。 どんな理由であれプロジェクトに支障出るような任務を派遣にやらせたという事実が既に駄目。
製品リリース後の日曜だからソフトを作ってたゲーム開発部の連中は休みだが、 サポート担当者のところへは不具合報告が殺到。けっこう可愛い。その子が サーバー管理やってる俺のところへ泣きついてきた! なんとかしてやらねば! というストーリーだよ。
派遣にDirectXやらせるほうがどうかしてる
>>449 たしかに
ノウハウが巨大過ぎて
人の脳みそにしか蓄積されてないのが現状だよね
ネットでさえ昔あったサイトはもうほとんど閉鎖してるし過去のバージョンは消失
加えてDirectX9はそのうち消える運命(っていつかわからんけど)
踊る各社グラボのサポート状況
という現実がある上にさらに
3Dと3D機能という大きな壁
2Dの機能だけ使うなんて調子のいいことできない
知らないと不具合が出たときに一歩も動けない
プログラミングに対してかなりのベテランであったとしても3Dおよび画像処理に関しては
全くの素人だともう初心者同然、いうまでもなくプライドはずたずたに引き裂かれる
加えて掲示板のガラの悪さw
「はぁ?」「何言ってんの?」「数学勉強してください(核爆w)」「ヘルプも読めねぇのかよw」
「お前もう駄目だなwやめちゃえw」等
なんで誰も近づこうとしないw
PSでは最前線にいた人も時代に付いていけなくなったりしてますか?
付いていくかどうかはその人次第だろ。 何もしなければ置いていかれるだけ。 DXじゃなくGLに移行している人もオオイノヨー
DX9で3Dゲーム作ってます。 質問なのですが、カメラから見える部分しか描画しないようにしたいのですが、 描画しない部分はどのような処理が最適ですか? よろしくお願いします。
視錐台カリングでググれ
>>454 ども。ちなみに頂点シェーダーで、各頂点を判定する事は可能ですか?
範囲外の頂点を見つけてもその頂点をどうすればいいのかわからない・・・
範囲外の頂点見つけたらGPUに送らなきゃいいんだよ。
?
どした。疑問符だけ浮かべててもおにーさん達は力になれないZO
>>450 DirectX○はそのうち消える運命
全てのバージョンに言えることだね
加えて言うなら
>数学勉強してください(核爆w)
引数間違えてるだけの奴にこれ言うやつ多いし
>ヘルプも読めねぇのかよw
このレスが返ってくる場合、たいていはヘルプに載ってない
>お前もう駄目だなwやめちゃえw
これは正解だがな
>>455 ・頂点シェーダでは頂点そのものの破棄はできない。
・仮にできたとしても、例えば三角形の3頂点の1つだけが画面外だとしたら、
それを破棄するわけにはいかない。
・カリングとかをしなくても、画面外のポリゴンではピクセルフィルは発生しない。
・画面外のオブジェクトの、描画自体をスキップすることで
頂点計算等を省略するのが視錐台カリングの狙い。
多分こんなもんかしら。
質問させていただきます。 VC++6.0を使用し、DirectX8で趣味で色々作ってきたのですが、 いつの間にやら時代はDirectX9が主流になってしまいました。 最近、DirectX9で開発したいな・・・ と言う欲が出てきたのですが、 開発環境を9にしても、DirectX8のプログラムをコンパイルできるのでしょうか? 過去作った物も時々弄るので、もしコンパイル出来なくなると・・・ と考えると怖くてなかなか手が出せません。 時代に乗り遅れた為、DirectX8から9へ移行した話などは、検索しても出て来なくて迷っております。 移行された方が居ましたら、経験談や、注意点などを教えてください。 よろしくお願い致します m(_ _)m
うちはDirectX9のSDKの入った環境で、DirectX7のプログラム組んでるよ。 基本的には新しいSDKでも過去のソースは動くはず。
新しいのだと、D3DX8がついてなかったりしなかったっけ?
465 :
462 :2007/07/24(火) 17:44:52
>>463 今、ヘッダファイルの中のぞいてみたら確かに9ではDXは別ものっぽい感じになってた。
せっかくインターフェース分けてるんだから、当然過去のソースは動くんだろうと思ってたんだけど、D3DXは違うのね。
なので、
>>462 は無視してください。
以降といっても型の数字が8から9に変わっただけとか、関数名にExやAを付けたら大丈夫だったとかそんな程度だった記憶が。 使えない関数も当然出てくるけど、1つ1つ調べていったら解決策が出てくる。 DX9に移植するのもいいけど、DX初心者として10を1から学んだほうが今後のことを考えるといいと思う。 移植しないなら過去のものを使う場合、参照の優先度をDX8のライブラリを上げればいいだけの話で。
いまさら時代はDX9というあたり、そういう発想のできる相手ではなかろう。 たぶんテクスチャも256X256を上限にしてるよ。 たとえ自分の対象ユーザーにVooDoo使用者が0人であったとしても。
10なんて対応カードが無い状況で学ぶのは微妙だろ Vistaのみリファレンスラスタライザで動けばいいのならいいけど
少し前のオンボードなら256x256以下の正方形なんて当たり前だゾ しかも2^nじゃないとらめぇえええええええええ
少し前とかいい加減な情報ではなく、具体名を挙げよ。
SDKに入ってるCardCaps.pdfには載ってないな
2のn乗じゃないとだめってのは結構あるが、正方形じゃないとだめなのは かなり古いものしかないよな。 気にする必要ない。
だから古いとかじゃなくて具体名を挙げろよ。 出せないのならいい加減な話を出すな。
少し前の古いアレだよアレ。 な、わかるべ?
脳内にのみ存在するアレだよ。
>>461 8→9は変化が少ないから、移植も楽だよ。
一番変わったのは、シェーダの管理にハンドルを使っていたのが
インターフェースに変わったことと、SetTextureStageStateの一部が
SetSamplerStateに分かれたこと。
D3DXのスプライト機能とかもだいぶ変わったと思うが、俺はまったく
使ってなかったので分からん。
478 :
461 :2007/07/25(水) 14:10:05
461です。
書き込みが遅くなり申し訳有りません。
>>462 様、わざわざヘッダーまで見ていただいてありがとうございました。
>>466 様のご教授のとおり一つ一つ解決して見ようと思います。
>>476 様、難しく考えすぎていたのかと思えるようになりました。
8→9を行った場合、ソースをまったく弄らずに・・・
と言うのは、無理のようですね。
参考になりました。
DirectX10ですが、今、私の使用しているOSが2000ですので、
手を出せるのはまだまだ先になる予定です。
皆様のお陰で、どうにかなる気がしてきました。
どのような結果になっても、よい経験だと思い移行することに決めました。
本当にありがとうございました。m(_ _)m
warota
ぐうの音を出しても仕方がない。
エロゲを除けば、そういう機種を使っている人はゲームを遊ぶ習慣の無い人だってことなのに なんで最低スペックに合わせたがるの?
エロゲだから。
エロゲか同人STG以外のものを作ってる人いる?
会社で作ってるのは非エロ
どんなスペックでもいいから、ものを作るんだ!
>>467 > いまさら時代はDX9というあたり、
10の環境はまだ2%もないし、シェーダ弄くらなきゃ8.1と9は全然かわんないし、普通じゃねえの?
> たぶんテクスチャも256X256を上限にしてるよ。
極端すぎる。電柱を相手にファイティングポーズ取るのはやめとけ。
2D描画で D3DXCreateTextureFromFileInMemoryEx で読み込んだデータを DrawIndexedPrimitiveUP で、描画するルーチンで制作していたのですが、 複数のTextureで構成された絵を拡縮する必要がでてきたので、 どのようにすればいいか悩んでいます。 イメージとしては、シューティングゲームは普通に組めたので、 ボスキャラを拡縮させながら登場させようとしたものの、計算で 調整しながら表示させると微妙にズレがでるケースがあるので、 可能なら一度構成したものを拡縮させたいと思っているのです。 命令などについてヒントが頂けないでしょうか。
よーわからんが、マップチップをそのままチップ毎に拡大したら つなぎ目が目立つって状況け? だったらまずレンダーターゲットで作成したテクスチャに描画して それを拡大するってのでイケるんじゃねぇかな。
>>489 状況はそんな感じです。
レンダーターゲットとか理解しきれてなかったので、いま調べながら勉強中。
どう作るか方向性は見えてきました。 ありがとうございます。
491 :
488 :2007/07/26(木) 18:37:58
できた 悩んでいろいろ調べてる時間が一番長かった。
実は普通じゃね?
実際のコーディングなんて全工程の20%にしかすぎないんだZE?
普通はパーツで作っても気になるほどずれないだろ。 そもそも整数とfloatの変換がまずいことなってんじゃねえの?
3Dの海岸線は困ったな。 綺麗に繋がらないし、フライト物だったので広範囲を描画しないといけないわ、 近づいたらテクスチャが荒いからって大きなのを用意したらVRAMが足りなくなるわで。 もう解決せずに放置してるが。
>>473 具体名を挙げると正方形じゃないと駄目で
さらに256だか512までだかとかいうウンコな制限が付いてたのは
VooDooとかいうグラボだけだった希ガス
もうないしこんなのサポートする意味もないから完全無視でおk
>>495 もやかけて限界まで誤魔化す
当然だろ
誰もみてねぇぞwそんなとこw
ハイご苦労さんw
誤魔化せるようなクオリティならいいんだけどね。 地上を高速で走り回るようなゲーム(レースやロボゲー)だとテクスチャのの1ドットのずれも大きかったりするし。 レースゲームはカーブとかよく綺麗に描けるなと感心する。
>>497 現状どの程度なのかプリントスクリーン見せてよ
mode 7で回転すればいい
>>499 俺作ってないぞww
PSでもすごいと思うから中古ショップ漁ってきてくれw
だいたいレースゲーなんてどれとってもジャギっててキタネーじゃん 水平線なんて気にする前にやることいくらでもあんぞ多分w
D3DXLoadMeshHierarchyFromXを使ってXFILEを読んでいるのですが、マテリアル名を取得できません。 どのような方法をとればマテリアル名を取得できるでしょうか?
>>503 ほんとだ
ねーじゃんw
あれかな?作った奴よくわかってねーのかな?
だからXぐらい自前で読み込めよ
ていうかマテリアルだけ独立してないとおかしいときあるよな? 1つのインスタンスを複数ってのは考えられてねぇのかな? っていうかそれ以前だな マテリアルの種別を外部から特定できねーじゃんなw 仕方ネェからメッシュかテクスチャのファイルネーム辺りにマテリアル名も突っ込んどけば?w
でも世界の開発者も誰も困ってない SDKサンプル用途としてはそれで十分なんだろう
神か
DirectX関係の質問はここでいいのでしょうか DirectX Busterを使ってDirectXをアンインストールしたのですが 再インストールが出来ない状態になってしまいました どうしたら再インストールできるようになるか教えてください
まずはプログラムの作成と何の関係があるのかを明確にせよ。
≫511 DirectX 9を入れたら動きがおかしくなったのでアンインストールしたんです 元々はDirectX 8でゲーム作ってました DirectX 8では問題なく動いてたから間違いなくDirectX 9のバグだと思うんです
間違ったプログラムがたまたま動いていただけなのに、何でもかんでも他人のせい。
>DirectX 8では問題なく動いてたから間違いなくDirectX 9のバグだと思うんです で、DirectX8→9の変更点は確認して、プログラムの修正はやったの? 単に9のSDKで再コンパイルしただけ? 9のバージョンは?
ビルドもせずに実行したんじゃね
>>515 そんなことが出来る人間がいるのか。尊敬するわ
≫513-516 原因がわかりました 知り合いにDirectX 9を入れてやってもらったんですが ゲームを動かすといきなりWindowsがエラーを出して止まるようです こちらとまったく同じ状態です DirectX 9 SDKに入ってるプログラムはふつうに動いたそうです これもこちらとまったく同じ状態です ゲームの最初のところでスプライトがいっぱい(2000ぐらい)出るんですけど これを出さないようにしたら動きました 多分DirectX 8よりDirectX 9のほうがスプライトの上限?が低いはずです
ふーん。
( ・ω・)・・・
フォントを表示させたいのですがうまくいきません。 フォント表示するコードだけ載せときます。初期化もしています。 これが実行時にうまく行きません。コンパイルまではうまくいきます。 void GameOver(){//ゲームオーバー if(getPassedTime(1)>3000){ RECT rc={0,160,640,260}; g_ptextsprite->Begin(D3DXSPRITE_ALPHABLEND|D3DXSPRITE_SORT_TEXTURE); g_pxfonts[hgofont]->DrawText(g_ptextsprite,_T("GAME OVER"),-1,&rc, DT_CENTER|DT_VCENTER, D3DCOLOR_COLORVALUE(1.0f,0,0,1.0f)); g_ptextsprite->End(); } if(getPassedTime(1)>15000){ gamemode=GM_MAIN; //初期表示に戻す mx=0.0f; mz=-2.0f; angle=0; SetViews(); }} エラーメッセージです。 main.obj : error LNK2001: 外部シンボル ""struct ID3DXSprite * g_ptextsprite" (?g_ptextsprite@@3PAUID3DXSprite@@A)" は未解決です。 my3dlib.obj : error LNK2001: 外部シンボル ""struct ID3DXSprite * g_ptextsprite" (?g_ptextsprite@@3PAUID3DXSprite@@A)" は未解決です。 どなたかアドバイスいただけませんか?
そのエラーメッセージはリンク時に出力されるんじゃないの? なのに「実行時にうまく行かない」・・・??? どっちだ
>>521 ですからコンパイルまではうまくいくんですよ。
つまりプログラムにはなんの問題もないと言ってるんです。
実行するとエラーが出るので、
環境依存なのかWinのフォントあたりがバグってる可能性もアリ?かと。
コンパイルができる≠プログラムに問題がない
コンパイルができてリンクに失敗してるんじゃ
>>521 だから、お前が貼った、「・・・は未解決です。」 ってのはリンク時に出るエラーじゃないの?
こんなエラーメッセージが実行時にでるの?
意味が分からん
最近の若者はコンパイルとリンクの別を知らんのかね どっちも「コンパイル」に含めてるんだろうな
>>522 ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
だから、どう見ても実行時エラーじゃなくてリンク時エラーに見えるんだが
横からすみません
>>504 で書かれていることと同じような内容をを日本語で解説しているサイトはありますでしょうか
興味があるのに無い英語力で行った和訳がめちゃぐちゃでニントモカントモ
>>523-527 >>529 あーすいませんVisual Studioから実行するとリンクが動くの忘れてました。
DirectX SDKを入れなおしても同じエラーが出るので、
そうなるとstruct ID3DXSpriteというやつがバグってるということですか?
こういうバグの報告はマイクロソフトにすればいいのかもわかりません。
もしくはプログラムには問題ないので、リンクをしない方法があれば教えてほしいです。
プログラムを書くだけで実行しないのであれば、リンクをする必要はありません。
なかなか良いキャラが出てきましたね
うむ ネタならネタだと先に言ってくれりゃいいのによもう
> そうなるとstruct ID3DXSpriteというやつがバグってるということですか あなたのコードに問題があります。 LNK2001 を MSDN ライブラリで調べるか ぐぐる先生に聞きましょう。
DirectXキチガイ質問スレと分離したらどうだろうか
本人が認識していない以上、自己判断は出来ないだろ
こっちをキチガイ質問スレにしてみんな移動すればいんじゃね
最初に自分を疑えない(再確認出来ない)奴は、どんな種類の仕事でも止めた方が良いよ。 リンクエラーが出るって事は、お前が悪いんだよ。 リンクしているライブラリが足りネーか、必要なヘッダをちゃんと読んでないかだろ。
>>542 結城先生あいかわらずいい仕事してるなあ
こういう視点の文章が日本語で読めるのはとても有難い
>>542 アリガタス
調べても辿り着かないようなサイトなので助かります
>>531 まずコンパイルとリンクというのがどういう処理なのかを勉強すれ。
その上で、リンカが
「main.objおよびmy3dlib.objという2つのオブジェクト(ソースをコンパイルしたもの)において
g_ptextspriteが見つからない」
と言ってることを理解すれ。
g_ptextspriteはどこで宣言してんだ?
あとは何すればいいかわかるだろう、わからないならもう少し基礎を重視したほうがいい
>>543 場所がyukiwikiってだけで訳したのは結城じゃないぞ
>>547 How Google Earth [Really] Worksで日本語ググルすれば上位に出てくるのだが。
辿り着かないんじゃなくて、辿り着けない、だろ。
自戒乙
悔しそう
>>547 英語のサイト名+日本語で検索する発想がねーわwww
そうか。 まぁ日本語訳あるの知ってて敢えて最初に英語版を貼った俺が悪かったよ。 お前らに読めるはずがなかったんだな。
>>550 サイト名じゃなくて記事名。
面白そうな英語の記事は訳されてたり概要が紹介されてたりすることが多々あるので
日本語でググれば結構引っかかる。
サンプルの解説ならともかく、アルゴリズムの解説であれば誤訳しちゃうととんでもないことになっちゃうからね。 和訳のミスを理解出来るならもうそのアルゴリズムを理解しているんじゃないかと。 もし和訳しているサイトがあれば誤訳は最小限に抑えれるし、間違っててもしてきしやすいよね。 このスレじゃないけど個人的に誤訳したものを持ってくるより、お前の誤訳で打ち込んだソースを持って来いとか言いたい時が多々。
>>532-553 あまりDirectXには詳しくないので、DirectXのリンクについてもう少し勉強します。
>g_ptextspriteはどこで宣言してんだ?
これは市村さんに聞かないとわからないです。月曜日まで待って下さい。
>>542 で小さな画像を用意する(ミップマップ用)とありますが
用意するのは良しとして描画する面の数が膨大になりますよね
この点はDirectXのミップマップの機能に任せて大丈夫なのでしょうか
動きの早いゲームだと常時画像の解放と読込が行われることに?
処理落ちするんじゃないかと思ってたり・・・そこはプログラマの腕次第ですね
市村さんかわいそす
市村さん: それは派遣クンに聞かないとわからないです。
派遣クン: DirectXがプログラムどおりに動かない原因を調べるのは僕の仕事ではありません。
>>520 あたりに戻る
HDR勉強中です。 例えば、レンダリングはA16R16G16B16FのFP16で行い、プレゼントするときにX8R8G8B8のバックバッファーに転送するとどういった感じで丸められるんでしょう? A16R16G16B16Fって-1024.0〜1024の範囲だと思うのですが、これがまず0〜1024にクリップされて、それから0〜255に変換されるのでしょうか? それとも-1024〜0と256〜1024がクリップされて0〜255に変換されるのでしょうか?
やってみろよ
入出力が決まっていて内部が個別の実装に委ねられているというのは それはそういう仕様なんであって 手近にある一個で試してみた結果でOKとは限らないわけです
>>555 ミップマップはDirectXのでいいと思う。
水平近くならいいけど、上空から見下ろす時にかなりの箇所を描画しなくてはならないから、
3レベルぐらいのテクスチャを用意したほうがいい。
それよりテクスチャや地形に凹凸を細かくつけたモデルを用意するとなると、
1つのマップに1万種類ぐらい用意しないといけなくなる。
移動可能範囲の設定や砂埃が立ったり水しぶきが出るとかの設定とか。
面倒極まりない作業をどうにかしないとな。全面海とかなら楽なんだが。
562 :
520 :2007/07/29(日) 22:36:18
別の方が話題を膨らませていてびっくりしました。 明らかにリンクに失敗しているようです。 とりあえずspriteは無視して作業しようと思います。 文字描写系は全部コメントアウトしましたw 文字もグラフィック系使おうかな、とも。 回答していただいた方ありがとうございました。
>>562 g_ptextsprite の実体を作ってないだけじゃないのか
>>558 そもそもA16R16G16B16FからX8R8G8B8のバックバッファーへ転送ってサポートされているんだっけ?
>>558 レンダリングターゲットとなるテクスチャ(バックバッファ)を作成する際のフィルター指定で
動作が変わったような記憶があるけど、ちょっと動作確認出来ない。
566 :
稼げるとか騙されて正社員辞めて一般派遣やってるバカ :2007/07/31(火) 13:19:35
元々は正社員の特定派遣だったのに取引先にフリーのほうが稼げるとか騙されて 結局、一般派遣やってるバカがいるんだけどw 一般派遣の身分のどこがフリーだってのw 毎日毎日、他人様の会社に出勤する派遣契約書にサインする段階で気づけよ なんか派遣先といい関係、とか言ってたから思わず吹き出しちゃったよw 最近はマネージャーもやってるとか寝言言ってるし、派遣がまねぇじゃぁ?はあ!?w そもそも信頼されてるなら直接契約するか正社員にするはずだが、 いつでも切れる派遣会社経由って舐められてんだよ 派遣期間が長くならないうちに早く就職しろ、と忠告すると、ウッキー!って逆ギレw バカで頑固だから何度言っても理解できない 騙されたとはいえ結局は自分で決めて一般派遣やってる癖に逆ギレしちゃってまぁ 人間として本当に恥ずかしい
568 :
565 :2007/07/31(火) 19:35:08
>>567 ごめん。テクスチャロード時の原色フィルタの事と記憶がごっちゃになってました。
レンダリング時のはわかんないっす。
予算にタッチできない派遣が一体何をマネージすんの?
これからの時代はオレら派遣が生き甲斐や夢をマネージするんだ! と求人広告に書いてありました。
バカか? 言われたことを言われた通りにやるだけの派遣が何を生きがいにしろと? 年収があがることのない派遣が何の夢を持てと?
スレと無関係な話に食いつく馬鹿を何とか出来ないのか?
>>570 資本主義だし
派遣だってノルマを決められて締め付けられるってことさ
具体的にいうと半請負状態になってて派遣社員の人数を進捗具合によって調節したり
人数的、スキル的にできるかどうか、予算的にやるかどうかを決める役
別に重要でもないし難しくもないけどね
+1してみてよかったらさらに+1、
+1してみて駄目だったら−1
こんな程度のこと
荒らしでしょ?定期的に派遣の話して、無関係な雑談を装ってるけど。
>>573 NG登録もしらない馬鹿がうようよしてんのはしょうがない
だって初心者スレだし
派遣をNGワードに登録完了
>>558 A16R16G16B16FからX8R8G8B8への転送だが同じく不思議に思ったんで試してみたら俺のマシンだとそもそもA16R16G16B16Fをサポートしていないみたい。
誰か助けてやってくれ。
NGワード登録って現実逃避だよね ハケン、ジュケン、シュウショク、ニート、、、 彼は突き付けられる現実を全てNGワード登録して現実から逃げて逃げて逃げまくるのであった。
一度作成した頂点バッファでもLock(),UnLock()で内容を書き込めると思うのですが、 その頂点フォーマットが、座標、法線、テクスチャだった場合、座標データだけを 書き換える事ってできますか? お願いします。
ロックして座標だけ書き換えればいい。 ただし、 ロックする際に D3DLOCK_DISCARD を指定したときは内部で新しく作成されたバッファが 返される可能性があるので、座標だけでなく全てのデータを書き込まないといけない。 ただし、 D3DLOCK_DISCARD を指定しないとパフォーマンスが大幅に落ちる可能性があるので、 頂点データを動的に変更する場合は D3DLOCK_DISCARD を指定して 全データを上書きするのが普通。
>>581 なるほど。詳しい説明ありがとうございます。
参考にされていただきます。
うーん、訳分からん助けてくれ。 写真をテクスチャーとして貼り付けるようなソフトなんだが、ピクセルシェーダーで加工するとなんかかなりおかしい。 で、調べてみたらガンマがリニアとsRGBを考慮しないといけないって事が分かったんで、処理はリニアにすることにした。 で、PresentするときにLINEAR_CONTENTってフラグを立てるとsRGBにガンマ変換してくれるんでやったーって感じと思ったら、 これってX8R8G8B8しかサポートされていないのか? しかもフルスクリーンモードだと駄目みたいだけど、どうすれば良いのか。
ピクセルシェーダを使わずにソフトウェアで自分の思うように処理すればいい。 はい解決。
てゆーか状況説明に「なんかかなりおかしい」とかやめてけれ。
このイミフな文章は最近のBBX並だな
プログラムもきっと意味不明に違いない 真面目に書いてるとしたら最低の部類だな いつ、どこで、だれが、なにを、どうした の定型文に当てはめて文章作るところから叩き直さなきゃ確実に駄目だな
質問です。 描画時の拡大縮小の際、D3DTEXF_LINEARを指定しているのですが、意図とはちょっとだけ違った描画になってしまってコマっています。 D3DTEXF_LINEARは、4ピクセルを参照して補完するというのは知っています。 そのせいかキャラクターの淵が思っているのとは少し違うようになってしまいます。 □□□□□□ □□■■□□ □■■■■□ □■■■■□ □□■■□□ □□□□□□ □はRGBAが(255, 0, 255, 0)なピンクの透明ピクセル ■はRGBAが(0, 0, 0, 255)な黒い不透明ピクセル とします。 これを、拡大や縮小すると、黒丸のふちにピンクが混じって現れてしまうのです。 4ピクセルを参照して補完するわけですから分からないでもないのですが、ピンクはα値が0。 見えて欲しくない色なわけです。 D3DTEXF_POINTやD3DTEXF_NONEにすればピンクはまったく参照されなくなる(単純に透過される)のですが、補完自体は欲しいところ。 これを解決(D3DTEXF_LINEARをかけつつ、透明色は完全に無視させる)することはできますでしょうか?
>>590 変えたいのは透明度だけなんだから全部黒でいいじゃん。
□はRGBAが(0, 0, 0, 0)な黒の透明ピクセル
■はRGBAが(0, 0, 0, 255)な黒い不透明ピクセル
□□□□□□
□□■■□□
□■■■■□
□■■■■□
□□■■□□
□□□□□□
PhotoShopみたいにちゃんと透明度管理してくれるソフト使ってると
いちいち透明部分を別の色にする必要ないと思うんだがな。
>>590 フィルタなんて全部OFFにして
最後に一発フルシーンアンチエイリアスでFA
FSAAなければ適当に拡大縮小してぼかしてもいい
Zバッファとかステンシルバッファを駆使してマスクかけられんかな?
はじめっからぼかしたキャラに淵つけたもんをテクスチャに描いておくw
>>590 テクスチャフィルタは透明かどうかを考慮せずに補間するので
完全に透明な部分の色も混ざってしまうのは仕方が無い。
(そもそもαは透明度と決まっているわけでもない)
解決方法は、不透明部分に隣接する透明部分には、不透明の
部分からうまく補間した色を置いておくのが普通。
596 :
583 :2007/08/03(金) 02:22:45
>>589 やはりそうですか、、、なまじ一部にだけ機能が提供されているからモードによる動作違いに悩みますな。
結局はこの簡易機能には一切関わらず、とにかく読み込み時にリニア、Present直前の書き込み時にシェーダーでsRGBにするという一貫性を持たせるしかないようですね。
>というかこの質問、あまり初心者じゃないぞw
やはりそうですか。周りでも聞いても”はぁ?”って感じでみんなリニアとノンリニアを考えずに適当にやっているみたい。ま、ゲームならどうでも良いでしょうが。
ググっても一切情報は出てこないですよね。いやはや確信が持てて助かりました。
>>595 おお、
つーか、あれか、デザイナさんの作ったデータみると
キャラの枠よりαの枠のが2まわりぐらい小さくなってるな
そういうことか・・・なるほど・・・今気付いてしまったw
>>597 もう少し日本語を書く訓練しておきなさいよ。まるで小学生の日記のようじゃないですか。
599 :
デフォルトの名無しさん :2007/08/03(金) 14:34:15
マウスを使用したゲームを作っているのですが なぜか、カーソルの座標が(0,0)か(640,0)の時にクリックをすると ゲームが終了してしまいます。 そこで、カーソルの座標のyを常に1以上にしたいのですが 「カーソルの座標を取得する」関数はあるのですが 「カーソルを任意の場所に移動させる」関数が見つかりません。 未熟者の浅はかな質問ではありますがよろしくお願いします。 それと、出来れば(0,0)と(640,0)の時にのみゲームが終了する 理由も教えていただければ幸いです。 後、参考になるかどうかは分かりませんが、 ゲーム中は「カーソルキーを非表示にする」という処理を行っているのですが (0,0)と(640,0)の時にのみカーソルキーが表示されてしまいます。
それはプログラムが悪いんじゃないかとしか
>>599 ウィンドウスタイルに問題あるんじゃないか?
フルスクリーンならタイトルバーとか閉じるボタンは付けてはいかんぞ。
マウスカーソルを移動させるAPIはあるが、そんな対処療法のためには
教えるわけにはいかんな。誤魔化さないで、ちゃんと原因を突き止めろ。
602 :
デフォルトの名無しさん :2007/08/03(金) 16:28:12
>>601 601さんのアドバイスのお陰で出来ました。
CreateWindowEXの第1引数を0からWS_EX_TOOLWINDOWにしたら、出来ました。
これからは、すぐ諦めず原因を追求していきたいと思います。
本当にありがとうございました^−^
それ本当に解決になってるのか?
>>602 XPスタイルだからだろ?
デフォルトのLunaはタイトルバーの左上と右上の角が丸くなってるから、
背景になっている部分をクリックしてウィンドウが非アクティブ化したとか
そんな下らん理由だろ
質問させてください テクスチャーをD3DPOOL_SYSTEMMEMで読み込んだときの「システムメモリー」とはどこを指すのでしょうか? いわゆるmallocやnewで割り振られるメモリーのことだと思っていたのですが ・タスクマネージャーのプロセスタブを見ると確かにメモリーを食っているっぽい ・だけどウインドウを「最小化」するとタスクマネージャーのプロセスタブ上ではメモリー食ってない状態に ・でもパフォーマンスタグを見る限り、やっぱりメモリー食いっぱなし となっており、混乱しています。
>>606 『「最小化」すると』のあたり、分かって聞いている釣りにも見えるな。
>>606 最小化したらスワップするからメモリを食ってない状態になるんでしょ
ワーキングメモリの話かなぁ
>>607-608 釣りではないです。
最小化するとスワップ…。スワップっていうのは確か、メモリー上のをHDDの仮想メモリに逃がすんですよね。
なるほどそういう理由だったのですか。
てっきり「テクスチャーロード時に一時的に使ったメモリーを、最小化した機会にやっと開放したのかな」とか思ってました。
Java脳ですか。
じゃあ単純にシステムメモリー=PCのメインメモリですね。
ありがとうございました。
>>610 最小化時にはスワップだけでなくメモリを解放する事もあるよ
>>591-597 アドバイスありがとうございました。
まず1ドット太らせる機能を持つツールを探してみました。
フォトショですらそういう機能はないそうです。
次に絵描きさんにそもそも太らせるようお願いしようかと検討してみました。
小さめのドット絵を扱うので元画像を太らせつつ描くのはつらいようです。
最後に、テクスチャーを読み込んだら即座にロックし、プログラムで1ドット太らせてみました。
思いのほか処理が早く、本来の画像読み込みから10%程度多く時間がかかるくらいで済みました。
画像も綺麗に拡大縮小できています。
アルファ効かせてるならコピーして上下左右斜めにそれぞれ1ドットずらして ペタリと貼るだけな気もする でそれをまたキャプチャー
premultiplied alpha にするという手も。
初心者ウザすぎ。もう来るな
616 :
462 :2007/08/04(土) 01:38:46
人とのコミュニケーション能力の無いガキは来るな
>>612 太らせる?
元のキャラ絵の輪郭からα画像を生成して(フォトショップの色域選択で可)
縦横2ドットずつ縮小するだけじゃね?
>>615 スレタイ嫁w
質問するほうも初心者として扱われるのを覚悟しなきゃいけんし、
答えるほうも多少わけわからん日本語を覚悟しないと駄目だろ?
>>617 多少わけわからん日本語てwww
日本語がわけわからん理由としてDirectXの初心者だからってのは言い訳にもならないぞ。
質問する側であれ答える側であれ、分かりやすい日本語を書くべきなのは当然だろう。
質問者に関しては ・開発環境 ・目的 ・現状 ・現状へのプロセス これらをハッキリ伝えないと回答のしようが無い場合が多い。 日本語云々もそうだけど、曖昧にしたり何故か事実を歪曲させて書かれるとモウネ
620 :
デフォルトの名無しさん :2007/08/05(日) 03:28:44
質問です ゲームのエフェクトとしてパーティクルとビルボードをしようしようかとおもうのですが その際の処理速度を上げる方法としていい方法は何かないでしょうか? 同じテクスチャのパーティクルはまとめてD3DLOCK_DISCARDで頂点バッファを 作成し描画する程度は思いつくのですが・・・
>>620 普通のモデルとやることかわらんけど?
やってみて重かったら最適化しろよ
無駄だぞ
初心者のくせに組む前から失敗したくねーとか甘いこといってんじゃねぇよ
なんでこう喧嘩腰になるのかねぇ… 嫌なことあった?
2chでストレス発散するタイプ? 八つ当たりされた方はたまらんな。
〜をやってみた→処理が重い→どうすれば軽くなる? ならわかるけど 〜をやるつもり→速い処理教えて ↑こんな奴相手にしなくていいと思う やんわり言っても同じことだと思うけど? ただの煽りと区別つかないのはちょっと困る
俺には
>>621 は煽りにしか見えん。
つか
>>621 は相手にしてんじゃん。相手にした上で煽ってる。
>やんわり言っても同じことだと思うけど?
同じじゃねーよタコ。
って言われたらカチンって来るだろ?
顔が見えないネットじゃ文面に気を使うのは大事だと思うよ。
ゆとりにイライラしても始まらないのは確か。
>>625 >同じじゃねーよタコ。
どう同じじゃねーんだよタコ
って返すだけだけどな
628 :
デフォルトの名無しさん :2007/08/05(日) 09:20:19
age
正直、現実で
>>620 のような奴が増えては困る
その場その場の方法なんて教えるだけ無駄だと俺は思う
初心者スレは技術より技術者の有り方を叩きこんでやるのが俺のおせっかい
それが嫌(初心者扱いがうっとおしいと思う)なら通常の質問スレにいけ
630 :
デフォルトの名無しさん :2007/08/05(日) 11:01:38
CComPtr<IDirect3DTexture9>をCreateTexture等の引数に直接指定した場合 Attachを使わずに代入したのと同じく参照カウントは2になってしまうんでしょうか?
631 :
デフォルトの名無しさん :2007/08/05(日) 11:15:32
すみません教えてください DirectX BusterというのでDirectXをアンインストールした後 再インストールしようとしたのですが 「インストールの完了」と表示されても DirectXの診断ではヴァージョンが更新されていません どうすればインストール出来るのでしょうか;
>>629 ここはDirectXについてのスレです。
技術者の有り方については別の場所でやってください。
まずあなた自身が勉強して日本語と空気を読めるようにならないと、
誰にも教えることなんて出来ないでしょうけどね。
>>632 同意。そんなのはリアル世界で会社の糞後輩相手に右往左往してやって欲しい。
ここでは逆に純粋に技術話を端的にして欲しいな。
>>632 そう?だれでも同じレスつけると思うけど?
だって無駄じゃん
こいつは自分でやってもみねぇで何をもって速くなったと判断するのか?
いま、その技術がそこでできるかどうかなんて問題じゃねぇじゃん
直接的に
Q1→A1
Q2→A2
・
・
・
ってやることに全く意味を感じない
どうせヘルプ見れば載ってるようなのばっかだろ?
また、次にとるべき行動が誰の目から見ても明らかなもんとかよ
調べるの面倒だから聞いたとかそんなもんだろ?
現実、会社で一発でもやってしまうとそこで終了な職場もあるから俺はそういうのを技術を通して教えて生きたいと思う
質問する側も勝手にすればいいと思うけど回答つける側だって勝手じゃん?
俺は俺のやり方でやらせてもらうよ
そういうレスが要らない
>>635 が次のレスで技術的なことをいいます!
ではドゾー↓
僕らは卒業までの期間が決まってるんです。 趣味でやってる暇な社会人とは使える時間が違うんです
そういうレスが要らない
会社で技術者のあり方を教えるのに
>>621 の口調で教えるんだなお前は
>>639 多少ですます調に変更はあるものの言うね、まちがいなく
それでシカトして困るの俺じゃねぇし
やる気ないの明らかに相手だし
俺は別に心構えとかここで言ってもいいと思ってるけどね 多少ですます調に変わるって言うところが不愉快だ
まあ落ち着け 突っ込まれてるのは口調だ 内容については誰も突っ込んでない そこがまず食い違ってるぞ
心構えなら技術のないリタイア組でも口出せるから必死なんだろ。
ああ、なるほど。 技術が無いからこの初心者スレにいるが、教えられないけど偉そうには 言いたいって感じか。
とりあえずおまえらプールにでも行ってこい
むしろ初心者を挫折させたくて仕方がないんだw
>>645 市民プールなんて排水口にまきこまれそうで怖くていけねーよ
幼女発見
排水口の中で
市民プールは若い娘はいない。ロリとババアだけだ
DirectX SDK を October 2003 から、 June 2007に バージョンアップしたところ、 プログラム内で、DirectXで文字を表示する箇所、 DrawText( NULL,str, -1,pRect, DT_LEFT | DT_EXPANDTABS, color); において、 Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention. というメッセージが表示されて停止してしまいます。 これは何が問題なのでしょうか? ちなみにDrawTextの行をコメントにするとプログラムは正常に動きます。
>>651 DrawTextの仕様が変わってんだろ?多分
引数に変更があるはずだから探し出せ
DrawTextってGDIか?
いいえ。DirectXの方です。 LPD3DXFONT pFont; pFont->DrawText として使っています。 >DrawText関数を使う前の、 D3DXCreateFont関数では、S_OKを返していました。 仕様変更をしらべてみます。
調べ方わかるか? SDKのサンプルでDrawTextを使ってるもんを調べるんだ
ある呼び出し規約で宣言された関数を 別の呼び出し規約の関数ポインタで呼び出しちゃったと言ってるんで インクルードフォルダとライブラリフォルダが正しいかとか調べてみては。 昔のインクルードを読んでるのにライブラリが最新のをリンクしてて、矛盾が生じてるとかあるかも
>> 655 656 皆さんありがとうございました。解決しました。 古いSDKのフォルダ(DX90SDK)が残っていたので、削除しました。 (新しいSDKは、Program Filesの中にインストールされていました) そしてリビルドかけたところ、 D3DXCreateFont等がリンクできないというメッセージがでたので、 リンクするライブラリを、d3dx9dt.lib から d3dx9.lib にしたところ、 うまくビルドできました。
旧SDK全部アンインストールしてもう1回入れなおしたほうがいいな
lib選択してリンクしてるってのがもう怪しいな
物体の反射を作ろうとしてるんですが xファイルから面の法線ベクトルを取得する方法ってありますでしょうか?
中のデータを取得するだけ。
>>661 xファイルから取得できるのは点の法線ベクトルだと思います
なんとかして面にしたいのですが方法ありますでしょうか?
じゃあ各面について辺の外積を求めれば?
>>663 そういう計算じゃ駄目なんです
CGツールでは面の法線ベクトルで指定できるわけですから
それを頂点や辺から求めたのでは結果が異なりませんか?
エクスポートされたデータが面の法線を出しているのなら、 面を構成している頂点が面の法線になっているだろう。 頭が弱いのか?
つまり、単なる平均じゃなくて重み付けの計算がやりたいが、具体的に教えろということだ。
意味不明
Xファイルには面の法線データは入っていないので、計算じゃだめってんなら、無理です。
DirectXの方で面法線なんて設定できたっけ?
あ、1頂点につき面の頂点分持てば可能か・・・
意味不明
モデリングソフト側で面法線を利用してエクスポートしているのなら、 面を構成している頂点の法線が全て共通になるだけの話。 計算も糞もない。 なぜこんな単純なことが分からないのか、それがさっぱり分からない。
モルダーにでも聞け
>面を構成している頂点の法線が全て共通になるだけの話。 うそーん? じゃあ点ABCDから、三角形ABC、BCDのポリゴンがあるとしたら BとCの法線ベクトルはABCと同値なの?BCDと同値なの?
ジオメトリシェーダを使えば 面法線も余裕のよっちゃんかしらね。
そういや法線の求め方に「正解」ってのは見たことねぇな。 たいがいは頂点の属する面の法線を足し合わせるだけだろうけど、 (足し合わせる前に法線正規化するorしない派がある) 面の向きに依存しないように頂点の角度を考慮に入れたりする場合もある。 この時点でツールによって実装バラバラなのに、ここから面をスムースにする 角度指定なんか入るとさぁ大変。 ぶっちゃけxファイルからツールの法線を完全に再現したいんなら(質問読み違えてる?) ツールのSDK等でソースが公開されていることを祈るしかねぇんじゃないの?
自分はツールにはあまり詳しくないんだが「頂点の角度」ってなんじゃらほい?? それはさておき、ツールで指定した面法線の値に依存するような 反射を作りたいんなら、そもそもX形式でやることがアレかも? そのツールからX形式にするときに、求める情報が失われているかどうか 電卓とかで調べて、ダメなら結局自前でエクスポーターとか書くしかないんじゃね?
>>674 その場合ってBとCの頂点は法線を2つもつためにBとCの頂点がそれぞれ2つになるんじゃね?
ΔABCと△BCDのBCは別の頂点になるんじゃね?っつこと
Xファイルで面法線を記述する例 (頂点座標4個、法線ベクトル2個、三角形2個) ------------------------------ xof 0302txt 0032 Mesh { 4; -1.0;0.0;0.0;, 1.0;0.0;0.0;; 0.0;-1.0;1.0;, 0.0;1.0;1.0;, 2; 3;0,1,2;, 3;1,0,3;; MeshNormals { 2; 0.0;-0.7071;-0.7071;, 0.0;0.7071;-0.7071;, 2; 3;0,0,0;, 3;1,1,1;; } } ------------------------------ DirectX Viewerではこれで期待通りに動作した。
だからモデリング時に面法線を使用した場合、エクスポートした時点でデータが入っているんだから、 これ以上グダグダ言っても始まらないだろ。 入っている物をそのまま使えばいいだけ。 逆に頂点ごとに法線が異なる場合は、モデリング時の指定かエクスポートの仕方が悪い。 結局データを読み込む段階に対処すべき話ではない。
面法線を設定したって表示は頂点法線なんだべ? なんか勝手に反映されてるような気がしないでもないけどねw されてねぇんかな?
ピクセルシェーダーでFP16バッファをXRGB32に書き出しているんですが、 s10e5っていう浮動小数点をどうやって0-255に落とし込むのが適切なんでしょ?
*(BYTE*)&f
685 :
デフォルトの名無しさん :2007/08/09(木) 02:27:01
>>683 FP16→RGB32変換ってドライバーがやってくれなかたっけ?
たぶん変換テーブルを持っていてよろしく変換してくれそうだけど、疑問はメーカー違いでも同じテーブルなのかということ。
drawprimitiveupの3番目の引数にvectorを使用したいのですが conts vector*に変換できませんとエラーが出ます。 なにか方法は無いでしょうか?
(void*)
>>686 俺いつも&(vec[0])ってやってた希ガスw
&vec[0] か &vec.front() やね。 次期 C++ では vec.data() とできるようになるみたいだけど。
俺は&vec.front()派だな
0 がマジックナンバーに見える派だな。 気持ちはよく分かるわ。 ま、補助関数テンプレートでも作るのが一番かもしれんな。
conts
人物モデルを半透明で表示したら、眼球パーツが透けてキモくなりました。 しかし世間のゲームはさほど気にならない気がします。 こういうときは一般にはどう対処するものなのでしょうか?
Zだけ先に書いて、ZテストEQUALで色塗るとか、どう
>>690 今すぐ Effective STL を読むんだ。
>>694 半透明で表示しない(結構マジレスですw)
かもしくは
眼球もしくは透けては困るパーツをZバッファ使って後から描くとか小細工で逃げる
かもしくは
一度どっか別のテクスチャに描画してから改めて半透明で描画
かもしくは
・・・ごめん、俺、こんなことしか知らないや・・・w
すんまそん。 今DirectX使ってお絵かきソフト作ろうと思ってるんですが(アホ) 各レイヤの内容を一旦テクスチャとして描き出してからそれをバックバッファに アルファ値指定して描画って事をやりたいのです。 で、各レイヤー用のテクスチャに対してレンダリングする事は出来るのですが バックバッファ以外にレンダリングするとFSAAが効いてくれません。 自前でスーパーサンプリングとかせずにテクスチャバッファへレンダリングする 時にFSAAによる補間処理を有効にする事って出来るのでしょうか?
>>683 俺も同じ疑問を持っている。
FP16って浮動小数点だよな。どうやってガンマ2.2の0-255の整数に落とし込むんだろ?
698ですが、色々と調べてみると我ながらアホな事を聞いたものだと思いました。 テクスチャのバッファとしてはDirectXはマルチサンプル形式をサポートしてない。 (サポートする意味が無い) マルチサンプルの方式自体はドライバ側で隠蔽されているので、 Present時に必要であればダウンサンプルを行っている。 要するに、テクスチャバッファへレンダリングした場合FSAAが有効にならないのは 当然の事でなのですが、Present時にしか個々のFSAA処理に応じた解決 (ダウンサンプリング)がなされないという事は、バックバッファ以外に マルチサンプルサーフェスを作成してそこにレンダリングした結果を バックバッファへコピーor合成していくしか方法は無いという事ですよね。 ところがMSDNを見ると、 次のいずれかの場合、IDirect3DDevice9::StretchRect は失敗する。 転送元サーフェイスがマルチサンプリングされている場合 (MultiSampleType != D3DMULTISAMPLE_NONE で作成した場合)。 という記述があるのですが。(´・ω・`)どうしろと。
>>698 イミフ
やりたいこと・解決したいことは
>各レイヤの内容を一旦テクスチャとして描き出してからそれをバックバッファに
>アルファ値指定して描画って事をやりたいのです
じゃなくて
>バックバッファ以外にレンダリングするとFSAAが効いてくれません
なのな?
つーか、何がしてぇの?
普通にバックバッファに描画して必要な分(描画したい数だけ)Presentすりゃいいじゃん
リアルタイムでワンフレいくらで動かしてるわけじゃないんしょ?
数分Presentすればいいじゃない?
つか、何で悩んでるのかわからん
>各レイヤの内容を一旦テクスチャとして描き出してからそれをバックバッファに
>アルファ値指定して描画って事をやりたいのです
これはできてんだよね?
>>701 自分で見直してみてもイミフでした。すんまそん(´・ω・`)
基本的にベクタのお絵かきソフトなので、CPUが持ってるのはベクタデータのみ
レンダリングは全部VRAM上でやりたいのです。
複数のレイヤー毎にカラーの違うベクタデータを持っているものとして
それをレンダリングする時にFSAAが効いてないと汚くなるので
効かせたかったのですが
・FSAA効かせてバックバッファに描画
・バックバッファの内容をテクスチャバッファにコピー
までは出来たましたが、そのテクスチャバッファに書かれているデータの
アルファ値は全部FFのようで、描画されてない部分まで下地の色を持って
しまっているようです。
当然それをアルファ値指定して描画すると、透明にしたい部分も下の
レイヤーに影響を与えてしまうわけで。
何か良い方法はないでしょうかorz
一旦サーフェスをロックしてCPUでごにょごにょすれば余裕なのは
分かるのですが、なんか負けた気がするので(´・ω・`)
バックバッファをアルファ付きフォーマットにすればいいんじゃない
>>702 まだ、意味不明なんだけど
この手順じゃ駄目なんだっけ?
0.レンダリングステータスにFSAAを設定
1.ベクトルデータを使ってアルファ付きテクスチャバッファを作成
2.普通にアルファを効かせてバックバッファにレンダリング
3.Presentで目標物に描画
1〜3まで必要な数だけ繰り返す
じゃ駄目な理由ってなんだっけ?
あーなるほど 1のときにサーフェイスをロックして色々やらずに なんとかする方法を探してるってこと?
706 :
デフォルトの名無しさん :2007/08/10(金) 22:49:26
・リソースにしてexeにリンクする ・データを暗号化する
709 :
デフォルトの名無しさん :2007/08/10(金) 23:09:41
暗号化は、データをどうやって読み込んでるかと、どのていど強力な暗号化をしたいかによって、変わってくる。 exeの中に入れるのは、解りやすい古典的な方法だと const char data[] = { 0x42, 0x40, ......... }; みたいなのをソースのどこかに埋め込む。 もうちょっと普通の方法だと、リソースとして入れる。 使ってるコンパイラは何?
質問者のレベルからしてXORで十分じゃね
>>706 D3DXCreateTextureFromFileなんて関数を使うのをやめれば、何も迷わない。
713 :
デフォルトの名無しさん :2007/08/11(土) 00:42:53
VC++2005でDirectXをやる本のサンプルでウィンドウを表示するプログラムがあるんだけど コードを部分的にしか書いてなくて初期化とかのやりかたがわかりません。 #includeとかつかって何か読み込むんですか?
さすがにその辺書いてない本はないだろ 最初からよく読め、1ページ目からよく読め、さぼらず全部読め
>>704 ,705
1.の手順でサーフェイスをロックしないでやりたいというのは
そのとおりなんです。
0〜3を繰り返すっていうのはおそらくスワッピングのフラグに
COPYが指定されている事を前提としていると思うのですが
(そうしないとレイヤーが8枚あったら1,3,5,7と2,4,6,8が違う
バッファに書かれてしまう事になるので)
で、それはどうにでもなるとして。
この手順だとα付テクスチャバッファに描画する際に
アンチエイリアスが効かないのでそれをレンダリングしても
出てくるのはアンチエイリアスの効いてない画像になります。
正確には効いてるけど、それはテクスチャを貼り付けたポリゴンに
対してであってテクスチャの中身はマルチサンプルバッファに
なってないのでFSAAの効果は無いに等しくなります。
1.の時にα付テクスチャに予めCPUによってアンチエイリアスを
施したモノを描いておけばいいのですが、それはやりたくないですし。
そもそもそれだったらFSAAを有効にする必要が無いわけです。
で、色々考えた結果、
1.レイヤを一枚描画する毎にZバッファをクリアする。
2.同一のレイヤーのベクトルデータは同一のZ値を指定して描かせる。
3.その際のZ比較にNOTEQUALを用い。α値はレイヤーのα値とする。
という方法をとってみました。
色々ありがとう。あと、問題をよく整理できてなくて申し訳ない(´・ω・`)
716 :
713 :2007/08/11(土) 04:29:31
>>714 その本にのってる一番最初のサンプルコードがそれで
LRESULT CALLBACK....とかって始まってるんですけど
どうすれば?
>>716 CDとかに全ソースコードが入ってるとかいうオチじゃないの?(´・ω・`)
>>716 軽くwin32apiを勉強したほうがいい
>>716 もっかい言うぞ
「一番最初のサンプルコードから」 読むんじゃない
「1ページ目から」 読め
さぼらず全部読め
720 :
デフォルトの名無しさん :2007/08/11(土) 11:51:01
>>710 borland社のbcc32です。BCC Developerっていう補助ソフトを使ってます。
bccdeveloperみてみた。プロジェクトを右クリックするとリソーススクリプトってあるでしょ。そこに hoge RCDATA hoge.dat piyo RCDATA piyo.txt って感じでファイルを並べていく。 左はロードするための名前で RCDATA は予約語で右はファイル名。 メイクすれば、そのファイルが exe に取り込まれる。 使うときは void *p = LockResource(LoadResource(NULL, FindResource(NULL, "hoge", RT_RCDATA))); などとすればそのデータを取得できる。 fopen なんかは要らない。 これは知ってる人なら、取り出そうと思えば簡単に取り出せる。 プログラムとか知らない一般ユーザにはたぶん無理かな、くらい。
>>721 やってみました。
リソーススクリプトファイルに
data1 RCDATA "C:\MyC\title.jpg"
と記述し、メインプログラムで
int p;
------省略-------
void *p = LockResource(LoadResource(NULL, FindResource(NULL, "data1", RT_RCDATA)));
------省略-------
DrawGraph(0,60,p,FALSE);
と表示しようとしたのですが何も表示されませんでした。使い方間違ってますか?
DrawGraphってなんですか、自分で作った関数ですか。 こっちはそんなの知らないんだから、わかるわけない。 情報不足すぎる。
もしかしてDXライブラリ?
DXか・・・ だったらリファレンスを見る限り CreateGraphFromMem に読ませればいいんじゃない。 たぶんこんな感じ。 HRSRC hRes = FindResource(NULL, "data1", RT_RCDATA); int g = CreateGraphFromMem(LockResource(LoadResource(NULL, hRes)), SizeifResource(NULL, hRes)); DrawGraph(0, 60, g, FALSE); てか、条件を後出しにすればするほど解決に時間がかかることを覚えとくといいよ。 環境、コンパイラ、ライブラリなどが限定されてる場合は最初から書いておくべき。
726 :
706 :2007/08/11(土) 16:59:34
タイプミスorz × SizeifResource ○ SizeofResource
728 :
706 :2007/08/11(土) 17:04:58
>>727 アドバイスありがとうございます!!上手くいきました。
今までアドバイスをしてくれた方も本当にありがとうございます。
そんな人の作ったクラスのことなんて知らん。 ここで聞くのはスレ違い。 それ書いた人に直接聞いてくれ。
当方美少女ゆえ、作者がスーパーハッカーの場合にIPを抜かれストーキングされることを警戒しています。
その発想はなかったわ
734 :
729 :2007/08/13(月) 17:44:24
>>729 ,733
wikiと掲示板が更新していなくて返事が来なさそうだと考えたためにこちらで質問させていただきました
問題に関しては今までキー取得用の関数とデバイス初期化用の関数を別のファイルに書いていたのを同じファイルに移すことで解決することができました。どうもありがとうございました
735 :
706 :2007/08/13(月) 22:57:20
再び質問です。
前回プレイヤーに見られたくない画像類をリソースとして入れ隠しましたが、
>>725 の方法で
データをwmvなどの動画にすると「Turbo Incremental Linker」が強制終了してしまします。
動画をリソースするにはどうしたらよいのでしょうか?
ちなみに"DrawGraph"の代わりに"PlayMovie"関数を使っています
使用コンパイラは Borland bcc32
補助ソフトは BCC Developer
Dxライブラリを利用してシューティングゲームを作っています。
リソーススクリプトファイルのソースは
data1 RCDATA "C:\MyC\opening.wmv"
となっています。
DXライブラリ作ったひとに聞いてください
もう面倒くさいから、そのぐらい自分で作れよ。
つかDXライブラリだかなんだか知らんが、 DrawGraphやらPlayMovieやら、いきなり言われても住人の大半はそんなもん知らないぞ? しかもファイルをリソースに入れるにはどうするか、なんて尚更DirectXと関係ないし、 そろそろスレ違いに気付けよ DXライブラリだかBCCだかWin32初心者だかゲ製板あたり行って聞けよ
739 :
デフォルトの名無しさん :2007/08/13(月) 23:10:11
DXライブラリって何?誰かさんの俺ライブラリ?
yahooでググレ!
Googleでヤフレ!
フリーライブラリ利用者はヘボプログラマしかおらず、作者は世捨て人だという 印象があるので、こちらで幅広い人々の御見識を賜りたいのです。
つまり俺らもDXライブラリを使って教えろと?
利用者でも作者でもない人間がレビューできるわけないだろう
知りもしないものを説明出来る奴がいたとしたらそいつは詐欺師の才能がある。
つまりこのスレにいるヘボプログラマの情報を期待していると。
>>744 >フリーライブラリ利用者はヘボプログラマしかおらず、作者は世捨て人
これはお前さんの単なる偏見じゃないのか?
なんちゃらライブラリのことは全然知らないけど
幅広いヘボプログラマしか見つからんだろ。ここじゃ。
D3DXIntersectを使おうと思ったんだけど、まったくあたりが帰ってこないから質問。 第1、2、3引数について 第1は xファイルのメッシュ 第2は 始点 第3は D3DXVECTOR3(0,-1,0) を指定してます。 Intersectを使うにあたって、何か注意する点ありますか? ぐぐるとたまに逆行列が云々と描かれていますが、いつどこの話か全く検討がつきません。 よろしくお願いします。
>>751 始点はXファイルの原点からの相対位置じゃなかったっけ。
当たり判定をする物体の向きがX軸90度回転していたら-90度回転させて元に戻さないといけないし、
位置が0,0,0に配置されていないのだったら物体とその始点をずらさないといけないし・・・ってこれが逆行列ね。
753 :
デフォルトの名無しさん :2007/08/17(金) 11:38:42
グラボに接続されているモニタが、ワイドモニタか、4:3モニタか調べる方法ってあるの? DirectX or Win32API 何でもいいんだけど。
デスクトップの比率を見て大雑把に分けるしかないんじゃない
目視
756 :
デフォルトの名無しさん :2007/08/17(金) 11:56:10
>>752 具体的で分かり易かった!!
ありがとう。
当たり判定する物体は、まったく動かしてないから、
「始点はXファイルの原点からの相対位置」←で引っかかってるのかな。。。
頑張ってみます!!
>>753 ありそう。けど知らん。
758 :
751 :2007/08/17(金) 15:54:09
参考書に少しだけ書いてありました。 メッシュを読み込んでるときは、メッシュの移動等に関する逆行列をレイにかけてやらないとうまくいかないそうです。
hlslのピクセルシェーダーでライティング処理を行いたいのですが、 光源の座標(L)と、モデルの頂点座標(P)、法線(N)、光色(D)が分かっているとして、 光源の近くなら明るく、光源から離れるほど暗くしたいのですが、 どのような式を使えばいいのでしょうか? お願いします。
距離が離れて暗くなるだけなら法線と光色は無視していいってことなんだろうな。
atten = 1 / (a0 + a1*d + a2*d^2) (d:光源と頂点の距離) 一般的には上の式ね。attenを明るさに掛けるわけね。 a0〜a2の決め方は、例えば10m先で明るさを1/2にしたかったら a0 = 1 a1 = (2.0 - 1) / 10.0; a2 = 0 とかね。(a0 = 1, a2 = 0 は固定でいいかもね。) でも調整が面倒だから、簡単に調整したいなら atten = clamp( (d - attenBegin) / (attenEnd - attenBegin), 0.0, 1.0 ); みたいなのでもいいわよ。
762 :
759 :2007/08/18(土) 17:34:08
>>761 ありがとうございます。
理解してから、使わせていただきます。
thanks but ill never use it until i understand it.
764 :
デフォルトの名無しさん :2007/08/18(土) 20:22:07
あまりに技術的でない内容で恥ずかしいのですが、質問させていただきます。 使用PCはWindous Vista DirectX9以上が必要なゲームをプレイするために、マイクロソフトの ページからsetup.exeをダウンロードし、起動。 契約に同意して[インストール]をクリックしたら1秒の待ち時間もなく インストール完了の文字が。 しかし、PC内どこを探してもDirectX9のファイルは見つからず、 当然ゲームも起動できません。 おそらくどこか手順を誤ったのだと思います。 正しい手順を教えていただけないでしょうか。
お前がどう手順を誤ったかなんてエスパーでもない限り分かるわけないだろう つかそれ以前にここはプログラム板なんだが
766 :
デフォルトの名無しさん :2007/08/18(土) 20:45:59
板違いでしたか・・・消えます
サーフェイス等について質問があります。 レンダリングをテクスチャに行いたいので次のモノを用意したとします。 LPDIRECT3DTEXTURE9 pTex0; LPDIRECT3DSURFACE9 pSur0; LPDIRECT3DSURFACE9 pDepth; LPDIRECT3DTEXTURE9 pTex1; LPDIRECT3DSURFACE9 pSur1; @ まず、pTex0に描画するには、現在のバックバッファのサーフェイスを何処かに保存してから、 dev->SetRenderTarget(0, pSur0); dev->SetDepthStencilSurface(pDepth); dev->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0xffffffff, 1.0f, 0); と設定してやる必要があると思います。 pTex0への描画処理 A そして、次にレンダリングターゲットをpTex1に設定するとき、深度バッファはそのままで、 dev->SetRenderTarget(0, pSur1); dev->SetDepthStencilSurface(pDepth); dev->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0xffffffff, 1.0f, 0); とし、pTex1へ描画処理。 B 次に、レンダリングターゲットをpTex0に戻し dev->SetRenderTarget(0, pSur0); dev->SetDepthStencilSurface(pDepth); また、pTex0に描画しているのですが、この時、pDepthの深度値をAで1.0fにClearしているはずなのに、 @で描画したときの深度値が残っています。 やりたいことは、これでできるので良いのですが、何故初期化されていないのか気になります。 ちなみに、BでClearしたら初期化されます。 長くなりましたが、分かる方お願いします。
D3DPRESENTFLAG_DISCARD_DEPTHSTENCILをつけたかCreateDepthStencilSurfaceのDiscardをtrueにしたため、 SetDepthStencilSurfaceの呼び出しでサーフェイスが無効化されたものの、たまたま以前と同じバッファが割り当てられたのでは? 未初期化状態であるので他の機種で同じ動作が期待できないというやつ。
769 :
767 :2007/08/19(日) 14:01:01
>>768 レストンクス。
確認してみたところ、CreateDepthStencilSurfaceのDiscardがtrueになってました。
やはり、他のPCでも同じ動作にさせたいのですが、この場合は、
pDepthのDiscardにfalseをセットし、もう一つ深度サーフェイス(pDepth1)を用意し、
>>767 で言う、
@でpDepthをセットし、クリアする
AでpDepth1をセットし、クリアする
BでpDepthをセットし、クリアしない
という感じにすれば、他のPCで動かした場合でも同じ動作になるのでしょうか?
770 :
デフォルトの名無しさん :2007/08/19(日) 20:36:10
771 :
デフォルトの名無しさん :2007/08/19(日) 20:41:51
SDLでいいんじゃね
DirectInputの質問です。
DirectXSDKはApril2007を使っていて、開発環境はVC6SP6です
LPDIRECTINPUT8 lpInput;
というように宣言をしているんですが、「error C2501: 'LPDIRECTINPUT8' : 識別名を宣言するのに、型が指定されていません。」とエラーを返されます。
当然headerファイルのインクルードなどは見直しました。
d3d9.h d3dx9.h dinput.hをインクルードしています。(input関連以外ではエラーはありません)
さらに同じ内容のエラーが異なる4つのcppファイルから発されています。当然#pragma onceをしています。
どうしたらこの問題(dinputの正常な使用とエラーの回避)が解決できるか教えてください。
なお、このサイトを参考に作成しました。
http://www.shader.jp/xoops/html/masafumi/directx9/dinput/dinput002.htm
「識別名を宣言するのに、型が指定されていません」でぐぐれ
ver8のヘッダが必要なんじゃなかったっけ そりゃDirectMusicだったっけ
>>776 d3d8.hという意味でしょうか?
MSDNや解説サイトにはそのようなことは書いていなかったと思いますが、必要なのかもしれません。
他に足りない情報がありますか?
>>773 DIRECTINPUT_VERSIONは定義してるか?
dinput.hを覗いたら、定義していなくても0x0800が自動で定義されるみたいだが、一応確認
>>778 定義しています。それは書くのを忘れていました。すいません。
>>773 VC6は、とっくの昔にDirectXSDKのサポートから外されてる。
いつからだったかは忘れたがApril2007だったら間違いなくVC6はサポートしていない。
対象外なんでコンパイルが通らなくても文句は言えないし、
仮にコンパイル出来たとしても正常に動作する保証もない。
>>780 VS2005ならとおるんですね
ためしに2005を導入してやってみようと思います。
VS2005導入してみましたが、やっぱりだめでした。
783 :
デフォルトの名無しさん :2007/08/19(日) 22:32:20
784 :
757 :2007/08/20(月) 01:15:11
アニメーションをもたない、D3DXLoadMeshFromXで読み込んだメッシュ情報と、 --------A アニメーションをもち、フレーム処理のためにメッシュコンテナに格納したメッシュ情報。 ---B D3DXIntersectでは、それぞれのメッシュ情報に関してレイと交差しているか判定できるでしょうか? Aだと判定できるのですが、Bが旨くいきません・・・
スキンメッシュでなければ、レイを各メッシュコンテナのごとのローカル空間に変換すればできる。
DirectXでビデオを扱わないといけなくなったのだが、 ActiveX、DShow、VMR、VMR9、EVR、MediaFoundation、DXVAとあって訳が分かめ。 D3D9とD3D10で使う場合、それぞれどの組み合わせが良いのやら。。。
Vista専用はやる気ないので知らね。 1280x720以上あるならVMR9じゃないと低スペック機できつい。 一昔前のゲームのような640x480程度ならどれでもいい。
>>785 レスありがとうございます。
>>スキンメッシュでなければ
とありますが、スキンメッシュだとD3DXIntersectそのものが使えないということになるのでしょうか?!
789 :
デフォルトの名無しさん :2007/08/21(火) 00:53:53
現在Javaプログラマで、DirectXに興味があります。 Visual C++が標準的だとは思うのですが、 GCやオブジェクト指向に限定したパラダイムに慣れた身としては 記述の自由度が高く、コピーコンストラクタや多重継承など癖の強いC++は辛い物があります。 C#からDirectXのdllを呼び出すことは可能だと思うのですが、 一般的ではないようです。全くではないですがほとんど見かけません。 何か問題があるのでしょうか・・・。 ジョイスティック/1000個程度のスプライト/WAVかOGGのBGM/効果音/30〜60fpsを満たせれば良いと思ってますが これらはそこまで重い処理でもないでしょうからマネージドでも問題ないと思っています。 大きな問題がなければ、こちらの方向性で勉強していこうかと思うのですが、実際どんなものなのでしょうか。 (MDXは終わってるし、XNAは始まってない(Visual Studio 2005 Standardで使えない)ので保留します)
>>789 質問の意味がわからない
実際どんなものなのでしょうか?
Javaは出来るけど、C++は無理って・・・。 あとC#の文献や書籍も普通にあるし・・・・。
792 :
789 :2007/08/21(火) 07:37:58
>>790 質問内容は、
C#を使って、MDXやXNA等を使わずにDirectXを呼び出して使っている人がほとんど見つからないけど、
なぜ? 実用上問題があるのでしょうか? ということです。
C#やC++/CLIを使ってDirectXのアンマネージドなdllを呼び出すことはできるはずなのに・・・。
>>791 無理というか、C++という言語を使うのが辛いという感じです。
アドレス参照か実体か混乱したり、ヘッダとソースが二重管理だったり、
メモリ管理やコンパイラの仕様が今となっては古くさかったり、
要は人間に委ねられていることが多すぎるので、
特にある程度大規模なソースを書くと疲れるのです。
なるべくなら趣味で使いたくはない。
もちろん仕事で「使え」と言われたり、代替手段が無いのであれば使います。
プログラマに向いてないのだよ
>>789 >C#を使って、MDXやXNA等を使わずにDirectXを呼び出して使っている人がほとんど見つからないけど、
>なぜ? 実用上問題があるのでしょうか? ということです。
それってMDXを自分で一から作り直すってことにならない?
考えただけでも色んな面倒くさいことが思いつくのだけれど…
796 :
デフォルトの名無しさん :2007/08/21(火) 15:48:48
DirectXを使って3D迷路を作りたいんですが、 どういう手順で壁を表示すればいいのかわかりません。 ちなみに私は初心者で、Direct3Dの概念、xファイルの読み込み、表示や、 カメラや自キャラの移動、当たり判定、くらいの初歩のことしかわかりません。 アドバイスくださいm(__)m
>>796 只の3D廊下みたいなものは作れるのかな?
迷路は各階ごとに二次元迷路があってそれを梯子か階段で結ぶ形?
それとも、高さ方向にも入り組んだ形?
只漠然と3D迷路を作りたいと言われても何から答えていいのやら。
>ちなみに私は初心者で、Direct3Dの概念、xファイルの読み込み、表示や、 >カメラや自キャラの移動、当たり判定、くらいの初歩のことしかわかりません それくらいのことがわかるのなら、 >どういう手順で壁を表示すればいいのかわかりません。 壁のXファイルを読み込んで表示すればいいんじゃないの? 何がわからないのかわからない。
考えるどころか、息をするのも面倒なんだろ。
生まれてすみません
801 :
デフォルトの名無しさん :2007/08/21(火) 16:56:45
>>797 >只の3D廊下みたいなものは作れるのかな?
すみません。わかりません。
まだ、背景が青い画面で表示して、
自キャラの座標やカメラの座標をいじるくらいしかできません。
>漠然と3D迷路を作りたいと言われても何から答えていいのやら。
現段階では、まずは単純な1階(フロア)だけの迷路を考えています。
>>798 すみません。青い画面上に自キャラを表示するくらいしかできません。
どうやって壁などを表示して、
迷路のような道筋を作るのかがわかりません。
自キャラも壁も同じオブジェクトだろ
>>801 >すみません。青い画面上に自キャラを表示するくらいしかできません。
壁も自キャラと同じ方法で表示できるはずだと思うが
>迷路のような道筋を作るのかがわかりません。
壁をいっぱい並べればいいんじゃないのか
迷路全体をXファイルで作って それを表示すれば完成
いいのかそれでw
メタセコイアで四角を組み合わせてまるまる一個ステージ作って カリングで表示するのが一番簡単
わーい、それはとっても簡単だねw
>>792 コイツナニイッテンダ・・・。
C#でも文献普通にあるから試せよ。
そんな力説せんでも、だれもお前にC++を強要しないって。
実用上の問題は聞いた事ネーけどゲーム作成の世界じゃC++以外は
普通にマイノリティになるから、例がみつからんだけだろ。
要はコンパイラが古いとかメモリ云々っていうお前さんの意見は、少数派って事。
809 :
789 :2007/08/21(火) 19:49:51
>>794 もちろんそうなってしまうのですが、
将来的にフリーソフト頒布を考えたり、
あとは機能的に痒いところに手が届くと考えると、
車輪の再発明も構わないかな、と思いまして・・・。無駄でしょうか。
>>795 XNA2.0が出るのですか。そちらは期待ですね。
MDXについては、今後発展性の無いものを
勉強しても意味がないかと思うので・・・。
勉強するからには短くても今後5年は使えて欲しいです。
グダグダ言わずにとっととやれよ。
今後5年は使えて欲しいとか言う前に、プロ目指してるのか?ならC++やっとけよ プロ目指してるわけじゃないんだったら、C# or C++/CLIでやりたいっていってるんだから、素直にMDXでいいだろ アンマネージドなDirectXとMDXを比較してみれば分かると思うけど、 基本的な処理のさせ方は同じようなもん 考える前にまず手を動かして、作りたいものを作ってみたほうが早いと思うよ 何が作りたいのか、そのためにはどんな機能が必要なのか、明確にさせることが先決 ここら辺の軸をしっかりさせておかないと、あっちこっちに揺れて、作りたいものを完成させられないままになるぞ 技術的なことよりもまず、やり遂げる事が重要 技術は後からついてくる と、DirectXをやったことがない俺が偉そうに語ってみる
813 :
789 :2007/08/21(火) 21:59:27
>>811 確かにあれこれ悩むより、手を動かすべきですね。
そのようにしたいと思います。
あと、プロになる気はないです。
>>812 構造体や定数を再定義するのは馬鹿馬鹿しいですね・・・。
なるべく固有の型定義などを隠蔽できるよう工夫してみたいと思います。
参考サイト情報、ありがとうございます。
向いてないよ
815 :
デフォルトの名無しさん :2007/08/22(水) 10:53:55
xファイルのサンプル置き場みたいなところがあるなら教えてください。
そういったものはあんまり見当たらないな そもそも微妙に板違いなんだ
>>815 マルチが酷いので、知っているが教えない。
流行らないからなぁ。。 素人な俺目線で言うと、できる人はxファイルを使わないみたい。 けど、そんなの到底無理だから使う俺。。。
できる人は何を使うんだ?
自作
データを作ってるモデリングツールから独自形式へ直接変換 Xファイルなんか経由したら効率悪い
>>821 さんのとおり、じっさいxファイル使ってやってる素人な俺ですが、やはり効率の悪さを感じます。。。
ぶっちゃけ、本当にできる人はフォーマットなんてどうでもいい。 Xファイルで効率が悪いなんてことはない。 ただ、データを作ってくれる人が言った通りに出力してくれなくて、 結局こちらでツールのネイティブ形式から変換というのはよくあること。
結局こちらでツールのネイティブ形式から変換というのはよくあること。
825 :
デフォルトの名無しさん :2007/08/23(木) 21:26:11
>>823 てか、そういう実体に即してない発言ってなんのためにするの?
そんなに楽ならみんなが楽になるような変換ツールでもちゃちゃっと作って公開してくれよ
できなきゃ2度とデカイ口叩くなよ
826 :
462 :2007/08/23(木) 21:28:54
ワロス
使っているモデリングソフトのプラグインは自分で作る。 それ以外の解決方法は存在しない。
829 :
デフォルトの名無しさん :2007/08/23(木) 21:38:57
一端出力されたデータを変換している段階で、既にそのデータは使い物にならない。
>>823 ☆ チン ハラヘッタ〜
ハラヘッタ〜
☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・)< はやく!はやく!はやく!
\_/⊂ ⊂_)_ \____________
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
|  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| |
| 淡路たまねぎ .|/
>>823 チン ☆ マチクタビレター ☆
チンチン マチクタビレター ♪
♪ ☆ チチン
♪ .☆ マチクタビレター
☆ チン 〃 ∧_∧ ヽ / ̄ ̄ ̄ ̄
ヽ ___\(・∀・ ) /\_/ < マダー?
チン \_/⊂ つ ‖ \_____
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄/| ‖
|  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :| /|\
| |/
典型的な今時のキレやすいお子様 さらに理解力皆無
その辺のゲームライブラリって「既存のXファイル→自分のプログラム」ができれば十分としか考えてないのかもね。 でも、データ作る職人と共同作業をすれば、ツールの専用形式→Xファイル→自分のプログラム という2度手間は 煩雑でとてもやってられないものなんだけどな。
だからエクスポートプラグインを作って直接吐き出せと何度言ったら
837 :
822 :2007/08/24(金) 03:54:48
いらんこといってすみません。。。
838 :
デフォルトの名無しさん :2007/08/24(金) 07:21:22
>>823 チン ☆ マチクタビレター ☆
チンチン マチクタビレター ♪
♪ ☆ チチン
♪ .☆ マチクタビレター
☆ チン 〃 ∧_∧ ヽ / ̄ ̄ ̄ ̄
ヽ ___\(・∀・ ) /\_/ < マダー?
チン \_/⊂ つ ‖ \_____
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄/| ‖
|  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :| /|\
| |/
っていうか、このスレにいる奴らは、単にコンバータが欲しいだけなのか? 俺はまだXファイルと独自形式のどっちを使うかって話をしているのかと 思っていたが、それってあっちの板のスレだったっけ?
アホがひとり粘着してるだけだろ
くれ厨が一匹いるだけじゃない?
現在のディスプレイの最大解像度を取得するにはどうすればいいんですか?
843 :
デフォルトの名無しさん :2007/08/24(金) 21:19:33
>>823 チン ☆ マチクタビレター ☆
チンチン マチクタビレター ♪
♪ ☆ チチン
♪ .☆ マチクタビレター
☆ チン 〃 ∧_∧ ヽ / ̄ ̄ ̄ ̄
ヽ ___\(・∀・ ) /\_/ < マダー?
チン \_/⊂ つ ‖ \_____
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄/| ‖
|  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :| /|\
| |/
自己解決 GetSystemMetricsでいけました
>>842 GetAdapterModeCount
EnumAdapterModes
SDKのサンプル MultiAnimation についての質問です。 表示するキャラクター(tiny)を150体ぐらい増やし、 床を移動するプログラムを呼ばずに、純粋にモーションだけする状態にして、 その150体を描画する時間を計測してみました。 すると、150体を描画する時間は、だいたい18msぐらいで描画されたのですが、 たまに、100msぐらいかかる時があり、これが周期的に繰り返されます。 このため、腕をふって歩いているモーションをするtinyをみると、 周期的にモーションがカクッとワープしているように見えてしまいます。
アプリケーションループにおいて、毎回計測してみた結果↓。 こんな、感じで、たまに100msぐらいかかる時がある。 略〜 時間: 13 時間: 13 時間: 106 時間: 14 時間: 19 時間: 16 略〜 毎回、モーションするだけの同じコードの処理をしているだけなのに、 周期的に、普段より長い時間、描画に費やされる時があるのは なぜでしょうか? また、このような周期的に普段より長い時間かかることを防止する方法は ないのでしょうか? よろしくお願いします。 環境は、以下の通りです。 Microsoft Visual Studio .NET 2003 Microsoft DirectX 9.0 SDK October 2004 GeForce7600 GS
俺はAnimationControllerを使ってないんで見当つかないが 単なるSDKのサンプルの改造なら、ソースつきでアプロダに置いてみたら? 物好きが見てくれるかもよ
>>847 考えたこともなかったな。。
他のプログラムは関係ないの?
Athlon64X2 2.25Ghz + GeForce8600GT
こっちはとくに目立った、どこかで時間かかってるような挙動はなかったけど。。
851 :
デフォルトの名無しさん :2007/08/27(月) 20:09:12
デバイスをリセットした時にエラーが出てしまうので 解放できてないのが原因だと思って色々試したのですが上手く行きません 色々試した結果、エラーを出すのが特定の関数を通った後にリセットを掛けた時だけ ということがわかりました。 以下のような関数(問題のありそうなところを抜粋しました)なんですが、下の記述で問題あるところはありますか? // テクスチャをパイプラインにセット pd3dDevice->SetTexture( 0, m_pTexture ); pd3dDevice->SetRenderState( D3DRS_LIGHTING, FALSE ); pd3dDevice->SetRenderState( D3DRS_ZENABLE, FALSE ); pd3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_ONE ); D3DXMatrixTranslation( &mWorld, vPos.x, vPos.y, vPos.z ); pd3dDevice->SetTransform( D3DTS_WORLD, &mWorld ); // オブジェクトの描画 pd3dDevice->SetStreamSource( 0, m_pVB, 0, sizeof(MY_VERTEX) ); pd3dDevice->SetFVF( MY_VERTEX_FVF ); pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2 ); pd3dDevice->SetTexture( 0, NULL ); pd3dDevice->SetRenderState( D3DRS_LIGHTING, TRUE ); pd3dDevice->SetRenderState( D3DRS_ZENABLE, TRUE ); pd3dDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
>>851 SetStreamSourceかな?
m_pVBをセットしたままで、解放できてないんじゃない?
853 :
デフォルトの名無しさん :2007/08/27(月) 21:43:11
>>852 SAFE_RELEASE(m_pVB);という感じで解放はしたんですが、やっぱり上手く行かないです
こういうようなこともやらないといけないんですか↓
pd3dDevice->SetStreamSource( 0, NULL, 0, sizeof(MY_VERTEX) );
↑解決しました この関数を呼ぶ直前の別の部分で未解放がありました… お騒がせしましたm(_ _ )m
>>850 Xp Core2Duo E6300 GF8600 GTS
試してみたところ100ms越えなどはないが、ログでは常時8ms程度でたまに20ms程度が混じる。
たしかにこのサンプルにしては妙な遅滞だ。同じ問題が潜んでいるということかもしれない。
DirectX9で開発している者ですが質問させていただきます。 バックバッファと同じサイズのテクスチャを用意し、それぞれ別のオブジェクトを描画し、 最後にそれらを合成したいのですが、可能でしょうか? テクスチャの方は黒(0,0,0)で初期化しているので各ピクセルを加算合成すればできそうなのですが、 ピクセルシェーダーでテクスチャ側の色は取得できますが、レンダリングターゲット側のピクセルを取得する方法が分かりません。 それぞれ別テクスチャに描画し最後に合成しながらバックバッファへ表示することはできますが、 現在バックバッファへ書き込んでいるオブジェクトが多いので速度的にやりたくないです。 その他のやり方でも良いので、ご教授お願いします。
857 :
856 :2007/08/28(火) 18:34:19
事故解決しました。
それはよかったですね
いちいち説明を書いて解答を待つよりも、自力で何とかしたほうが早いのがこのスレの基本
つまり、このスレの住人は能なし。そもそも住人なんていないのかもな。
背景を半透過する四角を描画したいんですが、ID3DXLineを使っても問題ないですかね? ID3DXLineを太く描画すれば簡単に四角っぽくなるので、 もし特に問題がなければこれでいきたいのですが
そんなの使うよりDrawPrimitiveUP使う方が簡単だと思うが。
ID3DXLineをクラスにまとめたものがあるので、こっちのでやった方が早いかな と思ったんですが、やっぱりそちらのほうが一般的ですよね ありがとうございました
↑のものです DrawPrimitiveで四角形を書いた場合、例えば色に0x33ff0000という値を入れても 背景を透過しないんですがなぜでしょうか?
SetRenderStateを忘れていました・・・ すいませんです
test
867 :
デフォルトの名無しさん :2007/08/31(金) 15:43:44
3Dの世界を作っていて、 四角いブロックのXファイルを複数ならべて壁にしています。 Xファイルの近くを移動したりすると、 自分の視点がxファイルの中にめり込んでしまうのですが、 それを防ぐ方法はありますか? もしくは、xファイルの外側しか画面に映らなくできるなど。 初心者なのでおかしなことを言っているのかもしれませんが、アドバイスお願いします。
Xファイルって内側作らなきゃ内側表示されないよ
>>867 視錐台のニアクリップは0距離には出来ないので、必ずある程度の
面積を持った面になる。だから、たとえカメラの位置が壁より手前でも、
ニアクリップ面の幅(の半分)よりも壁に近づくと、壁の裏側が見えてしまう。
解決方法は、壁に近づきすぎないようにすることと、ニアクリップの
距離を短めにすること。ただし、後者はZバッファの精度にも影響するので
程々にしないと画質に影響する。
カメラの当たり判定を球とすれば、ニアクリップ面の対角線の距離
(ワールド座標系での距離)を直径とした球にしておけば、めり込むことは
ないかな。
第三者視点の場合は、キャラクタとカメラの間に壁がないか
チェックする必要がある。
まぁ、市販のゲームでも壁の裏が全く見えないってのはあまりなくて、
ちょっと見えてしまうことがあるのは仕方が無い。
特にワイドスクリーンに対応していると、ニアクリップ面の形も
環境によって変わってしまうので、厳密に処理するのは難しい。
DirectX8.1SDKの入手先がわかりません。誰か助けて
DirectX9か8.0で作ればいいのに
なんで旧バージョンのSDKを欲しがるのか非常に謎なんだが・・・ 何がしてぇの? 会社で昔のアプリの保守でも頼まれたの? それとも何か思うところがあって探してるならそれを先に言ってみろって感じだな もし、頓珍漢な理由で旧バージョンのソースを探してるなら 正直、テンプレに書いたほうがいいと思う さすがにこのパターン何度目だって感じだ ちなみにこのパターンってのは 初心者:「旧バージョンのSDKってないですか?」 回答者:「なんのためにそんなもん探してるの?」 初心者:逃走・・・ 回答者:「おーい・・・」 って感じw
テンプレにCOMとバージョニングとQueryInterfaceについて 4レス位使って説明しといた方がいいかな
>>872 入ってるサンプルやその作りが違うだろう。
8.1ベースで作るのに(Steam利用者の統計では8.1の環境はまだ15%もある)
8.1のコードやヘルプがないのは困ると思うが。
配布している間にきっちり保存しておかないのが失敗というのはありそうだが。
MSはすぐ梯子はずすから。
逆になんで新しいSDKを使わせたがるのか非常に謎。 シェーダバリバリで超絶美麗なゲームでも作ってるわけ?俺みたいに。 国内にはそんなの一握りしかいないはずだけどな。
完全に下位互換ではないしね 特定のツールとか機能が外されてたりもするし
また下位互換と上位互換を混同している馬鹿が来たよ。 そもそもDirectXには下位互換はないし、そんなことは想定されていない。
>>874 SDKが無いとかいって探し回るより、新しい内容に合わせた方がマシ。
無い無いと言って探し回っている暇があったら、とっとと新しいバージョンに合わせた方がよっぽどはやい。
WEB上で古いサンプルを見つけて、コンパイルできないとか言っている奴は、
そもそも見ているところがおかしい。
新しく勉強するのに古い情報を参照したって無意味なのに、その程度のことにすら気がつかない。
環境といっても余計な機能を使わなければ初期のDirect3D対応のビデオカードでも
9のランタイム上で動作は可能だし、困ることは全くない。
旧バージョン探す奴の理由はそのバージョンで書かれた本を見てるからだろ。 エラーメッセージなんて読む気ゼロだから エラー出た→エラーが出ない同一バージョン欲しい ってなる
DirectXランタイム 上位互換 DirectX SDK 下位互換 おまえもわかってないだろw
>>872 とくに今のやつにはD3DRM関係はいってないだろ?
3年前の本のサンプルビルドしようとしたら、ビルド出来なくて困ったぜ
コード部だけ移植試しして面倒だった
すまん。入ってないってのはライブラリファイルの方な もしかしたら入ってるのかもしれんけど、ドキュメントがないから なにを指定すればいいのか判らんかった
DxLibが絡む話で申し訳ないのですが DxLibを使ってVisual C++でゲームプログラミングをしている場合に、 FSAAと回転アルファブレンディングの機能だけをDirectX SDKから使用することはできますでしょうか? テクスチャの読み込み、レンダリング等はDXSDKの関数等を使うとして、 入力や音楽再生など他の処理を扱うライブラリと、DXSDKを介在させることはできるのでしょうか?
公式サイトで聞いてきなよ。 あそこは割と親切でしょ?
ウィンドウモードでフルシーンアンチエイリアシングはどうやってかけるのでしょうか? D3dDevice->SetRenderState(D3DRS_MULTISAMPLEANTIALIAS, TRUE); にしてもかかってくれません。。。
CreateDeviceの段階でなんか指定するんじゃなかったっけ
888 :
デフォルトの名無しさん :2007/09/03(月) 01:07:53
クライアント領域内で動く「ウィンドウ」のサンプルをご存じの方いらっしゃいませんか
具体的には例えばラグナロクオンラインのステータスウィンドウや、
Ajaxで言えば
ttp://prototype-window.xilinus.com/samples.html の"Open a simple window"で開くみたいな奴です
方向性として子ウィンドウを無理矢理使うか、
ウィンドウマネージャーの役割を担うものを作るかだと思うのですが、
前者の場合はDirectXとの兼ね合い
後者の場合マウスメッセージの扱いが課題です…
市販ゲームは家庭用などへの移植性を考えて、Windowsにべったり依存せずに そのゲーム専用のウィンドウシステムを組むんじゃないかな。
WindowsUIを使うのはメッセージを盗まれたり改竄されやすいかもな。
>>888 その辺は必要な機能を絞って自作したほうがいいぜ
Windowsのを使おうとすると今度は他のアプリの影響も受けるってことだしな
できたらできたで今度はエクスプローラの機能をどれだけ潰せるかってことになると思うし
>>888 俺も前にウィンドウマネージャ作ったことあるけど、意外と簡単だったよ。
マウス関係はメッセージではなくGetAsyncKeyStateを使った。
>>892 なにそれ?
ショートカットとかアクセサリ関連のアプリの動作とか止められんの?
テキトーなこといってんじゃねーぞ
俺がやった限りだと製品のレベルはおろか同人のレベルだって不可能だ
895 :
888 :2007/09/03(月) 02:56:50
みなさん暖かい声援ありがとうございます
子ウィンドウ路線が微妙そうという雰囲気ですね
最低限必要なのは、移動、リサイズといったあたりなので、
自作はできると思います
ちょっとがんばってみます
それにしても検索しようとすると「ウィンドウ」or "window"という語が
DirectX window modeのそれだったり窓OSのそれだったり
サンプル探すにしてもなかなか困りますね
かなり面倒ですがCompizを読みながら設計してみます…
ttp://compiz.org/Home/Start フレームワークレベルで良いアイデアがありましたら是非お願い致します
じゃあSDK HELPにしたら
だからD3DXの高レベル関数は使うなとあれほど
ID3DXSpriteとID3DXFontとID3DXAnimationControllerに関する質問はFAQで 「テンプレ読め」とだけ答えるようにしたいものだ。
DirectX900
ID3DXAnimationControllerってやっぱり評判悪いんだ 俺は問題なく使えてるけど
高レベル関数群全般の評判が悪い。
DirectXのモーション付きのXファイルに関する質問です。
MetasequoiaとRokDeBone2で作成したモーション付きのXファイルを使用していますが
モーションは最初は滑らかなのですが時間が経つと次第にカクカクになり
3分も起動しておけば攻撃の最初と最後のモーションしか見えなくなってしまいます。
FPSに変化は無くモーションだけがこのようになり原因も解らず困っているのですが
何か良い解決方法は無いでしょうか?
とりあえずモーションの設定部分を抽出しました(長いのでアップローダに上げました)
もしお解かりになる方がいらっしゃいましたらアドバイスをお願いします。
ttp://www.hsjp.net/upload/src/up2920.txt
D3DXの高レベル関数を使わずに作り直してみてください。
>>904 返信ありがとうございます
んー高レベル関数ってのを色々とググってみてみましたが
イマイチ求めてる情報に突き当たらない・・・もう少し粘ってみます
>>905 >>904 みたいのは真面目に答えてやる気も無いだろうから
無視した方がいいw
最初は全部表示できてるのならどこかしらで情報失ってるんだろうから
ブレークポイント入れて見てみるとかしたらどうかな。
とりあえずソース再うpよろ。
908 :
デフォルトの名無しさん :2007/09/04(火) 18:48:25
xファイルを多数表示すると、実行時すごく時間がかかってしまうのですが、 その重さを解消するにはどうしたらよいですか?
多数ってどれくらいよ
911 :
903 :2007/09/04(火) 19:33:00
910はDirectX SDKは2007Februaryで作成しています
ddsという形式がありますがこれってテクスチャーを張る上で何か利点があるのですか? テクスチャーの形式は何が一番妥当でしょうか?
bmpでも貼っとけ。
>910 >float AnimeSpeed; >float AnimeTime; >float AnimeTimeHold; 試しにdoubleにしたらどうかしら。 それと AnimeTime と AnimeTimeHold は 最初に0で初期化してるの?
916 :
デフォルトの名無しさん :2007/09/04(火) 23:30:26
>>909 数百単位です。
ブロックを表示して、壁代わりにしているので。
対処方あったら教えてください。
917 :
903 :2007/09/04(火) 23:33:00
>>915 >>915 ご回答ありがとうございます。
全てdouble型にして実行してみましたが、
やはり1分を経過した頃からカクカクが目立ち始めてしまいました。
もしかして全然関係の無いとこで何かいじっちゃってるのかな・・・
newでオブジェクトを生成する際にゼロクリアしてますので
値は全て初期化しています。
>917 よく考えたらDirectXってデフォルトでFPUを単精度にするから無関係ね。 (その割にAdvanceTimeとか引数がdoubleになってて謎だけど。) AdvanceTime(ObjMotion.AnimeSpeed); みたいな決めうちでもダメなの?
>>919 いや、かなりマジで
っていうか市販のゲームほとんどそうじゃん
異論あんのか?クズがw
>>920 市販のゲームが全部お前の考えたふぉーまっとなんですか
すごいねー異論はないよすごいねー
おまえが考えたフォーマットってすごいんだな
923 :
903 :2007/09/05(水) 00:26:00
>>918 >AdvanceTime( ObjMotion.AnimeTimeHold, 0 );
の部分を AdvanceTime( ObjMotion.AnimeSpeed, 0 );
にしたところ色々試しましたがカクカクならずに動きました!
これでやっと制作に打ち込んでいけそうです;
こちらで聞いた甲斐がありました。
短いお時間でしたがお付き合いいただき本当にありがとうございます。
ほんとにくだらん揚げ足の取り合いだな
他人のフリをする920
>>922 おう、一部だけなら某大作RPGも使ってるはずだw
もしや特許とっちゃった例の人でつか? 誰でも使ってるロジックを縫い合わせて特許とった気分はどんなもんでつか? 某所で鶏卵って言ってるのはアンタのやつのことでつよ チキン野郎が産んだタマゴという意味でつよ
野郎に卵は産めません(><)
ステンシルバッファについて質問させていただきます。 最初にステンシル値を0で初期化し、複数のオブジェクトを、Zもステンシルも通過した時+1しながら描画するとします。 そして、全部描画し終わった後、特定の値、例えば1以上の部分だけを、 別のテクスチャに描画したいのですが、可能でしょうか? 前に描画したオブジェクトの再描画はなしで、色つきで抜き出したいです。 アルゴリズム的なモノだけでも良いのでお願いします。
可能です。
932 :
930 :2007/09/05(水) 18:22:58
ども。自己解決しました。 スレ汚しスマソ。
リリースし忘れを警告する方法ってありませんか?
発売日をしっかり守る! と紙に書いてパソコンやカレンダーにはっておく。
リリースするまでオナ禁
釣ったら食え
デバッグ版を出しちゃった
デバッグし忘れを警告する方法ってありませんか?
あ、D3DXFontとかの->Release()のことです
スマートポインタを使わずにする方法はないですか?
なんで使わないの
なんでといわれても
使わない理由が特に無いなら使えば
あ、スマートポインタは祖父の遺言で使うなと言われたのです
面白くないよ
あのう、真面目に話しているんですが
はいはい板違い 去ね
わかりました、もう二度と来ません
理由はもうだいぶ組んじゃってるのでスマートポインタで書き換えるのが
面倒だと思ったのですが仕方ないので書き換えます
一応
>>946 >>948 >>950 は偽者ですので
そんなに面倒ならプログラムを組むのをやめるといいよ。
面倒だけどやるっつてんだろうが糞ハゲが 役に立たない上にガタガタ騒ぐなボケ
っていうか、デバッグバージョンのdllを使えば済む話じゃないか? コード上で検出したいなら、グローバルなインターフェースはNULLで初期化しておいて Releaseすると同時にNULLを代入するマクロを使う。 (Releaseの戻り値が0かどうかも確認するといい) 最後に全てのインターフェースがNULLかどうか確認する。
最後のLPDIRECT3D9とLPDIRECT3DDEVICE9のリリースで0になっていませんでした でもどこで忘れているのか見当もつきません;;
スマートポインタを始めて聞いたようなレベルの同僚と共同作業する場合 自分がローテクに降りて行くほうが安全確実である。
悲しいがそれが現実だな
一つずつ切り分けていったら原因箇所がわかり、Releaseの戻り値 すべて0にできました、ありがとうございます
そしてAddRef/Releaseの戻り値に依存したコードは書いちゃ駄目と MS自身が言及している悲しい現実。
デバッグ用に確認してるだけであって、
戻り値によって処理を分岐してるわけじゃないんだろ?
まあReleaseの戻り値が期待通りでなくても文句は言えないんだが。
つか
>>958 そこまでデバッグする暇あるのなら素直にComPtrで書き直せばいいのに
時間かかりそうならスマートポインタに書き換えようと思いましたが SAFE_RELEASEにログを吐くコードをくっつけて ↓見たいな感じで一つずつやっていったらすぐに特定できたので・・・ プレイヤークラス->Create() //ステージクラス->Create() //メニュー表示クラス->Create() ・・・ プレイヤークラス->Destroy() //ステージクラス->Destroy() //メニュー表示クラス->Destroy() ・・・
962 :
デフォルトの名無しさん :2007/09/07(金) 00:33:27
>>961 〜を使うではなくてプログラム自体を
そういうことで悩む必要のない構造にできればレベル+1だw
俺はちゃんと組めばスマートポインタの出番なんてないと思ってる
破綻することがわかってるコードをゴリ押しでもってくのがスマートポインタ
>>962 最後の一行に激しく同意。
階層設計を構造的にきちんとデザインしないからスマートポインターとかでよろしく処理しようと思ってしまう。
こんなふざけた野郎はどうみても釣りだろ。
>>963 構造主義一辺倒じゃ片付かない事例なんていくらでもあると思うんだ
>>965 多人数で組む時とか?
でも、ここは初心者スレだし。
最初からスマートポインタで対処療法しちゃう癖つけるのも宜しく無いよ。
現実のコードが追いつく/追いつかないは置いておいて、
どっちにしろ構造をデザインするのは悪い事じゃないし。
>>965 そういうやっつけ仕事をして日銭を稼いでいるような会社は可愛そうだな。
事例はある事は認めるが、それに甘んじてしょうがなく働くかどうかは本人次第。
俺はとっくにそういったことに見限って10年前からアメリカのソフト会社だから全然違うけどな。
誰も聞いていない自分語りを始める奴は、例外なく心の病気にかかっている。
>多人数で組む時とか? いいえ、事案自体の構造的に、構造主義一辺倒の分析で間に合わないケースがあるよ 初心者スレだからこそスマートポインタに対する冷静じゃない見方を植え付けるのは よくないなあと思ったんだが
>>969 DirectXみたいに構造化された対象を扱うケースで?そんなに頻繁に?
設計がおかしいんじゃねーの?
構造化・・・
スマートポインタをただの開放忘れ防止にしか使ってなきゃいいけど よくわからなくなったインスタンスの所在を一括廃棄するために使ってるとしたら 普通に危険だ この先経験を積んでもロクなプログラマにならないだろう・・・ 俺はそういう奴を何人も見てきたw
俺はそういう奴を何人も見てきたw
具体的に何人?
大抵は日本人だけど中にはインド人とかもいた
廃棄タイミングを制御できない事例について議論しようぜ オブジェクトを生成した階層と、そのオブジェクトを使う階層が違って、かつオンラインのような長期稼動のケースでは、廃棄タイミングを制御するなんて現実的じゃないと思うんだ 思うだけで深い意味はない、素人だから
日本人
曰本入
日本人(笑)
つうか、自動変数でしか管理されて無いオブジェクトってなんなの? そんなもんがプログラム中に頻繁に発生するの?
初心者スレなのになんか難易度の高い基地外が住みついてるなこのスレは
982 :
デフォルトの名無しさん :2007/09/08(土) 02:21:03
質問です。 初心者レベルの問題なのかはよくわかりませんが、 正規化(Normalize)や内積(Dot)・外積(Cross)の使い方がわかりません。 というか、何となく言葉ではわかっているんですが、 それを実際にプログラミングで使用するとなると 一気に?状態になるんです。 ベクトルの長さを1に〜とは言っても「1にしてどうすんの?」 という感じでして・・・ どなたかわかりやすい解説や、わかりやすいサイト等を 知っている方は是非お願いします。
他人の解説を聞いても意味はないよ。他人にとって欠かすことができない処理でも 自分の作るプログラムに必要でないことはいくらでもある。 スーパーマリオもドラクエも法線の計算を使ってないだろうしな。
>>976 それってつまり管理できてないってことでしょ?
ゲーム系だとみんな俺様設計で組んでるから文句言われないけど
業務系でそういうことやると組み直しになるぜ
生成したインスタンスが管理できてないなんて特に最悪
どうせならどこでも通用するプログラマになりたいよね
それにそもそも
>オブジェクトを生成した階層と、そのオブジェクトを使う階層が違って、
この構造がまずそうじゃねぇか、この仕組みに手を入れないで
スマートポインタに手をだしていいのは締め切り1ヶ月前だけだろw
ほんと広範囲に影響がでるもん触ることになってちょっと怖くて組みなおせないよってときは
いいと思う>スマートポインタ
なに興奮してんの
>>986 結構重要な分岐点だから
ここでインスタンスの管理をサボるようになると
マジでロクなPGにならない
重要なことかもしれんけど初心者スレでインスタンスの管理やら説いても伝わるとは思えんけどなあ そして伝わってないなら周りから見ればスレ違いのオナニー長文にしか見えないわけで
場違いな所での場違いな力説の空回り感と言ったら・・・
まあ、ちゃんと管理しなきゃ駄目だよってことが伝わればおk
どーせJavaグラマ上がりのスマートポインタマンセーブタが、設計の手抜きに対して 「事案自体の構造的に、構造主義一辺倒の分析で間に合わないケースがある」 とか寝ぼけてんでしょ。 無視が一番。
チームが分断していてコントロールできない事例なんていくつもある さらにチームではなく、外部ベンダとかに分断している可能性だってある 現実的に優秀なPGが一人いるわけじゃなくて、馬鹿なPGが大勢いることの方が多い 下手したら日本人PGはインドや中国のPGより質が悪いかもしれない じゃあ現実的にどうしようか、って考えたらリソースリークが避けられるスマートポインタは一つの方法としてあると思う (生成したもの全てをスマートポインタにしろといってるわけじゃない) 他には遅延フェッチの実装を助けるとか、リソース管理とか参照回数の計測をしなきゃいけないときとか、純粋にコーディング世界での有用性もあるし 要は使いどころだと思うよ
だったら、まず必要なのは「スマートポインタで逃げる事」じゃなくって、 多人数でも正常に動作する構造設計と品質管理システム。 リークのあるリソースの追跡なんてプロファイラでやる事。 最後の行も、スマートポインタと全然関係無い。 普通にスマートポインタ使わない環境でもやってる事ばっかり。 「要は使いどころ」なのは同意だが、「困ったらスマートポインタ」なんてやってたら バカPGが大勢生産される環境になるだけ。
お前らみんなスレタイを見ろ。
>他には遅延フェッチの実装を助けるとか、リソース管理とか参照回数の まさにスマートポインタの使いどころだと思うけど
設計でつまずくたびにスマートポインタでスマートに逃げる・・・ 逃亡プログラマだなw
体育会系プログラミングってやつか
糞スレ埋め
でもそんなの関係ねぇ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。