[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 11/06 20:19 / Filesize : 173 KB / Number-of Response : 683
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん [2007/06/21(木) 00:03:46 ]
※回答する人も、質問する人も必ず読んでください

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

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

【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。


2 名前:デフォルトの名無しさん [2007/06/21(木) 00:05:38 ]
【関連サイト】

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

DirectX Home Page
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総合スレ (過去ログ等)
gamdev.org/w/?%5B%5BDirectX%C1%ED%B9%E7%A5%B9%A5%EC%5D%5D

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

ゲームを作るための素材を集めよう まとめサイト
paw.my-sv.net/index.html


3 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 12:42:14 ]
>>4
自分はクォータニオンは使ったことないが、よーするに
何らかの操作で、自分がその場でくるくる回るような回転をやりたいわけか?
だとすると、D3DXMatrixLookAtLHの引数で言うなら
カメラの位置=pEye は固定で、注目点=pAt のベクトルを
ぐるぐる回せばいいだけじゃね?

それともオブジェクトをカメラを中心として回すのか??

7 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 13:41:56 ]
DX10のサンプルどれも動かないんだけど・・・
X1300pro(非128bit地雷)
Athlon64 X2 3800+

そんなに重くなって何が変わったんだ?

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

なにか定石的なカメラ移動全般処理のサイト様、または方法などありましたら
ご教授お願いいたします


9 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 14:28:56 ]
行列すらまともに理解してない状態でクォータニオンに手を出すなんて・・・

10 名前:6 mailto:sage [2007/06/21(木) 14:51:41 ]
>>8
なるほど。だがそういう計算に定石ってのはない。
要は数学的にやりたいことを表現できるかどうか。
線形代数やベクトル幾何の勉強が全然足りてないんだと思うから本でも買ってみ。
端折って言うと、それは行列の掛ける順番がおかしい、もしくは
移動の計算がおかしいんだと思う。
カメラに与える移動のベクトルに対して、いま現在の回転量の行列を
ちゃんと掛けてる?



11 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 18:25:47 ]
>>7
ネタ?
X1xxxってDX9までだろ?


12 名前:デフォルトの名無しさん [2007/06/21(木) 18:36:49 ]
>>10
ありがとうございます
勉強してみます
またよろしくお願いします

13 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 18:53:37 ]
>>11
VistaならDX10動くじゃん
木を表示するサンプルさえ0.11fpsなんだけどサンプル画像ではDX9と違いがわからない
何が違うのか知りたかった

14 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 18:56:05 ]
それリファレンスラスタライザで動いてるだけだろ

15 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 18:58:45 ]
>それリファレンスラスタライザで動いてるだけだろ
ソフトウェア処理でも遅すぎだろ・・・

結局DX10は何が違うの?

16 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 19:13:54 ]
次世代の土台

17 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 19:14:20 ]
refがなんなのか分かってるのか?

18 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 19:21:45 ]
>>17
GPUをソフトでエミュるんじゃないの?
DX9をソフトウェア処理にしても動くけど何が違うの?

19 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 19:28:39 ]
わかった質問変える
DX9とDX10の違いがわからない
どちらもソフトウェア処理なのだけどDX9はぬるぬる動くのに対してDX10は止まる
どちらもサンプル画像では違いがわからない
DX10劇重なわけだが何が違うのか?

20 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 19:31:20 ]
> ソフトウェア処理でも遅すぎだろ・・・
つまりこれが9と10の違いって事だろ。



21 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 19:33:28 ]
>>19
具体的にはどのサンプルで比較してる?
俺も試してみるから

22 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 19:35:03 ]
REF(リファレンスラスタライザ)ってのはその名の通り
リファレンスになるような書き方をしてる、ソフトウェアによるドライバのこと。
だから実用的な速度にするための高速化はなんもやってない。らしい。
(その代わり、シェーダーなんかもREF上で動かせるしpure device指定できる)
そのDX9のソフトウェア処理ってのは、頂点処理はソフトウェアでやる、ってことじゃね?
REFはビデオカードの機能を一切使わんよ。
DX10のそのサンプルは見たことないが、要求するシェーダバージョンを満たしてないから
(DX10のサンプルは新しいシェーダバージョンの機能を使ってるから)
REFで動作してるだけだと思われる

23 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 19:56:20 ]
>>22
>REFはビデオカードの機能を一切使わんよ。
そうなんですか・・・知りませんでした。

>>21
BasicHLSLとBasicHLSL10の違いがわかりません。
あと、Direct3D 10 Shader Model 4.0 Workshop がなぜ重くて何がすごいのかわかりません。
使用しているSDKは2007Juneです

24 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 20:44:45 ]
BasicHLSLとBasicHLSL10は3〜5倍くらいfps違います

25 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 22:38:12 ]
>>12
↑最悪のレス発見w

26 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 23:59:23 ]
質問です。

現在、VC++EE,platformSDK,directxSDK(oct2005) で使っていますが、
スタティックリンクできるdec2004に切り替えようと思っています。
この場合、oct2005をアンインストールしてdec2004を入れなおし、
VC++のパスを設定しなおすだけで問題ないでしょうか?
OSから入れなおした方が安全でしょうか?


