【C++】 DirectX初心者質問スレ Part21 【C】

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
前スレはカスしか居ないので廃棄の方向で。

※回答する人も、質問する人も必ず読んでください

これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ

【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
 「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。

【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。
2デフォルトの名無しさん:2008/12/12(金) 20:20:42
とりあえず>>1
3デフォルトの名無しさん:2008/12/12(金) 20:24:53
このスレは荒らしの立てた重複スレです
こちらのスレをご利用下さい

【C++】 DirectX初心者質問スレ Part20 【C】
http://pc11.2ch.net/test/read.cgi/tech/1228901973/
4デフォルトの名無しさん:2008/12/15(月) 23:11:03
>>1
のちのち再利用をするとは思うが、無駄なスレは立てんなよ
お前が一番のカスだぞ
5デフォルトの名無しさん:2008/12/23(火) 07:49:33
ほっしゅーと
6デフォルトの名無しさん:2008/12/29(月) 17:08:46
すみません、前のスレに書いてしまったため、こちらに書かして頂きます。
何回も書いてしまって申しわけありません

初めまして、DirectX初心者のものですが皆様にご質問させていただきます。
現在DirectX9のノートパソコンでVisualStdioでプログラミングを行っております。しかし使用しているパソコンがノートなので
処理が重く効率が悪いのでパソコンの購入を考えているのですが、お店で売っている商品は
DirectX10ばかりです。DirectX10のパソコンでDirectX9のプログラミングを今までどおり
行う事は可能でしょうか?
7デフォルトの名無しさん:2008/12/29(月) 17:54:21
なんでそんな簡単に答えが帰ってきそうな質問まで
マルチポストするんだ
8デフォルトの名無しさん:2009/01/05(月) 20:58:57
HRESULT CString::Draw(LPTSTR str, INT iX, INT iY, D3DCOLOR color)
{
RECT rect = { iX, iY, 0, 0 };

// 文字列のサイズを計算
m_pFont->DrawText(NULL, str, -1, &rect, DT_CALCRECT, NULL);

// そのサイズでレンダリング
m_pFont->DrawText(NULL, str, -1, &rect, DT_LEFT | DT_BOTTOM, color);

return S_OK;
}

引数のD3DCOLORをD3DXCOLORにしても正常に実行できました。

D3DCOLORは0xff00ff00とか16進数はよくわからないので
簡単に指定したいのですがD3DXCOLORでもいいのですか?

前スレでD3DCOLORとD3DXCOLORは文字は似てるけど内容は全然違うと言われたので
どうしていいか迷っています

アドバイスよろしくお願いします
9デフォルトの名無しさん:2009/01/05(月) 21:04:56
>>8
16進数が分からないのは致命的なので勉強した方がいい。

色指定を16進数でしたくないなら、D3DCOLOR_ARGBマクロや
D3DCOLOR_COLORVALUEマクロを使う方法もある。

D3DCOLOR_ARGBマクロは0〜255の整数で色を指定する。
D3DCOLOR_COLORVALUEマクロは0.0〜1.0の実数で指定する。
10デフォルトの名無しさん:2009/01/06(火) 09:14:57
分からないなら黙っていてください。うざいだけです。
11デフォルトの名無しさん:2009/01/06(火) 09:38:21
>>10
分からないなら黙っていてください。うざいだけです。
12デフォルトの名無しさん:2009/01/06(火) 13:49:21
全スレで違いが問題になったのは
シェーダーがカラー情報をD3DCOLOR(2byte)だと認識しているのに
実際の頂点情報がD3DXCOLOR(16byte)だったために
どんどんずれて正常に描画されくなっていただけ
そのm_pFontがなんなのかがわからんが
正常に描画されるというならDrawTextが
D3DCOLORでもD3DXCOLORでもOKなようにオーバーロードしてあるだけだ
13デフォルトの名無しさん:2009/01/06(火) 14:03:00
D3DCOLORは4バイトだろ
14デフォルトの名無しさん:2009/01/06(火) 14:10:10
正直すまんかった
その通りでございます
15デフォルトの名無しさん:2009/01/06(火) 15:40:30
16デフォルトの名無しさん:2009/01/06(火) 15:48:43
17デフォルトの名無しさん:2009/01/06(火) 19:51:38
子曰く
「どうすればいいのか、どうすればいいのか、と考え悩みぬいた者でなければ
 私にもどうしようもない」

最初から他人をアテにしてるようじゃダメってことだな。
18デフォルトの名無しさん:2009/01/06(火) 21:11:54
DirectMusicを使おうと思い最新のSDKを入れました。
しかし、d3dx9.hなどはインクルード出来たんですが、dmusici.hが見つからないといわれます。
DirectMusicはなくなったのでしょうか?
19デフォルトの名無しさん:2009/01/06(火) 21:17:12
ない
20デフォルトの名無しさん:2009/01/06(火) 21:19:18
頂点バッファをロックするとき

void *vert= NULL;
if(FAILED(pVB->Lock(0, 0, &vert, 0))) {
return E_FAIL;
}



BYTE *vert = NULL;
if(FAILED(pVB->Lock(0, 0, (VOID**)vert, 0))) {
return E_FAIL;
}

使用用途によって変わると思いますがどっちがいいですか?
21デフォルトの名無しさん:2009/01/06(火) 21:20:34
BYTE *vert = NULL;
if(FAILED(pVB->Lock(0, 0, (VOID**)&vert, 0))) {
return E_FAIL;
}

です
22デフォルトの名無しさん:2009/01/06(火) 21:27:46
>使用用途によって変わる
23デフォルトの名無しさん:2009/01/06(火) 22:02:18
そもそも
>(VOID**)&vert
とか無駄なキャストをしている時点で、DirectX以前に言語の基礎からやり直せ。
2418:2009/01/06(火) 22:09:26
>19
やはりなくなったんですか…
DirectSoundを使うことにします。
ありがとうございます。
25デフォルトの名無しさん:2009/01/06(火) 22:17:59
DirectMusicの代わりならDirectSoundじゃなくてmidiOutとかだろ
26デフォルトの名無しさん:2009/01/06(火) 22:18:22
>24
ウインク一発決めてやらぁ
2718:2009/01/06(火) 22:52:11
>25
こういう関数があるとは知りませんでした。
ただ、Waveを再生しようと考えていたのでDirectSoundを使ってみます。
28デフォルトの名無しさん:2009/01/07(水) 01:18:05
DrawIndexedPrimitive(D3DPT_LINELIST,〜 で線をたくさん描画しており、
線の色はD3DXCOLORで指定しています。
しかし、D3DXCOLORで色はしっかり反映されるのですが、アルファ値が反映されず、半透明や透明にできません。

すいませんが原因をエスパーしてください。
29デフォルトの名無しさん:2009/01/07(水) 01:20:36
レンダーステートのアルファ関連が適切に設定されていない。
30デフォルトの名無しさん:2009/01/07(水) 02:44:21
LPDIRECT3DDEVICE9 p;
p->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
p->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
p->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);

とかやってみたらどうだろう
31デフォルトの名無しさん:2009/01/07(水) 15:46:52
質問させていただきます。
独自のxファイルを読み込みについて質問させていただきます。
Lightwaveで作った単一のアニメーションを再生させることには成功したのですが、そこから別のアニメーションにつなごうとすると一気に表示がおかしくなります。
具体的な方法は、まずメッシュ情報だけのファイルを読み取り、その後でアニメーション情報だけを全て読み込んでいきます。
そこで、たとえば最初のコンストラクタでキャラクターに立ちポーズのアニメーションをセットして、
立った状態で肩を揺らすようなモーションを再生させることはできるのですが、
そこからパンチを出すようなモーションに切り替えようとすると、キャラクタのルートフレームの合成行列やほかのフレームの行列が著しく変わってきます。
単一のアニメーションでしたらどちらも問題なく再生できるのですが・・・
同じような経験をされた方はいないでしょうか?


よろしくお願いします
32デフォルトの名無しさん:2009/01/07(水) 15:52:23
モーションブレンドの前提条件として、回転をクォータニオンで持っていること。
行列で線形補完しているのなら問題外。
33デフォルトの名無しさん:2009/01/07(水) 16:10:33
質問お願いします。
XYZ座標,頂点法線ベクトル,UV座標の情報を持つ構造体をxファイルから独自形式に変換して作りたいとおもっています。
xファイルにXYZ座標,UV座標,面法線ベクトルがあるのは分かるのですが頂点法線ベクトルがどうやったら得られるのか分かりません。
構造体はx,y,z,nx,ny,nz,u,vになります。
xファイルから頂点法線ベクトルはどうやったら得られるのでしょうか?
34デフォルトの名無しさん:2009/01/07(水) 16:13:16
MeshNormalsに入っているだろ。
無ければ元から無いだけ。
35デフォルトの名無しさん:2009/01/07(水) 16:26:52
そもそもX-Fileを経由なんて回り道をしなくても、自分の使っているモデリングソフトのエクスポータを作った方が手っ取り早いだろ。
36デフォルトの名無しさん:2009/01/07(水) 16:47:38
>>34
ありがとうございます。
見つかりました。
ただ頂点の数と頂点法線ベクトルの数が合っていませんでした。
別のソフトを使って試行錯誤していこうと思います。

>>35
エクスポータですか。
確かに便利そうです。
ありがとうございます。
調べてみようと思います。
37デフォルトの名無しさん:2009/01/07(水) 17:22:50
>ただ頂点の数と頂点法線ベクトルの数が合っていませんでした。
ベクトルの方の配列じゃなく、きちんとインデックスの数で比較したか?
38デフォルトの名無しさん:2009/01/07(水) 17:40:21
>>32さん
まさに二つのモーションの割合を行列にかけて計算していました・・・
本当にありがとうございました。クォータニオンの勉強をします。
しかし線形ではなぜダメなのでしょう。読んだ本でも同じようにモーションの割合を掛けていたはずなのですが
39デフォルトの名無しさん:2009/01/07(水) 17:54:07
箱を想像してみろ
適当な軸から中央を起点にして180度回転させて以前の座標との平均をとったら箱の形はどうなる?
40デフォルトの名無しさん:2009/01/07(水) 18:12:31
>>39さん
平面が想像されました・・・
確かに180度とかだとモデルの形は維持できませんね。分かりやすいです。

