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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
※回答する人も、質問する人も必ず読んでください

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

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

【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。
2デフォルトの名無しさん:2007/06/21(木) 00:05:38
【関連サイト】

MSDN DirectX
http://www.microsoft.com/japan/msdn/directx/default.aspx

DirectX Home Page
http://www.microsoft.com/japan/windows/directx/default.mspx

BBX (掲示板)
ttp://isweb8.infoseek.co.jp/computer/bbx/

DXライブラリ置き場
ttp://homepage2.nifty.com/natupaji/DxLib/

Lamp:ゲーム開発とその学習をサポートするミドルウェア
ttp://lamp.sourceforge.jp/

TWINTAIL LOVERS.
ttp://www.twin-tail.jp/

Pastel's Laboratory
ttp://www.roy.hi-ho.ne.jp/pastel/home/index.html

GamDevPukiWiki - DirectX総合スレ (過去ログ等)
http://gamdev.org/w/?%5B%5BDirectX%C1%ED%B9%E7%A5%B9%A5%EC%5D%5D

GamDevPukiWiki - 3DCG製作ソフト (過去ログ等)
http://gamdev.org/w/?%5B%5B3DCG%C0%BD%BA%EE%A5%BD%A5%D5%A5%C8%5D%5D

ゲームを作るための素材を集めよう まとめサイト
http://paw.my-sv.net/index.html
3デフォルトの名無しさん:2007/06/21(木) 00:17:23
(´・ω・)乙
これはアイスラッガーで勘違いがうんたらかんたら
4デフォルトの名無しさん:2007/06/21(木) 05:31:33
カメラ中心の回転ができませんTwT
クォータニオンで試したりゲームプログラムWIKIなどで試してるのですがうまくいかないです
よければ皆さんの知識をお貸しください
5デフォルトの名無しさん:2007/06/21(木) 10:33:31
D3DXCreateTextureFromFileInMemoryEx

でテクスチャを読み込んでいるんですが、たまに読み込まれないことがあります。
常に、読み込まれない、とかならわかるんですが、再現性が低いので原因がつかめません。
テクスチャのサイズが 1024x1024と少々、大きめです。
ビデオボードは nVidia 系です。同じような症状の方、いらっしゃいますか?
6デフォルトの名無しさん:2007/06/21(木) 12:42:14
>>4
自分はクォータニオンは使ったことないが、よーするに
何らかの操作で、自分がその場でくるくる回るような回転をやりたいわけか?
だとすると、D3DXMatrixLookAtLHの引数で言うなら
カメラの位置=pEye は固定で、注目点=pAt のベクトルを
ぐるぐる回せばいいだけじゃね?

それともオブジェクトをカメラを中心として回すのか??
7デフォルトの名無しさん:2007/06/21(木) 13:41:56
DX10のサンプルどれも動かないんだけど・・・
X1300pro(非128bit地雷)
Athlon64 X2 3800+

そんなに重くなって何が変わったんだ?
8デフォルトの名無しさん:2007/06/21(木) 14:15:20
>>6
返答ありがとうございます
ようは自分目線で部屋の中などをぐるぐる見たり移動したいんです
移動だけ、または回転だけならできてるんですが
移動とカメラ軸回転を同時に出すとカメラが向いている方向とは逆の方向に動いたり等おかしなことになってしまいます

なにか定石的なカメラ移動全般処理のサイト様、または方法などありましたら
ご教授お願いいたします
9デフォルトの名無しさん:2007/06/21(木) 14:28:56
行列すらまともに理解してない状態でクォータニオンに手を出すなんて・・・
106:2007/06/21(木) 14:51:41
>>8
なるほど。だがそういう計算に定石ってのはない。
要は数学的にやりたいことを表現できるかどうか。
線形代数やベクトル幾何の勉強が全然足りてないんだと思うから本でも買ってみ。
端折って言うと、それは行列の掛ける順番がおかしい、もしくは
移動の計算がおかしいんだと思う。
カメラに与える移動のベクトルに対して、いま現在の回転量の行列を
ちゃんと掛けてる?
11デフォルトの名無しさん:2007/06/21(木) 18:25:47
>>7
ネタ?
X1xxxってDX9までだろ?
12デフォルトの名無しさん:2007/06/21(木) 18:36:49
>>10
ありがとうございます
勉強してみます
またよろしくお願いします
13デフォルトの名無しさん:2007/06/21(木) 18:53:37
>>11
VistaならDX10動くじゃん
木を表示するサンプルさえ0.11fpsなんだけどサンプル画像ではDX9と違いがわからない
何が違うのか知りたかった
14デフォルトの名無しさん:2007/06/21(木) 18:56:05
それリファレンスラスタライザで動いてるだけだろ
15デフォルトの名無しさん:2007/06/21(木) 18:58:45
>それリファレンスラスタライザで動いてるだけだろ
ソフトウェア処理でも遅すぎだろ・・・

結局DX10は何が違うの?
16デフォルトの名無しさん:2007/06/21(木) 19:13:54
次世代の土台
17デフォルトの名無しさん:2007/06/21(木) 19:14:20
refがなんなのか分かってるのか?
18デフォルトの名無しさん:2007/06/21(木) 19:21:45
>>17
GPUをソフトでエミュるんじゃないの?
DX9をソフトウェア処理にしても動くけど何が違うの?
19デフォルトの名無しさん:2007/06/21(木) 19:28:39
わかった質問変える
DX9とDX10の違いがわからない
どちらもソフトウェア処理なのだけどDX9はぬるぬる動くのに対してDX10は止まる
どちらもサンプル画像では違いがわからない
DX10劇重なわけだが何が違うのか?
20デフォルトの名無しさん:2007/06/21(木) 19:31:20
> ソフトウェア処理でも遅すぎだろ・・・
つまりこれが9と10の違いって事だろ。
21デフォルトの名無しさん:2007/06/21(木) 19:33:28
>>19
具体的にはどのサンプルで比較してる?
俺も試してみるから
22デフォルトの名無しさん:2007/06/21(木) 19:35:03
REF(リファレンスラスタライザ)ってのはその名の通り
リファレンスになるような書き方をしてる、ソフトウェアによるドライバのこと。
だから実用的な速度にするための高速化はなんもやってない。らしい。
(その代わり、シェーダーなんかもREF上で動かせるしpure device指定できる)
そのDX9のソフトウェア処理ってのは、頂点処理はソフトウェアでやる、ってことじゃね?
REFはビデオカードの機能を一切使わんよ。
DX10のそのサンプルは見たことないが、要求するシェーダバージョンを満たしてないから
(DX10のサンプルは新しいシェーダバージョンの機能を使ってるから)
REFで動作してるだけだと思われる
23デフォルトの名無しさん:2007/06/21(木) 19:56:20
>>22
>REFはビデオカードの機能を一切使わんよ。
そうなんですか・・・知りませんでした。

>>21
BasicHLSLとBasicHLSL10の違いがわかりません。
あと、Direct3D 10 Shader Model 4.0 Workshop がなぜ重くて何がすごいのかわかりません。
使用しているSDKは2007Juneです
24デフォルトの名無しさん:2007/06/21(木) 20:44:45
BasicHLSLとBasicHLSL10は3〜5倍くらいfps違います
25デフォルトの名無しさん:2007/06/21(木) 22:38:12
>>12
↑最悪のレス発見w
26デフォルトの名無しさん:2007/06/21(木) 23:59:23
質問です。

現在、VC++EE,platformSDK,directxSDK(oct2005) で使っていますが、
スタティックリンクできるdec2004に切り替えようと思っています。
この場合、oct2005をアンインストールしてdec2004を入れなおし、
VC++のパスを設定しなおすだけで問題ないでしょうか?
OSから入れなおした方が安全でしょうか?
27デフォルトの名無しさん:2007/06/22(金) 00:01:16
>>26
問題ない
28デフォルトの名無しさん:2007/06/22(金) 00:11:18
>>26
OSは入れなおす必要は無い
2926:2007/06/22(金) 00:32:06
>>27>>28

ありがとうございます。
バージョン落として使うことってあまりないと思っていたので、安心しましたm(_)m
30デフォルトの名無しさん:2007/06/22(金) 01:37:52
DX10やりたいなら現状だとG8x買うしかないよ。
リファレンスラスタライザは死ぬほど遅いから。
31デフォルトの名無しさん:2007/06/22(金) 18:38:03
遊びでDX10触るならもう少し待ったほうがいいってことですかね
32デフォルトの名無しさん:2007/06/22(金) 18:49:24
REFは遊ぶためのものじゃないんだからREFしか使えない環境で遊ぼうと思うのがおかしい
33デフォルトの名無しさん:2007/06/22(金) 18:52:21
G8xとか使ってて、あれ?おかしいなぁ、って思ったらREFでドライバーがバグってないか確認した方がいい程度がREFの役目。

34デフォルトの名無しさん:2007/06/22(金) 20:03:34
超初心者で申し訳ないのですが質問です。
今、ヴァーチャルPC2004をインストールして、ゲームを動かしたいのですが、
実際のPC上のグラボは使えないみたいなんですが、なにか方法はないでしょうか?
ゲーム起動だけがエラーがでてしないんです><
ホルダー共有とかのタグはあるんですが・・・
すみませんがよろしくお願いします
35デフォルトの名無しさん:2007/06/22(金) 20:10:06
>>34
プログラム作成と何の関わりがあるのか明確に述べよ。
36デフォルトの名無しさん:2007/06/22(金) 20:12:02
ちなみにいま確認したところ
VM Additions S3 Trio32/64 というアダプターが入っているそうです・・・
8MBしかない><
37デフォルトの名無しさん:2007/06/22(金) 20:19:34
とりあえずコンパイルしてデバッグできるのか?
38デフォルトの名無しさん:2007/06/23(土) 00:14:51
リソースからの読み込みについて質問です。
D3DXLoadMeshHierarchyFromX を使ってリソースからアニメーションメッシュを読み込むには

FindResource()、LoadResource()、LockResource() を使ってファイルポインタを渡せばいいのでしょうか?
(D3DXLoadMeshHierarchyFromResource という関数が無いようなので)

ためしに、D3DXLoadMeshFromX を使って上記方法でファイルポインタを渡してもうまくいきませんでした。
HANDLE hTest;
LPBYTE lpTest;
hTest = LoadResource(NULL, FindResource(NULL, "XFILE01", "XFILE"));
lpTest = (LPTSTR)LockResource(hTest);

このlpTestをD3DXLoadMeshFromX の第1引数に渡したのですが、何か間違えてますでしょうか?
D3DXLoadMeshFromResource を使えばうまく表示できたのですが・・・。

39デフォルトの名無しさん:2007/06/23(土) 00:34:51
>>34
方法はない。VPC2004はDirectX HAL関係は動作しない仕様
40デフォルトの名無しさん:2007/06/23(土) 00:49:04
>>38
D3DXLoadMeshHierarchyFromXInMemoryを使ってみたらどうだい?
41デフォルトの名無しさん:2007/06/23(土) 00:55:08
>>39
ありがとです><
42デフォルトの名無しさん:2007/06/23(土) 01:11:38
>>39
DirectDrawはきっちり動作するだろ。
DirectXのHALが動かないわけではない。
特定のコンポーネントとDirectX自体を混同するなこの馬鹿。
43デフォルトの名無しさん:2007/06/23(土) 07:11:49
VMWareなら、設定変えれば動くんだっけ?
44デフォルトの名無しさん:2007/06/23(土) 20:35:03
2007 JuneいれてDebugに切り替えたら_ftol2_sseが大量発生
dxdiagでさえ出るんだけどお前らも出る?
The procedure entry point _ftol2_sse could not be located in the dynamic linked library msvcrt.dll
45デフォルトの名無しさん:2007/06/23(土) 20:37:13
環境はXP
46デフォルトの名無しさん:2007/06/23(土) 21:01:17
>>44
ちょっと検索したら海外のフォーラムでも報告されてるね
Vista+VS2005 でも発生するらしい

原因はワカンネ;;
47デフォルトの名無しさん:2007/06/24(日) 03:50:52
DIJOYSTATE構造体メンバのlZ(z軸)やlRz(z軸回転)の押下判定は
lX(x軸)やlY(y軸)と同じように使えますか?
調べてみた所、32767を基準にしたような値になるんですが・・・。
DIRECTINPUT_VERSIONは0x700です。(バージョンの問題でしょうか?)
48デフォルトの名無しさん:2007/06/24(日) 04:38:13
>>44
実はVistaだと起きないとか?
ひょっとするとコンパイルする時にコンパイルレベルにVista以上と設定してしまっているのかもね。
Releaseだと大丈夫だから気づかなかったとか。多分コンパイル環境が変わっているんじゃないかな?
49デフォルトの名無しさん:2007/06/24(日) 05:06:40
>>48
Vistaで起きるかはわからない
2007 June付属のDXCapsViewer.exeでも出る(Microsoftがコンパイルしたもの)
5047:2007/06/24(日) 05:47:22
DIPROPRANGE構造体の内容を変えたらうまくいきました。
51デフォルトの名無しさん:2007/06/24(日) 10:33:20
>>49
やっぱVistaに付いて来るmsvcrt.dllだと_ftol2_sseを持っているみたいだな。
何らかの理由でコンパイル時に対象OSをVista以上に設定してしまっているんじゃないかな?
52デフォルトの名無しさん:2007/06/24(日) 11:54:55
コンパイルしたら

------ ビルド開始: プロジェクト: saiki, 構成: Debug Win32 ------
コンパイルしています...
WinMain.cpp
.\WinMain.cpp(5) : fatal error C1083: include ファイルを開けません。'windows.h': No such file or directory
kooh2.cpp

ってエラーが出たんだが、どう解決すればよいの?
53デフォルトの名無しさん:2007/06/24(日) 11:57:40
ファイルを用意する。
パスを通す。
54デフォルトの名無しさん:2007/06/24(日) 12:29:58
>>53
具体的にどうやればよいのでしょうか?
55デフォルトの名無しさん:2007/06/24(日) 12:34:57
>>54
DirectXの管轄外

これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。

テンプレ通りここじゃスレ違い。
56デフォルトの名無しさん:2007/06/24(日) 12:37:46
>>54
そんな質問をするぐらいのレベルならC++を勉強し直さないと・・
57デフォルトの名無しさん:2007/06/24(日) 12:40:48
>>saikikooh
具体的には、Googleを使います。
具体的には、スレ違いに気付け。


58デフォルトの名無しさん:2007/06/24(日) 12:42:39
了解しました。出直してきます。
59デフォルトの名無しさん:2007/06/24(日) 12:50:01
別に出直さなくても、それにふさわしいスレなりで質問すれば
ちゃんとした答えが返ってくると思うけど
60デフォルトの名無しさん:2007/06/24(日) 14:00:27
>>51
どういうこと?
SDKのユーティリティを全部コンパイルし直せばいい?
Directx使うアプリ全部っぽいんだけどソースないものはどうすれば・・・
61デフォルトの名無しさん:2007/06/24(日) 21:08:47
yahooでググレよ・・・
62デフォルトの名無しさん:2007/06/24(日) 22:04:25
VBランタイムしか無い
弱った・・・
63デフォルトの名無しさん:2007/06/24(日) 23:17:32
>>51
Vistaからぶっこ抜いたけど64bit板しかないから意味ないじゃん
64デフォルトの名無しさん:2007/06/25(月) 20:20:46
C++でゲームを作ろうと思ったんだけど

基本のグラフィッククラスを作って(一部抜粋)
class CGraphics {
// Direct3Dインタフェース、デバイス
LPDIRECT3D9 D3D;
LPDIRECT3DDEVICE9 Device;
}


そのクラスの派生でデバッグ用プリミティブを表示する
class Prim : public CGraphics {
void Draw_Line(D3DXVECTOR3 p1,D3DXVECTOR3 p2);
void Draw_Box(D3DXVECTOR3 p1,D3DXVECTOR3 p2);
};

みたいなクラスを作ったんだけど、一個しか作られないCGraphicsのD3DとかDeveiceって、Primクラスで持ってくるにはどうすればいいんだろう?
CGraphicsを作った時のクラスポインタをPrimクラス初期化時に引数で渡した方がいいのかなあ?
65デフォルトの名無しさん:2007/06/25(月) 20:25:27
デザインパターンか何か勉強すれ
66デフォルトの名無しさん:2007/06/25(月) 20:42:47
singletonパターンでいいんじゃね
67デフォルトの名無しさん:2007/06/25(月) 20:44:06
>>64
派生の使い方を完全に間違えてる。

だからそういうわけの分からない疑問が出てくる。
PrimはCGraphicsから派生すべきクラスではない。

DirectXなんかより前にまずはオブジェクト指向の基礎を勉強しないと、
そういう問題が次々に出てきて手に負えなくなるよ
68デフォルトの名無しさん:2007/06/25(月) 20:46:37
意味の分からない派生すると後でキツイよな
PrimがCGraphicsを持つのが自然な希ガス
69デフォルトの名無しさん:2007/06/25(月) 21:48:53
あれか、竿から糸が出ているのか、糸に竿が付いているかという考え方の違いか。
70デフォルトの名無しさん:2007/06/25(月) 21:49:32
>>64
デバイス類をカプセル化してDraw類もCGraphicsのメソッドでいいんでない
7164:2007/06/25(月) 23:33:40
あーやっぱり間違えてるかぁ
dクス。

C++実際に使った事ないからよくわかってないんだよねw

勘違いしてたんだけど、
クラスの継承って変数を引き継ぐ様な使い方しないよね。

PrimクラスはCGraphicsに入れるか、派生なしのクラスとして作ってデバイスのポインタを渡した方がよさそうだね

それかシングルd(だっけ?)でCGraphicsを作ってそのポインタを持ってきた方がいいのかなぁ
72デフォルトの名無しさん:2007/06/25(月) 23:37:48
うぜぇ
どっかいけ
73デフォルトの名無しさん:2007/06/26(火) 00:06:38
問題はDirectXでなくC++の基礎知識の不足だと言ってるのに、
なぜこのスレで再度ごたごた言うかねえ

そういうチラ裏はC++初心者スレでやれよ
74デフォルトの名無しさん:2007/06/26(火) 19:04:08
DX10ってDX9から移行する価値あるかな?あんまり変わらないならDX11までスキップと思うのだが。
75デフォルトの名無しさん:2007/06/26(火) 19:08:50
DX11???
76デフォルトの名無しさん:2007/06/26(火) 19:45:35
>>74
あまり変わらないのであればDX10が出来ればDX11になっても何の問題もなくね?
77デフォルトの名無しさん:2007/06/26(火) 19:55:22
512*512のbmpを読み込、その中にいる32*32のキャラクターを2倍に拡大して表示しました。
そうしたらキャラクターがぼけてしまいました。
g_pD3DDevice->SetTextureStageState(0, D3DTSS_MAGFILTER, D3DTEXF_POINT);
g_pD3DDevice->SetTextureStageState(0, D3DTSS_MINFILTER, D3DTEXF_POINT);
の様にしてみましたがそれでもぼけています。
くっきり表示させるにはどうしたらいいでしょうか。
DirectX8を使っています。
78デフォルトの名無しさん:2007/06/26(火) 21:39:29
>>77
ポリゴンの頂点座標を2倍になるように引き伸ばすだけかと
79デフォルトの名無しさん:2007/06/26(火) 22:33:49
>>78
はあ??質問ちゃんと読んでんの??
80デフォルトの名無しさん:2007/06/26(火) 22:49:34
拡大と引き伸ばしは違う
81デフォルトの名無しさん:2007/06/26(火) 22:58:11
ミップマップ効いてね?

pDevice->SetTextureStageState( 0, D3DTSS_MIPFILTER, D3DTEXF_POINT );

とか・・・そんなわけねぇかw
もう考え得るフィルタ全部探してPOINTにしてみれw
82デフォルトの名無しさん:2007/06/26(火) 23:03:48
>>81
うん?
>>77は拡大表示してんだろ?ミップマップ関係なくね?
83デフォルトの名無しさん:2007/06/26(火) 23:08:35
>>82
何をもって「拡大」って言ってるかわかんねぇじゃん
初心者スレだしよ

単にスケールを2.0にして2倍とか言ってる気がしないでもないし
ここはレスどおりとらないでみた
84デフォルトの名無しさん:2007/06/26(火) 23:15:11
そんなことより俺はキャラクターがさりげなく擬人化されていることに地味にフイタ。すまん

>512*512のbmpを読み込、その中にいる32*32のキャラクターを2倍に拡大して表示しました。
>そうしたらキャラクターがぼけてしまいました。
85デフォルトの名無しさん:2007/06/26(火) 23:25:11
m_p3DDevice->SetRenderState ( D3DRENDERSTATE_TEXTUREMAG, D3DFILTER_LINEAR );
m_p3DDevice->SetRenderState ( D3DRENDERSTATE_TEXTUREMIN, D3DFILTER_LINEAR );

m_p3DDevice->SetRenderState ( D3DRENDERSTATE_TEXTUREMAG, D3DFILTER_NEAREST );
m_p3DDevice->SetRenderState ( D3DRENDERSTATE_TEXTUREMIN, D3DFILTER_NEAREST );

レンダリングステータスに設定があった時代ってなかったっけ?
86デフォルトの名無しさん:2007/06/26(火) 23:35:38
>>85
>>77はDX8って言ってるが、それDX8じゃなくね?
見た瞬間やたらなつい気分に襲われたんだが
87デフォルトの名無しさん:2007/06/27(水) 00:21:57
>>86
DirectX7だっけ?>>85は・・・
SetSamplerState
がDirectX9だっけ?
もう色々あって覚えてねーなw

SetRenderStateとSetTextureStageStateと両方設定する必要が
あったのは俺の勘違いかな?w
88デフォルトの名無しさん:2007/06/27(水) 00:44:18
あ、俺、DirectX8のヘルプ持ってるじゃんw
DirectX8でのやり方は>>77の方法で正しいな
89デフォルトの名無しさん:2007/06/27(水) 00:54:04
BBXで色々探してきた

まずこれ↓どうよ?あんま関係ない?
>もしかして、D3DXPrepareDeviceForSpriteを使ってませんか?
>これを使うと強制的にリニアフィルタリングかかかります。

じゃあ、次、これ↓
http://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi?log=21&vew=31
ずばりじゃね?
なんか難しいことになってんなぁw

つまりボケるのは0.5ずれてるのが問題らしいぜw
三角形ラスタ化ルールの都合なんかのぅ・・・w
90デフォルトの名無しさん:2007/06/27(水) 01:23:43
プログラム、プログラマー系の板って自分の知ってる事を「みんな知っていて当然」みたいに話す人多いよね。

プログラマーがコミュニケーション能力低いと言われるわけだ

91デフォルトの名無しさん:2007/06/27(水) 01:26:32
>>90
最近、そんなレスねーじゃん
92デフォルトの名無しさん:2007/06/27(水) 01:38:37
>>89
これだね。

テクセルとピクセル間の直接マッピング
http://msdn.microsoft.com/library/ja/DirectX9_c/directx/graphics/programmingguide/fixedfunction/textures/coordinates/mappingtexelstopixels.asp

NyaRuRu氏の書き込みでDX8のヘルプがリンク切れになってるけど、たぶんそれと同じ内容。
93デフォルトの名無しさん:2007/06/27(水) 01:49:23
>>89
いわゆる「0.5ずれ」がボケの原因となるのは、
ピクセル:テクセル=1:1で、かつニアレストネイバー(POINT)フィルタ以外の
フィルタを使ってるときだけだよ。
テクスチャマッピングの基本を抑えていれば簡単にイメージできるはず。

>>77は、「2倍に拡大」って言ってるし(質問者が拡大率の定義を間違えている可能性もあるが)、
さらにD3DTEXF_POINTを使っているとも言ってるから、
恐らくボケの原因はモニタの調子がおかしいとか眼鏡の度が合ってないとか別のところにあると思う。
94デフォルトの名無しさん:2007/06/27(水) 02:01:11
>>92
最近の英語版ヘルプはちょっと絵がきれいになってる。
http://msdn2.microsoft.com/en-us/library/bb219690.aspx

ちなみに、アライメント補正用の-0.5は、ある意味理にかなっているんだけど
あまりにも人々を混乱させすぎたのかD3D10では廃止されちゃった。
コード移植時に注意だね。

>>77
今回はさらに拡大も入っているので、もう1ひねり必要だね。
-0.5は2倍されるべきか否かだけど、
基本は目標とするドットの整数座標から-0.5なので、
そのこところお間違いなきよう。

あと、32*32ってテクスチャに隙間なくぴったり敷き詰めちゃってる?
拡大とか回転で、フィルタの関係で外側の色が滲み込むっていう
これまたFAQがあるので注意。
34*34の領域を確保して、外側1ピクセルはエッジの色を広げておいた方がいいよ。
95デフォルトの名無しさん:2007/06/27(水) 02:09:54
>>94
なぜ34*34にする必要がある?
33x33で十分だし普通そうする。
96デフォルトの名無しさん:2007/06/27(水) 02:12:32
>>95は.>>94を誤読してた。すまん
97デフォルトの名無しさん:2007/06/27(水) 02:21:13
ああもちろん、ポイントフィルタと共に生き共に死すような人なら
心おきなくぴっちり敷き詰めちゃってください。

後でポイントフィルタ以外を使いたくなったときには
ちゃんと思い出して欲しいけど。
98デフォルトの名無しさん:2007/06/27(水) 02:33:37
>>94
D3D10ではどの部分が廃止になったの?
99デフォルトの名無しさん:2007/06/27(水) 02:40:08
>>98
-0.5引いていた部分。
今度からは引かなくて正解になる。

http://msdn2.microsoft.com/en-us/library/bb219721.aspx#What_are_the_texel_alignment_rules_How_do_I_get_a_onetoone_mapping
>Note that in Direct3D 10, this rule no longer holds.
100デフォルトの名無しさん:2007/06/27(水) 02:43:13
>>99
-0.5「引く」だと意味的に逆になっちゃうか。

正しくは、いままで0.5引いていたコードなら、
今度からは引かないのが正解になった、みたいな。
101デフォルトの名無しさん:2007/06/27(水) 02:45:52
>>97
ああ、さらに誤解を・・・

>>95で言いたかったのは、ポイントフィルタを使うってことではなく、
マージンは2pxでなく1pxで十分だろってこと。

つまり、フォントをテクスチャとして使う場合にように、
マージンの部分にチップの周辺色ではなく背景色(主に透明)を置いておく使い方のことを
言ってると勘違いしていたってことです。
102デフォルトの名無しさん:2007/06/27(水) 02:48:48
ぐわ、>>101は日本語がかなりバグってた・・・すまん
103デフォルトの名無しさん:2007/06/27(水) 07:15:18
縁取り付のポリゴンを表示するにはどうすればよいでしょうか?
容量節約のためテクスチャは使いたくありません
104デフォルトの名無しさん:2007/06/27(水) 09:38:14
トゥーンレンダリングか
105デフォルトの名無しさん:2007/06/27(水) 11:42:36
トゥーンじゃなくて、ポリゴンの上からワイヤフレーム描画したいってことなんとちゃう?
106デフォルトの名無しさん:2007/06/27(水) 11:49:09
ポリゴンとワイヤーフレームを切り替えて二回描けばいいだけ。
107デフォルトの名無しさん:2007/06/27(水) 13:55:59
>>100
0.5引いていたコードが要らなくなるという事は、どっち側の挙動が変わったの?
多分、テクセル側はそのままだろうから、ラスタライザー側が変わったのかな?
10877:2007/06/27(水) 18:34:55
みなさんいろいろとレスありがとうございます。
拡大というのはID3DXSprite::Drawの第3引数を(2.0, 2.0)としています。
>>83から察するに、ひょっとして何かとんでもない勘違いをしているのでしょうか。
109デフォルトの名無しさん:2007/06/27(水) 18:51:04
>>108
ちょwww

おま、D3DXSpriteかよwwwww
それは一番先に言わないとらめええええ

DX8のD3DXSpriteって、いくらこっち側でポイントフィルタを設定しても、
ステート系は全て内部で上書きされるから意味ないのでは?
(もちろん描画終わったらステートは戻してくれるけど)
110デフォルトの名無しさん:2007/06/27(水) 18:51:15
DX8を使っている時点でとんでもない勘違い。
このスプライトは糞重くなかったっけ。
一生DX8をやるなら別に構わないけど、ただでさえDX9の更新箇所が多いのに飛ばしてDX10以降をやるのは大変だぜ?
111デフォルトの名無しさん:2007/06/27(水) 18:53:30
DX8+スプライトの組み合わせはDX9でTL頂点描画の5〜10倍ぐらい重いんだっけか
DSの時代にGBのプログラム組んでいるみたいだな
112デフォルトの名無しさん:2007/06/28(木) 02:06:15
>>100
じゃあ逆にDX9でバーテックスから0.5引いてたコードをそのままDX10に移植すると、今度はおかしくなるって事か?面倒だな。。。
113デフォルトの名無しさん:2007/06/28(木) 05:46:36
0.5テクセルを
114デフォルトの名無しさん:2007/06/28(木) 15:07:59
>>113
を?
115デフォルトの名無しさん:2007/06/28(木) 16:01:40
食う
116デフォルトの名無しさん:2007/06/28(木) 16:57:12
と?
117デフォルトの名無しさん:2007/06/28(木) 16:57:58
ボケる
11877:2007/06/28(木) 17:00:41
やはりとんでもない勘違い野郎だったんですね。
今まではDirectX9で組んでいたのですが、
8の方が対応しているハードが多いのかなと思い今回は8で組んでいます。
とりあえず描画はこのままにして、完成したら描画部分だけ変更してみようかと思います。
本当にご親切にありがとうございました。
119デフォルトの名無しさん:2007/06/28(木) 17:04:50
>>118
で、ボケの問題にはどう対処したの?解決したってこと?見送るってこと?

これだけ多くの人間が回答くれてんのに、
何も関係ない自分の予定だけ書き込んどきながら
問題についての報告は何も無し、ってのはあんまりだと思うぞ。
12077:2007/06/28(木) 21:57:18
>>119
ボケは見送ることにしました。
Spriteでは簡単にボケ防止はできないというのが自分の結論です。
121デフォルトの名無しさん:2007/06/28(木) 22:03:00
>>120
ボケに限った話じゃないが、D3DXのスプライトは基本的に汎用性が強烈に低い。
さらに、>>110-111も言ってるかDX8の頃のスプライトは半端なく重かった。

DX9になって、フラグが多数追加されるなどして汎用性や重さの問題は改善されてきてはいるけれど、
やはりスプライトくらいはまずは自分で実装してみることをオスメすスる。
122デフォルトの名無しさん:2007/06/28(木) 22:13:02
>>118
はぁ?
たかが、0.5足すのがそんなに苦痛か?
やってもみないで面倒臭そうな気がするだけだろお前
結局、よくわからねぇ描画部分を触るのが嫌なだけだろ

「できない」ならまだわかる
「面倒臭い」は救いようがない
123デフォルトの名無しさん:2007/06/28(木) 22:17:15
>>121
言わばスーパーで売ってる惣菜みたいなものだからな。
誰でも利用できるけど価格は高めだし、ほぼそのまま利用するしかない。
やっぱ材料があれば売っているような惣菜だけでなく自分で思い通りの物が作れるようにならないとな。
まぁ、スプライトはせいぜいゆで卵か。
>>77はゆで卵を使って卵かけ悟飯を作ろうとしている状態。
その行く末が>>120
124デフォルトの名無しさん:2007/06/28(木) 22:18:14
>>122
>>120によると、0.5がどーのこーのではなくて、
2倍表示で強制的にバイリニアがかかっちゃうからボケる、って話でしょ

でDX8のD3DXSpriteだとバイリニアをOFFにできないっていう
125デフォルトの名無しさん:2007/06/28(木) 22:54:01
普通に板ポリに描けよもう
126デフォルトの名無しさん:2007/06/28(木) 22:58:38
>>124-125←なに?こいつら?
127デフォルトの名無しさん:2007/06/28(木) 23:06:17
>>122
ん?何かおかしなこと言ったか?
128デフォルトの名無しさん:2007/06/28(木) 23:26:48
メッシュのアニメーションを勉強しているのですが、
ID3DXAllocateHierarchyクラスの使用方法がいまいちよく分からないのですが。
階層構造を割り当てる・・・という名前のようですが
このインターフェイスは一体何をするクラスなんでしょうか?

