【C++】 DirectX初心者質問スレ Part17 【C】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/04/09(水) 09:55:56これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ
【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。
【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。
【C++】 DirectX初心者質問スレ Part16 【C】
http://pc11.2ch.net/test/read.cgi/tech/1202634347/
0002デフォルトの名無しさん
2008/04/09(水) 12:08:16MSDN 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/
[t-pot] PROGRAMMING
ttp://www.t-pot.com/program/
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デフォルトの名無しさん
2008/04/09(水) 13:29:51一番下のサイト消えてるみたい
0004デフォルトの名無しさん
2008/04/09(水) 15:18:25ttp://marupeke296.com/
↑これも入れてもいいんじゃね?
てかここ読めば大抵わかるのと、超初心者ターゲットのしつこいくらいの説明がいい
0005デフォルトの名無しさん
2008/04/09(水) 15:32:13スレ立てたのはいいが点プレ反の忘れてたぜ!
0006デフォルトの名無しさん
2008/04/09(水) 21:23:42ロードする方法ってD3DX〜とかにありますか?
0007デフォルトの名無しさん
2008/04/09(水) 22:00:08・自分のプログラムのバグなのかコンパイラのバグなのかわからない
・他の仕事に応用できない糞開発ツールの独自世界を必死に学習している
・テキストエディタで書いたほうが効率的なのに糞UIツールを懸命に使っている
・糞開発ツールを批判すると「性格が悪いから糞ツールを批判するんだ」と言われる
糞だけど、政治的な理由で無理やり使わされているんですよね。
もう、あんな厨の作った糞ツールを我慢して使うのはやめましょう。
・糞開発ツールを部下に押し付ける上司の命令は無視しましょう。
上司は糞開発ツールが使われる実績を作ることであの会社のごきげんをとっているのです。
・糞開発ツールを使わせる上司の下では働けません、と上司の上司に直訴しましょう。
・あの糞開発ツール提供会社には「おたくの糞開発ツールは話にならない」と突き放しましょう。
バグレポートなどしてはいけません。改善要求などもってのほかです。
あの会社はあなたたちのことをテスター/モルモットとしか思っていません。
・あの会議で「糞開発ツールを使ったら生産性がxx%アップしました」
なんて話が出たら力強く机を叩き、会議室を出ましょう。
あの人たちは糞開発ツールをマンセーすることで立場を確保しているのです。
糞な開発ツールを糞だと言える、そんな当たり前の環境をみんなの力で取り戻しましょう。
0008デフォルトの名無しさん
2008/04/10(木) 21:32:35標準添付のfxc.exeとか?
0009デフォルトの名無しさん
2008/04/10(木) 23:30:40これより早い文字描画をする手段はあるのでしょうか?
0010デフォルトの名無しさん
2008/04/10(木) 23:33:21必要な文字だけテクスチャとして用意して使う。
コンシューマ機では一般的な方法だけど、速度よりも使用料を削減するためにだったりもするけどね。
0011デフォルトの名無しさん
2008/04/11(金) 00:50:24何も表示できません。教えてください。
struct CUSTOMVERTEX{
float x,y,z; float rhw; DWORD c; float u,v;
};
IDirect3DIndexBuffer9* pIndex;
g_pD3DDev->CreateIndexBuffer(sizeof (USHORT) * 18,
D3DUSAGE_WRITEONLY , D3DFMT_INDEX16 , D3DPOOL_MANAGED , &pIndex,NULL);
USHORT index[18] = {
0,1,2,3,2,1,// 1枚目
4,5,6,7,6,5,// 2枚目
8,9,10,11,10,9// 3枚目
};
void *bBuf;
pIndex->Lock(0 , sizeof(USHORT)*12 , (void**)&bBuf , 0);
memcpy(bBuf , index , sizeof (USHORT) * 18);
pIndex->Unlock();
CUSTOMVERTEX v[12]=
{
{ x + width/2, y - height/2, 0.0f, 1.0f,0xffffffff, 1.0f, 0.0f},
{ x + width/2, y + height/2, 0.0f, 1.0f,0xffffffff, 1.0f, 1.0f},
{ x - width/2, y - height/2, 0.0f, 1.0f,0xffffffff, 0.0f, 0.0f},
{ x - width/2, y + height/2, 0.0f, 1.0f,0xffffffff, 0.0f, 1.0f},
...(あと8つほど略)
};
g_pD3DDev->SetTexture(0, pTexture);
g_pD3DDev->SetIndices(pIndex);
g_pD3DDev->SetFVF(D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX1);
g_pD3DDev->DrawIndexedPrimitiveUP(D3DPT_TRIANGLELIST ,0,
12,6 , pIndex ,D3DFMT_INDEX16, v , sizeof(CUSTOMVERTEX));
0012デフォルトの名無しさん
2008/04/11(金) 01:07:07モニタの電源が入ってないんじゃねーの?
と俺のESPが発動したぜ
0013デフォルトの名無しさん
2008/04/11(金) 01:28:470014デフォルトの名無しさん
2008/04/11(金) 07:25:310015デフォルトの名無しさん
2008/04/11(金) 07:55:53問題点を絞っていかないといつまでも解決しない。
0016デフォルトの名無しさん
2008/04/11(金) 08:32:300017デフォルトの名無しさん
2008/04/11(金) 09:37:150018デフォルトの名無しさん
2008/04/11(金) 18:33:59ラインタイムのインストールとかしなくても動くEXEが作りたいんだが
SDKはどれを使えばいいですか?
001911
2008/04/11(金) 18:35:21UP系はいいサンプルが見つからなくてよく分からないです。
>>13
どういうことですか?
msdn見る限りUP系もバッファを使うようですが……。
0020デフォルトの名無しさん
2008/04/11(金) 18:52:24DrawIndexedPrimitiveUPの第・・・いくつめだか引数に指定するのは、
インデックスバッファじゃなくてインデックスデータそのものだと思ふ
>>11でいうところのpIndexじゃなくてindex
0022デフォルトの名無しさん
2008/04/11(金) 20:25:40October 2004
0023デフォルトの名無しさん
2008/04/11(金) 20:34:00ろくに調べてないから頓珍漢なこと言ってるかも知れんが、それってIndexBuffer作る意味あんの?
0024デフォルトの名無しさん
2008/04/11(金) 20:50:02トンクス
みんなSDKは最新の使ってるのかの〜?
0025デフォルトの名無しさん
2008/04/11(金) 20:56:23使ってない。
・VS6.0を使ってるから
・DLL無いというエラーに素人がちゃんと対応できず、サポートがたるい
・古くても特に不便がない
0026デフォルトの名無しさん
2008/04/11(金) 23:09:110027デフォルトの名無しさん
2008/04/11(金) 23:34:25頼むから知ったかやめようよ、初心者質問スレでさ・・・
0028デフォルトの名無しさん
2008/04/11(金) 23:37:110029デフォルトの名無しさん
2008/04/11(金) 23:43:19「DLLを動的に読み込もうとがんばって、読み込めない時は
ユーザに適切なDLLをインスコする様にメッセージを出すアプリの少ないことよ」
こうですか
0030デフォルトの名無しさん
2008/04/11(金) 23:46:19俺ちゃんとDirectX9.0cとかいうの入ってんぜ?
何この不良品なめてんの
サポートに文句つけてやる「なんか起動しないんすけど責任とれ金払ったんだぞこっちはボケ」
0031デフォルトの名無しさん
2008/04/11(金) 23:56:430032デフォルトの名無しさん
2008/04/12(土) 00:19:320033デフォルトの名無しさん
2008/04/12(土) 00:29:32どうせ無償配布してんだから、つべこべ言わずに配布させろよ・・・*/
0034デフォルトの名無しさん
2008/04/12(土) 00:41:02テキトーにリンク貼って逃げればいいんじゃね?
0035デフォルトの名無しさん
2008/04/12(土) 00:59:110036デフォルトの名無しさん
2008/04/12(土) 01:02:51>>34
インストーラのリンク張るくらいなら、最小構成のセットアップファイルをつけて
起動を促す方が良いと思う。
個人的統計によれば素人にゃこっちの方が行動を起こしてくれる傾向がある、気がする。
0037デフォルトの名無しさん
2008/04/12(土) 02:52:45//素人もやる気ないし
//マイクロソフトもやる気ないし
//苦労するのはいつも作る側
//それでもC++で作るならまだいいほう
//XNAとかラインタイムを3も入れなきゃならない
//もうあほかと
//ランタイム地獄に愛想つかしてVC++勉強したが
//今となってはよかったと思う
0038デフォルトの名無しさん
2008/04/12(土) 11:08:430039デフォルトの名無しさん
2008/04/12(土) 13:03:56単純にdllをプライベート配置するのはライセンス違反だが、
アプリに添付するランタイム用インストーラの容量はある程度減らせるってだけの話。
http://msdn2.microsoft.com/en-us/library/bb174600.aspx
0040デフォルトの名無しさん
2008/04/12(土) 13:51:50めんどくせーなー
俺様のPCでもちゃんと動くようにするのがプログラマ奴隷の役目だろが
わざわざNYでDLしてやったってのに糞が
0041デフォルトの名無しさん
2008/04/12(土) 14:24:39インストーラは配布していいのね。
>>40
これだからなかなか金は取れないんだよな・・・俺無責任だしw
0042デフォルトの名無しさん
2008/04/12(土) 17:04:260043デフォルトの名無しさん
2008/04/12(土) 19:51:21http://tpot.jpn.ph/t-pot/program/66_cube_normal/index.html
ここにある内容をHLSLでやろうとしたのですが、
期待する値が取れてません。
解説と同じようにD3DXCreateCubeTextureでテクスチャを作って、
同じように中身を埋めました。
で、pEffect->SetTextureで渡してます。
HLSL側では、
textureCUBE CubemapNormal;
samplerCUBE CubemapSampler_forNormal = sampler_state {
texture = <CubemapNormal>;
MinFilter = LINEAR;
MagFilter = LINEAR;
MipFilter = NONE;
AddressU = Clamp;
AddressV = Clamp;
};
でピクセルシェーダの部分で
N = texCUBE(CubemapSampler_forNormal, In.N).xyz * 2.0f - float3(1.0f, 1.0f, 1.0f);
とやっています。
何かおかしい部分ありますでしょうか?
004443
2008/04/12(土) 20:56:51D3DPOOL_MANAGEDで作ったらダメなんですねorz
RENDERTARGETにしてるからMANAGEDだと失敗するのかな。
0045デフォルトの名無しさん
2008/04/12(土) 22:10:550046デフォルトの名無しさん
2008/04/13(日) 00:01:59D3DXVec2Transformを使えばいいのですが、MATRIXを生成するのがバカらしい…
0047デフォルトの名無しさん
2008/04/13(日) 13:18:150048デフォルトの名無しさん
2008/04/13(日) 13:22:00つ MSDN
つ google
0049デフォルトの名無しさん
2008/04/13(日) 13:47:59探すの面倒だから代わりに探してきてよ
0050デフォルトの名無しさん
2008/04/13(日) 14:47:21お前、実際もの作るとかなったらそんな程度面倒がってたらなんも作れねーぞ
俺はDrawPrimitiveを薦めるけどね
0051デフォルトの名無しさん
2008/04/13(日) 16:05:07やさしいね。大好きだよ。
0052デフォルトの名無しさん
2008/04/13(日) 20:00:01これはC++側では普通にCreateTextureでいいのでしょうか?
2次元のテクスチャでいいとすれば、どのように参照されるのかとか、
よろしければ教えてください。
0053デフォルトの名無しさん
2008/04/13(日) 20:23:08自前でやればいいと思うけど。
XYの2次元ベクトルの回転なら(XcosΘ+YsinΘ, -XsinΘ+YcosΘ)
0054デフォルトの名無しさん
2008/04/13(日) 20:39:14さすがに2次元ベクトルの回転は高校で習ったからわかりますが、お気遣いどうもw
いやー、ライブラリにあるなら独自作らないほうがいいと思ったもんで。ありがとう
0055デフォルトの名無しさん
2008/04/13(日) 20:46:27荒らし?w
純粋にライブラリにあるかどうかが知りたかっただけなら
コンパイル通るか試すだけで済むだろ。Vec3Vec4の関数名は統一されてんだし。
それかヘッダ見るかすればいいのに。
0056デフォルトの名無しさん
2008/04/13(日) 22:14:54DXが描画しているウィンドウ内に可動ツールバーがあり、
クライアント座標を取得する関数ではそのツールバーの領域も含めてしまうため求めたい値が取れません。
C++で取得できればこしたことは無いのですが、せめてDXで取得出来る形にさえなっていれば・・・
0057デフォルトの名無しさん
2008/04/14(月) 00:04:12ネタのつもりでやってるんだろうが実際はこういう奴ばっかりなんだよ
で、ランタイム配布めんどくさいよねっていうと
そんなの気にならないくらい楽しいゲーム作ればいいとか
本題からズレたことを言っていい気になるやつが出てくる
DirectX8以前縛りで作るとそこら辺気にしなくてよくてラク
0058デフォルトの名無しさん
2008/04/14(月) 00:06:250059デフォルトの名無しさん
2008/04/14(月) 01:28:51DirectX
.NETFW
XNAFW
の3つのラインタイムでイライラMAXだな
0060デフォルトの名無しさん
2008/04/14(月) 02:37:33開発者もイライラ
0061デフォルトの名無しさん
2008/04/14(月) 13:33:16あるものを発見するのは楽だが、無いものを無いと確信するのは難しい
また、ライブラリにあるものを自前で再実装するのは大抵の場合悪
0062デフォルトの名無しさん
2008/04/14(月) 14:19:04ドキュメントのD3DX項目眺めるだけじゃんこの場合・・・
0063デフォルトの名無しさん
2008/04/14(月) 14:47:03D3DXVec2Rotate
という関数があるのかを聞いたわけじゃないだろ?
D3DXVec2Rotate 相当の関数があるかってことだろうから、俺でも「多分無い」としか言えん
D3DXVec2Transformは知ってたわけだから、それなりにサイトを見たんじゃなかろうか。
…MSDNもVer古い関数載せてたりするからあんまり信用できないんだよなw
特にI3DXAnimationControllerあたり
0064デフォルトの名無しさん
2008/04/14(月) 14:51:55シェーダー側の
float2 形式で渡したいんですけどできないんでしょうか?
ID3DXEffect::SetVectorは、D3DXVECTOR4 だし
0065デフォルトの名無しさん
2008/04/14(月) 14:55:390066デフォルトの名無しさん
2008/04/14(月) 15:09:36俺もそれ思ったけど多分GPUの仕組みからして
SetVector(float4)かSetFloatだけしか用意してないんだとオモタので気にしてない。
詳しくは知らないけど、GPUの定数レジスタって全部float4じゃなかったっけ?
(floatもあるのかもしれないけど。)
floatを2つにして渡すか、float4のうち2つを使うかは自分の設計や効率と相談ってことで。
0067デフォルトの名無しさん
2008/04/14(月) 20:16:48float4の配列を引数に受け取る訳で
こいつに合わせるのがベターだろう
0068デフォルトの名無しさん
2008/04/15(火) 11:31:58現在アニメーショントラック合成をやっているのですが…
Aのとあるポーズ(とある時間で停止)から、Bの歩きアニメ(再生)へ、1秒かけて変移。
とやる場合、以下のようにやって実現しました。
・トラック0にAをセット
・しばらく後「歩くボタン」を押した
・トラック0のデータをトラック1に移行
・(DESCを初期化した上で)トラック0にBをセット
・トラック0の時間のみSetTrackAnimationTimeで進め、行列更新のためにAdvanceTime(0.0f,NULL);を呼び出す
・1秒かけてTrackWeightを変移させていく
ですが、AからBに変移している途中の状態から、Cアニメへ移行したい。という場合に困っています。
もちろんトラックをまた1つずつずらして、0:C 1:B 2:A にし、Weightをきちんとやれば実現は可能です。
ですがこの方法だと、さらに途中でDアニメ…Eアニメと(そんな多重になるようにすんなとは思いますが)移行させようとした場合、トラックがいくつあっても足りません。
「現在のポーズ」をアニメーションセットとして認識させる方法はないでしょうか?
0069デフォルトの名無しさん
2008/04/15(火) 18:57:190070デフォルトの名無しさん
2008/04/15(火) 19:22:06頭が腐ります
0071デフォルトの名無しさん
2008/04/15(火) 20:19:51Weightをきちんと、って頂点に含まれるウエイト値をいじるってこと?
そんなことしたらデメリット多いし俺も自前でやった方がいいとオモ
0072デフォルトの名無しさん
2008/04/15(火) 20:35:21アニメAで設定されてるを8割採用し、アニメBで設定されてる角度を2割採用。みたいな感じ。
それをウエイトって言うのよ
007371
2008/04/15(火) 20:47:50「現在のポーズ」の状態を擬似的に以降のフレームに入れて騙したりは出来ないのかな。
あるいはアニメーション時間を騙すとか。役に立てずスマンコ
0074デフォルトの名無しさん
2008/04/15(火) 20:51:25なかったら脂肪決定な漏れ
0075デフォルトの名無しさん
2008/04/15(火) 21:36:59画面に四角形を描画した後、その四角形の一つの頂点の座標だけを動かして
四角形を歪んだような形にすることってできますか?
0076デフォルトの名無しさん
2008/04/15(火) 21:49:24意味がわからんが、3Dでポリゴン描画のことを言っているならばできる
BitBltなどの2D描画のことをいっているならできない(自作すべし)
0077デフォルトの名無しさん
2008/04/15(火) 21:52:28>>76
TL頂点でも出来る。
0078デフォルトの名無しさん
2008/04/15(火) 23:12:33pJoyDevice->GetDeviceState(sizeof(DIJOYSTATE2), &js);
で取得すると
js.lX と js.lY が十字キー押してないのに-1になるんだが
うちのジョイパットがおかしいんだろうか?
押してるときは 6とか-6とかになるのに
押してないときは 0でなく-1って一体
007978
2008/04/16(水) 00:13:20無効ゾーンを設定して小さすぎる値を無視することでようやく解決
0080デフォルトの名無しさん
2008/04/16(水) 00:19:04アナログだと、何も入力してないつもりでも大抵入ってる
だからその解決法が正しいね
0081デフォルトの名無しさん
2008/04/16(水) 00:28:56サイバーガジェットのPSのコントローラーつなげられる
USB接続のジョイパット変換機なんだがアナコンのほうは認識しない古いやつ
で、十時キーがいつもマイナス方向に微妙に入ってるってことになってるみたい
アナログじゃないのにアナログ扱いされることもあるのね
勉強になりました
0082デフォルトの名無しさん
2008/04/16(水) 01:34:51俺もDirectInputでは悩んだんだけど、アナログでなくとも
XYZの軸入力は指定した範囲で送られてくる(指定した最大値・最小値で)から
同じように扱うしかなかった。んで、-1000〜1000の範囲にして
-100〜100は無視するとかしたと思う。
友人のPS2コントローラの変換機もうまく動かないやつがあって、
ボタンの状態が、普段がONで押すとOFFになるんだったかなぁ。
コントローラの送ってくる情報は基本的に信頼しない方がいいかもしれない。
色んなメーカーが気軽に作ってるようだから。
0083デフォルトの名無しさん
2008/04/16(水) 06:37:08ありがとうございます。
いろいろと試してみます。
0084デフォルトの名無しさん
2008/04/16(水) 15:00:510085デフォルトの名無しさん
2008/04/16(水) 15:12:11ウィンドウを透過させてデスクトップの壁紙が見えるようにしたい?
0086デフォルトの名無しさん
2008/04/16(水) 15:15:41説明不足ですいません。
そのとおりです。描画してあるものはそのままに
ウィンドウを透過させて壁紙が見えるようにしたいんです。
0087デフォルトの名無しさん
2008/04/16(水) 17:22:270088デフォルトの名無しさん
2008/04/16(水) 17:31:04ま、結局はDirectXと無関係
0089デフォルトの名無しさん
2008/04/16(水) 22:02:09って英語でどう書くの?
0090デフォルトの名無しさん
2008/04/16(水) 22:10:59Goddamn CalcRect Don't WORK!!
Sun of a bitch!!
0091デフォルトの名無しさん
2008/04/16(水) 22:16:32DT_CALCRECT becomes Font.MeasureString in managed code.
0092デフォルトの名無しさん
2008/04/16(水) 23:58:300093デフォルトの名無しさん
2008/04/18(金) 01:28:34ttp://www.microsoft.com/downloads/details.aspx?FamilyID=572be8a6-263a-4424-a7fe-69cff1a5b180&displaylang=en#Requirements
にはないようなんですが、こんな書き込みを見ました
ttp://pc11.2ch.net/test/read.cgi/win/1206653607/981
0094デフォルトの名無しさん
2008/04/18(金) 02:03:03ドキュメントには明記されてるね。
0095デフォルトの名無しさん
2008/04/18(金) 02:17:53ありがとうございます、やはり必要なんですね
0096デフォルトの名無しさん
2008/04/18(金) 07:54:08DirectDraw テスト結果 : テストはすべて成功しました。
Direct3D 7 テスト結果 : エラー - ステップ 8 (3D デバイスを作成中): HRESULT = 0x80004005 (一般エラー)
Direct3D 8 テスト結果 : エラー - ステップ 8 (3D デバイスを作成中): HRESULT = 0x8876086c (エラー コード)
Direct3D 9 テスト結果 : エラー - ステップ 8 (3D デバイスを作成中): HRESULT = 0x8876086c (エラー コード)
すみませんこのエラーコードってなんですか?
0097デフォルトの名無しさん
2008/04/18(金) 11:43:370098デフォルトの名無しさん
2008/04/18(金) 11:44:460099デフォルトの名無しさん
2008/04/18(金) 16:14:21データが届きません><。
.cpp側
m_hMapWidth = m_pEffect->GetParameterByName( 0 , "MAP_WIDTH" );
m_hMapHeight= m_pEffect->GetParameterByName( 0 , "MAP_HEIGHT" );
hr = m_pEffect->SetFloat( m_hMapWidth , 490.0f );
hr = m_pEffect->SetFloat( m_hMapHeight, 472.0f );
.fx側
float MAP_WIDTH;
float MAP_HEIGHT;
と書いても、MAP_WIDTHには、数値が入ってないみたいです。
シェーダー側で、MAP_WIDTH=490.0fすれば、ちゃんと動きます。
SetFloatの前にやっている
SetFloatArrayは、ちゃんと数値届いてるのに><。
なんか、SetFloatの制限とかあるんですか?
ハンドル利用してないバージョンでも試しました。
やっぱだめです。
0100デフォルトの名無しさん
2008/04/18(金) 16:20:27Floatって400とか行くと駄目なん?
0101100
2008/04/18(金) 16:21:530102デフォルトの名無しさん
2008/04/18(金) 21:02:51GetParameterByNameで得たハンドルがNULLでないか、
hrがE_FAILになってないか、そのへん見てみたら?
あとはエフェクト側の定数が多すぎて定数レジスタ食い尽くしてないか。
(頂点シェーダ3_xまでは定数レジスタはfloat4×256個しかない)
0103デフォルトの名無しさん
2008/04/18(金) 21:50:06floatなら値を24bit、桁を8bitで保存してる(んだったと思うけど自信ない・・・w)。
だから10000000000000000.5とかの結果になった場合の0.5、あるいは
20.0000000000000000128とかの0..0000000000000000128の部分が消える。
だから値そのものの大小は関係ない。基本的に幅が足りないときに細かい部分が消えるだけ。
(桁が8bit?で足りないときも狂うけどね。)間違ってたら補足ヨロ。
0104デフォルトの名無しさん
2008/04/18(金) 22:13:080105デフォルトの名無しさん
2008/04/18(金) 23:02:04今後は使わないでWinsock使ってくれってどういうことだ、クソックソッ
0106デフォルトの名無しさん
2008/04/18(金) 23:15:12http://oshiete1.goo.ne.jp/qa3697040.html
ちょうど同じ質問してる人がいたぜ
ようはグラボがウンコなんだ
0107デフォルトの名無しさん
2008/04/19(土) 00:20:22いつの話だよ
0108デフォルトの名無しさん
2008/04/19(土) 01:21:49暗黙の1ビットがあるから結局24-bitでいいんじゃね?
0109デフォルトの名無しさん
2008/04/19(土) 09:58:30このスレじゃ書いといた方がよかったか?
0110デフォルトの名無しさん
2008/04/19(土) 14:18:04しかし99は直ったんだろーか。
0111デフォルトの名無しさん
2008/04/20(日) 00:39:12よくある話だ
0112デフォルトの名無しさん
2008/04/21(月) 05:19:46ビルボードを使って描画しようとしているのですが、
テクスチャを指定するためにLockメソッドでロックし、
頂点座標を指定しようとしたところ、Lockメソッドの実行時に
「 0x00413a9d でハンドルされていない例外が発生しました :
0xC0000005: 場所 0x00000000 を読み込み中にアクセス違反が発生しました。 。」
と表示されてしまいます。何が問題になっているのかさっぱり分からないのですが
分かる方はいらっしゃいますでしょうか。
0113デフォルトの名無しさん
2008/04/21(月) 05:20:100114デフォルトの名無しさん
2008/04/21(月) 05:23:29NULL(0)になっているポインタからその指す内容を得ようとしたっつーことだ。
そのテクスチャのポインタか何かがNULLになってるんじゃね?
0115デフォルトの名無しさん
2008/04/21(月) 05:35:44成る程ありがとうございます。
テクスチャの位置調整用の関数から、テクスチャ位置情報を受け取っているので、
恐らくその位置調整用関数が上手くいってないのだと思います。
こんな時間なので即レスが来るとは思いませんでした。
ありがとうございます。
0116デフォルトの名無しさん
2008/04/21(月) 06:57:370117デフォルトの名無しさん
2008/04/21(月) 07:25:10多分悪意は無いさ。
0118デフォルトの名無しさん
2008/04/21(月) 07:58:49こんな時間にもかかわらず答えてくれた好意にとても感謝している、って意味にしかみえねーよw
0119デフォルトの名無しさん
2008/04/21(月) 15:37:140120デフォルトの名無しさん
2008/04/21(月) 16:38:5654は俺なんだが、そんなにひどいレスだったか54は…?
「D3DXVec2Rotateに相当するD3DXの関数はありますか?」って聞けば誤解なかったんだろうという反省はしてるけど
0121デフォルトの名無しさん
2008/04/21(月) 18:46:19>お気遣いどうもw
「w」って笑顔じゃなくて笑い、2chでは嘲笑うという意味のほうが強いかな。
>>117-118が使い所として良い。
極度な訳だけど「お気遣いどうもw 」→「そんなの分かってるわボケwww心配しなくても思ってるほどバカじゃねぇよwwww」
答えてくれた人に対して何言ってるのとか思うけどね。
皆が使ってるから意味も知らずに使っている(悪気がない)ということより、意図的に使っているとしか考えられない。
あと文法的にもマナーの面からもお礼の言葉は最初に書くのが基本なので、印象が余計に悪く('A`)
でもマナーが成ってないのにルールは守り、ラフで使いやすいのが2chのいいところだよな。
0122デフォルトの名無しさん
2008/04/21(月) 20:59:47俺には54はそこまで嘲笑には見えんぞ
0123デフォルトの名無しさん
2008/04/21(月) 21:22:53携帯電話で使い始めたような若い人にとって何とも無いことでも
比較的年齢が高めなこの板ではあまりいい印象がない
少なくともこの板では嘲笑うレスに対して使われるのがほとんどで
質問者もそうだけど回答者も滅多に使わない
文章が乱暴だけど他の板に比べれば紳士的な感じかな
0124デフォルトの名無しさん
2008/04/21(月) 21:35:33まぁ、俺の見る限りこの板には本当の紳士は1割にも満たないわけだが・・・
0125デフォルトの名無しさん
2008/04/21(月) 21:48:14議論するつもりではなかったんだけど、自分的にはちょっと
カチンときたので例に挙げましたw(ちなみに99は解決したかどうか書いてくれなかったから。
後から、54も99も例に挙げたのはマズかったかなと思いましたが。)
相手の機嫌を一切損ねずに質問・回答するのは不可能に近いとは
自分も思うところだけど、
自分は2chに限らずとも、他人の親切に対して笑いながら「お気遣いどうもw」
みたいな反応が出来る人間はどうかと思うので。
(付け加えるなら、D3DXVec2Rotate()と同機能の関数があるかどうかを、
D3DXVec2Rotateという名前の関数が無いとわかっているのに
ここで訊こうとするのはレアケースどころかナンセンスだとすら思う。個人的には。
>まぁ、俺の見る限りこの板には本当の紳士は1割にも満たないわけだが・・・
別にあまり攻撃したくはないのだが、紳士にしか回答をもらいたくないのであれば
ここで訊くべきかどうかくらいの判断は自分で下すべきだ。
0126デフォルトの名無しさん
2008/04/21(月) 21:51:20まぁ、どこにでもいろんな人がいるということだね。どっちの考え方もよく分かるよ
受け入れられるかどうかはその人しだいだけどな
0127125
2008/04/21(月) 21:58:16お騒がせしました。
0128デフォルトの名無しさん
2008/04/21(月) 22:44:222chじゃなくてちゃんとした所で聞いたほうがいいぞ
0129デフォルトの名無しさん
2008/04/21(月) 22:50:40自業自得
0130デフォルトの名無しさん
2008/04/21(月) 23:35:33ちょっと周辺のコード晒してみぃ
っつかなんでこうやってできない奴に限って
動いてるソースのコピーからはじめないのか・・・
0131デフォルトの名無しさん
2008/04/21(月) 23:36:54>>130は解決してたら無視してくれ
0132112
2008/04/22(火) 01:17:52HRESULT SetFVFTexturePosition(
LPDIRECT3DVERTEXBUFFER9 aFVFBuffer , DWORD aType , DWORD aChar )
{
theCUSTOMVERTEX* tmpVertex; //頂点バッファをロック
theTexPositionRECT aTexRECT; //テクスチャの座標を受け取ります
SetCellTextureRECT(aChar , &aTexRECT);
//頂点バッファをロック
if(FAILED(aFVFBuffer->Lock( 0 , 0 , (void**)&tmpVertex , 0 ))){return(E_FAIL);}
//頂点は4つ、頂点座標、頂点職、テクスチャ座標を設定する
//D3DPT_TRIANGLESTRIPで描画するので頂点の番号と座標の対応に注意すること
tmpVertex[0].tu = aTexRECT.u0 ; tmpVertex[0].tv = aTexRECT.v0 ;
tmpVertex[1].tu = aTexRECT.u1 ; tmpVertex[0].tv = aTexRECT.v0 ;
tmpVertex[2].tu = aTexRECT.u0 ; tmpVertex[0].tv = aTexRECT.v1 ;
tmpVertex[3].tu = aTexRECT.u1 ; tmpVertex[0].tv = aTexRECT.v1 ;
//書き込みが完了。頂点バッファのロック解除
aFVFBuffer->Unlock();
return(S_OK);
}
0133デフォルトの名無しさん
2008/04/22(火) 01:18:48VOID SetCellTextureRECT(DWORD aChar , theTexPositionRECT *aRECT ){
const float kCellSize = 1.0 / 8.0f ;
//0xffの場合はビルボード全体にテクスチャを描画
if(aChar == 0xff){aRECT->u0 = 0.0f; aRECT->u1 = 1.0f; aRECT->v0 = 0.0f; aRECT->v1 = 1.0;}
else{
//あふれを防止
aChar &= 0x07;
aRECT->u0 = 0.0f ; aRECT->u1 = 1.0f;
aRECT->v0 = kCellSize * aChar ;
aRECT->v1 = aRECT->v0 + kCellSize ;
if(aRECT->v1 > 1.0f){aRECT->v1 = 1.0f;}
}
}
0134デフォルトの名無しさん
2008/04/22(火) 05:52:48とりあえずtmpVertex[0].tvが全部0指定してるのは直した?
(uは0〜3なのにvは0だけになってる
0135デフォルトの名無しさん
2008/04/22(火) 08:51:090136デフォルトの名無しさん
2008/04/22(火) 15:20:52013799
2008/04/22(火) 19:03:25結局、パラメータが渡ってません。
複数シェーダを書いて、まとめて(20個ぐらい)ロードしているんですが
SetFloatArray使ってないシェーダは、
ちゃんと幅、高さが渡ってるのに
SetFloatArray使ってるのは失敗するです><
>>102
GetParameterByNameは、ちゃんと実態がいます。
ハンドルなしで、直接指定もやってみました。
hrも成功しているはず(S_OK比較しています)です。
013899
2008/04/22(火) 21:19:38if( param == 490 ){ // 渡した数値比較
///
}
と書いたら、///の部分がちゃんと動きました。
数値は、渡っているみたいです。
しかし、直にparam=490と書いた時と同じパラメータ渡した時との動きが違うのです。
そういうのって何かありますか?
もうわけわからんちん
0139デフォルトの名無しさん
2008/04/22(火) 21:20:46もしかするとそのWIDTHとHEIGHTをfloat4(のxとy)にしたら直るかも?
0140デフォルトの名無しさん
2008/04/22(火) 21:21:16『たまたま』動いただけじゃね?
0141デフォルトの名無しさん
2008/04/22(火) 21:23:38定数多すぎてどれか溢れてるくらいしか思いつかん
0142デフォルトの名無しさん
2008/04/22(火) 21:30:43GetParameterByNameはあくまで
シェーダーの定数レジスタから値をひろってくるだけだぞ?
グローバル変数に値をいれたいなら
hr = m_pEffect->SetFloat( "MAP_WIDTH", 490.0f );
hr = m_pEffect->SetFloat( "MAP_HEIGHT", 472.0f );
だろ
0143デフォルトの名無しさん
2008/04/22(火) 21:33:59このスレの人はいい人がおおいですね><。
ありがとうございます。
ピクセルシェーダーはこんなかんじです
// MAP_WIDTH = 490.0f;
// MAP_HEIGHT = 472.0f;
Color = ( tex2D( SrcSamp, In.Tex )
+ tex2D( SrcSamp, In.Tex + float2( -1.0f / MAP_WIDTH, 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( +1.0f / MAP_WIDTH, 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( -3.0f / MAP_WIDTH, 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( +3.0f / MAP_WIDTH, 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( -5.0f / MAP_WIDTH, 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( +5.0f / MAP_WIDTH, 0 ) )
)/7.0f;
パラメータは、ちゃんと同じ値が渡ってるのに
・シェーダーに直書き(上のコメントを外す)
・プログラムからパラメータ渡し
とでぼかし具合が違うのです。
直書きすると定数として扱われてコンパイルするのかな?
書き方これでいいんでしょうか?
0144デフォルトの名無しさん
2008/04/22(火) 21:36:25値じゃなくてそのパラメータのハンドル。
もちろん、毎回GetParameterByNameしてハンドル取るくらいなら
直接名前で指定した方が簡単だろうけども。
0145デフォルトの名無しさん
2008/04/22(火) 21:42:08こんな感じ
+ tex2D( SrcSamp, In.Tex + float2( -(1.0f / MAP_WIDTH), 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( +(1.0f / MAP_WIDTH), 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( -(3.0f / MAP_WIDTH), 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( +(3.0f / MAP_WIDTH), 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( -(5.0f / MAP_WIDTH), 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( +(5.0f / MAP_WIDTH), 0 ) )
スレ汚し、ほんますんません。
0146デフォルトの名無しさん
2008/04/23(水) 01:04:400147デフォルトの名無しさん
2008/04/23(水) 15:10:05結局アセンブラやらないとだめなのか><。
014899
2008/04/23(水) 15:38:59かなり最適化して感動しました。
読んでなかったあとレジスタの仕組みとかもわかって逆アセしてよかったです。
でも、なんか怪しいので
D3DXCreateEffectで
D3DXSHADER_SKIPOPTIMIZATION //最適化しない
を渡してやってみたところ、うまく行きました><。
ああああああああああ
0149デフォルトの名無しさん
2008/04/23(水) 15:51:20015099
2008/04/23(水) 16:43:54最適化しても、普通にうごいたお。
最新版、グローバル変数に数値入れられなくなってていい感じだお。
>>103,104,108,109,110,111,139,140,141,142,144,146
ありがとうございました
ぼくの7日間シェーダ戦争
〜完〜
0151デフォルトの名無しさん
2008/04/23(水) 21:53:310152デフォルトの名無しさん
2008/04/23(水) 22:42:19秒間60プレームしか描画できてないということがわかった
そんなにたくさんのモデルを描画してるわけじゃないのになと思いながら
モデルの描画量とか画面のサイズとかを減らしていったのに
それでも秒間65フレームくらいしかでない
いくらなんでもプリミティブ1つ描画するのに
秒間60回しか更新できないなんてありえないと思うんだが、
ひょっとしてDirectXってFPSを固定する機能があったりとか
それがデフォルトで有効になってるとかそういうことはありますか?
0153デフォルトの名無しさん
2008/04/23(水) 22:49:15param.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
0154デフォルトの名無しさん
2008/04/23(水) 23:13:37ウインドウモードで作ってるので
下の行を追加するだけでOKですか?
凄まじい勢いで描画されるようになりました
ありがとうございました
0155デフォルトの名無しさん
2008/04/24(木) 00:13:240156デフォルトの名無しさん
2008/04/24(木) 13:09:54私の場合はDirectMusicをLIB化して使ってますね。
それに加えてwavやmidiやmp3の場合はMCIでも同じことはできます。
本当はMCIで読み込んでDirectSoundに渡すのがいいらしいのですが、
そっちは難しいぽかったのでDirectMusicを主に使っています。
例えば以下のプログラムの音楽再生はDirectX9の11月版で作っていますが
ですが音楽再生はDirectMusicを使っています。
http://gamdev.org/up/img/11346.zip
LIB化の仕方についてはこのページがとても分かりやすかったのでどうぞ
(私もここのやり方でやってます
http://www.geocities.jp/ky_webid/win32c/056.html
0157デフォルトの名無しさん
2008/04/24(木) 19:28:05ご丁寧にありがとうございます!。
とりあえずそのサイトを見てみたいとおもいます。
0158デフォルトの名無しさん
2008/04/24(木) 20:19:21ある程度売れたらパテントとかってあるんだよね?
0160デフォルトの名無しさん
2008/04/24(木) 21:01:59BGMやSEとしてゲーム本体に組み込むのであればmp3なんか使わない
0161デフォルトの名無しさん
2008/04/24(木) 21:50:520162デフォルトの名無しさん
2008/04/24(木) 22:20:362枚以上の計器を重ね、テクスチャに抜き色を設定したりアルファ値を下げたりした状態にしてZ値や描画順を変えると
手前の計器の抜けている部分から奥の計器が見えるべきところが透明のままで背景が見えます。
描画するときはZ値を触らずに(全て固定値)、自分で描画順を変えないといけないのでしょうか。
0163デフォルトの名無しさん
2008/04/24(木) 22:34:240164デフォルトの名無しさん
2008/04/24(木) 23:05:18DirectSoundでやるなら、WAVEにデコードする必要がある
0165デフォルトの名無しさん
2008/04/24(木) 23:15:23ここにいる人は何使ってるの?
0166デフォルトの名無しさん
2008/04/24(木) 23:29:040167デフォルトの名無しさん
2008/04/24(木) 23:30:07DirectAudioPlayってのなかったっけ?
0168デフォルトの名無しさん
2008/04/25(金) 00:00:18DirectMusicとDirectSoundが統合された時の名称だけども・・・
0169デフォルトの名無しさん
2008/04/25(金) 00:33:07アメリカならwmaとかが主流なんじゃないかと
0170デフォルトの名無しさん
2008/04/25(金) 00:53:05なんか調べんのめんどいな・・・そもそもどうやってoggファイルつくんだよ・・・
0171デフォルトの名無しさん
2008/04/25(金) 01:14:44wavをoggに変換するソフトがどっかにあった希ガス
それかlibになかったっけ?
0172デフォルトの名無しさん
2008/04/25(金) 01:16:28http://www.geocities.jp/debu0510/personal/oggvorbis.html
検索一発目でヒィーーーーーーーーーット!
お前、検索すらしないで書き込んだなw
0173デフォルトの名無しさん
2008/04/25(金) 01:16:52ttp://www.xiph.org/
ほい、公式
0174デフォルトの名無しさん
2008/04/25(金) 01:16:540175デフォルトの名無しさん
2008/04/25(金) 01:18:05脳みそで英→萌→和変換するのがストレス
0176デフォルトの名無しさん
2008/04/25(金) 01:18:22歩き男って無いんだよな。ややマイナーなのが難点だ。
0177112
2008/04/25(金) 03:34:31すみませんでした。
皆様のおかげでなんとか描画できるようになったのですが、
何故かテクスチャの色が表示されずに、真っ黒な像が描画されてしまいます。
問題はどこにあると思いますでしょうか・・・ご教授願います。
レンダリングステートは以下のようにしています。
theDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE ); // αブレンディング有効
theDevice->SetRenderState( D3DRS_ALPHATESTENABLE, TRUE ); // αテストを有効に
theDevice->SetRenderState( D3DRS_ALPHAREF, 0x00 ); // αチャネルの値が0x00なら
theDevice->SetRenderState( D3DRS_ALPHAFUNC, D3DCMP_NOTEQUAL ); // 書き込みをしない
theDevice->SetRenderState( D3DRS_ZWRITEENABLE, FALSE );// Zバッファへの書き込み停止
theDevice->SetRenderState( D3DRS_AMBIENT, 0xFFFFFFFF );// 環境光
theDevice->SetRenderState( D3DRS_SRCBLEND,D3DBLEND_SRCALPHA ); // ソース側の色の比率
theDevice->SetRenderState( D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA ); // 書き込み側の色の比率
theDevice->LightEnable( 0, FALSE ); // ライトを無効に
theDevice->SetTextureStageState( 0 , D3DTSS_ALPHAARG1, D3DTA_TEXTURE ); // αチャネルの色を使用theDevice->SetTextureStageState( 0 , D3DTSS_ALPHAOP,D3DTOP_SELECTARG1 ); // テクスチャの色を使用
0178デフォルトの名無しさん
2008/04/25(金) 05:57:320179デフォルトの名無しさん
2008/04/25(金) 07:51:31D3DTSS_COLOROP, D3DTSS_COLORARG1 あたりの設定が
見当たらないね 設定しておいたほうがいいと思うんだけど
0180デフォルトの名無しさん
2008/04/25(金) 09:46:350181デフォルトの名無しさん
2008/04/25(金) 09:52:20D3DTSS_COLOROPは乗算
D3DTSS_COLORARG1はテクスチャ色使用にしてあります。
0182デフォルトの名無しさん
2008/04/25(金) 10:05:29D3DTSS_COLOPOPの値をD3DTOP_SELECTARGに変更したら出来ました
自分でも変なミスをしたと思いました。
回答してくださった方には、お手数をおかけしてすみませんでした
0183デフォルトの名無しさん
2008/04/25(金) 14:00:30�dクス
今手元のwav変換して聞いてみたけどイイネ!
プログラム的にはダイレクトショウフィルター入れてればDirectShowで直接再生できるって感じ?
そうだとユーザーの手間が増えちゃうからやっぱりソース組み込むのかなぁ・・・
0184デフォルトの名無しさん
2008/04/25(金) 20:53:240185デフォルトの名無しさん
2008/04/25(金) 21:25:090186デフォルトの名無しさん
2008/04/25(金) 21:32:43そう
WindowsMediaPlayerみたいなのいれれば大抵のコーデック入るから
理論的にはなんでも再生可能
0187デフォルトの名無しさん
2008/04/25(金) 21:37:15今はインストールさせるのとさせないのどっちが主流っぽいの?
たいした手間ではないんだけど、ゲームも大したもんじゃないから気が引けるぜ
0188デフォルトの名無しさん
2008/04/25(金) 22:13:23まあそれするとGPLが適用されると思うけど。
ToHeart2が引っかかってたような。
ん?あれOGGだったっけか?
0189デフォルトの名無しさん
2008/04/25(金) 23:16:170190デフォルトの名無しさん
2008/04/25(金) 23:23:22XPでもデフォでメディアプレイヤー入ってるから、
そんなマイナーでなければ既に入ってる
心配なら、配布時にメディアプレイヤーを含めればいい
>>188
あれは、oggじゃなてくムービーのコーデック
まあそういう事情があるから、ライセンスはきっちりしといたほうが後で泣きをみない
0191デフォルトの名無しさん
2008/04/25(金) 23:29:25あぁ、まぁぐだぐだ書いたけど、
俺もお勧めはogg
ホムペを参考にしつつliboggとlibvorbisを使って組んだほうがいいぞい
0192デフォルトの名無しさん
2008/04/26(土) 00:49:58普通、ライセンス考えるゲームはogg
0193デフォルトの名無しさん
2008/04/26(土) 01:14:38今度はstrsafe.hが無いと。
MSDN見たら新しいバージョンのPlatform SDKに入ってるとかあるんだけど
どこから取れますか?それともインクルードパスがおかしいのかな
普通どこに入ってる物なんだ?普段そこまで踏み込まないから全然分からん\(^o^)/
0194デフォルトの名無しさん
2008/04/26(土) 01:20:55DirectXに行ったり
Media何とかに行ったり
PlatformSDKに行ったりと大変ね。
0195デフォルトの名無しさん
2008/04/26(土) 01:29:040196デフォルトの名無しさん
2008/04/26(土) 09:37:50音楽系はogg 動画画像系はなにがおすすめ?
0197デフォルトの名無しさん
2008/04/26(土) 09:43:080198デフォルトの名無しさん
2008/04/26(土) 09:54:05wmvは結構マイナーなのよん
ちなみにScroolDaysはwmv
ま、再生の負荷で考えるならmpeg1が安易
サイズは不利だけどね
0199デフォルトの名無しさん
2008/04/26(土) 10:03:19ライセンス考えなくても大丈夫。クソゲーは相手にされないから。
0200デフォルトの名無しさん
2008/04/26(土) 11:00:320201デフォルトの名無しさん
2008/04/26(土) 12:38:33粋がるな馬鹿
0202デフォルトの名無しさん
2008/04/26(土) 13:05:400203デフォルトの名無しさん
2008/04/26(土) 13:53:48VisualStudioでコンパイルするためのバッチファイルが入ってたんだけど、
BCCでやるにはどうすりゃいいんだ?
0204デフォルトの名無しさん
2008/04/26(土) 14:18:22あるいはBCC用のバッチφるが別のダディレクトリにあるとか。
0205デフォルトの名無しさん
2008/04/26(土) 14:19:000206203
2008/04/26(土) 15:32:430207デフォルトの名無しさん
2008/04/26(土) 15:46:25VS2008Express入れてみたけど適当にコンパイルしてたら
変なファイル大量に作られるし、挙句の果てにdll吐きやがった(´;ω;`)
これだから高レベルなソフトはいやなんだ・・・
これってどうすればいいの?つうかVSでコンパイルできたとしてそのlibって
BCCじゃ使えないんだっけ?
0208デフォルトの名無しさん
2008/04/26(土) 15:53:53エロゲでオナニーもする。
別もんだ。
0209デフォルトの名無しさん
2008/04/26(土) 15:56:35大日本帝国の主力産業たる萌えを否定するのは売国奴だ。
中共や南朝鮮の間諜だ。殺せっ殺せっ殺せっっっ
0211デフォルトの名無しさん
2008/04/26(土) 16:10:00まあ、いいや。後は何とかしますノシ
0212デフォルトの名無しさん
2008/04/26(土) 18:44:49キチガイはシカトしとけ
0213デフォルトの名無しさん
2008/04/26(土) 19:14:05SDKのスキンメッシュのサンプルをクラス化して
自分の環境に持ってきたところ、テクスチャの一部がチリチリするようになりました。
SetRenderStateはサンプルと同じに設定しています。
何か原因に見当つく人がいたら、ご教示ください。
よろしくお願いします。
ttp://f11.aaa.livedoor.jp/~neomoku/neoup/src/1209203904068.jpg
0214デフォルトの名無しさん
2008/04/26(土) 19:32:18原因はここに違いない
0215デフォルトの名無しさん
2008/04/26(土) 19:43:16ライセンスのことなんて考えなくても大丈夫だろ?
そう思ってた時期が俺にもありました
0216デフォルトの名無しさん
2008/04/26(土) 19:46:130217デフォルトの名無しさん
2008/04/26(土) 20:11:060218デフォルトの名無しさん
2008/04/26(土) 22:38:03libは結構面倒だ
デバッグ版lib
リリース版lib
ちょっとでもコンパイル設定がかわるともう受け付けない
(みんななぜか気にしてない?うーんあわせる自信あるのかな?)
好んで使うアフォがいるがなんでか?ってのは俺も知らない
0219デフォルトの名無しさん
2008/04/26(土) 22:58:14ポリゴンに対してバウンディングボックスを作ることってできますか?
0220デフォルトの名無しさん
2008/04/26(土) 23:12:54横槍だがlibを毎回プロジェクトフォルダに入れないとパス通しても認識されないんだが
どうすりゃいいんだ?
0221デフォルトの名無しさん
2008/04/26(土) 23:26:540222デフォルトの名無しさん
2008/04/26(土) 23:56:090223デフォルトの名無しさん
2008/04/26(土) 23:58:090224デフォルトの名無しさん
2008/04/27(日) 01:24:0416bitの何が入っているんですか?
これがわからないと読み出せないんですが
0225デフォルトの名無しさん
2008/04/27(日) 01:55:190226デフォルトの名無しさん
2008/04/27(日) 03:20:490227デフォルトの名無しさん
2008/04/27(日) 03:22:150228デフォルトの名無しさん
2008/04/27(日) 05:13:460229デフォルトの名無しさん
2008/04/27(日) 13:53:57働いたら負けって意味がよく分かったよ
0230デフォルトの名無しさん
2008/04/27(日) 13:54:250231デフォルトの名無しさん
2008/04/27(日) 14:04:010232230
2008/04/27(日) 14:53:060233デフォルトの名無しさん
2008/04/27(日) 15:07:520234デフォルトの名無しさん
2008/04/27(日) 15:26:02調べてない自分が悪いorz
とんくす!!
0235デフォルトの名無しさん
2008/04/27(日) 21:44:04case2の方にノイズがのります。
以下の二つは何か違いがあるんでしょうか?
(HLSLは最適化なしでも同じ、設定は列優先)
// float4_t vPosition0
// float4x4_t mWorld
// float4x4_t mViewProj
// case 1
const float4_t vPosition1 = mul( vPosition0, mWorld);
o_vPosition = mul( vPosition1, mViewProj);
// case 2
const float4x4_t mWorldViewProj = mul( mWorld, mViewProj);
o_vPosition = mul( vPosition0, mWorldViewProj);
0236デフォルトの名無しさん
2008/04/28(月) 23:15:14でやるにはどうすれば良いでしょうか?Lock Unlockで
サーフェイスから1ピクセル抜き出すのは勿体無いですから。
0237デフォルトの名無しさん
2008/04/28(月) 23:27:18何がどう勿体無いのか知らんが、それが一番素直なやり方
サーフェースのフォーマットを調べたいとかいう違う動機があるなら別だが
0238デフォルトの名無しさん
2008/04/28(月) 23:32:01あればいいなと思って質問しました。Lock Unlock使わなくても
大丈夫というレスを期待したのです。レスありがとうございます。
今日は寝ます。
0239デフォルトの名無しさん
2008/04/28(月) 23:38:06誤解してるみたいだが、GetPixelも実装はLock/Unlockしてるの
それプラス余計なオーバーヘッドがかかるから、自前でやったほうが数倍速い
ちなみに、システムメモリ上のサーフェースは、その手のLock/Unlockによるオーバーヘッドは皆無
まあ、VRAM上のことを言ってるんだろうけど、VRAM上ではイメージがリニアに配置されてる保障はないので
その手のオーバーヘッドは、どういうやり方をするにせよ、回避は不能
0240デフォルトの名無しさん
2008/04/29(火) 00:00:000241デフォルトの名無しさん
2008/04/29(火) 00:38:00GetPixelってフォーマットやら範囲やらチェックしてる予感
あの遅さはそういう遅さだ
俺の直感がそうだと言っている
でもフォーマット気にしないでコピーする方法ってどうやんだっけ?
BitBltでいいんだっけ?
0242デフォルトの名無しさん
2008/04/29(火) 21:55:54D3DLIGHT9 light;
memset(&light,0,sizeof(light));
light.Type = D3DLIGHT_DIRECTIONAL;
light.Diffuse.r = 0.9f; light.Diffuse.g = 0.9f; light.Diffuse.b = 0.9f;
light.Specular.r = 0.2f; light.Specular.g = 0.2f; light.Specular.b = 0.2f;
light.Ambient.r = 0.5f; light.Ambient.g = 0.5f; light.Ambient.b = 0.5f;
light.Direction = D3DXVECTOR3(0.0f, -0.5f, -0.2f);
device->SetLight(0,&light);
device->LightEnable(0,TRUE);
//*
device->SetRenderState(D3DRS_LIGHTING,TRUE); //ライティング有効
/*/
device->SetRenderState(D3DRS_LIGHTING,FALSE); //ライティング無効
//*/
上記のように設定すると何も表示されなくなってしまいます。ライトを無効にすれば表示されるので
メッシュの基本的的なところは間違ってないみたいなのですが、何が間違ってるのでしょうか?
0243デフォルトの名無しさん
2008/04/29(火) 22:13:120244デフォルトの名無しさん
2008/04/30(水) 00:23:12DirectX10からいろいろ変わったと聞いたもので。
あと、お勧めの書籍があったら教えてほしいです。
0245デフォルトの名無しさん
2008/04/30(水) 00:30:020246デフォルトの名無しさん
2008/04/30(水) 00:35:41要するに、概念が大事
0247デフォルトの名無しさん
2008/04/30(水) 03:07:460248デフォルトの名無しさん
2008/04/30(水) 03:09:53むしろ情報がクソほど出揃ってる9以前のほうがいい
10なんかOS縛りあるわ情報少ないわでいいことまったくなし
8あたりで縛ってつくればDirectX8はXP以降なら間違いなく入ってるし
配布もラクだしとにかくいいことだらけだ
そんな初級質問をするおまいはこれからもたくさん質問するだろうから
それに答えられる使用者が多い9以前を使うべき
0249デフォルトの名無しさん
2008/04/30(水) 07:57:25もうDX8はない。
かといってDX10は実行環境が限られる上に
仕様もまだ安定していない。
0250デフォルトの名無しさん
2008/04/30(水) 12:19:130251デフォルトの名無しさん
2008/04/30(水) 16:58:3310もすんなりいけるんじゃね。
0252デフォルトの名無しさん
2008/04/30(水) 18:36:230253デフォルトの名無しさん
2008/04/30(水) 19:54:00でもVistaはイヤッ!!
0254デフォルトの名無しさん
2008/04/30(水) 20:32:140255デフォルトの名無しさん
2008/04/30(水) 22:07:000256デフォルトの名無しさん
2008/04/30(水) 22:09:330257デフォルトの名無しさん
2008/04/30(水) 23:02:110258デフォルトの名無しさん
2008/04/30(水) 23:09:330259デフォルトの名無しさん
2008/04/30(水) 23:50:06敷居が高いからやめておいたほうがいいと思う
ある程度たどり方を知ってないと見つからないし、わからないと思う
0260デフォルトの名無しさん
2008/04/30(水) 23:58:24ピクセルシェーダが使えない環境で
クライアント座標のある部分を描写しないようにクリッピングしたいのですが、
どのようにすればいいでしょうか。
C++でdirectx9を使ってます。
0261デフォルトの名無しさん
2008/05/01(木) 01:56:50キャプチャ使用とすると、カメラを選択するメニューが登場しcapDriverConnect(hWnd0,0);側だけ選んだ1つだけ
表示されてしまいます。
解決の方法はご存じないですか?
0262デフォルトの名無しさん
2008/05/01(木) 06:27:110263デフォルトの名無しさん
2008/05/01(木) 07:54:59バラモス撃破乙
0264デフォルトの名無しさん
2008/05/01(木) 16:41:47ステンシルバッファ でぐぐるよろし
0265デフォルトの名無しさん
2008/05/01(木) 21:01:47さんくすです。
0266デフォルトの名無しさん
2008/05/02(金) 11:57:01任意の軸を中心に拡大縮小が出来る関数ってありませんか?
回転はみつけたんですが、拡大縮小は見つからなくて・・・。
0267デフォルトの名無しさん
2008/05/02(金) 12:37:52あるっちゃあるが、ちゃんと行列勉強したほうがいいと思うぞ
細かい調整きくようになるし
0268デフォルトの名無しさん
2008/05/02(金) 17:20:580269デフォルトの名無しさん
2008/05/02(金) 18:45:06つーか、何を回転させようとしているのだろうか
0270デフォルトの名無しさん
2008/05/02(金) 18:50:51ここのスレのお兄さんたちはD3DX関数群は肯定派?否定派?
速度でないし、細かい微調整がきかないから、そんなもん使うなって感じ?
それとも、車輪の再発明してもしょうがない、あるんだから使えばいいじゃないって感じ?
なんとなく気になったんで
0271デフォルトの名無しさん
2008/05/02(金) 19:08:19でも基本的にあるなら使えばいいじゃない派
0272デフォルトの名無しさん
2008/05/02(金) 19:15:43もっと評価してやらないこともない
0273デフォルトの名無しさん
2008/05/02(金) 19:21:540274デフォルトの名無しさん
2008/05/02(金) 19:23:330275デフォルトの名無しさん
2008/05/02(金) 19:25:02わかる
DLLバージョン多すぎ
0276デフォルトの名無しさん
2008/05/02(金) 19:28:580277デフォルトの名無しさん
2008/05/02(金) 21:30:26それにはこのdirectxが必要なんですが、その
安全性が非常に心配です。
調べてみると、「DirectXの脆弱性」などとよく書いてあります。
ダウンロードするとしたら、最新の10.1がいいのでしょうか?
それと、当たったらどんな症状が出るのでしょうか?
0278デフォルトの名無しさん
2008/05/02(金) 21:32:140279デフォルトの名無しさん
2008/05/02(金) 21:35:20……と思ったが、マジレスするなら、今までWindows使ってて、脆弱性のせいでなんか不都合が起こったことあるか?
そもそも、ココに書き込みしてる時点で脆弱性を突かれて君のパソコンまずいことになってるよ。
他の人(もちろん俺も)は、事前に対策してるけど。君は丸腰なんじゃないか?
0280デフォルトの名無しさん
2008/05/02(金) 21:35:39本当に何もわからんやつは、確かにプログラム→DirectX初心者でこういうところに質問するのかw
0281デフォルトの名無しさん
2008/05/02(金) 21:43:170282デフォルトの名無しさん
2008/05/02(金) 21:43:34というか、Vista だと標準装備じゃなかったっけ?
入ってないってことは XP なんだろうけど、
それなら 9.0c を入れるといいよ。
0283デフォルトの名無しさん
2008/05/02(金) 21:54:490284デフォルトの名無しさん
2008/05/03(土) 05:51:55D3DX関数群の集まりって昔中身見れたんだけど
なんか難しそうなアセンブラで書いてあって速そう(?)だったよw
0285デフォルトの名無しさん
2008/05/03(土) 10:12:11比較的最近のd3dxにしないと駄目だけどね。
0286デフォルトの名無しさん
2008/05/04(日) 00:25:15(わかりやすくするために、カメラの座標は0,0,0とします。)
カメラを、とある地点Aと、とある地点Bの中間の方向を向かせるために、以下の方法をやっています。
中間というのは、3次元ベクトルAとBの平均(A + B) / 2 ということではなく、
角度的な中間です。
(説明のために2Dベクトルで例えます)現在のカメラの方向からAが+20度の方向。Bが+80度の方向にあるのならば、カメラは+50度の方向を向かせたいのです。
ttp://w3e.kanazawa-it.ac.jp/math/category/kika/heimenkika/henkan-tex.cgi?target=/math/category/kika/heimenkika/naibunntenn.html
この法則を利用し、Aまでの距離とBまでの距離を利用。
lenA = D3DXVec3Length(pVecA);
lenB = D3DXVec3Length(pVecB);
D3DXVec3Lerp(pOut, pVecA, pVecB, lenA / (lenA + lenB));
としてpOutの方向を向かせれば、丁度中間の方向を向けそうです。
まず、ここまであっているでしょうか?
あっていると仮定して、次のステップ、(例えば)AとBの角度的に3:7の方向を向きたいという場合はどうすればいいでしょうか?
0287デフォルトの名無しさん
2008/05/04(日) 01:01:250288デフォルトの名無しさん
2008/05/04(日) 12:34:560289デフォルトの名無しさん
2008/05/04(日) 15:42:44D3DXLoadMeshHierarchyFromXを使っているのですが、Debugビルドの場合のみ
14MBほどの大きさのXファイルの読み込み時に
ハンドルされていない例外 は test.exe にあります: 0xC0000005: Access Violation。
と出てしまいます。
10回に1回くらい出ないこともあるのですが・・・
__sbh_free_block の中でエラーになっているようで、これはメモリー空間が破壊されている時に出るとのこと
なのでプログラムを最小構成にしてやってみましたが、それでもダメでした。
Releaseビルドでは問題は出ません。
また、アニメーションの数を減らして7MBくらいにするとDebugビルドでも問題は出ませんでした。
Xファイルはテキスト版でも、バイナリ版でも同様の結果でした。
何か心当たりある方はいらっしゃいますでしょうか?
環境はVC6.0+DirectX 9.0 SDK Update - (October 2004) です。
0290デフォルトの名無しさん
2008/05/04(日) 18:24:27デバッグモード時、d3dx9.libではなくd3dx9d.libをリンクすることでうまくいきました。
0291デフォルトの名無しさん
2008/05/04(日) 19:04:18DirectXアプリケーションで、日本語入力(IME)をサポートしようと思っています。
やりたいことは、IMEの変換ウィンドウと候補一覧ウィンドウを表示するということだけなのですが、
DirectXのサンプル(CustomUI)では、独自のコントロールの実装や継承を自前で行うことで実現していました。
CDXUTControl
↑
CDXUTEditBox
↑
CDXUTIMEEditBox
特にCustomUIのような独自のコントロールを作成したいわけではないのですが、
あきらめてCustomUIと同じような実装を自前でしなければならないのでしょうか。
それとも変換ウィンドウと候補一覧ウィンドウを表示したいだけであれば、もっと楽な方法があるのでしょうか。
0292デフォルトの名無しさん
2008/05/05(月) 02:20:18Zバッファへの書き込みをOFFにした状態で2ドット以上の幅でワイヤーフレームを描き、その後通常どおり描画。
とやることで、背景との輪郭線を綺麗に描けるのを期待しているのですが。
0293デフォルトの名無しさん
2008/05/05(月) 10:48:520294デフォルトの名無しさん
2008/05/05(月) 11:38:210295デフォルトの名無しさん
2008/05/05(月) 11:57:59理屈上は背景とキャラと間に線が入る感じになるかと。
ワイヤー時はZバッファへ書き込みしないようにしているので、ワイヤーフレームの後にキャラクタの描画で輪郭線以外は塗りつぶされますから。
>>294
プログラマブルシェーダで同等のことできますか?
モデルのポリゴン裏返して黒くし、法線方向に膨らませる…。っていうやつも悪くはなかったのですが、何分重くて。
スキンメッシュなので、自前でID3DXLineで引くわけにもいかないんですよ。
いかないですよね…?
変形後の頂点位置、わからないですし。
0296デフォルトの名無しさん
2008/05/05(月) 16:24:37それが速く描画できる理由になるところが俺にはわからん
0297デフォルトの名無しさん
2008/05/05(月) 21:15:04だが俺はあの線を太くする方法は知らんな
あれば結構魅力的な輪郭線描画法かもしれん
0298デフォルトの名無しさん
2008/05/05(月) 21:21:27連邦VSジオンみたいなゲームでも作ろうかと3Dを本格的に始めたのですが、スペックで相談です。
あのゲームは2VS2なのでキャラが4体でてきます。
1キャラ6000三角ポリゴンくらいで作って4体を画面内に表示したところ、FPS60が維持できませんでした。
私のPCのグラボが、GF6600GTとかなり古めだというのはあるのですが、こんなもんなのでしょうか?
0299デフォルトの名無しさん
2008/05/05(月) 21:35:590300デフォルトの名無しさん
2008/05/05(月) 22:02:35「それ低すぎだろw何かミスってね?」
でなければいいなと思ったのです。
こんなものですか。1キャラ2000ポリくらいにしないと、マップとかにパワーまわせませんね
0301デフォルトの名無しさん
2008/05/05(月) 22:06:450302デフォルトの名無しさん
2008/05/05(月) 22:38:29今まで3Dツール上でレンダリングするだけだったので、その癖ですね。
ゲーム用はやはりもっと抑えないとということですか。
ありがとうございました。
0303デフォルトの名無しさん
2008/05/05(月) 22:48:30どうすればデバッグできるようになるのでしょうか?
0304デフォルトの名無しさん
2008/05/05(月) 22:49:16デバッグをするとobjbase.h': No such file or directoryと出てデバッグできません
どうすればデバッグできるようになるのでしょうか?
0305デフォルトの名無しさん
2008/05/05(月) 23:06:05エラーメッセージ貼ります
c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory
Stage4.cpp
c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory
Stage3.cpp
c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory
Stage2.cpp
c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory
Stage1.cpp
c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory
Ranking.cpp
c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory
Option.cpp
c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory
MyGameLib.cpp
c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory
Main.cpp
c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory
0306デフォルトの名無しさん
2008/05/05(月) 23:16:530307デフォルトの名無しさん
2008/05/05(月) 23:17:31パスはあるけど、ヘッダファイルだけないの?
それともパス自体ないの?
0308デフォルトの名無しさん
2008/05/05(月) 23:40:39デバッグボタンでコンパイルしてるというのでしょうか・・・?
>>307
あるとかないとか言われてもわかりません
インストールしてオプションでパス設定してデバッグしただけですから・・・
Microsoft DirectX SDK (August 2007)ファルダの中にはDeveloper Runtime Documentation Include Lib Samples Utilitiesフォルダがあります
0309デフォルトの名無しさん
2008/05/05(月) 23:43:16c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h
というファイルは、Windows上にファイルとしてきちんと存在してるの?
パス間違えてるんだと思うぜ?
半角スペースのあるなし
括弧の半角全角とか、きちんとやってみ。
0310デフォルトの名無しさん
2008/05/05(月) 23:44:420311デフォルトの名無しさん
2008/05/05(月) 23:52:45動きの計算は自前でやるにしても、どうやってモデルから構造出して、計算してんのかなぁ
やったことある人いる?
0312デフォルトの名無しさん
2008/05/05(月) 23:55:590313デフォルトの名無しさん
2008/05/06(火) 00:02:410315デフォルトの名無しさん
2008/05/06(火) 00:46:22PC内全検索して、objbase.hがあるか確認
あるなら、そこへもパス通せ。
ないならSDKの再インストール
0316デフォルトの名無しさん
2008/05/06(火) 00:58:58再生するだけで十分なのですが、Direct3Dでクロスシミュを簡易的に再生するのに適した方法はどんなのがありますでしょうか?
0317デフォルトの名無しさん
2008/05/06(火) 01:12:24C:\Program Files\Microsoft Platform SDK\Includeにあるみたいなんですがこれでいいんでしょうか?
0318デフォルトの名無しさん
2008/05/06(火) 07:46:19Xファイルを吐き出す側の3Dソフトに
クロスシミュのプラグインとか入れて、そのモーションで吐き出すが一番簡単
それとも自前でクロスシミュをDXで出来ていて、それをDX上でしたくてどうにか出来ない、
って事とは思えないが…一応…
前提としてD3DX関数でしかXファイル扱えないとかじゃないよね…
クロスシミュで求めた頂点で、モーフアニメーションでもすれば良いじゃん
0319デフォルトの名無しさん
2008/05/06(火) 07:54:17亀レスで申し訳ないが…
カメラ位置からA地点を結ぶベクトルA、カメラ位置からB地点を結ぶベクトルB
それぞれのベクトルA, Bを単位化して、その単位化したベクトルをAA, BBとする
AAとBBを結ぶベクトルCCを作って、そのCCの長さを任意に割合で分ける点DDを作る
カメラ位置とそのDDを結ぶベクトルが君の求めるカメラ注視点ベクトルだと思うが…
0320デフォルトの名無しさん
2008/05/06(火) 08:25:59dxsdk_aug2007をインストール中に「This pre-release version of XAudio2 has expired please upgrade to tha latest version」と出るのですが、
そのままokをクリックしてインストールを終わらせていいのでしょうか?
0321デフォルトの名無しさん
2008/05/06(火) 09:29:44MSお得意のベータ版の時限装置が発動でもしてんじゃね?
xaudio2使うんじゃなければ問題無いと思うよ。
0322デフォルトの名無しさん
2008/05/06(火) 09:37:46MyGameLib.obj : error LNK2019: 未解決の外部シンボル __imp__GetClientRect@8 が関数 "void __cdecl playMovie(char const *)" (?playMovie@@YAXPBD@Z) で参照されました。
D:\プログラミング参考サンプル\アクションゲームプログラミング\マスカットボーイ\ソースファイル\MuscatBoy\Debug\MuscatBoy.exe : fatal error LNK1120: 外部参照 21 が未解決です。
ビルドログは "file://d:\プログラミング参考サンプル\アクションゲームプログラミング\マスカットボーイ\ソースファイル\MuscatBoy\Debug\BuildLog.htm" に保存されました。
文字数制限にひっかかるので多少省きましたすみません
このエラーの解決策を教えてくださいお願いします
0323デフォルトの名無しさん
2008/05/06(火) 10:02:450324デフォルトの名無しさん
2008/05/06(火) 10:55:18亀レスでも大変ありがたいです。
ただ、AAとBBを結ぶCCは直線なので、任意の割合で分けても「角度的に割合で分けた」ことにはならないと思います。
本当に角度的なものなら、DDはAAとBBを結ぶ「曲線」の上になければならないと思います。
0325デフォルトの名無しさん
2008/05/06(火) 11:05:33その通り
それよりなぜ極座標を使わないかを教えてくれ
0326デフォルトの名無しさん
2008/05/06(火) 11:26:10Xファイルから布部分を取り出して、自前でクロスシミュしてリアルタイムに描画ってのはできます。
これだと
・リアルタイムゆえ、色々な変化に柔軟に対応可能
・リアルタイムに計算するコストが必要
ですよね。
今回はキャラがきまったアニメーションしかしません。リアルタイムに計算しない方針です。
D3DXのXファイル再生サポートをD3DXAnimationControlerしか知らないのですが、
これが制御するのはボーンの動きだけですよね?
古典的クロスシミュの1つとして、布に大量にボーンを仕込んで…という方法がありますが、(D3DXを使った)Xファイル再生ではその方法しかないのかな?という疑問です。
0327デフォルトの名無しさん
2008/05/06(火) 11:35:51極座標を使うということは、一旦座標をatanなどを使って角度に直した方がいいということでしょうか?
AとBと0,0,0を含む平面を考え、その平面上でのAの角度(0度とすると計算しやすいか)と、Bの角度を求める。
という方法でしょうか?
また、今勉強中なのですがクォータニオンというものを使えば、望んでいることが簡単にできるのかとも思っているのですがどうでしょうか?
0328デフォルトの名無しさん
2008/05/06(火) 11:48:14角度で応用きかすなら角度に直した方が可読性が高いかと思って
思いついてたのはargとpolar
ごめんクォータニオンはよくわからない
0329デフォルトの名無しさん
2008/05/06(火) 11:51:03Platform SDKをインストールしていなければインストール。
ttp://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en
インストールしている場合、binとincludeとlibの優先順を確認。
ttp://forums.microsoft.com/MSDN-JA/rss.aspx?siteid=7&postID=1320640&forumID=188
0330デフォルトの名無しさん
2008/05/06(火) 14:59:47そうですか。
クリックしてみます。
ありがとうございました。
0331デフォルトの名無しさん
2008/05/06(火) 15:54:51AAとBBは単位化してるから、CCは二等辺三角形の底辺と同じなんだけど…
プロセスが必要で、結果が求まるだけじゃ駄目なのかね
0332デフォルトの名無しさん
2008/05/06(火) 16:04:46>>319だと角の2等分でしかうまくいかない
0333デフォルトの名無しさん
2008/05/06(火) 16:10:04そういや3次元だからargとpolarは使えないわw
>>327の通りです。
座標系変換の関数がなければ作ってみてもいいだろうし
0334デフォルトの名無しさん
2008/05/06(火) 16:38:58レスありがとうございます
ttp://forums.microsoft.com/MSDN-JA/rss.aspx?siteid=7&postID=1320640&forumID=188
このサイト通りにやったら>>322のエラー文は消えましたが新たにこのエラー文が出てきました
解決策を教えてくださいお願いします
LINK : fatal error LNK1104: ファイル 'd3d9.lib' を開くことができません。
0335デフォルトの名無しさん
2008/05/06(火) 17:16:41libの設定の先頭に↓は記述してる?
c:\program files\microsoft directx sdk (august 2007)\lib
0336デフォルトの名無しさん
2008/05/06(火) 17:19:26その条件なら
事前計算して、その結果をXファイルにフィードバックで良いかと
今あるか分らないが、サンプルにイルカのモデルがアニメーションするのがあって
(確か海底みたいな場所で…)
それが1Xファイルで、頂点モーフしてるフォーマットだったと思う
つまり、Xファイルは頂点モーフ出来るはずだよ
フォーマット調べて、任意のキーフレーム時の頂点情報を書き込めば
補間は確かスプラインとかリニアで種類がないけど、頂点モーフ出来るんじゃないかな
…メッシュの部分的なモーフをサポートしてるかは微妙
駄目なら駄目で、クロスシミュ適応部分だけ別ファイルにして、本体に自前で子供付けするとか
0337デフォルトの名無しさん
2008/05/06(火) 17:22:28レスありがとうございます
c:\program files\microsoft directx sdk (august 2007)\lib
これは一番上にあります
その下にPlatform SDKがあります
インクルードのdirectxも一番上にあります
その下にPlatform SDKがあります
0338デフォルトの名無しさん
2008/05/06(火) 17:36:54理解した、サンクス
>>327
ベクトル演算と3次元回転と内積でいけるような気がする
思いつきだけど
ベクトルA(どちらか)を、加算でも減算でもいいからXY成分を0にするベクトルAAを求め
AをZ成分のみにする( A(0,0,*)みたく )
そのベクトルAAをベクトルBにも適応( つまりベクトルAをZ軸とする座標へ変換 )
( 以降、その座標系の話で )
ベクトルBとXZ平面がなす角度を求め( ベクトルBからY成分をカットして作ったベクトルBBと内積で求める )
その角度でベクトルBをZ軸回転させ、ベクトルAとBをXZ平面にもっていく
ここで、XZ平面上でのベクトルAとBのなす角を求め、その角度を使って任意の比率角度を決めて
その角度で、ベクトルBを今度はY軸回転させたベクトルCを作る
最後にベクトルCを、ベクトルBBを作った逆の回転、座標変換した逆の計算をしてもどに戻せば…
スマートじゃないけど、こんな感じは?
0339デフォルトの名無しさん
2008/05/06(火) 17:44:40安定して使える関数が分からずに困っています。
現在ではどういった関数が使われているのでしょうか?
0340デフォルトの名無しさん
2008/05/06(火) 17:45:55スマートじゃなさすぎないか?w
それなら327の方法のままでいい気がするが
俺もやったことはないからツッコミだけですまんが、3Dシューティングのミサイルとかって毎フレーム相手の座標に向けて1度ずつ向きを変えるとか普通にやってそうだよな・・・
意外と方法確立されてないのか?
0341デフォルトの名無しさん
2008/05/06(火) 17:50:53自分でもスマートじゃないと思うが…
しかし、実際に327を行なう手順を記述しただけだと思うんだが
(オイラー法のみでクォータニオンを使わないで)
0342デフォルトの名無しさん
2008/05/06(火) 18:09:32それっておそらく
ttp://www.microsoft.com/japan/msdn/directx/welcome/dsmsdn/directx04162001.aspx
ですよね。確かに最初見たときかなり衝撃的でした。
でもこれは3つのXファイルのメッシュデータを、自前でモーフしてるっぽいです。
あと、DirectX9のサンプルの中にイルカのXファイルはあるのに、使用しているサンプルが見つからないのはなぜでしょうね・・・
0343デフォルトの名無しさん
2008/05/06(火) 18:41:43最後の「\x86」が足りなかったか。
c:\program files\microsoft directx sdk (august 2007)\lib\x86
このフォルダと、フォルダの中にd3d9.lib等一式が存在することを確認。
0344デフォルトの名無しさん
2008/05/06(火) 18:57:07レスありがとうございます
c:\program files\microsoft directx sdk (august 2007)\lib\x86
この設定にしたら>>334のエラー文はなくなりましたがまた>>322のエラー文が出てきました
解決策を教えてくださいお願いします
0345デフォルトの名無しさん
2008/05/06(火) 19:09:29#include <windows.h>呼んでないとか・・・w
0346デフォルトの名無しさん
2008/05/06(火) 19:16:56レスありがとうございます
もう少し詳しくお願いします
それだけだとちょっと分かりません
すみません
0347デフォルトの名無しさん
2008/05/06(火) 21:04:11その部分はもはやDirectXとは関係無いエラーだ
おそらく環境のインストールに失敗している
あとは汎用の初心者質問スレへ行った方がいい
これ以上だとスレ違いということで叩かれるよ
0348デフォルトの名無しさん
2008/05/06(火) 22:15:53あるモーションのキーフレーム数を調べたいんです。
(無駄にキーフレームの多すぎるモーションはリダクションをしたいんです)
LPD3DXANIMATIONSETのGetNumAnimationsがそれ用の関数だと思ったんですが
どうもボーン配列の数を返しているみたいで・・・。
どうすればキーフレーム数を調べる事が出来るんでしょうか?
0349デフォルトの名無しさん
2008/05/06(火) 22:40:12上手くいきません。ビルドには成功したのですが、実行してもすぐに終了してしまいます。
SDKはDirectX 9.0 Update summer 2003を使っています。
デバッグ内容も下記に記載します。分かる人、教えて下さい、宜しくお願いします。
0350デフォルトの名無しさん
2008/05/06(火) 22:42:52'C:\WINDOWS\system32\kernel32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\user32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\gdi32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\d3d9.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\d3d8thk.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\msvcrt.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\advapi32.dll' をロードしました、合致するシンボル情報は見つかりませんでした
0351デフォルトの名無しさん
2008/05/06(火) 22:44:37'C:\WINDOWS\system32\secur32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\version.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\winmm.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\dinput8.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\imm32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\lpk.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\usp10.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\uxtheme.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\Program Files\Trend Micro\Virus Buster 2007\TMAS_OE\TMAS_OEHook.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\MSCTF.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\Downloaded Program Files\CnsMin.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\shlwapi.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\imagehlp.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
0352デフォルトの名無しさん
2008/05/06(火) 22:45:100353デフォルトの名無しさん
2008/05/06(火) 22:45:13'C:\WINDOWS\system32\MSCTFIME.IME' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\ole32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\ATOK17W.IME' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\shell32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\ATOK17DE.DLL' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\ATOK17AE.DLL' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2982_x-ww_ac3f9c03\comctl32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\comctl32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\Program Files\Trend Micro\Virus Buster 2007\TMAS_OE\TMAS_OEHook.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\Program Files\Trend Micro\Virus Buster 2007\TMAS_OE\TMAS_OEHook.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\Program Files\Trend Micro\Virus Buster 2007\TMAS_OE\TMAS_OEHook.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\Program Files\Trend Micro\Virus Buster 2007\TMAS_OE\TMAS_OEHook.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\Program Files\Trend Micro\Virus Buster 2007\TMAS_OE\TMAS_OEHook.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\hid.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\setupapi.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\wintrust.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
0354デフォルトの名無しさん
2008/05/06(火) 22:45:54'C:\WINDOWS\system32\msasn1.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\ntmarta.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\wldap32.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\samlib.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
'C:\WINDOWS\system32\d3dxof.dll' をロードしました、合致するシンボル情報は見つかりませんでした。
スレッド 0xF2C 終了、終了コード 0 (0x0)。
プログラム 'H:\CLUB SEE\3Dチェス\my3dlib\Debug\my3dlib.exe' はコード 0 (0x0) で終了しました。
0355デフォルトの名無しさん
2008/05/06(火) 22:46:030356デフォルトの名無しさん
2008/05/06(火) 22:49:20VisualStudio使ってるなら、ブレークポイントで止めて一行ずつ実行してけカス
0357デフォルトの名無しさん
2008/05/06(火) 23:13:01Animation > Animations の下に最大50個現れると思うのですが、
Xファイルを開いただけだと何故か現れません。
Add Animationで追加オープンすると、最初に開いたXファイルのアニメーションと、追加で開いたXファイルのアニメーションが両方現れるのですが…
AddAnimationせずに、最初に開いたXファイルのアニメーションを表示する方法はありませんか?
0358デフォルトの名無しさん
2008/05/06(火) 23:25:14レスありがとうございます
インストール時にエラー文はでなかったんですけどねぇ・・・
0359デフォルトの名無しさん
2008/05/06(火) 23:28:450360デフォルトの名無しさん
2008/05/07(水) 00:37:22ループには問題なさそうですね。
>356の言う通りにしたら解決したわ、もっともブレークポイントなど使わずに
一行ずつ実行していったがな。ヒントありがとよカス。
0361デフォルトの名無しさん
2008/05/07(水) 02:13:27お前が死ねキモデブ
0362デフォルトの名無しさん
2008/05/07(水) 03:13:11池沼には優しくしてあげましょう
社会のゴミですが同じ人間です
0363デフォルトの名無しさん
2008/05/07(水) 04:22:37コンパイル中↑こういうのが出た後に下みたいに「シンボルが読み込まれていません。」が大量に出るんですけどどうしたら出なくなりますか?
'MuscatBoy.exe': 'C:\WINDOWS\system32\ntdll.dll' を読み込みました。シンボルが読み込まれていません。
'MuscatBoy.exe': 'C:\WINDOWS\system32\kernel32.dll' を読み込みました。シンボルが読み込まれていません。
'MuscatBoy.exe': 'C:\WINDOWS\system32\user32.dll' を読み込みました。シンボルが読み込まれていません。
'MuscatBoy.exe': 'C:\WINDOWS\system32\gdi32.dll' を読み込みました。シンボルが読み込まれていません。
0364デフォルトの名無しさん
2008/05/07(水) 05:07:450365デフォルトの名無しさん
2008/05/07(水) 06:06:15どうやったら解決したの?
原因は?
もう一回>>1を読んでね。
0366デフォルトの名無しさん
2008/05/07(水) 14:52:25自己解決の場合は誰に礼を言うの?w
0367デフォルトの名無しさん
2008/05/07(水) 14:54:12ヒントもらえたんだから感謝せぇよアホ
合致するシンボル情報は見つかりませんでしたってのは、
「デバッグ用にDLLを読み込んだが、特に必要な情報は無かった」
とかの意味だ。(厳密には違うかもしれんが)
それはデバッグ実行すると当たり前に出る内容であって、
そんな大量の、何の問題もない(かつDirectX無関係)の内容を貼り付けたら
荒らしとか言われても仕方無い。
0368デフォルトの名無しさん
2008/05/07(水) 15:49:17Xファイルを使ったモデルにマルチテクスチャを行ないたいのです
例えば地面に見た目用のテクスチャーと、バンプ用のテクスチャーを適用したいと思っています。
ただ、Xファイル系のサンプルを見る限りテクスチャーを2つ使うことは想定外のように見えました。
カスタムテンプレートという仕組み上、自前でそういうXファイルは作れそうですが、3DモデラーがそういうXファイルを吐いてくればれば(あまり)意味がありません。
マルチテクスチャなXファイルというのは一般的ではないのでしょうか?
LWを使ってXファイルを吐いているのですが、もし良い方法があれば教えていただけると幸いです
0369デフォルトの名無しさん
2008/05/07(水) 16:24:580370デフォルトの名無しさん
2008/05/07(水) 19:17:02DirectX使うのは思いついたゲームをちゃちゃっと作りたいからなのに、生産性下げてどうする・・・
0371デフォルトの名無しさん
2008/05/07(水) 20:28:33頂点ブレンディングはDirectXの機能で実装するのと
頂点シェーダで実装するのとでは、どちらが一般的ですか?
0372デフォルトの名無しさん
2008/05/07(水) 21:52:57調査統計をとるようなマーケティング能力や、
規格を立ち上げる権限をもった人間がいるわけでもないのに、
そんな不確定な情報を誰とも知らない人間に聞くその意図を明確にせよ。
ロボットのように命令が無ければパンツもはけないというのなら、
一般的かどうかを聞くより、最初からあらゆる事を指示してと言えばいい。
0373デフォルトの名無しさん
2008/05/07(水) 22:50:410374デフォルトの名無しさん
2008/05/07(水) 23:05:410375デフォルトの名無しさん
2008/05/07(水) 23:08:23ここの人たちはどっちでやってますか?と言う聞き方ならまだ良かったとか?
0376デフォルトの名無しさん
2008/05/07(水) 23:10:290377デフォルトの名無しさん
2008/05/07(水) 23:11:53あくまで古いマシンでも動かしたいなら頂点シェーダ使うのはきびしいんじゃね?
0378デフォルトの名無しさん
2008/05/07(水) 23:12:24俺はこうしてるってだけでもいいんじゃないの
0379デフォルトの名無しさん
2008/05/07(水) 23:18:02シェーダを利用するしないに限らず、ハードが対応していなければ、
DirectX側がエミュレーションするし、していなければハードが処理するだけで、
データを渡すのはDirectXが処理していると言える。
0380デフォルトの名無しさん
2008/05/07(水) 23:20:170381デフォルトの名無しさん
2008/05/07(水) 23:20:180382デフォルトの名無しさん
2008/05/07(水) 23:34:58なぜならそれしかなかったから
だが、いずれ消え行く技術をいまさらやってもだし
シェーダーでやっといたほうが後々まで使えるんでね?
0383291
2008/05/08(木) 00:04:46(解析して光明が見えてくればいいのですが・・・)
0384デフォルトの名無しさん
2008/05/08(木) 00:51:330385デフォルトの名無しさん
2008/05/08(木) 01:43:58だとしたら、一般的とかいうより色んな制約で変わってくるんじゃね?
・自前形式ではなくXファイルを使うなら、D3DXのスキンメッシュサンプルと
同じ方法が使える
・でもそのやり方だと行列パレット使うので関節のSLERPが出来ない(LERPになる)
そこらへんにこだわると、必然的に自前コードで広げることになる
・でも固定機能パイプラインの行列パレットは、最近のビデオカードではほとんど
ハードウェアサポートされてない(ソフトウェア頂点処理に頼ることになる?)
・頂点シェーダで計算する場合、シェーダ3.0までは定数レジスタが256しかないので
1ボーンあたり3レジスタ(SLERPなら2で足りるが)だとすると80ボーンしか使えない
俺がやった限りこういう事情が絡んで来たから、色々調べつつ
自分のやりたいことと照らし合わせてたら必然的にやり方は決まるよ。
0386デフォルトの名無しさん
2008/05/08(木) 09:04:59ID3DXEffect::SetTexture とか ID3DXEffect::SetFloat って
コスト高いんですかね?
ループの内側で使っちゃダメかな?
0387デフォルトの名無しさん
2008/05/08(木) 10:13:12頂点シェーダでやるのが良いと思うよ
まず、ソフトウェアエミュで頂点シェーダを行なってもそれほど重くないのが1つ。
ブレンド可能数が頂点シェーダのほうが融通利くのが1つ。
他の頂点シェーダエフェクトと一緒に利用できるのが1つ。
固定パイプラインでハードウェア処理の頂点ブレンドやるとバグるグラボが少なからずある
(ドライバアップデートすればなおるんだけど、ユーザーは必ずしも…ね)
だから私は頂点シェーダ+ソフトウェアエミュ派
0388デフォルトの名無しさん
2008/05/08(木) 10:22:30横槍で質問
・頂点シェーダで計算する場合、シェーダ3.0までは定数レジスタが256しかないので
1ボーンあたり3レジスタ(SLERPなら2で足りるが)だとすると80ボーンしか使えない
これって、1頂点へ影響するボーンが最大80って意味?
それともモデル全体を通して80ボーンが限界って意味?
0389デフォルトの名無しさん
2008/05/08(木) 12:41:170390デフォルトの名無しさん
2008/05/08(木) 13:11:36D3DXMesh関係だと其処を考慮してDrawPrimitiveを何回かに分けて256本までのボーンに対応できるようになってるだろ。
0391385
2008/05/08(木) 17:00:17>>390みたいにすれば確かに制限は無くなる。
自分はやってないからわからんけど、
事前に頂点のリンクと面の接続を考慮してメッシュを分割しておけばいいかと。
0392デフォルトの名無しさん
2008/05/08(木) 17:18:49D3DXMeshが自動で何かやってくれるのは知らない
0393デフォルトの名無しさん
2008/05/08(木) 17:25:41D3Dのサンプル様様だなぁ…
ちゃんと26ボーン毎に分割して、正常に表示できるように調整されてるっぽ
(サンプルのSkinnedMesh)
0394デフォルトの名無しさん
2008/05/08(木) 19:56:39Direct3D9: (ERROR) : [0] : Address 04F1E4CB
Direct3D9: (ERROR) : [1] : Address 04F1E59B
Direct3D9: (ERROR) : [2] : Address 04F1E440
Direct3D9: (ERROR) : [3] : Address 0501CCA5
Direct3D9: (ERROR) : [4] : Address 05023345
Direct3D9: (ERROR) : [5] : Address 05002898
Direct3D9: (ERROR) : [6] : Address 05016E13
Direct3D9: (ERROR) : [7] : Address 00486437
Direct3D9: (ERROR) : [8] : Address 00474CBE
Direct3D9: (ERROR) : [9] : Address 004770CA
Direct3D9: (ERROR) : [10] : Address 7C23ABCC
Direct3D9: (ERROR) : [11] : Address 7C23B209
Direct3D9: (ERROR) : [12] : Address 7C235CC1
Direct3D9: (ERROR) : [13] : Address 7C22FF89
Direct3D9: (ERROR) : [14] : Address 7C22F067
Direct3D9: (ERROR) : [15] : Address 7C22EFDE
が複数行
みたいなデバッグログ(OutputDebugStringで書けるやつ)でるんだけど
何が悪いんですか?
あと、m_pd3dDevice->GetRenderTargetで取得したやつは、
Releaseすべきですか?
0395デフォルトの名無しさん
2008/05/08(木) 20:00:30なんでもかんでもすべての頂点に影響与えるとかギャグですか?w>某会社の自作モデリングツール
捨 て ち ま え よ ! (中小害虫社員(28歳♂))
0396デフォルトの名無しさん
2008/05/08(木) 20:01:03わかります。
0397デフォルトの名無しさん
2008/05/08(木) 20:14:450398デフォルトの名無しさん
2008/05/08(木) 20:16:24ありがとうございます
とりあえず頂点シェーダでやってみます
0399デフォルトの名無しさん
2008/05/08(木) 21:18:32DrawPrimitiveが減らせるので逆に高速化することが可能な場合も多々。
たとえばロボットみたいなものをパーツ毎にDPするよりは、ウェイト仕込んで
ボーンでドーンと1回のDPで描く方が実は速い。
0400デフォルトの名無しさん
2008/05/09(金) 00:29:29せめてそのウンコモデリングソフトが何か書いてくれないと
0401デフォルトの名無しさん
2008/05/09(金) 04:47:40言い訳にしか聞こえないw
0402デフォルトの名無しさん
2008/05/09(金) 06:45:56頑張ってみました的臭いするやんか?
0403デフォルトの名無しさん
2008/05/09(金) 10:28:23昨今のグラフィックカードでは常識
0404デフォルトの名無しさん
2008/05/09(金) 14:53:11グラフィックカードあんまり関係なくね?
0405デフォルトの名無しさん
2008/05/09(金) 15:13:41そのマトリックスをWorldとして頂点シェーダーで計算するか、
スキン用のマトリックスとして頂点シェーダーで計算するかの違いだろ。
ボーンの場合Offset用の演算が加わるが、
DrawPrimtiveのコールはマトリックスの乗算とは比較にならないくらい重い。
スキンの処理までCPUでやるっつーなら話は別だけどDirectX7でやってるわけじゃないっしょ。
0406デフォルトの名無しさん
2008/05/09(金) 15:29:43ttp://www.twin-tail.jp/contents/vsdx8/d3d/011/index.htm
0407デフォルトの名無しさん
2008/05/09(金) 16:08:51DirectX7世代でやるならそうなる。
それ以上ならもっとよい方法が存在する。
0408デフォルトの名無しさん
2008/05/09(金) 20:43:33よかったら輪郭線抽出について情報いただけませんか
Zバッファの差を見る方法や、マテリアル境界を見る方法、モデルをちょっと太らせて裏返して黒描画する方法など色々調べましたが
406のURL先ほどまで「正確」で「自在な太さ」にできる術が見つかりませんでした
0409デフォルトの名無しさん
2008/05/09(金) 21:35:320410デフォルトの名無しさん
2008/05/10(土) 02:49:05希望をこめて絵を修正してるって書いてあるやん
0411デフォルトの名無しさん
2008/05/10(土) 03:21:23そこまで知りたいなら金だせよ
0412デフォルトの名無しさん
2008/05/10(土) 10:46:29自分で答え書いてるじゃん。
深度バッファやマテリアルの境界を輪郭検出のアルゴリズムで線を引けばいい。
その場合1ドットのラインしか引けないわけだが、
1ドットのラインを別のバッファに書いてそのバッファを上下左右にずらして
もう1度書くと太くなるというのはわかるかい?
0413デフォルトの名無しさん
2008/05/10(土) 21:09:08もちろんその手の「太くする」方法はわかりますが、
深度バッファ法はちょっとひいったアゴのような、深度差が浅い部分に輪郭線が出ません
マテリアル法でも同様です。
モデルをちょっと太らせて裏返す法や、406のURL先のものほど「正確な」ものはなかなかありません。
0414デフォルトの名無しさん
2008/05/10(土) 21:42:400415デフォルトの名無しさん
2008/05/10(土) 21:57:07確かに>>406のものが
最も正確でキレイに作れそうなので、
>>406を主にすべきだな。
○ジオメトリ操作は、なるべくGPUでやりたい。
1パス目:D3DFILL_SOLIDで描画
2パス目:D3DFILL_WIREFRAMEで描画
この2パス目を、先のアルゴリズムで
輪郭線のみ描かれるようにすればいいんじゃないの。
○線の太さは任意に変更したい。
これは、2パス目を>>412の方法で太くすればいいんじゃないの。
0416デフォルトの名無しさん
2008/05/10(土) 22:00:03>
>この2パス目を、先のアルゴリズムで
>輪郭線のみ描かれるようにすればいいんじゃないの。
書いてから気付いたけど、これはちょっと難しいかなぁ
0417デフォルトの名無しさん
2008/05/10(土) 22:03:56頂点シェーダで線を引くことはできないと思いますけど…
>>415
その方法ですと、やはりアゴなどに輪郭線を出すことができませんよね。
0418デフォルトの名無しさん
2008/05/10(土) 22:05:38GPUを使ったものは、やはり速さ優先で作られてるし
0419デフォルトの名無しさん
2008/05/10(土) 22:07:330420デフォルトの名無しさん
2008/05/10(土) 23:26:00結局のところ割り増しモデルを裏返し手法に落ちついちゃうんだよなぁ。
精度は落ちるけど、押し出す頂点位置を距離によらず一定になるように頂点シェーダで
調整すればそれなりの見栄えにはなる。
0421デフォルトの名無しさん
2008/05/10(土) 23:31:03I3DXLine使えば太さは楽勝じゃね?
頂点データをもとに自前で線引いてるんだから
0422デフォルトの名無しさん
2008/05/10(土) 23:46:00使ったことないので知らんが、あれでは太くなったら普通に線の一部が元モデルにめり込むか、
Z値を考慮せずに描画されるならなおさらこの手法には使えないのでは?
一ドットの線ならZバイアス使わんでも自前で射影行列なり弄れば>>406の「理想」の線は描画できるが、
それ以上の太さになるとポリラインで表現することになり、そうなればどこまで線のZ値を前に押し出せば
元のモデルと重ならずに描画できるかは簡単には見積もれないはずだ。
0423デフォルトの名無しさん
2008/05/11(日) 09:25:17ああ、ごめん。モデル側にめり込むのはご法度って考えだったのね。
俺は太さ3までだったら、モデルに1ドットめり込むだけだから別にいいやって思ってたもんで
>一ドットの線ならZバイアス使わんでも自前で射影行列なり弄れば>>406の「理想」の線は描画できるが、
よかったらこのあたり、詳しく解説してくれないか
0424デフォルトの名無しさん
2008/05/11(日) 17:38:110425デフォルトの名無しさん
2008/05/11(日) 21:26:54D3DFILL_WIREFRAMEにしてもD3DFILL_SOLIDと描画時間が一緒だったんだが…
何かの間違いだろうか?
PixelShaderの呼び出し回数が段違いだと思うのに…
0426デフォルトの名無しさん
2008/05/11(日) 21:46:10たいした量描画してるわけじゃないなら大抵CPUがネック。
0427デフォルトの名無しさん
2008/05/11(日) 21:51:10今、PixelShaderを使う描画を学んでおり、自分のメインPCでは正しく動作しました。
試しにと、PixelShaderに対応していない(1.0にすら対応していない)古いサブマシンに持っていって動かしたところ、正しく動いてしまいました。
ここで疑問なのですが、何故正しく動いてしまったのでしょうか?
どうやら
PixelShader = compile ps_1_1 PS();
と書いた部分が、メインPCだと正しく適用されるが、サブPCだと無視され固定パイプライン(という呼び方でOK?)のPixelShaderにより描画されているっぽいです。
これはHLSLの仕様なのでしょうか?
てっきりHLSLのコンパイルエラーとなり、fxファイルのロードに失敗するかとふんでいたのですが…
0428デフォルトの名無しさん
2008/05/11(日) 21:53:26>ここで疑問なのですが、何故正しく動いてしまったのでしょうか?
の時点では、書いていたPixelShaderが固定パイプラインのそれと同等だったため「正しく動いているように見えた」のです。
ためしにPS()内で必ず「黒」を返すようにしたところ
・メインPCでは正しく黒を
・サブPCでは通常通りの描画を
したため「サブPCではPS()が無視され、固定バイプラインのPixelShaderが呼ばれている」と判断したのです。
0429デフォルトの名無しさん
2008/05/11(日) 21:55:50どうやらボーンによる頂点変換(ソフトウェア処理)がボトルネックだったっぽ
すまん
0430デフォルトの名無しさん
2008/05/11(日) 22:36:13PS2.0世代のGPUのくせに
PS3.0コンパイルのShaderが
HWで動いているな。
多分これは、PS2.0に対応とか3.0に対応ではなく
2.0、3.0で追加された機能に対応しているという話だろう。
ただアンタの言うPSの代わりに固定機能が動くというのはないな。
勘違いだろ。
0431デフォルトの名無しさん
2008/05/11(日) 23:16:43対応してないPCじゃコンパイルはできないよね
あとピクセルシェーダーの動作って
コンパイルしたマシン(のGPU?)に依存してる?
家のPCでテストした実行ファイルを仕事場のPCで動かすと
家のPCと同じ動作するけど
コンパイルしなおすと動作が変わったりする
0432デフォルトの名無しさん
2008/05/11(日) 23:29:40お返事ありがとうございます。
>ただアンタの言うPSの代わりに固定機能が動くというのはないな。
うーん、どういじっても
PixelShader = compile ps_1_1 PS();
の PS()の中身は無視されてしまいます。
float4 f = {1.0f, 1.0f, 1.0f, 1.0f}
return f;
という単純なPS()の中身ですら、メインPCだと正しく真っ白になり、
サブPCだとPixelShader = compile ps_1_1 PS();の宣言がないがごとく振舞います。
エフェクトは
D3DXCreateEffectFromFile
でロードしています。
0433デフォルトの名無しさん
2008/05/11(日) 23:34:51PS非対応環境なんてもはや持ってないから、アドバイスできん。すまん
0434デフォルトの名無しさん
2008/05/12(月) 03:39:420435デフォルトの名無しさん
2008/05/12(月) 15:10:21ただ、ReleaseビルドのEXEファイル生実行ですので、次はサブPCのVC6.0上でDebug実行し、D3DXのログ出力を見てみます。
家に帰るのは夜です
正直質問した時は、あっさり
「PSが無い環境では、compile ps_1_1 PS(); って記述は無視されて、固定パイプラインとして実行されるよ」
とかくるかと思っていたのですが…
0436デフォルトの名無しさん
2008/05/12(月) 22:44:35やはり特にエラーメッセージもなく、単にスルーされているだけっぽい動作です。
どなたか心当たりあるかたいらっしゃいませんかー?
仮説
PixelShader = compile ps_1_1 PS();
などは、動作環境のサポートバージョンが、コンパイル指定したバージョン未満の場合は
(エラーを出さず)変わりに固定パイプラインを呼び出す
0437デフォルトの名無しさん
2008/05/12(月) 23:55:38はじめにサポートバージョンってわからないっけ?CAPSで
つか、何がしたいんだっけ?
0438デフォルトの名無しさん
2008/05/13(火) 00:35:14それ固定昨日と頂点定義が一致してないとランタイムで死ぬだろ
0439デフォルトの名無しさん
2008/05/13(火) 09:47:00やりたいことというより、こういう動作をするものなの?という疑問を解決するのが目的ですね。
CAPSでシェーダのバージョンはとれるので、意図しない動作を起こさないようにバージョンではじくことは可能ですね。
>>438
ちょっといまいちわかりませんが、頂点シェーダでの出力定義が「(固定パイプライン的に)普通」じゃないとランタイムエラーになるということでしょうか?
そもそも頂点シェーダでは「普通」じゃない出力はできないと思っていましたが違うのでしょうか?
(だから計算結果とかを、使ってないテクスチャーUVの中に入れるとかでごまかして渡す)
とりあえず、そんなことをしている場合は描画がしっちゃかめっちゃかになりそうですね。
0440788
2008/05/13(火) 17:48:16UPdate Summer2003(v9.0b)では,CD3DApplicationという汎用クラスが
あったのに最新バージョンではなくなっています.
その代わり,DXUTというフレームワークがふんだんに使われています.
directXのバージョンによってプログラミングテクニックがころころ変化して
いるように見えるんですけど(1〜2年前の参考書が最新バージョンと大きく
食い違っている),いったいどのバージョンを勉強したらお得なんでしょうか?
小生,これからdirectXを勉強しようというものです.
やっぱり,最新バージョンでSDKを使ってシコシコ書くのがベストでしょうか?
MFCのdaialogベースでdirectxを使ってみたいのですが.
あと,DXUTを解説している本やサイト(英語でも可)があったら教えてください.
0441デフォルトの名無しさん
2008/05/13(火) 18:29:35これとかか?
ただし、DXUTの仕様はSDKのバージョンごとに変わってたりするんで
そのまま使えるかどうかはしらね
0442デフォルトの名無しさん
2008/05/13(火) 19:48:34ありがとうございます。早速、購入してみます。
0443デフォルトの名無しさん
2008/05/13(火) 20:05:47遅いの?
0444デフォルトの名無しさん
2008/05/13(火) 23:29:46例えば、自分が固定パイプラインと同じ機能をシェーダ使って実装するとしてどうなる?って話じゃねぇの
0445デフォルトの名無しさん
2008/05/14(水) 23:19:22D3DFMT_R16FやD3DFMT_A8のように4要素のないテクスチャで
float4でtex2Dを取得した場合zやwはどんな値になるのでしょうか?
不定なのか、0が入るのか、前の値が保持されたままなのか、など教えていただけると助かります。
0446デフォルトの名無しさん
2008/05/15(木) 00:14:53float4(0, 0, 0, 1)に対して渡された要素が上書きされるイメージ。
0447デフォルトの名無しさん
2008/05/15(木) 00:28:16ありがとうございます。
ドキュメントの探し方が甘かったようです。申し訳ありません。
0448デフォルトの名無しさん
2008/05/15(木) 18:07:18のexeを実行するとちゃんと動くんだけど、ソースをVC++2008で、コンパイルするとうまく動かない。
どうも、lpDIJoyDev->QueryInterface でfalseが返ってるみたいだけど、どこ修正すればよい?
0449デフォルトの名無しさん
2008/05/15(木) 19:39:30PCに入ってるSDKのバージョンがそのソースの想定したSDKの
バージョンとあってないとコンパイルできないよ
0450デフォルトの名無しさん
2008/05/15(木) 20:46:380451デフォルトの名無しさん
2008/05/15(木) 20:50:070452デフォルトの名無しさん
2008/05/16(金) 12:45:26exeがなかったので違いがわからないけどソースからビルドしたやつも普通に動作してるよ
挙動が違うとは具体的に何が違うの
0453デフォルトの名無しさん
2008/05/16(金) 16:21:26Radeon 9600 series AGP 128MB(ドライバは ttp://ati.amd.com/support/drivers/2k/radeonx-2k.html )の環境にて、かなりおかしな挙動をしています。(OSはWindows2000)
何か情報ありませんでしょうか。
なお、その他の環境3個所くらいで試してみましたが、特に問題は見られませんでした。
・テクスチャーの表示がおかしい
256x256サイズのテクスチャーを10枚程度読み込んだあたりから、一部のテクスチャーの表示がおかしくなります。
テクスチャはD3DXCreateTextureFromFileで読んでいます。
テクスチャーが張られているモデルは、Xファイルで読み込んだ板ポリや、立方体などの単純なものです。
テクスチャーが張られているところが全体的にRGB(0,255,0)な感じに色になり、ほんのちょっとだけ元のテクスチャーの名残が見られるような、なんともバグった感じになります。
読み込むテクスチャーの数を減らすと、さっきバグって表示されていたものも綺麗に表示されます。
描画はプログラマブルシェーダを使わず、固定機能のものです。
・固定シェーダの挙動がおかしい
pDev->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_CURRENT);
pDev->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_TEXTURE);
pDev->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
pDev->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_CURRENT);
pDev->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_TEXTURE);
pDev->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE);
と設定しているのですが、
pDev->SetTexture(0, NULL);
pDev->SetTexture(1, pTexture1);
としたとき、pTexture1の色が乗算されません。
pDev->SetTexture(0, pTexture0);
pDev->SetTexture(1, pTexture1);
ではきちんと両方の色が反映されるようです。
Radeon 9600は比較的新しいボードですし、むしろ超古いGeForce2MX400とかではまともに表示されます。何か原因が思い当たる方いらっしゃいますでしょうか。
0454デフォルトの名無しさん
2008/05/16(金) 16:37:560455デフォルトの名無しさん
2008/05/16(金) 16:52:150456デフォルトの名無しさん
2008/05/16(金) 17:01:16どこか、>>453の中に使い方がおかしいことを示す情報があったでしょうか?
ご教示願えればありがたいです
0457デフォルトの名無しさん
2008/05/16(金) 17:14:540458デフォルトの名無しさん
2008/05/16(金) 17:43:47pIDirect3D9->CreateDevice(adapter, D3DDEVTYPE_REF, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING | D3DCREATE_MULTITHREADED, ¶m, &pDevice);
REFモードならバグりようがあるまい。と思って試してみようとしたのですが、
RADEON環境だとこの生成に失敗しました。
…RADEONというものは、思いのほかDirect3Dと相性が悪いのでしょうか?
0459デフォルトの名無しさん
2008/05/16(金) 19:18:00SetTexture(0, NULL)してるのに、ステージ0でテクスチャ参照したら駄目だろう。
When a texture stage has D3DTSS_COLORARG1 equal to D3DTA_TEXTURE and
the texture pointer for the stage is NULL, this stage and all stages after it are not processed.
ARG1にD3DTA_TEXTUREをしておいて、テクスチャにNULLを設定するとそのステージ
以降が無効になる仕様だが、ARG2については何も書かれていないので未定義かも。
0460デフォルトの名無しさん
2008/05/16(金) 19:27:31なるほど。ARG2がテクスチャ、かつNULLなときに後のテクスチャを参照してくれていたのは
GeForceが「たまたま」そう定義していたからであったわけですね。
気をつけます。
ちなみにそこに気をつけるよう改良してみましたが、1番目の「・テクスチャーの表示がおかしい」は相変わらずです。
0461デフォルトの名無しさん
2008/05/16(金) 20:04:30それもなんかおかしいんじゃねぇの?w
基本的にnVidiaのボードは確かに未定義や
おかしな部分を変な風に救っちゃう設定だからRADEONで開発したほうがいいぜ
俺も開発のときにnVidiaのボード使ってて苦労した
0462デフォルトの名無しさん
2008/05/16(金) 20:16:19知らなかったw
0463デフォルトの名無しさん
2008/05/16(金) 20:24:29nVidiaとその他一部のボードでは動くんだけど
それ以外ではうんともすんとも言わないとかいう状況がありえる恐怖
(納期まで一週間とかいう状況ではじめてRADEONで動かして画面真っ黒になったときは血の気が引いたw)
HLSL使うようになってからそういう苦労は一応消えた
固定シェーダ止めるとこの辺はグッと楽になる
0464デフォルトの名無しさん
2008/05/16(金) 20:27:22いやあああああああ
0465デフォルトの名無しさん
2008/05/16(金) 21:05:12なるほど、とりあえずRADEONの購入は検討してみます
>>463
それは血の気が引きそうですね
私も公開するゲームを作っているので、なるべくRADEONにも対応したいところです
全てHLSLで書くのも検討していますが、「・テクスチャーの表示がおかしい」の件は、HLSLを使った描画の部分でも発症しているので困ったものです…
0466デフォルトの名無しさん
2008/05/16(金) 21:47:12シェーダーの勉強を始めたほうがいいのでしょうか?
0467デフォルトの名無しさん
2008/05/16(金) 21:55:47VertexShaderは最低でもソフトウェアエミュレートができるし、
PixelShaderにしてももう対応していないグラボなんて存在しないと思っていい。
でもオンボは対応してねーんだよなぁ('A`)
0468466
2008/05/16(金) 21:58:34固定機能はさすがにいいですかね。
0469466
2008/05/16(金) 21:59:390470デフォルトの名無しさん
2008/05/16(金) 22:03:59もしくはこの世から全てのオンボードPCを破壊してくださいマジでもう
0471デフォルトの名無しさん
2008/05/16(金) 22:15:54vc++2008ではまんまではコンパイルとおらなかったので、DInput.cppの
63行目 ret = DirectInput8Create(hinst,DIRECTINPUT_VERSION,IID_IDirectInput8,(void**)&lpDInput,NULL);
115行目 ret=lpDInput->EnumDevices(DI8DEVCLASS_GAMECTRL,InitJoystickInput,lpDInput,DIEDFL_ATTACHEDONLY);
に修正してコンパイルとおしたんだけど、126行目がfalseを返してくるの。
0472453
2008/05/16(金) 22:29:39>・固定シェーダの挙動がおかしい
この件ですが、RADEON上だけでなく、GF上でもREFモードだとうまく表示できませんでした。
>>459さんのアドバイスがクリーンヒットだったようで、気をつけながら直したところ、REFでも綺麗に表示されるようになりました。
RADEON上でpTexture1が乗算されるようになったようです。
(ただし、pTexuter1自体がバグっているため、乗算はされたものの、おかしなテクスチャが乗算されています)
今後はREFモードでちょくちょくチェックしながらやっていきます。
現在は、RADEON使いと連絡がとれなくなってしまったため、
「・テクスチャーの表示がおかしい」については後日また調査して、報告します。
どうしても治らない場合はまた相談させていただくかと思いますが、その時はよろしくお願いします。
0473デフォルトの名無しさん
2008/05/16(金) 22:36:29ちゃんと報告してくれる質問者は歓迎だぜ
0474デフォルトの名無しさん
2008/05/16(金) 23:08:47ラデオン買ってくる
0475デフォルトの名無しさん
2008/05/17(土) 07:41:55DIrectX 7以下じゃないと動かないよ
8にするなら全部書き換えろ
0476デフォルトの名無しさん
2008/05/17(土) 07:49:36Dinput.hに
#define DIRECTINPUT_VERSION 0x0700
を追加
0477デフォルトの名無しさん
2008/05/17(土) 20:09:42お兄さんたちはどうしてるのかな?
0478デフォルトの名無しさん
2008/05/17(土) 20:12:54僕の作ったソフトも怒られるから気になってたけど。。。
0479デフォルトの名無しさん
2008/05/18(日) 16:32:53友人にテストしてもらったら
「不正な変更とか出る ウイルスだろこれ?」
とか言われたお
ネットワーク対応ゲームでも作ろうかと思うんだが、
DirectPlay使うのとWinSock使うのとどっちがいいんだろ
DirectPlyaはWinSockに比べるとダメだという話をよく聞くけど
どこがどうだめだかよくわかんね
手軽に実装するならDirectPlayのほうが楽そうにも感じる
そこら辺詳しい人いませんか?
0480デフォルトの名無しさん
2008/05/18(日) 17:25:02そういった制限があるから、やっぱ「お手軽通信」なイメージはある。
Winsockは、アプリケーションが使うTCP/IPの基本かつ全てだから
DirectPlayに出来てWinsockに出来ないことはない。
そういう意味だとオモ<Winsockに比べるとダメ
本当にTCPが使えないのなら、オンラインRPGには無理なだ。
0481デフォルトの名無しさん
2008/05/18(日) 18:00:21D3DXQuaternionRotationYawPitchRoll(&q,マウスのX変移,マウスのY変移,0);
とやってそれっぽい動きにはなってるんですが、どうもメタセコとかと操作感が違うんですよね。
ドラッグ開始時にXYの回転軸を作って、それに対する回転てやりたいんですが
何使ったらいいですか?
0482デフォルトの名無しさん
2008/05/18(日) 18:11:10RotationYawPitchRollは角度が非常に小さければ任意軸周りの回転に
近い動きをするが、本来は全く違うもの。
マウスの移動量とZ軸で外積を取って、その軸周りの回転を使う。
0483デフォルトの名無しさん
2008/05/18(日) 18:20:19親切にありがとうございます。意味はなんとなく分かるんですが、頭がついて来れなくて・・・
で、それはZ回転が起こらない場合にのみ使えるんですよね?多分(今回はそれでもいいですが)
0484デフォルトの名無しさん
2008/05/18(日) 19:57:07色んな通信に対応しすぎてて、初期化が遅いのが一番の不満かな<Play
といってもPlay使ってたのはDirectX7の頃だから、改善されてるかもしれんが。
WinSockなら全ての通信を自分で把握できるのが強み。
0485デフォルトの名無しさん
2008/05/18(日) 20:27:13DirectPlayは廃止されて久しい。
WinSockを叩くのが一番無難で楽しい。
0486デフォルトの名無しさん
2008/05/18(日) 20:32:54そこらへんも全部自分で実装しなきゃならないんだよね?
WinSockのネットゲームで使えそうなお手ごろサンプルがあるといいんだけど
0487デフォルトの名無しさん
2008/05/19(月) 03:08:12DirectXを使って2Dゲームを作ってみようと思ってMSDNのリファレンスを見ていたところ、
CreateVertexBuffer()で頂点バッファを作ってLockとUnLockの中で頂点を処理していました。
ですが、別のホームページにはこれらを使わずに描画してるページもありました。
2Dの場合はCreateVertexBufferを使わずに描画したほうがいいのでしょうか?
それともCreateVertexBufferを使わなくても描画出来るという解釈でいいのでしょうか?
0488デフォルトの名無しさん
2008/05/19(月) 03:22:35ただ、
・頂点バッファをビデオメモリ上、AGPメモリ上に作ると描画が速い
・が、そういう場所に作った頂点バッファをLockするのは重い(ビデオカードの処理を止めるから)
・システムメモリ上に作った頂点バッファのロックなら遅くない(多分。)が、
それは頂点バッファ作らない方法と同じこと。ビデオカードから遠いので描画は遅い
毎フレーム書き換えるような頂点配列なら、システムメモリに置くか
頂点バッファ使わずにやるのがのがいいんじゃないかと。
検証とかしたことないので間違ってたら指摘ヨロ
0489デフォルトの名無しさん
2008/05/19(月) 03:26:370491デフォルトの名無しさん
2008/05/19(月) 10:26:00追加⇒DYNAMICとDISCARDフラグを組み合わせると描画もLockも速いがメモリを食う。
0492デフォルトの名無しさん
2008/05/19(月) 13:56:52なるほど、チラシの裏ですね
よくわかりました
0493472
2008/05/19(月) 19:22:45>>459さんのアドバイスによる修正のおかげか、RADEON上でも綺麗に表示されたそうです。
ありがとうございました。
D3DTSS_COLORARG1 にTEXTURE
D3DTSS_COLORARG2 にCURRENT
なるべくこうするのが吉。というわけですね。
大抵の初心者サイトがこうしている一方、時々は逆も見かけるようです。
他の人が同じ失敗しませんように…。
0494デフォルトの名無しさん
2008/05/19(月) 19:35:23SDKをもう一回全部読み直したほうがいいかもなー・・・
0495デフォルトの名無しさん
2008/05/19(月) 20:06:53キャラが地面に着地した際、演出として着地点のまわりに衝撃波を立てたいと思っています
例えるなら、牛乳の入ったコップに牛乳を一滴おとした時にできる、王冠のようなものです
こういう演出はどのようにして実装するのが良いでしょうか?
今まではボーンアニメまでしかやったことがないのですが、モーフィングという技術のほうがより良さそうな気がしています
0496デフォルトの名無しさん
2008/05/19(月) 23:56:15スケーリングで十分
0497487
2008/05/20(火) 00:09:01調べてみたら動的に確保したメモリを静的に確保したように見せるとのことだったんですが、
これはVRAMとAGPメモリに確保して同期させるという解釈でいいのでしょうか?
0499デフォルトの名無しさん
2008/05/20(火) 01:53:49昔はそうなんだが、現在のVGAだと諸々の理由でシステムメモリを介したコピーを
行っているものが多いので、動的な頂点バッファはほとんど意味を成さなくなっている。
経験で言うならシステムメモリよりも頂点バッファを使う方がパフォーマンスが高くなる
傾向があるのは確かだが、大半は大した性能差があるわけでもないし、
そもそも適切に扱うためのフラグ設定が頂点バッファはわかりにくいので、
個人的にはシステムメモリ(DrawIndexPrimitiveUP等)で実装することをお勧めする。
2Dスプライトの実装なんぞDrawPrimitiveのバッチ処理さえしておけば
それ以上は深く考えんでも良いと思うぞ。
0500デフォルトの名無しさん
2008/05/20(火) 08:28:590501デフォルトの名無しさん
2008/05/20(火) 12:44:390502デフォルトの名無しさん
2008/05/20(火) 19:02:00つーのは想定している状況によりけりって感じだから
なんでも使える汎用ルーチンなんて作ろうと考えないで状況に応じて対処したほ
0503487
2008/05/20(火) 20:53:382Dの処理にそこまで考える必要はないけど、
詳しく知りたい場合は自分のゲームで実装して調べたほうが早い、とのことなので、
時間に余裕があるときに調べてみたいと思います。
色々ありがとうございます!
0504デフォルトの名無しさん
2008/05/20(火) 21:17:010505デフォルトの名無しさん
2008/05/20(火) 21:49:34UPnP対応してるDirectPlayつかうことにしたぽ
0506デフォルトの名無しさん
2008/05/20(火) 22:42:130507デフォルトの名無しさん
2008/05/20(火) 22:55:18http://www.bosuke.mine.nu/neta/upnp.shtml
これためしてみたけどルータがふるくてだめだった
しかしDirectPlayだとポート開放しなくても通信できる
もっといい方法があるならおしえてくださいませ
0508デフォルトの名無しさん
2008/05/20(火) 22:56:06・D3DPOOL_DEFAULTのテクスチャ解放
・D3DXFONTのOnLostDevice()呼び出し この2つは順番適当
・D3DXSpriteのOnLostDevice()呼び出し
pDevice -> Reset(&Param);
・D3DXSpriteのOnResetDevice()呼び出し
・D3DPOOL_DEFAULTのテクスチャ確保
・D3DXFONTのOnResetDevice()呼び出し この2つは順番適当
・レンダーステートの回復
てやってるんだけど、画面真っ暗です。これ以外に何やるんでしょう?
あと順番に決まりはあるんでしょうか?
0509デフォルトの名無しさん
2008/05/20(火) 23:03:40確保したリソースの解放をちゃんとしましょう。
Debug Runtimeでエラーメッセージの確認をしましょう。
0510デフォルトの名無しさん
2008/05/21(水) 20:30:26ひょっとして upnp.h とか使うの?
ネット探しても具体的なやりかたが乗ってるところがないのが困る
0511デフォルトの名無しさん
2008/05/21(水) 23:15:17ttp://www.bosuke.mine.nu/neta/upnp.shtml
おもくそ有名なサイトがあるわけで
ぐぐろうよ
0512デフォルトの名無しさん
2008/05/22(木) 00:12:190513デフォルトの名無しさん
2008/05/22(木) 02:01:13対になるものは何でしょうか?
0514デフォルトの名無しさん
2008/05/22(木) 16:48:56ポリゴン2個で四角形になるお
0516デフォルトの名無しさん
2008/05/22(木) 16:56:140517デフォルトの名無しさん
2008/05/22(木) 17:25:02「頂点ベースの描画」なんて聞いたことがない
0518デフォルトの名無しさん
2008/05/22(木) 17:28:55>"頂点ベースの描画"の検索結果 1 件中 1 - 1 件目 (0.14 秒)
>"頂点ベース" の検索結果 約 148 件中 1 - 10 件目 (0.24 秒)
0519デフォルトの名無しさん
2008/05/22(木) 17:59:10そのくらいしかない気がするんだが。
0520デフォルトの名無しさん
2008/05/22(木) 19:50:11どこで頂点ベースって聞いたんだよ?
>そうでない
DirectDrawのスプライト描画のことじゃね?
さいきんのゆとりはDirectX7以前を知らんのか
0521デフォルトの名無しさん
2008/05/22(木) 19:50:440522デフォルトの名無しさん
2008/05/22(木) 22:30:570523デフォルトの名無しさん
2008/05/22(木) 22:39:14イメージベースド
0524508
2008/05/22(木) 23:22:56ステンシルの解放と確保も付けたんですが、まだPresent(0,0,0,0)がD3DERR_DEVICELOSTを
出してきます。何が足りないんでしょうかT-T
0525デフォルトの名無しさん
2008/05/22(木) 23:27:270526デフォルトの名無しさん
2008/05/22(木) 23:29:530527デフォルトの名無しさん
2008/05/22(木) 23:32:30StateBlockとかもだな。
EffecとかFontとかSpriteも中でStateBlock作ってるからロスト対策が要るけどなー
0528508
2008/05/22(木) 23:45:28はないんですが・・・何か他に暗黙的なものがあったら教えていただけないでしょうか?
0529デフォルトの名無しさん
2008/05/22(木) 23:52:570530デフォルトの名無しさん
2008/05/22(木) 23:53:040531デフォルトの名無しさん
2008/05/23(金) 00:16:030532デフォルトの名無しさん
2008/05/23(金) 00:17:150533508
2008/05/23(金) 00:43:08>>530フォントとスプライトなら呼んでます。
>>532Resetからの返り値も出力してるので多分大丈夫だと思います・・・
0534デフォルトの名無しさん
2008/05/23(金) 00:53:320535508
2008/05/23(金) 00:58:54なんかいろいろ言われそうで怖い・・・よろしくお願いします。
0536デフォルトの名無しさん
2008/05/23(金) 12:09:02それで、データの可視化の研究をしてみたいと思うようになったのですが、シェーダーの出番ってありますか?
無駄になるのもなあと思っているのですが。
OpenGLも少し勉強したことはあったのですが、可視化の分野はどちらを使ったほうがいいでしょうか?
また、仮にシェーダーを使う場合、どのような研究のネタがあるでしょうか?
0537デフォルトの名無しさん
2008/05/23(金) 13:04:300538デフォルトの名無しさん
2008/05/23(金) 13:10:170539デフォルトの名無しさん
2008/05/23(金) 14:29:49common.h無いいわれるお
できればプロジェクトもあげてほすぃ
デバッグしやすい
0540デフォルトの名無しさん
2008/05/23(金) 15:47:510541508
2008/05/23(金) 19:03:13ttp://ccfa.info/cgi-bin/up/src/up19342.zip
プロジェクトはBCCのしかなかったので、ついてません。申し訳ないです。
>>540
多分治ってると思います(?
C++と窓とDirectX同時に勉強してたんで、拙いところがたくさんありますが
0542デフォルトの名無しさん
2008/05/23(金) 23:08:12どうすればいいのでしょうか。
if(block1==0&&block2==0&&block3==0&&block4==0&&block5==0&&block6==0&&block7==0&&block8==0&&
block9==0&&block10==0&&block11=0&&block12==0&&block13==0&&block14==0&&block15==0&&
block16==0&&block17==0&&block18==0&&block19==0&&block20==0)
0543デフォルトの名無しさん
2008/05/23(金) 23:12:190544デフォルトの名無しさん
2008/05/23(金) 23:25:170545508
2008/05/23(金) 23:26:170546デフォルトの名無しさん
2008/05/23(金) 23:26:42intした名前が「block11」だったのがまずかったってことですか?
0547デフォルトの名無しさん
2008/05/23(金) 23:40:00マジで言っているならプログラミングなんてやめて旅にでも出ることをお勧めしておく。
0548デフォルトの名無しさん
2008/05/23(金) 23:42:28今気がつきました=が一つしかありませんでしたね
初歩的なミスでした
0549デフォルトの名無しさん
2008/05/23(金) 23:43:40配列など、別のアプローチを考えれ
0550デフォルトの名無しさん
2008/05/23(金) 23:46:020551デフォルトの名無しさん
2008/05/23(金) 23:48:110552デフォルトの名無しさん
2008/05/23(金) 23:51:29釣られちまったぜ
0553デフォルトの名無しさん
2008/05/24(土) 01:25:59誰もやってない悪寒。
少なくとも俺はソースがあまりにひどかったので1度動かして消した。
0554デフォルトの名無しさん
2008/05/24(土) 11:40:55今まで遊びで作ってたほとんどのゲーム、まともにうごかねえw
色々見直そう
0555デフォルトの名無しさん
2008/05/24(土) 12:02:08nVidiaのドライバーは空気を読見すぎるのが困る。
しいていうならタグが変でも一応見れちゃうIEと手厳しいネスケの違いみたいなもんか。
0557デフォルトの名無しさん
2008/05/24(土) 13:05:57まずアプリの終了時にバックバッファ解放してないだろ。
Getしたものは全部Releaseしろ。
あとSDKいれてるならDebugRuntimeで試せ。
それなら終了時に解放してなかったりD3Dエラーが出たときにデバッガで落ちるようになる。
0558デフォルトの名無しさん
2008/05/24(土) 14:31:530559デフォルトの名無しさん
2008/05/24(土) 16:51:30class ICallbackDeviceReset
{
public:
ICallbackDeviceReset();// std::setでつくられたグローバルリストに登録
virtual ~ICallbackDeviceReset();// std::setでつくられたグローバルリストから解除
virtual OnLostDevice()=0;
virtual OnResetDevice()=0;
};
デバイスのロスト>リセット時に呼び出されたいクラスは、このクラスを継承するようにすれば
自動的に呼び出されるようになる。
0560508
2008/05/24(土) 16:59:16バックバッファの解放とはGraphicsオブジェクトにセットしたポインタをリリースしろということでしょうか?
それならばGraphicsオブジェクト終了時に自動解放されています。
ところが、デバッグモードで見たらMemory still allocated! Alloc count = 94の文字がorz
しかもAllocIDが出ないので、何がまずいのか分かりませんでした・・・
CreateDeviceの際にパラメータに書いてあるバックバッファやステンシルバッファといった物は
明示的な解放はいらないですよね?
>>559std::setがstd::listなだけでまったく同じことしてます。
0561デフォルトの名無しさん
2008/05/24(土) 17:06:50listに入ってないリソースを疑うか
listの処理そのものを疑え。
0562508
2008/05/24(土) 17:27:19これで先のエラーは出なくなったんですが、Ctrl+Del+Altを押した時に
Direct3D9: (ERROR) :Device is in an invalid state. Only Reset, TestCooperativeLevel or Release could be called
がひたすら出てしまいました。デバイスロストからの復帰に失敗してるんでしょうが、なにぶんメッセージの意味が分かりません
>>561どうやらlistが怪しいようです・・・。ここをもうちょい詰めてみます。
0563デフォルトの名無しさん
2008/05/24(土) 17:54:12listだと、アドレスを登録する時に
・重複が怖い(コンストラクタでのみ自動登録されるなら心配ないが)
・解放時の検索速度が、setのほうが圧倒的に速い
って利点があるぜ。
ソース見ようとしたけど404だったんで突っ込んだアドバイスしてあげられないな。
もう一回UPする気ない?(スプライト修正版を)
0564デフォルトの名無しさん
2008/05/24(土) 17:54:58setのほうがいいよってことで(;´Д`)
0565デフォルトの名無しさん
2008/05/24(土) 17:58:53デバイスが不正な状態になってます。
この場合、Reset、TestCooperativeLevel、Releaseのどれかのメソッドしか呼び出せません。
つまり、まぁデバイスがロストしてるよと。復帰させるか、あきらめろと。
0566508
2008/05/24(土) 18:01:32リストどうやら間違ってませんでした。
ttp://ccfa.info/cgi-bin/up/src/up19435.zip
よろしくお願いします。
0567デフォルトの名無しさん
2008/05/24(土) 18:16:31デバイスを作成したスレッドと、デバイスをリセットしようとするスレッド。
違うスレッドになってね?
全部リソース解放してても、スレッドが違うと失敗するんだが。
0568デフォルトの名無しさん
2008/05/24(土) 18:26:22同じスレッド上だな。
しかし綺麗なソースだな。
うちの部下どもに爪の垢を煎じて飲ませてやりたいわ
パッと見問題はなさそうな分、とりあえずD3D関連の生成物を全部カットしてリセットして、問題なければ一部だけ生成するようにしてリセットしてみて…
ってやっていくしかないなぁ
0569デフォルトの名無しさん
2008/05/24(土) 18:47:42Graphics& GameWindow::getGraphics(){
if(device != NULL && g.target->target == NULL){
device->GetBackBuffer(0,0,D3DBACKBUFFER_TYPE_MONO,&(g.target->target));
}
return g;
}
ここのバックバッファをReleaseしてないのが原因じゃねーか?
0570508
2008/05/24(土) 19:03:26ありがとうございました。
ところでテクスチャからサーフェイスをGetしていた場合Releaseの順番てどちらからでも問題ないですか?
0571デフォルトの名無しさん
2008/05/24(土) 19:07:54そうしなかった場合不具合が起きるかは未検証だが、プログラムでは逆順解放が基本。
サーフェイスは描画前に取得して、描画終わったらさっさとReleaseしちゃいな。
取得にほとんど時間かからないから。
0572デフォルトの名無しさん
2008/05/24(土) 19:42:450574デフォルトの名無しさん
2008/05/24(土) 19:50:52確保しっぱなしだったから、結局はデバイスリセットの時に正しく解放できなかったと思うぜw
そういや508よ。
「ベース メンバ初期化リストで使用されました」
のワーニング出てたぞ。直しておけよ。
0575デフォルトの名無しさん
2008/05/24(土) 20:04:05nVidiaのドライバはATiに比べるとかなりエラーに甘いのでちゃんと
nVidiaとATiの両方で動作確認をしっかり行なう。
0577デフォルトの名無しさん
2008/05/24(土) 21:13:16(WARN) :Ignoring redundant SetTextureStageState
が出まくるんだけど・・・
かといって、デフォルト値使われるのかと思ってコメントアウトしたら全然違う動作しやがる
0578デフォルトの名無しさん
2008/05/24(土) 21:42:26最大レベルだとどうでもいいwarningが大量にでるから1レベル下がいいよ。
0579デフォルトの名無しさん
2008/05/24(土) 21:50:56なんか最近のVCで昔ながらのstr〜関数を使うだけで
警告出しやがるようになりやがったし
VC作った奴の感性がちょっとわからなくなった
リソースわけられないとかそっちの方をどうにかしてほしいのに
余計なもんばっかり増えていくな
0580577
2008/05/24(土) 21:52:09一番最初に描画される時にも出てるから、そこで警告出るんならデフォルト値使われてるのかな、と思ったんだけど、
ちゃんと設定しないときちんと描画されない。
余計な警告は無視する方が吉みたいですね
0581デフォルトの名無しさん
2008/05/24(土) 21:59:51わかって使ってるのに
0582デフォルトの名無しさん
2008/05/24(土) 22:25:58それはデフォルト値が使われているという警告じゃなくて、
Aという値を前回セットしたにも関わらず、同じ値をセットしたときに起きる。
フレームをまたいでもチェックされる。
0583577
2008/05/24(土) 22:36:24と思ってたってこと
0584デフォルトの名無しさん
2008/05/25(日) 00:22:380585デフォルトの名無しさん
2008/05/25(日) 00:26:380586デフォルトの名無しさん
2008/05/25(日) 00:41:07エクスポートがうまくいかなかったのかな…。
もしかして、なにか設定が必要ですか?
0587デフォルトの名無しさん
2008/05/25(日) 00:47:21LW使ってたのですが、付属プラグインは片面になってしまうそうで・・・。
LWからのエクスポートで、何か方法を知っていたら教えてください。
0588デフォルトの名無しさん
2008/05/25(日) 01:13:550589デフォルトの名無しさん
2008/05/25(日) 01:23:46ちゃんと倍の頂点使って裏のポリゴンを作っておく
エクスポート時に、ダブルサイド指定のポリゴンを
裏ポリ用頂点を作ってくれるエクスポーターなんて知らんね…
UVやらマテリアルやら関係なく、ただ両面描画しれてば良いだけなら
>588の言う通り
0590デフォルトの名無しさん
2008/05/25(日) 01:45:51あとで裏にポリゴンを作ろうと思います。
ありがとうございました。
0591デフォルトの名無しさん
2008/05/25(日) 06:32:230592デフォルトの名無しさん
2008/05/25(日) 09:44:08有料版でもインポート・エクスポート以外は使える。
その.mqoをLEで読み込めば・・・・
0593デフォルトの名無しさん
2008/05/25(日) 10:23:25ってやってるわ
0594デフォルトの名無しさん
2008/05/25(日) 11:26:510595デフォルトの名無しさん
2008/05/25(日) 12:04:04マルチすなや。
0596デフォルトの名無しさん
2008/05/25(日) 16:40:330597デフォルトの名無しさん
2008/05/25(日) 18:53:430598デフォルトの名無しさん
2008/05/25(日) 18:57:100599デフォルトの名無しさん
2008/05/25(日) 19:06:22ステートブロックはデバイスロストしたら一緒にロストすんぞ。
>>598
どうもこうもアニメーション情報を読んで再生する。
0600デフォルトの名無しさん
2008/05/28(水) 03:43:28640×480などのサイズにすると成功するんですが、どういった理由でこうなるのですか?
LPDIRECT3D9 p_d3d;
D3DPRESENT_PARAMETERS d3dpp;
D3DDISPLAYMODE d3ddm;
p_d3d = Direct3DCreate9(D3D_SDK_VERSION);
m_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm);
ZeroMemory(&m_D3Dpp, sizeof(D3DPRESENT_PARAMETERS));
d3dpp.BackBufferCount = 1;
m_D3Dpp.Windowed = TRUE;
m_D3Dpp.BackBufferFormat = d3ddm.Format;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
// ここまで同じ設定
d3dpp.BackBufferWidth = 600;
d3dpp.BackBufferHeight = 400;
// これをCreateDeviceに指定すると失敗する
d3dpp.BackBufferWidth = 640;
d3dpp.BackBufferHeight = 480;
// これをCreateDeviceに指定すると成功する
0601デフォルトの名無しさん
2008/05/28(水) 05:26:43関数の戻り値とか調べてください
0602デフォルトの名無しさん
2008/05/28(水) 08:55:420603デフォルトの名無しさん
2008/05/28(水) 12:36:49グラフィックボードで使える解像度じゃないからだよ
EnumAdapterModes( )でそのデバイスで使える解像度を列挙できるからその中から選べ
0604デフォルトの名無しさん
2008/05/28(水) 17:09:35PC-98時代の遺産だな。仕事で出会う確立はもはやレアだろ。
0605デフォルトの名無しさん
2008/05/28(水) 17:31:360606604
2008/05/28(水) 17:54:340607600
2008/05/28(水) 20:59:35なるほど、使用出来る解像度の問題だったんですね。
ありがとうございます。
ついでに質問なんですが、解像度は現在のディスプレイの解像度を使ったほうがいいのでしょうか?
それとも各ディスプレイごとに使用出来る解像度を調べて、自分のプログラムにあった解像度を選んだほうがいいのでしょうか?
0608デフォルトの名無しさん
2008/05/28(水) 21:09:54他のゲームを参考に汁
どっちのタイプもあるよ
自分の合う方法を探せ
0609デフォルトの名無しさん
2008/05/28(水) 21:18:53必要な解像度を動作環境に明記しとけば大丈夫。
一般的な解像度はこの辺だからな。
0610デフォルトの名無しさん
2008/05/28(水) 21:21:450611デフォルトの名無しさん
2008/05/28(水) 21:30:330612600
2008/05/29(木) 01:10:37他のゲームの解像度と一般的な解像度と開発環境などと相談して決めるのがよさそうなので、
そこらへんを考慮しつつ可変か固定か決めてみたいと思います。
ありがとうございました。
0613デフォルトの名無しさん
2008/05/29(木) 12:25:43320×240
↑はWindowsではぜんぜん一般的じゃないっぽ
0614デフォルトの名無しさん
2008/05/29(木) 12:37:57http://neko-loader.net/pict/src/neko22282.jpg
0615デフォルトの名無しさん
2008/05/29(木) 12:55:35オンボードとかだとこけるやつが結構あるって話
無理に使う必要もないしね
0616デフォルトの名無しさん
2008/05/29(木) 12:56:04快適にWindowsライフが過ごせそうですね
0617デフォルトの名無しさん
2008/05/29(木) 13:37:540618デフォルトの名無しさん
2008/05/29(木) 14:14:49というか、サポートしてないのみたことないな…。
同人ゲームで恐縮だが、EFZという格闘ゲームがフルスク320x240固定なんだが、動作しないって人聞いた事ない
0619デフォルトの名無しさん
2008/05/29(木) 15:31:400620デフォルトの名無しさん
2008/05/29(木) 15:43:50ゲーム画面が320x240でも、
640x480で画面作って拡大して描画してる場合もあると思う。
グラフィックボードがしょぼくてソフトウェアレンダリングな同人が流行ってた頃、
このサポートはどこでもやってたような気がする。
0621デフォルトの名無しさん
2008/05/29(木) 17:32:40[1832] 【技術サポート】 起動できません-
■親トピック/記事引用■
□投稿者/ ミステイク -(2007/01/03(Wed) 21:22:48)
はじめまして、本日EFZを買ったのですが、インストールした後、起動できませんでした。
起動させると、画面が真っ暗になって「320※240の解像度の設定に失敗しました」と表示されます。
どうすれば起動できるのでしょうか?
もしかすると、解像度に問題があるのかもしれませんが・・・。
OSはXp、解像度は最低でも800×600です。
EFZワロス
0622デフォルトの名無しさん
2008/05/29(木) 17:33:40引き延ばしできないノートとかでありそうだな。
レアすぎるから、
これは無視してもいいか。
0623デフォルトの名無しさん
2008/05/29(木) 17:43:20明記が必須かも試練。w
0624デフォルトの名無しさん
2008/05/29(木) 18:11:11EeePCがダメだった希ガス>640*480
あと、Pivot使っていると480*640は選択できるが640*480は選択できなくなる。
0625デフォルトの名無しさん
2008/05/29(木) 18:14:37ドライバで制限してるだけなんだけどね。
0626デフォルトの名無しさん
2008/05/29(木) 18:41:460627デフォルトの名無しさん
2008/05/29(木) 20:17:09そうそうそうそう
解像度の最低ラインが800x600になったおかげで
昔のフルスクリーンのゲームが起動できなくなったのな
後、256色のゲームも起動不可
0628デフォルトの名無しさん
2008/05/29(木) 20:56:57あやふやだけど
0629デフォルトの名無しさん
2008/05/30(金) 10:24:06ドライバいれてない時や、セーフモード時はどうなってんだそれ
0630デフォルトの名無しさん
2008/05/30(金) 10:26:330631デフォルトの名無しさん
2008/05/30(金) 11:20:48640*480が使えないわけじゃないよ。8bitカラーだって使える。
0632デフォルトの名無しさん
2008/05/30(金) 12:18:09間違っています。
以上。
はい次の方。
0633デフォルトの名無しさん
2008/05/30(金) 14:48:58結局、普通に640x480使えねーのがあるってことでいいじゃないか
0634デフォルトの名無しさん
2008/05/30(金) 14:55:070635デフォルトの名無しさん
2008/05/30(金) 15:10:35いや、ほんとに640x480が動かないPCなんてあるの?って話なんだが。
確たるソースある?
0636デフォルトの名無しさん
2008/05/30(金) 15:23:530637デフォルトの名無しさん
2008/05/30(金) 15:28:23http://okwave.jp/qa2299134.html
0638デフォルトの名無しさん
2008/05/30(金) 15:33:46思いっきり9x系からXPに移ったPC初心者の書き込みじゃねーかw
0639デフォルトの名無しさん
2008/05/30(金) 15:35:560640デフォルトの名無しさん
2008/05/30(金) 15:50:100641デフォルトの名無しさん
2008/05/30(金) 16:33:11動く、動かない、という話じゃなくXPで640x480はサポートできないだろって話
WinXPの通常使用のシステム要件に、「800x600以上対応のVGAが必要」というのがある以上、
640x480でWinXPが動かなくても、XPで800x600未満が選択できないPCがあったとしても
「それは残念でした。640x480を使うので、Win2000とかで動かしてみてください」と
返すのが正常、という話。
0642デフォルトの名無しさん
2008/05/30(金) 17:36:35意味わからん
「XPの動作には800x600以上対応のVGAが必要」であることと、
XPで640x480でフルスクリーンモードのデバイスが作れないこと。
これらはイコールではないでしょ。
「XP用のドライバでは640x480をサポートしなくても構いません」と規定されているのかという話をしてるの。
0643デフォルトの名無しさん
2008/05/30(金) 17:56:370644デフォルトの名無しさん
2008/05/30(金) 19:02:550645デフォルトの名無しさん
2008/05/30(金) 19:16:220646デフォルトの名無しさん
2008/05/30(金) 21:04:300647デフォルトの名無しさん
2008/05/30(金) 21:30:02OS的に選べないようにしてるだけで、グラボのプロパティからなら
余裕で320x240とか選べるようになってる。
つまりDirectX利用可能。
0648デフォルトの名無しさん
2008/05/30(金) 21:44:090649デフォルトの名無しさん
2008/05/30(金) 21:45:56自重しろ
0650デフォルトの名無しさん
2008/05/30(金) 21:53:47インクレティブマシーンが動かなくなってる
まず256色に変更できない
ディスプレイはサポートしてる
いま、こんな状況
0651デフォルトの名無しさん
2008/05/30(金) 22:29:320652デフォルトの名無しさん
2008/05/30(金) 23:49:00だから、変更できないってなんだよ…
画面プロパティからは変更できないだろ、XPとか使ってれば。
ここはDirectXスレだっての
0653デフォルトの名無しさん
2008/05/31(土) 04:02:150654デフォルトの名無しさん
2008/05/31(土) 04:37:37だから、アプリの方でエラーがでちまって起動できないっての
0655デフォルトの名無しさん
2008/05/31(土) 06:30:420656デフォルトの名無しさん
2008/05/31(土) 06:36:12うるせー
0657デフォルトの名無しさん
2008/05/31(土) 07:03:44答えろ
0658デフォルトの名無しさん
2008/05/31(土) 07:31:580659デフォルトの名無しさん
2008/05/31(土) 10:06:09まぁ結局の所解像度決め打ちにしてるなら動く解像度を動作環境内に書いておけってことだ。
Windowsなんてタダででもいろんな環境がありすぎるんだから全部テストなんて出来ん。
解像度くらいはプロパティから数値が見えるんだから環境限定でいいだろ。
グラボのDXサポート状況に比べればどうと言うことはない
0660デフォルトの名無しさん
2008/05/31(土) 10:08:28XPもサポートしてるよ
Delphi Graphic Secretsという本を持っているんだがここでいろいろな
画面モードを実験している
0661デフォルトの名無しさん
2008/05/31(土) 22:20:22前者より手前に後者を描画するにはどうすればいいですか?
描画の順番変えても必ずスプライトが前になってしまいます
0662デフォルトの名無しさん
2008/05/31(土) 22:23:070663661
2008/05/31(土) 22:59:42位置のZ座標指定してもうまく処理されないと思ったらClearするときにZバッファ指定してなかっただけでした。
スプライトのZ座標は描画順だけらしいので交錯させる等複雑な描画をしたい時は完全にDrawPrimitiveの方に統一するしかないですか?
0664デフォルトの名無しさん
2008/06/02(月) 15:22:513DやらないならZバッファ使わんだろ
使ってもいいけど
使わん方が早いだろ
ついでにステンシルバッファも作らなくていいし
クリア時もZ消さなくていいし
0665デフォルトの名無しさん
2008/06/02(月) 20:16:47Zテストの前から描画って2Dだとそんな効果ねぇっけ?
0666デフォルトの名無しさん
2008/06/02(月) 21:18:21半透明や加算合成を一切使わず、抜き色で使うアルファ値も
エッジにAA効果を持たせない二値限定のスプライトが前面に多く
描画されると仮定できる状況なら、大幅にフィルレートを稼げるかもね
でなけりゃただの逆効果
0667デフォルトの名無しさん
2008/06/03(火) 01:02:57α値が0%(不透過)のところだけZバッファだけ書き込んでなんとかならんかったっけ?
0668デフォルトの名無しさん
2008/06/03(火) 02:25:36だからカラーキー目的で二値しかアルファ値使ってなけりゃ、アルファテストでいけるよ
でもエッジにアンチェリ(段階的なアルファ値の適用)使った時点で駄目だし、
当然アルファブレンドも使えないしで、2Dスプライトの描画において深度バッファで
速度が稼げるってのは結構レアケースだと思うよ
0669デフォルトの名無しさん
2008/06/03(火) 03:29:40α値が1のときだけ〜って処理いけんかったっけ?
まあ、いけたとしてもそんなに早くないか・・・
0670デフォルトの名無しさん
2008/06/03(火) 09:54:290671デフォルトの名無しさん
2008/06/03(火) 13:21:370672デフォルトの名無しさん
2008/06/03(火) 19:07:07最低解像度800x600だった
でも、640x480できたお
0673デフォルトの名無しさん
2008/06/03(火) 20:03:27なんだその存在価値のなさげなグラボは
0674デフォルトの名無しさん
2008/06/04(水) 00:19:51読み込んだXファイルをDrawSubSet()で表示するときなどにmaterialを設定しても描画に反映されません
D3DXCreateSphere()等で取得したメッシュをDrawSubSet()する場合は反映されます
materialを有効にするにはSetMaterial()以外に何か設定が必要なのでしょうか?
0675674
2008/06/04(水) 01:53:23D3DRS_DIFFUSEMATERIALSOURCEでマテリアルを参照するよう設定するのを忘れていました
0676デフォルトの名無しさん
2008/06/04(水) 19:25:36DirectX 9.0 SDK Update (Summer 2003)
に変えてからこうなりました
以前はSummer 2004を使っていたのですが不具合が色々あったので変えました
もしかしたらDirectXの設定がおかしいのかもしれませんわかる方いたら教えていただきたく思います
0677デフォルトの名無しさん
2008/06/04(水) 19:36:420678676
2008/06/04(水) 19:58:37BCC Developerを使っているのですがブレークポイントの設定の仕方がわかりません…
0679デフォルトの名無しさん
2008/06/04(水) 20:01:10VC(正規OSならタダでダウンロード可能)にしてやってみるか
printfをおきまくれ
0680676
2008/06/04(水) 20:10:01「サーバとの接続を再度確立します」と表示されてインストールできなかったのでやめました
自分で組んだプログラムではなく、サンプルをダウンロードして実行しようとしただけなのでコードに問題は無いと思います
Summer 2004で実行したときは大丈夫でしたが
Summer 2003に変えてからおかしくなりました
おそらくDirectXの設定を間違えていると思うのですが…
0681デフォルトの名無しさん
2008/06/04(水) 20:14:09DX関数に必要なDLLがないんじゃね?
0682676
2008/06/04(水) 20:29:59調べてみるとそこまで必要なものではないようでした
サンプルがSummer 2003を対称にしているのでDLLが足りないわけでもないと思います
0683デフォルトの名無しさん
2008/06/04(水) 20:34:51IE7か割れOSだろ?
0684デフォルトの名無しさん
2008/06/04(水) 20:35:37BCC対応のライブラリを作るなり取ってくるなり手間が必要だったような気がするが
0685676
2008/06/04(水) 20:38:01OSはノートの正規品です
もともと古いPCなのでグラボの性能が低いのが原因かもしれませんが
Summer 2004で実行できたので…
0686デフォルトの名無しさん
2008/06/04(水) 20:57:38いくつか関数の仕様が変わったもんがあったような気がするけどそこは直した?
ビルド通らないと思うけど
0687デフォルトの名無しさん
2008/06/04(水) 21:01:17足りないもんとかあるんじゃね?
変なコントロールまわりなんかやけに9.0初版のときより豪勢になってるし
バージョンダウンで動かそうとするのなんて時間の無駄じゃね?
0688676
2008/06/04(水) 21:06:24エラーもありません
サンプルは2003用のです
2004からコンパネでDirectXが設定できなくなっていたので
2003にしました
0689デフォルトの名無しさん
2008/06/04(水) 21:21:300690デフォルトの名無しさん
2008/06/05(木) 01:07:03ちゃんとエラーチェックしてる?w
0691デフォルトの名無しさん
2008/06/05(木) 01:33:170692デフォルトの名無しさん
2008/06/05(木) 01:33:500693デフォルトの名無しさん
2008/06/05(木) 02:47:21サンプルの実行に拘る理由がよく分からない
0694デフォルトの名無しさん
2008/06/05(木) 03:34:04MPEG-2を取り扱うアプリケーションを作成したいんですが.
Directshow()で可能だとは思うんですが.
マニュアルはありますか?
0695デフォルトの名無しさん
2008/06/05(木) 03:38:32言ってることも割れ臭いし
目的もなく2003だしで正直胡散臭いよねw
0696デフォルトの名無しさん
2008/06/05(木) 04:39:25英語で良いならWindows SDKのドキュメントにある
日本語ならDirectX9 SDKの古いドキュメントがまだMSからダウンロードできたはず
場所の検索は自分でやってネ
0697デフォルトの名無しさん
2008/06/05(木) 19:21:39使っている参考書は
http://www.amazon.co.jp/dp/4839912475/
です。
この本ではDirectXのアプリケーションウイザードがVSに追加されているのですが、私の環境では追加されませんでした。
VS→SDKの順にインストールしました。
最近のバージョンだとDiretctXのアプリケーションウイザードは削除されたのでしょうか?
0698676
2008/06/05(木) 19:38:462003にしようと思ったのもコンパネから設定変えたかっただけなのでこのまま2004でいこうと思います
DirectX勉強してるサイトのサンプルだったんで何とか実行したかったんです
原因はわかりませんでしたが色々とありがとうございました
0699デフォルトの名無しさん
2008/06/05(木) 19:47:21結構前に廃止された
たぶん2004年のどっか
>>698
最近のは確かにコンパネに設定が追加されなくなったが
DirectX UtilitiesのなかにDirectX Control Panelってものがあってだな
昔コンパネから設定できたことと同じことができるんだぜ?
0700676
2008/06/05(木) 19:55:53教えていただきありがとうございます
ただ、2004にはないようです
最新のはPCの性能的に難しそうなのでこのまま我慢することにします
ちなみに5年くらい前のpentium�Vです
0701デフォルトの名無しさん
2008/06/05(木) 23:15:42一部を除き真っ黒になってしまいます。
どういう時にこうなるのでしょうか?
0702デフォルトの名無しさん
2008/06/05(木) 23:35:180703デフォルトの名無しさん
2008/06/05(木) 23:45:320704デフォルトの名無しさん
2008/06/05(木) 23:56:330705デフォルトの名無しさん
2008/06/06(金) 00:00:11ランタイムは当分のこるだろうけど。
0706デフォルトの名無しさん
2008/06/06(金) 00:18:2810の時代なのか?
0707デフォルトの名無しさん
2008/06/06(金) 00:55:020708デフォルトの名無しさん
2008/06/06(金) 03:23:42おかげで10の普及は相当に遅れるだろうね
0709デフォルトの名無しさん
2008/06/06(金) 20:22:260710デフォルトの名無しさん
2008/06/06(金) 20:28:150711デフォルトの名無しさん
2008/06/06(金) 20:30:34そしてすぐに無かったことにしている
SEとかCEとか3.0とかMMCとか、NTとか
Vistaもそんな感じ
0712デフォルトの名無しさん
2008/06/06(金) 20:34:44基本的に全てのアプリはDirectXで組んでくださいっていうスタンスなんだから
0713デフォルトの名無しさん
2008/06/06(金) 20:38:04,...-‐:"´:.:.::.:.::.:.``:‐,,、
,.-..,、/:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:`、 _
/:.:.:./:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:';;´::.:.l
l:.:.:.:.:.l:.:.:.:.:.:.:.:.:.:/|:.:.:.:.:.:.:.:.::l、:.:.:.:.::.:.:.:.:l:.:.:.::|
. |:.:.:.:.:l:.:.:.:.:.:.:.::.::/ |:.;:.:.:.:.:.:.;l:l l:.::l;:.:.:.:.:.:l:.:.:.:;l,
|:.:.:.:.:.|:.:.:.:.:.::l:.:/ |:|.l:.:.:::.:.:l|l |:.:ll:.:.:::.::.ll:.:.:.::|i
. |:.:.:.:.:l|:.:.:.::.::l.|/` 、|l l:.:::./l _,,.-l:j´l:.:.:.:.:| l:.:.:.:lii
l:.:.:.::.:l i/l:.:.:l |l‐ェ-ュ,` l:://´ェ--,-,.l:.:.:lヽ l:.:.::.l.ii
. l:.:.:.:.:;l l (l:.:.:.lヽゝ_ノ '" ゝ_ノノ.l:.::l,l l .|;:.:.:.l.ij
l:.:.:.::.lij `ゞ::.:l ,、, ∧/l:.:.l/ j|:.:.:.:l.ii
. |:.:.:.:.:|.ii ';:.:l、 ' . ,l::/ l.l:.:.:.l.i|
. |:.:.::;.;| ii ヾl >、. 0 , イl:/、 | |:.:.:.l li
. |:.:.:.|i| ji,.-ィ'´l `l ` ‐-‐ '´ l l``l‐-l、|:.:.:.l ij
|:.:.:.:|i|'´/ l ヽ `、 / / l .l |:.:.:.| i|
すとーっぷ。>>712は素早く変な空気を作るねぇ…
>>709より不安な子を見つけたよ。
0714デフォルトの名無しさん
2008/06/07(土) 02:02:40テクスチャのクラス(CTexture)を作り、コンストラクタに画像ファイルのパスを渡してクラス内でテクスチャ(Texture)を生成しています。
CTextureのデストラクタでTextureを削除するようにし(delete Texture)、メモリの解放を試みているのですが
その状態でCTexture* で作ったオブジェクトを削除すると、ヒープが壊れているというエラーが出ます。
多重deleteでエラーが出ることは調べてわかったのですが、
if(Texture) delete Texture;
としているにも関わらずエラーが出るので困っています。
どのようにしてテクスチャが占有したメモリを解放すればよいのでしょうか?
0715デフォルトの名無しさん
2008/06/07(土) 02:18:42見事にスレ違いだ。
そして君のやりたいことは多分こうだ。
if (Texture) { delete Texture; Texture = NULL; }
0716デフォルトの名無しさん
2008/06/07(土) 02:40:27できました、ありがとうございます!!そしてごめんなさいでしたァ!!
0717デフォルトの名無しさん
2008/06/07(土) 05:40:52Texture = NULL;
これでおk
delete NULL;は合法
ま、どのみちスレチ
0718デフォルトの名無しさん
2008/06/07(土) 12:22:05のサンプルプログラムを参考にお勉強しているのですが
画面の頂点情報を動的に変えるために
頂点バッファを確保する箇所
VOID* pVertices;
if( FAILED( g_pVB->Lock( 0, sizeof(g_Vertices), (BYTE**)&pVertices, 0 ) ) )
return E_FAIL;
memcpy( pVertices, g_Vertices, sizeof(g_Vertices) );
g_pVB->Unlock();
を処理で何回も経由させる場合
以前に確保したメモリはどのように解放してあげれば良いのでしょうか?
よろしくお願い致します。
0719デフォルトの名無しさん
2008/06/07(土) 12:33:41あと頻繁にロックするならDYNAMICで作ってDISCARDでロックしろ
0720デフォルトの名無しさん
2008/06/07(土) 12:53:13動的に確保してるわけでは無いんですね
同じところに何度も上書きしてる感じなのかな?
DYNAMIC と DISCARD は調べてみます
ありがとうございました
0721デフォルトの名無しさん
2008/06/07(土) 14:07:06Xファイルのモデルを作って、それにプログラムでテクスチャ座標を設定して一つのアイテムを作成するのではなく。
モデリングソフトでモデルを作ってる段階で、視覚的にテクスチャを設定して、その情報が入ったXファイルとテクスチャを読みこませて
テクスチャ座標をいちいち設定しなくてもアイテムを表示させたりって出来ないんですかね?
なんだか大体の本はモデルの読み込みと表示は説明してても、モデルの作成からテクスチャの設定部分が余り説明されてないので分かり辛い…
DirectXで使うことを前提とした3Dの本とかってないですかね?
長々と読み辛い文章スマソ。
0722デフォルトの名無しさん
2008/06/07(土) 15:58:360723デフォルトの名無しさん
2008/06/07(土) 16:02:06キミが求めている情報を知りたいのならプログラムの本ではなくデザインの本を買うべきだよ。
DirectXだのOpenGLだと自前レンダラーだの関係なくそれはグラフィックデータの話だ。
0724デフォルトの名無しさん
2008/06/07(土) 16:28:31普通にモデリングソフト触ればわかるだろが
ちなみにXファイルの中にマテリアルってもんがあって
そのなかにたくさんテクスチャ設定できるようになってるじゃん
構造でいうと
Xファイルx1
メッシュxN
マテリアルx1
テクスチャx1
モデルのUVx1
な感じになってるのか?(バンプ(マルチテクスチャ2枚以上考慮外)とか考えないと)
Xファイル1つにメッシュがたくさんあって
メッシュ1つにつきマテリアルとUVが1つずつあって
マテリアル1つにつきテクスチャが1つあると・・・
だから、Xファイル1つにテクスチャは複数ある構造がいまのXファイルなわけよ
0725デフォルトの名無しさん
2008/06/07(土) 16:38:420726デフォルトの名無しさん
2008/06/07(土) 16:45:35そうだっけ?
あーでもそうなってる気もするな
でも実用性なくね?
どの頂点がどのマテリアルか決定しなきゃいけないから
読み込むときにマテリアル単位でメッシュわけなきゃいけないな
この辺はモデリングソフト次第って感じ?
0727デフォルトの名無しさん
2008/06/07(土) 17:12:08わざわざメッシュを分けて作る方が現実的じゃないだろ。
実際D3DXMeshでも属性テーブルって形式でマテリアル毎に分割して描画するようになってる。
0728デフォルトの名無しさん
2008/06/07(土) 17:25:37デバイスにセットする方法しかないの?
0729デフォルトの名無しさん
2008/06/07(土) 18:27:130730デフォルトの名無しさん
2008/06/07(土) 18:50:41メッシュ1つのマテリアル毎にテクスチャが違うって状況か?
あんまり違いがないならメッシュ1つに付きテクスチャ1枚な
俺の経験だとそんなモデルは重過ぎて動かねぇ
まあ、いまソースみたら俺もできるように組んであるけどなw
スキンメッシュでかなり苦労してた記述がみられるw
スキンメッシュのデータはマテリアルごと描画できるデータになってねぇのなw
抜けてんだな>Xファイルの担当者
0731デフォルトの名無しさん
2008/06/07(土) 19:00:24何を言ってるかわからねえがスキンメッシュだろうなかろうが同じように描画できるが・・・。
顔の表情とかをテクスチャ差し替えでやろうと思ったら顔だけテクスチャ別にするだろjk
0732デフォルトの名無しさん
2008/06/07(土) 19:31:24ボーンと頂点を結びつけるインデックスがそうはなってないと思ったが
>>731
メッシュで分けちゃってるな俺んとこのデザイナさん
もちろんプログラムではなんでもできるようにしてあるが
0733デフォルトの名無しさん
2008/06/07(土) 20:42:08インデックスとマテリアルは関係ないじゃろ。
最終的にはポリゴン1つ1つにマテリアルのインデックスが振られているんだから
それを使ってマテリアル毎に分解して再構成するだけ。
っていうかD3DXで読み込めば全部やってくれるけんど。
0734デフォルトの名無しさん
2008/06/07(土) 20:42:37>>731じゃねえ>>732だ。
0735デフォルトの名無しさん
2008/06/07(土) 21:14:17>それを使ってマテリアル毎に分解して再構成するだけ
この作業が面倒臭いって話だな
インデックスがメッシュごとだから、自前で読み込むときは
1回マテリアルごとに直す必要があるな
0736デフォルトの名無しさん
2008/06/07(土) 22:22:43ttp://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en
DirectX End-User Runtimes (June 2008)
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=822640ab-0983-4c41-9c70-632f6f42c557&DisplayLang=en
DirectX Software Development Kit
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=519aae99-b701-4ca1-8495-39ddde9d7030&DisplayLang=en
0737デフォルトの名無しさん
2008/06/07(土) 22:52:14そんなの貼っても割れ厨にはどうせ見れないぞw
0738デフォルトの名無しさん
2008/06/07(土) 22:54:400739デフォルトの名無しさん
2008/06/07(土) 22:59:26犯罪者の都合は考慮しないよ。
0740デフォルトの名無しさん
2008/06/07(土) 23:07:03ランタイムのウェブインストーラーや開発キット、ヘルプなんかは
ウィンドウズの正規OSでないと落とせなくなった
なのでたまにこのスレで「落とせません」とか「見れません」とか
「わかりません」とかいう奴はほぼすべて割れ厨
0741デフォルトの名無しさん
2008/06/07(土) 23:11:280742デフォルトの名無しさん
2008/06/08(日) 04:24:44directxを前のverに戻したらパフォーマンスって下がりますか?
0743デフォルトの名無しさん
2008/06/08(日) 04:51:370744デフォルトの名無しさん
2008/06/08(日) 15:05:13SAFE_RELEASE のようなものを見かけますが、
// safe release
#define RELEASE(p) ( (p) ? ( (p)->Release(), (p)=NULL ) : (0) )
このマクロで何か問題ありますか?
参照を使った関数だと BCC に注意されたので
0745デフォルトの名無しさん
2008/06/08(日) 16:17:37翻訳しないで原文ママのエラーメッセージを。
0746デフォルトの名無しさん
2008/06/08(日) 17:35:36IMediaSeeking::GetDurationで再生時間を取得すると、
3分33秒より長いファイルはオーバーフローして負の値になってしまいます。
IMediaPosition::get_Durationで取得しようとすると、E_NOTIMPL(実装されていない)が帰ってきます。
3分33秒より長いファイルの再生時間を取得するにはどうすればいいのでしょうか?
開発環境はVisual Studio 2005 Pro、言語はCです。
0747デフォルトの名無しさん
2008/06/08(日) 17:37:540748デフォルトの名無しさん
2008/06/08(日) 17:38:000749746
2008/06/08(日) 17:49:53IGraphBuilder *pGraph;
IMediaControl *pMediaControl;
IMediaSeeking *pSeek;
IMediaPosition *pMediaPosition;
REFTIME length;
REFERENCE_TIME TotalTime;
CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC,
IID_IGraphBuilder, (void **)&pGraph);
pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl);
pGraph->QueryInterface(IID_IMediaSeeking, (void **)&pSeek);
pGraph->QueryInterface(IID_IMediaPosition, (void **)&pMediaPosition);
pGraph->RenderFile(FileName, NULL);
pMediaPosition->get_Duration(&length);
pSeek->GetDuration(&TotalTime);
こんな感じです。
0750デフォルトの名無しさん
2008/06/08(日) 20:43:53どこかで int にキャストされてるんじゃね
SetTimeFormat 指定しておいたほうがいいんじゃねえ
0751デフォルトの名無しさん
2008/06/08(日) 23:34:30GetGlobalParam(GUID_PerfMasterVolume, reinterpret_cast<void*>(&V), sizeof(V))で
何故かE_INVALIDARGが返ってきて音量の取得ができません。
不正な引数とありますが、どれが不正な引数なのでしょうか?(Vはlong型です)
ちなみに、この処理を行う前にパフォーマンスの作成、パフォーマンスとシンセサイザーの初期化、
ローダーの作成を行っています。
0752デフォルトの名無しさん
2008/06/08(日) 23:41:48msdnによると以下のようにあるけど、SetGlobalParamは使用済み?
>SetGlobalParam が rguidType について一度も呼び出されたことがない場合、このパフォーマンスが現在処理している
>グローバル データ リストの中に、rguidType がない可能性がある。その場合、このメソッドは E_INVALIDARG を返す。
>つまり、どのパラメータにも、GetGlobalParam を使って取得できるデフォルト値があると想定しないこと。
0753デフォルトの名無しさん
2008/06/08(日) 23:47:46ttp://richa850.hp.infoseek.co.jp/programming/dx9_01.html
ここを参考に、後述のプログラムを書いたのですが、少なくともRADEON9600SEで画面がおかしくなります。
正しい方法はどうやればいいのでしょうか?
・APIリファレンスを読んだところ、MultiSampleTypeなどは以前のものと一緒でなければならないとあったので、上記ページでは決め撃ちになっているのを修正しました
・画面がおかしくなるを具体的に言うと、テクスチャが壊れていたり(正しいテクスチャの一部が緑や白のペンキでラクガキでもされたように塗りつぶされてる)、まったく描画されなかったりです
・old.Widthが中途半端な値(672とか)だったりすると、OSごと巻き込んで落ちます。(PC再起動がかかります)
・
D3DSURFACE_DESC old;
CComPtr< IDirect3DSurface9 > pCurrentDepthStencil;
pDev->GetDepthStencilSurface(&pCurrentDepthStencil);
pCurrentDepthStencil->GetDesc(&old);
// 新しく作ったテクスチャーの大きさと、現在の深度ステンシルの大きさを比較.
if ((old.Width < descNewTexture.Width) || (old.Height < descNewTexture.Height))
{
// 深度ステンシルを作り直す。
CComPtr< IDirect3DSurface9 > pNewDepthStencil;
pDev->CreateDepthStencilSurface
(
__max(descNewTexture.Width, old.Width),
__max(descNewTexture.Height, old.Height),
old.Format, old.MultiSampleType, old.MultiSampleQuality, TRUE, &pNewDepthStencil, NULL
);
pDev->SetDepthStencilSurface(pNewDepthStencil);
}
// 上記を行なっただけではまだ問題はおこらず、下記を行なうと発症します。
// 上記だけ、もしくは下記だけだと問題はおきません。
pDev->GetSwapChain(0, &pSwapChain)
pSwapChain->GetBackBuffer(0, D3DBACKBUFFER_TYPE_MONO, &pRenderTarget);
pDev->SetRenderTarget(0, pRenderTarget);
0754デフォルトの名無しさん
2008/06/08(日) 23:56:19ありがとうございます、使用しておりませんでしたorz
デフォルト値がないのですね、なぜこんな仕様になっているのやら…orz
0755デフォルトの名無しさん
2008/06/09(月) 08:10:400756デフォルトの名無しさん
2008/06/11(水) 18:45:36コントロールのようなものが使えるようになってるみたいなんだが
あれってなんて名前でしょうか?
使い方書いてあるHP検索したいわけだが
なんて検索したらいいかわからんのです
0757デフォルトの名無しさん
2008/06/12(木) 01:16:450758デフォルトの名無しさん
2008/06/12(木) 19:35:520759デフォルトの名無しさん
2008/06/12(木) 19:50:35なんという言葉でしたっけ
0760デフォルトの名無しさん
2008/06/13(金) 09:36:070761デフォルトの名無しさん
2008/06/13(金) 11:24:56PDtoOM();
0762デフォルトの名無しさん
2008/06/13(金) 14:05:08面白いと思ってやってるのか?
0763デフォルトの名無しさん
2008/06/13(金) 16:35:41の頻度をループ数とタイマーのどちらで制御すべきだと思いますか?
0764デフォルトの名無しさん
2008/06/13(金) 16:48:27ループにして何か良いこと有るの?
0765デフォルトの名無しさん
2008/06/13(金) 17:38:240766763
2008/06/14(土) 03:46:37やっぱりそうなんだ。
処理落ちすることって前提なのね。
0767デフォルトの名無しさん
2008/06/14(土) 04:33:410768デフォルトの名無しさん
2008/06/14(土) 10:52:37ただ、その処理をカウンタで実装したところで
タイマーと比べて簡単になるとは思わんが。
0770デフォルトの名無しさん
2008/06/14(土) 20:56:250771デフォルトの名無しさん
2008/06/16(月) 21:19:24IDirect3DTexture9じゃないです
0772デフォルトの名無しさん
2008/06/16(月) 21:41:00取れないけど・・・どういう状況でその要求が出てくるんだ?
まともな設計してりゃありえないと思うんだが。
0773デフォルトの名無しさん
2008/06/16(月) 22:01:16GetTextureで0のテクスチャの幅と高さを
シェーダーに渡したかったのです。
Textureは、普通のテクスチャだったり、RENDER_TARGETだったりするし、
サイズを別に持たせたくなかった(メモリけちった)のです
無理っぽいので、別個に渡すようにします。
0774デフォルトの名無しさん
2008/06/16(月) 22:24:40各継承クラスにキャストすりゃいいだけだよ。
0775デフォルトの名無しさん
2008/06/16(月) 22:44:200776デフォルトの名無しさん
2008/06/16(月) 23:35:370777デフォルトの名無しさん
2008/06/16(月) 23:44:20ちょっとこっち来いよ
0778デフォルトの名無しさん
2008/06/18(水) 16:26:38ライトのポジションは、GetLightから取れるのですが、
カメラのポジション取得は、できるのでしょうか?
無理ですか?
0779デフォルトの名無しさん
2008/06/18(水) 22:23:47つか出来ないわけねーだろ。
0780デフォルトの名無しさん
2008/06/18(水) 23:08:03そっからカメラの位置は計算しないといかんけどな
0781デフォルトの名無しさん
2008/06/18(水) 23:16:510782デフォルトの名無しさん
2008/06/19(木) 03:55:17カメラ行列生成情報は、グローバルで持っておくべき?
あと、ビルボード行列も
0783デフォルトの名無しさん
2008/06/19(木) 04:27:29同じことで悩んでる人発見
カメラのクラスってどこに配置すればいいんでしょうね
0784デフォルトの名無しさん
2008/06/19(木) 10:01:290785デフォルトの名無しさん
2008/06/19(木) 13:49:00アクティブな奴を切り替え出来るように作っておくとデバッグにも便利
0786デフォルトの名無しさん
2008/06/19(木) 15:43:470787デフォルトの名無しさん
2008/06/19(木) 18:54:51素人乙
0788デフォルトの名無しさん
2008/06/20(金) 00:22:34分からないことがあるので質問です。
例えばメタセコイアでpng形式のアルファ付きテクスチャをポリゴンに張ると
レンダリング結果はテクスチャの透明部分はポリゴンも透明になりますが
xファイルに出力してビューワで見ると透明部分は白色表示になってしまいます
これはxファイルにはテクスチャのアルファは無視(白と認識)されるという事なのでしょうか?
0789デフォルトの名無しさん
2008/06/20(金) 00:32:36xファイルはマルチテクスチャをサポートしていないので、xファイルに保存した段階で
アルファマップの情報は失われる。
2) そのビューワ(何のビューワか知らんが)がテクスチャのアルファ値を無視しているだけ。
0790デフォルトの名無しさん
2008/06/20(金) 01:07:041に関してはテクスチャは1枚しか使用していません。
メタセコイアの材質設定で「模様」のテクスチャにアルファ付きのpng画像を指定した場合と
材質設定の「透明」に白黒のbmp画像を指定した場合の両方を試しましたが
どちらもメタセコイア上で透明に見えていた部分はxファイルで白になっていました。
2に関してはSDK付属のMeshViewerを使って見ていました。
一応自作のプログラム上でも表示を試しましたが
ビューワと同様でアルファの影響は見られませんでした
(DirectX初心者な自分が作ったプログラムなので
それ自体にアルファに関する抜けがある可能性もありますが)
透過効果を使ったxファイルのサンプルでもあればいいのですが
現状では表示するプログラム側に誤りがあるのか
3Dツール側の設定が足りてないのか分からずなんとも・・・
0791デフォルトの名無しさん
2008/06/20(金) 01:22:24素直にDDSを使う方がいいと思われ。
0792デフォルトの名無しさん
2008/06/20(金) 01:29:36レンダーステートおよびテクスチャステージステートの設定が適切でないか、だ。
後者の方が圧倒的に多いパターンなんだけど、
このへん実はピクセルシェーダ使った方が余程わかりやすかったりするんだよねぇ。
0793デフォルトの名無しさん
2008/06/20(金) 03:02:14おまえ頭いいな
0794デフォルトの名無しさん
2008/06/20(金) 03:09:58DirectGraphicsのほとんどの要素をラッピングしたクラスが必要なんですね。
たいへんですね
0795790
2008/06/20(金) 08:34:24DDS形式使っても無理でした(つД`)
>>792
レンダーステートとテクスチャステージステートは
特に設定していなかったので、レンダーステートに
D3DRS_ALPHABLENDENABLE設定してみたのですが
結果は変わらず。
テクスチャステージステートはデフォルトでイイと思うのですが
この辺の設定も自信無いので違ってたらご指摘お願いします orz
ちなみに使用してるSDKのバージョンは2004/Oct
0796デフォルトの名無しさん
2008/06/20(金) 09:31:11半透明描画はSRCBLENDとDSTBLENDの設定とCOLOR_OPの設定もちゃんとやらないと話が始まらないぞ。
0797デフォルトの名無しさん
2008/06/20(金) 09:40:18まずはテクスチャのα値をちゃんと参照する方法を覚えろ。
しかしコンパイル済みMeshViewはテクスチャのα値無視するのは確かに不適切だよな
ソース入ってるから自分でリコンパイルすりゃいいんだけど、メニューでON/OFFくらいつけといてほしかったわw
0798790
2008/06/20(金) 10:18:37�d、やっと出来ました!ヽ(`Д´)ノ
pD3DDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );
pD3DDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA );
この二行が抜けてました、ってか
D3DRS_SRCBLENDALPHAとD3DRS_DESTBLENDALPHAの定数と勘違いして使って混乱してました(つД`)ゴメンナサイ
テクスチャステージステートはとりあえずデフォルトでも大丈夫でした。
それにしてもMeshViewerはα反映しないんですね
お陰でデータの方に問題があるのかと勘違いして無駄な時間を・・・orz
0799デフォルトの名無しさん
2008/06/20(金) 13:04:012008だとそのままじゃコンパイル通らなくて、いろいろめんどかった
てか、存在しないヘッダファイルをincludeするなよサンプルなのにって思った
0800790
2008/06/20(金) 20:58:27背景透けたと思ってたら、バックグラウンド(クリア色)は
透明ポリゴン越しに透けて見えたけどすぐ後ろに別ポリゴン置いたら
そのポリゴン無視してバックグラウンドの色が表示されてることに気づいた・・・orz
0801790
2008/06/20(金) 22:44:21Zバッファ無効にすると前後関係を自動処理してくれないから
自前で描画順序を制御しなけりゃいけないって事かな(;´-`)
0802デフォルトの名無しさん
2008/06/20(金) 22:45:39でぐぐりまくりんぐ
0803790
2008/06/20(金) 22:52:38初歩の初歩みたいな疑問をグダグダ書き連ねて申し訳なさ爆発です。
0804デフォルトの名無しさん
2008/06/20(金) 22:55:09使うなら見た目は諦めるか深度ピーリングでもしろ。
頂点処理なんてアホほど浮いてるんだしアルファで抜くより全部
ポリゴンのほうが圧倒的に最近の主流だったりはする。
0805デフォルトの名無しさん
2008/06/20(金) 23:01:57あと、「半」透明じゃなくて、アルファ値を使った「透過」がやりたいだけなら、アルファテスト使えばよくね?
0806デフォルトの名無しさん
2008/06/20(金) 23:04:45頂点処理が浮いてるっていうのは、
大抵の場合ピクセルシェーダが忙しくて、頂点シェーダが遊んでるってことですか?
どうやったらコアの稼働率?を調べることが出来るんでしょうか?
0807デフォルトの名無しさん
2008/06/20(金) 23:09:24まだそんなことを気にするレベルに至って無い
順番にやっていけ
半透明とZバッファの相性の悪さは昔からの命題
一般的には半透明の描画だけリストに登録しておいて、完全不透明の描画が全て終わった後、カメラから遠い順に描画していく
std::multimap<float, IAlphaDraw*> でリストつくると楽だよ
floatがカメラからの距離
IAlphaDrawは半透明描画の描画インターフェースを提供するインターフェースクラス
0808デフォルトの名無しさん
2008/06/20(金) 23:16:35NV PerfHUD
0809デフォルトの名無しさん
2008/06/21(土) 00:41:460810デフォルトの名無しさん
2008/06/21(土) 00:43:030811デフォルトの名無しさん
2008/06/21(土) 00:53:12モデル自体の半透明処理はかなりの例外扱いだからなぁ。
被写界深度やモーションブラーなんかもやれないし
特殊な条件以外で使うようなものじゃない。
0812デフォルトの名無しさん
2008/06/21(土) 07:11:37正直、PCのグラボではフィルレートがまったく足りてないと思う
0813デフォルトの名無しさん
2008/06/21(土) 09:28:27普通にピクセルシェーダーカツカツになるよ。
逆に頂点は数百万クラスになってきてるけど、今は統合型アーキテクチャが主流だしどうなることやら。
0814デフォルトの名無しさん
2008/06/21(土) 09:56:02でもピクセルシェーダはα物をちょっと拡大して表示するだけでもう処理落ちはじめやがんの
これってなんで?
PS2とかだとそんなことなかった気がすんだけっちょ
0815デフォルトの名無しさん
2008/06/21(土) 10:02:18使うテクスチャも16色や256色のパレットが殆どだし。
そもそも解像度も640x480より小さいしなー。
0816デフォルトの名無しさん
2008/06/21(土) 10:14:13解像度あげたらエライ負担になるだろ
0817デフォルトの名無しさん
2008/06/21(土) 11:29:23これって無料でダウンロードできるんですか?
0818デフォルトの名無しさん
2008/06/21(土) 11:48:48利用目的に応じたライセンス料を支払う必要がありますん。
0819デフォルトの名無しさん
2008/06/21(土) 11:55:280820デフォルトの名無しさん
2008/06/21(土) 12:13:010821デフォルトの名無しさん
2008/06/21(土) 13:48:25あれ、誰かきた。
0822デフォルトの名無しさん
2008/06/21(土) 13:51:090823デフォルトの名無しさん
2008/06/21(土) 13:54:02Projection 行列をいじる
0824デフォルトの名無しさん
2008/06/21(土) 14:28:40即レスありがとうございます。
色々調べてみたのですがよくわかりません。
D3DXMatrixPerspectiveFovLHの他に座標変換するのですか?
0825デフォルトの名無しさん
2008/06/21(土) 14:31:09D3DXMatrixPerspectiveOffCenterLHとか使うといい。
0826デフォルトの名無しさん
2008/06/21(土) 15:19:14できました。ありがとうございました。
0827デフォルトの名無しさん
2008/06/21(土) 18:38:44とVBを確保したのですが、
pd3dDevice->CreateVertexBuffer(sizeof(D3DTLVERTEX)*4, 0, D3DFVF_2DVERTEX, D3DPOOL_DEFAULT, m_pVB.get(), NULL );
と、作るときにダブルポインタに出来ません・・・
IDirect3DVertexBuffer9* buf=spVB.get();
pd3dDevice->CreateVertexBuffer(sizeof(D3DTLVERTEX)*4, 0, D3DFVF_2DVERTEX, D3DPOOL_DEFAULT, &buf, NULL );
と渡す以外の方法で良い方法ありませんか?
intrusive_ptrを使うのが悪いのだろうか・・・
0828デフォルトの名無しさん
2008/06/21(土) 18:44:150829デフォルトの名無しさん
2008/06/21(土) 18:50:29ありがとうございます。
DXUTを使ってるので、
atlbase.hをインクルードするときに
Need to include strsafe.h after tchar.h
って言われるのでIntrusiveに逃げようかと思ったんですが、
やはりDXUT.hの中に入れ込んででもCComPtrのほうが良いのでしょうか。。
0830デフォルトの名無しさん
2008/06/21(土) 19:12:500831デフォルトの名無しさん
2008/06/21(土) 19:19:23&(spVB.get())じゃダメなのか?
0832デフォルトの名無しさん
2008/06/21(土) 19:38:10何を嫌がってるのか理解できんが、だったらintrusive_ptrをそのまんまぱくって
T** ptr_ptr() { return &px_; }
みたいなのを付け足したのを自前でこしらえたらいいじゃん。
>>831
こらこらw
0833デフォルトの名無しさん
2008/06/21(土) 19:44:39ありがとうございます。
やはり普通にCComPtrを使うことにしました。
>>832
の意見は大変参考になりました。
ありがとうございました。
0834デフォルトの名無しさん
2008/06/21(土) 19:52:30CreateVertexBufferに渡すのは素のIDirect3DVertexBuffer9*で、
それを使ってintrusive_ptrを初期化すればいいかと。
0835デフォルトの名無しさん
2008/06/21(土) 20:51:57その警告だったら、DXUT.hの中でATLのヘッダ読み込めば出ないけどね。
ATL使うのがデフォなら、DXUT.hに追加してプリコンパイル済みヘッダと
使用するのもありだと思うけど。
0836835
2008/06/21(土) 21:00:56DXUT.hの中で読み込めばいいのは知ってたのか。
typoしたんだが直すまでもないな。
0837デフォルトの名無しさん
2008/06/21(土) 21:21:45CComPtrはかなり独立したテンプレートクラスだから、コピペでパクるのもいいぜ?
ってか俺はそうしてる。
なぜならVS2008にはatlbase.hが入ってないからだ;;
0838デフォルトの名無しさん
2008/06/22(日) 00:05:48不必要になったときっていつなんだ?
スタティックで参照されると一生消えないんだろうか?もしかして
0839デフォルトの名無しさん
2008/06/22(日) 00:08:19vector、list、set、map、stringくらいしか使ってないな・・・。
0840デフォルトの名無しさん
2008/06/22(日) 00:09:51setとmapってどういうときに使うの?
0841デフォルトの名無しさん
2008/06/22(日) 00:26:04参照がなくなった時だろ。
0842デフォルトの名無しさん
2008/06/22(日) 00:57:07普通はプログラムの終了時だと思うぞ
0843デフォルトの名無しさん
2008/06/22(日) 02:27:49mapは外部ファイルから読み込みするリソース(シェーダー、テクスチャ、モデル)なんかを
二重に読まないようにファイル名をキーにインターフェイス突っ込んどいて参照カウンタで管理に。
multimapとかmultisetなんかはパーティクルとかの挿入ソート代わりに。
0844デフォルトの名無しさん
2008/06/22(日) 07:02:25入ってないのExpress Editionだけだろ
0845デフォルトの名無しさん
2008/06/22(日) 10:15:190846デフォルトの名無しさん
2008/06/22(日) 11:05:11じゃあ、うっかりスタティックで参照しやがった馬鹿が開発チームにいたら
デフォでリークし続けるってこと?
参照あってもこっちが削除したいっていったら強制的に削除してほしいときは
どうしたらいいだろうか?
0847デフォルトの名無しさん
2008/06/22(日) 11:14:100848デフォルトの名無しさん
2008/06/22(日) 11:18:44優先度高の奴が残ってるときだけ参照あったら削除しないで
優先度低の奴は残ってても強制執行・・・みたいな
0849デフォルトの名無しさん
2008/06/22(日) 11:44:550850デフォルトの名無しさん
2008/06/22(日) 12:17:08言ってることがよく分からんが
その「スタティックな参照」を行ってるスコープから出れば解放されるんじゃないの
一番大きいスコープ=プログラム(プロセス)
スコープから出る=プログラムの終了
0851デフォルトの名無しさん
2008/06/22(日) 12:52:04スコープから出る時にデストラクタが呼ばれるならそれはLocal変数であってStatic変数ではない罠。
0852デフォルトの名無しさん
2008/06/22(日) 14:54:23スコープは例えただけで、関数内スタティック変数が関数抜けると
解放されるとかそういう意味で言ったんじゃないんだ
分かりづらい例えですまんかった
「プログラム終了時に消えると思う」に対して「スタティック参照したらリークするんじゃ」
って話だったから終了時に消えるって事を押したんだが
関数内スタティックが関数抜けても消えないっていうのを問題にしているのかね>>846は
0853デフォルトの名無しさん
2008/06/22(日) 16:32:05参照カウンタの概念は理解してるか?
それとグローバルスコープ(プログラム終了)を抜ける時に
グローバル変数やスタティック変数のデストラクタが呼び出されて
解放されることも。
0854デフォルトの名無しさん
2008/06/22(日) 17:30:450855デフォルトの名無しさん
2008/06/22(日) 18:06:10使いもしないスタティック参照がインスタンスを消させなくしているから
どーでもいいような優先度の参照に関してはつかんでても無視して強制的に削除したいということだよ
0856デフォルトの名無しさん
2008/06/22(日) 18:57:20DirectX関係のインターフェイスは余計な事しないでシンプルに扱ったほうがいい。
0857デフォルトの名無しさん
2008/06/22(日) 20:19:39weak_ptr
0858デフォルトの名無しさん
2008/06/22(日) 23:01:47かつ参照がいるのに強制削除って状況がおかしいよ。
0859デフォルトの名無しさん
2008/06/23(月) 00:03:08単にまともな管理が出来ていないだけにしか聞こえないな。
0860デフォルトの名無しさん
2008/06/23(月) 01:48:29シーンを何回も呼ぶ(ロードアンロードを繰り返す)んだけど
そのうちの1シーンがスタティックでポインタを保持してるところが多いのよ
いらなくなったらそのシーンは破棄するんだけどプログラム自体はスタティック参照だから
残るのよこれが
範囲が広すぎて修正不可能だからどうすんべーって感じなわけ
0861デフォルトの名無しさん
2008/06/23(月) 04:37:390862デフォルトの名無しさん
2008/06/23(月) 09:51:22てか破棄されうるシーンがスタティックなポインタを持ってるっておかしくね?
0863デフォルトの名無しさん
2008/06/23(月) 11:17:03強制削除とやらをしなければならないと思っているような気がするが。
>>838からの流れなんだろうけど、その後の他の人のレスと
話が噛み合っていない。
そもそも、リソースの管理に問題ありというのには同意。
0864デフォルトの名無しさん
2008/06/23(月) 13:04:070865デフォルトの名無しさん
2008/06/23(月) 16:01:33CreateDeviceでD3DCREATE_HARDWARE_VERTEXPROCESSINGが失敗すると思ってよいのでしょうか?
また、ビデオカードを使ってる環境でオンボードでも動作するように開発するには
D3DCREATE_SOFTWARE_VERTEXPROCESSINGで初期化を行えばあとはCPU速度次第ということになるのでしょうか?
0866デフォルトの名無しさん
2008/06/23(月) 16:21:38少なくともここ1年以内のIntel製オンボードは
D3DCREATE_HARDWARE_VERTEXPROCESSINGでも通るぞ
恐らくだが3年前の物でも通ると思う
0867デフォルトの名無しさん
2008/06/23(月) 16:53:54ありがとうございます
自分の環境が945Gなのですが駄目でした
この環境で動作させるには、頂点数やライティングに気をつければよいのでしょうか?
0868デフォルトの名無しさん
2008/06/23(月) 17:59:50頂点数とライティング、あとはVRAMを食いすぎないようにすれば十分な速度は保てると思う。
オンボードグラボは基本的にメインメモリからVRAMを取るから十分にメモリを積んでない
システムでVRAM食いすぎると酷いことになる。
でかいテクスチャを何枚も使ったりしないで簡単な3Dエフェクト程度の利用だったら
特に問題なく動くんじゃないかな。
0869デフォルトの名無しさん
2008/06/24(火) 00:10:48頂点シェーダはサポートしない(HW頂点処理ができない)んじゃなかったっけ
0870デフォルトの名無しさん
2008/06/24(火) 00:21:24グラフィックボードって何年前ぐらいの物ですか?
0871デフォルトの名無しさん
2008/06/24(火) 00:28:070872デフォルトの名無しさん
2008/06/24(火) 12:26:00X3000以降は使えるみたい
http://en.wikipedia.org/wiki/Intel_GMA#Table_of_GMA_graphics_cores_and_chipsets
0873デフォルトの名無しさん
2008/06/24(火) 15:23:12(PS処理省いたらめちゃくちゃ軽くなった)
0874デフォルトの名無しさん
2008/06/25(水) 20:02:310875デフォルトの名無しさん
2008/06/27(金) 17:12:500876デフォルトの名無しさん
2008/06/27(金) 17:15:34スプライトなり何なり使って画像を描画
↓
Zバッファだけクリア
後はお好きなようにどうぞ
0877デフォルトの名無しさん
2008/06/27(金) 17:26:45できました!
ありがとうございました。
0878デフォルトの名無しさん
2008/06/28(土) 01:10:000879デフォルトの名無しさん
2008/06/28(土) 07:25:15色々と試してみたのですが、パフォーマンスに影響があるようには思えないのですが
0880デフォルトの名無しさん
2008/06/28(土) 08:02:10SDKのヘルプには、
スクリーン空間の x 座標について、x の勾配を返します。
とありますが、具体的にどんな計算をしているのですか?
教えていただけないでしょうか?
0881デフォルトの名無しさん
2008/06/28(土) 14:04:28xの偏微分を返すって書いてるね。
0882デフォルトの名無しさん
2008/06/28(土) 15:43:46レスありがとうございます。
x方向の傾きを返してくれるみたいですね。
その傾きを求めるための具体的な値が、どのようなものなのか、
わからなくて困っています。
傾き == 高さ / 距離 の「高さ」と「距離」は、
どんな値が使われるのか知りたいです。
どなたか、よろしくおねがいします。
0883デフォルトの名無しさん
2008/06/28(土) 16:29:24配布してよいんでしょうか?cabですか?
0884デフォルトの名無しさん
2008/06/28(土) 17:00:26添付して配布は、ライセンス的に面倒なことになるんじゃなかったかな。
ウェブインストーラへのリンクを出せばいいと思う。
0885デフォルトの名無しさん
2008/06/28(土) 17:23:59HLSLのddx()/ddy()は、PSのdsx/dsyに対応する。
dsxのマニュアルには、レンダリングターゲットのx 方向の変化割合とあるので
↓か、それに近い形になるんじゃないかなあ
float2 delta = 1.0f / rendertarget.size;
float1 dsx = ( pixelcolor( x+delta.x, y ) - pixelcolor( x, y ) ) / delta.x;
float1 dsy = ( pixelcolor( x, y+delta.y ) - pixelcolor( x, y ) ) / delta.y;
0886デフォルトの名無しさん
2008/06/28(土) 17:58:22つhttp://msdn.microsoft.com/en-us/library/bb174600(VS.85).aspx
つhttp://msdn.microsoft.com/en-us/library/bb219742(VS.85).aspx
ファイル単体ならライセンス違反だが、最小構成なら2MB程度の添付で済む。
ファイル単体で添付できるにこしたことはないんだが、MSは自分らのランタイムを
プライベート配布されるのを嫌う傾向があるからなぁ。
0887デフォルトの名無しさん
2008/06/28(土) 21:55:22動かない、なんとかしろ、しか言わないキチガイにつきあうよりは、
自分トコから一括ダウソにしておいたほうがまだしもマシってことだろう。
0888デフォルトの名無しさん
2008/06/29(日) 14:32:56win32APIを使うべきなのかDirectXを使うべきなのかもよくわからないです
0889デフォルトの名無しさん
2008/06/29(日) 19:38:350890デフォルトの名無しさん
2008/06/29(日) 20:46:44SDKはどのバージョンを使えばいいのでしょうか?
9.0c以降多すぎてよく分からないです
開発環境や実行環境のサポート状況で適当に選んじゃっていいのかな
0892デフォルトの名無しさん
2008/06/30(月) 23:13:30サンプルプログラムなのでソースにエラーはないと思います
調べましたが原因が分かりません
よろしければどなたか御教授いただけないでしょうか?
エラー E2238 c:\Borland\Bcc55\include\d3dtypes.h 113: '_D3DCOLORVALUE' の宣言が複数見つかった
エラー E2344 C:\Program Files\mdsdk\Include\d3d9types.h 60: 一つ前の '_D3DCOLORVALUE' の定義位置
エラー E2146 c:\Borland\Bcc55\include\d3dtypes.h 130: 宣言には識別子が必要
エラー E2238 c:\Borland\Bcc55\include\d3dtypes.h 132: '_D3DRECT' の宣言が複数見つかった
エラー E2344 C:\Program Files\mdsdk\Include\d3d9types.h 70: 一つ前の '_D3DRECT' の定義位置
エラー E2146 c:\Borland\Bcc55\include\d3dtypes.h 149: 宣言には識別子が必要
エラー E2238 c:\Borland\Bcc55\include\d3dtypes.h 151: '_D3DVECTOR' の宣言が複数見つかった
エラー E2344 C:\Program Files\mdsdk\Include\d3d9types.h 51: 一つ前の '_D3DVECTOR' の定義位置
以下略
0893デフォルトの名無しさん
2008/06/30(月) 23:18:22日本語マニュアル必須なら2004OCT
不要なら最新版使っとけ
0894デフォルトの名無しさん
2008/06/30(月) 23:38:230895デフォルトの名無しさん
2008/06/30(月) 23:44:44どうしてもBCCがいいなら昔のバージョンを使うしかない
VC使えばいいと思うよ
0896デフォルトの名無しさん
2008/06/30(月) 23:49:530897デフォルトの名無しさん
2008/07/01(火) 00:08:51どうしてお前が難しいと思うか予想しなければいけないんだ?
0898デフォルトの名無しさん
2008/07/01(火) 00:09:35もし、移植できないコードがあれば、それはコードが間違ってるってことだから
安心して修正していいよ
0899デフォルトの名無しさん
2008/07/01(火) 00:10:250900デフォルトの名無しさん
2008/07/01(火) 01:18:06正規版OSならタダなんだから導入も糞もないだろ
0901デフォルトの名無しさん
2008/07/03(木) 10:53:32BCCを使う入門書(笑)や入門サイト(爆)は実在するんだ…
0902デフォルトの名無しさん
2008/07/03(木) 12:02:150903デフォルトの名無しさん
2008/07/05(土) 12:26:00コマンドラインのプログラムを作らないといけなくなったのですが、DirectShowベースで
実現可能でしょうか?
C:\> showHDV.exe /pid 10 /timecode 00:00:00:25 test.m2t ← こんな感じ
0904デフォルトの名無しさん
2008/07/05(土) 16:36:09とりあえずSDK読んで考えろ。
0905デフォルトの名無しさん
2008/07/05(土) 19:54:26上記のソースコードですが、CStreamSoundBuffer::Create内でCComPtrを二箇所使用しています。
CComPtrはググってみたところ、スマートポインタの一種と出ました。間違いないでしょうか?
また、bufferはサウンドバッファでm_pStreamBufferに受け渡されているので解放されないのに対し、
notifyは何にも受け渡されないので解放(Release)されてしまうように思われます。
IDirectSoundNotifyはIDirectSoundBufferと異なり解放されても問題ないのでしょうか?
0906デフォルトの名無しさん
2008/07/05(土) 20:07:00IDirectSoundBufferはサウンドの再生時に必要になるので必要な間にReleaseすると問題になります。
であれば、IDirectSoundNotifyは通知位置を設定するのに使ったので解放すると設定無効にならないのでしょうか?
0907デフォルトの名無しさん
2008/07/05(土) 21:48:18http://msdn.microsoft.com/ja-jp/library/cc370470.aspx
上記を見るかぎり、解放しても問題なさそうですね。
0908デフォルトの名無しさん
2008/07/05(土) 23:32:35あんまり有益じゃないアドバイスですね。
一応スレにはルールがありますので、ルールに則った回答をお願いします。
0909デフォルトの名無しさん
2008/07/05(土) 23:57:59プログラマーって極端だな
0910デフォルトの名無しさん
2008/07/06(日) 00:14:16最後に更新されたのはどのバージョンですか?
0911デフォルトの名無しさん
2008/07/06(日) 00:25:20今でも更新されているとお考えください
0912デフォルトの名無しさん
2008/07/06(日) 02:14:10つまり、女のPGは大変てこった
0913デフォルトの名無しさん
2008/07/06(日) 14:48:390914デフォルトの名無しさん
2008/07/06(日) 19:57:19DirectSoundでプライマリバッファのボリュームをいじると、Windowsアプリケーションの「ボリュームコントロール」でコントロールできるWavのところに反映されてしまうようでいまいちよろしくありません。
ゲーム終了時に元に戻すことも考えましたが、ゲーム中にユーザーが「ボリュームコントロール」からいじってたら〜と考えるとこれでも不適当かと。
なので、いったん
「ゲームのBGMや効果音のセカンダリバッファ」 > 「セカンダリバッファ」 > プライマリバッファ
と、1つセカンダリバッファをかませたいのです。
DirectXのヘルプを読むと「ほとんどのバッファの場合、出力先はプライマリ バッファと呼ばれるミキシング エンジンである」
とあったため、工夫すればセカンダリをかませることはできそうなのですが、良い手法はありますでしょうか?
0915デフォルトの名無しさん
2008/07/06(日) 20:21:20以上!
0916デフォルトの名無しさん
2008/07/06(日) 20:48:58大企業でさえそれなんだから別に気にしないってのも一つの手だとは思うが
どうしても嫌ならManagedDirectXのセカンダリバッファがヒントになるかもしれん
0917デフォルトの名無しさん
2008/07/06(日) 22:12:01現状、効果音を多重に鳴らす際にDuplicateSoundBufferを使ってます
でもこれ、鳴り終わるまではReleaseしちゃいけないので面倒です
今はここのイベント通知処理を利用し
ttp://msdn.microsoft.com/ja-jp/library/cc370470.aspx
play時にDuplicateSoundBufferで複製。ついでにstaticなリストにCComPtrでくるんで追加。
再生が終わったらリストからはずす(よって開放される)
という感じに実装しています
でもこれが異常に面倒。とてもほかの方々がそうやってるとは思えません
そもそもDuplicateSoundBufferについてぐぐるにひっかからなさすぎ(26件)
みなさん多重に再生する必要がある効果音などは、どのようにしているのでしょうか?
0918デフォルトの名無しさん
2008/07/06(日) 22:13:30再生が終わったらイベントが通知され(登録したコールバック関数が呼ばれ)、そこでリストからはずすようにしています。
リストが壊れないようにクリティカルセクションでかこってやったり、かなり面倒なんですよね
一度作ってしまえばあとは使うだけとは言え・・・
0919デフォルトの名無しさん
2008/07/06(日) 22:25:270920デフォルトの名無しさん
2008/07/06(日) 22:58:09再生終了はコールバックじゃなくて毎フレームのポーリングで対処してる
少なくとも俺のPCでは遅延とかメモリ食いすぎとかは起こってない
0921デフォルトの名無しさん
2008/07/06(日) 23:02:08私もそんな感じの作りにしてます
他で使うメモリに比べればサウンドで持っていく割合とか微々たるもんだしって感じに思えたので
0922デフォルトの名無しさん
2008/07/06(日) 23:05:54デュプリケートって内部的にカーソルとかその辺のインターフェイスがコピーされるだけで、
実体のサウンドファイルは1つのままだと思うだけどまさか全メモリコピーなのか?
0923デフォルトの名無しさん
2008/07/06(日) 23:10:06なん・・・だと・・・?
今まで全メモリコピーだったわけだが
SDKのリファレンス見たらそんなような事書いてあるな
どう考えてもDuplicateSoundBuffer使ったほうが効率的じゃねえか・・・
0924デフォルトの名無しさん
2008/07/07(月) 07:05:25お前w
昔のDirectX7本とかじゃこの手のは当たり前にのってるのに、最近はおざなりだよなー
0925デフォルトの名無しさん
2008/07/07(月) 19:46:010926デフォルトの名無しさん
2008/07/07(月) 23:35:320927925
2008/07/07(月) 23:35:360928デフォルトの名無しさん
2008/07/07(月) 23:50:550930デフォルトの名無しさん
2008/07/08(火) 00:10:420931デフォルトの名無しさん
2008/07/08(火) 00:48:58報告してるのを見たときは吹いた
0932デフォルトの名無しさん
2008/07/08(火) 07:05:59ちげーの?
「ドライバだよ!」とかいう言葉遊びは簡便な
0933デフォルトの名無しさん
2008/07/08(火) 10:01:37いやDirectXが処理してる。
音を出すのはサウンドカードだが音のデータをサウンドカードに流してるのはCPUだぞ。
デュプリケートは1つのバッファに対してどこ部分をプライマリにコピーするかって
情報をもったインターフェイスが増えているだけの話だからぶっちゃけ全部CPU処理だぜ。
不安ならセカンダリをLOCALで作成してDirectSound自体をCPU処理固定にすると
環境依存のバグが発生しなくなるのでお勧め。
元々サウンドカード上の専用メモリとかISA時代の転送が遅かった時代のカードにしかないし。
0934デフォルトの名無しさん
2008/07/08(火) 10:29:22おいおい、そりゃ「DirectXでソフトウェアエミュレート」すればDirectXの仕事だけどさw
普通に使ってればDuplicateSoundBufferの命令をうけて(ハード上なり、PCのメインメモリー上なりに)バッファを確保するのはサウンドカード・ひいてはそのドライバの仕事だぜ?
だからこそ、DuplicateSoundBufferは必ず成功するとは限らないんじゃないか。
0935デフォルトの名無しさん
2008/07/08(火) 12:46:43そもそもいったいいつの時代の話をしているんだ?
0936デフォルトの名無しさん
2008/07/08(火) 12:48:190937デフォルトの名無しさん
2008/07/08(火) 14:33:49「PCゲー作ってる会社でのよくあるサウンド関係のトラブルはそれだから注意しな」
と付き合いのある会社から言われたな
ちなみにSDKサンプルでも、きちんとDupできないならCreateでごまかすように組んである
自動ではやってくれない
0938デフォルトの名無しさん
2008/07/08(火) 19:12:39>DupできないならCreateでごまかす
それこそまさにISAの時代の話じゃなくて?
オンボードReadtek、USB外付け音源、サウンドブラスター、
MonsterSound あたりはテストしたが、そんな大きな不具合に遭遇したこと無いな。
それより、ASIO にした方が良いのかぁ、と思ったことは何度かある。
0939デフォルトの名無しさん
2008/07/08(火) 20:24:020940デフォルトの名無しさん
2008/07/08(火) 22:11:270941デフォルトの名無しさん
2008/07/08(火) 23:04:51愚民杉
0942デフォルトの名無しさん
2008/07/08(火) 23:53:19かなり初期の頃からDirectSoundだけはソフト処理でやるのが鉄板になってたはずだぞ。
0943デフォルトの名無しさん
2008/07/08(火) 23:57:24IDirectSoundBufferの確保時に、フラグでDSBCAPS_LOCSOFTWAREをいれるってこと?
0944デフォルトの名無しさん
2008/07/08(火) 23:57:250945デフォルトの名無しさん
2008/07/09(水) 00:08:35マイクロソフトが嫌気がさして、ソフトウェア処理でこれからは行く、とかっていう
記事を見た気がする。
Vista DirectSound HAL で検索をかけるといろいろ出てくる。
Windows は DTM 系のソフトが弱いってのはこの辺りが原因なのかねぇ?
ローランドあたりが先陣切ってやってくれないとね。
0946デフォルトの名無しさん
2008/07/09(水) 00:17:570947デフォルトの名無しさん
2008/07/09(水) 00:25:19そういうこと。
たとえば最初の3つはサウンドカードのメモリに確保されていて、
その後はメモリが足りなくてシステムメモリに確保された場合に、
ミキシングが絶望的な状況になる。
いまどきのCPUならSSEとかMMXあたりでミキシングできるし、
10個20個程度ミキシングしてもCPUの負荷なんざ1%も食わないのでサウンドカードは
ただの音声出力装置以外の機能は期待しない方がいいと思われ。
そもそもサウンドカードに専用メモリ乗ってたのってCPUからの転送が遅かったISA時代だしな・・・。
0948デフォルトの名無しさん
2008/07/09(水) 01:24:230949デフォルトの名無しさん
2008/07/09(水) 09:59:42みんなわりと音楽系はそんなに気をつかってないんだね
0950デフォルトの名無しさん
2008/07/09(水) 22:49:22正確には、Duplicate の時は成功するが Play の瞬間に失敗するようになる。
0951デフォルトの名無しさん
2008/07/09(水) 22:52:48今のCPUをもってしても遅延が絶望的に大きいのが欠点。
外部入力への反応での遅延は致命的。
ASIO であってもまだ不満。
0952デフォルトの名無しさん
2008/07/10(木) 00:19:59その程度なら1,2フレ遅れたところでたいした問題ないよ。
0953デフォルトの名無しさん
2008/07/10(木) 01:45:29ASIO がだめってどんなんだよ・・・。
ゲームの場合は少し前からSEを鳴らし始めればいいわけで。
0954デフォルトの名無しさん
2008/07/10(木) 15:47:380955デフォルトの名無しさん
2008/07/10(木) 18:54:55って書いてあるから、サウンドエフェクタとかボイスチャットみたいに
リアルタイムにキャプチャーした音を加工するやつじゃね?
0956デフォルトの名無しさん
2008/07/10(木) 21:49:550957デフォルトの名無しさん
2008/07/11(金) 00:10:260958デフォルトの名無しさん
2008/07/11(金) 00:38:210959デフォルトの名無しさん
2008/07/14(月) 17:58:10DirectSoundには、Direct3Dの
D3DCREATE_MULTITHREADED
のような、スレッド間利用に関するフラグのようなものはありますでしょうか?
どうも別スレッドでwavを読み込ませた時に「うまく読み込めない場合がごくまれにある」のです
私自身のたんなるミスの可能性も高いですが
0960デフォルトの名無しさん
2008/07/14(月) 21:02:14>DirectSoundには、Direct3Dの
>D3DCREATE_MULTITHREADED
>のような、スレッド間利用に関するフラグのようなものはありますでしょうか?
SDKのドキュメントをみたらどうだい?
>私自身のたんなるミスの可能性も高いですが
そう思うならデバッグしたらどうだい?
0961デフォルトの名無しさん
2008/07/14(月) 21:32:24お前はいつも役に立たないなぁ
0962デフォルトの名無しさん
2008/07/14(月) 21:32:29すいません。言葉足らずでした
ドキュメントはさらってみましたが「無い」と確信することができませんでした
ミスの可能性のほうももちろん調査中です。
ですが現状、SDKのサンプルをコピペしてテストしている状況でして、原因となりそうなのが
「DirectSoundを生成したスレッド以外のスレッドで、音のロードを行った」
くらいしか思いつかない状態なのです
0963デフォルトの名無しさん
2008/07/14(月) 23:35:48お前が言うなよ
>>962
「うまく読み込めない場合」って具体的に何?
言葉が足りないのはそっちじゃないの?
0964デフォルトの名無しさん
2008/07/14(月) 23:39:10知ってる人がいれば教えればいいだけの質問なんだから
0965デフォルトの名無しさん
2008/07/15(火) 00:17:29俺は別スレッドロードで失敗したことがないのでわからにい。
ファイル読み込みのルーチン自体がスレッドセーフじゃない可能性もありそうだ。
0966デフォルトの名無しさん
2008/07/15(火) 08:48:48Sprite->Draw()
IDirect3DDevice->DrawPrimitive()
の両方でテクスチャを変形させて表示したときスプライトの方はアンチエイリアシングみたいな色の補間が効いてたんですが
これって仕様と思っていいんでしょうか?
よくわかってない素人ですがよろしくお願いします
0967デフォルトの名無しさん
2008/07/15(火) 10:12:30FilterTypeは変更できる
グラフィックボードのドライバにも依存
0968デフォルトの名無しさん
2008/07/15(火) 10:59:54なるほど、別スレッドでのロードで失敗したことがない方がいらっしゃるということは、
単純に私のコードの問題そうです。
ちょっとネットで別サンプルを探してみるとします。
ありがとうございました。
0969デフォルトの名無しさん
2008/07/15(火) 11:44:59ttp://www.nomuraz.com/denpa/prog005.htm#IDPROG0028
ぐぐったり色々調べたのですが、解説してあるサイトは上記のところくらいしか見つからなく
海外でも検索してみたのですが、サンプルがおいてあるような
ところまでたどりつけませんでした。
サンプルがおいてあるサイト等ありましたらおしえてください。
0970デフォルトの名無しさん
2008/07/15(火) 12:00:520971969
2008/07/15(火) 12:07:360972デフォルトの名無しさん
2008/07/15(火) 12:17:35事故解決した内容を詳しく!
後でログを見る人の為にも
0973デフォルトの名無しさん
2008/07/15(火) 12:48:30>>971は偽者でまだ解決してません。
アニメーションメッシュならできましたが・・・
0974デフォルトの名無しさん
2008/07/15(火) 12:54:070975デフォルトの名無しさん
2008/07/15(火) 12:55:330976デフォルトの名無しさん
2008/07/15(火) 13:49:58DirectX逆引き大全500の極意: 紀伊國屋書店BookWeb
http://bookweb.kinokuniya.co.jp/htm/4798013161.html
0977デフォルトの名無しさん
2008/07/15(火) 13:59:21こういうやつって通報してアク禁にしてもらうことってできねーのかな?
0978969
2008/07/15(火) 14:01:23そこのソースではサイトにかいてあるようにうまくいかなかったなのです
あと、ヘッダーファイルもなかったですし・・・
>>976
アニメーションXファイルは、その本を買ってきて実現しました。
いま、スキンメッシュのXファイルをやってるのですが
これがうまくいかなくて困っているのです
0979デフォルトの名無しさん
2008/07/15(火) 14:05:59そこのサイトのヤツでOBBもとめるのはうまくいったよ、多少問題が出るから適当に手直しはしたが。
最小二乗法でOBBもとめるところさえ使えればボーン毎にOBB作るのなんてただの単純作業だし。
0980デフォルトの名無しさん
2008/07/15(火) 14:06:480981デフォルトの名無しさん
2008/07/15(火) 16:18:05だからXファイルは使うなと何度言えば分かるんですか!!
いい加減にしてください!
0982デフォルトの名無しさん
2008/07/15(火) 16:32:06Xファイルと同じくらい手軽に扱えるフォーマットと、ライブラリができないと、それは無理ってもんだぜ
0983デフォルトの名無しさん
2008/07/15(火) 16:40:310984デフォルトの名無しさん
2008/07/15(火) 16:58:36それを知るためには Xファイルのフォーマットを知る必要がある。
だから、それを聞きたいときには
「X ファイルのフォーマットの詳しい解説をしているサイトってありませんか?」
と聞いた方が良い。
0985デフォルトの名無しさん
2008/07/15(火) 17:12:25どうせ最後には「Xファイルから独自フォーマットへの変換(ry」だしな。
0986デフォルトの名無しさん
2008/07/15(火) 17:25:300987デフォルトの名無しさん
2008/07/15(火) 17:31:03スキンメッシュが使えて対応ソフトの多さやDirectX上での扱いやすさを考慮した場合決してダメなフォーマットではない。
仕様が古いのとソフトによっては出力形式にクセがあるのが欠点なだけだ。
シェーダーがんがん使うような用途には厳しいのは確かだが商用レベルを目指すのでも無ければ問題ない。
逆にXファイルのダメさを語ったところでMAYAとかXSIみたいな高価なソフトを所持していて
専用のエクスポートプラグインを書けるようなスキルがなけりゃ結局Xファイル使うことになるよ。
0988デフォルトの名無しさん
2008/07/16(水) 17:53:590989デフォルトの名無しさん
2008/07/16(水) 22:42:57おいおい冗談よせよ
0990デフォルトの名無しさん
2008/07/16(水) 22:56:12エクスポーターはお前に任せるから俺はゲーム作りたい
0991デフォルトの名無しさん
2008/07/16(水) 23:08:090992デフォルトの名無しさん
2008/07/16(水) 23:09:030993デフォルトの名無しさん
2008/07/16(水) 23:23:330994デフォルトの名無しさん
2008/07/16(水) 23:59:52と思ったけどここは初心者スレなんだよな。
正直、Xファイルに身体を合わせる方が俺には難しい。
0995デフォルトの名無しさん
2008/07/17(木) 08:06:30とても半日では終わらないんだが、作ったことが無い奴ほど適当なことを吠えるな。
0996デフォルトの名無しさん
2008/07/17(木) 11:00:03スキンメッシュは3日もあれば出来た。
自分でフォーマット作ったらxファイルとか2度と使う気にならなくなる。
0997デフォルトの名無しさん
2008/07/17(木) 11:08:53あとはこことか
ttp://www.inframez.com/
いきなり独自フォーマット作るとか初心者には無理。
既存フォーマットを独自で読み込んでるうちに自分が作りたいものに対して効率の良い
フォーマットが分かってくる。
0998デフォルトの名無しさん
2008/07/17(木) 13:33:180999デフォルトの名無しさん
2008/07/17(木) 13:36:431000小倉優子 ◆YUKOH0W58Q
2008/07/17(木) 13:37:1610011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。