クォータニオンでやってみて無理でしたらまた相談させていただきます。
ありがとうございました。
41デフォルトの名無しさん:2009/01/07(水) 19:18:02
>>37
すいません。
勘違いしていました。
インデックスの配列合っていました。
お騒がせしました。
42デフォルトの名無しさん:2009/01/07(水) 22:32:12
アニオタうざい
43デフォルトの名無しさん:2009/01/07(水) 23:44:46
>>29-30
まさにそれでした!
エスパーありがとうございました。
44デフォルトの名無しさん:2009/01/08(木) 08:32:30
テレポーテーション〜♪
45デフォルトの名無しさん:2009/01/08(木) 09:18:35
質問なんですがvisualC++を使っていてなぜかcout endl が定義されていませんと出たのですがどうすればいいのでしょうか
46デフォルトの名無しさん:2009/01/08(木) 09:58:16
coutもendlもDirectXじゃないだろう。
47デフォルトの名無しさん:2009/01/08(木) 10:05:05
知らないなら黙っててください
48デフォルトの名無しさん:2009/01/08(木) 12:24:46
#include <iostream>
49デフォルトの名無しさん:2009/01/08(木) 19:58:16
質問者、知らないのに書き込むなよ
ここに書き込んでいいのは知ってる奴だけだ
50デフォルトの名無しさん:2009/01/08(木) 20:12:39
<usingnamespace std>
51デフォルトの名無しさん:2009/01/08(木) 20:17:46
52デフォルトの名無しさん:2009/01/08(木) 23:12:39
仕事で普段.netフレームワーク(主にC#)を使ってて
趣味でゲーム作りしてみようと思ったんだけど
VC++.netでDirectX開発(DirectX+.netフレームワーク)って可能ですか?

C#でManagedDXとかXNAも検討して
結局、不都合が多く
C++かなと考えたんだけど
.netフレームワークは使いたいと思い、このスレで質問しました。
53デフォルトの名無しさん:2009/01/08(木) 23:30:30
D3DXRotation○ と D3DXVec3TransformCoordの違いは

軸を中心に回転とその場で回転って感じでいいんですか?
54デフォルトの名無しさん:2009/01/08(木) 23:36:58
>D3DXRotation○
そもそもそんな関数は存在しない
55デフォルトの名無しさん:2009/01/08(木) 23:39:27
ごめんなさい
D3DXMatrixRotation○です
56デフォルトの名無しさん:2009/01/08(木) 23:41:03
回転行列を作る関数と、ベクトルをトランスフォームする関数で、
全く違う用途が違う関数なんだが何を言っているんだ?
57デフォルトの名無しさん:2009/01/09(金) 02:42:39
DirectSoundについて質問です。
色々なサイトを見ると最初にプライマリバッファを作り、次にセカンダリバッファを作ると載っているのですが、
MSDNのリファレンスを見ると少なくとも1つのセカンダリバッファが必要であるとしか書いていません。
実際にプライマリバッファを作らず、セカンダリバッファのみを作って音を鳴らしたところしっかり鳴りました。
プライマリバッファを弄らない場合でもプライマリバッファは作る必要があるのでしょうか?
58デフォルトの名無しさん:2009/01/09(金) 08:47:11
プライマリのフォーマットを変更するために作る。
変更する必要がないなら作る必要もない。
5957:2009/01/09(金) 10:39:31
>58
なるほど。
分かりやすい説明ありがとうございます。
60デフォルトの名無しさん:2009/01/09(金) 11:43:12
Cについての質問です
CSVファイルをカンマ区切りで読み込みたいのですがやり方を教えてくれませんか?
今までVBAしかやっていなくて混乱しています
61デフォルトの名無しさん:2009/01/09(金) 12:08:31
>>60
DirectXと何の関係が
↓で聞いてみたら
C言語なら俺に聞け(入門篇) Part 42
http://pc11.2ch.net/test/read.cgi/tech/1231180205/
62デフォルトの名無しさん:2009/01/09(金) 12:46:27
>>61
すいません。ありがとうございます
63デフォルトの名無しさん:2009/01/09(金) 23:47:58
質問させていただきます。
サンプルのスキンメッシュと、こちらのサイトを参考にアニメーションの勉強をさせていただいているのですが
ttp://www.shader.jp/xoops/html/masafumi/directx9/3dtips/d3d16.htm
こちらのサイトのコードを見て実行してみたところ、F5でHLSLに切り替えようとしましたら
// setup the material of the mesh subset - REMEMBER to use the original pre-skinning attribute id to get the correct material id
m_pd3dDevice->SetTexture( 0, pMeshContainer->ppTextures[pBoneComb[iAttrib].AttribId] );

// Set CurNumBones to select the correct vertex shader for the number of bones
m_pEffect->SetInt( "CurNumBones", pMeshContainer->NumInfl -1);

// Start the effect now all parameters have been updated
UINT numPasses;
hr = m_pEffect->Begin( &numPasses, D3DXFX_DONOTSAVESTATE );
for( UINT iPass = 0; iPass < numPasses; iPass++ )
{
hr = m_pEffect->BeginPass( iPass );
// draw the subset with the current world matrix palette and material state
pMeshContainer->MeshData.pMesh->DrawSubset( iAttrib );
}

このあたりで、どうも挙動がおかしくなりHLSLでの描画ができない状態です。。
何が原因かわかる方はいないでしょうか・・
64デフォルトの名無しさん:2009/01/10(土) 01:16:32
別に特に問題なく実行できるけど?
どうおかしくなるのか
なぜ、そこがおかしいと思ったのか書こうぜ
あとビデオカードの種類とか
頂点シェーダのバージョンとか定数レジスタの数とか
65デフォルトの名無しさん:2009/01/11(日) 14:24:09
画面のカラー品質を16ビットに固定したいのですが
Direct3Dの機能で変更することはできるんでしょうか?
66デフォルトの名無しさん:2009/01/11(日) 15:20:36
21世紀に32bppより下を使う意義とは…
67デフォルトの名無しさん:2009/01/11(日) 15:30:01
ゲームのHPゲージの部分など大体ビルボードで描画されているのが多いですか?
68デフォルトの名無しさん:2009/01/11(日) 15:45:41
たとえば3D格ゲーとかだと、ゲーム世界を描画するレイヤと、ステータスを表示するレイヤを分けてるから
ビルボードとかあんまし関係ないような気もする

逆にゲームキャラクターの脇にゲージを表示するような場合ならビルボードで描いてる気がする。
69デフォルトの名無しさん:2009/01/11(日) 15:58:19
無きにしも非ずってことですな、
子官庁が泣く前に巣にもどるとしますわ。

お暇します。
70デフォルトの名無しさん:2009/01/11(日) 16:00:46
スマートポインタとCOM理解できないやつはプログラムやらなくていい。
71デフォルトの名無しさん:2009/01/11(日) 16:23:27
お前は本当にCOMを理解してんのかよ
どうせインタフェース取得して使ってるだけだろ
72デフォルトの名無しさん:2009/01/11(日) 16:29:29
>>71

お前がCOMがC++のクラス(仮想クラスの延長)
ってことも知らないくせに出しゃばるなよ。
73デフォルトの名無しさん:2009/01/11(日) 16:31:59
独り言はチラ裏に書いてろカス
74デフォルトの名無しさん:2009/01/11(日) 16:41:13
COMなんて過去の技術で
知る価値なんてないのに・・
75デフォルトの名無しさん:2009/01/11(日) 17:14:12
>>74

使いこなせないからって負け犬の遠吠えはするなw

恥を知れ。
76デフォルトの名無しさん:2009/01/11(日) 17:22:41
>スマートポインタとCOM理解できないやつはプログラムやらなくていい。
何の脈略もなく、流れと関係ないことを突然喚く>>70みたいな奴って、
リアルでもコミュニケーションがまるでとれないんだろうね。
77デフォルトの名無しさん:2009/01/11(日) 17:26:23
>>74
今会社で使いまくりだぞ・・・。
78デフォルトの名無しさん:2009/01/11(日) 17:30:49
馬鹿が一つ覚えてはしゃぎ回る光景が、正に今ここに。
79デフォルトの名無しさん:2009/01/11(日) 17:33:23
また質スレで雑談してるハゲ共がいるのか
80デフォルトの名無しさん:2009/01/11(日) 17:43:39
COMないとWindows動かねーしw
81デフォルトの名無しさん:2009/01/11(日) 17:49:23
>>80
そもそもWindows95発売当時はCOMが存在していないんだが、一つ覚えの知識はその程度。
どうせこの後、真っ赤になりながら恥の上塗りで言い訳を続けるんだろうけどさ。
82デフォルトの名無しさん:2009/01/11(日) 18:10:08
95なんて化石を持ち出されても・・・
83デフォルトの名無しさん:2009/01/11(日) 18:16:13
>>82
>81はWin95でゲーム作ってんだろうし別にいいんじゃないの?
84デフォルトの名無しさん:2009/01/11(日) 18:16:40
COMについて熱く語るスレはここですか
85デフォルトの名無しさん:2009/01/11(日) 18:23:39
てかCOMって何?w
86デフォルトの名無しさん:2009/01/11(日) 18:27:50
>>82-83
顔を真っ赤にしながらの自作自演オツ
87デフォルトの名無しさん:2009/01/11(日) 18:29:43
DirectX使うのに必要なCOMの知識なんてインターフェイスがどうとか
その程度あれば十分だと思うけどな
88デフォルトの名無しさん:2009/01/11(日) 18:30:03
>スマートポインタとCOM理解できないやつはプログラムやらなくていい。

>COMないとWindows動かねーしw
>COMないとWindows動かねーしw
>COMないとWindows動かねーしw
>COMないとWindows動かねーしw
89デフォルトの名無しさん:2009/01/11(日) 18:36:13
誘導
http://pc11.2ch.net/test/read.cgi/tech/1168427595/

適切なスレの選択も出来ない馬鹿はプログラムがどうこう言う以前だろ
90デフォルトの名無しさん:2009/01/11(日) 18:46:32
COMにこだわってる阿呆は一人だけだろ。
91デフォルトの名無しさん:2009/01/11(日) 18:48:05
.NETでおk
92デフォルトの名無しさん:2009/01/12(月) 13:14:47
某ブログから抜粋
---------------
こんにちわ プログラム担当Uです。
私は主に3Dプログラミングとシステム周りの設計をしています。
使用言語はC++とOpenGLです。あえてOpenGLを選んだ理由は最近の3DプログラミングはDirectXなどの左手座標系から右手座標系に移動しつつあるからです。
(現にOpenGLはプレステ3のメインエンジンとして使用)

最近の私の仕事はグラフィクのUとIが作ったモデルデータを読み込んで動かす仕事をしています。
これからが大変だと思いますが、卒業制作や作品集に入れるつもりなので休日返上?で頑張りたいです。
----------------
そうなのか・・・?
93デフォルトの名無しさん:2009/01/12(月) 13:19:39
なにがそうなの?
94デフォルトの名無しさん:2009/01/12(月) 13:31:50
世界的にプレステより売れてるXBOXはDirectX9なの知ってて書いてるなら大したやつだと思うけど。
そもそも行列の問題でしかねぇんだし、DirectXでも右手座標が普通に使えるじゃねーか。
95デフォルトの名無しさん:2009/01/12(月) 13:58:34
完全に座標系を誤解しているな。
96デフォルトの名無しさん:2009/01/12(月) 14:02:09
そもそもOpenGLもDirectXもエンジンじゃなくてAPIだろって話
97デフォルトの名無しさん:2009/01/12(月) 14:13:36
ビデオカードのアンチエイリアス設定をプログラムから制御したいのですがどうすればいいでしょうか?
ビデオカードのアンチエイリアス設定の「アプリ制御」に対応するようにしたいんですが・・・
検索して色々レンダーステートなど試してみたんですが中々上手く行かないので質問させてください。

具体的には

自分のPCのビデオカード(GeForce4 Ti4200)のアンチエイリアス設定には
オフ 2x 2xQ 4x 4xS 制御されるアプリケーション の6種類があるんですが

これを「制御されるアプリケーション」に設定して
プログラムを実行したら「4xS」のアンチエイリアスが効くようにしたいのです。

directXのバージョンは9.0cを使用しています。
よろしくお願いします。
98デフォルトの名無しさん:2009/01/12(月) 14:16:20
SDKのサンプルコピペじゃ駄目なのか?
99デフォルトの名無しさん:2009/01/12(月) 15:13:57
サーフェイスをMSAA対応で作成してちゃんと対応したプログラムを組む必要がある。

アプリでコンパネのヤツを気軽に設定してアンチエイリアスが使えたりはしない。
100デフォルトの名無しさん:2009/01/12(月) 16:22:47
>>97
D3DPRESENT_PARAMETERSのMultiSampleType
101デフォルトの名無しさん:2009/01/12(月) 23:01:34
VS2008でのプロジェクトの作成で少し疑問に思ったことが・・・

Visual C++ の win32API でDirectXを使用する 〇
Borland C++ の win32API でDirectXを使用する 〇
ならば
Visual C++ の C++/CLI でDirectXを使用する ?
これはどうなんでしょうか?
ライブラリを組み込んだら普通に使える予感がするんですが・・・
102デフォルトの名無しさん:2009/01/12(月) 23:37:49
XNAやMDXが何で書かれているとお思いで?
103デフォルトの名無しさん:2009/01/12(月) 23:41:34
んー独学で、感覚で打ってるのでそういうツールやインターフェイス、専門用語には疎いんです・・・
わかりやすくお願いします
104デフォルトの名無しさん:2009/01/12(月) 23:47:05
http://slimdx.mdxinfo.com/
これのソースでも見れ。
ようは、こーゆーの作るための言語なんだから当然使える。
105デフォルトの名無しさん:2009/01/12(月) 23:57:33
DirectXのライブラリはC++でできているので、WinAPIやC++/CLIも元を辿ればC++であることから使える
てところでしょうか?とりあえず使えることが分かったのでほっとしました。ありがとうございます。
106デフォルトの名無しさん:2009/01/13(火) 10:29:31
全然違うけど結果は同じだからいいか・・
107デフォルトの名無しさん:2009/01/14(水) 02:26:54
DirectX 10 って、Xp で動かないんですか?
108デフォルトの名無しさん:2009/01/14(水) 02:29:18
そうだよ
109デフォルトの名無しさん:2009/01/14(水) 04:03:34
#include <d3d9.h>
#include <d3dx9.h>
#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")
#pragma comment(lib, "dxguid.lib")



って入れてっても'g_pD3DDevice' : 定義されていない識別子ですって出る
どうしてだろう
libフォルダとincludeフォルダは設定してある
110デフォルトの名無しさん:2009/01/14(水) 05:52:34
DirectX以前だからスレ違い
111デフォルトの名無しさん:2009/01/14(水) 08:22:31
>>109
それは自分で定義しないとだめでしょう
112デフォルトの名無しさん:2009/01/14(水) 10:06:53
g_がつくとこみるとグローバル変数だな。
どこからコピーしてきてんだか知らないけど、全部持ってくれば。
113デフォルトの名無しさん:2009/01/14(水) 19:06:03
ていうか根本的な部分が理解できてないだろ
Cからやり直せ
114デフォルトの名無しさん:2009/01/14(水) 21:21:37
意味不明な質問かもしれませんが・・・。

DirectMusicの解放処理をするタイミングはDirectMusicクラスのデストラクタで大丈夫ですか?

CDXMusic::~CDXMusic()
{
m_performance->Stop(NULL, NULL, 0, 0);
m_performance->CloseDown();
m_loader->Release();
m_performance->Release();
m_segment->Release();
CoUninitialize();
}

115デフォルトの名無しさん:2009/01/14(水) 21:37:05
終了処理メンバ関数作ってもいいし、好きにすればいいと思うけど何が不安なの?
116デフォルトの名無しさん:2009/01/14(水) 21:50:30
>> 115 エスありがとうございます

もうひとつ質問なのですが

1>_Lib_DXMusic.obj : error LNK2001: 外部シンボル "_CLSID_DirectMusicPerformance" は未解決です。
1>_Lib_DXMusic.obj : error LNK2001: 外部シンボル "_IID_IDirectMusicPerformance8" は未解決です。
1>_Lib_DXMusic.obj : error LNK2001: 外部シンボル "_CLSID_DirectMusicLoader" は未解決です。
1>_Lib_DXMusic.obj : error LNK2001: 外部シンボル "_IID_IDirectMusicLoader8" は未解決です。
1>_Lib_DXMusic.obj : error LNK2001: 外部シンボル "_GUID_StandardMIDIFile" は未解決です。
1>_Lib_DXMusic.obj : error LNK2001: 外部シンボル "_CLSID_DirectMusicSegment" は未解決です。
1>_Lib_DXMusic.obj : error LNK2001: 外部シンボル "_IID_IDirectMusicSegment8" は未解決です。
C:\Documents and Settings******** : fatal error LNK1120: 外部参照 7 が未解決です。

と出るのですが何が原因でしょうか?

これはインクルードしてあります #include <dmusici.h>
117デフォルトの名無しさん:2009/01/14(水) 21:59:29
何を見て勉強してるのか知らないけれど、資料どおりに書くことからはじめた方がいいと思う。
118デフォルトの名無しさん:2009/01/14(水) 22:03:05
>>166
DirectXSDKインストールしろよw
119116:2009/01/14(水) 22:24:35
ゲームコーディング2を見ながら勉強しています。

サンプルをビルドしてみたのですが 116 と同じエラーが出ます。

DirectXSDK 2008 Novenber
DirectXSDK 2007 August
インストールしてあって両方VC++ディレクトリのインクルードファイルとライブラリファイルに追加してあります

リンカ→入力のdxguid.libなど本に書いてあるやつはすべて追加されています

誰か解決方法ご教授お願いします
120デフォルトの名無しさん:2009/01/14(水) 22:26:41
本に書いてあるやつ、なんていわれてもわからん
ちゃんとリンクしてあるlibを全部書け
121デフォルトの名無しさん:2009/01/14(水) 22:27:10
>両方VC++ディレクトリのインクルードファイルとライブラリファイルに追加してあります

海に帰れ
122デフォルトの名無しさん:2009/01/14(水) 22:29:19
申し訳ございません

dxerr9.lib gdiplus.lib d3dxof.lib d3dx9.lib d3dx9d.lib d3d9.lib
dxguid.lib winmm.lib Version.lib comctl32.lib

です
123デフォルトの名無しさん:2009/01/14(水) 22:50:32
とりあえず2007と2008のライブラリの優先順位をいれかえてみたら
124116:2009/01/14(水) 22:50:35
原因がよく分からないのでSDKを再インストールしてみます
125デフォルトの名無しさん:2009/01/14(水) 22:52:07
>>123

もうアンインストールしちゃいましたw

たぶんそれかもしれません

お昼にビルドできたノートパソコンは優先順位が逆だったと思います

結果が出たら報告します

レスありがとうございます
126デフォルトの名無しさん:2009/01/14(水) 23:09:08
優先順位以前に混在させるなよ
127デフォルトの名無しさん:2009/01/14(水) 23:17:24
色々アドバイスありがとうございます

優先順位を変えたら、無事ビルドできました
128デフォルトの名無しさん:2009/01/14(水) 23:54:34
DirectMusicで音楽を再生するプログラムを勉強しているのですが
wavだと要領をかなり取るのでoggで再生しようと思うのですが

oggを読み込む→wavに変換→wavを再生 って感じでおkですか?
129デフォルトの名無しさん:2009/01/14(水) 23:56:18
容量です すいません;
130デフォルトの名無しさん:2009/01/15(木) 00:00:18
wavはコンテナであって、容量を食うかどうかは中の圧縮形式次第
DirectMusic云々以前に基本的なところから出直せ
131デフォルトの名無しさん:2009/01/15(木) 00:05:03
そのまま再生する関数あるぞ?
教えないけどな
132デフォルトの名無しさん:2009/01/15(木) 01:04:42
不動高校のまとめ

●殺人者    :10名
●犯罪者    :2名
●死亡者    :19名
●行方不明者 :1名
133デフォルトの名無しさん:2009/01/15(木) 06:22:51
>>128

そんな古臭い方法誰も使わないぞ
134128:2009/01/15(木) 07:45:17
>> 130

勉強不足でした、すいません

128のはogg再生の手順としては一般的ですか?
135デフォルトの名無しさん:2009/01/15(木) 09:38:34
ビルボード用のテクスチャも2のn乗正方形にしないとまずいですか?
136デフォルトの名無しさん:2009/01/15(木) 09:42:39
なにをもってまずいとするのか、まずは定義を明確にしろ。
137デフォルトの名無しさん:2009/01/15(木) 15:33:33
135じゃないが、テクスチャのサイズは2のn乗にしないと
ビデオカードによっては正常に動作しないらしいが
レンダリングターゲットのサーフェイスとして生成したテクスチャも
2のn乗のサイズにしなきゃいけないの?
それかなり無駄な領域があるし絶対おかしいと思うんだけど
そこんとこどうなの?
138デフォルトの名無しさん:2009/01/15(木) 15:37:37
普通のテクスチャでも無駄な領域はあるがこっちは絶対おかしいとは思わないんだな
139デフォルトの名無しさん:2009/01/15(木) 15:41:01
で、実際のところどうなんですか?
140デフォルトの名無しさん:2009/01/15(木) 15:45:38
ビデオカード次第
それ以上でもそれ以下でもない
141デフォルトの名無しさん:2009/01/15(木) 15:48:02
そっちの方がビデオカード的に都合がいいんだからしょうがない
142デフォルトの名無しさん:2009/01/15(木) 16:30:17
都合が良いかどうかもビデオカード次第
143デフォルトの名無しさん:2009/01/15(木) 16:41:02
2のn乗じゃないと不具合が出るビデオカードってそんなに多いの?
ていうか具体的にはどんな不具合が発生するの?
144デフォルトの名無しさん:2009/01/15(木) 16:48:50
メーカーにお聞きになればいいと思いますよ
145デフォルトの名無しさん:2009/01/15(木) 16:53:51
不具合が出るビデオカードは現在ほとんどないと思われる
しかし、2のn乗じゃないとパフォーマスンが落ちる場合があると
公式でアナウンスされている以上従っといた方が無難
ターゲットとなり得る全てのビデオカードで
パフォーマンステストして問題ないと判断したなら別だが・・・
開発マシンでは問題ないが別のビデオカードだと処理落ちなんて
原因のよくわからない不具合で悩みたくないしな
146デフォルトの名無しさん:2009/01/15(木) 16:57:20
見かけ上は2の累乗でないテクスチャでも
VRAM上では2の累乗になるように
余分な(無駄な)領域が確保されている場合もあるそうだ
あくまでビデオカード次第だが
147デフォルトの名無しさん:2009/01/15(木) 17:11:07
なるほどー
ありがとうございます
148デフォルトの名無しさん:2009/01/15(木) 17:11:30
ここで2の累乗云々騒いでいる奴って、ビデオカードの能力の確認方法や、
どのCAPSが該当する制約を示しているかすら調べてないんだろうな。
149デフォルトの名無しさん:2009/01/15(木) 17:13:23
なぜそうなるw
150デフォルトの名無しさん:2009/01/15(木) 17:26:04
むかーし、あったね
256 までの 2の累乗の正方形でないと受け付けないビデオカード

RivaTNT とかがまだ最新だった時代。
151デフォルトの名無しさん:2009/01/15(木) 17:37:25
CAPS上は制約がないけど内部では何やってるか分からんって話
152デフォルトの名無しさん:2009/01/15(木) 17:57:39
質問です。

D3DXMatrixRotationYawPitchRoll で作った行列を、逆にオイラー角度式に逆算するD3DX関数はありますでしょうか?
いや、一応一通り見て「なさそうだ」とは思ったのですが・・・

一応、YawPitchRollのように角度のかけ方を定めれば、逆算自体は可能なようなのですが。
ttp://www7.atwiki.jp/lucifer/pages/13.html
153デフォルトの名無しさん:2009/01/15(木) 18:13:32
http://pc11.2ch.net/test/read.cgi/tech/1130349336/

詰め物に関してはここの最後のあたり読むとよろしい。
154デフォルトの名無しさん:2009/01/15(木) 18:49:39
Direct3D10+DXUTの組み合わせで、表示色がおかしくなるんだがだれか同様の現象を体験したことない?
例えばTutorial12のエフェクトファイルの110行目、ピクセルシェーダの出力部分に
cTotal.rgb = float3(.5, .5, .5)
と追加してから実行すると、なぜか#bcbcbcの色で表示される。
グラボはGeForce9600MGT。
Tutorial3みたいにDXUTを使っていないのでは正常に表示されるから、DXUTのせいだと思うんだけど。
155デフォルトの名無しさん:2009/01/15(木) 19:37:55
>>153
CPUじゃねーか
15631:2009/01/15(木) 23:18:53
31です。以前質問させていただいたきり他の事で忙しくプログラミングできませんでした。
あのあと、結局いろいろ試してみましたが結局アニメーションのつなぎはうまくいきませんでした・・・
そもそも、ほとんど同じモーションなので座標変換や回転もないようなモーションですら変更できないという。
何がいけないのでしょう。。xファイル出力するときに何か他の設定が必要なのだろうか・・
157デフォルトの名無しさん:2009/01/15(木) 23:54:05
ソースも出さずにその「独自」仕様とやらをエスパーしろとな?
158デフォルトの名無しさん:2009/01/16(金) 01:25:05
>>何がいけないのでしょう

こんなところで聞いてるのがいけない。
159デフォルトの名無しさん:2009/01/16(金) 06:37:45
main.obj : error LNK2019: 未解決の外部シンボル "long __cdecl LoadTextureFromImageFiles(char const *,struct IDirect3DTexture9 * *,char const *,struct IDirect3DDevice9 *)" (?
LoadTextureFromImageFiles@@YAJPBDPAPAUIDirect3DTexture9@@0PAUIDirect3DDevice9@@@Z) が関数 "long __cdecl SetupFVFTexture(struct IDirect3DDevice9 *)" (?SetupFVFTexture@@YAJPAUIDirect3DDevice9@@@Z) で参照されました。

これがどうしても解決できません。ライブラリとの整合性が取れてないエラーとのことで、インクルード/ライブラリのフォルダ設定・並び順、プロジェクトとの.libの関連付けもいじってみましたが上手くいきません。
それ以外に何が問題として考えられますか?
160デフォルトの名無しさん:2009/01/16(金) 07:34:05
>>159
LoadTextureFromImageFiles に一致する情報は見つかりませんでした。
Googleに聞いてもわからない
161デフォルトの名無しさん:2009/01/16(金) 08:56:56
>>159
自分で定義した関数だろどう考えても。
162159:2009/01/16(金) 09:19:13
>>161の言う通り、プロトタイプ宣言した物を実装していませんでした。サンプルからコピペのミスでした。
163デフォルトの名無しさん:2009/01/16(金) 10:31:05
陰線消去したくてZバッファ法というのをやってみたのですがうまくいきません
エスパーお願いします
164デフォルトの名無しさん:2009/01/16(金) 10:51:03
>>163
それはグラボのせい
GeForce GTX 285を使うときっと治る
165デフォルトの名無しさん:2009/01/16(金) 13:04:27
試しにZバッファ法というのをやってみたらうまくいきました
166デフォルトの名無しさん:2009/01/17(土) 17:34:41
D3D の質問です。

フルスクリーンでない、ウィンドウのアプリを作っているのですが、
ウィンドウのサイズが変更されたときに、画像が縦に伸びたり
横に伸びたりするので困っています。
正方形が正方形のまま、拡大して欲しいのですが、どうすればいいのでしょうか

C# とかじゃなくて、Windows API で作っています。
よろしくおねがいします。
167デフォルトの名無しさん:2009/01/17(土) 18:00:11
矩形を指定してdevice.Presentする。
168デフォルトの名無しさん:2009/01/17(土) 19:51:21
Reset
169デフォルトの名無しさん:2009/01/18(日) 02:43:41
>>168さんの reset でできましたー!
>>167さんのは、ごめん、うまくいきませんでした。
170デフォルトの名無しさん:2009/01/18(日) 02:44:25
>>169です。

テクスチャを一度 Release して、もういちど読み直さないと行けないのがすこし面倒でした。
171デフォルトの名無しさん:2009/01/18(日) 10:33:18
こんにちわ、DirectSoundでwavファイルを再生しようと思い
ゲームコーディング2という本を見ながらコードを書いていたのですが
同じようにやっても再生されません
コードに間違いがないか5回くらい見直しました

全てのコードを書くと長くなるので大まかな流れだけ書きます

DirectSoundオブジェクトを生成 Wavファイルを読み込む セカンダリバッファ作成
バッファに音データを書き込む 再生という手順です

一応コードをUPするので違うところがあれば指摘してもらえると幸いです
http://www7.uploader.jp/dl/inoguma/inoguma_uljp00001.zip.html

宜しくお願いします
172デフォルトの名無しさん:2009/01/18(日) 11:07:48
>>171
Play()の戻り値見てないだろ?
DSERR_PRIOLEVELNEEDED が返ってきてるよ。
SetCooperativeLevel()呼べばいいと思うよ。
173デフォルトの名無しさん:2009/01/18(日) 12:12:25
DirectSoundを初期化する時に

// 協調レベルの設定
if(FAILED(m_pSound->SetCooperativeLevel(hWnd, DSSCL_EXCLUSIVE))) {
return E_FAIL;
}

としてありますが上手くいきません
174デフォルトの名無しさん:2009/01/18(日) 12:34:22
やってみたのかよ。
Play直前に呼んだら鳴ったぞ
175デフォルトの名無しさん:2009/01/18(日) 12:36:11
実際やりもしない、戻り値を確認もしないでただ質問するだけってどうなんだろうね。
176デフォルトの名無しさん:2009/01/18(日) 12:42:20
ところで実際の本ではどうなってるんだ?
ウィンドウができる前にSetCooperativeLevel呼んだって意味がないだろうに。
177デフォルトの名無しさん:2009/01/18(日) 12:49:10
ついでにデバッグしてみたが、、、

// gamemainの初期化
_gamemain = new CGameMain();
hr = _gamemain->FInit(m_device);
_gamemain->GetHWND(m_hwnd);

これを
_gamemain->GetHWND(m_hwnd);
hr = _gamemain->FInit(m_device);
のように入れ替えれば動作した。元はどうなってんの?
178デフォルトの名無しさん:2009/01/18(日) 12:52:30
ごめんなさい

戻り値の確認方法分からなくてクラスビューとかブレークポイントとかいろいろ試してました
179デフォルトの名無しさん:2009/01/18(日) 13:05:14
>>178

かわいいなお前w
180デフォルトの名無しさん:2009/01/18(日) 14:21:13
Zバッファと深度バッファというのはまったく同じと考えていいんですか
それとも、文書を読むときは微妙な差異に気をつけるべきですか
181デフォルトの名無しさん:2009/01/18(日) 16:36:07
DirectInputってライブラリに組み込んだほうがいいですか?
182デフォルトの名無しさん:2009/01/18(日) 16:57:44
何のライブラリよ
183デフォルトの名無しさん:2009/01/18(日) 17:32:02
DirectInput を使わないで、
やりたいことが全て出来てる or 出来るのだったら
組み込まなくていいんじゃね?
184デフォルトの名無しさん:2009/01/18(日) 17:50:02
リティアクス・ネマインズライブラリーです

物理演算なども組み込まれています

DirectX9対応です
185デフォルトの名無しさん:2009/01/18(日) 17:57:28
186デフォルトの名無しさん:2009/01/18(日) 18:00:59
>>185

自作の物理演算ライブラリなので探しても出ないです
187デフォルトの名無しさん:2009/01/18(日) 18:06:38
>>181
ポールペンって絵を描くための道具に含んだほうがいいですか?
188デフォルトの名無しさん:2009/01/18(日) 18:15:52
俺の環境では、なくても動くから必要ないと思うな。
そのライブラリの中に使いたいものがあるなら別だけど
189デフォルトの名無しさん:2009/01/18(日) 18:19:25
DirectInputを使うかどうかは別として
入力インターフェースの提供は最優先だと思うが
190デフォルトの名無しさん:2009/01/18(日) 18:24:57
>>181
必要かどうかは仕様を知っている自分が判断しろ。
指示待ち人間で、他人の指示がないと動けないのなら、
他人にわかるようにきちんと仕様を説明しろ。
中途半端な情報で説明した気になるな。
191デフォルトの名無しさん:2009/01/18(日) 18:26:57
質問する場所を間違えてね?
内容を加味すると、もっとも適切な相手は占い師だろ。
192デフォルトの名無しさん:2009/01/18(日) 18:27:43
公開して他人に使わせようって言うんだろ?
変わった用途じゃない限りInputは付けておくべきだろ
193デフォルトの名無しさん:2009/01/18(日) 18:30:27
演算ライブラリならDirectInputどころか、
そもそもDirectXスレとは何の関係もない。
194デフォルトの名無しさん:2009/01/18(日) 19:00:52
誰か>>154再現しない?
再現しなかったって報告ならそれはそれでありがたいんだけど……
195デフォルトの名無しさん:2009/01/18(日) 23:39:33
引数を渡す方法が分かりません

inline void SetAmbient(D3DCOLORVALUE &col) { m_material.Ambient = col; };

CDXMaterial material;

material.SetAmbient();

1つ例を見せていただけませんか・・・
196デフォルトの名無しさん:2009/01/18(日) 23:40:15
MSNDでD3DCOLORVALUEについて調べたのですが解決方法が分からなくて・・・
197デフォルトの名無しさん:2009/01/18(日) 23:46:42
まずはC言語の勉強が先だ
198デフォルトの名無しさん:2009/01/18(日) 23:50:45
>>196

D3DCOLORVALUE col;
col.r = 1.0f;
col.g = 0.0f;
col.b = 0.0f;
col.a = 1.0f;
material.SetAmbient(col);

こんな感じ?
なんか別に変なところ無い気がするけど・・・
199デフォルトの名無しさん:2009/01/18(日) 23:52:05
参照渡しが解からんと言う意味ならC++の領分だが
そもそも質問の意図が良くわからんので
「日本語でおk」としかいいようがない
200デフォルトの名無しさん:2009/01/19(月) 00:13:20
もしかして入れても反映しないから悩んでるんじゃね?
光源計算してないときはLightEnableをオフに設定しないと表示されなくてだな

ってそんなこと聞いてない?
201デフォルトの名無しさん:2009/01/19(月) 11:54:28
例を見せてと言ってるんだし、>>198でよさげ・・・
202デフォルトの名無しさん:2009/01/19(月) 11:55:20
失敗してるんなら、自分のとこでどうやったらどうなったくらい書けば早いのにな。
203デフォルトの名無しさん:2009/01/19(月) 17:07:08
test
204198:2009/01/19(月) 17:08:22
D3DCOLORVALUE col = D3DCOLOR_COLORVALUE(, , ,);

でcolを引数で渡そうとしてました・・・
205デフォルトの名無しさん:2009/01/19(月) 17:14:35
やっぱり判らない。 ていうかお前が判ってないから無理。
さっさとCの初心者スレでソース*全部*晒して質問してこい。
206デフォルトの名無しさん:2009/01/19(月) 17:16:02
>> すいません勉強不足でした

ちなみに187さんの例で解決しました
207デフォルトの名無しさん:2009/01/19(月) 17:34:24
初期化したいってことか?
D3DCOLORVALUE colorValue = {0,0,0,0};
ってC/C++の話だな。参照(&が付いてる)の話だったらこれもC++
208デフォルトの名無しさん:2009/01/19(月) 22:29:43
D3DXMATRIXA16
をnewした後にdeleteするとメモリーのバグを引き起こすんだが、解決策はないものか・・
209デフォルトの名無しさん:2009/01/20(火) 12:35:27
D3DXMATRIXを使うとか。
210デフォルトの名無しさん:2009/01/21(水) 00:17:09
そもそもバグがあるとは思えないが、
A16の実装自体たいしたことないし
自前の作れば?
211デフォルトの名無しさん:2009/01/21(水) 08:46:50
>>208
ヘッダファイルを見れば分かるけど、
A16系は16byteアライメントのためにnewをオーバーロードしてる。
ステップ実行でちゃんとこのnew/deleteが呼ばれてるか確かめてみれば?

#define new DEBUG_NEW

とかやってて死亡とかありがち。
212デフォルトの名無しさん:2009/01/21(水) 17:02:37
トゥルータイプ形式のアンチエイリアスがかかったフォントを表示するにはどのようにすればいいのでしょうか。
GetGlyphOutlineのAPI使ってもグレースケールのビットマップデータしか得られませんでした。
213デフォルトの名無しさん:2009/01/21(水) 17:24:46
そのグレースケールのデータを
α値としてテクスチャに書き込んで表示

参考
ttp://marupeke296.com/DXGSmp_No5_Font.html
214デフォルトの名無しさん:2009/01/21(水) 17:29:34
それって結局出力も一色になりませんか?
それとも半透明化するときに、うまい方法があるのでしょうか・・・
215デフォルトの名無しさん:2009/01/21(水) 17:37:19
グレースケールのフォントをα値にして半透明で描画すれば、それでちゃんと
アンチエイリアスかかるが、何を求めているんだ?
216デフォルトの名無しさん:2009/01/21(水) 17:39:45
>>214
言ってる意味が分からん
A8R8G8B8とかA4R4G4B4とかαチャンネル付きテクスチャを作る
RGBは表示したいフォントの色にして
Aの値にグレースケールの値を入れる

αの設定(テクスチャのα値*ポリゴンのα値)
デバイス->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );
デバイス->SetTextureStageState(0, D3DTSS_ALPHAOP , D3DTOP_MODULATE );
デバイス->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE );
217デフォルトの名無しさん:2009/01/21(水) 17:40:38
XPだと、ディスプレイのRGB出力の並びに応じて、ピクセル未満の補間をするために
文字のRGBを設定していると思うのですが、その情報をどのように手にすればいいのかと思いまして・・・
218デフォルトの名無しさん:2009/01/21(水) 17:43:14
ClearTypeをしたいなら、GetGlyphOutlineにはそういう機能はない。
GetGlyphOutlineは単純に大きめに描画して縮小したデータを返すだけ。
219デフォルトの名無しさん:2009/01/21(水) 17:44:59
それ以前にアルファチャンネルを理解してない悪寒
220デフォルトの名無しさん:2009/01/21(水) 17:48:39
端的にいうと、Color=AARRGGBB
             ↑ここでしょ
普通にフォントを表示することはすでにできています。
221デフォルトの名無しさん:2009/01/21(水) 17:52:57
じゃあ、そこの色(値)がどうRGBに影響するのか言ってみろ
222デフォルトの名無しさん:2009/01/21(水) 18:10:06
描画先 Ad Rd Gd Bd 描画元 As Rs Gs Bsとすれば
As/255=a 1-a=bとおいて
結合後 (Ad) (Rs*a+Rd*b) (Gs*a+Gd*b) (Bs*a+Gd*b)でしょ。
単にかけ合わせの比率じゃないんですか?
223デフォルトの名無しさん:2009/01/21(水) 18:11:48
ClearTypeは、CLEARTYPE_QUALITYかCLEARTYPE_COMPAT_QUALITYを
指定してフォント作って、GDIのテキスト描画機能を使うくらいしかAPIでの
サポートは無いと思う。
224デフォルトの名無しさん:2009/01/21(水) 18:28:05
文字の縁の外にむかって透明度を上げていけば
背景と馴染んでアンチエイリアスがかかるよね?って話
どういう段階で透明度を変えるかの情報としてグレースケールの情報を使う
225デフォルトの名無しさん:2009/01/21(水) 21:58:00
デバイスをリセットする時に、テクスチャとかも一度破棄しないといけない場合があるけど、
その場合って元の画像ファイルを再び最初から読み込むのがいいの?
それとも、アプリケーションの一時ファイルみたいなのに画像のビット列だけ保存してしまうとか、どうしてるの?
226デフォルトの名無しさん:2009/01/21(水) 22:10:18
状況に合わせて自分の好きなようにやれよ。
なんで何でもかんでもお伺いを立てて、逐次指示されないと行動出来ないんだよ?
227デフォルトの名無しさん:2009/01/21(水) 22:12:07
好きにすればいいんじゃない?
その辺の判断がつかないならおとなしくD3DPOOL_MANAGED使っとけ
DirectX10からデバイスロストなくなるみたいだし
いずれは気にしなくてよくなる領分だ
228デフォルトの名無しさん:2009/01/22(木) 00:29:38
>>DirectInputのDIJOYSTATE2のlYって下が+で上が-ですか?
229デフォルトの名無しさん:2009/01/22(木) 05:51:55
LightWaveでボーン仕込んでXファイルのエクスポータで出力した。
そのファイルを読み込んでウエイトの値を調べたらどの頂点も0だったんだけど
これって正常に出力されてないってこと?
230デフォルトの名無しさん:2009/01/22(木) 06:31:05
エクスポータがどこまで対応してるのか調べた方がいいんじゃないかな。
あとたぶんここじゃなくてLightWaveのスレで聞くべきじゃないかなそれは。
231デフォルトの名無しさん:2009/01/22(木) 18:10:03
// DirectInputオブジェクトを作成
if(FAILED(DirectInput8Create(GetModuleHandle(NULL), DIRECTINPUT_VERSION, IID_IDirectInput8, (VOID**)&m_pDInput, NULL))) {
return E_FAIL;
}

// DirectInputDeviceオブジェクトを作成
if(FAILED(m_pDInput->CreateDevice(GUID_SysMouse, &m_pKeyDevice, NULL))) {
return E_FAIL;
}

// デバイスをマウスに設定
if(FAILED(m_pKeyDevice->SetDataFormat(&c_dfDIMouse2))) {
return E_FAIL;
}

// 協調レベルの設定
if(FAILED(m_pKeyDevice->SetCooperativeLevel(hWnd, DISCL_NONEXCLUSIVE | DISCL_FOREGROUND))) {
return E_FAIL;
}

// デバイスを取得する
m_pKeyDevice->Acquire();

この設定で初期化して実行したのですがこのアプリが起動しているときに他のウィンドウをクリック
すると強制終了してしまいます

原因エスパーしてみてもらえませんか
お願いします
232デフォルトの名無しさん:2009/01/22(木) 18:11:51
デバッグしなさい
233デフォルトの名無しさん:2009/01/22(木) 18:56:16
解決しました

return E_FAILで落ちてました

ありがとうございます
234デフォルトの名無しさん:2009/01/22(木) 21:23:31
235デフォルトの名無しさん:2009/01/22(木) 21:33:01
すくなくとも公式サイトのはちゃんと出力される
236デフォルトの名無しさん:2009/01/22(木) 22:35:00
229です
もしかして、D3DXLoadMeshFromXで読み込んだメッシュの頂点情報ってウエイトは含まれてないんですか?
237デフォルトの名無しさん:2009/01/22(木) 22:44:34
ファイル自体のウエイトはどうなってるんだ?
238デフォルトの名無しさん:2009/01/22(木) 23:33:50
>>237
ファイル見たら、ちゃんと設定されてました
ってことは読み込みがだめなのか・・・
239デフォルトの名無しさん:2009/01/23(金) 00:18:05
>>238
スキンメッシュは専用の関数が合ったはずだが
240デフォルトの名無しさん:2009/01/23(金) 09:09:25
\(^o^)/ I'm a dreamer! ひそむパワー!

                      ヘ(^o^)ヘ
                        |∧  私の世界
                    /  /
                (^o^)/
               /(  ) 夢と恋と不安で出来てる
      (^o^) 三  / / >
\     (\\ 三
(/o^)  < \ 三 でも想像もしないもの
( /
/ く 隠れてるはず!
241デフォルトの名無しさん:2009/01/23(金) 09:10:16
DirectInputでマウスやキーボード使うなよ
てかXInputの時代
242デフォルトの名無しさん:2009/01/23(金) 12:23:34
Direct3Dで複数のウィンドウに同一のテクスチャを表示したいのですが、
この場合、ウィンドウごとにデバイスを作成して、
デバイスごとにわざわざ同じテクスチャを何度も読み込むしかないのでしょうか。
・一つのテクスチャを複数のデバイスで共用する
あるいは
・一つのデバイスで複数のウィンドウに描画する
というようなことは出来ないのでしょうか。どなたがご教示下さい。
243デフォルトの名無しさん:2009/01/23(金) 12:28:45
DirectX3D始めようと思うんですが、なにからすればいいですか?
どのぐらいの期間である程度使えるようになってくるんですか?
244デフォルトの名無しさん:2009/01/23(金) 12:35:54
なにが分かっていないのかも分かってない人間に
ものを教えることは非常に難しい
とりあえず出来る範囲で自分でやって
具体的な質問が出来たときにもう一度おいで
245デフォルトの名無しさん:2009/01/23(金) 13:12:03
>>243
sample動かしてソースを眺めてあきらめろ
246デフォルトの名無しさん:2009/01/23(金) 13:24:42
もう一度おいでとか言われるとつらい
あきらめろとか言われると燃える
しかしthx
247デフォルトの名無しさん:2009/01/23(金) 14:05:04
>>242よく知らんけどデバイスの画素フォーマットが同じなら使い回せんじゃねーの
248デフォルトの名無しさん:2009/01/23(金) 14:14:03
1. 開発環境をダウンロードする。
2. 現在の技量と熱意次第だね。とりあえず、そんなことも判らない君は技量は初学者レベルですぐ飽きると思うので 100年はみておこう。
249デフォルトの名無しさん:2009/01/23(金) 14:19:22
D3DPRESENT_PARAMETERS で hDeviceWindow をとっかえひっかえして reset
すればいけるんじゃねーの?

あ、そうすると、テクスチャいちいち読み直す必要があるのか。だめじゃん。
250デフォルトの名無しさん:2009/01/23(金) 14:25:53
>>242
つCreateAdditionalSwapChain
251249:2009/01/23(金) 14:30:40
なんだ、Present の第三引数を描画したいウィンドウにすれば良さそうじゃん。
252デフォルトの名無しさん:2009/01/23(金) 15:31:21
IDirectXFileから、ID3DXFileに変わって、
保存方法の流れがヘルプにかかれなくなったこともあって、
なんかアホみたいに使いにくくなっている気がするんですけど、
IDirectXFileData::GetData的なものは諦めるとしても、
IDirectXFileSaveObject::SaveTemplatesの様な動作をさせるコトてできないんですか?
253デフォルトの名無しさん:2009/01/23(金) 16:47:47
質問です。
何か手順の間違いの指摘や、避ける方法はないでしょうか?

下記のように、すでにAnimationSetに登録されているAnimationを削除した後、新たにアニメーションを追加するとメモリーリークするようです。
DirectXの初期化と、下記コードのみの最小構成でも起こりました。

下記ですと
D3DX: MEMORY LEAKS DETECTED: 4 allocations unfreed (54 bytes)
54byteということで、"1\0"で2バイト、RSTそれぞれを合計すると20+16+16=52ですから、丁度アニメーションがそのままリークした換算となります。
これは数を増やしてみたり、渡すRSTの量を変えたりしても同様の結果がでました。

削除だけ。追加だけという場合はリークせず、削除&追加をした時のみリークするようです。
察するに、削除といっても内部ではカウンターを減らしているだけで、追加の際「delete せずに上書きしてしまう」ことによるライブラリ側のケアレスミスな気がします。

Microsoft DirectX SDK (March 2008)
Microsoft DirectX SDK (November 2008)
両方で再現しました。

以下コードです。
CComPtr<ID3DXKeyframedAnimationSet> test;
D3DXCreateKeyframedAnimationSet("Test", 4800, D3DXPLAY_LOOP, 2, 0, NULL, &test);
D3DXKEY_QUATERNION r; // 中身を入れていませんが、中身をきちんとした値にしても結果は同じでした
D3DXKEY_VECTOR3 s;
D3DXKEY_VECTOR3 t;
HRESULT hr;

hr = test->RegisterAnimationSRTKeys("1",1, 1, 1, &s, &r, &t, NULL);
hr = test->RegisterAnimationSRTKeys("2",1, 1, 1, &s, &r, &t, NULL);
hr = test->UnregisterAnimation(0);
hr = test->RegisterAnimationSRTKeys("3",1, 1, 1, &s, &r, &t, NULL);
254デフォルトの名無しさん:2009/01/23(金) 16:50:08
追加情報です。
どうやらリークするのは、上書きした側の "3" のアニメーションのようです。
"3AAAA"など、最後のアニメーションの名前を長くしたところ、それにあわせてリーク量が増えました。

つまり「新規登録したアニメーションはちゃんとdeleteするが、上書き登録したアニメーションはdeleteしない」という動きのようです。
255デフォルトの名無しさん:2009/01/23(金) 18:18:34
容易にライブラリのバグだと疑うな。
256242:2009/01/23(金) 18:49:22
>>247 >>249 >>250
いくつも方法があるみたいですね。一つ一つ検討してみることにします。
御回答どうもありがとうございました。
257デフォルトの名無しさん:2009/01/23(金) 20:36:57
勝手に Release されてたら気持ち悪いだろうが。
258デフォルトの名無しさん:2009/01/23(金) 20:42:13
ID3DXFileSaveObject使って、STRINGをXファイルに保存するとき、
何故か2バイト文字が変に変換されて保存されてしまいます。
たとえば、
"田中太郎 -abcd- 鈴木次郎"
なら、
"\223\田\222\中\221\太\230\郎\201\ -abcd- \227\鈴\226\木\216\次\230\郎"
の様な具合です。
\223は、C言語のエスケープシーケンスで8進定数のことらしいと言うことまでは分かったのですが
(田は\0x93,\0x63(\223,\143)なので) '\田'とか出てきたり動作がかなり変です。
始末の悪いことにID3DXFileEnumObjectで読み込んでも元に戻りません。
何か問題の所があるのでしょうか。

char strDxTemplate[] ="xof 0303txt 0032\ntemplate ID { <60F23340-4686-472f-AA91-4D1212D26476> STRING strName; DWORD dwID;} ";
std::vector<char> Buff; DWORD dwBuff = 0xff00;
const char strName[] = "田中太郎 -abcd- 鈴木次郎"; LPCSTR strNameBuff = strName;
LPD3DXFILE pDxf; LPD3DXFILESAVEOBJECT pDxfSaveObj; LPD3DXFILESAVEDATA pDxfIDData;

D3DXFileCreate(&pDxf);
pDxf->RegisterTemplates(strDxTemplate, strlen(strDxTemplate));
pDxf->CreateSaveObject("test.x", D3DXF_FILELOAD_FROMFILE, tc - _T('0'), &pDxfSaveObj);
Buff.resize(Buff.size() + sizeof(strName));
memcpy(&Buff[Buff.size() - sizeof(strName)], strName, sizeof(strName));
Buff.resize(Buff.size() + sizeof(dwBuff));
memcpy(&Buff[Buff.size() - sizeof(dwBuff)], &dwBuff, sizeof(dwBuff));
pDxfSaveObj->AddDataObject(IDID, NULL, NULL, Buff.size(), &Buff[0], &pDxfIDData);
pDxfSaveObj->Save();

pDxfIDData->Release(); pDxfSaveObj->Release(); pDxf->Release();

SDKのバージョンは たぶんMarch 2008
そして、std::vectorの使い方が無茶苦茶なのは気にしないでください。
259デフォルトの名無しさん:2009/01/23(金) 21:04:13
もう1ヶ月やってるのにウィンドウ作ってテクスチャを表示することすらできない・・・
本とか見ても著者が作ったクラスとか構造体のことについて触れてなくて解析するのが大変だ
手取り足取り教えてるサイトとかありますか?
260デフォルトの名無しさん:2009/01/23(金) 21:29:20
本とか読むより、DirectX SDK のチュートリアルやった方がいいぜ?
261デフォルトの名無しさん:2009/01/23(金) 22:01:37
>>258
const char strName[] = "田中太郎 -abcd- 鈴木次郎";
この時点でおかしくね?
262デフォルトの名無しさん:2009/01/23(金) 22:11:38
今時Ansiでビルドなんて天然記念物級だよ
263デフォルトの名無しさん:2009/01/23(金) 22:24:46
でも、XFileのリファレンスをみると
STRINGテンプレートはASCIIのBYTE列ってあるぜ
やっぱ、これが原因じゃね?
264デフォルトの名無しさん:2009/01/24(土) 01:12:43
ウィンドウが作れないならDirectX以前の問題。
DirectXの本なんて読んでもWindows初心者には理解できないのは当然だ。
265デフォルトの名無しさん:2009/01/24(土) 01:16:02
GAME CODINGって本のサンプルは書き写せばそのまま動くから
Windowsプログラミングに不安の残る貴方にもおすすめですよ
266デフォルトの名無しさん:2009/01/24(土) 02:37:03
PIX って便利だね。

初めて知った。
267デフォルトの名無しさん:2009/01/24(土) 03:04:02
まるぺけの最小コードを動かしてみて、猫でもも読んで、MSDNで確かめて、
ウィンドウが作れたのが1年半前
今では立派なサンデーコピペプログラマですw
まー、APIスレの範疇なのかな
268デフォルトの名無しさん:2009/01/24(土) 03:41:14
ビルボードの縮小に、Lanczos フィルタとか使えない?
269デフォルトの名無しさん:2009/01/24(土) 03:43:28
mipmap
270258:2009/01/24(土) 04:11:48
>>261,262
Unicode非サポートなんですわ。

>>263
つまり、2バイト文字非対応ってこと?

仕方がないので、古いIDirectXFile系のインターフェース使ったら、
2バイト文字でも書き込めたけど、
今度は配列に配列いれたら(2次元配列という意味ではない)、
ちゃんと書き込めるのに、
読んだとき外側の配列が全て始めのデータで同じになってしまう…

なんでこんなに挙動変なんだ…
動作確認しないなら、カスタムテンプレートなんか作るなよ…
271デフォルトの名無しさん:2009/01/24(土) 08:49:19
拡張するなら自前のフォーマットを作れって話ですわ。
272デフォルトの名無しさん:2009/01/24(土) 19:35:54
>>271
そらそうですわな…
273デフォルトの名無しさん:2009/01/24(土) 19:38:46
DirectXを最初から勉強するにあたってこれだけは読んどけって本ない?
274デフォルトの名無しさん:2009/01/24(土) 20:38:18
SDKのヘルプ
275デフォルトの名無しさん:2009/01/24(土) 20:59:16
>>273
高額社の本でもよんどけ。
全く使えないというほどひどくもないから。

シェーダーにHLSLを使ってないのが時代遅れだが
インフィニティの本はそれなりの質だと思う。
276デフォルトの名無しさん:2009/01/24(土) 21:49:16
サンクス!
早速注文してくるわ
277デフォルトの名無しさん:2009/01/25(日) 12:17:42
SPRITEでの移動は画面のサイズが単位ですか?
800*600や1024*768など
278デフォルトの名無しさん:2009/01/25(日) 12:19:57
DirectXにSPRITEなど存在しない
279デフォルトの名無しさん:2009/01/25(日) 12:31:21
Spriteです
すいません
280デフォルトの名無しさん:2009/01/25(日) 13:48:27
DirectXにSpriteなど存在しない
281デフォルトの名無しさん:2009/01/25(日) 13:51:33
正直初心者って最初はソース見れるライブラリで何か作ってみて、
そのあとライブラリの中を調べながら学習していくのがベストだと思う。
282デフォルトの名無しさん:2009/01/25(日) 17:58:01
DirectSoundCaptureBuffer8でバッファのロック後データの移動をしたいんですが
これロックしたらデータ書き込めなくないですか?
2つバッファ作って一方に書き込み、一方をデータ移行、で繰り返すならわかるんですが、
もしかして、次の書き込みが来る前にアンロックできないと音飛びする仕組みなんですか?
283デフォルトの名無しさん:2009/01/25(日) 18:04:24
>>282
ストリーム再生なら次の再生位置に来る前の書き込み終わってなきゃ
どう考えても音飛びするだろ。

そもそもストリームのバッファ内でのデータの移動なんて意味不明なことをなんでするんじゃ。
284デフォルトの名無しさん:2009/01/25(日) 18:24:36
ループスタートでキャプチャをしてバッファの一周したら動的メモリに書き込みを繰り返すと
ヘルプに書いてあるんですが、ロックした
あーすいません。lockのパラメータとしてサイズの指定がありました。バッファ全体をロックするのかと思いました
すいませんでした!
285デフォルトの名無しさん:2009/01/25(日) 18:36:55
「タスクシステム」でググって出てきた本全部買っとけ
286デフォルトの名無しさん:2009/01/25(日) 18:53:12
287デフォルトの名無しさん:2009/01/26(月) 00:14:57
IUnknown派生のAddRef, Release両関数にはアトミック性はありませんか?
代入などコピー時に参照数を加増したいのですが、自前で管理したほうがいいのかな。
288デフォルトの名無しさん:2009/01/26(月) 09:11:44
マルチスレッド下ではInterlock系APIによって保護されている
らしい
てか、そこを疑ったらCOMを使ったプログラムは
全てスレッドセーフではないことになってしまう
289デフォルトの名無しさん:2009/01/26(月) 10:05:55
テクスチャをWrapで繰り返し表示させると負荷が高いって聞いたんですが、これって本当ですか?
290デフォルトの名無しさん:2009/01/26(月) 10:47:09
何と比較しての話なのかも明示せず、本当なのかもへったくれもないだろ。
どれだけ能無しなんだよ?
291デフォルトの名無しさん:2009/01/26(月) 11:02:36
まぁそういう現象の起きるハードウェアは実際に結構あるので
Wrapに頼る設計はWindowsではやらん方がいいね

一応言っとくが、↓でマップチップ使う使わないのケンカは禁止な
292デフォルトの名無しさん:2009/01/26(月) 21:05:58
↑てめーがな
293デフォルトの名無しさん:2009/01/26(月) 23:35:29
PIX for Windowsを使ってフレームの情報をキャプチャしようとしているのですが、
自分で書いたプログラムを起動すると、"PIX Experiment File Version Mismatch" というエラーのようなものが出て、キャプチャが出来ません。
このエラーは何が原因なのでしょうか?
DirectX SDKのバージョンは August 2007 です。

DirectXのサンプルをコンパイルしたものは上記のエラーは出ずに正常に動作して、キャプチャも出来ます。
294デフォルトの名無しさん:2009/01/27(火) 00:08:54
>>293
ファイルパスに全角文字があるとダメな場合があるわよ。
295デフォルトの名無しさん:2009/01/27(火) 00:37:53
>>294
実行ファイルをドライブのルートに置いて試したところ、正常に動作しました
ありがとうございました
296デフォルトの名無しさん:2009/01/27(火) 02:34:41
HLSLを使って描画したいんですが、IDirect3DDevice9::CreateVertexShader メソッドの引数の
const DWORD *pFunction,
[in] 頂点シェーダ機能トークン配列へのポインタ。このパラメータでは、各頂点に適用する処理を定義する。
の意味がよくわからないんですけど、いったい結局何を渡せばいいんでしょう?
297デフォルトの名無しさん:2009/01/27(火) 06:15:44
>>289
めちゃくちゃ重い
uvの値を5,6・・・10,11,
って上げるほど恐ろしく重くなる
っていうかいくつかのPCでやってみろよ
少なくとも自分の環境でやって報告しろ
すぐにわかる

>>290
知らないなら黙ってろよ
ためしたことあるやつならわかる
298デフォルトの名無しさん:2009/01/27(火) 06:43:29
>>296
http://msdn.microsoft.com/ja-jp/directx/cc917744.aspx

>>297
試してみたけど別に何も変わらん
GeForce7900GT
GeForce 8600 GT
Quadro FX 3700

てか、別に全ての環境で落ちるわけじゃなくて
落ちる場合もあるのでそれに頼るのは止めようねって流れだろ?
なんか前にも同じ事書いてスルーされて切れてた奴と同じ匂いがする
299デフォルトの名無しさん:2009/01/27(火) 08:28:42
>>288
明らかに古いごみドライバ使ってるとか
いんてるwのオンボードとかの話なら論外だぞ。

自前でソフトレンダラー組んだことあれば分かるが
WRAPのアルゴリズムは&演算1個だからどう考えても重くなりようがない。
300デフォルトの名無しさん:2009/01/27(火) 08:32:22
ソースのピクセル量が増えて負荷が増えるだけなんだから、
それで遅くなるビデオカードならwrapしようが、
パターンを敷き詰めてた大きなテクスチャを使おうが、
同じように遅くなるだけ。
301デフォルトの名無しさん:2009/01/27(火) 08:44:31
>>300
テクスチャキャッシュのキャッシュミスか・・・。
つーかそれならよほどデカイテクスチャ使ってるか
貧相なグラボつかってるかのどっちかだな。
302デフォルトの名無しさん:2009/01/27(火) 10:30:28
描画サイズが変わらないなら
何回wrapしても
ソースのピクセル量は変わらないし
サンプリング回数も変わらないし
フィルレートも変わらないと思うんだけど
もしかして何か別の話してる?
303デフォルトの名無しさん:2009/01/27(火) 12:05:03
wrapするかしないかの話をしているんだろ。
wrapせず描画色が決定して範囲外を単一カラーで塗りつぶす処理と、
何度もパターンを敷き詰める処理、当然前者の方が軽くなるというだけの話。
304デフォルトの名無しさん:2009/01/27(火) 12:10:44
塗りつぶしてる時点でコストは一緒でそ
305デフォルトの名無しさん:2009/01/27(火) 12:38:31
全然違うぞ。
どれだけ頭が悪いんだ?
306デフォルトの名無しさん:2009/01/27(火) 12:42:35
>>304
ミップマップ計算で重くなるという話ならこの辺に出てるね。

ttp://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=4245145&SiteID=7
307デフォルトの名無しさん:2009/01/27(火) 12:44:41
とりあえずWrapの定義をはっきりさせようぜ

1、テクスチャ・アドレッシング・モード
(D3DSAMP_ADDRESSxのD3DTADDRESS_WRAP)

2、テクスチャ・ラッピング・モード
(D3DRS_WRAPxのD3DWRAP_x)

3、それ以外の何か
308306:2009/01/27(火) 12:47:18
さっきの書き方だと語弊があるか。

ミップマップを作っていない場合に極端に遅くなったって話ならここにでてる。
ttp://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=4245145&SiteID=7
309デフォルトの名無しさん:2009/01/27(火) 14:46:26
なんかWrapを
スタンプみたいに敷き詰めてると勘違いしてるお馬鹿さんが混じってない?
単なるテクスチャ座標の扱いの違いだろ
310デフォルトの名無しさん:2009/01/27(火) 14:55:25

一番馬鹿
311デフォルトの名無しさん:2009/01/27(火) 15:08:04
UVが0-1の範囲を超えていたらスタンプのようになるし、
Wrapが設定されていなければ境界色なりで塗りつぶされる。
312デフォルトの名無しさん:2009/01/27(火) 15:13:56
違うだろう
結果的にスタンプになるだけで
やってることは
たとえば(u,v)=(2.5,3.8)を(u,v)=(0.5,0.8)
としてサンプリングしてるだけだ
313デフォルトの名無しさん:2009/01/27(火) 15:18:19
Windows via C/C++みたいなコンセプトがわかる書籍ってありますか?
ここにいる人は詳しそうなのでどういったもので勉強しているのか教えてください。
314デフォルトの名無しさん:2009/01/27(火) 15:42:08
DirectXのコンセプト?
315デフォルトの名無しさん:2009/01/27(火) 15:57:49
>>312
繰り返しにならなければ範囲外の色が決定できるんだから、
そのぶんの読み出しコストが無くなるだろ。
もう頭が悪いのは仕方がないから、せめて自分で塗りつぶし処理を書いてみろよ。
316デフォルトの名無しさん:2009/01/27(火) 16:08:18
話噛み合ってねーーー!!
317デフォルトの名無しさん:2009/01/27(火) 16:38:49
第三者だが噛み合ってなさ過ぎワロタ
318デフォルトの名無しさん:2009/01/27(火) 16:54:24
だれか助けてやれよw
319デフォルトの名無しさん:2009/01/27(火) 18:03:03
たとえばスクリーン上の100x100の領域に描画するとしましょう
この描画はどこで行っているかというとピクセルシェーダです
自分で塗りつぶし処理を書く必要はありませんね
以下が最小のテクスチャ付きピクセルシェーダです
固定機能パイプラインであっても見えていないだけで似たような処理をしています
float4 PixScene( float4 Diffuse : COLOR0,float2 Tex0 : TEXCOORD0 ) : COLOR0
{
 return tex2D( g_Texture, Tex0 ) * Diffuse;
}
これは、アドレッシングモードが違ってもまったく同じものが
ピクセルの数だけ、つまり100x100=10000回呼び出されます
たとえ広範囲に同じ色が固まっていっても関係ありません、どのモードでも1フレームあたり10000回です
ここでピクセルシェーダーの中をみてみましょう
tex2Dとはg_Texture(テクスチャです。ここでは256x256のテクスチャを既にセットしてあるとします)
のTex0(uv座標、頂点シェーダで計算済み)の色をサンプリングしてくれる関数と考えてください
例えば、Tex0.x=0.25、Tex0.y=0.5だったときはフィルタリングの状況にもよりますが
テクスチャの(64, 128)ドットの位置の色を返します
この色とDiffuse(ポリゴンの色、頂点シェーダで計算済み)を合成して最終的に塗りつぶす色を決定しています。
アドレッシングモードの違いはTex0の値が0.0〜1.0を超えたときのtex2Dの挙動を決定します
Tex0.x=1.25、Tex0.y=1.5だったとしましょう
CLAMPでは0.0以下であれば0.0、1.0以上であれば1.0として扱います
つまりTex0.x=1.0 Tex0.y=1.0と同じ色、テクスチャの(256, 256)ドットの位置の色を返します
WRAPでははみ出た分は巻き戻って計算します
つまりTex0.x=0.25、Tex0.y=0.5と同じ色、テクスチャの(64, 128)ドットの位置の色を返します
当然では在りますが、PIXで処理時間を計測しても両者に差異は見当たりません
320デフォルトの名無しさん:2009/01/27(火) 18:06:21
そういえば
nVidia系のボードだと
同じ処理を固定機能で書いた場合とシェーダーで書いた場合で
結構処理速度に違いがでるんだけど
ATI系だとほとんど差がでないんだけどこれって何でだろう?
321デフォルトの名無しさん:2009/01/27(火) 18:33:15
>>319
恥の上塗りをしてるだけだからやめとけって……

>>320
どっちの方向に違いが出るのよ?
322デフォルトの名無しさん:2009/01/27(火) 19:23:04
>>306,308
これだ

GeForce8300Gsでも激重になる現象確認
>>306,308の対応をしたら直った

というわけでmipmapに気をつけないと糞重くなります
323デフォルトの名無しさん:2009/01/27(火) 20:39:27
今まで気をつけていなかった方が逆に不思議なんだが。
324デフォルトの名無しさん:2009/01/27(火) 20:43:10
>>323
そこまでいうほどじゃねぇと思うな
俺なんか全く知らなかったしw
325デフォルトの名無しさん:2009/01/27(火) 21:42:40
なんでミップマップ使うと軽くなるか分かってないんだろうな・・・

float4 PixScene( float4 Diffuse : COLOR0,float2 Tex0 : TEXCOORD0 ) : COLOR0
{
 return tex2D( g_Texture, Tex0 ) * Diffuse;
}

このソースで速度が上下するのはtex2D()の部分。
テクスチャが大きすぎてキャッシュに乗らない場合は1サンプルごとに
メモリからの読み込みで帯域を食ってしまうが、キャッシュに乗るくらい
小さければキャッシュからの読み出しができるので大変高速に読み出せる。
ミップマップを使うと過剰なサンプリングを回避できる。

命令数と描画ピクセル数だけでは速度は決まらない。

テクスチャサイズが256x256で、-2.5をサンプリングしたら
-640&(256-1)の計算でサンプルピクセルが出る。
この計算がどの程度重いかは考えてくれ。
326デフォルトの名無しさん:2009/01/27(火) 21:50:23
でかいテクスチャを使うと重くなる理由がキャッシュだけしか思いつかない馬鹿が、
知ったかを晒す悲しいスレ。
327デフォルトの名無しさん:2009/01/27(火) 21:59:58
素直に感心した。なるほどな
328デフォルトの名無しさん:2009/01/27(火) 22:12:57
>>325
おおー
俺も理解できた
すごいね
329デフォルトの名無しさん:2009/01/27(火) 23:36:16
なんで、ATI系はおそくならないの?
多少大きいテクスチャを参照したぐらいで
露骨に性能減するって、しょぼい木がするけど
そんなもんなの?
330デフォルトの名無しさん:2009/01/27(火) 23:40:02
>>329
前、Radeon9600proもってたけど
遅くなった気がするけどな
331デフォルトの名無しさん:2009/01/28(水) 00:13:01
ドライバーのバージョンによっても変わるし、
実際のゲームだと描画するたびにテクスチャ切り替えとか
複数のテクスチャを1度の参照したりとかで重くなったりするから、
正確に何が重くなってるか測らないとあかん。
332デフォルトの名無しさん:2009/01/28(水) 05:57:00
>>331
変わるか?
あんまり大差ないよ
333デフォルトの名無しさん:2009/01/28(水) 13:12:45
同次座標(D3DFVF_XYZRHW)での表示はビルボードと同じ効果が得られますか?
334デフォルトの名無しさん:2009/01/28(水) 13:18:27
はい
335デフォルトの名無しさん:2009/01/28(水) 13:29:32
>>334 ありがとうございます
336デフォルトの名無しさん:2009/01/28(水) 16:36:54
まぁそういう現象の起きるハードウェアは実際に結構あるので
Wrapに頼る設計はWindowsではやらん方がいいね
337デフォルトの名無しさん:2009/01/28(水) 21:23:38
XFileでアニメーションを実装するのとObjファイルを書きだしてモーションパスでアニメーションを実装するのはどちらがいいですか?

XFileは簡単だけど処理が重いと聞きました

この2つならどちらがいいかアドバイスお願いします
338デフォルトの名無しさん:2009/01/28(水) 21:41:32
ファイル形式が違うだけで処理の重さは処理を作るやつ次第だと思うが・・・
339デフォルトの名無しさん:2009/01/29(木) 07:15:44
Xファイルは処理が重いって言うより、単純にアニメーション再生させるなら簡単だけど
それ以上のことをやろうとすると難しいっていう感じだな
340デフォルトの名無しさん:2009/01/29(木) 07:19:50
>> 339

なるほど 例えばOBBで衝突判定をしたりとかですか?
341デフォルトの名無しさん:2009/01/29(木) 07:27:22
>>337
objファイルでアニメーションしたほうが何かといいよ
342デフォルトの名無しさん:2009/01/29(木) 15:54:56
343デフォルトの名無しさん:2009/01/29(木) 16:27:31
半透明のポリゴンを持つメッシュを表示したいんですが
普通に描画すると、半透明ポリゴンを先に描画してしまった時に後ろのポリゴンが表示されない場合があると思うんですが
どうすればいいでしょうか?
344デフォルトの名無しさん:2009/01/29(木) 17:02:21
Zバッファ法の限界なのでどうにもならない
半透明ポリゴンは最後に書き込む何らかの仕組みが必要
345デフォルトの名無しさん:2009/01/29(木) 20:37:16
346デフォルトの名無しさん:2009/01/29(木) 20:48:17
ここんとこずっと朝から晩まで本見たりネット見たりしているのにいまだに画面に何か出すことすら出来ない
347デフォルトの名無しさん:2009/01/29(木) 20:54:56
Javaでもやれば?手っ取り早いし、それなりに実用的だぞ
348デフォルトの名無しさん:2009/01/29(木) 22:42:13
DirectMusic8で音鳴らしてるんだが
エラーでないのに音が鳴らないときとかあって困る

DirectMusicLoaderは1つしか使うなっていうから
1つしか使わないようにコードかえたが
やっぱり音が鳴らないときがある
349デフォルトの名無しさん:2009/01/29(木) 22:49:49
>>346
だせぇなゆとりにもほどがある
350デフォルトの名無しさん:2009/01/29(木) 23:02:52
>>348MIDI?WAV?そもそもキミのPCは正常に音は再生できてるのかい?
351デフォルトの名無しさん:2009/01/29(木) 23:11:26
>>349
みんなできててすげーな
これでも高校のとき成績は理系でトップクラスだったんだぞ
352デフォルトの名無しさん:2009/01/29(木) 23:18:12
>>351
ケツからだろ
夢みんな
353デフォルトの名無しさん:2009/01/29(木) 23:32:02
そもそも発想がイケてない
画面に何か出てるサンプルからみろよ

っていうかそこまでアフォならちょっとしたゲームを作れる入門書から買ったほうが速いだろ?
VCとかDirectXとかもうダウンロードしてきたのか?
354デフォルトの名無しさん:2009/01/29(木) 23:37:27
VC++もSDKももうある
サンプルを改変して.xを表示することくらいはできた
自分で1から作ることができない。"概念"さえ掴めばパッパといける気はするが
355デフォルトの名無しさん:2009/01/29(木) 23:41:07
>>350
WAV 正常に再生できてるよ
DirectSoundのサンプルはちゃんと再生されるけど
DirectMusicのサンプルは再生されないときがある
ワケワカラン
おとなしくDirectSound使いたいところだが
SDKのVerがアレなので(ry


>>346
WIN32APIプログラムとかの入門をとばして
いきなりDirectXの入門書を見てたりしないか?
356デフォルトの名無しさん:2009/01/29(木) 23:52:36
>>354
なんだできてんじゃん

>自分で1から作ることができない
1からってどういうこと?
なにもみないで書くって意味だったら10年やってる俺でも無理だ
テキトーに必要なもんかき集めてぺたぺた貼って動かすぐらいならできるがな
初期化処理の書き方なんてその時代時代でやることかわるし
大事なのはサンプル理解して応用していける力なので
そういう自分で・・・っていうのは必要ない
まずはなんでもいいからゲームを作ってみろ
それ以外のことは無駄だから考えるな
そうだ、テトリス作れ3Dテトリスな(ゲーム的には2Dの)ハイ決定さっさと作れ
357デフォルトの名無しさん:2009/01/30(金) 00:31:25
頭が悪い奴って勉強頑張れるらしい
358デフォルトの名無しさん:2009/01/30(金) 03:52:30
ID3DXSpriteはIDirect3DDevice9のように2つのテクスチャを合成してから表示させたり出来ないんでしょうか?
359デフォルトの名無しさん:2009/01/30(金) 19:18:22
質問です
Direct3Dで線分を描画したいんですけど、どうすればいいんでしょうか?
360デフォルトの名無しさん:2009/01/30(金) 19:23:30
これはググレカスといわざるを得ない
361デフォルトの名無しさん:2009/01/30(金) 19:31:36
DrawPrimitiveで引数にLINELIST
362デフォルトの名無しさん:2009/01/30(金) 19:58:38
なるほど、DrawPrimitiveでできたんですね
ありがとうございました
363デフォルトの名無しさん:2009/01/30(金) 23:00:59
DirectXのプロジェクトってユニコードビルドにしないとだめなのでしょうか、
単にデフォルトがそうなっているだけなのでしょうか?
チュートリアルのプロジェクトがデフォルトがユニコードになってます。
364デフォルトの名無しさん:2009/01/30(金) 23:15:07
サンプルフレームワークのDXUTがUnicodeビルド前提ってだけだ。
DirectX SDK使う分にはどっちでもいいよ。
365デフォルトの名無しさん:2009/01/31(土) 01:40:58
トンクス!
366デフォルトの名無しさん:2009/01/31(土) 18:19:59
367デフォルトの名無しさん:2009/01/31(土) 18:33:34
画面にピクセル単位で指定して描画したのですが

D3DFVF_XYZRHWで描画したポリゴンではできるのですか?
368デフォルトの名無しさん:2009/01/31(土) 18:38:10
画面にピクセル単位で指定して描画したいのですが

D3DFVF_XYZRHWで描画したポリゴンではできるのですか?

訂正ですすいません
369デフォルトの名無しさん:2009/01/31(土) 18:40:31
>>366
ただのBitBltじゃん
370デフォルトの名無しさん:2009/01/31(土) 18:45:50
既に描画したポリゴンでできるのかと聞かれても、よくわからない。
D3DFVF_XYZRHWを使って作った頂点バッファだったら簡単にできると思う。

>>369
どういうこと?話が見えないんだけれども
371368:2009/01/31(土) 18:50:16
>>370

レスありがとうございます

とりあえずやってみます><
372371:2009/01/31(土) 20:13:11
タイトル画面を表示させようと思い試しに作ってみました

http://appleloader.bbsnow.net/pic_loader/nomal/html/4441.html

上の画像は512*512のテクスチャをD3DFVF_XYZRHWを使って作ったポリゴンに貼り付けて
表示させたやつです

下の画像は1024*768のテクスチャを・・・

512*512のほうは正常に描画されるのですが1024*768のほうは変になってしまいます

これはDirectXが2のべき乗の大きさのテクスチャしかサポート?していないからですか?
他に理由あったら指摘お願いします
373デフォルトの名無しさん:2009/01/31(土) 20:17:52
なんで1024×1024で試してみてから質問しないのですか?
374デフォルトの名無しさん:2009/01/31(土) 20:23:01
>>373

1024*1024で貼り付けてUVで調整したら解決しました

お手数掛けて申し訳ありません
375デフォルトの名無しさん:2009/01/31(土) 20:23:34
テクスチャの画像はどうやって作ってるの?
それのために呼び出したAPIを全部調べたの?
376デフォルトの名無しさん:2009/01/31(土) 20:30:33
D3DXCreateTextureFromFileEx です

API調べてませんでした

次から調べてから質問します 申し訳ございません
377デフォルトの名無しさん:2009/01/31(土) 22:02:43
DirectXに、次はねぇ・・・
378デフォルトの名無しさん:2009/01/31(土) 23:09:12
if(diks[DIK_UP] & 0x80) {
m_dir = FOR;
Sleep(500);
}
DirectInputでキーボードから入力値を取得しています
Sleep()を抜くととてつもない速さでカーソルが移動してしまいます
Sleep()を使うとほかの処理も止まってしまうので
他の処理をとめないで同じようなことできる方法ありませんか?
379デフォルトの名無しさん:2009/01/31(土) 23:50:11
押しっ放しじゃなくて
押した瞬間だけ検出するようにしろよ
380デフォルトの名無しさん:2009/02/01(日) 01:24:16
>>378
マルチ
381デフォルトの名無しさん:2009/02/01(日) 02:41:44
D3DPRESENT_PARAMETERSのPresentationIntervalをD3DPRESENT_INTERVAL_ONE
にするとリフレッシュレートに勝手にあわせてPresentが行われまする。
普通1フレーム当たり1/60秒になるので、待たせたい秒数になるように
フレーム数をカウントして、一定数ごとにカーソルを移動とかじゃだめ?
間抜けな回答してたらどうしよう・・・。
382デフォルトの名無しさん:2009/02/01(日) 04:11:24
>>381
SDKのサンプルみろ
それが一番速い
設定選べるようになってるサンプルあるだろ?
383デフォルトの名無しさん:2009/02/01(日) 04:13:23
> 普通1フレーム当たり1/60秒になるので、

とはかぎらない。
384デフォルトの名無しさん:2009/02/01(日) 04:16:10
まあ、だいたい液晶だからなるっちゃなるなw
385デフォルトの名無しさん:2009/02/01(日) 04:17:04
よくいるよね、一般的な例の話をしてるのに特殊な例を持ち出してこれは違う!って言う奴。
そんなことは百も承知だってのに。 そんなに自分が物知りだってひけらかしたいのかね。
386デフォルトの名無しさん:2009/02/01(日) 04:29:04
387デフォルトの名無しさん:2009/02/01(日) 04:30:52
>>386
>>385を読めばそれが反論になってないことは理解できるだろ、馬鹿?
388デフォルトの名無しさん:2009/02/01(日) 04:49:27
お前らよくこんなカス共の質問に回答してやれるなw
389デフォルトの名無しさん:2009/02/01(日) 04:52:54
そもそもマルチだしな。
390デフォルトの名無しさん:2009/02/01(日) 07:07:06
60にすると具合悪い事はままある
391デフォルトの名無しさん:2009/02/01(日) 14:17:41
V-Syncって普通自前でやるのかな?
392デフォルトの名無しさん:2009/02/01(日) 16:07:32
>>382の言ってるサンプルがどれかわかんなかったw
よく調べたらうちのはディスプレイモードによってリフレッシュ
レートが56〜75の間で4種類くらいあるから、フレーム数決め打ち
だと環境によって変わっちゃうなあ。>>386は50Hzだったし。
QueryPerformanceCounterとかからミリ秒算出して、前のカーソル
移動時の時間と比べて一定時間たったら再実行とか。だめ?だめ?
393デフォルトの名無しさん:2009/02/01(日) 16:09:49
液晶でも最近のフルHDのTVにつなぐとデフォが24Hzになったりするしな。
394デフォルトの名無しさん:2009/02/01(日) 16:24:32
QueryPerformance系使うくらいならtimeGetTime()の方が制約が少なくてらくだけどね
どうせミリ秒単位を扱うわけだし
395デフォルトの名無しさん:2009/02/01(日) 16:30:29
DirectXのVSyみそなんかリフレッシュレートっぽい
時間でウェイトかけてるだけだから。
ゲーム機の実Vクロックでループ回すのとはわけが違う。
396デフォルトの名無しさん:2009/02/01(日) 17:32:20
>>395
タイマでウェイトかけるのはウインドウモードのときだけだよ。
397デフォルトの名無しさん:2009/02/01(日) 17:37:00
>>392
>サンプルがどれかわかんなかったw
全部見ろよ
398デフォルトの名無しさん:2009/02/01(日) 17:38:53
サンプル連呼されても初心者にはわからんものだよ
頭の固い奴にはそれがわからんのです
399デフォルトの名無しさん:2009/02/01(日) 17:39:41
ゲームで複数のXFileを読み込むときのロード時間が気になっているのですが
これを高速化したりするのは可能でしょうか?

ネットで調べたところ、一度DirectXの「Xファイル読み込み関数」で
ロードしておいたメッシュデータをバイナリで保存して、次回起動時に
そのデータを直接読み込むという手段を取られていた方がいるのですが
具体的にどうやるのでしょうか?また、本当に早くなるのでしょうか?

D3DXLoadMeshHierarchyFromXなどのXファイルロードルーチンはそのマシン
で描画が早くなるようにロードしたメッシュを最適化しているという
話を聞いたことがあるので、このやり方で本当にロードが早くなるのか
心配です・・・。

どなたかXFILEのロードの高速化について詳しい人がいたらアドバイスを
お願いします。
400デフォルトの名無しさん:2009/02/01(日) 21:36:01
どれだけ速くなるかは知らないけど
頂点バッファとインデックスバッファ、あと属性テーブルみたいなの取得すればいいじゃん
401デフォルトの名無しさん:2009/02/02(月) 04:57:21
>400
ありがとうございます、階層化されたメッシュの場合にかなり面倒そうですが
今度の週末にでも一度組んでみようと思います。
402デフォルトの名無しさん:2009/02/02(月) 23:55:43
>>401
最近その問題(遅い)にぶちあたったが、遅いのはアニメーションのロードだった
アニメーションのロードだけ自前でやるのお勧め
メッシュのロードはそこそこに早かったよ
403デフォルトの名無しさん:2009/02/03(火) 00:21:39
カメラの回転での質問です。

横回転は問題ないのですが、縦回転すると90度を超えると
急に視界が反転してしまいます。

90度になったらD3DXMatrixLookAtLHのpUpを逆方向にすると
縦回転だけする場合は良いのですが、
少しでも縦回転した状態で横回転すると、視点がぐるぐる
変に回ってしまいます。
どうすれば良いでしょうか?
404403:2009/02/03(火) 00:32:03
すいません
横回転が加わっている状態で縦回転すると、でした。
横回転はどの場合でも普通に回転してくれます。
405デフォルトの名無しさん:2009/02/03(火) 01:12:25
まわす順番がおかしいんじゃねーの?
とりあえずその部分のコード貼れや
406デフォルトの名無しさん:2009/02/03(火) 02:39:51
D3DXMatrixLookAtLHの引数で回転するんじゃなくて
注視点を原点とするカメラのローカル姿勢を回転させて
そこからビュー行列を逆算すればおk
407403:2009/02/03(火) 06:23:07
>>406
すいません具体的にどのようにすれば良いでしょうか?
今現在は

D3DXMatrixRotationX(&mat, g_CameraAngle.x);
D3DXVec3TransformCoord(&g_Camera.vecEyePt, &g_Camera.vecEyePt, &mat);

という感じでカメラの座標を変換してから

D3DXMatrixLookAtLH(&matView, &vecEyePt, &vecLookatPt, &vecUpVec);
pDevice->SetTransform(D3DTS_VIEW, &matView);

でカメラ位置を変更しています。
408デフォルトの名無しさん:2009/02/03(火) 11:04:16
// カメラの初期姿勢(視点(0,0,-10)、注視点(0,0,0)の場合)(変更しないで保持する)
const D3DXVECTOR4 vecEyePt(0,0,-10,1) ;
const D3DXVECTOR4 vecLookatPt(0,0,0,1) ;
const D3DXVECTOR4 vecUpVec(0,1,0,0) ;//ここだけw成分が0であることに注意(回転のみ反映)

// 初期姿勢からどれくらい移動したいかの行列
// 回転だけでなく拡大縮小移動なども合成できる
D3DXMatrixRotationY(&mat, g_CameraAngle.y);

D3DXVECTOR4 Eye, Look, Up
D3DXVec4Transform ( &Eye, &vecEyePt, &mat ) ;
D3DXVec4Transform ( &Look,&vecLookatPt, &mat ) ;
D3DXVec4Transform ( &Up, &vecUpVec, &mat ) ;

D3DXMatrixLookAtLH(&matView, (D3DXVECTOR3*)&Eye, (D3DXVECTOR3*)&Look, (D3DXVECTOR3*)&Up);


もうちょっとスマートなやり方あるけどそれは少し考えればわかるよね
409デフォルトの名無しさん:2009/02/03(火) 18:17:31
最初はスマートなやりかたより理解しやすさを追求すればいいじゃない

UpVectorが0成分だと気づかなくて
3日くらい悩んでたのを思い出した
410デフォルトの名無しさん:2009/02/03(火) 19:00:34
>402
ありがとうございます、時間が取れたのでアニメーションの書き出しを
試してみたのですが、アニメーションコントローラにアニメーションデータの
実体が見当たりません。

アニメーションデータの実体とサイズはどうやって取得したら
宜しいのでしょうか?
411デフォルトの名無しさん:2009/02/03(火) 20:59:38
>>410
sizeof()じゃだめ?
412デフォルトの名無しさん:2009/02/04(水) 05:07:11
Xファイルを読み込むためのD3DXLoadMeshHierarchyFromX関数にて
LPD3DXANIMATIONCONTROLLERというアニメーションコントローラに
値を入れてアニメーションを管理しているんですが、どうもこの
LPD3DXANIMATIONCONTROLLERに実体が無いというかsizeofしても
4の値しか返ってこないんですが・・・。
413デフォルトの名無しさん:2009/02/04(水) 05:20:33
C/C++の基礎を勉強したらどうかね?
414デフォルトの名無しさん:2009/02/04(水) 08:22:41
DirectXの前のCの本読んだほうがいいなコレは。
415412:2009/02/04(水) 09:57:16
日頃の勉強不足を晒してしまい申し訳ございませんでした。
DirectXでゲームを何本か作った事はあるのですが、DirectX側で
保持しているアニメデータを直接いじった経験が無く、ネットで色々
調べてみたのですが、どうにもお手上げな状態です。

アニメデータ等が読み込まれているメモリ配列部分がどこにあるのか
皆目見当がつかないのです。
なにかアドバイス等もらえないでしょうか・・・?
416デフォルトの名無しさん:2009/02/04(水) 11:47:54
>>415
頭に LP がついているのは、ポインタだ。
ポインタは(32bitOSなら)4バイトで当然。
あと、アニメーションコントローラーの内部が確保したメモリーに直接アクセスする手段はない。
AnimationSetを取得したり、そこからさらにAnimationを取得したりという間接的な手段でアクセスするべし

あと、AnimationControllerをいじるのはやめたほうがいいぜ。
メモリーリーク含め、バグが多すぎる。
例えば時間0の情報を書き換えると、アニメーションが正常に行われなくなる。
取得したAnimationSetを、他のコントローラーにセットしてもまともに再生されない。
Animationを削除してから追加すると、メモリーリークする。などなど
417デフォルトの名無しさん:2009/02/04(水) 12:40:57
ウィンドウの左端を画面外に移動させると画像も画面外から描画されることを期待していたのですが
画面端から表示されてしまいます。
画面外に移動させてもクライアント座標の(0, 0)から描画させるにはどうすればいいのですか?

// これだとウィンドウの左端が画面外に出たときに(0, 0)から描画されない
LPDIRECT3DDEVICE9 pD3Ddev;
pD3Ddev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(255, 255, 255), 1.0f, 0);
pD3Ddev->BeginScene();
Draw();
D3Ddev->EndScene();
if( FAILED(pD3Ddev->Present(NULL, NULL, m_hWnd, NULL)) )
{
pD3Ddev->Reset(&g_pDirectX->d3dpp);
}

418デフォルトの名無しさん:2009/02/04(水) 17:24:28
つーかアニメデータなんて自分用の形に吐き出して自分で管理クラスつくれよ
419デフォルトの毛無しさん:2009/02/04(水) 19:49:35
>>417
Presentの引数を全部NULLにするとか。

ごめん、勘で言った。
420デフォルトの名無しさん:2009/02/04(水) 21:46:56
>>417
ウィンドウサイズを変える毎にクライアント領域のサイズに合わせてデバイスを作り直す
421デフォルトの名無しさん:2009/02/04(水) 21:51:39
デスクトップ領域からウィンドウが外れたときの話だと思うが
422デフォルトの名無しさん:2009/02/04(水) 21:56:26
無知発見。
423デフォルトの名無しさん:2009/02/04(水) 22:51:27
>>417
そのソースコピペ?
コピペじゃないならコピペにしてくれ。
他にも書き写しのときにミスがありそう。

ああ、あと、俺の環境では画面からはみ出しても普通にクライアント座標の端っこから描画されるぞ。
はみ出した部分は画面外だから当然見えない。
<環境>
WindowsXP Home Edition SP2
DirectX 9.0c (4.09.0000.0904)
DirectX SDK Novemver 2007
こんぱいら BCC 5.5
424デフォルトの名無しさん:2009/02/04(水) 22:57:09
だからクライアントサイズとデバイスサイズが合ってないとそうなるんだよ
425403:2009/02/04(水) 23:06:07
>>408
とても参考になりました
わかりやすいコメントまでつけてくださって
本当にありがとうございます
426デフォルトの名無しさん:2009/02/05(木) 07:31:39
DirectinputのDIK_LEFTとかを引数で渡したい場合は

どうやるんですか?

intなら

foo(int i);

foo(??? DIK)
427デフォルトの名無しさん:2009/02/05(木) 07:45:17
BYTEでいいんじゃね?
>Dinput.h に定義されているキーボード デバイス定数は、キーボード デバイスの
>データ パケット (256 バイト配列) 内でのオフセットを表す。
428デフォルトの名無しさん:2009/02/05(木) 07:52:20
ありがとうございます><
429412:2009/02/05(木) 08:21:42
>416
丁寧な解説ありがとうございました。
自前でアニメーションの仕様を0から組むのはあまりにも敷居が高いですし
メモリリークなどが発生してしまうようではどうも面倒の方が多そうですね。
430デフォルトの名無しさん:2009/02/05(木) 15:04:07
現在頂点カラー(0xFFFFFFFF)で描画しているテクスチャを
頂点カラー(0xFF000000)に変更して全く同じように描画、
つまり、テクスチャのポリゴンとの合成方法を加算合成にしたいのですが、
どの設定メソッドを使用すればいいのでしょうか?
ピクセルシェーダを自作すべきなのでしょうか?
431デフォルトの名無しさん:2009/02/05(木) 18:58:25
DirectInputやDirectSoundについて質問です

ゲームループをタイトルとゲームで分けています

タイトルが呼ばれたらインプットデバイス・サウンドデバイスを作る
ゲームが呼ばれたらタイトルを破棄してゲームでインプットデバイス・サウンドデバイスを作る

というやり方でいいでしょうか?
432デフォルトの名無しさん:2009/02/05(木) 19:51:35
>>430
デバイス->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );// 合成元1(テクスチャ)
デバイス->SetTextureStageState( 0,D3DTSS_COLORARG2, D3DTA_DIFFUSE );// 合成元2(頂点カラー)
デバイス->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_ADD );// 合成方法(加算)
433デフォルトの名無しさん:2009/02/05(木) 19:55:41
>>431
タイトルとゲームでウインドウ遷移したりするの?
しないならデバイス作り直さなくてもよくね?
別に作り直ししちゃいけないわけでもないし
そのやりかたでもいいんじゃね?