あと、このインターフェイスはどうやって作ればいいのでしょうか?
Xファイルを読み込むときにD3DXLoadMeshHierarchyFromXに渡さないといけないのですが、
NULLにするとエラーになってしまいます
129デフォルトの名無しさん:2007/06/28(木) 23:32:21
すいませんクラスとインターフェイスの意味の違いが分かってなくて
変かもしれないですけど無視してください
130デフォルトの名無しさん:2007/06/28(木) 23:33:16
とりあえずSDKにはサンプルというものがあってだな
131デフォルトの名無しさん:2007/06/29(金) 14:50:50
ああ、ドモホルンリンクルですね
知ってます
とりあえず申し込んできます
132デフォルトの名無しさん:2007/06/29(金) 17:43:25
サンプルは私には効果がなかったので返品しました
もうちょっと簡単で分かりやすいサンプルだと助かります
133デフォルトの名無しさん:2007/06/29(金) 20:21:07
参考に買った本についてきたサンプルをコンパイルしたらリンクエラー
LNK2019: 未解決の外部シンボル _DirectInput8Create@20 が関数 "long __cdecl InitDinput(struct HWND__ *)" (?InitDinput@@YAJPAUHWND__@@@Z) で参照されました。
とでました。
サンプルをそのままコンパイルしようとしているのでプログラム自体に間違いがあるとは思えないんですが、libファイルの設定とかが間違っているんでしょうか?
コンパイラは.NET2003です。
134デフォルトの名無しさん:2007/06/29(金) 20:26:54
何の本かも分からんし、環境ですら分からんから回答するの難しくね?
135デフォルトの名無しさん:2007/06/29(金) 20:36:13
>>134
「はじめての3Dゲーム開発」という本で、DirectInputでテクスチャを移動させるプログラムです。
136デフォルトの名無しさん:2007/06/29(金) 21:15:17
自己解決しました
137デフォルトの名無しさん:2007/06/29(金) 21:18:02
最近の厨房はなぜ、どう解決したのか書かないかねえ・・・
138デフォルトの名無しさん:2007/06/29(金) 21:33:29
>>137
教えてほしいならそう言えばいいんじゃないでしょうか?人のこと厨房呼ばわりしてるあなたのほうこそ厨房です。
139デフォルトの名無しさん:2007/06/29(金) 21:44:38
>>138
お前の>>133の質問を見て、回答してあげようと資料を調べたり
手元の環境で問題を再現するために時間を割いてくれた回答者のことをお前は考えないのか?

正直いうと、俺もその一人だ。
たまたま件の書籍を持ってたから、実際に再現してみようとあれこれ実験してた矢先に
「自己解決しました」 〜糸冬〜
だ。

自己解決にしろ何にしろ解決したらその過程を書く。
ここに関わらず、質問する者としての最低限のマナーだ。
140デフォルトの名無しさん:2007/06/29(金) 21:47:15
同じような質問が出たとき過去の解決方法が分かるだけでも回答しやすいんだけどな。
初心者に過去ログ全て漁れというよりも、スレの経過を知っている人がコピペなりしたほうが早いしね。
141デフォルトの名無しさん:2007/06/29(金) 21:50:37
>>139
教えてクンに、こっちが費やした時間のことを考えれなんて長々といっても無駄

答える人間のことを考えない者こそが教えてクン
142デフォルトの名無しさん:2007/06/29(金) 22:13:23
>>141
自己解決しますた
143デフォルトの名無しさん:2007/06/29(金) 22:18:35
初心者を煽るためにわざと"自己解決"をまにうけてこそ2ちゃんねらー
144デフォルトの名無しさん:2007/06/29(金) 22:20:46
よし真に受けてやるぜ自己解決かかってきな
145デフォルトの名無しさん:2007/06/29(金) 22:25:56
自己解決しません(´;ω;`)
146デフォルトの名無しさん:2007/06/29(金) 23:23:20
自己解凍しますたw w w ww www w w
147デフォルトの名無しさん:2007/06/29(金) 23:36:13
自己中の多いスレですね
148デフォルトの名無しさん:2007/06/29(金) 23:39:51
今ごろ気付いたのか
149デフォルトの名無しさん:2007/06/29(金) 23:51:11
>>147
お前がそうでないというならその証拠を見せてみろ
150デフォルトの名無しさん:2007/06/29(金) 23:55:28
質問があります!
151デフォルトの名無しさん:2007/06/30(土) 00:07:57
>>150
お先失礼します。
DirectInputを使ってます。
プログラムの起動時に初期化してるんですが、ゲームパッドを
プログラムの起動後(初期化後)に接続した場合も検出して入力を受け付けるには、
どのようにすればいいでしょうか?
152デフォルトの名無しさん:2007/06/30(土) 00:11:29
PnPに対応してれば
後は一定時間毎にポーリングして調べればいいのかな?
153名無し募集中。。。:2007/06/30(土) 01:13:22
自己解決しました><
154デフォルトの名無しさん:2007/06/30(土) 01:25:18
だれやねん
155デフォルトの名無しさん:2007/06/30(土) 01:44:35
DirectX8であったレンダーステート、D3DRS_ZBIAS がなくなっちゃったんだけど代わりになるものないかなあ?
D3DRS_ZBIASで優先度とか設定してたから、同じ様な事したくて
156デフォルトの名無しさん:2007/06/30(土) 02:10:45
ちゃんとありました
自己解決しました
157デフォルトの名無しさん:2007/06/30(土) 03:21:21
>>156
誰だおまえ?
158デフォルトの名無しさん:2007/06/30(土) 03:35:29
>>138です。
159名無し募集中。。。:2007/06/30(土) 03:38:36
>>155
D3DRS_DEPTHBIASとかじゃ駄目なのん?
160デフォルトの名無しさん:2007/06/30(土) 04:44:59
スーパーの惣菜が高いと思って自分で野菜や調味料を買って作ってみると
一人暮らしでは食べきれない量が出来てしまい、結局惣菜を買った方が安くつくことに気づく
161デフォルトの名無しさん:2007/06/30(土) 04:53:29
そうでもないよ
162デフォルトの名無しさん:2007/06/30(土) 05:16:18
>>159
だれやねん
163デフォルトの名無しさん:2007/06/30(土) 05:57:06
>>160
全部DirectXのヘルプに載ってる
164デフォルトの名無しさん:2007/06/30(土) 17:09:52
DirectShowを用いたAVIファイルの再生方法について教えてください。

ゲームでオープニングムービーを流すためにDirectShowを利用しています。
今、ゲームウインドウ上でムービーを流すために、IVideoWindowインタフェースを用いて、
ゲームのメインウインドウの子ウインドウを作成し、そこにAVIファイルを再生しています。
そしてAVIファイルの終わりまで再生するためにWaitForCompletionを使用しています。

この方法ですと、ムービー再生中にウインドウの移動や、×ボタンによるゲームの終了が
できません。

オープニングムービー再生中もウインドウを移動させたり、ゲームを終了させたりしたい
のですが、どうしたらよいでしょうか?

165デフォルトの名無しさん:2007/06/30(土) 17:47:36
ぎあ・・・片方
間違えました
って言っておけ
マルチは嫌われるぞ
166デフォルトの名無しさん:2007/06/30(土) 18:02:32
165様 質問の内容はちがいますよ
167デフォルトの名無しさん:2007/06/30(土) 18:22:36
>>165
             / ̄ ̄^ヽ   /::.__  .:::::::::::::  __   ヽ_
             l       l / /  ヽ_ヽv /: / ヽ   ヽ
       _ /,--、l       ノ /   ̄ ̄ √___丶 ̄ ̄    |
   ,--、_ノ:: `ー'::   、ミー---‐,,l |      // tーーー|ヽ       |
  ,/   :::         i ̄ ̄  | |      ..: |    |ヽ       |
/          l:::    l:::    l  |       | |⊂ニヽ| |      |
l   .   l     !::    |:::    l  |     | |  |:::T::::| !       |
|   l   l     |::    l:      l \:     ト--^^^^^┤    丿
|   l .   }    l:::::,r-----    l  \::      ̄ ̄^ヽ    丿
ヽ  :l::::   ト:;;;;;;;/-/__...........  /        __o
                              | 二|二゛  ___
                             ノ   |  ヤ
168デフォルトの名無しさん:2007/06/30(土) 18:26:22
同じ奴じゃね?
169デフォルトの名無しさん:2007/06/30(土) 18:28:47
ふつうにマルチだなw
違う質問つーかなんか誤魔化した感ムンムンだしよw
170デフォルトの名無しさん:2007/06/30(土) 19:01:17
>>164
DirectShowスレに池。
171デフォルトの名無しさん:2007/06/30(土) 19:06:23
マルチがなぜ嫌われるのかよく考えてみろ。
172デフォルトの名無しさん:2007/06/30(土) 19:54:12
>>171

【マルチ】
某人気エロゲキャラの名前を真似た教えてクン固定ハンドル
質問と回答を1人で行う

はわわー
なでなで
XXですぅ〜

とか言って正直ウザイ
173デフォルトの名無しさん:2007/06/30(土) 23:56:34
>>172
マルチポストも知らんのか。半年ロムれ
174デフォルトの名無しさん:2007/07/01(日) 01:03:07
古い(DirectX7の)ヘルプって手に入らないでしょうか?
DirectInputCreateExの戻り値が知りたいのですが、DirectInput8Createと同じですか?
175デフォルトの名無しさん:2007/07/01(日) 01:16:53
手に入りますよ
以上
176デフォルトの名無しさん:2007/07/01(日) 01:56:38
>>174
DirectInputCreateEx DirectX7
のキーワードでググるとそれっぽいのがでてくるぞ

初心者スレなのでいっておくが、昔の保守でもやってんのか?
そうでなけりゃDirectXはバージョンについていく形で
組み換えていけない環境であるなら使わないほうがいいぞ

業務系アプリ作ってて後悔したことある
177デフォルトの名無しさん:2007/07/01(日) 05:15:02
>>163
吹いたw

>>164
自分もDirectShow使うときは苦労したのでヒント教えちゃる。
IMediaEventEx使え。
そういう同期モノは大抵ウインドウメッセージで非同期にできるようになっとる
178デフォルトの名無しさん:2007/07/01(日) 11:11:35
>>174
DirectInputCreateEx
DirectInputCreateEx 関数は、IDirectInput、IDirectInput2、または IDirectInput7 COM インターフェイスをサポートする DirectInput オブジェクトを作成する。

戻り値
成功すれば DI_OK を返す。

失敗すれば次のエラー値のいずれかを返す。

DIERR_BETADIRECTINPUTVERSION
DIERR_INVALIDPARAM
DIERR_OLDDIRECTINPUTVERSION
DIERR_OUTOFMEMORY



google DirectX7の日本語ヘルプ
179デフォルトの名無しさん:2007/07/01(日) 22:48:45
DirectMusicを使ってMIDIファイルをCH(楽器パート)毎に再生をオンオフしたいのですが方法が分かりません。
最近DirectMusicを勉強し始めて、ファイルの再生や停止までは何とか理解できたのですが
それ以上の情報はググってもまともに見つからずお手上げ状態です。

DirectMusicに詳しいサイトや書籍があればあわせて教えていただければ助かります。

どなたか宜しくお願いします。
180デフォルトの名無しさん:2007/07/01(日) 23:07:39
これで本当に見つからなかったのなら、探す気がないだけ
http://www.google.co.jp/search?source=ig&hl=ja&q=DirectMusic%E3%80%80&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
181デフォルトの名無しさん:2007/07/01(日) 23:16:52
>>179
てか、お前マジかw
googleに突っ込みもしないでこんなところきて恥ずかしくないのか?
道でチンコ丸出しで歩いてるのと同じぐらい恥ずかしいことだぞ
182デフォルトの名無しさん:2007/07/01(日) 23:22:30
ググってもまともに見つからずじゃなくて
理解する頭がないんだろ?もう諦めたら
183179:2007/07/01(日) 23:44:49
180のURLは何故か開けないのですが、DirectMusicでグーグル検索しただけですよね?
だとしたら当然私もその辺のページは見ましたので、どうやら私の理解力不足ようです。

ありがとうございます。
もう一度勉強しなおしてみることにします。
184デフォルトの名無しさん:2007/07/02(月) 00:25:19
そういう逃げ方されると納得いかないんだけど
185デフォルトの名無しさん:2007/07/02(月) 00:44:32
てかID表示してほしいな。
186デフォルトの名無しさん:2007/07/02(月) 00:48:56
そりゃ逃げるわよね
187179:2007/07/02(月) 01:27:31
「僕は逃げません!あなたが好きだから!!僕は逃げません!」
188デフォルトの名無しさん:2007/07/02(月) 01:58:01
>>184
最近、同じような逃げ方をする質問者を
異様に多く目撃するのは気のせいかな
しかも似たようなスレに集中している気が・・・・

期末テスト?作品提出?とか分からんけどそういうのの時期なんだろうか
189デフォルトの名無しさん:2007/07/02(月) 02:39:14
>>180
昔いろいろいじった俺がいってやる
お前は間違っている

DMで179のことをするにはBandオブジェクト操作か自作Grpahでフィルタをかける方法しかないが
この2つのクラス名でMSのリファレンス以外にサイトがひっかからないということは
説明しているサイトなどは存在しない
190デフォルトの名無しさん:2007/07/02(月) 08:24:08
>>189
自分でMIDIファイルを読み込んで、IDirectMusicBufferに逐次セットしていく。
再生したくないデータは出力しなければいいだけ。
説明しているサイトは思いっきり引っかかる。

お前がやり方を勘違いして無いと思いこんでいるだけ。
191デフォルトの名無しさん:2007/07/02(月) 09:59:31
177様 ありがとうございました。IMediaEventExを利用したところ上手くいきました。
192デフォルトの名無しさん:2007/07/02(月) 11:56:40
>>190
それやったらパフォーマンスクラス関係の機能何もつかえなくなるじゃん
リアルタイム制御いろいろするデータ、機能あるってのに
DM使って出力する価値あんまり無くね?

というかその方法完全に忘れてたわ。すまん
193デフォルトの名無しさん:2007/07/02(月) 21:10:23
DirectMusicさんは近々引退する予定なんじゃなかったっけ
194デフォルトの名無しさん:2007/07/02(月) 23:33:14
XAudio2はいつ実装されるのですか?
195デフォルトの名無しさん:2007/07/02(月) 23:35:51
全く持って未定
196デフォルトの名無しさん:2007/07/03(火) 22:37:32
D3DXMatrixTransformation2Dの引数の
3番目のFLOAT ScalingRotationにどんな値を入れれば正常に動くのかがわかりません。
MSDNにも載ってませんでした。
分かる方いらっしゃいますか?
197196:2007/07/03(火) 22:44:01
すみません、言葉足らずでした。
スプライトの反転を実行したいのですが、スプライトの縮尺をいじると
D3DXMatrixTransformation2Dの3番目の引数を変更しなければならないようで。
-1とかインクリさせてみたりしましたがイマイチ分かりません。

以上、お願いします。
198デフォルトの名無しさん:2007/07/04(水) 00:02:40
┌――――――――――――――――――――┐ 
|D3DXMatrixTransformation2D           |
└――――――――――――――――――――┘
  ┌――――――┐
  | Google 検索. |
  └――――――┘
199デフォルトの名無しさん:2007/07/04(水) 01:54:45
>>196
そこには角度を指定できるけど、変な平行四辺形になるだけだから
使わなくていいわよ。
200デフォルトの名無しさん:2007/07/04(水) 06:29:49
>>196
シアー変形させないなら、大人しく0.0を入れとけ。
201196:2007/07/04(水) 21:41:02
>>199-200
回答ありがとうございます。
また何度か試してみましたが、無理でしたのでポリゴン使ってみます。

SpriteのDrawの引数が変わってからめんどくなりましたな。
202デフォルトの名無しさん:2007/07/04(水) 22:31:52
DirectXのスプライト自体初心者向けのだからね。
1から教えるならスプライト描画なんて使わさせんが。
203デフォルトの名無しさん:2007/07/05(木) 19:26:13
スプライトはゲーム用途で使うもんじゃねーな
204デフォルトの名無しさん:2007/07/05(木) 21:24:26
初心者用のDirectXの解説書がスプライトを使っているケースが多い。
別に意図的に使っているなら問題ないが、勉強するため本に沿ってやってるとスプライトから技術が進歩しなくなる。
DirectXを始める前に数学を学んで3Dの概念を理解してから、3D(ポリゴンの描画)→3D上での2Dの描画と進めるべきだよな。
本によってはゲームのアルゴリズムが載ってたりするけど、今ここで読者に伝えなきゃいけないのかと問いかけたい。
205デフォルトの名無しさん:2007/07/05(木) 21:32:10
今まさにID3DXSprite使わないで2D描画しようとしてます。射影マトリックスを
D3DXMatrixOrthoOffCenterLH(&m_proj, 0, vp.Width, vp.Height, 0, 0.0f, 1.0f);
として今の所うまくいってますが、この関数の意味はあまり理解していません。
座標変換済み頂点を使うより楽な気がするんですが、デメリットありますか?
206デフォルトの名無しさん:2007/07/05(木) 21:52:47
2D描画ならTL頂点使えよ。
スクリーン座標を指定するだけ(あと頂点カラーとかUV値はご自由に)だから、わざわざ変換行列を使う必要ないし。
207やっくん:2007/07/05(木) 21:52:58
学校の課題を家でしようと思ったのですが、DirectDrawの設定がうまくいきません!!
ディレクトリの所で「c:\mssdk\include」「c:\mssdk\lib」をちゃんと入れたのに、なぜかDirectDrawSurfaceが使えないのです(泣)
誰でもいいので、アドバイスをくださいお願いします!!
208デフォルトの名無しさん:2007/07/05(木) 21:59:25
>>207
開発環境とエラーコード
209デフォルトの名無しさん:2007/07/05(木) 22:13:31
>>206
アニメーションする時は座標を直接書き換えorポリゴンを作り直しでしょうか?
210デフォルトの名無しさん:2007/07/05(木) 22:15:54
UVでアニメーションじゃないの
211デフォルトの名無しさん:2007/07/05(木) 22:37:29
>>210
ありがとうございました
212デフォルトの名無しさん:2007/07/05(木) 22:43:00
>>207
そのフォルダに目的のものは入っているのか?
213デフォルトの名無しさん:2007/07/05(木) 23:06:14
合成なし
SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE,integer(false));

通常合成
SetRenderState(D3DRENDERSTATE_SRCBLEND,integer(D3DBLEND_SRCALPHA));
SetRenderState(D3DRENDERSTATE_DESTBLEND,integer(D3DBLEND_INVSRCALPHA));

加算合成
SetRenderState(D3DRENDERSTATE_SRCBLEND,integer(D3DBLEND_ONE));
SetRenderState(D3DRENDERSTATE_DESTBLEND,integer(D3DBLEND_ONE));

減算合成
SetRenderState(D3DRENDERSTATE_SRCBLEND,integer(D3DBLEND_ZERO));
SetRenderState(D3DRENDERSTATE_DESTBLEND,integer(D3DBLEND_INVSRCCOLOR));

乗算合成
SetRenderState(D3DRENDERSTATE_SRCBLEND, integer(D3DBLEND_DESTCOLOR));
SetRenderState(D3DRENDERSTATE_DESTBLEND, integer(D3DBLEND_ZERO));

//モノクロでしか調べてませんが合成すると加算合成+減算合成の効果が
SetRenderState(D3DRENDERSTATE_SRCBLEND,integer(D3DBLEND_INVDESTCOLOR));
SetRenderState(D3DRENDERSTATE_DESTBLEND,integer(D3DBLEND_ONE));

//反転
SetRenderState(D3DRENDERSTATE_SRCBLEND, integer(D3DBLEND_INVDESTCOLOR));
SetRenderState(D3DRENDERSTATE_DESTBLEND, integer(D3DBLEND_ZERO));
214デフォルトの名無しさん:2007/07/05(木) 23:27:14
>>213
なんか変じゃね?
それと実際使うには全部アルファでブレンド率調節できないと面倒じゃん
215デフォルトの名無しさん:2007/07/05(木) 23:28:38
>>213
なんだよ・・・通常って・・・w
加重平均っていうんだ
216デフォルトの名無しさん:2007/07/05(木) 23:51:13
自作ライブラリのサンプルプログラムでしか使わないので
実用には興味がありません。

217デフォルトの名無しさん:2007/07/06(金) 00:21:58
>>216
だったらなおさら加算ブレンドは客寄せになるからマスターしておけ
218デフォルトの名無しさん:2007/07/06(金) 01:40:46
>>213
減算合成がおかしい。
減算は1パスではSRCBLENDとDESTBLENDだけでは設定不可能。
BLENDOPで減算合成が可能になる。
(BLENDOP無しだと3パスで可能)
219デフォルトの名無しさん:2007/07/06(金) 21:29:38
Microsoft Visual C++ 6.0を使っていて、エラーコードが

error C2065: 'LPDIRECTDRAWSURFACE7' : 定義されていない識別子です。

で、ディレクトリのインクルードに「c:\mssdk\include」ライブラリに「c:\mssdk\lib」を入れたのですが、DirectDrawが使えません・・・・・・(泣)
初心者な質問ですいません。でも、どうしても課題を家でやりたくて、お願いします教えてください。
220デフォルトの名無しさん:2007/07/06(金) 21:42:02
>>219
リストの一番上に入れた?
221デフォルトの名無しさん:2007/07/06(金) 21:47:54
DirectX7かよw
222デフォルトの名無しさん:2007/07/06(金) 21:50:57
>>220

はい、入れました。学校では普通にできたんですけど、何度やってもエラーが出るばかりで・・・・・・(泣)
何かコンピューターに至らない所でもあるのでしょうか?

223デフォルトの名無しさん:2007/07/06(金) 21:54:51
一番上に入れても駄目なら分からんな。
一番下に入れるとVC6ではデフォのライブラリ(DX3かな?)が
先に検索にヒットしてしまうから、駄目だったりするが。
224デフォルトの名無しさん:2007/07/06(金) 21:56:53
>>223
お答えありがとうございます。
一つ質問なんですが、実はVC6は海賊版でそれは関係あるのでしょうか?
225デフォルトの名無しさん:2007/07/06(金) 21:59:36
SDKが入っていなかったりして
226デフォルトの名無しさん:2007/07/06(金) 22:05:09
>>224
そういう事をここで書くなよ・・・

ていうかVC++2005落としてくれば
227デフォルトの名無しさん:2007/07/06(金) 23:44:36
学生ってこんなのばっかりか。折角学生証があるならアカデミック版買えよ
228デフォルトの名無しさん:2007/07/07(土) 04:00:54
>>224
とんでもねえカミングアウトだなオイ
229デフォルトの名無しさん:2007/07/07(土) 06:24:24
>>224
師ね泥棒
230デフォルトの名無しさん:2007/07/07(土) 07:26:10
>>224
DirectX7を無料でやりたかったら、Migwでも入れろ、ボケ。
231デフォルトの名無しさん:2007/07/07(土) 13:12:55
>>224
とりあえず、通報はしといたから。
232デフォルトの名無しさん:2007/07/07(土) 13:45:03
>>224
諸々の事情でVC6を使わざるを得ない、ってのなら理解できるが、
諸々の事情で海賊版、ってのはどう弁明したところで違法以外何者でもないぞ
233デフォルトの名無しさん:2007/07/07(土) 18:25:15
DirectX Texture Tool でDDSファイルを作りたいのですがうまくいきません。
白黒のhoge_a.jpgを同ディレクトリに作ってhoge.jpgをオープンしてるのですが、
アルファチャンネルを読み込みません。
画像を変えても同じでした。
どこがおかしいのでしょうか?
234デフォルトの名無しさん:2007/07/07(土) 19:51:48
憶測ですまんが、JPEG形式が駄目なんじゃね。
PNGかBMPで試したらどだろ。
235デフォルトの名無しさん:2007/07/07(土) 20:13:24
>>234
bmpでいけました、ありがとう。
236デフォルトの名無しさん:2007/07/08(日) 03:25:42
Expressっていう無料版じゃだめなん?
237デフォルトの名無しさん:2007/07/08(日) 12:43:20
アンカくらい付けれ
238デフォルトの名無しさん:2007/07/09(月) 19:26:27
DirectShowの質問もここでいいですか?
239デフォルトの名無しさん:2007/07/09(月) 19:37:53
悪くはないが、同じム版に専用スレがあって
詳しい住人が多いから、そっちの方がいい。

まあみんな似たようなスレ巡回してんだけどね
240デフォルトの名無しさん:2007/07/10(火) 17:22:09
横170×縦250の
テクスチャー読み込んで、スプライトで表示したら、
勝手に255×255にされたんだけど、これは仕様なのかな?
241デフォルトの名無しさん:2007/07/10(火) 17:42:19
仕様でつ 170*250→256*256
242デフォルトの名無しさん:2007/07/10(火) 18:43:12
DirectX8の時は自由なサイズ使えたんだけどなあ。
グラボとかによるのかな
243デフォルトの名無しさん:2007/07/10(火) 19:53:59
DX8から今でもスプライトなんか使い続けるなよな。
なんで重くて汎用性の無いものを何年も使うのか分からん。
244デフォルトの名無しさん:2007/07/10(火) 20:44:10
そもそもDirectXにスプライトなど無い。
245デフォルトの名無しさん:2007/07/10(火) 20:51:00
あるにはあるけど着飾ったものだからね。
だから重いし汎用性も薄い。
246デフォルトの名無しさん:2007/07/10(火) 21:10:37
だから無いって。
247デフォルトの名無しさん:2007/07/10(火) 21:10:51
スプライトで十分な用途ならわざわざポリゴン使うより生産性高くていいじゃん
248デフォルトの名無しさん:2007/07/10(火) 21:17:07
ポリゴンに最適化されてるGPUにそりゃないべ

つうか板ポリの方が汎用性たかくね
249デフォルトの名無しさん:2007/07/10(火) 21:18:43
無いものをどうやって使うつもりなんだ?
250デフォルトの名無しさん:2007/07/10(火) 21:23:25
JPEGファイルで抜き色(透明にする色)を指定したいのですが、上手くできません。

現在、D3DXCreateTextureFromFileExを用いています。
BITMAPファイルなら上手くできるのですが・・・

どうしたらJPEGで抜き色を指定できますか?教えてください。
251デフォルトの名無しさん:2007/07/10(火) 21:53:41
マスクを作るとか、jpgなら思い切ってddsにするとか
252デフォルトの名無しさん:2007/07/10(火) 22:11:14
そういう用途にjpegは向いていない。
というわけで、jpegについて調べてみると勉強になると思う。

"jpeg ノイズ" とかで調べてみると情報が引っかかるだろう。
253デフォルトの名無しさん:2007/07/10(火) 23:25:46
でも別にしたい奴向けにできるようにしておいてもよさそうなもんだけどな
てか、むしろjpegだけ弾くとか器用だよなw
まあ、できるようにしておくとQ&Aで聞いてくる奴がいることを予想できるからあえて切ってるんだろうな

まあ、jpegなんかマスクにしたら結果はあきらかだがな
254デフォルトの名無しさん:2007/07/11(水) 00:04:50
>>250
テクスチャをロックして自分で該当部分のα値をセットすれば良いだけ。
悩む所など微塵もない。
255デフォルトの名無しさん:2007/07/11(水) 00:09:30
SDKのテクスチャツールで頑張ってるとみた
256デフォルトの名無しさん:2007/07/11(水) 06:17:12
このスレでスプライトっつったらD3DXのSpriteのことだべ。
誰も、厳密なスプライトアーキテクチャを指してなんてしゃべってないでしょ。
257デフォルトの名無しさん:2007/07/11(水) 09:30:50
D3DXのスプライト関数あるの知ってるくせに、自分の知識をひけらかしたいのか、したり顔で
          ____   
       / \  /\ キリッ
.     / (ー)  (ー)\      
    /   ⌒(__人__)⌒ \    <DirectXにスプライトはない!
    |      |r┬-|    |     
     \     `ー'´   /     
    ノ            \
  /´               ヽ              
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.    
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))


          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)
| / / /     |r┬-|    | (⌒)/ / / //   だっておwwwwwwwwwwwwwwwww
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー'´      ヽ /    / 


プログラマーってこういう空気読めない奴多いよなあ・・・
258デフォルトの名無しさん:2007/07/11(水) 09:45:47
>>244>>257も十分言いたい事は分かるから・・・
お互い空気読みつつ穏やかにいこうよぜ
259デフォルトの名無しさん:2007/07/11(水) 09:47:13
間投助詞ダブった、スマソ
260デフォルトの名無しさん:2007/07/11(水) 09:57:01
>>258
でも、マイクロソフト自らスプライトっていう表現使ってるのに、わざわざ
「スプライトじゃない!!」って言う奴は馬鹿じゃん

しかも、質問に答えるわけでもなく聞いてもいない事を偉そうに言ってさ

ま、俺もD3DXのスプライト機能は使ってないけど
261デフォルトの名無しさん:2007/07/11(水) 10:37:04
そもそもID3DXSpriteをスプライトとか言っちゃうから、
スプライトとポリゴンを比較する>>247みたいな馬鹿が出てくるんだよ。
262デフォルトの名無しさん:2007/07/11(水) 11:21:01
>>247 だって別に間違えた事言ってないでしょ

スプライト関数用意されてて、それを使ってすぐ表示出来るんだから生産性は高いでしょ
インフォメーション程度に2D表示するだけなら、スピードなんて遅くたっていいし。

2DゲーでID3DXSprite使うのはどうかと思うけど、ID3DXSpriteをスプライトと言うのは間違いではないよ

昔のゲーム機についてた所謂”スプライト”なんて、過去の遺物なんだから2Dとして表示する物を”スプライト”と言ってもなんの問題もないじゃん

どうして、どーでもいい細かい事にこだわる奴が多いのかなあ・・・
こだわってるというよりは、知ってるくせに認めたくないと言うか・・
263デフォルトの名無しさん:2007/07/11(水) 11:35:36
ポリゴンを使うID3DXSpriteとポリゴンを比較している時点で大間違いなんだよ。
そうやって間違いを認めずに繰り返すから、それを見た初心者が勘違いをして意味不明な質問をすることになる。
264デフォルトの名無しさん:2007/07/11(水) 20:46:00
もしかするとID3DXSpriteの中身がDrawPrimitiveだということを
分かってない奴がいるのかもしれん。
265デフォルトの名無しさん:2007/07/11(水) 22:47:09
D3DXってソース公開されてんの?
266デフォルトの名無しさん:2007/07/11(水) 22:59:01
ねえよ
267デフォルトの名無しさん:2007/07/12(木) 02:58:17
ソースが公開されていなくてもPIX使えば必要な情報は十分わかるからなぁ。
頂点バッファ作成時の設定や更新頻度、DrawIndexedPrimitiveを呼ぶときのレンダーステート等。

「高レベル描画APIで十分ならわざわざプリミティブ描画APIを使うより生産性高くていいじゃん」
なら別に異論はないけど、元々スプライトってハードウェアのプリミティブ機能だっただけに、
「スプライトで十分な用途ならわざわざポリゴン使うより生産性高くていいじゃん」には違和感がある。

てか実際にDirect3DにはPoint Spriteって名のハードウェアスプライトが存在するし。
やっぱ誤解招きやすいと思うよ。
268デフォルトの名無しさん:2007/07/12(木) 06:33:52
まあ、荒れるの承知で書くけど、PointSpriteはポリだぜ。
現在、ハードウェアスプライトを実装するメリットは無いし。
DirectXにはポリしかない。名前だけスプライト。

ただ、そんな事は100も承知で
このスレでスプライト=DirectXの機能 or 自前の板ポリ
の事なのは自明。
イチイチ「スプライトじゃない」とか言う意味は無い。
269デフォルトの名無しさん:2007/07/12(木) 07:00:16
>>268
同意。
いちいちハードウェアスプライトの話をもってくる奴ウザスギ
いくらなんでも空気読め無いにもほどがある
270デフォルトの名無しさん:2007/07/12(木) 08:29:32
間違っていることは明白なのに、素直に認められないのがプログラマのプライド。
271デフォルトの名無しさん:2007/07/12(木) 12:58:13
>>268
>DirectXにはポリしかない。名前だけスプライト。

そういう意味で言ってるんじゃなくて、
「ポリゴンかスプライトか」という表現は、
プリミティブタイプにどっちを使うべきかみたいな議論でもありうるんだけど、
とにかく情報が欠落しまくりのネット上の議論だと
「スプライトってD3DXとプリミティブタイプのどっちのこと言ってる?」
と聞き直す羽目になることが多いという話。
・点 + (ポイントスプライト)
・線分
・三角形
のどれよ? と。まあ線分はありえんけど。
別に聞き直されるのがうざくなければD3DXのをスプライトと呼ぶのを止めはせんよ。

てか、ポイントスプライトって帯域圧縮効果はそこそこあると思うだけどな。
デモ用のパーティクルシステムとか結構ポイントスプライト使ってない?
あれをハードウェアスプライトと呼びたくないなら別に構わんが。
272デフォルトの名無しさん:2007/07/12(木) 16:07:48
ここで
「DirectXのはスプライトじゃない」って言い張ってる馬鹿は、スプライトを狭義の意味で捉えてるだけなんだよね。
よーするに「ハードウェア機能としてのスプライトしかスプライト」しか認めないって言ってるだけ。

そもそも、スプライトって”表示画面のイメージパターン”っていう意味だから、DirectXでの表示もスプライトって言って構わない
古くさい考え方しか出来ない奴はファミコンとかX68000のゲームでも作ってろww
273デフォルトの名無しさん:2007/07/12(木) 16:33:58
誤解される表現をわざわざ意地になって使う奴って、何が楽しくてやってるんだろう?
274デフォルトの名無しさん:2007/07/12(木) 16:37:51
いちいちスプライトという言葉に反応するやつは
FM-TOWNSで「これはスプライトぢゃないっ!!!」とか言ってたやつだな
275デフォルトの名無しさん:2007/07/12(木) 16:45:59
どうせ「スプライトっていうなー」言ってもみんな言うんだし、
ならD3DXのはスプライトでいいじゃんと思うんだけど、
>>268のみたいに「ポイントスプライトはハードウェアスプライトじゃない」は違和感ある。
ドライバレベルで定義されてるんだしハードウェアでいいんじゃね?
何でそこだけやたら狭い定義を採用するんだと。
276デフォルトの名無しさん:2007/07/12(木) 16:48:34
>>273
だからさ・・・どう誤解するの?

今、ハードウェア機能のスプライト使っての開発なんてないだろ。板ポリかバッファにイメージデータの転送だろ。
2Dをスプライトって言って誰が困るのよ?

くだらないこだわりしてる奴はただの老害
277デフォルトの名無しさん:2007/07/12(木) 16:54:07
もう全部スプライトってことでいいよ。
DrawPrimitive使った板ポリ描画もスプライト。
BitBlt使った矩形転送もスプライト。
これで満足だろ?
278デフォルトの名無しさん:2007/07/12(木) 17:08:46
>>275
そういやD3D10からポイントスプライト廃止だっけ。
まあGeometry Shaderでエミュレートできるからこその廃止とはいえ
パフォーマンス大丈夫なんかいな。
279デフォルトの名無しさん:2007/07/12(木) 17:17:00
アルファテストもシェーダで書けるからという理由でD3D10から廃止だしなぁ。
リセット感がすげえ。

【消えたもの】
・固定機能頂点処理
・アルファテスト
・ユーザークリッププレーン
・フォグ
・シェーダモードのGouraudとFlat
・D3DFILL_POINT
・TLVERTEX描画
280デフォルトの名無しさん:2007/07/12(木) 17:29:56
>>277
背景と別レイヤーに見せかければソフトウエアスプライトと呼べるが、
単純に描画するだけではスプライトとは呼べない。
よって大間違い。
281デフォルトの名無しさん:2007/07/12(木) 17:35:24
初心者が関数とかインタフェイスをカタカナで書いて、
訳の分からない内容の質問をしているのを見かけるが、
結局こうやって勝手なカタカナ表記を使う奴がいるから真似をするんだろうな。

普通にインタフェイスの名前をそのまま書けばいいだけで、綴りに自信がなければ確認すれば済むのに。
282デフォルトの名無しさん:2007/07/12(木) 17:54:33
>>280
あーBitBltでD3D9のStretchRectみたいなのを連想したんだな。

すまんね。
DirectDraw(+カラーキー)とかGDIのマスク描画みたいなのを想像してた。
当時もスプライト論争あったから。

GDIのBitBltでソフトウエアスプライトを実現する方法とか
もはや古代技術になりつつあるけど。

でもこいつらも多分君の定義だとソフトウエアスプライトに入るはずなんで
広い心で入れてやってくれ。
283デフォルトの名無しさん:2007/07/12(木) 19:40:36
おまえらスプライトの定義はよそでやれよ
284デフォルトの名無しさん:2007/07/12(木) 20:36:16
初心者が落とし穴にはまって騒いで本当うるさくて
うざくてたまらないのがスプライトとカラーキーだ。


285デフォルトの名無しさん:2007/07/12(木) 20:45:14
カラーキーはDirectX以前の問題な気もするが。
いくら初心者スレでもC(C++)をある程度理解してたら途中に画像描画も通ってそうだけどな。
286デフォルトの名無しさん:2007/07/12(木) 21:52:30
質問失礼します。

ビルド時に
error C3861: 'D3DX_SKIP_DDS_MIP_LEVELS': 識別子が見つかりませんでした
と言われ、ビルドが通りません。

D3DX_SKIP_DDS_MIP_LEVELS の定義場所が知りたいです。
分かる方いらっしゃいますでしょうか?

XP SP2
VS2005
DirectX 2007 April
です。
よろしくお願いします。
287デフォルトの名無しさん:2007/07/13(金) 01:21:28
>>274
なつかしいw
288デフォルトの名無しさん:2007/07/13(金) 01:41:06
質問失礼します。

新たに社内用開発ツールを作成したく、
そのツールにて高速な2Dの描画(アニメーション)を行いたいのですが、
現在まで使用していたAPI関数では表示が追いつかない可能性がある為
新たに高速に描画を行える物を学びたいを思っております。

現行の開発環境がVS2005

ツールを配布したいPCは
OS:XP(SP2)
.NexFramework2.0インストール済み

なのですが、DirectX10はVista専用
2D描画は9.0以降WindowsSDKに引っ越したとのこと
どれを学ぶのが賢いのか分かりかねています。

できるなら容易に関連書籍が購入できるとありがたいのですが
学ぶのに何が好ましいかどなたか教えていただけませんでしょうか。
言語はB,C/C++ができますがWindows上にてのプログラム経験は浅い為、
勉強する覚悟はできています。

宜しくお願い致します。
289デフォルトの名無しさん:2007/07/13(金) 02:05:00
2Dのあぬめーひょんって具体的にどんなーん?
単純にスプライトを大量に表示する必要があるってんなら兎も角、
ピクセルをゴリゴリ弄るような処理ではDirect3Dはなんの力にもなれないよー。
290デフォルトの名無しさん:2007/07/13(金) 02:48:35
抜き色無しのアニメーションならGDIでも十分高速。
291デフォルトの名無しさん:2007/07/13(金) 06:57:00
Direct3D
○:抜き色有・無描画、拡縮、回転、それらの同時掛け
X:ピクセル単位の処理
その他
グラフィックボードによって動作が違うことがある(大抵は大丈夫、ただ客が馬鹿だと苦労する)
1ドットに対して正確に色をおかなきゃいけないときに拘ると最悪(できないわけじゃないだろうけど・・・)
デバイスのロスト等描画以外でかなり手間がかかる、復旧方法を全部知っておかないと苦労する

GDI
○:抜き色有・無描画、拡縮、回転、ピクセル単位の処理
X:抜き色有・無描画、拡縮、回転の同時掛け
その他
Direct3Dと比べるとかなり遅い、環境による差が少ない、面倒が少ない
292286:2007/07/13(金) 11:52:44
解決しました。

SDK 2007 April の d3dx9tex.h に

//-----------------------------------------------------------------------------
// D3DX_SKIP_DDS_MIP_LEVELS is used to skip mip levels when loading a DDS file:
//-----------------------------------------------------------------------------

#define D3DX_SKIP_DDS_MIP_LEVELS_MASK 0x1F
#define D3DX_SKIP_DDS_MIP_LEVELS_SHIFT 26
#define D3DX_SKIP_DDS_MIP_LEVELS(levels, filter) ((((levels) & D3DX_SKIP_DDS_MIP_LEVELS_MASK) << D3DX_SKIP_DDS_MIP_LEVELS_SHIFT) | ((filter) == D3DX_DEFAULT ? D3DX_FILTER_BOX : (filter)))

と定義してありました。

よって、SDKバージョンの相違でした。
293デフォルトの名無しさん:2007/07/13(金) 12:59:54
質問失礼します。
よくXFileを使うくらいなら独自形式を使え、といった話になるのですが
独自形式に変換するためには何のファイルから変換するのが分かりやすいでしょうか?
アニメーション情報もキーフレームでファイル内に含むことが出来るように
したいのですがよい方法はありませんか?
294デフォルトの名無しさん:2007/07/13(金) 13:06:12
自分が使っているモデリングソフト用のプラグインを作るだけ。
余計な形式から変換する必用は微塵もない。
295デフォルトの名無しさん:2007/07/13(金) 13:34:43
なるほど、ではMax用のプラグインを制作してみます。
ありがとうございました。
296デフォルトの名無しさん:2007/07/13(金) 23:42:23
Maxってフォーマット公開されてたっけ?
297デフォルトの名無しさん:2007/07/14(土) 01:11:07
プラグインを作るのにフォーマットなんて関係ないだろ。
298デフォルトの名無しさん:2007/07/14(土) 15:30:59
m_pMesh->Release() ←こういうような
Releaseし忘れを警告してもらえる方法ってありますか?
自分の環境だとリリースしなくても何にも警告でないんです…
299デフォルトの名無しさん:2007/07/14(土) 15:40:01
テクスチャについて質問なのですが
フォーマットD3DFMT_D24S8で生成されたIDirect3DTexture9を
状況によってD3DFMT_A8R8G8B8で扱うといったようなことはできないのでしょうか?

なぜこんなことを、というとシェーダー内でサンプリングする際に
D3DFMT_D24S8でセットされたテクスチャはtex2Dを使ったときに
深度比較としてあつかわれてしまうのですが、
(通常shadow mapとかであればそれを意図しているので問題ないのですが)
あくまで通常のARGBとして扱いたい場合どうすればいいんですかね。
テクスチャは毎フレーム更新されるので、
あまりコストのかかる処理は避けたいです。
300デフォルトの名無しさん:2007/07/14(土) 18:25:33
上司か先輩か知らないが、デバッガ気取りのそのクソ野郎のPCを起動し、
コンパネのDirectXを開き、Direct3DのタブのUse Retail Version of Direct3Dのチェックを入れろ
301デフォルトの名無しさん:2007/07/14(土) 18:30:59
>>299
Direct3DではデプスバッファをARGBとして読むことは不可能。
代替処理として、深度をカラー情報に格納するシェーダを書く必要がある。
302299:2007/07/14(土) 20:00:03
>>301
ありがとう、
なるほど、じゃあ
通常レンダリング時に
通常ピクセル>COLOR0
深度値>COLOR1

みたいにマルチレンダーターゲットとかにして2枚つくるしかないのかな?
303デフォルトの名無しさん:2007/07/14(土) 21:43:11
テクスチャについて質問なのですが
Zオーダー指定の違うテクスチャを重ねると、上になったテクスチャの周りに、デバイスクリア色で縁が付きます。
これは、SetRenderState(D3DRS_ZENABLE, TRUE)でZオーダー指定すると回避できないのでしょうか?
それとも、なにか他の指定方法で回避可能でしょうか?

よろしくお願いします。
304デフォルトの名無しさん:2007/07/14(土) 22:10:53
アルファブレンド(透過)がされていない訳じゃなくて?
305デフォルトの名無しさん:2007/07/14(土) 22:45:24
>>304
透過されますが、絵の透明色と非透明色の境界にデバイスクリア色がでます。
文字のテクスチャを表示すると、縁取り文字みたいに表示されます。
他の透明色付きテクスチャも同じ現象が出ます。
Zオーダが同じならでません。
Zオーダーとアルファブレンドが相性の悪いのはわかってるのですが、
透過色を使用していない(上位ビットが0xFF000000)データでも出ます。
透明色側に縁が出ているような感じで、ずれているような表示ではなく
周りにデバイスクリア色が付いているような感じになります。
306デフォルトの名無しさん:2007/07/14(土) 22:54:16
>>305
現象が何かも確認できていないうちに回避策もあったもんじゃないんだが。

1) 拡大表示か何かでアルファ値が補間されて、境界部分が半透明状態になる
2) サーフェイスクリア直後のサーフェイスに1)を描画したところ
  サーフェイスクリア色とブレンドされるようなレンダーステートになっていた。
  さらにアルファテストもやっていたので、完全透明なところ以外はZ値が更新される
3) その上から背景(推測)を描画したところ、Z値が更新されていないところのみ描画された。

という状況なのかね?
307デフォルトの名無しさん:2007/07/14(土) 23:26:28
>>306
まず、拡大縮小はしていません。
きっちりした透明色(0x00000000)と非透明色(0xFF??????)の境界、透明色側に
デバイスクリア色がでます。
描画順番にかかわらず出ます。(あきらかに後から上書きしたZが0.0の画像にも縁が付く)

テクスチャは手前も後ろもD3DXCreateTextureFromFile()で読み込んだpngファイル。
縁に半透明処理等はしていません。

背景Zオーダー1.0 前景Zオーダー0.0 → 縁が付く
背景Zオーダー0.0 前景Zオーダー0.0 → 縁が付かない

普通にDrawで描いてるんですけどね。
308デフォルトの名無しさん:2007/07/14(土) 23:39:06
>>307
描画順序にかかわらずってのが謎だねぇ。
それ本当にサーフェイスクリア色?

とりあえずよくわからんのでPIX for Windows使ってピクセルの色変化履歴見てみてみたら?
309デフォルトの名無しさん:2007/07/14(土) 23:39:07
>>307に補足
画像は既に256×256に切ったものなので、読み込み時に拡大縮小はかかっていません。
310デフォルトの名無しさん:2007/07/14(土) 23:41:16
>>308
赤でクリアすると赤く、グレイデクリアするとグレイになります。
何かの影響だとは思いますが、デバイスクリア色が出ているのは間違いないと思います。
とりあえずご指摘のPIX for Windowsで変化を見てみます。
ありがとうございます。
311デフォルトの名無しさん:2007/07/14(土) 23:43:40
z が 0.0 か 1.0 忘れたけど、丁度のやつは
グラボによって表示されないことがあったりとか過去に聞いた気がする
0.01 や 0.99 くらいにしてみたらどうだろ
312デフォルトの名無しさん:2007/07/14(土) 23:44:44
313デフォルトの名無しさん:2007/07/14(土) 23:48:18
>>311
文字表示に横着しまして、ID3DXFontを使用しています。
その表示がZ0.0なので、強制的にトップは0.0で表示(後ろの字が消えるように)しています。
あと、Z深度をいじってみたんですが、結果としては変わらなかったです。(Z値が違うと縁)
後ろのZ深度は変更してみます。
ありがとうございました。
314デフォルトの名無しさん:2007/07/14(土) 23:49:09
>>312
リンク提示ありがとうございます。
315デフォルトの名無しさん:2007/07/15(日) 02:16:35
>>303
ピクセルとテクセルが0.5ずれてる話は知っている?
テクスチャの拡大縮小フィルタはどう設定している?
D3DSAMP_ADDRESSU, Vは何に設定している?
316デフォルトの名無しさん:2007/07/15(日) 12:40:05
なんかすげーちょっとした設定間違いのような気がする
いままでそんな報告なかったし

アルファの掛け合わす設定が間違ってるとか
下の色と混ざるように設定してはいるものの
設定が間違っててアルファが0のときに下の色が描画されてなくて
結果クリア色と混ざっちゃうとか
テクスチャの色もデバイスクリア色と同じ色でクリアしてて実は・・・とか
317デフォルトの名無しさん:2007/07/15(日) 12:42:23
とりあえず見てみんとしょうがないのは
アルファの設定とブレンドの設定とZの比較設定とZの更新設定と
テクスチャの色とテクスチャのフォーマットとポリゴンの色かな?
318デフォルトの名無しさん:2007/07/15(日) 17:17:35
DXUTは今後も生き残れると思いますか?
それともいつものごとく無かったことにされてしまいますか?
319デフォルトの名無しさん:2007/07/15(日) 17:27:56
>>318
文章がおかしい。「それとも」の使い方を明らかに間違っている。

投稿する前に文章を読み直す癖をつけましょう。
320デフォルトの名無しさん:2007/07/15(日) 17:39:02
「それとも」の使い方を明らかに間違っている。
321デフォルトの名無しさん:2007/07/15(日) 17:58:37
「それとも」の使い方を明らかに間違っている。
322デフォルトの名無しさん:2007/07/15(日) 19:33:44
座標p,速度ベクトルv,上ベクトルuの物体を、
座標pp,速度ベクトルvv,上ベクトルuu
へ変換する行列を作りたいのですが、どうすればいいのでしょうか?
ヒントでも良いので御願いします。
323デフォルトの名無しさん:2007/07/15(日) 19:50:51
D3DXUTって2ヶ月ごとに互換性なくなるものと
いままで思ってましたがそうでもないんですか?
324デフォルトの名無しさん:2007/07/15(日) 20:02:55
>>323
「それとも」の使い方がおかしい。
325デフォルトの名無しさん:2007/07/15(日) 20:15:32
>>322
数学と物理を学びなおすのと、現実を見たほうがいいと思う。
とりあえず1つ1つの計算を行列にすればあとは掛け合わせて1つの行列にするわけだし。
まぁ、この例だと無理だが。

解釈によっては車が
 東京(p)にあって 停車中(v)で 上方向(u)は空を向いている
何か色々あって車が
 大阪(p)に移動し 地中方向に時速60km(v)で進みつつ 横転している(uu)
とか訳の分からんことに。
例えば前へ進むとかじゃなく、どの方向に進むのかちゃんと決めてやらないとな。
326デフォルトの名無しさん:2007/07/15(日) 20:19:31
ESP使ってやれよ。
ゲームキャラの移動か誘導弾じゃねえの?
327デフォルトの名無しさん:2007/07/15(日) 20:28:13
メッシュを白く点滅させたいんですがどういった方法が考えられますか?
328デフォルトの名無しさん:2007/07/15(日) 20:36:38
用途は?
もしダメージ食らいエフェクトとしての点滅だったら、俺はその表現は嫌いだからな。
329デフォルトの名無しさん:2007/07/15(日) 20:38:04
まさにそんな感じで使いたいんですが、なんかダメなんですか?
330デフォルトの名無しさん:2007/07/15(日) 20:38:35
>>326
ESPって?
331デフォルトの名無しさん:2007/07/15(日) 20:40:27
>>330
相手の意図を読みきってベストな回答を出す事
332デフォルトの名無しさん:2007/07/15(日) 20:51:21
なるほど。トン。
333デフォルトの名無しさん:2007/07/15(日) 21:04:36
>>327
やり方は無数にあるが、
「メッシュ全体に色を加算」を固定機能でやると仮定すれば
D3DRS_TEXTUREFACTORに点滅色を設定して、
SetTextureStageState(1, D3DTSS_COLOROP, D3DTA_ADD);
SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_CURRENT);
SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_TFACTOR);
のような感じか。
334デフォルトの名無しさん:2007/07/15(日) 21:05:33
>>325
すいません。では、弾が
位置p(1,1,1)、速度v(0,0,1)、上(0,1,0)から
位置pp(3,3,3)、速度vv(1,0,0)、上(0,0,-1)
に移動する時の、この姿勢を変換する行列の求め方を教えてください。
335デフォルトの名無しさん:2007/07/15(日) 21:25:04
>>333
D3DTA_ADDというのはありませんでしたので、
代用として適当に見つけたD3DTSS_ALPHAOPでやってみました

他の色はいけるんですが、白を合成しても変化ありませんでした
白で点滅させることはできないんですかね?
336デフォルトの名無しさん:2007/07/15(日) 21:32:17
>>334
4x4の行列の[0][0](._11)に何が入るか理解してる?
337デフォルトの名無しさん:2007/07/15(日) 21:37:19
>>335
押してダメなら引いてみろ。
338デフォルトの名無しさん:2007/07/15(日) 21:41:58
>>335
D3DTA_ADDの誤記の代わりとしてはD3DTSS_ALPHAOPはダメ。D3DTOP_ADDが正しい。
339デフォルトの名無しさん:2007/07/15(日) 22:00:47
>>338
おお!白でも合成できました
ありがとうございます
340デフォルトの名無しさん:2007/07/16(月) 02:32:16
内部でD3DXMatrixScalingを使わないで済むように
Xファイルのサイズを変更したいんですがそういったソフトはありますか?
341デフォルトの名無しさん:2007/07/16(月) 02:40:09
そういう計算を事前に済ましておくということも、
自前フォーマットを採用する理由の一つ。
342デフォルトの名無しさん:2007/07/16(月) 06:23:23
340のやりたいことと自前フォーマットは全然関係ないと思うが。
343デフォルトの名無しさん:2007/07/16(月) 06:35:42
まあ最近の若いのには、質問には答えず
どうでもいいチラウラばかり書きたがる人間が多いからな
344デフォルトの名無しさん:2007/07/16(月) 07:05:57
本来なら予めゲーム内の『1』という単位を決めるべきなんだよな。
例えば『1』を『1メートル』としていれば、人や車などをモデリンクソフトでどれぐらいの大きさで吐き出せばいいか分かりやすいし。
345デフォルトの名無しさん:2007/07/16(月) 08:36:41
>>340
変更したかったら読み込んで書き替えて書き出せばいいだろ。
Direct3D自体に簡単に読み書きできるようにパーサが付いてるんだから。
なんでプログラムを作る人間なのにその程度のことをやろうとしないんだ?
346デフォルトの名無しさん:2007/07/16(月) 11:30:57
おまえら
「そういうソフトはあるだろうけど俺はしらね。つうか自分で作った方が早くね」
と正直にいいなさい
347デフォルトの名無しさん:2007/07/16(月) 16:41:59
だって他ツールはあまり信用できないよ。
ツール独自のフォーマットのほかにXファイルの読み書きが出来たとしても
フレーム名を変えられたり、勝手に最適化されて頂点が入れ替えられるのが邪魔なこともあるし
自分でやるのがいいって。
348デフォルトの名無しさん:2007/07/16(月) 20:59:09
>>346
>>347に同意
みんな色々探したんだけど
ホントにないんだよ
・細かいところで整合性があってない
・そもそも機能を満たしてない
・1つの機能の実現の仕方が普通の方法とは異なる(そのソフト独自のデータを持つ)
・無駄に最適化や圧縮がしてある
とかありがちなのから、この他にもたくさん問題がある
3Dソフトでフォーマット→フォーマット変換はできないとさえ思う

そもそも自社のフォーマットをサポートしつつ他のフォーマットまでサポートするってのが
作業量的に無理なんじゃないかと思う
349デフォルトの名無しさん:2007/07/16(月) 23:50:59
最終的にXファイルを出力したツールで(機能があればだけど)編集・調整すりゃ
整合性はとれるんじゃないの?
わざわざ自分で作る必要あるんかね
というかモデルツール用のマスターデータくらい用意しろよ、と
350デフォルトの名無しさん:2007/07/17(火) 00:53:44
だから出力用プラグインぐらい自分で作れと。
351デフォルトの名無しさん:2007/07/17(火) 07:26:18
>>349
>最終的にXファイルを出力したツールで(機能があればだけど)編集・調整すりゃ
>整合性はとれるんじゃないの?
そうやって物事の表面しかみてない発言やめろ
一口に出力っていったってフレーム名がめちゃくちゃだったり
ちゃんとサポートできてなかったり、アニメーションがついてなかったり
できてるように見えて微妙にUVの値が変だったり
ロクなもんがねーのがいまの状況なんだよ
モデリングツールのパッケに

○Xファイル出力

なんて書いてあったって騙されちゃ駄目
大抵、アニメーション、スキニングのサポートは無い
してあってもどこか変。
多分、フレーム階層のもんとワンスキン構造のもんの整合性がとれてないのと
その辺の整合性をとるのが面倒でどこもやってないっぽい

現状、出力プラグインを作るのが正解
352デフォルトの名無しさん:2007/07/17(火) 10:46:37
>>351
すまん。俺が言ってんのは>>340への内容。
希望通りの出力できてんなら他ツールなんて不要だろ、という意味
が、現状の話もよくわかった。つまり

○現状、出力プラグインを作るのが正解
◎現状、出力プラグインを作って売るのが正解

353デフォルトの名無しさん:2007/07/17(火) 11:15:38
そもそも一般的な3Dソフトは、レンダリングまでの過程をサポートしているだけで、
途中経過のデータを出力するのを考慮していない。
だからプラグインで無理矢理書き出す形をとっているわけだが、
中途半端なデータにどういう意味を持たせるかは、個々で決めるしかない。
しかも補助用のプラグインが途中経過のデータを引き出す方法を公開していなかったり、
標準機能のレンダリングに連動して初めてデータを生成するものまである。

結局エクスポート部分どころか、かなりの部分を自分で書かないとならない。
しかし趣味でプラグインを書いているレベルの人間はほとんどいない。

洋ゲーのカスタマイズツールはエクスポート用のプラグインとセットになっている場合がけっこうあるが、
日本では全く見かけられない。
354デフォルトの名無しさん:2007/07/17(火) 18:37:13
プラグイン作るのが面倒だったらもうXファイルでいいんじゃねとか思うのは俺だけか。
趣味で作っている作品をさらに追求したいわけなんだし、プラグイン作成もその延長だろ。
355デフォルトの名無しさん:2007/07/17(火) 19:52:42
まともなものを作ろうとすると、まずはソフトの購入に大金をはたく必用がある。
フリーで使えるものはスキニングやアニメーションを考えると、はっきり言って全く使い物にならない。
356デフォルトの名無しさん:2007/07/18(水) 01:05:43
中間ファイルなら調度いいのがあるじゃん
ほら、有名なゲームハードメーカーが音頭をとってやってるやつが
357デフォルトの名無しさん:2007/07/18(水) 05:23:34
HDRに関してなんですが、
A16B16G16R16、A16B16G16R16F、A32B32G32R32Fのフォーマットってαブレンドをサポートしていないの?
A8R8G8B8とかに変えるとαブレンドされるのに32bitよりも大きいフォーマットだとされないのは仕様?
358デフォルトの名無しさん:2007/07/18(水) 08:31:29
>>356
またこういう馬鹿が知ったかを。
359デフォルトの名無しさん:2007/07/18(水) 20:14:51
すいません、メッシュを画面のいろいろな位置に表示させると端になるほど微妙に斜めに表示されるんですけど
画面のどの位置にいても正面から見たように表示させることってできませんか?
360デフォルトの名無しさん:2007/07/18(水) 20:36:30
>>359
正射影
361デフォルトの名無しさん:2007/07/18(水) 20:49:00
>>360
できればソースとかでお願いできませんか?
362デフォルトの名無しさん:2007/07/18(水) 21:18:54
とりあえず3D入門的なサイトや本をあたった方が・・・
363デフォルトの名無しさん:2007/07/18(水) 21:48:34
本ならこれとかは?3日前に発売したばかりでVista対応とか書いてるし
http://www.amazon.co.jp/gp/product/4797341874
364デフォルトの名無しさん:2007/07/18(水) 22:20:36
>>359
D3DXMATRIX matShift;
D3DXMatrixTranslation(&matShift, 0.5f, 0.0f, 0.0f);
matProj *= matShift;
g_pd3dDevice->SetTransform(D3DTS_PROJECTION, &matProj);
これが一番楽よね。
365デフォルトの名無しさん:2007/07/19(木) 01:17:56
>>357
GeForce7とかだとアンチエリアスが使えなかったと思う。
366デフォルトの名無しさん:2007/07/20(金) 08:11:48
>>364ってどのへんが359の求めるものを満たしているんだ?
367デフォルトの名無しさん:2007/07/20(金) 10:29:15
D3DXCreateFontなんですが
戻り値が毎回-2005529767で失敗するんですが
グラボの性能次第で使えなかったりしますか?

SDKバージョンは9.0cの(DEC2004)です。
368デフォルトの名無しさん:2007/07/20(金) 10:46:53
テクスチャにフォントイメージを直接描くことによって回避できます。
369デフォルトの名無しさん:2007/07/20(金) 12:07:28
>>368
テクスチャにフォントイメージを直接描くとはどういうことでしょうか?
370デフォルトの名無しさん:2007/07/20(金) 12:15:31
本当にプログラマか?聞いてばかりで恥ずかしくないか?
「ネットで調べる方法」に「2chで聞く」なんて書いてるクソ学校があるけどな
371デフォルトの名無しさん:2007/07/20(金) 12:45:21
>>369
ロックして描け、それ以上でもそれ以下でもない。
372デフォルトの名無しさん:2007/07/20(金) 15:10:14
>>371
そういうことですか、ありがとうございます。
373デフォルトの名無しさん:2007/07/20(金) 19:20:43
最近、固定機能が許されるのは小学生までのようなふいんきを感じるんですが、
例えば(べつに例えじゃないけど)、DirectX 8.1以上対応の同人ゲーを作るとして、
GPUの貧弱なユーザを考慮してピクセルシェーダも使わないとして、
シェーダを使うメリットは奈辺にありましょうか?

手元で固定機能のコードが動いてるんでこれでいいかなーと思っちゃうわけですが。
将来的にはシェーダ使うつもりですけど。
374デフォルトの名無しさん:2007/07/20(金) 19:23:43
使いたければ黙って使え。
375デフォルトの名無しさん:2007/07/20(金) 20:34:02
自分にとってのシェーダを使わないデメリットを考えてみろ。

それが無ければ、使わなくてもいいんじゃない。
376デフォルトの名無しさん:2007/07/20(金) 21:30:16
アタマイイ
377デフォルトの名無しさん:2007/07/20(金) 22:15:38
自分にとってのDirectXを使うメリットを考えてみろ。

それが無ければ、このスレ見なくてもいいんじゃない。
つか来んな
378デフォルトの名無しさん:2007/07/20(金) 22:48:59
全然詳しくないので質問させてください。
DirectXのバージョンは9.0以上なのですが
ディスプレイのとこを見ると機能が全て利用できませんってことになっています。
ゲームがしたくて色々チェックしたのですがよくわかりませんでした。
どなたかアドバイスしてくださるとありがたいです。
ついでに他のとこも見たところ、ドライバのDDIバージョンは不明になっています。
DirectXバージョンは9.0cとなっています。スレ違だったらすいません。
379デフォルトの名無しさん:2007/07/20(金) 23:04:14
>>378
頭が悪いんだからゲームをしている場合じゃないだろ。
ただでさえ他人よりも劣っているんだから、もっとマシなことに時間を使え。
380デフォルトの名無しさん:2007/07/20(金) 23:13:16
>>378
ここはプログラム板。

C/C++以前にプログラムと何の関係も無い
スレ違い以前に板違い
381デフォルトの名無しさん:2007/07/21(土) 03:13:31
能力のない者は最低スペックのことが頭にひっかかって結局何もできないんだよね。
自分のやりたいレベルのことをこなしながら、それなりに低スペックも救済するのができないのはなんでだろうね。
382デフォルトの名無しさん:2007/07/21(土) 05:47:14
誰に言ってんのキミ
383デフォルトの名無しさん:2007/07/21(土) 10:44:33
明らかに誤爆だろw
384デフォルトの名無しさん:2007/07/21(土) 18:24:21
明らかに自己紹介だろw
385デフォルトの名無しさん:2007/07/21(土) 18:40:01
明らかにイジメだろw
386デフォルトの名無しさん:2007/07/21(土) 18:40:41
自己紹介ワロタ
387デフォルトの名無しさん:2007/07/22(日) 15:38:01
全然詳しくないので質問させてください。
仕事全然できない派遣クンが
「DirectXがプログラムどおりに動かない原因を調べるのは僕の仕事ではありません。」
と言っています。
原因を調べるのは誰の仕事なのでしょうか?
388デフォルトの名無しさん:2007/07/22(日) 15:48:19
それはオマイの周囲の人間が考えることだ
389デフォルトの名無しさん:2007/07/22(日) 15:52:53
>>387
フイタw
そんなの職場によるだろ、ここで質問してどうすんだよ
DirectXのサポート受けられる状態?MSとどういう契約になってる?
もしくはDirectXについてサポートしてくれるような企業と契約してるのか?
ベンダの窓口として、その製品を扱うチームか担当者はいないの?
いなきゃ作れ、体制がまずい
少なくとも、DirectXのバグである疑いがあるなら、その先は派遣君の仕事ではないな
派遣を窓口にさせるわけにはいかないだろ
390デフォルトの名無しさん:2007/07/22(日) 16:11:00
>>387
派遣クンのプログラムのバグなのかどうか調べるのは派遣クンの責任

その派遣クンを1ケ月後に切るか今の契約終了まで使うか決めるのは担当社員の責任
391デフォルトの名無しさん:2007/07/22(日) 16:11:22
>>387
プログラマの仕事だ
そもそも「派遣」という時点では人間失格だ
「お前にはコンビニのバイトが似合う」と言ってやれ
392デフォルトの名無しさん:2007/07/22(日) 16:14:07
>>390
>その派遣クンを1ケ月後に切るか今の契約終了まで使うか決めるのは担当社員の責任
ありえねー
うちの会社なら即日辞めてもらうぞ
393デフォルトの名無しさん:2007/07/22(日) 16:15:28
>>392
即日辞めさせれる契約を結んでいるのかw
394サポートエンジニア:2007/07/22(日) 16:18:04
>>389
>DirectXのサポート受けられる状態?MSとどういう契約になってる?
>もしくはDirectXについてサポートしてくれるような企業と契約してるのか?

派遣が書いたプログラムが動かないからといってサポートしろと言われましても・・・
まずは御社のプログラムに原因がないことを確認いただいて・・・
395デフォルトの名無しさん:2007/07/22(日) 16:20:00
>>392-393
自社の社員なら「お前の仕事だよ、ボケ!」と叱り飛ばせばいいが、
派遣には契約というものがある。
遅刻欠勤がない限り辞めていただくには最低1ケ月は必要。
396デフォルトの名無しさん:2007/07/22(日) 16:28:00
Releaseメソッドが返す値が全部0になっていたら
Releaseし忘れは無いと考えていいのでしょうか?
397デフォルトの名無しさん:2007/07/22(日) 16:49:34
派遣プログラマに任せてる点で会社も社員も高が知れてる
398デフォルトの名無しさん:2007/07/22(日) 16:53:38
>>394
派遣が書いたコードにバグがあるといってる?なんだ、んじゃシラネ
399デフォルトの名無しさん:2007/07/22(日) 17:02:01
>>398
つーか、普通の対応だろ
問題モジュールが自社のものと特定されていない段階でサポートできるかっての
400デフォルトの名無しさん:2007/07/22(日) 17:03:13
>>387
具体的にどんな問題が起こってるかによるかな?
DirectX使ってると必ずぶち当たるけどゲームなら問題ないくらいの誤差なんだけど
業務だとラスタの計算でちょっとずれてるのが気に入らないとかそういう話になると
解決できない場合もある
ターゲットとしてDirectXを使う以上しょうがない問題なのかそうでないのか
調べるにも与えられた期間ではどうしようもない場合もある

具体的にどんなことしたん?
401デフォルトの名無しさん:2007/07/22(日) 17:04:55
デバッガーにプログラミング能力を求めているようなもんか?
デバッガーは不具合を見つけるのが仕事であって修正は別だしね。
402デフォルトの名無しさん:2007/07/22(日) 17:06:02
所詮、派遣だと「言われた通りにコーディングしたけど動きません、調べるのは僕の仕事じゃありません」が関の山だろ

それ以上の仕事は入社試験に受かるような正社員でないとできない


403デフォルトの名無しさん:2007/07/22(日) 17:07:31
ちなみに俺がこういう問題にあたったときは
該当箇所のソースをプリントアウトしてみんなで1行づつレビューしてくれるように頼んでる
2万行ぐらいあっても頑張れば1日でなんとかなるしやってもらったほうがいい

あの悪名高い富○通ですらやってくれたから多分どこでもやってくれると思う
だからプリントアウトして1行づつなにをやってるかレビューさせたら?
原始的な方法だけどこれが一番確実

ソースの内容がそいつしかわかる奴がいないっていうとちょっときついかな・・・
前のソースの改変であればDFっていつツールで差分を出せば済む話だし
404デフォルトの名無しさん:2007/07/22(日) 17:08:39
>>402
それはちょっと短絡的じゃね?
こういう問題は常に説明しにくい微妙な問題が絡んでるときが多いと思われ
まずは相手の話をよく聞いてよく理解することだと思う
405デフォルトの名無しさん:2007/07/22(日) 17:15:38
>>404
>まずは相手の話をよく聞いてよく理解すること

これはあれだな、つまり>>402ってことだな
406デフォルトの名無しさん:2007/07/22(日) 17:23:15
>>404
派遣の話:僕は言われた通りに作りました。他に何を説明するんですか?
407デフォルトの名無しさん:2007/07/22(日) 17:47:55
>>406
こういう意図で考えていたんだけど
その通りいってない部分を書き出してくれるかな?
って言えばいいんじゃない?
408デフォルトの名無しさん:2007/07/22(日) 17:50:29
派遣の話:明日から夏休みなので書き出す時間がありません。
409デフォルトの名無しさん:2007/07/22(日) 18:02:26
>>408
ありがちな話だな
夏休みを返上して解決するまでの責任感もないただシットダウンマネーをもらうだけの派遣

410デフォルトの名無しさん:2007/07/22(日) 18:08:05
>>408
それは本心じゃないな
残業代の出る派遣にとって休日出勤はかなりの金になる
知らない奴はモグリ
411デフォルトの名無しさん:2007/07/22(日) 18:16:27
おまえらマ板でやれよ
412デフォルトの名無しさん:2007/07/22(日) 18:16:51
派遣はマージン搾取業だからな
派遣社員もそれを知ってていい加減に働く。質はバイトより酷い
んなもん使ってたら、そんな事態になって当たり前。自業自得
413デフォルトの名無しさん:2007/07/22(日) 18:19:31
>>410
あまいぜ。
派遣クンは自分の書いたプログラムがまったく動かずニッチもサッチもいかなくなり、
DirectXのせいにして逃げきろうとしてるんだよ。
夏休み明けには正社員が問題を解決してくれてるってわけだ。
そのあとに切られても次の派遣先で同じようなことを繰り返す。

414デフォルトの名無しさん:2007/07/22(日) 18:24:28
夏休みはたまたまで普通は「体調不良」で3日ほど休むのが派遣クオリティ
415デフォルトの名無しさん:2007/07/22(日) 18:29:16
あぁ、そうか
製品の問題なのか、自社の問題なのかを切り分ける作業を、派遣がやるべきなのか、どうかって話?
この場合、派遣は自分の仕事じゃない、って言ってるんだから、
とりあえず自社で解析チーム作って、原因を特定するべき
ヤル気の無いやつに無理やりやらせたって、原因解明が遅くなるだけ

原因特定後、派遣のコードミスによるものなら、何故そのバグが混入されたのか、とかいろいろ突き詰めればいい
設計のミスなのか、派遣のDirectXの理解不足なのか、とか。
それから再発防止の施策をたてりゃいい。派遣をクビにして、雇用基準を見直す、とかさ。

とりあえず原因特定が先よね。
416デフォルトの名無しさん:2007/07/22(日) 18:39:56
>>415
>とりあえず自社で解析チーム作って、原因を特定するべき

そんな大袈裟な問題とは思えんな
状況から考えて、英語のドキュメントが読めないし、辞書引いてでも読む根性もないから
試行錯誤で適当に作った、でも動かない、僕知ーらっない、
てとこじゃねーのか
派遣にはよくある話だ
417デフォルトの名無しさん:2007/07/22(日) 19:22:09
>>416
>状況から考えて、英語のドキュメントが読めないし、辞書引いてでも読む根性もないから
でもなんか辻褄があわないんだよね
そもそも派遣が「ボクの仕事じゃない」なんて口にするわけがない
これには派遣というシステムに大きな理由がある

俺も派遣やってるけどさ
納期とか俺の責任じゃないし、基本的に残業代もらえるから残業するの大好きだしで
先の見えない仕事大好きだもん(毎週出勤すると残業代、休日出勤で月収が50万とかいく)

なるべく他の人がよくわからない問題抱え込んだり、自分にしかわからないことをたくさん増やすのは
はっきりいって派遣社員にとってノルマといって過言ではない

その環境で「面倒」とか「できない」とか言う意味がないんだよね
できなくても「できます」、わからなくても「やります」これ派遣では常識

できないことわからないことを深く追求される職場は今のところない
ならどんな仕事でも開口一発「やります」と言う。これ常識だし、こういう返事をするのは外勤先もわかってる(はず?w)

なんで>>387は俺的にネタにしか見えない
ポイントは残業代や休日手当てが出るということこれがでるとどんな仕事でも永遠にだらだら伸ばしたほうが得
418デフォルトの名無しさん:2007/07/22(日) 19:27:29
なるほど
派遣を見下したいがためのネタと思えば自然か
419デフォルトの名無しさん:2007/07/22(日) 19:29:36
ドキュメントなどを調べること、他人と調整すること、状況を整理することが嫌で
「ボクの仕事じゃない」なんて口にする人はいっぱいいますが
420デフォルトの名無しさん:2007/07/22(日) 19:51:51
>>419
全部ダラダラ時間かけて残業代アップします
嫌なんていいませんよ
なんたって残業代出ますから
421デフォルトの名無しさん:2007/07/22(日) 20:01:32
ダラダラ時間かけて最後に「頑張ったけどできませんでした、僕のせいではありません」
か。最悪だなw
422デフォルトの名無しさん:2007/07/22(日) 20:18:09
>>421
支持出すほうが悪いと思うけどな
少なくともこういう場面で「好きにやっといて」ってほうが頭どうかしてる
とりあえずここまで調べました
ここの部分は不明です
文献や掲示板にもそれらしい情報は調べた範囲ではありませんでした
って報告が限界だろうな
423デフォルトの名無しさん:2007/07/22(日) 20:28:03
はぁ、
「頑張ったけどできませんでした、僕のせいではありません」
「指示が悪いです」
か、極悪だなw
424デフォルトの名無しさん:2007/07/22(日) 20:31:06
>>423
直接そうは言わんけど
無理だった報告だけして終了だろうな
その報告を聞いてさらに調査を続けるか
そこで調査を打ち切るかは派遣のできる判断じゃないでしょ?

こういう仕事って勝手にやらせてる限り優劣つけられないと思うんだけど?
425デフォルトの名無しさん:2007/07/22(日) 20:31:57
カスども
マ板でやれ
426デフォルトの名無しさん:2007/07/22(日) 20:34:48
>>417のような糞派遣が残業代欲しさにダラダラ時間とシットダウンマネー(座ってりゃ貰える金)を
浪費した挙句、>>423のような結論だったらねマジギレだね、お父さん
427デフォルトの名無しさん:2007/07/22(日) 20:37:14
>>426
調べてみた結果できない・資料が無いってわかるのと
なんも調べてない状態ではやっぱり違うよ
こういうことの違いがわからない人は人を指示できる立場にふさわしくない
428デフォルトの名無しさん:2007/07/22(日) 20:40:17
シットダウンマネー目的でダラダラ時間を浪費する派遣と
問題解決が目的の人ではやっぱり違うよ
こういうことの違いがわからない人は人を指示できる立場にふさわしくない
429デフォルトの名無しさん:2007/07/22(日) 20:42:16
>>427
>調べてみた結果できない・資料が無いってわかるのと
>なんも調べてない状態ではやっぱり違うよ

実力主義、結果主義って知ってる?
430デフォルトの名無しさん:2007/07/22(日) 20:45:19
>>429
同じわからないでも

調査した結果を細かく報告する俺と
結果だけしか報告しないアンタと

どっちが評価されるか比べるまでもないだろ?w
431デフォルトの名無しさん:2007/07/22(日) 20:49:35
>>430
俺はシットダウンマネー目的でダラダラ時間を浪費してわからない、
なんて仕事はしないから。

ちゃんと制限時間を区切って調査するよ、お前みたいな派遣根性が染みついた
シットダウンマネー野郎とは違うのだよ。
432デフォルトの名無しさん:2007/07/22(日) 20:51:55
調べた結果が他の人に引き渡せる形で残せるなら、断然その方が良い。
ただしベストなのは、調べてる途中で分かりそうになかったら、
そこまでの内容をまとめて、誰かにSOSを出すことだな。
人に頼れない状況なら、相談だけでもする。
それで責任が分散できる。
433派遣クズ野郎:2007/07/22(日) 20:55:30
調べた結果なんて関係ない、断然残業代もらえる方が良い。
ただしベストなのは、調べてる途中でわけわかんなくなっても、
ダラダラ仕事を続けることだな。
失敗を人のせいにできない状況なら、相談だけでもする。
それで責任が分散できる。
434432:2007/07/22(日) 21:06:54
>>433
作業工数内で終わらせることは前提で書いてるよ。
工数内で終わらせて、最悪の場合でも>>432のようなことは行っておくということ。
435デフォルトの名無しさん:2007/07/22(日) 21:08:45
はあ?
ダラダラ仕事するって>>420で書いてるだろ?
氏ねよ、無責任派遣野郎!
436432:2007/07/22(日) 21:16:31
俺は432が初出だよ。
437デフォルトの名無しさん:2007/07/22(日) 21:32:48
ここが初心者質問スレとは思えないのですが
438デフォルトの名無しさん:2007/07/22(日) 21:43:52
おまえら本当スレちがいうざいな
439デフォルトの名無しさん:2007/07/22(日) 21:46:23
まあ、DirectXの質問は派遣辞めて就職してダラダラしないでしてね、ってこった
440デフォルトの名無しさん:2007/07/22(日) 22:24:20
>>438
マ板でやれよなぁ。
発端になった奴もいつもマ板から来て派遣ネタで荒らしてるやつだし。
441デフォルトの名無しさん:2007/07/22(日) 22:27:07
ム板は見てるがマ板は見てないって人が結構居るんじゃまいか
新鮮なネタに見えたんだろう
442デフォルトの名無しさん:2007/07/22(日) 22:37:37
派遣専用のプログラム板が必要だな
443デフォルトの名無しさん:2007/07/22(日) 23:47:24
ここもかw派遣派遣って
444デフォルトの名無しさん:2007/07/23(月) 00:12:47
やたら新着多いなーと思ってみてみたら・・・、

>>387すげー。
ム版だと派遣クンネタだけで半日で50レスも釣れるのか
445デフォルトの名無しさん:2007/07/23(月) 01:35:33
派遣がDirectXってゲーム屋さん?

元レスの意図をエスパーすると
(環境依存で)DirectXが(テスト環境以外のPCで)プログラムどおりに動かない原因を調べるのは僕の仕事ではありません。

って所じゃね?
ゲーム屋以外ならSEが悪い(設計ミス)だし
ゲーム屋ならそれぐらいはPGがやる範囲(少なくとも作り始める前に「動作確認が必要な環境を用意してください」ぐらいは言うべき)だよなぁ
446デフォルトの名無しさん:2007/07/23(月) 01:36:43
いつものコピペと同じネタで釣られている馬鹿が多すぎ。
あまたが悪いにも程がある。
447デフォルトの名無しさん:2007/07/23(月) 03:43:12
派遣に何も求めているのやら、、、重要な仕事なんか任せちゃ駄目だろ?
派遣には3Kワークをさせるのが普通。
どんな理由であれプロジェクトに支障出るような任務を派遣にやらせたという事実が既に駄目。

448デフォルトの名無しさん:2007/07/23(月) 03:56:27
製品リリース後の日曜だからソフトを作ってたゲーム開発部の連中は休みだが、
サポート担当者のところへは不具合報告が殺到。けっこう可愛い。その子が
サーバー管理やってる俺のところへ泣きついてきた! なんとかしてやらねば!

というストーリーだよ。
449デフォルトの名無しさん:2007/07/23(月) 04:05:10
派遣にDirectXやらせるほうがどうかしてる
450デフォルトの名無しさん:2007/07/23(月) 05:32:02
>>449
たしかに
ノウハウが巨大過ぎて
人の脳みそにしか蓄積されてないのが現状だよね

ネットでさえ昔あったサイトはもうほとんど閉鎖してるし過去のバージョンは消失
加えてDirectX9はそのうち消える運命(っていつかわからんけど)

踊る各社グラボのサポート状況

という現実がある上にさらに
3Dと3D機能という大きな壁
2Dの機能だけ使うなんて調子のいいことできない
知らないと不具合が出たときに一歩も動けない
プログラミングに対してかなりのベテランであったとしても3Dおよび画像処理に関しては
全くの素人だともう初心者同然、いうまでもなくプライドはずたずたに引き裂かれる
加えて掲示板のガラの悪さw

「はぁ?」「何言ってんの?」「数学勉強してください(核爆w)」「ヘルプも読めねぇのかよw」
「お前もう駄目だなwやめちゃえw」等

なんで誰も近づこうとしないw
451デフォルトの名無しさん:2007/07/23(月) 20:35:35
PSでは最前線にいた人も時代に付いていけなくなったりしてますか?
452デフォルトの名無しさん:2007/07/23(月) 21:04:29
付いていくかどうかはその人次第だろ。
何もしなければ置いていかれるだけ。
DXじゃなくGLに移行している人もオオイノヨー
453デフォルトの名無しさん:2007/07/23(月) 22:22:17
DX9で3Dゲーム作ってます。
質問なのですが、カメラから見える部分しか描画しないようにしたいのですが、
描画しない部分はどのような処理が最適ですか?
よろしくお願いします。
454デフォルトの名無しさん:2007/07/23(月) 22:27:33
視錐台カリングでググれ
455デフォルトの名無しさん:2007/07/23(月) 23:26:48
>>454
ども。ちなみに頂点シェーダーで、各頂点を判定する事は可能ですか?
範囲外の頂点を見つけてもその頂点をどうすればいいのかわからない・・・
456デフォルトの名無しさん:2007/07/24(火) 00:06:08
範囲外の頂点見つけたらGPUに送らなきゃいいんだよ。
457デフォルトの名無しさん:2007/07/24(火) 00:23:07
458デフォルトの名無しさん:2007/07/24(火) 00:54:08
どした。疑問符だけ浮かべててもおにーさん達は力になれないZO
459デフォルトの名無しさん:2007/07/24(火) 01:09:51
>>450
DirectX○はそのうち消える運命


全てのバージョンに言えることだね

加えて言うなら
>数学勉強してください(核爆w)
引数間違えてるだけの奴にこれ言うやつ多いし

>ヘルプも読めねぇのかよw
このレスが返ってくる場合、たいていはヘルプに載ってない

>お前もう駄目だなwやめちゃえw
これは正解だがな
460デフォルトの名無しさん:2007/07/24(火) 02:59:21
>>455
・頂点シェーダでは頂点そのものの破棄はできない。
・仮にできたとしても、例えば三角形の3頂点の1つだけが画面外だとしたら、
 それを破棄するわけにはいかない。
・カリングとかをしなくても、画面外のポリゴンではピクセルフィルは発生しない。
・画面外のオブジェクトの、描画自体をスキップすることで
 頂点計算等を省略するのが視錐台カリングの狙い。
多分こんなもんかしら。
461デフォルトの名無しさん:2007/07/24(火) 16:35:01
質問させていただきます。

VC++6.0を使用し、DirectX8で趣味で色々作ってきたのですが、
いつの間にやら時代はDirectX9が主流になってしまいました。

最近、DirectX9で開発したいな・・・ と言う欲が出てきたのですが、
開発環境を9にしても、DirectX8のプログラムをコンパイルできるのでしょうか?
過去作った物も時々弄るので、もしコンパイル出来なくなると・・・
と考えると怖くてなかなか手が出せません。

時代に乗り遅れた為、DirectX8から9へ移行した話などは、検索しても出て来なくて迷っております。
移行された方が居ましたら、経験談や、注意点などを教えてください。
よろしくお願い致します m(_ _)m
462デフォルトの名無しさん:2007/07/24(火) 16:52:15
うちはDirectX9のSDKの入った環境で、DirectX7のプログラム組んでるよ。
基本的には新しいSDKでも過去のソースは動くはず。
463デフォルトの名無しさん:2007/07/24(火) 17:08:56
新しいのだと、D3DX8がついてなかったりしなかったっけ?
464デフォルトの名無しさん:2007/07/24(火) 17:21:00
>>460
あざーす。理解しました。
465462:2007/07/24(火) 17:44:52
>>463
今、ヘッダファイルの中のぞいてみたら確かに9ではDXは別ものっぽい感じになってた。
せっかくインターフェース分けてるんだから、当然過去のソースは動くんだろうと思ってたんだけど、D3DXは違うのね。
なので、>>462は無視してください。
466デフォルトの名無しさん:2007/07/24(火) 19:17:32
以降といっても型の数字が8から9に変わっただけとか、関数名にExやAを付けたら大丈夫だったとかそんな程度だった記憶が。
使えない関数も当然出てくるけど、1つ1つ調べていったら解決策が出てくる。

DX9に移植するのもいいけど、DX初心者として10を1から学んだほうが今後のことを考えるといいと思う。
移植しないなら過去のものを使う場合、参照の優先度をDX8のライブラリを上げればいいだけの話で。
467デフォルトの名無しさん:2007/07/24(火) 22:27:35
いまさら時代はDX9というあたり、そういう発想のできる相手ではなかろう。
たぶんテクスチャも256X256を上限にしてるよ。
たとえ自分の対象ユーザーにVooDoo使用者が0人であったとしても。



468デフォルトの名無しさん:2007/07/24(火) 22:48:23
10なんて対応カードが無い状況で学ぶのは微妙だろ
Vistaのみリファレンスラスタライザで動けばいいのならいいけど
469デフォルトの名無しさん:2007/07/25(水) 00:44:30
少し前のオンボードなら256x256以下の正方形なんて当たり前だゾ
しかも2^nじゃないとらめぇえええええええええ
470デフォルトの名無しさん:2007/07/25(水) 01:06:11
少し前とかいい加減な情報ではなく、具体名を挙げよ。
471デフォルトの名無しさん:2007/07/25(水) 05:27:59
SDKに入ってるCardCaps.pdfには載ってないな
472デフォルトの名無しさん:2007/07/25(水) 07:36:54
2のn乗じゃないとだめってのは結構あるが、正方形じゃないとだめなのは
かなり古いものしかないよな。
気にする必要ない。
473デフォルトの名無しさん:2007/07/25(水) 08:32:19
だから古いとかじゃなくて具体名を挙げろよ。
出せないのならいい加減な話を出すな。
474デフォルトの名無しさん:2007/07/25(水) 09:18:22
少し前の古いアレだよアレ。
な、わかるべ?
475デフォルトの名無しさん:2007/07/25(水) 09:19:55
脳内にのみ存在するアレだよ。
476デフォルトの名無しさん:2007/07/25(水) 10:58:25
>>461
8→9は変化が少ないから、移植も楽だよ。
一番変わったのは、シェーダの管理にハンドルを使っていたのが
インターフェースに変わったことと、SetTextureStageStateの一部が
SetSamplerStateに分かれたこと。

D3DXのスプライト機能とかもだいぶ変わったと思うが、俺はまったく
使ってなかったので分からん。
477デフォルトの名無しさん:2007/07/25(水) 11:13:33
>>475
彼女のことかー!
478461 :2007/07/25(水) 14:10:05
461です。
書き込みが遅くなり申し訳有りません。

>>462様、わざわざヘッダーまで見ていただいてありがとうございました。
>>466様のご教授のとおり一つ一つ解決して見ようと思います。
>>476様、難しく考えすぎていたのかと思えるようになりました。

8→9を行った場合、ソースをまったく弄らずに・・・
と言うのは、無理のようですね。
参考になりました。

DirectX10ですが、今、私の使用しているOSが2000ですので、
手を出せるのはまだまだ先になる予定です。

皆様のお陰で、どうにかなる気がしてきました。
どのような結果になっても、よい経験だと思い移行することに決めました。
本当にありがとうございました。m(_ _)m
479デフォルトの名無しさん:2007/07/25(水) 23:54:33
>>473
出せるけどやめとくw
480デフォルトの名無しさん:2007/07/25(水) 23:59:28
warota
481デフォルトの名無しさん:2007/07/26(木) 00:08:46
ぐうの音を出しても仕方がない。
482デフォルトの名無しさん:2007/07/26(木) 00:14:48
エロゲを除けば、そういう機種を使っている人はゲームを遊ぶ習慣の無い人だってことなのに
なんで最低スペックに合わせたがるの?
483デフォルトの名無しさん:2007/07/26(木) 00:19:04
エロゲだから。
484デフォルトの名無しさん:2007/07/26(木) 00:42:02
エロゲか同人STG以外のものを作ってる人いる?
485デフォルトの名無しさん:2007/07/26(木) 00:50:19
会社で作ってるのは非エロ
486デフォルトの名無しさん:2007/07/26(木) 01:58:19
どんなスペックでもいいから、ものを作るんだ!
487デフォルトの名無しさん:2007/07/26(木) 04:53:13
>>467
> いまさら時代はDX9というあたり、

10の環境はまだ2%もないし、シェーダ弄くらなきゃ8.1と9は全然かわんないし、普通じゃねえの?

> たぶんテクスチャも256X256を上限にしてるよ。

極端すぎる。電柱を相手にファイティングポーズ取るのはやめとけ。
488デフォルトの名無しさん:2007/07/26(木) 11:32:47
2D描画で
 D3DXCreateTextureFromFileInMemoryEx
で読み込んだデータを
 DrawIndexedPrimitiveUP
で、描画するルーチンで制作していたのですが、

複数のTextureで構成された絵を拡縮する必要がでてきたので、
どのようにすればいいか悩んでいます。

イメージとしては、シューティングゲームは普通に組めたので、
ボスキャラを拡縮させながら登場させようとしたものの、計算で
調整しながら表示させると微妙にズレがでるケースがあるので、
可能なら一度構成したものを拡縮させたいと思っているのです。

命令などについてヒントが頂けないでしょうか。
489デフォルトの名無しさん:2007/07/26(木) 11:55:44
よーわからんが、マップチップをそのままチップ毎に拡大したら
つなぎ目が目立つって状況け?

だったらまずレンダーターゲットで作成したテクスチャに描画して
それを拡大するってのでイケるんじゃねぇかな。
490デフォルトの名無しさん:2007/07/26(木) 13:37:21
>>489
状況はそんな感じです。

レンダーターゲットとか理解しきれてなかったので、いま調べながら勉強中。
どう作るか方向性は見えてきました。 ありがとうございます。
491488:2007/07/26(木) 18:37:58
できた
悩んでいろいろ調べてる時間が一番長かった。
492デフォルトの名無しさん:2007/07/26(木) 20:16:53
実は普通じゃね?
493デフォルトの名無しさん:2007/07/26(木) 21:38:24
実際のコーディングなんて全工程の20%にしかすぎないんだZE?
494デフォルトの名無しさん:2007/07/26(木) 21:49:46
普通はパーツで作っても気になるほどずれないだろ。
そもそも整数とfloatの変換がまずいことなってんじゃねえの?
495デフォルトの名無しさん:2007/07/26(木) 22:25:33
3Dの海岸線は困ったな。
綺麗に繋がらないし、フライト物だったので広範囲を描画しないといけないわ、
近づいたらテクスチャが荒いからって大きなのを用意したらVRAMが足りなくなるわで。
もう解決せずに放置してるが。
496デフォルトの名無しさん:2007/07/26(木) 22:47:14
>>473
具体名を挙げると正方形じゃないと駄目で
さらに256だか512までだかとかいうウンコな制限が付いてたのは
VooDooとかいうグラボだけだった希ガス
もうないしこんなのサポートする意味もないから完全無視でおk

>>495
もやかけて限界まで誤魔化す
当然だろ
誰もみてねぇぞwそんなとこw
ハイご苦労さんw
497デフォルトの名無しさん:2007/07/26(木) 23:05:28
誤魔化せるようなクオリティならいいんだけどね。
地上を高速で走り回るようなゲーム(レースやロボゲー)だとテクスチャのの1ドットのずれも大きかったりするし。
レースゲームはカーブとかよく綺麗に描けるなと感心する。
498デフォルトの名無しさん:2007/07/26(木) 23:18:59
>>497
だから気にするからだろw
499デフォルトの名無しさん:2007/07/26(木) 23:22:11
>>497
現状どの程度なのかプリントスクリーン見せてよ
500デフォルトの名無しさん:2007/07/26(木) 23:35:04
mode 7で回転すればいい
501デフォルトの名無しさん:2007/07/26(木) 23:38:07
>>499
俺作ってないぞww
PSでもすごいと思うから中古ショップ漁ってきてくれw
502デフォルトの名無しさん:2007/07/26(木) 23:52:35
だいたいレースゲーなんてどれとってもジャギっててキタネーじゃん
水平線なんて気にする前にやることいくらでもあんぞ多分w
503デフォルトの名無しさん:2007/07/27(金) 00:05:54
D3DXLoadMeshHierarchyFromXを使ってXFILEを読んでいるのですが、マテリアル名を取得できません。
どのような方法をとればマテリアル名を取得できるでしょうか?
504デフォルトの名無しさん:2007/07/27(金) 00:11:10
505デフォルトの名無しさん:2007/07/27(金) 00:23:31
>>503
ほんとだ
ねーじゃんw
あれかな?作った奴よくわかってねーのかな?
506デフォルトの名無しさん:2007/07/27(金) 01:18:32
だからXぐらい自前で読み込めよ
507デフォルトの名無しさん:2007/07/27(金) 03:34:32
ていうかマテリアルだけ独立してないとおかしいときあるよな?
1つのインスタンスを複数ってのは考えられてねぇのかな?

っていうかそれ以前だな
マテリアルの種別を外部から特定できねーじゃんなw
仕方ネェからメッシュかテクスチャのファイルネーム辺りにマテリアル名も突っ込んどけば?w
508デフォルトの名無しさん:2007/07/27(金) 08:36:24
でも世界の開発者も誰も困ってない
SDKサンプル用途としてはそれで十分なんだろう
509デフォルトの名無しさん:2007/07/27(金) 09:58:26
神か
510デフォルトの名無しさん:2007/07/27(金) 22:20:41
DirectX関係の質問はここでいいのでしょうか

DirectX Busterを使ってDirectXをアンインストールしたのですが
再インストールが出来ない状態になってしまいました
どうしたら再インストールできるようになるか教えてください
511デフォルトの名無しさん:2007/07/27(金) 22:24:14
まずはプログラムの作成と何の関係があるのかを明確にせよ。
512デフォルトの名無しさん:2007/07/27(金) 22:46:31
≫511
DirectX 9を入れたら動きがおかしくなったのでアンインストールしたんです
元々はDirectX 8でゲーム作ってました
DirectX 8では問題なく動いてたから間違いなくDirectX 9のバグだと思うんです
513デフォルトの名無しさん:2007/07/27(金) 22:51:30
間違ったプログラムがたまたま動いていただけなのに、何でもかんでも他人のせい。
514デフォルトの名無しさん:2007/07/28(土) 05:52:59
>DirectX 8では問題なく動いてたから間違いなくDirectX 9のバグだと思うんです

で、DirectX8→9の変更点は確認して、プログラムの修正はやったの?
単に9のSDKで再コンパイルしただけ?
9のバージョンは?
515デフォルトの名無しさん:2007/07/28(土) 06:37:45
ビルドもせずに実行したんじゃね
516デフォルトの名無しさん:2007/07/28(土) 07:08:43
>>515
そんなことが出来る人間がいるのか。尊敬するわ
517デフォルトの名無しさん:2007/07/28(土) 07:48:26
≫513-516
原因がわかりました

知り合いにDirectX 9を入れてやってもらったんですが
ゲームを動かすといきなりWindowsがエラーを出して止まるようです
こちらとまったく同じ状態です
DirectX 9 SDKに入ってるプログラムはふつうに動いたそうです
これもこちらとまったく同じ状態です

ゲームの最初のところでスプライトがいっぱい(2000ぐらい)出るんですけど
これを出さないようにしたら動きました
多分DirectX 8よりDirectX 9のほうがスプライトの上限?が低いはずです
518デフォルトの名無しさん:2007/07/28(土) 10:18:56
ふーん。
519デフォルトの名無しさん:2007/07/28(土) 11:34:03
( ・ω・)・・・
520デフォルトの名無しさん:2007/07/28(土) 14:02:32
フォントを表示させたいのですがうまくいきません。
フォント表示するコードだけ載せときます。初期化もしています。
これが実行時にうまく行きません。コンパイルまではうまくいきます。
void GameOver(){//ゲームオーバー
if(getPassedTime(1)>3000){
RECT rc={0,160,640,260};
g_ptextsprite->Begin(D3DXSPRITE_ALPHABLEND|D3DXSPRITE_SORT_TEXTURE);
g_pxfonts[hgofont]->DrawText(g_ptextsprite,_T("GAME OVER"),-1,&rc,
DT_CENTER|DT_VCENTER,
D3DCOLOR_COLORVALUE(1.0f,0,0,1.0f));
g_ptextsprite->End();
}

if(getPassedTime(1)>15000){
gamemode=GM_MAIN;
//初期表示に戻す
mx=0.0f;
mz=-2.0f;
angle=0;
SetViews();
}}
エラーメッセージです。
main.obj : error LNK2001: 外部シンボル ""struct ID3DXSprite *
g_ptextsprite" (?g_ptextsprite@@3PAUID3DXSprite@@A)" は未解決です。
my3dlib.obj : error LNK2001: 外部シンボル ""struct ID3DXSprite *
g_ptextsprite" (?g_ptextsprite@@3PAUID3DXSprite@@A)" は未解決です。
どなたかアドバイスいただけませんか?
521デフォルトの名無しさん:2007/07/28(土) 16:45:27
そのエラーメッセージはリンク時に出力されるんじゃないの?
なのに「実行時にうまく行かない」・・・???

どっちだ
522デフォルトの名無しさん:2007/07/28(土) 17:12:27
>>521
ですからコンパイルまではうまくいくんですよ。
つまりプログラムにはなんの問題もないと言ってるんです。
実行するとエラーが出るので、
環境依存なのかWinのフォントあたりがバグってる可能性もアリ?かと。
523デフォルトの名無しさん:2007/07/28(土) 17:15:32
コンパイルができる≠プログラムに問題がない
524デフォルトの名無しさん:2007/07/28(土) 17:17:09
コンパイルができてリンクに失敗してるんじゃ
525デフォルトの名無しさん:2007/07/28(土) 17:29:41
>>521
だから、お前が貼った、「・・・は未解決です。」 ってのはリンク時に出るエラーじゃないの?

こんなエラーメッセージが実行時にでるの?
意味が分からん
526デフォルトの名無しさん:2007/07/28(土) 17:30:24
アンカーミスった。>>522
527デフォルトの名無しさん:2007/07/28(土) 17:33:03
最近の若者はコンパイルとリンクの別を知らんのかね
どっちも「コンパイル」に含めてるんだろうな
528デフォルトの名無しさん:2007/07/28(土) 17:33:22
>>522
ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
529デフォルトの名無しさん:2007/07/28(土) 17:37:27
だから、どう見ても実行時エラーじゃなくてリンク時エラーに見えるんだが
530デフォルトの名無しさん:2007/07/28(土) 18:07:10
横からすみません
>>504で書かれていることと同じような内容をを日本語で解説しているサイトはありますでしょうか
興味があるのに無い英語力で行った和訳がめちゃぐちゃでニントモカントモ
531デフォルトの名無しさん:2007/07/28(土) 18:15:37
>>523-527 >>529
あーすいませんVisual Studioから実行するとリンクが動くの忘れてました。

DirectX SDKを入れなおしても同じエラーが出るので、
そうなるとstruct ID3DXSpriteというやつがバグってるということですか?
こういうバグの報告はマイクロソフトにすればいいのかもわかりません。
もしくはプログラムには問題ないので、リンクをしない方法があれば教えてほしいです。
532デフォルトの名無しさん:2007/07/28(土) 18:18:36
プログラムを書くだけで実行しないのであれば、リンクをする必要はありません。
533デフォルトの名無しさん:2007/07/28(土) 18:19:57
なかなか良いキャラが出てきましたね
534デフォルトの名無しさん:2007/07/28(土) 18:23:53
うむ

ネタならネタだと先に言ってくれりゃいいのによもう
535デフォルトの名無しさん:2007/07/28(土) 18:29:26
>>531
すごいバグを見つけたね!
536デフォルトの名無しさん:2007/07/28(土) 18:36:35
>>520
おまえ無知(無恥)すぎるよ
537デフォルトの名無しさん:2007/07/28(土) 21:27:41
> そうなるとstruct ID3DXSpriteというやつがバグってるということですか
あなたのコードに問題があります。

LNK2001 を MSDN ライブラリで調べるか
ぐぐる先生に聞きましょう。
538デフォルトの名無しさん:2007/07/28(土) 21:31:47
DirectXキチガイ質問スレと分離したらどうだろうか
539デフォルトの名無しさん:2007/07/28(土) 21:33:33
本人が認識していない以上、自己判断は出来ないだろ
540デフォルトの名無しさん:2007/07/28(土) 21:35:28
こっちをキチガイ質問スレにしてみんな移動すればいんじゃね
541デフォルトの名無しさん:2007/07/28(土) 21:39:16
最初に自分を疑えない(再確認出来ない)奴は、どんな種類の仕事でも止めた方が良いよ。

リンクエラーが出るって事は、お前が悪いんだよ。
リンクしているライブラリが足りネーか、必要なヘッダをちゃんと読んでないかだろ。
542デフォルトの名無しさん:2007/07/28(土) 21:39:48
543デフォルトの名無しさん:2007/07/28(土) 21:49:06
>>542
結城先生あいかわらずいい仕事してるなあ
こういう視点の文章が日本語で読めるのはとても有難い
544デフォルトの名無しさん:2007/07/28(土) 21:58:28
>>542
アリガタス
調べても辿り着かないようなサイトなので助かります
545デフォルトの名無しさん:2007/07/28(土) 22:00:28
>>531
まずコンパイルとリンクというのがどういう処理なのかを勉強すれ。
その上で、リンカが
「main.objおよびmy3dlib.objという2つのオブジェクト(ソースをコンパイルしたもの)において
g_ptextspriteが見つからない」
と言ってることを理解すれ。
g_ptextspriteはどこで宣言してんだ?

あとは何すればいいかわかるだろう、わからないならもう少し基礎を重視したほうがいい
546デフォルトの名無しさん:2007/07/28(土) 22:18:30
>>543
場所がyukiwikiってだけで訳したのは結城じゃないぞ
547デフォルトの名無しさん:2007/07/28(土) 22:20:54
>>547
How Google Earth [Really] Worksで日本語ググルすれば上位に出てくるのだが。
辿り着かないんじゃなくて、辿り着けない、だろ。
548デフォルトの名無しさん:2007/07/28(土) 22:22:16
自戒乙
549デフォルトの名無しさん:2007/07/28(土) 22:22:44
悔しそう
550デフォルトの名無しさん:2007/07/28(土) 22:28:49
>>547
英語のサイト名+日本語で検索する発想がねーわwww
551デフォルトの名無しさん:2007/07/28(土) 22:32:07
そうか。
まぁ日本語訳あるの知ってて敢えて最初に英語版を貼った俺が悪かったよ。
お前らに読めるはずがなかったんだな。
552デフォルトの名無しさん:2007/07/28(土) 22:37:18
>>550
サイト名じゃなくて記事名。
面白そうな英語の記事は訳されてたり概要が紹介されてたりすることが多々あるので
日本語でググれば結構引っかかる。
553デフォルトの名無しさん:2007/07/28(土) 22:41:42
サンプルの解説ならともかく、アルゴリズムの解説であれば誤訳しちゃうととんでもないことになっちゃうからね。
和訳のミスを理解出来るならもうそのアルゴリズムを理解しているんじゃないかと。
もし和訳しているサイトがあれば誤訳は最小限に抑えれるし、間違っててもしてきしやすいよね。
このスレじゃないけど個人的に誤訳したものを持ってくるより、お前の誤訳で打ち込んだソースを持って来いとか言いたい時が多々。
554デフォルトの名無しさん:2007/07/28(土) 22:50:31
>>532-553
あまりDirectXには詳しくないので、DirectXのリンクについてもう少し勉強します。

>g_ptextspriteはどこで宣言してんだ?
これは市村さんに聞かないとわからないです。月曜日まで待って下さい。
555デフォルトの名無しさん:2007/07/28(土) 23:25:39
>>542で小さな画像を用意する(ミップマップ用)とありますが
用意するのは良しとして描画する面の数が膨大になりますよね
この点はDirectXのミップマップの機能に任せて大丈夫なのでしょうか

動きの早いゲームだと常時画像の解放と読込が行われることに?
処理落ちするんじゃないかと思ってたり・・・そこはプログラマの腕次第ですね
556デフォルトの名無しさん:2007/07/28(土) 23:26:46
市村さんかわいそす
557デフォルトの名無しさん:2007/07/29(日) 00:19:49
市村さん: それは派遣クンに聞かないとわからないです。
派遣クン: DirectXがプログラムどおりに動かない原因を調べるのは僕の仕事ではありません。

>>520あたりに戻る
558名無しさん@そうだ選挙に行こう:2007/07/29(日) 05:35:03
HDR勉強中です。

例えば、レンダリングはA16R16G16B16FのFP16で行い、プレゼントするときにX8R8G8B8のバックバッファーに転送するとどういった感じで丸められるんでしょう?
A16R16G16B16Fって-1024.0〜1024の範囲だと思うのですが、これがまず0〜1024にクリップされて、それから0〜255に変換されるのでしょうか?
それとも-1024〜0と256〜1024がクリップされて0〜255に変換されるのでしょうか?
559名無しさん@そうだ選挙に行こう:2007/07/29(日) 11:17:41
やってみろよ
560名無しさん@そうだ選挙に行こう:2007/07/29(日) 17:20:36
入出力が決まっていて内部が個別の実装に委ねられているというのは
それはそういう仕様なんであって
手近にある一個で試してみた結果でOKとは限らないわけです

561名無しさん@そうだ選挙に行こう:2007/07/29(日) 18:33:51
>>555
ミップマップはDirectXのでいいと思う。
水平近くならいいけど、上空から見下ろす時にかなりの箇所を描画しなくてはならないから、
3レベルぐらいのテクスチャを用意したほうがいい。

それよりテクスチャや地形に凹凸を細かくつけたモデルを用意するとなると、
1つのマップに1万種類ぐらい用意しないといけなくなる。
移動可能範囲の設定や砂埃が立ったり水しぶきが出るとかの設定とか。
面倒極まりない作業をどうにかしないとな。全面海とかなら楽なんだが。
562520:2007/07/29(日) 22:36:18
別の方が話題を膨らませていてびっくりしました。
明らかにリンクに失敗しているようです。
とりあえずspriteは無視して作業しようと思います。
文字描写系は全部コメントアウトしましたw
文字もグラフィック系使おうかな、とも。
回答していただいた方ありがとうございました。
563デフォルトの名無しさん:2007/07/30(月) 00:16:41
>>562
g_ptextsprite の実体を作ってないだけじゃないのか
564デフォルトの名無しさん:2007/07/30(月) 05:05:37
>>558
そもそもA16R16G16B16FからX8R8G8B8のバックバッファーへ転送ってサポートされているんだっけ?
565デフォルトの名無しさん:2007/07/30(月) 19:13:23
>>558

レンダリングターゲットとなるテクスチャ(バックバッファ)を作成する際のフィルター指定で
動作が変わったような記憶があるけど、ちょっと動作確認出来ない。
566稼げるとか騙されて正社員辞めて一般派遣やってるバカ:2007/07/31(火) 13:19:35
元々は正社員の特定派遣だったのに取引先にフリーのほうが稼げるとか騙されて
結局、一般派遣やってるバカがいるんだけどw

一般派遣の身分のどこがフリーだってのw
毎日毎日、他人様の会社に出勤する派遣契約書にサインする段階で気づけよ

なんか派遣先といい関係、とか言ってたから思わず吹き出しちゃったよw
最近はマネージャーもやってるとか寝言言ってるし、派遣がまねぇじゃぁ?はあ!?w

そもそも信頼されてるなら直接契約するか正社員にするはずだが、
いつでも切れる派遣会社経由って舐められてんだよ

派遣期間が長くならないうちに早く就職しろ、と忠告すると、ウッキー!って逆ギレw
バカで頑固だから何度言っても理解できない
騙されたとはいえ結局は自分で決めて一般派遣やってる癖に逆ギレしちゃってまぁ
人間として本当に恥ずかしい
567デフォルトの名無しさん:2007/07/31(火) 14:02:40
>>565
そんなん見たこと無いなぁ。
568565:2007/07/31(火) 19:35:08
>>567
ごめん。テクスチャロード時の原色フィルタの事と記憶がごっちゃになってました。
レンダリング時のはわかんないっす。
569デフォルトの名無しさん:2007/07/31(火) 21:49:07
>>566
派遣もマネージャーやるぞ(マジです)
570デフォルトの名無しさん:2007/07/31(火) 22:59:31
予算にタッチできない派遣が一体何をマネージすんの?
571デフォルトの名無しさん:2007/07/31(火) 23:16:27
これからの時代はオレら派遣が生き甲斐や夢をマネージするんだ!
と求人広告に書いてありました。
572デフォルトの名無しさん:2007/07/31(火) 23:18:28
バカか?
言われたことを言われた通りにやるだけの派遣が何を生きがいにしろと?
年収があがることのない派遣が何の夢を持てと?
573デフォルトの名無しさん:2007/08/01(水) 00:23:28
スレと無関係な話に食いつく馬鹿を何とか出来ないのか?
574デフォルトの名無しさん:2007/08/01(水) 03:49:27
>>570
資本主義だし
派遣だってノルマを決められて締め付けられるってことさ
具体的にいうと半請負状態になってて派遣社員の人数を進捗具合によって調節したり
人数的、スキル的にできるかどうか、予算的にやるかどうかを決める役

別に重要でもないし難しくもないけどね
+1してみてよかったらさらに+1、
+1してみて駄目だったら−1
こんな程度のこと
575デフォルトの名無しさん:2007/08/01(水) 05:21:40
荒らしでしょ?定期的に派遣の話して、無関係な雑談を装ってるけど。
576デフォルトの名無しさん:2007/08/01(水) 15:24:17
>>573
NG登録もしらない馬鹿がうようよしてんのはしょうがない
だって初心者スレだし
577デフォルトの名無しさん:2007/08/01(水) 15:29:54
派遣をNGワードに登録完了
578デフォルトの名無しさん:2007/08/01(水) 15:49:50
>>558
A16R16G16B16FからX8R8G8B8への転送だが同じく不思議に思ったんで試してみたら俺のマシンだとそもそもA16R16G16B16Fをサポートしていないみたい。
誰か助けてやってくれ。
579デフォルトの名無しさん:2007/08/01(水) 16:09:21
NGワード登録って現実逃避だよね

ハケン、ジュケン、シュウショク、ニート、、、
彼は突き付けられる現実を全てNGワード登録して現実から逃げて逃げて逃げまくるのであった。
580デフォルトの名無しさん:2007/08/01(水) 19:20:22
一度作成した頂点バッファでもLock(),UnLock()で内容を書き込めると思うのですが、
その頂点フォーマットが、座標、法線、テクスチャだった場合、座標データだけを
書き換える事ってできますか?
お願いします。
581デフォルトの名無しさん:2007/08/01(水) 19:41:50
ロックして座標だけ書き換えればいい。

ただし、

ロックする際に D3DLOCK_DISCARD を指定したときは内部で新しく作成されたバッファが
返される可能性があるので、座標だけでなく全てのデータを書き込まないといけない。

ただし、

D3DLOCK_DISCARD を指定しないとパフォーマンスが大幅に落ちる可能性があるので、
頂点データを動的に変更する場合は D3DLOCK_DISCARD を指定して
全データを上書きするのが普通。
582デフォルトの名無しさん:2007/08/01(水) 19:46:40
>>581
なるほど。詳しい説明ありがとうございます。
参考にされていただきます。
583デフォルトの名無しさん:2007/08/02(木) 16:11:21
うーん、訳分からん助けてくれ。

写真をテクスチャーとして貼り付けるようなソフトなんだが、ピクセルシェーダーで加工するとなんかかなりおかしい。
で、調べてみたらガンマがリニアとsRGBを考慮しないといけないって事が分かったんで、処理はリニアにすることにした。
で、PresentするときにLINEAR_CONTENTってフラグを立てるとsRGBにガンマ変換してくれるんでやったーって感じと思ったら、
これってX8R8G8B8しかサポートされていないのか?
しかもフルスクリーンモードだと駄目みたいだけど、どうすれば良いのか。
584デフォルトの名無しさん:2007/08/02(木) 20:03:35
ピクセルシェーダを使わずにソフトウェアで自分の思うように処理すればいい。
はい解決。

585デフォルトの名無しさん:2007/08/02(木) 20:26:22
てゆーか状況説明に「なんかかなりおかしい」とかやめてけれ。
586デフォルトの名無しさん:2007/08/02(木) 22:48:03
>>583
何を言ってるのかさっぱりわからないw
587デフォルトの名無しさん:2007/08/02(木) 22:52:17
このイミフな文章は最近のBBX並だな
588デフォルトの名無しさん:2007/08/02(木) 23:10:46
プログラムもきっと意味不明に違いない
真面目に書いてるとしたら最低の部類だな

いつ、どこで、だれが、なにを、どうした

の定型文に当てはめて文章作るところから叩き直さなきゃ確実に駄目だな
589デフォルトの名無しさん:2007/08/02(木) 23:39:26
>>583
ttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/directx9_c/directx/graphics/programmingguide/advancedtopics/gamma/gamma.asp

D3DPRESENT_LINEAR_CONTENTはX8R8G8B8専用とウィンドウモード、ドライバサポートがあるときのみ
動作する簡易機能。
どのモードでも動作させるなら、ここに書いてるようにごたごたと気にしながら処理する必要がある
最終的に色書き込むときに、シェーダでsRGB変換してもいいんでないかな

というかこの質問、あまり初心者じゃないぞw

>>585
その行の説明がどうだろうと、質問の内容にはあまり関係はない。動機の説明だし
590デフォルトの名無しさん:2007/08/03(金) 00:15:16
質問です。
描画時の拡大縮小の際、D3DTEXF_LINEARを指定しているのですが、意図とはちょっとだけ違った描画になってしまってコマっています。

D3DTEXF_LINEARは、4ピクセルを参照して補完するというのは知っています。
そのせいかキャラクターの淵が思っているのとは少し違うようになってしまいます。

□□□□□□
□□■■□□
□■■■■□
□■■■■□
□□■■□□
□□□□□□

□はRGBAが(255, 0, 255, 0)なピンクの透明ピクセル
■はRGBAが(0, 0, 0, 255)な黒い不透明ピクセル
とします。
これを、拡大や縮小すると、黒丸のふちにピンクが混じって現れてしまうのです。
4ピクセルを参照して補完するわけですから分からないでもないのですが、ピンクはα値が0。
見えて欲しくない色なわけです。

D3DTEXF_POINTやD3DTEXF_NONEにすればピンクはまったく参照されなくなる(単純に透過される)のですが、補完自体は欲しいところ。
これを解決(D3DTEXF_LINEARをかけつつ、透明色は完全に無視させる)することはできますでしょうか?
591デフォルトの名無しさん:2007/08/03(金) 00:24:13
>>590
変えたいのは透明度だけなんだから全部黒でいいじゃん。

□はRGBAが(0, 0, 0, 0)な黒の透明ピクセル
■はRGBAが(0, 0, 0, 255)な黒い不透明ピクセル

□□□□□□
□□■■□□
□■■■■□
□■■■■□
□□■■□□
□□□□□□

PhotoShopみたいにちゃんと透明度管理してくれるソフト使ってると
いちいち透明部分を別の色にする必要ないと思うんだがな。
592デフォルトの名無しさん:2007/08/03(金) 00:32:03
>>590
フィルタなんて全部OFFにして
最後に一発フルシーンアンチエイリアスでFA
FSAAなければ適当に拡大縮小してぼかしてもいい
593デフォルトの名無しさん:2007/08/03(金) 00:36:13
Zバッファとかステンシルバッファを駆使してマスクかけられんかな?
594デフォルトの名無しさん:2007/08/03(金) 00:45:45
はじめっからぼかしたキャラに淵つけたもんをテクスチャに描いておくw
595デフォルトの名無しさん:2007/08/03(金) 01:01:58
>>590
テクスチャフィルタは透明かどうかを考慮せずに補間するので
完全に透明な部分の色も混ざってしまうのは仕方が無い。
(そもそもαは透明度と決まっているわけでもない)

解決方法は、不透明部分に隣接する透明部分には、不透明の
部分からうまく補間した色を置いておくのが普通。
596583:2007/08/03(金) 02:22:45
>>589
やはりそうですか、、、なまじ一部にだけ機能が提供されているからモードによる動作違いに悩みますな。
結局はこの簡易機能には一切関わらず、とにかく読み込み時にリニア、Present直前の書き込み時にシェーダーでsRGBにするという一貫性を持たせるしかないようですね。

>というかこの質問、あまり初心者じゃないぞw
やはりそうですか。周りでも聞いても”はぁ?”って感じでみんなリニアとノンリニアを考えずに適当にやっているみたい。ま、ゲームならどうでも良いでしょうが。
ググっても一切情報は出てこないですよね。いやはや確信が持てて助かりました。
597デフォルトの名無しさん:2007/08/03(金) 07:05:38
>>595
おお、
つーか、あれか、デザイナさんの作ったデータみると
キャラの枠よりαの枠のが2まわりぐらい小さくなってるな
そういうことか・・・なるほど・・・今気付いてしまったw
598デフォルトの名無しさん:2007/08/03(金) 10:59:59
>>597
もう少し日本語を書く訓練しておきなさいよ。まるで小学生の日記のようじゃないですか。
599デフォルトの名無しさん:2007/08/03(金) 14:34:15
マウスを使用したゲームを作っているのですが
なぜか、カーソルの座標が(0,0)か(640,0)の時にクリックをすると
ゲームが終了してしまいます。


そこで、カーソルの座標のyを常に1以上にしたいのですが
「カーソルの座標を取得する」関数はあるのですが
「カーソルを任意の場所に移動させる」関数が見つかりません。


未熟者の浅はかな質問ではありますがよろしくお願いします。


それと、出来れば(0,0)と(640,0)の時にのみゲームが終了する
理由も教えていただければ幸いです。


後、参考になるかどうかは分かりませんが、
ゲーム中は「カーソルキーを非表示にする」という処理を行っているのですが
(0,0)と(640,0)の時にのみカーソルキーが表示されてしまいます。
600デフォルトの名無しさん:2007/08/03(金) 15:10:01
それはプログラムが悪いんじゃないかとしか
601デフォルトの名無しさん:2007/08/03(金) 15:21:46
>>599
ウィンドウスタイルに問題あるんじゃないか?
フルスクリーンならタイトルバーとか閉じるボタンは付けてはいかんぞ。

マウスカーソルを移動させるAPIはあるが、そんな対処療法のためには
教えるわけにはいかんな。誤魔化さないで、ちゃんと原因を突き止めろ。
602デフォルトの名無しさん:2007/08/03(金) 16:28:12
>>601
601さんのアドバイスのお陰で出来ました。
CreateWindowEXの第1引数を0からWS_EX_TOOLWINDOWにしたら、出来ました。

これからは、すぐ諦めず原因を追求していきたいと思います。
本当にありがとうございました^−^
603デフォルトの名無しさん:2007/08/03(金) 17:09:17
それ本当に解決になってるのか?
604デフォルトの名無しさん:2007/08/03(金) 18:23:35
>>601
× 対処療法
○ 対症療法
605デフォルトの名無しさん:2007/08/03(金) 19:55:52
>>602
XPスタイルだからだろ?

デフォルトのLunaはタイトルバーの左上と右上の角が丸くなってるから、
背景になっている部分をクリックしてウィンドウが非アクティブ化したとか
そんな下らん理由だろ
606デフォルトの名無しさん:2007/08/03(金) 21:53:20
質問させてください
テクスチャーをD3DPOOL_SYSTEMMEMで読み込んだときの「システムメモリー」とはどこを指すのでしょうか?
いわゆるmallocやnewで割り振られるメモリーのことだと思っていたのですが

・タスクマネージャーのプロセスタブを見ると確かにメモリーを食っているっぽい
・だけどウインドウを「最小化」するとタスクマネージャーのプロセスタブ上ではメモリー食ってない状態に
・でもパフォーマンスタグを見る限り、やっぱりメモリー食いっぱなし

となっており、混乱しています。
607デフォルトの名無しさん:2007/08/03(金) 22:01:41
>>606
『「最小化」すると』のあたり、分かって聞いている釣りにも見えるな。
608デフォルトの名無しさん:2007/08/03(金) 22:07:59
>>606
最小化したらスワップするからメモリを食ってない状態になるんでしょ
609デフォルトの名無しさん:2007/08/03(金) 22:13:10
ワーキングメモリの話かなぁ
610デフォルトの名無しさん:2007/08/03(金) 22:43:41
>>607-608
釣りではないです。
最小化するとスワップ…。スワップっていうのは確か、メモリー上のをHDDの仮想メモリに逃がすんですよね。
なるほどそういう理由だったのですか。

てっきり「テクスチャーロード時に一時的に使ったメモリーを、最小化した機会にやっと開放したのかな」とか思ってました。
Java脳ですか。

じゃあ単純にシステムメモリー=PCのメインメモリですね。
ありがとうございました。
611デフォルトの名無しさん:2007/08/03(金) 22:50:58
>>610
最小化時にはスワップだけでなくメモリを解放する事もあるよ
612デフォルトの名無しさん:2007/08/03(金) 23:26:04
>>591-597
アドバイスありがとうございました。

まず1ドット太らせる機能を持つツールを探してみました。
フォトショですらそういう機能はないそうです。

次に絵描きさんにそもそも太らせるようお願いしようかと検討してみました。
小さめのドット絵を扱うので元画像を太らせつつ描くのはつらいようです。

最後に、テクスチャーを読み込んだら即座にロックし、プログラムで1ドット太らせてみました。
思いのほか処理が早く、本来の画像読み込みから10%程度多く時間がかかるくらいで済みました。
画像も綺麗に拡大縮小できています。
613デフォルトの名無しさん:2007/08/04(土) 00:04:34
アルファ効かせてるならコピーして上下左右斜めにそれぞれ1ドットずらして
ペタリと貼るだけな気もする
でそれをまたキャプチャー
614デフォルトの名無しさん:2007/08/04(土) 01:01:13
premultiplied alpha にするという手も。
615デフォルトの名無しさん:2007/08/04(土) 01:23:41
初心者ウザすぎ。もう来るな
616462:2007/08/04(土) 01:38:46
人とのコミュニケーション能力の無いガキは来るな
617デフォルトの名無しさん:2007/08/04(土) 08:21:42
>>612
太らせる?
元のキャラ絵の輪郭からα画像を生成して(フォトショップの色域選択で可)
縦横2ドットずつ縮小するだけじゃね?

>>615
スレタイ嫁w

質問するほうも初心者として扱われるのを覚悟しなきゃいけんし、
答えるほうも多少わけわからん日本語を覚悟しないと駄目だろ?
618デフォルトの名無しさん:2007/08/04(土) 16:50:48
>>617
多少わけわからん日本語てwww

日本語がわけわからん理由としてDirectXの初心者だからってのは言い訳にもならないぞ。
質問する側であれ答える側であれ、分かりやすい日本語を書くべきなのは当然だろう。

619デフォルトの名無しさん:2007/08/04(土) 17:31:45
質問者に関しては
・開発環境
・目的
・現状
・現状へのプロセス
これらをハッキリ伝えないと回答のしようが無い場合が多い。
日本語云々もそうだけど、曖昧にしたり何故か事実を歪曲させて書かれるとモウネ
620デフォルトの名無しさん:2007/08/05(日) 03:28:44
質問です
ゲームのエフェクトとしてパーティクルとビルボードをしようしようかとおもうのですが
その際の処理速度を上げる方法としていい方法は何かないでしょうか?

同じテクスチャのパーティクルはまとめてD3DLOCK_DISCARDで頂点バッファを
作成し描画する程度は思いつくのですが・・・
621デフォルトの名無しさん:2007/08/05(日) 03:34:07
>>620
普通のモデルとやることかわらんけど?
やってみて重かったら最適化しろよ
無駄だぞ
初心者のくせに組む前から失敗したくねーとか甘いこといってんじゃねぇよ
622デフォルトの名無しさん:2007/08/05(日) 07:20:47
なんでこう喧嘩腰になるのかねぇ…
嫌なことあった?
623デフォルトの名無しさん:2007/08/05(日) 08:13:43
2chでストレス発散するタイプ?
八つ当たりされた方はたまらんな。
624デフォルトの名無しさん:2007/08/05(日) 08:39:54
〜をやってみた→処理が重い→どうすれば軽くなる?
ならわかるけど
〜をやるつもり→速い処理教えて
↑こんな奴相手にしなくていいと思う
やんわり言っても同じことだと思うけど?
ただの煽りと区別つかないのはちょっと困る
625デフォルトの名無しさん:2007/08/05(日) 09:13:17
俺には>>621は煽りにしか見えん。
つか>>621は相手にしてんじゃん。相手にした上で煽ってる。

>やんわり言っても同じことだと思うけど?
同じじゃねーよタコ。

って言われたらカチンって来るだろ?
顔が見えないネットじゃ文面に気を使うのは大事だと思うよ。
626デフォルトの名無しさん:2007/08/05(日) 09:13:47
ゆとりにイライラしても始まらないのは確か。
627デフォルトの名無しさん:2007/08/05(日) 09:17:19
>>625
>同じじゃねーよタコ。
どう同じじゃねーんだよタコ
って返すだけだけどな
628デフォルトの名無しさん:2007/08/05(日) 09:20:19
age
629デフォルトの名無しさん:2007/08/05(日) 09:20:53
正直、現実で>>620のような奴が増えては困る
その場その場の方法なんて教えるだけ無駄だと俺は思う
初心者スレは技術より技術者の有り方を叩きこんでやるのが俺のおせっかい

それが嫌(初心者扱いがうっとおしいと思う)なら通常の質問スレにいけ
630デフォルトの名無しさん:2007/08/05(日) 11:01:38
CComPtr<IDirect3DTexture9>をCreateTexture等の引数に直接指定した場合
Attachを使わずに代入したのと同じく参照カウントは2になってしまうんでしょうか?
631デフォルトの名無しさん:2007/08/05(日) 11:15:32
すみません教えてください

DirectX BusterというのでDirectXをアンインストールした後
再インストールしようとしたのですが
「インストールの完了」と表示されても
DirectXの診断ではヴァージョンが更新されていません
どうすればインストール出来るのでしょうか;
632デフォルトの名無しさん:2007/08/05(日) 11:24:06
>>629
ここはDirectXについてのスレです。
技術者の有り方については別の場所でやってください。
まずあなた自身が勉強して日本語と空気を読めるようにならないと、
誰にも教えることなんて出来ないでしょうけどね。
633デフォルトの名無しさん:2007/08/05(日) 11:50:47
>>632
同意。そんなのはリアル世界で会社の糞後輩相手に右往左往してやって欲しい。
ここでは逆に純粋に技術話を端的にして欲しいな。
634デフォルトの名無しさん:2007/08/05(日) 12:11:15
>>632
そう?だれでも同じレスつけると思うけど?
だって無駄じゃん
こいつは自分でやってもみねぇで何をもって速くなったと判断するのか?
いま、その技術がそこでできるかどうかなんて問題じゃねぇじゃん
直接的に
Q1→A1
Q2→A2
 ・
 ・
 ・
ってやることに全く意味を感じない
どうせヘルプ見れば載ってるようなのばっかだろ?
また、次にとるべき行動が誰の目から見ても明らかなもんとかよ
調べるの面倒だから聞いたとかそんなもんだろ?
現実、会社で一発でもやってしまうとそこで終了な職場もあるから俺はそういうのを技術を通して教えて生きたいと思う

質問する側も勝手にすればいいと思うけど回答つける側だって勝手じゃん?
俺は俺のやり方でやらせてもらうよ
635デフォルトの名無しさん:2007/08/05(日) 12:20:25
そういうレスが要らない
636デフォルトの名無しさん:2007/08/05(日) 12:26:10
>>635が次のレスで技術的なことをいいます!
ではドゾー↓
637デフォルトの名無しさん:2007/08/05(日) 12:26:43
僕らは卒業までの期間が決まってるんです。
趣味でやってる暇な社会人とは使える時間が違うんです
638デフォルトの名無しさん:2007/08/05(日) 12:32:55
そういうレスが要らない
639デフォルトの名無しさん:2007/08/05(日) 12:38:23
会社で技術者のあり方を教えるのに
>>621の口調で教えるんだなお前は
640デフォルトの名無しさん:2007/08/05(日) 12:56:38
>>639
多少ですます調に変更はあるものの言うね、まちがいなく
それでシカトして困るの俺じゃねぇし
やる気ないの明らかに相手だし
641デフォルトの名無しさん:2007/08/05(日) 13:15:09
俺は別に心構えとかここで言ってもいいと思ってるけどね
多少ですます調に変わるって言うところが不愉快だ
642デフォルトの名無しさん:2007/08/05(日) 13:36:55
まあ落ち着け
突っ込まれてるのは口調だ
内容については誰も突っ込んでない
そこがまず食い違ってるぞ
643デフォルトの名無しさん:2007/08/05(日) 13:44:47
心構えなら技術のないリタイア組でも口出せるから必死なんだろ。
644デフォルトの名無しさん:2007/08/05(日) 15:04:06
ああ、なるほど。
技術が無いからこの初心者スレにいるが、教えられないけど偉そうには
言いたいって感じか。
645デフォルトの名無しさん:2007/08/05(日) 15:05:00
とりあえずおまえらプールにでも行ってこい
646デフォルトの名無しさん:2007/08/05(日) 17:00:43
むしろ初心者を挫折させたくて仕方がないんだw
647デフォルトの名無しさん:2007/08/05(日) 18:40:49
>>645
市民プールなんて排水口にまきこまれそうで怖くていけねーよ
648デフォルトの名無しさん:2007/08/05(日) 18:42:57
幼女発見
649デフォルトの名無しさん:2007/08/05(日) 18:56:38
排水口の中で
650デフォルトの名無しさん:2007/08/05(日) 19:42:31
市民プールは若い娘はいない。ロリとババアだけだ
651デフォルトの名無しさん:2007/08/05(日) 20:56:49
DirectX SDK を October 2003 から、 June 2007に
バージョンアップしたところ、

プログラム内で、DirectXで文字を表示する箇所、
DrawText( NULL,str, -1,pRect, DT_LEFT | DT_EXPANDTABS, color);

において、

Run-Time Check Failure #0 - The value of ESP was not properly
saved across a function call. This is usually a result of calling
a function declared with one calling convention with a function
pointer declared with a different calling convention.

というメッセージが表示されて停止してしまいます。
これは何が問題なのでしょうか?

ちなみにDrawTextの行をコメントにするとプログラムは正常に動きます。
652デフォルトの名無しさん:2007/08/05(日) 21:37:13
>>651
DrawTextの仕様が変わってんだろ?多分
引数に変更があるはずだから探し出せ
653デフォルトの名無しさん:2007/08/05(日) 21:54:40
DrawTextってGDIか?
654デフォルトの名無しさん:2007/08/05(日) 22:09:09
いいえ。DirectXの方です。
LPD3DXFONT pFont;
pFont->DrawText
として使っています。

>DrawText関数を使う前の、
D3DXCreateFont関数では、S_OKを返していました。
仕様変更をしらべてみます。
655デフォルトの名無しさん:2007/08/05(日) 22:17:06
調べ方わかるか?
SDKのサンプルでDrawTextを使ってるもんを調べるんだ
656デフォルトの名無しさん:2007/08/05(日) 22:26:29
ある呼び出し規約で宣言された関数を
別の呼び出し規約の関数ポインタで呼び出しちゃったと言ってるんで

インクルードフォルダとライブラリフォルダが正しいかとか調べてみては。
昔のインクルードを読んでるのにライブラリが最新のをリンクしてて、矛盾が生じてるとかあるかも
657デフォルトの名無しさん:2007/08/05(日) 22:38:03
>> 655 656
皆さんありがとうございました。解決しました。

古いSDKのフォルダ(DX90SDK)が残っていたので、削除しました。
(新しいSDKは、Program Filesの中にインストールされていました)
そしてリビルドかけたところ、
D3DXCreateFont等がリンクできないというメッセージがでたので、
リンクするライブラリを、d3dx9dt.lib から d3dx9.lib にしたところ、
うまくビルドできました。

658デフォルトの名無しさん:2007/08/05(日) 23:05:54
旧SDK全部アンインストールしてもう1回入れなおしたほうがいいな
659デフォルトの名無しさん:2007/08/06(月) 07:28:23
lib選択してリンクしてるってのがもう怪しいな
660デフォルトの名無しさん:2007/08/06(月) 18:07:06
物体の反射を作ろうとしてるんですが
xファイルから面の法線ベクトルを取得する方法ってありますでしょうか?
661デフォルトの名無しさん:2007/08/06(月) 18:14:00
中のデータを取得するだけ。
662デフォルトの名無しさん:2007/08/06(月) 19:48:10
>>661
xファイルから取得できるのは点の法線ベクトルだと思います
なんとかして面にしたいのですが方法ありますでしょうか?
663デフォルトの名無しさん:2007/08/06(月) 19:52:23
じゃあ各面について辺の外積を求めれば?
664デフォルトの名無しさん:2007/08/06(月) 20:52:01
>>663
そういう計算じゃ駄目なんです
CGツールでは面の法線ベクトルで指定できるわけですから
それを頂点や辺から求めたのでは結果が異なりませんか?
665デフォルトの名無しさん:2007/08/06(月) 21:22:23
エクスポートされたデータが面の法線を出しているのなら、
面を構成している頂点が面の法線になっているだろう。

頭が弱いのか?
666デフォルトの名無しさん:2007/08/06(月) 21:42:25
つまり、単なる平均じゃなくて重み付けの計算がやりたいが、具体的に教えろということだ。
667デフォルトの名無しさん:2007/08/06(月) 21:57:53
意味不明
668デフォルトの名無しさん:2007/08/06(月) 23:04:33
Xファイルには面の法線データは入っていないので、計算じゃだめってんなら、無理です。
669デフォルトの名無しさん:2007/08/06(月) 23:12:14
DirectXの方で面法線なんて設定できたっけ?
670デフォルトの名無しさん:2007/08/06(月) 23:13:18
あ、1頂点につき面の頂点分持てば可能か・・・
671デフォルトの名無しさん:2007/08/06(月) 23:17:18
意味不明
672デフォルトの名無しさん:2007/08/06(月) 23:20:35
モデリングソフト側で面法線を利用してエクスポートしているのなら、
面を構成している頂点の法線が全て共通になるだけの話。
計算も糞もない。

なぜこんな単純なことが分からないのか、それがさっぱり分からない。
673デフォルトの名無しさん:2007/08/06(月) 23:37:56
モルダーにでも聞け
674デフォルトの名無しさん:2007/08/06(月) 23:50:40
>面を構成している頂点の法線が全て共通になるだけの話。
うそーん?
じゃあ点ABCDから、三角形ABC、BCDのポリゴンがあるとしたら
BとCの法線ベクトルはABCと同値なの?BCDと同値なの?
675デフォルトの名無しさん:2007/08/07(火) 00:24:32
ジオメトリシェーダを使えば
面法線も余裕のよっちゃんかしらね。
676デフォルトの名無しさん:2007/08/07(火) 00:26:26
そういや法線の求め方に「正解」ってのは見たことねぇな。

たいがいは頂点の属する面の法線を足し合わせるだけだろうけど、
(足し合わせる前に法線正規化するorしない派がある)
面の向きに依存しないように頂点の角度を考慮に入れたりする場合もある。
この時点でツールによって実装バラバラなのに、ここから面をスムースにする
角度指定なんか入るとさぁ大変。

ぶっちゃけxファイルからツールの法線を完全に再現したいんなら(質問読み違えてる?)
ツールのSDK等でソースが公開されていることを祈るしかねぇんじゃないの?
677デフォルトの名無しさん:2007/08/07(火) 00:40:18
自分はツールにはあまり詳しくないんだが「頂点の角度」ってなんじゃらほい??

それはさておき、ツールで指定した面法線の値に依存するような
反射を作りたいんなら、そもそもX形式でやることがアレかも?
そのツールからX形式にするときに、求める情報が失われているかどうか
電卓とかで調べて、ダメなら結局自前でエクスポーターとか書くしかないんじゃね?
678デフォルトの名無しさん:2007/08/07(火) 06:23:20
>>674
その場合ってBとCの頂点は法線を2つもつためにBとCの頂点がそれぞれ2つになるんじゃね?
ΔABCと△BCDのBCは別の頂点になるんじゃね?っつこと
679デフォルトの名無しさん:2007/08/07(火) 08:27:09
Xファイルのフォーマットの仕様では法線のベクトル配列とインデックス配列は頂点座標のそれらとは独立しているので、
頂点4つに対して法線を6つ用意して法線を共有しない三角形を2つ作るといったことも記述できるよ。
http://msdn2.microsoft.com/en-us/library/bb147193.aspx
ただ、そのような変則的な書き方を利用するかどうかはCGツールのエクスポータ次第だけどね。
680デフォルトの名無しさん:2007/08/07(火) 09:16:48
Xファイルで面法線を記述する例
(頂点座標4個、法線ベクトル2個、三角形2個)

------------------------------
xof 0302txt 0032
Mesh {
4;
-1.0;0.0;0.0;,
1.0;0.0;0.0;;
0.0;-1.0;1.0;,
0.0;1.0;1.0;,
2;
3;0,1,2;,
3;1,0,3;;
MeshNormals {
2;
0.0;-0.7071;-0.7071;,
0.0;0.7071;-0.7071;,
2;
3;0,0,0;,
3;1,1,1;;
}
}
------------------------------

DirectX Viewerではこれで期待通りに動作した。
681デフォルトの名無しさん:2007/08/07(火) 10:00:42
だからモデリング時に面法線を使用した場合、エクスポートした時点でデータが入っているんだから、
これ以上グダグダ言っても始まらないだろ。
入っている物をそのまま使えばいいだけ。

逆に頂点ごとに法線が異なる場合は、モデリング時の指定かエクスポートの仕方が悪い。
結局データを読み込む段階に対処すべき話ではない。
682デフォルトの名無しさん:2007/08/08(水) 00:19:30
面法線を設定したって表示は頂点法線なんだべ?
なんか勝手に反映されてるような気がしないでもないけどねw
されてねぇんかな?
683デフォルトの名無しさん:2007/08/08(水) 01:28:41
ピクセルシェーダーでFP16バッファをXRGB32に書き出しているんですが、
s10e5っていう浮動小数点をどうやって0-255に落とし込むのが適切なんでしょ?
684デフォルトの名無しさん:2007/08/08(水) 01:30:21
*(BYTE*)&f
685デフォルトの名無しさん:2007/08/09(木) 02:27:01
>>683
FP16→RGB32変換ってドライバーがやってくれなかたっけ?
たぶん変換テーブルを持っていてよろしく変換してくれそうだけど、疑問はメーカー違いでも同じテーブルなのかということ。
686デフォルトの名無しさん:2007/08/09(木) 07:19:53
drawprimitiveupの3番目の引数にvectorを使用したいのですが
conts vector*に変換できませんとエラーが出ます。

なにか方法は無いでしょうか?
687デフォルトの名無しさん:2007/08/09(木) 07:27:07
(void*)
688デフォルトの名無しさん:2007/08/09(木) 08:00:18
>>686
俺いつも&(vec[0])ってやってた希ガスw
689デフォルトの名無しさん:2007/08/09(木) 08:35:08
&vec[0] か &vec.front() やね。
次期 C++ では vec.data() とできるようになるみたいだけど。
690デフォルトの名無しさん:2007/08/09(木) 09:13:45
俺は&vec.front()派だな
691デフォルトの名無しさん:2007/08/09(木) 09:25:57
0 がマジックナンバーに見える派だな。
気持ちはよく分かるわ。

ま、補助関数テンプレートでも作るのが一番かもしれんな。
692デフォルトの名無しさん:2007/08/09(木) 09:26:21
conts
693デフォルトの名無しさん:2007/08/09(木) 22:30:07
>>687-692
皆様ありがとうございます。
助かりました。
694デフォルトの名無しさん:2007/08/09(木) 22:56:11
人物モデルを半透明で表示したら、眼球パーツが透けてキモくなりました。
しかし世間のゲームはさほど気にならない気がします。
こういうときは一般にはどう対処するものなのでしょうか?
695デフォルトの名無しさん:2007/08/10(金) 00:25:59
Zだけ先に書いて、ZテストEQUALで色塗るとか、どう
696デフォルトの名無しさん:2007/08/10(金) 00:27:57
>>690
今すぐ Effective STL を読むんだ。
697デフォルトの名無しさん:2007/08/10(金) 00:29:30
>>694
半透明で表示しない(結構マジレスですw)
かもしくは
眼球もしくは透けては困るパーツをZバッファ使って後から描くとか小細工で逃げる
かもしくは
一度どっか別のテクスチャに描画してから改めて半透明で描画
かもしくは
・・・ごめん、俺、こんなことしか知らないや・・・w
698デフォルトの名無しさん:2007/08/10(金) 01:47:09
すんまそん。
今DirectX使ってお絵かきソフト作ろうと思ってるんですが(アホ)
各レイヤの内容を一旦テクスチャとして描き出してからそれをバックバッファに
アルファ値指定して描画って事をやりたいのです。

で、各レイヤー用のテクスチャに対してレンダリングする事は出来るのですが
バックバッファ以外にレンダリングするとFSAAが効いてくれません。
自前でスーパーサンプリングとかせずにテクスチャバッファへレンダリングする
時にFSAAによる補間処理を有効にする事って出来るのでしょうか?
699デフォルトの名無しさん:2007/08/10(金) 01:50:10
>>683
俺も同じ疑問を持っている。
FP16って浮動小数点だよな。どうやってガンマ2.2の0-255の整数に落とし込むんだろ?
700デフォルトの名無しさん:2007/08/10(金) 03:02:17
698ですが、色々と調べてみると我ながらアホな事を聞いたものだと思いました。

テクスチャのバッファとしてはDirectXはマルチサンプル形式をサポートしてない。
(サポートする意味が無い)
マルチサンプルの方式自体はドライバ側で隠蔽されているので、
Present時に必要であればダウンサンプルを行っている。

要するに、テクスチャバッファへレンダリングした場合FSAAが有効にならないのは
当然の事でなのですが、Present時にしか個々のFSAA処理に応じた解決
(ダウンサンプリング)がなされないという事は、バックバッファ以外に
マルチサンプルサーフェスを作成してそこにレンダリングした結果を
バックバッファへコピーor合成していくしか方法は無いという事ですよね。

ところがMSDNを見ると、

次のいずれかの場合、IDirect3DDevice9::StretchRect は失敗する。
転送元サーフェイスがマルチサンプリングされている場合 (MultiSampleType != D3DMULTISAMPLE_NONE で作成した場合)。

という記述があるのですが。(´・ω・`)どうしろと。
701デフォルトの名無しさん:2007/08/10(金) 06:15:03
>>698
イミフ
やりたいこと・解決したいことは

>各レイヤの内容を一旦テクスチャとして描き出してからそれをバックバッファに
>アルファ値指定して描画って事をやりたいのです

じゃなくて

>バックバッファ以外にレンダリングするとFSAAが効いてくれません

なのな?
つーか、何がしてぇの?
普通にバックバッファに描画して必要な分(描画したい数だけ)Presentすりゃいいじゃん
リアルタイムでワンフレいくらで動かしてるわけじゃないんしょ?
数分Presentすればいいじゃない?

つか、何で悩んでるのかわからん

>各レイヤの内容を一旦テクスチャとして描き出してからそれをバックバッファに
>アルファ値指定して描画って事をやりたいのです

これはできてんだよね?
702デフォルトの名無しさん:2007/08/10(金) 09:49:34
>>701

自分で見直してみてもイミフでした。すんまそん(´・ω・`)
基本的にベクタのお絵かきソフトなので、CPUが持ってるのはベクタデータのみ
レンダリングは全部VRAM上でやりたいのです。

複数のレイヤー毎にカラーの違うベクタデータを持っているものとして

それをレンダリングする時にFSAAが効いてないと汚くなるので
効かせたかったのですが

・FSAA効かせてバックバッファに描画
・バックバッファの内容をテクスチャバッファにコピー

までは出来たましたが、そのテクスチャバッファに書かれているデータの
アルファ値は全部FFのようで、描画されてない部分まで下地の色を持って
しまっているようです。

当然それをアルファ値指定して描画すると、透明にしたい部分も下の
レイヤーに影響を与えてしまうわけで。
何か良い方法はないでしょうかorz
一旦サーフェスをロックしてCPUでごにょごにょすれば余裕なのは
分かるのですが、なんか負けた気がするので(´・ω・`)
703デフォルトの名無しさん:2007/08/10(金) 11:40:28
バックバッファをアルファ付きフォーマットにすればいいんじゃない
704デフォルトの名無しさん:2007/08/10(金) 21:58:19
>>702
まだ、意味不明なんだけど
この手順じゃ駄目なんだっけ?

0.レンダリングステータスにFSAAを設定
1.ベクトルデータを使ってアルファ付きテクスチャバッファを作成
2.普通にアルファを効かせてバックバッファにレンダリング
3.Presentで目標物に描画

1〜3まで必要な数だけ繰り返す
じゃ駄目な理由ってなんだっけ?
705デフォルトの名無しさん:2007/08/10(金) 22:02:49
あーなるほど
1のときにサーフェイスをロックして色々やらずに
なんとかする方法を探してるってこと?
706デフォルトの名無しさん:2007/08/10(金) 22:49:26
作ったゲームのデータをプレイヤーから見れないようにする方法はありますか?

ttp://studiokingyo.fc2web.com/dxlib/kowaza/k4.html

などを参考にしましたが、さっぱり意味がわかりませんでした。
多少不確実でも簡単な方法があったら教えてください。

ちなみに、横スクロールシューティングを作ってるレベルなのでできるだけ簡単にお願いします
707デフォルトの名無しさん:2007/08/10(金) 22:52:30
・リソースにしてexeにリンクする
・データを暗号化する
708デフォルトの名無しさん:2007/08/10(金) 22:53:10
>>706
exeのなかに全部入れちまえ
709デフォルトの名無しさん:2007/08/10(金) 23:09:41
>>707
データを暗号化というのはやっぱり>>706のURLのようにソースをいじったりと複雑になりますか?