27 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 00:01:16 ]
>>26
問題ない

28 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 00:11:18 ]
>>26
OSは入れなおす必要は無い

29 名前:26 mailto:sage [2007/06/22(金) 00:32:06 ]
>>27>>28

ありがとうございます。
バージョン落として使うことってあまりないと思っていたので、安心しましたm(_)m


30 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 01:37:52 ]
DX10やりたいなら現状だとG8x買うしかないよ。
リファレンスラスタライザは死ぬほど遅いから。




31 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 18:38:03 ]
遊びでDX10触るならもう少し待ったほうがいいってことですかね

32 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 18:49:24 ]
REFは遊ぶためのものじゃないんだからREFしか使えない環境で遊ぼうと思うのがおかしい

33 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 18:52:21 ]
G8xとか使ってて、あれ?おかしいなぁ、って思ったらREFでドライバーがバグってないか確認した方がいい程度がREFの役目。



34 名前:デフォルトの名無しさん [2007/06/22(金) 20:03:34 ]
超初心者で申し訳ないのですが質問です。
今、ヴァーチャルPC2004をインストールして、ゲームを動かしたいのですが、
実際のPC上のグラボは使えないみたいなんですが、なにか方法はないでしょうか?
ゲーム起動だけがエラーがでてしないんです><
ホルダー共有とかのタグはあるんですが・・・
すみませんがよろしくお願いします

35 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 20:10:06 ]
>>34
プログラム作成と何の関わりがあるのか明確に述べよ。

36 名前:デフォルトの名無しさん [2007/06/22(金) 20:12:02 ]
ちなみにいま確認したところ
VM Additions S3 Trio32/64 というアダプターが入っているそうです・・・
8MBしかない><

37 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 20:19:34 ]
とりあえずコンパイルしてデバッグできるのか?

38 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 00:34:51 ]
>>34
方法はない。VPC2004はDirectX HAL関係は動作しない仕様

40 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 00:49:04 ]
>>38
D3DXLoadMeshHierarchyFromXInMemoryを使ってみたらどうだい?



41 名前:デフォルトの名無しさん [2007/06/23(土) 00:55:08 ]
>>39
ありがとです><

42 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 01:11:38 ]
>>39
DirectDrawはきっちり動作するだろ。
DirectXのHALが動かないわけではない。
特定のコンポーネントとDirectX自体を混同するなこの馬鹿。

43 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 07:11:49 ]
VMWareなら、設定変えれば動くんだっけ?

44 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 20:37:13 ]
環境はXP

46 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 21:01:17 ]
>>44
ちょっと検索したら海外のフォーラムでも報告されてるね
Vista+VS2005 でも発生するらしい

原因はワカンネ;;

47 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 03:50:52 ]
DIJOYSTATE構造体メンバのlZ(z軸)やlRz(z軸回転)の押下判定は
lX(x軸)やlY(y軸)と同じように使えますか?
調べてみた所、32767を基準にしたような値になるんですが・・・。
DIRECTINPUT_VERSIONは0x700です。(バージョンの問題でしょうか?)

48 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 04:38:13 ]
>>44
実はVistaだと起きないとか?
ひょっとするとコンパイルする時にコンパイルレベルにVista以上と設定してしまっているのかもね。
Releaseだと大丈夫だから気づかなかったとか。多分コンパイル環境が変わっているんじゃないかな?


49 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 05:06:40 ]
>>48
Vistaで起きるかはわからない
2007 June付属のDXCapsViewer.exeでも出る(Microsoftがコンパイルしたもの)

50 名前:47 mailto:sage [2007/06/24(日) 05:47:22 ]
DIPROPRANGE構造体の内容を変えたらうまくいきました。



51 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 11:57:40 ]
ファイルを用意する。
パスを通す。

54 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 12:29:58 ]
>>53
具体的にどうやればよいのでしょうか?


55 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 12:34:57 ]
>>54
DirectXの管轄外

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

テンプレ通りここじゃスレ違い。

56 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 12:37:46 ]
>>54
そんな質問をするぐらいのレベルならC++を勉強し直さないと・・

57 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 12:40:48 ]
>>saikikooh
具体的には、Googleを使います。
具体的には、スレ違いに気付け。




58 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 12:42:39 ]
了解しました。出直してきます。


59 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 12:50:01 ]
別に出直さなくても、それにふさわしいスレなりで質問すれば
ちゃんとした答えが返ってくると思うけど

60 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 14:00:27 ]
>>51
どういうこと?
SDKのユーティリティを全部コンパイルし直せばいい?
Directx使うアプリ全部っぽいんだけどソースないものはどうすれば・・・



61 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 21:08:47 ]
yahooでググレよ・・・

62 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 22:04:25 ]
VBランタイムしか無い
弱った・・・

63 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:25:27 ]
デザインパターンか何か勉強すれ

66 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:42:47 ]
singletonパターンでいいんじゃね

67 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:44:06 ]
>>64
派生の使い方を完全に間違えてる。

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