シーンごとにリソース解放するってならわかるけど
デバイスを無理して作り直す必要はないとは思うけどね
434デフォルトの名無しさん:2009/02/05(木) 20:21:31
>>433

ありがとうございます
435430:2009/02/06(金) 13:53:26
>>432
ありがとうございました
436デフォルトの名無しさん:2009/02/06(金) 16:01:00
最近3Dの勉強を始めた者ですが、質問です。

人間モデルがあったとして、手に別のモデルをくっ付けたい場合は、その座標等を取得する関数のような
モノがあるのでしょうか?

いまいちその辺のスタンダードな取得方法がわからなくて迷走してます。
3Dモデルのノード?に名前をつけれるのでその名前から取得したりするのかなぁと思ったりしてるんですが
どうなんでしょう?

ググッて調べても検索ワードがまずいせいか、その辺がまったくわからなくて…Orz
437デフォルトの名無しさん:2009/02/06(金) 16:06:28
ボーンの座標計算を自前で行えば自由自在
438デフォルトの名無しさん:2009/02/06(金) 16:07:26
一発で座標を取得できるような便利関数は無い
しかし、どんな方法であれアニメーションをさせている限り
ボーンが今現在どんな姿勢をしているかは取得できるはずなので
自力で目的のボーンの変換行列を探せばOk
439436:2009/02/06(金) 16:31:55
>>437
>>438
なるほど、モデルじゃなくボーンの方を何らかの方法で調べて
目的の行列が見つかりさえすれば座標が取得できるわけですね。

もやもやした感じが少し晴れました。
その方向で調べてみます。
ありがとうございました。
440デフォルトの名無しさん:2009/02/06(金) 16:48:29
深度バッファの取得方法がよく分からないんだけど
もしかして2回レンダリングするの?
441デフォルトの名無しさん:2009/02/06(金) 22:08:55
direct X ではベクトルの始点、終点を与えて矢印を引くことできないんだ。。。

