【C++】 DirectX初心者質問スレ Part23 【C】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/05/22(金) 16:31:26これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ
【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。
【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。
【C++】 DirectX初心者質問スレ Part22 【C】
http://pc12.2ch.net/test/read.cgi/tech/1235736212/
0002デフォルトの名無しさん
2009/05/22(金) 18:17:45バッファに新しいデータを入れても古い音もしばらく鳴っています。
アーッと入力すると、アーッ、アーッ、アーッ、アーッ、アーッ・・・といった感じです。
どんな原因が考えられますか?
0003デフォルトの名無しさん
2009/05/22(金) 18:33:090004デフォルトの名無しさん
2009/05/22(金) 19:47:57・「DirectXにスプライトなどない」と何度もわめく馬鹿
0005デフォルトの名無しさん
2009/05/22(金) 19:50:46出来ないらしいですが、本当ですか?
0006デフォルトの名無しさん
2009/05/22(金) 19:52:50嘘ですよ
0007デフォルトの名無しさん
2009/05/22(金) 19:53:25どうやるんですか?
0008デフォルトの名無しさん
2009/05/22(金) 20:17:470009デフォルトの名無しさん
2009/05/22(金) 20:20:360010デフォルトの名無しさん
2009/05/22(金) 20:28:43テクスチャサンプルする時に
±オフセットするのか
確かに出来そう
どうも
0011デフォルトの名無しさん
2009/05/22(金) 20:36:00単位長ベクトルNがあります。
VをNを境界に反転させたいのですが
公式がわかりません。
教えてください。
VとNの内積 < 0 -> Vを反転させたい。
0012デフォルトの名無しさん
2009/05/22(金) 20:46:570013デフォルトの名無しさん
2009/05/22(金) 20:48:35D3DXVECTOR3 NormalV ;
D3DXVec3Normalize ( &NormalV, &V ) ;
if ( D3DXVec3Dot ( &NormalV, &N ) < 0 ){
V = -V ;
}
0014デフォルトの名無しさん
2009/05/22(金) 20:58:14ちがくね?
0015デフォルトの名無しさん
2009/05/22(金) 21:09:17を使うんじゃね?
0016デフォルトの名無しさん
2009/05/22(金) 21:11:28原点はどこだ
0017デフォルトの名無しさん
2009/05/22(金) 21:15:47最後の1行をそのまま式にしただけ
このままだとVとNの角度が90度を超えたときに逆方向を指すだけ
境界と反転をもうちょっと具体的に言ってくれたら直すけど
0018デフォルトの名無しさん
2009/05/22(金) 21:19:55原点は(0,0,0)です。
>>16-17
Nを法線とした原点を通る平面を
境界として反転させたいのです。
0019デフォルトの名無しさん
2009/05/22(金) 21:23:58平面に射影したベクトル + 平面の法線 * -平面とベクトルの先との距離
多分これだと思います。
0020デフォルトの名無しさん
2009/05/22(金) 21:32:52それとも、何か便利関数でもある?
0021デフォルトの名無しさん
2009/05/22(金) 21:34:31それとも必要なときに調べて、プログラムを作り上げていくんですか?
002219
2009/05/22(金) 21:39:51vertical = dot( N, V ) * N;
horizontal = V - vertical;
reverse = -vertical + horizontal;
0023デフォルトの名無しさん
2009/05/22(金) 21:59:45FM-TOWNSのスプライトはどっちにはいるの? ニセの方?
0024デフォルトの名無しさん
2009/05/22(金) 22:05:290025デフォルトの名無しさん
2009/05/22(金) 22:25:06マジでそんなんなる?
求めるベクトルをQとおくと
Q=2|V|cosθ-V
だよね?で
cosθ=dot(N,V)/|V||N|
をぶち込むとなんかちがくね?
ってなるんだけどちがうんかなぁ?
こんな計算久しぶりで死んだw
間違ってるかも(間違ってたらスマンコ)
0026デフォルトの名無しさん
2009/05/23(土) 00:02:04DirectX2DをVista環境で使用しています。ウィンドウ上に四角形を表示させて
マウスでその四角形をドラッグできるようにするプログラムを書いたのですが、
四角形をドラッグさせたときに、四角形ががたついてしまって困っています。
0027デフォルトの名無しさん
2009/05/23(土) 00:04:360028デフォルトの名無しさん
2009/05/23(土) 00:08:230029デフォルトの名無しさん
2009/05/23(土) 00:12:29003026
2009/05/23(土) 00:51:20>マウスでその四角形をドラッグできるようにするプログラムを書いたのですが、
>四角形をドラッグさせたときに、四角形ががたついてしまって困っています。
単にメッセージループからマウスの座標情報を取り出すのに失敗している
だけでした。GetCursorPos関数を使うとすんなりとうまくいきました。
自己解決しましたので、一応報告しました
0031デフォルトの名無しさん
2009/05/23(土) 02:05:31○SDIのViewに格子模様平面をD3DPT_LINELISTで描画し、マウスのドラッグによってカメラを回転させる。
格子模様自体は描画されているのですが、どうしてもカメラの回転が行われません。
描画の流れは以下のようになっています。
�@マウスの移動を検知してD3DXMatrixRotationYawPitchRoll関数でメンバ変数のカメラ用マトリクスを回転させる
�Aバックバッファクリアm_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,255), 1.0f, 0 );
�Bシーン開始m_pd3dDevice->BeginScene()
�Cカメラ設定m_pd3dDevice->SetTransform( D3DTS_VIEW, &m_matView );
�Dプロジェクション設定m_pd3dDevice->SetTransform( D3DTS_PROJECTION, &m_matProj ); ※このマトリクスは最初一回のみ生成して変化なし
�E頂点バッファのセットm_pd3dDevice->SetStreamSource( 0, m_pVB, 0, sizeof(D3DTLVERTEX) );
�Fインデックスバッファのセットm_pd3dDevice->SetIndices(m_pIB);
�G頂点フォーマットのセットm_pd3dDevice->SetFVF( D3DFVF_TLVERTEX );
�Hインデックスバッファ描画m_pd3dDevice->DrawIndexedPrimitive(m_DrawType, 0, 0, m_max_vertex, 0, m_max_primitive);
�Iシーン終了m_pd3dDevice->EndScene();
�Jバックバッファからプライマリバッファへ転送m_pd3dDevice->Present( NULL, NULL, NULL, NULL )
今見ると�E�F�Gは最初の一回以降要らないかなとも思いましたが今は毎回やるようになってます。
回転が上手くいってないのかとカメラビュー用のマトリクスを作る際の初期値で見える角度を変えてみても
変化が無く、まったく�C�Dが機能していない状態です。
やり方が間違ってるか、こういうミスの可能性があるという事があればご教授頂けないでしょうか?
よろしくお願いします。
0032デフォルトの名無しさん
2009/05/23(土) 02:40:40てか、ソースをうpってもらったほうが速そう
0033デフォルトの名無しさん
2009/05/23(土) 03:01:24D3DFVF_TLVERTEXは座標変換済みの頂点フォーマットだよ。
そのフォーマットを使った場合は、座標変換は飛ばされる。
0034デフォルトの名無しさん
2009/05/23(土) 18:27:49↓
【。゚(゚´Д`゚)゚。】 ノムヒョン、少年の時に遊んだ裏山で命絶つ…
http://tsushima.2ch.net/test/read.cgi/news/1243064969/
0035デフォルトの名無しさん
2009/05/23(土) 18:33:17Pentium4だけしかパフォーマンスの向上は見込めないのでしょうか。
0036デフォルトの名無しさん
2009/05/23(土) 18:55:02003731
2009/05/23(土) 19:31:49ありがとうございます。
#define D3DFVF_MYVERTEX (D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_SPECULAR | D3DFVF_TEX1)
と定義してD3DFVF_MYVERTEXを使用することでカメラが動くようになりました。
D3DFVF_XYZのところをD3DFVF_XYZRHWにしてRHWの要素を入れてしまうと2D用に変換済みとして扱われてしまうという事ですね。
ここが怪しいとはまったく想像すら付いていませんでした。
0038デフォルトの名無しさん
2009/05/23(土) 19:33:040039デフォルトの名無しさん
2009/05/23(土) 19:59:58命令セットが関係してたんですか。すっきりしました どうもです
0040デフォルトの名無しさん
2009/05/23(土) 20:36:170041デフォルトの名無しさん
2009/05/23(土) 20:55:10Teapod(やかんじゃないよ!)に直接は関係ない。
0042デフォルトの名無しさん
2009/05/23(土) 22:55:320043デフォルトの名無しさん
2009/05/23(土) 22:56:21for (unsigned int i = 0; i < mesh->GetNumVertices(); i++) {
data[i].tu = asinf(data[i].nx) / D3DX_PI + 0.5f;
data[i].tv = 0.5f - asinf(data[i].ny) / D3DX_PI;
}
の様にテクスチャを貼り付けたんですが、他にいい方法はありますか?
テクスチャで包み込むようにして貼り付けたいです。
0044デフォルトの名無しさん
2009/05/23(土) 23:02:05今ゲームを作ってるんですが、たとえばキャラを動かすときには1ピクセルずつ移動、画面を更新するという市よりをしてます
こういう処理を楽にするのがderectx・・ですよね?
0045デフォルトの名無しさん
2009/05/23(土) 23:18:200046デフォルトの名無しさん
2009/05/23(土) 23:27:050047デフォルトの名無しさん
2009/05/23(土) 23:32:27directxとはなんでしょうか?
公式サイトでは
>Windows のマルチメディア パワー、DirectX はグラフィックス・サウンド・3D アニメーションの最高のエクスペリエンスを皆さんにお届けします。
と書いてあるのですがさっぱりわかりません
0048デフォルトの名無しさん
2009/05/23(土) 23:38:31端的に言えば、ハードウェアを抽象化して一意な手法でそこにアクセスできる
手段を提供してくれるソフトウェアレイヤー。
0049デフォルトの名無しさん
2009/05/23(土) 23:39:18ありがとうございます全然分かりませんのでぐぐって出直してきます。
0050デフォルトの名無しさん
2009/05/23(土) 23:51:39ぐぐっても解説サイトや入門サイトがヒットしません。
0051デフォルトの名無しさん
2009/05/24(日) 00:00:31ググってもまともに出て来ないぞw
俺には、アンタの言ってる事の方が手に負えない所感
0052デフォルトの名無しさん
2009/05/24(日) 00:05:100053デフォルトの名無しさん
2009/05/24(日) 00:47:38をお願いします。
0054デフォルトの名無しさん
2009/05/24(日) 00:51:080055デフォルトの名無しさん
2009/05/24(日) 01:21:47UVを指定して1枚のテクスチャで包むのは無理
法線からキューブマップかスフィアマップをルックアップする方法しかないんじゃね
0056デフォルトの名無しさん
2009/05/24(日) 08:48:240057デフォルトの名無しさん
2009/05/24(日) 15:03:09ここ1ヶ月朝から晩までPCの前に張り付いてるのに打開できない・・・
0058デフォルトの名無しさん
2009/05/24(日) 15:35:34この仕事は向かない
問題の切り分けができるようになる能力は必須だ
0059デフォルトの名無しさん
2009/05/24(日) 15:38:07どうすればまん丸に見えますか?
0060デフォルトの名無しさん
2009/05/24(日) 15:55:080061デフォルトの名無しさん
2009/05/24(日) 16:39:220062デフォルトの名無しさん
2009/05/24(日) 17:16:071ヶ月も悩むくらいならソースうpれよ、みてやるから
>>59
射影行列を生成している部分
たぶんD3DXMatrixPerspectiveFovLHかそれに準ずる関数の
アスペクト比を指定する引数に1.0fが適当な値になってるんじゃない?
そこにレンダリングターゲットの「横/縦」の値をつっこむ
0063デフォルトの名無しさん
2009/05/24(日) 17:51:01変更したら出来ました。
0064デフォルトの名無しさん
2009/05/24(日) 18:24:42>>62
お願いします
directsoundでマイク入力をスピーカーから出力したいのですが、音がバッファ分(1秒)遅れるうえに何回か繰り返されます。
0065デフォルトの名無しさん
2009/05/24(日) 18:32:36ソース見てないが、バッファという一旦溜める処理なのに
入力を遅延無しで出力出来ると思った根拠は?
0066デフォルトの名無しさん
2009/05/24(日) 18:36:23mmioにバッファード入力?みたいなプールしておいて一定で出すみたいなのあった気がします
結局mmioやんなきゃならないのか・・・
0067デフォルトの名無しさん
2009/05/24(日) 18:40:33よってスレ違い
0068デフォルトの名無しさん
2009/05/24(日) 19:02:400069デフォルトの名無しさん
2009/05/24(日) 19:18:49ライトのAmbient→ライトの当たってる範囲のみ影響
0070デフォルトの名無しさん
2009/05/24(日) 23:56:41また、エフェクトでは HLSL を使い、ピクセルシェーダ 2.0 でコンパイルしています。
http://souko2.sakura.ne.jp/temp/mono.jpg
こんな感じに、ある 3D のシーンの一部の矩形を、モノクロ化しようとしていますが、
これの実現方法が分かりません…。
ちょっと説明しにくいのですが、球体などを描いた後、
矩形を 2D 物体として描画し、その際に矩形をモノクロ化しようと思います。
式としては、描画先の色を d、また、rgb 成分を [r][g][b] と表記するとして、
finalColor[r] = 0.1145f * d[r] + 0.5886f * d[g] + 0.2989f * d[b];
finalColor[g] = 0.1145f * d[r] + 0.5886f * d[g] + 0.2989f * d[b];
finalColor[b] = 0.1145f * d[r] + 0.5886f * d[g] + 0.2989f * d[b];
となります。
つまり、例えば最終色の [r] 成分を求めるために、描画先の [r][g][b] 成分が必要になりますが、
ピクセルシェーダでは描画先の色を使えないし、ブレンディング処理で D3DRS_BLENDOP を調べても、このような式を扱うオペランドは見つかりませんでした。
ここでつまってしまいました。
●制限
1.矩形の大きさや数は、毎フレーム変化する可能性があるので、その都度ステンシルバッファを作って…というのはできるだけ避けたい
(ステンシルバッファでどうにかなる問題かどうか分からないですが)
2.処理速度の都合上、シーンを一度テクスチャに描画し、ロックしてピクセルの色を取得し…というのも避けたい
(シーンの描画は直接バックバッファに行いたい)
制限2を破るしかないでしょうか?
何かいい方法があればお教えいただけないでしょうか。よろしくお願いします。
0071デフォルトの名無しさん
2009/05/24(日) 23:59:08普通にピクセルシェーダーでその矩形だけ描けばいいだろ。
0072デフォルトの名無しさん
2009/05/25(月) 00:13:52各物体をモノクロで描くのと、合成した後にモノクロ化するのでは結果は変わるので、
「各物体をそれぞれモノクロで描く」 のではなく、「合成後の結果をモノクロにしたい」 のです。
0073デフォルトの名無しさん
2009/05/25(月) 00:19:490074デフォルトの名無しさん
2009/05/25(月) 00:20:30確かにアルファブレンディングでは内積出来ないね
考え付く方法としては2つ
�@
1パス目に3Dシーンをテクスチャに描画
2パス目にテクスチャをバックバッファにコピー
3パス目にモノクロ矩形をバックバッファに描画
�A
1パス目に3Dシーンをバックバッファに描画
2パス目にViewport(又はシザーなんたら)を変更して、
モノクロ部をバックバッファに描画
0075デフォルトの名無しさん
2009/05/25(月) 00:21:50テクスチャAにシーンをレンダリングする
テクスチャBに矩形情報をレンダリングする
テクスチャAをBの情報をつかって加工しつつバックバッファにレンダリング
じゃ、だめ?
0076デフォルトの名無しさん
2009/05/25(月) 00:23:36だが普通はテクスチャに描画だろうな
うちの環境だと上の関数のが高速だったけど
0077デフォルトの名無しさん
2009/05/25(月) 00:31:34IDirect3DDevice9::StretchRect も試してみます。
割とよく使いそうな処理だと思うのに、単純なシェーダとブレンディングのみで出来ないというのが意外でした。
ありがとうございました。
0078デフォルトの名無しさん
2009/05/25(月) 00:54:10自分勝手なやり方を指して意外とか…もうねw
0079デフォルトの名無しさん
2009/05/25(月) 08:11:270080デフォルトの名無しさん
2009/05/25(月) 08:30:02バックバッファじゃ実質ARGB8888にしかかけないだろ。
0081デフォルトの名無しさん
2009/05/25(月) 08:56:45/ ̄\ 例文.
| ^o^ | 「私はお腹がすいています。」
\_/
_| |_
| |
( 二⊃.| |
1、例文を話し手に合ったくだけた文に、漢字→かな(カナ)またはかな(カナ)→漢字に直す。
2、テキトーに修飾や無駄な句読点や間を付加する。
3、(重要)過去の事実、または現在の状況をこれでもかと差し込む。
4、倒置、反復、擬人、擬態を用いる。
/ ̄\ 完成例.
| ^o^ | 「昼に食べたカツサンドはとっくの昔に別れを告げていて、俺の胃は今や開店休業状態だ。
\_/ たった今でも次のお客さんを催促してしきりに呼び鈴を鳴らしてやがる。
_| |_ つまり、俺のハラの虫はお怒りでグーグーグーグー唸ってるってことで、
| | 簡単に言えば俺は腹が減っているのだ。」
( 二⊃.| |
0082デフォルトの名無しさん
2009/05/25(月) 11:55:090083デフォルトの名無しさん
2009/05/25(月) 12:43:16どうやってやるの?
一応D3D9前提だけど、D3D10なら
それでもいいから教えて。
0084デフォルトの名無しさん
2009/05/25(月) 15:26:33私は左手系で組んでるんですけど、参考書が
全部右手系なんで、どっか間違ったらしく
今原因不明の逆回転病にかかって治せません。;;
0085デフォルトの名無しさん
2009/05/25(月) 15:54:210086デフォルトの名無しさん
2009/05/25(月) 17:25:49IDirect3DDevice9::CreateTextureにD3DUSAGE_RENDERTARGETを指定してつくったテクスチャに対してレンダリングするので、
なにか差があるのでしょうか?
0087デフォルトの名無しさん
2009/05/25(月) 17:58:330088デフォルトの名無しさん
2009/05/25(月) 20:34:11素材とライトはどうすれば良いですか?
0089デフォルトの名無しさん
2009/05/25(月) 20:58:46diffuseとspecularが同じ色だと金属っぽく、diffuseに関わらず
specularが光源の色と同じだとプラスチックっぽい感じになる。
0090デフォルトの名無しさん
2009/05/25(月) 21:18:420091デフォルトの名無しさん
2009/05/25(月) 22:06:540092デフォルトの名無しさん
2009/05/25(月) 22:22:20光る部分の形が変わるだけっぽいけど
0093デフォルトの名無しさん
2009/05/26(火) 00:25:20テクスチャ張ったほうが早い
0094デフォルトの名無しさん
2009/05/26(火) 00:42:53効果あるのってバンプ、環境ぐれーじゃねぇのw
妙なシェーダに凝るよりはこれをうまく使えるようになったほうがいいと思うな
質感に関しては・・・
0095デフォルトの名無しさん
2009/05/26(火) 00:56:570096デフォルトの名無しさん
2009/05/26(火) 01:30:49それ質感違うじゃん
そういう後で載せればいいのはとりあえずいいんだ
気分でON・OFFすればw
0097デフォルトの名無しさん
2009/05/26(火) 06:52:29実用レベルの影を出そうとしたら、テクスチャのサイズが大きくなりすぎる
分散シャドウマップを使えば良い感じになりそうだけど
俺の頭じゃ理解できん!
0098デフォルトの名無しさん
2009/05/26(火) 07:34:22センチメートル単位にするのが一般的だったりしますか?
0099デフォルトの名無しさん
2009/05/26(火) 09:11:16アルファブレンドは対応してないと読める。
しかし、DirectDrawで描画しているようにバイナリ上からは見えるYU-RISは、
あれだけ多彩な描画エフェクトを整備している。
あれはCPUで実現しているんだろうか?
それとも他の方法だろうか。Direct3Dを呼び出しているようには見えなかったんだが……。
0100デフォルトの名無しさん
2009/05/26(火) 12:03:54ゲーム中にSleep()以外でループ止めたいのですがどんなやり方がありますか?
効果音が鳴り終わるまで描画を止めたりしたいです
アドバイスお願いします
厚かましいかもしれませんがスレ違いだったら誘導お願いします
0101デフォルトの名無しさん
2009/05/26(火) 12:05:320102デフォルトの名無しさん
2009/05/26(火) 12:08:19一般論ならそうなる。
効果音が鳴り終わるまで待つというなら、それは何で鳴らしているのかによってくるな。
効果音の再生を別のスレッドで行い、再生の終了が検出可能ならば
CreateEvent()/WaitForSingleObject()等で同期をかけるのが一般的か。
0103デフォルトの名無しさん
2009/05/26(火) 12:12:12例
音を鳴らす
if(m_count = 120) { // 2秒待つ
次のシークエンスへ
}
m_count++;
こんな感じでできればと思ってます
2秒待ってから次のシークエンスに移行したりです
0104デフォルトの名無しさん
2009/05/26(火) 12:31:24それはそのまま、サーフェイスとテクスチャの差になる。
テクスチャはサーフェイスのスーパーセット(コンテナ)なので
サーフェイス+αの機能を持つ。
具体的には、シェーダの入力パラメータとして再利用できるなど。
>>99
DirectDraw時代は、MMXでピクセルエフェクトが
定石だったような。QuakeとかDiabloとか。
まあD3Dを使ってるかどうかは、DependencyWalkerや
PIXとか使えばわかるんじゃない?
0105デフォルトの名無しさん
2009/05/26(火) 12:52:46if(m_count > 120)
{
描画
}
m_count++;
0106デフォルトの名無しさん
2009/05/26(火) 13:14:42そうか!
今までむしろサーフェイスがテクスチャを持っているんだと思ってた。
そう考えるとしっくりいくところもあるかなぁ。
で、やっぱりCPUでガリガリやるのか。
いまさら車の再発明するにはしんどそうな世界だな……。
やはりシェーダーいじりで作っていった方が無難か。
0107デフォルトの名無しさん
2009/05/26(火) 14:21:49D3DXで読み込んでもデフォルトだと頂点カラーは読み込んでくれないみたいなのでCloneFVF
でD3DFVF_DIFFUSEを加えてもダメでした。
テクスチャステージの設定
SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
頂点カラーは
m_pd3ddevice->SetRenderState(D3DRS_COLORVERTEX, TRUE);
m_pd3ddevice->SetRenderState(D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_COLOR1);
m_pd3ddevice->SetRenderState(D3DRS_SPECULARMATERIALSOURCE, D3DMCS_COLOR2);
デバッグのウォッチ1という欄にもしかしたら関係するかも知れない表記があったのですが良く分かりません
http://appleloader.bbsnow.net/pic_loader/nomal/html/1_7.html
正方形に頂点カラーを付けただけですが書きだしたXFileをアップしたので頂点カラーが表示されるか見てもらえると幸いです
XFileに頂点カラーは定義されてました
http://down11.ddo.jp/uploader/download/1243314815.x/attatch
PASS : 0000
お願いします
長文失礼しました
0108デフォルトの名無しさん
2009/05/26(火) 15:41:25とりあえず、D3DXMeshの頂点バッファに
頂点カラー情報は乗ってるの?
>>107で行っている各種設定は、
頂点バッファに頂点カラーが含まれていることを前提とした
表示の為の設定です。
これらをいかに変えようが
元々無いなら、反映のしようがない。
D3DXLoadMeshFromX()系でXfileを読み込んで
頂点カラーが反映されないようなら、元々サポートしてないと
いうことなのかもね。
XFileもみたけど、、まともなviewer持ってないんで
これもよくわからん。
0109デフォルトの名無しさん
2009/05/26(火) 17:11:17ID3DXMeshインターフェースでは頂点カラーのデータは保持しません
別の手段を考える必要があるでしょう
0110デフォルトの名無しさん
2009/05/26(火) 17:13:260111デフォルトの名無しさん
2009/05/26(火) 17:17:30>>108
ブレークポイントを置いて調べたのですがD3DFVF_DIFFUSEはありましたが頂点カラーは渡されてませんでした
>>109
オリジナルのフォーマットで書きだして読み込むってことでしょうか?
0112デフォルトの名無しさん
2009/05/26(火) 17:28:04Xファイルから頂点バッファに読み込んでいけばいいだけだと思うけど
そもそも頂点カラー付きXファイルで何がやりたいの?
それは本当に必要なの?
0113デフォルトの名無しさん
2009/05/26(火) 17:41:21全部の頂点が0xFFFFFFFFという扱いになるんだろうか?
0114デフォルトの名無しさん
2009/05/26(火) 18:00:11マテリアルカラー*テクスチャカラーで描画することが多いからじゃ?
0115デフォルトの名無しさん
2009/05/26(火) 18:28:22>> 112
趣味でゲームを作ろうと思っていて
頂点カラー付きのフィールドモデルを表示したいからです
確認したいのですが
>Xファイルから頂点バッファに読み込んでいけばいいだけだと思う
D3DXLoadMeshFromX()で読み込んでD3DXCreateMeshFVF()でメッシュを作ればいいのでしょうか?
それともD3DXLoadMeshFromX()で読み込んだ後ID3DXMESHから頂点バッファを取得して
なんらかの方法でXFileからの頂点カラー情報を直接頂点バッファに渡せばいいのでしょうか?
0116デフォルトの名無しさん
2009/05/26(火) 19:25:16多分だけど、今までの流れから
D3DXLoadMeshFromX()は頂点カラーを読み出さない。
だから、一旦普通にD3DXMeshを作ったら、
D3DXCreateMeshFVF()で、FVFにD3DFVF_DIFFUSEを
マージしたD3DXMeshを作り直す。
んで、頂点バッファをロックして頂点カラー成分を上書きする。
って形になるんじゃないかなぁ。
書き込むべき頂点カラーだけど、これはなんらかの形で
xfileから持ってくる必要があるだろうね。
これは一苦労だし、頂点カラーとD3DXMeshの組み合わせはお勧め出来ない?
0117デフォルトの名無しさん
2009/05/26(火) 19:31:08D3DXCreateMeshFVF()じゃなくて
ID3DXBaseMesh::CloneMeshFVF()ね。
0119デフォルトの名無しさん
2009/05/26(火) 20:30:160120デフォルトの名無しさん
2009/05/26(火) 20:39:430121デフォルトの名無しさん
2009/05/26(火) 20:53:54D3DXMeshの頂点バッファのデータみてみたけど
頂点カラーもデータ自体はロードしてるっぽいぞ
DrawSubset内で何かいらん処理をしてるんじゃなかろうか
ロードはいままで通りD3DXMeshで読み込んで
取得した頂点バッファとインデックスバッファを使って
DrawIndexedPrimitiveで描画すればいけるんちゃう?
0122デフォルトの名無しさん
2009/05/26(火) 21:34:17エミッシブが白の球体
0123デフォルトの名無しさん
2009/05/26(火) 22:48:47アルファ値が0の時はうっすら表示
アルファ値が255の時は普通に表示
であってますか?
0124デフォルトの名無しさん
2009/05/26(火) 22:58:27アルファが0なら完全に見えないだろ。
0125デフォルトの名無しさん
2009/05/26(火) 23:00:22どこで間違ったorz
0126デフォルトの名無しさん
2009/05/26(火) 23:07:21どう表示するかはレンダーステートの設定次第。
0127デフォルトの名無しさん
2009/05/26(火) 23:29:55device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ONE);
device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
device->SetRenderState(D3DRS_TEXTUREFACTOR, color);
device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_DIFFUSE);
device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_TFACTOR);
device->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_DIFFUSE);
device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_TFACTOR);
こんな設定です。
0128デフォルトの名無しさん
2009/05/26(火) 23:34:18データを見てみました。
D3DXLoadMeshFromXで読み込んだところ、
メッシュのFVFは( D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_DIFFUSE )になり、
メッシュ内の頂点バッファのデータにも頂点色(Diffuse)が存在しました。
(Xファイル内の頂点色と同じ値でした)
また、DrawSubsetによる描画でも頂点色が反映されました。
ただし、Ambientは頂点データに存在しないのでマテリアルのものが使われました。
(陰の部分に頂点色が反映されない)
あと、2個目のサブセットのマテリアルのEmissiveに、黒以外の値が入っているので
描画時にそれが使われて自己発光していました。(白っぽく表示された)
ということで…、
pDevice->SetRenderState( D3DRS_AMBIENTMATERIALSOURCE, D3DMCS_COLOR1 );
で、頂点色(Diffuse)をAmbientとして使う設定にし、
マテリアルのEmissiveを黒(0.0f, 0.0f, 0.0f, 1.0f)にすれば、
たぶん>107さんが意図している表示になると思います。
0129デフォルトの名無しさん
2009/05/26(火) 23:40:060130デフォルトの名無しさん
2009/05/26(火) 23:50:06加重平均の式書いてみろよ
srccolor x α + destcolor x (1-α)
だろ?
ちゃんとなってるか自分で確認しろ
0131デフォルトの名無しさん
2009/05/27(水) 00:07:17int count=0;
if(DXUTIsKeyDown('A'))
{
count++;
}
のように記述しても、一回しかカウント変数にプラスされずに困っています。押すたびにカウントされるようにするにはどうすればいいのでしょうか?
0132デフォルトの名無しさん
2009/05/27(水) 00:25:33プログラム書いたことあんの?w
int count=0;
これで毎回初期化されてるから0なんだろ?
staticで逃げられるけど
どうも状況を想像するにそれで逃げられるとは思えないなw
0133デフォルトの名無しさん
2009/05/27(水) 06:57:59>>127さん
レスありがとうございます
試してみます!
0134107
2009/05/27(水) 08:17:29黒を表示したいのですがどうやればいいのでしょうか・・・?
赤や青はちゃんと頂点カラーとして思い通りに表示されました
アドバイスよろしくお願いします
0135デフォルトの名無しさん
2009/05/27(水) 08:38:560136デフォルトの名無しさん
2009/05/27(水) 14:26:50黒って何?
11;0.070588;0.000000;0.015686;1.000000;,
これの事? ちゃんと表示されるよ
ためしにXファイル最後のほうのマテリアルのエミッシブの
0.784314;0.784314;0.784314;;
をすべて0.0に修正して表示するとどうなる?
0137134
2009/05/27(水) 19:12:36m_pd3ddevice->SetRenderState(D3DRS_EMISSIVEMATERIALSOURCE, D3DMCS_COLOR1);
にしたら思い通りに描画されました
しかし黒線の中だけ頂点カラーが反映されていませんでした
オブジェクト回転させてみたら正面向くときだけ壁の部分が頂点カラー反映されなくなるので
ライトに問題があるのかもしれませんので調べてみます
XFileのマテリアルは一律
Material {
1.000000;1.000000;1.000000;1.000000;;
51.200001;
0.000000;0.000000;0.000000;;
1.000000;1.000000;1.000000;;
TextureFilename {
"テクスチャ名";
}
}
となっています
ここが問題かもしれないというのがあればアドバイスください
よろしくお願いします
0138デフォルトの名無しさん
2009/05/27(水) 19:13:18http://appleloader.bbsnow.net/pic_loader/nomal/html/1_9.html
連投すいません
0139デフォルトの名無しさん
2009/05/29(金) 01:26:370140デフォルトの名無しさん
2009/05/29(金) 01:49:37自分で実装する必要があります
0141デフォルトの名無しさん
2009/05/29(金) 01:55:46リアルタイムでそんな機能いらないだろw
0142デフォルトの名無しさん
2009/05/29(金) 02:05:14だから重くなるし必要ないのかな?
なんでそんな機能があるんだろう
0143デフォルトの名無しさん
2009/05/29(金) 02:32:59モデリングソフトには必要な機能だろ
なにもリアルタイム3Dばっか作ってる人だけじゃねぇし
どんだけ想像力ないんだよw
0144デフォルトの名無しさん
2009/05/29(金) 02:34:02それに、増えたポリゴンを摘んで造詣するなど、モデラならではの利点もある
0145デフォルトの名無しさん
2009/05/29(金) 02:38:49まあ一瞬で軽い処理だけでできないってことがわかったのでサンクス
0146デフォルトの名無しさん
2009/05/29(金) 02:49:41ベトナムで生き別れた兄さん!
0147デフォルトの名無しさん
2009/05/29(金) 02:50:57いや別にやってやれないこともないんじゃない?
なにか条件を絞り込むとかさ
0148デフォルトの名無しさん
2009/05/29(金) 03:10:50ライティングを頂点シェーじゃなくて
法線の線形補完とかでピクセルシェーダでやれば
実際のポリゴン数よりなめらかに表示されるんじゃない?
実装も簡単だし
ただし、激重になる可能性はあるが
0149デフォルトの名無しさん
2009/05/29(金) 06:01:350150デフォルトの名無しさん
2009/05/29(金) 07:34:450151デフォルトの名無しさん
2009/05/29(金) 08:09:210152デフォルトの名無しさん
2009/05/29(金) 08:50:390153デフォルトの名無しさん
2009/05/29(金) 09:18:26ちょっとした変更で簡単に出来た気がする
0154デフォルトの名無しさん
2009/05/29(金) 09:35:210155デフォルトの名無しさん
2009/05/29(金) 10:30:51そんな状況あるのか?
流石に一個まるまる使う事はないだろw
0156デフォルトの名無しさん
2009/05/29(金) 10:35:48while( oldClock+1000/60 > clock() );
してCPU100%使ってたのは俺だけでいい
0157デフォルトの名無しさん
2009/05/29(金) 11:03:37while ( TRUE ) {
if ( PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE) ) {
if ( !GetMessage(&msg, NULL, 0, 0) ) break;
TranslateMessage(&msg);
DispatchMessage(&msg);
} else {
if ( フレームレート制御 )
{
GameLoop() ;
}
}
とかやると100%いくんでない?
0158デフォルトの名無しさん
2009/05/29(金) 11:19:110159デフォルトの名無しさん
2009/05/29(金) 12:13:58ちゃんとやるならあとどれだけ待つか計算してそのうち何%くらいかでSleepかけるかな
0160デフォルトの名無しさん
2009/05/29(金) 14:27:12ディレクショナルライトを設置したのですが、どうもうまくいきません。
表示しているのは、板ポリゴン1枚、メッシュ球(sphereで作った)、メッシュ人体(Xファイル読み込み)です。
ライトをオフにすると全部表示されますが、オンにすると球だけ光が当たり他は真黒になってしまいます。
原因として何が考えられるでしょうか?
0161デフォルトの名無しさん
2009/05/29(金) 15:06:17法線データがない
0162デフォルトの名無しさん
2009/05/29(金) 16:35:010163デフォルトの名無しさん
2009/05/29(金) 17:21:01Present後すぐに次のフレーム向けの処理に移行したい等で待たない事もある
0164デフォルトの名無しさん
2009/05/29(金) 17:57:47基本的にいまどきのビデオカードなら、VSYNC同期を指定してもPresentで待たない。
ドライバの設定で指定できる(隠し設定の場合もある)フレーム数までキューが
溜まるまでは、バッファに溜め込むようになっている。
(そのために暗黙的にバックバッファを余分に作っている)
キューが上限に達したら、どこでブロックするのかは確認してないが、多分Presentか
あるいはBeginSceneで画面が更新されるまで待たされる。
そういう意味では、Presentで待つとも言える。
しかし、GPUが描画した結果に対してLockしてCPUからアクセスするようなことをすると
描画が終わるまで待たないといけないので、そこで処理がブロックされてしまう。
そのような意図がなくてもLockのフラグ指定等を間違えて使っていると、無駄な
描画待ちでパフォーマンスが落ちる。
また、SetTextureやSetRenderTargetをしたままにせずに、Presentの前に明示的に
解除して、GPUにもう必要ないというヒントを与えることも重要らしい。
ただし、このような描画命令のバッファリングは、その分画面が更新されるまでに
遅延が発生するので、アクション性の高いゲームでは嫌われる。
その場合に昔からよく使われる対策が、Presentの直前でバックバッファをLockして
強制的に描画待ちを発生させる方法。(MSはLockではなくQuery使えと言ってるが)
0165デフォルトの名無しさん
2009/05/29(金) 22:54:460166デフォルトの名無しさん
2009/05/29(金) 23:13:49オレは164の情報が素直に参考になった口なんだが。
いつもPresent()なんで何も考えずにNULLしか渡してないもんな。
0167デフォルトの名無しさん
2009/05/29(金) 23:39:12垂直同期かどうかはしんねーけど
昔作ったアプリの挙動が変わるとかいうバグはいまのところないし
0168デフォルトの名無しさん
2009/05/29(金) 23:45:110169デフォルトの名無しさん
2009/05/30(土) 00:57:27ありがとうございます。
D3DFVF_NORMALを追加したら表示されました。
0170デフォルトの名無しさん
2009/05/30(土) 06:06:020171デフォルトの名無しさん
2009/05/30(土) 06:54:550172デフォルトの名無しさん
2009/05/30(土) 07:16:47に分けて、パスも名前\\ってつけたしプロパティでユニコードとかいくつか設定をしてデバッグしたら
今までエラーが出なかったクリック時の変数の初期化でエラーが出て、これはヌルで初期化したら解決した
でアニメーションはちゃんとしてるのに物体が真っ黒
元と大体同じはずなのになんで?DXUTの問題とかエフェクトファイルの場所とか?
0173デフォルトの名無しさん
2009/05/30(土) 08:38:24初めの質問で、これを出さない時点で、
残念ならがお前はプログラムするのには性格やら能力やら諸々向いてない
明らかに、テクスチャかライティングの問題
大方、Xファイルが指す画像ファイルのパスが変わったんだろ
0174デフォルトの名無しさん
2009/05/30(土) 08:42:59経験が浅いからどこが重要かわからないのは誰でもあることなんじゃないか?
0175デフォルトの名無しさん
2009/05/30(土) 08:59:08質問する内容をちゃんと伝えられない、のはまったく別の問題
そんな奴は、プログラミングのスキルが上がった所で
自分しか知らない事を伝えもしないで、それを前提で質問とか平気でする
だからプログラマ(その他もろもろの仕事に)向かない
0176デフォルトの名無しさん
2009/05/30(土) 09:17:25だからライティングではないと思うしソース中のXファイルのパスはちゃんと変えたし
0177デフォルトの名無しさん
2009/05/30(土) 09:19:49質問する内容をちゃんと伝えられない、のはまったく別の問題
そんな奴は、プログラミングのスキルが上がった所で
自分しか知らない事を伝えも/ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ 質問とか平気でする
\ だからプログラマ(その他も | うるさい黙れ | /
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\_______/ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∨ (゚д゚ ) ぐおおお
<⌒/ヽ-、__ノヽノ |
/<_/____/ < <
0178デフォルトの名無しさん
2009/05/30(土) 09:26:400179デフォルトの名無しさん
2009/05/30(土) 09:26:49だから、質問するくらいのレベルなのに知ったかすんな
Xファイル”内”、にパス付きで画像ファイルが指定してあるだろ
それと整合取れてるのか?って話
0180デフォルトの名無しさん
2009/05/30(土) 09:27:47そうこれだわ多分サンクス
0181デフォルトの名無しさん
2009/05/30(土) 09:31:15>だからライティングではないと思うしソース中のXファイルのパスはちゃんと変えたし
自分でやったのはフォルダの位置変えだけなのに、
パスの問題だと思えない時点 & 自分に落ち度が無いかの如くの発言
してる時点でプログラマを通り越して、まともな社会人になれないと思うww
0182デフォルトの名無しさん
2009/05/30(土) 09:32:490183デフォルトの名無しさん
2009/05/30(土) 09:50:13凡人以下が勘違いしちゃってるとしか思えんw
それにDXUTやD3DXを使ってるくせに、3Dゲーム作ってるセンスってww
0184デフォルトの名無しさん
2009/05/30(土) 09:51:29社会人になれないとか
それはDirectXに関わる話か
0185デフォルトの名無しさん
2009/05/30(土) 09:56:01まとに聞く事も出来ず、しかも自分の落ち度も省みず、質問者の姿勢としてもなってない
これのプログラマや社会人としての適正意外、なにを指摘しろとw
0186デフォルトの名無しさん
2009/05/30(土) 10:01:47別にデバイスがどうのとか知らなくてもPC上の高速な3Dゲー作れるだろうし問題なくね?知らないけど
0187デフォルトの名無しさん
2009/05/30(土) 10:02:210188デフォルトの名無しさん
2009/05/30(土) 10:04:36使いこなせないで、
”3Dゲーム作ってる超絶センス”
とか、もうライブラリ機能を自分の能力と勘違いしてるだろ
としか言い様がない
0189デフォルトの名無しさん
2009/05/30(土) 10:04:45覚える事の方が多いし、時間が経てば自力で気づくし
だから甘やかさないことにしたんだよね、まあ今回はちょっと解決が早まったから感謝してるけど
0190デフォルトの名無しさん
2009/05/30(土) 10:06:31DXUTを選んでる時点で"センス"はないね。
1年で3Dゲームを作ったという点は確かに立派だけど。
DXUTを使ってる時点で"高速"なゲームでもない。
たんに最近のハードウェア任せのごり押しに過ぎない。
0191デフォルトの名無しさん
2009/05/30(土) 10:08:50DirectX初心者質問スレで頓珍漢な質問&レスをした挙句
それで解決して言う事が、ピリッと違いますね
さすが、超絶センスの持ち主
0192デフォルトの名無しさん
2009/05/30(土) 10:09:36物足りなくなったときに、より低レベルのものに取り組めばいい。
0193デフォルトの名無しさん
2009/05/30(土) 10:12:559のExtrasかDX8、mediasdk辺り。
0194デフォルトの名無しさん
2009/05/30(土) 10:17:12普通の人はね
でも、自称3Dゲーム作る超絶センスがある持ち主は別なんじゃないかね?
例えば
物理演算ラリブラリを使って1日で物体の挙動が物理制御できたら
物理演算の超絶センスがあると言えるのか?
0195デフォルトの名無しさん
2009/05/30(土) 10:17:470196デフォルトの名無しさん
2009/05/30(土) 10:22:43別にDirectXとかゲーム機作りたいわけじゃないし
0197デフォルトの名無しさん
2009/05/30(土) 10:22:54得意の後だし情報の追加ww
プレステ1とか64レベルを指して光速なんて、お前意外に知るかって話だwww
0198デフォルトの名無しさん
2009/05/30(土) 10:26:17プログラマのセンスが無いと思うが…
出来合いのシステムを使おうが、センスある奴は理解して
頓珍漢なはまりなんてしないんだよ、はまってる時点で何を言おうがセンスは無いだろ
0199デフォルトの名無しさん
2009/05/30(土) 10:26:48まあDXUT外すとか俺のセンスから言えば1ヶ月もあれば余裕でできるだろとは思ってる
0200デフォルトの名無しさん
2009/05/30(土) 10:29:48>>196の方がプロよりの考えだよね。
0201デフォルトの名無しさん
2009/05/30(土) 10:30:410202デフォルトの名無しさん
2009/05/30(土) 10:33:35プロは基本を理解してるからこそ、人様の物を利用して早く終らせようとする
基本がなって無い奴が、御託を並べて人様の物を使っても
使いこなせなくて、このスレとかで頓珍漢な質問をする羽目になる
0203デフォルトの名無しさん
2009/05/30(土) 10:36:58プロドライバーなどが、アクセル踏んだままクラッチ操作して車の挙動を制御したとしよう
それは、アクセル、クラッチ、エンジン等の車の挙動を理解して、自分の行動の結果をわかってるからこそ
教習所に通ってるレベルの奴が、アクセル踏んだままクラッチ操作だけをまねしても
クラッチ壊すのがオチ
0204デフォルトの名無しさん
2009/05/30(土) 10:40:06「DXUT使える俺超センス」とか言われても微笑ましさしか感じないって言う。
0205デフォルトの名無しさん
2009/05/30(土) 10:42:190206デフォルトの名無しさん
2009/05/30(土) 10:46:33自分でシステム作れないが、他の出来合いのシステムを利用だけすることが出来るのがコーダー作業員w
0207デフォルトの名無しさん
2009/05/30(土) 10:51:40どうせNIH症候群のライブラリ厨だろ?
良くある簡易ライブラリと違ってDXUT使ったからって
低レベル操作ができなくなるわけじゃないし
時間掛けてもしょうがない所は何でもつかってでも短縮して
本当に時間を掛けるべき所に力をいれた方がいい
0208デフォルトの名無しさん
2009/05/30(土) 10:58:09俺をセンス無いと言うならこの人を論破しろよな
0209デフォルトの名無しさん
2009/05/30(土) 11:02:00しかし使いこなせないで、DXUTやD3DXの使い方を質問する位なら
DXUTやD3DXが何をやってるか理解出来るレベルになって使わないと
時間をかけたいところすら出来ないレベルの連中が多いだけ
DXUTやD3DXが何をやってるか理解出来てるなら
自分で使う事のトレードオフを考えたり、なにより使いこなせない訳ないし
0210デフォルトの名無しさん
2009/05/30(土) 11:04:12歪曲するなよ
3Dゲーム作ってる超絶センスの持ち主が
実は、DXUTやD3DX使ってます、って話だろ
0211デフォルトの名無しさん
2009/05/30(土) 11:04:14ある程度安定して動くと分かってるシステムがあったら迷わず使っちまうなぁ
システムから作り始めたらそこのデバックやらバグ取りやらで
結構な時間使っちまうし、納期は待ってくれないし
システムから作りたいってことは
もしシステムに致命的なバグがあって、それで損害とか出しても
責任を取るって覚悟があるってことでしょ?
そこは素直にすげーって思える
0212デフォルトの名無しさん
2009/05/30(土) 11:07:35確かに実際にそうではないね
DXUTを使ってPCゲーを商業ベースで出してるなんて聞かないし
そもそもDXUTに不具合があってもMSが責任あるわけじゃないし
0213デフォルトの名無しさん
2009/05/30(土) 11:11:15ある程度DirectXを理解してる人にとっては
手間を省く手段になり得るものだとは思うけど
初心者が関数をぽんぽんっと呼べば何でも出来るようなものだっけ?
0214デフォルトの名無しさん
2009/05/30(土) 11:13:29BMPとして完全に別ファイルにあるテクスチャ画像を
XファイルとD3DX使って、あまつさえテクスチャ画像を移動させといて、
黒くなって描画されませんと言う奴が、自称
”3Dゲーム作ってる超絶センスの持ち主”
世も末だね
0215デフォルトの名無しさん
2009/05/30(土) 11:15:540216デフォルトの名無しさん
2009/05/30(土) 11:16:38Xファイル内に画像ファイルの情報が入ってる、と気が付くと思うけどねぇw
0217デフォルトの名無しさん
2009/05/30(土) 11:16:54DirectXを使ってるのはPCゲームだけじゃないぞ
DXUTベースで動いてるソフトは意外とある
DirectXAppWizardベースで動いてたゲームも結構あるしな
マイクロソフトが責任を取ってくれるわけじゃないけど
自分でデバックしなくてもある程度のバグが既知になるだけで結構違うと思う
0218デフォルトの名無しさん
2009/05/30(土) 11:17:52だからなんでDXUTとD3DX使ったらセンスが無い事になるんだよ
本をマッハで読めてメモリやらポインタやら一瞬で理解してコードとか暗記して手打ちできる奴以外センス無いとか言う電波論なわけ?
0219デフォルトの名無しさん
2009/05/30(土) 11:20:17こんな会話と同義だろ
2千円札なんて流通してないよね?
回答)千円札の流通なんて枚挙に暇がないがな
???
0220デフォルトの名無しさん
2009/05/30(土) 11:23:20と言おうとしていとまを変換したら暇になったってのは秘密だぜ
0221デフォルトの名無しさん
2009/05/30(土) 11:25:03お前は自分に都合の良い解釈を辞めろw
パスの問題で頓珍漢な質問して、プログラムのセンスが無いという話と
”3Dゲーム作ってる超絶センス”を自称して
DXUTやD3DX使ってるって話だろ
プログラム歴やDX歴で個々の問題を片付けようとするな
0222デフォルトの名無しさん
2009/05/30(土) 11:29:01普通にDirectX環境が無い業界(PS3とか)を目指してる奴は
DirectX初めて数ヶ月後には、D3DX相当の自作(解析)を始めたりするぞw
0223デフォルトの名無しさん
2009/05/30(土) 11:29:390224デフォルトの名無しさん
2009/05/30(土) 11:31:11正直、どっちがいいのが自分の中で結論出てないからでしょ?
煽るほうからすればそんなのでどっちでもいいんだよ
DXUT使ってることでもってる自分でも気づかない負い目に蹴りいれられてるだけなこと気づけ
0225デフォルトの名無しさん
2009/05/30(土) 11:31:58とりあえずDXUTとセンスの間には何の関連性もないな
Xファイルにファイルパスミスなんて誰もが通る道じゃん?
多少調子に乗ってるくらい生暖かく見守ってやれよw
ほめて伸ばすって言葉もあるくらいだし
俺個人的には「DirectXを使える」ようになるには半年もいらないけど
「DirectXを理解した」といえるようになるには3〜5年はいると思ってる
センスがあっても経験がないと上みたいはアホなミスで引っかかって時間潰すんだよね
0226デフォルトの名無しさん
2009/05/30(土) 11:32:14それを世の中では、”出来ていない”と言うのですよwwww
0227デフォルトの名無しさん
2009/05/30(土) 11:33:17そんなのセンスじゃねえよ、誰でも勉強したようにしか成長しない
0228デフォルトの名無しさん
2009/05/30(土) 11:33:380229デフォルトの名無しさん
2009/05/30(土) 11:34:19そういう奴は何年も言語とかの勉強してきた奴だろ
もしくはオープンGLとか
0230デフォルトの名無しさん
2009/05/30(土) 11:35:03DirectShow はWindows SDK
0231デフォルトの名無しさん
2009/05/30(土) 11:35:26お前は自分に都合の良い解釈を辞めろw
>>214>>216
これがプログラムセンスの問題
3Dゲーム作ってる超絶センス、とは別の話だろ
0232デフォルトの名無しさん
2009/05/30(土) 11:36:07センスとは最初からあるものではなく磨くものなのだよ
0233デフォルトの名無しさん
2009/05/30(土) 11:37:150234デフォルトの名無しさん
2009/05/30(土) 11:38:25そんなことはない、プログラム歴半年でDX初めてとかでも結構居るぞ
…OpenGLには、算術関数等は無いが?
…あんたさ、全角使うから書き込みバレバレだよw
0235デフォルトの名無しさん
2009/05/30(土) 11:39:55これなんのつもりでやってんの?w
だいたい会社にそろってるし
他社のエンジン使ってる会社だったら意味ないよw
0236デフォルトの名無しさん
2009/05/30(土) 11:43:08俺は実際片手間でやっててこの成長度なわけだし
だから有意義にできるからセンスがあるんだよ、あれもこれも短時間に手に入れるにはセンスがいるだろ
たまたまパスに気づかなかったのはセンスの有無とは関係ない、その内気づいた
0237デフォルトの名無しさん
2009/05/30(土) 11:44:59別に隠す気とかねえよ
そんな駆け引きやってるとか考えてんならお前の言ってる事がこっちをびびらせるための嘘だともとれるがな
0238デフォルトの名無しさん
2009/05/30(土) 11:45:19考えてるならそれは夢を見すぎだぞ
0239デフォルトの名無しさん
2009/05/30(土) 11:46:22気がつかなかった自分の間抜けさを反省するどころか
そのうち気づいたと負け惜しみを言うセンスw
0240デフォルトの名無しさん
2009/05/30(土) 11:46:52は?
当然、ベクトルや行列やスキニングの基本処理を覚える為だろ
会社で作業員やるなら確かにいらんが、それしか頭に無いのかw
会社にあるエンジンや、売ってるミドルウェアは誰かが作ってるに決ってるだろ
んで、それは必ず古くなる、この業界だと凄い速さで
作業員くんは、誰かが作ってくれないと仕事が出来ないわけですよw
0241デフォルトの名無しさん
2009/05/30(土) 11:49:30内容は全く無かったがな
また来週末あたりに爆弾投下を頼む
0242デフォルトの名無しさん
2009/05/30(土) 11:49:46たまたまならね
しかし、今回は
自分でフォルダ移動しかしてない、>>214の事実
これをもってして、たまたまとは言わないと思うね
0243デフォルトの名無しさん
2009/05/30(土) 11:55:48と後だしで言ってる奴がした行動
DirectX初心者質問スレへの頓珍漢な質問
プライスレスw
0244デフォルトの名無しさん
2009/05/30(土) 11:56:15実際プロパティいじらないとできないところとかあったし
0245デフォルトの名無しさん
2009/05/30(土) 12:00:43超お得意の、後だし情報
今回は追加じゃなくて、過去の全否定ですか!?
いやはや…
ともかくさ、センスあるんだろ
>>214の事を何とも思わなかったのかい?
0246デフォルトの名無しさん
2009/05/30(土) 12:00:48お前らとは違う
就職して人生かけなくても十分片手間でできる
お前らはまたDirextXの仕様が変わったwwwとか言ってあくせくしとけよ、それでたくさん知ってるからセンス有るとか思っとけ、俺は必要なものだけすばやく使うから
0247デフォルトの名無しさん
2009/05/30(土) 12:02:18経験上いらんことを言ったら違うとこで煽られるからな
これも1年で覚えたスレで質問するセンスだぜw
0248デフォルトの名無しさん
2009/05/30(土) 12:04:14だから、それを強みと思うのは”お前の都合”なんだよ
お前と逆の立場で、仕事としてゲーム作って金が貰える強み、とかに反転できるだろ
そう言うのをさ、レスの初期のころに向いてないって指摘されてただろw
0249デフォルトの名無しさん
2009/05/30(土) 12:07:26は?>>214は、お前自身の問題だろ
D3DXとXファイル使ってる&フォルダの中身を見てるなら
Xファイルと画像BMPファイルは別に存在して
且つ画像BMPの名前を記述してないが、Xファイル名は記述している
センスあるなら、その事実から直ぐに分るだろ?
って話だ、その内容を質問しろって話じゃねーよw
0250デフォルトの名無しさん
2009/05/30(土) 12:08:290251デフォルトの名無しさん
2009/05/30(土) 12:09:220252デフォルトの名無しさん
2009/05/30(土) 12:09:52こういうスレの態度をリアルで出すかのごとく言う奴ってなんなの?
リアルで出すわけねえじゃん
0253デフォルトの名無しさん
2009/05/30(土) 12:12:29そういえば、どういう式を使えば表現できるんだろうね。
気が向いたら調べてみようかな。
0254デフォルトの名無しさん
2009/05/30(土) 12:12:53リアルで出さないと思った所でボロが出るのが大半
お前、会社か学校かで嫌われ者だろ
特定の少数の友達しかいない、若しくは居ないw
0255デフォルトの名無しさん
2009/05/30(土) 12:13:56だからDXUTとヴィジュアルスタジオのファイルのつながりとかプロパティとかのミスかと思ったんだって
そっちはいずれやってたって、センスあるし、確かに真っ先に確認すべきだったけどな、今となっては
作業がヴィジュアルスタジオとかの処理よりだったからそっちに頭がいっぱいになったんだよ
0256デフォルトの名無しさん
2009/05/30(土) 12:16:20センスある人間の言い訳とは思えないw
言ってる内容もプログラムセンスがあるとも思えないww
0257デフォルトの名無しさん
2009/05/30(土) 12:18:35お前、>>170で言ってる事とまったく違ってるだろ
>今まで普通に見えてたオブジェクトがプロジェクトのファイルの場所とかソースのファイルの場所とかいじってたら黒くなって見えなくなったんだけどなんで?
0258デフォルトの名無しさん
2009/05/30(土) 12:20:23お前って底辺っぽいよな
自分を殺したり人に気使ったり人に嫌われないようにしないと生きていけない環境なんだよな、友達とか嫌われるとかに最大の興味がある奴はそう
別に俺は勝ち組予定だからそんな環境に入らなければならないつもりはないし、顔も良いからリーダータイプだったし
0259デフォルトの名無しさん
2009/05/30(土) 12:21:44…すまん、図星だったか…
言い過ぎたよ
0260デフォルトの名無しさん
2009/05/30(土) 12:22:48今見ると焦ってた割にはもう正解付近に近い質問できてるじゃん、やっぱりあと数分で気づいてたな
0261デフォルトの名無しさん
2009/05/30(土) 12:23:35単純なs,p,d・・・軌道は簡単なんだけど
sp2,sp3とかの混成軌道が難しい
そして反応に重要なのは後者だったりする・・・
0262デフォルトの名無しさん
2009/05/30(土) 12:26:22まだ製作途中でゲームの形をしてないとかなら良いとこ取りな動画でもいいし
「俺はゲームが作れる」って言い張ってるんだから
パスの問題が解決したなら多少は動く絵があるんでしょ?
うp
0263デフォルトの名無しさん
2009/05/30(土) 12:31:18むしろお前の図星だろ、突くように言ったんだけどな
ゲーム会社にどれほどの学歴がいるかとか年収とか人間環境とか知らないけど、思考自体底辺っぽいし
人間関係が思考の中で優先されるような仕事環境は底辺がやるものと思ってるから
0264デフォルトの名無しさん
2009/05/30(土) 12:32:38質問や回答でないものを延々と語りたいやつは他でやれ。
0265デフォルトの名無しさん
2009/05/30(土) 12:34:24>人間関係が思考の中で優先されるような仕事環境
全ての会社の基本ですw
お前程度の奴は、上司が気に入らなかったら徹底的にイビられるぞ
会社のイジメは性質が悪いぞ?w
0266デフォルトの名無しさん
2009/05/30(土) 12:37:24モデリングのセンスがまだ無いからそこの成長混みで3年くらいかけて大作作るつもりだし
それを作り出すためにコピーして新プロジェクト作ったんだよ
0267デフォルトの名無しさん
2009/05/30(土) 12:38:41だからそれはお前の常識だろ
お前の低学歴ゆえの底辺環境を人にあてはめんな
0268デフォルトの名無しさん
2009/05/30(土) 12:51:05現場責任者レベルの人が「職人」みたいな人だと
周りもみんな出社してから退社するまでただ黙々と作業するなんてことは結構あるな
人間関係に気を使う人だと
たまに冗談とかも出たり和やかな空気で仕事できるけど
0269デフォルトの名無しさん
2009/05/30(土) 12:55:29いまの自分の仕事に不満はないけど
隣のチームがすげー楽しそうなんだよ
あのディレクターの下で働きたいって普通に思える
0270デフォルトの名無しさん
2009/05/30(土) 12:59:462ちゃんでもなるなって言われてるし
便利ツール貰える以外に価値ないだろ
0271デフォルトの名無しさん
2009/05/30(土) 13:00:270272デフォルトの名無しさん
2009/05/30(土) 13:01:27こんな流れじゃ初心者が来ても質問できないよ?
意地張ってないでさっさと仲直りしろよ。
0273デフォルトの名無しさん
2009/05/30(土) 13:03:190274デフォルトの名無しさん
2009/05/30(土) 13:07:030275デフォルトの名無しさん
2009/05/30(土) 13:14:040276デフォルトの名無しさん
2009/05/30(土) 13:33:530277デフォルトの名無しさん
2009/05/30(土) 13:39:24もうちょっと使われるようになるかもね
0278デフォルトの名無しさん
2009/05/30(土) 14:24:55ゲームが作りたいんであってシステムが作りたいわけじゃないし。
個人的にはオープンソースライブラリ使う⇒完成させたらライブラリの中を気にしてみる
⇒気づけばDirectXウマーくらいでいいと思うけどね。
いずれプロになりてーっつーなら別だけど。
0279デフォルトの名無しさん
2009/05/30(土) 14:30:29は?
それがD3DXみたいなもんを作ることなの?
D3DXなんて数学の本みながらテキトーに作ればいいじゃん
これがなんの勉強になるの?
どうせなら使い方を知っておいてくれよ
あまりのズレっぷりに悶絶したw
0280デフォルトの名無しさん
2009/05/30(土) 14:32:05バンプ、環境、グレアぐらいは入ってないとマジでとらない
年々ライブラリチームは難易度が上がってる気がする
ゲーム作っていったほうが最近は楽だよ
0281デフォルトの名無しさん
2009/05/30(土) 18:23:37憲法改正で軍靴の足音が
聞こえてくるアルヨー!!!
 ̄ ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧∧ ウリナラにも聞こえるニダ! ノ ゚.ノヽ , /}
/ 支\  ̄ ̄ ̄ ̄ ̄ ̄ ̄V ̄,,イ`" 、-' `;_' ' ヒィー、スミマセンスミマセン!!!
( `ハ´) ,-、 ∧_∧ (,(~ヽ'~∧朝∧
( ~__))__~) )'~ レ 、<丶`∀´>. i`'} (@Д@-),, ノ ))
| | | ~つ /核∧_∧ | i' (( l|lll|lll| (⌒,)
(__)_) / "ゝ<丶`∀´> 。/ ! と( とノレ
/ { } /},-'' ,,ノ ∨ ∨ Σ ガンガンガン…
./.| ./.| ./.| ./_;=-" ,i' _,,...,-‐-、/ i
/核/ /核/ /核/ <,,-==、 ,,-,/ / ̄ ̄``\l|l|l|l|l|l|l/
_ / /_ / / _ / / {~''~>`v-''`ー゙`'~_-_ニ三ミ:/ /"^`\、二 の .言 ギ ひ そ 二
\/ ./ヘ\/ ./ヘ\/ ./ヘ . .レ_ノ ./´ ヾ|テ〉 'テテヽ二 か .っ ャ ょ れ 二
.◎丶i ◎.丶i .◎丶i '' |テ〉 'テテ` |.〈ッ u 二. !?. て グ .っ は 二
./.| ./.| ./.| . |.〈ッ u | `ニ'' 二. る で と 二
/核/ /核/ /核/. | ゙ニ''′ ノ `r--‐''_, 二 し 二
_ / /_ / / _ / / `r--‐''__, ┘ ̄´ 二 て 二
\/ ./ヘ\/ ./ヘ\/ ./ヘ .,.-┘ ̄´ / 0 /l|l|l|l|l|l\
◎丶i ◎.丶i ◎.丶i
0282デフォルトの名無しさん
2009/06/01(月) 05:20:390283デフォルトの名無しさん
2009/06/01(月) 06:25:030284デフォルトの名無しさん
2009/06/01(月) 06:39:14そんなに違わないの?
0285デフォルトの名無しさん
2009/06/01(月) 07:30:37スプライトを描いてもバックバッファにかかれるんですけど?
0286デフォルトの名無しさん
2009/06/01(月) 10:30:000287デフォルトの名無しさん
2009/06/01(月) 10:53:15>四角ポリゴン
そんなモノは無い。
0288デフォルトの名無しさん
2009/06/01(月) 13:57:19DirectXにスプライトなど無い
0289デフォルトの名無しさん
2009/06/01(月) 15:20:020290デフォルトの名無しさん
2009/06/01(月) 15:24:10あと、曲面を表現する際には三角形の方が四角形よりも表現性が高い。
0291デフォルトの名無しさん
2009/06/01(月) 17:10:30D3DXはDirectXではない。
0292デフォルトの名無しさん
2009/06/01(月) 17:22:460293デフォルトの名無しさん
2009/06/01(月) 18:31:06ちょっと古い記事だが。
http://msdn.microsoft.com/ja-jp/library/dd148679.aspx
D3DXはDirect3Dの上位レイヤーに位置する列記とした
DirectXの一部(ヘルパ サービスを提供するユーティリティ ライブラリ)だ。
嘘を書いちゃいけない。
スプライトはD3DXの機能の一部だから同様の論理で。
0294デフォルトの名無しさん
2009/06/01(月) 18:42:39基地害に関わらない方がいいと思うよ
0295デフォルトの名無しさん
2009/06/01(月) 18:56:080296デフォルトの名無しさん
2009/06/01(月) 19:15:42ID3DXSprite インターフェイスは、MicrosoftR Direct3DR を使ってスプライトを描画するプロセスを単純化する一連のメソッドトを提供する。
0297デフォルトの名無しさん
2009/06/01(月) 20:14:02ID3DXLine インターフェイス
ID3DXLine インターフェイスは、テクスチャ化した三角形を使ったライン描画を実装する。
D3DXにラインは存在しないが、ID3DXLineというインタフェイスは存在する。
ただそれだけの話。
0298デフォルトの名無しさん
2009/06/01(月) 20:32:320299デフォルトの名無しさん
2009/06/01(月) 20:42:05ID3DXLineをラインとは呼ばない
ID3DXFontをフォントとは呼ばない
ID3DXSpriteをスプライトとは呼ばない
何故ならそれらは個別のインタフェイスを表す言葉ではなく、一般用語だから。
0300デフォルトの名無しさん
2009/06/01(月) 20:50:51どうしたらこんな変な翻訳になるんだろう?
0301デフォルトの名無しさん
2009/06/01(月) 20:52:59普通に呼びキスね。はいさようなら。
0302デフォルトの名無しさん
2009/06/01(月) 20:57:140303デフォルトの名無しさん
2009/06/01(月) 20:57:580304デフォルトの名無しさん
2009/06/01(月) 21:00:480305デフォルトの名無しさん
2009/06/01(月) 21:32:24両者の関数に渡す引数って、よく見ると関連してませんよね?
(例えば、CreateTexture〜で作ったテクスチャをCreateSpriteに渡すとか)
ということは、
この2つの関数を連続して呼び出すと勝手にDirectXの側でテクスチャとスプライトを関連づけてくれる、
ということになっているのでしょうか。何だか釈然としません。
いま、CreateTexture〜で作ったテクスチャはテクスチャとして保持しておいて、
Spriteだけをとっかえひっかえして表示したいと思っているので困っています。
空のスプライトオブジェクトに、後から、あらかじめ読み込んでおいたテクスチャを流すような方法はないでしょうか?
ちなみになぜこんな事をしたいかというと、フォントだけをひたすら並べた画像の一部を切り出して
スプライトに乗せて文字列として表示するクラスを作っているからです。画像&テクスチャを使い回したいのはそういう理由からです
0306デフォルトの名無しさん
2009/06/01(月) 21:45:18しかしめんどくさいので単にメッシュを使うという
>>305
CreateTexture〜で作ったテクスチャはID3DXSprite::Drawに渡すんじゃないかな
0307デフォルトの名無しさん
2009/06/01(月) 21:49:310308デフォルトの名無しさん
2009/06/01(月) 21:50:46その通りでした。
見落としてました。
ありがとう
0309デフォルトの名無しさん
2009/06/01(月) 21:53:05///)
/,.=゙''"/
/ i f ,.r='"-‐'つ____ こまけぇこたぁいいんだよ!!
/ / _,.-‐'~/⌒ ⌒\
/ ,i ,二ニ⊃( ●). (●)\
/ ノ il゙フ::::::⌒(__人__)⌒::::: \
,イ「ト、 ,!,!| |r┬-| |
/ iトヾヽ_/ィ"\ `ー'´ /
0310デフォルトの名無しさん
2009/06/01(月) 21:56:30話の流れを見ても一般用語の方かD3DXの方か分からないんです><
って言いたいの?
0311デフォルトの名無しさん
2009/06/01(月) 21:59:140312デフォルトの名無しさん
2009/06/01(月) 22:14:120313デフォルトの名無しさん
2009/06/01(月) 22:15:060314デフォルトの名無しさん
2009/06/01(月) 22:36:340315デフォルトの名無しさん
2009/06/01(月) 22:56:50プレイヤーとフィールドの衝突判定を主人公(OBB)を作りフィールドの法線の逆にOBBが出たら戻すという感じで考えています
プレイヤーとフィールドの衝突判定は普通どんな感じでやるのですか?
0316デフォルトの名無しさん
2009/06/01(月) 23:00:210317デフォルトの名無しさん
2009/06/01(月) 23:04:360318デフォルトの名無しさん
2009/06/01(月) 23:10:080319デフォルトの名無しさん
2009/06/01(月) 23:10:100320デフォルトの名無しさん
2009/06/01(月) 23:32:040321デフォルトの名無しさん
2009/06/01(月) 23:33:210322デフォルトの名無しさん
2009/06/01(月) 23:42:59.‐'' ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ヽ
| ________ |
| | ∧__∧ | |
| | <`∀´ > | |
| |_/ 二\ | |
| |_/\ \\) | |
| | \ \ | |
| | / /\ ̄ ̄ ) |
| | / /  ̄| ̄ 非 常 識 |
| \ \ \ \ |
ゝ、 \ \ \ \ ノ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0323デフォルトの名無しさん
2009/06/01(月) 23:45:200324デフォルトの名無しさん
2009/06/01(月) 23:58:15それともosの互換性?dx10用のビデオドライバーの仕様の違いとか。
このエミュー使う為にはdx10環境は必項ですね。使ってないvistaが有るので入れてみます。
0325デフォルトの名無しさん
2009/06/02(火) 07:37:370326デフォルトの名無しさん
2009/06/02(火) 09:58:57下位互換のAPIは延々と収録されていく仕様。
でもAPIは変更したいからそのためにバージョンを分けている。
バージョンごとには基本的には普遍。
そうしないと昔のゲームが動かないだろ?
0327デフォルトの名無しさん
2009/06/02(火) 10:34:09なんでこういう誤用を平気でかますんだろう?
0328デフォルトの名無しさん
2009/06/02(火) 10:41:35そうはならない。
DirectXが下位互換・上位互換をサポートしていることと、
それに依拠したアプリ(ゲーム)が上位互換・下位互換をサポートしていることは全然別だから。
ただし、>326 はやはり、『APIは上位互換として延々と〜』いう言い方をするべき。
ここで下位互換を使うと意味が通じにくくなる。
0329デフォルトの名無しさん
2009/06/02(火) 10:59:06以下でいいんでしょうか?
[Ux,Uy,Uz]
[Vx,Vy,Vz]
[Wx,Wy,Wz]
それともそれの転置?
0330デフォルトの名無しさん
2009/06/02(火) 11:25:27転置かどうかは、行ベクトルか列ベクトルかって話で
右手か左手かは関係ないでしょ。
0331デフォルトの名無しさん
2009/06/02(火) 11:41:26そのUVWというのも単なる列ベクトルじゃないのか?
詳しくないので間違ってるかもしれないが。
0332デフォルトの名無しさん
2009/06/02(火) 11:46:33わかりづらくてすみません。
オブジェクトの姿勢を表す為に、
オブジェクトに基底行列を持たせる場合、
Direct3DやOpenGLの右手座標系だと、
行ベクトルの組で持つのと、列ベクトルの組で持つのは
どっちが一般的なのかと思いまして。
0333デフォルトの名無しさん
2009/06/02(火) 12:17:130334デフォルトの名無しさん
2009/06/02(火) 13:06:03右手が、というよりは
Direct3DやOpenGLで右手の場合、
ベクトルは列ベクトルで扱うってのが一般的らしいです。
それにあわせると、基底行列はどっちが
いいのかな?と考えたらよくわからなくなりまして。
基底行列がU,V,Wのベクトル3つ並べたものだと考えると
3 x 列ベクトルが正しそうな気がしますが、
今既に、行ベクトルx3にしちゃってるんですよね。
0335デフォルトの名無しさん
2009/06/02(火) 17:04:30「まさか、後罪の触媒を<讃来歌>無しで?」
教師たちの狼狽した声が次々と上がる。
……なんでだろう。何を驚いているんだろう。
カタリスト チャネル
ただ普通に、この触媒を使って名詠門を開かせただけなのに。
よ
そう言えば、何を詠ぼう。
自分の一番好きな花でいいかな。
どんな宝石より素敵な、わたしの大好きな緋色の花。
赤
――『Keinez』――
そして、少女の口ずさんだその後に――
0336デフォルトの名無しさん
2009/06/03(水) 00:45:14球体を描画するのに使おうと思ったのですが・・・
0337デフォルトの名無しさん
2009/06/03(水) 01:04:560338デフォルトの名無しさん
2009/06/03(水) 01:07:32俺もそう思って、D3DXMeshを使うのをやめてしまった。
ポリゴンの初期化は手でやっちゃうからな。
0339デフォルトの名無しさん
2009/06/03(水) 01:14:10聞く前にリファレンス見れば一目瞭然だろう。
Create系関数が大量にあるだろ。
しかも、球なら専用の関数も用意されてるし。
0340デフォルトの名無しさん
2009/06/03(水) 01:28:01どうやら可能みたいですね。このまま頑張ってみます。
0341デフォルトの名無しさん
2009/06/03(水) 02:13:330342デフォルトの名無しさん
2009/06/03(水) 11:41:59///)
/,.=゙''"/
/ i f ,.r='"-‐'つ____ こまけぇこたぁいいんだよ!!
/ / _,.-‐'~/⌒ ⌒\
/ ,i ,二ニ⊃( ●). (●)\
/ ノ il゙フ::::::⌒(__人__)⌒::::: \
,イ「ト、 ,!,!| |r┬-| |
/ iトヾヽ_/ィ"\ `ー'´ /
0343デフォルトの名無しさん
2009/06/03(水) 12:16:12以下のようにしたのですが、
pD3DDevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
pD3DDevice->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
pD3DDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
pD3DDevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
pD3DDevice->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
pD3DDevice->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
テクスチャは表示されるのにディフューズ色が乗算されません
ライトを有効にすると乗算されますが無効にするとテクスチャしか表示されません
何か設定がまずいのでしょうか?
0344デフォルトの名無しさん
2009/06/03(水) 15:54:42ライト無しにディフューズできる訳無いんだよ
わかったかね?
0345デフォルトの名無しさん
2009/06/03(水) 17:08:590346デフォルトの名無しさん
2009/06/03(水) 17:14:34特定の色のアルファだけ0にするにはどうすればいいですか?
0347デフォルトの名無しさん
2009/06/03(水) 18:38:44/ ./| \まんまる焼きを/ ___(_,ィ,=o=)
| ̄ ̄| | \ ∧∧∧∧/ 〔〔 | ん( *‘ヮ‘) アイハブコントロール!
| | |<イモ < 映 > _/ ||Ξ/ つ¶つ¶
| | | ちゃん!< 予 画 >__\|/ ̄ ̄ ̄ ̄ ̄\
|__|/ < 化 >
─────────< 感 決 >──────────
ねぇ…イモちゃんは?< 定 > ,. ‐- 、
さっきまで一緒に < !!!! の > ___(_,ィ,=o=)
. _, '´!p`´qj、 いたのに/∨∨∨∨\ 〔〔 | ん( *^ヮ^) お嬢様…大好きです!
ゝ. ノ从从リゝ /突っ込んでくぜ\ _/ ||Ξ/ つ¶つ¶
`'メ(リ ゚ . ゚ノ)゙´ / クレイジー! \__\|/ ̄ ̄ ̄ ̄ ̄\
0348デフォルトの名無しさん
2009/06/03(水) 18:51:37要するに、抜き色のことだろ?
D3DXCreateTextureFromFileEx()あたりを使ってみたらどうだ。
0349デフォルトの名無しさん
2009/06/03(水) 20:34:04最初からテクスチャがあるならそれでもいいんだが
あるテクスチャをもとに派生テクスチャをリアルタイムで描けないとまずくて、
しかも透明色もつかえないとまずく、
D3DXCreateTextureだとカラーキーが設定できないし
D3DXCreateTextureFromFileExはファイルからテクスチャ作るときだし
なにかいい手はないかと思ってたけど
pD3DDevice->Clearするときに
ARGBを0x00000000で透明色でぬりつぶすことで事足りまつた
0350デフォルトの名無しさん
2009/06/03(水) 22:01:080351デフォルトの名無しさん
2009/06/03(水) 22:16:050352デフォルトの名無しさん
2009/06/03(水) 22:23:280353デフォルトの名無しさん
2009/06/03(水) 23:32:50ifで色判定してアルファを0にするだけじゃん
0354デフォルトの名無しさん
2009/06/04(木) 10:02:20a:カメラ位置
b:カメラの注目点
c:カメラの頭上
の3点をデータとして持ち、直角三角形になるように配置します。
そしてカメラの移動する際に
�@z軸を回転軸としてカメラの横方向回転
�A直角三角形の法線を求めて、それを回転軸として縦方向回転
という処理をしているのですが、何度もグルグル回していると、何故かカメラがどんどん傾いていきます。
aとbとcを通る平面が絶対に地面から垂直になるようにしたつもりなのに、グルグル回すし続けるとどんどん斜めに傾きます。
これは法線を求める段階やそこから縦回転させる計算での、コンピューターの丸め誤差が影響してるのでしょうか?
それとも何か根本的な間違いをしているのでしょうか?
0355デフォルトの名無しさん
2009/06/04(木) 10:44:04abcの値を直接いじってる?
abcは初期姿勢として残しておいて
それぞれを回転トランスフォームした値をつかってビュー行列を作ればいいかと
0357デフォルトの名無しさん
2009/06/04(木) 16:18:37LockRect後にサーフェイスの中身を直接いじりたい場合、
環境によって24ビットカラーだったり32ビットカラーだったりするけど、
ここはどう差を吸収したら良いんだろう?
例えば、サーフェイス上の左上隅から X:10 Y:10 の場所のピクセルを
青 RGB(0, 0, 255)に設定したい場合とか…
0358デフォルトの名無しさん
2009/06/04(木) 16:37:03また想定外なフォーマットしか対応していないビデオカードなら、
起動時に弾けば良いだけ。
また24bitなんてフォーマットがそれこそ想定外。
0359デフォルトの名無しさん
2009/06/04(木) 16:44:59取得ポインタを3Byteずつずらすか4Byteずつずらすか変えればいいだけじゃん
0360357
2009/06/04(木) 17:21:16スマソ、古いPC使っていてVRAM容量が小さいから
24ビットは普通なんだと思ってた。
確かに、ビデオカード(MilleniumG450)を24ビットカラーに設定すると、
DirectXの初期化ですでに上手く動かない…
>359
これはじゃあ、GetAdapterDisplayMode関数でカラーモード取得した
値に応じてポインタの移動量を3Byteか4Byteにすれば良さそうですね。
ありがとうございます。
0361デフォルトの名無しさん
2009/06/04(木) 18:03:17俺は、フォーマットごとに型を作ったよ。
struct R8G8B8
{
enum
{
format = FMT_R8G8B8,
b_bits = 8,
g_bits = 8,
r_bits = 8,
};
union
{
struct
{
uint8_t b;
uint8_t g;
uint8_t r;
};
uint24_t value;
};
operator const uint24_t&() const { return value;}
operator uint24_t&() { return value; }
R8G8B8( const uint24_t& value_ ) : value(value_){}
R8G8B8(){}
};
これと、__if_exists()を組み合わせれば何でも出来る。
0362デフォルトの名無しさん
2009/06/04(木) 20:07:4924bitのサーフェスに3D描画できるGPUってほぼ存在しないと思うよ。
だから、DirectX8以降で24bitを使うことはまずないかと。
0363デフォルトの名無しさん
2009/06/04(木) 20:16:02ピクミンやメタルギアのような3Dゲームでは、建物などの静的オブジェクトの落とす影は事前に焼きこみしてあると聞きました。
焼きこみの方法としては
・頂点に焼きこむ
・テクスチャーに焼きこむ
とのことですが、
前者の場合、地面などがかなり細かく分割されていないと意味がないですよね?
(たとえば三角ポリゴン2枚で作られたひろーいグラウンドなどには落とせない)
後者の場合は、かなり大量の焼きこみ影テクスチャを用意しておかなければならない気がします。
両方かなり力技な気がするのですが、こういうものなのでしょうか?
後者の場合、マップをマップチップのようにいくつもに区切って、自分の近くのマップチップだけ読み込み。
遠景の影は小さい影テクスチャを用意しておいて、そっちを読むようにして負荷を減らして…。
とかそういう工夫ができるような気もしますが
0364デフォルトの名無しさん
2009/06/04(木) 20:22:57デツクッタタイラナシ角形にテクスチャを張るのですが
一時的に表示される色を変えることは出来ますか?
ポリゴン自体の色は白で固定のままで。
0365デフォルトの名無しさん
2009/06/04(木) 20:30:01D3DRS_TEXTUREFACTOR で色を設定して
pDev->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TFACTOR);
とかをうまく設定すればできるんじゃないかね
0366デフォルトの名無しさん
2009/06/04(木) 20:38:230367デフォルトの名無しさん
2009/06/04(木) 20:42:240368デフォルトの名無しさん
2009/06/04(木) 21:58:05そういうもの
0369デフォルトの名無しさん
2009/06/04(木) 21:59:42数字を変えると最後のが使われてるみたいなんですけど。
0370デフォルトの名無しさん
2009/06/04(木) 22:01:58これとか
http://www.teatime.ne.jp/infor/tech48/tech48_index.htm
http://www.teatime.ne.jp/infor/tech48/page_02_01.htm
これはどうやって作るの?
0371デフォルトの名無しさん
2009/06/04(木) 22:09:41とりあえず、キューブ面4頂点の座標がわかれば
射影空間からWorld空間に変換でいけるんじゃないの
0372デフォルトの名無しさん
2009/06/04(木) 22:14:26Gemsでも読んで勉強すべし。
0373デフォルトの名無しさん
2009/06/04(木) 22:19:420374デフォルトの名無しさん
2009/06/04(木) 22:20:280375デフォルトの名無しさん
2009/06/04(木) 22:20:51上のおっさん変態だろw
0376デフォルトの名無しさん
2009/06/04(木) 23:08:390377デフォルトの名無しさん
2009/06/04(木) 23:35:21無理
0378デフォルトの名無しさん
2009/06/05(金) 00:00:51フォームのBackColorみたいに
背景色を着けるにはどうすればいい
0379デフォルトの名無しさん
2009/06/05(金) 00:08:14ttp://marupeke296.com/DXG_TextureStage.html
でもシェーダー使えばもっと楽
0380デフォルトの名無しさん
2009/06/05(金) 00:12:49今はシェーダーの方が資料が多いし楽なのに
0381デフォルトの名無しさん
2009/06/05(金) 00:16:160382デフォルトの名無しさん
2009/06/05(金) 00:57:30そういや、固定シェーダーとプログラマブルシェーダーって
速度差はどんなものなんだろう?
ビデオカードの型番によっても変わってくるだろうけど。
0383デフォルトの名無しさん
2009/06/05(金) 01:22:557世代くらいでもまだちょっとだけ固定機能のほうが速い
普通にやるくらいなら8世代以降でシェーダーのほうが速くなる
頂点シェーダーはともかく
ピクセルシェーダーに負荷かけるとさすがに重いけどね
0384デフォルトの名無しさん
2009/06/05(金) 01:24:13シェーダーから入るべきだと思うが
0385デフォルトの名無しさん
2009/06/05(金) 01:28:40もっと縮まないでしょうか?
// 板ポリゴンのカラーと透明度の係数
g_pdevice->SetTextureStageState(0, D3DTSS_CONSTANT, 0xffff0000);
//板ポリゴンのカラーを変更
g_pdevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
g_pdevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_CONSTANT);
// 板ポリゴンの透明度を変更
g_pdevice->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
g_pdevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_CONSTANT);
// 板ポリゴンを描画 (下地)
g_pdevice->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2);
// テクスチャのカラーと透明度の係数
g_pdevice->SetTextureStageState(0, D3DTSS_CONSTANT, 0x7f00ff00);
// テクスチャのカラーを変更
g_pdevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
g_pdevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
g_pdevice->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_CONSTANT);
// テクスチャの透明度を変更
g_pdevice->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
g_pdevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
g_pdevice->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_CONSTANT);
// 板ポリゴンを描画 (絵)
g_pdevice->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2);
0386デフォルトの名無しさん
2009/06/05(金) 01:31:49>>379
0387デフォルトの名無しさん
2009/06/05(金) 01:39:430388デフォルトの名無しさん
2009/06/05(金) 01:44:570389デフォルトの名無しさん
2009/06/05(金) 08:47:230390デフォルトの名無しさん
2009/06/05(金) 15:53:14表示していますが、GDIのDDBのBitBltよりも随分遅い気がします。
こんなもんですか?
0391デフォルトの名無しさん
2009/06/05(金) 16:00:57つD3DPRESENT_PARAMETERS.PresentationInterval
0392デフォルトの名無しさん
2009/06/05(金) 18:47:24// 前景色と背景色
g_pdevice->SetTextureStageState(0, D3DTSS_CONSTANT, 0xffffffff);
g_pdevice->SetTextureStageState(1, D3DTSS_CONSTANT, 0xffffffff);
// C0 ← Cテクスチャ * C前景色
g_pdevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
g_pdevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
g_pdevice->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_CONSTANT);
// A0 ← Aテクスチャ * A前景色
g_pdevice->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
g_pdevice->SetTextureStageState(0, D3DTSS_ALPHAARG1 , D3DTA_TEXTURE);
g_pdevice->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_CONSTANT);
// C1 ← C0 * A0 + C背景色 * !A0
g_pdevice->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_BLENDCURRENTALPHA);
g_pdevice->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_CURRENT);
g_pdevice->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CONSTANT);
// A1 ← A背景色
g_pdevice->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
g_pdevice->SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_CONSTANT);
// 板ポリゴンを描画
g_pdevice->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2);
0393デフォルトの名無しさん
2009/06/05(金) 19:24:30あれって凸凹のデータだけ別に用意してんの?
それとも地面のXデータから逐一取ってんの?
0394デフォルトの名無しさん
2009/06/05(金) 20:24:29・・・それとも歩いているときにカメラが上下するって話?
0395393
2009/06/05(金) 20:33:48凸凹の物体へのあたり判定はどうしてるのかなーと思いまして
0396デフォルトの名無しさん
2009/06/05(金) 21:04:070397デフォルトの名無しさん
2009/06/05(金) 22:51:13逐一とっても良いし
毎フレーム計算するのがいやなら
最初に一度だけ計算して高さマップを作るなり
あらかじめファイルにして保存しておくなり
高さデータから地形を生成する場合もあるし
0398デフォルトの名無しさん
2009/06/05(金) 23:44:360399デフォルトの名無しさん
2009/06/05(金) 23:52:33ここでも紹介されている、平行分割シャドウマップについて質問です。
リンク先では4分割したシャドウマップを、すべて保持し続けていますよね。
(近い方から順に、分割1、分割2・・・と呼ぶとします)
・分割1のための深度を、シャドウマップ全体に書き出し
・分割1の範囲を描画
・分割2のための深度を、シャドウマップ全体に書き出し
・分割2の範囲を描画
という順番に行っていけば、4分割したり、(他のサイトのように)複数のシャドウマップを作成したりする必要がない気がします。
なぜ、使いまわしを行っていないのでしょうか?
0400デフォルトの名無しさん
2009/06/05(金) 23:58:25シャドウマップの切り替わる部分で2枚を補間するんじゃないの。
もしくはそうする予定でいてたけどサンプルは未実装のままで放置とか。
0401デフォルトの名無しさん
2009/06/06(土) 01:52:01HLSLを使用する場合、FOGENABLEをTRUE、フォグ色を設定し
skinmesh.fxの内部でフォグの計算を行うようにしてフォグが使えるようになったのですが、
HLSLを使用しない場合のフォグはどうやって実装すればよいのでしょうか?
FOGENABLEをオンにすると、フォグ色に関わらずモデルが真っ黒でしか表示されません
FOGSTART、FOGENDなどのパラを変更しても特に変わらず真っ黒のままです
0402デフォルトの名無しさん
2009/06/06(土) 07:59:29スキンメッシュ以前に、ちゃんとフォグできてる?
2つのことをいっきにやろうとするのはNGだぜ
0403デフォルトの名無しさん
2009/06/06(土) 08:31:03とりあえず、ヘルプのフォグのところを読んでくれ。
フォグにはVertex FogとPixel Fogがあるわけだが、その設定はしたの?
0404デフォルトの名無しさん
2009/06/06(土) 10:26:12ありがとうございます
スキンメッシュ置いといて、フォグだけの実装からやり直してみます
0405デフォルトの名無しさん
2009/06/06(土) 13:32:12ローカル座標を移動させてるのではなく、カメラを移動させるのでしょうか?
例えばキャラクタが3人居た場合、それぞれのキャラクターが3D空間上で色んな方向に歩いた場合、
3人分のレンダリング時にカメラを3回移動させて描画しているのでしょうか?
(つまり3人の位置データは実はカメラの位置データとなる)
もしそうである場合、一人のキャラクタがもう一人のキャラクタに銃を撃った時の当たり判定を厳密に
する場合(直線とポリゴンの交点を判定する)は判定されるポリゴン群の実際の位置を計算してから行うという、
面倒な処理になるのでしょうか?
(光源などもカメラ移動に合わせて動かさないとつじつまが合わなくなる?)
0406デフォルトの名無しさん
2009/06/06(土) 14:19:440407デフォルトの名無しさん
2009/06/06(土) 14:27:590408デフォルトの名無しさん
2009/06/06(土) 14:35:170409デフォルトの名無しさん
2009/06/06(土) 14:41:46お前らって人の目とか気にしすぎなだんだよ底辺
0410デフォルトの名無しさん
2009/06/06(土) 14:45:37まともな会話が出来ない奴は出てくるなよ
0411デフォルトの名無しさん
2009/06/06(土) 14:57:33ところでさあボーンってどうやって読み込むの?
0412405
2009/06/06(土) 15:10:31ありがとうございました。
0413デフォルトの名無しさん
2009/06/06(土) 15:19:41誰でもわかるような質問にだけ
調子に乗って出てきて、中傷9割の
一言レスだけ残してく奴だよ。
0414デフォルトの名無しさん
2009/06/06(土) 15:52:440415デフォルトの名無しさん
2009/06/06(土) 16:37:120416デフォルトの名無しさん
2009/06/06(土) 16:51:10ボーンってどうやってつかうねん・・・?
0417デフォルトの名無しさん
2009/06/06(土) 16:53:23SDKサンプルのSkinnedMesh参照
0418デフォルトの名無しさん
2009/06/06(土) 18:11:040419デフォルトの名無しさん
2009/06/06(土) 18:15:040420デフォルトの名無しさん
2009/06/06(土) 18:15:460421390
2009/06/06(土) 18:45:43PresentationInterval変えてもダメでした。
描画が遅いというか画面には意図した通りに表示されるけれど、CPU使用率がバックバッファをウィンドウに描画するだけで60%くらいいっちゃうんです。
GDIのDDBのBitBltならVRAM上でコピーできて超高速だったはず…
0422デフォルトの名無しさん
2009/06/06(土) 18:49:11CPUの空き時間すべて使ってループまわしてるだろ
0423390
2009/06/06(土) 18:53:570424390
2009/06/06(土) 18:59:13新しいPCで実行したら無事にCPU使用率2%になりました。
多分ビデオカードの都合でソフトウェアエミュレーションになってるようです。
0425デフォルトの名無しさん
2009/06/06(土) 19:47:18会社名 ターボリナックス株式会社
7.今回の増資後の大株主構成
1 株式会社LDH 48.26%
2 新日本投資事業有限責任組合 9.20%
3 藤井 衛 1.80%
4 谷口 剛 0.57%
5 矢野 広一 0.36%
6 バンクオブニューヨークジーシーエム 0.36%
7 大阪証券金融株式会社 0.30%
8 野村證券株式会社 0.29%
9 金 正男 0.25% ←まさお
10 大和証券株式会社 0.24%
0426デフォルトの名無しさん
2009/06/06(土) 22:23:05下のほうに書いてある直接フックってのがしたいんですが、やり方がわかりません。
メモリ空間に書き込みとかどうやってするんでしょうか?
0427デフォルトの名無しさん
2009/06/06(土) 22:34:420428デフォルトの名無しさん
2009/06/06(土) 22:36:20http://sfb7.org/software/
ここみてdxwnd120落とせ。ソース付いてるから解読しろ
0429デフォルトの名無しさん
2009/06/07(日) 00:33:06分割したバウンディングボックスで、解像度が最大になるように行列作るのに
同じテクスチャに追加でレンダリングしてどうする
キミの理屈だと、1回のレンダリング(同じ行列)で済む描画を
距離で複数回に分けてるだけで意味がない
0430デフォルトの名無しさん
2009/06/07(日) 01:22:37>>399のリンク先は、4回描画してると書いてある。
視錐台を4つ輪切りにして、4回描画するなら
1つのボリュームにつき、SMは1枚でいいから
全部取っとく必要はないだろうってことで、
この点は正しいと思う。
リンク先はちょっと端折ったのか。
思ったんだけど、SMはミッブマップにして
各レベルに描くといいよねぇ。
0431デフォルトの名無しさん
2009/06/07(日) 01:48:10だから、シャドウマップ用のライトからのカメラ視錐台を、バウンディングボックス毎に
書き込み内容が最大になるように作るって意味分る?
単位が違う4回の書き込みを1枚のシャドウマップに追加でレンダリングして一緒にしてどうする
0432デフォルトの名無しさん
2009/06/07(日) 02:11:50SM作成 -> 輪切りのレシーバ描画 -> SM作成 -> 輪切りのレシーバ描画 -> ...
ってことだと、思ってたけど。リンクのソースは見てないけどさ。
これならSMは1枚でいいでしょ。
0433デフォルトの名無しさん
2009/06/07(日) 02:20:460434デフォルトの名無しさん
2009/06/07(日) 02:24:41あのさ、本当にそれでいけるなら
リンク先の作者や他のWEBやら技術本で、複数テクスチャを使うのは勿体無い
となるだろ…
もともと、カスケードシャドウって
シャドウマップのサイズで影の解像度が影響を受けるって問題を解決する方法なんだぞ?
0435デフォルトの名無しさん
2009/06/07(日) 02:34:30>あのさ、本当にそれでいけるなら
別にこれでいける。いけない理由がない。
>シャドウマップのサイズで影の解像度が影響を受けるって問題を解決する方法なんだぞ?
SMのサイズなんて、バウンディングボックスの作り方でどうにでもなる。
近いエリアのSMのサイズを相対的に大きくしたければ、
バウンディングボックスを小さくすればいいだけ。
ただ、複数回描画自体どうかと思うので、この方法を推奨してる訳じゃない。
さっきも言ったけど、複数枚保持するならミッブマップがいいよね。
0436デフォルトの名無しさん
2009/06/07(日) 02:39:40>別にこれでいける。いけない理由がない。
じゃ、カスケードシャドウマップを、1枚のシャドウマップで複数描画で行なう例を
アンタの改造ソースか、他のWEBサイトか技術本でも良いけど
教えてくれよw
…本当にカスケードシャドウマップのやり方理解してる?w
0437デフォルトの名無しさん
2009/06/07(日) 02:42:54>バウンディングボックスを小さくすればいいだけ。
あの…バウンディングボックスは、視錐台内のZ毎のOBJに応じて作る物なんですけど…
0438デフォルトの名無しさん
2009/06/07(日) 02:50:13カスケードシャドウマップがなんたるか
残念ながらわからないけど、1枚のSMで
OKな理由なら、>>432で十分じゃない。
視錘台をブツ切りにして、複数に分けて描画するから
SMのサイズを、そのエリアにフルに使うことが出来る。
-> エイリアスを改善
ブツ切りを複数回に分ける。
-> 各エリアはシリアルに描画されるので、その時々で
必要なSMは1枚のみ。
-> SMを複数枚同時に保持する必要はない。
別に、作らなくても自明でしょ。
逆に、SMを複数枚同時に保持しなきゃならない理由って何?
参照先があるなら教えれ。
0439デフォルトの名無しさん
2009/06/07(日) 02:59:33>参照先があるなら教えれ
だからさ、
カスケードシャドウマップも知らない
リンク先にサンプルソースコードもあるのに見もしないで
そう言い張る神経が理解できんw
0440デフォルトの名無しさん
2009/06/07(日) 03:06:31どうせなら、探してもらった方が楽だし。w
http://memeplex.blog.shinobi.jp/Entry/118/
適当にヒットしたこのブログには、XNAサンプルは
俺の方法でやってると書いてあるよ。
カスケードじゃなくてPSSMらしいけど。
0441デフォルトの名無しさん
2009/06/07(日) 03:13:51真性のゆとり君?
0442デフォルトの名無しさん
2009/06/07(日) 10:23:35どうしても1枚でやるならビューポートで4分割とかして描画するくらいか。
個人的に試してみたいのはARGB32Fのそれぞれのチャンネルにそれぞれの
分割シャドウを格納させてみたいがDirectX9だと結局4回描画なんだよなぁ。
0443デフォルトの名無しさん
2009/06/07(日) 11:20:042D描画は固定機能3D描画はシェーダーって使い分けてる?
それとも全部シェーダー?
0444デフォルトの名無しさん
2009/06/07(日) 11:39:380445デフォルトの名無しさん
2009/06/07(日) 11:43:29DirectX10以降は固定機能なんていう負の遺産はない。
2Dも全部シェーダーで自由に書け。
0446デフォルトの名無しさん
2009/06/07(日) 20:00:440,0を右上にするにはどうすれば良いですか
カメラとかスクリーンとか
0447デフォルトの名無しさん
2009/06/07(日) 20:20:21D3DXMatrixOrthoOffCenterLH (&matProj, 0, 画面幅, 画面高さ, 0, 1, 100 ) ;
その他のパラメーターは自分用に適宜変更
0448デフォルトの名無しさん
2009/06/07(日) 20:59:380449デフォルトの名無しさん
2009/06/07(日) 21:25:110450デフォルトの名無しさん
2009/06/07(日) 21:37:07DxTex使わないで、PhotoShop単体で作ること可能でしょうか?
0451デフォルトの名無しさん
2009/06/07(日) 21:46:50プラグインの入れ方がわかりませんとかって質問はここでは無しな
0452デフォルトの名無しさん
2009/06/07(日) 21:55:300453デフォルトの名無しさん
2009/06/07(日) 21:56:210454デフォルトの名無しさん
2009/06/07(日) 22:06:12左上の
0455デフォルトの名無しさん
2009/06/07(日) 22:10:15視点と注視点のx,yは0,0でいいんだぞ
0456デフォルトの名無しさん
2009/06/08(月) 07:28:40DirectX関連描画全部クリアされちゃうんだけど・・・
0457デフォルトの名無しさん
2009/06/08(月) 07:35:47若しくは全画面でもウインドウモードで動かす
0458デフォルトの名無しさん
2009/06/08(月) 08:49:54ヘルプに書いてあるだろ。
0459デフォルトの名無しさん
2009/06/08(月) 11:07:51特殊なことしてないし全部消して一から再描画にするかな
解決の糸口は見つかった、ありがとう
0460デフォルトの名無しさん
2009/06/08(月) 11:53:26もしそうならWM_PAINTを受け取ったら再描画するようにすればいい
0461デフォルトの名無しさん
2009/06/08(月) 12:06:31って書いてるからなあ
0462デフォルトの名無しさん
2009/06/08(月) 14:45:42FRAPSっていうFPSを測れるフリーソフトでDirectXのサンプルの
Tutorial 1: CreateDevice てのを少しいじって
(デフォは無効領域が発生した時のみ更新するからFPSが0で、
ループを作ってPeekMessageとDevice->Presentを足した)
FPSを測ったら40〜50程度しか出ていません。
DeviceのPresentationIntervalはD3DPRESENT_INTERVAL_DEFAULT
であり、中身は基本的なフレームしかなく描画処理は書かれていません。
家のパソコン環境がおかしいのかと思って他のDirectXを使っているソフトで測ったら
他のソフトは問題なくFPSが60になるので環境が悪いわけではないと思います。
0463デフォルトの名無しさん
2009/06/08(月) 15:02:230464デフォルトの名無しさん
2009/06/08(月) 15:10:09すみません
60でした。
0465デフォルトの名無しさん
2009/06/08(月) 15:51:250466デフォルトの名無しさん
2009/06/08(月) 16:33:09サンプルはDirectX SDKを入れるとApril2007には入っていました。
最新のにも入っています。
タイトルはTutorial 1: CreateDeviceです
メッセージループを
if(PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE))
{
if (!TranslateAccelerator(hWnd, hAccel, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
InvalidateRect(hWnd, NULL, TRUE);
と置き換えました。
WM_PAINTの所でDevice->Presentをやっています
0467デフォルトの名無しさん
2009/06/08(月) 16:36:34WM_PAINTなんて標準機構はまどろっこしくて使ってられないと思うんだが?
PeekMessage()かけながら永久ループをまわすのが常道じゃないかと。
0468デフォルトの名無しさん
2009/06/08(月) 16:57:08被ったら消えて戻らないのがいやだって時につかえるだろ
進行停止してるのにガンガンリソース使っていいならループで回せばいい
0469デフォルトの名無しさん
2009/06/08(月) 17:15:07WM_PAINTは優先順位低い
したがって他のメッセージがあると後回しにされる。
この優先度を上げるにはUpdateWindowを呼ぶ
0470466
2009/06/08(月) 17:17:18元のサンプルコードがWM_PAINTでDevice->Presentを呼び出す関数、
そのほかにもこの関数を呼び出すために必要な処理を
まとめた関数が描かれていたので、それを利用しました。
FPSを知るために一時的に変えただけです。
0471466
2009/06/08(月) 17:24:07無効領域を発生させるため
InvalidateRectの後にUpdateWindow追加して
試したけど、FPSは低いままでした
0472デフォルトの名無しさん
2009/06/08(月) 17:38:00WM_PAINTはそのままで、InvalidateRectの場所にRender();置いてみるとどうなる?
vsyncオフも試してみてほしいが、ビデオカードはRadeonだったりする?
0473デフォルトの名無しさん
2009/06/08(月) 17:48:220474466
2009/06/08(月) 19:49:14結論から言うとパソコンのスペックのせいか
遅くなる時と速くなる時があります。
もちろんコードはいじっていません。
不思議なのは
1.なぜこのような波が生じるのか
→遅い時は重い作業をしていなく、CPU使用量も5%前後
→何かのプログラムを実行するとデバイスの内部で設定が変わるものがある?
2.遅い時、早い時ともにFPSが60をキープしているプログラムがある事
→そのプログラムはDeviceのPresentationIntervalはD3DPRESENT_INTERVAL_DEFAULT
なのでタガを外しているわけではない、FPSも60に設定
→他にリミットを解除する方法があるかも
実際にサンプルを実行していただいた方ありがとうございました。
0475デフォルトの名無しさん
2009/06/08(月) 20:14:36PresentationIntervalをD3DPRESENT_INTERVAL_ONEにしても駄目?
0476デフォルトの名無しさん
2009/06/08(月) 22:10:50他プログラムでデバイスの設定かわると、それ以外にも影響するとか。
0477デフォルトの名無しさん
2009/06/08(月) 22:24:25ものすごい相性が悪いので、WM_PAINTを使って行儀よくやろうなんて考えないほうがいいよ。
別の人が言ってるように、WM_PAINTはWindows側が勝手にタイミングを決めて送ってくるので、
無効領域を設定しても必ず呼び出してくれるわけではない。
それから、無限ループによる描画を行っていて、
最小化時に描画をスキップさせるようなのは、別に実装は難しくないよ。
0478デフォルトの名無しさん
2009/06/09(火) 12:56:03色々ありすぎて迷ってます。
ハードウェアよりの視点で書いてるのがよりよいです。
よろしくお願いします。
0479デフォルトの名無しさん
2009/06/09(火) 23:14:03とりあえず高額社の本でもよんどけばいんじゃないだろうか。
0480デフォルトの名無しさん
2009/06/10(水) 14:53:46モデリングする対象の頂点バッファやインデックスバッファ(ビデオカード上?)
の領域確保ですが、ユーザーがエディットして頂点数などが増えていく度に容量増やしてそのつど
確保しなおすべきでしょうか?それともある程度の大きさの容量をまとめて確保しておくべきでしょうか?
(多分drawprimitive時にどこからどこまでを描画とか出来たし)
ビデオカードの挙動をよく知らないのですが、細かくバッファ開放と確保を繰り返しまくってると
領域が分断されまくって動作に影響したりするのでしょうか?
0481デフォルトの名無しさん
2009/06/10(水) 15:04:390482480
2009/06/10(水) 15:07:42ビデオカード側に編集後のデータを転送しようと思ってます。
システムメモリ側でのバッファ管理はどうしようかとググって調べてみると、
リングバッファやギャップバッファなど面白そうな概念が出てきたので、
そういう管理にしようと思ってます。
0483デフォルトの名無しさん
2009/06/10(水) 15:11:48100byteの領域が欲しい
128byteの領域を確保
120byteの領域が欲しい
現状維持 (足りているため)
200byteの領域が欲しい
256byteの領域を再確保
100byteの領域が欲しい
現状維持 (128byteの境目で確保が頻繁に発生しないため)
40byteの領域が欲しい
128byteの領域を再確保 (64byteの境目で確保が頻繁に発生しないため64にはしない)
こんな感じか?異論は認める
0484480
2009/06/10(水) 15:12:45頂点数が3以上になったら4の領域を再確保、
頂点数が5以上になったら8の領域を再確保、
頂点数が9以上になったら16の領域を再確保ということでしょうか?
なぜでしょうか?
0485デフォルトの名無しさん
2009/06/10(水) 15:15:42とか1頂点追加するごとに何MBもするメモリを再取得してたら大変だから
リングバッファでもいいと思うけど
0486480
2009/06/10(水) 15:26:31100バイト確保しても実際は128バイト確保されるのでしょうか?
0487デフォルトの名無しさん
2009/06/10(水) 15:30:20数バイトの変化でいちいち再取得しなくていいようにあらかじめ自分で多めに取得すると言うだけの話
0488デフォルトの名無しさん
2009/06/10(水) 15:59:24使った事ないからわからんが。
0489デフォルトの名無しさん
2009/06/10(水) 16:10:22使う理由はなんだ?
0490デフォルトの名無しさん
2009/06/10(水) 16:38:170492デフォルトの名無しさん
2009/06/10(水) 16:51:04どうしても何も、メモリの再割り当てのロジックを考えれば分かるだろう。
いったい何を言っているんだ?
UP系の話だったとしても、結局は必要ならメモリの再割り当てをするのは同じだろ。
0493デフォルトの名無しさん
2009/06/10(水) 16:52:590494デフォルトの名無しさん
2009/06/10(水) 17:01:43>メモリの再割り当てのロジックを考えれば分かるだろう。
ごめん、わからない。もうちょっと具体的に言って。
>UP系の話だったとしても、
そのとおり、
頂点バッファのサイズが動的に増減する用途に
std::vector + UP系ではなく、頂点バッファを使うメリットが
浮かばなかったので。
0495480
2009/06/10(水) 17:29:35○システムメモリ
リングバッファ+ギャップバッファで頂点情報を持つ。
途中の削除や挿入などにも対処。
○グファフィックカードのメモリ
予め確保された領域(システムメモリの頂点数を元に、段階的に再確保)
に対して、システムメモリの頂点情報を必要あらば編集やソートを行いつつ、
隙間無く詰める。
Drawprimitiveの開始位置やら頂点数やらの設定にてデータのある部分のみ描画。
0496480
2009/06/10(水) 17:40:51このツールで作成する予定のものの頂点数の平均値を考慮(まだ色々作った事無くて凄い適当。定数にでもして後で変更可にする)
ミサイル、弾丸や板ポリなど:30か40?
描画数の多い登場キャラ:300か400?
そこそこ精密なオブジェクトやキャラ:5000くらい?
CG並のクオリティ:2万か3万?
初期の確保領域数を5000程度に設定。
そこから足りなくなる毎に倍倍にしていく(全体コピーペーストで一気に倍になるし、
頂点数多いほど瞬間的に増加する量も増えていくと予想されるため)
0497デフォルトの名無しさん
2009/06/10(水) 17:47:230498デフォルトの名無しさん
2009/06/10(水) 17:51:17up系じゃない理由はレンダリングの高速化だろjk
モデリングツールならup系でもいいかもな
0499480
2009/06/10(水) 18:17:090500デフォルトの名無しさん
2009/06/10(水) 18:53:11std:vectorだってサイズが変わって、予約サイズをオーバーしたら、
内部で再割り当てするだろう。
見えるところでやっているか否かの違いでしかないし、
頂点バッファでも同様の処理を一度書けばいいだけの話。
0501デフォルトの名無しさん
2009/06/10(水) 21:29:00| .__ /:::::::::| ロH ヨ メッコール
|(一和) /:::__:::::|  ̄」 己
| . ̄ ̄ /:::::| |:::::|
| /:::::::L二l| メッコールは大麦エキスと世界三大名水のひとつチョヂュン鉱泉水から
| /::/二丶:::| 生まれ、ビタミンが豊富に含まれたまったく新しいタイプの健康飲料水です。
| /::::| l___l |:::| ┌────────────────────┐
| /::::::ヽ─:::::::| |・品 名 :炭酸飲料 |
| /:::/.二l:::::::./| |・原 材 料 :糖類(砂糖,果糖ぶどう糖液糖).. . |
| /:::::l l_:::::::/ | | .大麦エキス,酸味料,香料,ビタミンC |
| ./_:::::_ヽ─': / /| | ナイアシン,ビタミンB2,ビタミンB1 |
| /| ヽ/ .|,__::::/ コ | |・内 容 量 :250ml |
| /:|_lヽ/l_(二/ .ッ | |・製造年月日:缶底に記載 |
|/:::::::::::::::: ̄/ .メ | |・原 産 国 名:大韓民国 |
|::::::::::::::::::::::/ | |・輸 入 者 :株式会社ハッピーワールド . |
|::::::::::::::::::::/ | └────────────────────┘
ヽ============〃 ※なお、日本版の缶には、「あき岳はりサイクルへ(空き缶はリサイクルへ)」という誤植がある。
0502デフォルトの名無しさん
2009/06/10(水) 21:39:050503デフォルトの名無しさん
2009/06/10(水) 21:47:230504デフォルトの名無しさん
2009/06/11(木) 10:05:52元の位置に戻るようなことをさせたいんだけど…
DirectInputでキーボード入力を読み取るのは押したかどうかしかわからないの?
0505デフォルトの名無しさん
2009/06/11(木) 11:57:09押した瞬間も離した瞬間も検出できるだろ
0506デフォルトの名無しさん
2009/06/11(木) 12:00:16それでも参考にしたら?
0507デフォルトの名無しさん
2009/06/11(木) 13:43:38入力履歴の配列が得られる。
これで何時押されて、何時離されたか
判断出来る。
0508デフォルトの名無しさん
2009/06/11(木) 14:06:11数字を足していくとかすれば、自前でも処理可能。
押されていない状態が検出されたらカウントを0にリセット。
60FPSだったら、60カウントで1秒間押されていたとかね。
0509デフォルトの名無しさん
2009/06/11(木) 15:06:58禁止
0510デフォルトの名無しさん
2009/06/11(木) 17:48:56まー確かに禁止されて入るんだが、
DirectInputによるキーボード処理は実装しやすいから
このままで全然困ってないんだよな。
サポートされなくなったら考えようかな、といったところ。
0511デフォルトの名無しさん
2009/06/11(木) 18:17:53求めればいいですか?
0512デフォルトの名無しさん
2009/06/11(木) 18:24:210513デフォルトの名無しさん
2009/06/11(木) 18:25:400514デフォルトの名無しさん
2009/06/11(木) 18:57:47行列を使ってどのようにすればよいのでしょうか?
0515デフォルトの名無しさん
2009/06/11(木) 18:58:100516デフォルトの名無しさん
2009/06/11(木) 18:59:54ベクトルを回転させる為には、直交する軸ベクトルが
必要になるが、直交している時点で既に要件を満たしているという。
0517デフォルトの名無しさん
2009/06/11(木) 18:59:550518デフォルトの名無しさん
2009/06/11(木) 19:03:21(0,0,0,1)
0519デフォルトの名無しさん
2009/06/11(木) 19:04:22ありがとうございます
0520デフォルトの名無しさん
2009/06/11(木) 19:06:55ありがとうございました
0521デフォルトの名無しさん
2009/06/11(木) 19:13:59そこで、あきらめるんかw
いまの条件では求めることはできないけど
あなたの求める値は求められるかもしれないのに
単に90度回したいじゃなくて
なぜ90度回したものがほしかったのかを書くんだ
0522デフォルトの名無しさん
2009/06/11(木) 20:49:54int x=3;
g_pxfonts[hgofont]->DrawText(g_ptextsprite,文字列,-1,&rect,DT_CENTER|DT_VCENTER,D3DCOLOR_COLORVALUE(1.0f,0,0,1.0f));
とやって文字列の部分に変数を表示しようと思い_T("%d",x)と書いたんですが
%dとは表示されるが変数xの中身は表示されません
何ででしょう?
0523デフォルトの名無しさん
2009/06/11(木) 21:04:010524デフォルトの名無しさん
2009/06/11(木) 21:05:07_T() ってどういう意味か知っているのか?
知らないなら調べておけよ。
ちなみに、文字列の合成はsprintfでやるんだぞ。
0525デフォルトの名無しさん
2009/06/11(木) 21:17:03すいません_Tはいりませんでしたね
言われたとおりsprintf使ったらできますた
ありがとうございますた
0526デフォルトの名無しさん
2009/06/11(木) 21:56:10画像読み込んでスプライトに表示したいんだけど・・・
もしかして画像読みこみに関してはLPD3DXFONTみたいにカプセル化されてない?
0527デフォルトの名無しさん
2009/06/11(木) 22:09:550528デフォルトの名無しさん
2009/06/11(木) 22:40:52メッシュもフォントもスプライトもない。
0529デフォルトの名無しさん
2009/06/11(木) 22:47:03>>526
D3DXCreateTextureFromFileを使うんだ!
詳しいことはヘルプをダウンロードして読むんだ!
ヘルプは難しくない!だいたい同じようなことが書いてあるだけだ!
0530デフォルトの名無しさん
2009/06/11(木) 22:51:000531デフォルトの名無しさん
2009/06/11(木) 22:54:50おかげでうまくいったわ
ただ背景(RGB(0,0,0))を透過するのはどうすればいいんだろ?
0532デフォルトの名無しさん
2009/06/11(木) 23:02:130533デフォルトの名無しさん
2009/06/11(木) 23:05:57ポリゴンは、それを構成する3頂点の並び順で
表裏を決定する。
それが貴方とDirect3Dで逆になってるんだろう。
CullModeでぐぐれ。
0534デフォルトの名無しさん
2009/06/11(木) 23:08:56最初からアルファの入ってるフォーマットで画像を作成すれば解決
pngとかddsとかtgaとか
0535デフォルトの名無しさん
2009/06/11(木) 23:15:17カラーキーに抜きたい色を設定すれば、
その色のアルファは0x00になる。
色変換は下記を参照
http://msdn.microsoft.com/ja-jp/library/cc373099(loband).aspx
0536デフォルトの名無しさん
2009/06/11(木) 23:16:32ありがとうございました
0537デフォルトの名無しさん
2009/06/11(木) 23:39:47対訳付き画像に加工してみた
こっちにも貼っておくね
http://www.rupan.net/uploader/download/1244728697.jpg
0538デフォルトの名無しさん
2009/06/12(金) 03:48:530539デフォルトの名無しさん
2009/06/12(金) 03:54:01お前はMSDNが何ページあるのか数えたことがあるのか。
0540デフォルトの名無しさん
2009/06/12(金) 03:57:480541デフォルトの名無しさん
2009/06/12(金) 08:28:08なら数字出してみろ
0542デフォルトの名無しさん
2009/06/12(金) 09:13:590543デフォルトの名無しさん
2009/06/12(金) 11:33:35TOP以外の例えば検索エンジンとかからたどったページがおかしいなんて良くあることじゃ
0544デフォルトの名無しさん
2009/06/12(金) 15:02:370545デフォルトの名無しさん
2009/06/12(金) 15:24:09|∧ 私のコード
/ /
(^o^)/
/( ) 夢と恋と不安で出来てる
(^o^) 三 / / >
\ (\\ 三
(/o^) < \ 三 でも想像もしないもの
( /
/ く 隠れてるはず!
0546デフォルトの名無しさん
2009/06/12(金) 18:45:39FVF_CUSTOMとかCUSTOMVERTEXは
クラスの静的と外におくのどっちがいい?
0547デフォルトの名無しさん
2009/06/12(金) 18:50:41private static constで
0548デフォルトの名無しさん
2009/06/12(金) 18:51:100549デフォルトの名無しさん
2009/06/12(金) 22:12:56ゲーム用のローポリってどれくらいのことを言うんですか?
0550デフォルトの名無しさん
2009/06/12(金) 22:24:340551デフォルトの名無しさん
2009/06/12(金) 22:43:50PS2で1500〜2000ってところか
もちろんメインキャラ級の話で雑魚Mobなんかはもっと少ないし
主人公キャラだけ3000〜4000使ってるゲームもある
慣れてる人なら1000ポリあればたいていのものは作れる
0552デフォルトの名無しさん
2009/06/12(金) 23:00:38ttp://sorceryforce.com/manageddirectx/direct3d_cameraoperation.html
ttp://sorceryforce.com/manageddirectx/direct3d_inputmouse.html
↑のページを参考にしているのですが、φが90度を超えた場合でも、
カメラをそのまま回転させる方法がわかりません。
DirectXSDK付属のMeshViewerのように、360度自在にモデルを回転させるには、
↑のコードをどのように改造すればよいのでしょうか?
識者の方、知恵をお貸しください。
0553デフォルトの名無しさん
2009/06/12(金) 23:01:23今見たらMesh5700くらいだった…
0554デフォルトの名無しさん
2009/06/12(金) 23:21:05カメラをオイラー角で制御しようとするのはいろいろ無理がある
ここを参考にするといいかも
ttp://marupeke296.com/DXG_No36_DependenceCamera.html
ManagedDirectXに関してはスレ違いなので具体的な書き方は別の場所で聞いてね
0555デフォルトの名無しさん
2009/06/12(金) 23:33:530556デフォルトの名無しさん
2009/06/12(金) 23:36:350557デフォルトの名無しさん
2009/06/12(金) 23:39:31発想の転換
モデルを回転、前後させカメラは固定
0558デフォルトの名無しさん
2009/06/13(土) 11:40:15一応ググったりmsdn見たりしたんですが分かりません。
0559デフォルトの名無しさん
2009/06/13(土) 12:07:07その情報をつかってどう動かすかは自分で実装してください
例えばマウス位置と物体との当たり判定をとってマウス位置に追従させるなど
0560558
2009/06/13(土) 12:16:25directinputだと押したときと離したときのメッセージがあるかどうか分からなかったのですが
よく読むとキーを押したときと離したとき両方で同じ値が返るんですね。
これで合ってますかね?
0561デフォルトの名無しさん
2009/06/13(土) 12:19:020562デフォルトの名無しさん
2009/06/13(土) 13:12:44入力に変更があったとき、イベントオブジェクトで
通知を受けることが出来るようになる。
これを使えば、Windowsメッセージに近い感覚で
作ることが可能だろう。
っていうか、キーボードとマウスに関しては、
普通にWin32APIでいいよ。
0563デフォルトの名無しさん
2009/06/13(土) 13:20:28押した瞬間、離した瞬間なんて簡単に求められるじゃん
なにからなにまで用意されてないと何もできないゆとりさんですか?
0564デフォルトの名無しさん
2009/06/13(土) 13:21:320565デフォルトの名無しさん
2009/06/13(土) 13:39:37それだと、フレーム間ですばやく押して離したら検知できないじゃん
0566デフォルトの名無しさん
2009/06/13(土) 13:40:43instantaneousよりもbufferedの方が直接に近いってのが罠だなー。
0567デフォルトの名無しさん
2009/06/13(土) 13:42:47そんな超反応できんのかよ
0568デフォルトの名無しさん
2009/06/13(土) 13:46:15内部120fpsにするしか
0569デフォルトの名無しさん
2009/06/13(土) 13:46:4960fpsとは限らないんだぜ
処理落ちで止まることもあるんだぜ
0570デフォルトの名無しさん
2009/06/13(土) 13:47:55一桁FPSくらいまで落ちたらそういうこともおきるかもね
でも、フレーム処理とキー入力を分けておけば言いだけの話
てゆうか、そういうつくりにしとかないと
コマンド入力のあるゲームとか作れないぞ
0571デフォルトの名無しさん
2009/06/13(土) 13:49:390572558
2009/06/13(土) 13:52:240573デフォルトの名無しさん
2009/06/13(土) 14:48:49よっぽど古いPC。たとえばPixelShaderすらない頃のオンボを対象にするのでない限り、5700なら十分軽い
0574デフォルトの名無しさん
2009/06/13(土) 14:51:24すっごい!ゲームになりますね
0575デフォルトの名無しさん
2009/06/13(土) 15:06:48作るゲームによるだろう
キャラが1体しかでないようなゲームならそれでもいいだろうけど
視界内に何体もでるようなゲームなら辛くなる
MMOのFF11なんかだろキャラによって変わるけど1700〜2000くらいに抑えてる
それでも人の多いところでは処理落ちを起こす場合もあるわけで
0576552
2009/06/13(土) 21:35:15>>557
レスありがとうございます。
DirectX以前に、数学の知識が不足しているので、
もう一度数学を勉強して出直してきます。
0577デフォルトの名無しさん
2009/06/13(土) 22:53:580578デフォルトの名無しさん
2009/06/13(土) 23:07:27Zソートにするかどうかとかそういう話?
0579デフォルトの名無しさん
2009/06/13(土) 23:08:41ブラーとかかけづらくなるし。
炎とかの表現に「加算合成」を使うことはあっても、物体を半透明で表現することはほぼ無し。
加算合成なら前後関係気にならないし。
0580デフォルトの名無しさん
2009/06/13(土) 23:31:48けど、半透明ポリゴン同士が立体的に交差する場合は、一意にソートできない
この場合って、根性でごまかすか、根性でポリゴン分割以外に方法ない?
0581デフォルトの名無しさん
2009/06/13(土) 23:37:32いくつもバッファを持って、深度と色を保存しておき、最後に合成する。
実際、そういう方法を今後のスタンダードにしようとする動きはあるが、まだ仕様が決まらず迷走してる。
0582デフォルトの名無しさん
2009/06/13(土) 23:44:380583デフォルトの名無しさん
2009/06/13(土) 23:49:07デザイナにサクっとやってもらえ
0584デフォルトの名無しさん
2009/06/13(土) 23:49:13Freeciv公式 基本的な知識はここで大体揃う
http://ja.freeciv.wikia.com/wiki/
初心者向けガイドみたいなやつ
ttp://utsukemononi.gozaru.jp/fciv/index.html
簡易科学表・簡易部隊表・科学進行指南
ttp://freeciv.fc2web.com/home.html
(2ch過去ログ) CIV2天帝レベル攻略指南
http://game.2ch.net/game/kako/996/996675904.html
メタサーバリスト
http://meta.freeciv.org/metaserver.phtml
Freecivゲームユーザーズガイド(1.81)
http://s-keishi.hp.infoseek.co.jp/freeciv/manual-1.8.1-2-ja-1.0/game.html
http://www3.atwiki.jp/freeciv/?plugin=ref&serial=4
http://www3.atwiki.jp/freeciv/?plugin=ref&serial=5
数字つきも含めてかなカナ漢字句読点の直後の %d %s を置換
http://www1.axfc.net/uploader/File/so/13307.zip
Freeciv@wiki
ttp://www3.atwiki.jp/freeciv/pages/1.html
0585デフォルトの名無しさん
2009/06/14(日) 00:00:06意味が分からん
LPDIRECT3DTEXTURE9 *a ;
LPDIRECT3DTEXTURE9 b ;
a = &b ;
ってことか?
>>577
>>582
書き込む前に深呼吸してその文章で他人に伝わるか考えような
誰もお前の頭の中をのぞけないんだから
途中をさっぴいて結論だけ聞かれてもだれも答えられん
0586デフォルトの名無しさん
2009/06/14(日) 00:09:46IDirect3DTexture9Ptr pTexture;
IDirect3DTexture9Ptr* p =
(IDirect3DTexture9Ptr*)(
(size_t)&( pTexture->GetInterfacePtr() ) -
(size_t)&( ((IDirect3DTexture9Ptr *)0)->GetInterfacePtr() );
コンパイルしてないんで動くかは知らん。
つーか本当に使うなよ。
>>585
IDirect3DTexture9Ptrは
IDirect3DTexture9のスマートポインタ
0587デフォルトの名無しさん
2009/06/14(日) 00:47:47&演算子のオーバーロードに阻まれて無理じゃね?
0588デフォルトの名無しさん
2009/06/14(日) 00:57:51だって一緒に派手な魔法エフェクトを必ず出したりするから
細かい部分見えない
0589デフォルトの名無しさん
2009/06/14(日) 01:47:543Dだとあんまり半透明使わないようにしてる
0590デフォルトの名無しさん
2009/06/14(日) 02:02:43当たり前なのに言われてはじめて気づいた
やべぇ目からウロコ
0591デフォルトの名無しさん
2009/06/14(日) 12:08:590592デフォルトの名無しさん
2009/06/14(日) 12:20:270593デフォルトの名無しさん
2009/06/14(日) 14:22:15っていうかこんなソートなんてそこまで時間食わないんだからテキトーに表示してみて
デザイナが自分で考えりゃいい
ぶっちゃけ多少、落ちたってあんまり気にならない
0594デフォルトの名無しさん
2009/06/14(日) 16:32:47どんなものに半透明使う?
マジで知りたい。
例えばゲームではレーザーも、爆発も、魔方陣も加算合成だろ?
0595デフォルトの名無しさん
2009/06/14(日) 16:34:400596デフォルトの名無しさん
2009/06/14(日) 16:43:37普通水面は一旦他のレンダーターゲットに描いた絵を加工する。波は加算だし。
0597デフォルトの名無しさん
2009/06/14(日) 16:57:462D描画部の淵とか全部半透明
フェードアウトインも半透明のポリを前においてる
ビルボード物の淵とか半透明
半透明ばっかりだわw
淵汚いからα画像ばっかりだし
0598デフォルトの名無しさん
2009/06/14(日) 17:06:16唯一の3Dものであるビルボードも、お前そんなところの半透明見えるのかよってレベルだし・・・
0599デフォルトの名無しさん
2009/06/14(日) 17:07:55いや、結構でかいし
草とか昆虫の羽根っぽいのとか使いまくってるし
0600デフォルトの名無しさん
2009/06/14(日) 17:11:32でもノード単位のソートだったら別にコストねーも同然だし
やったらいいんじゃね?
0601デフォルトの名無しさん
2009/06/14(日) 17:12:11ん、そうだね。わかったよ
じゃあ君はもう黙っててくれるかな
>>他ALL
他に、まともな意見ある?
0602デフォルトの名無しさん
2009/06/14(日) 17:21:12エフェクト関連は流石に使うとか言いながら、2D描画の淵とか言いだしちゃう591以外に意見あるやつなんているのかね?
虫の羽とか、どんだけ虫を拡大して見つめるゲームなんだよと。
0603デフォルトの名無しさん
2009/06/14(日) 17:23:22>唯一の3Dものであるビルボードも、
>お前そんなところの半透明見えるのかよってレベルだし・・・
これは反論にはならないお
例えば、樹木の枝葉は今でも
半透明ビルボードの集合を使ってると思うお
0604デフォルトの名無しさん
2009/06/14(日) 17:30:38ホントだよな
なんで半透明を使わない方向にもっていこうとしてるのか疑問
普通にできるわけねーじゃん
うっすら透けるもんから枝葉までほとんど半透明が必要なのに
なんで使わないなんて結論になるのか
羽が舞う系のエフェクトだって絶対に必要になるし
加算ばっかで全部できるわけねーだろ
頭おかしいだろこいつ(>>602)
0605デフォルトの名無しさん
2009/06/14(日) 17:39:220606デフォルトの名無しさん
2009/06/14(日) 17:43:24自ら発光してて、かつ透過率100%のものだけだと思う。
現実にそんなものはないので、現実の半透明物質を
半透明ポリゴンでシミュレートしたければ、
透過率に沿って補間合成して、発光分を足す形か?
0607デフォルトの名無しさん
2009/06/14(日) 18:36:140608デフォルトの名無しさん
2009/06/14(日) 18:43:40擁護レスまで入れちゃって・・・
自演だとバレバレだってわからないのか?
そんな短時間に、アルファテストすら知らないくせに妙に勝ち誇ってるアホが2連続レスなんてありえねーだろw
0609デフォルトの名無しさん
2009/06/14(日) 18:47:12>>605
初めてまともな意見だぜ
なるほどね。
リアル系を考えてたので、頭に浮かばなかったわ
>>606
半透明物質ってのが、あんまり世の中にないんだよな
ゲームに出てきそうなのは、窓ガラスとかか・・?
ただ、ガラスとかは「半透明ポリゴン同士が立体的に交差する」ことがまずないしなぁ
0610デフォルトの名無しさん
2009/06/14(日) 19:11:10もしくはお互い交差してしまう
なんていう条件はせいぜいパーティクルくらいだよね
半透明を使ったパーティクルなんて使う人いないだろうし
その条件にあてはめなかったとしても、やっぱり私もガラス窓くらいしか思いつかない
半透明のペンケースとか思いついたけど、そんなもの不透明に仕様変更したほうが現実的
0611デフォルトの名無しさん
2009/06/14(日) 19:18:28もう苦しすぎるから発言やめたほうがいいんじゃない?w
0612デフォルトの名無しさん
2009/06/14(日) 19:29:300613デフォルトの名無しさん
2009/06/14(日) 19:32:18ジャギりまくりw
0614デフォルトの名無しさん
2009/06/14(日) 19:34:42空間にオブジェクトに隠れる文字列を表示するのもダメだな
0615デフォルトの名無しさん
2009/06/14(日) 19:36:30今だにDirectXに手を出せていません。
やはりDirectXをやれるかどうかは才能も必要ですね。
0616デフォルトの名無しさん
2009/06/14(日) 19:38:330617デフォルトの名無しさん
2009/06/14(日) 19:56:04サングラスも無理
0618デフォルトの名無しさん
2009/06/14(日) 21:01:520619デフォルトの名無しさん
2009/06/14(日) 21:12:47\| (___
♪ |\ `ヽ、
| \ \
∧ ∧ | \ MEKURA 〉
(*`q´) | ♪ \ /
‖( つ| ̄ ̄ ̄ ̄ ̄ ̄! ̄ ̄ ̄ ̄ ̄ ̄ノ
‖( 匚______ζ--ー―ーrー´
〓〓JJ .‖ || .||
‖ ‖ ||
0620デフォルトの名無しさん
2009/06/14(日) 21:46:54え、ジャギの部分は半透明でいいじゃん
問題は、そのジャギの部分が「正しく後ろを透過しているか」をプレイヤーが認識できるほどの大きさで表示されるのかってことだろ
俺はされないと思うが
0621デフォルトの名無しさん
2009/06/14(日) 21:51:58アンタ、アナログな人だね。
普通プログラマはそんな考え方しないもんだ。
プレイヤーが認識できるほどの大きさって
定義されてるん?
0622デフォルトの名無しさん
2009/06/14(日) 21:54:44それっぽく見えりゃいいんだよ
0623デフォルトの名無しさん
2009/06/14(日) 21:57:07設計自体に問題あるだろそんなゲームw
0624デフォルトの名無しさん
2009/06/14(日) 22:01:35ネトゲで
建物の向こうの人間の頭についてる名前までみたくないときあるだろ
0625デフォルトの名無しさん
2009/06/14(日) 22:04:220626デフォルトの名無しさん
2009/06/14(日) 22:06:57しかたねーだろ
そうしてほしいっていうんだから
0627デフォルトの名無しさん
2009/06/14(日) 22:17:44第一半透明物体と交差しねーじゃねーかそれ
0628デフォルトの名無しさん
2009/06/14(日) 22:21:12遠いキャラほど小さく表示されるとか?読めないよな
0629デフォルトの名無しさん
2009/06/14(日) 22:33:52そもそも議論が成り立たなくなるだろう。
目的のための手段が必要なんじゃない、手段のために目的を作り出すことこそ重要なんだ。
0630デフォルトの名無しさん
2009/06/14(日) 22:34:090631デフォルトの名無しさん
2009/06/14(日) 22:42:110632デフォルトの名無しさん
2009/06/14(日) 23:27:57建物に隠れたり正面向いてないやつには角度つけてほしいんだとよ
っていうかさっきっからなんで自分の都合に合わせて仕様を強引に変えようとしてるの?
客がこうしたいって要望があったらそうしなきゃダメだろ
0633デフォルトの名無しさん
2009/06/14(日) 23:33:190634デフォルトの名無しさん
2009/06/14(日) 23:36:44客の妄想なんてもっと斜め上だぞ
0635デフォルトの名無しさん
2009/06/14(日) 23:39:140636デフォルトの名無しさん
2009/06/14(日) 23:40:32えーと、一般的に学生が思ってる勘違い社会人像ですね。
1年でもまともに社会人やってれば、客に逆提案もできない人間はお荷物だと自覚できます。
0637デフォルトの名無しさん
2009/06/14(日) 23:41:54必要無いってことないだろ
0638デフォルトの名無しさん
2009/06/14(日) 23:42:44君の案もやってもいいけど
まずは言われたとおりやってみてくれないかな?
0639デフォルトの名無しさん
2009/06/14(日) 23:43:10やっと語り合うにふさわしい題材が来たな!
特に障害物がでかいと、オブジェクトの重心でソートすりゃいいって問題じゃなくなるし。
それに引き換え「正面向いてない名前プレートは角度付けてほしいんだとよ」とか(呆
読めねーじゃねーか。
0640デフォルトの名無しさん
2009/06/14(日) 23:46:42半透明の交差を処理しないとゲーム性にかかわるような状況ならなんとかするし
見た目が多少かわる程度なら代替案でごまかして時間を節約する
「こことここの交差がすごいんですよ!」なんて説明しても
客はもちろんプログラマ以外の人からは「ふーん?」で終わるなんてよくあること
0641デフォルトの名無しさん
2009/06/14(日) 23:48:26彼は今日初めてアルファテストを知り、半透明前後問題はレイトレースでもなきゃ完全は不可能と知ったんだ
それを思えば初心者スレに相応しい人間だと思えるだろ?
謙虚さがまったくないのが問題だが
0642デフォルトの名無しさん
2009/06/14(日) 23:48:29やってやったほうが早いじゃねぇか
0643デフォルトの名無しさん
2009/06/14(日) 23:50:19つ2度塗り
0644デフォルトの名無しさん
2009/06/14(日) 23:51:25・半透明で、障害物の裏面描画(CWカリング
・半透明で、障害物の表面描画(CCWカリング
の順でやるのは確定として・・・
他の物体との前後関係はどうしような
障害物が大きくて長いとなったら、これこそポリゴン単位での前後関係問題が出るな
しかも目立つ
0645デフォルトの名無しさん
2009/06/14(日) 23:52:14業務系なら最初の仕様書にない変更は別料金別期間を請求できるけど
ゲーム系は仕様をひっくり返されるような変更があっても
納期も制作費も変わらないことが多いんだぜ?
0646デフォルトの名無しさん
2009/06/14(日) 23:53:33べつに球判定で主人公とカメラの間にあったらでいいんじゃない?
ソートもオブジェクト単位で
なにか問題あったっけ?
まったく覚えないんだけど?
0647デフォルトの名無しさん
2009/06/14(日) 23:54:07趣味が仕事なんだからいいじゃん
0648デフォルトの名無しさん
2009/06/14(日) 23:54:48かかったらかかった分だけもらえる開発しかやったことないな
申請すればもらえるよ
お客さんもしょっちゅう電話でやりとりしてるからこっちの工程知ってるし
0649デフォルトの名無しさん
2009/06/15(月) 00:00:17これだけの人月かかかりますって話すると
じゃあいいです、って言われる場合もあるけどなw
クライアントなんて思いつきでものを言ってる場合がほとんどだし
意見の取捨選択は大事だな
第三者の客観的かつ無責任な意見も良いものを作るにはには時には必要だけど
0650デフォルトの名無しさん
2009/06/15(月) 00:02:00プロ騙りのガキ相手にしてんじゃねーよ
>障害物半透明
不透明物体をとりあえず描画
障害物の深度値を深度バッファに描きこむ
半透明物体(障害物除く)を全て描画し、その際障害物深度値より遠いピクセルのみ描画
障害物を半透明描画
半透明物体(障害物除く)を全て描画し、その際障害物深度値より近いピクセルのみ描画
>>646
斜めの物体が障害物だとして、○と●が両方とも障害物の奥にあるべきなのに、
例えば重心とかでソートした場合○→障害物→●の順番に描画されちまう
__
○/ /
/ /
●/ /
 ̄ ̄
↑
カメラ
0651デフォルトの名無しさん
2009/06/15(月) 00:31:43壁は壁で判断したらいいじゃんw
なんでそう一括で処理しようとするの?
壁の判定わからないの?w
0652デフォルトの名無しさん
2009/06/15(月) 04:50:19または的に使いたい時ってどうすれば良いのですか?
0653デフォルトの名無しさん
2009/06/15(月) 06:58:11GetAsyncKeyStateを何度も呼ぶか、GetKeyboardStateでまとめてキーを取るか、
DirectInputかXInputを使う
0654デフォルトの名無しさん
2009/06/15(月) 07:13:13ジョイスティックを使いたいのでDirectInputでやることにします
0655デフォルトの名無しさん
2009/06/15(月) 07:44:560656デフォルトの名無しさん
2009/06/15(月) 08:59:09わからないんで、是非教えてください
0657デフォルトの名無しさん
2009/06/15(月) 16:31:24移動の命令はキャラクターとマップのどちらにか?
0658デフォルトの名無しさん
2009/06/15(月) 16:45:490659デフォルトの名無しさん
2009/06/15(月) 17:06:56別の方で答えてしまった、、、損した
0660デフォルトの名無しさん
2009/06/15(月) 17:19:190661デフォルトの名無しさん
2009/06/15(月) 17:22:460662デフォルトの名無しさん
2009/06/15(月) 22:27:53十字キーの上下左右を設定してたら勝手に割り当ててくれないの?
0663デフォルトの名無しさん
2009/06/15(月) 22:44:160664デフォルトの名無しさん
2009/06/15(月) 22:51:590665デフォルトの名無しさん
2009/06/15(月) 22:59:000666デフォルトの名無しさん
2009/06/15(月) 23:20:08XYの移動に変換するサンプルとかSDKに入ってないの?
セガ本に書いてるかな?明日立ち読みしてこよう
0667デフォルトの名無しさん
2009/06/15(月) 23:28:010668デフォルトの名無しさん
2009/06/15(月) 23:42:49代わりにやってくれる、もっと上位のライブラリを
使うべきだ
0669デフォルトの名無しさん
2009/06/15(月) 23:47:39なぜジョイスティックの上下左右くらいでそんなに困るんだ?
入力情報を変換テーブル介して抽象化するのは
ごく当たり前の実装方法だろ?
そしたらキーボードと区別する必要もないじゃないか。
0670デフォルトの名無しさん
2009/06/15(月) 23:55:55ジョイスティックのしくみを知らないからだけど
0671デフォルトの名無しさん
2009/06/15(月) 23:58:58知らないなら、自分で調べたらいいじゃないか。
オレは初期化/列挙の方法だけネットのサンプルを引用したが、
入力の検知はデバッガで止めて挙動を調べながら実装したぞ。
それでも1日かからないよ。
0672デフォルトの名無しさん
2009/06/16(火) 00:03:15くだらないやりとりするよりよっぽど速いよ
0673デフォルトの名無しさん
2009/06/16(火) 00:05:15まあ理解する必要ないしね、別に趣味グラマーだし
フリーソフトで代用できるかは知らないけど
0674デフォルトの名無しさん
2009/06/16(火) 00:27:443Dいくらか表示できて、音鳴らして、入力できりゃいいんでしょ?
悩んでる時間がばかみたいじゃん
こういうのは金で解決がいいよ
0675デフォルトの名無しさん
2009/06/16(火) 00:44:17もう全部できるし別に悩んでない、急いでないだけ
0676デフォルトの名無しさん
2009/06/16(火) 00:50:49ゲーム以外の部分で躓くのが俺的に無駄な時間に思える
全部誰かのサイトって昔はできたけどいま無理だよ
予想以上に馬鹿で自分の力わかってないようなのが技術サイト作ってたり
なにより情報が古いのが多い
0677デフォルトの名無しさん
2009/06/16(火) 00:56:45じゃツクールでもやれ
ゲームとはプログラミング技術、アルゴリズム、ハードの知識等の複合する技術のもとになりたってるんだよ
それらを一足飛びにしてゲーム挙動だけ組むのがゲームプログラムだと思ってる時点で
決定的に技術不足は目に見えてるだろ
しかも調べてコピーですらも出来ない、検索先のサイトの悪口言うようじゃねw
0678デフォルトの名無しさん
2009/06/16(火) 00:58:04いや、俺はDirectX暦10年以上のおっさんです
0679デフォルトの名無しさん
2009/06/16(火) 00:59:060680デフォルトの名無しさん
2009/06/16(火) 01:00:07その上辺を舐めてる人の方が多いらしい
0681デフォルトの名無しさん
2009/06/16(火) 01:05:46既存のライブラリとか使えばいいじゃないか。
あえて全部自分で作る理由がないなら問題ない選択肢だぞ。
0682デフォルトの名無しさん
2009/06/16(火) 02:51:47傾きによってスピードとか変えたいからな
勉強するわ
0683デフォルトの名無しさん
2009/06/16(火) 03:58:25アクションマップでいいだろ
0684デフォルトの名無しさん
2009/06/16(火) 09:04:28俺もいつかなりたい
0685デフォルトの名無しさん
2009/06/16(火) 09:06:53死ぬかと思った
0686デフォルトの名無しさん
2009/06/16(火) 10:28:460687デフォルトの名無しさん
2009/06/16(火) 11:18:48のページのサンプルをダウンロードしてコンパイルしたらatlbase.hが無いと言われ
ググったらVC++2008EEには入ってないらしいのですが、だれか上げて下さいとか言ったらまずいですか?
0688デフォルトの名無しさん
2009/06/16(火) 11:26:46評価版でもダウンロードすれば入ってるんじゃない?
0689デフォルトの名無しさん
2009/06/16(火) 11:46:05インクルードパスとライブラリパスを正しく設定する必要があるが
atlbase.hだけあっても中で呼ばれてるのATL関連のヘッダーがないって言われるだけ
てか、CComPtr使わないでatlbase.hはずしたほうが速そうな気もするが
0690デフォルトの名無しさん
2009/06/16(火) 11:50:18評価版のプロフェッショナルをダウンロードしてみます
ダウンロード1時間・・・だと・・・
>>689
外し方を教えてください
0691デフォルトの名無しさん
2009/06/16(火) 14:08:01以下の4か所を変更
CComPtr<ID3DXLine> m_pd3dLine;
CComPtr<IDirect3D9> m_pD3D;
CComPtr<IDirect3DDevice9> m_pd3dDevice;
CComPtr<IDirect3DTexture9> m_pTexture;
↓
ID3DXLine *m_pd3dLine;
IDirect3D9 *m_pD3D;
IDirect3DDevice9 *m_pd3dDevice;
IDirect3DTexture9 *m_pTexture;
この時点でエラーが一個でる
m_pD3D.Attach(Direct3DCreate9( D3D_SDK_VERSION ));
↓
m_pD3D=Direct3DCreate9( D3D_SDK_VERSION );
これで実行はできる
ただしCComPtrの自動解放の恩恵が受けれないので
各クラスの解放処理の部分で作ったインタフェースのReleaseをする必要がある
CD3DSetup9::Cleanupで
m_pTexture->Release() ;
m_pd3dDevice->Release() ;
m_pD3D->Release() ;
CDrawLineのデストラクタあたりで
m_pd3dLine->Release() ;
0692デフォルトの名無しさん
2009/06/16(火) 15:26:33「ググれ、カス」でいいんじゃね?
0693デフォルトの名無しさん
2009/06/16(火) 15:42:340694デフォルトの名無しさん
2009/06/16(火) 15:55:02サイズとか移動はSetTransformでできるのですが
vとuをその時々で変更するにはどうすればいいの?
0695デフォルトの名無しさん
2009/06/16(火) 16:10:56アニメーションパターンのように最初から分かっているなら
あらかじめ頂点バッファに全部登録しておいて読み出し位置をずらす
0696デフォルトの名無しさん
2009/06/16(火) 16:21:160697デフォルトの名無しさん
2009/06/16(火) 16:22:000698デフォルトの名無しさん
2009/06/16(火) 16:39:24最近のゲームでよく見る、斜面にめり込まない処理ってどうやってやるんでしょうか?
ただ立たせる場合は大丈夫だとして、走りなどのモーションを適応したときの方法がわかりません
0699デフォルトの名無しさん
2009/06/16(火) 16:54:48ここのでできそうです。
どうもです。
0700デフォルトの名無しさん
2009/06/16(火) 17:02:24CCD法は知らんが、
アームの先端から、アームの各角度を得る問題だとして、
アームの先端の位置だけから、求めようとしているのか?
正しくはそれでは足りず、アームの先端の位置と角度(姿勢)が必要になるぞ。
>>698だと、
斜面と足の交点と斜面の法線から、足の角度を求める。
0701デフォルトの名無しさん
2009/06/16(火) 18:32:08ありがとうございました!
0702デフォルトの名無しさん
2009/06/16(火) 19:28:25大きな画像から0,0,32,32を抜き出すみたいな。
0703デフォルトの名無しさん
2009/06/16(火) 19:37:150704デフォルトの名無しさん
2009/06/16(火) 20:18:49どうすれば良いですか?
0705デフォルトの名無しさん
2009/06/16(火) 20:26:25http://tgws.fromc.jp/prog/toonshade8.1/
環境マッピングを使うのとこ
0706デフォルトの名無しさん
2009/06/16(火) 21:51:08サーフェイスのサイズを取得するだけ。
0707デフォルトの名無しさん
2009/06/16(火) 22:00:080708デフォルトの名無しさん
2009/06/16(火) 22:47:270709デフォルトの名無しさん
2009/06/16(火) 23:23:170710デフォルトの名無しさん
2009/06/16(火) 23:25:180711デフォルトの名無しさん
2009/06/16(火) 23:28:450712デフォルトの名無しさん
2009/06/16(火) 23:46:540713デフォルトの名無しさん
2009/06/17(水) 01:51:55ウィンドウ内でのマウスポインタの位置座標を表示させるにはどうすればいいのでしょうか?
0714デフォルトの名無しさん
2009/06/17(水) 01:56:59ググレよ
POINT point;
GetCursorPos(&point);
ScreenToClient(hWnd, &point);
0715デフォルトの名無しさん
2009/06/17(水) 02:53:00一応調べていたんですが
HWND hWnd;
POINT point;
GetCursorPos(&point);
ScreenToClient(hWnd, &point);
sprintf(str,"マウスのX座標:%03d", point.x);
D3DrawText(0, 0, str);
sprintf(str,"マウスのY座標:%03d", point.y);
D3DrawText(200, 0, str);
ってやったんですが、値がウィンドウのところからの座標が返ってきません。
どこがいけないのでしょうか?
0716デフォルトの名無しさん
2009/06/17(水) 03:11:16>HWND hWnd;
これをちゃんとした奴とってこないとダメ
0717デフォルトの名無しさん
2009/06/17(水) 03:18:53そこでウィンドウハンドルを取得してるはずなのでそれをそこにぶち込む必要がある
自分で宣言した奴なんて無効な値しか入ってないから
>>715のプログラムだとScreenToClient関数はどこのウィンドウだかわからないって状態
0718デフォルトの名無しさん
2009/06/17(水) 03:49:19// ウィンドウの設定
WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC,
D3MsgProc, // コールバック関数の指定
0L, 0L,
GetModuleHandle(NULL), NULL,
LoadCursor(NULL, IDC_ARROW), // カーソルの指定
NULL, NULL,
APP_NAME, NULL };
RegisterClassEx( &wc );
// ウィンドウの作成
HWND hWnd = CreateWindow( APP_NAME, "Checker",
WS_POPUP | WS_SYSMENU | WS_CAPTION | WS_MINIMIZEBOX,
//WS_OVERLAPPEDWINDOW,
100, 100, 640, 480, // ウィンドウの位置と大きさの指定
GetDesktopWindow(), NULL, wc.hInstance, NULL );
0719デフォルトの名無しさん
2009/06/17(水) 03:54:45それくらいまず自分で試して確認してみたら?
0720デフォルトの名無しさん
2009/06/17(水) 06:58:130721デフォルトの名無しさん
2009/06/17(水) 07:32:340722デフォルトの名無しさん
2009/06/17(水) 08:12:30DirectXにスプライトなど存在しない
>>721
D3DXSpriteなどDirectXにもD3DXにも存在しない
0723デフォルトの名無しさん
2009/06/17(水) 08:35:11どのような設定すればよいでしょうか?
0724デフォルトの名無しさん
2009/06/17(水) 08:44:25もうおもしろくないよそれ
http://msdn.microsoft.com/ja-jp/library/bb174249(VS.85).aspx
一度ウケタギャグを連発する寒い親父みたい
お前もう終わりだな
0725デフォルトの名無しさん
2009/06/17(水) 08:53:36SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
を
SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCCOLOR);
SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCCOLOR);
にすればいいんじゃね?
ってお前ちっとも頭使ってないだろ
素質ないから諦めるってのもまた1つの方法ではあると思うけど
まわりにいたらぶっとばしたくなるなw
0726デフォルトの名無しさん
2009/06/17(水) 08:59:31それ言ってるの多分何人もいるぞ
もちろん俺も言ってたw
0727デフォルトの名無しさん
2009/06/17(水) 09:00:33そういう姿のプログラマが女の子にもてると思うのか?
0728デフォルトの名無しさん
2009/06/17(水) 09:01:59いい加減しつこい。
自分じゃ気づいてないだけで相当嫌われ者だろ。
0729デフォルトの名無しさん
2009/06/17(水) 09:05:50他の人もやってるからっていいわけがPGとしての素質の無さを匂わせるな
0730デフォルトの名無しさん
2009/06/17(水) 09:08:13それじゃ駄目だ。
多分出来ないと思う。
逆ならいけるんだけどな。
0731デフォルトの名無しさん
2009/06/17(水) 09:09:59なるほど
0〜1.0
255〜0
に変換しないとダメってことか
0732デフォルトの名無しさん
2009/06/17(水) 09:21:32ま、後は自分で考えてくれ。
0733デフォルトの名無しさん
2009/06/17(水) 09:23:48お前らみたいにすぐ食いつくから面白がられるんだよバカ共
0734デフォルトの名無しさん
2009/06/17(水) 09:25:25は?
0735デフォルトの名無しさん
2009/06/17(水) 09:37:06HLSLでいうところの、以下の処理が出来ればいい。
float4 srcColor, dstColor;
float4 mask = { 0, 1, 0, 0 };
dstColor.a = dot( srcColor, mask );
maskはtexfactorあたりを使えば、固定シェーダでも出来そうと思った。
しかし、マニュアルをみると、
D3DTOP_DOTPRODUCT3はいろいろ制限があって
普通に内積はしてくれないみたいだな。やっぱ駄目かな?
0736デフォルトの名無しさん
2009/06/17(水) 09:40:24じゃぁ黙ってアク禁の申請すればいい、と。
0737デフォルトの名無しさん
2009/06/17(水) 10:48:07D3DTOP_DOTPRODUCT3でカラーからαの変換はできるよ。
ただ、これはALPHAOPだけに設定しても使えなくて、同時に同じステージの
COLOROPにも設定しないと使えないので、ちょっと使いにくい。
内積を取る相手には、TFACTORを利用する。
0738デフォルトの名無しさん
2009/06/17(水) 11:52:510739デフォルトの名無しさん
2009/06/17(水) 11:56:25ありがとうございました、確かに使い方は限定されるようですが何とかできそうです
>>725さんもありがとうございました
0740デフォルトの名無しさん
2009/06/17(水) 11:58:58はじめに言ってることと全然違いすぎて意味がわからない
そもそも内積なんてとってもなにもおきないだろ
法線マップが使いたかっただけなの?
α関係ねーしマジで何が言いたいのか不明
0741デフォルトの名無しさん
2009/06/17(水) 12:01:46dstColor.a = dot( srcColor, mask );
これ普通にgがほしいだけちゃうの?
0742デフォルトの名無しさん
2009/06/17(水) 12:02:560743デフォルトの名無しさん
2009/06/17(水) 12:06:10SetTextureStageState
使ったらいいと思うけど
0744デフォルトの名無しさん
2009/06/17(水) 12:13:36rだろうがgだろうがbだろうがどっかに値さえあれば計算使えるんだから
今更a要素にいれたって誰も計算してくれないぞ
0745デフォルトの名無しさん
2009/06/17(水) 12:19:390746デフォルトの名無しさん
2009/06/17(水) 12:24:03固定機能で無茶しようとするからこういうことになるんでね
0747デフォルトの名無しさん
2009/06/17(水) 12:45:49なぜ固定機能にこだわるんだろう
基本機能だけなら初心者には取っ付きにくいってほど難しくないだろう
一部の最新VGAでなければ動かなかった時代ならまだ解るけどさ
0748デフォルトの名無しさん
2009/06/17(水) 12:51:370749デフォルトの名無しさん
2009/06/17(水) 12:54:28VS1.1サポートしてないボードってなくね?
0750デフォルトの名無しさん
2009/06/17(水) 13:00:090751デフォルトの名無しさん
2009/06/17(水) 13:03:530752デフォルトの名無しさん
2009/06/17(水) 13:04:27float4 mask = { 0, 1, 0, 0 };
dstColor.a = dot( srcColor, mask );
これ、カラーキーやりたいならはじめ(ロード時)にα画像を作っちゃったほうがよくね?
0753デフォルトの名無しさん
2009/06/17(水) 13:05:39動いちゃうよたしか
HARDWAREなんとかダメでもSOFTWAREなんとかなら動いちゃう
0754デフォルトの名無しさん
2009/06/17(水) 13:07:040755デフォルトの名無しさん
2009/06/17(水) 13:12:320756デフォルトの名無しさん
2009/06/17(水) 13:15:47固定シェーダ理解できる脳みそあればシェーダなんて余裕でしょ
屁みたいなもんだよ
0757デフォルトの名無しさん
2009/06/17(水) 13:17:24最初からシェーダーあったのでむしろ無いのは拷問だが
0758デフォルトの名無しさん
2009/06/17(水) 13:18:200759デフォルトの名無しさん
2009/06/17(水) 13:19:17それだw
今度からそれでいこうw
0760デフォルトの名無しさん
2009/06/17(水) 13:24:57○○など存在しない系のレスは見るとムカムカするが
これはなごんだわw
0761デフォルトの名無しさん
2009/06/17(水) 13:26:230762デフォルトの名無しさん
2009/06/17(水) 13:33:45しょっぱなヒットするサイトの用語と計算式まちがってねぇ?
α値を使ってやる計算はすべてαブレンドだろ?
普通の奴は加重平均っていうんだぞ
0763デフォルトの名無しさん
2009/06/17(水) 15:05:26固定シェーダでは、RGBをAに入れる直接的な方法が
用意されていない為。
0764デフォルトの名無しさん
2009/06/17(水) 15:56:08必要ないからじゃない?
0765698
2009/06/17(水) 16:00:44返信ありがとう
多分、そこらへんはクリアしているんだけど
階段とかを上るときに、めり込まない様にする方法がわからないんですよね
静止時には下半身のアニメーションはつけていないので
足と階段の接点からめり込まない様に膝を曲げるってな所まではできたんですが
それをもともとある階段を上るアニメーションに適用していいのかがわからないんです
0766デフォルトの名無しさん
2009/06/17(水) 16:31:15アニメーション後の2つの脚の位置から下方向に調べて
それぞれめり込まないようにひざを曲げれば出来そうな気もするけど
0767デフォルトの名無しさん
2009/06/17(水) 16:41:47どうせプログラムなんだからいろいろ弄って見ればいいのに
0768デフォルトの名無しさん
2009/06/17(水) 17:18:04で何か問題あるか?
IK適用とはめりこまないようにやるんだろ。
元がアニメーション適用前でも後でも、関係ない話じゃん。
0769デフォルトの名無しさん
2009/06/17(水) 18:26:14D3DXMatrixRotationX Y Z
D3DXMatrixTranslation
この中身は何をしてるの?
0770デフォルトの名無しさん
2009/06/17(水) 18:28:34行列ってのはグラフなんかの傾きをコントロール出来たりと凄い便利な物
まあ詳しくは数Cの本で
0771デフォルトの名無しさん
2009/06/17(水) 18:30:42ヘルプからいつのまにかに式が消えてんぞw
消すなよなw
0772デフォルトの名無しさん
2009/06/17(水) 18:33:340773デフォルトの名無しさん
2009/06/17(水) 18:54:100774デフォルトの名無しさん
2009/06/17(水) 19:08:06けどスクリーン座標上でまわしたいの?
0775デフォルトの名無しさん
2009/06/17(水) 19:13:46つまり画面に表示されてる画像や文字を回転させて表示したいと?
0776デフォルトの名無しさん
2009/06/17(水) 19:24:330777デフォルトの名無しさん
2009/06/17(水) 19:33:07各頂点を中心点から等距離に移動させれば回転できる。
0778デフォルトの名無しさん
2009/06/17(水) 19:39:400779デフォルトの名無しさん
2009/06/17(水) 19:48:170780デフォルトの名無しさん
2009/06/17(水) 19:52:530781デフォルトの名無しさん
2009/06/17(水) 19:56:43pFont->DrawText
で文字化けします。半角英数字だと文字化けしません。どうしてですか?
0782デフォルトの名無しさん
2009/06/17(水) 20:02:18LPD3DXSPRITEのSetTransformにD3DXMatrixRotationYawPitchRollで回した
D3DXMATRIXのポインタを入れたりして回転させられるけど
この方法は間違ってる気がする
そもそもx,y軸で回せないし・・・
0783デフォルトの名無しさん
2009/06/17(水) 20:07:253D座標上でやってるの?
スクリーン座標上でやってるの?
答え変わると思うんだけど?
>>774はおk?
0784デフォルトの名無しさん
2009/06/17(水) 20:16:14誰でも利用できるけど価格は高めだし、ほぼそのまま利用するしかない。
やっぱ材料があれば売っているような惣菜だけでなく自分で思い通りの物が作れるようにならないとな。
まぁ、スプライトはせいぜいゆで卵か。
>>774はゆで卵を使って卵かけ悟飯を作ろうとしている状態。
0785デフォルトの名無しさん
2009/06/17(水) 20:20:160786デフォルトの名無しさん
2009/06/17(水) 20:30:42けどなぜか0,0,0の位置を中心に回ってる
位置はtranslationで指定しないとだめなのか?
0787デフォルトの名無しさん
2009/06/17(水) 20:34:583D座標で回してるのかスクリーン座標で回してるのかはっきりしろよw
0788デフォルトの名無しさん
2009/06/17(水) 20:36:41指定した位置で回そうにも、
rotationzはその位置を知らないでしょ。
0789デフォルトの名無しさん
2009/06/17(水) 20:40:340790デフォルトの名無しさん
2009/06/17(水) 20:42:53Xファイルを表示したときはSetTransformで位置変えて回せるけど
そんな事しなくても回す点は指定できるの?
おしえてエロいひと
0791デフォルトの名無しさん
2009/06/17(水) 20:44:060792773
2009/06/17(水) 20:46:16できた!
思いのままクルクル回ってる!
0793デフォルトの名無しさん
2009/06/17(水) 20:53:40D3DXMATRIX tmscl;
::D3DXMatrixIdentity(&tmscl);
::D3DXMatrixScaling(&tmscl, 0.5f, 0.5f, 1.0f);
g_pdevice->SetTransform(D3DTS_TEXTURE0, &tmscl);
こで画像の左上1/4を切り取って表示されるのですが
D3DXMATRIX tmmov;
::D3DXMatrixIdentity(&tmmov);
::D3DXMatrixTranslation(&tmmov, 0.5f, 0.0f, 0.0f);
g_pdevice->SetTransform(D3DTS_TEXTURE0, &tmmovl);
これは何の変化がありません
どうすれば位置をずらせますか?
0794781
2009/06/17(水) 21:00:42全角フォントの文字化けの問題で詰まってます
0795デフォルトの名無しさん
2009/06/17(水) 21:04:47回転行列ってのは、原点(0)を中心に
ベクトルを回すもの。
位置を変えて回すには、
3つのプロセスが必要。
�@その位置まで移動する
�A回転する
�B元の位置まで戻る
行列は乗算で連結できるので、
位置を指定して回す行列 = �@の行列 x �Aの行列 x �Bの行列
んでこれをSetTransformに渡したりして使う。
0796デフォルトの名無しさん
2009/06/17(水) 21:17:20D3DTTFF_COUNT3 | D3DTTFF_PROJECTED
は、テクスチャ座標をトランスフォームした後、
[x,y,z]の三次元だけ取り出し、[x/z,y/z]として
二次元で取り扱うという意味。
トランスフォーム用の行列も3x3で
作らないと駄目。
tmmov =
[1,0,0,0]
[0,1,0,0]
[x,y,1,0]
[0,0,0,0]
0797デフォルトの名無しさん
2009/06/17(水) 21:20:38char文字列とは、ASCII用
日本語には使えません。
tcharかwcharを使え。
0798797
2009/06/17(水) 21:36:34ノーカンで。
0799デフォルトの名無しさん
2009/06/17(水) 21:40:58やっぱりそれはおかしい?
0800デフォルトの名無しさん
2009/06/17(水) 21:41:18自分で動くサンプルみつけて該当箇所コピーして考えろと言いたい
それでもできなかったら聞きにこいよ
0801デフォルトの名無しさん
2009/06/17(水) 21:51:41それ位jkだろ
0802デフォルトの名無しさん
2009/06/17(水) 22:05:24GetGlyphOutlineでフォントイメージを取得して、それをテクスチャに転送するだけ。
0803デフォルトの名無しさん
2009/06/17(水) 22:30:41できたです。
0804デフォルトの名無しさん
2009/06/17(水) 22:37:400805デフォルトの名無しさん
2009/06/17(水) 22:55:17使う文字が決まってるならいいけど
やってみたら1文字60fpsでcpu15%行った
0806デフォルトの名無しさん
2009/06/17(水) 23:02:03まさかとは思うが1FPSごとにテクスチャを書き直すなんて、
頭の悪いを通り越したような愚行は犯してないよな?
0807デフォルトの名無しさん
2009/06/17(水) 23:02:580808デフォルトの名無しさん
2009/06/18(木) 15:49:50http://image.blog.livedoor.jp/blv42/imgs/9/a/9aeb21f9.jpg
離島だって見捨てないぜ!!
http://image.blog.livedoor.jp/blv42/imgs/d/6/d61c42d7.jpg
0809デフォルトの名無しさん
2009/06/18(木) 18:34:05SetTransformはどっちが速いの?
0810デフォルトの名無しさん
2009/06/18(木) 18:46:05それぞれ1万回くらい描画して処理時間計ってこい
0811デフォルトの名無しさん
2009/06/18(木) 21:44:49インターネットって暇で親切で自己顕示欲の塊みたいな人が実験結果をアピールしてるじゃん
0812デフォルトの名無しさん
2009/06/18(木) 21:47:38そういうのはゲームエンジンを作るのだけが目的の人がやってるだろうから
結果だけ教えてくれ
0813デフォルトの名無しさん
2009/06/18(木) 21:52:03自分で試す事が出来ない人間にエンジンなんて無理に決まってるだろ
あれだ、韓国だかが背伸びしていろいろやろうとして失敗するのと同じだ
0814デフォルトの名無しさん
2009/06/18(木) 21:55:29「わからない。」
0815デフォルトの名無しさん
2009/06/18(木) 22:32:05一周が一定になるようにSleep使って止めればいいんだよな?
void Wait(){
static float time=0;
float term,FPS=0.0f;
term = timeGetTime()-time;
if(16.6f-term>0)Sleep(16.6f-term);
time=timeGetTime();
}
ってやるのは間違いか?
0816デフォルトの名無しさん
2009/06/18(木) 22:34:17一般的に約1秒間の間に何フレーム描画したかを数えて1秒間隔で表示したほうが見やすい。
0817デフォルトの名無しさん
2009/06/18(木) 22:37:08一フレーム当たり0.166666になるようにすればいいのか?
0818デフォルトの名無しさん
2009/06/18(木) 22:46:200819デフォルトの名無しさん
2009/06/18(木) 22:47:34お前らって、、
0820デフォルトの名無しさん
2009/06/18(木) 22:55:09∴ゲーム内部の更新が秒間60回固定なら、前回フレームと今回フレームを
VSyncの端数の比率で補間した位置に描画する、が理論上の正しい答え。
0821デフォルトの名無しさん
2009/06/18(木) 22:56:26そのやり方がアホだから、変動おkにしろと。
0822デフォルトの名無しさん
2009/06/18(木) 22:59:570823デフォルトの名無しさん
2009/06/18(木) 23:01:54つい最近まで思い込んでたのだけど、今はその方が普通なのか?
何がきっかけで、そうするようになった?
(俺は偶々xna関連ブログから検討するようになった)
0824デフォルトの名無しさん
2009/06/18(木) 23:04:23描画用ルーチンとゲームメインルーチンがあったとして
描画用ルーチンは変動してもいいけど、
メインルーチンは変動しちゃ駄目だろ。
つまり、FPSを安定させる方法も必要。
0825デフォルトの名無しさん
2009/06/18(木) 23:19:120826デフォルトの名無しさん
2009/06/18(木) 23:20:41何をいっとるんだ。
0827デフォルトの名無しさん
2009/06/18(木) 23:22:11というのも
void Fps(){
static int time=0,ave=0,f[60];
f[count%60]=timeGetTime()-time;
time=timeGetTime();
if(count%60==59){
ave=0;
for(int i=0;i<60;i++)
ave+=f[i];
ave/=60;
}
if(ave!=0)FPS=ave;
return;
}
というのをやったらFPSの値はなんでか16.0で安定してるんだよ
安定するのはいいんだけどなんで60にならないんだろう?
0828デフォルトの名無しさん
2009/06/18(木) 23:28:53算数をやりなおしましょう。
0829デフォルトの名無しさん
2009/06/18(木) 23:36:33望んでる結果じゃねえか
0830デフォルトの名無しさん
2009/06/19(金) 00:08:15ふれーむ ÷ びょう
って意味だよ
びょう ÷ ふれーむ じゃないよ
0831デフォルトの名無しさん
2009/06/19(金) 00:12:090832デフォルトの名無しさん
2009/06/19(金) 00:14:36物理エンジンとかが容易に使えるようになったからかな・・・
アレも変動した時間間隔を渡すし
0833デフォルトの名無しさん
2009/06/19(金) 00:15:440834デフォルトの名無しさん
2009/06/19(金) 00:19:28http://game.watch.impress.co.jp/img/gmw/docs/168/708/html/gow15.jpg.html
こういうのならいいと思うけど
0835デフォルトの名無しさん
2009/06/19(金) 00:22:05それをくっつけて形にしてるのかなあ?
0836デフォルトの名無しさん
2009/06/19(金) 00:25:54ソースはQuake3
…GTA4とかの変形した車とかは、頂点シェーダとか使ってるのだろうか?
0837デフォルトの名無しさん
2009/06/19(金) 06:54:46どうしたら線を動かなくできますか?
0838デフォルトの名無しさん
2009/06/19(金) 07:09:240839デフォルトの名無しさん
2009/06/19(金) 07:26:090840デフォルトの名無しさん
2009/06/19(金) 08:29:52断面ショー
0841デフォルトの名無しさん
2009/06/19(金) 17:18:45#define _3DMODEL_H
#include <Windows.h>
#include <mmsystem.h>
#pragma comment(lib,"d3d9.lib")
#include <d3d9.h>
#pragma comment(lib,"d3dx9.lib")
#include <d3dx9.h>
#define MAX_MODEL 20
struct MODEL
{
LPD3DXMESH p_mesh;
D3DMATERIAL9* p_materials;
LPDIRECT3DTEXTURE9* p_textures;
DWORD nummaterials;
BOOL used;
};
//以下クラス宣言など
このヘッダをinclude すると
3DDevice.cpp
\3dmodel.h(20) : error C2236: 予期しない 'struct' 'MODEL' です。';' が入力されていることを確認してください。
\3dmodel.h(20) : error C2143: 構文エラー : ';' が '{' の前にありません。
\3dmodel.h(20) : error C2447: '{' : 対応する関数ヘッダーがありません (旧形式の仮引数リスト?)
とエラーが出ます。
構造体定義が間違っているのでしょうか?
0842デフォルトの名無しさん
2009/06/19(金) 17:57:56スロやパチンコは別だからぁ〜 /
 ̄ ̄ ̄ ̄ ̄ ̄// ̄ ̄ ̄ ̄ ̄ ̄
_
/三ー\ __________________
/ノ:::三(@)\___皿_____||
. |:::::(@):::::::⌒)\::+:+::::\. ||
. |::::::::::(__ノェェイ::::::|:###::::*:: ||
\::::::\`ェェェノ:::::/::444::U::: ||
\ ∪::::::::::_ノ*::::u::::*::: ..||
/ ̄ \\:::ー:::/::||
/ フ /ヽ ヽ=======◎
↑
パチンカス
0843デフォルトの名無しさん
2009/06/19(金) 17:59:12たぶんだけど
そのヘッダーの一個前にインクルードしてるヘッダーにエラーがある
0844841
2009/06/19(金) 18:53:57別のヘッダのクラスに;付け忘れてました
0845デフォルトの名無しさん
2009/06/19(金) 18:57:29どうせよほどのキチガイゲーマーでなきゃ10msくらいかわっても気づかんよ
秒間60フレーム描画したいなら1フレームあたりの処理と描画とウエイトタイムの合計が
16msくらいになるようにすればいいだけだろ
音ゲーでもない限りカリカリするような話題じゃないとおもうんだが
まるで生きがいであるかのようにこだわる奴がいるよな
むしろP2Pネットワーク対戦とか実装するなら
ある程度変動を許容するファジーな仕様にしといたほうがいいと思うけどなー
まー人それぞれだわな
0846デフォルトの名無しさん
2009/06/19(金) 19:25:47某MOゲームの高スペックマシンにのみ起きる多段ヒット即死みたいな
0847デフォルトの名無しさん
2009/06/19(金) 19:58:41ループ回数を指定したい場合どのようにすればいいですか?
ループの瞬間にコールバックしてくれるとか、そのままズバリループ回数が指定できるとか、
そういうのがあればいいんですが...。
毎回 IDirectSoundBuffer8::GetCurrentPosition やって、直前のポジションよりも小さな値が入ってきたら
ループ回数をインクリメント、規定回数になったらループフラグをはずすとか..
でも再生中にループフラグ変えることできませんよね
0848デフォルトの名無しさん
2009/06/19(金) 20:11:07int My_FPSWait(void) {
int now = My_clock(); // 現在時刻(msec)
int next = g_start + 1000 * g_frame / FPS;
if (now < next) return (next - now); // 待機中
if (g_frame < FPS - 1) {
//フレーム数が指定 FPS-1 に達していない
if (now < g_start + 1000 * (g_frame + 1) / FPS) {
//1フレーム時間以上の遅延がなければ、そのままフレーム番号をインクリメントする
++g_frame;
} else {
//1フレーム以上の遅延があった場合は、リセットして最初から計測しなおす
g_start=now; g_frame=0;
}
} else {
//フレーム数が、指定 FPS-1 だった
if (now < g_start + 1000) {
//スタート時間からまだ1秒経過していない場合は、スタート時刻を1秒ずらした値を新しいスタート時刻にする
g_start += 1000;
} else {
//スタート時間から既に1秒が経過しているならスタート時刻を現在時刻でリセットする
g_start = now;
}
g_frame = 0;
}
return 0; // 待機終了
}
0849デフォルトの名無しさん
2009/06/19(金) 20:45:330850デフォルトの名無しさん
2009/06/19(金) 20:53:270851デフォルトの名無しさん
2009/06/19(金) 20:53:510852デフォルトの名無しさん
2009/06/19(金) 20:54:39Zの差でも出せば?
0853デフォルトの名無しさん
2009/06/19(金) 20:56:280854デフォルトの名無しさん
2009/06/19(金) 21:25:380855デフォルトの名無しさん
2009/06/19(金) 21:34:500856デフォルトの名無しさん
2009/06/19(金) 21:39:440857デフォルトの名無しさん
2009/06/19(金) 23:19:440858デフォルトの名無しさん
2009/06/19(金) 23:39:21参考に
ttp://marupeke296.com/COL_3D_No8_HightOfFloor.html
ただまあポリゴンの法線がわからないと使えないけども
0859デフォルトの名無しさん
2009/06/19(金) 23:45:10初心者にはD3DXIntersectの存在を教えるだけでOKでしょ
0860デフォルトの名無しさん
2009/06/19(金) 23:59:560861デフォルトの名無しさん
2009/06/20(土) 00:27:55嫌がらせるためにはどう答える?
0862デフォルトの名無しさん
2009/06/20(土) 00:47:330863デフォルトの名無しさん
2009/06/20(土) 00:57:45自前で描いたほうが勉強になるよ、と言う
0864デフォルトの名無しさん
2009/06/20(土) 01:07:43厨房が勝ち誇ったように言ってると思われて
第三者に諭されるだけだぞ
0865デフォルトの名無しさん
2009/06/20(土) 01:31:34テクスチャ生成というのをやっているのですが、WinXPではうまく動くのに
Win7だとメインスレッドが止まったまま、裏スレッドが動き続けてしまいます。
(エラーはいっさい発生せず、メインスレッドがどこかで無限ループに陥ってる?)
で、はっと気づいて BeginScene から EndScene までと、テクスチャの生成関数、
テクスチャ Lock から Unlock までをクリティカルセクションに指定しました。
すると今度は Win7 で正しく動くのに、WinXpでは動かなくなりました。
ためしにクリティカルセクションを向こうにしてみると、 Win7では動かず、WinXPでは
正しく動きます。
いったいどういうことなのでしょう??
0866デフォルトの名無しさん
2009/06/20(土) 01:34:590867デフォルトの名無しさん
2009/06/20(土) 01:56:34まずはちゃんとマルチスレッドのデザインパターンを勉強しような。
0868デフォルトの名無しさん
2009/06/20(土) 02:04:12このコードを使おうと思っています。
ttp://www5f.biglobe.ne.jp/~kenmo/program/skinmesh/skinmesh.html
CAllocateHierarchy hierarchy;
で宣言すると抽象クラスをインスタンス化できないとコンパイルエラーが出てしまいます。
CreateFrame
CreateMeshContainer
DestroyFrame
DestroyMeshContainer
の4つがオーバーライドされているので問題ないと思うのですが、何か根本的な間違いをしているでしょうか?
変更した所といえば、コンパイルが通らないので 下記のように"__stdcall"を追加したくらいです。
HRESULT __stdcall CAllocateHierarchy::DestroyFrame(LPD3DXFRAME pFrameToFree)
3日考えてもわかりませんでした。
よろしくお願いします。
0869デフォルトの名無しさん
2009/06/20(土) 02:05:22その方法で解決しました > 866
なんか WinVista からマルチスレッド関連が仕様変更になったらしいですね
0870デフォルトの名無しさん
2009/06/20(土) 02:17:52マルチスレッドにしてる限り自分で何も考えなくていいわけじゃないぞ・・・。
ある日マルチコア環境で不具合発生とかで泣くなよ。
0871デフォルトの名無しさん
2009/06/20(土) 02:20:03考えたくもねー。ID3DXAnimationControllerのクソ仕様に無駄に苦悩させられるだけだから
自分で作ったほうが早いわ。
0872デフォルトの名無しさん
2009/06/20(土) 02:28:22>ただ、SDKのバージョンは9.0bなので、9.0cだと、
>CreateMeshContainerの引数や、アニメーションコントローラのメソッドが変わっていたります。
って書いてあるじゃん
たぶん何か足りないか関数名が変わってるとかしてるんじゃない?
0873デフォルトの名無しさん
2009/06/20(土) 10:21:56ID3DXSpriteと書けば何の問題も発生しない
0874デフォルトの名無しさん
2009/06/20(土) 11:21:430875デフォルトの名無しさん
2009/06/20(土) 11:38:15おめー厨二だろ
0876デフォルトの名無しさん
2009/06/20(土) 14:24:21「(足を上げたときに)お尻が丸い」と巧く変形した事を褒めたら
会話の流れを知らない第三者にセクハラだと思われた事があったんだよな
児ポ法の規制が通ったら、
・サンプルの特徴の無いキャラは子供っぽく見える
・スキンメッシュの話の為にM字開脚した時の破綻画像をネットにあげる
・第三者ババァがロリサイトだと言い張る
・捕まる\(^o^)/
って事になるんじゃね?
0877デフォルトの名無しさん
2009/06/20(土) 15:06:06臀部が球状だねとかなんとか
0878デフォルトの名無しさん
2009/06/20(土) 15:13:47破綻画像を他人に見せる時は、破綻を解決する方に無い知恵絞ってる最中だろ?
そんな時に、言い方とか、キャラにテクスチャ貼って30過ぎのオッサンである事を一々伝えるか?
0879デフォルトの名無しさん
2009/06/20(土) 15:30:41性的興奮をするのは想定の範囲内です
0880デフォルトの名無しさん
2009/06/20(土) 15:42:12あらかじめ捕まっとけよ
0881デフォルトの名無しさん
2009/06/20(土) 16:01:300882デフォルトの名無しさん
2009/06/20(土) 16:32:250883デフォルトの名無しさん
2009/06/20(土) 16:32:27D3DXはDirectXではない
0884デフォルトの名無しさん
2009/06/20(土) 16:34:250885デフォルトの名無しさん
2009/06/20(土) 16:47:28多分それは決められた座標に常にあって、
一度箱の中心にカメラ位置を設定して描画してから
プレーヤー視点にカメラ位置を戻して描画すると
箱の画像が背景になる。
ゲームの内部データを無断で見てしまうなら、Pixとか使ってしまっても
良いと思う
0886デフォルトの名無しさん
2009/06/20(土) 16:50:25空とか地平線などの遠景のテクスチャを
でかい球やボックスの内側に貼り付けて
その内側にシーンをレンダリングすることで自然な背景を演出するためのもの
0887デフォルトの名無しさん
2009/06/20(土) 17:02:370888デフォルトの名無しさん
2009/06/20(土) 17:26:29CやC++でコンパイルエラーが1行になることはあるのでしょうか?
教えてください
0889デフォルトの名無しさん
2009/06/20(土) 17:37:190890デフォルトの名無しさん
2009/06/20(土) 17:53:33頭の弱い子なのかと思ってしまう
0891デフォルトの名無しさん
2009/06/20(土) 18:17:350892デフォルトの名無しさん
2009/06/20(土) 18:25:500893デフォルトの名無しさん
2009/06/20(土) 18:34:45難しいこと考えないでDSBPLAY_DEFAULTでならして
GetStatusで再生が終了したら指定回数終了するまでもう一度鳴らすって
別スレッドを作ればいいだけの話では?
0894デフォルトの名無しさん
2009/06/20(土) 18:47:570895デフォルトの名無しさん
2009/06/20(土) 19:02:39DirectSoundより圧倒的に楽だからな。
ループを含めたBGM・音の再生ルーチンを用意するのに200行もかからない。
効果音のオンメモリによるゼロレイテンシの再生はまだ必要ないので実装してないが。
今からやるならXAudio2だけで十分。XPでも普通に動くし。
0896デフォルトの名無しさん
2009/06/20(土) 19:04:36サウンド部分はまったく手をつけてなくて便乗して質問させていただいたのですが、
Xaudio2から始めてみます
0897デフォルトの名無しさん
2009/06/20(土) 19:54:58ありがとうございます。
どうやらCreateMeshContainerの引数に問題がありそうです。
http://msdn.microsoft.com/ja-jp/library/cc372724.aspx
http://msdn.microsoft.com/ja-jp/library/bb205621(VS.85).aspx
またしばらく悩んでみようと思います。
0898デフォルトの名無しさん
2009/06/20(土) 20:13:13いつの時代でもDirectSoundから始めて詰まる事に変わりはしないし
このスレもずっと荒れつづける
0899デフォルトの名無しさん
2009/06/20(土) 22:52:590900デフォルトの名無しさん
2009/06/20(土) 23:09:29スキンメッシュやれる技量あるのになんでシェーダーやらない?
0901デフォルトの名無しさん
2009/06/20(土) 23:27:04固定機能シェーダ−>ソフトウェア−> HLSL シェーダ
の順に習得する物なのかな…?
この辺りの歴史背景とか知らないので、教えてエロい人
0902デフォルトの名無しさん
2009/06/20(土) 23:40:30シェーダーなんてbeginとendで囲むだけだし
0903デフォルトの名無しさん
2009/06/20(土) 23:41:38固定機能はDirectX10-11以降は存在しません
加えて11では今の頂点シェーダ、ピクセルシェーダに加え
新たに4つのシェーダーが加わりさらに複雑化する見通し
いまのうちから慣れておいて損はない
0904デフォルトの名無しさん
2009/06/20(土) 23:44:440905デフォルトの名無しさん
2009/06/20(土) 23:45:38SetRenderState や SetSamplerState などが無くなるって意味?
0906デフォルトの名無しさん
2009/06/21(日) 02:00:41そんな意味の無い質問繰り返してるのが時間の無駄
ついでに言えば固定シェーダに悩んだ時間はただの時間の浪費でしかない
サンプル見つけてその通り書いてみるだけでもうなにもかもわかる
0907デフォルトの名無しさん
2009/06/21(日) 06:05:09理解すれば勝手に使わなくなるもんだw
0908デフォルトの名無しさん
2009/06/21(日) 06:21:500909デフォルトの名無しさん
2009/06/21(日) 08:26:400910デフォルトの名無しさん
2009/06/21(日) 10:39:53それに、各種エフェクトや半透明とかの対処を学ぶにもシェーダーを用意しなくて良いから楽
0911デフォルトの名無しさん
2009/06/21(日) 10:53:090912デフォルトの名無しさん
2009/06/21(日) 11:04:483Dはシェーダーで描画
こんな風に併用してる奴は俺以外にはいないか?
0913デフォルトの名無しさん
2009/06/21(日) 11:09:470914デフォルトの名無しさん
2009/06/21(日) 12:01:46固定機能を先に説明してる奴が悪い
0915デフォルトの名無しさん
2009/06/21(日) 12:52:09いちいちSIMD化しないといけない憂鬱を考えたらホント楽。
0916デフォルトの名無しさん
2009/06/21(日) 12:57:07それより以前の使ってる奴なんているわけない
0917デフォルトの名無しさん
2009/06/21(日) 13:00:54でもあれって、無駄な切り替え扱いで処理速度落ちちゃってるんでしょうか?
プログラマブルシェーダになって、すべての描画設定のところに
CullMode = CCW
を入れているのは、固定シェーダ時代でいうと
毎描画前にSetRenderStateでCCWを設定している相当の遅さになるような気がするのですが…。
0918デフォルトの名無しさん
2009/06/21(日) 14:06:580919デフォルトの名無しさん
2009/06/21(日) 14:15:02エフェクトのBeginのときにD3DXFX_DONOTSAVESTATEを指定しない場合は
Begin時に現在のデバイスステートを保存しEnd時に復元される
Begin時にCullModeがCCW以外であれば
切り替えて戻すことになるので実行速度は遅くなる
Begin時にCullModeがCCWの場合は
これは実行環境によるような気もするけど俺が前にPIXで確認したときは速度に影響はなかった
とはいえ、デフォルトの設定はあらかじめきちんと自分でしておき
デフォルトでないステートを使いたいときのみテクニック内で変更してEndで復元するという使い方が正しい気がする
0920デフォルトの名無しさん
2009/06/21(日) 14:22:21PIX for WindowsがSDKのユーティリティに付属してることを知らない人多いよね
初心者スレならテンプレに乗せても良いくらいだ
0921デフォルトの名無しさん
2009/06/21(日) 15:12:45Microsoftが勝手に作ったツールに過ぎない。ID3DXSpriteより外縁の存在だ。
0922デフォルトの名無しさん
2009/06/21(日) 15:16:580923デフォルトの名無しさん
2009/06/21(日) 15:28:27使う使わないは本人が決める事だが
0924デフォルトの名無しさん
2009/06/21(日) 15:33:55このスレだと、そういう事をマジで言っちゃう奴とか居るので
そういうボケはちょっと・・・
0925デフォルトの名無しさん
2009/06/21(日) 15:42:020926デフォルトの名無しさん
2009/06/21(日) 17:19:100927デフォルトの名無しさん
2009/06/21(日) 17:24:11頂点バッハに入れておいてどばーっと描くのと
4つの頂点だけ作ってトランスで操作しながら描くのは
どっちが速い?
0928デフォルトの名無しさん
2009/06/21(日) 17:26:28プログラムなんだし何やっても怒られないだろ
0929デフォルトの名無しさん
2009/06/21(日) 17:29:54.xメッシュは移動できる
0930デフォルトの名無しさん
2009/06/21(日) 17:34:240931デフォルトの名無しさん
2009/06/21(日) 20:06:430932デフォルトの名無しさん
2009/06/21(日) 20:18:290933デフォルトの名無しさん
2009/06/21(日) 20:20:130934デフォルトの名無しさん
2009/06/21(日) 20:40:05マテリアル切替まくるのにいまさらそんなものの回数なんて気にしてられるか
0935デフォルトの名無しさん
2009/06/21(日) 20:42:160936デフォルトの名無しさん
2009/06/21(日) 21:26:240937デフォルトの名無しさん
2009/06/21(日) 21:29:430938デフォルトの名無しさん
2009/06/21(日) 21:43:49もっとも最近のVGAではユーザーメモリに対しての優位性はほとんど無くなってるらしいが。
0939デフォルトの名無しさん
2009/06/21(日) 22:03:49UP系のメソッドだって中じゃVertexBuffer経由してんだから。
0940デフォルトの名無しさん
2009/06/21(日) 22:03:510941デフォルトの名無しさん
2009/06/21(日) 22:08:51・DrawPrimitive呼び出しが少ない
で、ジオメトリインスタンシングがいいんじゃないか?
使ったこと無いけど。
0942デフォルトの名無しさん
2009/06/21(日) 22:14:23くわしく
0943デフォルトの名無しさん
2009/06/21(日) 22:24:060944デフォルトの名無しさん
2009/06/21(日) 22:36:2032x32マップチップを800x600の画面に描画するのでさえ処理落ちするし
そういう用途に限ってVertexBufferを使用する最大数まで確保しておいて
使用頂点数指定して描画したほうがいい
ただ、マテリアルの切替とかできないから汎用性をつけるのははっきりいって無駄
もうそこだけ限定でおk
0945デフォルトの名無しさん
2009/06/21(日) 22:38:18たとえば単一のテクスチャで草や葉の一群を描画するのか
弾幕STGの敵や弾でテクスチャ等がいろいろ混じって一万枚なのか。
0946デフォルトの名無しさん
2009/06/21(日) 22:41:180947デフォルトの名無しさん
2009/06/21(日) 22:45:43あんまりよく覚えてねぇけど
頂点の使用数を入れる引数があったはずだから別にUPとかいらないんじゃない?
前から
どうだっけ?
0948デフォルトの名無しさん
2009/06/21(日) 22:47:24ジオメトリシェーダの話題とか皆無だよな
0949デフォルトの名無しさん
2009/06/21(日) 22:55:30CreateVertexBufferで一定サイズごとに動的バッファ作ってプールしといて使いまわし。
0950デフォルトの名無しさん
2009/06/21(日) 22:58:54DrawPrimitiveを475回呼び出すだけで処理落ちとか、
どれだけ糞環境なんだよ?
0951デフォルトの名無しさん
2009/06/21(日) 23:12:47DrawPrimitiveを回数呼ぶと簡単に落ちるよ
背景だけ描いて終わりじゃないしな
0952デフォルトの名無しさん
2009/06/21(日) 23:13:50それが出来ないのはFPSを固定していないから
処理落ち云々言ってるのは正に初心者
0953デフォルトの名無しさん
2009/06/21(日) 23:16:27別に糞環境じゃねぇけど処理落ちするぞ
0954デフォルトの名無しさん
2009/06/21(日) 23:16:53これを本気でいってるならそのほうが初心者っぽいが
0955デフォルトの名無しさん
2009/06/21(日) 23:28:240956デフォルトの名無しさん
2009/06/21(日) 23:31:07テクスチャを32*32ごとに一つずつ作って、毎度切り替えている。
動的バッファを作っていながらAGPメモリを使わずに毎度書き換えている。
意味も分からずID3DXSpriteを利用している。
0957デフォルトの名無しさん
2009/06/21(日) 23:32:38そんなミスしないよ
0958デフォルトの名無しさん
2009/06/21(日) 23:34:38致命的に馬鹿なことをしているのが通例。
0959デフォルトの名無しさん
2009/06/21(日) 23:44:51裏画面に全体を描き込んで一度に転送していない
(1チップ毎に画面転送している)
全てのテクスチャを作り直している
FPSを固定していない
垂直同期に設定している
無駄なSLEEPを入れている
ハードウェアアクセラレーションを使っていない
0960デフォルトの名無しさん
2009/06/21(日) 23:50:34そんなの今更考えられる原因としてあげてるのおかしいだろw
0961デフォルトの名無しさん
2009/06/21(日) 23:53:410962デフォルトの名無しさん
2009/06/21(日) 23:53:47馬鹿コードを直してやるよ
0963デフォルトの名無しさん
2009/06/21(日) 23:53:50>垂直同期に設定している
質問者とは別人だが、その辺をどうしようか考えているところ。
その辺のことを解説したいいページとかないかな。
MSDNに書いてある?
やりたいのは液晶(通例59ないし60FPS)、CRT(60以上)どちらでも
最大60FPSを(処理落ちしない限り)安定して提供できるようなフレーム処理がしたい。
0964デフォルトの名無しさん
2009/06/21(日) 23:54:43いつの話だよ。
今のは最低限のDrawPrimitiveにまとめる構造になってるぞ。
0965デフォルトの名無しさん
2009/06/21(日) 23:55:52テクスチャ順にソートするだけだろ
0966デフォルトの名無しさん
2009/06/21(日) 23:57:48僕はいつも楽しみにしています
0967デフォルトの名無しさん
2009/06/22(月) 00:01:30分割して呼び出すと遅いってだけでそれ以外はこいつ呼ぶしかねーんだから
遅いも糞も使わなきゃなにもでんがなw
0968デフォルトの名無しさん
2009/06/22(月) 00:02:55ちなみに何FPS出てるのか知りたい
0969デフォルトの名無しさん
2009/06/22(月) 00:03:40頂点バッファに溜めてるっぽい
0970デフォルトの名無しさん
2009/06/22(月) 00:06:52シーンの初期化時「Now Loading...」とでも表示してる間に並べて描いて
後は領域切り出して転送するだけ。
0971963
2009/06/22(月) 00:09:34なるほど……垂直同期で待機する方法を調べてみるか。
>ちなみに何FPS出てるのか知りたい
今のところネットブックで動かしてもフルスクリーンにすれば
60FPSが出るように処理量を抑えることができている。
でも環境によって、CPUに余力があるはずなのに
常に100%使用になっちゃう場合があるんだよね。
垂直同期で待機するとフレームが飛んだ場合の検出を別にやる必要が出てきそうだ。
その場合はtimeGetTimeでいいのかな?
0972デフォルトの名無しさん
2009/06/22(月) 00:11:05メモリー食うじゃん?
0973デフォルトの名無しさん
2009/06/22(月) 00:14:36それだと縦横4096超えるようなマップが作れなくない?
オレならマップチップを並べた状態のメッシュを用意して、1つのオブジェクトとして描画させるが。
今のところ32x32サイズだが、テクスチャが共有できてれば速度的な問題は無い。
若干問題は残っていてフェードアウトかけたいときにマテリアル光のαを減らすと、
2重になってるマップチップだけ1重のところより明るく見えちゃうことだな。
これを回避しようと思ったら970のいうように一旦サーフェイスに書いて、
改めてα合成をやり直す必要があると思う。
0974デフォルトの名無しさん
2009/06/22(月) 00:14:50core2なら50%、クアッドコアなら25%になるんだろ?
もろ、FPS固定、可変SLEEPが出来てない証拠
0975デフォルトの名無しさん
2009/06/22(月) 00:21:230976デフォルトの名無しさん
2009/06/22(月) 00:22:33いや、どうもダメな環境の場合、
Draw*Primitive*() 〜 Present() あたりで制御が返ってきてないように見える。
まだちゃんと時間計測やってないけど。
メイン環境だと処理能力に余裕があるからSleepする時間が取れるんだけどね。
ネットブックのGME950は挙動にくせがあるなー。
テクスチャの初期化のされ方もほかの会社のと違うみたいだし。
0977デフォルトの名無しさん
2009/06/22(月) 00:24:08モニタの垂直回帰を自動で待つんだから
垂直同期は外してマルチスレッドで主スレッドはメッセージループのみ
子スレッドでメインループを作る
0978デフォルトの名無しさん
2009/06/22(月) 00:26:14DirectDrawでチップ組みの2DRPGを組むときのやり方と同じでしょ。
画面が1024x768でチップが32x32なら、サーフェイスは(1024+32)x(768+32)だけ確保して
矩形を4回描画すりゃできる。(2^nサイズの問題はおいておく)
0979デフォルトの名無しさん
2009/06/22(月) 00:28:110980デフォルトの名無しさん
2009/06/22(月) 00:32:22なるほど。そうやるのが定石なのか。
マップチップがアニメーションする場合は効率があまりあがらないような気がするが、
メッシュ処理をする場合にも最低限UVを張りなおしが必要なんだよな。
(テクスチャ上のチップを規則立てて並べることでピクセルシェーダ上で張替えを行う力業もあるわけだが)
0981デフォルトの名無しさん
2009/06/22(月) 00:35:46そうなのか。垂直同期待ちというのは面倒そうだな。
>垂直同期は外してマルチスレッドで主スレッドはメッセージループのみ
>子スレッドでメインループを作る
趣旨は分かるんだが、メッセージループでクリティカルなイベントを拾ったときの対処が面倒になるね。
例えばフルスクリーン、ウィンドウ表示の切り替えだとか。
1スレッドでやってるときはスクリーン切り替え中は勝手に処理が止まってるわけだが、
非同期で動いている場合は外から止める必要がある。
まあ既に7割以上のPCがデュアルコア以上になってるという市場の調査結果もあるから、
マルチスレッドによる計算資源の活用は積極的にやるべきだよな。
0982デフォルトの名無しさん
2009/06/22(月) 01:01:500983デフォルトの名無しさん
2009/06/22(月) 01:04:23全然わからんのだが教えてくれるか
>サーフェイスは(1024+32)x(768+32)だけ確保して
なんで+32?端の32x32 x nをマップチップとして使うの?
それだと数が限られないか?
>矩形を4回描画すりゃできる。
なんで4回?
この数字はどっから出てきた?
0984デフォルトの名無しさん
2009/06/22(月) 01:09:390985デフォルトの名無しさん
2009/06/22(月) 01:22:28エスパーの俺が受信したところによると
全画面より1チップ分だけ縦横にスクロール分を確保。
4回の件は、例えば左上にスクロールするとすると、左上部分を転送(1回目)
右部分の縦に細長い矩形を転送(2回目)
した部分の横に細長い矩形を転送(3回目)
右下の1チップを転送(4回目)
ってことではなかろうか。
こんな方法が標準かどうかは別の問題だけどさ。
0986デフォルトの名無しさん
2009/06/22(月) 01:36:03そんな時代にBltFastを駆使してドット単位スクロールをするなら・・・という手法かな。
その後すぐに、システムメモリに画面を作ってCPUで全画面転送した方が早いので
素直にでかいメモリ確保するようになった。
0987デフォルトの名無しさん
2009/06/22(月) 01:48:35なるほど、スクロール分なんですね。
納得しました。ありがとう。
0988デフォルトの名無しさん
2009/06/22(月) 02:48:030989デフォルトの名無しさん
2009/06/22(月) 02:55:57ピクセルシェーダは使える
0990デフォルトの名無しさん
2009/06/22(月) 04:23:530991デフォルトの名無しさん
2009/06/22(月) 04:36:360992デフォルトの名無しさん
2009/06/22(月) 05:31:290993デフォルトの名無しさん
2009/06/22(月) 05:32:420994デフォルトの名無しさん
2009/06/22(月) 05:45:17とらんすふぉーまー
0995デフォルトの名無しさん
2009/06/22(月) 05:49:46一度サーフェイスに書き込んでXYZで描きなおすしかないか
0996デフォルトの名無しさん
2009/06/22(月) 08:02:090997デフォルトの名無しさん
2009/06/22(月) 08:02:46スキップされるのは当然じゃないか。
なぜ普通にレンダリングしない。
0998デフォルトの名無しさん
2009/06/22(月) 09:18:08今更だが、1024+32だとメモリがスゲー無駄になりそうだから工夫がいるな
0999デフォルトの名無しさん
2009/06/22(月) 11:21:18基本的なアイデアとしてはこれで問題ないだろう。
また、最近のVGAボードなら2の累乗サイズでないテクスチャも扱えるし。
(処理速度に差がある場合があるようだが)
1024x1024で確保して768より下の部分をワーク部分とする方法もあるし、
2048x2048確保する方法だってあるだろう。
1000デフォルトの名無しさん
2009/06/22(月) 11:46:402の累乗以外対応のハイスペックVGAならそこまで効率を考える必要はないとして
むしろ対応してないロースペックVGAのことを考えるべきじゃないかと
>2048x2048確保する方法だってあるだろう
だからそれが無駄だと
>1024x1024で確保して768より下の部分をワーク部分とする
そういう工夫がいるよなって話
2048でもあいた所をうまく使えればいいかもしれないけど
解像度高めのテクスチャって環境チェックとかめんどいんだよな…
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。