DirectXなんかより前にまずはオブジェクト指向の基礎を勉強しないと、
そういう問題が次々に出てきて手に負えなくなるよ

68 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:46:37 ]
意味の分からない派生すると後でキツイよな
PrimがCGraphicsを持つのが自然な希ガス


69 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:48:53 ]
あれか、竿から糸が出ているのか、糸に竿が付いているかという考え方の違いか。

70 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:49:32 ]
>>64
デバイス類をカプセル化してDraw類もCGraphicsのメソッドでいいんでない



71 名前:64 mailto:sage [2007/06/25(月) 23:33:40 ]
あーやっぱり間違えてるかぁ
dクス。

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

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

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

それかシングルd(だっけ?)でCGraphicsを作ってそのポインタを持ってきた方がいいのかなぁ


72 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 23:37:48 ]
うぜぇ
どっかいけ

73 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 00:06:38 ]
問題はDirectXでなくC++の基礎知識の不足だと言ってるのに、
なぜこのスレで再度ごたごた言うかねえ

そういうチラ裏はC++初心者スレでやれよ


74 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 19:04:08 ]
DX10ってDX9から移行する価値あるかな?あんまり変わらないならDX11までスキップと思うのだが。


75 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 19:08:50 ]
DX11???

76 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 19:45:35 ]
>>74
あまり変わらないのであればDX10が出来ればDX11になっても何の問題もなくね?

77 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 21:39:29 ]
>>77
ポリゴンの頂点座標を2倍になるように引き伸ばすだけかと

79 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 22:33:49 ]
>>78
はあ??質問ちゃんと読んでんの??

80 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 22:49:34 ]
拡大と引き伸ばしは違う



81 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 22:58:11 ]
ミップマップ効いてね?

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

とか・・・そんなわけねぇかw
もう考え得るフィルタ全部探してPOINTにしてみれw

82 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 23:03:48 ]
>>81
うん?
>>77は拡大表示してんだろ?ミップマップ関係なくね?

83 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 23:08:35 ]
>>82
何をもって「拡大」って言ってるかわかんねぇじゃん
初心者スレだしよ

単にスケールを2.0にして2倍とか言ってる気がしないでもないし
ここはレスどおりとらないでみた

84 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 23:15:11 ]
そんなことより俺はキャラクターがさりげなく擬人化されていることに地味にフイタ。すまん

>512*512のbmpを読み込、その中にいる32*32のキャラクターを2倍に拡大して表示しました。
>そうしたらキャラクターがぼけてしまいました。

85 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 23:35:38 ]
>>85
>>77はDX8って言ってるが、それDX8じゃなくね?
見た瞬間やたらなつい気分に襲われたんだが

87 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 00:21:57 ]
>>86
DirectX7だっけ?>>85は・・・
SetSamplerState
がDirectX9だっけ?
もう色々あって覚えてねーなw

SetRenderStateとSetTextureStageStateと両方設定する必要が
あったのは俺の勘違いかな?w

88 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 00:44:18 ]
あ、俺、DirectX8のヘルプ持ってるじゃんw
DirectX8でのやり方は>>77の方法で正しいな

89 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 00:54:04 ]
BBXで色々探してきた

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

じゃあ、次、これ↓
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 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 01:26:32 ]
>>90
最近、そんなレスねーじゃん

92 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 01:38:37 ]
>>89
これだね。

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

NyaRuRu氏の書き込みでDX8のヘルプがリンク切れになってるけど、たぶんそれと同じ内容。

93 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 01:49:23 ]
>>89
いわゆる「0.5ずれ」がボケの原因となるのは、
ピクセル:テクセル=1:1で、かつニアレストネイバー(POINT)フィルタ以外の
フィルタを使ってるときだけだよ。
テクスチャマッピングの基本を抑えていれば簡単にイメージできるはず。

>>77は、「2倍に拡大」って言ってるし(質問者が拡大率の定義を間違えている可能性もあるが)、
さらにD3DTEXF_POINTを使っているとも言ってるから、
恐らくボケの原因はモニタの調子がおかしいとか眼鏡の度が合ってないとか別のところにあると思う。

94 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 02:01:11 ]
>>92
最近の英語版ヘルプはちょっと絵がきれいになってる。
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 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 02:09:54 ]
>>94
なぜ34*34にする必要がある?
33x33で十分だし普通そうする。

96 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 02:12:32 ]
>>95は.>>94を誤読してた。すまん

97 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 02:21:13 ]
ああもちろん、ポイントフィルタと共に生き共に死すような人なら
心おきなくぴっちり敷き詰めちゃってください。

後でポイントフィルタ以外を使いたくなったときには
ちゃんと思い出して欲しいけど。

98 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 02:33:37 ]
>>94
D3D10ではどの部分が廃止になったの?


99 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 02:40:08 ]
>>98
-0.5引いていた部分。
今度からは引かなくて正解になる。

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 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 02:43:13 ]
>>99
-0.5「引く」だと意味的に逆になっちゃうか。

正しくは、いままで0.5引いていたコードなら、
今度からは引かないのが正解になった、みたいな。








[ 続きを読む ] / [ 携帯版 ]

次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<173KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef