【C++】 DirectX初心者質問スレ Part10 【C】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/07/25(火) 21:38:16これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ
【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。
【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。
前スレ
【C++】 DirectX初心者質問スレ Part9 【C】
http://pc8.2ch.net/test/read.cgi/tech/1144878498/
0002デフォルトの名無しさん
2006/07/25(火) 21:38:56MSDN DirectX
http://www.microsoft.com/japan/msdn/directx/default.aspx
DirectX Home Page
http://www.microsoft.com/japan/windows/directx/default.mspx
BBX (掲示板)
ttp://isweb8.infoseek.co.jp/computer/bbx/
DXライブラリ置き場
ttp://homepage2.nifty.com/natupaji/DxLib/
Lamp:ゲーム開発とその学習をサポートするミドルウェア
ttp://lamp.sourceforge.jp/
TWINTAIL LOVERS.
ttp://www.twin-tail.jp/
Pastel's Laboratory
ttp://www.roy.hi-ho.ne.jp/pastel/home/index.html
GamDevPukiWiki - DirectX総合スレ (過去ログ等)
http://gamdev.org/w/?%5B%5BDirectX%C1%ED%B9%E7%A5%B9%A5%EC%5D%5D
GamDevPukiWiki - 3DCG製作ソフト (過去ログ等)
http://gamdev.org/w/?%5B%5B3DCG%C0%BD%BA%EE%A5%BD%A5%D5%A5%C8%5D%5D
ゲームを作るための素材を集めよう まとめサイト
http://paw.my-sv.net/index.html
0003デフォルトの名無しさん
2006/07/25(火) 21:58:16ポリゴン1つ分の領域(頂点3つ分)をLockして、DrawPrimitiveで描画するとうまくいくのですが、
メッシュ全部のポリゴンを一度にLockして描画すると、うまくいきません。
IDirect3DVertexBuffer9::Lock()はD3D_OKを返しているのですが、
確保した領域に書き込もうとするとなぜか落ちてしまいます。
VRAMもメインメモリも十分にあると思うんですが、
何か原因に心当たりのある方いましたらレスください。
0004デフォルトの名無しさん
2006/07/25(火) 22:08:19・変なフラグを指定している
・ポインタを渡すところで、変な値をキャストして無理やり渡してる
0005デフォルトの名無しさん
2006/07/25(火) 23:32:19日本語でお話出来るようにならないかな?かな?
0006デフォルトの名無しさん
2006/07/25(火) 23:38:050007デフォルトの名無しさん
2006/07/25(火) 23:39:150008デフォルトの名無しさん
2006/07/26(水) 00:23:32翻訳エンジン組み込む
0009デフォルトの名無しさん
2006/07/26(水) 00:47:38日本NO1、MMO製作プロジェクト始まる!
http://www112.sakura.ne.jp/~kaientai-project/creategame.htm
0010デフォルトの名無しさん
2006/07/28(金) 01:48:05↓今は以下のようにしてます、なんかほかに方法ないですかね?
for( int i = 0; i < m_iIndexMax; i++ )
{
m_pSecSndBuf[ i ]->Play( NULL, NULL, NULL );
}
0011デフォルトの名無しさん
2006/07/28(金) 01:50:090012デフォルトの名無しさん
2006/07/28(金) 02:06:00ダブルバッファリング
0013デフォルトの名無しさん
2006/07/28(金) 02:08:06ttp://www13.plala.or.jp/kymats/study/multimedia.html
0014デフォルトの名無しさん
2006/07/28(金) 02:21:54両方を組み合わせて作りたいのですが、なんとか回避できないでしょうか
エラー E2238 C:\borland\test\DxDirectX.h 2822: 'LPDIENVELOPE' の宣言が複数見つかった
エラー E2344 C:\Program Files\Microsoft DirectX SDK (June 2006)\Include\dinput.h 219: 一つ前の 'LPDIENVELOPE' の定義位置
0015デフォルトの名無しさん
2006/07/28(金) 02:36:420016デフォルトの名無しさん
2006/07/28(金) 03:00:03本体のcppの方でincludeしてみましたが、同じエラーでした。
やってること違うのかな・・
0017デフォルトの名無しさん
2006/07/28(金) 05:03:470018デフォルトの名無しさん
2006/07/28(金) 06:53:180019デフォルトの名無しさん
2006/07/28(金) 10:35:240020デフォルトの名無しさん
2006/07/28(金) 10:48:030021デフォルトの名無しさん
2006/07/28(金) 10:58:490022デフォルトの名無しさん
2006/07/28(金) 11:11:440023デフォルトの名無しさん
2006/07/28(金) 11:21:040024デフォルトの名無しさん
2006/07/28(金) 12:13:52elをメインに今まで進めてたんですが、最近になってDxを知って、Dxの関数も使えたら楽だなぁ・・と。
とりあえず詰まってたところはなんとか解消出来たので、Dxに移行する事も視野に入れてまた考え直してみます。
0025デフォルトの名無しさん
2006/07/28(金) 12:36:00とっくにwww
作者死んじまったんじゃねぇのwwwww
つーわけで俺はLUNAを薦めるね
0026デフォルトの名無しさん
2006/07/28(金) 12:39:240027デフォルトの名無しさん
2006/07/29(土) 02:39:31時々見かけるラッパーライブラリに、
SetRendeState()に与える値を自前で控えておいて、
直前に与えた値と違いがなければ実際のSetRenderState()の呼び出しを
行わないとか、DrawPrimitive()の手前でまとめて実行するようにしてたりするのだけど、
こんなんを自前で実装する意味ってあるのかな?
たとえばこう。
DWORD m_RSLighting = TRUE;
...
HRESULT
SetLight(ID3DDevice& device, DWORD state)
{
if(m_RSLighting == state)
return S_OK;
m_RSLighting == state;
return device.SetRenderState(D3DRS_LIGHT, state);
}
GetRenderState()等がある以上、D3DDevice()内部でもステートは管理してるのだろうし
SetRenderState()のカラ呼び自体はパフォーマンスに影響するとは思えないのだけど…。
いや、確かめてないからわからないんだけどね。
0028デフォルトの名無しさん
2006/07/29(土) 07:05:560029デフォルトの名無しさん
2006/07/29(土) 08:15:33まあ計測結果を知りたいなあ
0030デフォルトの名無しさん
2006/07/29(土) 10:03:21デバッグ出力レベルを最大に上げてみ
「同じステートをまた設定してるYO」というwarningが出まくるから
warning出すくらいだから、多少はパフォーマンス落ちるんじゃね
0031デフォルトの名無しさん
2006/07/29(土) 10:29:05まぁ、>30もくだらない間違いを書いてないで素直に指摘するべきだったな。
そんな警告は絶対に出ないからね。
0032デフォルトの名無しさん
2006/07/29(土) 10:46:03そもそもSetRenderStateの呼び出し自体はランタイムの領域なんだから
無駄にDrawPrimitive時にステート変更命令なんて送らないと思うけど。
0033デフォルトの名無しさん
2006/07/29(土) 10:51:25お前も試してから書けよ
Ignoring redundant SetRenderState
0034デフォルトの名無しさん
2006/07/29(土) 10:56:150035デフォルトの名無しさん
2006/07/29(土) 11:07:46そもそも、>>27のコードと>>30の指摘とは直接関係がないしな。
0036デフォルトの名無しさん
2006/07/29(土) 11:26:190038デフォルトの名無しさん
2006/07/29(土) 11:59:09くだらない指摘だと思うんだが
0039デフォルトの名無しさん
2006/07/29(土) 12:03:1731は本質じゃない指摘を上から見下ろしてする、何の役にも
立たないレスってわけか。
0040デフォルトの名無しさん
2006/07/29(土) 12:22:00004127
2006/07/29(土) 13:16:21>くだらない指摘だと思うんだが
誤植マジごめん。
m_RSLighting = state;
こうね。
いや、自分で書いてるわけじゃないんだけど、行く先々でこんなコードを見かけるんだ。
あまりにもあちこちで遭遇するので、なんかそういう宗教でも流行ってんのかと思ったくらい。
俺の世間の狭さについては、この際置いといてもらって、
えーと、いらないでFAだよね?
「これがDirectXの常識です」くらいの指摘があったりすると、それはそれで助かるのだけれど。
0042デフォルトの名無しさん
2006/07/29(土) 13:21:13ほとんどだからそういうコードは書いてない。
ラッパーの実装が気になってきた時点でそんなもん卒業だと
思うんだけどな
0043デフォルトの名無しさん
2006/07/29(土) 13:26:10いやだから同じステートを指定すると警告が出ると言う指摘は無視なのか
自分に都合の良い結論出てるなら聞かなきゃいいのに
0044デフォルトの名無しさん
2006/07/29(土) 13:28:17つまり>>30と>>33なわけ
0045デフォルトの名無しさん
2006/07/29(土) 13:44:08warning出さないための処理を宗教だなんて言う奴はもっとアフォだな
0046デフォルトの名無しさん
2006/07/29(土) 14:26:43どれくらい意味があるか知りたいなら自分でベンチするしかない。
「なぜそのように書く人が多いのか」なら結論は出てる
0047デフォルトの名無しさん
2006/07/29(土) 14:27:56004827
2006/07/29(土) 14:32:59Direct3D9: (WARN) :Ignoring redundant SetRenderState
(余分なSetRenderStateを無視しました)
が出るんだね。
疑問に思ったのは、DirectX内部でも同等の処理をやっているのは確実だろうに、
これをその外側でもチェックするようにするのは定石なのかってこと。
もちろん同じステートの設定を繰り返し呼び出すことに意味なんかないに決まってるが、
誰もがご丁寧にSetRenderStateのラッパーを書くような事態は、正直少し異常に感じる。
この警告は減らすように努めるべきではあるけど、根絶を目指すほどのものでは無い様にも
思えるんだけど、どうなんだろうか。
0049デフォルトの名無しさん
2006/07/29(土) 14:38:09ここだと
>However, it would be advisable to keep track of these yourself,
>so that you can avoid the overhead of making a useless D3D call.
>The memory and processing footprint of doing this should be really low, anyways.
いらんD3Dの呼び出しを回避するために、自分で追っかけたほうがいいよ。
そのためのコストなんて小さなもんなんだし、
という人もいれば、
SetRenderState( A, valueA ) // set on device
SetRenderState( A, valueB ) // set on device
SetRenderState( A, valueA ) // set on device
SetRenderState( A, valueB ) // set on device - only value that gets used
DrawSomething()
こうなるので、PureDeviceでないなら単純に描画の手前でまとめて処理するように
心がければそれで終了と言ってる人もいる様に思える。
単純にSetRenderStateだけを自前でラップしたところで
SetRenderState( A, valueA ) // set on device
SetRenderState( A, valueB ) // set on device
SetRenderState( A, valueA ) // set on device
は防げないし。
ステートの変更を自前で控えておいて、Draw〜系の呼び出し時に
まとめて迎撃するのは意味がある様にも思えるけど、
これはD3Dの内部で同じことをやってくれてないのかなあ。
0050デフォルトの名無しさん
2006/07/29(土) 14:46:43つまり自前でやれば二重にチェックが出来る。
これで安全確実。
無駄だけどな。
005127
2006/07/29(土) 14:49:39言葉が足りなかったけど、要は疑問に思ってるのは、
階層持ったモデルの描画とかを自分で処理してて、必要ないステート類の変更を
しちゃったりしないよう心がけるのはまあ当然としても、DirectXの関数を1対1で
直接ラップするような仕掛けは必要なのかということ。
Drawの発行すべてで迎撃しようとおもったら、DirectXの描画関連を全部自前で
ラップしなおして、状態を自前で控えなきゃって話になっちゃうと思うんだけど、
こんなの処理する居場所として相応しいのはDirectXのDrawXXX系の内側であって、
ユーザー側が責任持つのは不自然な気がするんだが、どうなんだと。
ラッパーの動作を崩さないためには、ラッパー外でのD3D系の関数の呼び出しは
一切禁止しなければならないだろうし、そこまで徹底したラッパーが求められるとすると、
DirectXのAPIの存在意義に関わるような。
いや、DirectXはそういうものですってんなら、それはそれで構わないんだ。
定石としてはどうなんだってところが知りたいと。
性能考えたら「自前の管理はするべき」がFA?
好きにしろで終了?
0052デフォルトの名無しさん
2006/07/29(土) 15:07:28つステートブロック
最後のやつもステートブロックなら最適化される
0053デフォルトの名無しさん
2006/07/29(土) 15:11:14同じステートブロック内なら最適化されるけど、異なるステートブロックを
連続で適用した場合には、同じステートの変更はたぶん最適化されない。
0054デフォルトの名無しさん
2006/07/29(土) 15:13:53自分のエンジンでどっちがパフォーマンスが良いのか、
それは計測してみないと分からないから、そういうフィルターを実装してる人がいるんだろう。
しかし27は楽をしたがり、「いいから結論を教えろ」と威張っているのだ。
005527
2006/07/29(土) 15:50:28理解しますた。ありがとう。
どっちかっていうとステートを塊で管理するためのものだよね。
>>54
ずばりその通りだ!
で、どうなの?
どうなのよ。
いや、本当のところ言うと、とっくに計測されつくされて
答えは出てるものかとばっかり思ってたんだ。
けど、実際にこの種の仕組みを組み込んでる人に聞いても、
潔癖症的な理由の方が先行してて(つまり自分で書いたコード以外は信用できないという)、
あまり実測に基づいてるってわけじゃないケースが多かったのさ。
自分で試した限りでは、関数呼び出しのオーバーヘッド回避くらいにはなるけど、
回避コードが増える分、長い目で見たらトントンかマイナス収支な感じっぽいし。
GPUの足を引っ張るので無いなら、少々の(少々なら)CPU上の負担は無視する選択があるだろうし。
この種のフィルターを実装したくなる人の気持ちはわかるのだけれど、
それが本当に意義のあることなのかどうか、先達の皆様の声を拝聴したいだけなんです。
0056デフォルトの名無しさん
2006/07/29(土) 15:53:360057デフォルトの名無しさん
2006/07/29(土) 15:59:22デバッグのときズラズラーっと警告がでると邪魔だから対処してるだけなんだが
今時関数呼び出しだのifだので処理速度気にするバカはいないだろ
0058デフォルトの名無しさん
2006/07/29(土) 16:00:43005927
2006/07/29(土) 16:20:10初心者質問スレで質問して何が悪いんだー!
そう申し上げたい。
>>57みたいな理由でやるのはわかるけど、そのためにデバイスのステート変更を
全部自前で控えといて対処ってのは、明らかに話が大きすぎると思う。
自前SetRenderStateの中でGetRenderStateして、値が同じだったらセットしないで
警告を回避するとかでもいい気がするし。
>>55で書いたみたいな、自前SetRenderStateで処理してる人が何を主眼としてるのか、
それが知りたいわけですよ。
>今時関数呼び出しだのifだので処理速度気にするバカはいないだろ
は俺もそう思うけど、変に増えると読みづらくてかなわないじゃん。
もちろん、もし仮に自前チェックが意味無いならの話なんだけどさ。
0060デフォルトの名無しさん
2006/07/29(土) 16:35:21これでいい?
0061デフォルトの名無しさん
2006/07/29(土) 16:41:300062デフォルトの名無しさん
2006/07/29(土) 16:48:060063デフォルトの名無しさん
2006/07/29(土) 16:48:48誰か作ってくれ。
0064デフォルトの名無しさん
2006/07/29(土) 16:53:260065デフォルトの名無しさん
2006/07/29(土) 16:57:430066デフォルトの名無しさん
2006/07/29(土) 16:58:33ttp://www.otafuku.co.jp/
0067デフォルトの名無しさん
2006/07/29(土) 17:06:250068デフォルトの名無しさん
2006/07/29(土) 23:44:02Windows阪神
0069デフォルトの名無しさん
2006/07/30(日) 00:15:480070デフォルトの名無しさん
2006/07/30(日) 00:54:02俺住之江に済んでるけどそいつらにすごく共感できるんだよ。
「にいちゃんこれなんぼ?」「百万円」
これだけでぎゃはぎゃは笑える吉本ファンの脳みそはホント理解不能。
そんな俺があえて言おう!>>68はシベリア。
0071デフォルトの名無しさん
2006/07/30(日) 01:46:310072デフォルトの名無しさん
2006/07/30(日) 02:02:41いつも同じ単純なギャグや行動をすることで、見ている人が安心できるんじゃないかな。
0073デフォルトの名無しさん
2006/07/30(日) 02:30:27つーか、頭使うことを放棄してパターンに浸る安心感か?
0074デフォルトの名無しさん
2006/07/30(日) 03:36:590075デフォルトの名無しさん
2006/07/30(日) 14:39:590076デフォルトの名無しさん
2006/07/30(日) 14:44:38導入部分が大事なものも多い
0077デフォルトの名無しさん
2006/08/01(火) 00:43:24どのバージョンも未サポートみたいでインストールさえうまくいきません。
どのバージョンならインストールできたんでしょうか?お願いします
0078デフォルトの名無しさん
2006/08/01(火) 11:19:34Update December 2004がWin2000サポートのラスト
0079デフォルトの名無しさん
2006/08/01(火) 13:34:12アニメ BEST100
ttp://www.animedepot.biz/DVDlist/2005years_best.htm
1位
http://www.animedepot.biz/DVDlist/title/KVDVD0542.htm
2位
http://www.animedepot.biz/DVDlist/title/KVDVD0518.htm
3位
http://www.animedepot.biz/DVDlist/title/A18D2492.htm
4位
http://www.animedepot.biz/DVDlist/title/KVDVD0533.htm
5位
http://www.animedepot.biz/DVDlist/title/A18D2480.htm
6位
http://www.animedepot.biz/DVDlist/title/KVDVD0512.htm
7位
http://www.animedepot.biz/DVDlist/title/KVDVD0502.htm
8位
http://www.animedepot.biz/DVDlist/title/KVDVD0521.htm
9位
http://www.animedepot.biz/DVDlist/title/KVDVD0505.htm
10位
http://www.animedepot.biz/DVDlist/title/KVDVD0508.htm
008077
2006/08/01(火) 14:21:410081デフォルトの名無しさん
2006/08/01(火) 14:36:30簡潔にして最良のコメント
これはテンプレに入れるべきだな
過去スレでも何度か質問されてたし・・・
0082デフォルトの名無しさん
2006/08/05(土) 01:00:27Xファイルからメッシュを拡大縮小して呼ぶ方法ってない?もしくはそれに類似する方法教えてください。
0083デフォルトの名無しさん
2006/08/05(土) 01:06:02普通にスケーリングしたマトリクス乗算して描画しようよ。
変更後のサイズが固定で、法線正規化のコストを避けたいってんなら
読み込みの時に頂点加工するのも手だけど、ボーンとかまで書き換えなきゃならんし
面倒で意味ねーずらよ。
0084デフォルトの名無しさん
2006/08/05(土) 01:56:27それで個別に拡大縮小したかったわけです。
0085デフォルトの名無しさん
2006/08/05(土) 02:09:011モデル描画する都度、使うマトリクスは切り替えなさいな。
0086デフォルトの名無しさん
2006/08/05(土) 02:37:180087デフォルトの名無しさん
2006/08/05(土) 09:48:07DirectInputでキーボードのAcquire()に失敗した場合
ループまわして成功するまでAcquire()してみるですか?
それともスキップして次のフレームに委ねるですか?
0088デフォルトの名無しさん
2006/08/05(土) 11:04:230089デフォルトの名無しさん
2006/08/05(土) 23:06:140090デフォルトの名無しさん
2006/08/06(日) 00:04:31有効。
消したい場合は
#define DXTRACE_MSG(str) DXTrace( __FILE__, (DWORD)__LINE__, 0, str, FALSE )
#define DXTRACE_ERR(str,hr) DXTrace( __FILE__, (DWORD)__LINE__, hr, str, FALSE )
#define DXTRACE_ERR_MSGBOX(str,hr) DXTrace( __FILE__, (DWORD)__LINE__, hr, str, TRUE )
を使う。
_DEBUGがdefineされてない場合消えてくれる。
0091デフォルトの名無しさん
2006/08/06(日) 13:49:260092デフォルトの名無しさん
2006/08/06(日) 16:30:24今やっと色々ポリゴンを表示させてテクスチャを貼ることが出来たのですが
今の所は手順を
頂点バッファに頂点データを送る
SetStreamSourceする
SetTextureする
DrawPrimitiveで描く
という風にやってます。
これは毎回そうしないといけないんですか?
それとテクスチャは必ず描画の前にやらないといけないんでしょうか
もしかしたら何か効率的に出来るのか色々悩んでいます
0093デフォルトの名無しさん
2006/08/06(日) 17:50:22VRAMに送るのは一回でえぇょ。。。
0094デフォルトの名無しさん
2006/08/06(日) 19:36:59SetTextureはサンプルみたいな極小なプログラムならともかく
実際ゲームを作る段階になればガンガン切り替えることになるだろ
0095デフォルトの名無しさん
2006/08/06(日) 21:13:45ステートマシン、という言葉を覚えておくんだ。
DirectXの描画器は、常に最新の設定状態を覚えてる。
設定を変えないで描画を続けられるなら、それが一番低コストだけれど、
変えなきゃいけないところは変えるしかない。
効率よく変更を最小限にとどめるようにする努力は怠らない方がいいけど、
そうは言っても変えるしかない状況なんていくらでもある。
まずは気にしないでガンガン書くのがいいと思うよ。
0096デフォルトの名無しさん
2006/08/06(日) 21:22:27なるほど確かに頂点バッファに転送するのは最初にやればいいみたいですね
と言う事は、今はまだ3個くらいしか表示させてないサンプルなので
そのまま表示させてますが
実際は
変更があれば、頂点バッファの変更内容の変更
表示したいテクスチャのオブジェクトのポインタを渡して
SetStreamSource
SetTexture
DrawPrimitive
をループさせてたくさん表示させるってことでしょうか
少しわかってきました
これから複数の画像ともっとたくさん表示させて色々やってみます
ありがとうございました
0097デフォルトの名無しさん
2006/08/07(月) 00:34:27英語なので不安があり、おわかりになる方に相談したいのですが
dxdsk_jun2006.exeを
アメリカのサイトからダウンロードして
ダブルクリックすると
こんどは解凍の画面になって
Unzip
を選択して任意のフォルダに解凍して
インストーラーが起動すると思うのですが
解凍後のファイルは削除しても大丈夫なのでしょうか?
それとも何か意味あるんでしょうか?
教えていただけると幸いです。
0098デフォルトの名無しさん
2006/08/07(月) 00:46:490099デフォルトの名無しさん
2006/08/08(火) 03:21:12スクリーンの中心から離れれば離れるほど変換後の座標がズレていってしまいます。
なぜなんでしょうか?
ちなみにシューティングゲームを作っていて、自機や敵を3Dオブジェクトにして、弾をスプライトという風にやっています。
弾を発射するとき、弾の初期位置を決めるときに…アレ?…と言う感じです。
0100デフォルトの名無しさん
2006/08/08(火) 03:33:390101デフォルトの名無しさん
2006/08/08(火) 18:32:36CPU負荷を軽減するためにDirectDrawを使用しているのですが、
マルチモニタ環境下でデスクトップからサーフェイスにBitBlt
しようとすると激しく重いのです。
シングルモニタ時は秒間30回転送してもCPU使用率は0%で、
マルチモニタ時は秒間30回でCPU使用率100%に達しました。
マルチモニタ時には、DirectDrawサーフェイスはBitBltの
アクセラレーションが効かないようなところに確保されるのでしょうか?
それともまた別の原因があるのでしょうか?
試した事
・ビデオカードはG550とGeforceFX5600で試したが何れも同じ結果
・2つのモニタには同じ解像度と色数を設定した
・デスクトップ→(BitBlt)→DDBではモニタを跨いでもアクセラレーションは効いていた
・全てプライマリモニタに置いても状況変わらず
デスクトップ
↓(BitBltでコピー:ハードウェアアクセラレーション効いてない)
DirectDrawサーフェイス
↓(Bltで拡大縮小:ハードウェアアクセラレーション効いてる)
DirectDrawサーフェイス
↓(BitBltでコピー:ハードウェアアクセラレーション効いてない)
DDB
0102デフォルトの名無しさん
2006/08/08(火) 18:46:09まずはDirectXを初期化(?)して、
ウィンドウを黒で塗りつぶすところからはじめようと思い、
単なるウィンドウを表示するだけのプログラムをいじり始めました。
ソース2つ、ヘッダを1つの構成で、
1つ目のソースは、WinMain関数とウィンドウプロシージャ、
それからLPDIRECT3DDEVICE9のClearとBegin〜EndSceneをしている関数。
もうひとつは、DirectXを初期化する関数です。
これはメッセージループに入る前に呼び出しています。
ヘッダはLPDIRECT3D9 pDevice、LPDIRECT3DDEVICE9 pD3d、D3DPRESENT_PARAMETERS d3dppを
定義して、二つのソースでインクルードしているのですが、
コンパイル時はエラーを吐かないのですが、
リンク時に既に定義されているというエラーが出てしまいます。
具体的には、
Main.obj : error LNK2005: "struct IDirect3DDevice9 * pDevice" (?pDevice@@3PAUIDirect3DDevice9@@A) は既に InitD3D.obj で定義されています。
Main.obj : error LNK2005: "struct _D3DPRESENT_PARAMETERS_ d3dpp" (?d3dpp@@3U_D3DPRESENT_PARAMETERS_@@A) は既に InitD3D.obj で定義されています。
Main.obj : error LNK2005: "struct IDirect3D9 * pD3d" (?pD3d@@3PAUIDirect3D9@@A) は既に InitD3D.obj で定義されています。
Debug/007_Direct3D最小コード.exe : fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。
と出ます。
Main.cppでもInitD3D.cppでもこれらを定義した覚えはないのですが、
ヘッダファイルをインクルードしただけで定義されてしまうのでしょうか?
ご教授いただけるとうれしいです。
0103デフォルトの名無しさん
2006/08/08(火) 19:39:380104102
2006/08/08(火) 20:57:55ヘッダの中身をexternにして、別のソースファイルに実体を書いたところ、
リンクまできちんと通りました。
しかし、「アクセスが拒否されました。」と出て、プログラムは起動されませんでした。
フォルダの中を見てみるとexeファイルが出来ていたので、試しにクリックすると実行することができました。
Visual C++ 2005 Express Editionを使っていますが、何が原因なのでしょう?
0105デフォルトの名無しさん
2006/08/08(火) 21:17:34微妙質問するなぁ・・・
そんなのわかったところでDirectX云々違うかもしれんそうかもしれんし、特定しにくいってばよ。
はじめはサンプルとか、チュートリアルとか確実に動くモンを改造しながらやってくれ。
当然動くべきサンプルが動かないとかいうならそりゃエラーをのっけりゃある程度原因はわかるけど
独自コードで「変なんです」言われてもソース眺めてみなきゃわかんねーよ。
過去に同じ問題に直面しました。って人ならわかるかもしれんけど。
0106102
2006/08/09(水) 01:54:32PCを再起動してもう一度ビルドしたところ普通に動作しました。
最近PCの調子がおかしかったのでそのせいかと思います。
0107デフォルトの名無しさん
2006/08/09(水) 05:03:50開発環境を開きなおすだけでよかった予感
0108デフォルトの名無しさん
2006/08/09(水) 08:02:350109デフォルトの名無しさん
2006/08/09(水) 18:44:56マウスの座標(つまり2次元のプロジェクション座標?みたいな)に応じた
画面上のZ値(Zバッファなどの)を取得する関数などはありませんか?
0110デフォルトの名無しさん
2006/08/09(水) 20:24:55カーソル位置のZバッファを参照すればいい
0111デフォルトの名無しさん
2006/08/09(水) 21:04:11誰の役に立ってるんでしょうか
0112デフォルトの名無しさん
2006/08/09(水) 21:22:58あれだ。
最新の環境で開発してる会社がどうしても治らない不具合をMSにわざわざ報告するんだ。
んで、DirectXの不具合が治ってそれに対応したら出荷する。
どっかMSと蜜にやりとりできるところがあんじゃねぇのかな?
0113デフォルトの名無しさん
2006/08/09(水) 21:50:550114デフォルトの名無しさん
2006/08/09(水) 23:29:41実質DX10のベータだよ
DX9の更新はない
色々新しいもん入ってたけどXbox360の開発環境に興味がある奴が触るぐらいじゃね
>>113
DX9SDKもかなり頻繁に出たけど、スプライトぐらいしか目ぼしい更新なかったよな
使わないけど
0115デフォルトの名無しさん
2006/08/09(水) 23:41:58コアは更新されないから目ぼしい更新がないのは当然。
基本的に機能に変更があるのはD3DXだけ。
0116デフォルトの名無しさん
2006/08/09(水) 23:50:54順番と数が変わるとかライブラリとしては基地外に近い
つか、残せよ。。。
0117デフォルトの名無しさん
2006/08/10(木) 00:55:34禿同。
ほんのマイナーチェンジでまったくビルドが通らなくなっててビビるのはもうやだ。
あまつさえ同名の関数仕様が滅茶苦茶に変わってて、単に引数あわせるだけじゃ
どうにもならなかったりすることすらあるし…。
D3DXはほんまやりたい放題やでーフフフハーハーハー
0118デフォルトの名無しさん
2006/08/10(木) 03:49:370119デフォルトの名無しさん
2006/08/10(木) 07:18:560120デフォルトの名無しさん
2006/08/10(木) 07:35:080121デフォルトの名無しさん
2006/08/10(木) 10:50:04これを読めばいいぞっていう本がありませんか?
アマゾンなどを覗いてもなかなか賛否両論でして…(ここでも賛否両論でしょうが、人数が多いのでこちらの方が良いかと)
よろしくお願いいたします。
0122デフォルトの名無しさん
2006/08/10(木) 11:42:090123デフォルトの名無しさん
2006/08/10(木) 13:49:54ここでも向こうでも賛否両論だとわかっているのなら
聞かずに自分で判断しろ。
0124デフォルトの名無しさん
2006/08/10(木) 18:40:14スプライト使ってテクスチャを直接描画してるとき、
ウィンドウをAlt+Tabとかで非アクティブにしたら
スプライトのEnd()でアクセス違反が起こるんだが
対処法知らない?
DEVICELOSTとかは処理してるつもり。
スプライトなしの場合はうまく動く。
0125デフォルトの名無しさん
2006/08/10(木) 19:07:54スプライトの OnLostDevice
デバイスの Reset
スプライトの OnResetDevice
の順に処理してる?
0126デフォルトの名無しさん
2006/08/10(木) 19:20:33してる。
TestCooperativeLevelって
エラー起こらなくても毎回呼ぶもの?
0127124
2006/08/10(木) 19:39:40うまくいったっぽい。
でもバグが出にくくなっただけかもorz
0128デフォルトの名無しさん
2006/08/10(木) 20:43:51質問!
モデルのツブツブ頂点FVF?が書いてるデータを取得したいのだがどうすればいい?
判定用に。
XFILEの読み込みはそこらへんに落ちてたアニメクラス使っている。
0129デフォルトの名無しさん
2006/08/10(木) 20:49:36事故解決
俺って天才うおぉぉぉおおー!
0130デフォルトの名無しさん
2006/08/10(木) 21:24:560131デフォルトの名無しさん
2006/08/10(木) 23:58:58マジだ!
早速インスコしてみる
0132デフォルトの名無しさん
2006/08/11(金) 00:26:32Setup - Microsoft DirectX SDK
---------------------------
This version of the Microsoft DirectX SDK is not supported on this Operating System.
---------------------------
OK
---------------------------
ダメだぁあああああああああああ!!!!!!!
0133デフォルトの名無しさん
2006/08/11(金) 02:18:43MSめ、ぬか喜びさせやがって。
0134デフォルトの名無しさん
2006/08/11(金) 06:01:120135デフォルトの名無しさん
2006/08/11(金) 06:05:55なんだ?
インスコ
って?下手糞な自分用語使うなクズ野郎。
よしんば、インストールの略にしてもインストじゃねぇのか?
0136デフォルトの名無しさん
2006/08/11(金) 06:42:27>>135
そういう言い回しが少なからず流布しているのだよ。
まぁ、間違って覚えている香具師も多いけどな。
#インストロールとかインストゥールとかインストオールってのもあったな。
0137デフォルトの名無しさん
2006/08/11(金) 06:43:13凹多角形があるので凸多角形分割したんです.
すべて凸多角形なのでTRIANGLEFANで描画したのですが,
同じ関数を通っているのに,描画されない図形がいくつか出てしまいました.
たとえば
多角形A
x = -1437.273804, y = 15712.901367
x = -1444.715088, y = 15713.530273
x = -1437.696411, y = 15711.789063
多角形B
x = -1437.273804, y = 15712.901367
x = -1437.696411, y = 15711.789063
x = -1433.636719, y = 15713.075195
x = -1434.369751, y = 15713.475586
が描画されません.
裏表を間違えているのかと思い描画順を逆にしたりしてみたのですが
意味がありませんでした.
頂点はカラーと座標しか持っていないものです.
どういったことが考えられるでしょうか...どなたかお願いします.
0138デフォルトの名無しさん
2006/08/11(金) 06:50:140139デフォルトの名無しさん
2006/08/11(金) 07:28:24ちがうじゃん。
ずっと昔の誤表記からそう言ってるアホがいるだけじゃん。
http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%B9%A5%B3
池沼みたいなノリか?
会社で使ったらキチガイ確定物だな。
0140デフォルトの名無しさん
2006/08/11(金) 07:39:17「ちがう」とまでは言えないべさ。
>136は語源に言及していないのだし。
実際、(余り知らずに)2ch語を使いたがる高校生辺りがよく使っているよ。
Googleでも434千件も引っかかるしね。
0141デフォルトの名無しさん
2006/08/11(金) 07:45:29なにそれ?
池沼もGoogleでのヒット件数が多いからよく使うとか言っていいわけ?w
0142デフォルトの名無しさん
2006/08/11(金) 08:02:46池沼はそれ単体でヒットしても本来の意味の可能性もあるから一概には言えないんでない?
音で聞いても本来の文字の積もりかもしれないわけだし。
で、それはさておき何粘着しているの? 正直どうでもいいじゃん。
>136や>138が間違っているってことでもないんだし。
#そもそもDirectXに全く関係ないことは言うに及ばず。
0143デフォルトの名無しさん
2006/08/11(金) 08:05:000144デフォルトの名無しさん
2006/08/11(金) 10:00:530145デフォルトの名無しさん
2006/08/11(金) 10:09:530146デフォルトの名無しさん
2006/08/11(金) 10:16:12壮大な釣りか
0147デフォルトの名無しさん
2006/08/11(金) 12:18:40その対処法というかやるべきことみたいのとかググっても全然出て来ないし、教えてエロい人。
0148デフォルトの名無しさん
2006/08/11(金) 12:20:340149デフォルトの名無しさん
2006/08/11(金) 13:48:00誰もが突っ込みたくなる釣り。プロだな。
0150デフォルトの名無しさん
2006/08/11(金) 14:06:38俺釣られてる?
0151デフォルトの名無しさん
2006/08/11(金) 14:09:53おk。釣られてる。
0152デフォルトの名無しさん
2006/08/11(金) 14:11:35infファイル書き換えれば (たった数文字書き加えれば)
2000だろうが95だろうが
インストールできるようになるでホンマに
WMP9をWindows98SEにインストールする手順とまったく同じ。
0153デフォルトの名無しさん
2006/08/11(金) 14:13:32「インストールとは、ソフトウェアをOSで使用できるように格納することである」
これは明確な無知。
インストールというのは据え置くと言う意味で、
ハードウェアの取り付けにさえインストールと呼ぶ。
無知バカはソフトだけだと思ってる。
0154デフォルトの名無しさん
2006/08/11(金) 14:32:54そか。よかったな。
0155たまには、釣られてみるか。
2006/08/11(金) 16:00:19ソフトだけだろ。
ここは日本で、インストールと install は違うということは、
覚えておいたほうがいい。
0156デフォルトの名無しさん
2006/08/11(金) 16:12:19「インストール」は日本語で
`install'は英語
とでも言いたいのか?
0157デフォルトの名無しさん
2006/08/11(金) 16:41:59いつから演算プロセッサボードをソフトウェアと言うようになったんだ?
0158デフォルトの名無しさん
2006/08/11(金) 16:43:190159デフォルトの名無しさん
2006/08/11(金) 16:44:18Xファイル表示どうするんですか?
0160デフォルトの名無しさん
2006/08/11(金) 17:48:230161デフォルトの名無しさん
2006/08/11(金) 17:51:15無知すぎ
0162釣られすぎですかぁ? (w
2006/08/11(金) 18:25:45> なお、英語の install は「設置する」「取り付ける」といった意味であり、
> コンピュータやモニタを設置すること、周辺機器を接続すること、拡張カー
> ドを取り付けることなど、ハードウェア全般についても用いるが、日本語で
> はもっぱらソフトウェアを導入する意味にのみ用いる。
0163デフォルトの名無しさん
2006/08/11(金) 18:36:430164デフォルトの名無しさん
2006/08/11(金) 19:13:180165デフォルトの名無しさん
2006/08/11(金) 19:17:11サル未満の出来損ないはとっとと消えろ(プ
0166デフォルトの名無しさん
2006/08/11(金) 19:40:19それで問題は出てない?
本当は動くのに単にバージョンチェックで弾いているだけってことでOK?
0167デフォルトの名無しさん
2006/08/11(金) 20:48:26いや別に、>>153 以外の一般的な意見だなぁと思ってね。
>>164-165 は、「日本語では」と言う意味が理解できていないみたいだけど。(w
0168デフォルトの名無しさん
2006/08/11(金) 20:59:150169デフォルトの名無しさん
2006/08/11(金) 21:00:220170デフォルトの名無しさん
2006/08/11(金) 21:12:52???
0171デフォルトの名無しさん
2006/08/11(金) 21:27:56infファイルなんて添付されて無いぞぉおおおおおおおおおお!!!!
0172デフォルトの名無しさん
2006/08/11(金) 21:59:27インストールの履歴
(最新版) (前の版) 2006年8月11日 (金) 12:12 125.100.229.66 (ノート) (→概要)
これすれ見て慌てて書き換えたんだろ。(w
0173デフォルトの名無しさん
2006/08/11(金) 22:53:10何かあるんだよ
メモ帳で開くといんすころーのれバージョンが書いてあるやつ
0174デフォルトの名無しさん
2006/08/11(金) 23:13:27なんだっけ?
0175デフォルトの名無しさん
2006/08/11(金) 23:29:250176デフォルトの名無しさん
2006/08/11(金) 23:46:430177デフォルトの名無しさん
2006/08/11(金) 23:50:180178デフォルトの名無しさん
2006/08/12(土) 00:00:44はぁ?何いってんの?可哀想なのはお前だろプゲラwwwwww
0179デフォルトの名無しさん
2006/08/12(土) 00:15:36dx_setenv.cmdかと思ったら違うっぽいしな
0180デフォルトの名無しさん
2006/08/12(土) 00:24:48何?君?ワレようと必死なの?
ソフトなんてワレてもどうせ覚えるの面倒で使わないぞw
会社でmax xsi lw maya のライセンスを買ってもらっておきながら
ついに起動するのすら面倒で(ライセンスキー打ってユーザ登録する画面から滅入るw)退職した
俺がいうんだ。間違いないw
0181デフォルトの名無しさん
2006/08/12(土) 00:33:590182デフォルトの名無しさん
2006/08/12(土) 00:38:14いや、普通に激務で嫌になったw
0183デフォルトの名無しさん
2006/08/12(土) 07:35:07ほかは知らんがせいぜい一度登録したら終わりだと思うんだが……
毎回入力するなら自動化すればいいのに
0184デフォルトの名無しさん
2006/08/12(土) 11:29:27空想上の激務と空想上の退職を本当の記憶と思いこんでいるのだろう。
0185デフォルトの名無しさん
2006/08/12(土) 13:12:13起動するのすら面倒に感じるようになってしまった
と考えればつじつまが合う
0186デフォルトの名無しさん
2006/08/12(土) 13:48:270187デフォルトの名無しさん
2006/08/12(土) 23:24:52ドングルこー
oh yeah(c'mon baby) にハマってさあ大変
0188デフォルトの名無しさん
2006/08/12(土) 23:34:230189デフォルトの名無しさん
2006/08/12(土) 23:55:530190デフォルトの名無しさん
2006/08/12(土) 23:57:03|. (・ω・` )スルー
|スス… /J J
↓ ,,, し―-J
0191デフォルトの名無しさん
2006/08/13(日) 01:57:270192デフォルトの名無しさん
2006/08/13(日) 02:14:21固定機能だけでも、スペキュラを極端な値に設定してやるとかで
ある程度までなら対処できる。
環境マップでも可。
インキング(縁取り)は拡大&反転でイナフだ。
0193デフォルトの名無しさん
2006/08/13(日) 03:56:53light.Diffuse.r = 2.5f;
light.Diffuse.g = 2.5f;
light.Diffuse.b = 2.5f;
でちょうど良くなった
0194デフォルトの名無しさん
2006/08/13(日) 04:37:29ウィンドウサイズに関係なくそのまま表示するにはどうしたら良いでしょうか?
0195デフォルトの名無しさん
2006/08/13(日) 04:55:22固定機能でトゥーンシェーディングやりたいなら、D3DTSS_TEXCOORDINDEXと
D3DTSS_TEXTURETRANSFORMFLAGSを設定してトゥーン用のテクスチャを
セットすれば簡単にできるが、シェーダを使った方が簡単だと思う。
0196デフォルトの名無しさん
2006/08/13(日) 05:44:130197デフォルトの名無しさん
2006/08/13(日) 06:19:03D3DXMatrixPerspectiveFovLH の Aspect を
(float)width / height ね。
0198デフォルトの名無しさん
2006/08/13(日) 09:31:15TWIN TAIL LOVERS か
ウマイハナシ でググればソースがあるぞ。
SDKよりは判り易いかと
自分は野村XX(ウマイハナシ)さんの奴を、改造しまくって使ってるでよ。
0199デフォルトの名無しさん
2006/08/13(日) 13:49:36使ったことないのに気づいた。これが必要になるようなバッファのロストって本当に起こるの?
0200デフォルトの名無しさん
2006/08/13(日) 15:57:31ハード上に専用メモリを持っているサウンドカードを使っている奴って本当にいるの?
0201デフォルトの名無しさん
2006/08/13(日) 21:04:00それなら何にすればいいんでしょうか?
0202デフォルトの名無しさん
2006/08/13(日) 21:05:31どうせストリームがほとんどだから大して使わないし。
0203デフォルトの名無しさん
2006/08/14(月) 01:15:11いうかよお------------------------------------------------------------------------------------------
なんでよお-----------------------------------------------------------------------------------------
DXやってる奴というのはよお--------------------------------------------------------------------------
「ファイル」というと「データファイル」
としか思い浮かべられねえんだ?あ?コラ。オウ。
「ファイル」といえば「キーボード」も含むよな?あ?コラ。オウ。
理由は言わんでもわかりますね。
0204デフォルトの名無しさん
2006/08/14(月) 01:23:48file:///C|/con/con
0205デフォルトの名無しさん
2006/08/14(月) 03:24:58DXってDirectX?で「キーボード」といえば「DirectInputDevice」でウッドボール。
0206デフォルトの名無しさん
2006/08/14(月) 22:34:18本当に頭のいい人間は誰にでもわかりやすい表現を使う。
君みたいにトリビアに頼らなくても普通のすごいの俺等はw
0207デフォルトの名無しさん
2006/08/14(月) 22:44:550208デフォルトの名無しさん
2006/08/14(月) 23:01:10そのネタはやめれw
0209デフォルトの名無しさん
2006/08/14(月) 23:32:180210デフォルトの名無しさん
2006/08/15(火) 03:31:540211デフォルトの名無しさん
2006/08/15(火) 07:56:300212デフォルトの名無しさん
2006/08/15(火) 08:10:260213デフォルトの名無しさん
2006/08/15(火) 11:50:400214デフォルトの名無しさん
2006/08/15(火) 19:24:36http://www.microsoft.com/japan/msdn/directx/downloads.aspxのどれ
をダウンロードすればいいですか?DirectX 9.0 SDK Update (June 2006)を
ダウンロードしましたが正しく起動しませんでした
ちなみに私のPCはWindows98です
0215デフォルトの名無しさん
2006/08/15(火) 19:28:32http://www.microsoft.com/downloads/details.aspx?familyid=b7bc31fa-2df1-44fd-95a4-c2555446aed4&displaylang=en
0216デフォルトの名無しさん
2006/08/15(火) 19:28:410217デフォルトの名無しさん
2006/08/15(火) 19:51:27ありがとうございました
>>216
それがベストなんですが諸事情がありますて
0218デフォルトの名無しさん
2006/08/15(火) 20:03:21その時間をバイトして金を貯めた方が早くないの?
0219デフォルトの名無しさん
2006/08/15(火) 20:05:520220デフォルトの名無しさん
2006/08/15(火) 20:12:550221デフォルトの名無しさん
2006/08/15(火) 23:46:21// File: DXUT.h
//
// DirectX SDK Direct3D sample framework
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//--------------------------------------------------------------------------------------
#pragma once
#ifndef DXUT_H
#define DXUT_H
#ifndef UNICODE
#error "The sample framework requires a Unicode build. If you are using Microsoft Visual C++ .NET, under the General tab of the project properties change the Character Set to 'Use Unicode Character Set'."
#endif
DXUT.hをインクルードしてコンパイルすると、13行目の「#error "The 〜Set'."」でerror C1189が出るんだが、どうにかならない?
正直なんでここでエラーが出るか分からないorz
0222デフォルトの名無しさん
2006/08/15(火) 23:51:370223デフォルトの名無しさん
2006/08/15(火) 23:52:130224デフォルトの名無しさん
2006/08/15(火) 23:52:22The sample framework requires a Unicode build. If you are using Microsoft Visual C++ .NET, under the General tab of the project properties change the Character Set to 'Use Unicode Character Set
この通りにUnicodeセットでプロジェクトを変更すると、鬼のごとく参照エラーが・・・鬱だしのう
0225デフォルトの名無しさん
2006/08/15(火) 23:53:390226デフォルトの名無しさん
2006/08/15(火) 23:54:090227デフォルトの名無しさん
2006/08/15(火) 23:56:220228デフォルトの名無しさん
2006/08/15(火) 23:56:510229デフォルトの名無しさん
2006/08/15(火) 23:57:23そう。
0230デフォルトの名無しさん
2006/08/16(水) 00:00:52error C2440: '初期化中' : 'const char [13]' から 'LPCWSTR' に変換できません。
指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。
error C2664: 'CreateWindowExW' : 2 番目の引数を 'const char [13]' から 'LPCWSTR' に変換できません。
指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。
error C2664: 'UnregisterClassW' : 1 番目の引数を 'const char [13]' から 'LPCWSTR' に変換できません。
指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。
0231デフォルトの名無しさん
2006/08/16(水) 00:01:41CD3DXObject.cpp
error C2259: 'CAllocateHierarchy' : 抽象クラスをインスタンス化できません。
次のメンバが原因です :
'HRESULT ID3DXAllocateHierarchy::CreateFrame(LPCSTR,LPD3DXFRAME * )' : 純粋仮想関数は定義されていません。
d:\Program Files\Microsoft DirectX 9.0 SDK (October 2004)\Include\d3dx9anim.h(134) : 'ID3DXAllocateHierarchy::CreateFrame' の宣言を確認してください。
'HRESULT ID3DXAllocateHierarchy::CreateMeshContainer(LPCSTR,const D3DXMESHDATA *,const D3DXMATERIAL *,const D3DXEFFECTINSTANCE *,DWORD,const DWORD *,LPD3DXSKININFO,LPD3DXMESHCONTAINER * )' : 純粋仮想関数は定義されていません。
d:\Program Files\Microsoft DirectX 9.0 SDK (October 2004)\Include\d3dx9anim.h(168) : 'ID3DXAllocateHierarchy::CreateMeshContainer' の宣言を確認してください。
error C2664: 'D3DXLoadMeshHierarchyFromXW' : 1 番目の引数を 'char *' から 'LPCWSTR' に変換できません。
指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。
error C2039: 'GetMaxNumMatrices' : 'ID3DXAnimationController' のメンバではありません。
d:\Program Files\Microsoft DirectX 9.0 SDK (October 2004)\Include\d3dx9anim.h(687) : 'ID3DXAnimationController' の宣言を確認してください。
error C3861: 'SAFE_RELEASE': 識別子は、引数依存の照合を使用しても見つかりません。
0232デフォルトの名無しさん
2006/08/16(水) 00:02:13error C2440: '初期化中' : 'int' から 'D3DXPRIORITY_TYPE' に変換できません。
列挙型への変換には static_cast、C スタイル キャストまたは関数スタイル キャストが必要です。
error C2259: 'CAllocateHierarchy' : 抽象クラスをインスタンス化できません。
次のメンバが原因です :
'HRESULT ID3DXAllocateHierarchy::CreateFrame(LPCSTR,LPD3DXFRAME * )' : 純粋仮想関数は定義されていません。
d:\Program Files\Microsoft DirectX 9.0 SDK (October 2004)\Include\d3dx9anim.h(134) : 'ID3DXAllocateHierarchy::CreateFrame' の宣言を確認してください。
'HRESULT ID3DXAllocateHierarchy::CreateMeshContainer(LPCSTR,const D3DXMESHDATA *,const D3DXMATERIAL *,const D3DXEFFECTINSTANCE *,DWORD,const DWORD *,LPD3DXSKININFO,LPD3DXMESHCONTAINER * )' : 純粋仮想関数は定義されていません。
d:\Program Files\Microsoft DirectX 9.0 SDK (October 2004)\Include\d3dx9anim.h(168) : 'ID3DXAllocateHierarchy::CreateMeshContainer' の宣言を確認してください。
error C3861: 'SAFE_DELETE_ARRAY': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_RELEASE': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_RELEASE': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_RELEASE': 識別子は、引数依存の照合を使用しても見つかりません。
error C2039: 'SetTime' : 'ID3DXAnimationController' のメンバではありません。
d:\Program Files\Microsoft DirectX 9.0 SDK (October 2004)\Include\d3dx9anim.h(687) : 'ID3DXAnimationController' の宣言を確認してください。
0233デフォルトの名無しさん
2006/08/16(水) 00:02:47error C3861: 'SAFE_DELETE': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_RELEASE': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_DELETE_ARRAY': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_DELETE': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_DELETE_ARRAY': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_RELEASE': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_RELEASE': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_DELETE_ARRAY': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_RELEASE': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_DELETE_ARRAY': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_RELEASE': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_DELETE_ARRAY': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_DELETE_ARRAY': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_DELETE': 識別子は、引数依存の照合を使用しても見つかりません。
error C2440: '=' : 'TCHAR *' から 'LPSTR' に変換できません。
指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。
0234デフォルトの名無しさん
2006/08/16(水) 00:03:21error C3861: 'SAFE_DELETE': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_DELETE': 識別子は、引数依存の照合を使用しても見つかりません。
error C2440: '=' : 'TCHAR *' から 'LPSTR' に変換できません。
指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。
CAllocateHierarchy.cpp
error C2664: 'D3DXCreateTextureFromFileW' : 2 番目の引数を 'LPSTR' から 'LPCWSTR' に変換できません。
指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。
error C3861: 'SAFE_RELEASE': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_DELETE': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_DELETE': 識別子は、引数依存の照合を使用しても見つかりません。
0235デフォルトの名無しさん
2006/08/16(水) 00:09:460236デフォルトの名無しさん
2006/08/16(水) 00:13:12http://www.nomuraz.com/denpa/prog004.htm#IDPROG0021
ここのサンプルを試したらこうなった・・・
車輪の再発明してくるorz
0237デフォルトの名無しさん
2006/08/16(水) 02:35:10ありがとうございました!!
0238デフォルトの名無しさん
2006/08/16(水) 14:49:06>error C2660: 'ID3DXFont::DrawTextA' : 関数に 5 個の引数を指定できません。
のエラーが出るようになりました。
LPD3DXFONT pFont;
RECT rect={iX,iY,iX+1000,iY+100};
pFont->DrawText(szStr,-1,&rect,DT_LEFT | DT_BOTTOM | DT_SINGLELINE | DT_NOCLIP,0xffffffff);
この3行目でエラーが出ます。
検索してもDrawText(A/W)の引数は5個書かれているものしかありません。
この引数をはどう変えれば良いのでしょうか?
0239デフォルトの名無しさん
2006/08/16(水) 15:19:08自分で簡単に作れる部分なので、使うメリットは微塵もない。
0240デフォルトの名無しさん
2006/08/16(水) 16:10:590241デフォルトの名無しさん
2006/08/16(水) 16:34:470242238
2006/08/16(水) 17:14:55>>240のやり方で問題は解決されました。
ヘルプやMSDNを検索してみたのですがこの関数だけ古いものしか出てきませんでした。
0243デフォルトの名無しさん
2006/08/16(水) 18:29:350244デフォルトの名無しさん
2006/08/16(水) 22:37:50class Graphics {
public:
Graphics(); {}
Graphics(HWND hWnd) {
Initialize(hWnd);
}
void Initialize(HWND hWnd) {
this->hWnd = hWnd;
後はttp://rina.jpn.ph/~rance/directx8/02/05.htmlの
『2.IDirect3D8インターフェイスの取得』と、
『3.IDirect3DDevice8インターフェイスの作成』の
『ウィンドウモード・アプリケーションのデバイス作成例』と似たり寄ったり
(pD3Dなどがメンバである点と、CreateDeviceの返り値を調べ、
失敗ならメッセージボックスを出すようにしてある点で異なる)
}
(省略)
private:
HWND hWnd;
LPDIRECT3D9 pD3D;
D3DPRESENT_PARAMETERS d3dpp;
LPDIRECT3DDEVICE9 pD3DDevice;
(省略)
};
>>245に続く…
0245デフォルトの名無しさん
2006/08/16(水) 22:38:52Graphics graphics;
graphics.Initialize(hWnd);
とするとメッセージボックスは表示されず、描画も問題なく行うことができるのですが、
Graphics* graphics;
graphics = new Graphics(hWnd);
とするとメッセージボックスが出てきてしまい、
無視して描画を行おうとするとメモリ参照エラーが出てしまいます。
両者の違いは何なのでしょうか?
0246デフォルトの名無しさん
2006/08/16(水) 23:26:180247デフォルトの名無しさん
2006/08/16(水) 23:51:48こうなってりゃ平気。
0248デフォルトの名無しさん
2006/08/17(木) 00:06:140249デフォルトの名無しさん
2006/08/17(木) 00:22:380250デフォルトの名無しさん
2006/08/17(木) 04:46:08なんで、どんなメッセージかぐらい書かないんだろうか…
0251244
2006/08/17(木) 04:57:34メッセージボックスはエラーが起こったことを知らせるために
自分で呼び出しているものなので、メッセージに意味はありません。
if(FAILED(pD3D->CreateDevice(〜))) {
MessageBox(〜);
}
みたいな感じです。
0252デフォルトの名無しさん
2006/08/17(木) 06:07:26HRESULTが単なるbool値モドキではなく、
失敗の原因毎に返す値が違うということを>>248-249のおかげで思い出す。
↓
メッセージボックスにHRESULTの値を表示させて
原因を特定するべきだと>>250のおかげで気づく。
↓
D3DERR_INVALIDCALLが返されていることが判明。
メソッドのパラメータに無効な値が設定されているかもしれない。
引数のウィンドウハンドルかD3DPRESENT_PARAMETERS構造体が怪しい。
↓
D3DPRESENT_PARAMETERS構造体を
ZeroMemoryでクリアするのを忘れていたことに気づくorz
単純ミスですみません。皆さんに感謝します。
これは、単にインスタンスを宣言するのとnewによる動的生成を行うのでは
メンバ変数の初期化のされ方が異なるということですかね?
この辺りに詳しい方は是非教えてください。
0254デフォルトの名無しさん
2006/08/17(木) 13:22:31途中か元々か
0255デフォルトの名無しさん
2006/08/17(木) 15:36:10腹や腕の一部がすっぽり抜け落ちたり、体が半分無くなってしまう事があります。
輪切りにしたソフビ人形みたいな状態です。
小刻みにオブジェクトの座標を変えながら試行錯誤してたのですが
もしかしてDirectXの3Dの座標の空間には「負の領域」は無いのでしょうか?
0256デフォルトの名無しさん
2006/08/17(木) 16:01:06ポリゴンが裏返ってない?
0257デフォルトの名無しさん
2006/08/17(木) 16:09:290258デフォルトの名無しさん
2006/08/17(木) 16:33:16製品版が使えません。誰か助けてください。
0259デフォルトの名無しさん
2006/08/17(木) 16:46:57全然ないのを見せても理解できる頭がない
0260デフォルトの名無しさん
2006/08/17(木) 17:00:070261デフォルトの名無しさん
2006/08/17(木) 17:11:46Debugランタイムのままになっていて重ス!みたいなのってあるよな。開発機が一緒だと。
0262デフォルトの名無しさん
2006/08/17(木) 18:38:36> これは、単にインスタンスを宣言するのとnewによる動的生成を行うのでは
> メンバ変数の初期化のされ方が異なるということですかね?
(暗黙の) 初期化? C/C++ には、そんな便利な機能はないよ。
「自動変数も動的に確保した変数も内容は無茶苦茶になっている」
と思ってプログラムしないとダメだよ。
(静的変数とかは別ね。)
0263デフォルトの名無しさん
2006/08/17(木) 20:00:03> これは、単にインスタンスを宣言するのとnewによる動的生成を行うのでは
> メンバ変数の初期化のされ方が異なるということですかね?
初期化のされ方は同じ。この場合はD3D〜構造体のデフォルトコンストラクタ
(=何もしない)が呼ばれて、何も初期化されてない。
ただ領域を確保する場所が違うから、そこに入っていた値によって
たまたま上手く動いたり、動かなかったりしたのでは。
0264デフォルトの名無しさん
2006/08/17(木) 21:13:320265デフォルトの名無しさん
2006/08/17(木) 21:23:200266デフォルトの名無しさん
2006/08/18(金) 04:43:03かなり不便な気が
0267デフォルトの名無しさん
2006/08/18(金) 18:01:36中のDirectX Texture Toolを起動しようとしてるのですが、
Unable to create Direct3D Device. Please make sure your desktop color depth is 16 or 32 bit.
と出ました。画面の色も32ビットにしています。
texture作れなくて困ってます。何か他に起動しない理由とかありますか??
よろしくお願いします。
0268デフォルトの名無しさん
2006/08/18(金) 18:04:300269デフォルトの名無しさん
2006/08/18(金) 18:05:18レスどうもです。。16ビットも試してみました。。
0270デフォルトの名無しさん
2006/08/18(金) 20:08:150271デフォルトの名無しさん
2006/08/18(金) 20:21:05DirectX9のデモのドーナツというのを試してみました。
動いてました・・・orz
0272255
2006/08/18(金) 20:45:39プロジェクション変換してないのが原因でした…orz
0273デフォルトの名無しさん
2006/08/18(金) 21:04:01メモリ足りないんじゃね?
画面狭くしてみたら?
0274デフォルトの名無しさん
2006/08/18(金) 23:07:56一番楽なのはELでFA?
DirectX9.0cのサンプル見ながら一日かけてキーボード入力した方向に動くだけの物が出来た。
けどこんなペースじゃゲーム開発する前にDirectX10が出そうだよ…
0275デフォルトの名無しさん
2006/08/18(金) 23:19:09OSはWindows2000?XP?
XPに変えたら動いたような気がする。それかバージョンアップか。
0276デフォルトの名無しさん
2006/08/18(金) 23:27:31ELってのが何か知らんが、これから勉強するなら他人が作ったラッパーとか
使わないほうがいいよ。変なクセがつくから。
単純に楽してゲーム作りたいなら、何もDirectXにこだわらなくても
OpenGLっつーメチャ簡単なライブラリがあるし。
0277デフォルトの名無しさん
2006/08/19(土) 00:02:32実際のゲーム製作だって土台がしっかりしてる分何をやるにも込み入った手続きがいるぞ。
ショボそうなステータス画面作るのだってどんなに全力疾走しても1週間以上はかかる。
1日でキー入力で動くとこまでいった?
もうゲームなんてできたも同然だろw
0278デフォルトの名無しさん
2006/08/19(土) 00:15:29DXライブラリも同じくらい簡単。こっちは更新もサポートもしてるから俺はオススメ
0279デフォルトの名無しさん
2006/08/19(土) 00:19:00ただしSpriteとFont系は使うな。
0280デフォルトの名無しさん
2006/08/19(土) 00:19:500281デフォルトの名無しさん
2006/08/19(土) 00:20:55なんで????
0282デフォルトの名無しさん
2006/08/19(土) 00:21:57Unable to create Direct3D Device.
でググると一番最初に出るぞ。もし、これだったらググレカス
0283デフォルトの名無しさん
2006/08/19(土) 00:24:130284デフォルトの名無しさん
2006/08/19(土) 00:31:46速い?
なんで「速い」なんて言葉が出てくるのか疑問。
速さ求めるところですか?
また、速さ要求するところで使える仕様ですか?
頭空のくせにテキトウなこと言わないでくださいよw
0285デフォルトの名無しさん
2006/08/19(土) 00:34:20速さは求められてんじゃね
0286デフォルトの名無しさん
2006/08/19(土) 00:43:47使い手がアホなんだろ。
不透明のフィルレートどうにかして速くならなかったらもうどうしようもねぇって。
だしたらだした分だけ重くなる。頂点数なら気にするな3Dゲームと比較したら気にするほど無意味だろ。
それがライブラリちょこっと変えただけで速くなった程度の速度じゃ、
万人(といっても限度はあるが)の環境を考えたときにその速さに意味のあることかどうかなんて普通わかるだろ?
0287デフォルトの名無しさん
2006/08/19(土) 01:04:17「普通わかるだろ?」に頷けはしないな。
実際どれくらい違うのか白黒つけたいならソース出すしかないだろう
0288デフォルトの名無しさん
2006/08/19(土) 01:10:02じゃあ、いいだしっぺのお前が出せや。
0289デフォルトの名無しさん
2006/08/19(土) 01:13:000290デフォルトの名無しさん
2006/08/19(土) 01:20:23そりゃとっても綺麗なSTGできてんだろうなw
0291デフォルトの名無しさん
2006/08/19(土) 01:37:31パーティクル1個がごとにワールド行列セットしてDrawPrimitiveしたんですよ。
それで、開発が進む中で、アニメ機能とかスクリプト機能とか
ビルボードだけでなくスキンメッシュも扱えるとか、
デザイナーらの要望通りに高機能なパーティクルシステムを組んでいると、
いつの間にか、もうとうにもならなくなっていたんです。
0292デフォルトの名無しさん
2006/08/19(土) 01:50:18どうやら僕のPCにはデバイスが無いみたいです。
あれやこれや調べていたらどうやら設定を変えるなり
ドライバをインストールすればどうにかなりそうな情報を得ました。が方法がわかりません。
私SOTECのS2120Cを使っております。XPです。
デバイスを入れるって言うのでしょうか?
をしてDirectXを組めるようにするにはどういった
設定が必要でしょうか?
0293デフォルトの名無しさん
2006/08/19(土) 01:51:54マジレスすると桁違いの数描いてると思われるゲームはある
0294デフォルトの名無しさん
2006/08/19(土) 01:52:360295デフォルトの名無しさん
2006/08/19(土) 02:08:07そんな市販にもありそうにねぇの想定して何がしてぇの?そいつ。
320X240でフィルレート気にしない生活送れよって感じだ。
0296デフォルトの名無しさん
2006/08/19(土) 02:25:16なんか嫌なことでもあったのか?
それとも元からそんな性格なのか?
0297デフォルトの名無しさん
2006/08/19(土) 02:29:070298デフォルトの名無しさん
2006/08/19(土) 02:36:580299デフォルトの名無しさん
2006/08/19(土) 02:40:24ポイントスプライトとポリゴンばら書きを一緒に扱っちゃいかんのだろうが、
それってそもそも表現の方法論が明後日の方向向いてるから、そーいう目に会うってだけなんだよな。
1000枚を2000枚に増やしたところで見た目のリッチさが倍になるわけでもないだろうに、
なんでそんな方向ばっかり努力すんだろうか。
つか、実際どんだけ書いたら重いなんてことになるんだか、正直ぴんとこないんだが、
コード見せてもらったら
・メッセージループがBUSYループでCPUぱっつんぱっつん
・描画命令の発行が1ポリゴン単位
・色々理論武装している割には、頂点バッファのダブル、トリプル化等を試みた形跡はなくロックしまくり
なんてオチだったりするのも、よくある話。
フィルレートフィルレート言いながら、テクスチャ単位のソートもしてないから
フェッチ時のキャッシュミス頻発しすぎで重くなってたりとか。
フィルレート以前の問題ちゃうんかと。
0300デフォルトの名無しさん
2006/08/19(土) 06:43:32そんなので遅く感じるようなことも俺はないと思うんだがな。
だいたい、その上の3つの奴だって気が付かずに組んでたら気にならない速度はでるでしょ?
>フィルレートフィルレート言いながら、テクスチャ単位のソートもしてないから
>フェッチ時のキャッシュミス頻発しすぎで重くなってたりとか。
あと、これ↑もシェーダ使いまくりでも問題無く動くのに
こんなの気にする必要ってあるわけ?
また、気にしてゲーム組めるの?普通に描画順優先じゃないの?
テクスチャ毎にソートする意味ってそんなにある?
0301267
2006/08/19(土) 06:58:37まさかソースをいじらなくてはいけないとは・・・
ほんと困ってたんです。ご教授ありがとうございました。
0302デフォルトの名無しさん
2006/08/19(土) 07:28:180303デフォルトの名無しさん
2006/08/19(土) 11:43:01いや、気にしなくても最近のマシンなら相応の速度は出るが、
逆にこの程度のことを対策しないで速度のこと気にするのは
どっか前提が間違ってるって話。
シェーダ類を大量投入するような描画表現するんでも、多少は気にしたほうがいいぞ。
・メッセージループがBUSYループでCPUぱっつんぱっつん
これはただのプログラムミスだし、
・描画命令の発行が1ポリゴン単位
・色々理論武装している割には、頂点バッファのダブル、トリプル化等を試みた形跡はなくロックしまくり
これは描画内容の性質にもよるが、同じテクスチャ上のスプライトを大量に操作するなら
頂点バッファをCPUで加工して一括描画した方が通常断然速いのが普通だし、
>フィルレートフィルレート言いながら、テクスチャ単位のソートもしてないから
>フェッチ時のキャッシュミス頻発しすぎで重くなってたりとか。
これもカードの性能差でどうとでもなるように見えるけど、閾値を越えると隠蔽されないコスト。
それこそ1000枚が2000枚程度の違いにはなる。
とはいえ、違ったからなんだ?ってこと。
いずれも普通に作ってればテクスチャがあっちゃこっちゃ行った描画は無いだろうし、
ちょっと気をつければどうとでもなることだしなー。
0304デフォルトの名無しさん
2006/08/19(土) 14:09:01あれぐらい余裕で超えてるゲームは本当にいくらでもあるはずだが。
もしDirect3D10のを指してるのなら知らん
0305デフォルトの名無しさん
2006/08/19(土) 14:38:270306デフォルトの名無しさん
2006/08/19(土) 14:59:45俺はそんなの気にするより先にやることいくらでもあると言ってるんだがな。
0307デフォルトの名無しさん
2006/08/19(土) 15:06:13なんつーかね。
意味無いんだよ。
そんなの。
一体、いつの知識で止まってるの?
テクスチャでソートってマテリアルソートやるってことでしょ?
こんなの意味無いの。意味無ーし。前から描画してフィルレート稼いだほうがよっぽど速くなるよ。
いまどき1つのモデル内でテクスチャの切り替えが頻繁に起こるのに馬鹿な発言もいい加減にしろよ。
お前、バンプマップすら組んだことねーだろ?ん?
0308デフォルトの名無しさん
2006/08/19(土) 15:45:05なんか嫌な事でも(ry
0309デフォルトの名無しさん
2006/08/19(土) 18:43:21ここの住人のうち6割は弾幕シューティングか2D格闘を作ってる。
2割がちっさい技術デモ専門で、あとはただの初心者いじり。
だからニーズに合ってるんだよ
0310デフォルトの名無しさん
2006/08/19(土) 18:49:580311デフォルトの名無しさん
2006/08/19(土) 19:08:44材質、テクスチャはまとめておけ。
しか言って無いじゃん...。
0312デフォルトの名無しさん
2006/08/19(土) 20:15:59ここの中ほどにある『DirectX9のアニメーションな話』の『読みやすく整形する所からはじめましょう。』以下にあるサンプルを触っています。
ビルドすると
CAllocateHierarchy Alloc( this ); で
'CAllocateHierarchy' : 抽象クラスをインスタンス化できません。
というエラーが出るのですがどう解決すればいいのでしょうか。
VC++.net 2003、DX2006Aug です。
0313デフォルトの名無しさん
2006/08/19(土) 20:23:55俺は不必要ならまとめるなといいたい。
まとめた時点で前から描画という後ろにあれば
「描画しない」というもっとも単純でかつ最速の方法ができなくなる。
それに物体が離れたときにまとまってると今度は片方はクリッピングで完全にはじいてしまえるのに
まとめてしまっているためにクリッピングができないこともある。
0314デフォルトの名無しさん
2006/08/19(土) 20:49:06俺も前者の方が楽だからというだけで前者かな
0315デフォルトの名無しさん
2006/08/19(土) 20:56:560316デフォルトの名無しさん
2006/08/20(日) 00:03:03なんかムービーに、メインのゲームの描画がチラチラ混じるんですよ。
やりたいことは、単に普通のムービーテクスチャなんですけど、
うまく同期をとる手段はないでしょうか?
SDKのAllocaterサンプルのような形にメインループを大変更するのは嫌なんですけど・・・
0317312
2006/08/20(日) 04:07:29>error C2664: 'StringCchCopyA' : 1 番目の引数を 'WCHAR [256]' から 'char *' に変換できません。
や
>error C2664: 'D3DXCreateEffectFromFileA' : 2 番目の引数を 'WCHAR [260]' から 'LPCSTR' に変換できません。
などのエラーが出ます。
組み込むと言ってもファイル自体をコピーしてソースファイルとして追加しただけなのですが、これら以外に何か設定が必要なのでしょうか。
古いサンプルで時々上記のエラーを目にすることがありますが、
作った人は問題ないのにこちらでビルドすると引数で異常が出るとか・・・今回はDirectXのバージョンは同じなのになんでだorz
0318デフォルトの名無しさん
2006/08/20(日) 04:13:50ヒント:UNICODE
0319デフォルトの名無しさん
2006/08/20(日) 15:33:510320312
2006/08/20(日) 16:41:18レスありがとうございます。
文字セットという項目があったのですね。
とりあえずUnicodeとマルチバイト共に対応できるようTCHAR等に変換していく作業を行っていきます。
あまり利点・欠点が掴みきれていないのですが、
アプリが海外向けでない場合はマルチバイト文字セットで開発を行って問題ないのでしょうか。
>>319
過去のSDKに入っているDXUtil.hを持ってくれば通りました。
0321デフォルトの名無しさん
2006/08/20(日) 16:52:04誰かDXUtil.hうpしてくれ・・・・
0322デフォルトの名無しさん
2006/08/20(日) 17:15:24適当なうpろだでスマソ
ttp://vipper.jpn.org/www/upload/src/VIPphoto10573.zip
0323デフォルトの名無しさん
2006/08/20(日) 17:51:01自分の環境で一度SDKを抜いてもう一度インストールして動くことを確認してからリリースしろよな。
もう、個人で適当に修正して確認もしないでリリースしてるようにしか見えない。
0324デフォルトの名無しさん
2006/08/20(日) 17:53:59嫌なら使うんじゃねーよということですよ
0325デフォルトの名無しさん
2006/08/20(日) 17:59:220326デフォルトの名無しさん
2006/08/20(日) 18:17:330327デフォルトの名無しさん
2006/08/20(日) 22:23:450328デフォルトの名無しさん
2006/08/21(月) 00:26:16>>85-86は具体的にどういったふうにやれば良いのでしょうか?
どなたかご教授願います。
0329デフォルトの名無しさん
2006/08/21(月) 00:43:42>>5を中心に>>43を走らせ>>187でガンガン攻める。
アイシールド21の真竜寺?のラン・パス・スクリーンやphoenixのopt.Sweepとか・・・
で俺はライン志望な
0330デフォルトの名無しさん
2006/08/21(月) 00:44:170331デフォルトの名無しさん
2006/08/21(月) 02:44:04マトリクスにしとき
0332312=317
2006/08/21(月) 04:17:44DX2006AugのC++\Direct3D\SkinnedMeshのソースをUnicode版から汎用版(TCHAR等)に変換する作業をしています。
調べつつ置換するだけですので問題ないと思っていましたが、肝心の置換するものが不明なのがありました。
>error C2664: 'MultiByteToWideChar' : 5 番目の引数を 'TCHAR [512]' から 'LPWSTR' に変換できません。
>error C2664: 'WideCharToMultiByte' : 3 番目の引数を 'LPCTSTR' から 'LPCWSTR' に変換できません。
>error C2664: 'CommandLineToArgvW' : 1 番目の引数を 'LPSTR' から 'LPCWSTR' に変換できません。
[MultiByteToWideChar][WideCharToMultiByte][CommandLineToArgvW] この3つの関数を何に置き換えるべきなのでしょうか。
合わせて
WCHAR* dest; を
TCHAR* dest; に変えると「定義されていない識別子」とエラーが出ます。
dest等に入れる値はTCHAR*型ですので通るはずなのですが、別の表記にしないといけないのでしょうか。
0333デフォルトの名無しさん
2006/08/21(月) 04:20:490334デフォルトの名無しさん
2006/08/21(月) 04:33:27する関数か調べた?
これらの関数が何のために使われているかが分かれば、
どうすればいいのか判るはず。
0335デフォルトの名無しさん
2006/08/21(月) 04:34:110336デフォルトの名無しさん
2006/08/21(月) 05:54:59外人も使うツールを作る仕事をしてるとかなければ
自己満足に終わったりしない?
0337デフォルトの名無しさん
2006/08/21(月) 06:02:410338デフォルトの名無しさん
2006/08/21(月) 06:04:23スレ違いと言うほどのこともない。
0339デフォルトの名無しさん
2006/08/21(月) 06:06:44それをいったらほとんどのスレでOKな話題になってしまうわけだが
0340デフォルトの名無しさん
2006/08/21(月) 06:15:44難しいことなんて何も無い。
0341デフォルトの名無しさん
2006/08/21(月) 07:14:120342デフォルトの名無しさん
2006/08/21(月) 08:03:02俺は外人も使うツールを作っているがマルチバイトでしか作ってない。
多言語を同時に使うのでなければUnicode対応は必要ないな。
文字列は全てリソースに入れて日本語と英語を用意してある。
たまに勝手に中文リソースとか追加されて再配布されてたりする。
0343デフォルトの名無しさん
2006/08/21(月) 18:46:47テキスト処理をしたい場合が多いわけで、Unicodeを押し付けるよりは
OEMCPとかシステムのロケールとかで処理する方が適切なことも多い。
0344デフォルトの名無しさん
2006/08/21(月) 18:57:310345デフォルトの名無しさん
2006/08/21(月) 19:06:510346デフォルトの名無しさん
2006/08/21(月) 22:21:28どっちでもコンパイル出来るようにしてるけど?
0347デフォルトの名無しさん
2006/08/21(月) 22:45:290348312=317
2006/08/21(月) 22:46:55お蔭様でなんとかビルドエラーは解消されましたが、実行でエラーが出たのでサンプルを元に1つ1つ解消していくことにしました。
しかしまたエラーが出てしまい、調べても解決出来ませんでしたので手を貸していただけないでしょうか。
2006Augのサンプル[C++\Direct3D\SkinnedMesh]をフォルダごと[d:\test\]以下にコピーし、変更を行った結果
>error C2859: d:\test\skinnedmesh\debug\vc70.pdb は、このプリコンパイル済みヘッダーが作成されたときに使用された pdb ファイルではありません。プリコンパイル済みヘッダーを再作成してください。 (ファイル)SkinnedMesh
のエラーが出ます。
エラー元はCommonフォルダ内の各ファイルに記述されている「#include "dxstdafx.h"」のようです。
変更は
・ソリューションエクスプローラー [Common]フォルダのファイルとアイコンの相対パスを下記に修正
C:\Program Files\Microsoft DirectX SDK (August 2006)\Samples\C++\Common\(ファイル名)
・プロジェクトの追加ディレクトリを上記に
です。
リビルドやDebugフォルダを削除したりしているので前のビルド結果が残っていることはありません。
サンプル「SkinnedMesh」を同じ階層に「SkinnedMesh2」としてコピーし、
ファイルの相対パスに別の場所に置いたファイルにするとこの時点で上記のエラーが出ます。
他に変更する点があるのでしょうか。
尚、現在文字セットはサンプルと同じくUnicodeです。
0349デフォルトの名無しさん
2006/08/22(火) 01:13:43wfstreamのコンストラクタがwchar_tのファイル名を受け付けてくれなくてビビった。
VC2005に慣れてると、UNICODE対応も結構細かなところで蹴躓くね。
つっても上のくらいのもんではあるけど。
>>348のは、その、なんだ。
悪い、誰か親切な奴答えてあげてくれ。
0350デフォルトの名無しさん
2006/08/22(火) 10:02:10移動量を行列で与えることで目的を達成するというのはぼんやりと判ってきまして
ワールド行列に値を渡して移動や回転をすることはできるようになりました。
しかし個々のオブジェクトをバラバラに動かすことができません。
D3DXMatrixTranslation で移動用の行列を作成した後、
それを Direct3DDevice->SetTransform で登録することで移動を実行している様で
SetTransform の第一引数に D3DTS_WORLD を渡すとワールド行列の値を変更できます。
最初は、D3DTS_WORLD の代わりに個々のオブジェクトを示すポインタか何かを渡せば
それらのオブジェクトを動かすことができるのかと思ったのですが、
ヘルプで調べたところ、引数の型が合わないために無理だと判って行き詰りました。
ネットでサンプルを探しても、一枚のポリゴンや一つのオブジェクトを動かしているだけのサンプルしか見つけられず
次にどんな関数や型について調べるべきなのかもさっぱり判らなくなりました。
どなたかヒントをお願いします
0351デフォルトの名無しさん
2006/08/22(火) 10:54:54っぽいからスルー
0352デフォルトの名無しさん
2006/08/22(火) 18:23:49DXライブラリ→DirectXという手順でプログラミングを学んだ方いらっしゃいますか?
0353デフォルトの名無しさん
2006/08/22(火) 20:41:170354デフォルトの名無しさん
2006/08/22(火) 20:43:080355デフォルトの名無しさん
2006/08/23(水) 00:14:000356デフォルトの名無しさん
2006/08/23(水) 00:35:270,0,0の位置を中心にして640*480*1の箱があります
角度はまっすぐで箱の正面を画面にぴったりと表示するには
カメラとプロジェクションを何処に設定すればいいですか?
0357デフォルトの名無しさん
2006/08/23(水) 00:52:28Transform.Projection = Matrix.PerspectiveFovLH(Geometry.DegreeToRadian(90.0f), 640.0f / 480.f, 0, 240.0f);
テキトー
0358デフォルトの名無しさん
2006/08/23(水) 01:18:57DXとDirectXの相互関係が良く分からないんですが…
Directを使いやすくするために関数などを個人的に作ったのがDXなんですよね
自分はDXを細分化したものがDirectであると解釈しているんですが…
また、DXで一通りSTGが作れたとしてDirectXで同じようなものを作れるスキルまで
到達するのには目安何ヶ月くらい必要ですか?
0359デフォルトの名無しさん
2006/08/23(水) 02:07:17安定した動作+フルスクリーンの切り替えやデバイスロスト時の処理まで
ちゃんとやるなら3ヶ月じゃ足りないと考えといた方がいい。
RenderStateやSamplerState関係もちゃんと理解しないと思い通りに絵を出すのも面倒だ。
0360デフォルトの名無しさん
2006/08/23(水) 08:11:32微妙にずれるだろ
0361デフォルトの名無しさん
2006/08/23(水) 10:06:16オブジェクトごとにSetTransform
D3DXMatrixTranslation(&mat1,x1,y1,z1)
SetTransform(D3DTS_WORLD,&mat1)
描画
D3DXMatrixTranslation(&mat2,x2,y2,z2)
SetTransform(D3DTS_WORLD,&mat2)
描画
・
・
・
一緒になってるけど、計算部分と描画部分はきちんと分けるように
0362デフォルトの名無しさん
2006/08/23(水) 10:45:490363デフォルトの名無しさん
2006/08/23(水) 10:47:590364デフォルトの名無しさん
2006/08/23(水) 10:48:260365デフォルトの名無しさん
2006/08/23(水) 11:06:55DrawPrimitiveは基本的に描画キューにつっこんでGPUに投げるだけだから、
描画完了までブロックしない。
バッファのロックや、Presentの時に描画完了待ちが入る。
完全に分離できるなら、「Present()→描画Req→計算」が速いとおもはれ。
0366デフォルトの名無しさん
2006/08/23(水) 11:57:180367350
2006/08/23(水) 12:02:58相変わらず、「座標を示す行列」と「オブジェクト」を関連付ける方法がわかりません。
>>361の mat1 , mat2 というのは単なるD3DXMATRIX型の変数だと思うのですが
これらの値がきちんと個々のオブジェクトを指してくれることが納得できないです。
D3DXMatrixTranslation , SetTransform , あと DrawPrimitiveUP という関数にも目を付けましたが
D3DXMATRIX 型データやD3DVECTOR3 型データを渡すことはできてもメッシュを示すポインタ等は渡せないし
これらの関数の持ち主が個々のオブジェクトであるという訳でもなさそうです
0368デフォルトの名無しさん
2006/08/23(水) 13:26:32チュートリアルは一つもとばさず、きっちり動作確認して完璧に終わらせたのか?
0369デフォルトの名無しさん
2006/08/23(水) 14:02:07お前さんがC/C++で開発しているものとみなして
定義したオブジェクト構造体(クラス)の中でオブジェクトの三次元座標(x,y,z)をがあると思うが
更にその中にD3DXMATRIX変数を保持すればいいじゃん
CLASS OBJECT{
float x,y,z;
D3DXMATRIX mat;
}object;
CLASS *p=&object;
移動ルーチン
void Update(CLASS *p)
{
移動処理
D3DXMatrixTranslation(&p->mat,p->x,p->y,p->z);
}
描画ルーチン
void Render(CLASS *p)
{
SetTransform(D3DTS_WORLD,&p->mat);
描画処理
}
0370デフォルトの名無しさん
2006/08/23(水) 15:12:55ありがとうございましたm(_
参考にさせて頂きます
0371デフォルトの名無しさん
2006/08/23(水) 21:22:57仕様
0372350
2006/08/24(木) 10:46:36個々の描画の前にワールド行列の設定を持ってくることで、ようやく動くようになりました
ありがとうございました
0373デフォルトの名無しさん
2006/08/24(木) 22:02:230374デフォルトの名無しさん
2006/08/25(金) 22:42:400375デフォルトの名無しさん
2006/08/25(金) 22:51:46特にエラーが出ないのに、何も描画されません・・・orz
多分、相当アホなことをしていると思うので、ご指摘ください。
ファイル:
ttp://www.uploda.org/uporg492177.cpp.html
0376デフォルトの名無しさん
2006/08/25(金) 23:02:380377デフォルトの名無しさん
2006/08/25(金) 23:23:35動きました!ありがとうございます。
やっぱり初歩的なミスorz
0378デフォルトの名無しさん
2006/08/26(土) 00:52:260379デフォルトの名無しさん
2006/08/26(土) 20:58:343Dで、パースを無効にする方法を教えてください
0380デフォルトの名無しさん
2006/08/26(土) 22:56:580381デフォルトの名無しさん
2006/08/27(日) 00:33:21IDirect3DDevice8のメンバーではありませんって言われてコンパイルできません
0382デフォルトの名無しさん
2006/08/27(日) 00:52:09もしかしてこんな↓感じ・・・
http://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi?log=37&vew=331
これはBBXで「パースペクティブ」で検索してでてきた記事の一部だけど
他にもあるかもしれないから全部みてきてほしいな。
0383デフォルトの名無しさん
2006/08/27(日) 01:14:380384デフォルトの名無しさん
2006/08/27(日) 01:43:18ありがとうございました
結局D3DXMatrixOrthoLHを使うことにしました
0385デフォルトの名無しさん
2006/08/27(日) 01:51:39で、やりたいことはできたのかよ!
0386デフォルトの名無しさん
2006/08/27(日) 02:46:001時間近く試行錯誤してみましたが、なんとかいけそうです
0387デフォルトの名無しさん
2006/08/27(日) 13:01:53なぜか画面全部に映像が行かなくて、800×600になってしまいます。
診断ツールを見たらちゃんと1024×768になっています。
あとDirectXを使う各ソフトも設定では800×600になっていません。
なぜなんでしょうか?教えてください。
0388デフォルトの名無しさん
2006/08/27(日) 13:06:38それは自分で組んだプログラムの話なのか?
0389デフォルトの名無しさん
2006/08/27(日) 13:07:180390デフォルトの名無しさん
2006/08/27(日) 13:07:55いや、違います。
ネットで落としたゲームやハンゲームなどです。
0391デフォルトの名無しさん
2006/08/27(日) 13:10:330392デフォルトの名無しさん
2006/08/27(日) 13:11:21じゃあ、なんでここで質問するんだ?
0393デフォルトの名無しさん
2006/08/27(日) 13:11:22ソフトを作った人や、そのソフトのためのBBSでなさってください
0394デフォルトの名無しさん
2006/08/27(日) 13:11:35>>389で
0395デフォルトの名無しさん
2006/08/27(日) 13:12:270396デフォルトの名無しさん
2006/08/27(日) 14:40:56Color.〜から単色のTextureを作れますか?
0397デフォルトの名無しさん
2006/08/27(日) 15:32:19何色でもグラデでも何でも作れるぞ
0398デフォルトの名無しさん
2006/08/27(日) 16:09:51オブジェクトを前方に進めるにはどうしたらいいんでしょうか?
オブジェクトを回転させると、前向きに進ませるのに必要なベクトルの成分も変わってきますが
D3DXQuaternionNormalize 関数はどうやら進行方向の x y z を教えてくれる関数ではなさそうだし
クォータニオンについて説明してるサイトもあまり見つからなくて困っています
0399デフォルトの名無しさん
2006/08/27(日) 16:19:12D3DXQuaternionNormalize()は単に積算等を重ねて誤差の溜まったクォータニオンを
正規化するだけなので、残念ながら見当違い。
クォータニオンからは3x3の回転行列が作れる。
自力で展開してもいいが、D3Dなら D3DXMatrixRotationQuaternion() で4x4の行列が作れるから
その結果使って回転しれ。
0400デフォルトの名無しさん
2006/08/27(日) 16:27:55初期の方向から回転成分を掛けるだけで求まるだろう。
難しいところでも考えるところでもないのに、
何が分からないのかがさっぱり分からん。
0401デフォルトの名無しさん
2006/08/27(日) 16:32:49お前にもそういう頃が無かったとは言わせんぞ。
0402デフォルトの名無しさん
2006/08/27(日) 16:38:37キャラクタのモデルは、たいてい手前向き(DirectX的に-Z方向)
に作ってあるから、初期ベクトルは (0,0,-1)が無難かしらね。
0403デフォルトの名無しさん
2006/08/27(日) 16:41:520404デフォルトの名無しさん
2006/08/27(日) 17:11:01どうやって
0405デフォルトの名無しさん
2006/08/27(日) 17:23:200406デフォルトの名無しさん
2006/08/27(日) 19:38:24知らなくてもアポロは月までロケット飛ばせたんだしな。
3行3列への展開式を手元に持っておくと、最適化の時に少しだけ便利だ。
0407デフォルトの名無しさん
2006/08/27(日) 19:41:020408デフォルトの名無しさん
2006/08/27(日) 19:54:34クォータニオン使わずに回転行列作れば嫌でも見ることになるやってみろ。ここで聞くな。
0409デフォルトの名無しさん
2006/08/27(日) 19:59:170410デフォルトの名無しさん
2006/08/27(日) 20:13:29じゃあ、全部歌いきってみろ。
どうせサビしかしらんくせにテキトウなこというな。
0411デフォルトの名無しさん
2006/08/27(日) 20:16:52人食い酋長が大太鼓 月夜にこっそり叩いたら
博物館の恐竜が 一緒に浮かれて踊ったぜ
ホーネホネロック ホーネホネロック ホーネホネー ホネロック
松明持ってガイコツも ちょうつがい外し踊ったぜ
路地の裏のゴミ箱じゃ イワシの頭も踊ったぜ
ホーネホネロック ホーネホネロック ホーネホネー ホネロック
砂漠じゃ死んだライオンも 鬣乱して踊ったぜ
ムカデや蛇の亡骸も 太鼓にあわせて踊ったぜ
ホーネホネロック ホーネホネロック ホーネホネー ホネロック
ホーネホネロック ホーネホネロック ホーネホネー ホネロック
0412デフォルトの名無しさん
2006/08/27(日) 20:43:26ただ411はコピペだな
0413デフォルトの名無しさん
2006/08/27(日) 20:45:590414デフォルトの名無しさん
2006/08/27(日) 20:46:370415デフォルトの名無しさん
2006/08/27(日) 20:47:36高校時代バリバリの体育会系だった俺からしたら歩いた時点で失格。
拍手なんてなくていい。
0416デフォルトの名無しさん
2006/08/27(日) 20:49:430417デフォルトの名無しさん
2006/08/27(日) 20:51:19何気に3D演出(2Dでもできるけどw)でフイタw
0418デフォルトの名無しさん
2006/08/27(日) 21:44:51なつかしすぎwwwwwwwwwwwwwwwwwwwwwwwwww
0419デフォルトの名無しさん
2006/08/27(日) 22:00:20作成しています。Zバッファを有効にしているのですが、見る方向によって前後
が正しく表示できません。遠くのもの(壁)は小さく表示されますが、一番遠くのもの(壁)が
一番上に表示されてしまいます。D3DRS_ZFUNCをD3DCMP_LESSに設定すると今まで
おかしかった方向からの視点では正しく描画されるようになるのですが、いままで
正しかった方向からがうまくいかなくなります。
原因などわかりますでしょうか?・・・これじゃ伝わらないですかね・・?
0420419
2006/08/27(日) 22:27:50ttp://www.uploda.org/uporg495059.cpp.html
InitVertexBuffer()で頂点バッファに壁情報を格納して、Render()で描画しています。
どなたかよろしくお願いします!
0421デフォルトの名無しさん
2006/08/27(日) 22:44:55× 0.0f, // 最も近い面の Z 座標
とりあえず1.0fにすればいいわ。
0423デフォルトの名無しさん
2006/08/28(月) 18:28:38どのビデオカードだったら動作させられるんだ?
9800PROじゃ無理だった。
X1000シリーズなら大丈夫なの?
0424デフォルトの名無しさん
2006/08/28(月) 18:34:39ふぁ;kjslkfj;かjf
0425デフォルトの名無しさん
2006/08/28(月) 20:06:19DX10 Readyと書かれてるやつ
0426デフォルトの名無しさん
2006/08/28(月) 20:12:27それ以前にOSは何を使っている?
0427デフォルトの名無しさん
2006/08/28(月) 20:15:420428デフォルトの名無しさん
2006/08/28(月) 20:27:46ビデオカードをいくら最新にしても動くわけがないだろ。
0429デフォルトの名無しさん
2006/08/28(月) 20:39:330430423
2006/08/28(月) 20:46:18んでRadeon9800でリファレンスモードで動かそうとしてもまったく動かない
CPUが「助けて!」ってうなってたから切ったよ
魚うごかしたいのに
http://journal.mycom.co.jp/articles/2006/08/01/siggraph01/images/020l.jpg
0431デフォルトの名無しさん
2006/08/29(火) 06:13:59普通にただのバンプじゃねぇの?
0432デフォルトの名無しさん
2006/08/29(火) 06:42:160433デフォルトの名無しさん
2006/08/29(火) 07:20:590434デフォルトの名無しさん
2006/08/29(火) 09:08:00ttp://journal.mycom.co.jp/photo/articles/2006/08/01/siggraph01/images/021l.jpg
本題はこっちだろ。430は比較のための従来の手法の説明画像だ。
0435デフォルトの名無しさん
2006/08/29(火) 13:38:25現在のモーションの再生時間や各モーションの終端フレーム数(秒数)を取得することは出来ないのでしょうか。
歩くモーションの終わりと走るモーションの始め(またはその逆)を繋げば動きが綺麗に見えるのに
現状では歩くモーションの途中で走るモーションに移行し、動きが飛んでいるように見えてしまいます。
0436デフォルトの名無しさん
2006/08/29(火) 20:56:360437デフォルトの名無しさん
2006/08/29(火) 22:07:02それでもディスプレースメントマッピングなんて前からできてたやんけ。
DirectX9にも虎が拉げてるサンプルあったべ。
0438デフォルトの名無しさん
2006/08/29(火) 22:57:51DirectX SDK入れようと思うんですが、
バージョンは August 2006 で大丈夫でしょうか?
0439デフォルトの名無しさん
2006/08/29(火) 23:01:52駄目です。
0440デフォルトの名無しさん
2006/08/29(火) 23:06:43October 2004 なら大丈夫でしょうか?
0441デフォルトの名無しさん
2006/08/29(火) 23:08:45DirectX 9.0 SDK Update (June 2006)
DirectX 9.0 SDK Update (April 2006)
DirectX 9.0 SDK Update (February 2006)
この辺なら大丈夫でしょうか?
0442デフォルトの名無しさん
2006/08/29(火) 23:41:560443デフォルトの名無しさん
2006/08/30(水) 02:55:23使い物にならなくなったってこと?
0444デフォルトの名無しさん
2006/08/30(水) 02:59:59まあ、元から珍妙な進化の仕方してた奴だったけど…
コントローラGetしたあとReleaseが必要だって時点で激しくビビった。
0445デフォルトの名無しさん
2006/08/30(水) 03:16:40つか進化するのはいいんだが仕様が変わりすぎなんだ。
重要な関数が消えたり、なぜか他のと同じ機能の関数が出来てこれは未サポートで従来のを使えとか。
>>444でも書いてる通りドキュメントが明らかに少ないから、VerUp毎にサンプルを弄ったほうが正確じゃないだろうか。
自作するって言ってもそれだけでだいぶ時間が取られるから個人的には重宝してる。
0446デフォルトの名無しさん
2006/08/30(水) 03:34:21の割りに、なんでAnimationControlerがあんな変な進化したのかは本気で謎だけど。
誰か止めなかったのか?
0447デフォルトの名無しさん
2006/08/30(水) 04:49:16まあ、元から珍妙な進化の仕方してた奴だったけど…
コントローラGetしたあとReleaseが必要だって時点で激しくビビった。
0448デフォルトの名無しさん
2006/08/30(水) 05:28:58>自作するって言ってもそれだけでだいぶ時間が取られるから個人的には重宝してる。
お前、作ったことねぇだろ。
こんなもんかかっても1日ありゃできるし、わざわざ他人様の使って悩まされる時間のがよっぽど無駄だっての。
それにこの辺が複雑に見えるのはようはよくわかってないから。
綺麗にまとめればこんな(AnimationControler)に無駄に複雑にはならない。
0449デフォルトの名無しさん
2006/08/30(水) 08:13:13あとはそれを各フレームに適用するだけ。
別に難しいところは無い。
0450デフォルトの名無しさん
2006/08/30(水) 09:35:45>>445を擁護するつもりはないが、ゼロから組んで1日で上げる自信は俺には無いなあ。
いや、それこそコード自体は1時間かそこらで十分書きあがるんだろうが、
ちまちま細かい間違いやったりとかしそうだし。
うん、それだけなんだけどね。
0451デフォルトの名無しさん
2006/08/30(水) 11:59:05LPD3DXAnimationController pAnimCtrl;
・再生時間
D3DXTRACK_DESC desc;
pAnimCtrl->GetTrackDesc( 0, &desc );
desc.Position←コイツ
・終端フレーム
LPD3DXANIMATIONSET pAnimSet;
pAnimCtrl->GetAnimationSet( 0, &pAnimSet );
pAnimSet->GetPeriod()←コイツ
SAFE_RELEASE( pAnimSet );
・移行( Track0→Track1へブレンディング )
pAnimCtrl->SetTrackEnable( 0, TRUE );
pAnimCtrl->SetTrackEnable( 1, TRUE );
pAnimCtrl->SetWeightScale( 0, 1.0f - weight ); 1.0〜0.0へ
pAnimCtrl->SetWeightScale( 1, weight ); 0.0〜1.0へ
0452デフォルトの名無しさん
2006/08/30(水) 12:02:29○ pAnimCtrl->SetTrackWeight
間違えた
0453435
2006/08/30(水) 14:49:47ありがとうございます。
ID3DXAnimationControllerだけしか見ていませんでしたが他に入ってたんですねorz
0454デフォルトの名無しさん
2006/08/30(水) 19:34:03メソッド名とか引数の意味とかは覚える必要は無いが、
どんな機能が用意されてるかくらい知っておけば、こんな所で質問する必要もなくなる。
0455デフォルトの名無しさん
2006/08/30(水) 20:55:230456デフォルトの名無しさん
2006/08/30(水) 21:50:02だったら、自分のコードのミスよりMSの仕様変更なんか確実にやってくるんだからそのほうが嫌だろ?
DirectXのバージョンが変わったらほぼ確実に組み直しなんだぞ。
0457デフォルトの名無しさん
2006/08/30(水) 22:07:08で、仕様が変わる上に使いにくいのに馬鹿ほど使いたがる。
馬鹿だから自分で何とか出来ずにわめくだけ。
0458デフォルトの名無しさん
2006/08/30(水) 22:15:43そりゃ初心者スレだしな。
0459デフォルトの名無しさん
2006/08/30(水) 23:04:24シェーダアセンブリとか見せられてなんだか嫌になっちゃった。
って奴多いんだろうな。
HLSLなら気持ちいいほどすっきり組める。
・・・はず。なんだけど肝心のMSのサンプルがこれまた糞。
サンプルとは思えないほど要らんことまでサポートしててスキンメッシュを単体で覚えたい奴向きじゃない。
Xファイルのデータの何をどういう計算に使うのか?
ってところもちゃんとは理解してないまでもスキンメッシュを動かせる程度の理解を求めてもまだ敷居が高いだろう。
さらにできたところでモデリングツールって何のどんな機能を使ってどんなオプションを付けて吐き出せばいいの?
とかいうところまでくるとまた頭が痛い。しかも、物によっては駄目と来てる。(見た目スキニングはできているにも関わらず)
さらに追い討ちをかけるようなアニメーションコントローラーのインターフェイス。
「ここまで御馬鹿さん専用クラスなら、フレーム毎で呼び出す形にして引数1アクション番号、引数2:tでセットして
drawで裏画面に描画って形でアニメーションしてくれてよかったんじゃないか?」
と思うが、実はそんな単純なことにはなっていないどころか
アニメーションコントローラーの仕様はウンコそのもの。これだけ複雑にした割りにはなんの恩恵もないし
できることはアクション番号+tと同じようなもん。にも関わらずこの複雑さ。一体どんな脳みそかかえてんのじゃ?
と、いうわけでスキニング嫌いだったんす・・・でも、最近全部自分で組んですっきりしたよw
0460デフォルトの名無しさん
2006/08/30(水) 23:29:38サンプルでは読み込みは自力のように見えるけどフレーム管理だけしかしない?
もしかしたら自作より扱うの難しくないか。
0461デフォルトの名無しさん
2006/08/31(木) 00:31:34ボタンやコンボボックス、エディットボックスを使いたいです。
ぐぐっても見つかりません。
よろしくお願いします。m(_ _)m
0462デフォルトの名無しさん
2006/08/31(木) 01:46:16頑張ってカットアンドペースとしれ。
つったってDXUT、あんましシンプルとは言い難いんだよな。
情報はググればいくらでも引っかかってくるけど、日本語のドキュメントには大したものは無い。
頑張れー。
0463デフォルトの名無しさん
2006/08/31(木) 03:19:53今でもそれあります?
0464デフォルトの名無しさん
2006/08/31(木) 03:23:000465デフォルトの名無しさん
2006/09/01(金) 01:04:260466デフォルトの名無しさん
2006/09/01(金) 01:10:170467デフォルトの名無しさん
2006/09/01(金) 01:17:16その処理をしてるところ
0468デフォルトの名無しさん
2006/09/01(金) 06:55:58「はじめてのWindowsプログラミング VisualC++」でAPIの
初歩をひととおり学んだのですが,ボチボチdirectxにゲーム作成を
学ぼうと思っています。
とっつきの良さそうな「DXライブラリ置き場」のライブラリを使うべきか
使ってるひとが多そうだけどあまり文献が充実していないLunaを使うべきか悩んでいます。
両方使ったことのあるひとの使用感の違いをお聞きしたいのですが
0469デフォルトの名無しさん
2006/09/01(金) 06:57:300470デフォルトの名無しさん
2006/09/01(金) 07:21:48C++を学んでおいた方がよかったんじゃないかと思う。
0471デフォルトの名無しさん
2006/09/01(金) 09:16:54なにも作れないよ。
自分がゲームやって、画面に映ってるシーンがどんなプログラムになってるか
頭の中で多少でも組めないと、無理。
初心者っぽいからDXライブラリを進めとく。
ドキュメントが充実してるし、ゲームのサンプルプログラムもあるから。
0472デフォルトの名無しさん
2006/09/01(金) 14:33:55終了時に「データが壊れたぞ!」と警告メッセージが出てくるのですが、どうすればいいのでしょうか?
0473472
2006/09/01(金) 14:37:54よくわからないので、その部分だけ値を入れなおすようにしました。
0474デフォルトの名無しさん
2006/09/01(金) 14:55:32constで宣言したって事?
普通にメモリ管理ちゃんとしてないだけでしょ。
どっかの変数に配列を超えて書き込んでるだけ。
つーか、DirectXの話題じゃないし。言語の本でも読んどくといい。
0475デフォルトの名無しさん
2006/09/01(金) 15:35:09値が変わるときにって条件でブレークポイント設定すればいいと思うよ
0476デフォルトの名無しさん
2006/09/01(金) 17:08:59たぶんブレークポイントに引っかかるのはシステムのDLL内部だから
473にデバッグは無理w
症状的に、どこかでバッファオーバーランをやらかしていると思う。
バッファオーバーランをしている部分と、定数を破壊している部分が
全然関係ないという類のやつかと。
0477デフォルトの名無しさん
2006/09/01(金) 18:12:55ワロタ
0478デフォルトの名無しさん
2006/09/01(金) 18:34:23よくわからないので、もう一度建て直すことにしました。
0479デフォルトの名無しさん
2006/09/01(金) 23:04:27スプライト重くて・・・
なんか他にいい方法ない?
0480デフォルトの名無しさん
2006/09/01(金) 23:04:49自分は473の症状から
何かのポインタ=timeGetTimeの時にstaticのポインタ渡して弄ってる場合ってのが思い浮かんだから
それで解決できると思った。
まぁとりあえず参考意見程度に
0481デフォルトの名無しさん
2006/09/01(金) 23:14:41何をどうしてどのように重いのか、一切省略せずに適切に書け。
話はそれからだ。
0482デフォルトの名無しさん
2006/09/01(金) 23:54:433Dでも60FPS出来るんだ。
全画面1ドットずつ動かしても毎秒60ドットはスライド出来るってことだ。
それと比べても遅いと思うならやり方が間違ってる。
0483デフォルトの名無しさん
2006/09/02(土) 01:12:300484デフォルトの名無しさん
2006/09/02(土) 01:31:15本来そっち用途でない3D向けのハードにエミュレーションさせてるのが大半なんで、
性能比で見ると非常に損した気分になる。
でも、それでも必要十分な程度には(むしろお釣りが来るくらい)速いのが普通。
致命的なほどに重いとなったら、使い方に問題があるとしか思えん。
何をどうしてどのように重いのかちゃんと書いたら、>>481が適切に答えてくれるだろう。
0485デフォルトの名無しさん
2006/09/02(土) 01:43:05D3DXの似たような名前のAPIをスプライト機能だと思っているのなら完全な勘違い。
あえて言えばオーバーレイや別レイヤで描画されるカーソルがそれにあたるだけ。
0486デフォルトの名無しさん
2006/09/02(土) 01:48:40古式ゆかしくハードで実装してなきゃ認めんとか言うのは勝手だが、論点がずれてる。
0487デフォルトの名無しさん
2006/09/02(土) 01:58:09もし話を出すのならスプライトと書かずにD3DXSpriteと書くべき。
0488デフォルトの名無しさん
2006/09/02(土) 01:58:49CPU遅いやつなら妥協は必要だと思う
0489デフォルトの名無しさん
2006/09/02(土) 01:59:450490デフォルトの名無しさん
2006/09/02(土) 02:03:13遅いのはテメエの足りない脳の処理速度だろという話になる。
0491デフォルトの名無しさん
2006/09/02(土) 02:09:41昔の自分を口汚く罵るだけという罠。
0492デフォルトの名無しさん
2006/09/02(土) 02:10:52>CPU遅いやつなら妥協は必要だと思う
わかるんだが、それだとスプライト以上に3Dが遅い環境だということに。
つーか>>479は何処行った。
寝たのか?
0493デフォルトの名無しさん
2006/09/02(土) 02:13:24どの面下げてレスしたらいいかわからず影から見守る>>479
0494デフォルトの名無しさん
2006/09/02(土) 02:44:030495デフォルトの名無しさん
2006/09/02(土) 07:26:46> 9.0に限らずスプライトは素の3Dより概ね重い。
> 本来そっち用途でない3D向けのハードにエミュレーションさせてるのが大半なんで、
> そもそもDirectXにはスプライト機能など存在しない。
> D3DXの似たような名前のAPIをスプライト機能だと思っているのなら完全な勘違い。
> 名前がSpriteを名乗っているだけで、スプライト機能ではない。
> もし話を出すのならスプライトと書かずにD3DXSpriteと書くべき。
0496デフォルトの名無しさん
2006/09/02(土) 08:43:530497デフォルトの名無しさん
2006/09/02(土) 09:35:35そしてどのくらいのサイズの物を一つのフレームにいくつ出して何FPSで、
どの程度を想定して遅いと言っているのかぐらい書くのは質問する上での義務。
0498デフォルトの名無しさん
2006/09/02(土) 10:18:11Windowsマシンにスプライト機能はありませんよ
0499デフォルトの名無しさん
2006/09/02(土) 10:51:340500デフォルトの名無しさん
2006/09/02(土) 10:57:110501デフォルトの名無しさん
2006/09/02(土) 11:16:33ttp://pcmania.jp/~ringo/sfc01.jpg
0502デフォルトの名無しさん
2006/09/02(土) 12:38:410503デフォルトの名無しさん
2006/09/02(土) 13:30:070504デフォルトの名無しさん
2006/09/02(土) 13:41:56なっていなければスプライト機能ではない。
0505デフォルトの名無しさん
2006/09/02(土) 13:50:55それはどこで定義されてるの?
君の脳内以外で。
0506デフォルトの名無しさん
2006/09/02(土) 13:57:000507デフォルトの名無しさん
2006/09/02(土) 14:03:250508デフォルトの名無しさん
2006/09/02(土) 14:14:43頭の弱い馬鹿を勘違いさせるような名前を付けたよな。
0509デフォルトの名無しさん
2006/09/02(土) 14:47:08描画するだけで糞重いんだが違うのか。
0510デフォルトの名無しさん
2006/09/02(土) 14:49:35脳味噌が足りないのは十二分に分かったから最低限の情報ぐらい出せ。
0511デフォルトの名無しさん
2006/09/02(土) 14:52:02以後1000までスプライトの定義について話し合いますか?
ちなみにセガサターンみたいなのはどう認識してるわけ?
0512デフォルトの名無しさん
2006/09/02(土) 14:53:440513デフォルトの名無しさん
2006/09/02(土) 14:57:470514デフォルトの名無しさん
2006/09/02(土) 15:05:58ドッカン
m ドッカン
=====) )) ☆
∧_∧ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( )| |_____ ∧_∧ < おらっ!出てこい>>479
「 ⌒ ̄ | | || (´Д` ) \___________
| /  ̄ | |/ 「 \
| | | | || || /\\
| | | | | へ//| | | |
| | | ロ|ロ |/,へ \| | | |
| ∧ | | | |/ \ / ( )
| | | |〈 | | | |
/ / / / | / | 〈| | |
/ / / / | | || | |
/ / / / =-----=-------- | |
0515デフォルトの名無しさん
2006/09/02(土) 15:06:39こことかゲーム製作技術板にも一定数いるみたいだな。
なんでそんな無駄なことしてるのか一体どんなゲーム目指してるのか一度聞いてみてぇ。
マップチップで作りたいとかもう時代じゃねぇんだよ。
色んなリソース食い潰した挙句そんなショボイもん作ってどうするのかと。
DirectXのスプライト機能なんて板ポリちゃうんかとあのクラスなにか恩恵あるのかと。
お前、どこまで脳みそ無いのかと。
0516デフォルトの名無しさん
2006/09/02(土) 15:16:130517デフォルトの名無しさん
2006/09/02(土) 15:19:51D3DX系の高レベルAPIは使うな。
APIそのものも腐っていれば使う奴はもっと腐っている。
0518デフォルトの名無しさん
2006/09/02(土) 15:28:54DirectXは腐っているから自前でGPU叩こうぜ。
Windowsは腐っているから自前でOS書こうぜ。
x86アーキテクチャは腐っているから自前で設計しようぜ。
この世界は腐っているから(ry
0519デフォルトの名無しさん
2006/09/02(土) 15:29:100520デフォルトの名無しさん
2006/09/02(土) 15:32:14あるよ。
マップチップ配置してるゲームって見た目ショボイもんしかできないじゃん。
一体何を目指してるのかマジで知りたい。
vectorにもマップチップ使ったショボイゲームが転がってるけど
何を目指してそんな見た目にしようとしたのかマジで聞いてみたい。
SRPG作るならFFTみたいなの作りたいとか思わないのかと。
0521デフォルトの名無しさん
2006/09/02(土) 15:35:030522デフォルトの名無しさん
2006/09/02(土) 15:39:25いや、見た目がすべてとはいわないけどさ。
わざわざショボクする必要はないわけじゃん。
0523デフォルトの名無しさん
2006/09/02(土) 15:52:50わざとしょぼい物を選んでいるというわけではないと思うが…。
そんなに言うなら手当たり次第本人に忠告してやったらどうだ?
0524デフォルトの名無しさん
2006/09/02(土) 15:55:14なんかそれ荒らしっぽいじゃん。
それになんか参考にしてるゲームでもあるのかもしれないし。
0525デフォルトの名無しさん
2006/09/02(土) 16:02:06実際描画1つで糞重いんだからしょうがないだろうがwwwwww
0526デフォルトの名無しさん
2006/09/02(土) 16:08:57http://akiba.ascii24.com/akiba/news/2006/05/26/imageview/images809266.jpg.html
0527デフォルトの名無しさん
2006/09/02(土) 16:38:340528デフォルトの名無しさん
2006/09/02(土) 16:48:04描画一つで何十秒もかかるのか。
オマエの脳内PCも大変だな。
0529デフォルトの名無しさん
2006/09/02(土) 16:49:29人が作ってるものの内容を一々気にしてくれる親切な人がいたり
ほんとの初心者は実は見ないほうがいいスレになってるなここ
0530デフォルトの名無しさん
2006/09/02(土) 16:52:390531デフォルトの名無しさん
2006/09/02(土) 16:54:220532デフォルトの名無しさん
2006/09/02(土) 17:10:11何このゴキブリwww
0533デフォルトの名無しさん
2006/09/02(土) 17:23:46ID3DXSPRITEのDraw1回分でDrawPrimitiveで4角形(3角形2個分)24〜25個の描画が出来た。
後者はトランスフォーム済み頂点使ってるから対比するには合ってないかもしれないけど
お世辞にも「軽い」とか「同じぐらい」と言えるレベルじゃない。
なんでこんな関数消さずに残しているのだろうか。
0534デフォルトの名無しさん
2006/09/02(土) 17:38:380535デフォルトの名無しさん
2006/09/02(土) 17:39:344角形とか3角形とかって凄い表記だな。
0536デフォルトの名無しさん
2006/09/02(土) 17:51:11SDKのバージョンは?
0537デフォルトの名無しさん
2006/09/02(土) 18:03:45いや、本当に普通に遅いんじゃね?
俺も一度使っただけだけどそんとき「おっせ」って結論出した記憶がある。
厳密に数字出したわけじゃないけど。
まあ、それ以上に俺が思ってたようなことができなくて扱いづらくて止めたって記憶もあるが。
0538デフォルトの名無しさん
2006/09/02(土) 19:08:03・描画する分板ポリ情報を頂点バッファにCopyMemoryする
・頂点アンロック
・頂点ストリーム設定、頂点シェーダ設定とか諸々
・DrawIndexedPrimitiveで描画
これじゃあダメなんすか?
0539デフォルトの名無しさん
2006/09/02(土) 19:54:31ちょこっとだけシェーダ書けば(ホント5〜6行)
ロック、アンロックもする必要ないんじゃない?
0540デフォルトの名無しさん
2006/09/02(土) 20:21:26簡単に重い言うなよ
0541デフォルトの名無しさん
2006/09/02(土) 20:39:24ああいうのはDirectXのスプライトなんて使ってたらできないだろ。
0542デフォルトの名無しさん
2006/09/02(土) 20:43:430543デフォルトの名無しさん
2006/09/02(土) 20:46:09いや、だからD3DXSpriteのこと。
0544デフォルトの名無しさん
2006/09/02(土) 20:47:54てか、いちいちうざいな。
日本語は話の流れを組み取るようにできた言語なんだよ。
だからよくあるセリフのほとんどに主語が存在しない。
まあ、言ってみれば馬鹿には扱えない言語ってことw
0545デフォルトの名無しさん
2006/09/02(土) 20:50:37省略していいものと間違いとは全く別の話。
0546デフォルトの名無しさん
2006/09/02(土) 21:00:10まあ、知ってるけどさw
まさか、今、話題だしてそのスプライトのこと言ってるとは思わないよ。
0547デフォルトの名無しさん
2006/09/02(土) 21:04:00DirectXにスプライト機能など無い。
DirectXにスプライト機能など無い。
DirectXにスプライト機能など無い。
DirectXにスプライト機能など無い。
DirectXにスプライト機能など無い。
DirectXにスプライト機能など無い。
DirectXにスプライト機能など無い。
0548デフォルトの名無しさん
2006/09/02(土) 21:18:00そんな古の技術が神秘大陸アトランティスと共に沈んだときに
>>542も一緒に心中すればよかったのに。
0549デフォルトの名無しさん
2006/09/02(土) 21:21:54しかし少なくともDirectXにはそんなAPIは存在しない。
0550デフォルトの名無しさん
2006/09/02(土) 21:33:21決して自分の間違いを認めず、間違ったまま恥の上塗りをし続ける。
しかしほとぼりが冷めた頃、いつの間にか間違いを正して、
以前の間違っていた事実を無かったことにする。
0551デフォルトの名無しさん
2006/09/02(土) 21:38:290552デフォルトの名無しさん
2006/09/02(土) 21:52:37(スプライトって書くと妙なのが湧くから面倒でもこう書こう)
0553デフォルトの名無しさん
2006/09/02(土) 21:59:240554デフォルトの名無しさん
2006/09/02(土) 22:32:560555デフォルトの名無しさん
2006/09/02(土) 22:33:340556デフォルトの名無しさん
2006/09/02(土) 22:41:24ただ基本的に楽するためのものだから速度や自由度に差はある
弾幕系だと楽になるわけでもないので他の方法で組めよ
0557デフォルトの名無しさん
2006/09/03(日) 01:28:58速度上がったんだ。
知らなかった。
つーか今までが理不尽なくらい遅くて使い物になら無かったからなあ。
普通にバラで使うなら楽でいいが、例によって弾幕系はあれか。
頂点バッファ自前で持ってトリプルバッファリングとかで回しつつロックしまくりか。
DrawPrimitiveUPでだだ書きしても速度なんか大して変わらんかった気もするが、どうでもいいね。
0558デフォルトの名無しさん
2006/09/03(日) 01:33:14文字コードが散ってる国じゃ、レンダリング結果のキャッシュなんか使い物にならん。
普通に書いてたらGDIよか遅くなるくらいだし。
つーかご丁寧にWindowsGDIのフォーマット指定なんか真似しないでいいのに。
使い辛いったらない。
D3DXのX関係は、誰だこんなん作った奴はってくらいのわかり辛さだが、
機能自体はそれなりに充実してるよな。
アロケータを継承してカスタム化したりする一連の手続きを拒絶反応起こさずに
呑めるかどうかはあるが、素性としてはそんなに悪くない。
ゼロから自分で書くのも面倒くせーしな。
アニメーションコントローラは死んでいい。リアルで。
0559デフォルトの名無しさん
2006/09/03(日) 07:09:170560デフォルトの名無しさん
2006/09/03(日) 09:05:39こんなもん使わなきゃできない時点で終わってるw
0561デフォルトの名無しさん
2006/09/03(日) 09:11:540562デフォルトの名無しさん
2006/09/03(日) 09:16:42いや、さすがにあるもの使えっていっても使えるものと使えないものがあるよ。
D3DXSpriteにしてもアニメーションコントローラーにしても作った奴のセンスが糞過ぎて
どうにも使い物にならない。
0563デフォルトの名無しさん
2006/09/03(日) 09:41:490564デフォルトの名無しさん
2006/09/03(日) 10:02:58お前のこと?w
0565デフォルトの名無しさん
2006/09/03(日) 11:00:370566デフォルトの名無しさん
2006/09/03(日) 11:07:230567デフォルトの名無しさん
2006/09/03(日) 11:24:310568デフォルトの名無しさん
2006/09/03(日) 19:11:390569デフォルトの名無しさん
2006/09/05(火) 00:53:18d3dx9_30.dll←これがないって出るんだが…
0570デフォルトの名無しさん
2006/09/05(火) 00:55:450571デフォルトの名無しさん
2006/09/05(火) 06:29:11http://d.hatena.ne.jp/ginpei/20060805/1154783971
ワロスw
もう、グダグダもいいとこだなw>DirectX
同人かよw
ホントに1企業の企画するシステムなんかよw
開発担当者が1人だけ割り当てられてて、そいつしかチェックしてないだろw
しかも、気分で定期更新。
0572デフォルトの名無しさん
2006/09/05(火) 07:03:20配布しない奴が悪いんだろう。
0573デフォルトの名無しさん
2006/09/05(火) 07:08:44普通の感覚が失われつつあるがそのシステムからいって頭おかしいけどなw
0574デフォルトの名無しさん
2006/09/05(火) 07:49:55GameSDKの頃から統括してた人はDX7で辞めちゃって違う人になってる。
だからDX8でごちゃごちゃし始まって、DX9なんて好き勝手やってる状態。
周りに振り回されてその場しのぎで仕上げるのがバレバレ。
0575デフォルトの名無しさん
2006/09/05(火) 08:14:06特に5や6までは、初期化すら出来ない奴が多かったろう
0576デフォルトの名無しさん
2006/09/05(火) 09:42:18いやそうではなくて
一貫して現場出身の人間が統括していたのがDX7までってこと
だから気難しいSDKだったと思う
0577デフォルトの名無しさん
2006/09/05(火) 10:28:330578デフォルトの名無しさん
2006/09/05(火) 10:47:57良くD3DXのアニメーション周りと、そのDLLの件が引き合いに出されるけど、俺にとってはどちらも瑣末だな。
0579sage
2006/09/05(火) 12:01:13DirectX9で表示したいと思っていて、モーション付の人物モデルは.xファイル
で吐き出そうと思っているのですが、カメラやライトのアニメーションデータ
や背景データ(ビルボードで作成予定)はどのような形式で吐き出せばよい
のですか?(一般的なのですか?)ちなみに、3DSMAX8を使用します。
初めてDirectXを使って3Dプログラミングをやるため、どのような形式でデータ
を用意すればよいかわかりません。
どなたか教えていただけないでしょうか?
0580デフォルトの名無しさん
2006/09/05(火) 13:57:44コンパネで設定されているExclamationとかQuestionの設定を取得して鳴らせますか?
0581デフォルトの名無しさん
2006/09/05(火) 16:57:01Xファイルに頂点2点設定して
SDKのサンプルViewerでその線分を見ることは可能ですか?
0582デフォルトの名無しさん
2006/09/05(火) 17:34:07はわわわわわ
0583デフォルトの名無しさん
2006/09/05(火) 17:47:390584デフォルトの名無しさん
2006/09/05(火) 19:01:06開発環境は VS.NET2005で、現在までに
フレームのサイズを落としたりインターレースの解除はできたのですが
fpsの変更というのがよくわかりません。
ヘルプを見ると
VIDEOINFOHEADERでできそうだったので
VIDEOINFOHEADER *pVih = (VIDEOINFOHEADER*)pmt->pbFormat;
pVih->AvgTimePerFrame = 666667;//フレームレート決定(100ナノ秒)
pConfig->SetFormat(pmt);
こんな感じで書いて見ましたが全く駄目だったので
IAMTimelineを使い
CoCreateInstance(CLSID_AMTimeline, NULL, CLSCTX_INPROC, IID_IAMTimeline, (void **)&g_pAmtime);
g_pAmtime->SetDefaultFPS(10);
みたいな感じで書いてみました。
がこちらも全く駄目した。
フレームレートを変更するにはどうしたらいいのでしょうか?
0585デフォルトの名無しさん
2006/09/06(水) 16:08:42http://www.microsoft.com/JAPAN/developer/library/jpdx8_c/ds/ref/iface/IAMStreamConfig.htm#SetFormat
「全く駄目」じゃ進歩がないよ。エラーコードをちゃんと調べなきゃ。
0586デフォルトの名無しさん
2006/09/06(水) 17:28:06DirectXで描画した上にボタンやエディットボックスなどを表示できなかったのですが
ゲームなどで見かけるボタン等は自分で実装するものなのですか?
それとも自分のやり方が悪かったのでしょうか?
0587デフォルトの名無しさん
2006/09/06(水) 18:00:06スレ汚しごめんなさい
0588デフォルトの名無しさん
2006/09/06(水) 22:07:14いろんなアプリがあるからなんとも言えん。
もうぶっちゃけゲームゲームした画面なら99%が自前だと思うよ。
たまにWin32APIのを使ってるのもあるけどゲームアプリでイベント処理するの面倒臭いw
0589デフォルトの名無しさん
2006/09/06(水) 23:09:48コンフィグとかだけWin32APIで作って
本編のゲームと独立してるやつって結構ない?同人ゲーとか
0590デフォルトの名無しさん
2006/09/07(木) 00:00:59ああ、なんか主人公の名前入れるところで
日本語入力ができる(IME?)ゲーム画面みたことあるなぁ。
ちゃんとイベント処理すりゃできるんじゃねぇ?(とか、よくわからんけどテキトーなこと言ってみるw)
でも、俺だったらゲーム画面に取り込むようなことしないで設定なら
泥臭いMFCウィンドウだしちゃうかな。
主人公の名前ぐらいは用意したほうが雰囲気いいとおもうが、
さすがにIPやら解像度設定までゲーム画面で頑張らなくていいと思う。
0591デフォルトの名無しさん
2006/09/07(木) 07:44:21コントロールのためのWM_があるんでそれ拾えば対応できるよ
ソースはネットに転がってるからお好きなのどうぞ
0592デフォルトの名無しさん
2006/09/07(木) 14:49:38DXUTを解析すればいい
0593デフォルトの名無しさん
2006/09/08(金) 02:53:44最低限動くソースに自分で追加改良して習うより慣れろ的なやり方で学びたいのですが
どこのサイトを見てみても2、3年前のものばかりでソースをそのままコピペしたものでは
ためしにコンパイルすることもできません。
dswごと入ったサンプルならもちろんコンパイルできるのですが、
これを編集していって慣れていくやり方で将来オリジナルのものを
作れるようになるものなんしょうか?
できれば勉強方法のアドバイスとかが欲しいです
0594デフォルトの名無しさん
2006/09/08(金) 02:58:34必ずしも良書とは言いがたいし、DX7くらいの頃から内容も大して変わってないが、
高価いもんじゃないし、CDにソース付きでサンプルが大量に入ってる。
入門って意味ではそれなりにオススメ。
0595デフォルトの名無しさん
2006/09/08(金) 03:16:23DirectX9ではコンパイル不可なのですか?
0596デフォルトの名無しさん
2006/09/08(金) 05:00:510597デフォルトの名無しさん
2006/09/08(金) 09:20:49お金かかるが、>>594の方法にしなさい。
どこのサイトの話かわからんけど、ソース公開してるのにコンパイルできないんじゃ
DirectXというよりWIN32API(もしかしたら言語レベル)とかの知識が全然足りないと思う。
0598デフォルトの名無しさん
2006/09/08(金) 14:40:07コピペして出来たソースをプロジェクトに追加する方法すら分かってない気がする
0599デフォルトの名無しさん
2006/09/08(金) 14:56:320600デフォルトの名無しさん
2006/09/08(金) 15:31:26ほとんどがアウト
0601デフォルトの名無しさん
2006/09/08(金) 15:46:040602デフォルトの名無しさん
2006/09/08(金) 15:54:23そのままではコンパイルできないんじゃなかったっけ?
>>593はよく調べていないだけ。ちゃんと調べれば出てくる。
0603デフォルトの名無しさん
2006/09/08(金) 16:03:49ttp://www.amazon.co.jp/gp/product/toc/4798013161/
工学社の奴は9.0cに対応していない
0604593
2006/09/08(金) 17:30:37Cを一通りとC++のクラスだけやった程度ではまだまだ
初心者の域にすら入れていなかったようです・・・。
もう一度勉強し直して初心者の域まできてからまたよろしくお願いします。
0605デフォルトの名無しさん
2006/09/08(金) 17:35:00もぅ.NETなのか・・・。
始めてVC見たとき感動したのにな・・・orz
0606デフォルトの名無しさん
2006/09/08(金) 19:16:48大文字/小文字と全角/半角を混同する方も大差ないと思うw
0607デフォルトの名無しさん
2006/09/08(金) 21:07:45君の言葉どおりだとC++はクラスだけだとしても、Cは使えるんだよな?
だったら、VC++EE2005とDirectX9SDKをDLすれば、とりあえず環境はバッチリ整うぞ。
無料だし。俺も同じ環境でやってる。
0608デフォルトの名無しさん
2006/09/08(金) 21:22:510609593
2006/09/08(金) 22:01:57本当にいろいろありがとです
自分もVC++EE2005でC/C++の勉強してまして、そろそろDirectXの勉強もしてみたいと思い初め
DirectX9SDKとPlatform SDKも導入したので環境の方はばっちりなんですが>>608のとおり頭の方が・・・。
とりあえずいろんな解説サイトを周って見たもののサンプルはver8で作られたソースだったり、
そのままコンパイルしても突然増えたたくさんのヘッダとライブラリに関するエラーが続出して唖然としてばっかりです。
ツールの知識もディレクトリの設定やらリンカ→入力の設定など基本的なことしかわからないので
自分では対処もできそうにないのでまた最初から出直してこようと思った次第です。
0610デフォルトの名無しさん
2006/09/08(金) 22:02:040611デフォルトの名無しさん
2006/09/08(金) 22:22:23仕事にするのでもなければ、大人しくライブラリ使ったほうが賢いと思う。
0612デフォルトの名無しさん
2006/09/08(金) 22:26:410613593
2006/09/08(金) 22:44:03実はここ↓のページで勉強しようとしていたときにライブラリ使ってやっていたのですが
ttp://ponk.jp/el/index.php?page=0
型が違うとエラーが出まくりでして・・・。どうもVC6時代のものだと最近のコンパイラでは
厳密に判断し過ぎて型チェックでエラーが出るとかなんとか。
もうホントどうしようもねーな俺・・・
0614デフォルトの名無しさん
2006/09/08(金) 22:54:500615デフォルトの名無しさん
2006/09/08(金) 23:31:22とりあえず、ウィンドウ出すだけのソースとかコピーしてみれば?
あれは毎回コピペだから変わんねーし。
それすらもコンパイル通せないんだったら、素直に本を買うといい。
0616593
2006/09/09(土) 00:28:01ttp://www.shader.jp/xoops/html/masafumi/ready2.htm
このソースをコピペしてやってみましたが結局無理でした。
絶対的に知識がないこともわかり明日から書籍で勉強する決心もつきました。
結局出たエラーがこれ↓だったのですがエラーの原因だけ教えていただけないでしょうか。
たくさんやらかしてしまったスレ汚しはこれで最後にしますのでどうかよろしくお願いします
ttp://newsstation.info/up/img/ns12975.htm
0617デフォルトの名無しさん
2006/09/09(土) 00:37:55文字コードセットをUNICODEにしてる。
文字列定義してるところにLつけてL"ぬるぽ"みたいにするか、
マルチバイト文字使用に切り替える。
VC2005とかEEだとUNICODE使用が標準なんで、少し前のソースは
そのままだとビルド通らないことは結構ある。
0618デフォルトの名無しさん
2006/09/09(土) 00:47:36つーか、超親切なエラーがでてるじゃん…
>>617の方法とか、TEXTマクロつかうとか。
この辺は自分で具ぐれ。
0619デフォルトの名無しさん
2006/09/09(土) 01:40:45ソースまるまるコピペじゃ力つかないよ。
他の人も言うようにウィンドウ作成から地道にやるべし。
ドキュメントのチュートリアル1オススメ
ウィンドウ表示できたらキャラクタ描画とかキー入力とか一つずつ入れていく。
0620デフォルトの名無しさん
2006/09/09(土) 02:11:17一見、わかりきった作業でもやってみなきゃわからんもんさ。
とくになんもかんもわからんときは、今わかってるつもりのものが
実はわかってなかったって場合が多い。
完全にブラックボックス扱いならまだしも、
触らなきゃいけない部分でおぼろげに見えてるだけのものなら一度は組んでみるべき。
0621デフォルトの名無しさん
2006/09/09(土) 02:13:23作りたいゲームがあるなら、DXUTとかをわけもわからず使うのも有りだろ。
細かなところを自分で書くのも、それはそれでまあまあ楽しいが。
0622593
2006/09/09(土) 02:46:45このことがわかっただけでほかのエラーがぐっと減りました・・・。
やっぱり基礎から地道にですね・・。
大学生は暇なんでがんばってきます!
0623デフォルトの名無しさん
2006/09/09(土) 03:08:41プログラミングに関しては何事も経験だ。がんばれー!
0624デフォルトの名無しさん
2006/09/09(土) 07:36:49DirectXを習熟するのが目的ならWindowsAPIから色々と調べて、
いずれは自前のライブラリを・・・・って感じだろうけど、
ゲームを作るのが目的ならありもものライブラリ引っ張ってくる方が
はるかにいいわけだし。
DirectXをまじめに習熟なんてゲーム作るよりまんどい。
ゲーム作るために自前ライブラリってパターンはほぼ確実に途中で投げるな。
0625デフォルトの名無しさん
2006/09/09(土) 13:01:54どうしてもゲーム作りたくて、最低限のスキルが欲しいなら、
いっそプロになってしまうのに限る。
毎日画面に向き合ってりゃ、その程度のスキルは嫌でも身につく。
ゲーム作る気力はごっそり萎えるが。
0626デフォルトの名無しさん
2006/09/09(土) 23:51:36参考になるサイトってありますでしょうか?
0627デフォルトの名無しさん
2006/09/10(日) 00:12:050628デフォルトの名無しさん
2006/09/10(日) 02:27:06そもそもチャットのどこにDirectXを使いたいのか。
0629デフォルトの名無しさん
2006/09/10(日) 03:01:010630デフォルトの名無しさん
2006/09/10(日) 03:52:40参照の期限はドライバだけが知っている。
管理しようと思うな。
0631デフォルトの名無しさん
2006/09/10(日) 08:09:30チャット画面とは別に3Dのおねぇさんが横で踊ります。
ここにDirectXを使います。
相手のレスを解読して反応を返します。
(例)
「こんにちは、いやー今日は・・・(略)・・・でしたよ」
→「○○さん、今日は機嫌がいいみたいだね!」
という感じです。
また、レス情報に付加して自分の状態を伝えるたり、ファイルを付加することもできます。
(例)
「こんにちは、いやー今日は・・・(略)・・・でしたよ」<state:楽>←感情コマンド(付加するとこっちの状態を伝える)
→「○○さん、今日は機嫌がいいみたいだね!」
「ちょっとみせたいものが・・・」<file:C:\Doc\bbbin.bin>←ファイル添付コマンド
→「はーい、○○さんから!贈り物!いつものところにおいておくね!」
というアフォなアプリケーションです。こっちは正直、キャラ萌え狙いでしょうか?
また、オプションで切り替えて画像チャット(画像掲示板のようなものです。レスといっしょに画像が送れます。)もできます。
と、いう仕様です。
0632デフォルトの名無しさん
2006/09/10(日) 08:39:25それはチャット部分とDirectXを使う部分に分離できるから
DirectXを使ったチャットと質問する意味がない。
別々に作って糊で張り合わせればいいだけ。
0633デフォルトの名無しさん
2006/09/10(日) 09:15:590634デフォルトの名無しさん
2006/09/10(日) 10:57:17そうだな、「DirectX を使った、3Dのおねぇさんが踊るアプリを
作りたいのですが、」の方が回答者も真剣になると思う。(w
0635デフォルトの名無しさん
2006/09/10(日) 11:03:09このチャットは特典としてつく奴だろ
0636デフォルトの名無しさん
2006/09/10(日) 11:47:37くやしく
0638デフォルトの名無しさん
2006/09/10(日) 18:08:53きめぇ・・・
0639デフォルトの名無しさん
2006/09/10(日) 21:27:14DirectXでSetRenderTargetを用いて、
BackBufferではなくCreateTexture関数を用いて生成したテクスチャーに
シーンを描画したいのです。
しかしながら、その際Zバッファーが適用されずポリゴンの描画順序が
おかしくなってしまいます。
CreateTextureを用いて生成したテクスチャーにZバッファーを適用
する方法はあるのでしょうか?どなたかお知恵を貸してください。
0640デフォルトの名無しさん
2006/09/10(日) 21:35:22俺は何も考えずにSetRenderTarget使ったら
勝手にバックバッファと同じZバッファが使われたけどな・・・
たぶん前の値が残ってるんだと思うからZバッファをクリアしてみたら?
0641デフォルトの名無しさん
2006/09/10(日) 22:41:16基本的にレンダリングターゲットを変更した場合はZバッファも設定しなおし。
Viewportも設定しなおす方がいい。
SetRenderState()でZ関係の設定も再設定すると安心。
デバイス生成時にZバッファ自動生成だとどうなるかワカラン。
0642639
2006/09/10(日) 22:56:50ご指摘された部分に加えて、テクスチャ生成時、サーフェイス生成時の
バックバッファと同じサイズに調整しなければならなかったようです。
640さん、641さん、ありがとうございます!
0643デフォルトの名無しさん
2006/09/10(日) 23:03:240644デフォルトの名無しさん
2006/09/11(月) 00:18:340645-403-
2006/09/11(月) 00:35:54いわれます。
どうにかダウンロードする方法教えていただけないでしょうか?・
0646デフォルトの名無しさん
2006/09/11(月) 00:38:58それが嫌ならMSに金払え。
いずれにしてもこのスレには帰ってくるな。
0647デフォルトの名無しさん
2006/09/11(月) 00:42:310648デフォルトの名無しさん
2006/09/11(月) 06:35:50>どうにかダウンロードする方法教えていただけないでしょうか?
正規版買えばいいんじゃね?w
0649デフォルトの名無しさん
2006/09/11(月) 08:36:310650デフォルトの名無しさん
2006/09/11(月) 09:47:46Windows UpdateやMicrosoft Updateなんかでも認証してないと
正規版使えハゲって言われる。
0651デフォルトの名無しさん
2006/09/11(月) 09:49:30何を持ってして正規版か判別しているか解るから、
そこを適当に誤魔化してやれば回避できるって事だな。
0652デフォルトの名無しさん
2006/09/11(月) 10:49:320653デフォルトの名無しさん
2006/09/11(月) 11:07:39そんなのした覚えないけど。
0654デフォルトの名無しさん
2006/09/11(月) 11:24:47上のほうの 今すぐ確認 とか書いてあるところをクリックしたら確認される。
0655デフォルトの名無しさん
2006/09/11(月) 11:25:32それは不可だろ。
0656デフォルトの名無しさん
2006/09/11(月) 13:39:430657デフォルトの名無しさん
2006/09/11(月) 22:14:20まあ無職だというなら納得だけど。
0658デフォルトの名無しさん
2006/09/12(火) 00:55:03Visual Studio Professionalの16万に比べたら安いもんだろ。
0659デフォルトの名無しさん
2006/09/12(火) 01:19:04その程度の買い物もできんモラル足らずの無職に恵んでやる知識なんかねーよ。
くたばれ。
0660デフォルトの名無しさん
2006/09/12(火) 01:22:150661デフォルトの名無しさん
2006/09/12(火) 01:23:370662デフォルトの名無しさん
2006/09/12(火) 01:27:41�d
0663デフォルトの名無しさん
2006/09/12(火) 03:36:15テクスチャの上にアルファチャンネルを保持したテクスチャ(PNG画像を読込)を描画させることにかなり苦戦しています。
http://www.kurokichi.net/inside/up/src/up1881.jpg
この画像のように背景テクスチャ(Tex0)とα値保持のテクスチャ(Tex1)を合成して右端のを表示させたいのですが、
現状では白色が透明色になったり、元の画像では完全に透明の部分が黒で表示されたりします。
SetTextureStageStateに何の値を入れ組み合わせれば画像のような合成が出来るのでしょうか。
見た目はTex0をテクスチャにしたポリゴンの上にTex1をテクスチャにしたポリゴンを描画し、それを上から見たのと同じになります。
ただ、これだと処理が多くなるのでテクスチャの合成を試みています。
0664デフォルトの名無しさん
2006/09/12(火) 04:06:23struct LVERTEX_UV
{
D3DXVECTOR3pos;
D3DCOLORcol;
D3DXVECTOR2uv;
static const DWORDFVF;
};
const DWORD LVERTEX_UV::FVF = D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1;
と宣言しておいて
D3DXCreateMeshFVF( div*2, div*2, D3DXMESH_MANAGED , LVERTEX_UV::FVF , g_pd3dDevice , &m_pMesh );
で作成して
Lockして内部パラメータ設定して
g_pd3dDevice->SetTexture(0,m_tex);
m_pMesh->DrawSubset( 0 );
で描画してるのですが、テクスチャが表示されません。
形はきちんと表示されています。
ので座標系の設定は間違っていないと思います。
m_texもきちんとロード済みです。UVの範囲は0〜1.0fです。
何が間違っているのでしょうか?
0665デフォルトの名無しさん
2006/09/12(火) 04:58:56ちょっと言葉で伝えるのが難しいのですが、
Y軸を45°傾けた状態でX軸を回転させるのではなく、
直接斜めに回転させたいのですがどうすればよいでしょうか?
1┌─┐2
3│ ..│4
5└─┘6
上の図で言うと、2-5で結んだ角度でぐるぐる回したいのです
よろしくお願いします
0666デフォルトの名無しさん
2006/09/12(火) 06:40:27一番楽なのがローカル座標を使うこと。
つまり、2-5の線を軸にもつマトリックスをもって普通に回転させる。
もう1つは、�@Z軸に対して2-5がY軸に垂直になるように傾ける
→�AY軸を回転させたいだけまわす→�BZ軸に対して2-5が元の位置に戻るように傾ける。
具体的に>>665の図でいうと
�@Z軸-45度傾ける(2-5をY軸に垂直に)
�AY軸をまわす
�BZ軸45度傾ける(2-5を元の位置に戻す)
ってやる。
0667デフォルトの名無しさん
2006/09/12(火) 07:02:13D3DTOP_BLENDTEXTUREALPHA
0668663
2006/09/12(火) 09:42:04レスありがとうございます。
試してみましたが
http://www.kurokichi.net/inside/up/src/up1886.jpg
このように完全に透明な部分が真っ黒になってしまいます。
pDevice->SetTextureStageState(0,D3DTSS_COLOROP,D3DTOP_SELECTARG1);
pDevice->SetTextureStageState(0,D3DTSS_COLORARG1,D3DTA_TEXTURE);
pDevice->SetTextureStageState(1,D3DTSS_COLOROP,D3DTOP_BLENDTEXTUREALPHA );
pDevice->SetTextureStageState(1,D3DTSS_COLORARG1,D3DTA_CURRENT);
pDevice->SetTextureStageState(1,D3DTSS_COLORARG2,D3DTA_TEXTURE);
ステージ0:Tex0(画像左上) ステージ1:Tex1(画像左下)
これは間違っているのでしょうか?
0669デフォルトの名無しさん
2006/09/12(火) 10:02:03一つの深度バッファを使いまわすことは出来ないのでしょうか?
特定のモデルを描画したピクセルだけを別なテクスチャに抜き出したくて、
そのモデルを描画する際にレンダーターゲットに別なテクスチャを指定して、
深度バッファだけはいままで使用していたものを使いまそうとしています。
// 描画先の変更
LPDIRECT3DSURFACE9 rt;
newTexture->GetSurfaceLevel(0,&rt);
g_pD3DDevice->SetRenderTarget( 0, rt);
rt->Release();
//いったんクリア
g_pD3DDevice->Clear(0, NULL,
D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER, D3DCOLOR_ARGB(255,0, 0, 0), 1, 0 );
//今まで使ってた深度バッファを適用
g_pD3DDevice->SetDepthStencilSurface( pZbuffer );
といったプログラムを組んでるのですが、描画先を変更する前の
深度バッファの値は新しい描画先では無視されてしまい、
レンダータゲット変更前に描画されたオブジェクトの影になる部分まで
表示されてしまいます。
深度バッファを使いまわすことは出来ないのでしょうか?
0670デフォルトの名無しさん
2006/09/12(火) 10:43:57ありがとうございます
D3DMATRIX m1, m2, m3;
D3DMatrixRotationZ( &m1, PI*0.25 );
D3DMatrixRotationY( &m2, y );
D3DMatrixRotationZ( &m3, -PI*0.25 );
m1 = m1*m2*m3;
という処理にしてみた所、上手くいきました、
45°ではなく任意の角度でやってみた所
D3DMATRIX m1, m2, m3;
D3DMatrixRotationZ( &m1, z );
D3DMatrixRotationY( &m2, PI*0.25 );
D3DMatrixRotationZ( &m3, -z );
m1 = m1*m2*m3;
こういう処理をした場合、zがどの角度であっても生成されるマトリクスは同じものになると思うのですが
実際には傾きが変化しつづけて相殺できません
回転軸を任意に回転させるにはどうすればよいでしょうか?
0671デフォルトの名無しさん
2006/09/12(火) 12:03:41ARG1とARG2逆じゃね?
0673デフォルトの名無しさん
2006/09/12(火) 13:40:04>無視されてしまい
D3DCLEAR_ZBUFFERしてるからじゃないのか
>>670
任意軸周りの回転行列を出すD3DXMatrixRotationなんとかっていう関数があるから探すんだ
0674デフォルトの名無しさん
2006/09/12(火) 14:02:33D3DXMatrixRotationAxisですね
ありがとうございます、希望の動きになりました
0675デフォルトの名無しさん
2006/09/12(火) 14:18:260676デフォルトの名無しさん
2006/09/12(火) 15:02:36複雑なモデルを表示させるには当然モデラーがいるんだよね?
そのへんがよく理解できてないんだけど、フリーウェアでDirect3Dでも読み込める
形式で出力可能なモデラーってあるんですかね?
0677デフォルトの名無しさん
2006/09/12(火) 15:18:33けど、モーションはない
0678デフォルトの名無しさん
2006/09/12(火) 15:23:41さんくす。使ってみるよ。
でもモーションが使えないとかは残念な気がするけど、そこまで自分のスキルが
追いついてないからちょうど良いのかも。
0679デフォルトの名無しさん
2006/09/12(火) 15:46:02http://www.metaseq.net/metaseq/index.html
0680デフォルトの名無しさん
2006/09/12(火) 16:38:33Animadioとか、MotionWorksしかなかった頃に比べると便利になったもんだ
MotionWorksも良かったけど、フレームアニメーションだけだったしな
0681デフォルトの名無しさん
2006/09/12(火) 16:44:210682デフォルトの名無しさん
2006/09/12(火) 18:53:33俺「東大です」
親戚「・・・え・・・!?」
俺「東京帝国大学です。」
親戚「・・・う、うわあ・・・ああ・・・ああああああああああ(イスから転げ落ちる)」
俺「どうかしましたか?」
親戚「ああ、あふゥッ・・・ひいいい・・ガクガク(足が震える)」
俺「やだなあ、そんなにびびらないで下さいよ。ちょっと頭がいいだけです
から^^」
親戚「ああ・・あ・うんっ・ああ・・・ビクンビクン(小水を漏らす)」
俺「ちなみに理3です。」
親戚「あんっ!ああん・・らめ・・・もうらめえ!ビクンビクン(射精する)」
0683デフォルトの名無しさん
2006/09/12(火) 20:27:23ttp://www.amazon.co.jp/gp/product/4899771517/
この本で遊んでみようと思い、インストールしました。
コンパイル済みのサンプルを実行するとなにも起動せずに終了して、
exeと同じフォルダにログファイルが出来ていたのでそれを見ると
「0:DXライブラリは24ビットカラーモードに対応していません」
という文章が書き込まれていました。
このパソコンでは24ビットモード以上にはならないみたいなのですが、
どのようにプログラムを書き直せばうちのパソコンでも動くのでしょうか?
(16ビット以下には落としたくないです。)
0684デフォルトの名無しさん
2006/09/12(火) 20:31:010685デフォルトの名無しさん
2006/09/12(火) 20:41:2716bitカラーで使うしかない。
0686デフォルトの名無しさん
2006/09/12(火) 21:22:13三角ストリップとかの高速化技術は意味なくなってくるものなんですか?
それはそういうものだとしてこのまま行っていいものでしょうか?
0687デフォルトの名無しさん
2006/09/12(火) 21:25:43メタセコイアで形を作ってmqoファイルに吐き出す
→RokDeBone2でmqoファイルを読み込んでモーションを作る
(→RDB2で複数のモーション合成)
0688デフォルトの名無しさん
2006/09/13(水) 02:05:36もう、解決したからどうでもいいっぽい?
でも、一応w
そのやり方だとY軸に垂直にしなきゃならんので
正方形なら必ず45度にしないといけないんだ
つまり、長方形だとすっげぇ半端な角度になったりする
まあ、D3DMatrixRotationAxisのほうがいいね(俺はその関数しらんかったけどw)
0689デフォルトの名無しさん
2006/09/13(水) 20:00:28mikotoデータを流用できるmikoto2x筆頭に
吐き出し部分書けば好きなデータも付けられるプログラマ向けのRokDeBone2、
αテスト中だけど一本で出来るMusket、
シェアで良いならエルフレイナも分かりやすくて良さそうだな
後はBlenderでも吐けそうだ。プラグイン誰か書いてたような
0690デフォルトの名無しさん
2006/09/13(水) 23:09:05初期化の仕方によって、FPSって変わるものなんでしょうか?
書籍や、そこらのホームページに載ってる方法で、初期化したものは、
大体75FPSぐらいしか出ないのに、SDKのサンプルを利用したものだと
普通に100FPSを超えます(表示するものはポリゴン一個)
どこを弄ればこんなにも差が出るのでしょうか?
よろしくお願いします
0691デフォルトの名無しさん
2006/09/13(水) 23:16:350692デフォルトの名無しさん
2006/09/13(水) 23:17:50http://tpot.jpn.ph/t-pot/program/103_FPSFixing/index.html
レスした後で、「実はDirectX7SDKを使っています」とかいう攻撃を受けたぐらいじゃ俺は倒れない。
0693デフォルトの名無しさん
2006/09/14(木) 00:01:04ありがとうございます。
そのまさかの、垂直同期とってることが原因でした。
D3DPRESENT_PARAMETERS構造体のメンバーPresentationInterval
の設定をしなかったせいで、デフォルトの値0(D3DPRESENT_INTERVAL_DEFAULT)
になってしまい、垂直同期を行っていました。
そのため、D3DPRESENT_INTERVAL_IMMEDIATEを設定し、垂直同期しないように
した所、FPSが120ぐらいになり改善されました。
実際に、SDKのサンプルを見るとコメントに
↓こう書いてあったので、これで正解みたいです。
// For windowed, the framework defaults to D3DPRESENT_INTERVAL_IMMEDIATE
// which will wait not for the vertical retrace period to prevent tearing,
// but may introduce tearing
0694デフォルトの名無しさん
2006/09/14(木) 00:13:570695デフォルトの名無しさん
2006/09/14(木) 00:44:25> あの、法線マップとかいろいろ使うと
> 三角ストリップとかの高速化技術は意味なくなってくるものなんですか?
そんな質問をしているようじゃ、とても法線マップとか使えないから安心しな。
0696デフォルトの名無しさん
2006/09/14(木) 01:26:340697デフォルトの名無しさん
2006/09/14(木) 01:52:15上に何張ろうと有効性は変わらないよ。
最近はもう少しすすんで、オブジェクトを外側から内側に書くよう
渦巻き状にストリップを進めるみたいだね。
こうすると無駄なフィルが減ってオクルージョンカリングの効率が向上し、
帯域保護に繋がると。
色々考えるもんだ。
0698デフォルトの名無しさん
2006/09/14(木) 02:11:060699デフォルトの名無しさん
2006/09/14(木) 02:20:41ストリップ化した程度の高速化では焼け石に水。
とかいう意味でなら、>>686 も正解と言える。
外側→内側に描画するのはZテストで早期にはじくためにも
以前から言われてたことだけど、オクルージョンカリングがハード側で
行われるようになれば格段に速くなるかもね。
アルファブレンディングを考えると内側→外側なんだけどな(´Д`)
0700デフォルトの名無しさん
2006/09/14(木) 06:48:59全然、速くなんてならない。
貼るものが固定だったときはそれなりだったけど
もうメッシュごとにテクスチャ切り替えまくって描画してるし
ストリップ化してもマテリアルが違うからほとんど結びつかない→ストリップ化してない状態とほとんど変わらない。
0701デフォルトの名無しさん
2006/09/14(木) 21:17:49何かのパッケージを買おうと思うものの・・・・・・どれもそれなりの値段だからなぁ・・・・・
イマイチ踏み切れない俺
0702デフォルトの名無しさん
2006/09/14(木) 21:27:10VC++2005EEでいいじゃん。
0703デフォルトの名無しさん
2006/09/14(木) 21:28:010704デフォルトの名無しさん
2006/09/14(木) 22:52:09抑えないで300くらいの状態で動かすと一定間隔でがくっっとなってしまいます
何が原因なんでしょうか・・・
FPSを抑えてるときは問題ないことから
ハードウェアのほうがいっぱいいっぱいなのかな?と思うんですが
情報が少なすぎかもしれませんが、思い当たることがあればご教授ください
0705デフォルトの名無しさん
2006/09/14(木) 22:58:54時々でいいので、OSにも処理を戻してあげてください。
イベント残業が溜まってしまいますので・・・
0706デフォルトの名無しさん
2006/09/14(木) 23:09:35一応レンダリングが終わったらSleepしてたんですが・・・1だけ
ちょっと増やしたらその分FPSも落ちますが制限しなくても大丈夫になりました
0707デフォルトの名無しさん
2006/09/15(金) 00:14:150708デフォルトの名無しさん
2006/09/15(金) 00:21:29やだよ。
なんか最近75はほしいと思うようになった。
0709デフォルトの名無しさん
2006/09/15(金) 00:29:45グラフィック的なクオリティはかなり妥協するってコトだぞ。
2Dゲームなら余裕だろうけど。
0710デフォルトの名無しさん
2006/09/15(金) 00:38:34結構すらすら動いてるよ。
0711デフォルトの名無しさん
2006/09/15(金) 00:42:430712デフォルトの名無しさん
2006/09/15(金) 00:48:4660で動くもんは75でもだいたい動くよ。
カメラの設定が悪かったりデザイナが腐れミカンだと一画面にポリゴン敷き詰めすぎてよろしくない。
俺は、速度が出ないのって最適化とかグラボの処理速度より、
この辺のセンスが悪いことが原因の方が大きい気がするけどね。
0713デフォルトの名無しさん
2006/09/15(金) 00:55:580714デフォルトの名無しさん
2006/09/15(金) 01:01:07あとはゲームのシステムにもよるか。
0715デフォルトの名無しさん
2006/09/15(金) 01:53:49ときに一応人間の筋反射は1/16秒前後が限界、
連続量の見切りだけなら1/100程度までいくらしい。
PCが速くなった分フレームレートを上げるのはいいんだが、
今度は昔に比べて遥かにメジャーになった液晶の反応速度の問題が出てくるな。
こっちの反応速度は高級品でもなければ実質50FPS程度。
それ以上にしたところで残像まみれで見れたもんじゃなくなる。
つーか下手すると回路の都合で信号を捨てられたりしてしまう。
75FPSあたりからフリッカフリーになるとは言うが、
それは走査線走らせてるモニタの話で、液晶とかでは関係ない。
あんまり速くしたところで、今度はノッキングの問題が出てくるし、
結局のところ自己満足の世界だな、今のところは。
0716デフォルトの名無しさん
2006/09/15(金) 03:29:28ディスプレイが60回しかフレームの更新してないのに、200回300回更新して何の意味があるよ。
0717デフォルトの名無しさん
2006/09/15(金) 03:34:45まあ、絵に描いた餅だけどな。
液晶は大抵60固定で、実質30未満なんてのもザラだけど。
そんなんでも普通に使うには困らんからなー。
0718デフォルトの名無しさん
2006/09/15(金) 06:15:53ただ、いいディスプレイ使ってる奴にはいい画でプレイしてほしいね。ってだけ。
0719デフォルトの名無しさん
2006/09/15(金) 09:06:27FPS30で何が困るっちゅうんだろう?
0720デフォルトの名無しさん
2006/09/15(金) 09:28:50垂直同期に関してはソフト側でリフレッシュレートを
Win9X系では自由に変えられなかったから
その流れでWindowsはタイマーで管理って流れがあるし。
いっちゃ何だが今は液晶の方が利用者は多いと思うぞ。
FPS75だと半分に落とすことが出来ないしいっそ80で作ったら?
0721デフォルトの名無しさん
2006/09/15(金) 09:38:010722デフォルトの名無しさん
2006/09/15(金) 10:53:24初期化で完全に同期するようにしてほしい。
それ以上の解像度は性能の高いものだけサポートされると。
コンシューマはこの点でうらやましい。
0723デフォルトの名無しさん
2006/09/15(金) 12:31:22> 75以上出るデバイスはあるのと、操作自体の感度は上がるので。
操作系の処理は別スレッドでやれよ・・(;´д`)
0724デフォルトの名無しさん
2006/09/15(金) 13:02:39警告はした、あとは知らん。
0725デフォルトの名無しさん
2006/09/15(金) 13:55:540726デフォルトの名無しさん
2006/09/15(金) 18:23:120727デフォルトの名無しさん
2006/09/15(金) 19:50:590728デフォルトの名無しさん
2006/09/15(金) 21:46:13なぜ皆固定したがるんだ?
0729デフォルトの名無しさん
2006/09/15(金) 21:54:09リプレイ付きで。
0730デフォルトの名無しさん
2006/09/15(金) 21:55:22可変だと色々調節するの面倒だからじゃん。
0731デフォルトの名無しさん
2006/09/15(金) 21:56:06まだ、STG作ってんのか?w
0732デフォルトの名無しさん
2006/09/15(金) 22:16:280733デフォルトの名無しさん
2006/09/15(金) 22:36:31しずちゃーん、平成18年だよ? 平成3年の知識ひけらかすのやめてよー。
0734デフォルトの名無しさん
2006/09/15(金) 22:37:01ええんじゃね?と思う。
どうせわかんねえよ。
'60FPS'って適当に文字列を表示してたら。
バーチャとかアーケード筐体の対戦ゲームの開発者ならともかく
0735デフォルトの名無しさん
2006/09/15(金) 22:54:13甜菜現る
0736デフォルトの名無しさん
2006/09/15(金) 23:12:40可変(非固定)にすると衝突した時の計算とかスゲー大変。
>>734
可変=速度が変わる ってのは間違いだぞ。
FPS非固定っていうのは要するにカクカクな動きになるってことだ。
移動速度とかは変わらない。(変わらないようにしなくてはいけない)
0737まさかこのスレでゲームのマジ話はないだろ
2006/09/15(金) 23:25:300738デフォルトの名無しさん
2006/09/15(金) 23:34:17オマエもか(;´д`)
0739デフォルトの名無しさん
2006/09/15(金) 23:59:25また馬鹿が一人。
0740デフォルトの名無しさん
2006/09/16(土) 00:03:200741デフォルトの名無しさん
2006/09/16(土) 00:20:140742デフォルトの名無しさん
2006/09/16(土) 00:41:550743デフォルトの名無しさん
2006/09/16(土) 02:21:580744デフォルトの名無しさん
2006/09/16(土) 11:23:43それをやるために1フレの目標FPSを決めてそれを基準にするんじゃないか?
0745716
2006/09/16(土) 21:21:52>FPSとかリフレッシュレートの話をすると、最後は宗教論争になるぞ。
分かってるんだけどきれーにスルーされてるのがむかついたもんでついな。
てか、皆泥沼を恐れてこの話題避けてるから、
D3DPRESENT_INTERVAL_IMMEDIATEにしたら速くなったぞやったーで終わっちゃう無邪気な初心者と、
カクカク動くゲームが量産されてるんだよ。DirectXローカルで閉じてるのならまだいいが、
最近はゲーム機やアーケードにまでそういう無頓着な作りのゲームが紛れ込んできてるからな。
たぶんDirectX出身のプログラマがアホやってるんだろう。
ディスプレイがハードウェア的に固定回数のフレームの刷新をしていることを無視して、
究極の映像美などありえんのだよ。
と燃料投下
0746デフォルトの名無しさん
2006/09/16(土) 21:32:34無頓着とかDirectXは関係ないだろう。
処理落ちなんてアーケードでは普通にあること。
2Dの頃は処理落ちしたらそのままゲームのスピードまで遅くなっていたんだから
今よりよっぽど無頓着だったかと。
0747デフォルトの名無しさん
2006/09/16(土) 21:57:28ちと論点がずれてるっぽい。
処理オチだけの話じゃないし、そういうレベルの話じゃない。
俺は >>716 が危惧してることも分からなくはないが、
垂直同期というのもを理解しようとしない人が多いのと
FPSには強い信念を持ってる人が強情なのと、とにかく議論が平行なんだよね。
基本的にコンシューマ機ではティアリングとか無視できないけど
PCではリフレッシュレートが一様じゃないのと、スペック的に
60FPSで回すこと自体が満足にできないマシンが多いから、諦められる。
知って実装してる人と、知らなくて理解をしようともしなくてゲームを作ってる
人がいることは、大変な危機感を抱く。本当はみんなに理解してほしい。
0748デフォルトの名無しさん
2006/09/16(土) 22:18:01プログラムで満足しちゃうってこと?
常時48fpsくらいで回ってるみたいな。
0749デフォルトの名無しさん
2006/09/16(土) 22:28:24そういう心配じゃなくて、ハードの特性を理解しないままでいるってことが。
垂直同期が60/秒だったら、それ以上速いタイミングで画面を更新しても
意味がないっていうか、そもそも更新することができないってこととか。
垂直同期を無視した場合に、画面にチラチラ何かが横切ってる(ティアリング)
原因がわからないとか。
無知を心配してるんじゃなくて、「でも、まあ動いてるからいいか」とか
「こっちの方が速くなった」とかで満足してる人が心配。
0750デフォルトの名無しさん
2006/09/16(土) 22:36:58どこのゲームメーカだ?
0751デフォルトの名無しさん
2006/09/17(日) 01:10:27バッファに転送して画像を表示しています。
このサーフェイスのRGBの値は変更出来るのですが、アルファ値が変更出来ません。
どうしたらいいでしょうか?
0752デフォルトの名無しさん
2006/09/17(日) 01:34:07アルファ書き込みモードはONになっているか。
0753デフォルトの名無しさん
2006/09/17(日) 02:06:35サーフェイスもバックバッファも全部アルファありにしてみたんですがダメでした
テクスチャのアルファは普通に変更出来るんですが、サーフェイス作成の方は
出来ないです。
なにか設定が足りないんでしょうか…
0754デフォルトの名無しさん
2006/09/17(日) 03:25:25LockRectで取得したピクセル列の並びがよく分からない。
ピクセルを4バイトずつ進めても上手く書き込めない。
アルファ値だけおかしい。
0755デフォルトの名無しさん
2006/09/17(日) 03:32:310756デフォルトの名無しさん
2006/09/17(日) 10:22:37何をしたいのかわからんがサーフェイス間転送ってそのまんまコピーしかできないぜ。
DirectX7みたいなカラーキーの処理は無理。
そもそもStretchRectできるサーフェイスってD3DPOOL_DEFAULTのみなんだし
ロックできないんじゃねーの?
0757デフォルトの名無しさん
2006/09/17(日) 10:30:49下記の工程1の場合に比べ、工程2で描画した方が、なぜか描画のFPSが飛躍的
にあがります。これは、どのようなことが原因なのでしょうか。
ちなみに作成したメッシュは立方体*36であり、立方体の6面、それぞれに対して
テクスチャを貼り付けてるので、アトリビュートの値は、それぞれバラバラで
整理されていません。
よろしくお願いします。
工程1:
D3DXCreateMeshFVFで空のメッシュを作る
↓
頂点、インデックス、アトリビュートをロックして情報を入れる
↓
描画する
工程2:
D3DXCreateMeshFVFで空のメッシュを作る
↓
頂点、インデックス、アトリビュートをロックして情報を入れる
↓
D3DXSaveMeshToXでXファイルを作成する
↓
メッシュを解放
↓
作成したXファイルをD3DXLoadMeshFromXで読み込み、新しくメッシュを作る
↓
新しく作ったメッシュで描画する
0758デフォルトの名無しさん
2006/09/17(日) 10:33:471と2でメッシュがどう変わってるのか調べればいいじゃないか。
0759デフォルトの名無しさん
2006/09/17(日) 10:39:230760デフォルトの名無しさん
2006/09/17(日) 11:11:360761デフォルトの名無しさん
2006/09/17(日) 11:12:56今、調べてみたんですが、
作成したXファイルをD3DXLoadMeshFromXで読み込んだ方のメッシュは、
なんか、最適化されてるみたいです。
バラバラになってるはずのアトリビュートの値が整頓されており、
対応するようにインデックスの値も最適化されていました。
最適化を行うOptimize関数は、プログラムに書いていないので、
D3DXLoadMeshFromX関数によって、xファイルから読み込む時に最適化されてる
ようです。
D3DXLoadMeshFromX関数って、勝手に最適化するんですか?
ヘルプには、単にXファイルを読み込む関数としか書いてないんですが・・
情報お願いします
0762デフォルトの名無しさん
2006/09/17(日) 11:16:58頂点作るときにハードかソフトかの設定が影響してんじゃねーの?
0763デフォルトの名無しさん
2006/09/17(日) 11:17:440764デフォルトの名無しさん
2006/09/17(日) 11:18:360765757
2006/09/17(日) 11:33:59>>763
デバッグでメッシュの中身を見た結果が>>761です。
ちゃんと、整頓されてました。
>>764
D3DXCreateMeshFVF関数を呼び出して、メッシュを作る時に
頂点の数を引数に指定するわけですから、この関数の内部で頂点バッファ
が作られ、その頂点バッファに
pMesh->LockVertexBuffer(0, (void **)&pV);
でロックして全部頂点を突っ込んでます。
0766デフォルトの名無しさん
2006/09/17(日) 17:19:39断言はできないけど、D3DXSaveMeshToX で最適化してるんじゃね?
出力されたXファイルの中身を確認してみなよ。
0768デフォルトの名無しさん
2006/09/18(月) 02:19:09Optimizeしてみて比較するのが真のプログラマ。
0769デフォルトの名無しさん
2006/09/18(月) 09:11:00それはDX10で無駄になるのでやめるべきだろう
0770デフォルトの名無しさん
2006/09/18(月) 09:45:05ブラックボックスの仕様に悩まされるなんて馬鹿らしいと思わないの?
0771デフォルトの名無しさん
2006/09/18(月) 09:48:56D3DXの高レベルAPIが癌なだけ。
0772デフォルトの名無しさん
2006/09/18(月) 11:37:31使わなきゃ癌ってほどひどくはないだろ。
普通のXファイルを普通にアニメーションさせるぶんには問題ない。
テクスチャUVを複数もてないのがネックといわれていた頃もあったけど、
今じゃそんなの使わないし・・・デカールは1つありゃ十分だ。
デカール以外のテクスチャ座標は全部シェーダー内で作るしな。
0773デフォルトの名無しさん
2006/09/18(月) 11:49:44昔のDirectDrawとDirectX Graphicsって結構違うの?
0774デフォルトの名無しさん
2006/09/18(月) 12:06:42ずいぶん違う。
昔のは回転とかしようと思うだけでアフォかってほど手間がかかる。
しかも、激遅。
今のは今ので3D絡んで面倒だけど楽は楽。
0775デフォルトの名無しさん
2006/09/18(月) 12:10:35ありがとう。
初期化処理とか手続きとかAPI名とかも変わってるの?
0776デフォルトの名無しさん
2006/09/18(月) 12:11:57とりあえず画像が表示できて回転も拡縮もできてちょっと速度あればいいんだけど
ってときはDirectXじゃなくてGDI+を勧めるけどな。
仕事でツールが必要になって最近使ってみたけど、これで十分ってときはあるはずだわ。
DirectX初期化するの馬鹿らしいときは使える。
http://park17.wakwak.com/~dragoon/mfctop.htm
http://park17.wakwak.com/~dragoon/gdiplus5.htm
0777デフォルトの名無しさん
2006/09/18(月) 12:12:50そりゃもちろん。
いまのがずっと楽。
0778デフォルトの名無しさん
2006/09/18(月) 12:22:420779デフォルトの名無しさん
2006/09/18(月) 12:35:41詳しく
0780デフォルトの名無しさん
2006/09/18(月) 13:07:440781デフォルトの名無しさん
2006/09/18(月) 13:15:28無理。いま、IE7入れたからバグりまくってて検索する気になれない。
つか、たまに日本語入力できなくなって鬱。
なんでいま、2ちゃんぐらいしかやってない。
とりあえず
警告<IE7はいれるな!>
いつもはこんな人柱やんないんだけど、仕事でしょうがないからいれたらこのザマ。
0782デフォルトの名無しさん
2006/09/18(月) 13:16:40WMP11といいIE7といい
ほんとM$社はアルファも良い所で公開するよな
0783デフォルトの名無しさん
2006/09/18(月) 13:17:52いままで作ったもんが普通にずれるのはこれからの標準になっちゃうのか
これはバグなのかとりあえずはっきりしてほしい。>MS
0784デフォルトの名無しさん
2006/09/18(月) 14:07:19ちなみにD3DXのXファイル読み込み関数は、
頂点ウエイトが入っているときのインデックスの展開にバグがある。
頂点とウエイトと法線のデータの展開時に、
頂点と法線が別々のインデックスで管理されているはずなのに、
頂点側の並びに合わせて、インデックスで重複を省けるはずの法線データを無駄に増やさないと、
正常に展開できずにウエイトの付き方に異常が起こりメッシュに穴が開いたりする。
これは最新云々関係なく昔からのD3DX側のバグ。
はっきりいってD3DXのXファイル関係の高レベルAPIは使い物にならない。
エクスポートされたデータそのものに異常はないので、
Xファイルの読み込みぐらい自分で作ればいいだけの話。
0785デフォルトの名無しさん
2006/09/18(月) 14:37:55法線自体もたないXファイルしか使ってないし。
面の角度に合わせて法線を重み付けして計算しないと
分割数の多いほうに法線が寄るから法線は自分で計算してる。
0786デフォルトの名無しさん
2006/09/18(月) 14:41:580787デフォルトの名無しさん
2006/09/18(月) 15:16:12ナイス情報!
職業柄DirectXばかり見てきたが、GDI+だけでもいろいろ出来そうだね。
Javaみたいに手軽なのが便利だな。
0788デフォルトの名無しさん
2006/09/18(月) 15:33:44そのGDI+自身がDirectXで走ってたりすることはあるのかしら。
教えて詳しい人。
0789デフォルトの名無しさん
2006/09/18(月) 16:10:52いや意外に多いよ。
D3DXの法線計算も面法線を単純に合成して正規化してる
だけだからポリゴン分割数多いほうに法線が寄る。
0790デフォルトの名無しさん
2006/09/18(月) 16:40:16IE6では見れたのにFirefoxやOperaで見れなかったなら
作ったもんが異常
これまでのどのブラウザでも見れたのにIE7だけズレるならバグ
0791デフォルトの名無しさん
2006/09/18(月) 17:38:36だってすでにテストが面倒だからIEしか対応してねーしw
ActiveXあること前提だし。
0792デフォルトの名無しさん
2006/09/18(月) 17:45:26それはない
一般道と高速道みたいに通り道が違う
0793デフォルトの名無しさん
2006/09/18(月) 17:57:40いや、正直よくわからんって感じ。
クラスの関数一覧みるとインターフェースにそれっぽいのあるし。
回転がハード使ってるとしか思えないほど速い(と思う)。
普通に1ピクセルずつ画像を処理するよか速い気がする。
0794デフォルトの名無しさん
2006/09/18(月) 17:58:320795デフォルトの名無しさん
2006/09/18(月) 18:11:05そういうことってあるのかな?
0796デフォルトの名無しさん
2006/09/18(月) 18:15:53あるんじゃね?
昔も今もハードを制御してるのはOSなんだし。
0797デフォルトの名無しさん
2006/09/18(月) 18:17:04ことごとくソフトエミュレートになっている。
GDI+のベンチマークソフトが使われるようになればメーカー側も考えるだろう。
0798デフォルトの名無しさん
2006/09/18(月) 18:17:310799デフォルトの名無しさん
2006/09/18(月) 18:19:280800デフォルトの名無しさん
2006/09/18(月) 18:22:22法線がない状態で曲面とか角をどうやって判断するつもりなんだ?
せめてスムージング情報をモデリング時に引っ張ってこないと復元できないぞ。
0801デフォルトの名無しさん
2006/09/18(月) 18:29:34そのこと俺もずっと前に言ってみたが、理解してる人はほとんどいなかった。
あと、D3DXのバウンディング球も重心求めてるだけで、最小包含球ではないね。
0802デフォルトの名無しさん
2006/09/18(月) 18:34:01って遡らないと話は通用しないのかな?
Window自体の描画だってグラボ使ってるんだからGDI+だって使ってるだろう、
っていう単なる推測なんだが。
まさかポリゴン描画だけがグラボの仕事だとか思ってないよな?
> GDI+がグラフィックボードを利用してるかどうか確かめる方法ある?
グラボから伸びてるケーブルがディスプレイにささってるから。
0803デフォルトの名無しさん
2006/09/18(月) 18:39:52αブレンドとか回転とか、GDI+で追加されたものが、
専用のアクセラレーションで機能しないということ。
表示されていれば利用しているとか、幼稚園児かお前は?
0804デフォルトの名無しさん
2006/09/18(月) 18:43:00逆に聞きたいんだが、なんでグラボのハード機能を使ってないって思ってるの?
OSがハードを制御してるしハードは描画に特化してる、使わないって考える方が
すごく不自然なんだが・・・
0805デフォルトの名無しさん
2006/09/18(月) 18:51:29いや、用は3Dアクセラレーターが使ってあるかどうかって話なのよ。
0806デフォルトの名無しさん
2006/09/18(月) 18:53:12ちなみに3Dアクセラレーションを使った場合は桁違いに速い。
0807デフォルトの名無しさん
2006/09/18(月) 18:54:30んー3Dの話は全然してきてないんだよね・・・GDI+って2Dじゃん。
DirectX=3D とか グラボ=3D とか 変な認識があるのかもね。
0808デフォルトの名無しさん
2006/09/18(月) 18:56:33そのサポート状態が違うわけよ。
で、できないグラボで3Dアクセラレーターを使ってしまうと、
それを無理やりエミュレーションする場合があって、その場合今度は糞重たい(実用にならない)
だから、ハード(グラボ)の特有の機能を警戒してるわけ。
0809デフォルトの名無しさん
2006/09/18(月) 18:57:21おお!それは有力な検証結果ですな。
じゃあ描画自体は自前でやってる可能性もあるかも。
回転させたときに描画が速いっていうのが気になるが・・
0810デフォルトの名無しさん
2006/09/18(月) 18:58:49ちがうんだよ。
2Dでも3Dの機能を使って2Dの描画をしてる場合があるんだよ。
特に回転なんてソフトでやったら糞重たい、重たいどころの話じゃない。
3Dの機能を使うことと3Dの描画しかしないことは等価じゃないのよ。
3Dの機能を使って、2Dの描画をやってる場合を考えてるのよ。
0811デフォルトの名無しさん
2006/09/18(月) 18:59:58DirectDrawが打ち止めになった理由が分かってないだろ。
2Dでαブレンドや回転のアクセラレーションをハード側に載せるのが無駄だから、
全部3Dでやれということになったんだよ。
その為、メーカ側が2D用の拡張アクセラレーションをわざわざ作らなくなった。
GDI+でアクセラレーションが欲しければVistaを使うしかない。
その為のAero。
0812デフォルトの名無しさん
2006/09/18(月) 19:01:20やっぱ「グラフィイクアクセラレータ」の話からしないとダメなのか?
今で言うグラボが出た当時はね、OSの描画全般を早くこなすために
アクセラレートする目的のハードだった訳よ。もちろん普通の描画に使うのね。
それが、「最近ではハード使わない」っていうのは考えにくい。
通常のウィンドウ描画にハード使ってるんだったら、GDI+にだって
もちろん使ってる可能性は高い。むしろ使わない理由が見当たらない。
0813デフォルトの名無しさん
2006/09/18(月) 19:02:21ほとんどブロック転送と変わらない速度で動く。
0814デフォルトの名無しさん
2006/09/18(月) 19:05:06だからそれはGDI用のアクセラレーションを使っているだけで、
GDI+用の拡張部分には対応していないから、
対応していない部分はCPUが計算しているという話。
一切使っていないわけではない。
0815デフォルトの名無しさん
2006/09/18(月) 19:06:11あなたは俺と同じ認識みたいだよね。
GDI+という2D描画にもハードの機能を使うことが考えられるって意味で。
>>811
それでOSが描画にハード機能を使ってないって説明になってるの?
ウィンドウを自前で書いてるとでも??
0816デフォルトの名無しさん
2006/09/18(月) 19:07:120817デフォルトの名無しさん
2006/09/18(月) 19:08:39だから、俺等のいうハードの機能っては3Dアクセラレーターのことなの。
で、それをもし使っているなら各グラボごとにサポート状況が違うはずなのよ。
0818デフォルトの名無しさん
2006/09/18(月) 19:10:14GDI+の拡張部分をアクセラレーションがある状態で使いたければAeroを使え。
XP以前なら遅くても我慢しろ。
0819デフォルトの名無しさん
2006/09/18(月) 19:11:57>>810 の言ってることもよく見てみなよ。
3D描画機能を2D描画に使うこともあるって書いてあるでしょ。
そもそも、回転とかアルファブレンドとかGDI+で設計してるのに
「ハードが対応してないから自前でやるしかないか・・」って話ないでしょ?
最大公約数なハードができることを設計してると思わない?
ちなみにGDIの時代は単なる矩形転送だけをハード利用してたから
回転とかアルファブレンディングに対応しなかっただけでしょ。
いや順番を正すと、GDIの設計がそうだからハードが対応しなかったってこと。
0820デフォルトの名無しさん
2006/09/18(月) 19:16:14どのライブラリ使ってもそのへんの機能を使うにはまずデバイスの初期化が必要でな。
俺は使ってないとおもう。
0821デフォルトの名無しさん
2006/09/18(月) 19:16:26結局GDI+は3Dアクセラレーションの機能に間借りする形で存在することになった。
0822デフォルトの名無しさん
2006/09/18(月) 19:26:28もーーーーーーーWindows起動時に初期化しとけ。OSなんだからw
アプリで初期化が必要なのはOSに宣言するためってことも考えられる。
そもそも「DirectX使わないとハード使えない」って勘違いしてる人に向けて
いろいろ書き込みしてきたんだけどさ、話がそれすぎてるしOSの実装なんか
分かりっこないんだから、誰も断言はできない訳よ。
っつーことで最後に一言。「スレ違い」(´Д`)
0823デフォルトの名無しさん
2006/09/18(月) 19:30:23だれだよそいつは?
0824デフォルトの名無しさん
2006/09/18(月) 19:31:07無理っしょ。
いままでことごとく無理だったのに、いきなり動きはじめるわけないだろ。
解像度切り替えで全てのりソースが噴き飛ぶショボイ設計なんだからw
0825デフォルトの名無しさん
2006/09/18(月) 19:32:19回転やαブレンドなどのアクセラレーションは使えない。
拡大縮小などは大抵のドライバが対応している。
0826デフォルトの名無しさん
2006/09/18(月) 19:36:31おおすげえと思った後、実はただの拡大縮小機能だった悲しみを覚えている。
0827デフォルトの名無しさん
2006/09/18(月) 19:40:43ようはDirectX使うな、と。
0828デフォルトの名無しさん
2006/09/18(月) 19:44:350829デフォルトの名無しさん
2006/09/18(月) 19:59:54http://bbs.gamdev.org/test/read.cgi/gamedev/1067070424/
0830デフォルトの名無しさん
2006/09/18(月) 20:51:59荒らされてるじゃんw
0831デフォルトの名無しさん
2006/09/18(月) 21:40:410832デフォルトの名無しさん
2006/09/18(月) 23:41:370833デフォルトの名無しさん
2006/09/19(火) 00:29:210834デフォルトの名無しさん
2006/09/24(日) 05:26:27Messageの処理が帰ってこないので
メインループ動かないんですが、スレッド化以外で
これを回避する方法ありますか?
0835デフォルトの名無しさん
2006/09/24(日) 05:38:410836デフォルトの名無しさん
2006/09/24(日) 06:55:51全く動かさない状態だと来ないんだよな。
そこで俺が考えた代替案。
WM_TIMERを送信するスレッドを作るw
0837デフォルトの名無しさん
2006/09/24(日) 10:01:22でつ
( ろ WM_でタイトルバーつかんでるの拾ってその間はPAUSE
0838デフォルトの名無しさん
2006/09/24(日) 11:54:100839デフォルトの名無しさん
2006/09/24(日) 12:37:000840デフォルトの名無しさん
2006/09/24(日) 13:57:220841デフォルトの名無しさん
2006/09/24(日) 18:24:100842デフォルトの名無しさん
2006/09/24(日) 18:32:17以降システムメッセージを無視する→ループが動く&マウスの位置にあわせてウインドウ移動
タイトルバーいじるの終わったようなら元に戻す
0843デフォルトの名無しさん
2006/09/24(日) 18:40:24折角なら俺も使いたいところだ
とりあえずDirectX側のパフォーマンスは少し落ちるらしいけど
0844デフォルトの名無しさん
2006/09/24(日) 18:46:32ゲームでマルチスレッドって、PCなら10年前から実装したけど。
アクションゲームなら必須。もちろん無くてもできる。
0845デフォルトの名無しさん
2006/09/24(日) 18:46:500846デフォルトの名無しさん
2006/09/24(日) 19:09:070847デフォルトの名無しさん
2006/09/24(日) 19:19:260848デフォルトの名無しさん
2006/09/24(日) 19:29:06使うのはネットワーク処理と、ファイル読み込みくらい。
まぁどっちもゲーム部分ではない。
0849デフォルトの名無しさん
2006/09/24(日) 19:36:16マルチスレッドにした方が遙かに楽。
0850デフォルトの名無しさん
2006/09/24(日) 19:42:32取りこぼしとか最悪だぞ。
0851デフォルトの名無しさん
2006/09/24(日) 19:48:28コマ落ちするゲームは話が別だが。
0852デフォルトの名無しさん
2006/09/24(日) 19:48:54はあ?
0853843
2006/09/24(日) 19:56:49やっぱりまだ、色んな流儀があるようで
今まではシングルでやってきたけど、入力を取りこぼしたことは無いかなぁ
0854デフォルトの名無しさん
2006/09/24(日) 20:01:08シングルスレッドだと描画がカクカクになったら入力も同調するだろ?
それを回避するには、入力だけでも別スレッドで処理しないと駄目ってことを
言いたかっただけだ。要するに入力のフレーム落ちね。
0855デフォルトの名無しさん
2006/09/24(日) 20:22:390856デフォルトの名無しさん
2006/09/24(日) 20:39:150857デフォルトの名無しさん
2006/09/24(日) 20:46:19directxのゲームは動かないことが多くていやです
0858デフォルトの名無しさん
2006/09/24(日) 20:55:04いつの時代の話をしてるんだ? 1描画=1入力なのかw?
0859デフォルトの名無しさん
2006/09/24(日) 20:59:390860デフォルトの名無しさん
2006/09/24(日) 22:04:49そこまでスペックが低い場合は切り捨てるっていうのも手だけどさ
0861デフォルトの名無しさん
2006/09/24(日) 22:15:20ただしそれで問題が出てもグダグダ言うな。
0862デフォルトの名無しさん
2006/09/24(日) 22:17:180863デフォルトの名無しさん
2006/09/24(日) 22:19:550864デフォルトの名無しさん
2006/09/24(日) 22:29:210865デフォルトの名無しさん
2006/09/24(日) 22:35:48仮にえらい重い処理が入って1秒落ちたら60フレーム分キーデータバッファリングしとくのか?
0866デフォルトの名無しさん
2006/09/24(日) 22:39:02ブロックしっぱなしにするつもりなんだろうか?
0867デフォルトの名無しさん
2006/09/24(日) 22:41:06処理中はブロックされても気にしない、
そんなプログラムを作っている人間にとってマルチスレッドは不要。
0868デフォルトの名無しさん
2006/09/24(日) 22:43:26それ別スレッドにするのは読み込みであって入力じゃない気がするんだけど
0869デフォルトの名無しさん
2006/09/24(日) 22:49:42マルチスレッドの必要性なんて分からなくて当然。
気にするな、それが普通だと思っておけばいいんだよ。
0870デフォルトの名無しさん
2006/09/24(日) 22:56:05動的に展開する必要があるのって、メモリ容量が不定なPCゲー?
いや別にどっち使っても良いけど
0871デフォルトの名無しさん
2006/09/24(日) 23:00:26それ以外はゲームループ内で全部やっちゃうけど
0872デフォルトの名無しさん
2006/09/24(日) 23:00:270873デフォルトの名無しさん
2006/09/24(日) 23:04:410874デフォルトの名無しさん
2006/09/24(日) 23:21:22別スレッドで重いデータを読み込んでも、結局間に合わないならブロッキングが起きるっしょ。
それどころか間に合わない場合の同期とか、処理落ち管理が面倒なだけな様な。
シングルなら、やる気ならその辺の制御は厳密に出来るっつーか。
データ読み込みで処理止めるような実装する奴はいないっしょ。それが必要なら、だが。
どっちかっていうと、楽したいから別スレッドに丸投げするもんだと思うんだけどな。
0875デフォルトの名無しさん
2006/09/24(日) 23:25:33読み込みスレッドを別にするだけで入力だけ分けたりはしないけどなぁ。
ここで入力を別スレッドって言ってるやつは、
描画/演算/入力
って分け方なわけでしょ。
0876デフォルトの名無しさん
2006/09/25(月) 00:00:50結局どこかで同期しなきゃならないわけだし
0877デフォルトの名無しさん
2006/09/25(月) 00:53:250878デフォルトの名無しさん
2006/09/25(月) 01:07:16サウンドのストリームはさすがにシングルスレッドじゃ無謀だろw
ネットワークはWinSockならWindowメッセージにイベントとして
データのやり取りを受け取るように出来るからスレッドを別にしなくても
ゲーム次第ではシングルスレッドでも出来るな。
非同期I/Oもあるし。
0879デフォルトの名無しさん
2006/09/25(月) 01:26:02ファイルの読み込みを別スレッドでって言うけど、
読み込みなんてファイルのデータが必要なときにやるわけだから、
別スレッドで読み込んだって、どうせ読み終わるまで次の処理に行けない。
ってことは、先読みで別スレッドに読み込み処理をさせておくの?
データが必要なときに、読み込みスレッドが読み込みを終えてなかった場合はどうするの?
そんな心配をするくらいなら、いわゆる Now Loading の画面中に先読みしとけばいいんじゃないの?
こんな俺に、ファイル読み込みを別スレッドでやるメリットというか、
むしろ方法を教えてください。
0880デフォルトの名無しさん
2006/09/25(月) 01:26:09>データのやり取りを受け取るように出来るからスレッドを別にしなくても
>ゲーム次第ではシングルスレッドでも出来るな。
どんだけキューに積むつもりやねんとw
まあ、自分で書いても、この種の処理は大抵自前のキューに積みまくることにはなるんだけどさ。
0881デフォルトの名無しさん
2006/09/25(月) 01:35:080882デフォルトの名無しさん
2006/09/25(月) 02:01:15データが必要になるずっと前からロードを開始しとくんだよ。
それでも間に合わなかったら、もっと前からロードを開始。
NowLoadingで良いという人はそれでもいいんじゃん。
コンシューマ畑にはそんなやつはいないと信じてるが。
0883デフォルトの名無しさん
2006/09/25(月) 02:02:47同期が必要ならマルチスレッドなんか意味ないよ。
大人しくシングルスレッで頑張ってなw
0884デフォルトの名無しさん
2006/09/25(月) 02:11:54実際問題、マルチスレッドは楽するために使うもんだ。
問題が複雑化するなら使うな以上のことは何も無い気がス。
といいながらひとつ質問。
ウインドウのメッセージループ本体と描画&更新のメインループを
別スレッドで回すのは典型的だとは思うんだが、デバイスロスト時の
復元とかはどっちのスレッ!にやらせてる?
俺は今まで何も考えずにウインドウ側にやらせてたんだが、
これをメインループ側に押し付ければ、D3Dのライブラリは
シングルスレッ!の方で済んだりするのか?
マルチスレッ!版とパフォーマンスの違いがどの程度あるのか
知らんのだけど、誰かお母さんみたいに優しく教えてくれないか。
0885デフォルトの名無しさん
2006/09/25(月) 02:12:590886デフォルトの名無しさん
2006/09/25(月) 02:28:24アイツ「どっちを選ぶかは・・・自由だ!!!」
0887デフォルトの名無しさん
2006/09/25(月) 02:32:23本当に読んでいるかは別として
0888デフォルトの名無しさん
2006/09/25(月) 02:35:07スマンが、デバイスロスト関連の処理はやったことないんだ(;´д`)
なんせマルチスレッドで組んだの、DirectX3〜5の時だったもんでな。
でも、やるとしたら描画の方のスレッドだろうな。
ロストして困るのは描画だし、DirectGraphicにアクセスするスレッドだから。
ちなみに描画はメッセージ処理するメインループ側だよ。
キー入力とゲーム処理を別スレッ!でやらせてた。
0889デフォルトの名無しさん
2006/09/25(月) 02:45:50それはそれで凄くね?
J2MEのアプリとかだとキー入力が全部イベントだから
そんな感じの迂遠なコードになるんだけど、D3DInputなら
普通に更新側で回した方が楽な方が。
WM_KEYDOWNとかから直接回収してたのん?
デバイスロストしてても描画はスルーされるだけだから、
復元は本体側スレッ!でやるのが典型なのかもね。
ただ、Present失敗->復元はその場でできるのだろうけど、
アダプタの切り替えとかはウインドウ側でやらないと、
毎度毎度ウインドウ位置の問い合わせとかしないとならなくなりそうだ。
誰が書いても最終的には同じ処理になるんだろうが、地味に面倒だなあ。
DXUTに全部書いてあるんだろうか。
アダプタ変更とかはメッセージループ側でやってた記憶があるが。
0890デフォルトの名無しさん
2006/09/25(月) 03:02:21当時のグラボは、パンチスルーすらも無いのがあるくらい低能で
とにかく描画が遅かったんだよね。だから、描画とそれ以外を分ける必要があった。
具体的にどうやってたかは覚えてないんだがw、キーボードにも対応してたから
メッセージを直接取ってたんだろうね。D3DInputは普通にね。
>普通に更新側で回した方が楽な方が。
更新側ってのが何を指してるのか分からんが、ゲーム処理は入力と同じスレッド
だから、そっちが更新側とも言える。描画更新という意味だったら別だね。
描画は同期を取ってないから必然的にトリプルバッファになったかな。
座標とか描画に必要なものだけをトリプルで管理してた。
入力→ゲーム処理で更新するもの、したもの、描画中のもの。
0891デフォルトの名無しさん
2006/09/25(月) 03:07:59更新周りは切り離してたわけだね。
今のGPU事情考えたらまず無いタイプの実装だとは思うけど、
当時はそうするメリットがあったってことなのかな。
実感は追いつかないけど、なんとなく想像はつく気がする。
とりあえずお疲れ様でした。
0892デフォルトの名無しさん
2006/09/25(月) 03:14:40何か特別な制限がない限り今でも同じ実装をすると思う。
PCってのは実行環境がまちまちだから、スペック低いのから高いのまで
同じ「ゲーム感覚」で遊べるようにしたいんだよね。
それには最低限、入力処理は別スレッドで同じタイミングで、って。
> とりあえずお疲れ様でした。
ありーん( ´∀`)
0893デフォルトの名無しさん
2006/09/25(月) 03:32:46割とよくやる手ではあるよね。
ただ、それをスレッドで分けてまでやる価値があるかについては
賛否分かれるところな気がする。
ひとつには単純にタイミングの問題、描画周りはGPU側の応答つーか
端的には垂直同期の縛りがある以上スケジュール応答性に縛りがあるし、
それに足並みを揃えて同期をとる以上、更新側もプッシュバッファ的に
描画前準備情報を積んでおいて、描画側は詰まれた情報を元に描画命令を生成って
流れになると思うんだけど、そのオーバーヘッドはあまり小さく無い気がするし、
作りとしては少々大掛かりになっちゃうよね。
俺は単純に前フレームで経過したデルタ時間を更新側に渡す手をよく使うわ。
フレームを厳密に見たいとか、ゲームの質によっては許容できない場合もあるのだろうし、
誤差周りがついて回るので、これはこれで設計に気を配るところは多いんだけど、
PCゲーでかつ3D物だったりする場合、内部更新が60FPS固定で描画を分離〜のスタイルより
作りやすいのは確かだし、人間が感知できるレベルでの違いらしい違いもほとんど現れないし、
スループットも概ね上。
まあ、この辺は好き好きなのかな。
0894デフォルトの名無しさん
2006/09/25(月) 03:43:09> 作りとしては少々大掛かりになっちゃうよね。
結局はそれなんだよね。面倒って。
あとオーバーヘッドは小さくはないが、描画の重さからすると微量なんだ。
もちろん描画が軽ければ別スレッドにする意味なんかなくなるよね。
> 俺は単純に前フレームで経過したデルタ時間を更新側に渡す手をよく使うわ。
今勉強用に作ってるやつとか、ちょっとしたデモだったら同じ方法使う。
アクションゲームだと無理が出てくるけどね。ネット対戦対応とか。
でも作りやすいのは確か。フレーム落ちにも対応できるし。普段だったらコレ。
0895デフォルトの名無しさん
2006/09/25(月) 05:25:19スレッド使ったほうが処理効率上がるモナ
0896デフォルトの名無しさん
2006/09/25(月) 09:55:01ELがその方法とってるよね。
あとは基本的に60固定で組んでおいて、落ちたときに差分の時間見て演算部分だけ複数回回すっていう方法もあるね。
>>895
それはどっちかというとOggのデコードみたいなCPU使う部分をスレッド化した方がよさそうな気もする。
0897デフォルトの名無しさん
2006/09/26(火) 23:09:22内部処理と描画を別スレッドでってなんかメリットあんのか?
しかも、描画が遅いときって別スレにしても結局CPUもある程度負荷かかってるような気がするんだが・・・
確実に負荷も分離できるもんなのか?
スレッドってぐらいだから1描画につき何回か内部処理を実行してるんだろうけど、
描画が1回されてる間、内部処理をそう何回もできるほど内部処理って負荷すくねぇかな?
当り判定で枝狩り処理してみたり、開発終盤になると意外と重くなるような気がするんだが・・・(どんなゲームでも何故か)
マルチスレッド使うときって、先読みのロードとか曲やムービーの再生とか、そんなもんじゃねぇの?
ここまで読んだけど他はあんまりメリット感じないなぁ。
0898デフォルトの名無しさん
2006/09/26(火) 23:36:23スゲー古い話で、グラボが貧弱だから描画が遅いって言ってるのにね。
そんな当時のゲームなんで、内部処理は本当に軽いものなんだよ。
> マルチスレッド使うときって、先読みのロードとか曲やムービーの再生とか、そんなもんじゃねぇの?
ロードとかBGM再生でも使うに決まってるじゃん。
0899デフォルトの名無しさん
2006/09/26(火) 23:38:102スレッドで処理したらFPSが1.4倍ぐらいになった。
キャラクターを増やすとさらに差が開く。
0900デフォルトの名無しさん
2006/09/26(火) 23:39:010901デフォルトの名無しさん
2006/09/26(火) 23:40:11>>897は、ちと勘違い
0902デフォルトの名無しさん
2006/09/26(火) 23:44:41今後化石と呼ばれるようになるぞ。
もうすぐ4コアがやってくるような時代だし。
0903デフォルトの名無しさん
2006/09/26(火) 23:47:190904デフォルトの名無しさん
2006/09/26(火) 23:53:220905デフォルトの名無しさん
2006/09/27(水) 00:24:480906デフォルトの名無しさん
2006/09/27(水) 00:27:20マルチスレッドでvolatile指定しなくてどうするよ?w
別スレのvolatile厨の話と混乱してるなキサマ(´Д`)
0907デフォルトの名無しさん
2006/09/27(水) 00:38:01CPUが複数あるのとアプリケーションのスレッドが複数あるのとどう関係があるのか全くわからない。
0908デフォルトの名無しさん
2006/09/27(水) 00:44:02アプリがマルチスレッドだと、複数CPUにスレッドを割り振ってくれるんですよ。
0909デフォルトの名無しさん
2006/09/27(水) 00:53:520910デフォルトの名無しさん
2006/09/27(水) 00:58:37別スレッドからの値の変更が認識できなくなる場合がある。
この辺りの話は常識だと思うんだが。
0911デフォルトの名無しさん
2006/09/27(水) 01:09:13それってそれぞれのスレッド同士が完全に分離してない場合でもその方が速いの?
例えば、キャラのボイスにしたって再生の命令を送ること自体は内部処理のスレッドになるわけじゃん?
終了を待つ処理があったとしたら、それを待つのも内部処理のスレッドなわけじゃん?
こんな状態で別スレッドって本当に速いの?
0912デフォルトの名無しさん
2006/09/27(水) 01:15:12いかに効率的に処理させるかどうかはプログラマの腕次第。
旧時代の化石プログラマには無理な作業。
0913デフォルトの名無しさん
2006/09/27(水) 01:17:47別スレッドで終了を待ってたら(同期を取るっていうことね)
マルチスレッドの意味無いよね。もちろん速くもならない。
0914デフォルトの名無しさん
2006/09/27(水) 01:21:44きちんと考えればお互いのデータが依存していない範囲を分析して分散出来るんだが、
頭が硬いと、こういう処理を想像することすら出来ない。
0915デフォルトの名無しさん
2006/09/27(水) 01:23:570916デフォルトの名無しさん
2006/09/27(水) 01:26:290917デフォルトの名無しさん
2006/09/27(水) 01:27:57あ?わかんねーのかよww馬鹿だろ、おめー?
0918デフォルトの名無しさん
2006/09/27(水) 01:29:44既にあるプログラムをマルチスレッドに分散するのは至難の技だよ(;´д`)
やはり最初からマルチスレッド前提で組み始めないと
どこでデッドロックするか分からなくて怖い。
0919デフォルトの名無しさん
2006/09/27(水) 01:30:55なにかショッキングな事に気がついてしまったのか。
0920デフォルトの名無しさん
2006/09/27(水) 01:31:13これとか?
サターンは旧時代のハードだがマルチコアじゃないのかと。
てかもっと昔にもマルチコアのハードなかったっけ・・・?
0921デフォルトの名無しさん
2006/09/27(水) 01:32:59どこにも人格に対する言及は含まれていないように見える。
0922デフォルトの名無しさん
2006/09/27(水) 01:33:03「頭が硬いと、」ってところに反応したのかも知れないが
普通に「頭が硬い人は〜できない」って意味じゃねーか?
0923デフォルトの名無しさん
2006/09/27(水) 01:34:210924デフォルトの名無しさん
2006/09/27(水) 01:39:27ちゃんと注意点・問題点と利点などを理解しておくといいよ。
最初は簡単で確認もしやすいファイルロードを別スレッドでやってみるとかね。
テクスチャファイルだけだったら停止することもないだろうし
問題があったら見た目にも分かりやすいし入門にいいんじゃん?
0925デフォルトの名無しさん
2006/09/27(水) 01:45:43それとも読み込み時にスレッド立てて完了したらスレッド閉じてる?
0926デフォルトの名無しさん
2006/09/27(水) 01:59:39人それぞれだと思うけど、最近よく聞く「スレッドプール」でやる人は
読み込み時にスレッド起動して完了したらプールに返すんじゃないかな。
ファイルはBGMストリームにも使われるから、アプリ起動中ほとんど使ってる
って考えだったら、専用のスレッドにしてずっと回してればいいと思う。
もちろん暇な時はsleepしてね。
0927デフォルトの名無しさん
2006/09/27(水) 02:17:35ttp://pc8.2ch.net/test/read.cgi/tech/1157814833/l50
volatile厨っつーのが出て静かになった感があるけど
過去ログみたら少しは勉強になるんじゃないかな。
0928デフォルトの名無しさん
2006/09/27(水) 02:29:44簡単かと思って迂闊に手を染めると大抵ドツボだな。
一度徹底的に解体して再構成する羽目になる。
見合った成果が得られるかは状況次第だけど、
このところのCPU事情鑑みるに、DirectX的には美味しいかもだな。
命中判定部分だけ切り離したりしたコードが高速に動いてくれるのを見るのは楽しそうだ。
0929デフォルトの名無しさん
2006/09/27(水) 02:35:370930デフォルトの名無しさん
2006/09/27(水) 03:15:57セガサターンはマルチプロセッサ。論理的には一緒だが。
サターンでも最後期のバージョンはマルチコアらしいが未確認。
たんにマルチプロセッサなだけなら、全然珍しくない。
旧世代のマルチプロセッサシステムは、マルチスレッド的な使い方よりも
マルチプロセス的な使い方だから、OSがCPU時間を勝手に割り振って
くれるような今のマルチスレッドとは全然違う。
0931デフォルトの名無しさん
2006/09/27(水) 03:43:190932デフォルトの名無しさん
2006/09/27(水) 06:46:30こんなの自分で管理してホントに速くなるのかね?
0933デフォルトの名無しさん
2006/09/27(水) 07:51:570934デフォルトの名無しさん
2006/09/27(水) 08:23:24つかマルチスレッド自体は相当前からあるだろうに、
なんで「最近出てきた新しい技術!」みたいな奴がいるんだろ
0935デフォルトの名無しさん
2006/09/27(水) 11:42:01A1R5G5B5のテクスチャーをTRIANGLELISTで2Dとして描画しています。
頂点のアルファを変更し、半透明にしようとしたのですが、全く効果がありません。
(不透明になります。ただし、テクスチャーA1R5G5B5のピクセルの抜き色は反映されています。)
頂点色 D3DCOLOR_ARGB(128, 255, 255, 255) 0x80FFFFFF の時に半透明になるようにしたいです。
アルファブレンディングの設定は以下のようにしています。
dev->SetRenderState(D3DRS_ALPHABLENDENABLE, true);
dev->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
dev->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
ドライバーは最新です。
(他のソフトで半透明になるのを確認しました)
環境は以下の通りです。
DirectX 2005 April
VS2003
Win2000
リモート
DirectX 9.0c
Win2000
原因が分かる方、よろしくお願いします。
0936デフォルトの名無しさん
2006/09/27(水) 13:46:17それに何か疑問点があるのか?
0937デフォルトの名無しさん
2006/09/27(水) 13:48:42それをどうやったら頂点カラーを参照するようになるか?って質問だろ。
オマエは初心者に厳しいなw
0938デフォルトの名無しさん
2006/09/27(水) 14:06:260939935
2006/09/27(水) 14:32:09SetTextureStageStateに関しては嫌な予感がします。
今会社なので試せませんが、夜見直して結果を書き込みます。
ありがとうございます。
0940デフォルトの名無しさん
2006/09/27(水) 14:54:36ファイル(mmioOpen)でなくメモリから読み込むやつってあります?
0941デフォルトの名無しさん
2006/09/27(水) 17:04:45とってもとっても応援してます。
0942デフォルトの名無しさん
2006/09/27(水) 20:05:29SDKに書いてあるようにデバイスが消失したらD3DPOOL_DEFAULTで取得した
頂点バッファとかを解放する必要があると書いてあるわけなんですけど
これって、わざわざ、↓の工程をしないといけないのですか?
せっかく、頂点バッファを取得して、そこに頂点のデータを代入しても
デバイスが消失したら、その頂点バッファを使えなくなってしまい、
代入した頂点データがパーになってしまうということですよね?
皆さんは、どのような対策をしてるんでしょうか?
代入する頂点データとかを別の場所に保存してるんですか?
よろしくおねがいします。
工程:
デバイス消失
↓
D3DPOOL_DEFAULTで取得した頂点バッファを解放
↓
Resetできるなら、Resetメソッドで復帰
↓
また、頂点バッファを取得しなおす
0943デフォルトの名無しさん
2006/09/27(水) 20:30:410944デフォルトの名無しさん
2006/09/27(水) 21:00:58データを元に戻すのが面倒だったらアプリ終了しちゃえ。
「デバイスロストしたので終了します」って。マジでそれで十分だ。
0946デフォルトの名無しさん
2006/09/27(水) 21:40:32必用な処理にもったいないも糞もないだろ。
0947デフォルトの名無しさん
2006/09/27(水) 21:42:37D3DPOOL_MANAGEDを使うか、DirectX10を待つしかない。
0948デフォルトの名無しさん
2006/09/27(水) 21:49:54>>947
頂点も数が多くなれば、それを保持するのも
もったいないと思ったわけですが、
D3DPOOL_DEFAULTフラグを使う時は節約することは
できないようですね。
ありがとうございました
0949デフォルトの名無しさん
2006/09/27(水) 21:57:59面倒な作業だと思うと、途端にもったいないとか言い出す。
0950デフォルトの名無しさん
2006/09/27(水) 22:03:29断片化を嫌がって初期化時以外は一切mallocやnewをしない方針の人。
昔はよくいたよね。
0951デフォルトの名無しさん
2006/09/27(水) 22:41:00別に同じヒープから確保されているとは限らないじゃん。
0952デフォルトの名無しさん
2006/09/27(水) 22:44:110953デフォルトの名無しさん
2006/09/27(水) 22:45:22わざわざアプリ側でそんなことをする必要がない
0954デフォルトの名無しさん
2006/09/27(水) 22:52:03今、自分のプログラムで何にどのくらいメモリを使っているか?
ってどうやったらわかるの?
あ、タスクマネージャーでわかるようなのじゃなくて
どのクラスがどれくらい食ってるとかそういう情報まで調べようと思ったら
一般的な方法としてはどういうのがあるの?
0955デフォルトの名無しさん
2006/09/27(水) 22:54:230956デフォルトの名無しさん
2006/09/27(水) 22:55:080957デフォルトの名無しさん
2006/09/27(水) 22:55:30もう、newとdeleteでかなり組んでるので勘弁してくださいw
0958デフォルトの名無しさん
2006/09/27(水) 22:56:55オーバーライドするだけだから変更箇所は少ない
0959デフォルトの名無しさん
2006/09/27(水) 23:02:08オーバーライドする方法は昔試みたけどSTLかなんかで妥協した覚えが・・・
0960デフォルトの名無しさん
2006/09/27(水) 23:07:00じゃあ今回も妥協しなさい・・・妥協?挫折?
0961デフォルトの名無しさん
2006/09/27(水) 23:07:48なんかエラーがたくさんでんねん。
0962ヶロス
2006/09/27(水) 23:08:130963デフォルトの名無しさん
2006/09/27(水) 23:19:30メモリの残り容量取得する関数があるから
自分のアプリだけ立ち上げてテストして見れ
0964デフォルトの名無しさん
2006/09/27(水) 23:50:290965デフォルトの名無しさん
2006/09/27(水) 23:55:310966デフォルトの名無しさん
2006/09/27(水) 23:57:23俺無理だった。他の人ヨロ
0967デフォルトの名無しさん
2006/09/28(木) 00:27:05kwsk
MMIOINFOの説明が無いしポインタっぽい指定も無い><
0968デフォルトの名無しさん
2006/09/28(木) 00:57:27教授願います。
0970デフォルトの名無しさん
2006/09/28(木) 01:12:53デバッグモードでアウトプットウィンドウで見たらいいんじゃん?
0971デフォルトの名無しさん
2006/09/28(木) 01:14:47リッチテキストのウインドウでも作って、好きなように出力すれば?
0972デフォルトの名無しさん
2006/09/28(木) 01:27:47ありがとうございます。
とりあえずprintfで出力できるコンソールウィンドウを考えています。
0973デフォルトの名無しさん
2006/09/28(木) 01:37:03デバッグんときはシステムを/consoleでビルドして、
リリースんときは/windowsでビルドしろ。
int main( void )
0974デフォルトの名無しさん
2006/09/28(木) 01:38:51#ifdef _DEBUG
int main( void )
{
return WinMain( ... );
}
#endif
とかやれば問題ねぇ
0975デフォルトの名無しさん
2006/09/28(木) 01:42:060976デフォルトの名無しさん
2006/09/28(木) 01:58:230977デフォルトの名無しさん
2006/09/28(木) 02:03:34ありがとうございます
コンソールウィンドウは出せましたが、今度は描画してるウィンドウがなくなりました。
描画しつつコンソールに文字出力というのは無理なのでしょうか?
0978デフォルトの名無しさん
2006/09/28(木) 02:05:13::AllocConsole();
hConsole = ::GetStdHandle( STD_OUTPUT_HANDLE );
void Printf( const char *pStr,... )
{
Uint32 WriteSize;
char Temp[1024] = "";
vsprintf( Temp, pStr, (char*)(&pStr + 1) );
::WriteFile( hConsole, Temp, (int)strlen(Temp), &WriteSize, 0 );
}
0979デフォルトの名無しさん
2006/09/28(木) 02:06:34コンソールアプリでもCreateWindowで普通にウィンドウ作れるわけだが・・・
UpdateWindow()とかShowWindow()とかしてないだけじゃない?
0980デフォルトの名無しさん
2006/09/28(木) 02:26:01とか言われるんだけど、DXUtil.hって昔のヘッダか何か?
0981デフォルトの名無しさん
2006/09/28(木) 06:44:30DirectX本編側に組み込まれてるわけじゃないから、自前で組み込んでなければ
それは出るだろうさ。
0982デフォルトの名無しさん
2006/09/28(木) 11:48:25スキンメッシュアニメーションと、ボーンアニメーションっていっしょ?
肌と骨で違う感じするけど、どうなん?
DirectX使って再生する場合って、それぞれまったく違う
プログラムが必要でつか?
0983デフォルトの名無しさん
2006/09/28(木) 12:18:44一緒
0984982
2006/09/28(木) 12:21:32ありがとうごぜいます。
これで安心してプログラムくめまつ。
せっかくだから俺はボーンアニメーション使って
エロい同人ゲーム造るぜ。
0985デフォルトの名無しさん
2006/09/28(木) 13:16:100986デフォルトの名無しさん
2006/09/28(木) 15:54:100987デフォルトの名無しさん
2006/09/28(木) 16:03:32つD3DCREATE_FPU_PRESERVE
0988デフォルトの名無しさん
2006/09/28(木) 19:06:08ありがとうございます。
お手数ですがもう一つお願いします。
このパラメータDirectX8以降に対応してるっぽいけど、
DirectX7だと_controlfpしかないですかね?
使って戻してがかなり不便・・・
0989デフォルトの名無しさん
2006/09/28(木) 19:41:59自分で調べろよ
DDSCL_FPUPRESERVE
0990デフォルトの名無しさん
2006/09/28(木) 22:28:43度々ありがとうございます。
>自分で調べろよ
ここで聞くことは調べてることになると思いますが違いますかね?
調べるということは情報を得るということですから、
このスレで情報を得ようとすることは調べてることと同じと思います。
それにこのやりとりを他の人が見ることで、
その人もここで調べることができるわけですから、
決して無駄ではないはずです。
0991デフォルトの名無しさん
2006/09/28(木) 22:33:310992デフォルトの名無しさん
2006/09/28(木) 22:38:570993デフォルトの名無しさん
2006/09/28(木) 22:51:410994デフォルトの名無しさん
2006/09/28(木) 22:59:490995デフォルトの名無しさん
2006/09/28(木) 23:06:080996デフォルトの名無しさん
2006/09/28(木) 23:10:200997デフォルトの名無しさん
2006/09/28(木) 23:14:140998デフォルトの名無しさん
2006/09/28(木) 23:25:52日本語ドキュメント1つ読むコトすらできないの?
ってコトだ。
0999デフォルトの名無しさん
2006/09/28(木) 23:27:42天然なんだねw
自分で調べろって言われるってことは、ぐぐればすぐわかることを質問してるからだろ?
1000デフォルトの名無しさん
2006/09/28(木) 23:34:1110011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。