(x,y,z)成分が与えられていれば、θ=arctan(y/x)、φ=arctan(z/sqrt(x^2+y^2)
から角度が求められるから、x-Fileで作成した例えばy方向の矢印を順次回転
させて(x,y,z)方向に向ければいいんだろけど(しかし、これもx≒0のときθの
精度が悪くなるからarcsinやarccosに切り替えたり、θが第何象限にあるかを
判定する必要があるから、そう簡単ではない)。

それよりもわからないのは、剛体の3次元運動の角速度は、普通、剛体に固定
された回転座標系ξηζ上で成分表示されている。これをもとに角速度ベクトル、
角運動量ベクトルをワールド座標系上で矢印表示するにはどうしたらいいんだ?

directXの回転変換マトリックスってベクトルを回転してるのか、それとも座標系
を回転してるのか?マトリックスの内容と表示を照らし合わせて確認すればいいが
面倒クセェ。
442デフォルトの名無しさん:2009/02/06(金) 22:34:26
>>440
深度バッファをシェーダで利用したりするのは、DirectX10以降でないとダメ。
それ以前はNVIDIAが独自拡張で別のことに使っていた関係で使えない。

だから9では、MRTで深度値を別のテクスチャに描画して使う。

>>441
なんでいちいちθを求めるんだ。
方向ベクトルがあれば、そこから直接回転行列作ればいいだろう。
ちゃんとベクトルの勉強してたら暗算でできるレベル。
443デフォルトの名無しさん:2009/02/06(金) 22:51:54
>>442

わかってない。もういい
444デフォルトの名無しさん:2009/02/06(金) 23:09:43
>>443
質問文が長すぎる
簡潔にこれがわからないって最初に書け詳細がその後だ
445デフォルトの名無しさん:2009/02/07(土) 00:56:22
正直、何が聞きたいのかさっぱり分からないけど
ベクトルからその向きになるような回転行列を作りたいって話なら
ここを参考にすればいいと思うよ

ttp://marupeke296.com/DXG_No47_CharacterDirectionMatrix.html
446デフォルトの名無しさん:2009/02/07(土) 07:25:07
>>444

お前はひっこんでろ

>>446

ありがとう。

directXには任意の軸方向回りに、ある角度だけ回転した場合の
回転行列を求める関数がある。

なので、X-Fileで作成した初期方向のベクトルaと希望の方向の
ベクトルbの外積を求めれば、必要な情報が得られることは紹介
してくれたサイトを見ないでも、しばらくしてわかった。

あとは、World座標系と剛体に固定された座標系の間の座標変換行列
が必要だけど、これはベクトルの回転変換行列と要素が一致するだろう。
(そうあってほしい)
447デフォルトの名無しさん:2009/02/07(土) 08:20:06
>>446
直接 〜が知りたい って文章かけないわけ?
448デフォルトの名無しさん:2009/02/07(土) 15:57:37
もういいから放置しておけよ
こいつが必要なのはDierctXの知識じゃなく日本語の知識だ
449デフォルトの名無しさん:2009/02/07(土) 16:49:31
>>447

馬鹿は相手しないね。悪いけど。

>>448

馬鹿がもういっぴき。臭ぇーちんぽが、死ね。

450デフォルトの名無しさん:2009/02/07(土) 16:58:13
考えるまでもなくベクトルの回転も座標の回転も同マトリックスでできるだろ。
座標の回転なんて基底ベクトルの回転に等しい。
451デフォルトの名無しさん:2009/02/07(土) 17:06:21
数学がわからんだけじゃないか
DirectX関係ねぇ
452デフォルトの名無しさん:2009/02/07(土) 17:18:49
ふぁーーっ。

>>450

おお!、あんた、なかなk筋のいい回答してるよ。

良くできましたね! 皆さんでほめてあげましょう(校長先生のお話)w。


>>451

相変わらず馬鹿だな。お前に言われるのは、100年早い。
死ね、臭ぇーーー腐れチンポが。






まだ、書いていいぞ。あっははは。






やーい、腐れチンポ、あははは


453デフォルトの名無しさん:2009/02/07(土) 17:58:32
DirctXってかシェーダーの質問なんです

http://game.watch.impress.co.jp/docs/20071227/3d30.jpg
↑みたいにライティング結果をメッシュのテクスチャに焼きこんで
それを出力させたいんですが、どうすればいいんでしょうか?
454デフォルトの名無しさん:2009/02/07(土) 22:55:54
見た瞬間、グロかとおもた。
455デフォルトの名無しさん:2009/02/07(土) 22:58:12
ビビタ
456デフォルトの名無しさん:2009/02/08(日) 01:45:47
>>453
UV座標をスクリーン座標にしてレンダーターゲットに描画するとか?
ttp://www1.axfc.net/uploader/File/so/18247
でもテクスチャの使いまわし(特に左右対称の場合とか)があると
うまくいかないのよね。
457デフォルトの名無しさん:2009/02/08(日) 04:05:10
>>453
モデリングソフトで真正面・真横・真上・真下から
レンダリングした絵をテクスチャにして平行投影で貼ればよかろ?
458デフォルトの名無しさん:2009/02/08(日) 04:06:46
ってCGワールドに載ってたw
459デフォルトの名無しさん:2009/02/08(日) 16:19:04
ゲームのDVDから画像データを抜き出すことってできるんですか?
460デフォルトの名無しさん:2009/02/08(日) 16:24:09
できるよ

GetModuleDds(Disk code);
461デフォルトの名無しさん:2009/02/08(日) 16:25:43
>>459
ゲーム実行中にVRAMコピーすれば余裕
でもそんなこと頑張ってもたかが知れてるぞ
462デフォルトの名無しさん:2009/02/08(日) 16:47:30
>>461
専門がそっちなんで最初はそれを作ってたんですが、XBOXを3台ほど壊してしまって
少しぐらい難しくても経済的にソフトでやろうと思ったんですが、予想以上にファイルがどうなってるのかわからず困ってます
アドバイスお願いします。
463デフォルトの名無しさん:2009/02/08(日) 17:31:16
スレチ
464デフォルトの名無しさん:2009/02/08(日) 17:46:12
該当しそうなスレはことごとく餓鬼の巣窟でまったく話にならないんです。
本気で取りだしたいのでゲームに埋め込むときのノウハウががわかっている方がいるであろうこのスレを選びました。
3Dデータの本質がわかっているこのスレでお願いします!
465デフォルトの名無しさん:2009/02/08(日) 17:52:42
466デフォルトの名無しさん:2009/02/08(日) 18:06:42
それらしいスレにはわかる人はいないんですよ
467デフォルトの名無しさん:2009/02/08(日) 18:07:47
俺はわからないけど、とりあえず夜まで待てば?
468デフォルトの名無しさん:2009/02/08(日) 18:17:12
データだけ取り出せればいいの?
画像フォーマットの解析は自分でやるんだよね?
469デフォルトの名無しさん:2009/02/08(日) 18:26:14
暗号化されているのか、対応ソフトがあれば見れるのか
そもそも3Dデータであろう部分は判別できるのかとか
ゲームを作る時のデータ扱いの常識と、あとは自分で調べていけるような流れを教えてもらえるとうれしいです
470デフォルトの名無しさん:2009/02/08(日) 18:30:33
スレチだっつってんだろ死ね
471デフォルトの名無しさん:2009/02/08(日) 18:31:00
XBOXは覗いたことないけど普通は独自で解析できないようにしてるんじゃないのか?
もし見れたらMADゲームとかで好きにキャラとか動かして遊べるからそうとう盛り上がってるはずだけど
ぐぐっても出てこない、きびしいんじゃないだろうか
472デフォルトの名無しさん:2009/02/08(日) 18:38:46
DirectX関係ないだろアホか
473デフォルトの名無しさん:2009/02/08(日) 18:41:32
単なるbyteの配列を抜き出してどういうフォーマットのデータがどう並んでいるかなんて判別不可能に近い。
ましてやXBOXなんてUMAだからシステムメモリとビデオメモリが共有だろ。
どこに何があるのかすら分からないだろ。
474デフォルトの名無しさん:2009/02/08(日) 18:45:32
まったく関係なくもないな
同じような道だし
DirectXを使ったPCゲームで3Dモデルをどう使ってるかから調べればいいんじゃないのか?
XBOXはPCゲームを移植しやすいように作ってあるらしいから共通点がみつかるかも
475デフォルトの名無しさん:2009/02/08(日) 18:54:57
俺も知りたいからあげ
476デフォルトの名無しさん:2009/02/08(日) 19:01:56
そんなもんゲームによりけりだろ
477ボコボコにしてやんよ ◆BokoBoko7c :2009/02/08(日) 19:31:23 BE:1083996656-2BP(2537)
氏ね
478デフォルトの名無しさん:2009/02/08(日) 20:19:06
>>471
VRAMに展開された状態なんだから圧縮も糞もないだろ
開発環境あったら普通にみれるじゃん
479デフォルトの名無しさん:2009/02/08(日) 20:47:04
VRAMってもしかしてメモリチップのことじゃなかった?
480デフォルトの名無しさん:2009/02/08(日) 20:53:17
質問者はDVDからっていってるからファイル解析じゃないの
というかVRAM覗ける様にする方がしんどくね?
481デフォルトの名無しさん:2009/02/08(日) 21:08:52
D3DX10CreateEffectFromFile()で失敗します。
FXファイルはあります。この場合失敗する理由をどうやって調べればよいですか?
よろしくお願いします。
482デフォルトの名無しさん:2009/02/08(日) 21:12:11
481です。
D3DX10CreateEffectFromFile()からはE_FAILが返ってきてました。
483デフォルトの名無しさん:2009/02/08(日) 21:33:39
481です。
自己解決しました。
fxc.exeでFXファイルをコンパイルしてみたところコンパイルできなかったので
FXファイルを再度チェックしたところ、書き方の間違いが見つかりました。
それを修正したら動作しました。
ありがとうございました。
484デフォルトの名無しさん:2009/02/08(日) 21:34:03
fxc使う!
485デフォルトの名無しさん:2009/02/08(日) 21:34:58
orz
486デフォルトの名無しさん:2009/02/09(月) 02:49:37
まずは圧縮(パッキング含)されてそうならそのアルゴリズムを解析する。
たいていLZ法やハフマン法とかなんで、あとはつじつまが合いそうな
データ並びを調べ、展開ツールを自作する。

それが終わったらデータ一つ一つのフォーマット解析だ。
単純そうなデータがあればそれを解析サンプルとして使う。

ピクセルカラーやパレットがどう入ってるかあたりを付けながら、
確認可能な画像フォーマットに変換してみる。

ここまで読んでわからない奴には無理だから諦めなさい。
487デフォルトの名無しさん:2009/02/09(月) 03:19:16
HLSLの質問です

サチュレーションをシェーダで実装したいのですが
参考になるサイトや書籍、調べるきっかけになる単語があれば教えてください。
よろしくお願いします。
488デフォルトの名無しさん:2009/02/09(月) 03:24:06
>>487
もっと詳しくかいて
何をどう飽和させたいのかがさっぱり意味不明
489デフォルトの名無しさん:2009/02/09(月) 03:49:45
すみません、
実装したい現象は2つあります。
@
http://game.watch.impress.co.jp/docs/20030403/tcsc2.htm
での炎で起こるサチュレーション
他のモデルに光が浸食する現象です

A
夜中に車のライトを直視して、光の針が四方に突き出るような現象

よろしくお願いします
490デフォルトの名無しさん:2009/02/09(月) 05:00:05
@はHDRを中心に検索をかけ、ある程度自己解決
Aは、擬似HDRで実装したゲームでの表現があることから糸口発見

もし参考になるサイト、書籍を知っている方、
アドバイスをいただける方がいらっしゃれば情報をください。
よろしくお願いします。
491デフォルトの名無しさん:2009/02/09(月) 13:13:40
シェーダプログラミングブックのクロスフィルタ
492デフォルトの名無しさん:2009/02/09(月) 18:01:19
質問です。
3Dキャラクタを表示するとともに、仕込んであるボーンも表示するビュワーを作ったところ、疑問がでました。
3DキャラはXファイルを読み込んでいます。

Direct3Dだと、どうやらボーンは「ボーンの長さ + そのボーンの先での変換行列」という形で情報を持っているようです。
ですが、通常3Dソフトだと「そのボーンの根本での変換行列 + ボーンの長さ」という形が一般的だと思うのです。

たしかにDirect3Dの形式だと、「末端のボーンには長さ要らないんだけどなー」という点において有利な気はします。
が、直感的には後者のほうがずっとわかりやすいと思います。

また、ボーン名を表示する機能もつけてあるのですが、Direct3Dの仕様に合わせると「1つ上の階層のボーン名」を表示しないと、人間の直感からは1つずれた名前になってしまいました。

私が思ってる「一般的」は、もしかしてズレてるのでしょうか?
Xファイルしかファイルフォーマットを勉強したことないのですが、他の形式がどうなっているのか知っている方がいらっしゃいましたらコメントいただきたいと思います。
よろしくお願いします。
493デフォルトの名無しさん:2009/02/09(月) 18:51:18
Xファイルなんか使うな
494デフォルトの名無しさん:2009/02/09(月) 20:03:59
Xfile使うなって言ってるやつは何つかってんだよ
誰が何使おうが好きなようにすればいいじゃない
495デフォルトの名無しさん:2009/02/09(月) 20:10:29
>>494
調べればわかるけどXファイルは面倒臭い
逆に聞き返すが何のツールでXFile出そうとしてんの?

5万だしてXSI買ったほうがナンボか楽
496デフォルトの名無しさん:2009/02/09(月) 20:27:42
modとかならmaxかmaya行くと良いよ
497デフォルトの名無しさん:2009/02/09(月) 20:32:28
>>496
maxとmayaってゲームで使えるモデルが出力できる環境整えると
いくらぐらいになんの?
mayaがタダになったような気がするけど
プラグインまで使えるバージョンだっけ?
498デフォルトの名無しさん:2009/02/09(月) 20:39:31
いきなり初心者に5万出せってのはどうなんだよw
499デフォルトの名無しさん:2009/02/09(月) 20:44:05
>>498
オラァ!さっさとジャンプしてみろ!
チャリチャリなるだろチャリチャリィィィィィィィィィ!
500デフォルトの名無しさん:2009/02/10(火) 00:58:34
>>499
夜中に声出して笑っちまったw
501デフォルトの名無しさん:2009/02/10(火) 07:11:33
チャリチャリなるような財布に5万はないだろ
502デフォルトの名無しさん:2009/02/10(火) 07:13:21
ウォレットチェーンに違いない
503デフォルトの名無しさん:2009/02/10(火) 10:14:00
DirectXシェーダプログラミングとかいう本読んでるんですが、
これ、DirectXほとんど関係なくないですか?シェーダって思いっきり別言語じゃないですか
DirectXでGPUを操作するものは用意されてないんですか?
今後はシェーダのスレに言った方がいいんでしょうか?そもそもシェーダのスレはあるんですか?
504デフォルトの名無しさん:2009/02/10(火) 10:20:37
>>503
お前はDirectXを何だと思ってるんだ

シェーダのスレはあるかと思いきや意外と見あたらないな。
別にここでいいと思うが。
505デフォルトの名無しさん:2009/02/10(火) 10:29:09
まじこのHLVSとかいうの覚えなきゃいけないんですか?
506デフォルトの名無しさん:2009/02/10(火) 10:35:21
HLSLだよ何で間違えるw

覚えたくないならDirect3D9以前を使うこと。
Direct3D10では必須。 基本的な機能だけならコピペでもなんとかなるが。
507417:2009/02/10(火) 10:37:56
返信遅れてすみません。
>424さんの言うとおりクライアントサイズをデバイスサイズが違うことが原因でした。
ありがとうございました!
508デフォルトの名無しさん:2009/02/10(火) 15:35:53
HLSLってかなり楽しいと思うんだが
正直、DirectXとか機能覚えるだけで全然楽しくないけど
シェーダは、この表現はそういう処理になってたのか、とか
そういうのがあって楽しいよな
509デフォルトの名無しさん:2009/02/10(火) 20:43:00
SIZE構造体とか、RECT構造体とか、こういうのって使いますか?
本のサンプル見てるとやたら使ってるんですが、全部覚えないとだめ?
510デフォルトの名無しさん:2009/02/10(火) 20:54:57
>>509
関数の引数で決まってるので使わざるを得ない
511デフォルトの名無しさん:2009/02/10(火) 20:59:09
>>509
なんで覚えるんだよ
必要なとき調べりゃいいだろ
まさか暗記でもする気か?
無駄だぞ無駄
512デフォルトの名無しさん:2009/02/10(火) 21:10:16
DirectXシェーダプログラミング読もうかと思ったんですが、この本の内容ってDirectX10
でも使えますか?
513デフォルトの名無しさん:2009/02/10(火) 21:59:54
特にDirectXAPI側の形式が変わってしまっているが、やってることは同じ。
そのままコピペで使えるのかという質問なら否。
514デフォルトの名無しさん:2009/02/10(火) 22:57:42
>>513
ありがとうございます。
そのままコピペできるような本は日本語ではないですか?
なければ英語でもいいので教えてください。
515デフォルトの名無しさん:2009/02/10(火) 23:20:06
なんでコピペにこだわるんだろうか・・・
初心者の前に人間ですらないのだろうか?
516デフォルトの名無しさん:2009/02/10(火) 23:21:13
コピペ君って本当に馬鹿なんだなって聞こえた気がした
517デフォルトの名無しさん:2009/02/10(火) 23:38:44
コピペして動かせた方が勉強するにしても役立つのは明らかだからな
518デフォルトの名無しさん:2009/02/11(水) 00:01:10
だったらSDKのサンプルでもみろよw
ていうか
ソースが本に書いてあってもそのソースの解説が載ってる
本は正直みたことねぇな
っていうかそんなことしたらページがいくらあっても足りない
ただ、載ってるだけだw
519デフォルトの名無しさん:2009/02/11(水) 00:18:16
だって分からないんス。
SV_POSITIONとか言われてもぜんぜんピンとこない。
だれかがソースを目の前で書きながら分かりやすく解説しつつ、
手取り足取り教えてくれたらいいのに。シェーダのプログラムのやり方を
解説した実況中継DVDとかないですかね。
520デフォルトの名無しさん:2009/02/11(水) 03:15:58
シェーダの流れに便乗して質問なんですが
tex2Dprojって、MSDNに微分係数付きのテクスチャ座標という説明しかなくてよくわかりません
デプスシャドウなどで深度値を比較するときに使われてるみたいですが
普通のtex2Dと何が違うんですか?
521デフォルトの名無しさん:2009/02/11(水) 07:27:22
>>519
ピンとこないと駄目なんだ?w
522デフォルトの名無しさん:2009/02/11(水) 07:43:23
>>519
ピンとこないとダメなら自分でピンとくる3Dエンジンを作るよろし。
523デフォルトの名無しさん:2009/02/11(水) 08:52:21
>>520
微分は、tex2Dgradの方じゃ?
tex2Dprojは、xyをwで割って
サンプリングする座標を求めるもの
tex2Dproj( xy, t ) ≒ tex2D( xy / t )

シャドウマップではサンプリングに射影変換が
必要なケースがあるので、こいつが使われる。
524デフォルトの名無しさん:2009/02/11(水) 09:03:50
↑間違ってる、正しくは↓
tex2Dproj( s, xyzw ) ≒ tex2D( s, xyzw / w )
525デフォルトの名無しさん:2009/02/11(水) 14:18:26
よく分からないけど、wで割るっていうのは
スクリーン座標をビュー座標にしてるってことですか?
526デフォルトの名無しさん:2009/02/11(水) 20:17:20
そんなわけねーじゃん
527デフォルトの名無しさん:2009/02/11(水) 20:39:30
俺の頭じゃ理解できない
詳しく教えて下さい
528デフォルトの名無しさん:2009/02/11(水) 20:57:54
だってビューってみたかんじからして
Y座標逆っぽいじゃん
529デフォルトの名無しさん:2009/02/11(水) 21:32:48
すみません、なんか勘違いしてたみたいです
wで割ると射影空間上のX座標Y座標が-1から1の間に収まるっていう感じであってますか?
530デフォルトの名無しさん:2009/02/11(水) 22:30:21
>>525
同次クリップ空間からビュー座標にしてるんじゃね?
531デフォルトの名無しさん:2009/02/11(水) 23:46:32
独習デザインパターンC++は役に立った
532デフォルトの名無しさん:2009/02/12(木) 11:22:52
>529
ここ見るといいよー

そもそも「w」って何なのか?
ttp://marupeke296.com/DXG_No55_WhatIsW.html
533デフォルトの名無しさん:2009/02/12(木) 20:02:33
288*256の画像ファイルを読み込んで、24け32の範囲を
貼り付けると横が伸びるんですけどなんか方法はないですか?
534デフォルトの名無しさん:2009/02/12(木) 20:07:11
どうやって画像を読み込んで、どうやって表示してるのか言わないとわからない。
535デフォルトの名無しさん:2009/02/12(木) 20:46:41
256*256にしとけ
536デフォルトの名無しさん:2009/02/12(木) 20:47:37
「288*256の画像ファイルを読み込んで」の時点で
テクスチャが512x256になってるって落ちじゃ?
D3DXCreateTextureFromFileで読み込むとそうなる
D3DXCreateTextureFromFileExでちゃんと幅と高さを指定してつくれ
537デフォルトの名無しさん:2009/02/13(金) 05:34:17
Maneged DirectXってDirectShowだけじゃなくてDirectMusicも含まれてないんですか?
VS2008なんですけど、ヘルプを組み込むにはどうすればいいんでしょうか
DirectXをインストールして入ってなければあきらめるしかないですか?
今はchmを直接開いてるんです
538デフォルトの名無しさん:2009/02/13(金) 07:26:26
スレ違い
539デフォルトの名無しさん:2009/02/13(金) 07:34:32
うほ
540デフォルトの名無しさん:2009/02/13(金) 20:19:51
アルファブレンディングとZバッファの関係で躓いています。

使用バージョン DirectX 8.0 (d3d8.h d3dx8.h)
VS2008 VC++

最背面 背景 > 半透明オブジェクト 最前面
のように描画されてて半透明オブジェクトの中身は TLVertex で
000
010
000

0は完全透明、もしくは半透明だと思ってください。
1は完全不透明です。

で、この半透明オブジェクトの背面に新たに TLVertexのオブジェクトを描画したくて、
0の部分はこの新たなオブジェクトと普通の半透明処理をして
1の部分は描画を破棄するなどして背面にあるように見せかけたいのです。

仕様として描画の順番を入れ替えることができないのでZソート法などを使うことができないのですが、
多少結果が食い違ってもかまわないのでどうにか背面にあるように見せる方法はないでしょうか?
541デフォルトの名無しさん:2009/02/13(金) 20:29:13
>>540
半透明はZソートしない限り不可能。
完全に透明なら、Zテストを使えばいい。
542デフォルトの名無しさん:2009/02/13(金) 20:41:58
http://img.2ch.net/ico/apple.gif
フルオリジナルだから実現できた!綾波レイが頼んだラーメンを完全再現。

・エヴァテイストで全てをデザイン
・オリジナルATフィールドナルト入り
・「ロンギヌスの槍」蓋シール
販売価格 5,250円(税込)

メーカー 日清食品
発売日 09年03月下旬
原作名 新世紀エヴァンゲリオン
コピーライト (C)GAINAX・カラー
日清食品株式会社製


http://www.amiami.com/shop/ProductInfo/product_id/115659
http://www.amiami.com/images/product/main/091/CGD-2718.jpg
543デフォルトの名無しさん:2009/02/13(金) 21:49:16
>>541
現状完全透明でも描画できていないので半透明については保留にしておいて
Zテストについて色々調べてみます。
ありがとうございました
544デフォルトの名無しさん:2009/02/13(金) 23:26:03
>>543
ごめん、Zテストじゃなくてアルファテストの間違い。
545デフォルトの名無しさん:2009/02/14(土) 00:32:49
DirectXで画面(800*600)の任意の場所にドット絵を表示させたいのですが
どうしてもアンチエイリアスがかかったようにぼけてしまいます。

//プロジェクション行列
D3DXMatrixOrthoLH(
 &ProjectionMatrix,
 400,
 300,
 0,
 100
);

//キャラクターのマトリックス
D3DXMATRIX mat;
D3DXMatrixIdentity(&mat);//現在は原点

mat * ProjectionMatrix を掛け合わせた行列で
シェーダーでキャラクターの頂点を変換しているのですがうまくいきません。
ご教授お願いします><
546デフォルトの名無しさん:2009/02/14(土) 00:37:05
シェーダを使わずにレンダリングしたら正常ってことだよな
547デフォルトの名無しさん:2009/02/14(土) 00:37:29
>>545
デバイス->SetSamplerState( 0, D3DSAMP_MIPFILTER, D3DTEXF_POINT );
デバイス->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_POINT );
デバイス->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_POINT );
548デフォルトの名無しさん:2009/02/14(土) 00:58:05
>>546
シェーダーに頼り切ってるのでシェーダー使わない方法が今一わかってません…

>>547
DirectXにテクスチャを送らなく
シェーダーにテクスチャを送っていたので
//普通のテクスチャ用
//普通のテクスチャ用
sampler2D NormalSmp = sampler_state {
Texture = NormalTex;
MipFilter = LINEAR;
MinFilter = LINEAR;
MagFilter = LINEAR;
AddressU = CLAMP;
AddressV = CLAMP;
};
     ↓

sampler2D NormalSmp = sampler_state {
Texture = NormalTex;
MipFilter = POINT;
MinFilter = POINT;
MagFilter = POINT;
AddressU = CLAMP;
AddressV = CLAMP;
};
にしたらきちんとうつりました

ありがとうございます。
549デフォルトの名無しさん:2009/02/14(土) 14:42:57
D3DXをつかわずにPNGとかの画像を読み込んで
テクスチャーを作るにはどうするですか?
550デフォルトの名無しさん:2009/02/14(土) 14:47:07
CreateTextureで必要なサイズのテクスチャを作って
そのテクスチャをLockRectして画像から読み取った色情報を書き込めばOK
ただしその画像フォーマットがどのように色情報を格納しているかの知識が必要
551デフォルトの名無しさん:2009/02/14(土) 19:05:21
DirectXは△ポリゴンしかサポートしてないと聞いたのですが
□ポリゴンが混ざっているXファイルが読み込めました

調べたのですがサポートしていないとは不具合があっても対処しませんということでいいのですか?
552デフォルトの名無しさん:2009/02/14(土) 19:09:30
それモデラーがXファイル出力するときに3角形にしてるだけだろ
553デフォルトの名無しさん:2009/02/14(土) 20:13:46
てかほっとくと普通に5角形とか6角形とかまざってね?>Xファイル
モデラーで三角形分割しないと駄目だろ
554デフォルトの名無しさん:2009/02/14(土) 20:14:56
D3DX使うと読むときに全部三角分割してるよ
555デフォルトの名無しさん:2009/02/14(土) 20:26:38
>>554
どんな感じで?w(←絶対にデザイナに責任取らせたほうがいいと思うw)
556デフォルトの名無しさん:2009/02/14(土) 20:29:00
自動で三角形分割やらせて
ウンコみたいなUVの設定とか変な分割のされ方したぐらいで
プログラマに怒りをぶつけるようなデザイナの尻には浣腸しかない
557デフォルトの名無しさん:2009/02/14(土) 20:31:46
どんな感じも何も四角形を三角形二つに分解したって、
表示結果は全く変わらないんだが、
責任とか訳のわからないことを言い出す>>555って、
どれだけ頭が悪いんだろう?
558デフォルトの名無しさん:2009/02/14(土) 20:33:22
三角形->四角形 非可逆
四角形->三角形 可逆
559デフォルトの名無しさん:2009/02/14(土) 20:39:38
>>558
すごいな
どの三角形とどの三角形で四角形を形成してたのかわかるのか?
面積0とかはないとしても難しいな
560デフォルトの名無しさん:2009/02/14(土) 20:45:27
よく読め
561デフォルトの名無しさん:2009/02/14(土) 20:45:56
ランドスケープ(格子状モデル)みたいなのイメージしてみたけど結構難しいな
同一平面で辺がくっついてたらとか考えたけどサルの浅知恵だった
562デフォルトの名無しさん:2009/02/14(土) 20:47:17
UVぶっちぎれね?
563デフォルトの名無しさん:2009/02/14(土) 20:49:33
>>560
死んでくる
564デフォルトの名無しさん:2009/02/14(土) 21:09:18
>>557
四角は平面だとでも、思ってんのか?お前

ただ556の浣腸は正しい
565デフォルトの名無しさん:2009/02/14(土) 21:20:49
>>564
出力されたデータを検証したことがないだろ。
平面じゃなければ、すでにエクスポート段階でデータが欠損していることになるが、
そんな間抜けな実装をしているエクスポータを挙げてみろよ。
566デフォルトの名無しさん:2009/02/14(土) 21:27:41
平面じゃない場合は四角形ではない。
四角形なら必ず平面。
567デフォルトの名無しさん:2009/02/14(土) 23:08:44
危険生物を萌え絵で擬人化した『萌え萌え有毒生物図鑑』が発売に

 『有毒生物の世界を、萌えながら学ぶビジュアル図鑑』という
萌え萌え有毒生物図鑑が12日に発売になり、
とら1号店・メロン秋葉原店で見かけた。表紙イラストは中村博文氏。
イーグルパブリッシングの2月新刊案内 では『有毒生物達を擬人化イラストと共に大紹介』などとし、
とら1号店のPOPは『ヒトデがロリっぽくて・・・ハァハァ』とかだった。

表紙:http://node3.img3.akibablog.net/09/feb/13/303s.jpg

オニヒトデ:http://node3.img3.akibablog.net/09/feb/13/304a.jpg
アカエイ:http://node3.img3.akibablog.net/09/feb/13/308a.jpg
キングコブラ:http://node3.img3.akibablog.net/09/feb/13/314.jpg
マムシ:http://node3.img3.akibablog.net/09/feb/13/315.jpg
蚊:http://node3.img3.akibablog.net/09/feb/13/313.jpg
ブラリナトガリネズミ:http://node3.img3.akibablog.net/09/feb/13/309.jpg
デスストーカー:http://node3.img3.akibablog.net/09/feb/13/310.jpg
ピトフーイ:http://node3.img3.akibablog.net/09/feb/13/311.jpg
オオスズメバチ:http://node3.img3.akibablog.net/09/feb/13/312.jpg
ドクツルタケ:http://node3.img3.akibablog.net/09/feb/13/316.jpg
568デフォルトの名無しさん:2009/02/14(土) 23:12:54
蚊以外いらん
569デフォルトの名無しさん:2009/02/14(土) 23:20:08
キングコブラと蚊はいいセンスしてんなw
570デフォルトの名無しさん:2009/02/14(土) 23:27:01
蚊のやつ、上半身と下半身が分離してるように見えてならない
571デフォルトの名無しさん:2009/02/14(土) 23:28:51
こんなの人間の女の子に猫耳つけて猫ですってレベルと変わらないじゃん
572デフォルトの名無しさん:2009/02/14(土) 23:46:06
マムシハァハァ

…ふぅ
573デフォルトの名無しさん:2009/02/15(日) 00:02:21
俺もマムシ一択だな
574デフォルトの名無しさん:2009/02/15(日) 00:08:37
DirectX関係ないぞ
575デフォルトの名無しさん:2009/02/15(日) 00:15:35
そのコピペそこらじゅうに張ってあるぞ
そのあとのトークとセットで
576デフォルトの名無しさん:2009/02/15(日) 00:17:01
>>567->>571
までコピペワロタ
577デフォルトの名無しさん:2009/02/15(日) 10:09:05
>>565
お前様はfbxいじった事はあるの?
てか、もし師範様なら、割られた三角で取得する方法教えて下さい・・・
578デフォルトの名無しさん:2009/02/15(日) 10:17:41
>>577
FBXなら普通にメッシュのクラスにTriangle化するメソッドあるだろ・・・
579デフォルトの名無しさん:2009/02/15(日) 13:28:20
DirectX9でMFCのViewに表示させる場合、CreateDeviceのhWndはViewのm_hWndじゃだめなんでしょうか?
コンパイルできるんですが、そのあとの描画でデバイスのClearで止まるんです
580デフォルトの名無しさん:2009/02/15(日) 13:42:39
ClearでとまるならZバッファないのにZクリアーしてるとか
ステンシルないのにステンシルクリアーしてるとかだろ。
581デフォルトの名無しさん:2009/02/15(日) 14:21:13
HRESULTいくつよ?
582デフォルトの名無しさん:2009/02/15(日) 14:34:22
戻り値までいきません。ハンドルされていない例外でストップするんです。

class CView : public CView{
CXView::CXView()
{
  pDirectX9 = new CDirectX9();
  pDirectX9->InitD3D(this->m_hWnd);
}
void CView::OnDraw(CDC* /*pDC*/)
{
  CXDoc* pDoc = GetDocument();
  ASSERT_VALID(pDoc);
  if (!pDoc)
   return;

  g_pD3DDev->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,0), 1.0f, 0 );
}
}
583デフォルトの名無しさん:2009/02/15(日) 14:40:07
if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp, &g_pD3DDev ) ) ) {
return E_FAIL;
}

これが失敗してます。
CViewのハンドルはm_hWndで問題ないですか?
584デフォルトの名無しさん:2009/02/15(日) 14:49:14
これってソースそのままコピペ?
class CView : public CViewでいいのか?
585デフォルトの名無しさん:2009/02/15(日) 14:50:52
class CXView : public CViewでしたすいません
586デフォルトの名無しさん:2009/02/15(日) 14:57:30
g_pD3DDevがNULLってこたぁないよな
587デフォルトの名無しさん:2009/02/15(日) 14:58:31
デバイスの生成でミスってんならそこでちゃんとエラーだせよ・・・。
パラメーターがどっかしらおかしいんか、ウィンドウハンドルがNULLじゃなきゃ失敗しねえ。
588デフォルトの名無しさん:2009/02/15(日) 15:06:44
CreateDeviceの戻り値は-2005530516です。
最新版のSDKでdxerr9.libからMAX_ERROR_TEXT_LENってなくなってないですよね?
これdefinいくつかわかりませんか?エラー関数コンパイルできなくなってエラーコード調べられなくなりました
589デフォルトの名無しさん:2009/02/15(日) 15:14:44
失敗してんじゃん
d3dppがおかしんじゃね
590デフォルトの名無しさん:2009/02/15(日) 15:26:01
D3DERR_INVALIDCALLでしょ。
d3dppの内容は?
591デフォルトの名無しさん:2009/02/15(日) 15:28:35
thx
これです

D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat = d3ddm.Format;
592デフォルトの名無しさん:2009/02/15(日) 15:29:57
とりあえず
CViewのコンストラクタ内ではまだm_hWndはNULLであることをお伝えしておく
593デフォルトの名無しさん:2009/02/15(日) 15:32:31
そこ手打ちみたいで怪しいから無視してたわ・・・
594デフォルトの名無しさん:2009/02/15(日) 15:34:02
つーかDirectXをまずデバッグモードにしろや。
それでコンソールにエラー内容全部表示されるようになるだろ。
595デフォルトの名無しさん:2009/02/15(日) 15:38:20
うおーできた!!!
ありがとう。
まじありがとう!!!
596デフォルトの名無しさん:2009/02/15(日) 16:04:27
>>595
解決したらどんなエラーだったかを示すのがスジ。
597デフォルトの名無しさん:2009/02/15(日) 16:07:55
まあOnCreateあたりでCreateDeviceしたんだろうけど。
598デフォルトの名無しさん:2009/02/15(日) 16:25:44
CViewのコンストラクタ内でハンドルを渡したら中身がNULLだったので
InitUpdateの中でやったら解決しました。
599デフォルトの名無しさん:2009/02/15(日) 20:08:59
DXTRACE_ERR()をやたら使ってるソースがあるんですが、これって意味あるんでしょうか?
なんにも有効そうなログとかだしてくれないんですが、、、
600デフォルトの名無しさん:2009/02/15(日) 21:06:28
それこそ使い方による
601デフォルトの名無しさん:2009/02/15(日) 22:25:28
Xファイルのアニメーションを切り替えるサンプルコードどっかにない?
SDKのは長すぎて解読不能だたよ
602デフォルトの名無しさん:2009/02/15(日) 22:26:55
まるぺけ
603デフォルトの名無しさん:2009/02/15(日) 22:51:23
まるぺけは自作関数使ってるじゃん
わかりづらいよ
604デフォルトの名無しさん:2009/02/15(日) 22:58:31
まるぺけって結構有名なんだな。
参考にしたのオレだけかと思ってたよ。
605デフォルトの名無しさん:2009/02/15(日) 23:08:31
分かりやすいサンプル=SDK付属のサンプルだと思うんだ
606デフォルトの名無しさん:2009/02/15(日) 23:42:46
それはお前だけ(笑)
607デフォルトの名無しさん:2009/02/15(日) 23:46:29
Xファイルの読み込みってめたくそむずかしくないですか?
VBだと読み込みと描画で2行でかけるのに・・・やばくないですか?Cとかいって
自分が見てる解説サイトがわかりずらいだけなのかな
608デフォルトの名無しさん:2009/02/15(日) 23:58:08
VS2008なんですが、プロジェクト新規作成にDirectXウィザードが無いんですが
どうすればいいと思いますか?
609デフォルトの名無しさん:2009/02/16(月) 00:23:16
あきらめればいいと思います
610デフォルトの名無しさん:2009/02/16(月) 02:40:41
エンプティープロジェクト
シンプルサンプル
611デフォルトの名無しさん:2009/02/16(月) 05:27:05
D3DCAPS9の中身を埋めてくれる関数は何ですか?
612デフォルトの名無しさん:2009/02/16(月) 05:34:21
GetDeviceCapsがありました
613デフォルトの名無しさん:2009/02/16(月) 15:40:06
質問です
レンダリングターゲットとして生成したテクスチャーは、マルチサンプリングが無効になってしまうようなのですが
これは「2倍の大きさで描画して、表示する際に50%縮小すればアンチエイリアシングかかるじゃん」というやり方をしろということなのでしょうか?

それとも何かしら設定があるんでしょうか?
614デフォルトの名無しさん:2009/02/16(月) 18:14:42
質問です

1.レンダリングターゲットのサーフェイスを変えて描画
2.深度バッファはそのままでレンダリングターゲットを元に戻しす
3.深度値の書き込みOFFで画面サイズのスプライトにさっき描画した内容をテクスチャとして描画
4.深度値の書き込みONにして適当にオブジェクトを描画

このときに、サーフェイスのサイズが正方形だとうまくいくんですが
640x480とか、横に長かったりするとスプライトに描画したときにピクセルが微妙にずれてしまいます。
たぶんサンプリングの問題だと思うんですが、
最後のオブジェクトを描画するときに最初の深度バッファをそのまま使いたいので
ずれてしまうと、何もないのに隠れてたり、その逆が起きたりしてしまいます。
ピクセルがずれるのは1ピクセル程度ですが。
どうすればいいのでしょうか?
615デフォルトの名無しさん:2009/02/16(月) 18:44:13
DirectXにスプライトなど無い。
616デフォルトの名無しさん:2009/02/16(月) 23:18:06
DirectSoundを使って音楽を再生しようとしているのですが
wav形式は再生できたのにmid形式をデバッグなしで再生しようとすると失敗します。
(デバッグありなら再生可能で、デバッグしてなくてもたまに鳴り出す)
これはいったい何が原因なんでしょうか。
617デフォルトの名無しさん:2009/02/16(月) 23:21:46
デバッグありだと再生できる方が超常現象だろう
618616:2009/02/16(月) 23:53:52
訂正
DirectSoundじゃなくてDirectMusicでした。
619デフォルトの名無しさん:2009/02/17(火) 01:47:47
初期化で
hr = D3DXCreateTextureFromFile( m_pD3DDev, _T("earth.bmp"), &m_pTexture );
の後、
m_pD3DDev->SetTexture(0, m_pTexture);
を描画start,endの間に追加したんですが
四角形の色が変わるだけで絵が表示されません、どこが原因なんでしょうか
620デフォルトの名無しさん:2009/02/17(火) 02:16:28
uvがちゃんと設定されてないんじゃ?
621デフォルトの名無しさん:2009/02/17(火) 02:45:58
どこかおかしいところありますか?

typedef struct {
  float x, y, z, rhw; //スクリーン座標での位置
  DWORD color; //頂点色
  float tu, tv;
} CUSTOMVERTEX;

CUSTOMVERTEX vertices[] = {
  // x y z rhw color (赤 緑 青 α)
  {50.0f, 50.0f, 0.5f, 1.0f, D3DCOLOR_RGBA(0xff, 0xff, 0xff, 0xff), 0, 0},
 {250.0f, 50.0f, 0.5f, 1.0f, D3DCOLOR_RGBA(0x00, 0x00, 0x00, 0xff), 1, 0},
  {50.0f, 250.0f, 0.5f, 1.0f, D3DCOLOR_RGBA(0xff, 0xff, 0xff, 0xff), 0, 1},
  {250.0f, 250.0f, 0.5f, 1.0f, D3DCOLOR_RGBA(0x00, 0x00, 0x00, 0xff), 1, 1}
};
622デフォルトの名無しさん:2009/02/17(火) 03:30:26
SetFVF で D3DFVF_TEX1 入れ忘れてるんだろう
623デフォルトの名無しさん:2009/02/17(火) 03:41:27
m_pD3DDev->SetFVF(D3DFVF_CUSTOMVERTEX);

これですか?
コメントアウトしてもだめでした
624デフォルトの名無しさん:2009/02/17(火) 03:43:29
D3DFVF_XYZ
だけにしたんですがそれでもだめでした
625デフォルトの名無しさん:2009/02/17(火) 03:47:59
わかりました
D3DFVF_XYZ

D3DFVF_XYZRHW
にしたら表示されました
ありがとうです!
626デフォルトの名無しさん:2009/02/17(火) 14:08:01
2Dゲームを作る場合、ポリゴンにテクスチャを貼り付けるのですか?
それとも、スプライトで画像を表示した方がよいのですか。
627デフォルトの名無しさん:2009/02/17(火) 14:21:39
ポリでいいと思うよ
628デフォルトの名無しさん:2009/02/17(火) 14:23:40
Direct3Dにスプライトなんぞない。
629デフォルトの名無しさん:2009/02/17(火) 14:35:12
D3DXにはあるけどな
630デフォルトの名無しさん:2009/02/17(火) 15:14:28
D3DXのspriteは遅いと聞いた
結局内部で板ポリにテクスチャ貼り付けてるだけだろ
631デフォルトの名無しさん:2009/02/17(火) 17:22:36
DirectXの再頒布パッケージについてなんですが、directx_nov2007_redist.exeというファイルをダウンロードしたところ
中に大量のcabとDXSETUP.exeなどが入っていました。頒布する時は、directx_nov2007_redist.exeを同梱するんですか?
他に何かいるんでしょうか?
632デフォルトの名無しさん:2009/02/17(火) 17:38:55
>>630
ちゃんテクスチャソートとバッチ処理されてるし
そこらの馬の骨が組むよりよっぽど速い
633デフォルトの名無しさん:2009/02/17(火) 21:01:58
D3DXにもスプライトもspriteも存在しない。
634デフォルトの名無しさん:2009/02/17(火) 21:12:06
kimoi
635デフォルトの名無しさん:2009/02/17(火) 21:51:01
>>633
http://msdn.microsoft.com/ja-jp/library/cc372361.aspx
あるじゃん
内容はどうだろうと作った人間がそう主張してるんだからそうだろう
636デフォルトの名無しさん:2009/02/17(火) 22:07:16
ID3DXSpriteだったらあるが、それはスプライトでもspriteでも無いだろ。
どれだけ頭が悪いんだよ?
637デフォルトの名無しさん:2009/02/17(火) 22:12:33
そもそも問題は質問するのにまともにソースも出さなければ、
使っているクラスやメソッドの名前すら正確に書かないことだろう。
638デフォルトの名無しさん:2009/02/17(火) 22:12:42
なにこのめんどくさい人…
639デフォルトの名無しさん:2009/02/17(火) 22:14:22
ソフトウェアエミュレーションだってスプライトだな
知ったかしたいのは分かるが
いい気になってあちこちで書いてるんじゃねーぞ
まあ笑えるからいいけどよw
640デフォルトの名無しさん:2009/02/17(火) 22:16:02
>>638
同感
脳みそにどんだけファブリーズ必要なのか問い正したい
641デフォルトの名無しさん:2009/02/17(火) 22:19:01
ソースうpすれば多少口悪いかもしれんが
他の改善点も指摘されてためになるってもんだ
642デフォルトの名無しさん:2009/02/17(火) 22:21:48
>>636
ID3DXSprite メンバ

Begin スプライトを描画できるようにデバイスを準備する。
Draw スクリーン空間に単純なスプライトを描画する。
DrawTransform 指定した行列によってトランスフォームしたスプライトを描画するためのしくみを提供する。
End ID3DXSprite::Begin が呼び出された時点のデバイス ステートを復元する。
GetDevice スプライト オブジェクトに関連付けられている Direct3D デバイスを取得する。
OnLostDevice

ビデオ メモリ リソースへの参照をすべて解放し、すべてのステートブロックを削除する。
OnResetDevice

デバイスがリセットされた後に呼び出す必要がある。

どうみてもスプライトです
ありがとうございました
643デフォルトの名無しさん:2009/02/17(火) 22:24:55
スプライト君=どれだけ君かよ
644デフォルトの名無しさん:2009/02/17(火) 22:31:34
>>642
-------------------------
ID3DXMesh インターフェイス
ID3DXMesh インターフェイス

アプリケーションは、ID3DXMesh インターフェイスのメソッドを使ってメッシュ オブジェクトを操作する。
-------------------------
ID3DXFont インターフェイス
ID3DXFont インターフェイス

ID3DXFont インターフェイスは、指定したデバイス上に指定したフォントをレンダリングするために必要なテクスチャとリソースをカプセル化するために使う。
-------------------------

おまえはID3DXMesh をメッシュ、ID3DXFontをフォントと呼ぶのか?
頭が悪いにもほどがある。
645デフォルトの名無しさん:2009/02/17(火) 22:34:17
>>644
それは
>Begin スプライトを描画できるようにデバイスを準備する。
このヘルプを書いたマイクロソフトに言ってください
646デフォルトの名無しさん:2009/02/17(火) 22:40:01
正直どうでもいい
647デフォルトの名無しさん:2009/02/17(火) 22:41:47
正確には〜じゃないとか言って
問題の解決をややこしくするだけの頭の固い奴ウゼー
そういうのは初心者じゃないほうの質問スレでやってくれ
それでもウザいのにかわりはないけど
648デフォルトの名無しさん:2009/02/17(火) 22:46:27
彼はきっとsprite(妖精)に捕り憑かれてるんだ
649デフォルトの名無しさん:2009/02/17(火) 22:49:07
すみません
誰か>>614に答えて下さい
650デフォルトの名無しさん:2009/02/17(火) 22:51:18
スプライトに描画するというのがよくわからん
651デフォルトの名無しさん:2009/02/17(火) 23:01:10
>>649
指摘されているんだから、きちんと質問内容を精査して書き直せ。
652デフォルトの名無しさん:2009/02/17(火) 23:07:51
>>649
>640x480
これがまずいんじゃねぇの?
もしかして・・・
653デフォルトの名無しさん:2009/02/17(火) 23:09:15
正方形じゃなくて2の累乗とかどうよ?とかテキトーなこと言ってみるw
654デフォルトの名無しさん:2009/02/17(火) 23:10:08
>>650
変換済みの頂点で作ったポリゴンを2枚用意して、それで四角形を作って
それにレンダリングした内容をテクスチャを張り付けてます。
655デフォルトの名無しさん:2009/02/17(火) 23:11:40
ビューポートとかどうなってんだよ
656デフォルトの名無しさん:2009/02/17(火) 23:16:21
>>655
ビューポートはテクスチャのサイズに合わせています
657デフォルトの名無しさん:2009/02/17(火) 23:24:23
レンダリングターゲット変えて描画するときはZバッファ使ってないの?
658デフォルトの名無しさん:2009/02/17(火) 23:26:01
描画のx,yを-0.5ずらせば直るパターンじゃないの
659デフォルトの名無しさん:2009/02/17(火) 23:27:04
>>657
使ってます
660デフォルトの名無しさん:2009/02/17(火) 23:28:39
1234は時系列なの?
661デフォルトの名無しさん:2009/02/17(火) 23:30:48
すいません>>631お願いします
662デフォルトの名無しさん:2009/02/17(火) 23:31:55
そもそもずれるって、位置がずれるのかサイズが変わるのかすら不明。
663デフォルトの名無しさん:2009/02/17(火) 23:33:13
>>657
直りそうですが、これだと正常に描画できてるときにずれるのでは?

>>660
そうです

>>662
位置がずれてます
664デフォルトの名無しさん:2009/02/17(火) 23:38:35
>>663
とりあえずテクセルとピクセルの違いについて述べよ。
665デフォルトの名無しさん:2009/02/17(火) 23:39:22
>>663
>1.レンダリングターゲットのサーフェイスを変えて描画
>2.深度バッファはそのままでレンダリングターゲットを元に戻しす
>3.深度値の書き込みOFFで画面サイズのスプライトにさっき描画した内容をテクスチャとして描画
>4.深度値の書き込みONにして適当にオブジェクトを描画

んじゃ
1でずれるってこと?
2でもう元に戻してて関係なさそうな234の説明は詳しいけど
ズレてるのは1の部分なんでしょ?
666デフォルトの名無しさん:2009/02/17(火) 23:43:07
>>665
1の内容を3に描画したときにずれてしまいます
667デフォルトの名無しさん:2009/02/17(火) 23:46:29
>>666
意味がわかんねぇw
1ができてるってことはテクスチャにはちゃんと描画できてるんでしょ?

後はポリゴンにテクスチャ貼り付けて描画するだけじゃん

ズレてるのは何?
仮に1のテクスチャを使わないで描画するとズレない?
668デフォルトの名無しさん:2009/02/17(火) 23:50:31
>>667
普通に1を描画したときと
1をテクスチャに描画して画面サイズのポリゴンに貼り付けたときて
描画した時とで、ずれてしまうんです
1を描画した時に使った深度バッファをそのまま使って4のオブジェクトを描画したいんですが
3がずれてるため、深度バッファの位置と描画されてる1の位置がずれてしまいます
669デフォルトの名無しさん:2009/02/17(火) 23:56:48
バックバッファとテクスチャのサイズ違うのに深度バッファ使いまわすから?ってこと?
670デフォルトの名無しさん:2009/02/17(火) 23:56:49
いいからもうソースだせよ
671デフォルトの名無しさん:2009/02/18(水) 00:03:54
うp
672デフォルトの名無しさん:2009/02/18(水) 00:03:58
>>669
バックバッファのサイズとテクスチャのサイズは同じ大きさにしてます
673デフォルトの名無しさん:2009/02/18(水) 00:04:20
板ポリゴンもID3DXSpriteもやる事ぶっちゃけ一緒だから
行列で自由にうねうねとかしないならどっちでもいいかと
674デフォルトの名無しさん:2009/02/18(水) 00:05:53
>>668
日本語がわかんね
1は絶対ずれてねぇ?
でも1を描画したときにZバッファがなんか怪しいと?
んでレンダリングターゲットを元に戻してZバッファを使って描画してみると
なんかおかしいと・・・

つまり、1でレンダリングターゲット切り替えたときにZバッファなんかおかしくなったんじゃね?
675デフォルトの名無しさん:2009/02/18(水) 00:09:42
なんでここの人間ってD3DXとかスプライトの質問になると過剰な反応示すの?
676デフォルトの名無しさん:2009/02/18(水) 00:11:22
とりあえずテクスチャがそんな変なサイズで本当にできてるかあやしくね?
レンダリングターゲットにしてるテクスチャをGetDescしてサイズ調べてみろ
作ったサイズと違うなんてのはままよくあること
677デフォルトの名無しさん:2009/02/18(水) 00:23:40
ウザいのがおとなしくなってるのに蒸し返すなよ
678デフォルトの名無しさん:2009/02/18(水) 00:25:17
文章でうまく説明できないので、↓こんな感じです
http://kjm.kir.jp/pc/img/69614.jpg
679デフォルトの名無しさん:2009/02/18(水) 00:27:23
Zソートじゃねーの
680デフォルトの名無しさん:2009/02/18(水) 00:33:54
>>678
一番上でZバッファがONかOFFかが一番大事なところじゃねぇの?
んでやっぱレンダリングターゲットを変えた後のZバッファがうまくいってねぇんだろ?
681デフォルトの名無しさん:2009/02/18(水) 00:35:54
Zバッファ云々の前に、箱を書いたテクスチャを思ったところに描画できないってこと?
だとしたら0.5ピクセルずらせば解決しそうな予感。
682デフォルトの名無しさん:2009/02/18(水) 00:37:33
検証オススメ

●仮にSetRenderTargetでZバッファを設定だけして
 テクスチャに何も書き込まずに元に戻して描画するとどーなんの?
●なんかマジでビューポートあってんのかきになりまくりだろ
 テクスチャをGetDescしてビューポートとサイズあってるかたしかめてほしい

俺の脳みそではこれが限界だ
683デフォルトの名無しさん:2009/02/18(水) 00:46:02
http://tpot.jpn.ph/t-pot/program/30_blur2/blur2.html

>ちなみに今回の画像が 512x512 なのは、テクスチャーを確保するのが 2のべき乗でないと上手くいかなかったからです。
>いや、ビューポートをちゃんと設定すれば可能ですが、面倒くさかったので。

ちなみにティーポットさんもそんなこと言ってるぞ
684デフォルトの名無しさん:2009/02/18(水) 00:57:08
>>681
それって正方形にして正常に描画できてるときにずれたりしないんですか?

>>682
Zバッファのほうはうまくいってます
GetDescも確認しましたが、サイズはあってました

>>683
ビューポートをちゃんと設定すれば、っていうのは、普通とは違う方法で設定するっていうことですか?
685デフォルトの名無しさん:2009/02/18(水) 01:10:35
>>684
いや、そこまでちゃんとできてるなら0.5ピクセルっぽいねw
三角形ラスタ化ルールでググレ!
686デフォルトの名無しさん:2009/02/18(水) 01:17:16
>>685
三角形ラスタ化ルールってのがあったんですね
初めて知りました

0.5ピクセルずらすとか応急処置っぽくて嫌だったんですが
ちゃんと理由があったんですね
687デフォルトの名無しさん:2009/02/18(水) 01:17:39
>>631お願いします。困ってます。
688デフォルトの名無しさん:2009/02/18(水) 01:37:02
>>687
再配布パッケージのexeだけでいいはず
689デフォルトの名無しさん:2009/02/18(水) 07:29:00
>>686
ちゃんとDirectXのドキュメントにもラスタライズの項目に説明されてるじゃまいか
690デフォルトの名無しさん:2009/02/18(水) 08:16:12
Xファイルのフォーマットの仕組みはどうやって勉強すればいいですか?
10からXファイルがなくなったと書いてあるのをみたんですが、もっといい方法でできるようになったからいらなくなったんでしょうか?
いまからXファイル勉強するいみありますか?
691デフォルトの名無しさん:2009/02/18(水) 08:27:44
ヘルプに説明が入ってるだろう。
692デフォルトの名無しさん:2009/02/18(水) 09:44:09
3DのRPGを作ってるんですが、
3D酔いが酷くて狂いそうです
なにか酔わなくなる特殊な描画方法はあるんでしょうか?
693デフォルトの名無しさん:2009/02/18(水) 09:53:52
その辺はいろいろ研究してる人もいるみたいだけどよくわかってない。
入力に敏感に反応しすぎたり速く動くと酔いやすいね。
カメラを調整して歪みを減らすとかもきくかなあ。
694デフォルトの名無しさん:2009/02/18(水) 10:07:10
>>688ありがとうございます。
中身を取り出さず、ダウンロードした物をそのままですか?
695デフォルトの名無しさん:2009/02/18(水) 10:20:51
好きにしろよ
「自分でインストールしてね」って注意書きつけるならそのままでもいいし
親切設計でアプリにインストーラーからシェルかなんかで実行できるようにするなら
展開済みのをものを使ったほうがいいだろうし
696デフォルトの名無しさん:2009/02/18(水) 12:00:49
分かりました。同根だけにしときます。
697デフォルトの名無しさん:2009/02/18(水) 12:11:44
Xファイルの表示は出来たんですが
地面はどうすればいいんですか?
ものすごくでかいXファイルで小さいViewでそれらしくなるんですがファイルの容量もでか過ぎます
もっと地面をでかくするのに限界を感じるんですがどうすればいいとおもいますか?
698デフォルトの名無しさん:2009/02/18(水) 12:32:14
モデルの大きさとファイルの大きさは関係ない
容量がでかいというならもっとローポリでモデルを作れ
広くしたいなら地形を分割して必要なエリアだけ読み込み表示
699デフォルトの名無しさん:2009/02/18(水) 12:49:27
DirectInputのDirectInput8Create第3引数IID_IDirectInput8で外部シンボル未解決エラーがでるんですが
#include <dinput.h>
#pragma comment(lib, "dinput8.lib")
とあと何が必要でしょうか
700デフォルトの名無しさん:2009/02/18(水) 12:56:30
>>699
#define DIRECTINPUT_VERSION 0x0800
#include <dinput.h>
#include <dxerr9.h>
701デフォルトの名無しさん:2009/02/18(水) 13:23:54
3つとも入ってますがだめです
702デフォルトの名無しさん:2009/02/18(水) 13:24:40
3Dのクラスと一緒にしたのがまずいんでしょうか
703デフォルトの名無しさん:2009/02/18(水) 13:31:29
#pragma comment(lib, "dxguid.lib")
704デフォルトの名無しさん:2009/02/18(水) 13:40:31
もしくは#define INITGUIDか
705デフォルトの名無しさん:2009/02/18(水) 13:42:49
dxguid.libでした。ありがとう!
706デフォルトの名無しさん:2009/02/18(水) 15:53:53
Xファイルの3Dのアニメーションってどういう仕組みなんですか?
アニメと同じでコマごとに全体のポリゴンが時間速度とセットで一緒になってるだけなんですか?
それとも頂点の移動が記録されてるんですか?
707デフォルトの名無しさん:2009/02/18(水) 16:21:07
>>706
いきなりなんです?
破廉恥な
708デフォルトの名無しさん:2009/02/18(水) 16:43:36
>>706
かすりもしてない
一度ググって下調べしてから
これってどういう意味ですか?って質問をしなおせ
いまの状態で1から教えるのは無理
709デフォルトの名無しさん:2009/02/18(水) 19:00:19
DirectXのClearRenderTargetView()で二つ目の引数がfloat4個の配列なのですが、
なんで3個じゃなくて4個の配列が必要なのでしょうか?
710デフォルトの名無しさん:2009/02/18(水) 19:30:01
なぜ疑問に思うのかが疑問だ
711デフォルトの名無しさん:2009/02/18(水) 19:47:39
だって、RGBって数字3個で色を表せるんですよね?
最後のAってなんの意味があるのか前から疑問。
いっつも1.0fにしてます。
712デフォルトの名無しさん:2009/02/18(水) 19:49:35
これも釣りなのか?
アルファ値のAだぞ
713デフォルトの名無しさん:2009/02/18(水) 19:53:52
アルファ値のAってなんですか?
714デフォルトの名無しさん:2009/02/18(水) 19:54:52
すいません、調べたらすぐに出てきた
コンピュータが扱うデジタル画像データにおいて、各点に設定された透過度情報のこと。完全な透明(無色)から、完全な不透明(背景の色をまったく通さない)まで設定することができる。

 コンピュータが画像を扱う場合、色情報として、各点についてR(赤)・G(緑)・B(青)の三原色の情報をもち、その組み合わせで色を表現する(CMYKモードの場合は4色)。点の透明度を表現する場合にはこれにアルファ値を加え、4つの情報の組み合わせで一つの点を表現する。

 アルファ値は、データ形式やソフトウェアによって扱える場合と扱えない場合がある。扱える場合、各点の色を表すデータに追加する形で表現される。この追加されたデータ領域をアルファチャンネルという。
715デフォルトの名無しさん:2009/02/18(水) 19:56:49
すいません、でもClearRenderTargetView()でA値を変えても表示される内容は同じなんです。
だから分からなかったス。
716デフォルトの名無しさん:2009/02/18(水) 20:29:20
アルファは透明度として使うことが多いというだけで、べつに透明度に
限ったものでもないけどな。用途に応じて何入れてもいい。
アルファを透明度として使う設定をしなきゃ、透明度にはならない。
717デフォルトの名無しさん:2009/02/18(水) 20:31:20
αは透明度じゃなくて不透明度
718デフォルトの名無しさん:2009/02/18(水) 21:12:44
>>715
フラグ立てないとアルファは有効にならんよ
719デフォルトの名無しさん:2009/02/18(水) 21:53:19
フラグですか?
どんなフラグか教えてください。
お願いします。
720デフォルトの名無しさん:2009/02/18(水) 21:55:05
>>719
腑抜けが

さっきから度肝を抜かれる発言ばっかりだな
721デフォルトの名無しさん:2009/02/18(水) 22:13:28
おれ、ビルドが成功したらうんこするんだ
722デフォルトの名無しさん:2009/02/18(水) 22:14:03
じゃあこれを教えてください。
void Func() {
Device->ClearRenderTargetView();
Device->RSSetViewports();
Device->OMSetRenderTargets();
// Sprite の設定
SwapChain->Present();
}
こんな関数をMain関数から繰り返し繰り返し呼んでるんですが、
どうして、RSSetViewportsを毎回よばないとだめなんですか?
こんなの1回どこかで呼んどけばいいような気がするけど。
お願いします。


723デフォルトの名無しさん:2009/02/18(水) 22:15:57
こんなスレにいられるか、俺は○○○スレに戻る!
724デフォルトの名無しさん:2009/02/18(水) 22:20:51
ごめん、、、
725デフォルトの名無しさん:2009/02/18(水) 22:42:17
自分で呼んどいて
「何で呼ばなきゃいけないんですか」 って言われても
呼ばなきゃいいじゃんとしか言いようがないわ
726デフォルトの名無しさん:2009/02/18(水) 22:51:59
>>722
レンダリングターゲット切り替えないなら呼ぶ必要ないんじゃね?
727デフォルトの名無しさん:2009/02/18(水) 23:21:45
>>722
どこかで、ClearState してるんでね?
728デフォルトの名無しさん:2009/02/18(水) 23:23:20
エロ画像くれたら教えてやる
729デフォルトの名無しさん:2009/02/18(水) 23:26:41
これってグローバル変数・関数の弊害だよねw
1つの関数を呼ぶことでDirectX内部にある変数の動きがわからない
っていう・・・ちゃんとユーザ側にすべてのインスタンスをもたせて
関数の引数にいれるように作ってくれればよかったのにねw
730デフォルトの名無しさん:2009/02/18(水) 23:31:11
自分で管理すればいいだろ
731デフォルトの名無しさん:2009/02/18(水) 23:33:35
>>730
でもDirectX側のある関数を呼んだことで変化する
DirectX内部の変数はやっぱりわからないでしょ?
ちょっとそのレスは的外れだと思うぜ
732デフォルトの名無しさん:2009/02/18(水) 23:44:38
内部の変数?ってのは状態の事言ってるんじゃないの?