>>708
kwsk
710デフォルトの名無しさん:2007/08/11(土) 00:20:42
暗号化は、データをどうやって読み込んでるかと、どのていど強力な暗号化をしたいかによって、変わってくる。

exeの中に入れるのは、解りやすい古典的な方法だと
const char data[] = { 0x42, 0x40, ......... };
みたいなのをソースのどこかに埋め込む。

もうちょっと普通の方法だと、リソースとして入れる。
使ってるコンパイラは何?
711デフォルトの名無しさん:2007/08/11(土) 00:27:25
質問者のレベルからしてXORで十分じゃね
712デフォルトの名無しさん:2007/08/11(土) 00:37:36
>>706
D3DXCreateTextureFromFileなんて関数を使うのをやめれば、何も迷わない。
713デフォルトの名無しさん:2007/08/11(土) 00:42:53
VC++2005でDirectXをやる本のサンプルでウィンドウを表示するプログラムがあるんだけど
コードを部分的にしか書いてなくて初期化とかのやりかたがわかりません。
#includeとかつかって何か読み込むんですか?
714デフォルトの名無しさん:2007/08/11(土) 01:19:06
さすがにその辺書いてない本はないだろ
最初からよく読め、1ページ目からよく読め、さぼらず全部読め
715デフォルトの名無しさん:2007/08/11(土) 02:15:51
>>704,705

1.の手順でサーフェイスをロックしないでやりたいというのは
そのとおりなんです。

0〜3を繰り返すっていうのはおそらくスワッピングのフラグに
COPYが指定されている事を前提としていると思うのですが
(そうしないとレイヤーが8枚あったら1,3,5,7と2,4,6,8が違う
 バッファに書かれてしまう事になるので)
で、それはどうにでもなるとして。

この手順だとα付テクスチャバッファに描画する際に
アンチエイリアスが効かないのでそれをレンダリングしても
出てくるのはアンチエイリアスの効いてない画像になります。
正確には効いてるけど、それはテクスチャを貼り付けたポリゴンに
対してであってテクスチャの中身はマルチサンプルバッファに
なってないのでFSAAの効果は無いに等しくなります。

1.の時にα付テクスチャに予めCPUによってアンチエイリアスを
施したモノを描いておけばいいのですが、それはやりたくないですし。
そもそもそれだったらFSAAを有効にする必要が無いわけです。

で、色々考えた結果、
1.レイヤを一枚描画する毎にZバッファをクリアする。
2.同一のレイヤーのベクトルデータは同一のZ値を指定して描かせる。
3.その際のZ比較にNOTEQUALを用い。α値はレイヤーのα値とする。
という方法をとってみました。

色々ありがとう。あと、問題をよく整理できてなくて申し訳ない(´・ω・`)

716713:2007/08/11(土) 04:29:31
>>714
その本にのってる一番最初のサンプルコードがそれで
LRESULT CALLBACK....とかって始まってるんですけど
どうすれば?
717デフォルトの名無しさん:2007/08/11(土) 04:48:01
>>716
CDとかに全ソースコードが入ってるとかいうオチじゃないの?(´・ω・`)
718デフォルトの名無しさん:2007/08/11(土) 04:49:03
>>716
軽くwin32apiを勉強したほうがいい
719デフォルトの名無しさん:2007/08/11(土) 11:13:36
>>716
もっかい言うぞ
「一番最初のサンプルコードから」 読むんじゃない
「1ページ目から」 読め
さぼらず全部読め
720デフォルトの名無しさん:2007/08/11(土) 11:51:01
>>710
borland社のbcc32です。BCC Developerっていう補助ソフトを使ってます。
721デフォルトの名無しさん:2007/08/11(土) 14:08:12
bccdeveloperみてみた。プロジェクトを右クリックするとリソーススクリプトってあるでしょ。そこに

hoge RCDATA hoge.dat
piyo RCDATA piyo.txt

って感じでファイルを並べていく。
左はロードするための名前で RCDATA は予約語で右はファイル名。
メイクすれば、そのファイルが exe に取り込まれる。
使うときは

void *p = LockResource(LoadResource(NULL, FindResource(NULL, "hoge", RT_RCDATA)));

などとすればそのデータを取得できる。
fopen なんかは要らない。

これは知ってる人なら、取り出そうと思えば簡単に取り出せる。
プログラムとか知らない一般ユーザにはたぶん無理かな、くらい。
722デフォルトの名無しさん:2007/08/11(土) 15:51:11
>>721
やってみました。
リソーススクリプトファイルに

data1 RCDATA "C:\MyC\title.jpg"

と記述し、メインプログラムで

int p;
------省略-------
void *p = LockResource(LoadResource(NULL, FindResource(NULL, "data1", RT_RCDATA)));
------省略-------
DrawGraph(0,60,p,FALSE);

と表示しようとしたのですが何も表示されませんでした。使い方間違ってますか?
723デフォルトの名無しさん:2007/08/11(土) 16:02:03
DrawGraphってなんですか、自分で作った関数ですか。
こっちはそんなの知らないんだから、わかるわけない。
情報不足すぎる。
724デフォルトの名無しさん:2007/08/11(土) 16:12:43
もしかしてDXライブラリ?
725デフォルトの名無しさん:2007/08/11(土) 16:58:47
DXか・・・ だったらリファレンスを見る限り CreateGraphFromMem に読ませればいいんじゃない。
たぶんこんな感じ。

HRSRC hRes = FindResource(NULL, "data1", RT_RCDATA);
int g = CreateGraphFromMem(LockResource(LoadResource(NULL, hRes)), SizeifResource(NULL, hRes));
DrawGraph(0, 60, g, FALSE);

てか、条件を後出しにすればするほど解決に時間がかかることを覚えとくといいよ。
環境、コンパイラ、ライブラリなどが限定されてる場合は最初から書いておくべき。
726706:2007/08/11(土) 16:59:34
>>723-724
すみません、重要なこと言い忘れてました
Dxライブラリです。
727デフォルトの名無しさん:2007/08/11(土) 16:59:37
タイプミスorz

× SizeifResource
○ SizeofResource
728706:2007/08/11(土) 17:04:58
>>727
アドバイスありがとうございます!!上手くいきました。
今までアドバイスをしてくれた方も本当にありがとうございます。
729デフォルトの名無しさん:2007/08/12(日) 17:53:22
http://www.c3.club.kyutech.ac.jp/gamewiki/index.php?%BB%B0%A4%C4%A4%CEInput%A4%F2%A4%DE%A4%C8%A4%E1%A4%C6%A4%DF%A4%EB

にあるDrectInputのサンプルを組み込もうとしているのですが

DirectInputとデバイスを初期化する関数(InputManager::Init(HINSTANCE hinst, HWND hwnd))
デバイスをアップデートする関数(InputManager::UpData())
入力を拾ってくる関数(InputManager::GetKey(const DWORD keycode))

の順で動かしてもデバイスからの入力が拾えません
ビルドエラーも無く実行はできるために原因がさっぱりわかりません
おそらく初歩的なところで何かが抜けているのだと思いますが、どうして入力を拾えないのでしょうか?
730デフォルトの名無しさん:2007/08/12(日) 20:20:06
そんな人の作ったクラスのことなんて知らん。
ここで聞くのはスレ違い。
それ書いた人に直接聞いてくれ。
731デフォルトの名無しさん:2007/08/13(月) 07:10:24
当方美少女ゆえ、作者がスーパーハッカーの場合にIPを抜かれストーキングされることを警戒しています。
732デフォルトの名無しさん:2007/08/13(月) 08:03:38
その発想はなかったわ
733デフォルトの名無しさん:2007/08/13(月) 12:18:41
まぁ確かに、こんなこと書いているような香具師に質問なんかはしたくない罠。
http://www.c3.club.kyutech.ac.jp/gamewiki/etc/canvas.html
734729:2007/08/13(月) 17:44:24
>>729,733
wikiと掲示板が更新していなくて返事が来なさそうだと考えたためにこちらで質問させていただきました
問題に関しては今までキー取得用の関数とデバイス初期化用の関数を別のファイルに書いていたのを同じファイルに移すことで解決することができました。どうもありがとうございました
735706:2007/08/13(月) 22:57:20
再び質問です。
前回プレイヤーに見られたくない画像類をリソースとして入れ隠しましたが、>>725の方法で
データをwmvなどの動画にすると「Turbo Incremental Linker」が強制終了してしまします。
動画をリソースするにはどうしたらよいのでしょうか?
ちなみに"DrawGraph"の代わりに"PlayMovie"関数を使っています

使用コンパイラは Borland bcc32
補助ソフトは BCC Developer
Dxライブラリを利用してシューティングゲームを作っています。

リソーススクリプトファイルのソースは
data1 RCDATA "C:\MyC\opening.wmv"
となっています。
736デフォルトの名無しさん:2007/08/13(月) 23:02:23
DXライブラリ作ったひとに聞いてください
737デフォルトの名無しさん:2007/08/13(月) 23:07:23
もう面倒くさいから、そのぐらい自分で作れよ。
738デフォルトの名無しさん:2007/08/13(月) 23:08:47
つかDXライブラリだかなんだか知らんが、
DrawGraphやらPlayMovieやら、いきなり言われても住人の大半はそんなもん知らないぞ?

しかもファイルをリソースに入れるにはどうするか、なんて尚更DirectXと関係ないし、
そろそろスレ違いに気付けよ
DXライブラリだかBCCだかWin32初心者だかゲ製板あたり行って聞けよ
739デフォルトの名無しさん:2007/08/13(月) 23:10:11
>>738
そうします

すみませんでしたorz
740デフォルトの名無しさん:2007/08/13(月) 23:11:31
DXライブラリって何?誰かさんの俺ライブラリ?
741デフォルトの名無しさん:2007/08/14(火) 08:04:52
yahooでググレ!
742デフォルトの名無しさん:2007/08/14(火) 11:13:26
Googleでヤフレ!
743デフォルトの名無しさん:2007/08/14(火) 11:52:46
744デフォルトの名無しさん:2007/08/14(火) 20:51:11
フリーライブラリ利用者はヘボプログラマしかおらず、作者は世捨て人だという
印象があるので、こちらで幅広い人々の御見識を賜りたいのです。

745デフォルトの名無しさん:2007/08/14(火) 20:53:05
つまり俺らもDXライブラリを使って教えろと?
746デフォルトの名無しさん:2007/08/14(火) 20:54:57
利用者でも作者でもない人間がレビューできるわけないだろう
747デフォルトの名無しさん:2007/08/14(火) 21:00:36
知りもしないものを説明出来る奴がいたとしたらそいつは詐欺師の才能がある。
748デフォルトの名無しさん:2007/08/14(火) 22:59:32
つまりこのスレにいるヘボプログラマの情報を期待していると。
749デフォルトの名無しさん:2007/08/14(火) 23:36:13
>>744
>フリーライブラリ利用者はヘボプログラマしかおらず、作者は世捨て人

これはお前さんの単なる偏見じゃないのか?
なんちゃらライブラリのことは全然知らないけど
750デフォルトの名無しさん:2007/08/15(水) 10:38:45
幅広いヘボプログラマしか見つからんだろ。ここじゃ。
751デフォルトの名無しさん:2007/08/17(金) 03:12:52
D3DXIntersectを使おうと思ったんだけど、まったくあたりが帰ってこないから質問。
第1、2、3引数について
第1は xファイルのメッシュ
第2は 始点
第3は D3DXVECTOR3(0,-1,0)
を指定してます。
Intersectを使うにあたって、何か注意する点ありますか?
ぐぐるとたまに逆行列が云々と描かれていますが、いつどこの話か全く検討がつきません。
よろしくお願いします。
752デフォルトの名無しさん:2007/08/17(金) 06:57:07
>>751
始点はXファイルの原点からの相対位置じゃなかったっけ。
当たり判定をする物体の向きがX軸90度回転していたら-90度回転させて元に戻さないといけないし、
位置が0,0,0に配置されていないのだったら物体とその始点をずらさないといけないし・・・ってこれが逆行列ね。
753デフォルトの名無しさん:2007/08/17(金) 11:38:42
グラボに接続されているモニタが、ワイドモニタか、4:3モニタか調べる方法ってあるの?
DirectX or Win32API 何でもいいんだけど。
754デフォルトの名無しさん:2007/08/17(金) 11:51:36
デスクトップの比率を見て大雑把に分けるしかないんじゃない
755デフォルトの名無しさん:2007/08/17(金) 11:53:53
目視
756デフォルトの名無しさん:2007/08/17(金) 11:56:10
>>753
マルチ死ね
757デフォルトの名無しさん:2007/08/17(金) 12:47:22
>>752
具体的で分かり易かった!!
ありがとう。
当たり判定する物体は、まったく動かしてないから、
「始点はXファイルの原点からの相対位置」←で引っかかってるのかな。。。
頑張ってみます!!

>>753
ありそう。けど知らん。
758751:2007/08/17(金) 15:54:09
参考書に少しだけ書いてありました。
メッシュを読み込んでるときは、メッシュの移動等に関する逆行列をレイにかけてやらないとうまくいかないそうです。
759デフォルトの名無しさん:2007/08/18(土) 13:47:36
hlslのピクセルシェーダーでライティング処理を行いたいのですが、
光源の座標(L)と、モデルの頂点座標(P)、法線(N)、光色(D)が分かっているとして、
光源の近くなら明るく、光源から離れるほど暗くしたいのですが、
どのような式を使えばいいのでしょうか?
お願いします。
760デフォルトの名無しさん:2007/08/18(土) 13:52:53
距離が離れて暗くなるだけなら法線と光色は無視していいってことなんだろうな。
761デフォルトの名無しさん:2007/08/18(土) 16:48:22
atten = 1 / (a0 + a1*d + a2*d^2) (d:光源と頂点の距離)
一般的には上の式ね。attenを明るさに掛けるわけね。
a0〜a2の決め方は、例えば10m先で明るさを1/2にしたかったら
a0 = 1
a1 = (2.0 - 1) / 10.0;
a2 = 0
とかね。(a0 = 1, a2 = 0 は固定でいいかもね。)

でも調整が面倒だから、簡単に調整したいなら
atten = clamp( (d - attenBegin) / (attenEnd - attenBegin), 0.0, 1.0 );
みたいなのでもいいわよ。
762759:2007/08/18(土) 17:34:08
>>761
ありがとうございます。
理解してから、使わせていただきます。
763デフォルトの名無しさん:2007/08/18(土) 17:47:36
thanks but ill never use it until i understand it.
764デフォルトの名無しさん:2007/08/18(土) 20:22:07
あまりに技術的でない内容で恥ずかしいのですが、質問させていただきます。

使用PCはWindous Vista
DirectX9以上が必要なゲームをプレイするために、マイクロソフトの
ページからsetup.exeをダウンロードし、起動。
契約に同意して[インストール]をクリックしたら1秒の待ち時間もなく
インストール完了の文字が。
しかし、PC内どこを探してもDirectX9のファイルは見つからず、
当然ゲームも起動できません。

おそらくどこか手順を誤ったのだと思います。
正しい手順を教えていただけないでしょうか。
765デフォルトの名無しさん:2007/08/18(土) 20:31:28
お前がどう手順を誤ったかなんてエスパーでもない限り分かるわけないだろう

つかそれ以前にここはプログラム板なんだが
766デフォルトの名無しさん:2007/08/18(土) 20:45:59
板違いでしたか・・・消えます
767デフォルトの名無しさん:2007/08/19(日) 13:01:18
サーフェイス等について質問があります。
レンダリングをテクスチャに行いたいので次のモノを用意したとします。
LPDIRECT3DTEXTURE9 pTex0;
LPDIRECT3DSURFACE9 pSur0;
LPDIRECT3DSURFACE9 pDepth;
LPDIRECT3DTEXTURE9 pTex1;
LPDIRECT3DSURFACE9 pSur1;

@
まず、pTex0に描画するには、現在のバックバッファのサーフェイスを何処かに保存してから、
dev->SetRenderTarget(0, pSur0);
dev->SetDepthStencilSurface(pDepth);
dev->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0xffffffff, 1.0f, 0);
と設定してやる必要があると思います。
pTex0への描画処理

A
そして、次にレンダリングターゲットをpTex1に設定するとき、深度バッファはそのままで、
dev->SetRenderTarget(0, pSur1);
dev->SetDepthStencilSurface(pDepth);
dev->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0xffffffff, 1.0f, 0);
とし、pTex1へ描画処理。

B
次に、レンダリングターゲットをpTex0に戻し
dev->SetRenderTarget(0, pSur0);
dev->SetDepthStencilSurface(pDepth);
また、pTex0に描画しているのですが、この時、pDepthの深度値をAで1.0fにClearしているはずなのに、
@で描画したときの深度値が残っています。
やりたいことは、これでできるので良いのですが、何故初期化されていないのか気になります。
ちなみに、BでClearしたら初期化されます。
長くなりましたが、分かる方お願いします。
768デフォルトの名無しさん:2007/08/19(日) 13:45:54
D3DPRESENTFLAG_DISCARD_DEPTHSTENCILをつけたかCreateDepthStencilSurfaceのDiscardをtrueにしたため、
SetDepthStencilSurfaceの呼び出しでサーフェイスが無効化されたものの、たまたま以前と同じバッファが割り当てられたのでは?
未初期化状態であるので他の機種で同じ動作が期待できないというやつ。


769767:2007/08/19(日) 14:01:01
>>768
レストンクス。
確認してみたところ、CreateDepthStencilSurfaceのDiscardがtrueになってました。
やはり、他のPCでも同じ動作にさせたいのですが、この場合は、
pDepthのDiscardにfalseをセットし、もう一つ深度サーフェイス(pDepth1)を用意し、
>>767で言う、
@でpDepthをセットし、クリアする
AでpDepth1をセットし、クリアする
BでpDepthをセットし、クリアしない
という感じにすれば、他のPCで動かした場合でも同じ動作になるのでしょうか?
770デフォルトの名無しさん:2007/08/19(日) 20:36:10
簡単に3Dやりたいんですけど、これは使えますか

LGP
http://www.jppass.com/lgp/

Cyber Library
http://library.cyberdelia.net/library/library.html

Easy Link Library
http://www.twin-tail.jp/contents/el/el.htm
771デフォルトの名無しさん:2007/08/19(日) 20:41:51
これもありました
初心者が使えて速度がでるおすすめはありますか?

ActiveBasic
http://www.activebasic.com/help_center/articles/directx/index.html
772デフォルトの名無しさん:2007/08/19(日) 20:47:12
SDLでいいんじゃね
773デフォルトの名無しさん:2007/08/19(日) 21:17:41
DirectInputの質問です。
DirectXSDKはApril2007を使っていて、開発環境はVC6SP6です
LPDIRECTINPUT8 lpInput;
というように宣言をしているんですが、「error C2501: 'LPDIRECTINPUT8' : 識別名を宣言するのに、型が指定されていません。」とエラーを返されます。
当然headerファイルのインクルードなどは見直しました。
d3d9.h d3dx9.h dinput.hをインクルードしています。(input関連以外ではエラーはありません)
さらに同じ内容のエラーが異なる4つのcppファイルから発されています。当然#pragma onceをしています。
どうしたらこの問題(dinputの正常な使用とエラーの回避)が解決できるか教えてください。
なお、このサイトを参考に作成しました。
http://www.shader.jp/xoops/html/masafumi/directx9/dinput/dinput002.htm
774デフォルトの名無しさん:2007/08/19(日) 21:27:26
「識別名を宣言するのに、型が指定されていません」でぐぐれ
775デフォルトの名無しさん:2007/08/19(日) 21:38:59
http://www.kab-studio.biz/Programing/Codian/Basis/03.html
ここの一番下のことでしょうか?
すべてのhファイルを読み込んでいるファイルを先頭にし、エラーが出ているcppすべてでinputを管理するクラスを宣言しているヘッダをインクルードしましたが解決しません。
おっしゃっていることがよくわかりませんがどういうことですか?
776デフォルトの名無しさん:2007/08/19(日) 21:54:06
ver8のヘッダが必要なんじゃなかったっけ
そりゃDirectMusicだったっけ
777デフォルトの名無しさん:2007/08/19(日) 21:57:14
>>776
d3d8.hという意味でしょうか?
MSDNや解説サイトにはそのようなことは書いていなかったと思いますが、必要なのかもしれません。
他に足りない情報がありますか?
778デフォルトの名無しさん:2007/08/19(日) 22:04:46
>>773
DIRECTINPUT_VERSIONは定義してるか?
dinput.hを覗いたら、定義していなくても0x0800が自動で定義されるみたいだが、一応確認
779デフォルトの名無しさん:2007/08/19(日) 22:06:13
>>778
定義しています。それは書くのを忘れていました。すいません。
780デフォルトの名無しさん:2007/08/19(日) 22:18:53
>>773
VC6は、とっくの昔にDirectXSDKのサポートから外されてる。
いつからだったかは忘れたがApril2007だったら間違いなくVC6はサポートしていない。

対象外なんでコンパイルが通らなくても文句は言えないし、
仮にコンパイル出来たとしても正常に動作する保証もない。
781デフォルトの名無しさん:2007/08/19(日) 22:21:23
>>780
VS2005ならとおるんですね
ためしに2005を導入してやってみようと思います。
782デフォルトの名無しさん:2007/08/19(日) 22:27:11
VS2005導入してみましたが、やっぱりだめでした。
783デフォルトの名無しさん:2007/08/19(日) 22:32:20
>>782
まだ導入終わってないんですけど?
784757:2007/08/20(月) 01:15:11
アニメーションをもたない、D3DXLoadMeshFromXで読み込んだメッシュ情報と、 --------A
アニメーションをもち、フレーム処理のためにメッシュコンテナに格納したメッシュ情報。 ---B

D3DXIntersectでは、それぞれのメッシュ情報に関してレイと交差しているか判定できるでしょうか?
Aだと判定できるのですが、Bが旨くいきません・・・
785デフォルトの名無しさん:2007/08/20(月) 01:33:56
スキンメッシュでなければ、レイを各メッシュコンテナのごとのローカル空間に変換すればできる。
786デフォルトの名無しさん:2007/08/20(月) 11:55:03
DirectXでビデオを扱わないといけなくなったのだが、
ActiveX、DShow、VMR、VMR9、EVR、MediaFoundation、DXVAとあって訳が分かめ。
D3D9とD3D10で使う場合、それぞれどの組み合わせが良いのやら。。。
787デフォルトの名無しさん:2007/08/20(月) 20:34:44
Vista専用はやる気ないので知らね。
1280x720以上あるならVMR9じゃないと低スペック機できつい。
一昔前のゲームのような640x480程度ならどれでもいい。
788デフォルトの名無しさん:2007/08/20(月) 21:30:53
>>785
レスありがとうございます。
>>スキンメッシュでなければ
とありますが、スキンメッシュだとD3DXIntersectそのものが使えないということになるのでしょうか?!
789デフォルトの名無しさん:2007/08/21(火) 00:53:53
現在Javaプログラマで、DirectXに興味があります。
Visual C++が標準的だとは思うのですが、
GCやオブジェクト指向に限定したパラダイムに慣れた身としては
記述の自由度が高く、コピーコンストラクタや多重継承など癖の強いC++は辛い物があります。

C#からDirectXのdllを呼び出すことは可能だと思うのですが、
一般的ではないようです。全くではないですがほとんど見かけません。
何か問題があるのでしょうか・・・。
ジョイスティック/1000個程度のスプライト/WAVかOGGのBGM/効果音/30〜60fpsを満たせれば良いと思ってますが
これらはそこまで重い処理でもないでしょうからマネージドでも問題ないと思っています。
大きな問題がなければ、こちらの方向性で勉強していこうかと思うのですが、実際どんなものなのでしょうか。
(MDXは終わってるし、XNAは始まってない(Visual Studio 2005 Standardで使えない)ので保留します)
790デフォルトの名無しさん:2007/08/21(火) 05:37:53
>>789
質問の意味がわからない
実際どんなものなのでしょうか?
791デフォルトの名無しさん:2007/08/21(火) 05:52:12
Javaは出来るけど、C++は無理って・・・。
あとC#の文献や書籍も普通にあるし・・・・。
792789:2007/08/21(火) 07:37:58
>>790
質問内容は、
C#を使って、MDXやXNA等を使わずにDirectXを呼び出して使っている人がほとんど見つからないけど、
なぜ? 実用上問題があるのでしょうか? ということです。
C#やC++/CLIを使ってDirectXのアンマネージドなdllを呼び出すことはできるはずなのに・・・。

>>791
無理というか、C++という言語を使うのが辛いという感じです。
アドレス参照か実体か混乱したり、ヘッダとソースが二重管理だったり、
メモリ管理やコンパイラの仕様が今となっては古くさかったり、
要は人間に委ねられていることが多すぎるので、
特にある程度大規模なソースを書くと疲れるのです。
なるべくなら趣味で使いたくはない。
もちろん仕事で「使え」と言われたり、代替手段が無いのであれば使います。
793デフォルトの名無しさん:2007/08/21(火) 07:47:52
プログラマに向いてないのだよ
794デフォルトの名無しさん:2007/08/21(火) 08:31:48
>>789
>C#を使って、MDXやXNA等を使わずにDirectXを呼び出して使っている人がほとんど見つからないけど、
>なぜ? 実用上問題があるのでしょうか? ということです。

それってMDXを自分で一から作り直すってことにならない?
考えただけでも色んな面倒くさいことが思いつくのだけれど…
795デフォルトの名無しさん:2007/08/21(火) 08:37:30
>>789
>(MDXは終わってるし、XNAは始まってない(Visual Studio 2005 Standardで使えない)ので保留します)

今年末リリースのXNA GSE 2.0でExpress Edition以外もサポートされるよ。
ttp://blogs.msdn.com/ito/archive/2007/08/14/xna-game-studio-2-0.aspx

あとMDXは終わってるって言っても必要な機能はたいてい実装済みだしなんか問題あるの?
796デフォルトの名無しさん:2007/08/21(火) 15:48:48
DirectXを使って3D迷路を作りたいんですが、
どういう手順で壁を表示すればいいのかわかりません。

ちなみに私は初心者で、Direct3Dの概念、xファイルの読み込み、表示や、
カメラや自キャラの移動、当たり判定、くらいの初歩のことしかわかりません。

アドバイスくださいm(__)m
797デフォルトの名無しさん:2007/08/21(火) 16:01:04
>>796
只の3D廊下みたいなものは作れるのかな?
迷路は各階ごとに二次元迷路があってそれを梯子か階段で結ぶ形?
それとも、高さ方向にも入り組んだ形?
只漠然と3D迷路を作りたいと言われても何から答えていいのやら。
798デフォルトの名無しさん:2007/08/21(火) 16:11:19
>ちなみに私は初心者で、Direct3Dの概念、xファイルの読み込み、表示や、
>カメラや自キャラの移動、当たり判定、くらいの初歩のことしかわかりません

それくらいのことがわかるのなら、

>どういう手順で壁を表示すればいいのかわかりません。

壁のXファイルを読み込んで表示すればいいんじゃないの?
何がわからないのかわからない。
799デフォルトの名無しさん:2007/08/21(火) 16:34:57
考えるどころか、息をするのも面倒なんだろ。
800デフォルトの名無しさん:2007/08/21(火) 16:51:25
生まれてすみません
801デフォルトの名無しさん:2007/08/21(火) 16:56:45
>>797
>只の3D廊下みたいなものは作れるのかな?
すみません。わかりません。
まだ、背景が青い画面で表示して、
自キャラの座標やカメラの座標をいじるくらいしかできません。

>漠然と3D迷路を作りたいと言われても何から答えていいのやら。
現段階では、まずは単純な1階(フロア)だけの迷路を考えています。


>>798
すみません。青い画面上に自キャラを表示するくらいしかできません。

どうやって壁などを表示して、
迷路のような道筋を作るのかがわかりません。
802デフォルトの名無しさん:2007/08/21(火) 16:58:41
自キャラも壁も同じオブジェクトだろ
803デフォルトの名無しさん:2007/08/21(火) 17:05:19
>>801
>すみません。青い画面上に自キャラを表示するくらいしかできません。

壁も自キャラと同じ方法で表示できるはずだと思うが

>迷路のような道筋を作るのかがわかりません。

壁をいっぱい並べればいいんじゃないのか
804デフォルトの名無しさん:2007/08/21(火) 17:16:30
迷路全体をXファイルで作って
それを表示すれば完成
805デフォルトの名無しさん:2007/08/21(火) 17:33:05
いいのかそれでw
806デフォルトの名無しさん:2007/08/21(火) 17:36:14
メタセコイアで四角を組み合わせてまるまる一個ステージ作って
カリングで表示するのが一番簡単
807デフォルトの名無しさん:2007/08/21(火) 17:37:25
わーい、それはとっても簡単だねw
808デフォルトの名無しさん:2007/08/21(火) 18:50:12
>>792
コイツナニイッテンダ・・・。
C#でも文献普通にあるから試せよ。
そんな力説せんでも、だれもお前にC++を強要しないって。

実用上の問題は聞いた事ネーけどゲーム作成の世界じゃC++以外は
普通にマイノリティになるから、例がみつからんだけだろ。

要はコンパイラが古いとかメモリ云々っていうお前さんの意見は、少数派って事。
809789:2007/08/21(火) 19:49:51
>>794
もちろんそうなってしまうのですが、
将来的にフリーソフト頒布を考えたり、
あとは機能的に痒いところに手が届くと考えると、
車輪の再発明も構わないかな、と思いまして・・・。無駄でしょうか。

>>795
XNA2.0が出るのですか。そちらは期待ですね。
MDXについては、今後発展性の無いものを
勉強しても意味がないかと思うので・・・。
勉強するからには短くても今後5年は使えて欲しいです。
810デフォルトの名無しさん:2007/08/21(火) 20:00:32
グダグダ言わずにとっととやれよ。
811デフォルトの名無しさん:2007/08/21(火) 20:37:26
今後5年は使えて欲しいとか言う前に、プロ目指してるのか?ならC++やっとけよ
プロ目指してるわけじゃないんだったら、C# or C++/CLIでやりたいっていってるんだから、素直にMDXでいいだろ
アンマネージドなDirectXとMDXを比較してみれば分かると思うけど、
基本的な処理のさせ方は同じようなもん
考える前にまず手を動かして、作りたいものを作ってみたほうが早いと思うよ
何が作りたいのか、そのためにはどんな機能が必要なのか、明確にさせることが先決
ここら辺の軸をしっかりさせておかないと、あっちこっちに揺れて、作りたいものを完成させられないままになるぞ
技術的なことよりもまず、やり遂げる事が重要
技術は後からついてくる



と、DirectXをやったことがない俺が偉そうに語ってみる
812デフォルトの名無しさん:2007/08/21(火) 21:01:57
>C#やC++/CLIを使ってDirectXのアンマネージドなdllを呼び出すことはできるはずなのに・・・。

http://code.google.com/p/slimdx/
http://d.hatena.ne.jp/NyaRuRu/20061130

タイプライブラリが用意されていない以上、これをやらなきゃならんワケだ。
がんばれ?
813789:2007/08/21(火) 21:59:27
>>811
確かにあれこれ悩むより、手を動かすべきですね。
そのようにしたいと思います。
あと、プロになる気はないです。

>>812
構造体や定数を再定義するのは馬鹿馬鹿しいですね・・・。
なるべく固有の型定義などを隠蔽できるよう工夫してみたいと思います。
参考サイト情報、ありがとうございます。
814デフォルトの名無しさん:2007/08/22(水) 07:55:55
向いてないよ
815デフォルトの名無しさん:2007/08/22(水) 10:53:55
xファイルのサンプル置き場みたいなところがあるなら教えてください。
816デフォルトの名無しさん:2007/08/22(水) 11:14:19
そういったものはあんまり見当たらないな
そもそも微妙に板違いなんだ
817デフォルトの名無しさん:2007/08/22(水) 14:05:13
>>815
マルチが酷いので、知っているが教えない。
818デフォルトの名無しさん:2007/08/22(水) 21:45:32
流行らないからなぁ。。
素人な俺目線で言うと、できる人はxファイルを使わないみたい。
けど、そんなの到底無理だから使う俺。。。
819デフォルトの名無しさん:2007/08/22(水) 22:04:54
できる人は何を使うんだ?
820デフォルトの名無しさん:2007/08/22(水) 23:26:21
自作
821デフォルトの名無しさん:2007/08/23(木) 06:05:40
データを作ってるモデリングツールから独自形式へ直接変換
Xファイルなんか経由したら効率悪い

822デフォルトの名無しさん:2007/08/23(木) 15:00:48
>>821さんのとおり、じっさいxファイル使ってやってる素人な俺ですが、やはり効率の悪さを感じます。。。
823デフォルトの名無しさん:2007/08/23(木) 15:20:51
ぶっちゃけ、本当にできる人はフォーマットなんてどうでもいい。
Xファイルで効率が悪いなんてことはない。

ただ、データを作ってくれる人が言った通りに出力してくれなくて、
結局こちらでツールのネイティブ形式から変換というのはよくあること。
824デフォルトの名無しさん:2007/08/23(木) 15:22:44
結局こちらでツールのネイティブ形式から変換というのはよくあること。
825デフォルトの名無しさん:2007/08/23(木) 21:26:11
>>823
てか、そういう実体に即してない発言ってなんのためにするの?
そんなに楽ならみんなが楽になるような変換ツールでもちゃちゃっと作って公開してくれよ
できなきゃ2度とデカイ口叩くなよ
826462:2007/08/23(木) 21:28:54
ワロス
827デフォルトの名無しさん:2007/08/23(木) 21:31:18
>>825
こ、子供かおまいは・・・
828デフォルトの名無しさん:2007/08/23(木) 21:36:51
使っているモデリングソフトのプラグインは自分で作る。
それ以外の解決方法は存在しない。
829デフォルトの名無しさん:2007/08/23(木) 21:38:57
>>827
で?できたの?w
830デフォルトの名無しさん:2007/08/23(木) 21:41:12
一端出力されたデータを変換している段階で、既にそのデータは使い物にならない。
831デフォルトの名無しさん:2007/08/23(木) 21:42:03
>>823
       ☆ チン        ハラヘッタ〜
                     ハラヘッタ〜
 ☆ チン  〃 ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ヽ ___\(\・∀・)< はやく!はやく!はやく!
      \_/⊂ ⊂_)_ \____________
    / ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
   |  ̄  ̄ ̄ ̄ ̄ ̄ ̄:|  |
   | 淡路たまねぎ   .|/
832デフォルトの名無しさん:2007/08/23(木) 21:51:17
>>823
チン  ☆  マチクタビレター  ☆
        チンチン           マチクタビレター ♪
           ♪   ☆ チチン
    ♪                .☆   マチクタビレター
        ☆ チン   〃  ∧_∧  ヽ        / ̄ ̄ ̄ ̄
          ヽ   ___\(・∀・ ) /\_/ <  マダー?
        チン    \_/⊂    つ    ‖    \_____
           / ̄ ̄ ̄ ̄ ̄ ̄ ̄/|     ‖
        |  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :|   /|\
         |             |/
833デフォルトの名無しさん:2007/08/23(木) 21:57:40
典型的な今時のキレやすいお子様
さらに理解力皆無
834デフォルトの名無しさん:2007/08/23(木) 22:00:34
その辺のゲームライブラリって「既存のXファイル→自分のプログラム」ができれば十分としか考えてないのかもね。
でも、データ作る職人と共同作業をすれば、ツールの専用形式→Xファイル→自分のプログラム という2度手間は
煩雑でとてもやってられないものなんだけどな。


835デフォルトの名無しさん:2007/08/23(木) 22:02:16
だからエクスポートプラグインを作って直接吐き出せと何度言ったら
836デフォルトの名無しさん:2007/08/23(木) 22:32:40
>>834
>>823はそんなこと関係ないとおっしゃられております
837822:2007/08/24(金) 03:54:48
いらんこといってすみません。。。
838デフォルトの名無しさん:2007/08/24(金) 07:21:22
>>823
チン  ☆  マチクタビレター  ☆
        チンチン           マチクタビレター ♪
           ♪   ☆ チチン
    ♪                .☆   マチクタビレター
        ☆ チン   〃  ∧_∧  ヽ        / ̄ ̄ ̄ ̄
          ヽ   ___\(・∀・ ) /\_/ <  マダー?
        チン    \_/⊂    つ    ‖    \_____
           / ̄ ̄ ̄ ̄ ̄ ̄ ̄/|     ‖
        |  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :|   /|\
         |             |/

839デフォルトの名無しさん:2007/08/24(金) 13:19:43
っていうか、このスレにいる奴らは、単にコンバータが欲しいだけなのか?
俺はまだXファイルと独自形式のどっちを使うかって話をしているのかと
思っていたが、それってあっちの板のスレだったっけ?
840デフォルトの名無しさん:2007/08/24(金) 16:39:31
アホがひとり粘着してるだけだろ
841デフォルトの名無しさん:2007/08/24(金) 18:57:27
くれ厨が一匹いるだけじゃない?
842デフォルトの名無しさん:2007/08/24(金) 20:30:56
現在のディスプレイの最大解像度を取得するにはどうすればいいんですか?
843デフォルトの名無しさん:2007/08/24(金) 21:19:33
>>823
チン  ☆  マチクタビレター  ☆
        チンチン           マチクタビレター ♪
           ♪   ☆ チチン
    ♪                .☆   マチクタビレター
        ☆ チン   〃  ∧_∧  ヽ        / ̄ ̄ ̄ ̄
          ヽ   ___\(・∀・ ) /\_/ <  マダー?
        チン    \_/⊂    つ    ‖    \_____
           / ̄ ̄ ̄ ̄ ̄ ̄ ̄/|     ‖
        |  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :|   /|\
         |             |/
844デフォルトの名無しさん:2007/08/24(金) 21:21:50
自己解決
GetSystemMetricsでいけました
845デフォルトの名無しさん:2007/08/24(金) 21:25:06
>>842
GetAdapterModeCount
EnumAdapterModes
846デフォルトの名無しさん:2007/08/26(日) 17:31:47
SDKのサンプル MultiAnimation についての質問です。

表示するキャラクター(tiny)を150体ぐらい増やし、
床を移動するプログラムを呼ばずに、純粋にモーションだけする状態にして、
その150体を描画する時間を計測してみました。
すると、150体を描画する時間は、だいたい18msぐらいで描画されたのですが、
たまに、100msぐらいかかる時があり、これが周期的に繰り返されます。
このため、腕をふって歩いているモーションをするtinyをみると、
周期的にモーションがカクッとワープしているように見えてしまいます。
847846の続き:2007/08/26(日) 17:32:33
アプリケーションループにおいて、毎回計測してみた結果↓。
こんな、感じで、たまに100msぐらいかかる時がある。
略〜
時間: 13
時間: 13
時間: 106
時間: 14
時間: 19
時間: 16
略〜

毎回、モーションするだけの同じコードの処理をしているだけなのに、
周期的に、普段より長い時間、描画に費やされる時があるのは
なぜでしょうか?
また、このような周期的に普段より長い時間かかることを防止する方法は
ないのでしょうか?
よろしくお願いします。

環境は、以下の通りです。
Microsoft Visual Studio .NET 2003
Microsoft DirectX 9.0 SDK October 2004
GeForce7600 GS
848デフォルトの名無しさん:2007/08/27(月) 06:59:03
俺はAnimationControllerを使ってないんで見当つかないが
単なるSDKのサンプルの改造なら、ソースつきでアプロダに置いてみたら?
物好きが見てくれるかもよ

849デフォルトの名無しさん:2007/08/27(月) 13:07:58
>>847
考えたこともなかったな。。
他のプログラムは関係ないの?
Athlon64X2 2.25Ghz + GeForce8600GT
こっちはとくに目立った、どこかで時間かかってるような挙動はなかったけど。。
850デフォルトの名無しさん:2007/08/27(月) 14:23:42
>>848
サンプルをUPしときました。
改変場所は、中身のメモ.txtに書いてあります。
ttp://gamdev.org/up/img/10034.zip

>>849
たぶん、他のプログラム関係ないと思います。
Retailモードで動かしていると、>>846で書いた現象が
目立ちました。
その時のFPSは、30ぐらいでした。
(自分の環境が原因なんですかね・・・)
851デフォルトの名無しさん:2007/08/27(月) 20:09:12
デバイスをリセットした時にエラーが出てしまうので
解放できてないのが原因だと思って色々試したのですが上手く行きません

色々試した結果、エラーを出すのが特定の関数を通った後にリセットを掛けた時だけ
ということがわかりました。

以下のような関数(問題のありそうなところを抜粋しました)なんですが、下の記述で問題あるところはありますか?

// テクスチャをパイプラインにセット
pd3dDevice->SetTexture( 0, m_pTexture );

pd3dDevice->SetRenderState( D3DRS_LIGHTING, FALSE );
pd3dDevice->SetRenderState( D3DRS_ZENABLE, FALSE );

pd3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_ONE );

D3DXMatrixTranslation( &mWorld, vPos.x, vPos.y, vPos.z );
pd3dDevice->SetTransform( D3DTS_WORLD, &mWorld );

// オブジェクトの描画
pd3dDevice->SetStreamSource( 0, m_pVB, 0, sizeof(MY_VERTEX) );
pd3dDevice->SetFVF( MY_VERTEX_FVF );
pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2 );

pd3dDevice->SetTexture( 0, NULL );

pd3dDevice->SetRenderState( D3DRS_LIGHTING, TRUE );
pd3dDevice->SetRenderState( D3DRS_ZENABLE, TRUE );

pd3dDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
852デフォルトの名無しさん:2007/08/27(月) 21:03:23
>>851
SetStreamSourceかな?
m_pVBをセットしたままで、解放できてないんじゃない?
853デフォルトの名無しさん:2007/08/27(月) 21:43:11
>>852
SAFE_RELEASE(m_pVB);という感じで解放はしたんですが、やっぱり上手く行かないです

こういうようなこともやらないといけないんですか↓
pd3dDevice->SetStreamSource( 0, NULL, 0, sizeof(MY_VERTEX) );
854デフォルトの名無しさん:2007/08/27(月) 22:59:25
↑解決しました
この関数を呼ぶ直前の別の部分で未解放がありました…
お騒がせしましたm(_ _ )m
855デフォルトの名無しさん:2007/08/28(火) 07:34:45
>>850
Xp Core2Duo E6300 GF8600 GTS
試してみたところ100ms越えなどはないが、ログでは常時8ms程度でたまに20ms程度が混じる。
たしかにこのサンプルにしては妙な遅滞だ。同じ問題が潜んでいるということかもしれない。
856デフォルトの名無しさん:2007/08/28(火) 12:20:41
DirectX9で開発している者ですが質問させていただきます。
バックバッファと同じサイズのテクスチャを用意し、それぞれ別のオブジェクトを描画し、
最後にそれらを合成したいのですが、可能でしょうか?
テクスチャの方は黒(0,0,0)で初期化しているので各ピクセルを加算合成すればできそうなのですが、
ピクセルシェーダーでテクスチャ側の色は取得できますが、レンダリングターゲット側のピクセルを取得する方法が分かりません。

それぞれ別テクスチャに描画し最後に合成しながらバックバッファへ表示することはできますが、
現在バックバッファへ書き込んでいるオブジェクトが多いので速度的にやりたくないです。

その他のやり方でも良いので、ご教授お願いします。
857856:2007/08/28(火) 18:34:19
事故解決しました。
858デフォルトの名無しさん:2007/08/28(火) 20:57:39
それはよかったですね
859デフォルトの名無しさん:2007/08/29(水) 22:55:24
いちいち説明を書いて解答を待つよりも、自力で何とかしたほうが早いのがこのスレの基本
860デフォルトの名無しさん:2007/08/29(水) 23:31:05
つまり、このスレの住人は能なし。そもそも住人なんていないのかもな。
861デフォルトの名無しさん:2007/08/30(木) 16:41:13
背景を半透過する四角を描画したいんですが、ID3DXLineを使っても問題ないですかね?
ID3DXLineを太く描画すれば簡単に四角っぽくなるので、
もし特に問題がなければこれでいきたいのですが
862デフォルトの名無しさん:2007/08/30(木) 16:59:26
そんなの使うよりDrawPrimitiveUP使う方が簡単だと思うが。
863デフォルトの名無しさん:2007/08/30(木) 17:19:00
ID3DXLineをクラスにまとめたものがあるので、こっちのでやった方が早いかな
と思ったんですが、やっぱりそちらのほうが一般的ですよね
ありがとうございました
864デフォルトの名無しさん:2007/08/30(木) 18:29:55
↑のものです
DrawPrimitiveで四角形を書いた場合、例えば色に0x33ff0000という値を入れても
背景を透過しないんですがなぜでしょうか?
865デフォルトの名無しさん:2007/08/30(木) 18:31:15
SetRenderStateを忘れていました・・・
すいませんです
866デフォルトの名無しさん:2007/08/31(金) 00:47:43
test
867デフォルトの名無しさん:2007/08/31(金) 15:43:44
3Dの世界を作っていて、
四角いブロックのXファイルを複数ならべて壁にしています。

