【C++】 DirectX初心者質問スレ Part7 【C++】
1 :
デフォルトの名無しさん:
※回答する人も、質問する人も必ず読んでください
これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ
【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。
【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。
前スレ
【C++】 DirectX初心者質問スレ Part6 【C++】
http://pc8.2ch.net/test/read.cgi/tech/1127198808/
2 :
デフォルトの名無しさん:2005/11/17(木) 17:39:24
3 :
デフォルトの名無しさん:2005/11/17(木) 17:40:20
4 :
デフォルトの名無しさん:2005/11/17(木) 17:56:08
5 :
デフォルトの名無しさん:2005/11/17(木) 17:58:25
6 :
1:2005/11/17(木) 18:06:56
前スレ、その他スレにあったリンクをざっとまとめてみますた。
古いものや抜けはあると思いますが、それはそれで。
では、DirectX初心者に幸多からん事を。
7 :
デフォルトの名無しさん:2005/11/17(木) 21:11:07
流れのシミュレーションをしていて可視化で躓いています。
DirectXでベクトル表示は出来るのでしょうか?
また、出来ない場合どのようなものを使ったらよいのでしょうか?
表示したいものを表示したい通りにプログラムすればいいだけの話。
>>7 ベクトル表示とかはDirectXが行う処理ではない。(一応近い機能はある)
極端な話、Direct3Dはポリゴンを表示するだけの機能しかない。
だから、そのポリゴンを使ってどのようにベクトルを表示するかは私たちの仕事になる。
DrawPrimitiveでD3DPT_LINELIST系統を使うとか、
ID3DXLineを使ってみるとか、自力でビルボードを実装するとか。
その辺は仕様とかにしたがって決めればいいかと。。。
10 :
デフォルトの名無しさん:2005/11/20(日) 17:04:32
DirectAudioを使って音鳴らしてるんですが周波数を上げすぎたり下げすぎたり
すると音がきれます。なんでなんでしょうか?
周波数を上げすぎたり下げすぎたりするからです。
上げすぎたり下げすぎたりしないように、上げたり下げたりしてみてください。
テクスチャサイズについて、質問させてください。
ビデオカードによってサイズに制限があるそうですが(最大 256*256 など)
大きな絵をテクスチャで表示するには、分割する必要があり厳しいです。
最近のGPUはテクスチャサイズ制限が緩和されていくようなので
あまり制限を気にしないで大きなテクスチャを使うほうがよいのでしょうか。
よろしくお願いします。
13 :
デフォルトの名無しさん:2005/11/20(日) 18:04:44
10です。
周波数を上げ下げすると音に対してどういったことをしているのでしょうか?
音が高くなったり低くなったりします。
周波数を上げすぎたり下げすぎたりすると、人間の聞き取れない音域になるから、聞こえなくなる。
と思う。
>>12 そういった話は他人がとやかく言える話ではない。
具体的に何のビデオカードまで対応させるのか明確にしろ。
自分が何をターゲットにするかだ。
>>12 そのサイズ制限は古代の遺物みたいなものだ。気にしなくて良し。
古い制限にしがみついてプログラミングしてもそんなものに価値は全くない。
19 :
12:2005/11/20(日) 19:32:46
>>18さん
なるほどです。制限を気にしても得るものが少ないようですので
あまりこだわらないようにしたいと思います。
的確なご助言を頂き、本当にありがとうございました。
これで先に進めます。感謝します。
今時テクスチャサイズ制限のあるビデオカードなんて
探そうと思っても見つからないぞ。
21 :
12:2005/11/20(日) 20:06:02
あうう、そうなんですか。
今の時代の流れをまったく知りませんでした。。。
どうやって分割しようか、正直頭を痛めていたので
助かりました。 m(__)m
対象環境にGeForceまたはRadeon以降って書くのを忘れずにな
23 :
デフォルトの名無しさん:2005/11/21(月) 07:04:59
DirectMusicでMIDIマッパーをポートに設定したいのですけど、
どうすれば良いのでしょうか?
DirectMusic::EnumPort で列挙したまでは良いのですが、
DMUS_PORTCAPS のどのメンバを見て MIDIマッパーと判断すれば良いのでしょう?
DMUS_PC_EXTERNAL
XファイルのSkinWeightsのmatrixOffsetってどのタイミングでかければいいのでしょうか?
float3 vPosition =
mul(v.vPosition, mWorld[v.vBlendIndices.x]) * v.vBlendWeights.x +
mul(v.vPosition, mWorld[v.vBlendIndices.y]) * v.vBlendWeights.y +
mul(v.vPosition, mWorld[v.vBlendIndices.z]) * v.vBlendWeights.z +
mul(v.vPosition, mWorld[v.vBlendIndices.w]) * fLastBlendWeight;
これ↑ってシェーダの頂点の計算ですよね?
SkinWeightsに登録されている頂点に対してmatrixOffsetをかければいいんですよね?
それってこの式のどの値に反映するものなんでしょうか?
26 :
デフォルトの名無しさん:2005/11/23(水) 18:54:04
あ、sageちゃった・・・
あーあ、sageのままだったら教えたのに。
>>25 まず v.v これがバカにしてるみたいで気に入らないムカツク
v(v.v)vヤッピー
C++は分かるけど
DirectXに関しては何から手をつければ良いわからない
初心者以前の人はどうすればいい?
チュートリアルを順番に動作を確認しつつ確実にやる。
リアルチュー
36 :
デフォルトの名無しさん:2005/11/24(木) 15:38:45
質問させてください、
デバッグのために、グラフのようなものを毎フレーム書き換えて
画面の隅にテクスチャとして貼って表示したいのですが、
自分で作ったDIBビットマップとかをテクスチャにして表示させるには
どうしたらいいのでしょうか?
サーフェスにテクスチャを対応させて、そのサーフェスにレンダリングして
そのテクスチャをプリミティブに貼って描画、、とかはやったことがあります。
が、ビットマップを毎フレームいじってそれをテクスチャとして・・・だと
よくわからないので、教えてください。
環境はVC6 + DX9 Oct.2004です。
宜しくお願いします。
>>36 毎フレーム、テクスチャに描画して画面に表示させる、でいいんじゃない?
遅いんだけどね。
D3DUSAGE_DYNAMICで作ったテクスチャはAGPに確保されるのでアクセスが早い。
こいつを直接いじるという手もある。
38 :
36:2005/11/24(木) 16:31:35
>>37 レスありがとうございます。
テクスチャに描画して・・というのがいまいち掴めないのですが、
もしかしてIDirect3DTexture9::Set/GetPrivateData()で指定するpDataが
生のビットマップデータで、そこにビットマップを渡せということなのでしょうか?
LockしてDIBの内容をテクスチャフォーマットに沿うように形式を整え転送するだけ。
40 :
36:2005/11/24(木) 18:23:48
>>39 ありがとうございます、大体わかってきました。
今サーフェスのメソッドを調べてGetDCとかあることを初めて知りました・・・
とにかくやってみます、どうもありがとうございました。
SDL-IMというSDLへのパッチに手を入れているのですが、SDL自身はDirectInput経由でキーを取得しているのに、それとは別にWM_IME_COMPOSITIONなどを捕まえて日本語入力を処理するという魔境になっておりました。
変換中は無理やりDirectInput経由の出力をカットしたりするのでキーリピートに関して整合性が取れず、困っております。
なんか直すのが面倒なので、ふつーのキー入力もWM_KEYDOWN/UP,WM_CHARを捕まえるように書き換えてしまおうかと思っているのですが、DirectInputと比べて応答性などパフォーマンスの面で違いはあるのでしょうか?
現在は変換中のイベントブロックをやめさせ、プログラムの方で変換中ならKEYDOWNイベントを捨てるようにして応急処置しています。
42 :
デフォルトの名無しさん:2005/11/24(木) 23:57:27
数学の知識って必要?
高校程度の知識は必要だと思う。
必要な知識は大して無いが、
少なくとも高校程度の数学なら理解できるくらいの知能は必要だな
46 :
デフォルトの名無しさん:2005/11/26(土) 00:02:05
聞いたことあるくらいの知識でしか説明できないのだけれど…
音量は音波の振幅で表すことができる。
だからデジタルデータの絶対値=その瞬間の出力レベルってことになる
あと音量は線形では表されず対数化されて聞こえるらしい(db=デシベルとか参照)。
音程ごとに振幅を表示したいならフーリエ変換でスペクトル分解し、
各周波数ごとに絶対値を取ればいいんじゃないかな?
48 :
25:2005/11/26(土) 00:46:45
解決しました。
BBXで検索したらでてきました。
>例えば、Xfileの自前再生をした事がある方なら分ると思いますが
>スキニングの場合、Xfileの FrameTransformMatrix と matrixOffset は使わずに、
>AnimationSet の 各Animation を各フレームに適応させるだけでアニメーションします。
>ですので最初のレスで FrameTransformMatrix と OffsetMatrix は使わないと言いました。
ということで
matrixOffsetは使わなくていいっぽいです。
アニメーションしてようがオフセットは使うが、使わないで出来るというならやってみるといい。
そもそも使わないでどうやってボーンからメッシュまでの相対位置を割り出すのか、
異次元から情報を取得する方法に興味がある。
できるって言ってるんだから、いいんじゃないの?
やってみて、そして悩み考える。
そして大人の怪談を一歩一歩昇っていくのさ。
51 :
43:2005/11/26(土) 11:58:04
始める前から質問攻めか・・・
>>51 必要かどうかは、やってみりゃわかる。
今からその姿勢じゃ、何一つ作り出せないと思うが。
54 :
デフォルトの名無しさん:2005/11/26(土) 17:57:03
42 です。
どなたかわかる方いらっしゃいませんか?
>>54 症状が「音がきれます」だけでは漠然としすぎてて分からん
まずはソース晒してみては?
モーションブラーを作りたいのですが、
GetSurfaceLevelで取得したサーフェイスを
SetTextureに設定できるようにするにはどうすれば良いのでしょうか?
サーフェイスをテクスチャに変換する方法があれば教えてください。
いったんターゲットに出した後、描画内容を再びテクスチャにコピーするだけ。
\
\(⌒-⌒)
(・(ェ,,)・ ) < そんなエサで俺様がクマー!!
`つ `つ (´⌒(´
ゝ_つ_`つ≡≡≡(´⌒;;;≡≡≡
(´⌒(´⌒;;
ズザザザ
59 :
56:2005/11/26(土) 21:04:08
>>57 > いったんターゲットに出した後、描画内容を再びテクスチャにコピーするだけ。
いや、ですから、ターゲットに出すときにバックバッファを
どうやってSetTextureするかという質問なのですが…。
だーかーらー、SetTexture可能な別のテクスチャにコピーするだけ。
始皇帝氏厨はお帰りください。
>>61 そりゃできるよ。
だってoffsetMatrixはboneMatrixの逆行列だもの。
逆行列じゃなくてBoneMatrixを辿って作る行列じゃなかったっけ?
オブジェクト座標系の頂点をボーンを原点とした座標系に飛ばす行列なんだから。
確かに無くてもできるけど、再計算が阿呆らしいからOffsetMatrixがあるんじゃないの?
66 :
65:2005/11/26(土) 23:12:11
間違えた。逆行列で良いのかorz
>56
テクスチャとして使用できるサーフィスに出力する
アホ。
レンダーターゲットのテクスチャはSetTexture不可能。
出来るがな
とりあえず、スキニングの頂点の変換手順は
1.メッシュ空間→ボーン空間
2.ボーン空間→ワールド空間
だ。
1をやるのがoffsetMatrix
2をやるのがAnimationSetに入ってるAnimationをルートからずらずらかけたものだ。(親もな)
>>25の質問に答えるなら、
mWorld = offsetMatrix * AnimationSet * 親・・・
という感じになる。
スキンメッシュで面倒なのはシェーダに突っ込む前に
mWorld = offsetMatrix * AnimationSet * 親・・・
をSkinWeightの分だけ作らないといけないところだけだな。
と、よく知らないのにいってみるテストw
71 :
56:2005/11/27(日) 02:15:14
>>60 >>67 レンダーターゲットを退避用のバッファにコピーということは、
基本的にCreateDeviceで作成されたバッファは使わずに、
自分でD3DUSAGE_RENDERTARGETフラグを指定して作成した
テクスチャを作って、バックバッファに指定して使っていくということでしょうか?
とりあえずその手の簡単な処理で困ったときはt-potのソースを見ることだな。
74 :
デフォルトの名無しさん:2005/11/27(日) 09:12:10
DirectX9b SDK & VC++ で勉強し始めたものです。
目的はシンプルなウィンドウに3Dポリゴンで
簡単な図形(三角形とか)を描いてみたいのですが、上手く行きません。
WebでDirectX8のいい参考HPを知り、
DirectXのバージョンが違うと知っていましたが、わかりやすいので
d3d8.h などを d3d9.h などに読み替えて作り続け、途中まで順調でした。
ところが、シェーダーのところで躓いてしまいました。
Webを漁ってみて、鬱だ氏のう のページ↓
http://pc5.2ch.net/tech/kako/1054/10545/1054553472.html の 386 さんと同じ状態だったので、389 を試してみました。
すると、コンパイルは通って実行できるのですが、
ウィンドウに図形は表示されません。
DX8 > DX9 に読み替える過程で抜け落ちているものがあるのでしょうか。
なお、dxdiag での診断で DX9 のサイコロは表示されました。
また、ハードウェアデバイスの取得に成功しています。
他の場所から落としてきたサンプルコードは同様のことができているので、
ハードウェア的な問題ではないと思っています。
>>74 理解できてないのに、なぜ移植なんかしようとする?
DX9付属か、DX9に対応したサンプル使え。
>>75 そのページが、説明の進め方など
自分にとってとてもわかりやすかったからです。
にしても、もっともなご意見ですね。
やっぱりDX8と9の知識がいるから、難しいのか・・・。
そのページとはどこやねん。
エスパーの方はいらっしゃいませんか?
>>74様がお待ちです
79 :
56:2005/11/27(日) 12:09:22
>>72-73 なるほど。
画面を組み立てるのは別のテクスチャに2枚入れ替えながら描いて、
最後表示するときにバックバッファに転送していますね。
参考になりました。ありがとうございます。
81 :
デフォルトの名無しさん:2005/11/27(日) 16:15:51
すみません、directXので、directinfoとかいうハードのスペックが見られるところがあったような気がしたのですがどこに入っているのでしょうか?
ピクセルシェーダー(HLSL)とDrawPrimitiveについての質問です。
シェーダープログラムを複雑にして描画に時間がかかるようになると
CPU負荷が上がるのですが、これは正常な状態なのでしょうか。
具体的には、トライアングル一つでPixelShaderプログラムが
{c=tex2D(texture, InTexcoord);}
だけの場合、Begin-DrawPrmitive-Endの描画処理はすぐに終わり、
1/60毎のタイマで描画するとCPU負荷は0〜数%です。
ところがシェーダープログラムを{c=tex2d();c=complexCalc(c);}等に変更し
シェーダーに負荷をかけるとCPU負荷が徐々に上がり、さらにloop等で処理量を
をふやすとCPU負荷が100%にまで達します。
シェーダーは完全にGPUによる処理でCPUはIdle状態だと考えていたのですが、
処理によってはCPUを使う場合もあるのでしょうか?
(CompileShaderは"ps_3_0"指定。CPU負荷はタスクマネージャ読み)
>>82 そうなったんならそうなんじゃね?
パフォーマンスに関してはやってみて測ってみたならそれが正解って
誰かいってたじゃん。
>>82 PixelShader3.0対応のビデオカード使ってる?
GPUが対応してない場合はソフトウェアで(CPUで)処理するしかないんだが
どっちかっていうと、この場合は計り方が悪いんじゃね?って思うけどな。
GPUの処理待ちでPresentのあたりで処理が止まっているだけとか。
>>83 なるほど
SDKのtutorialやt-potサンプルをちょっと改変している程度なので
何か前処理が足りないのかとも思ったのですが……
>>84 7800なのでps_3_0対応のはずです
対応GPU使わないSetPixelShader辺りでエラーになるのかと思ってましたよorz
本来はCapsで調べて予めエラー処理しないといけないのでしょうね
>>85 むむ、DrawPrimitive()で止まっているとは限らないのですね
単にタスクマネージャ上で負荷が上がって見えるだけなのかとも疑っていたりするので、
どこでCPU側の処理が止まっているのか、もうすこし調べてみます
質問させてください。
MSDNのチュートリアルを見ながら、ポリゴンにテクスチャマッピング
できるようになったのですが、複数枚のポリゴンに複数枚のテクスチャを
貼り付けようとしています。
それぞれのテクスチャ毎にステージを変えて貼り付けているのですが、
一枚のテクスチャが他のテクスチャに影響を与えてしまって
うまくいきません。
調べてみた所、複数枚のテクスチャを一枚に纏めるのがよさそうですが
テクスチャを動的に作っているので、あらかじめ一枚に纏められなくて、
テクスチャを動的に一枚に纏める方法がどうにもわかりません。
よろしければ教えてください。
環境はVC7+DX9(Summer 2004)です。
よろしくお願いします。
テクスチャをロックして書き出せば良い。
DirectInputとGetKeyboardStateなどのAPIでは、
DirectInputの方が早いと聞いたのですが、
体感に差が出るほど速度は違うのでしょうか。
>>89 試せばわかる
その前に聞きたいんだけど
君は1秒間に60回とか120回とか入力できる人?
もしそうならDirectInputのほうが速いと体感できるでしょう
>>88 ありがとうございます。
テクスチャをロックしてメモリに直にアクセスしてコピーなどすればいいということでしょうか?
テクスチャを範囲でコピーできるような関数を探していましたが、やはり直アクセスが一番早そうですね。
93 :
87:2005/11/29(火) 14:55:28
テクスチャをロックしてコピーしたらうまく3枚のテクスチャを1枚にまとめることができました。
ありがとうございました。
1枚にまとめてそのテクスチャを張り合わせるよりも、ステージを使って
うまく重ね合わせるほうがコピーが無い分早そうですね・・・。
94 :
デフォルトの名無しさん:2005/11/29(火) 16:58:50
d3dx9d_2x.dllを配布するにはインストーラを作る必要があるそうですが
そのインストーラを作る方法はどこに書かれてますか?
?
96 :
94:2005/11/29(火) 17:19:51
なにか不思議なことを言いましたか?
d3dx9d*は再配布禁止です。
98 :
94:2005/11/29(火) 17:40:21
そうです!単体では配布禁止です
そこでMS推奨のインストーラに添付する形での配布をしたいのです
単体じゃなくても、どんな形でも禁止。
100 :
94:2005/11/29(火) 17:46:36
インストーラを作れば配布可能だとDirectXヘルプで読んだのですが
誤読だったみたいですね。もう一度英語辞書引っ張って読み直してきます。
お騒がせしました。
日本中が大騒ぎしたよ
まったく
今日は冷えるなぁ
104 :
89:2005/11/30(水) 01:06:21
>>90-91 体感できるほどの差ではないけど、やっぱり影響はあると・・・
そうでしたか・・・
そうですよね、実際に比べるのが一番ですよね。
いや、実はDirectInputが上手くいかなくて、
APIに逃げようかtゲフンゲフン!!
もう少しガンバってみます。ありがとうございました。
結果が同じなら楽なほうに流れるのはよいことだと思うけど
DirectInputが分からないから使わないっていうのはどうかなと
>>94 d3dx9d_2x.dllを配布するには(DirectXの)インストーラを「使う」必要がある
だからそれは、d3dx9_2x.dllの配布方法だろ。d3dx9d_2x.dllは再配布禁止。
本当にd3dx9d_2x.dllを要求してるなら、d3dx9d.libではなくd3dx9.libをリンクしろ。
113 :
デフォルトの名無しさん:2005/12/01(木) 14:40:55
DirectSoundで、waveの任意位置へのループをやりたいのですが、
どうしたらよいでしょうか。
SDKを見ても、最初にループする方法はわかりましたが、
途中からループする方法がわかりませんでした。
mmio関係の関数を使うようなのですが・・・。
こんな感じ何ですが
→→→→→
↑ ↓
←←←
>>113 WAVEデータの途中からバッファに書き込めばいいんじゃないの
115 :
デフォルトの名無しさん:2005/12/01(木) 20:13:23
そのシークの仕方がわからんのでげすorz
mmioSeekはなにか違うし・・・
ばれないから平気だよ。d3dx9_2x.dllだけ自分のソフトで配布。
市販ソフトでもけっこうやってる
>>115 シークのためにはWAVEデータとは何なのかを知らなきゃならない。
たとえば16ビット、ステレオ、44100HzのWAVEデータなら、
1秒間に16[bit]*2[channel]*44100[Hz]のデータが詰まってる。
これでシークの仕方は大体想像つかないか?
ところで、やりたいことは前奏つきの音楽の無限ループ、でいいのかね。
>>113 ループする場所が固定ならば(動的に変化しないならば)
あらかじめイントロ部とループ部にファイルを分割しておくのもひとつの手
>113
とりあえず事前条件として、ストリーミング再生はできてるんだろうな?
120 :
デフォルトの名無しさん:2005/12/02(金) 11:14:59
>>117 実は、oggでの無限ループはすでに出来てるんです。
シークは、ov_pcm_seek(サンプル数)で。
で、wavができねーって話です。
いや、wavいらんといえばいらんのですが。
>前奏つきの音楽の無限ループ
そのとおりです。
>>118 それも考えました。
ただ、2つのファイルを切れ目なく、うまくつなぐ処理を考えたら、
1ファイルで完結するのが楽かな、と思ってやってます。
>>119 ストリーミング再生はできてます
>>120 だから、>117にも書かれている通りwavのデータならどこにシークするかは自明だろ。
ヒント:wavファイルのファイルサイズと演奏時間
理論的な話ではなく、実際の実装はどうなりますか、ということです。
バイトオフセット = サンプリング周波数 * 秒数 * 量子化バイト数
例えば、22kHzサンプリングで16ビット量子化なら、0.1秒オフセットするには
4410バイトオフセットすればいいということだな。
厳密にはヘッダの分が必要かも知れんが、その辺はヘッダの資料でも見て計算してくれ。
まえにやったことある方法。
A.前奏
B.ループ部分
C.ループ部分の頭の数秒末尾に付けておく
WAVデータはこんなふうにしておいて、
演奏位置がCを超えたら、超えた分(現在位置-C)を
Bからのオフセットとして(B+(現在位置-C))にシーク。
この方法だと現在演奏位置を常に監視する必要があるけど
C部分を多めに取っておけば監視回数は減らせる。
125 :
124:2005/12/02(金) 13:51:39
長さが分かってるから常に監視する必要はないか
>>122 理論が分かってたら実装なんて一発だろ、こんなん。
1サンプル当たり、2チャネルで各チャネル16ビットのデータを持っているんだから、
1サンプル=4バイトのデータがあることになる。
それが1秒間に44100個詰まってるんだから、
開始位置から1秒後にシークしたいならオフセットは44100*4だろう。
いやだから、oggだと出来たんだって・・・
waveが出来なくて泣きそうなんです
mmio系wakewakame
まるでDirectXと関係がなくなってるが
>128
mmio程度を理解でいないのもアレだが、mmioなんか使わんでいい。
自前でRIFFチャンクを処理してファイルポインタを操作しろ。
つーかこういうものはoggでできる前にWAVEでできなきゃ駄目だと思うんだが
うわ、馬鹿親の見本だな
132 :
131:2005/12/02(金) 21:20:51
誤爆失礼。
RIFFにはMP3さえも入れられるからなあ
Waveは仕様が奥が深いというか。
煩雑で良いドキュメントも無いし俺は使ってないな
今懐かしくなって何年か前のコードを見てみたんだけど WAVE のやつでは
シークは先頭から読み飛ばして実装してた 効率悪そうだw
先頭まで戻って::acmStreamPrepareHeader,::acmStreamConvert...を
繰り返すって感じ 今見ても嫌なコード..
134 :
デフォルトの名無しさん:2005/12/03(土) 11:10:27
いま3Dゲームみたいなものを作成しようと頑張っています。
地形(山とか家とか)を作成しようと試みている最中です。
いろいろ試してみたいのですが、
テクスチャを貼ったXファイルを読み込んで表示するのが
手っ取り早いかと思っています。簡単ですし・・
直接DirectXとは関係ないかと思いますが、
簡単にテクスチャを貼るツールなどありましたらお教えください。
めたせこいあ
>>134 最近のツールはほとんどモデルに直接描きこめると思うんだが
それでは不足ということか?
アジの開き系のツールとか試した?
直接描きこめる系って実用性あるのかな
いやリアル系ならいけるんだろうけど、ゲーム用途だとどうなんだろ
いまいちなイメージがあるなぁ…まぁデザイナじゃないから良く知らないが
レースゲームのベース用のハイトマップを巨大な1枚のテクスチャにするとか。
細かい質感はディティールマップ等を併用する前提で。
バイナリエディタの作り方キボン
↑馬鹿の作り方。
>>139 いや、てゆうか普通に表示するだけっしょ。
なにか問題でも?
パイズリエディタ
バイナリエディタならプログラム途中にバイトコード挿入したときに
相対ジャンプのオフセットを判断して全部書き換えてくれると嬉スィ
>>143 普通のエディタと同じでいいじゃん。
VCと同じような作りにしたいなら自作エディタでも作ればいいんじゃない?
そんな難しくないとおもうけど。
まあ、それはお便利機能だから、とりあえず次のステップとして横においておくとして、
バイナリエディタを作るだけなら基本的には数字を表示するだけで終了じゃね?
バイズリエディタならオルガズム途中にマイマラーヲ挿入したときに
早漏ランプのコースセットを判断して全部カキカイテくれると嬉スィ
バイナリエディタがDirectXと関係あるのか?
俺C++しかもってないのでCのソース組みたいんだけど。
>>148 大抵のC++コンパイラはCコンパイラを兼ねていて、拡張子cのファイルはCとしてコンパイルしてくれる。
そうでなくとも大体はCのコードはC++のコードとしても通用する。
>>149 CとC++はあまり書式変わりが無いから気にしなくていいかと。
C++のソースコードとか沢山置いてるサイトのアドレス誰か出せ。
>>152 いや個人サイトでC++のソース(MFCじゃないやつ)置いてる場所教えてくれ
MFCは好きじゃないからな。
つかMFC組めないしビルドに失敗する。
ここまで俺の自演
○ _,. - ‐‐ - .,,_
(、ノ,. '" `ヽ、 ,
)) ヽ○ノ
/ ヘ ←
>>156 <
おいおい、なんだよこの反応。マジムカツク。なんで自演扱いなのよオレ。なんだよ、
個人サイトのC++ソース探してたら人生そのものが自演なのかよ。ふざけんなよ。MSDNのサンプル
実行しても上手くいかなかったから参考までに教えて欲しかったのにぶざけんじゃねーよ。
それともMFC嫌いに焼いてんのか?なら許すけどさ。確かに見た感じはカッコイイから焼く
気持ちも分からないでもないけどだからって自演扱いは凄く失礼だぞ。
あとプログラミング始めたばかりでまだ個人サイトしか見てないからMSDNがどの程度凄いのか知ら
ないけどマジで個人サイトって個人でも激わかりやすの。サイトデザインは恐ろしいほど悪いけど
あの説明は本当に凄い。あと156さんは信じてないみたいだけど本当の本当に自演はしてない
んだって。これは神と仏と悪魔に誓ってネタじゃない。マジで151=153だけ。
どう見てもスレ違いです。
本当にありがとうございました。
リリースフォルダにある完成ファイルとデバッグフォルダの完成ファイルはどう違うんだよ。
バイトが激しく違うんだが。
○ _,. - ‐‐ - .,,_
(、ノ,. '" `ヽ、 ,
)) ヽ○ノ
/ ヘ ←
>>160 <
2年前、俺が立て逃げしちゃったスレ、ここまで続いてたのか・・・
あの時は正直スマンカッタ。今はマンセーしている
2Dでスプライトを表示する時に透過していない所だけを虹色で描画するにはどうすればいいでしょうか?
mayaに.xファイルをimportするプラグインってあります?
商用のやつはみつかったんだがそれだけのために買うのもなぁ…。
blenderを一旦通して、xファイル入力obj出力やろうとしたんだけど
うまくimportしてくれない。うーん。
テクスチャの透過していないところを虹色で塗ればいいのではないでしょうか。
Win32は上級者向けでMFCは初心者向けですか?
どう見てもスレ違いです。
本当にありがとうございました。
>>168 どちらとも言えない。
表裏一体のような関係。
>>169 しかも日本語なってないのにプログラム板とか流石ですね(´,_ゝ`)
「どう見ても○○です。本当にありがとうございました。」って最近よく見かけるけどなんか元ネタがあるの?
>>166 ないので作れ。出来上がったらhighend3d.comに投稿してくれ。
>>176 む・・・無理・・・
せめてobjファイルとかほかの形式でdirectxで保存できればいいのに・・・
D3DXSaveMeshToObjみたいな。ないよね。はい、ないですね。
なぜ山に登るのか?と聞かれた登山家は
そこに山があるからだ、と答えたというが
プログラマーになぜコードを書くのか?と尋ねたら
そこにツールが無いからだ、と答えるだろう
えーと、DirectX 8.1で自分でウィンドウとDirect3Dデバイス作って
CD3DFontのDrawTextで文字を描画しようとしたところ、
> // Setup renderstate
> m_pd3dDevice->CaptureStateBlock( m_dwSavedStateBlock );
> m_pd3dDevice->ApplyStateBlock( m_dwDrawTextStateBlock );
のところで
Direct3D8: (ERROR) :Invalid state block handle
Nullpo.exe の 0x7c81eb33 で初回の例外が発生しました : Microsoft C++ exception: long @ 0x0012f4e4。
Direct3D8: (ERROR) :CaptureStateBlock failed.
Direct3D8: (ERROR) :Invalid state block handle
Nullpo.exe の 0x7c81eb33 で初回の例外が発生しました : Microsoft C++ exception: long @ 0x0012f4e8。
Direct3D8: (ERROR) :ApplyStateBlock failed.
Nullpo.exe の 0x00416ed1 で初回の例外が発生しました : 0xC0000005: 場所 0x00000000 を読み込み中にアクセス違反が発生しました。 。
Nullpo.exe の 0x00416ed1 でハンドルされていない例外が発生しました : 0xC0000005: 場所 0x00000000 を読み込み中にアクセス違反が発生しました。 。
プログラム '[6044] Nullpo.exe: ネイティブ' はコード 0 (0x0) で終了しました。
などとなって止まるのですが、何か心当たりないでしょーか。
CaptureStateBlock()が失敗する理由がぶっちゃけ分かりません。
CD3DFontなんか使うなとか、CD3DFont使うくらいなら素直にフレームワーク使えとか言われたら
それまでなんですが……。
180 :
179:2005/12/07(水) 17:07:15
すいませんわかりました。RestoreDeviceObjects呼び出されてなかった(ワラ
なんでこういうのって書き込むとすぐ解決するん?
自分で調べずに、困ったらすぐ書き込んでるから。
今後は解決してから書き込むように!
ヘルプに書いてあるよな。ちゃんと嫁。
ヘルプが無いなら入手白
184 :
デフォルトの名無しさん:2005/12/08(木) 12:37:10
VC++ と DirectX9b で、LPD3DXFONT を使用して
ウィンドウにテキスト表示をしたいのですが、
表示部分で上手くいきません。
RECT rc;
rc.top = 0;
rc.left = 0;
rc.bottom = 16; ←現在は適当に設定してます
rc.right =160; ←現在は適当に設定してます
LPD3DXFONTオブジェクト->DrawText(
"あいうえお",
-1,
&rc,
DT_LEFT | DT_EXPANDTABS,
D3DCOLOR_XRGB(255,255,255));
とすると、画面には「あいいいい」と表示されます。
半角も表示してみたところ、どうも1,2バイト目を表示した後、
3〜4バイト目を文字数分だけ繰り返しているみたいです。
原因は何なんでしょうか。
2d頂点ポリゴンと3D頂点ポリゴンを同時に描画しているのですが、
Z値は2D頂点のほうを大きくしているのに2dポリゴンが3dポリゴンを塗り
つぶしてしまします。 (?ω?)
環境書き忘れました。
vc++ 6.0 + direct x 9.0c
>>185 ZEnable、ZWriteEnableとかはどうなってる?
>>187 ZEnableはTRUEに設定していますが
ZWriteEnableは設定していません。
単純に計算ミスでz値が3dポリゴンの方が大きかっただけでした。 orz
お騒がせしてすいません。
今後はもう少し落ち着いて質問させていただきます。
190 :
デフォルトの名無しさん:2005/12/09(金) 07:17:14
VC++,DirectX9.0bを使っているのですが、現在画像と撮影対象を
direct3Dで描いたものを比べて同じものだと判定するプログラム
を作ろうとしているのですがどうしたら比較できるでしょうか?
自分の考えとしてはdirect3Dで描いたものをBITMAPに保存して比べよう
としたんですがどうやって保存すればよいかわかりませんでした。
BITMAPに保存する方法でも新しい方法でもいいのでどうか教えてください。
それ以前にビットマップにしてどうやって比較するつもりなんだ?
このテーマだけで大量の論文が書けるぞ。
それはともかく
GetRenderTargetData
GetFrontBufferData
誰かFAQ書こうよ〜
投影について質問です。
directx 9.0bで平行投影は可能なのでしょうか?
自分は3d画像を利用した2dシューティングを作成しているのですが
透視投影ではオブジェクトの位置ごとに表示がかわってしまって
当たり判定などの処理が作成が困難なので平行投影を利用したいのですが。
可能
<<194
どのようにすれば平行投影ができるのでしょうか?
D3DXMatrixOrthoLH等
ありがとうございます。
プロダクション変換行列をその関数で作成すればうまくいきそうです。
プロダクション?
199 :
デフォルトの名無しさん:2005/12/10(土) 12:47:58
SDK Decemberは出るのでしょうか?
ここに答えられる人間がいると思っているのか?
頭は大丈夫か?
201 :
ゲイツ:2005/12/10(土) 13:09:15
December、かぶるから出さないよ
Februaryが出る、とか言った奴がいて、予言どおり出たことがあったな。
半透明のポリゴンは画面奥から描くのがセオリーだけど、
交差してるポリゴンはどうやって前後処理するんでしょうか?
なんか上手い方法ないですかね・・・?
半透明でない交差ポリゴンはZバッファで大丈夫。
半透明な交差ポリゴンはZバッファとZソートを組み合わせても駄目だけど、
普通の人間なら全然気づかないから放置
一応、2パス描画でオーバードローを防ぐ
(奥のポリゴンを常に最前のポリゴンで隠す)方法はあるわね。
>>207 一旦Zオンリーで描画してから、普通に半透明で描画。
一番手前に来るピクセルだけZ≦Zfを満たして描画できるわけね。
それだと後ろ側に回ったポリゴンは描画できなくない?
>>209 もちろん不透明ポリゴンは全て先に描画しておくのが前提で、
同じ半透明のはあきらめるってことね。
一旦Zオンリーというのは、
全部の半透明ポリゴンに対してでしょうか?
・不透明の下地を描画
・半透明のZ描画
・手前の半透明の色だけ描画
で、交差するポリゴンの、
手前の半透明がα=0.1
奥の半透明がα=0.8
だとすると、
奥の0.8が無視されて下地が思いっきり透けてしまいませんか?
>>210 うーん、諦めるって事ですか・・・。
>>211 半透明率が違うのは想定範囲外ねw
今挙げたのは、視点によって描画順が変わって
半透明が多重に掛かったり一度だけ掛かったりするのを防ぐために、
常に一度だけ掛かるようにする方法ね。
こんなのもあるってことで。
そんなに精度が重要ならポクセルでソフトレンダリングすればいい。
レンダリングの手法にばかり目が言ってるけど
データを工夫すれば回避できることもある。
その他ZDEPTH値を持たせたり、ALPHATEST ALPHAREF ALPHAFUNCの設定でかなり改善できる。
はじめまして。
CDXUTMeshを使ってXファイルを表示しようとしております。
Xファイルを読み込んで表示することは出来たのですが、
一部の環境でそのプログラムを実行すると3Dオブジェクトの一部がちらつきます。
ポリゴン単位やオブジェクト単位ではなく、一部分が水平方向10ラインくらいが一気に
消滅してしまいます。
垂直同期とかの兼ね合いかと思ってVSyncは有効にしております。
どなたか解決方法を知らないでしょうか?
環境:DirectX 9.0 SDK (October 2005)
開発:VisualStudio.net 2003
OS:WindowsXp SP2
オブジェクト作成:Shade7
です。
よろしくお願い致します。
質問です。
DirectX7時代Direct3D-IMでちょこちょこ組んでて、久しぶりに戻った者なんですが
今の時代、D3DX当たり前でIMでごりごりやるってのは時代遅れなんでしょうか。
…というかIM自体なくなっちゃったんでしょうか
参考書とかほんのちょっと目を通したのですが、D3DXばかりだし
ちょこっとじゃなくて、しっかり目を通せ。
>>217 とりあえずバンプマップ実装してからきて。
そのころにはすべてが理解できてるだろうけど。
音程を変えずにwaveファイルの再生速度を変更したいのですが
どうすればよいのでしょう?
よろしくお願い致します。
思えば、バンプマップって確かにほどよく全体を理解できるいい課題だな
そうかなぁ、バンプマップってVS1.1で出来る?
シェーダなんて無くてもできる。
>>220 フーリエ変換とかで周波数成分をスペクトル分解する
そこから曲の長さを伸ばして、フーリエ逆変換して元に戻す
多分こんな感じでいけるとは思うけど
ちゃんとしたものを作ろうとしたらかなり大変になるだろうなあ…
適当なものだと音の質が変わりそうだ
225 :
220:2005/12/13(火) 21:55:23
>>224 回答ありがとう。
そうですか・・・大変ですか。
フリーのソフトで実現しているのがあったり、
.wmvだとMP9で出来たりするので、そんなAPIがあるのかと思っていました。
ある程度、音質が変わるぐらいなら許せるのだけど、
それでも大変でしょうか?
超手抜きな方法。
数十〜数百サンプル単位でまとめて間引く。
小さくし過ぎると音程に影響するし、大きいとぶつ切りになるので適当に調整。
誰かManaged DirectXのテクスチャ関連のバグって聞いたことないですか?
てか多分私のせいだとは思うんだけれど、あまりにも不可解なんで腹が立ってきた…
SkinnedMeshサンプルをほぼ丸々コピーしてコンパイルしたんだけど
Textureを作成して関数終了直後に即Disposeされてしまいます。
参照はちゃんと持ってるんで、ガベコレが働くわけはないと思うのだけれど
228 :
デフォルトの名無しさん :2005/12/14(水) 19:59:48
ビルボードの中央を基準に法線つけてんじゃない?
球みたいなのを想定してるとか。
で、SkinMeshの謎がわからない.....
ソースを
232 :
220:2005/12/14(水) 23:39:35
>>226 回答ありがとう。
やってみましたが、ブチブチと雑音が多くて。。。
>>232 それが簡単にできたら特許とってぼろ儲けの気がする・・・
234 :
231:2005/12/15(木) 01:30:06
日記みたいになって申し訳ないんだけど、
一応原因とそれなりの解決策が分かったので参考に書いておきます。
AllocateHierarchy.CreateMeshContainerの中で、テクスチャ作成時に
meshTextures[i] = TextureLoader.FromFile(parent.m_dev,"tiny_skin.bmp");
とすると速攻でDisposeが呼ばれてしまいますが
次のようにstaticな一時記憶領域を用意してやるとDisposeされなくなりました。
s_temp = meshTextures[i] = TextureLoader.FromFile(parent.m_dev,"tiny_skin.bmp");
原因は、Mesh.LoadHierarchyFromFileがアンマネージコードを仲介してるためです。
アンマネージコードのところで変数のリンクが切れて、ガベコレ発動してるんだと思います。
DirectXのサンプルが落ちないのはテクスチャがグローバル領域にキャッシュされているためでした。
そこで階層読み込みが全て終了するまで
勝手にDisposeされないようにキャッシュに突っ込めば上手くロードできるようでした。
というわけで、お騒がせしました。
237 :
デフォルトの名無しさん:2005/12/15(木) 09:58:02
質問です。
ゲームとかで使われる視覚効果・エフェクトをまとめたサイトや本などありますでしょうか?
海や滝、炎の表現、ポイントスプライトとか、その辺なんですが、よろしくお願いします。
>>237 DirectXゲームグラフィックスプログラミング Ver. 2.0
>>237 あるけど、思ってるより超簡単なので、とりあえず作ってみたほうが感動を味わえる。
gemsでいいんじゃね
GPU Gems
Game Programming Gems
DirectX シェーダプログラミング
などなど
とりあえずt-potでググれ
>>232 だから超手抜きと言ったのに。
区間をクロスフェードしたら?
どんな音になるのかわからんけど、少なくともブチブチはしないと思う。
243 :
デフォルトの名無しさん:2005/12/15(木) 18:03:58
Unix/Linuxを10年ほど使っており、C/C++はほぼ理解していて、
OpenGLで3Dゲームなどを作ったこともあるのですが、
Windowsについては全く分からず、VisualStudioも先日初めて触りました。
「リソースって何?」とか「新規プロジェクトを作るだけでなぜ勝手にソースが書かれるの?」とか
「main()がない!」とか、それくらいチンプンカンプンなのですが、
DirectXでのプログラミングをゼロから勉強するための、良い本やサイトを教えていただけないでしょうか?
・まったくゼロの状態から(main.cppを自分で書くくらいのところから)説明してくれる
・Windowsの関数をあまり使わず、なるべくピュアなC++で説明してある
・自前のライブラリなどを使っていない
というのが希望なのですが…。
漠然とした質問で申し訳ないんですが、アドバイスをよろしくお願いします。
その知識があるならPetzoldのプログラミングWindowsかなあ。
猫
Windowsの関数をあまり使わずにDirectXとはこれいかに
てか、その質問がDirectXと関係が有るように見えない。
>>243 は自分が知識があると勘違いしていただけだろ
>>243 とりあえずWindows上でVisual Studioを使ってもOpenGLは使おうと思えば使えるよ。
まあDirectXスレでこんなこと言うのもどうかとは思うけど。
250 :
220:2005/12/15(木) 23:16:11
>>242 やはり、手抜きは手抜きなりの結果でした。。。とほほ。
いろいろありがとうございます。
明日、「クロスフェードとは?」辺りから調べます。
こうして
>>220は深みにハマりながら理系大学にいっちゃうんだろうか
でも興味を持って勉強すると上達も早いよね
半透明での質問です。
DrawPrimitiveでのcolorのA(ARGBのA)の値での全体の半透明はわかったのですが、
テクスチャー(32bit)のAの値での半透明は、どういう風にすればいいのでしょうか?
Aの値が0だと、カラーキーみたいに非表示
128だと、半透明表示
255だと、通常表示みたいにしたいのです。
テクスチャ生成は、D3DXCreateTextureFromFileInMemoryです。
Aの値も0〜FFということも確認しました。
>>252 SetTextureStageStateを参照されたし
>>253 SetTextureStageState
いろいろ試したんですけど
表示/非表示しかできず中間の半透明ができないのです
D3DTOP_MODULATE
D3DTOP_MODULATE2X
D3DTOP_MODULATE4X
で表示/非表示範囲が変わったりしてるところ、
Aの値はばらついて設定してあるのは確かなんですけど。
>>254 D3DTSS_ALPHAOP、D3DTSS_ALPHAARG1、D3DTSS_ALPHAARG2
D3DRS_ALPHABLENDENABLE、D3DRS_SRCBLEND、D3DRS_DESTBLEND
これ全部設定してる?1つでも抜けてたら駄目。
っていうか、間違ってD3DRS_ALPHATESTENABLEを設定してないか?
いまさらこんなこと聞くのも恥ずかしいんだけど
ID3DSprite::Begin()とID3DSprite::Draw()の仕様って
HRESULT Begin(DWORD)
HRESULT Draw(LPテクスチャ, RECT, VERTEX3, VERTEX3, COLOR)
にだいぶ前に変わったみたいなんだけど、コレでスプライトの拡大縮小回転をするにはどうすりゃいいんでしょう・・・
何処の説明サイトみても昔の2次元ベクトル3個と回転角指定ができるDrawの説明しかない・・・
ぶっちゃけ、BitBltみたいにキャラクターを5人ほど画面に出しただけでちらつくなんてことがなくて、
拡大縮小回転透過処理が簡単にできるなら何でもいい。助けてくれ。俺にはDXなんて早すぎる・・・
>>256 スプライト程度なら自力でスプライトクラスを作ったら?
数時間もあれば同程度の機能を持つクラスなんて作れると思うんだけれど
毎度仕様の変わるID3DXSpriteはウザイのでさっさと自分専用の奴でも作っとけw
おっぱいを手に入れた
まずはチュートリアルを順番にとばさずに行う。
きちんと自分でコードを入力してきちんと動作確認までする。
するとあら不思議、ID3DXSpriteなど使わなくてもプログラムが書けるようになっている。
ID3DXSpriteとかで引っかかっているのは、手抜きをして途中をすっ飛ばすから。
>>256 ダブルバッファにすればBitBltでもちらつかないよ。
>>257 絶対無理、10年早い
>>259 チュートリアルなんてこれっぽっちもやってなかったよ、試してみるわ
>>260 いやダブルバッファにしたんだけど、60FPSで更新したらもうね・・・
それとも俺の設計がダメなだけなんだろうか
いまは、自分で試さずに質問するのが流行です。
>>261 >絶対無理、10年早い
おまえみたいなやつはプログラムすんな。
一生ツクールやってろ。
自分に10年早いとか評価する奴初めて見たw
10年後にDirectXプログラムやればいいんじゃね?
266 :
216:2005/12/17(土) 12:33:42
以前から3Dオブジェクトが環境によって表示されない
部分があるというバグに悩んでおります。
いろいろ調べた結果、
D3DFVFCAPS_DONOTSTRIPELEMENTS
の能力が関係しているのではないかと思いました。
D3DFVFCAPS_DONOTSTRIPELEMENTSの能力が無い場合は
ポリゴンの一部がかけるようです。
(2つの環境でしか試していないですが...)
Xファイル中には複数のオブジェクトが存在します。
そのオブジェクト同士が干渉している部分にちらつきが
発生いたします。
ポリゴンは
CDXUTMeshのCreateによってXファイルをロードします。
次にSetFVFで m_pD3DMesh->m_pMesh->GetFVF() | D3DFVF_NORMAL
を設定して法線ベクトルを再計算しております。
D3DFVFCAPS_DONOTSTRIPELEMENTSの能力が無い場合の
ポリゴンの扱い方はどうすればよいのでしょうか?
よろしくお願い致します。
環境:DirectX 9.0 SDK (October 2005)
開発:VisualStudio.net 2003
OS:WindowsXp SP2
オブジェクト作成:Shade7
その二つの環境が何か、なぜ書けない
ゴリポン
269 :
216:2005/12/17(土) 23:50:15
すいません。
環境を書くのを忘れました。
そしてD3DFVFCAPS_DONOTSTRIPELEMENTSの能力のせいではないかもしれません。
1つ目。
Intel(R) 82852/82855 GM/GME Graphics Controller
32Bit色(HAL Adapter Formats D3DFMT_X8R8G8B8 (Fullscreen))の場合は正常
16Bit色(HAL Adapter Formats D3DFMT_R5G6B5 (Fullscreen))の場合は失敗
2つ目は
SiS 300/305
32Bit色(HAL Adapter Formats D3DFMT_X8R8G8B8 (Fullscreen))の場合は失敗
16Bit色(HAL Adapter Formats D3DFMT_R5G6B5 (Fullscreen))の場合は失敗
です。
よろしくお願い致します。
市販ならともかく、個人使用でオンボードレベルまで対応してる人ってどれくらいいるのかな・・・。
やたらできる事が制限されそうだけど・・・・。
2Dシューくらいならオンボードで十分なんじゃないの
>>271 2Dでもよく考えて作らんとおかしくなったりする・・・
ハードウェアカーソルって、どうやって使うんでしょうか。
ぐぐっても、ビデオカードがハードウェアカーソルに対応してる情報ばかりで、
DirectXで使う情報が全然出てきません。
DirectXよくわかんねーや
用語から覚えていこうかな
>>270 速度はともかく表示はできますよ、程度には対応
世代的にはDirectX6対応チップまで考慮してる(オンボードとしてはわりと新しいけどな)
解放忘れがあると古い機種はすぐにOS巻き添えで暴走するから気をつけてる
あとは16bitで256x256dotのテクスチャにするよう気をつけてるけど
ほかに何か気をつけることあったっけ?
とりあえず実機用意してそれで動けばOKっていう感じでやってる
>>271 透過で問題でやすいから2Dは鬼門
透過で問題ってどんなの?
>>273 ・データの読み込みで10秒間システムが止まるとして、
その間にマウスカーソルだけでも動かせられる方が、ユーザーはよりストレスなく遊べる。
・FPSが大きく変動してもマウスカーソルが滑らかに動くと・・・以下同じ
278 :
デフォルトの名無しさん:2005/12/19(月) 09:20:04
LunaでFepのサンプルやるとエラーなんでやー
D:\c\lib\LunaDx9_SDK_32.10\Sample\Source\Fep_00\Fep_00.cpp:
エラー E2451 D:\c\lib\LunaDx9_SDK_32.10\Sample\Source\Fep_00\Fep_00.cpp 227: 未定義のシンボル strcpy_instead_use_StringCbCopyA_or_StringCchCopyA(関数 Luna::Main(long,char * *) )
*** 1 errors in Compile ***
そこのホームページ行ったほうがいいんちゃう?
280 :
216:2005/12/19(月) 11:01:34
>>275 >速度はともかく表示はできますよ、程度には対応
その程度には対応したいと思っております。
ポリゴンの一部が表示できないのは出来たら解消したいと思います。
281 :
デフォルトの名無しさん:2005/12/19(月) 12:21:30
フォグについての質問です。
D3DFOG_EXPに対応して、D3DFOG_LINEARに対応していない環境はありますか?
Radeon9600だとD3DFOG_LINEARだと画面が真っ黒になって、D3DFOG_EXPだと
正常に表示されます。
一方VIAのオンボードだとどちらでも正常に表示されます。
DeviceCapsに出てなかったっけ?
フォグは使ったこと無いから適当に言うが
パラメータ次第でLINEARのほうがEXPよりも早く暗くなるかもしらん
>>216 Zバッファの精度の問題。これはFAQクラスのよくある問題だよ。
とりあえず回避策としてはnear/far値を狭める。0.1/10000.0とか
してたら、10.0/1000.0にするとか。
>>284 必要以上に「車輪の最発明するな」って言ってるからじゃね?
教科書に載っている練習問題をすっとばし、いきなり応用問題を解こうとして、
当然分からないから答えだけ聞こうとし、練習問題からやり直せと言われると、
それは車輪の再発明だと言うのが今のトレンド。
ああ、そんな感じ
ハロー(注意報)。
えー、モデルの表示サイズを変えようと思って、ワールドトランスフォームにスケーリング行列をかけると
ライトの当たり方が明るくなったり暗くなったりします。
ディレクショナルライト1つしか使ってないし、ポリゴンの法線なんかも変わってないので
照明に影響する理由がないと思ったんですが、何か勘違いしてるんでしょーか。
なんか相当アホなことではという予感がひしひしとするんですが、ご教示くださいませ。
>>288 FAQだわ、これで直るわ。
SetRenderState( D3DRS_NORMALIZENORMALS, TRUE );
最近ダジャレ抜きで寒いわね。
何十年ぶりって感じらしいからのう。
>>288 法線変換するときにスケーリング行列の場合は法線の長さが変わってしまうから
正規化してやらないと駄目なんだよ。
回転行列とかの時は直行行列だから問題ないんだけどね。
291 :
288:2005/12/19(月) 17:04:41
あー、なるほど〜
教えてもらわなかったら原因も解決法もしばらく分からなかったかも。
てかぐぐり方甘かったですわ。ありがとうです。
GeForce 系のドライバって DrawIndexedPrimitive 系関数の MinVertexIndex とかのパラメータ
まともに処理してなくない?
きちんとした値渡すとラデだと高速化できるから使いたいんだけどな・・・
293 :
デフォルトの名無しさん:2005/12/20(火) 02:27:35
あるデバイスから、メモリ上にもらってきた画像(8bit256階調データ)を、
極力早いレートで画面に表示したいのですが、
D3DXLoadSurfaceFromFileInMemory()より早く転送する方法
ないでしょうか?
1枚16.5msecで入ってくるんですが・・・。
>>293 普通にGDIのが速そうだね。
最終的にSurfaceにしたいなら、SurfaceをLockRectしてMMXなりSSEで転送するコードを書く。
>>293 そんな関数使わないで普通にバックバッファをLockして転送すればいい。
表示したい解像度が書いてないからどのくらいかかるかは具体的には言えない。
ちなみにMAME等のエミュは毎画面16.5msでLockして転送してて余裕。
マッピー(224*288)がフレームスキップ無しで700%の速度で動くから
どんな解像度でも問題ないかと。
フルスクリーンモード時のリフレッシュレートを可変にでき、
ディスプレイアダプタの使用できるリフレッシュルートを
EnumAdapterModes() で取得できるところまではわかったのですが、
『ディスプレイそのもの』がどのリフレッシュレートに対応しているのかを
取得するにはどのような方法がありますでしょうか?
>>296 Win32APIのEnumDisplaySettingsかな。SDKサンプルでは。
298 :
296:2005/12/20(火) 21:09:06
ごめんなさい。
普通にEnumAdapterModes() でディスプレイで対応してないモードは
はじかれてるみたいです。
早とちりして申し訳ないです。
>>297 ありがとうございます。
そっちも調べてみます。
299 :
216:2005/12/23(金) 11:24:24
>>283 ありがとうございました。
おっしゃられた方法で解決いたしました。
助かりました。
まことにありがとうございました。m(_ _)m
Xファイルから読み込んだデータを表示するときにマテリアルの環境色が反映されず、
白色に表示されてしまいます。(同時に表示している自分が作成したポリゴンの方は
頂点色が反映されて表示されています)
D3DTSS_COLOROPはD3DTOP_MODULATEと設定しています。
誰か原因をお知りの方ご教示お願いできないでしょうか?
>>300 このへんはどうかな?
D3DTSS_COLORARG1
D3DTSS_COLORARG2
D3DRS_DIFFUSEMATERIALSOURCE
D3DRS_AMBIENTMATERIALSOURCE
その他スペキュラ関係の見直し。
302 :
300:2005/12/23(金) 18:36:43
>>301 ライトの設定が悪かったみたいでした。
もうひとつ質問なのですが、ライトを使わずに
マテリアルのdiffuse色を直接表示させる方法を
お教え願えないでしょうか?
304 :
300:2005/12/23(金) 18:56:26
>>303 Emissiveにdiffuseを代入したのですが、D3DRS_LIGHTINGをTRUEにしないと
表示されないようです。
自己発光するらしぃのに....
CreateOffscreenPlainSurface( w, h, D3DFMT_X8R8G8B8, D3DPOOL_DEFAULT, &pSurface, NULL );
で作ったサーフェイスからGetDCしてGDIで描画しているのですが!
予めCreateFontで作っておいたHFONTを使ってSelectObjectし、
TextOut,DrawTextで描画すると、メモリがどんどん消費されて行きます…
DirectXを使わない、文字を描画しない、
GetDCの後で毎回CreateFont、DeleteObjectする場合は何も問題ないのですが…
毎回CreateFontするのが普通なのでしょうか。
>>305 GetDCに対してReleaseDCはセットじゃなかったか
>>304 マテリアルじゃなくて頂点にカラー属性仕込んだら?
>>306 もちろんしてますよ
ReleaseDCする前に、
SelectObject(hdc, hFont);の戻り値もSelectObjectしてます
スマン、名前忘れた…
>>300 (*'-')っSetRenderState(D3DRS_EMISSIVEMATERIALSOURCE, D3DMCS_MATERIAL);
311 :
300:2005/12/24(土) 06:16:44
>> 301 303 307 310
アドバイスありがとうございました。
もう少し基本から勉強しなおしてきます。
312 :
デフォルトの名無しさん:2005/12/26(月) 00:55:57
Microsoft DirectX 9.0 SDK (October 2005)のDXUT(サンプルフレームワーク?)の
GUI機能で、ダイアログのキャプションの部分が表示されない(ダイアログの背景と同じになる)
のですが、何か設定があるんでしょうか?
EnableCaption(true)はやっているのですが・・・。
SDKの(December 2004)のDXUTでは出てたようですが。
ソースが有るんだから読めば良いのでは?
314 :
デフォルトの名無しさん:2005/12/26(月) 07:46:10
そうっすね。
USBカメラの映像使おうと思ってDirectShow使おうとしたんだけど
最新のDirectX SDKにヘッダーとライブラリが入ってなくて、仕方なく別の所で用意したけど
MSはDirectShowを消滅させる予定なの?
>>315 BaseClassesも含めてPlatform SDKへ。
>>316 一つ前のバージョンのPlatformSDKで拾ったんだけど
最新の奴には入ってないみたい。どうなってんだろ
>>317 Server 2003 SP1には入ってるはずだけど。
もういっぺんCDイメージあたりでインストしてみたら?
319 :
デフォルトの名無しさん:2005/12/26(月) 17:57:36
DirectSoundでWAVファイルを読み込んで波形データを表示しようとしてるんだけど、どうやって取得していいのかわかりません。
Volumeは再生の音量だし・・・。なにかヒントをください。
DirectSound関係無いやん・・・
321 :
デフォルトの名無しさん:2005/12/26(月) 19:08:43
DirectSoundで取得できませんでしたっけ?
WAVファイルを読み込んだ時点で、そのデータ自体が波形データ。
あとは好きなように表示すればいいだけ。
DirectSoundも大変だな・・・。
VC++6.0SP5とWindows2000の環境で、やっとDirectXを勉強しようと思っていましたが
調べてみると現在のDirectXは2000もVC6も切り捨てたと言う酷い話。
ですがDirectX9.0 SDK Update 2003 SummerまではVC6がサポートされていると言う事で
どなたか当該のファイルとヘルプのダウンロードできる場所をご存知の方いませんでしょうか?
よろしくお願いします。
最新のSDKでも*.hだけ取り出して、あとはdllを動的に呼び出せば、
Windows2000やVC6であろうと問題なく開発できる。
わざわざ古いSDKを利用する必要性は微塵もない。
#defineでバージョン定義するだけでできなかったけ?
328 :
327:2005/12/28(水) 05:35:18
>>325 > VC++6.0SP5とWindows2000の環境
捨てろ、そんな環境は。
俺に言わせれば鉄壁だけどな
脊髄叩きする奴も多いが
何がどう鉄壁なんだ。
>>325の状態になるのが鉄壁なのか。
最新環境もそれはそれでトラブルあるが
>>327 そうらしいんだけど何故かうちの環境では上手くいかなかった
コンパイルエラーが大量に出て
そのときやろうとしたのはX8のSDKでX7のソースをコンパイルしようとした
コードが用意されていません。確認コードを取得することができませんでした。
この問題は問題にある可能性があります。と表示されて、コードが取れません。
使っているブラウザはオペラとファイヤーフォックスです。この解決方法はないんでしょうか。
E S P 発 動
↓
【質問】
DirectX SDKをダウンロードしたいです。しかし、オペラやファイヤーフォックスでは
認証をパスできないのです。なにか回避策はないでしょうか?
【回答】
IEを使ってください。
すげぇ、全く翻訳できなかったよ。
>>336 あるねー。
俺もそれでオペラ使うの止めちゃったw
すげぇ超能力だ
ワロタ
344 :
343:2006/01/03(火) 03:15:00
>>343 c_dfDIMouse2をヘッダで定義しているからリンかでWarningになっている。
グローバル変数の定義はヘッダーでするものではない。ヘッダーで行うのは宣言だけ。
346 :
デフォルトの名無しさん:2006/01/04(水) 19:19:30
DXSDKVersion: DirectX 9.0 Update 2005 Oct
OS: WindowsXP SP2
で開発をしています。
DirectGraphicsで2Dの描画を行いたいのですが、
α付の画像を表示すると描画したテクスチャ周りに約1ドットの黒い縁のようなものが現れてしまいます。
ttp://kjm.kir.jp/pc/?p=11645.jpg これを無くすにはどのような設定をすればよろしいでしょうか?
347 :
デフォルトの名無しさん:2006/01/04(水) 22:15:07
テクスチャーなどはプログラム終了時に必ず解放しないといけないんですか?
プログラムが終了すれば勝手に使用していたメモリは解放されないのですか?
348 :
デフォルトの名無しさん:2006/01/04(水) 22:22:43
>>347 解放しなくても良い、と明示されているのでなければ
たとえ解放されるとしても、きちんと処理しましょう。
(プログラム終了時に自動で解放されるから)解放しなくてもよい、
とどこかに明示されているかどうかを質問しているんじゃないの?
プログラム終了時だったら、普通は自動で解放されるんじゃないの。
たまに自動で解放させていたら、メモリリークだと言う奴もいるらしいけど。
自動的に開放されるのは明示されていない。
おそらく開放されるのだろうが、プログラムを組むなら自分で開放する処理は書くべき。
そういうくだらないところで手を抜く癖を付けると、プログラムの規模が大きくなったときに土壺にはまる。
C#でDirectXを使おうと思うのですが、
ManagedDirectXを使用するのが基本なのでしょうか。
それとも、unsafeながらManagedでないDirectXを使用できるのでしょうか(するべきなのでしょうか)
もう一つあるのですが、DirectXを使用した開発というか勉強にあたり、
手持ちのC#2003 Standardと、フリーDLできるC#2005 Expressではどちらを使用すべきでしょうか?
>>352 是非ともMDXを使え。
下手なUnmanaged DirectXのライブラリなんかより優れてるぞw
開発環境とかの違いは知らないけれど
2005はC#の言語仕様自体が向上してるんだっけ?
まあ別にどっちでもいいんじゃ。
個人的にはVisualStudioのエディタさえあればという感じ。
秀丸メインだったけどC#使い始めてから乗り換えそう…
2005だと、MDXがまだβやね。
しばらくは2003で開発を進めて、βが取れた頃に2005へ
乗り換えるのがお勧め。
※APIが少々変わっても泣かないことが条件
355 :
352:2006/01/05(木) 22:32:13
MDXのがいいですか。
多少のスピード差よりも使いやすい方がいいので、
そうしてみます。
とりあえずは2003で。
2005のProでも出たら乗り換えようかな・・・。
質問失礼します。
class MY_HIERARCHY: public ID3DXAllocateHierarchy
{
public:
STDMETHOD(CreateFrame)(THIS_ LPCSTR, LPD3DXFRAME*);
}
HRESULT MY_HIERARCHY::CreateFrame(LPCSTR Name,LPD3DXFRAME *ppNewFrame)
{
処理実行
}
DirectXでD3DXLoadMeshHierarchyFromX実装のために
ID3DXAllocateHierarchyの派生クラス「MY_HIERARCHY」を作成しているのですが
上記の内容でコンパイラを通すと
エラー E2356 __stdcall MY_HIERARCHY::CreateFrame(const char *,_D3DXFRAME *)' の再宣言で型が一致していない
といったエラーが出てしまいます。いろいろ調べてみたのですがどうしても問題が解決しないので、
エラーの改善方法が分かる方がいたら教えていただけないでしょうか?
ちなみにコンパイラはBorland - Borland C++ Compiler 5.5、TOOLはBCC Developerを使っております。
どうかよろしくお願いします。
>>356 文字通りのエラーだろ。その奇天烈なマクロによる宣言と実体定義で型が合わないと言う。
実体定義の方でも__stdcallつけたら通るんでね?
#以下、掘り下げるならスレ違いに付きbccスレにでも。
>>356 もし俺がコンパイラだったとしても、同じエラー出すよ?
357さん 358さん
回答有難うございます。
明らかに違っている部分があるようですので勉強し直してきます。
>>356 STDMETHODで宣言した関数の定義のためにSTDMETHODIMPマクロがある。
361 :
デフォルトの名無しさん:2006/01/08(日) 16:57:34
DirectX9 SDKにはDirectX9以前のDirectXが全部入ってると思ってたんですけど、
これは間違いですか?
なんか #include d3dx8.h がいきなりエラーなんですけど。
ちなみに #include d3dx9.h は通るみたい・・
↑のは <> ←入れたら出ないみたいなので省略してます。
362 :
361:2006/01/08(日) 17:11:42
あれ?なんかコンパイル通りました。
#include <d3dx8.h> を #include <d3dx9.h> にしたら通りました。
謎だ。こういうものなのか。。
>>361 「バージョン定数」でヘルプを調べてみろ。
ヘルプが英語ばっかのやつだったのでよくわかりませんが、
ググってみると↓のに当たりました。
#ifndef DIRECT3D_VERSION
#define DIRECT3D_VERSION 0x0800
#endif
DirectX8の機能を使いたいときは、#includeの前に
これ書いとけばいいんでしょか。
更新速度を要するゲームで文章を表示させたいのですが、
DrawTextは処理が重くあまり使用したくありません。
かといって画像として用意しておくには膨大な量になるため不可能に近いです。
画像を用意できないのであればDrawTextで妥協するしかないのでしょうか。
>>365 そのシーンで使うときに画像として用意して使えばいいじゃん。
1文字1文字の画像を作ってそれを表示すれば良い
だから、あれな。
なうろーでぃんぐやってるときにフォントからテクスチャ作ってもいいし、
テキスト表示する直前にフォントからテクスチャ作ってもいいし。
そういうことよ。
で、使い終わったら削除と。
レスありがとうございます。
>>366-367 だから画像だと膨大な量に(´・ω・`)
FPSっぽいアクションゲームを作っているのですが、
仲間(NPC)からの指示や会話などBFみたいに表示させたいのです。
>>368の後者のやり方で毎フレームDrawTextをしなくてもいいですがやはりその「1回」が重く、
会話自体も頻繁に行われるため効果があまり出ません。
前者は試していませんので後でやってみようと思います。
ネット接続はしないので自分の会話がない分準備できそうですね。
60fpsを維持しようとしていますがハイスペックじゃなければ30fpsに下げるべきか・・
>>370 あのさ、全体の描画が60FPSで、
何故発想が同じ60回テクスチャを作り直そうという
馬鹿な考え方しかできないんだ?
どんなに会話が頻繁に行われても、
人間が60FPSで切り替わる文字を認識できるわけがないだろう?
テキストの内容が変化したときだけテクスチャを更新すればいいだけ。
落とすのは全体のFPSではなく、テクスチャの更新頻度。
あらゆる作業をFPS主体で考えるな。
>>370 フォントを画像で持ったとしても2ビットや4ビットのBMPなら圧縮せずとも1〜2MBじゃないかね。
それほど膨大かな。
>>370 フォントってそういうもんだ。
君がやってるのは最適化だからね。
色んな場合で最適な方法をとらなきゃいけない。
そもそも膨大な量って何を表示したらそうなるの?
ナウローディングでフォントからテクスチャを作成しておいて、
テクスチャ画像は圧縮しておいて、表示するときに解凍するって手もあるよ。
画面に表示するフォントのサイズが固定であればよく使う文字、
例えばひらがなとアルファベットはあらかじめ作っておいてもたいした量じゃないよね?
文章を表示するにしても一度に表示する予定の文字を変換するんじゃなくて
表示順になぞって1フレにつき一文字ずつフォントからテクスチャを作成していってもいいわけだよね。
はなっから画像に直す方法を駄目だって決め付けてるみたいだけど
君の文章からは考えうるだけやった跡がみられないし、
君の作ってるゲームがどういう状況にあるのかわからないからこれ以上アドバイスすることはできないな。
せめて一度に画面にでる文字の数とそのサイズと用途だけでも教えてもらえば
いいアドバイスができるかもしれない。
再びレスありがとうございます。
画像が膨大な量ってテクスチャとして用意すれば少ないですが、
単純に(ペイントなどで)用意すればかなり多いです。
被弾したときの「おい、大丈夫か!?」みたいなステージを問わない文章は問題ないですが、
「北東の民家の中で待機してろ。」などステージ毎オリジナルのものが1ステージ100〜150あります。
1文削除したいときは画像全体を修正するだけでなくプログラム自体も変えないといけません。
この方法では文章1行をw:256 h:20で、テクスチャのサイズ512x512で作ってましたが、
1つ目の画像を書き終わったときに修正しようと手を加えている途中に挫折しました。
実際は30強のステージ分(マップは5種類)作らないといけないので1日中やっても半年近くかかります。
テクスチャとして描画(1フレームで)するのは先ほども書いた通り処理落ちします。
5秒に1行ペースで文章が長ければ2〜3行になることがあります。
このペースで処理落ちすると操作しにくいというよりもストレスが溜まります。
FPSでは致命的な状態になっています。。
まず
>>368,373の事前準備に仕様を変えてみます。
完全に思考が停止してるな。
こういう人には最適化なんて物は不可能だとおもふ。
あきらめれ。
事前に画像化しないのならば、
GetGlyphOutline等で取得したフォントを1文字単位でシステムメモリ上のキャッシュに持つのは?
ラノベのセリフのような日本語なら、バッファは256個もあれば十分に効率良いと思うけど。
初歩的な質問で恐縮なのですが
DirectXの頂点のレンダリングのチュートリアルの部分で
VOID* pVertices;
if( FAILED( g_pVB->Lock( 0, sizeof(vertices), (void**)&pVertices, 0 ) ) )
return E_FAIL;
このLock関数によってpVerticesは頂点バッファ内のアドレスを指すようになるという
考えでいいんでしょうか?
380 :
377:2006/01/08(日) 20:30:12
>>379 ポインタのアドレスを渡す関数って要は
ポインタ = new オブジェクト(色んな設定)をややこしくしたものって感じなんですね
ありがとうございました
381 :
デフォルトの名無しさん:2006/01/09(月) 01:27:46
D3DXSPRITEを使用してスプライトの上下反転を行いたいのですが、どうにも方法が見つかりません。
拡縮、回転はD3DXMatrixTransformation2Dによって実現できているのですが、、、
テクスチャーのUVを単純に反転(rect.topとrect.bottomを入れ替える)させるだけではダメでした。
何かアドバイスをお願いします。
VC++.netとDirectX9(summer,2004)の環境です。
>拡縮、回転はD3DXMatrixTransformation2Dによって実現できているのですが、、、
拡大縮小が出来て、何故上下反転が出来ないことになるのか、さっぱり理解できない。
>>382 すみません。実現できているのは回転のみでした。いまのところ拡大縮小の必要性がなかったので、
それは試していません。
こんな感じです。
D3DXMatrixTransformation2D(&matWorld, NULL, 0.0f, NULL, &cVector, D3DXToRadian(rot), NULL);
まだ初心者でよく理解できずに試行錯誤中です。反転と拡大縮小に関連があるのでしょうか。
試行錯誤で何とかなるもんじゃない。
基本を学べ。、
>反転と拡大縮小に関連があるのでしょうか。
関連というか拡大縮小そのものずばり反転。
DirectXの列挙型には必ず最後に
〜_FORCE_DWORDっていうのがありますけど、
これって何の意味があるんですか?
>>387 主な理由はCとC++の仕様の違いかな。
Cでは列挙型はintと同サイズと決まっているが、
C++では一番大きい値を表現できる整数型となっている。
ようするに、8bitで表現できる範囲しか使ってなければ、
sizeof(列挙型)==1になってしまう。(Cでは4)
DirectPlayでピアtoピア接続に挑戦中なんですが
ホスト側でセッションを作ったときのホスト情報やアドレス情報から
ホストマシンのIPアドレス(192.168.x.x)を取得することはできますか?
DirectPlayは脆弱性により過去の遺物になった
393 :
391:2006/01/10(火) 23:50:36
どういうことですか?
>>391 脆弱性を使ってなんかチートできるとか若しくはスーパーハカーが(ry
詳しくは知らないけど要はセキュリティホールみたいなもんかと
DirectPlayは今後のバージョンで無くなるらしいよ。
自力でP2Pネットワークのライブラリを作るしかないと思う。
でもDirectPlayクラスのものを構築するとなると相当大変だと思うんだが…
WinSockくらい自分で触れた方が何かと糧になるよ
391は上手いことはぐらかされてることに気付こう...
んーたぶんこの辺かな?
IDirectPlay8Peer::GetPeerAddressでIDirectPlay8Addressを取得して
IDirectPlay8Address::GetComponentByIndexでIPアドレス取得かな。
まあ後は適当に調べてみてー
SDKのヘルプに詳しい説明は入ってるよ。
>>395 WinSockを使うこと自体は簡単だと思うんだけどねぇ…
通信量制御とかUDPで通信保障とか色々やり始めると結構めんどくさくない?
そういうのは一筋縄には行かないと思うんだけどな
WinSockを使った通信ゲームの作成で、お勧めの書籍とか無い?
チョン ウンチョル (著)
チャッチュッ(著)
チャットウインドウのような感じで文字入力をしたいのですが、
どうやるのが良いでしょうか。できれば日本語も入力できればいいのですが。
>>402 DXに色々なUIのサンプルが有るから、それをパクるか参考にすれば?
404 :
391:2006/01/11(水) 13:19:29
>>397 すいません、ヘルプは読みましたがあまり良くわかってません
GetComponentByIndexで取れるのは
providerなる文字列と十数バイトからなるGUIDだけでした
GetComponentByName(L"hostname", wstr, ...
こんな感じでホスト名を取得するサンプルソースを見かけた
のですがエラーになってしまいます
いまはWinsockのgethostbynameでIPアドレスを取っています
405 :
デフォルトの名無しさん:2006/01/12(木) 20:51:17
マウスでウインドウのクライアント領域をドラッグしたとき
モデルが回転や移動するようにさせたいのですが、そのときの画面の更新方法に悩んでます。
まずやってみたのがWM_MOUSEMOVEを拾ったときにWM_PAINTをPostMessageして
そこでレンダリングと言う方法だったのですが、そうするとマウスポインタの動きがガタガタになってしまいました。
そこでまず起動時に別スレッドをたてて、WM_PAINTを拾ったときに描画フラグを立てると言った方法と試したのですが、
これもマウスポインタの動きがガタガタになってしました。
さらにアイドル時にレンダリングと言う方法に変えてみたのですが、さらに酷い事になってしまいました。
常にマウスポインタが滑らかに動くようにしたいのですが、何か良い方法は無いのでしょうか?
よろしくお願いします。
>>405 DXのサンプルの描画方法や入力をパクるか参考にすれば?
君みたいな方法は使ってない。
>>405 WM_PAINTはPostするものではないぞ。
>>405 InvalidateRectしろ馬鹿モン
そもそも描画のトリガにメッセージを利用する必要性がない。
ツール系でブンブンまわされるのもヤダ
411 :
405:2006/01/12(木) 23:57:39
>>405 レスありがとうございます
SDKのサンプルのソースを読んでみたところ、
アイドル時とWM_PAINTを受け取った時ににレンダリングしているような気がするのですが…。
>>407-408 そうだったんですか。
これからはInvalidateRectでいきます。
どうもです。
>>409 ゲームならばアイドル時とかにガガガーっとレンダリングさせればいいと思いますが、
今自分が作っているのはゲーム製作用のツールなんで、
必要な時にだけ再描画させたいのです。
自演乙
413 :
411:2006/01/13(金) 00:25:56
DirectX対応のゲームを自動でコントロールするソフトを
作っているのですがうまくいきません
SendMessageでWM_CHARやWM_KEYDOWN WM_KEYUPなどを送ってみても
まるっきり反応しません。なぜかそのゲームのテキストボックス部分には
遅れるのですが、もしかしてDirectX対応のゲームでは
それ以外の方法でキー入力を認識しているのでしょうか?
mouse_eventとかkeybd_eventを使うと幸せになれるかも
DirectInput
つ DirectInput
ゲームの制御をウインドウメッセージではやらんね、ほとんど。
419 :
デフォルトの名無しさん:2006/01/13(金) 11:09:25
>>414 どうみても釣りゲームです。
ありがとうごぜいますた
DirectInputはジョイスティック系の入力かと勘違いしておりました
DirectInput経由でキー入力を取得してるアプリに
擬似的にキー入力を送り込むにはどのような方法がありますでしょうか?
メッセージ処理ではないですよね?
LunaというDXライブラリを使っているのだが
自分ですべて書くより速度って遅くなる?
あと、DX9ではHLSLの設定は必須?
422 :
405:2006/01/13(金) 18:47:35
色々やってみたのですがどうしても上手くいかなくて
まさかと思ってカーソルを標準にしてみたら、ガタつきは無くなりました。
コレで解決しました…と言う事になるのかな…?
でも他のソフト(例えばモデリングソフトのメタセコイアとか)はカーソルが標準じゃなくてもガタつかないし…。
あ”〜
HLSLなんて随分難しい言葉知ってるんですね。
その割にはDXライブラリ・・・ う〜〜ん・・・
2005DEC
DirectShowは何処に行ったの?
>>418 意外と市販ゲームでメッセージ使ってるの多いよ。
オンラインゲームはチャット機能でIME使うから、
DirectInputは使いにくいのかも。
>>424 今頃になって何を言ってる。
なぜかノートPCで全画面モードにした時だけ、マウスカーソルが激しくちらつく。
デスクトップの場合はそんなことない。
誰かわかるひと教えて!
ノートPCがポコいんじゃないの?
マウスカーソールが専用のレイヤで出力されていないから。
ビデオカードによって能力の有無やサイズの上限などが決まっていて、
カーソル用のレイヤが利用できない場合は、通常の出力と混ざる。
ウインドウモードの場合はクリッパーが使用されている限り、
出力が混ざっていてもちらつかないように自動的に処理される。
訳あってDirectX 8.1の開発環境を作る必要があるのですが、
マイクロソフトのダウンロードページからはDirectX 9.0 SDKしか見つかりません。
DirectX 8.1 SDKを入手する方法はありますでしょうか?
>>428-429 ありがとう!
ということは、俺のプログラミングの腕が悪いんじゃなくて、
ノートが悪いって事なんだよね!
サンキュー!
433 :
デフォルトの名無しさん:2006/01/13(金) 22:17:53
>>430 9.0SDKでも8.1のプログラムはできる。
>>430 ダウンロードページで検索すれば古いSDKも出てこない?
435 :
387:2006/01/14(土) 12:09:24
>>388 そのような仕様の違いがあったとは知りませんでした。
ありがとうございました。
まあ389が突っ込んでるように間違いがあるんだけどな。
>437
違うけどな。
×sizeof(列挙型)==1になってしまう。
○sizeof(列挙型)==1としてコンパイルされても構わない。(処理系依存)
ついでに言えば、Cのint型が4byteだと固定されてもいない。
439 :
430:2006/01/15(日) 00:25:35
>>432 調べてみました。高そうですがGame Programming Gems2 あたりでしょうか?
>>433 多分その通りだと思うのですが、
DirectX 9 SDKでも良いのか発注元に聞いてみます。
>>434 DirectX 8.1のランタイムは見つかるのですが、SDKは9しか見当たらないです。
441 :
430:2006/01/15(日) 00:33:47
質問です。サイズ256X256のbitmapを表示させようと思い、
以下のようなコードを書いたのですが、どうも上手く表示されません。
どのようにすればちゃんと表示させられるでしょうか?ご指南願います。
Draw関数
vec2Pos.x = PosX;
vec2Pos.y = PosY;
SetObjectInfo(v1,vec2Pos,D3DXVECTOR2(256.0f,256.0f),D3DCOLOR_XRGB(255,255,255),0.0f,0.0f,1.0f,1.0f);
m_pDevice->SetTexture(0,m_pTexture);
m_pDevice->SetFVF(MY_FVF_VERTEX);
m_pDevice->DrawPrimitiveUP(D3DPT_TRIANGLEFAN,2,v1,sizeof(MY_VERTEX));
void CTexture::SetObjectInfo(MY_VERTEX *v,D3DXVECTOR2 &vec2Pos,D3DXVECTOR2 &vec2Size,D3DCOLOR color,float tu0,float tv0,float tu1,float tv1)
{
SetVertex(&v[0],vec2Pos.x,vec2Pos.y,1.0f,color,tu0,tv0,1.0f);
SetVertex(&v[1],vec2Pos.x + vec2Size.x,vec2Pos.y,1.0f,color,tu1,tv1,1.0f);
SetVertex(&v[2],vec2Pos.x + vec2Size.x,vec2Pos.y + vec2Size.y,1.0f,color,tu0,tv1,1.0f);
SetVertex(&v[3],vec2Pos.x,vec2Pos.y + vec2Size.y,1.0f,color,tu1,tv0,1.0f);
}
void CTexture::SetVertex(MY_VERTEX *v,float x,float y,float z,D3DCOLOR color,float tu,float tv,float rhw)
{
v->x = x;
v->y = y;
v->z = z;
v->color = color;
v->tu = tu;
v->tv = tv;
v->rhw=rhw;
}
443 :
442:2006/01/15(日) 02:17:31
自己解決しました。スレ汚しすみませんでした。
>>442 どうせなら、何が原因だったのか教えてください。
私のテクスチャクラスは、頂点情報はもとより、テクスチャ座標を操作したりするためのスクリプトファイル、
ローカルなシーンツリーやゲームのキャラクターもメンバに持つ、超多機能クラスなんです。
それで、自キャラの死亡時用のイベントハンドラが間違っていたため、表示に失敗していました。
>超多機能クラスなんです。
なんかワロタ
447 :
デフォルトの名無しさん:2006/01/15(日) 09:16:27
ちょっと多機能すぎるんと違いますか?
多機能?掃き溜めの間違いじゃない?
>430じゃないんですが
9SDK(2005Dec)を落としてきて8.1のプログラムをビルドしようしたんですけど、
d3dx8.hやd3dx8.libがなくて出来ませんでした。
上記のファイルは9のSDKになってからどこへ行ったのでしょうか?
世間的には「多機能クラス=糞設計」だわな
テクスチャ操作だけの独自スクリプトがあるとか噴飯ものですわ
機能別に細分化して組み立てれ
>451
とりあえず昔の本引っ張り出して付録CDから8SDK入れてビルドしましたけど、
なんで9には無いんですかね?MS的に古い技術は闇に葬る流れ?
455 :
デフォルトの名無しさん:2006/01/16(月) 14:40:52
pD3D = Direct3DCreate9( D3D_SDK_VERSION );
pD3D->Release();
を繰り返し呼ぶとメモリ使用量がどんどん増えていってしまうのですが、
これはDirect3Dにメモリリークのバグが存在するということなのでしょうか?
>>455 一度mallocとfree繰り返してみろ
>>454 いや、DirectXはCOMを使っている。
COMではバージョンアップしても上位互換性を保たなければならない。
DirectXは上位互換の能力をもっているが、
COMだからといって上位互換でなければならないなんて規約は存在しない。
よってCOMだからという理由で上位互換というのは誤り。
ランタイムとしては上位互換を保つんだろうけど
SDKにd3dx8のライブラリを入れないのは
ある意味過去の遺物の切捨てではなかろうか
結論: DirectX8は動くが、開発はできない。
>460
D3DX8だけじゃなくてD3D8も入ってないの?
見れば分かると思うが・・・
入ってるよ。
8のヘッダが入っていない場合は9のヘッダを使って開発できる
まだダウンロードできるSDKの中に8のヘッダが入ってる奴あると思うぞ
8SDKがないとまともに開発できないと思うんだがヘルプとかどうすんだ?
保守の必要があるのに古いSDK捨てちゃったのカナ
October 2004 に8のヘッダ入ってましたよ
どうでもいい事かも知れませんが・・・
Direct3Dがさっぱりなんだが・・・
行列とかまだ習い始めたばっかだし、意味わかんね
助けて
習い始めたばかりなら丁度いいじゃねーか
授業中にどうどうとゲームの質問できるぞw
行列計算できるからといってそれが使えないと意味が無い。
それは数学科修了の俺だがなっっ!(`´)
数Bで3次元のベクトルの話に入っただけで(´∀`)ウマーな俺は、まだまだだな・・・orz
メッシュロードしたら物凄く大きかったんだけど、これは読み込むときに縮めるの?
とりあえず距離が100あるとする。
この距離を徒歩でいくとすると、楽勝で歩ける距離なのか、死ぬまでたどり着かない距離なのか、
単位が存在しないデータで大きいと判断できる
>>469は答えられるんだろうな。
馬鹿の考えることは常人の想像を超える。
>>470 おk把握したw
FLOATで色々指定してやったら何とかなったw
「w」に悔しさと悲しさがにじみ出てるな。
まぁそう反応するしかない罠
オレにはおばあちゃんのおっぱいにしかみえない
<○ ウフーン
W>
|<
_, ,_ パーン
( ‘д‘)
⊂彡☆))○
477 :
デフォルトの名無しさん:2006/01/20(金) 01:42:48
>>477 > d3dvp.MinZ = 0.9f;
> d3dvp.MaxZ = 0.1f;
MinZ < MaxZ じゃないとダメよ。
デバッグランタイムなら一応エラーメッセージが出るわ。
リリースランタイムだと多分、MaxZ が MinZ と同じ値になるんじゃないかしら。
ピクセルのZ値が常に同じだから、D3DCMP_GREATEREQUAL なら常に上書き、
D3DCMP_GREATER なら常に上書き不可になるわ。
Z値で余計なことしてるけど、手前を0.0f, 奥を1.0fにした方が無難よ。
下みたいに直せばおわり。
// コメントアウト
// IDirect3DDevice9_GetViewport( pdev, &d3dvp );
// d3dvp.MinZ = 0.9f;
// d3dvp.MaxZ = 0.1f;
// IDirect3DDevice9_SetViewport( pdev, &d3dvp );
// IDirect3DDevice9_SetRenderState( pdev, D3DRS_ZFUNC, D3DCMP_GREATEREQUAL );
IDirect3DDevice9_SetRenderState( pdev, D3DRS_ZFUNC, D3DCMP_LESSEQUAL );
// IDirect3DDevice9_Clear( pdev, 0, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,0), 0.0f, 0 );
IDirect3DDevice9_Clear( pdev, 0, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,0), 1.0f, 0 );
479 :
デフォルトの名無しさん:2006/01/20(金) 04:51:13
XBOX360の通信部分はDirectPlayなのでしょうか?
480 :
477:2006/01/20(金) 08:33:07
>>478 そうなんですかー。
某3Dシステムはデプステストで
NEVER, GEQUAL, GREATER, ALWAYS
の4つしかサポートしてなくて、それに合わせる形で
アップしたソースみたいになったのですが・・・。
無理ということなら適当にごまかすことにします。
ありがとうございました。
DirectX SDK(Oct,2005)をインストールして、bccでdirectxのプログラミングを始めたんですが、
Error: 'F:\TEST\TEST\DXGUID.LIB' contains invalid OMF record, type 0x21 (possibly COFF)
てエラーが出ます。
調べてみるとvc++用ライブラリはリンク出来ないようです。
つまりbccではDirectX SDKは使えないということですか?
.objや.libが使えないだけで、SDK自体は使える。
>>480 それならビューポートの代わりに射影行列に細工すればできそうね。
射影変換後の z:0〜w が z:w〜0 になるようにすればおkよ。
(wはいじらないから、変換後のZの偏り(手前が密)はちゃんとそのままよ。)
// d3dvp.MinZ = 0.9f;
// d3dvp.MaxZ = 0.1f;
d3dvp.MinZ = 0.1f;
d3dvp.MaxZ = 0.9f;
D3DXMATRIX matRZ;
matRZ._11 = 1.0f; matRZ._12 = 0.0f; matRZ._13 = 0.0f; matRZ._14 = 0.0f;
matRZ._21 = 0.0f; matRZ._22 = 1.0f; matRZ._23 = 0.0f; matRZ._24 = 0.0f;
matRZ._31 = 0.0f; matRZ._32 = 0.0f; matRZ._33 = -1.0f; matRZ._34 = 0.0f;
matRZ._41 = 0.0f; matRZ._42 = 0.0f; matRZ._43 = 1.0f; matRZ._44 = 1.0f;
D3DXMatrixMultiply( &matProj, &matProj, &matRZ );
効果音やBGMを追加したいのですが、DirectSoundとDirectMusicの違いがよく判りません。
どちらを勉強したらいいでしょうか?
488 :
486:2006/01/21(土) 06:29:20
えと、では詳しく
BGMではMP3orOGGを、効果音はWaveを使おうと思っています。
効果音に関しては、速度などの変更と3Dでの効果を使いたいです。
CDからのストリーム再生は今のところ考えていません。
>3.SDKを見ても、Googleで検索しても、いまいち理解できない人
>どんな事で躓いているのか明確にしよう。
つーかもう困ったらDirectSoundでいいよほんとに
492 :
486:2006/01/21(土) 07:23:11
>>490 社会人なってあんまし時間がないので、音楽関係の自前ライブラリを作ろうと、
とにかくできる限り全部やろうと思ってます。
ただ、どちらでどの程度やれるのかがわからなかったので(Webの解説とリファレンスの解説が違)
最初から丸投げ(`皿´)ウゼー
加齢にするーしようぜぇw
↑わざわざコテ半にする必用あるレスなの?
DirectMusicは放置可。ぶっちゃけ誰も使ってない。
ていうかどうせ両方とも新APIに切り替わるんだし。
丸投げ社会人マンセー!!
>>496 >ていうかどうせ両方とも新APIに切り替わるんだし。
またバージョン替わるんですかいな・・・
バージョンアップごとに劇的に変化するのがDirectX
それが嫌ならOpenALマジオススメ
OpenGLって音楽系制御できるの?
>>500 OpenALはOpenGLとは別物。
LGPLライセンスで提供されている音楽系のライブラリ。
英語読めなさす orz 。。。
こんな紛らわしい名前なのに、よく維持できているものだな > OpenAL
wxWindows も OpenIL もクレームついて変えたらしいのに
紛らわしいか?
OpenCVとかOpenMGとかOpenMPとかあるだろ
>>504 >Many people may have known DevIL as OpenIL, but the name was changed due to SGI's request.
SGIは紛らわしいと思ったようだ。
>>505 SGIに聞けよ。
>492
「時間がない」と「自前ライブラリを作る」が繋がらないのだが?
時間がないなら、ありものを使うなり、パクるなりすればいいだろ。
ゲームを一本作る時間はないけど、各機能ごとのライブラリなら作れるんです
>>508 多分プログラミングが好きで
ものすごくはかどるタイプなんだろうと。
実はゲームは興味ない。ちゃう?
>>496 >DirectMusicは放置可。ぶっちゃけ誰も使ってない
サンクスです。
>>507 一時プログラムやってなかったんですが、仕事でPerl組んでたらワクテカしてきて。。。
サウンド面を全然やってなかったので、手を入れていこうと考えていたところです。
>>511 それで時間が無いエピソードはいつでてくるんですか?
>>512 時間が無いのは、仕事が10:00〜22:30とかだからです
休みは土日 でも最近は休みなしっす
仕事でプログラムもあんまさしてくれないし。。。
で、まだ研修中なんで移れるのならほかに移ろうかと思って
今のうちに一つゲームを作っておこうかと土台を組んでることろです
時間が無いなら、自分で調べる時間なんて無いんだよ!
何でもとっとと教えろやー!
ってことか。
身の上話なんて始めても弄られるだけなんだから
具体的な問題で足止め食らったらまた来れば?
設計なんて既存のライブラリ参考にして自分で決めた方がいいよ。
516 :
デフォルトの名無しさん:2006/01/31(火) 04:11:22
【質問】任意の点描パターン(破線、点線など)の線分(3万本)を描くには?
1・IDirect3DDevice9::DrawPrimitive ( D3DPT_LINELIST, , );
2・ID3DXLine::SetPattern( dwPattern );
ID3DXLine::Draw();
1・の方法では、頂点配列を線分と定義できるが、点描パターンの指定の方法ができない(わからない?)。
2・の方法では、点描パターンの定義はできるが、頂点配列を線分と指定できない。
表示速度の高速化のためにDIRECTXを調べていたのですが、よく解りません。
うまい方法があれば教えてください。
それぞれの方法を試して、速いやつを選べばいい。
518 :
デフォルトの名無しさん:2006/01/31(火) 11:18:01
質問です。
日本語入力についてですが、左上でチラツク日本語変換ウィンドウ閉じたいのですが、どうしたら良いのでしょうか?
COMPOSITIONFORMstComposition;
ImmGetCompositionWindow(this->m_hImc, &stComposition);
stComposition.ptCurrentPos.x= -1024;
ImmSetCompositionWindow(this->m_hImc, &stComposition);
CANDIDATEFORMstCandidate;
ImmGetCandidateWindow(this->m_hImc, sizeof(CANDIDATEFORM), &stCandidate);
stCandidate.ptCurrentPos.x= -1024;
ImmSetCandidateWindow(this->m_hImc, &stCandidate)
現在は上記の様に画面外に移動させているのですが、この場合DirectXウィンドウモードで候補一覧ウィンドウがチラツクという不具合が起きてしまいます。
日本語入力を既に実装しているので、IME自体は有効化にしつつ非表示にしたいのですが、どうしたら良いのでしょうか?
分かる方、よろしくお願いします。
WM_なんちゃらがくるから、そこでハンドリングしてなんかするんだったと思う。
すまん、適当すぎて。
他にも色んなのがあったと思う
あとUNICODE使うと凄く楽になるよ
>>519 返答ありがとうございます。
WM_IME_COMPOSITION
上記の場所で、
ImmNotifyIME(hImc, NI_CLOSECANDIDATE, 0, 0);
とする事で非表示にできました。
ImmGetCandidateList で候補リストが取れないバグが出ましたが、
ImmNotifyIME の前に
ImmGetCandidateList を呼ぶ事で解決できました。
ありがとうございました。
521 :
518:2006/01/31(火) 14:05:27
522 :
デフォルトの名無しさん:2006/01/31(火) 19:42:17
様々な大きさの画像を256x256や4096x4096にピタっと自動でエレガントに収めてくれる
夢のようなツールはありませんか?
あなたの夢の中にあります。
524 :
デフォルトの名無しさん:2006/01/31(火) 20:12:58
ディレクトエックスってエディタの表示に組み込める?
高速描画して欲しいの。
FF3の飛空廷みたいに高速スクロールしたいの。
そのように作ればできる。
526 :
デフォルトの名無しさん:2006/01/31(火) 22:01:07
やったあ、できるんだあ!大満足です。
「やればできる」は素晴らしい回答だなw
ワラタ
Direct3Dのラッパーをを作って、
フルスクリーンにしているものをWindow化すると、
どのソフトでも必ずタイトルバーを付けると
その分だけ描画が下にずれて下の部分が切れてしまうのですが、
これはどの部分が問題なのでしょうか?
ウィンドウのクライアント領域がフルスクリーンの解像度と同じになるように
調整しなきゃいかんのでは?
>>529 タイトルバー付けるなら同時にウィンドウサイズも修正する。
AdjustWindowRectを使うと簡単。
っていうか、窓化ソフトが作れるほどの知識があるのに、
そんな部分がわからないのが不思議でしょうがない…
>>530>>531 レスありがとうございます。
早速クライアント領域を調整したらぱっと見の表示は正しくなったのですが、
今度は任意で開くメニューやステータス画面等のウインドウが
とんでもない位置に表示されるようになりましたorz
もうちょっといじくってみます。
GetClientRectがあるくせにSetClientRectが無いのが疑問です・・・
>>531 逆引き野郎で必要な部分のみしか勉強してないのでよく言われます(汗
知り合いに聞くと、ここまで分かってるのにこんな事分からないなんて馬鹿にしてんの?と。
いい加減基本からやろうかと思うんですがやりたい事が先行してしまって・・・
>>532 ウィンドウを画面の左上の端に配置した状態で操作するとどうなる?
レンダリングターゲットなテクスチャ(画像)を作り
その画像に
別のアルファ値がグラデーションなボールの画像を適当に貼り付け
アルファ値を利用した虫食いテクスチャみたいなものを
作ろうとしています。
RGBAのAの値だけ転送(描画)する方法ってありますか?
ある
ふぁ
DirectSound8での質問です。
プライマリバッファのフォーマットと互換性の無いセカンダリバッファを作成して
再生しても無問題なんでしょうか?
なんかカラーマスク使ってやるんじゃなかったっけ
RenderStateかなんかで指定できたはず
540 :
デフォルトの名無しさん:2006/02/02(木) 16:09:14
16ビット色だと色が化けて透過できないのですが、なにかいい方法はないでしょうか?
どうしてもカラーキーを使いたいです
アルファ付画像に変えればいい
pngとか32bitBitmapとか
ああ
カラーキーか。
色によっては無理臭いな。
>>540 色が化けてって所の意味がよくワカンネ
妙なフォーマット変換でもしてんの?
えーマジカラーキー! カラーキーが許されるのはDirectDrawオヤジまでよねー
今まで256色DirectDrawを使っていたので、32bitカラーは激重そうで
抵抗感が強いです。RIVAやVoodooも忘れてはいけないし。。。
低スペック前提でやるのは自由だが、
もはやそんな環境を考慮している人間は絶滅種なので、
まともなレスがつかないことは覚悟すべき。
何年も更新が止まっているようなサイトを、
ゴミあさりしながら地道にやっていくしかない。
Voodooは忘れていいだろ。
でもKyroは忘れないでください。
テクスチャ1024x1024出せない機種は切り捨ててる。
古いスペックでも一応動くが激しく劣化+あえて遅くなるように作ってる。
そしてベンチマークでランク付けてマシンレベルをよーく認識してもらう。
>>548 それちょっと悩んでる
Voodooみたいなゴミは勿論切り捨てだけど、ちょっと前のオンボードビデオで
512x512が上限のやつはいまだに結構な数があるとかなんとか
i810でもProSavageでも1024x1024行けるよ
無視! 無視! 切り捨てろ!
むしろそんなもん使ってるヤツにPCを買い換えさせるゲームを作れ。
俺は1024*1024も切り捨てたいな。
エフェクト諸々考えるとバックバッファと同じサイズのテクスチャを作りたい。
解像度を1024*768以下に制限するという後ろ向きな対策もあるが…
おまいらのバックバッファのサイズって固定されてんの?
低スペック云々が建設的な話に発展することは無いので、
やるならやりたいやりたいようにやればいい。
動作させてみるまでわからない!っていうのが低スペック非対応に拍車をかけてる
機能一覧をまとめたサイトとかないのかな
>>540 555/565フォーマット混在させたり、24bitから16bitに自動で減色させたりしてないか?
>>556 以前見たことあるんだがブックマークしてなかった
今となってはどんなキーワードで引っ掛けたのかすら覚えてない orz
今のSDKならある程度カードのデバイス能力が
リストアップされたpdfとか付いてるよ。
どちらかと言うと、自分のマシンの環境がへぼいので
それに合った作りをしている。
文字を表示するときって何使えばいい?
Cのprintfみたいな感じで使えるやつきぼん
printfのような関数を作る。
または、書式化して得た文字列だけを与えてやる関数を作る。
>>561 自分で文字を並べるんだYO! グーテンベルクを見習え。
sprintfで書式変換してID3DXFontかなんかで表示でいいだろ
PCで放送見てる場合はどうなるんだろう?
やっぱりNHKが見れたらそれだけで課金対象?
板違い。
569 :
デフォルトの名無しさん:2006/02/04(土) 14:27:11
マイクロソフトからDirectx9.0のSDK落としたんだけど
実行ファイルが最後まで展開できません。
Win32 Cabinet Self-Extractorってファイルの説明には書いてたん
だけど、これってSDKじゃないのかな??
ダウンロードが最後まで終わっていなかったとか、そういう可能性は考えなかったの?
脳に障害でもない限り普通なら最初に考えるところだけと、サイズのチェックとかは当然やってるよね?
ええ、あなた程度でも思いつくような事はさすがにやってます^^;;;
どのファイルを落としたのかURLすら張らず、
どの地点で駄目になったのか情報も出さない。
しかも態度がでかい。
開発には向かない人種のようだから諦めた方がいい。
それぞれのバージョン、どのファイルをダウンロードしたか、どんな確認をしたか、開発環境や
そのほか必要と思われる事項を記載の上、再度投稿してみてください。
当方の優秀なエスパーによればOSがXP以外である、HDDの残り要領が少ない、
高速化のためにレジストリをいじっているなどの原因が考えられるそうです。
OSがXP以外でも展開時ではなくセットアップの時にこけるだけだよ。
この程度自己解決できない奴に開発なんざ無理って事で次の方どうぞ
自画自賛乙
ええ、あなた程度でも思いつくような事はさすがにやってます^^;;;
自画自賛してると認める訳ですかw
ええ、あなた程度でも思いつくような事はさすがにやってます^^;;
582 :
デフォルトの名無しさん:2006/02/05(日) 06:29:58
DirectXによるフルスクリーンのアプリケーションを終了すると、
他のアプリのウィンドウサイズが小さくなってしまう現象をなくす方法はありますか?
ウィンドウスタイルをWS_POPUPやその他にしても起きてしまう・・・
糞な現象が起きないサンプルコードをみつけてきて、
それと同じようにすればいい。
ええ、あなた程度でも思いつくような事はさすがにやってます^^;;;
うぜええ
いい加減にしろ馬鹿ども
ええ、あなた程度でも思いつくような事はさすがにやってます^^;;;
↓
ええ、あなた程度でも思いつくような事はさすがにやってます^^;;;
587 :
デフォルトの名無しさん:2006/02/05(日) 08:07:04
ひょっとしてディレクトグラフィックスは全画面にしか使えないのですか?
アプリのこの領域だけとか無理?
この程度自己解決できない奴に開発なんざ無理って事で次の方どうぞ
サンプル内の適切なバックバッファのフォーマットの
D3Dデバイスだかアダプタだかを作るコードを
見てうんざりしてるんだがどうすればいい?
やめればいい。
591 :
デフォルトの名無しさん:2006/02/05(日) 09:07:51
いじわる><
569から流れが一層荒れてきたな
それじゃあ、ここで乳首の位置あてゲームで落ち着こうぜ
シャレで
>>571を書いたのに本人光臨しないからおかしな流れになっちゃった。
自己解決したから書き逃げしちゃったのかな。
俺のはSDKインスコしようとすると
仮想メモリが足りませんって出てきた後OSごと落ちるんだわ
いちおうXPホムなんだけどねぇ
もうね、ムシャクシャしたからOS再インスコしてやったんだよ
で、マザボ付属のドライバ入れる前に
SDKインスコしてやったらなぜかスムージに完了した
それはマザボのドライバのバージョンが古すぎるんじゃないか
メーカーのページ見てアップデートしろよ
ええ、あなた程度でも思いつくような事はさすがにやってます^^;;;
色んなとこに広めなくていいよw
DirectX ってWindowsXPx64版のはないのでしょうか?
>599
よくやった!
初心者質問スレらしい良い質問だね!
はい、次のお便りです
購入したHDDに始めからインストールされていたエージオブエンパイア3を起動したのですが
ダイレクトXが無いと言われます。どうしたらいいですか
何故購入したHDDに初めからインストールされていたのかを詳しく教えてください。
AOE3プリインストールPCなんかもう出てるのか。
FFオンラインもインストールされていましたが、
なぜかタイトル画面から進めませんでした。
あと月姫の格闘ゲームもありました。
606 :
デフォルトの名無しさん:2006/02/06(月) 11:30:37
もしかして中古で買ったの?
・お隣の国で買った
・違法コピーなソフト入りのを買った
・じつは全部体験版
そんなこた分かってる
はい、次のお便りです
ええ、あなた程度でも思いつくような事はさすがにやってます^^;;のガイドライン
ガイドライン板に立てていい?
612 :
デフォルトの名無しさん:2006/02/07(火) 18:55:39
ええ、あなた程度でも思いつくような事はさすがにやってます^^;;
いま、この板のあちこちにコピペしてます
だめだあ。みんな無視されるよ。
ふざけんな。つまりこのスレが
小学生みたいな奴ばっかだってことかよ
座標変換と言う名の大きな壁に押し潰された
三角関数も行列もまだ習ってねぇよ
最後のセミコロンは3個だ間違えるな!;;;
幸運な奴
俺は行列習ったのはとうの昔だが
そのときはプログラムやってなかったので勉強しなかった
これからみっちり身に付けろよ
DirectXの行列って縦横逆でハマった
最近は高校で行列やるのか
すげーな!
体育祭とかでな
622 :
デフォルトの名無しさん:2006/02/07(火) 22:12:55
体育祭すげぇえええええええええ!!!!!
俺まだ17歳だけどもうすぐ行列終わるよ
ゆとり教育すげーな!
>>620 いやまだ高校入ってないからわからない
行列は大学のもの?
高校でやる行列なんぞ本当に受験のための行列だろ
ちゃんと線形代数勉強しとけ
629 :
デフォルトの名無しさん:2006/02/08(水) 01:28:58
よっしゃあ!とばしていくぜ!
, ,
./  ̄/  ̄ / _|__ ___|_
―/ / |/ /|
_/ _/ | _/|
/\___/ヽ
(.`ヽ(`> 、 /'''''' '''''':::::\
`'<`ゝr'フ\ + |(●), 、(●)、.:| +
⊂コ二Lフ^´ ノ, /⌒) | ,,,ノ(、_, )ヽ、,, .::::|
⊂l二L7_ / -ゝ-')´ .+ | `-=ニ=- ' .::::::| + .
\_ 、__,.イ\ + \ `ニニ´ .:::/ +
(T__ノ Tヽ , -r'⌒! ̄ `":::7ヽ.`- 、 ./| .
ヽ¬. / ノ`ー-、ヘ<ー1´| ヽ | :::::::::::::ト、 \ ( ./ヽ
\l__,./ i l.ヽ! | .| ::::::::::::::l ヽ `7ー.、‐'´ |\-、
___________________________ __
│二│三│四│二│三│四│二│三│四│◎│◎│◎│伍│|伍|
│萬│萬│萬│萬│萬│萬│萬│萬│萬│◎│◎│◎│萬│|萬|
>>611 URLまだぁ?(・∀・ )っ/凵 ⌒☆チンチン
というかCとかになる前は行列って高校でやってたのかな。
やってたイメージがあるんだけど。
俺が行ってた高校じゃ行列なんかやらなかった。
sin cos tanですらろくすっぽ・・・
DX9.0(2004 Oct)を使っています。
D3DXCreateFontがS_OKを返しているのに
ID3DXFont::DrawTextがシパーイするのはどうしてでしょうか。
char szStr[256];
RECT rc;
if( lpSprite != NULL )
{
if( SUCCEEDED( lpSprite -> Begin( D3DXSPRITE_ALPHABLEND | D3DXSPRITE_SORT_TEXTURE ) ) )
{
if( lpFont != NULL )
{
memset( szStr, '\0', 256 );
lstrcpy( szStr, "尾万個" );
SetRect( &rc, 10, 10, 500, 40 );
//*****************
// ここでシパーイします
lpFont -> DrawText( lpSprite,
szStr,
lstrlen( szStr ),
&rc,
DT_LEFT | DT_VCENTER | DT_SINGLELINE,
0xFFFFFFFF );
//*****************
}
lpSprite -> End();
}
}
どう失敗したかを書かないのはなぜなのか。
回答者を甘やかすのはよくない
636 :
633:2006/02/08(水) 08:42:51
ヘルプでは「DrawTextが失敗した場合は、0 を返します」のように書かれています。
実際上のやり方でDrawTextの返り値をみると0が返っていますた。
DrawTextに渡す値をどう変更しても同じなのでお手上げにちかい状態です・・・
637 :
633:2006/02/08(水) 08:57:34
やってみたことを書いておきます
「同じ結果」
・D3DRS_ALPHABLENDENABLEのTRUEとFALSEの間にDrawTextをはさんでみた
・文字列のコピーの仕方をlstrcpy( szStr, "尾万個\0" )にしてみた
・文字列の長さを-1やlstrlen(szStr)+1にしてみた
・D3DXSPRITE::Beginの値にNULLを指定
・D3DXSPRITE::SetTransformで適当な位置にトランスフォヌ
・OSを再起動してからもう一度起動
「異常終了」
・FONTクラスを作りそこでDrawText (なぜか異常終了します)
半角やら、テスト用文字がうざくってしょうがないんだけど、
漢字以外に、アスキー文字はやってみた?
もうすぐDirectXを勉強しようと思っているのですが、何か良い書籍などありませんか?
今のところまったくDirectXの知識はありません。
特に説明しないところをみると、プログラム言語の扱いに関しては、
OSを自己開発できるレベルということでいいのか?
もちのろんです
VRAMの全容量と
使用している容量を取得する関数ありますか?
あと、ついでにシステムメモリの容量取得する関数もありますか?
>>640 ええ、あなた程度でも思いつくような事はさすがにやってます^^;;
>>643 でも俺程度はもう文字だせてるんだよね
がんばってね
>>639 WindowsのAPIとC++の知識は、どうなんだ?
646 :
633:2006/02/08(水) 18:21:55
あまりにもうまくいかなさすぎるので、
ダメ元で他のID3DXFontの関数を試してみたら
他の関数まで、呼び出した瞬間異常終了してしまいました。
2003さまーでやっていた時はこんなこと無かったんで、なんか自信喪失状態です・・・
素直に2005Decにします。ありがとうございました。
あと、スレ汚し申し訳ありませんでした。
なぜそこでスプライトが出てくるのかわからんかった
最小限のコードにすべきだろうに
>>646 ID3DXFont::Begin,End
を使わないようにする。
ID3DXFont自体を使わなければ解決するんじゃ?
651 :
633:2006/02/09(木) 00:06:40
レスしてくれた方、ありがとうございます。
>>649 BeginとEndは無くなったみたいですね
>>650 最終的にはそうしようかと考えています。
ふと思ったんだけど、ID3DXFontって曲者なんでしょうかねぇ・・・
2005Decにしたらコードの変更無しで文字列が描画されました。
このままだとくやしいから暇な時見つけて633の原因追求したいですw
また困ったことがあったらよろしくお願いしますm(_ _)m
>また困ったことがあったらよろしくお願いしますm(_ _)m
お前、ずうずうしい野郎だなw
>また困ったことがあったらよろしくお願いしますm(_ _)m
こういうのが一番迷惑
己で解決する気がほとんど無い証拠
BBXにもうじゃうじゃいるけど答えるバカがいるから甘えるんだよ
>ありがとうございましたーまたわからなかったらバンバン質問するんでヨロシクー!
>どーにも俺では無理そうですんでソース渡すんでデバッグよろ
・・・と以前書いたら最近曖昧なことやキッカケだけ教えるバカがいるが
質問するような野郎にそんなこと言っても余計わからなくなるだけだ
結局わからないからそのままコピペして他所で聞いてる始末
直接答え書く気ないなら書くな中途半端に甘やかすな
甘やかすなら徹底的に甘やかせと言うことかw
下には下が居る、どんな奴でも人に教えて優越感に浸れる板だな。
639のものです。
すいません。言語を言うのを忘れていました。
APIとC++の知識はある程度あると思います。
言語はC++です。
657 :
デフォルトの名無しさん:2006/02/09(木) 10:49:06
日本語は?
>>656 2chなんか見てないで
本屋で立ち読みしてきなさい
>>653 このスレ的にはおまえみたいな奴が一番迷惑なんだが
653 = BBXで質問したがソース付きで直接的な答えを貰えなかった初心者クン
>>662 ええ、あなた程度でも思いつくような事はさすがにやってます^^;;
>>663 ええ、あなた程度でも思いつくような事はさすがにやってます^^;;;
DirectXゲームグラフィックスプログラミング2.0読んでるんだけど筆者が言うとこ言わずに困ってる
描画処理ルーチンの中ってどうなってる?
デバイス->BeginSceneから始まってデバイス->EndSceneで終わるまで
筆者に聞けば?
つまらんです
同じ位置の頂点でテクスチャUVが違う場合には、やはり2つ頂点を用意しなければ
ならないのですか?(ハードウェアT&Lの場合)
UVだけ変更する方法はあるが、何に使う頂点なのかによって
それを利用するべきなのか否かが異なってくる。
しかし用途が省かれているので、説明も省くことにする。
つまらんです
>>669 ゲームで使うモデルを表示させたいだけです。前はすべて自前で計算してprimitiveに
描かせるといった感じで組んでいたのですが、頂点バッファでやる場合はどうするべきなのか
・・よく解らなくなってしまった。(2つ用意すれば無駄が生じるわけですよね・・
その場合だとUVの違う頂点は別の頂点と考えるべき。
無駄上等で同じモデルでテクスチャ座標だけ異なるデータを大量に作ってやった。
我ながらアホだと思った。正直VertexBufferに載せるの嫌になってきた。
システムメモリ上でもいいやん。
意味不明。
システムメモリを使ったからと言って、
3Dデバイスに投入する形式が変わるわけではない。
675 :
668:2006/02/09(木) 16:34:29
>>674 システムメモリ上に置けば自分でUV書き換えられる
んでDrawPrimitiveUPで描画
OK?
そこであえてD3DUSAGE_DYNAMICで
>>676 自分で書き換えようがなんだろうが、デバイスに投入される頂点数は減らない。
>>676 何をトンチンカンなことを言っているんだ?
まさか頂点バッファは一度作ったら二度と書きかえれないとでも?
頭が硬いなあ。
DrawPrimitiveUPでバッファを最小値でとったとしても、
結局書き換えるごとにデバイスに送らなければならないんだから、
デバイスに投入される頂点数は変わらない。
ちなみにマップチップのような描画するブロックがきっちり別れているテクスチャを利用するのなら、
テクスチャのトランスフォームをセットするだけ。
>678-680
話が通じてないな
使用メモリ削減の話してんじゃないの?
673で無駄上等でって書いてるし671もメモリの無駄の話してんだろ
俺は2Dしかやったことないから分からんが。
デバイス->BeginScene();
スプライト->Begin();
スプライト->Draw(・・・・・・・・・・・・・・);
・
・
・
・
スプライト->End();
デバイス->EndScene();
下には下が居る、どんな奴でも人に教えて優越感に浸れる板だな。
演算の無駄はIndexを適切に使うしかない。
しかし紫外線座標が違えば別頂点。
>>683 実はそのx->Drawの上とかDevice->SetRenderStateの下が知りたかったりする
間にあるもの
テキストに変化があったらテクスチャをロックしてフォントを描き込む
テクスチャセット
プリミティブを描く
なるほどif分岐だけですか
どうも
>>681 チップ毎にテクスチャのトランスフォーム設定して再描画するの?
UV直接書き換えないか?
>>688 こういうこと?
デバイス->Clear(・・・・・・・・・・・・・・・・);
デバイス->BeginScene();
スプライト->Begin();
スプライト->Draw(・・・・・・・・・・・・・・);
・
・
・
・
スプライト->End();
デバイス->EndScene();
デバイス->Present(NULL,NULL,NULL,NULL);
俺の場合
デバイス->SetRenderState(・・・・・・・・・・・);は
DirectXの初期化直後にしかやらないなぁ。
途中でやることもあるみたいだけどまだそこまで深くやってない。
>>692 縦に・の省略部分です。
SetRenderState等を置く場所が知りたかったので助かった
ありがとう
>途中でやることもある
キャラクタを操作するゲームでしょうか
>>692 シェーダ使うと描画するごとに切り替えまくりだぞ。
それにデバイスロストしたとき、前に設定しておいた値を覚えておかなきゃならないだろ。
こんなのどうせフラグだけなんだからボコボコ切り替えたって問題ねーよ。
大した処理じゃない。
>>693 いえいえ、あまりお役に立てなくてすいません。
>>694 ありがとうございます。
重い処理だと思ってました。
いつもは2Dゲームしか作ってなくて、
アルファテストとZバッファを使うための設定にしか使ってなかったもので。
696 :
デフォルトの名無しさん:2006/02/10(金) 07:21:35
グラフィックのスクロールって高速にできませんか?
ただ、今描画してるのをずらすだけの処理ってどうやってるんですか?
なんかポインタ演算みたいにデバイスのドット情報をポインタ演算みたいにずらしていくなんてできないんですか?
出来たらビットマップのスライドは実に高速でCPUにもまるで負担をかけなと思います><
素人ですいません
697 :
デフォルトの名無しさん:2006/02/10(金) 07:22:50
素人とか以前の問題だな
699 :
デフォルトの名無しさん:2006/02/10(金) 07:26:20
702 :
デフォルトの名無しさん:2006/02/10(金) 07:42:53
>>701 そうですか、わかりました><
本当にありがとうございました。
>>696 >グラフィックのスクロールって高速にできませんか?
1回あたりの移動量を増やす
>ただ、今描画してるのをずらすだけの処理ってどうやってるんですか?
>なんかポインタ演算みたいにデバイスのドット情報をポインタ演算みたいにずらしていくなんてできないんですか?
UVを指定
704 :
デフォルトの名無しさん:2006/02/10(金) 08:25:07
705 :
デフォルトの名無しさん:2006/02/10(金) 08:27:14
>>703 ええ、あなた程度でも思いつくような事はさすがにやってます^^;;;
>>705 そのレスは超基本の質問であるがゆえに
馬鹿さがゆんゆん出ていて笑えるな。
1+1は何ですか?
2です
ええ、あなた程度でも思いつくような事ですね
みたいな。質問したお前が一番の馬鹿だろwwww
無理して釣られなくていいよ。
って自演かw
>ええ、あなた程度でも思いつくような事はさすがにやってます^^;;;
懸命に広めようとしているようだけど、残念ながら全然面白くないんだよね。
笑える≠面白い
わらう【笑う/▽咲う】
(2)(「嗤う」とも書く)ばかにした気持ちを顔に表す。あざける。嘲笑する。
711 :
デフォルトの名無しさん:2006/02/10(金) 10:40:37
英語でいうGreatみたいなもんですて。
ファイルから読み込んだメッシュの一部分だけを半透明処理するのは
セットレンダーステートのアルファブレンドをツルーにしたらいいのですか?
そのメッシュデータの一部分にα情報が含まれているのどうかのか説明がないので、
どうすればいいのかという説明も省くことにする。
してみればわかるだろ
>>696 老人に心の底から忠告するが、
DirectXを使うにあたって、10年前、20年前のゲームプログラミングの常識はすべて忘れろ。マジで。
俺2D詳しくないからよくわからんが
今
>>696みたいなことしようとすると
やっぱ、行列になるのか?(Wiewportとかもあるかもしれんが、よりベターということで)
スクロールするだけで32bitFloat x4以上が必要になるなんて
昔の人は卒倒しそうだな
717 :
デフォルトの名無しさん:2006/02/10(金) 16:23:04
>>715 24の駆け出しです
正直に想像しただけです
現実はどうやればいいんですか?
口より、手と頭を動かす。
スクロールの速度を上げるには一回のドット移動量を増やす他にFPSを上げることも考えられる
RPGのBボタンダッシュの多くはFPS上げてやってる
720 :
デフォルトの名無しさん:2006/02/10(金) 17:01:41
FF3の飛空廷の超速スクロールに憧れます
UVスクロール
家庭用でそんな実装はしないし
Windowsのフリーソフトで、2Dのドラクエみたいなフィールド上を
自キャラ一匹が歩いてるみたいな、そんなゲームだろうな。
こんなの多いか?
クライアント領域に文字または数字を描画する関数はないでしょうか?
>>724 DrawCharOrNumericToClientField
聞いてる立場でこんなこと言うのもあまり良くないが
真面目に答える気が無いなら書き込まないでくれ
そもそもDirectXスレで聞いているということは、
DirectDrawやDirect3Dを使ってということなのだろうが、
結局どれを使うのか状況が省かれているので、説明も省くことにする。
最近、エスパー希望者が異様に増えてないか?
DirectX自体あまり使ったこと無いからどの機能で何ができるかとかわからない
Direct3Dでお願いします
教えてる立場でこんなこと言うのもあまり良くないが
真面目にプログラミングする気が無いなら書き込まないでくれ
>>729 まずSDKのヘルプに載っているチュートリアルを、
自分でコードを入力して動作確認するところまで、絶対にとばさず全て終わらせる。
それで分からなければまた来るといい。
,,,,,,,,,,,,,,,,,,,,
/": : : : : : : : \
/-─-,,,_: : : : : : : : :\
/ '''-,,,: : : : : : : :i
/、 /: : : : : : : : i ________
r-、 ,,,,,,,,,,、 /: : : : : : : : : :i /
L_, , 、 \: : : : : : : : :i / 自分で調べたら
/●) (●> |: :__,=-、: / < 負けかなと思ってる
l イ '- |:/ tbノノ \
l ,`-=-'\ `l ι';/ \ DirectX初心者(44・男性)
ヽトェ-ェェ-:) -r'  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヾ=-' / /
____ヽ::::... / ::::|
/ ̄ ::::::::::::::l `──'''' :::|
INT DrawText( LPCSTR pString,
INT Count,
LPRECT pRect,
DWORD Format,
D3DCOLOR Color
);
734 :
724:2006/02/11(土) 01:51:03
>>731 それテンプレに入れようぜ。
いくら初心者でも、それくらいは人に頼る前に最低限やるべきだと思う。
中級者以上のスレなら分かるが
初心者スレでそこまで教えて君を排除することはない
まあ教えて君といいよちゃんは
チンポとマンポみたいなもんだからな
トーチリアル
740 :
デフォルトの名無しさん:2006/02/11(土) 11:55:31
どなたか教えてください。開発環境はVisualc++6.0です。
DirectX 9.0SDKをインストールしツール→オプション→ディレクトリ、
でincludeファイルとlibファイルのディレクトリ設定までしました。
その後のプロジェクト→設定→リンク→オブジェクト/ライブラリモジュールに
ビルドに必要なライブラリを記述する。っとあるんですが(あるDirectX関連の
本をみながらやりました。)、初心者向けのHPとか見ても記述がなくてわかりません。
わかるかたご解答おねがいします。
3Dの人物モデルをXファイルで読み込んで、そのモデルに変化(足を動かす等)
をさせる方法はどんなものがありますか?
Sampleぐらい見ろよ。
見てから聞いてるんですけど?
Xファイルを読むぐらいはできるんですが、たとえば足を動かすにはどうすれば?
MoveFootLとかそういうのがあるんですか?
モーションデータを再生するだけ。
いや違うんですよ
アニメーションの再生ではなくて、たとえば足を動かすにはどうすれば?
3Dソフトで足首をつかんで動かすと、いっしょに膝とかも動きますよね?
これをDirect3Dでやりたいわけです
技術的なトピックが2つあって
一つはインバースキネマティクス
もう一つはスキンメッシュ
前者は座標や角度を計算するためのもので、たとえばつま先を動かしたことで
間接の制限などを考慮しつつ膝や腰の関節をどう曲がるか計算するもの
後者は間接が曲がった際にポリゴンの繋がりを滑らかに見せるもの
要は手首の位置を決めて肘や肩を動かしたいって事でしょ?
がんばって計算しなきゃならんし、こんなスレで簡単に答えられる事でもないような…
そっち関係の書籍を買って読んだ方がいいと思う
つーか、DirectXとはあんま関係ないかも…
自分の使っているモデリングソフトのプラグインを書いてIKをエクスポート。
さらにそのIKデータから計算する部分を実装。
え?
じゃあそういう機能はDirect3Dにはないということで?
OpenGLで作られた人体モーションのやつ見せてもらったんですけど
MoveFootLとか呼び出すと足首だけ動かせば膝も動くんですよ
その人に聞いたらDirect3Dでもできるとか言ってたんですけどねー
うーんOpenGLのほうがよさそうですね
どうもありがとうございました
OpenGLにもそんな機能ねえよ
見せた奴、馬鹿にそういうものを見せるな。
思考能力がないんだから勘違いするだろ、責任とれ。
つまらないから消えろ
びっくりして耳が消えちゃいました
756 :
デフォルトの名無しさん:2006/02/11(土) 21:08:18
MoveFootMで勃起
エロ技術者の以心伝心
このスレって、ずっとこの調子でPart7まで続いてたの?
761 :
sage:2006/02/12(日) 00:27:40
4.余計な雑談は不要ですよ
>>747 ゲームなどで足を動かしたいだけならインバースじゃないキネマティクスでおk
ゲームで動かすだけなら普通はゲーム自体ではIKなんか使わず、
モデリング時にモーションを定義しておいて、必要に応じてブレンドしつつ切り替え。
どうしてもやりたいというなら止めないけど、いったいどんなゲームを作るつもりなんだろう?
もしかしたらゲームじゃやなくて何かのシュミレーションソフトだったりな。
>シュミレーション
>シュミレーション
>シュミレーション
そこまでにしておいてやれ。
俺のように、一生シュミレーションで通すことを決めた人間も居るのだ。
そんな男をもう一人増やす必要はない・・・
趣味レーションソフトならIKを入れる事も納得行く。俺も趣味で作ってた。
足首をひっぱるっていってるんだからエロゲしかありえないよ
商業ベースでOpenGL使ったエロゲなんてあったか?
もしかしたらゲームじゃやなくて何かのシミュレーションソフトだったりな。
趣味でエロでFA?
えろいシュミレーション・・・
775 :
デフォルトの名無しさん:2006/02/12(日) 19:15:55
今日のニュース!
レイと箱の当たり判定では
レイの方が数倍思い、今日の実験から分かりました。
みんな箱を使おう!
何を思ったんだ?
>>775 線分のレイとOBBの判定とか
超基本だと思うのですが、そういうのはどうするのでしょうか?
いままで境界ボックス使わず、全メッシュを検索してた人だってだけじゃない?
DirectXの話やめてもらえる?
じゃあDirect3Dの話な
DirectSEXの話はおk?
>>777 OBB判定ってモデルを細かく分断したやつ?
おれラッパー使いだからよくわからんけど、
当たり判定の箱って自分で一個一個指定していくの?普通は?
細かくするときも、自分で一個一個計算するの?
あ〜それと当たり判定ってハードそれともソフトでやってるの?
モデル同士の判定命令あったけど、うまく動かない うんこラッパー!
>>778 協会ボックス=箱でOK?
全メッシュー検索ってなによ!
全ての面に対して当たり判定
人型とか死ぬ
どっかで
BSPツリー作れば軽いとかいってたけどどう作るんだー!!!!
当たり判定絞るやつでしょ。
球→円柱→箱の順。
全面で当たり判定してる市販のゲームって存在する?
1vs1の格ゲーなら可能か?
欄ぶるローズXXとか、どれぐらい細かく当たり判定を
取っているんだろうね?
1キャラ5万ポリゴンらしいけど、まさか当たり判定も
このレベルで取っていることは無いだろう。
そもそも中身が空っぽの張りぼてボリゴンデータを、
そのまま判定に使おうという発想が間違っている。
ポリゴンの面で判定を行っても処理量が多くなって、
抜け落ちた結果が返ってくるだけ。
敵と当たり判定おこなうときは、
すべてのメシュと判定するのでOK?
近くにいる敵とか分かる方法あるの・・・?
敵も箱
敵の座標を取っておいて半径何たらかんたら以内で良いんじゃね?
そっか!
座標ですればいいのか!!
そっちの方が高速っぽいな。
MAPとは普通の判定で
敵とは座標ですればウハウハだな。精度が低くなるけど・・・・。
判定を細かく行いたければ、モデルデータと共に、
判定基底座標とサイズを定義したデータをフレームに関連づけて、
動きに合わせて判定領域が変化するように作ればいい。
なんで、調べればすぐ分かるこんな衝突判定の常識みたいな事
わざわざ偉そうに語ってんだw
ほら湧いてきたじゃないか
>>794 初心者スレだから。
あまりわたしをこまらせないほうがいい
中身のないで思ったが、
中身のあるポリゴンって技術的に可能なの?
どこで体を切っても、断面図が出てくるみたいな。
>>794の意訳 寂しいので、例え罵りあいでもいいから相手にしてください。
教えてクン量産スレ?
>>797 ソリッドモデル、サーフィスモデル、ワイヤーフレームモデルでぐぐれ。
DirectX以前にちゃんとした3次元CGの本を読んだ方がいいよ。
DirectXの前に三次元の本読む奴なんて少ないだろ
前に読む必要は無いだろ、疑問に思った時に読めばいい。
>>801 いや、ポリゴンで中身がないのは分かってるが、
そういうCGの表現方法があるのかと思って。
ニアクリップでキャラの内臓が見えたらグロくて大変だろうが。
そりゃ可能だろ。
高い・・・
俺も本屋で表紙見て欲しくなったけど裏見た瞬間諦めた
なんだよ、せっかくの良書なのに。
言っておくが、こういう専門書を買うのは時間を買うことと同義だ。
8400円というのは数字だけ見れば高いかもしれないが、
例えば時給1000円のヤツなら、ゴミだらけのウェブで調べものをする時間を
8.4時間節約できれば元が取れたことになる。
できる人間は時間をカネで買う。覚えておきたまえ。
よく分からんが勉強になった
いやニートだが
>>812 コリ集見ればほぼ同じものが手に入るが
8.4時間もかかるのは300bpsモデムで通信してる奴ぐらいかと
815 :
デフォルトの名無しさん:2006/02/14(火) 02:16:26
視錐台が (0,0,0)-(1,1,1) の範囲に収まるように調整してカリングしようと
しているんですが、トランスフォーム+w除算した凸メッシュの頂点から線分を
作成して視錐台の平面と接触判定しようとした時、視錐台立方体の外でもヒット
してしまうポイントがあって困ってます。
射影空間での衝突判定で気をつけることって何かありますか?
単純にコードが間違っているだけかも知れないですが…。
無限平面との交差にしてるとか
ブレーク掛けて、値を出力して見れば。
818 :
デフォルトの名無しさん:2006/02/14(火) 02:43:25
すばやいレスどうもです。
一応平面との交点を検出した後、0<=n<=1 の範囲にあるかどうかを見ています。
また、ワールド座標時と同等のコード(射影空間上で省ける計算もちゃんと行ったコード)
でも同じく上手く行きません。
トランスフォーム後の各頂点と、線分と平面の交点を表示してはいるんですけど…。
ちなみに、凸メッシュの平面(4ベクトル)と立方体線分の交点と、
凸メッシュの頂点が立方体の中にあるかどうかの検出は成功してます。
また、w除算をx,yのみにして、zはカメラの farz - nearz で除算したものを
使用するなど工夫しても駄目…。
819 :
デフォルトの名無しさん:2006/02/14(火) 02:45:18
>トランスフォーム後の各頂点と、線分と平面の交点を表示してはいるんですけど…。
意味不明ですね…。座標の値を画面に表示している、の意味です。
すいません。
>>815 > 視錐台が (0,0,0)-(1,1,1)の範囲〜
これは、こういう射影行列を用意して、メッシュがその中に含まれのか、
もしくはポリゴンと平面の交点を得たい、ということで良いのかな?
単にカンリグしたいだけであれば
if (x < -w || x > w || y < -w || y > w || z < 0 || z > w)
で、頂点を弾けば良いと思う。
> 射影空間での衝突判定で気をつけることって何かありますか?
wで割った後に交点を求めているのならマズいかもね。Z=0のところをまたいだところで、
射影行列を通した後のwの符号が反転するから、正しい座標が得られないよ。
wで割らずにそのまま同次座標系で交点求めればいい。
> 0<=n<=1 の範囲にあるかどうかを〜
ここが怪しい気がするな。
交点が欲しいのなら、射影行列からワールド座標における平面6つを取り出して、
ワールド座標で計算するとか。
まぁ、一番の目的が何なのかを書いて、そのアドバイスをもらった方が良い気はする。
821 :
デフォルトの名無しさん:2006/02/15(水) 02:32:55
>820 さん
うわぁぁぁ!x,y をwの絶対値で割ることで、見事解決しました!
ありがとうございます!ホントたすかりました!
今ちょっと試してみただけなので、ホントに出来たかをちゃんとチェックしてみます。
>まぁ、一番の目的が何なのかを書いて、そのアドバイスをもらった方が良い気はする。
射影(っぽい)空間で衝突検出できれば、ワールドでやるより計算コストが
低まるかな〜という安易な思いつきが目的です。
…でも、結局はメッシュの頂点と平面をトランスフォームをする手間で
コストダウンが消えているような気もしますが…。
ワールド空間でなら一度トランスフォームしてしまえばそのままでよい訳で。
えと、自分はモデルを包む凸メッシュと視錐台の接触を判定しようとしている訳ですが、
820 さんは、ワールドで視錐台のカリングをやっておられるのですか?
また、メッシュの頂点のみでのカリングなのでしょうか?
だとしたら、モデルの形状なんかを工夫しているのでしょうか?
とにかく、助かりました。ありがとうございました。
822 :
821:2006/02/15(水) 02:54:33
>また、メッシュの頂点のみでのカリングなのでしょうか?
…じゃないですね。良く読み返したら。頂点か交点ってありますね…。
あと、モデルを包むOBBでもやってみようかと思っているんですが、
結局視錐台の面・線分とOBBの接触判定しか思いつかないです。
OBBと、ある無限平面の裏側領域との接触、なんて判定は出来ないものか、
とも考えていますが…。出来れば視錐台の面の分だけOBBとチェック
すれば済みそうですが…。
壁なんかに隠れたモデルもカリングしたいと考えているんですが、
それをやるならOBBでもメッシュでも関係ないか…??
…とにかく、そんなようなことが目的です…。
お礼はチョコでいいよ
友人が泣いて喜びそうだ
射影空間は直線が直線じゃなくなるから
カリングにはお勧めしないな。
つーか使えそうで使えない技法
あまり答えになっていないかもしれないけど、とりあえず書いておく。
>>821 たいていバウンディングボックスやバウンディングスフィアで
チェックするよ。
メッシュについてチェックしたいなら、射影行列から視垂体を表す
平面の取得の際に、メッシュのローカル座標に変換すれば問題無いと思う。
ボックスとかスフィアならワールド座標かな。
頂点だけであれば射影行列かけて820で書いたような条件で
チェックしてもいい。
> 壁なんかに隠れたモデルもカリングしたいと考えているんですが
最近のGPUについて言えば、あまり細かいことは気にしなくて
いいんじゃないかな>カリング
頂点シェーダはまずボトルネックにならないし、ピクセルシェーダは
Z-PrePassするだけで余計な付加は十分に抑えられるし、視垂体
内での遮蔽情報を調べるのは、労力に見合った結果を得られないと思う。
GPU GemsにGPUへの問い合わせを利用したオクルージョンカリング
についての記事もあったけど、自分が使うことは無さそうかな。
当たりの細かいところが気になるならこの本読むのがおすすめ。
ボリュームなんかについても詳しく書いてる。
当たりを扱った本ではかなりの良書。高いけど。
金銭的に厳しいなら立ち読みで様子を見るのがいいかも。
ttp://www.amazon.co.jp/exec/obidos/ASIN/493900791X/qid=1140095927/sr=1-1/ref=sr_1_10_1/249-2641505-5770760
お前らどうしてそんなにレベル高いのさ
>>828 いや、このぐらいならふつーにゲーム作ってるとふつーにみにつくとおもうけど?w
まだそこまで行ってない
大体固定レンダリングの機能は覚えたんだけど次何すればいいのかわかんね
2Dゲーム講座はたくさんあるのに3Dとなると全然ない
832 :
821:2006/02/17(金) 01:17:31
>826 さん
マジですか!?せっかくつくったのに…(という程のものでもないか…)。
直線が直線じゃなくなるというのはZが0になる地点をまたいだら、と
いう感じですか?
う〜ん。とりあえずは一応動作してはいますが…。やっぱり駄目かな…。
>827 さん
再びどうもです。とても参考になります。
>たいていバウンディングボックスやバウンディングスフィアで
>チェックするよ。
バウンディングボックスは軸に沿ったやつですか?ではなくて分離軸?
…ていうか分離軸ですね。
822でも書いたんですが、分離軸で視錐台とのヒットの方法がいまいち
思いつかなくて…。考え中です…。
>最近のGPUについて言えば、あまり細かいことは気にしなくて
>いいんじゃないかな>カリング
なるほど。
ただ、オンボードを視野に入れているのできっちりやろうかと思ったのですが、
LODしたあとの視錐台カリングが思いの他効果なくてびっくり(逆にやや遅く…)。
LODはかなり効果ありましたが。壁カリングはしなくていいかなぁ。やっぱり。
>当たりの細かいところが気になるならこの本読むのがおすすめ。
ぜひ読みたいですが(出来れば立って)近隣の本屋にはまずないだろうなぁ…。
買うにしても先にチラッと見てみたいし。
レスどうもでした。
>>830 次は当たり判定とかがいいんじゃないかな?あとサウンドがあればゲーム作れるし。
そのままシェーダーとかグラフィックのエフェクトに行く人も多いと思うけど、
ゲーム作りたいとしたらばそのへんからどうすか?
>>833 >当たり判定
三次元の当たり判定難しそうだね・・ゲーム作りたいんでそっち方面頑張ってみます。
地面は土テクスチャ貼り付けた板を置くとしてマップ上のオブジェクトはどうやって配置するんでしょうか?
>>834 まずはモデルを表示してからじゃねぇの?
アニメーションは難しいから手を出さない方がいいと思うよ。
先にモデルを表示だけして(ヘルプのチュートリアルで十分)その時点でゲームを作る。
当たり判定もこのとき必要になる。
んで、その後、暇があったらアニメーションでもなんでも手を出せばいいよ。
多分、今の時点でアニメーションに手を出しても全然成果上がらないと思うので注意。
>>835 だよなぁ
なんで、みんな自分の能力を遥かに超えた事を最初からやりたがるんだろう
目標とするのは良いと思うが、他力本願じゃ・・・
簡単な所から一歩一歩やってけば、自然と解決できるようになる
DirectXの話はよそでやりなよ
ここは初心者スレだよ?
( ゚ρ゚)ポカーン
>>835 そうだね適当にモデリングしてみる
>アニメーションは難しいから手を出さない方がいいと思うよ。
スキンメッシュの説明読んで吐き気がしたくらいだから大丈夫だと思う
>>836 一度やってみないと自分がどれくらいでいるか分からない
それで実際にやってみると全然できなくて鬱
また詰まりそうなんでCマガの3DRPGの本でも買ってしばらく勉強してみる
ポインタの説明だけの本が売れてるんだから、
スキンメッシュだけの本を書けば売れる気がする
でも誰も書かないな・・・
坂本なんちゃらの3DRPGは
3Dに見立てた2Dの様な起臥す
本は買ってないがな!サンプルだけ見た
3Dサンプルがエラーが出て動かないという悲劇
>>840 一部に欲しいという人はいるだろうけど、数は出ないよ。
技術書籍の売れる数は入門書を最下層としたピラミッド。
ポインタでつまずく人は多いけどスキンメッシュでつまずく人は少ないから・・・・
たぶん、ポリゴンで2D描画やったほうが売れると思うよ
DirectGraphic本は3D描画ばかりで2Dないものな
>>845=DirectGraphicヲタ
面接官「得意なものは何ですか?」
>>845「DirectGraphicです」
面接官「得意な言語は何ですか?」
>>845「DirectGraphicです」
面接官「はい、では、自己アピールをお願いします」
>>845「DirectGraphicです」
面接官「好きな食べものは何かありますか?」
>>845「DirectGraphicです」
面接官「では最後に何か質問等ありましたらどうぞ」
>>845「DirectGraphicです」
>>845テラキモス
DirectGraphicsでないところが気になって仕方ない。
DirectXGraphicsがいつまで経ってもDirectGraphicsと呼ばれるのが気になってしょうがない。
849 :
デフォルトの名無しさん:2006/02/17(金) 15:23:42
ねえサウンドって地味にムズくない?
セグメントをロード&解放するタイミングがうまくとれない。
850 :
デフォルトの名無しさん:2006/02/17(金) 15:29:51
シェーダーって具体的に何ですか?
852 :
デフォルトの名無しさん:2006/02/17(金) 16:21:44
>>850 具体的な説明が理解できないからここに来たんでしょ?
>>849 素直にDirectSoundインターフェース使った方がよくね?
854 :
デフォルトの名無しさん:2006/02/17(金) 20:25:32
>>852 それらしい質問スレがここだったからここで質問した
答えられないならいいけど
実際のところ、2Dゲームの参考書って今あるんでしょうか?
3Dゲームって全然興味ないんですが……
856 :
デフォルトの名無しさん:2006/02/17(金) 20:51:16
ステンシルバッファについての質問なんだけど
D3DDevice->SetRenderState(D3DRS_STENCILWRITEMASK, 0xfffffffff) とか
D3DDevice-> SetRenderState(D3DRS_STENCILREF, 0x01)
の0xffffffffと0x01ってなに?
スキンメッシュは難しくない。
アニメーションデータのコンバートが難しい(めんどくさい)のだと思う。
859 :
857:2006/02/17(金) 23:24:32
理解した
マスク値とステンシル参照値を掛けたものをD3DCMP列挙体で指定した方法で既に書き込まれている値と比較して
その結果が真となればD3DSTENCILCLIPOP列挙体で指定した値をステンシルバッファに書き込むのか
860 :
デフォルトの名無しさん:2006/02/18(土) 00:32:09
D3Dデバイスのミクスドモードってユーザー設定の余地以外で使われ方やメリットってある?
モデルを黒マテリアルで包んで上から撮影して作った影テクスチャを床に貼り付けたいんだけどどうやるの?
862 :
デフォルトの名無しさん:2006/02/18(土) 03:00:05
多分俺は世界一D3DXを使いこなしている
と思うほど話題にならない今日この頃
863 :
デフォルトの名無しさん:2006/02/18(土) 03:00:13
多分俺は世界一D3DXを使いこなしている
と思うほど話題にならない今日この頃
D3DX使わないマトリックスの設定とかどうやるの?
HLSLとやらを使うの?
D3DXまでだけじゃなくDirectInput/ShowもDLL化してほしい>MS様
もろにDLLなんだが。
ちがうよ。
868 :
デフォルトの名無しさん:2006/02/18(土) 14:01:07
DirectGraphicsでパレットアニメーションしたいんだけど、
ビデオカードがインデックスカラーに対応していない場合はどうすればいいの?
ピクセルシェーダ使えば実現できそうだけど、もっとスマートな方法はないだろうか・・・
色を変えたいエリアをアルファで持っておいて塗りつぶしたらどうよ
>>868 >パレットアニメーション
時代にあわねぇことするな。
同じ現象がほしけりゃピクセルシェーダしかねぇだろ。
>>869 よく分かんない><
>>870 やりたくないけど必要に迫られる時ってあるじゃない?
とりあえずピクセルシェーダで実装してみるよ。
thx
CPUでやるなら分かるが、ピクセルシェーダ?
D3DFMT_P8やD3DFMT_A8だっけ、そんな1画素8バイトのフォーマットって一般的に使えるものではないはず。
だから16bitや32bitのメモリを使ってパレットを格納するという、馬鹿みたいなことになる。
>>872 color//処理中のピクセルの色
pal//用意した擬似パレット
color.r=pal[color.a].r;
color.g=pal[color.a].g;
color.b=pal[color.a].b;
だからこんなことしてーんじゃねぇの?
インデックスカラーに対応してないビデオカードなんて存在するの?
>>872 D3DFMT_A8やD3DFMT_L8は普通に使えるよ。
またパレットのメリットはサイズ節約とパレットアニメの2つあるわけで
後者を望んでいるなら別に32bitフォーマットでもいい。
PS1.3系ならtexreg2ar、それより後のPSなら
>>873そのままでいけるな。
>>874 DirectX9対応ドライバではインデックスに対応していないカードが多いみたいだな。
昔持ってたGeForce256はDX8ではパレットが使えたのにDX9になったら使えなくなった。
板一枚でさえ表示できないかわいい俺様
878 :
デフォルトの名無しさん:2006/02/19(日) 02:17:00
質問失礼します。
平面に敷き詰めたポリゴンをDrawIndexedPrimitiveで描画しています。
XZ方向に100頂点づつ、(D3DFVF_XYZ | D3DFVF_DIFFUSE)のD3DPT_TRIANGLELIST で19602ポリゴン描画しています。
描画部をソースで書くと
pd->SetStreamSource(0, pb, 0, 16);
pd->SetIndices(pi);
pd->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 0, 58806, 0, 19602);
こんな感じです。
X800 で描画には成功しているのですが、重すぎて(1回の描画で30fps下回ります)困っています。
GeFo 6600 では9回描画しても60fpsを維持しています。
何処がボトルネックになっているか検討がつきません。
分かる方お願いします。
インデックスバッファは必要ない
波とか表現するんじゃね?
別の所で一方の環境に依存する報告されないエラーが出まくってる
882 :
878:2006/02/19(日) 12:02:39
>>879 >>880 返答ありがとうございます。
必要です。
>>881 私に答えていただいてます?
DrawIndexedPrimitiveは環境依存の命令って事でしょうか?
883 :
878:2006/02/19(日) 12:25:09
自己解決しました。
pd->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 0, 10000, 0, 19602);
としたら嘘の様に早くなりました。。。
アホな事で板汚してすいませんでした。。。
ハードウェア自体が環境依存でしょ。
SetRenderState で設定した値とかが影響してる可能性もあるし
DeviceCapsが云々という可能性もある。
3000ms … orz
>>883 頂点数を減らしたら、早くなるのは当然なんじゃ?
58806になってたからてっきり非共有頂点かと思ってたが、共有頂点なら10000が適切な値。
共有頂点を使用するならインデックスバッファも有効だが、
非共有頂点なら冗長になる(>879)。
頂点バッファに含まれる以上の不正な頂点数で処理しようとして、
X800のドライバが大量にエラーを発生させていた(>881)。
889 :
878:2006/02/19(日) 13:28:43
返答ありがとうございます。
まさに
>>887さんの言う通りで、19602*3の値を突っ込んでいたというのが原因です。
(
>>886描画的には変わりが無いので)
GeFoはその値が変でも続けて処理してるみたいですね。
XIAI 社製の X800 DV-256 を使用しています。
「X800のドライバが大量にエラーを発生」との事ですが、そのエラーリストの取得の方法を、できれば伺いたいのですが。
探してはいるのですが、ドライバ周りの事となると ATI にリンクが貼られているだけなんですよね。。。
>>878 直接数値入れるからそういうバグ引き起こすんじゃ?
ストライドはsizeof(Vertex)とか頂点数もN*Nとかポリ数も(N-1)*(N-1)*2とか
そういうの使うべきだと思うよ
892 :
878:2006/02/19(日) 13:59:32
>>890 返答ありがとうございます。
本物のソースではそうしてます。
>>891 返答ありがとうございます。
出力されてないっす >_<
893 :
デフォルトの名無しさん:2006/02/20(月) 21:18:51
質問です。
どこかのサイトでDirectDrawは古いから、
2DでもDirect3Dつかってテクスチャを描画したほうが良い
というのを以前見たのですが、DirectDrawはもう使わない方が良いのでしょうか?
895 :
893:2006/02/20(月) 21:35:34
>>894 迅速な回等ありがとうございます。
DirectX8.0で事実上削除されてるんですね。
MSDNでDirectX9(Managed)の項目にDirectDrawがあるのはどうしてでしょうか?
>>894 真面目に答える気が無いなら書き込まないでくれ
>>893 使わないほうがいいかどうかで言ったら、使わないほうがいいんじゃないの?
使ってみて後で後悔するのも一興
なんか DirectSound 使うと意外にフレームレートを
持っていかれるんですけど、ふつうどんなもんですか?
SpriteってDrawの一部?
>900
DirectX Graphicsの一部
アニメ視聴って生活の一部?
903 :
デフォルトの名無しさん:2006/02/21(火) 08:45:37
VC++6使っています。DIRECTX2006.1のサンプルのプロジェクトファイルをタブルクリックで開いて、コンパイルをしたら多くのエラーが出てしまいます。なにか設定が必要なんでしょうか?
苦労する時間を金を貯めることに使ったほうが早い
今VC6使う理由ってあんの?2005にしようよ。
最新DirectX SDKのサンプルはもちろんのこと
割と転がってるVC6用のサンプルもVC2005で開いて変換すりゃ大抵ビルド出来るよ。
>>906 動作が軽いからVC6
VC.NETからコンパイラ一式をVC6にコピーしてビルドすると約15〜20%ぐらい速い
なぜかって?VC.NET内部が中間コードを 「いちいち翻訳して」 動いているからだよ
VCが頭打ちになったからってUIをV1.0に戻すMSはクズだ
金ならWINで儲けてるんだから開発環境ぐらいいいだろうが
これ以前にビルドするとカーソルが飛ぶなんて最低だろ?
ハイハイ、ワロスワロス
初心者にビルドにかかる時間なんて大して重要じゃないだろ。
DirectXSDKサンプルにVC6のプロジェクトがもう無いから
素直にVC2003かVC2005にした方がいい。
910 :
デフォルトの名無しさん:2006/02/21(火) 13:22:39
サポートしてないんですね。諦めて2005買います。レスありがとうございました。
ついでに俺のも買っておいてくれ
おごりで
「いちいち翻訳して」動作しないように設定すりゃいいだけじゃん
>>910 今ならただで手に入るだろ
とか書いておきながら自分ではまだVC6使ってる
いまだにメニューの変更やらに慣れない
単純にDirectXやるだけならVC2005Expressで十分だよね。
しかもタダで手に入るのにVC6のStandardと違って最適化はフルサポートしてやがる。
些細なことだけどwin32アプリケーションがウィザードにないのがちょっとね
DirectXの場合はSampleBrowserからプロジェクトをコピーしてくるから
そもそもウィザードは使わないけどさ
916 :
デフォルトの名無しさん:2006/02/21(火) 15:29:24
↓ ↓ ↓
→ SampleBrowserからプロジェクトをコピーしてくるから ←
↑ ↑ ↑
この中に一人、EmptyProjectを知らない奴がいる・・・誰とは言わないが
一応BorlandC++CompilerでもDirectXは使える
俺みたいな貧乏人にはおすすめ
し! _ -── ‐- 、 , -─-、 -‐─_ノ
小 B // ̄> ´  ̄  ̄ `ヽ Y , ´ ) B え
学 C L_ / / ヽ C |
生 C / ' ' i C マ
ま が / / く !? ジ
で 許 l ,ィ/! / /l/!,l /厶,
だ さ i ,.lrH‐|'| /‐!-Lハ_ l /-!'|/l /`'メ、_iヽ
よ れ l | |_|_|_|/| / /__!__ |/!トi i/-- 、 レ!/ / ,-- レ、⌒Y⌒ヽ
ね る _ゝ|/'/⌒ヽ ヽト、|/ '/ ̄`ヾ 、ヽト、N'/⌒ヾ ,イ ̄`ヾ,ノ!
l の 「 l ′ 「1 /てヽ′| | | 「L! ' i'ひ} リ
は ヽ | ヽ__U, 、ヽ シノ ノ! ! |ヽ_、ソ, ヾシ _ノ _ノ
-┐ ,√ !  ̄ リ l !  ̄  ̄ 7/
レ'⌒ヽ/ ! | 〈 _人__人ノ_ i く //!
人_,、ノL_,iノ! /! ヽ r─‐- 、 「 L_ヽ r─‐- 、 u ノ/
/ / lト、 \ ヽ, -‐┤ ノ キ 了\ ヽ, -‐┤ //
ハ キ { / ヽ,ト、ヽ/!`hノ ) モ |/! 「ヽ, `ー /) _ ‐'
ハ ャ ヽ/ r-、‐' // / |-‐ く | > / / `'//-‐、 /
ハ ハ > /\\// / /ヽ_ ! イ ( / / // / `ァ-‐ '
ハ ハ / /! ヽ レ'/ ノ > ' ∠ -‐  ̄ノヽ /
{ i l ! / フ / -‐ / ̄/〉 〈 \ /!
最近荒らしが沸くようになったな
>>919 2004(たぶんOct)ぐらいでコンパイルできないサンプルあったけど今は大丈夫?
昔スレでも話題になって結局できないって結論になってたけど
Sampleビルドしたことないからわかんね
>>912 設定ってなんだよ?
devenv.exeの挙動を設定する方法あんなら教えろよ
ダイアログエディタはVC6の方が使いやすいね。
DirectXと関係ないが。
リソースエディタも無いしな>2005Express
リソースエディタ無しで実用的なウィンドウアプリ作れるん?
作れることは作れる
VC6から2003飛ばしてVS2005買ったけど
リソースエディタがVB並に使いやすくなって感動した。
931 :
デフォルトの名無しさん:2006/02/21(火) 23:20:06
CVector3 (Float fPx, Float fPy, Float fPz)
で確保したデータの参照の仕おしえて〜
例:
CVector3 A(10,10,10);
printf("%f",A.fPx);
でOKなのか!?
(°д ゚)ハァ?
CVector3& ref = &A;
934 :
931:2006/02/22(水) 00:23:26
事故かいけつ。
↑気にしないでくださいな
CVえctor3.Print();
DirectXを始めるにあたって、気をつけたこととかあります?
とにかく、Helpファイルのチュートリアルを理解する、とか。
人に聞く前に、自分でやれる事はすべてやる
個人サイトで公開されてるDirectXのラッパーライブラリには手を出さないとか。
dllやlibで提供されてるものはいじりようが無い上にバージョンアップが無ければそれ止まり。
ヘッダファイルで公開されてるモノは弄るとどこに影響出るか分からないし
大元のDirectXが数字1つ上がるだけで仕様がガラっと変わったりするから対応出来なくなる。
939 :
デフォルトの名無しさん:2006/02/22(水) 16:29:16
>>936 書籍の内容と最新版DirectXの内容は別
>>937 それぐらいのことわかったうえで聞いてるんです。
自分では想定してなかったことだってアドバイス貰えるかもしれないでしょう。
>>938 ラッパーライブラリは参考程度に見たほうがいいと言われました。
バージョンアップとかそういう話ではなくて今学ぶうえでの質問をしてるんですよ。
仕様の変化への対応なんて先の話でしょう。
>>939 そのようですね。
何冊か読んでみたのですが最新のはかなり多機能に思えました。
こういうときは古い仕様のままある程度理解するほうが先でしょうか。
それとも最新のDirectXから始めるべきでしょうか。
始める前から、教えてくれか・・・
教えてクンマンセー
>>940 大体古いのからでもいいんじゃね?ただ、DirectX8以下は論外
DirectXゲームグラフィックスプログラミングver2とかDirectX9入門辺りがお勧め
>>941 上級者スレ逝けば?
>>940 >自分では想定してなかったことだってアドバイス貰えるかもしれないでしょう。
自分で想定した事を教えてください。
>>940 次に質問するときは先に「慇懃無礼」の意味を調べてから来いよおまえ
>>941 始める前だからこそ何を買っていいのか何から手をつけていいのか悩みます。
>>942 ありがとうございますその2つで検討してみます。
時間がないので凄く助かります。
>>943 想定といいますか何といいますか4月までに学びたい一心なんです。
できるだけ最小限のステップで形にしたいんです。
ラッパーライブラリを使ってると自分で作ったと見なされないとかは聞きました。
>>944 それは申し訳ないと思います。
947 :
938:2006/02/22(水) 17:43:58
>>946 >ラッパーライブラリを使ってると自分で作ったと見なされないとかは聞きました。
というかモノにならないから初心者だったとしても
これから勉強していこうって人には勧め出来ない。
>>946 1ヶ月でマスターするのは無理に近い
毎日引きこもって、寝る間も惜しんで勉強すれば可能かもしれないけど
普通は数ヶ月かけて習得するようなもの
なにせ固定レンダリングパイプラインの設定が半端なく多い
> 始める前だからこそ何を買っていいのか何から手をつけていいのか悩みます
言語、参考書、理解レベル等含めて今どういう環境が整っているのか?
> 4月までに学びたい一心なんです。できるだけ最小限のステップで形にしたいんです。
形というのは何を指しているのか?ポリゴン表示 1つの作品
そういうところまで書いて
自分が欲しいアドバイスを引き出せるような質問が出来る奴なら
丁寧語じゃなくても好感持てるのになぁ
>>947 アドバイスありがとうございます。
DirectXの機能をどんなふうに使うのか参考程度に見るぐらいにしておきます。
>>949 時間的に難しいのはわかります。
作品提出用としてある程度形になればいいのでマスターと呼ぶレベルまでは望んでません。
マスターするのは入社してからでいいかなと思ってます。
>>950 C言語とC++言語とVBはある程度わかってます。
参考書はDirectXのは持ってません。
DirectXは素人レベルでして添付されてるものを動かして動作確認している段階です。
VBで簡単なマルバツゲームとかしりとりゲームは作れます。
企画持ち込み兼プログラマーとして作品提出するつもりです。
今は企画の一部とか最初の部分をDirectXを使って動くものにしたいんです。
最終的にはネットRPGとして売る計画です。
入社用かよ・・・あきらめろw
>VBで簡単なマルバツゲームとかしりとりゲームは作れます。
>VBで簡単なマルバツゲームとかしりとりゲームは作れます。
>VBで簡単なマルバツゲームとかしりとりゲームは作れます。
>VBで簡単なマルバツゲームとかしりとりゲームは作れます。
>VBで簡単なマルバツゲームとかしりとりゲームは作れます。
>VBで簡単なマルバツゲームとかしりとりゲームは作れます。
>参考書はDirectXのは持ってません。
>参考書はDirectXのは持ってません。
>参考書はDirectXのは持ってません。
>参考書はDirectXのは持ってません。
>参考書はDirectXのは持ってません。
>参考書はDirectXのは持ってません。
>ある程度
これで分かると思ってんのか池沼。
これでは4月までに形あるものを作るのは無理だな。
ネットRPGなど不可能だ。
ゲ板逝けよ、お前と同じレベルの厨房がウヨウヨしてる。
勘違いの激しい子か。生きるの大変だろうな。
はい次の方どうぞー
937 名前: デフォルトの名無しさん [sage] 投稿日: 2006/02/22(水) 15:10:00
人に聞く前に、自分でやれる事はすべてやる
940 名前: デフォルトの名無しさん [sage] 投稿日: 2006/02/22(水) 16:57:03
>>937 それぐらいのことわかったうえで聞いてるんです。
951 名前: デフォルトの名無しさん [sage] 投稿日: 2006/02/22(水) 18:35:48
(中略)
参考書はDirectXのは持ってません。
ただの釣りだろ
例え作れたとしても素人が一月やそこらで作ったものが他の香具師に勝るわけねぇだろ。
季節の変わり目はオカシイのが出てくるな。
>>951 >最終的にはネットRPGとして売る計画です。
目標を高く持ちすぎると挫折の原因になる
一人でネトゲが作れるのは魔人レベルだと思われ
普通の人間がそれなりのMMORPGを作れるようになるのは勉強初めてから数年後かと
まずは本当に簡単なシューティング程度を作れるように
DirectXの勉強もいいけどゲームシステムの方の勉強もやっておかないとゲーム作りは難しい
まずはDirectXの本を買って基礎的なことを勉強した後
ゲームシステムに入ってわからないところがあればDirectXなりゲームプログラミングの本を見ながら作っていく
C/C++の復習も忘れない程度にする
>>952-956 お前らにもそんな時期があっただろ?
>>958 俺にもあったぞそんな時期。
オンラインRPG作ろうとしてたっけな。
厨とリアルを読み始めてからDirect3Dで2Dの簡単なゲームが作れるまで2週間かかったが。
オンラインRPGを作ろうと色々模索した結果、壁の高さを知ったが
DirectXとWinsockが身に付いた。
「こういうのを作りたい」 と思った時、手取り足取り教えて欲しいと思えるもんなのかね。
普通だったら自分で調べたくなるよね?
「何か作りたいんだけど何を調べたら良いんでしょうか?」的な聞き方はやる気があるとは思えない。
初心者とか関係無いでしょこれ。少なくとも俺にそんな時期は無かったぞ。
>>952 そう言われましてもやってみないことにはわかりませんよ。
>>953 ネットRPGは会社に入って経験を積んでから作るという意味です。
4月までに作るわけではありません。
>>957 ゲームのプログラムだけで勝てるとは思ってません。
だから企画持ち込み兼プログラマーとして考えているんです。
企画はずっと温めてたやつなので自信ありますしシナリオもキャラ設定もオリジナルです。
あまりこういうこと言いたくありませんが過去にコミケ用として作ろうとしました。
そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>>958 ありがとうございます。
企画にそった簡単なゲームを作る予定です。
いきなりネットとかRPGとかは無理なのはわかってます。
とりあえず自分が動いて敵を倒していくようなアクションものを作ります。
>>959 なるほど2週間ですか希望がわいてきました。
>>960 手取り足取り教えてほしいなんて言ってません。
学んでいくうえでやってはいけないこととか遠回りになることを知りたかっただけです。
はぁ・・・ゆとりゆとり
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
>そのときのプログラマーが脳なし腕なしだったのでやめたんです。
もういいよ
>>963 これを作れって言っても、作れないって言う。
実際に何もできないんだから、脳なし腕なしでしょう。
>>964 大学生です。
>>966 偽者ですか?余計な事しないでください。
>>961 >
>>959 >なるほど2週間ですか希望がわいてきました。
ちなみに俺は3Dで大きく躓くまでDirectXに関して人には聞かなかった。
2Dくらいなら他人に聞かずともある程度は自分で調べる力があったからな。
もし人に聞くしか能がなければ、教えてもらえるまでいつまでもそこで停滞しなければならない。
停滞している時間は非常に無駄だよ。
プログラム技術云々以前にそこで俺とアンタに大きな違いがある。
その差をどう考えるかはアンタの自由だが。
>963
こんな奴と組んでたぐらいだから、案外その通りかもなw
>企画はずっと温めてたやつなので自信ありますしシナリオもキャラ設定もオリジナルです。
ゲ製板逝けよ池沼 仲間がイパーイいるぞw
みんな口を揃えて同じことを言うんだなこれが(テラワロス
971 :
966:2006/02/22(水) 20:24:18
まぁ自分でうじうじ悩んでるのも停滞と言えば停滞だから
聞くときは聞いた方がいいと思うけどね。
>>964 ゆとり教育自体は50年近く前から始まってるぞ
世代で区別するのは目糞鼻糞を笑うようなもん
>>967 すいませんがどなたでしょうかID出ないからってそういう行為はどうかと思います。
あのプログラマーは全く何も作れなかったわけではありません。
企画書を見せても難しいだの時間かかるだの文句ばかり言ってやろうとしないんです。
自分は高3ですし大学なんて行かなくても入社する自信あります。
>>968 企画では完成の域に達してるわけですから少なくともゲームを作る能力はあるはずです。
ただそれをDirectXで表現できてないだけです。
>>970 このまま4月に入社して最初は簡単な仕事を貰うと思いますが、
その次には自分の企画をやるつもりです。
早ければ来年には完成でしょうから口だけじゃないことに気づくでしょう。
正直ああいう人らと同じに見られるとは思いませんでした。
所詮ああいう人らは同人レベルの自己満足で終わりでしょう。
\\_
:三ニ=:::::::ヽ
:ヽ.ニ=::て.>廴_ スルー
三.ヽ= (⌒ヽ;:;:;,.二)
ニ=-ヽ:ヽ、,∠.^^ぅ
〃,べ= ̄ニ二 ̄
/;:ィリ ノノ ,.へヽ
;:ヘ/ ̄ ̄ ̄Vヽヽ
ソ ├┤|
>正直ああいう人らと同じに見られるとは思いませんでした。
>所詮ああいう人らは同人レベルの自己満足で終わりでしょう。
厨房が君を指してそう言ってるよw
ただ一つ言える、永久的かつ完全な事。
俺の会社には不要な人材。
おまえの会社こそいらない
俺はいらない
そっか。。。
銀行から褒められるんだがな。。。
よくいるな 「自分は他の香具師とは違う」「自分には能力がある」って香具師
こう言う香具師に限って大成どころか落ちぶれていく
例外はまずいない
>>972 うん、3Dでにっちもさっちもいかなくなって聞いたorz
>>974 >企画では完成の域に達してるわけですから少なくともゲームを作る能力はあるはずです。
「〜はずです。」ってのは趣味の範囲なら通用するが、社会では通用しないってこった。
>これを作れって言っても、作れないって言う。
>実際に何もできないんだから、脳なし腕なしでしょう。
と、自分で作れない奴がほざいてもねぇ
>これを作れって言っても、作れないって言う。
>実際に何もできないんだから、脳なし腕なしでしょう。
こいつ蹴落として俺がこの会社変えてやる!とは思わなかったのかい?
>正直ああいう人らと同じに見られるとは思いませんでした。
>所詮ああいう人らは同人レベルの自己満足で終わりでしょう。
お前とどこが違うんだ?
現時点で叩かなくても、社会に出れば嫌でも自分の実力を知ることになるよ。
そこで反省できればまだ救いがあるが、
「俺が悪いんじゃない、社会のシステムが悪いからいけないんだ」
叫び続ける奴もいるけどね。
そうなったらフリーター、ニート街道一直線。
入社ってからにはどっかの企業だろうけど どうせ下請けだろ
いや、
>>951以下は偽者だとしてもだよ。
>それぐらいのことわかったうえで聞いてるんです。
こんな事書く奴いるんだw
世の中広いなぁ。
こんな奴ばっかりDirectXに手を出すんだよな。
今こそ言わせてもらおう!
D i r e c t X 終 わ っ た な !
O p e n G L は ネ 申 !
>>961 はっきり言っておまえ程度の能無し腕無し初心者レベルだと
やってはいけないことや遠回りとなることもなど一つもない
全てがこやしだ
おまえは何でも学ぶ必要がある
全ての無駄だと思うことをやれ
繰り返して言う
おまえ程度の低レベル初心者は全ての苦労が勉強だ
あらゆる無駄を経験しろ
これは煽りではない
おまえに対する最大限の優しさだ
噛み締めろ
俺を抱いてくれw
【C++】DirectX初心者質問スレ Part8 【D】
http://pc8.2ch.net/test/read.cgi/tech/1140614455/ _,,..,,,,_
、, ,,, 、,, ./ ,' 3/ ̄ヽ-、_ 、 ,, @
、, /l. /____/ n ヽ|ノ,,
@ ,,, 、,,  ̄,, ̄ ̄ ̄ ̄,, ̄ ,,, 、,,
ヽ|ノ 、、, ,, 、,, , " ,, 、、, ,,
/:
∧∧ / :
(,,゚Д゚/ :
_ / つ/) _ :
〜(⌒)__) /| ,, :
 ̄ ̄ ̄ ̄ ̄|/,,,
〜〜〜〜〜〜〜〜〜〜〜
998 :
デフォルトの名無しさん:2006/02/22(水) 22:45:06
998
∩∩
| | | |
( ゚ω゚) <しけんはんい ここまで
。ノДヽ。
bb
1000いっただきぃ〜♥
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。