状態なら自分で設定したんだから把握できるしGet*系のメソッドもあるしなにを知りたいのかわからんのだけど
733デフォルトの名無しさん:2009/02/18(水) 23:48:00
あー、ここ質スレだったから>732とかスルーしていいわ
734デフォルトの名無しさん:2009/02/19(木) 01:39:39
アルファ付フレームバッファを作りそれを動的なテクスチャーとして使いたいのですが、
このフレームバッファのアルファ値へ書き込むにはどうやればいいでしょうか?
735デフォルトの名無しさん:2009/02/19(木) 01:52:52
ぴくせるしぇーだー
736デフォルトの名無しさん:2009/02/19(木) 03:03:10
BLENDOP
737デフォルトの名無しさん:2009/02/19(木) 05:03:45
InitDInputのSetCooperativeLevelに渡すhWndなんですが、ヘルプにはアプリケーション ウインドウへのハンドル
を渡すと書いてあるんですが、MFCのCViewで表示し、この中だけでDirectInputを使いたい場合何を渡せばいいんでしょうか
というかこれ実現可能ですか?
738デフォルトの名無しさん:2009/02/19(木) 05:25:00
Inputだけ使いたい場合はどうすんだ?w
739デフォルトの名無しさん:2009/02/19(木) 07:51:41
フォーカスがあるときだけ処理したらいーじゃない
740デフォルトの名無しさん:2009/02/19(木) 08:21:33
>>734
明示的に書き込みを禁止しなければ、デフォでα値も書き込まれるが。
ただ、ちゃんと書き込みたいα値が出力されているかは、シェーダなり
テクスチャステージの設定次第。
741デフォルトの名無しさん:2009/02/19(木) 09:26:43
モデリングソフトによくある面があらくてもきれいに見えるスムーズ機能はDirectXにあるんでしょうか?
もしかして自力で計算して作るんでしょうか?
742デフォルトの名無しさん:2009/02/19(木) 10:54:06
>>741
あれは法線を調整することで、ライティング結果がなめらかになるようにしてくれているだけ。
スムージング済みのデータをもってくれば、DirectXでも同様に見える。
・ちゃんと(せっかく改良してくれた)法線を出力する
・Direct3DXについてる法線再計算関数を呼ばない(呼ぶと、普通の法線に戻されちゃう)
743デフォルトの名無しさん:2009/02/19(木) 10:54:42
微妙に質問の答えになってなかった。
スムージングをかける機能はDirect3Dにも3DXにも存在しないと思う。
744デフォルトの名無しさん:2009/02/19(木) 11:05:42
nurbsとかのことを言ってるんじゃないかと予想
745デフォルトの名無しさん:2009/02/19(木) 11:13:27
スムージングの機能がないってことは、スムージング済みのXファイルを作るってことはポリンゴ数増えてるってこと?
GPUの能力でスムージングするのかと思ったんだけど
もしかしてXファイルってかなりやってることの中身理解できてないとエクスポートするソフトによって違いが出すぎるような気がするんだけど
大丈夫なの?
746デフォルトの名無しさん:2009/02/19(木) 11:23:56
君が言うスムージングってどれのこと?
具体的な例出してみてよ。
747デフォルトの名無しさん:2009/02/19(木) 11:28:50
>>735
>>736
>>740
ありがとうござます
BLENDやテクスチャーの設定等見直してみます
748デフォルトの名無しさん:2009/02/19(木) 12:11:25
D3DSHADE_GOURAUDのことじゃないよな
749デフォルトの名無しさん:2009/02/19(木) 12:17:34
なるほど、そんな気がしてきた。
ttp://msdn.microsoft.com/ja-jp/library/cc324530.aspx
これか。
750デフォルトの名無しさん:2009/02/19(木) 12:37:39
それははスムージングとはいわないだろう
グローシェーディングでもライティングは頂点単位だから
ポリゴン荒いと段差がみえちゃうのをどうにかしたいって話じゃないの?
頂点シェーダから法線と視線のベクトルも出力して
ピクセルシェーダでゴリゴリ計算すれば出来そうな気がするけど
ただしピクセルシェーダに掛かる負荷を無視できる環境に限るが
751デフォルトの名無しさん:2009/02/19(木) 12:46:46
初心者は用語の正確な意味なんか把握してない
752デフォルトの名無しさん:2009/02/19(木) 16:46:46
もしかしてDirectInputってフルスクリーンのときだけしか使えないんですか?
ずばりそう書いてあるんですが
753デフォルトの名無しさん:2009/02/19(木) 16:55:24
>>752
そんなことが書いてある本は窓から捨てましょう
私が拾いに行きます
754デフォルトの名無しさん:2009/02/19(木) 17:27:38
3D起動後画面が一瞬バチッってなるんですがどうしてでしょうか
755デフォルトの名無しさん:2009/02/19(木) 17:41:43
バチって言われてもよくわからないけど、ウィンドウ作成後Direct3Dでウィンドウに描画する前は、
普通のウィンドウズアプリケーションと同様にアプリが窓描画するから、白色とかだと目立つかもしれない。
これが原因なら回避するためにウィンドウクラスの背景ブラシに黒色を指定するとか。
756デフォルトの名無しさん:2009/02/19(木) 17:41:52
漏電してる
757デフォルトの名無しさん:2009/02/19(木) 17:58:59
thx。こうやったら一回止まりました。どうも2回バチッとなってたみたいであと1回止めたいです。どこでしょうか
wcex.hbrBackground = (HBRUSH)(NULL_BRUSH);
758デフォルトの名無しさん:2009/02/19(木) 18:04:02
どのタイミング?
WM_CREATE中のWM_ERASEBKGNDか?
759デフォルトの名無しさん:2009/02/19(木) 18:27:16
WM_CREATEはどこにあるんですか?メッセージ処理は
WM_COMMAND、WM_PAINT、WM_DESTROYしかないんですが
自分でcase:WM_ERASEBKGNDを書いてスルーさせなきゃいけないんでしょうか
760デフォルトの名無しさん:2009/02/19(木) 18:31:56
WM_ERASEBKGNDが来るのはBeginPaint呼んでる先から来る。
でもブラシ無ければこない。
wcex.hbrBackground = NULL;か
(HBRUSH)GetStockObject(NULL_BRUSH);じゃないのか?
761デフォルトの名無しさん:2009/02/19(木) 18:43:23
ほんとに止まるとは思ってませんでしたw
その書き方で止まりました。ありがとうございました!
762デフォルトの名無しさん:2009/02/19(木) 20:40:44
便乗で質問させてください。
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
これって何をやってるんでしょうか?
763722:2009/02/19(木) 21:12:25
>>725-729
ありがとうございます。まだ解決できてません。
ウィンドウをResizeした後に
Device->RSSetViewports();
Device->OMSetRenderTargets();
をやらないとスプライトが表示されなくなるので、Resizeの処理でClearState()というのを
やってたのかと思ってみてみたのですが、

Device->OMSetRenderTargets(0, NULL, NULL);
Device->CreateRenderTargetView();
RenderTargetView->Release();
SwapBuffer->ResizeBuffers();

こういうのが動いてそうなのですが、この中でClearState()やってるかどうかは
どうやればわかりますか?

プログラムの書き方としては、ウィンドウをResizeした後に
Device->RSSetViewports();
Device->OMSetRenderTargets();
をやっとけばいいというのは分かったのですが、これが必要だというのは
何を理解すればわかるでしょうか?
764デフォルトの名無しさん:2009/02/19(木) 22:00:01
>>763
やってみるしかない
765デフォルトの名無しさん:2009/02/19(木) 22:02:01
だからグローバル変数・関数の弊害だって言ってるだろ
MSが使って組んじまったんだから今更ガタガタ抜かすな
これから自分のプログラムでグローバル変数や関数を作らなければいいだけの話
766デフォルトの名無しさん:2009/02/19(木) 22:13:27
口が悪いですね
767デフォルトの名無しさん:2009/02/19(木) 22:21:01
んでもリサイズだからビューポートは変わるんじゃね?
いや、でもかえる必要ないときもあるよなぁ・・・
768デフォルトの名無しさん:2009/02/19(木) 22:21:40
>>762
まずハンドルかどうかを上位バイトで判断
ハンドルじゃなかったらCreateBrushするんだと思うよ
+1してるのは0の定義がすでにあったから
769デフォルトの名無しさん:2009/02/20(金) 18:16:33
座標関連が理解できないんですが、物体を3次元座標、たとえば(10,10,10)に置いて、
その座標が見えるようにカメラの位置を(10,10,0)から(10,10,100)を向いて設置という風に配置していくんでしょうか?
それともワールド座標っていう原点を作ってそこからの相対的な座標であらわしていくんでしょうか?
770デフォルトの名無しさん:2009/02/20(金) 18:25:47
3回読み直したけど何を聞きたいのか分からん
771デフォルトの名無しさん:2009/02/20(金) 18:39:43
お前が低能なだけだろwww
772デフォルトの名無しさん:2009/02/20(金) 18:53:20
空間上の物体の配置の概念が知りたいんです。
メモリの上限の関係から空間の中心、たとえば(INTMAX/2,INTMAX/2,INTMAX/2)を中心とするのか
基本の点があって、そこからすべての物体を相対座標で配置しているのかを知りたいんです
773デフォルトの名無しさん:2009/02/20(金) 18:56:27
物体は(0,0,0)を原点とするワールド空間に配置する
774デフォルトの名無しさん:2009/02/20(金) 19:11:59
いんとまっくすわるに?
いんとの中心なんて考えるまでもなく零ちゃうんけ?
775デフォルトの名無しさん:2009/02/20(金) 19:14:38
(1)ローカル座標→(2)ワールド座標→(3)ビュー座標→(4)射影座標→(5)スクリーン座標
でしょ。
(1)はそれぞれの3Dオブジェクトごとの座標系
(2)はそいつらをまとめて1つのシーンの中に配置したときのその座標系
(3)は(2)の中にカメラを置いて、そこが原点になるようにした座標系(視線の向きも考慮)
だから、カメラの位置とかはワールド座標では考慮しない。ワールド座標をビュー座標に
変換するときにカメラ位置を考慮する。
776デフォルトの名無しさん:2009/02/20(金) 19:17:39
>>773
thx
そうすると、ワールド座標変換っていうのがよくわからないんですが
これは空間に地面などの基本にしたい物体の中心などの座標を指定して、
そのあとに追加する個別の物体を地面の中心などを原点として、結果的に空間の相対座標になるようにするためのものなんでしょうか?
777デフォルトの名無しさん:2009/02/20(金) 19:30:14
>>775
なるほど。メモリ上の(0,0,0)を原点とする空間のことをローカル座標っていうんですね
変換行列っていうのは基準点に元の空間を持ってくるってことなんでしょうか?
たとえばワールド変換した地面をカメラで見る場合は地面をワールド座標からビュー座標に変換して、カメラを移動させるのではなく、
ローカル座標は変わらないが、ワールド変換した相対地形座標をローカル座標上でカメラのローカル座標から見える位置に移動させるってことなんでしょうか?
778デフォルトの名無しさん:2009/02/20(金) 19:31:26
>>776
ワールド座標が、世界そのもの。
ワールド座標を何かに合わせるのではなく、全てのものをワールド座標に合わせる。
779デフォルトの名無しさん:2009/02/20(金) 19:31:40
個々の物体の中心は常に(0, 0, 0)
これを、たとえば(10, 10, 10)に配置するように変換することをワールド座標変換
780デフォルトの名無しさん:2009/02/20(金) 19:41:02
>>778
まず絶対に物体は地形も含めてすべてワールド座標に変換するんですよね。
もうここはローカルから見ると相対とか考えずにまず最初がワールドと考えることにします。
でなんでビュー座標とかが存在しなくちゃいけないんですか?
これはカメラの位置を原点として見えるものの位置をまたワールドから相対で見た座標ですよね
ローカル座標のカメラの位置と方向からすべてのローカル座標の物体が見えるどうか判別して表示してくれればそれで済むんじゃないんですか?
とすると、そもそもワールド座標すらいらないことになるんですがどういうことなんでしょうか。なんでわざわざ変換してるのかがわからないです
781デフォルトの名無しさん:2009/02/20(金) 19:45:04
>>780
カメラの位置ってワールド座標上の数値やん・・・
782デフォルトの名無しさん:2009/02/20(金) 19:45:13
そうだよ。
ワールド座標変換なし(単位行列をかける)
ビュー座標変換なし(上に同じ)

総合変換行列をかける
でも出力結果は同じ。
783デフォルトの名無しさん:2009/02/20(金) 19:46:57
あーやっぱり!
これで全座標系を使いこなせそうです
ありがとうございました!
784デフォルトの名無しさん:2009/02/20(金) 19:49:15
そもそも
座標系の変換なんて
LxWxVxPとしようががLxExEx(WxVxP)としようが一緒。
ただWとかVとかPの変換をするときに、それぞれ固有のパラメータがあるから
それぞれ別に計算してるだけに過ぎない。
785デフォルトの名無しさん:2009/02/20(金) 19:51:05
ワールド座標2つ作っても別にいいしね
互いの世界は関われないけどw
786デフォルトの名無しさん:2009/02/20(金) 22:37:50
物体の回転は出来たんですが、移動がわかりません。
X = X+1;
とかで移動は出来るんですが、物体が向いている方向に移動するには
回転行列*進む距離という感じなんでしょうか?どう書けばいいんですか?
787デフォルトの名無しさん:2009/02/20(金) 22:58:07
向いている方向分のベクトルを正規化して力量を掛けて、その結果を足すだけ。
788デフォルトの名無しさん:2009/02/20(金) 23:10:06
掛けた後足さなきゃいけないのか。
ありがと
789デフォルトの名無しさん:2009/02/20(金) 23:13:39
画像を何枚か重ねて表示しようと思って
頂点を設定→ロック→メモリにコピー→ロック解除→画像読み込み→画像をポリゴンに貼り付け→描画
というやり方でやってるんですが、頂点の奥行き(Z方向)の設定にかかわらず描画した順に向こう側から描画されているようです。
エスパーの方、思い当たる原因は何でしょうか?
790デフォルトの名無しさん:2009/02/20(金) 23:45:55
Zバッファ
791デフォルトの名無しさん:2009/02/21(土) 00:04:48
>>790
Zバッファの設定1個忘れてましたサンクス
792デフォルトの名無しさん:2009/02/21(土) 02:09:26
スプライトをウィンドウの中に4個表示させたいのですが、それぞれの位置はViewportを別々に指定することで
やればいいでしょうか?
793デフォルトの名無しさん:2009/02/21(土) 02:14:15
別にそれでもできるけど座標なり行列で指定する方が後々楽
794デフォルトの名無しさん:2009/02/21(土) 02:16:43
お題。

ISO/IEC 14882:2003とXLib、Win32APIの範囲内でスクラッチからエディタを作る。
Win32、XLibともに標準C++ライブラリとかぶる機能があるが、この場合
標準C++を優先して使う。
これは、少しでも移植性を高めるための努力と考えてほしい。
また、拡張性の担保ともなりうる。

これは時間かかるけど、やりがいあるよ?
795デフォルトの名無しさん:2009/02/21(土) 02:17:21
すいません。誤爆しました。
796デフォルトの名無しさん:2009/02/21(土) 15:31:50
D3DXMatrix m;
m = m + 1; // OK
m = m + 1.0f; // NG
行列計算で、D3DXMatrixが、Floatとの足し算がコンパイルエラーになるのに、
Intとの足し算はコンパイルできてしまいます。でも、D3DXMatrixの定義を見ても、
Intとの足し算は定義されていないように見えるのですが、定義されてますか?
797デフォルトの名無しさん:2009/02/21(土) 15:58:13
1はintじゃない
798デフォルトの名無しさん:2009/02/21(土) 16:03:22
>>796
まず大文字小文字はきちんとしようね。

D3DXMATRIXにはoperator FLOAT* ();があって、
これによって暗黙のうちにFLOAT型の生ポインタに変換できる。
んで、ポインタに整数を足して、その後D3DXMATRIXのコンストラクタ
D3DXMATRIX( CONST FLOAT * );によってまた暗黙のうちにD3DXMATRIXに戻るというわけだ。
もちろん意図しない動作。 コンストラクタをexplicitにするか、operator FLOAT*();を消すしかない。

std::stringにoperator const char*();がなくて代わりにc_str()があるのはこの理由によるらしいね。
799デフォルトの名無しさん:2009/02/21(土) 16:16:12
ということは、D3DXMATRIXはD3DMATRIXを継承してて、D3DMATRIXはfloat型を16個もつ構造体だから、
D3DXMATRIXがFLOAT型の生ポインタになると、FLOAT型の配列の先頭(float[0])を指すポインタになるということですよね?
そこに+1すると、その生ポインタは先頭の次(float[1])を指すようになり、今度はそこを先頭にして
D3DXMATRIX(CONST FLOAT *)によってD3DXMATRIX型に戻るということですか?

つまり、float1個分だけ後ろにずれる、と?

800デフォルトの名無しさん:2009/02/21(土) 16:27:30
そそ、そういうこと。
801デフォルトの名無しさん:2009/02/21(土) 17:23:08
すごいス。
実験してもその通りの結果になりました。
ありがとうございました。
802デフォルトの名無しさん:2009/02/21(土) 17:54:37
POD型の継承って基底クラスにvirtualデストラクタがいらないんだっけ?
803デフォルトの名無しさん:2009/02/21(土) 19:20:11
むしろvirtualデストラクタがあったらPODじゃないんじゃね
804デフォルトの名無しさん:2009/02/21(土) 19:50:53
805デフォルトの名無しさん:2009/02/21(土) 20:06:30
スプライトを描画するときに、
sprite.TexCoord.x = 0.0f;
sprite.TexCoord.y = 0.0f;
sprite.TexSize.x = 1.0f;
sprite.TexSize.y= 1.0f;
とかやってるのですが、このfloatの数字はテクスチャーの何を表してるんですか?
TexCoordが左上の点、TexSizeがそこからの高さと幅、というのは分かってるんですが、
Pixel値じゃなくてfloat値になっててしかも、2.0fとかもありだし、よく分かりません。
806デフォルトの名無しさん:2009/02/21(土) 20:32:01
DirectXにスプライトなど存在しない。
807デフォルトの名無しさん:2009/02/21(土) 20:38:10
Tex: テクスチャ
0.0f: テクスチャの0px位置
1.0f: テクスチャのpx幅
808デフォルトの名無しさん:2009/02/21(土) 20:50:01
>>806
おまえ
いつも
いるな
809デフォルトの名無しさん:2009/02/22(日) 01:39:55
DirectX に SQLite など存在しない。
810デフォルトの名無しさん:2009/02/22(日) 02:10:54
D3DXは使うなって常識だろ
811デフォルトの名無しさん:2009/02/22(日) 02:20:10
812デフォルトの名無しさん:2009/02/22(日) 02:21:12
ヘルプにもちゃんと「スプライト」ってちゃんと書いてあるw
813デフォルトの名無しさん:2009/02/22(日) 02:33:05
D3DXって何でいかんの?
814デフォルトの名無しさん:2009/02/22(日) 02:55:31
都市伝説
815デフォルトの名無しさん:2009/02/22(日) 03:08:42
D3DXに頼らない俺かっけえええええええええ
816デフォルトの名無しさん:2009/02/22(日) 03:16:25
バイナリ依存
817デフォルトの名無しさん:2009/02/22(日) 03:29:04
バイナリ依存しない俺かっけえええええええええ
818デフォルトの名無しさん:2009/02/22(日) 08:21:20
>>811
DirectXにフォントなど存在しない
DirectXにメッシュなど存在しない
819デフォルトの名無しさん:2009/02/22(日) 08:48:56
DirectXなど存在しない
820デフォルトの名無しさん:2009/02/22(日) 09:30:27
たしかマイクロソフトが出してたはず
最新のバージョン11
821デフォルトの名無しさん:2009/02/22(日) 09:34:34
マイクロソフトなど存在しない
822デフォルトの名無しさん:2009/02/22(日) 09:48:51
きちんと固有名詞があるものに普通名詞を使う奴は、
注意力も足りなければヘルプも読まないのが特徴。
823デフォルトの名無しさん:2009/02/22(日) 09:57:06
821など存在しない
824デフォルトの名無しさん:2009/02/22(日) 10:51:28
そんな言葉遊びにこだわるなんて馬鹿なの?死ぬの?
825デフォルトの名無しさん:2009/02/22(日) 10:54:04
過去に質問した時に叩かれた私怨なのだろう。
826デフォルトの名無しさん:2009/02/22(日) 11:00:28
現場で「ID3DXMeshがどうたら」なんてしゃべってる奴いねーよ
ID3DXMesh使ってようが自前で描画してようが
メッシュはメッシュだろ
スプライトも同じ
827デフォルトの名無しさん:2009/02/22(日) 11:05:26
現場でID3DXMeshを使うような池沼はいないからそれは当然だろう
828デフォルトの名無しさん:2009/02/22(日) 11:06:08
結局は同意なんじゃないか
829デフォルトの名無しさん:2009/02/22(日) 11:27:23
同意
830デフォルトの名無しさん:2009/02/22(日) 11:31:25
このスレ、DirectX10使ったことないド素人ばかりでワロタ
終わったなw
831デフォルトの名無しさん:2009/02/22(日) 11:57:46
DirectX9で市販ゲームを作っている人間はド素人っと
832デフォルトの名無しさん:2009/02/22(日) 12:12:19
新しい技術を取り入れて好きなものを作るのは、それこそ素人の特権。
833デフォルトの名無しさん:2009/02/22(日) 12:14:29
個人がつくるヘボゲーなら8でも十分だろ
なんでわざわざ10なんか使わなきゃならんのか
VISTAマンセーなの?
834デフォルトの名無しさん:2009/02/22(日) 12:16:19
最新のDirectX使う俺かっけええええええええええ
835デフォルトの名無しさん:2009/02/22(日) 12:23:18
    ',         ./:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_ハ_,,. -┐  /      /
     ',   ___,,.へ./:::::::/\:::::::::::::__::::::::::::::::::::_;;:-‐''"     |_____    / 
     ',  「     `` ヽ、_ハ-'ァ´ ハ⌒ヽ-''"  _,,.         / /
      rソ     \__  >''`'ー---─'--<   _;:イ___    /  _,、∧/
\     く   >'"::;:- '"´ ̄`ヽ、::::-─- '"´ ̄ `ヽ、:::::::::`"'<  「  
       ノ>'"_:;ア´                    ヽ、::::::::::::<
    _,,.:::''":::::ア´ /  , '´   /     i    ',    i    Y:::::::::::::_;> 使 何
..,,_ く;::::::::::::::/  /  /   i. 、,'  ハ  ,ハ   ,i   ハ_   iヽ;__;;;:::::>   う を
    `ヽ、::::ノ  ,'  .i   ハ  i\/ ', / i  / i ,.イ´./i   !  i /   .か
_____   ,,.イ   i   i  ./ ァ'" ̄`ヽー/  | /,ァ''" ̄`ヽハ  ハ ∠_    よ
    ∧ '" /| ノ ,ハイ   i'´'`i     レ'  i'´'`i.   ト| / i  ヽ7   り
\∧/  Vi/  |_,. -‐ァi/    !__,リ          !__,リ   ' レ'_ン  i /へ
            / |   `'' ー-         -‐ ''´  i ハ'   ハ   i\/V\/
    自  何  ∠,ハ ""       `       ""〈 ,.イ ./ !    ',  ---─
    分  を   /从   /´ ̄`' ー--‐ '"´ ̄`ヽ   ハ ノ /‐ 、'    ヽ.
    を.   作   /_ ,.へ. i `'' ー- ー─-‐‐ ''" i ,.イ人iハr'   ヽ、. ヽ. ', - ..,,__
    語  る   /|  .ノヽ、r'´        ``ン'7 i ノ       ヽ. ヘ/
    れ  か  く  |/ i::::::`i>.、.,,_______,,.. イ:::::::iヽへi        Y   \
    よ  で    >  ,イ::::::::::|ヽ、.,____l_」___,.イi::::::::>-く         | ',   \
    !!!      <  |/:::::::::::|_____  |o|   __rへi_ン-‐ァ    _r'-イ> ',
836デフォルトの名無しさん:2009/02/22(日) 12:31:00
米国じゃVistaからXPのダウングレード料金の訴訟が起きてるご時勢に
DirectX10とかワロスワロス
837デフォルトの名無しさん:2009/02/22(日) 12:37:20
このスレとDirectX総合スレってなにが違うの?
838デフォルトの名無しさん:2009/02/22(日) 12:40:31
板が違う
839デフォルトの名無しさん:2009/02/22(日) 13:52:17
>>835
wwwwwwwww
どっから持ってきたそのAAw
840デフォルトの名無しさん:2009/02/22(日) 13:54:04
>>830
お前スレタイを100回声に出して読め

初心者質問スレだぞ、ここ
841デフォルトの名無しさん:2009/02/22(日) 15:17:53
>>836
でもそいつら今の状況だとWindows7が出ると同時に死滅しそうだけどね
842デフォルトの名無しさん:2009/02/22(日) 15:51:08
MSDNライブラリが開くのいちいち遅いんだけど皆どうしてる?
843デフォルトの名無しさん:2009/02/22(日) 16:01:23
1.SSDを買う
2.Windows7Betaをインストールする
844デフォルトの名無しさん:2009/02/22(日) 16:20:59
3. 索引つきで全部印刷する
845デフォルトの名無しさん:2009/02/22(日) 16:45:58
SSDにVisualStudioとMSDN入れるとマジ早いよ。
32GBのならもう一万しないから騙されたと思って買ってみるといい。
846デフォルトの名無しさん:2009/02/22(日) 18:12:11
Windows7がでたらDirectX11も出るから
結局10はいらない子
847デフォルトの名無しさん:2009/02/22(日) 19:03:26
10も11も基本は一緒。
このスレの連中は一生9で困らないようだから関係ないかw
848デフォルトの名無しさん:2009/02/22(日) 19:11:49
>>831-836は時代についていけない取り残された無能だろ
初心者=DirectX9前提に勘違いしている可哀想な奴もいるし
849デフォルトの名無しさん:2009/02/22(日) 19:12:27
7から8にいったときもそんな感じだったな
8が浸透するまえに9が出て
9はバージョンアップを繰り返してわけわからんかったなw
850デフォルトの名無しさん:2009/02/22(日) 19:29:27
9でいいならXNAやった方がよくね?
851デフォルトの名無しさん:2009/02/22(日) 19:37:53
ここには開発者はいないのか
普通はなるだけ古いバージョン使うだろ
9で出来るなら9を使えばいいし
10でしか出来ないなら10を使えばいい
取り残されるとか訳解らん
852デフォルトの名無しさん:2009/02/22(日) 19:43:56
質問者が9使ってるか10使ってるか確認して回答できそうならするだけじゃないか
今9と10どっち使うのがいいかそんなに揉めたいなら他所でやってこいよ
853デフォルトの名無しさん:2009/02/22(日) 19:44:30
初心者にDX10は辛いらしいな。 FVFとか固定機能消えたし。
854デフォルトの名無しさん:2009/02/22(日) 19:47:15
私ぐらいの初心者だとどっちにしろソース丸コピペなのであまり辛くないです
855デフォルトの名無しさん:2009/02/22(日) 19:58:43
バージョンの違いを聞き出そうとするのはやめろ
素直になれ
856デフォルトの名無しさん:2009/02/22(日) 19:59:27
.NET使ってるやつはほとんどいない
857デフォルトの名無しさん:2009/02/22(日) 21:16:48
DirectX9=時代遅れってどんだけ時代が見えてないんだよ
858デフォルトの名無しさん:2009/02/22(日) 21:23:38
9を完全に使いこなせる上で10もやるならいいだろうけど
単に最新だからというだけで10から勉強し始める初心者はどうなんだろう?
個人の趣味でやるんだったり就職は5年後です、っていうならそれもいいだろうが
859デフォルトの名無しさん:2009/02/22(日) 21:32:59
世間がセブン状態になるまでスルーでいいお
860デフォルトの名無しさん:2009/02/23(月) 01:30:55
SSE4非対応アプリでぼろ負けするので買えません><
クロック勝負のLameエンコも惨敗です^_^;
861デフォルトの名無しさん:2009/02/23(月) 02:42:26
開発ツールがVista未対応だったりすることが多いから
Vistaマシンが一台もない現場もざらにある
862デフォルトの名無しさん:2009/02/23(月) 05:54:49
馬鹿しかいないな
しかも誰でも思いつきそうなことをよくひねりもせず言えるよな
開発現場は常に最新も入れる。対応させないといけないから
863デフォルトの名無しさん:2009/02/23(月) 06:01:01
常にとか言い切るお前がどう見ても馬鹿
一瞬で反例を挙げられて論破
864デフォルトの名無しさん:2009/02/23(月) 08:54:34
Vistaに対応してないツールなんてあんのかん?
865デフォルトの名無しさん:2009/02/23(月) 09:49:01
>>862
実行環境はその通りだけどね。SDKは開発環境だからね・・・

ボリュームゾーンがそこにあるならともかく、そうでないときは
むりにさせないね、商業ソフトウェアは特に。
個別の研究くらいはやるけどな。
866デフォルトの名無しさん:2009/02/23(月) 10:16:28
基盤メーカとかに
開発マシンはVistaですって言うと
Vistaでの開発はサポートしてませんって普通に言われるぞ
867デフォルトの名無しさん:2009/02/23(月) 10:18:25
カーネルモードドライバ開発・署名取得が面倒だからだろう。
868デフォルトの名無しさん:2009/02/23(月) 10:20:02
最新の環境でも実行できることは確認するけど
常に最新の環境で開発できるとか業界に夢みすぎじゃね?
学生?
869デフォルトの名無しさん:2009/02/23(月) 11:59:51
プログラマのPCなんて常にグラフィッカーのお下がりですよ
870デフォルトの名無しさん:2009/02/23(月) 12:07:29
でも換装すれば結構使えるのが嬉しい
871デフォルトの名無しさん:2009/02/23(月) 15:30:24
>>851が正解。
勉強という意味なら最新もいじったりはするが、開発ならなるべく古い枯れたものを使う
872デフォルトの名無しさん:2009/02/23(月) 16:00:26
RM いじってくる。
873デフォルトの名無しさん:2009/02/23(月) 16:06:08
家庭用ゲームの開発だと結構ギリギリでも最新ライブラリに入れ替えちゃうような気も
874デフォルトの名無しさん:2009/02/23(月) 16:21:01
ギリギリなんてろくにデバッグもできない状態で、そんな冒険するわけないだろ
なんでそんなに頭が悪いんだ?
875デフォルトの名無しさん:2009/02/23(月) 16:21:43
DirectXのSDKならいくつも同時に入れてるだろうw
876デフォルトの名無しさん:2009/02/23(月) 16:32:58
いやギリギリってマスターアップギリギリのわけないじゃん
そんな冒険するわけないとまでわかってるのになんでそこまでのギリギリだと思うの?
877デフォルトの名無しさん:2009/02/23(月) 16:46:07
普通ギリギリっていうとマスター直前を思い浮かべる気がするけど
後半とか終盤とか言いたかったんだろうか
878デフォルトの名無しさん:2009/02/23(月) 16:57:19
DDBの二次元な左上座標(x, y)から
DIBのアドレス(32bpp)に変換する場合