Xファイルの近くを移動したりすると、
自分の視点がxファイルの中にめり込んでしまうのですが、
それを防ぐ方法はありますか?
もしくは、xファイルの外側しか画面に映らなくできるなど。

初心者なのでおかしなことを言っているのかもしれませんが、アドバイスお願いします。
868デフォルトの名無しさん:2007/08/31(金) 17:29:10
Xファイルって内側作らなきゃ内側表示されないよ
869デフォルトの名無しさん:2007/08/31(金) 19:03:11
>>867
視錐台のニアクリップは0距離には出来ないので、必ずある程度の
面積を持った面になる。だから、たとえカメラの位置が壁より手前でも、
ニアクリップ面の幅(の半分)よりも壁に近づくと、壁の裏側が見えてしまう。

解決方法は、壁に近づきすぎないようにすることと、ニアクリップの
距離を短めにすること。ただし、後者はZバッファの精度にも影響するので
程々にしないと画質に影響する。

カメラの当たり判定を球とすれば、ニアクリップ面の対角線の距離
(ワールド座標系での距離)を直径とした球にしておけば、めり込むことは
ないかな。

第三者視点の場合は、キャラクタとカメラの間に壁がないか
チェックする必要がある。

まぁ、市販のゲームでも壁の裏が全く見えないってのはあまりなくて、
ちょっと見えてしまうことがあるのは仕方が無い。
特にワイドスクリーンに対応していると、ニアクリップ面の形も
環境によって変わってしまうので、厳密に処理するのは難しい。
870デフォルトの名無しさん:2007/08/31(金) 20:49:24
DirectX8.1SDKの入手先がわかりません。誰か助けて
871デフォルトの名無しさん:2007/08/31(金) 21:01:45
DirectX9か8.0で作ればいいのに
872デフォルトの名無しさん:2007/09/01(土) 01:40:59
なんで旧バージョンのSDKを欲しがるのか非常に謎なんだが・・・
何がしてぇの?
会社で昔のアプリの保守でも頼まれたの?
それとも何か思うところがあって探してるならそれを先に言ってみろって感じだな

もし、頓珍漢な理由で旧バージョンのソースを探してるなら
正直、テンプレに書いたほうがいいと思う
さすがにこのパターン何度目だって感じだ

ちなみにこのパターンってのは

初心者:「旧バージョンのSDKってないですか?」
回答者:「なんのためにそんなもん探してるの?」
初心者:逃走・・・
回答者:「おーい・・・」

って感じw
873デフォルトの名無しさん:2007/09/01(土) 02:01:54
テンプレにCOMとバージョニングとQueryInterfaceについて
4レス位使って説明しといた方がいいかな
874デフォルトの名無しさん:2007/09/01(土) 02:41:28
>>872
入ってるサンプルやその作りが違うだろう。
8.1ベースで作るのに(Steam利用者の統計では8.1の環境はまだ15%もある)
8.1のコードやヘルプがないのは困ると思うが。

配布している間にきっちり保存しておかないのが失敗というのはありそうだが。
MSはすぐ梯子はずすから。
875デフォルトの名無しさん:2007/09/01(土) 02:46:22
逆になんで新しいSDKを使わせたがるのか非常に謎。
シェーダバリバリで超絶美麗なゲームでも作ってるわけ?俺みたいに。
国内にはそんなの一握りしかいないはずだけどな。
876デフォルトの名無しさん:2007/09/01(土) 02:48:25
完全に下位互換ではないしね
特定のツールとか機能が外されてたりもするし
877デフォルトの名無しさん:2007/09/01(土) 07:15:12
また下位互換と上位互換を混同している馬鹿が来たよ。
そもそもDirectXには下位互換はないし、そんなことは想定されていない。
878デフォルトの名無しさん:2007/09/01(土) 07:27:30
>>874
SDKが無いとかいって探し回るより、新しい内容に合わせた方がマシ。
無い無いと言って探し回っている暇があったら、とっとと新しいバージョンに合わせた方がよっぽどはやい。
WEB上で古いサンプルを見つけて、コンパイルできないとか言っている奴は、
そもそも見ているところがおかしい。
新しく勉強するのに古い情報を参照したって無意味なのに、その程度のことにすら気がつかない。

環境といっても余計な機能を使わなければ初期のDirect3D対応のビデオカードでも
9のランタイム上で動作は可能だし、困ることは全くない。
879デフォルトの名無しさん:2007/09/01(土) 08:14:16
旧バージョン探す奴の理由はそのバージョンで書かれた本を見てるからだろ。
エラーメッセージなんて読む気ゼロだから

エラー出た→エラーが出ない同一バージョン欲しい

ってなる
880デフォルトの名無しさん:2007/09/01(土) 09:18:55
DirectXランタイム 上位互換
DirectX SDK 下位互換

おまえもわかってないだろw
881デフォルトの名無しさん:2007/09/01(土) 10:50:49
>>872
とくに今のやつにはD3DRM関係はいってないだろ?
3年前の本のサンプルビルドしようとしたら、ビルド出来なくて困ったぜ
コード部だけ移植試しして面倒だった
882デフォルトの名無しさん:2007/09/01(土) 10:54:17
すまん。入ってないってのはライブラリファイルの方な
もしかしたら入ってるのかもしれんけど、ドキュメントがないから
なにを指定すればいいのか判らんかった
883デフォルトの名無しさん:2007/09/01(土) 12:22:01
DxLibが絡む話で申し訳ないのですが
DxLibを使ってVisual C++でゲームプログラミングをしている場合に、
FSAAと回転アルファブレンディングの機能だけをDirectX SDKから使用することはできますでしょうか?
テクスチャの読み込み、レンダリング等はDXSDKの関数等を使うとして、
入力や音楽再生など他の処理を扱うライブラリと、DXSDKを介在させることはできるのでしょうか?
884デフォルトの名無しさん:2007/09/01(土) 15:26:04
公式サイトで聞いてきなよ。
あそこは割と親切でしょ?
885デフォルトの名無しさん:2007/09/03(月) 00:19:28
ウィンドウモードでフルシーンアンチエイリアシングはどうやってかけるのでしょうか?
D3dDevice->SetRenderState(D3DRS_MULTISAMPLEANTIALIAS, TRUE);
にしてもかかってくれません。。。
886デフォルトの名無しさん:2007/09/03(月) 00:19:48
CreateDeviceの段階でなんか指定するんじゃなかったっけ
887デフォルトの名無しさん:2007/09/03(月) 00:38:36
>>885
http://somnium.sakura.ne.jp/xoops/modules/weblog/index.php?cat_id=3&user_id=0

D3DPRESENT_PARAMETER d3dPP
ZeroMemory( &d3dPP, sizeof( d3dPP ) );
d3dPP.Windowed = FALSE
d3dPP.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dPP.MultiSampleType = D3DMULTISAMPLE_2_SAMPLES;
pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL,
          hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp, &d3dDevice)
888デフォルトの名無しさん:2007/09/03(月) 01:07:53
クライアント領域内で動く「ウィンドウ」のサンプルをご存じの方いらっしゃいませんか

具体的には例えばラグナロクオンラインのステータスウィンドウや、
Ajaxで言えば
ttp://prototype-window.xilinus.com/samples.html
の"Open a simple window"で開くみたいな奴です

方向性として子ウィンドウを無理矢理使うか、
ウィンドウマネージャーの役割を担うものを作るかだと思うのですが、
前者の場合はDirectXとの兼ね合い
後者の場合マウスメッセージの扱いが課題です…
889デフォルトの名無しさん:2007/09/03(月) 01:31:17
市販ゲームは家庭用などへの移植性を考えて、Windowsにべったり依存せずに
そのゲーム専用のウィンドウシステムを組むんじゃないかな。
890デフォルトの名無しさん:2007/09/03(月) 01:38:17
WindowsUIを使うのはメッセージを盗まれたり改竄されやすいかもな。
891デフォルトの名無しさん:2007/09/03(月) 01:47:08
>>888
その辺は必要な機能を絞って自作したほうがいいぜ
Windowsのを使おうとすると今度は他のアプリの影響も受けるってことだしな
できたらできたで今度はエクスプローラの機能をどれだけ潰せるかってことになると思うし
892デフォルトの名無しさん:2007/09/03(月) 02:04:55
>>888
俺も前にウィンドウマネージャ作ったことあるけど、意外と簡単だったよ。
マウス関係はメッセージではなくGetAsyncKeyStateを使った。
893デフォルトの名無しさん:2007/09/03(月) 02:28:25
>>892
なにそれ?
ショートカットとかアクセサリ関連のアプリの動作とか止められんの?
テキトーなこといってんじゃねーぞ

俺がやった限りだと製品のレベルはおろか同人のレベルだって不可能だ
894デフォルトの名無しさん:2007/09/03(月) 02:36:04
>>893
何を勘違いでテンパってる?
895888:2007/09/03(月) 02:56:50
みなさん暖かい声援ありがとうございます

子ウィンドウ路線が微妙そうという雰囲気ですね
最低限必要なのは、移動、リサイズといったあたりなので、
自作はできると思います
ちょっとがんばってみます

それにしても検索しようとすると「ウィンドウ」or "window"という語が
DirectX window modeのそれだったり窓OSのそれだったり
サンプル探すにしてもなかなか困りますね

かなり面倒ですがCompizを読みながら設計してみます…
ttp://compiz.org/Home/Start
フレームワークレベルで良いアイデアがありましたら是非お願い致します
896デフォルトの名無しさん:2007/09/03(月) 08:51:22
質問にきますた

ID3DXMesh::LockAttributeBuffer Method

HRESULT LockAttributeBuffer(
DWORD Flags,
DWORD** ppData
);

これのppDataについて、各サイトで違うこと書いてるんですが、一体どれが正しいんでしょうか?

http://msdn.microsoft.com/archive/en-us/directx9_c_Summer_03/directx/graphics/reference/d3dx/interfaces/id3dxmesh/lockattributebuffer.asp?frame=true
ppData
[out] Address of a pointer to a buffer containing three DWORDs for each face in the mesh.

http://msdn2.microsoft.com/en-us/library/bb174070.aspx
ppData
[out] Address of a pointer to a buffer containing a DWORD for each face in the mesh.

http://msdn.microsoft.com/library/ja/DirectX9_c/directx/graphics/reference/d3dx/interfaces/id3dxmesh/lockattributebuffer.asp?frame=true
ppData
[out] メッシュ属性データを格納するバッファへのポインタのアドレス。この配列は、メッシュの頂点およびエッジを記述する D3DXATTRIBUTERANGE 要素の配列である。
897デフォルトの名無しさん:2007/09/03(月) 21:45:52
じゃあSDK HELPにしたら
898デフォルトの名無しさん:2007/09/03(月) 21:55:22
だからD3DXの高レベル関数は使うなとあれほど
899デフォルトの名無しさん:2007/09/03(月) 22:10:46
ID3DXSpriteとID3DXFontとID3DXAnimationControllerに関する質問はFAQで
「テンプレ読め」とだけ答えるようにしたいものだ。




900デフォルトの名無しさん:2007/09/03(月) 22:13:08
DirectX900
901デフォルトの名無しさん:2007/09/04(火) 10:54:45
ID3DXAnimationControllerってやっぱり評判悪いんだ
俺は問題なく使えてるけど
902デフォルトの名無しさん:2007/09/04(火) 12:10:45
高レベル関数群全般の評判が悪い。
903デフォルトの名無しさん:2007/09/04(火) 16:07:14
DirectXのモーション付きのXファイルに関する質問です。

MetasequoiaとRokDeBone2で作成したモーション付きのXファイルを使用していますが
モーションは最初は滑らかなのですが時間が経つと次第にカクカクになり
3分も起動しておけば攻撃の最初と最後のモーションしか見えなくなってしまいます。
FPSに変化は無くモーションだけがこのようになり原因も解らず困っているのですが
何か良い解決方法は無いでしょうか?
とりあえずモーションの設定部分を抽出しました(長いのでアップローダに上げました)
もしお解かりになる方がいらっしゃいましたらアドバイスをお願いします。

ttp://www.hsjp.net/upload/src/up2920.txt
904デフォルトの名無しさん:2007/09/04(火) 16:17:48
D3DXの高レベル関数を使わずに作り直してみてください。
905デフォルトの名無しさん:2007/09/04(火) 18:11:59
>>904
返信ありがとうございます
んー高レベル関数ってのを色々とググってみてみましたが
イマイチ求めてる情報に突き当たらない・・・もう少し粘ってみます
906デフォルトの名無しさん:2007/09/04(火) 18:12:05
>>903
消えてるよ
907デフォルトの名無しさん:2007/09/04(火) 18:27:26
>>905
>>904みたいのは真面目に答えてやる気も無いだろうから
無視した方がいいw
最初は全部表示できてるのならどこかしらで情報失ってるんだろうから
ブレークポイント入れて見てみるとかしたらどうかな。
とりあえずソース再うpよろ。
908デフォルトの名無しさん:2007/09/04(火) 18:48:25
xファイルを多数表示すると、実行時すごく時間がかかってしまうのですが、
その重さを解消するにはどうしたらよいですか?
909デフォルトの名無しさん:2007/09/04(火) 18:49:51
多数ってどれくらいよ
910デフォルトの名無しさん:2007/09/04(火) 19:26:31
>>906-907
すみません消えてるというか鯖落ち?みたいですね
とりあえず再アップロードしました
ttp://doiob.net/doiob/uploader/src/up9915.txt
ttp://www.nya-taloda.jpn.org/2MB/src/mamitasu20193.txt(ミラー)

>>907
ありがとうございます。色々と試してみます。
とりあえず何度もやっているうちにモーション全てが消失するのではなく
フレーム間の補完してるところが消失するみたいです。
0フレーム目と30フレーム目と60フレーム目を作成した場合、
残りの1フレーム目〜29フレーム目などは自動で補完されスムーズに動きますが
どんどんカクカクになり最終的に0,30,60フレーム目しか無くなってしまう
という感じでしょうか…これだけでは情報不足かもしれませんが一応追伸です
911903:2007/09/04(火) 19:33:00
910はDirectX SDKは2007Februaryで作成しています
912デフォルトの名無しさん:2007/09/04(火) 21:50:12
ddsという形式がありますがこれってテクスチャーを張る上で何か利点があるのですか?
テクスチャーの形式は何が一番妥当でしょうか?
913デフォルトの名無しさん:2007/09/04(火) 21:52:35
>>912
俺の考えたフォーマット
914デフォルトの名無しさん:2007/09/04(火) 22:19:17
bmpでも貼っとけ。
915デフォルトの名無しさん:2007/09/04(火) 22:51:49
>910
>float AnimeSpeed;
>float AnimeTime;
>float AnimeTimeHold;
試しにdoubleにしたらどうかしら。
それと AnimeTime と AnimeTimeHold は 最初に0で初期化してるの?
916デフォルトの名無しさん:2007/09/04(火) 23:30:26
>>909
数百単位です。
ブロックを表示して、壁代わりにしているので。
対処方あったら教えてください。
917903:2007/09/04(火) 23:33:00
>>915
>>915
ご回答ありがとうございます。
全てdouble型にして実行してみましたが、
やはり1分を経過した頃からカクカクが目立ち始めてしまいました。
もしかして全然関係の無いとこで何かいじっちゃってるのかな・・・
newでオブジェクトを生成する際にゼロクリアしてますので
値は全て初期化しています。
918デフォルトの名無しさん:2007/09/04(火) 23:47:30
>917
よく考えたらDirectXってデフォルトでFPUを単精度にするから無関係ね。
(その割にAdvanceTimeとか引数がdoubleになってて謎だけど。)
AdvanceTime(ObjMotion.AnimeSpeed); みたいな決めうちでもダメなの?
919デフォルトの名無しさん:2007/09/04(火) 23:51:25
>>913
つまんねーんだよ糞ハゲ
920デフォルトの名無しさん:2007/09/05(水) 00:07:31
>>919
いや、かなりマジで
っていうか市販のゲームほとんどそうじゃん
異論あんのか?クズがw
921デフォルトの名無しさん:2007/09/05(水) 00:23:53
>>920
市販のゲームが全部お前の考えたふぉーまっとなんですか
すごいねー異論はないよすごいねー
922デフォルトの名無しさん:2007/09/05(水) 00:23:56
おまえが考えたフォーマットってすごいんだな
923903:2007/09/05(水) 00:26:00
>>918
>AdvanceTime( ObjMotion.AnimeTimeHold, 0 );
の部分を AdvanceTime( ObjMotion.AnimeSpeed, 0 );
にしたところ色々試しましたがカクカクならずに動きました!
これでやっと制作に打ち込んでいけそうです;
こちらで聞いた甲斐がありました。
短いお時間でしたがお付き合いいただき本当にありがとうございます。
924デフォルトの名無しさん:2007/09/05(水) 00:26:59
ほんとにくだらん揚げ足の取り合いだな
925デフォルトの名無しさん:2007/09/05(水) 00:33:35
他人のフリをする920
926デフォルトの名無しさん:2007/09/05(水) 01:15:54
927デフォルトの名無しさん:2007/09/05(水) 06:05:13
>>922
おう、一部だけなら某大作RPGも使ってるはずだw
928デフォルトの名無しさん:2007/09/05(水) 07:39:06
もしや特許とっちゃった例の人でつか?
誰でも使ってるロジックを縫い合わせて特許とった気分はどんなもんでつか?
某所で鶏卵って言ってるのはアンタのやつのことでつよ
チキン野郎が産んだタマゴという意味でつよ
929デフォルトの名無しさん:2007/09/05(水) 14:14:12
野郎に卵は産めません(><)
930デフォルトの名無しさん:2007/09/05(水) 18:05:15
ステンシルバッファについて質問させていただきます。

最初にステンシル値を0で初期化し、複数のオブジェクトを、Zもステンシルも通過した時+1しながら描画するとします。
そして、全部描画し終わった後、特定の値、例えば1以上の部分だけを、
別のテクスチャに描画したいのですが、可能でしょうか?
前に描画したオブジェクトの再描画はなしで、色つきで抜き出したいです。

アルゴリズム的なモノだけでも良いのでお願いします。
931デフォルトの名無しさん:2007/09/05(水) 18:08:59
可能です。
932930:2007/09/05(水) 18:22:58
ども。自己解決しました。
スレ汚しスマソ。
933デフォルトの名無しさん:2007/09/06(木) 11:41:46
リリースし忘れを警告する方法ってありませんか?
934デフォルトの名無しさん:2007/09/06(木) 12:52:22
発売日をしっかり守る! と紙に書いてパソコンやカレンダーにはっておく。
935デフォルトの名無しさん:2007/09/06(木) 13:23:54
リリースするまでオナ禁
936デフォルトの名無しさん:2007/09/06(木) 13:55:07
釣ったら食え
937デフォルトの名無しさん:2007/09/06(木) 15:29:29
デバッグ版を出しちゃった
938デフォルトの名無しさん:2007/09/06(木) 18:44:03
デバッグし忘れを警告する方法ってありませんか?
939デフォルトの名無しさん:2007/09/06(木) 18:52:25
あ、D3DXFontとかの->Release()のことです
940デフォルトの名無しさん:2007/09/06(木) 19:06:27
>>933見て>>939のように解釈できた人いるの?

CComPtr
941デフォルトの名無しさん:2007/09/06(木) 19:11:48
>>939
みんな分かっててボケてるんだよ。
942デフォルトの名無しさん:2007/09/06(木) 19:23:31
スマートポインタを使わずにする方法はないですか?
943デフォルトの名無しさん:2007/09/06(木) 19:28:17
なんで使わないの
944デフォルトの名無しさん:2007/09/06(木) 19:35:28
なんでといわれても
945デフォルトの名無しさん:2007/09/06(木) 19:38:28
使わない理由が特に無いなら使えば
946デフォルトの名無しさん:2007/09/06(木) 19:44:29
あ、スマートポインタは祖父の遺言で使うなと言われたのです
947デフォルトの名無しさん:2007/09/06(木) 19:45:15
面白くないよ
948デフォルトの名無しさん:2007/09/06(木) 19:47:09
あのう、真面目に話しているんですが
949デフォルトの名無しさん:2007/09/06(木) 19:47:58
はいはい板違い
去ね
950デフォルトの名無しさん:2007/09/06(木) 19:50:35
わかりました、もう二度と来ません
951デフォルトの名無しさん:2007/09/06(木) 20:19:33
理由はもうだいぶ組んじゃってるのでスマートポインタで書き換えるのが
面倒だと思ったのですが仕方ないので書き換えます
一応>>946>>948>>950は偽者ですので
952デフォルトの名無しさん:2007/09/06(木) 20:22:02
そんなに面倒ならプログラムを組むのをやめるといいよ。
953デフォルトの名無しさん:2007/09/06(木) 20:28:44
面倒だけどやるっつてんだろうが糞ハゲが
役に立たない上にガタガタ騒ぐなボケ
954デフォルトの名無しさん:2007/09/06(木) 21:01:48
っていうか、デバッグバージョンのdllを使えば済む話じゃないか?

コード上で検出したいなら、グローバルなインターフェースはNULLで初期化しておいて
Releaseすると同時にNULLを代入するマクロを使う。
(Releaseの戻り値が0かどうかも確認するといい)
最後に全てのインターフェースがNULLかどうか確認する。
955デフォルトの名無しさん:2007/09/06(木) 21:48:32
最後のLPDIRECT3D9とLPDIRECT3DDEVICE9のリリースで0になっていませんでした
でもどこで忘れているのか見当もつきません;;
956デフォルトの名無しさん:2007/09/06(木) 21:58:25
スマートポインタを始めて聞いたようなレベルの同僚と共同作業する場合
自分がローテクに降りて行くほうが安全確実である。
957デフォルトの名無しさん:2007/09/06(木) 22:15:46
悲しいがそれが現実だな
958デフォルトの名無しさん:2007/09/06(木) 22:49:00
一つずつ切り分けていったら原因箇所がわかり、Releaseの戻り値
すべて0にできました、ありがとうございます
959デフォルトの名無しさん:2007/09/06(木) 23:18:11
そしてAddRef/Releaseの戻り値に依存したコードは書いちゃ駄目と
MS自身が言及している悲しい現実。
960デフォルトの名無しさん:2007/09/06(木) 23:29:13
デバッグ用に確認してるだけであって、
戻り値によって処理を分岐してるわけじゃないんだろ?
まあReleaseの戻り値が期待通りでなくても文句は言えないんだが。

つか>>958
そこまでデバッグする暇あるのなら素直にComPtrで書き直せばいいのに
961デフォルトの名無しさん:2007/09/07(金) 00:05:33
時間かかりそうならスマートポインタに書き換えようと思いましたが
SAFE_RELEASEにログを吐くコードをくっつけて
↓見たいな感じで一つずつやっていったらすぐに特定できたので・・・

プレイヤークラス->Create()
//ステージクラス->Create()
//メニュー表示クラス->Create()
・・・

プレイヤークラス->Destroy()
//ステージクラス->Destroy()
//メニュー表示クラス->Destroy()
・・・
962デフォルトの名無しさん:2007/09/07(金) 00:33:27
>>961
〜を使うではなくてプログラム自体を
そういうことで悩む必要のない構造にできればレベル+1だw
俺はちゃんと組めばスマートポインタの出番なんてないと思ってる
破綻することがわかってるコードをゴリ押しでもってくのがスマートポインタ
963デフォルトの名無しさん:2007/09/07(金) 03:32:18
>>962
最後の一行に激しく同意。
階層設計を構造的にきちんとデザインしないからスマートポインターとかでよろしく処理しようと思ってしまう。
964デフォルトの名無しさん:2007/09/07(金) 04:27:30
こんなふざけた野郎はどうみても釣りだろ。
965デフォルトの名無しさん:2007/09/07(金) 05:13:13
>>963
構造主義一辺倒じゃ片付かない事例なんていくらでもあると思うんだ
966デフォルトの名無しさん:2007/09/07(金) 08:30:24
>>965
多人数で組む時とか?
でも、ここは初心者スレだし。
最初からスマートポインタで対処療法しちゃう癖つけるのも宜しく無いよ。
現実のコードが追いつく/追いつかないは置いておいて、
どっちにしろ構造をデザインするのは悪い事じゃないし。
967デフォルトの名無しさん:2007/09/07(金) 12:59:38
>>965
そういうやっつけ仕事をして日銭を稼いでいるような会社は可愛そうだな。
事例はある事は認めるが、それに甘んじてしょうがなく働くかどうかは本人次第。
俺はとっくにそういったことに見限って10年前からアメリカのソフト会社だから全然違うけどな。
968デフォルトの名無しさん:2007/09/07(金) 13:19:13
誰も聞いていない自分語りを始める奴は、例外なく心の病気にかかっている。
969デフォルトの名無しさん:2007/09/07(金) 14:28:42
>多人数で組む時とか?
いいえ、事案自体の構造的に、構造主義一辺倒の分析で間に合わないケースがあるよ

初心者スレだからこそスマートポインタに対する冷静じゃない見方を植え付けるのは
よくないなあと思ったんだが
970デフォルトの名無しさん:2007/09/07(金) 19:35:47
>>969
DirectXみたいに構造化された対象を扱うケースで?そんなに頻繁に?
設計がおかしいんじゃねーの?
971デフォルトの名無しさん:2007/09/07(金) 19:37:57
構造化・・・
972デフォルトの名無しさん:2007/09/07(金) 23:11:30
スマートポインタをただの開放忘れ防止にしか使ってなきゃいいけど
よくわからなくなったインスタンスの所在を一括廃棄するために使ってるとしたら
普通に危険だ
この先経験を積んでもロクなプログラマにならないだろう・・・
俺はそういう奴を何人も見てきたw
973デフォルトの名無しさん:2007/09/07(金) 23:35:51
俺はそういう奴を何人も見てきたw
974デフォルトの名無しさん:2007/09/07(金) 23:44:12
具体的に何人?
975デフォルトの名無しさん:2007/09/07(金) 23:46:28
大抵は日本人だけど中にはインド人とかもいた
976デフォルトの名無しさん:2007/09/07(金) 23:49:16
廃棄タイミングを制御できない事例について議論しようぜ
オブジェクトを生成した階層と、そのオブジェクトを使う階層が違って、かつオンラインのような長期稼動のケースでは、廃棄タイミングを制御するなんて現実的じゃないと思うんだ
思うだけで深い意味はない、素人だから
977デフォルトの名無しさん:2007/09/07(金) 23:52:13
日本人
978デフォルトの名無しさん:2007/09/08(土) 00:00:31
曰本入
979デフォルトの名無しさん:2007/09/08(土) 00:20:34
日本人(笑)
980デフォルトの名無しさん:2007/09/08(土) 00:36:18
つうか、自動変数でしか管理されて無いオブジェクトってなんなの?
そんなもんがプログラム中に頻繁に発生するの?
981デフォルトの名無しさん:2007/09/08(土) 00:36:51
初心者スレなのになんか難易度の高い基地外が住みついてるなこのスレは
982デフォルトの名無しさん:2007/09/08(土) 02:21:03
質問です。
初心者レベルの問題なのかはよくわかりませんが、
正規化(Normalize)や内積(Dot)・外積(Cross)の使い方がわかりません。
というか、何となく言葉ではわかっているんですが、
それを実際にプログラミングで使用するとなると
一気に?状態になるんです。
ベクトルの長さを1に〜とは言っても「1にしてどうすんの?」
という感じでして・・・
どなたかわかりやすい解説や、わかりやすいサイト等を
知っている方は是非お願いします。
983デフォルトの名無しさん:2007/09/08(土) 04:56:46
他人の解説を聞いても意味はないよ。他人にとって欠かすことができない処理でも
自分の作るプログラムに必要でないことはいくらでもある。
スーパーマリオもドラクエも法線の計算を使ってないだろうしな。
984デフォルトの名無しさん:2007/09/08(土) 05:42:22
>>982
用途が分からないものを今無理して使う必要はない
使うことによってどう役に立つのか理解したいのであれば、DirectXではなくまずは線形代数を勉強しよう

最近はゲーム開発寄りの線形代数入門の書籍も多いみたいだけど、
Webで有名なのはここかね。とっくに閉鎖してるからWebArchiveからだけど
ttp://web.archive.org/web/20020609064207/www.cc.rim.or.jp/~devilman/3dCoding/3dCoding.html
985デフォルトの名無しさん:2007/09/08(土) 06:20:01
>>976
それってつまり管理できてないってことでしょ?
ゲーム系だとみんな俺様設計で組んでるから文句言われないけど
業務系でそういうことやると組み直しになるぜ
生成したインスタンスが管理できてないなんて特に最悪

どうせならどこでも通用するプログラマになりたいよね

それにそもそも
>オブジェクトを生成した階層と、そのオブジェクトを使う階層が違って、
この構造がまずそうじゃねぇか、この仕組みに手を入れないで
スマートポインタに手をだしていいのは締め切り1ヶ月前だけだろw
ほんと広範囲に影響がでるもん触ることになってちょっと怖くて組みなおせないよってときは
いいと思う>スマートポインタ
986デフォルトの名無しさん:2007/09/08(土) 06:59:52
なに興奮してんの
987デフォルトの名無しさん:2007/09/08(土) 07:03:56
>>986
結構重要な分岐点だから
ここでインスタンスの管理をサボるようになると
マジでロクなPGにならない
988デフォルトの名無しさん:2007/09/08(土) 07:16:55
重要なことかもしれんけど初心者スレでインスタンスの管理やら説いても伝わるとは思えんけどなあ
そして伝わってないなら周りから見ればスレ違いのオナニー長文にしか見えないわけで
989デフォルトの名無しさん:2007/09/08(土) 08:28:57
場違いな所での場違いな力説の空回り感と言ったら・・・
990デフォルトの名無しさん:2007/09/08(土) 09:48:17
まあ、ちゃんと管理しなきゃ駄目だよってことが伝わればおk
991デフォルトの名無しさん:2007/09/08(土) 14:55:03
どーせJavaグラマ上がりのスマートポインタマンセーブタが、設計の手抜きに対して
「事案自体の構造的に、構造主義一辺倒の分析で間に合わないケースがある」
とか寝ぼけてんでしょ。
無視が一番。
992デフォルトの名無しさん:2007/09/08(土) 16:10:39
チームが分断していてコントロールできない事例なんていくつもある
さらにチームではなく、外部ベンダとかに分断している可能性だってある
現実的に優秀なPGが一人いるわけじゃなくて、馬鹿なPGが大勢いることの方が多い
下手したら日本人PGはインドや中国のPGより質が悪いかもしれない
じゃあ現実的にどうしようか、って考えたらリソースリークが避けられるスマートポインタは一つの方法としてあると思う
(生成したもの全てをスマートポインタにしろといってるわけじゃない)
他には遅延フェッチの実装を助けるとか、リソース管理とか参照回数の計測をしなきゃいけないときとか、純粋にコーディング世界での有用性もあるし
要は使いどころだと思うよ
993デフォルトの名無しさん:2007/09/08(土) 16:20:30
だったら、まず必要なのは「スマートポインタで逃げる事」じゃなくって、
多人数でも正常に動作する構造設計と品質管理システム。
リークのあるリソースの追跡なんてプロファイラでやる事。
最後の行も、スマートポインタと全然関係無い。
普通にスマートポインタ使わない環境でもやってる事ばっかり。

「要は使いどころ」なのは同意だが、「困ったらスマートポインタ」なんてやってたら
バカPGが大勢生産される環境になるだけ。
994デフォルトの名無しさん:2007/09/08(土) 17:13:40
お前らみんなスレタイを見ろ。
995デフォルトの名無しさん:2007/09/08(土) 18:31:49
>>993
それ、良い事じゃないか
996デフォルトの名無しさん:2007/09/08(土) 18:53:38
>他には遅延フェッチの実装を助けるとか、リソース管理とか参照回数の
まさにスマートポインタの使いどころだと思うけど
997デフォルトの名無しさん:2007/09/08(土) 19:06:48
設計でつまずくたびにスマートポインタでスマートに逃げる・・・
逃亡プログラマだなw
998デフォルトの名無しさん:2007/09/08(土) 19:43:08
体育会系プログラミングってやつか
999デフォルトの名無しさん:2007/09/08(土) 21:46:16
糞スレ埋め
1000デフォルトの名無しさん:2007/09/08(土) 21:47:50
でもそんなの関係ねぇ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。