dib[WIDTH * (HEIGHT -1 - y) + x]

より短い文にならない?
879デフォルトの名無しさん:2009/02/23(月) 17:01:32
単文より短いのはなかなか思いつかないなあ
880デフォルトの名無しさん:2009/02/23(月) 17:04:51
WIDTHをWに、HEIGHTをHにするとか
881デフォルトの名無しさん:2009/02/23(月) 17:06:33
dib[HEIGHT-1-y][x]
882デフォルトの名無しさん:2009/02/23(月) 18:43:02
dib[WIDTH * y + x]でいいじゃないか。
top down dibで作ればいいだけだ。
883デフォルトの名無しさん:2009/02/23(月) 18:55:36
>>880
そんなん嫌いじゃないんだぜ!
884デフォルトの名無しさん:2009/02/23(月) 20:17:23
マクロ使えばいいじゃん
ばっかみて
885デフォルトの名無しさん:2009/02/23(月) 22:00:28
ShaderResourceViewとRenderResourceViewってどう違うんですか?
RenderResouceView:パイプラインがバックバッファに書き込むときのインターフェイス
ShaderResourceView:パイプラインが画像ファイルを読み込むときのインターフェイス
という理解でいいですか?
886デフォルトの名無しさん:2009/02/24(火) 07:43:24
たぶんそう
887デフォルトの名無しさん:2009/02/24(火) 09:40:10
テクスチャを貼って
デバイス->SetRenderState(D3DRS_LIGHTING, TRUE);にするとテクスチャが真っ黒になってしまう
デバイス->SetRenderState(D3DRS_LIGHTING, FALSE);にすると普通にカラーで表示される
どこが悪いんだろう
888デフォルトの名無しさん:2009/02/24(火) 09:54:10
D3DRS_LIGHTINGをTRUEにするならちゃんとライトの設定をしないといけない。
確かデフォルトでは光源なしじゃなかったっけ。
どの関数で設定するのかとかは忘れた
889デフォルトの名無しさん:2009/02/24(火) 09:54:53
ライティングの設定
890デフォルトの名無しさん:2009/02/24(火) 09:56:35
->SetLight( 0, &light );
->LightEnable( 0, TRUE );
->SetRenderState(D3DRS_LIGHTING, TRUE );
->SetRenderState( D3DRS_AMBIENT, 0xff030303);
一応これだけはやっておいたんだがわからん・・・
891デフォルトの名無しさん:2009/02/24(火) 10:05:41
D3DX使えばDIBだのDDBだのとは無縁だろ
892デフォルトの名無しさん:2009/02/24(火) 10:16:42
>>887
どこが悪い以前に、最低限チュートリアルは全部終わらせたんだろうな?
893デフォルトの名無しさん:2009/02/24(火) 10:30:16
ウィンドウを開いて、その中の一部だけDirectXで使って、残りは普通のコントロールを表示させるためには
どうすればよいでしょうか?
894デフォルトの名無しさん:2009/02/24(火) 10:40:49
Direct3Dのクリッピングで描画範囲をしぼるって手もあるけど
ウインドウ分けするのが楽でいいよ。
メインウインドウの上にサブウインドウ作って、そこだけDirect3Dで描画
895デフォルトの名無しさん:2009/02/24(火) 13:46:01
>>890 法線
896デフォルトの名無しさん:2009/02/24(火) 19:37:40
>>878-884
このスレのレベルがわかるなw
やっぱり>>831-836こいつら10使えない言い訳しているだけだなw
11が出るのに今時9はないわw
言い訳するな低脳
一生言い訳しながら9使ってろよw
897デフォルトの名無しさん:2009/02/24(火) 19:40:26
つーか
10使ってない=移行するのが面倒or難しいじゃなくて
10じゃ現状仕事にならんってだけ
898デフォルトの名無しさん:2009/02/24(火) 19:46:00
下請け会社の万年下っ端社員には無理もないwwwwwwwwwwwww
もうみんなvistaだよ
899デフォルトの名無しさん:2009/02/24(火) 19:51:19
なぜ仕事にならないの?
900デフォルトの名無しさん:2009/02/24(火) 19:52:32
DirectX10のパラダイムシフトについていけなかった人達が市場を言い訳にして初心者を相手にしているスレ
901デフォルトの名無しさん:2009/02/24(火) 19:52:32
しかしまぁこうバッサリとDX10がVista専用となるとは思わなかったなぁ。
XPの普及率バカにならんのだしもうちょっと待てば良かったのに。
MSはそれでVista普及するとか思ったのかしら。
902デフォルトの名無しさん:2009/02/24(火) 19:55:24
しかしまぁこうバッサリとDX11が7専用となるとは思わなかったなぁ。
Vistaの普及率バカにならんのだしもうちょっと待てば良かったのに。
MSはそれで7普及するとか思ったのかしら。
903デフォルトの名無しさん:2009/02/24(火) 20:04:39
話ぶった切るけど
サンプルのMultiAnimationのアニメーションセットの圧縮をしてるところ
AddCallbackKeysAndCompress内の
ID3DXKeyframedAnimationSet::Compressの第2引数
FLOAT Lossinessってつまりなんなのか解る人いる?
ヘルプによると
Desired compression loss ratio, in the range from 0 to 1
なんだけど、結局なんだよって感じ
追加するコールバックキーの数が増えるにしたがって減らしてるような感じではあるけど
なにか根拠があってこの値なのか適当なのか
904デフォルトの名無しさん:2009/02/24(火) 21:17:52
キーを減らすならエクスポート段階でやらないと話にならない
905デフォルトの名無しさん:2009/02/24(火) 22:05:50
市場とか関係なく最新の技術使うのが偉いと思ってるのならD3D11とかケチなこと言わずに
GLでnvidiaの最新の拡張でもいじってればいいのに
906デフォルトの名無しさん:2009/02/24(火) 22:24:47
10が最新の技術とかどんだけ時代遅れなんだよ
907デフォルトの名無しさん:2009/02/24(火) 22:34:57
Vistaの普及率はまだ30%未満
908デフォルトの名無しさん:2009/02/24(火) 22:41:46
世界的にみたら20%いくかいかないかだろ
909デフォルトの名無しさん:2009/02/24(火) 22:43:21
Vista自体普及していないことに加え、PCの出荷比率は圧倒的にノートが優勢。
そしてVista発売後に出荷されたノートのビデオチップが、圧倒的割合でDirectX10に対応していない。
どうしようもない。
910デフォルトの名無しさん:2009/02/24(火) 22:45:55
ねぇねぇ、DirectXで地デジチューナーの制御プログラムとか
書いてる人いる?
911デフォルトの名無しさん:2009/02/24(火) 22:47:01
GLは拡張のつぎはぎがうざい。
912デフォルトの名無しさん:2009/02/24(火) 22:48:38
>>910
DirectShowスレにいけ
913デフォルトの名無しさん:2009/02/24(火) 22:49:59
ありがとう。
914デフォルトの名無しさん:2009/02/25(水) 02:27:33
Directx9でスキンメッシュのアニメーションを再生する最小のコードを教えたもれ
915デフォルトの名無しさん:2009/02/25(水) 06:27:13
SDKのサンプルのSkinnedMeshのコードから
自分の使わないSkinningMethodを削除したものが最小
916デフォルトの名無しさん:2009/02/25(水) 07:50:06
>>897
まあ、国内のPCゲーム市場は壊滅的だからな
917デフォルトの名無しさん:2009/02/25(水) 08:36:38
XP延長サポ突入、Vista SP2、7、2k終了、
無駄に荒れそうなイベント盛り沢山だな
918デフォルトの名無しさん:2009/02/25(水) 09:46:25
すくなくともWindows7はかなり出来がいいし、
みんなVistaはスルーしてXP->7って感じになりそうだがな。

XPじゃドライバモデル的に限界にきてるし7でDx10/11が元気になるといいが・・・。
919デフォルトの名無しさん:2009/02/25(水) 10:48:14
11は
Vistaに載る
920914:2009/02/25(水) 11:26:11
DXUT.cppその他が大杉て嫌になるよ
日本語訳とかしてるページないかな?
921デフォルトの名無しさん:2009/02/25(水) 11:28:16
そういえば
最近まるぺけがスキンメッシュのソース公開してた気がする
中身みてないからどれくらい分かりやすいか知らんけど
922デフォルトの名無しさん:2009/02/25(水) 12:16:12
市場って、最近のVista搭載ノートPCはDX10に対応してないの?
SM4.0は動くけどメッチャ遅いとかなの?
923デフォルトの名無しさん:2009/02/25(水) 15:31:25
10で使えて、9で使えない機能ってそんなに多かったっけ?
なんで対応PC減らしてまで10にしなきゃならんのかわからん
924デフォルトの名無しさん:2009/02/25(水) 16:13:52
Crysisやロストプラネットに対して
「なんで対応PC減らしてまで10にしなきゃならんのかわからん」
と言うようなものだな
要するに低脳はガタガタ文句言わずに9だけやってればよい
テクスチャ解像度やシェーダのOn/OffなどグラフィックスレベルをsettingできるのもPCゲーの常識
両バージョンに対応して当たり前
「国内のPCゲーム市場は壊滅的だから」「対応PC減らしてまで」とか甘いにもほどがある
925デフォルトの名無しさん:2009/02/25(水) 16:26:06
理想論にもほどがある
予算が倍になるならいくらでもやるがな
926デフォルトの名無しさん:2009/02/25(水) 16:33:29
>>925
要件に対して「これはできないあれもできない」とすぐ駄々こねるタイプのプログラマーだな。
口癖は「予算が倍になるならいくらでもやるがな」
927デフォルトの名無しさん:2009/02/25(水) 16:36:58
これはハイスペック厨ユーザーが混じってる流れ
928デフォルトの名無しさん:2009/02/25(水) 16:46:45
>>924
なんで「最先端技術を使うこと」が要件に入ってるゲームを例に挙げてるんだよw
それなら遠慮せずに10使うわい
929デフォルトの名無しさん:2009/02/25(水) 16:48:48
と思った時には技術の蓄積が無かったのでよそにかっさらわれる、と。
930デフォルトの名無しさん:2009/02/25(水) 16:52:09
結局「10使う必要はない」と自分に言い聞かせているだけかw
だっせーw
931デフォルトの名無しさん:2009/02/25(水) 16:55:56
初期化は面倒だけど、その他は10のほうが柔軟性があって楽だよ
932デフォルトの名無しさん:2009/02/25(水) 16:56:10
おまえら質スレで議論すんなよ
そういうスレ違いの主張はスプライト君だけで十分だ
933デフォルトの名無しさん:2009/02/25(水) 18:58:45
社長が9のexeも10のexeも両方作れって言ったときは
この馬鹿なんか言い出したよと思ったけど
実際やってみたらたいした時間かかんなかったからどうとでもなんだろ
934デフォルトの名無しさん:2009/02/25(水) 19:04:42
一人でがんばりきれなくなって、とうとう妄想を語り始めた
悲しきかな
935デフォルトの名無しさん:2009/02/25(水) 19:08:45
実際国内でPC向けでDirectX10対応ゲーム作ってる所ってどこよ?
アミューズメント業界でDirectXだとほとんど
XPEmbedded+DirectX9対応ボードがほとんどだから使いたくても使えん
セガが今度SM4.0対応基盤を出す見たいだけどね
936デフォルトの名無しさん:2009/02/25(水) 19:37:54
ざっと調べたらカプコンの一本だけしか見あたらない。
ひどい有様だ。
937デフォルトの名無しさん:2009/02/25(水) 20:31:49
ロコロコみたいなプニプニした表現ってどうやってやるんだろう・・・
938デフォルトの名無しさん:2009/02/25(水) 20:51:33
物理演算
939デフォルトの名無しさん:2009/02/25(水) 21:07:15
>>937
俺のやり方だが、輪郭は適当な数の点で多角形とする。
面積から内圧の計算をして、潰れてたら外向きの力を各点に与える。
隣接する各点の距離が初期長よりどれだけ離れているかに応じて点同士引っ張ったり離したりする。
これだけである程度いい形になる。衝突判定とかはここまでできたら自分で考えなさい。
940デフォルトの名無しさん:2009/02/25(水) 22:30:47
Intelのオンボでも4500MHDはDirectX10対応だぜ。

DirectX9は頂点シェーダーのレジスタ数が少ないからスキニングするときに
メッシュを分割しなきゃいけなくてその分Draw数が増えて無駄に重くなったりする。

テクスチャに関してもフィルタリングやブレンディングの制限がグラボ毎にあって面倒くさい。

シャドウマップのサンプリングもnVIDIAのハードウェアシャドウ相当の機能が
DirectX10では標準機能としてサポートされていたりする。

ゲーム的には同じものでもDirectX10に対応するだけで10%以上高速に動作する事が期待できる。
MRTでMSAAや独立したフォーマットが使えるのはかなり大きい。
941デフォルトの名無しさん:2009/02/25(水) 22:43:58
10がすごいことはみんな分かってんだよ
だれもそんな話してないぞっと
942デフォルトの名無しさん:2009/02/25(水) 22:48:25
>>940
オンボードでDirectX10があるのもみんな知ってるんだよ。
有る無しではなくVistaマシンとして出荷された割合の問題。
これだけ論点がずれた話をする時点で、相当頭が回らないのは分かるけどさ。
943デフォルトの名無しさん:2009/02/25(水) 23:15:43
10には10の(最新、いろいろ機能UP、再整理されてすっきり)
9には9の(最低限の機能は揃ってる、対応PCが多い、文献が多い)
良さがある。
喧嘩することじゃなかろ
944デフォルトの名無しさん:2009/02/25(水) 23:22:21
その昔Direct3Dが出始めた頃にも似たようなことはあった。
3D使わないのは馬鹿とか言う馬鹿が湧くわけだが、
3Dアクセラレーションが普通に使える今は、
みんなDirect3Dを使ってプログラムを組んでいる。
いずれ10の環境が普及したら同じようになるというだけの話。
945デフォルトの名無しさん:2009/02/25(水) 23:29:59
>>942
今のノートなら大抵がVISTA + INTELオンボorGF86000orRade3600あたりじゃね。
946デフォルトの名無しさん:2009/02/25(水) 23:32:42
モバイル用のGF8600MはSM3.0だね
947デフォルトの名無しさん:2009/02/25(水) 23:34:29
>>946
それVistaで動かせばSM4.0で認識すんぞ
948デフォルトの名無しさん:2009/02/25(水) 23:50:51
>>945
ついでにVISTAが皆に歓迎されて、
普及率が50%余裕で超えてるとかなら
こんな泥沼議論にはなってないかと

10が悪いんじゃない
VISTAがうんこたれなだけ
今から作るなら10以降だろJKって時代は
もう少し先の話

>>943でFA
おまえら初心者スレで熱くなり過ぎ
他でやれ
949デフォルトの名無しさん:2009/02/25(水) 23:51:55
まぁXファイルのサポートもあるしとりあえずはDirectX9からやっときゃいい。
DirectX11あたりでFBXがサポートされれば最高なんだけどね。
950デフォルトの名無しさん:2009/02/25(水) 23:57:09
MSに他企業の提唱するフォーマットを標準にする度量があるかどうかだな
Xファイルを世界標準にできなかった事であきらめてくれればいいんだが
なんかまた独自仕様のフォーマットを出してきそうな希ガス
951デフォルトの名無しさん:2009/02/26(木) 00:06:07
>>950
すでにXNA3.0の標準フォーマットはFBXになってんぞ
952デフォルトの名無しさん:2009/02/26(木) 09:41:27
VRML
953デフォルトの名無しさん:2009/02/26(木) 17:20:43
どこかに横スクロールアクション(洞窟物語みたいな)のソースとかないでしょうか?
954デフォルトの名無しさん:2009/02/26(木) 18:03:09
>>924
こんなことを言う奴が増えたおかげで、クソゲーが急増した。
ばか雑誌がグラフィックばかり追いかけた結果だ。
955デフォルトの名無しさん:2009/02/26(木) 18:09:09
Xファイルのアニメーションについて質問です

歩行や武器を振るアニメーションを実装する場合は
1つのXファイルにモーションをまとめて再生するの動作ごとに別のXファイルを再生するのは
どちらが一般的ですか
956デフォルトの名無しさん:2009/02/26(木) 19:00:49
普通に考えてメッシュは一つ、アニメーションが複数
957デフォルトの名無しさん:2009/02/26(木) 19:02:17
横スクロールのシューティングだって大して変わらないじゃないの
とすると縦横のスクロールなんてたいしてかわらないってことで
ゲームと一切関係ない背景のスクロールがそんなに重要か?って話になって
結局インベーダに落ち着いた感動ストーリー
958955:2009/02/26(木) 21:08:05
ということは
1つのXファイルの中に複数のアニメーションを入れて
使いたいフレームを呼び出すということですか

ありがとうございました
959デフォルトの名無しさん:2009/02/26(木) 22:10:09
質問させてください。
開発環境は「Visual C++ 2005 Express Edition」です。
http://msdn.microsoft.com/ja-jp/academic/cc998628.aspx よりサンプルソースをダウンロードし、
DirectXのSDKはhttp://msdn.microsoft.com/ja-jp/directx/aa937788.aspx の 「DirectX SDK (November 2008) 公開中 (英語)」をインストールしました。

ビルドしたんですが catch(void) の部分、Microsoft.DirectX.dll が見つからない、ともう一つのエラーが出ました。
上記2点は解決したんですが最後のひとつの

error C2664: 'Microsoft::DirectX::Direct3D::Device::Device(int,Microsoft::DirectX::Direct3D::DeviceType,
         System::IntPtr,Microsoft::DirectX::Direct3D::CreateFlags,Microsoft::DirectX::Direct3D::PresentParameters __gc * __gc[])' :
3 番目の引数を 'CApp __gc *const ' から 'System::IntPtr' に変換できません。(新しい機能 ; ヘルプを参照)
コンストラクタはソース型を持てません、またはコンストラクタのオーバーロードの解決があいまいです。
の解決方法が分かりません。

コードの抜粋です。
m_pDevice = new Direct3D::Device(0,Direct3D::DeviceType::Hardware,
                      this,
                      Direct3D::CreateFlags::SoftwareVertexProcessing,
                      pd3dpp); // Direct3DDeviceオブジェクトを生成

引数のthisの型は __gc class CApp : public System::Windows::Forms::Form です。

ご教示よろしくお願いします。
960デフォルトの名無しさん:2009/02/26(木) 23:33:59
Direct3D::PresentParameters* pd3dpps __gc[]= { pd3dpp };
m_pDevice = new Direct3D::Device(0,Direct3D::DeviceType::Hardware,
 this->Handle,
 Direct3D::CreateFlags::SoftwareVertexProcessing,
 pd3dpps); ってすれば通るけど、
Managed C++ は窓から投げ捨てた方がいいな。
961959:2009/02/27(金) 00:14:09
>>960
ありがとうございます。
該当部分のエラーは切り抜けたんですが今度は’winmm.lib’が見つからない言われました。
デフォルトではインストールされてないみたいです。
こっちのほうはもう少し調べてみますが。

>Managed C++ は窓から投げ捨てた方が
Managed C++という単語を調べたんですが
意味的には「Visual C++ 2005 Express Edition」は捨てたほうがいいということですかね?

DirectXは何も分からないので勉強にはいいかな?と思ったんですが・・・
962デフォルトの名無しさん:2009/02/27(金) 01:07:01
963デフォルトの名無しさん:2009/02/27(金) 01:29:57
ちんこ起つのかな??
964デフォルトの名無しさん:2009/02/27(金) 14:20:17
>>961
Windows SDKいれてないだろ?

今すぐVC++ 2005EEをアンインストールして2008入れ直せ
965デフォルトの名無しさん:2009/02/27(金) 16:53:09
3つの頂点から三角ポリゴンを書きましたが、これどっちが表なんですか?
法線とかいうのは表に向かう線ですよね?どこで表裏の設定するんですか?
966デフォルトの名無しさん:2009/02/27(金) 16:55:30
カメラから見て点が時計回りになるなら表。そうでないなら裏として描画される。
裏なら描画されない。

ただ、設定によっては逆回りを表とすることもできるが、あまり一般的ではないな。
両方表とすることもできる。こちらは時々使うかな。
967デフォルトの名無しさん:2009/02/27(金) 17:12:03
なるほどそういう決まりがあったんですね。
モデリングソフトの吐き出し方を調べてみますありがとう
968デフォルトの名無しさん:2009/02/27(金) 17:19:26
glは反時計回りが標準だからソフト次第だな
969デフォルトの名無しさん:2009/02/27(金) 17:23:24
シェーダの本を一通り読んだんですがほとんど理解できません
これは光と影の色の計算が膨大なためGPUにやらせるというのはわかりましたが
1点1点をfxの入力に渡してその点の色を計算させた後そのまま描画させるのが流れなんですか?
行列変換の命令とかあるんですが、データ丸ごと渡してアクションの動きの処理も全部GPUにやらせることができるんですか?
970デフォルトの名無しさん:2009/02/27(金) 18:31:55
DirectInputでゲームパッドを使えるようにしようと思ってサンプルを参考に打ってたんだが、
static LPDIRECTINPUTDEVICE8 g_lpDIJoypad = NULL;で定義して使ってみようとしたら
((*(IUnknown*)(&*pDInput))).__vfptr  CXX0017: エラーです: シンボル "pDInput" が見つかりません
と出たんだ。
一日原因調べたがさっぱりわからない、誰か助言してもらえないだろうか?;
開発環境はVS2005、DirectX SDK (November 2008) を使用してる。
971デフォルトの名無しさん:2009/02/27(金) 18:37:51
頂点シェーダが頂点単位でやる処理で
ピクセルシェーダがポリゴンの面を塗る処理だ
よし理解はバッチリだな
972デフォルトの名無しさん:2009/02/27(金) 18:54:11
>>970
動くサンプルを参考にしろよ
サンプルを参考に組んでる段階で動かないものをうごくようにするのは
経験者でもキツいときある
973デフォルトの名無しさん:2009/02/27(金) 20:01:16
DirectXのサンプルは、元ソースからビルドして動かなくても、
サンプルのexeファイルが動けば問題ないんでしょうか?
974デフォルトの名無しさん:2009/02/27(金) 20:05:13
ビルドして動いたほうがいいだろ
975959:2009/02/27(金) 20:06:12
>>964
ありがとうございます。
2005を削除して新しく「Microsoft Visual C++ 2008 Express Edition」を入れました。
>>960さんのコード変更をしてリビルドしたら通りました。(いくつか警告は出ましたが。。。)

>>960さん、>>964さん、ありがとうございました。
976デフォルトの名無しさん:2009/02/27(金) 20:23:52
>>971
ぜんぜんわかりません
移動とか全部GPUでやれるってことですか?
つかめないんですが、移動したあとの計算結果の値をまたC++に戻して相互に処理できるんですか?
977デフォルトの名無しさん:2009/02/27(金) 20:29:57
DirectXの本とか読めば描画の流れくらい書いてるだろ
まあテクスチャに出力させたりして無理やり値を得ることもできる
978デフォルトの名無しさん:2009/02/27(金) 20:39:27
>>976
移動とかじゃなくて
3D空間にあるものを2Dのスクリーンに表示するには
ビデオカメラで撮影するみたいに単に撮ればいいってわけじゃなくて
頂点の位置が2Dにしたときにどの位置に見えるかってのをいちいち計算しないといけない
計算方法自体はすでに確立されていて難しいことはないんだけど
その計算を頂点シェーダーにやらせてしまおうって話
979デフォルトの名無しさん:2009/02/27(金) 20:45:15
>>976
おいおい
だから落ち着いて考えろよ

@ローカル→Aワールド→Bカメラ→C射影→Dビューポート→Eシェーダ

で頂点と面の塗り処理はEだ
物体の移動は@とかAだろ
Eの処理をシェーダでやるんだ
移動といっても頂点の移動ならできる
ちなみに@〜Dがプログラム側(C++側?)の処理だ
計算結果をC++にもってくるのはできないだろ多分
できるような話もきいたことあるような気がするがとりあえずできないと思ってて
いーんじゃねぇの?
980デフォルトの名無しさん:2009/02/27(金) 20:47:39
計算結果持って期待ならシェーダーでとっておくしかないんじゃね
981デフォルトの名無しさん:2009/02/27(金) 20:55:25
移動ってエフェクトとかアニメーション変化するようなものに使うんですか?
相互やり取りできないとそれぐらいしかないですよね。しかも最初の状態に戻さないとどうなってるかもわからないんじゃGPUでの移動の状態で
C++側でプログラム分岐もできないですよね
GPUで処理させたデータ持ってこれるのかと思って変数登録、初期化した後は全部GPUでやるのかと思ってました
982デフォルトの名無しさん:2009/02/27(金) 20:57:57
979に突っ込みたいが、その前にそろそろ次スレの心配をしようぜ。
983デフォルトの名無しさん:2009/02/27(金) 21:00:43
よし、じゃあたててくる
ここって再利用だったんだな
984デフォルトの名無しさん:2009/02/27(金) 21:04:00
985デフォルトの名無しさん:2009/02/27(金) 21:04:38
>>981
>移動ってエフェクトとかアニメーション変化するようなものに使うんですか?
頂点の移動だよ
物体(メッシュ)の移動じゃないよ
スキニングとか
986デフォルトの名無しさん:2009/02/27(金) 21:15:48
thxだいぶ見えてきました
つまりオブジェクトの移動はどうあがいてもCPUなのでソフト処理で勉強しても損はないんですね
いや、本にハードが対応していない場合ソフトで処理することになると書いてあったので最初からハードでいいじゃんとおもったんです
まず行列から勉強します。かげとか、反射が必要になってからシェーダですね
987デフォルトの名無しさん:2009/02/27(金) 21:23:31
>>986
ばっかじゃね
そんな糞みたいな心配するよりさっさと組んでみろといいたい
こいつ触れてもいねぇのに無意味な質問しててすげーアホだな
興味ないならやめちゃえよ
988デフォルトの名無しさん:2009/02/28(土) 18:16:52
989デフォルトの名無しさん:2009/02/28(土) 21:26:03
ウメ
990デフォルトの名無しさん:2009/02/28(土) 21:35:13
Direct3DでGDIのPolygonをやる場合いい方法ありますか?
塗りつぶし方としてはWIDING指定の物と同じので構わないんですが、普通にスキャンラインごと
に左端右端を出していって、LINELISTとして描画以外に速い方法があると助かるんですが
991デフォルトの名無しさん:2009/02/28(土) 21:36:51
DIBに出力したのをそのまま使えば?
992デフォルトの名無しさん:2009/02/28(土) 21:50:34
ちょっとどう利点があるのか分からないんですが・・・あまり、詳しくないんで処理の簡単な説明お願いします。
993デフォルトの名無しさん:2009/02/28(土) 22:49:19
>>990
多角形を三角形に分割すればいい。
まず交差している辺があれば、交点で分割する。
180度以下の角に隣接する2つの頂点に線を引いてみて、多角形を構成する
他の辺と交差していなければ、そこを三角形として分割する。
これを頂点が3つになるまで繰り返すだけ。
994990:2009/03/01(日) 00:42:26
うー・・・ダメだ。いい方法が見つからない。どこかにGDIのPolygonの実装落ちてないですか?
毎フレームたくさん多角形を描くので軽い物じゃないとダメなんですが・・・
995デフォルトの名無しさん:2009/03/01(日) 00:46:34
三角形分割は十分軽い処理だが。
996デフォルトの名無しさん:2009/03/01(日) 12:32:01
そもそもDirectXの描画を理解してない悪寒
997デフォルトの名無しさん:2009/03/01(日) 13:04:26
>>995うーん、やってみます。描画以外の処理が重いので、できるだけ軽い方がいいのですが・・・
>>996流石にそれは無い。
998デフォルトの名無しさん:2009/03/01(日) 16:30:06
うめ
999デフォルトの名無しさん:2009/03/01(日) 16:42:25
1000
1000デフォルトの名無しさん:2009/03/01(日) 16:42:58
1000000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。