1 :
デフォルトの名無しさん :
2005/11/26(土) 21:10:02
2 :
デフォルトの名無しさん :2005/11/26(土) 21:11:09
4 :
デフォルトの名無しさん :2005/11/26(土) 21:13:31
5 :
デフォルトの名無しさん :2005/11/26(土) 21:16:43
建てたぽ
また鬱か
うなぎ禁止
鰻はここに聞けと言われてきました。 日本の鰻は海へ出たら何処へ旅に出ているんですか? あと、鰻は土から生まれるってのは本当ですか? 教えてください。
>>9 私の知る限り、
前者は研究中のテーマだったと思うし、
後者は幼生が小さいことからきた誤解だと言う話だったと思う。
11 :
デフォルトの名無しさん :2005/12/01(木) 00:00:59
SDK Decemberでるのかな?
12 :
デフォルトの名無しさん :2005/12/13(火) 12:30:29
> Direct3D 10 Technology Preview これは気になるか。コミケ終わってから見よっと。 > Windows Vista Game Explorer なんじゃいこれは。またわけのわからんものを。
MDX2がまだbeta2向けだorz
普通にスルーだなw もう、DLL自分で配れとかマジありえねぇサポート(?)の状態は終わったのか?w なんか色々増えてるっぽいけど、どうせ次のウィンドウズが出るまで放置確定だろ。
じゃあ鰻ポリについて語ろうぜ。
17 :
デフォルトの名無しさん :2005/12/18(日) 09:55:37
鰻って何ですか?
確認しておきたいことがあるんですが、 DirectGraphics にてメモリからテクスチャ読み込んだ時、読み込み後すぐにバッファは破棄してOK DirectMusic にてメモリからセグメント読み込んだ時、読み込み後すぐにバッファを破棄するのはNG ……で合ってますか?
テクスチャに既存のデータではなく単色で塗りつぶすだけでもいいから、 直接内容を書き替えるプログラムを作ってから出直せ。 質問はその後だ。
いや、書き換えたことあるから上は想像ついた。18 で聞きたかったのは下の方。
GCしないとキャッシュされてんじゃなかったっけ。
ガードキャンセルか
DirectX7の日本語ヘルプってもうDLできないの? どっかにないかな?
えーマジDirectX 7!! DirectX 7が許されるのは小学生までよねー
>>23 DirectX1からヘルプを取ってある俺がきましたよ。
どうしてもほしけりゃアップするよ
28 :
26 :2005/12/26(月) 13:49:16
29 :
23 :2005/12/26(月) 18:40:47
4以前のヘルプ持ってるって凄いな
31 :
デフォルトの名無しさん :2005/12/26(月) 22:05:28
知らんけど動きそうな予感がするのがMSという会社の隠れた恐ろしさ。
10年前のライブラリなのに動いたらすごいね。 (久々にブラウザで書き込んだらageてしまった スマソ)
34 :
デフォルトの名無しさん :2005/12/28(水) 03:11:52
へーこのスレにsage進行のローカルルールがあったなんて初めて聞いた
あ、違うんか。 みんなsageてたからてっきりそうだと思って。
自治厨が住み着かないくらい寂れたスレだからな。 ウナギの件でも明らか。
おまい、鰻を馬鹿にしたな?
xファイルの仕様を調べようと思ったが 検索してもうまく引っかからないので挫折した。
検索するまでもなくSDKのヘルプに載っているだろ。
鬱だ氏のう
うつだうじのう
>>39 仕様が見つからないなんて、しようがないなー
こんなので座布団もらっちゃったよ。
47 :
デフォルトの名無しさん :2006/01/01(日) 06:08:26
DirectX8でXファイルを作成するモデリングソフトを作ってるんだけど、 フレームありのXファイルを読み込む際、メッシュの読み込みに、 D3DXLoadMeshFromXofを使ったんだけど、 保存する際には、D3DXSaveMeshToXofって無いみたいですね。 そういうときは、どうすればいいんでしょう??
自分でつくりゃあ めんどーなだけで難しくはなかろ
test
>>48 自前で組むしかないんですねぇ。
まぁ、けっきょくはテキスト出力ですけど・・・・orz
ID3DXFile系のインターフェイスじゃダメなの?
52 :
【凶】 【584円】 :2006/01/01(日) 07:42:25
a
モデリングソフトを作る人間が、内部データまでD3DXに依存する作り方をするのがそもそもの間違い。 使っていいのはせいぜい低レベルの入出力を担当するID3DXFileまで。
やってみれば分かる。 すぐに破綻するから、開け閉め。
57 :
【大凶】 【1382円】 :2006/01/01(日) 15:58:31
融通が利かずショボイとこで頭打ちにはなるだろうが Xファイルで表現できることが、そもそもショボイのだからいいんじゃまいか。
58 :
51 :2006/01/01(日) 16:50:36
あー、DX8か・・・。 じゃあIDirectXFileだね。
59 :
デフォルトの名無しさん :2006/01/01(日) 18:09:54
スプライトを拡大して描画すると画像がボケてしまうんですが このフィルターを無効にする方法を教えてください
60 :
デフォルトの名無しさん :2006/01/01(日) 18:10:31
あ、VisualC++6.0でDirectX9.0です
61 :
デフォルトの名無しさん :2006/01/02(月) 00:28:14
age
>>59 つSetSamplerState
こういうのは、いろいろ調べたり、設定変えてみたりして楽しい部分なんだがなあ
63 :
デフォルトの名無しさん :2006/01/02(月) 10:29:18
>>62 どうしてもうまくいきません。
g_lpD3DDevice->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_NONE);
こんな感じじゃだめなんですか?
他の値も試してみたんですが、変化がないです
>>63 なるほど〜そんなところで詰まってたのか。
D3DSAMP_MINFILTER も 設定しないとだめなんだよ。
あと、NONEよりPOINTのが明確なんじゃないか?
65 :
デフォルトの名無しさん :2006/01/02(月) 13:01:38
>>64 やっぱりだめみたいです・・・
g_lpD3DDevice->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_POINT);
g_lpD3DDevice->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_POINT);
この部分は間違ってないですよね?
>>65 それであってるはず。それでだめなら、画面のプロパティ詳細で
ドライバレベルで強制フィルタかかってるとかかなあ。
67 :
デフォルトの名無しさん :2006/01/02(月) 13:19:45
>>66 あ、気のせいでした!できてました!
でも、所々ボケているみたいです。
68 :
デフォルトの名無しさん :2006/01/02(月) 14:54:20
フルスクリーンだと問題ないのですが ウインドウにすると画像がぼけるみたいです
69 :
デフォルトの名無しさん :2006/01/02(月) 15:52:33
>>68 メインウインドウのクライアント領域サイズとレンダーターゲット(バックバッファ)の
サイズが一致してないから、ストレッチかかってるんだろうね。
キャプチャして計ってみたら?
70 :
デフォルトの名無しさん :2006/01/02(月) 16:56:00
>>69 ありがとうございました。できました。
もう一つ質問なのですが、
CreateWindowで作成するウインドウのサイズは640*480で
バックバッファのサイズを320*240にして、
最終的に2倍で描画したいのですが、そうするとやはりぼけてしまいます。
どうすればいいでしょうか。
>>70 方法はいろいろあるが、俺の場合だったら、IDirect3DSurface9インターフェイスにD3DTEXF_POINTで
一旦転送(※1)してクライアント領域にStretchBlt(GDI)する。
実際にやったことはないので保証はできん。
以下の点に注意が必要かもしれん。
IDirect3DSurface9インターフェイスは、D3DPOOL_SYSTEMMEMで作ったテクスチャから
GetSurfaceLevelで取り出す。
CreateDeviceに渡すD3DPRESENT_PARAMETERS構造体メンバーFlagsに
D3DPRESENTFLAG_LOCKABLE_BACKBUFFERフラグを設定しなきゃならないかもしれん。
72 :
デフォルトの名無しさん :2006/01/02(月) 18:59:46
>>71 GDIを使うと処理が遅くなったりしないのですか?
ところで、
>>70 の方法で16*16を2倍にして描画するのと、
32*32を直接描画するのでは、どちらが速いですか?
>>70 ああ、わかった。
フレームサイズを考慮に入れてない。
74 :
デフォルトの名無しさん :2006/01/02(月) 20:47:08
>>73 クライアント領域のサイズではだめなんですか?
76 :
デフォルトの名無しさん :2006/01/22(日) 01:54:19
オレも
>>59 と同じところでハマった
たしかにGDI使ってDirect3Dの拡大縮小を使わなければ無問題なんだが
なんとか解決したい
なにか突破口ないか?
77 :
デフォルトの名無しさん :2006/01/22(日) 09:12:45
>>76 なにそれ?
スプライト使わなければおきない問題なの?
例えばDrawPrimitiveで直接描画した場合とか、
で、フィルタってのは何を指してるの?
バイリニアフィルタとかそういうのがかかってるってこと?
じゃあ、1回DrawPrimitiveでフィルタ有と無のサンプル作って
実験してみてくんない?
そうしないと君の目でみたフィルタと俺が認識してるフィルタが同じものかってわからない。
このボヤケが拡縮の際につくちょっとしたゆがみならどうにもならないし、
フィルタをOFFにして納得のいく結果が出ればそれでいいんじゃね?
3Dデバイスを経由すれば、どうステートをセットしようと結局ドライバの実装次第だから、 確実に同じイメージを作り出したければ、自分でピクセルを書いていくしかない。 全く同じものが作れたら、そもそも3DCGソフトのレンダラーなんかはハードウエアを使うのが標準になっていただろう。
Direct3D上ではフィルタOFFでも、ドライバの方でフィルタが有効にされ(ry
http://pc8.2ch.net/test/read.cgi/tech/1134388951/ このスレで誘導されたのでこっちで質問します。
ATLでCOMオブジェクトを作っています。
そのオブジェクトにIDirectSound8*を引数にとるメソッドを作りたいのですが、
IDLのコンパイル時に「そのような型は定義されていない」と怒られます。
dsound.hをincludeすると今度はULARGE_INTEGERなどの型が二重定義だと怒られます。
というわけでincludeがまともにできないんですが、
そのような状況でIDirectSound8のような定義を使うにはどうすればいいんでしょうか?
元スレの
>>249 さんが書いたのをコピペすると
interface hoge : IDispatch{
[id(1), helpstring("メソッド dohoge")] HRESULT dohoge([in] IDirectSound8 *hoge);
};
こういうことをしたいのですけれども。
COMの話は向こうだろ。この発言が正解だ 糞コテなんか信用すんな >246 名前: デフォルトの名無しさん [sage] 投稿日: 2006/02/04(土) 21:53:24 >これはたまたまインタフェイスがDirectXだったというだけじゃないんですか?
82 :
デフォルトの名無しさん :2006/02/09(木) 19:16:59
83 :
デフォルトの名無しさん :2006/02/09(木) 21:04:50
今回はどんな使いもしない機能がお披露目されたのだろう
てゆうか次のウィンドウズってマジでこれを標準装備なのか? いままでのGUIは全部サポートできてんのかな?
暇なヤツはとっとと中身をレビューしなさい。これは命令である。
物好きにDirectX10でもチラ見せしてるだけじゃない?
とりあえずエフェクトコンパイラの最適化に 進展はないみたい。 今の最適化では、Uniform引数に構造体を使った場合、不要なメンバの トリミングをやってくれないもんだから、不用意に構造体使えないんだよなー。 なんとかしてよ、まったく。
エフェクトクラスって遅いしもう使わないよな?
>>88 めでたくD3DXからD3Dに昇格したみたいよ
どっちかっていうと、Effectがメインになってくと思う。
Effectコンパイルさえ通れば他は何でもいいみたいな。
Uniform引数のトリミングの為に、悩んだ末やっと組んだのに コンパイルが通らねー鬱だー マジDX10なんていらないから、こっち力入れてよー 2〜3万ぐらいなら金出してもいいのにー
91 :
デフォルトの名無しさん :2006/02/15(水) 03:41:39
D3DX10ってXPで動く?
VISTA専用
>>82 Windows2000にはインストールすらできないのか。。。
OSに金出すの辛いねぇ 2000で何の不満もないんだけどな まぁこんなのいらないかw Vistaまで待とう
95 :
あげますよ・・・ :2006/02/19(日) 23:02:28
VertexShaderからPixelShaderに 1本の正規化3Dベクトルを渡したいんだが 入出力レジスタは数の制限が厳しいので xとyだけ渡して、z=√( 1 - (x*x+y*y))としようと思ったんだけど VSからPSに渡した段階で、ベクトルの長さは1じゃなくなるよね? この方法は使えないですか?
>>95 >VSからPSに渡した段階で、ベクトルの長さは1じゃなくなるよね?
どういうこと?
>>96 VSからPSへ渡されるレジスタの値は、
線形補間されます。
>>95 線形補間でベクトルが短くなるのは誤差の範囲でええんでねえの。
大体、z=√( 1 - (x*x+y*y))←こんな計算しているぐらいだから、
PS2.0以上でしょ、無理せんでもテクスチャレジスタ8本、カラー
レジスタ2本(これは8bit精度だけど)つかえるから十分なよう気が
するけど。
PS1.xの時代は命令数とかの制限でベクトルを正規化できなくて、
仕方ないから正規化せずに線形補間で短くなる分は誤差という
ことで無視することもあったよ。データを圧縮すれば精度が犠牲
になるのは、トレードオフというのでは。
>>95 ピクセルシェーダで正規化しなおせばいいんじゃないの
100 :
98 :2006/02/20(月) 00:00:36
>>99 正規化しなおしても、ピクセルシェーダに渡される時点で
x,yの2次元ベクトルの長さが微妙に短くなるので、zの値
が微妙に長くなる。
>>98 ピクセルライティングだと
1ライトにつき3〜4本消費します。
普通にやると、1pass1ライトでギリギリです。
そこで、圧縮して2ライトぐらい出来るようにしようと思ったのですが・・
でも小細工っぽくてあんまり良い方法には思えなくなってきたので止めます。
passを増やす方向で考えます。
アドバイスありがとうございました。
102 :
98 :2006/02/20(月) 00:35:07
自分の中で1照明1passという固定観念があったので気がつかなかった。 ピクセルライティングだと1照明で確かに3、4本消費するね。
103 :
デフォルトの名無しさん :2006/02/23(木) 23:19:35
質問です。 ロボットのキャラアニメ部分を製作中です。 D3DXFRAME と ID3DXAnimationController 1対1のアニメは成功しました。 最終的には4対1になるのですが、ID3DXAnimationController.CloneAnimationControllerで4対4にする方法しか思いつきません。 パフォーマンス的にそれは避けねばならない場合、どうしたら良いでしょうか?
自前にして個別データと共有データを分離すれば?
初心者の方かw
107 :
デフォルトの名無しさん :2006/02/27(月) 01:23:32
頂点バッファレンダリング(Render To Vertex Array)ってのは、 Direct3D9では出来るの? 現状ではVertexBufferにD3DUSAGE_RENDERTARGETは指定出来ないみたいだけど
実際に使えるかどうかはデバイスの問題でDirect3D9では対応している。
109 :
デフォルトの名無しさん :2006/02/28(火) 02:41:15
>>108 Direct3D9では対応しているとは具体的にはどういうことですか?
VertexBufferをレンダターゲットにするんでしょうか?
それともテクスチャを頂点バッファとして使うんでしょうか?
自分のRadeon9700ですけど、対応してたら嬉しい。
>>109 その意味がわからないことが信じられない。
Capsって何のためにあると思っているんだ。
>Direct3D9では対応している 本当?
DirectXのライブラリが対応してるのとデバイスが対応してるってのは 全然別の話って意味。大昔のビデオカードが刺さってるPCに DirectX9を入れる事は可能だけどだからといって最新の プログラマブルシェーダーが利用できるってわけじゃない
>>112 頂点バッファレンダリングの実装例が
OpenGLのはあるけどDirectX9のが見つからないのよね。
だからもしかして対応自体してないんじゃないのって話。
プログラマーが直にVRAMの再配置とかってできんの?
もはや誰もそんなことは考えていないし、DirectX 10はもっと考えなくて済むようになってる。
117 :
115 :2006/03/16(木) 23:17:13
私も考えたくない事ではありますが。。。
だから考えなくていいんだってば。
ガンガンに出し入れしても最適化される作りになっている。。。という感じでしょうか? しつこくてすいません。
ていうよりは再配置やらを意識したコードは「書いてはいけない」。
VRAM容量はCPUのキャッシュ容量と同じくらいには気にしなくていい。 シロウトは何も考えずにコード書いとけ。問題など起こらん。
122 :
115 :2006/03/19(日) 12:49:02
なるほど。 気にしなくて良いのは分かりました。 しかし、どうしても行いたい場合、どういった関数群を使用したら良いのでしょうか?
>>122 違う。「出来ない」といってるの。
ウィンドウズですら管理できてないと思われる。
簡単にロストするしね。
>>123 なるほど。
VRAM容量調べてリソース突っ込んでいたのですが、
容量限界を突破しても登録できたので「変だな〜」とは思っていたんです。
容量限界を超えたらシステムメモリをVRAMとして勝手に割り当てちゃうみたいですね。
ありがとうございました。
VRAMに置けば速くなるとでも思ってるのか?
126 :
デフォルトの名無しさん :2006/03/19(日) 23:32:42
127 :
115 :2006/03/20(月) 01:59:54
速くなるかどうかは分かりませんが、何らかのメリットはあると思ってます。
テクスチャはすべて256x256x16bit固定にするとか メモリはすべてD3DPOOL_DEFAULTにするとか メモリの断片化を防ぐため、malloc/free/new/delete禁止で自前のメモリ確保関数を使うとか c++を禁止し、cだけで書くとか 何らかのメリットはあると思ってます。
それ、他の部分でのデメリット多そうだな
130 :
デフォルトの名無しさん :2006/03/20(月) 11:28:55
>>115 はVRAMとフレームバッファの認識がごっちゃになってる気がする。
>>128 Win32でもこういう考え引きずってる人いるんだよな
Win32っつーか2000以降だろ やれるならやった方が良いだろ。 どっちかっていうとコンシューマあがりって感じに見える。
日本はもう駄目かも分からんね。
floatとdoubleみたいなものか
>メモリはすべてD3DPOOL_DEFAULTにするとか これはまだ有効なんじゃないの
>>115 を茶化す為に書いただけでしょ。
無効とは書いてないし。
ヘルプには256x256が一番速いって書いてなかったかな
ハードウエアによって最適な値は異なる。
>>138 ヘルプつってんだからヘルプ読めよ基地外
そんな怒んなくても良いではないでつか。 もしかしてアノ日?(・ω・)
いやおまいのがウザイ
>>137 それはMSが想定した化石レベルな話。
> NVIDIA
> It doesn't influence a speed though it is probably 1024*1024 though it is probably 256*256.
256だろうが1024だろうが速度に関係ねーよボケ。
> ATI
> It is not the resolution of the texture to be high speed best. This MS256(256*256 is the fastest) age ended.
速度をあげるのはテクスチャ解像度じゃねぇ。MS256(256が一番速い)の時代は終わったんだよボケ。
ヘルプを信じるなという良い例だなw
これこそまさに鬱だ氏のう
たぶんVRAMの容量が少なかった頃に誰かが適当に書いた一文なんだろうな。
>>128 勘違いしちゃう人のためにかいておくけど
>>128 みたいなことは
全部OSが管理してるからやっても無駄。
ハードウェアを特定せずに最適値のガイドラインを書いても すぐ obsolute になってあまり意味があることには思えないよな。>MSのヘルプ tips がどのハードを想定して書いたものなのか明確にしてほしいわな。
>どのハードを想定して書いたものなのか ヘルプ&チップスを書いたバイトの兄ちゃんが持ってるハード
ソフトウェアレンダラの話とか
もはや3Dですら同人ソフト程度なら大富豪プログラミングが可能。 いい世の中になったものだな。
>>149 規模によると思うんだが、、、
嗚呼、、、叩かれそうな悪寒
>>154 ん?規模によらないでしょ?
そもそも物理メモリってのはすでに俺等には触れない領域でな(以下略
156 :
154 :2006/03/22(水) 01:04:28
いや例えばFF11はメモリ管理とか自前で色々やってそうでさ。。。 長時間安定動作を求められるものでも、 コンパクションをOSに任せっきりなのかなぁ。。。なんて。
( ゚д゚)ポカーン
floatは遅いから16.16固定少数をメインに使うってポリシーでDirect3Dのゲームを作ってる人も 各都道府県に1人くらいはいるかもしれない。
>>158 千葉県は俺だ。
固定小数点用のクラステンプレート作ったから
16.16 / 24.8 等もサクっと計算できるし、
キャスト用関数も用意したから、浮動小数点型へも簡単に変換可能だ。
まぁなんだ。
すまん。
えーマジ固定小数! 固定小数が許されるのは小学生までよねーキャハハハ 最近まったく使ってないことに気づいた。 携帯Javaも浮動小数サポートしたしな。
つい3年前まで固定少数ベースで組んでた 2D物しかやってなかったんでそれで十分だったのもある D3Dに移行し時、3Dではそういう最適化は無意味だと気付いた
>>152 結構当たってるんではないかと…
DirectXの実装自体が「ソフト屋の考え方」が根底にあるよな。
もうインラインアセンブラでヘコヘコする時代は終わり?
昔インラインアセンブラ使ってDirectDraw上で MMXαブレンディングしたことあるが、 その時すでにDirectX7が登場してたからただの徒労だった
石にはかなわん
256*256なんて、アセンブリャー世代にはいかにも速そうに見えるサイズだろう。 でも今のボトルネックはメモリの帯域だしな。
168 :
154 :2006/03/22(水) 13:57:33
すいません。 なんか自分自身、良く理解できてない気がする。。。 OSがコンパクションやるはずもなく。 言いたかったのはフラグメント対策です。 長時間安定動作を求められるものでも、 フラグメント対策をOSに任せっきりなのかなぁ。。。なんて。 なんか勘違い入ってる?俺。
Javaで24時間稼動してるウェブサービスとかゴロゴロあるわけですが。
170 :
154 :2006/03/22(水) 15:05:37
System.gc() を毎回呼んだ方が良いとか聞いた事があるんですが。。。
ソースは何処だ? …というか、スレ違いの話題だと思うんだな。
・今のPCでは、断片化など気にせずガンガンnew/deleteしても24時間365日動きますし、 パフォーマンス上の不利もありません。本当に気にしなきゃいけないのは日本全国で5人くらいじゃね? 他はみんな自己満足野郎(言ってやった言ってやった ・ゲーム機のやや狭いメモリだと、PCよりも断片化による問題が起こりやすくなりますが、 大抵は、一部の大きなリソースだけを固定したり、シーンごとにすべて強制解放してやれば解決します。 ・それよりも、みみっちく手動でメモリ管理することによる開発効率の低下のほうが問題です。 C++のメリットの大半を捨てることになるし、ライブラリも大部分が使えなくなるはずだけど、いいの? ・面倒なメモリ管理なぞランタイムやVMに委ねてしまって、何かあったらそのときに対処。 実際にはまず問題など起こりません。この大雑把さが今流。富豪的プログラミング。 ・どう見てもスレ違いです。本当にありがとうございました。
173 :
154 :2006/03/22(水) 17:38:08
某ゲーム会社のサーバー周りを担当した会社のソースのコメントアウト 「毎フレームガベコレした方が良いのか!?」 って書いてあって驚いたw
174 :
154 :2006/03/22(水) 17:42:28
ああ。。。やっぱり叩かれてしまった。 本当にありがとうございました。
175 :
デフォルトの名無しさん :2006/03/22(水) 18:43:56
XNAダウンロードはじまたwktk
172なら嬉しいが、なんらソースが無いからなぁ…
154もどうかとは思うが172も楽天的過ぎ >・今のPCでは、断片化など気にせずガンガンnew/deleteしても24時間365日動きますし、 昔と違って単にメモリ搭載量が増えたから問題が露見しにくくなっただけ 自力で再配置する必要は無いが、取得・開放の順ぐらいは気にしとけ
>>172 パーティクルの粒一つ一つをnew/deleteした俺に謝れ
ハード的にはMMU マッピングでメモリ断片化は 原理的に無くせるんじゃなかったっけ
>>154 っていうかさ、OSがどうやってメモリを管理しているのか知らずに
必死で物理メモリいじってる気になってて馬鹿みたい。
あんた管理できないでしょ?
OS通すしかないのわからないの?
OSがどうやってメモリ管理してるか知らないで馬鹿みたいなことしないでくれない。
181 :
154 :2006/03/22(水) 22:09:40
あー。。。まー確かに。。。
>>177 > 昔と違って単にメモリ搭載量が増えたから問題が露見しにくくなっただけ
メモリ容量が増えて十分に露見しなくなったら、問題は解決していると思うのだが。
ひとつのアプリを動かしつづけている限りは、ある程度断片化は起こしても
メモリ消費はそれなりのところで収束しないか?
てか、実際、問題が起こったことないしな。
よく考えてみれば俺Windowsのmallocの実装知らねーや。気にしたことないから。
68/98時代は自前のヒープ管理コード書いてたのだが、すっかりぬるぽか。
ここは化石人類の宝庫ですか?
MZ-2000使ってましたが何か質問ある?
どんなテープだとエラーが出にくいですか?
187 :
デフォルトの名無しさん :2006/03/23(木) 13:56:05
>>183 Windows の malloc とか Linux の malloc とかいうのは無いよ。
bcc の malloc とか vc の malloc とか glib の malloc とかがあるだけ。
>>185 俺はMZ-80Bだったんだけど、80Bと2000って何が違うんだっけ?
189 :
デフォルトの名無しさん :2006/03/23(木) 20:29:17
------ ビルド開始: プロジェクト: dx0, 構成: Debug Win32 ------ リンクしています... d3dx9.lib(d3dx9dbg.obj) : error LNK2019: 未解決の外部シンボル __imp__RegCloseKey@4 が関数 "int __stdcall GetD3DRegValue(unsigned long,char *,void *,unsigned long)" (?GetD3DRegValue@@YGHKPADPAXK@Z) で参照されました。 d3dx9.lib(cpudetect.obj) : error LNK2001: 外部シンボル "__imp__RegCloseKey@4" は未解決です。 d3dx9.lib(d3dx9dbg.obj) : error LNK2019: 未解決の外部シンボル __imp__RegQueryValueExA@24 が関数 "int __stdcall GetD3DRegValue(unsigned long,char *,void *,unsigned long)" (?GetD3DRegValue@@YGHKPADPAXK@Z) で参照されました。 d3dx9.lib(cpudetect.obj) : error LNK2001: 外部シンボル "__imp__RegQueryValueExA@24" は未解決です。 d3dx9.lib(d3dx9dbg.obj) : error LNK2019: 未解決の外部シンボル __imp__RegOpenKeyA@12 が関数 "int __stdcall GetD3DRegValue(unsigned long,char *,void *,unsigned long)" (?GetD3DRegValue@@YGHKPADPAXK@Z) で参照されました。 d3dx9.lib(cpudetect.obj) : error LNK2001: 外部シンボル "__imp__RegOpenKeyA@12" は未解決です。 D:\c\vc2005\dx0\Debug\dx0.exe : fatal error LNK1120: 外部参照 3 が未解決です。 ビルドログは "file://d:\c\vc2005\dx0\dx0\Debug\BuildLog.htm" に保存されました。 dx0 - エラー 7、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========
事故解決
191 :
デフォルトの名無しさん :2006/03/23(木) 21:34:51
struct VERTEX2D { float x,y,z,w; float tu,tv; // 頂点FVF enum { FVF = D3DFVF_TEX1|D3DFVF_XYZRHW}; }; 入れる順番変えたら動かない 順番は 座標、UVって決まってるの?
FVFは当然入れ替えても問題ない、ただの数値だからな。 ただFVFに対しての頂点データの順番は固定。 無論シェーダーで処理する場合は全て自分で定義できるので自由。 つまりドキュメントくらい見ろってこった。
つーかいきなりレベルが... いや何でもない
ちょま!
俺の為に時よ止まれ!
>>145 ソースいただけないでしょうか?
ここはDirectX初心者質問スレ【狼】だからな
そもそもある程度のレベルに達した奴が2chなんかに質問しにくるんだろうか
DirectXとは直接関係ないけどQuakeとかのBSPファイルに対応した FPS作成可能な日本のライブラリって見かけないけどやっぱり国柄の問題?
あっちはFPSのおかげで3Dとネットワークが飛躍的に発展したね 2Dの基本がシューティングゲームなら3Dとネットワークの基本はFPS それすっ飛ばしてMMORPGばかり作るから技術が伸びない
winnyのために回線速度は飛躍的に上がりましたってのはだめ?
てことは、そのへんをDXライブラリやLunaあたりがサポートしてくれれば フリーや同人あたりで出回ってきたりするのかもしれないね。 どっちも一人で作ってるみたいだから望み薄かもしれないけど。
>>187 DirectXスレだからVCに決まってるじゃないか。
餌がよくない
大きなピラミッドを作るには下敷きになる人々がたくさん必要
下敷きでもなれるならよいがな
>>197 日本ではFPSは人気ないし、あまり需要がないだろう。
BSPやPVSは屋内のようにマップの大半が不可視の場合に
効率的だが、三人称視点はそういう地形に向いてない。
もっとも、一番のネックはプログラミング技術的なことよりも
レベルエディットだと思うけどね。
PGでもなんでもない場違いな人なのですが・・・ 漏れのPCで3Dmark05のデモを動かすと、D3DERR_DEVICELOST って言われて しまうのですよ。 それでその言葉ググったらここのスレのpart8ってのが出てきて、分からないなりにザット 読んでみたのですが・・・ 要するに、これ言われちゃう時はデバイスリセットするようにコード書かなきゃだめってことで、 バグって言っちゃっていいってことなのかしら? 漏れのハードがしょばいからって訳じゃなくて
つまり本題は、このスレの住人のエスパーぶりを試すため、 そのしょっぱいハードウエア構成を当てろという挑戦状だな。
日本は同人弾幕STGのおかげでパッド普及率が飛躍的に発展したね それしか作られないから、3Dもネットも、ありとあらゆる方面で技術が伸びない
3Dかぁ・・・ すげー作りたいんだけどデータの用意がしんどいんだよね。 今参加させてもらってる同人サークルでは進言して 3Dでって話を進めてるけどモデルデータに関しては 四苦八苦してる感じ。 DirectX用の最適なモデル作成ってのもまた面倒だしね。 ネットワークは必要とあれば対応ってそんな難しい気がしないけど。 サーバークライアント型しか作ったことないからP2Pだとまた難しいのかもしれないな。
初学者が気軽に使える3Dモデラーがないよね 日本でモデラーといえばメッシュ作成までで、動きをつけられないのが当たり前
>>211 そもそもキャラクターの動きそのものをどうやってつけるか?
って部分がテンプレ化してないから、よしんば、アニメーション+スキニング(スキミングではないw)ができたとしても
ぶつ切りアニメができるだけだしねぇ。
モーションA
モーションB
まではできるだろうよ。
でも、それにともなって必要になる
アクションA
アクションB
アクションA->B
までをやるのは至難の技だろうな。
それと最近の六角大王を使えばとりあえずアニメーション+スキニングまではつくぞ。
旧タイプのファイルで吐き出して、どっかのサイトに落ちてるフリーの変換ソフトでスキニングのXファイルが作れるんだ。
知らなかっただろ?
とりあえずできる環境はある。
でも、3Dゲーム作るならそんなところには拘らないで、とりあえずアニメーション無しの物体でも出して
3Dゲーム作ってみればいいとおもうんだけどなぁ・・・
モーションなしでも見栄え的に問題ない レイストームみたいなSTGとかですら作る人が滅多にいないのが現状・・・ってとこだね。 エロゲーの極限まで低スペックまで動作サポートは当たり前みたいな 風潮も足をひっぱってるのかもしれないね。 PS2からの移植(3Dあり)のサンプル作成時に 上司からMatrixG400&DirectX5&Pen2の200くらいで動くようにしろ って言われたときは撃ち殺そうかと思った・・・。
モーションを繋げるのは、モーションブレンドをかけるだけだから、 別に至難の業でも何でもないが。 不自然に繋がるなら基本姿勢を用意すればいいだけだし。
モーションブレンドだとDirectX8で追加された新しいモーションタイプが癌になるでしょ。 全キーフレーム分のデータをマトリックスで持ってる形式のやつ。 計算を早くするための導入されたんだろうけど、 計算後のマトリックスしかないとブレンドは至難の技じゃない?
>>215 別にゲーム作るのにXファイル完全対応する必要はないので、
自分のゲームでマトリクスキーは使わなければいいだけ
そらそうか、、、普段ライブラリ作ってると全機能対応しなきゃならんとか思ってしまう・・・
てか、マトリクスキーだって使いようでしょ? 回転とかで半回転とか1回転とかさせるデータを作らないで30度ぐらいで刻んでキーを打つようにしていけば 特に問題なく動くんじゃない? って別に使わなきゃいけないって決まりも無いけどw まあ、それでも動かすことはできるということで。
だから問題点はスケールが掛かってると簡単には補間できないってことでしょ
>>219 マトリックスの各要素をそのまま補間するだけでそれっぽくなると思うけど?
じゃあ、任意のスケールと回転を合成済みの3x3行列が A、Bのふたつあるとして それをxの割合で、そのまま補完する方法を教えてください
なんだか急にレベルが・・・
それって出来ないんじゃ無いっけ?
答えられる人はここにいない
回転の順番が固定されてる時のみ分解できるじゃないっけ? 回転の順番が固定されていなくて、さらにスケールまではいってるものを 分解なんてどう考えても無理な希ガス。
>>221 普通にそれぞれの値を線形補間するしかないんじゃね?
分解はもう不可能だし。
それは回転や平行移動に関しても似たようなもんじゃね?
例えば、1回転な。もうこんなの確かにマトリクスじゃ無理っしょ。
だけど、あってるあってないはともかくとして状態Aのマトリクスと
状態Bのマトリクスを線形補間するんだから、あくまで「近似」だったらできると思わない?
それで十分な値の作り方もあるっしょ?
2つの回転行列が合成された行列は分解不可能 1つの回転行列と1つの拡大行列なら分解できる
その通り。
まぁDirectX8で追加されたマトリックスキーはゴミってこったな。 面倒なことにSDK付属のプラグインで3DSMaxで出力したXファイルは マトリックスキーしか吐き出さない。
ごもっとも。
>>229 だから、要は使いようだって、キーを小刻みに打てば一応使えるでしょ。
いぁいぁ、、、モーションブレンドのときどうすんのよ? って話さねぇ
>>231 ブレンド相手のモーションとのスケールや角度の差が大きければ、
ねじ曲がったり潰れたりする。
中間姿勢まで大量に作るつもりなのか?
そんな無駄な苦労をするくらいなら、最初から行列で吐かなければいいだけ。
何故固執するのか分からん。
頭が固いんだろ
フォーマットくらいマトモなのが標準になってほしいもんだ。 COLLADAとかどうなるんだろ
>>233 >何故固執するのか分からん
そういう方法があってもいいじゃん。
気に入らないならサポートしなければいいだけで。
ルーチン自体は至って単純だし、Tinyのサンプルもサンプルとして十分な動きで動いてるじゃん。
良い悪いは別として「使える」ってところは大きいと思うけどね。
この方法の方が都合いいことってのもなんかあるかもしれないわけだし。
DirectXの開発者がヘルプを変更してまで追加してみたフォーマットなんだからなんかいいことあんじゃないの?
俺がいいたいのは「あってもいいでしょ?」ってこと。
否、都合良いことはないね。 可能性だのなんだの、お花畑PTAや厨房アニメの奇麗事みたいなこと言ってんな。 ないの。いいところは全く。 ↓そうじゃないってんなら、思いつくのを書いてみろ
Tiny女史は単純に大量のキーを吐いてるだけという なんとも香ばしい状態でして、あれを実用するとなるとちょっと・・・
ちょっと・・・? ちょっと、何だよ? 言いたいことがあるならはっきり言ってみろってんだ。
Tiny女史の4モーション入ってる奴は2.5MBあるしな・・・ そもそもMaxで出力された奴は時間の概念がおかしいからうっとうしい・・・ マトリックスキーで最大の欠点は任意のスピードの再生が出来ないことだな。 スローモーションとか補間できないからカクカクになる。 高速再生も整数倍でしかできないし。
>>237 そんなのDirectXの開発者に聞けよ。
逆に聞くけど、Tinyのサンプルで何かまずいことあるの?
サンプルならあれで十分じゃないの?
行列でしか吐けないMAXのプラグインを書いた奴が無能だっただけの話。
>>237 お前もアニメの悪役みたいな台詞で必死になるなって
モーションブレンドが必要ない状況ならあれが高速で使いやすい。
問題はモーションブレンドが必要な時が多いのに行列キーしかサポートしてないって点だろ
そういや大分昔の話だけど ID3DXAnimationControllerだっけ? あれがなかったころのskinnedmesh.cppの実装は 行列キーのは線形補完じゃなくて本当にコマ送り処理だったな
またライブラリ作るのかと思うとそれはそれでしんどいが、 なんだかんだで楽しそうでもあるな。
247 :
デフォルトの名無しさん :2006/03/30(木) 15:11:43
D3DXMATRIXA16 matW; D3DXMatrixIdentity(&matW); static float g_rotY =0,x=0,z=0,big=1; g_rotY +=0.1f; D3DXMatrixRotationYawPitchRoll( &matW, g_rotY, 0,0 ); D3DXMATRIX matrix; D3DXMatrixTranslation(&matrix,x,0,z); x+=0.01; //z+=0.5; matW*=matrix; D3DXMATRIX ScaleMat; D3DXMatrixScaling(&ScaleMat,big,big,big); matW*=ScaleMat; big+=0.009; ど〜ん^^
248 :
デフォルトの名無しさん :2006/03/30(木) 15:22:25
すげー!!! マジ感動した!!
?、自演?
みんな寄ってたかってマトリクスキー悪い子にしてるけど これは元々ブレンドとか補間とかが必要でない状況に用意されてる物であって その他の状況で使う物ではないのと思うのですよ. 例えばいわゆるポリゴンムービーとか決まり切ったモーションを フレームベースで処理するときなどに使用するのではないかと. ブレンドも補間も必要ないから他のキーでは無駄でしょ?そんな時に応えてくれるのがマトリクスキーです. ブレンド云々言っている方は道具の使い方間違ってるだけでマトリクスキーを責めるのはお門違いだと思う. まあマトリクスキーしか出力出来ないソフトはポリゴンムービーしか 想定してないということではないでしょうか...
データ量が無駄に増えるけどね。 ムービー用途で長時間動かしたら、行列の束だけでバイナリでもMB単位。
回転移動拡大縮小だけでキーフレーム式なら 数フレーム毎に9x4BYTEで済むが、 マトリックスキーは毎フレーム16x4BYTE必要。 メモリ気にしないでいいPCだからこその手法ってとこだな。
鉄拳2のアーケード版が毎フレーム行列で持ってた希ガス。 1だったかもしれない。 PSに移植するときにキーフレームに直したとか。
>>253 それは多分元データがモーションキャプチャだからね。
行列で持つにしても、せめて変化しない部分
(左作用のDirectXなら4列目)は省略するべきね。
>>254 そんな面倒臭ぇことする必要ねぇだろ。
容量に問題有りってならする必要あるけど、ないならやらんでもいいでしょ。
メモリにはいりゃ終わりな話でしょ。
>>255 個人的に"モーションデータはかさばる"っていうイメージが
しみついてるから、どうしてもケチくさく考えちゃうのよね。
でも、そもそもメモリ重視なら行列は選ばないんだから、
そこで小細工しなくてもいいかもね。
ホビープログラムだと、モーションデータを用意するだけで大変で、
とにかくちゃんと再生できることが重要なんだから(PC環境だからメモリも十分あるし)
変にトラブルの元を作らない方がいいのよねきっと。野暮だったわね。
イメージで右往左往するほど無駄な事は無い・・・
行列でしか出力できない糞ソフトや糞エクスポータを窓から投げ捨てろ。 選択肢がないなら無駄に容量を食おうがブレンドできなかろうが諦めろ。
この世界「プロなら自前で書け、アマなら贅沢言うな」がデフォだから困る。 読み込み書き出しぐらい簡単にしたいものだが
260 :
デフォルトの名無しさん :2006/03/32(土) 18:38:26
VC++2005でManaged DirectX使ってる人いる? なんかコンパイルとおらんのやけど・・・
エラーの内容すら書かないとは、 つまり目的は問題を解決することではなく、 エスパーを探し出すことなのか? だったら板違いだ。
馬鹿はほっとけ。
>>260 使ってる人はいません
1人も
どこ探してもいません
諦めよう
DirectInput使っていて、 レジストリ(Current_User\Software\Microsoft\DirectInput)の下に 実行体の名前+Hex文字列 のキーが作られていくのですが、これを回避する方法ってないですか? MSDN見るとレジストリにキーを作ると書いてあって、 消す方法(フラグなど)は全く見あたらないのです。 ※仕様ですって言われてしまえばそれまでですけど。 どうしても消したかったら、 プログラム終了時に自力で消すしかないのでしょうか?
265 :
デフォルトの名無しさん :2006/04/12(水) 20:53:47
DirectXでボタンやテキストボックスなどのWindowsコントロールを使いたいのですが これらは自前で描画するしかないのでしょうか? CustomUIサンプルではDXUTを使ってこれらの機能をDirectXと共存させていますが これを商業製品に使っても問題ないのでしょうか? 性能やデバッグのしやすさと言った部分での判断ができないのでDXUTを使った事がある方いらしたら教えてください。
SetDialogBoxMode を使えば GDI のオブジェクトと共存できるけど、 DirectX 使うメリットがあまりないような
April2006入れたらFXC通らなくなった
DirectInputでの協調モードでDISCL_FOREGROUNDはウィンドウが非アクティブになると 「い っ た ん」入力制御を停止するとありますが実際にはたとえばウィンドウを最小化してから最大化すると その後入力は一切受け取ってくれないっぽいのですが再び入力受付させるにはどうしたらいいですか?
Acquire()はしてるよね?
270 :
268 :2006/04/14(金) 10:14:48
プログラム起動時のDirectInput作成時にしてるだけですが もしかして毎フレームやったほうがいいですか?
必要な時にやる
>>268 が画面に向かって「何でうごかねえんだよ!」ってキレてる姿が目に浮かぶ
.-、 _ ヽ、メ、〉 r〜〜ー-、__ ∠イ\) ムヘ._ ノ ⊥_ ┣=レヘ、_ 了 -‐''「 _  ̄`' ┐ ム _..-┴へ | |r、  ̄ ̄`l Uヽ レ⌒', ヽ (三 |`iー、 | ト、_ソ } ヽ | |`'ー、_ `'ー-‐' .イ `、 | | `ー、 ∠.-ヽ ', __l___l____ l`lー‐'´____l. |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|| .| | || |__.. -‐イ || | ノ/
値を取得して「AQUIREしてない」という意味のエラーコードが返ってきたら Aquire()してもう一度リトライ じゃなかった?
DirectX9.0cのフォントサンプルを試すとC++ではアンチが掛かってなくて C#だとアンチが掛かるんだがこれって何が原因かわかります? グラボはFX5700(設定は解像度と色数以外デフォ) 別PCでノートやミレG400だとどちらもアンチは掛かる。
「アンチが掛かる」とはどういう意味だろうか。 アンチ・アンチウイルス・ウイルスにでも罹るのだろうか。
せめてアンチェリとでも書くべきだったな。
282 :
276 :2006/04/20(木) 17:43:19
自己解決しますた。
よかったね^^
でもそれエログラマ用語じゃん 使うだけで恥ずかしいよ
エログラマ用語だから恥ずかしいとか言っちゃうのも恥ずかしいぜ
恥ずかしいです(><)
自前のDirectMusicプレイヤーにwavファイルに落とす録音機能をつけたいんですが、 何かいい方法はないでしょうか? もち、デバイスはMicrosoftシンセサイザー使用時です。 DirectMusic側だと、IDIrectMusicPortあたりから生Wavが取得できそうな雰囲気なんですが、 そこから取得できるDirectSoundBufferはLockできないぽいですし、 IDirectMusicSynthあたりのような気もするのですがこのインターフェイス、 取得させるんじゃなくて自前シンセ用のインターフェイスで設定用ぽいです。 サンプルあればいいのですが、どなたか知っている方いますか?
もう一個作らなくても、録音用のサウンドバッファを普通にもう一個作って、 ファイルに書き込めばいいだけの話。 なんでその辺りで思考が止まるんだろう?
290 :
287 :2006/04/22(土) 19:43:45
>>289 マジデそれだけでOK?
IDirectSoundCaptureで指定するポートって、
DirectSoundの出力ポートとは違ってサウンドカードの
録音用のポートなんだけど、それでそのままWAV出力が取れれば苦労はいらんわ。
291 :
287 :2006/04/22(土) 19:49:45
IDirectSoundCaptureってどうみても録音用デバイスにしか接続できんような気がするのですが。 MIDIAのサウンドカードとかは出力デバイスが録音デバイスとして登録できたりするんですが、 あれってかなり特例ですし。 取り合えず騙されたと思って、IDirectMusicから取得できるDirectSoundインターフェース使って キャプチャデバイス作ってwavに落としてみるわー
292 :
デフォルトの名無しさん :2006/04/29(土) 15:01:20
DirectSound(3D)についての質問です。 SetFrequencyを使って低音から滑らかに高音にしようとしているのですが、階段状にしか周波数が変わりません。 200〜500単位でしか音が変わらず、ドレミファ・・・と言う感じで聞こえてしまいます。 渡している値は1500〜9900で、変化する値は21/フレーム(60fps)です。 DirectSoundやSetFrequencyに階段状に周波数をあげるような設定があるわけでもないですし、 一体何が原因でこんな現象が起こるのでしょうか。 上記の原因に直結しているのか分かりませんが、同じくSetFrequencyの値を上げ下げするとノイズが入ります。 合わせてご回答を頂ければ有難いです。
CPU負荷とサウンドドライバを疑う
294 :
292 :2006/04/29(土) 19:56:07
レスありがとうございます。 処理を減らすと滑らかに変動するようになりました。 しかしノイズは変わらず残ってしまいます。 ある程度処理を減らしても変わらず、他のPCでも同じ現象が出るためドライバ云々では無いと思います。 周波数を変えなければノイズは入らないので、DSound関連のそれ以外の処理や音源に問題があるとは考え難いです。 ジージーうるさいと言うかすっごい不快感(´・ω・`)
>>294 ノイズはバッファになんか入ってるところに上書きでいれてるとかしてね?
それとも周波数が変わってデータの扱い間違えてるとかねぇ?
ストリーミングで必要なバッファって変わったりしないっけ?
いや、よくしらんけど・・・w
無音ループを鳴らし続ける。
297 :
292 :2006/04/30(日) 14:54:03
>>296 無音ループに変えてみたらノイズがなくなりました。
>>295 周波数を変えるのって音量を変えるぐらいの存在と思っていたのですが(´・ω・`)
5秒程度のループSEなのでややこしいことはしていないんですけど、何か処理を噛まさないといけないとか・・・?
>>297 すまん。
変わるわけない。
思いだしたけど、無音ループで正解だ。
無音を鳴らしてないと、そういえばノイズ出たわ。
299 :
292 :2006/04/30(日) 16:23:39
ああ、ありがとうございます。 ×無音ループに変えて、それでノイズが出たらサウンドドライバがおかしい ○既存のプログラムに無音ループを入れる ということですか。 確かに後者をすると他のノイズもなくなりました。 裏技っぽいやり方ですが、何か原因が特定された上での対処法なのでしょうか。
そりゃあんた、無音と言うことは常に信号は0だがね。 音が少しでもあれば多少なりとも±に振れるんだから そこで強制的に0にするからノイズが出るわけで。
逆とは?
逆だな。
ギャグだな。
そいやSBのWDMドライバとかだと、音の発音時にプチノイズが乗るんで、 対策で無音ループ鳴らし続けるとかしたな、それと良く似てる。
o-o、 ('A`) メガネメガネ ノ ノ)_
307 :
デフォルトの名無しさん :2006/05/19(金) 08:42:02
俺は横山やすしが大嫌いで、やつが死んだとき内心大笑いした。 一八が警察に捕まったときもザマアミロと思った。 2006年の今、そんなことが思い出さされるなんてな。それには愕然とする。
VC++6.0でサンプルプログラムのコンパイルをする方法を詳しく教えてください。 エラーが出まくってまったくお手上げです。
エラーをの原因を修正すればよい
312 :
デフォルトの名無しさん :2006/05/23(火) 03:38:37
XNAってどこからダウンロードできるんすか
>>311 いや、いきなり詳細な話から入るより、まずは軽いジャブからでしょ。
とりあえずサンプルが単純にビルドボタン一発押しただけで動かない状況を伝えて
その状況にこころ当たりがある人がいてくれればそれでいいでしょ。
で、どんなエラーが出てるのよ?って話になってはじめて詳細に触れてもいいんじゃね?
315 :
309 :2006/05/23(火) 11:55:51
最初からやり方が間違ってるかもしれないので1から教えて欲しかったのですが、、、 間違いがあったらおしえてください。 0.DirectX9.0(Summer2004)をインターネットからダウンロードしてインストーラでインストールしました。 1.アニメ付きX形式のファイルを読み込む方法のサンプルを知りたくて、DirectX9.0(Summer2004)SampleのDirect3DのMultianimationをビルドしようとおもいました。 2.VC++6.0で新規作成して、win32applicationのプロジェクトを選び、サンプルフォルダをほかのもまとめてデスクトップにコピーして、使いたいサンプルの位置(略\デスクトップ\C++\DIRECT3D\)にMultiAnimationというプロジェクト名で作成しました。 3.FileviewでMultiAnimationフォルダにあるcppファイル(AllocHierarchy.cpp AnimationInstance.cpp MultiAnimation.cpp MultiAnimationLib.cpp Tiny.cpp)をソースファイル、 hファイル(MultiAnimation.h resource.h Tiny.h)をヘッダファイル、rcファイル(MultiAnimation.rc)をリソースファイルとして追加しました。 4.プロジェクトの設定でリンクタブのオブジェクト/ライブラリモジュールにdsound.lib dinput8.lib dxerr9.lib d3dx9.lib d3d9.lib d3dxof.lib dxduid.libを追加しました。 5.ビルドボタンをぽちっとな。 6.インクルード ファイルがオープンできません。'dxstdafx.h': No such file or directoryと出たので上の階層にあったそれを見つけてMultiAnimationフォルダにコピーして、FileViewでヘッダファイルにそれを追加してビルドしてみる。 7.エラーが百以上でて訳わからん(;_;)
316 :
309 :2006/05/23(火) 11:58:03
エラーはこんなかんじです。
Tiny.cpp
NOTE: WINVER has been defined as 0x0500 or greater which enables
Windows NT 5.0 and Windows 98 features. When these headers were released,
Windows NT 5.0 beta 1 and Windows 98 beta 2.1 were the current versions.
For this release when WINVER is defined as 0x0500 or greater, you can only
build beta or test applications. To build a retail application,
set WINVER to 0x0400 or visit
http://www.microsoft.com/msdn/sdk to see if retail Windows NT 5.0 or Windows 98 headers are available.
See the SDK release notes for more information.
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\d3dtypes.h(109) : error C2011: '_D3DCOLORVALUE' : 'struct' で示される型としてすでに定義されています。'_D3DRECT' : 'struct' で示される型としてすでに定義されています。
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\d3dtypes.h(128) : error C2011: '_D3DRECT' : 'struct' で示される型としてすでに定義されています。
−中略−
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\dsound.h(370) : error C2061: 構文エラー : 識別子 'LPD3DVECTOR' がシンタックスエラーを起こしました。
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\dsound.h(370) : error C2061: 構文エラー : 識別子 'LPD3DVECTOR' がシンタックスエラーを起こしました。
−中略−
C:\Documents and Settings\ユーザ名\デスクトップ\C++\Direct3D\MultiAnimation\dxstdafx.h(52) : fatal error C1083: インクルード ファイルがオープンできません。'DXUT.h': No such file or directory
AllocHierarchy.cpp
NOTE: WINVER has been defined as 0x0500 or greater which enables
Windows NT 5.0 and Windows 98 features. When these headers were released,
−後略−
318 :
309 :2006/05/23(火) 12:10:20
8.'DXUT.h'を上の階層で見つけたのでコピーしてヘッダファイルとして追加しました。 エラー文の、インクルードファイルが開けないという文が以下のように変化。 C:\Documents and Settings\ユーザ名\デスクトップ\C++\Direct3D\MultiAnimation\DXUT.h(13) : fatal error C1189: #error : "The sample framework requires a Unicode build. If you are using Microsoft Visual C++ .NET, under the General tab of the project properties change the Character Set to 'Use Unicode Character Set'." プロジェクトの設定の一般タブに文字の設定なんかないけどどうすれば?(・ω・`) というとこで止まってます。お願いします。
つ [VC2005 Express]
MSも大変だよな。
>>321 教えてちゃんには、特にそう言っといた方が無難だよな。
323 :
309 :2006/05/23(火) 14:27:17
鬱だろ氏ね。
325 :
309 :2006/05/23(火) 14:31:32
残念ながら躁です
326 :
デフォルトの名無しさん :2006/05/23(火) 14:42:21
なにこのうざさ
教えてクンは神様です
328 :
321 :2006/05/23(火) 14:51:28
>>323 あーあれだ、あれ。
それは Visual C 6.0 じゃなく、Visuao C 6.0 の事だw
インフォメーションは穴が開くほど見た方が良い。
Microsoft C 6.0
頭足りない馬鹿のために問題です。 VC6用のlibがあります。 VC6でリンクは出来ますが、コンパイラがサポートされていないのでコンパイルできません。 コンパイルするにはどうすればいいでしょうか?
libをコンパイルするのか・・・
>>330 まずは先にlibをコンパイルする方法を教えて下さい生晒しの穴開き君。
PlatformSDKインストール, インクルードディレクトリ追加 プリプロセッサ定義 _MBCS 削除, _UNICODE,UNICODE 追加 "__noop", "for( int i" 対策 winmm.lib comctl32.lib 追加, dxduid.lib -> dxguid.lib MultiAnimation.rc 削除, #include "resource.h"コメントアウト MultiAnimation.fx Floor.jpg skin.vsh tiny_4anim.x コピー Mediaフォルダコピー というかExpressにしなさいよ。
VC6使ってる方って生活保護かなにか? 趣味プログラミングやってる場合ではなく、 しっかりした会社に就職し収入を安定させるべきでしょう。
VC6のウィザードバーが一番使いやすいけどな 2003も2005も駄目駄目
2002(´・ω・)カワイソス
Windowsの各種GUIが一番使いやすい解像度が1024x768なんだが これで.net使うと滅茶苦茶狭いから困る
1280×1024で使えばさほど問題はない。
2003もってるけど、別にウザくはないけど なんかVC6を使っちゃうなぁ・・・SP5を入れたりとかしなきゃいけないから面倒なのは面倒なんだけど・・・ なんかdswじゃなくてslなんとかって環境まわりのファイルがボロボロでるのもなんか嫌。
プロファイラが6までしかついていないんだよね
>>338 337じゃないが、ノートだとそれ厳しい。デスクトップならその上でも余裕なんだが。
かといって、でかいノートは凝りたしなぁ。やっぱりVC6のシンプルさは良いよ。コンパイラだけ変えたいぜ。
仕方ねっす、VC6で作られた奴のメンテなんで抗いようがねっす。
>>341 ビルドに必要なファイルを上書きすればVC6でVC7.1としてビルドできるぞ
345 :
309 :2006/05/24(水) 11:22:25
>>328 インフォの誤字かと。
>>330 問題の意味がわかりません。
>>333 ありがとうございます。
インクルードディレクトリ追加までは以前にやってありますが、それ以降がわかりません。
やり方をおしえてください。
大学のパソコンなので勝手にソフトを入れられないのです。ライブラリの追加ぐらいは許可もらっていますが、、、
>>334 まだ大学生です。
これからプログラム覚えようとがんばってる小学生かと思ったら大学生て…w 人生やり直した方がいいんじゃない?
>まだ大学生です。 ネタだよな。 せいぜい高校1年か中学3年ぐらいだと思ってた。 MSも大変だな。
348 :
309 :2006/05/24(水) 13:08:33
ネタじゃないです。年齢は関係ないんじゃないでしょうか。 人生やり直したくても無理です。 めんどくさいので、X形式ファイルからアニメを読み込まずプログラム側で動作をつけたものを作ったので、それで自己満足することにします。 ありがとうございました。
>>345 古いバージョンのDirectXで我慢したら?
どうせ「新しいバージョンのDirectXで開発したい」とかいう、
新し物好きな動機なんでしょ?
小学生:「ママーン!これどーやるのー?」 → 「よしよし、これはね・・・」 大学生:「ママーン!これどーやるのー?」 → 「ちょ、おま・・・」
351 :
309 :2006/05/24(水) 14:00:41
>>349 古いSDKが無いので仕方なく使ってます。
>>350 大学生が教授に質問するのはダメだというのですか。
大学生なら大学生らしい質問の仕方を身に付けましょうね。
>>351 >古いSDKが無い
古本屋とか行ったか?
>>351 煽りに一々マジレスするな。でなけりゃ、くだスレに来るとか
>>333 はマジで凄い親切だよ。
そしてこれの詳しいやり方はスレ違いだし、皆一々答えてられないって感じだろ。
しかし古いSDKって、皆何薦めてるんだ?今更DX8以前やるメリットは無いだろw
確かDX9のSummer 2004辺りなら、VC6でもすんなり通った気がするな。
ただDirectXのバージョンダウンは面倒だけどな。
VC6のサポートは2004 Octoberまで
356 :
354 :2006/05/24(水) 14:43:56
ああ駄目だ DLしてみたが、summer2004でもサンプルのプロジェクトがVC6用じゃないな となると無印9.0辺りか
357 :
309 :2006/05/24(水) 15:18:40
>>353 古本屋が近くになくて、わざわざ行った古本屋はパソコン関係の本が無かったです。
>>354 くだすれは別件で質問しましたがダメでした。
>>355 使用しているが2004夏なのでぎりぎりだと思います。
>>356 ありがとうございます。無印で試してみます
>古本屋が近くになくて、わざわざ行った古本屋はパソコン関係の本が無かったです。 事前に調べることもできないわけじゃないのにそれをしない自分を棚に上げて「わざわざ」。 >くだすれは別件で質問しましたがダメでした。 やはりここでも自分を棚に上げて「ダメ」。 何様の積もりだよ。
いや、こゆ奴は例外なく俺様。
309がろくにネット上で立ち回れてないのがどうでもいいくらい 情報系学科のレベルが低いってのが問題だ
360が309みたいな例外を見て いきなり「情報系学科のレベルが」とか総括し始めるのが問題だ
確かにw
大学いってたってこの程度だってw 何を期待してるのか・・・ 大学にはいって始めにやることは合コンだっつのw お前等童貞どもといっしょにすんなよ。 チンコ臭すぎw
臭いって分かるって事は・・・嗅いだのか・・・ 変態め・・・
>>361 がよっぽど恵まれてるかうちが酷すぎるかのどっちかだな
学歴厨うzeeeeeeeeeeeee
369 :
309 :2006/05/25(木) 09:08:21
>>358 *修正
くだすれは別件で質問しましたがダメでした。
↓
くだすれは別件で質問しましたが私の知識が乏しかったので答えてもらった内容を理解できなかったのでダメでした。
お子様でいいです。
370 :
309 :2006/05/25(木) 09:10:09
>>358 *修正
くだすれは別件で質問しましたがダメでした。
↓
くだすれは別件で質問しましたが私の知識が乏しかったので答えてもらった内容を理解できなかったのでダメでした。
お子様でいいです。
371 :
309 :2006/05/25(木) 09:11:06
>>358 *修正
くだすれは別件で質問しましたがダメでした。
↓
くだすれは別件で質問しましたが私の知識が乏しかったので答えてもらった内容を理解できなかったのでダメでした。
お子様でいいです。
お子様が納得するまで説明するのは嫌だなぁ。
373 :
309 :2006/05/25(木) 12:59:13
嫌なら別に説明していただかなくても結構です。失礼しました。
知識もマナーも無いんじゃまわりの人間は大変だな。
以上、2ch慣れしてないマジレスくんが一人と、 説教好きの粘着バカが一人いれば、こうなるという見本でした …いつからこのスレ、こんな風になっちまったんだw DirextX7か、その前後の頃は、それなりに賑わってたのにな
以上、2ch慣れしてないマジレスくんが一人と、 ネタを見抜けないバカが一人いれば、こうなるという見本でした。
というか粘着クン全部即レスだな。一日張り付いているのかね。 俺にも即レス来るかな。それとも我慢するかしらwww
即レスまだぁ?(・∀・ )っ/凵 ⌒☆チンチンwww
我慢してるみたいだなwwww 単純でワロスww
380 :
デフォルトの名無しさん :2006/05/25(木) 15:43:29
晒し上げwww
折角釣りで楽しんでたのに、ネタを見抜けないバカはこれだから困る。 お前ら全員馬鹿ばっかりだな。 せめて俺みたく一つくらい凄いゲーム作りあげてからレスしろってんだよ。
以上、2ch慣れしてないマジレスくんが一人と、 説教好きの粘着バカが一人いれば、こうなるという見本でした …いつからこのスレ、こんな風になっちまったんだw DirextX7か、その前後の頃は、それなりに賑わってたのにな
リロードしたらコピペ始めてるし、よっぽど悔しかったんだな
なんか偽者らしきものが一杯居るし・・・
貧乏人と初心者は芽を出す前に潰そうと思ってる
どちらも潰さんでええ ただし、やる気の問題。
んー、ここで聞いて返答がくるかわからないけど Eternal Fighter ZEROという同人ゲームがあるんだけど キーボードのプリントスクリーンを押してもクリップボードにコピーされないんです 98seのほうだと、普通にコピーされるのに新しく買ったXPだと反応なし 目的はWindowsMediaEncoderを使っての配信 レジストリにEnablePrintScreenを追記してもダメなんです…
それで?
うお、確かにそれでって感じだな 何か原因とか対処とかわかる人いないかなーと
>>388 DirectX使ってるのでも、取り込めるキャプチャーツールとかあるみたいだから、
それを使ってみるのはどうか
>>388 やりたいのはメディアエンコーダでリアルタイムで取り込みながらの
配信だろうから、それじゃ駄目だろう。
親切な人がいるのはいいが、とりあえずスレ違いって認識は持っとけよ。
スレ違いじゃないと思うよ。 板違い。
DX10 vista 入れないと動かないのか…面倒くせぇ 本当は XP どころか 2000 で動くくせに。
カーネルレベルで3Dアクセラレーションが実装されているから、 根本的にXPや2000じゃ無理。
エロゲPGが爆死する姿が目に見えるなw これで拡縮や回転、マスク、色変換などを行う2Dライブラリは1〜2年後に確実に破棄だな。 それにしても長かったな・・・。
今やってないメーカーは2年後もやってない
えろげなんて如何に最新の技術でうんぬんよりも 如何に古いマシンでも動くかどうかだろ? だいたいのところは、未だに Windows98 まで対応させてるしな
考え方はメーカーによりけり。
過剰にエフェクトを多用しているところから、ベタなものまで様々。
>>401 は視野が狭い上に、脳内だけで勝手に妄想して決めつけるタイプ。
>>402 は2chだからととりあえず煽っとけばいいと思っているタイプ
もう古いマシンなんて切り捨てればいいのにな。 今時DirectXで動いてないゲームも多々あるし。
エロゲPGの能力が低いからってよりエロゲヲタがPCの知識もないし 金かけない、そもそも求めてるものがPGの技術じゃないからな。 あの周辺のユーザーは古いってよりもはや懐かしいレベルのPCを現役で使ってる。 >過剰にエフェクトを多用しているところから、ベタなものまで様々。 所詮2D
無駄に3Dなエロゲも存在しているが、きちんと調べもせず決めつける
>>405 。
視野が狭いというより盲目。
( ゚ρ゚)ポカーン
>>405 >あの周辺のユーザーは古いってよりもはや懐かしいレベルのPCを現役で使ってる。
そりゃ、あんたぐらいなもんだ。
99%のユーザーは、1GHz以上のPC使ってる。
調査したわけでもないのに99%とかいい加減な数字をだす
>>408 も思いこみが激しい。
なんでこう何でもかんでも、脳内リソースだけで決めつける奴が出てくるんだろう?
またエログラマがご降臨あそばしたのかよ。 最近のPCのスペック理解してるか? オンボードのGPUがいつまでも貧弱だとか思ってないか? NVIDIAとATIしか追いかけてなくないか?どこもAeroを視野に入れて必死ですよ? ちょっと電気屋いって並んでるPC見て来い。 サブノートでも3Dゲーが普通未満に動いてしまうことにコメントをどうぞ。 昨日今日の話じゃねーぞ。まして2Dのエロゲですよ?( ´,_ゝ`)プッ
普通にうごかねーのかよ!
最近のオンボードGPUつっても数世代前のミッドレンジGPUにも勝てない。
「エロゲでもオンボードで動かないような3Dゲームがあるんだよ!」
>>408 訂正。「懐かしいレベルのグラフィック性能のPC」
今日の格言。 A eroに必死。
>>408 >99%のユーザーは、1GHz以上のPC使ってる。
これは絶対ない。
俺もエロゲ屋だが2004年度の時点ではMMX/Pen2/Pen3が主流だ。
がんばって古いCeleがいいとこ。
Pen4以上は万年一桁台。
だから開発はPen4以上だがテストはPen2以下でやってるのが現状。
未だにBREZZAやCanBeが生きてる。
mmx、PentiumIIが97年、PentiumIIIでも99年か。 >Pen4以上は万年一桁台。 あり得ないから。 ちなみにPenIIIでも1GHz以上の物はあるからね。 親から余ったPCを譲り受けた小中学生でも、もっといい スペックの物を持っているよ。 ちなみに価格.comで1GHz以上の中古PCで検索すると、 一番安いのは8000円だった。
どこから突っ込めばいいのか分からないやりとりだが、 とりあえず俺は>406(=>402)がハイスペックを要求する 重いエロゲを教えてくれるのを待つ
>>416 2Dという条件が3Dのエロゲーがあることに今頃気がついて、
いつの間にかハイスペックを要求する重いエロゲにすげ替えられている。
恥の上塗りするぐらいなら、脳内ソースで勝手に断定する、知ったかや嘘つき、虚言癖を直せ。
少し検索すればすぐに引っかかるのに、
>>416 は自分で調べられないただの教えて君。
だから所詮2Dとか、無知を晒すことになる。
エロゲなんで低技術だろ
↑
エフェクト多用してるものもあるよ
↑
エフェクトっていったって2Dのスプライトとか画面効果のエフェクトだろ?
↑
3Dのエロゲもあるよ
↑
3Dったってどうせ軽い、オンボードで以外でなら余裕で動くような3Dだろ?
↑
>>417-420 ('A`)?
エロゲはガンガン買えるのに、PCは買えないユーザーが多いんですね
エロゲってでかい画像を使うから、意外とVRAMとか食うんだよね。
>>422 8000円のPCを買えないユーザーが、9000円のエロゲーを
本当に買っているんだろうか。
>サブノートでも3Dゲーが普通未満に動いてしまうことにコメントをどうぞ。 >昨日今日の話じゃねーぞ。まして2Dのエロゲですよ?( ´,_ゝ`)プッ エロゲなんかどうでもいいから俺はコイツの日本語を解説してもらえればイイやw あとはコレ >どこもAeroを視野に入れて必死ですよ? どこのことだ?Aeroに必死? Aero自体がすでに瀕死に近いのに
>>424 ・めんどくさい。
・そもそもGPUだとかDirectXだとかがよく分からない。
・目の前のエロゲが動けばおk
>>415 >あり得ないから。
凄い自信だなw。
うち系列のアンケートハガキが21万枚ぐらいあったと思うけど、
Pen4以上は2003年度が8%ぐらいで2004年度でも9%超えた程度だぞ?
つまりあれだろ?
>99%のユーザーは、1GHz以上のPC使ってる。
これって日経なんたらとかASCIIなんたらとかを見たんだろ?
エロゲ屋がこんな数字見てどうすんだよ。
>>427 ねえねえ、Pen4以上って、AthlonXPやAthlon64、
PenMに、CoreDuoを含んでるの?
>>427 オタだったら、一般人よりも平均スペック高いだろうに、何ムキになってんだ。
2003年から2004年の増加率を見ても、今考えたアンケート結果まるだしだな。
Athlon入れて25%超えと考えても信じがたいよな。 AGP/PCIExpressビデオカード使ってる奴が25%ならありえそうだけど。 誰かエロゲで使ってる描画APIの統計とってくれないかな。 奥行きの概念のある一般的な意味での3Dゲームと スプライト描画にDirect3D使ってるのと いまだにDirectDraw使ってるところ。
なんで話題がエロゲに限定されてますか? ここの人は一律エロゲマニアですか?
下がいないと安心出来ない奴が、見下す対象にエロゲプログラマを選んだが、見事に失敗して今に至る。 自分に技術力があるなら、わざわざ他人を見下す対象にしようとはしない。 そういったコンプレックスがあるから、自分より下を探そうとする。 しかしそんなことをしても得るものは何もない。
>>431 同じような目立つ口調使って自演並みの頻度でエログラマ叩きに噛み付く子がいるから。
自分に自信があるならさっさとスルーして話題変えますよね?
ということでエロゲの話はそろそろ終わりでいいだろう。
>430 統計とか知らんが昔のシューティングとかでない限り DirectDraw使ってるところは無いだろ。まるで利点がない。 昔からのADV系の大半は自前で操作してGDIで表示。 たしかにエロゲ系の板の話だな
何でこんなおかしな旧スペック信仰の人間が、 ム板のDirectXスレにいるんだろう。
そろそろ新しいライブラリ作らなきゃとは思ってるんだけど納期が……って奴じゃね ロースペック信者が見たければゲ製のロースペックスレ見ればおk
エロゲーヲタがDirectXって・・・ 2次元ハァハァなくせに
このスレにもロースペック厨でダメプログラマー見習いがお勉強しに来てるように、 徐々に技術を蓄えないと、ゲームメーカーはダメになるんだよ。
この手の流れがどうも良く分からん DirectXに頼ったり、スペック的に余裕見越せる開発の方が、どう考えても楽じゃね?
優秀な開発者はこんな所に来ないから。
>>442 ロースペックなマシンがまだ市場にあることを利用して
3Dの勉強をしない言い訳にしていたってところだろうな。
やねうらおとかそのまわりにたかるような奴等が特に必死になって
ロースペックなマシンをサポートするために2D機能のみでゲームを作ることを主張していたな。
しかし、時代が変わってそんな言い訳はできなくなっていまはただの不協和音になってる悲しい時代の廃棄物w
@新作がVista未対応ばっかり A新作が出ない空白の期間が生まれる エロゲの未来はさぁどっち
>>445 いや、3D機能で動いてるっぽいのもあるから一部の会社からはでることは確定してるでしょ。
あと、OS自体は遅いとか速いとかはとは別にいままでどおりの関数でとりあえず動くって方向になると思われ。
>>447 しかし、それはとてもハイスペックとは、言い難い代物だが?
>>447 このスレ的にはビデオカードの方が重要なんジャマイカ?
ビデオカードならDirectX9対応のを、後から増設すればいいんじゃない。
人の話聞いてない奴がいますね
人格がロースペックなんだろうな
>>447 >当パッケージは、ご好評につき、販売限定台数に達しました。ご了承下さいますよう、お願い致します。
つか、メモリ255MBは少ないことを差し引いても安すぎ。
もう少し早く知らせろよ
おい、よく見るとメモリ512MBに無料アップグレードだぞw
つまり本来は512Mの値段。
見積もりとった俺は神
正直激安のDELLは罠が一杯。
液晶は地雷だけど、サーバは割り切ってつかえば結構いいよ。 メモリはECC付きだし、Pen4マシンの割には音も静か。 ケースも良くできている。 ちょっとしたディスクサーバみたいなのには物凄く コストパフォーマンスいいいよ。
だがこのスレ的には微妙でFA? 大して値段変わらないファイナルファンタジー用の 牛丼マシンとかの方が良さそうなくらいだ。
最低限3Dが動く性能<<<<<<(知識・興味の壁)<<<<<<<十分な3D性能
このスレでごねていた奴らにとっては、DELLの安物マシンでも 天上の性能だろ。
上を見ればきりが無いが、DELLで十分だ。
ハイスペックなPCで、ゲームをするのと ゲームに、ハイスペックなPCを要求させるのとは違う
>>457 DELLが一番いいよ。
SOTECとかHPはゴミ。
厚くて熱くて拷問に使えるけどな!
D3DMATERIAL9mMaterial; // マテリアル情報を取り出す D3DXMATERIAL*mD3DXMaterials = (D3DXMATERIAL*)m_pD3DXMtrlBuffer->GetBufferPointer(); for( DWORD i =0; i<m_numMesh; i++){ // マテリアルのコピー mMaterial = mD3DXMaterials[i].MatD3D; // マテリアルのセット pD3DDevice->SetMaterial( &mMaterial); // 分割されたメッシュの描画 m_pMesh->DrawSubset( i ); } と表示してるのですが、表示されるのは白いオブジェクトでマテリアルが効果を発揮してません。 何が原因かわかる人いませんか? もちろんライトとかには問題ありません。
>>466 SetRenderState( D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_MATERIAL );
>>468 素晴らしいです出来ましたやっぱりマテリアルが原因でしたか。
ライトがどうのこうの言ってた連中とは大違いです。
神レス認定 (^v^;
470 :
デフォルトの名無しさん :2006/07/22(土) 15:01:04
キチガイ発生
471 :
デフォルトの名無しさん :2006/07/22(土) 15:03:57
神レス認定 (^v^;
むしろ何をどうやったらこんな症状が出るのか分からん俺ガイル
D3DMCS_MATERIALとかD3DRS_COLORVERTEXのステートいじってもおかしくならない。
>>468 は必死こいて調べてきた本人が自演してるかそうでなければエスパーだろうな
473 :
デフォルトの名無しさん :2006/07/22(土) 16:08:51
ていうか俺からすれば頂点シェーダを使わない意味がわからない。 どのハードでもソフトウェアエミュレーションしてくれるからもう動くんですけど?
何もしない、固定機能と同じ機能を持ったシェーダプログラムを書くのがめんどくさい
475 :
デフォルトの名無しさん :2006/07/22(土) 16:32:26
>>474 似たような苦労すんだぞ。どうせ。
だったら自分で組んで苦労したほうがナンボかまし。だと俺は思う。
しかも、固定機能で悩んだ苦労ってのはDirectXのライブラリの仕様の問題であって
別に自分の実力に結びつかないじゃん。なんか損してる気がするぜ。
シェーダもHLSLになってから結構汎用性効くしいいと思うんだけどね。俺は。
それにシェーダを整理すると描画にどんな種類のもんが必要になるかってわかっていいぜ。
475は初心者?
専門学校生が同じ様なこと言ってたから・・・
>>478 そんな主体性の欠片もないクズ丸出しな発言が許されると思ってるのか?
シェーダなんて普段から何百何千と書くわけだし たまには固定機能使ってもいいのでは
シェーダー書いて適用すればそれですぐに美しいグラフィックになるわけじゃないから まともなグラフィッカーに仕事させて始めてシェーダーが生きる。 例外はトゥーンレンダリングか。 まっさかプロの方がこんなアマチュアレベルの会話に口挟んでるってことは ないですよね
固定機能はフツーのことがフツーにできんからオススメできない。
そういや固定機能ってなくなるんじゃなかったのか?
>>483 そりゃDirectX10(仮)の話じゃね?
もっといいのが出るならそれにこしたことないな。
でxpはdx10に対応するの?
>>485 vistaが出る頃はxpのhomeがサポート停止になるからしないんじゃない?
XP HomeはVista後2,3年じゃなかったかい?
vista発売にあわせてサポート打ち切りとか厭がらせかよww
>>487 あ、今、調べてみたらそうみたい。
なんか延長したっぽいね。でも、社内じゃもうなんもやってないだろうなぁ・・・。
向こうも商売からしょうがない。 が、OSとか根幹を一企業が押さえちゃう問題は、独占禁止法とかじゃ既に解決できない問題だな
DirectInputで質問です。 標準エフェクトを使用して PS2のコントローラを振動させようとしているのですが、 右側しか振動させることができません。 左側も振動させるにはどうすればよいでしょうか。
握って振る
PS2のコントローラってあんた、変換機の仕様次第だから一般化できんだろ。 DeviceCapsとにらめっこしてから、方向変えたりして試してみたら。
つかハード依存の話題を持ち込んでもらってもなんともしがたい
497 :
493 :2006/07/23(日) 16:13:58
>495 >496 ということは、ハードによって方法はたくさんあるということですか?
PC用のパッドはボタンの配置すらもみんなバラバラ。 決め打ちで作ったら痛い目を見る。
キーコンフィグをつけるのは基本
ドンキーコンフィグ
同人プログラマの俺がシェーダと戦う意味はあるのか質問
オレは同人STGでもシェーダー使ったぞ。 2DSTGだから機体選択の所だけだがなー
∧⊂ヽ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (゚Д゚)ノ < シェーダ | ⊃| \__________ | | ⊂ノ〜 ∪
>>504 おー。
時間見て読むことにするわ。
50倍速メディアンフィルタとかってどんな実装だったのん?
∧⊂ヽ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (゚Д゚)ノ < シェーダ | ⊃| \__________ | | ⊂ノ〜 ∪
DirectDrawで元絵から色違いの絵をBltするにはどうするんですか?
イメージを変えたい色に変換する。
∧⊂ヽ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (゚Д゚)ノ < シェーダ | ⊃| \__________ | | ⊂ノ〜 ∪
511 :
デフォルトの名無しさん :2006/10/04(水) 19:09:39
512 :
デフォルトの名無しさん :2006/10/05(木) 08:52:50
今更D3D8からD3D9に移行しているんだが、 テクスチャ(D3DPOOL_DEFAULT)→テクスチャ(D3DPOOL_DEFAULT) のコピーって出来ない? Update系は元がD3DPOOL_SYSTEMMEMでないと駄目だし、 StretchRectは先にテクスチャが使えないし。
できないっぽいねぇ。 しかしテクスチャからテクスチャにコピーなんて使うか? しかもD3DPOOL_DEFAULT同士で。
それRTじゃないと無理だべ
D3DPOOL_DEFAULTならRT textureにしておきゃいいじゃん。
要る要らないはとりあえず置いといて、 汎用的なCopyRectsを何故無くしたのかと。
無駄な機能を削ってスリム化しただけだろう。 DrawPrimitiveで済むことだし。
実際DEFAULT同士の転送なんてまずやらねぇからな・・・
>>520 CopyRectsなんか用意しとくと、何も知らない初心者が使っちゃうだろ。
それはそれで構わない気がするけどなー。 遅い以上のデメリット無さそうだし。
じゃあ、CopyRectじゃなくてラスタースクロール機能だったらどうよ。 ハードで対応してなくてもライブラリとしては実装できるでしょ。 それを使った初心者が、何も知らずに「遅いー」って言うのは目に見えてる。 なら実装しない方が初心者には優しい。
そりゃラスタスクロールをCopyRectで実装するライブラリ作者が阿呆でFAだろ。
>ラスタースクロール機能だったらどうよ。 明らかに話が反れてる。 きょうび爺が懐かしむだけの時代のアダ花と、素の転送機能を一緒にすんなと。
ハードで対応してないって点では同じだろ。
StretchRectはハードウェア転送だけどな
2D向けの機能は最近のチップじゃ削除されたんだってよ。 オレも知らなかったからスゲー叩かれたよ。
2D絡みで残ってる機能なんて、マウスカーソルの描画まわりくらいじゃないのか? こないだ低スペックPCで無理やりゲーム動かしたらマウスカーソルが真っ黒にぶっとんで吹いた。
>>530 具体的にどのチップで、何の機能が削除されたんだ?
いつもこういう話になると、聞きかじりで、
具体例が存在しない、いい加減な噂を広める馬鹿が現れるんだが。
知らねーよ。 何でオレに聞くんだ?
とりあえずこのスレ的にはDirectDrawが消えた時点からが 2Dご愁傷様時代の幕開けと思って間違いありますまいよ。
DirectDrawにすがりつく人がいつまでもDirectX7使ってウザいんですが・・
というか現行のGeforceFXだと固定頂点機能すら削除されてるわけだが。
>>535 7から8で明らかに世代交代した感があるのに、未だに移れん人っているのな…
ちょっと驚きだ
枯れてて安心とかそういうレベルでの考えで使ってるわけでもなかろうし
>537 会社のwin2kのローカルマシンで こっそり弄れるのが良かったりとか?
単に使ってるラッパーライブラリがDirectX7止まりだとか、 アセンブラでアルファブレンディング実装して悦に入ってるとか、 取り付かれたかのように超低スペックPCも動作対象に入れたがるとか、 さまざまな理由でDirectX7を使ってる人がいます。
>>538 DirectX9はWin98/98SE/ME/2000/XP/VISTAに対応だぞ。
何気に対応OS多くて機能的にもなかなかの優れものだ。
DirectX9長いからね・・・ せっかく安定して開発できるのに、数年後にはD3D10移行が待ってると思うと 少しばかりウンザリするね。しかも、D3D10は数年進化し続けるだろうし。
>>541 それについて行こうとして一番つらいのはビデオボード交換かなぁ。
Vista君何回までOK?>ビデオ交換
無知を晒すな
Vistaってそんな制限あるの?ないの? っつーか、D3D10移行で大変なのは、そんな金で解決できる部分じゃないんだが・・
俺はDX10世代のビデオカードでるまではこのままRadeon X1900XTで粘る予定。
>>545 出てもすぐ買える値段じゃねぇからなぁ。
半年寝かすと偉く下がるが。
>540 いあ、このPCネットに接続出来ないんだわ かと言ってわざわざCDで持ってくるのもな だから敢えて7で(ぉぃ
548 :
547 :2006/10/21(土) 21:58:45
「この」じゃねぇ「うちの勤務先の」だw
>>547 ワラタ、どうやって書き込んでるのか悩んじゃったぢゃないか(w
>>547 そんな理由あるかw
ネットに繋げてるそのPCでは当然DirectX9使ってるんだよね?w
>>548 マ板で携帯厨に会うとは思わなかった、というところでした。
いやここわむいたなのだが
まいった
数百の遠景をビルボードで表示する場合にZバッファを有効にして 書き込む方法とZバッファを無効にしてソートして書き込む方法では、 どちらがパフォーマンスが良いでしょうか?
CPUに負荷をかけるかGPUに負荷をかけるかの違い
まずその数百の遠景とやらをソートしてテクスチャにレンダリング、そしてそのテクスチャをスプライトとして表示する 必要に応じて数フレームに一度テクスチャを更新、これ最強
>>554 数百程度なら zデータも1次+2次キャッシュに収まるだろうから
計算量 n*log(n) 程度のzソートで済ませるのが正解。
ソートで問題になるのはポリ数が数万オーダー以上になる時だ。
それに半透明ビルボードを使うことになれば嫌でもソートすることになる罠。
ztestオフにしちゃったら山の裏側からちょこっと顔出してるビルボード木とかはどーすんの?
最初に描けい。
1.スクリーン座標上にある不透明の物体を描画 2.ワールド座標上にある不透明の物体を前から順に描画 3.ワールド座標上にある半透明の物体を後から順に描画 4.スクリーン座標上にある半透明の物体を描画 ってのがとりあえず塗りが多いときの基本か? 実用面でいったらモデルはまとめるよりわけたほうが動作がいいな。 クリッピングではじける部分は多い方がいいし。 無駄にまとめると突っ込まなくていいものまでDrawPrimitiveに渡すことになる。 クリッピングではじけるならそれにこしたことないしね。 クリッピングさえちゃんとやればどんだけでかい世界をこさえても視錐台に入るもんだけ計算すればいい。
Zテストに頼りきり-> 利点: コードがシンプルに収まる パイプラインを刻まないで済むなら通常描画は十分に高速 欠点: 描画順番につきものの絵の破綻が起きるかもしれない 丁寧にソートした場合に比べてフィルやZバッファシーク等でGPUの性能を無駄にするかもしれない Zソートする-> 利点: 奥から書けば描画順番につきものの絵の破綻を回避できるかもしれない 手前から描けばZテストでオクルージョンカリングが機能的に働くかもしれない 欠点: CPU責任による頂点バッファの加工等がついてまわるので、 パイプラインが止まる、CPU負荷が嵩む等が問題になることもある でも普通数百のオーダー程度ならソートなんかしてもしなくても大して変わらんよ。 Zテスト有りで万とか描くならそりゃ別だけど。
>>560 多い場合に限らず、まあ基本だよな。
もっと言うならモデルのメッシュも外側から内側に巻くようにインデクス作っておけば
Zの書き込みだのテクスチャのフェッチだのが減って軽くなる。
もちろんそこまで最適化する必要があるのは、それ相応の複雑さを持ったモデルに限っての話だけど。
>>559 最初かーそうだな最初に描けばいいな!なんでこんな簡単なことに気がつかなかったんだ!!!
>>561 動的頂点場バッファならパイプライン止めることなく書き換えできるぞい
>>561 >描画順番につきものの絵の破綻が起きるかもしれない
2度塗りで回避できる。
Zが効いてるから2度塗りしても更新部分はわずか。
描画してもたいした負荷にならずに矛盾無く描画できる。俺、オススメ。
>2度塗りで回避できる。 何そのトンデモ回避方。 ABCと描かなきゃならんところがACBみたいになっちゃって 部分的に破綻しちまうところを、ACBACBと描くって話か。 ウンコ漏らしそうなほどにおぞましいが、それで解決するところは それなりに多そうなのがまた。
描画順序ひとつ語ってみても プログラマ一人ひとりに一家言があって興味深いですな
2度塗りは目からウロコが飛び出た。たぶん絶対に使わんけど一応メモっとくww
何話してるんだかわかんない >描画順番につきものの絵の破綻が起きるかもしれない これが何のことなんだかわかんない
>>569 半透明ポリゴン描くときの昔からの問題で、
Zテストが原因で、奥から描かないと正しく描画されないんだよ。
2度塗りすれば良いらしいがw (←これのことは忘れてやれw
>>570 お馬鹿。
そんな話はしてない。
半透明はソートして後ろから描画するのは変わらない。
それでも交差してるものとかで破綻が起きる。
2度塗りはそれを回避できて、Zが効いてるからピクセルフィルレートがほとんど負荷にならない。
やれるならやっただけ得な手法。
>>571 よくわかんないなぁちゃんと説明できない?
なんかすごいすごいばっかりなのがすごい怪しいよ
試せば一発だろ
いや「破綻」というのが具体的にどういう現象をさしてるのかわからないんだよ それがわからんと試しようがないでしょう? 順番が違うと最終的に半透明が重なってできる色が違ってしまうのが 透明度を半分にして2回描くと同じになるよということ? それとも一回目ztestをオンにして普通に描いちゃってるので他の半透明板の裏に入ってる部分が 描けないのを2回目ztestの条件を逆にしてもう一度描きましょうということ?
>>574 そんな難しいこと考えずに葉っぱとか木とか多いシーンを2回描いてみればいいんじゃね?
>>574 半透明のポリゴン同士が交差していたり、3枚のポリゴンが互い違いに
重なり合っていると、Zソートでも正確には描画できないよ。
ただ、それは二度塗りしようと回避できないと思うが、どういう理屈なのか
ちゃんと説明してくれんかねぇ。
>半透明のポリゴン同士が交差していたり うわ考えたくねえw
>>571 なんだ、半透明同士が交差した場合の破綻の話かよ。
描画順番は関係ないじゃん。
でも、結局はZ比較の問題だろ?
2度塗りというか、Zのみ更新するんだろ
Z更新じゃなくて、本当に2度塗りだと思うよ。 1度目の描画でZバッファが埋まってるから、 それ使えば2度目の描画コストが低いって言ってるみたい。 確かに実際そうだから、どうしようもない時は実装すればよいが・・
半透明はZ比較なしでやるのは常識だろ 手前に赤い半透明で奥に青い半透明があったとして どっちを先にレンダしようが結果は同じだろうが 何が2度塗りだよw
>>581 ←馬鹿は黙ってろ。
ま、俺は髪の毛ぐらいしか2度塗りは使ったことないけどな。
>>582 >>581 にとって半透明って50%のブレンドしか知らないだけだろ。
そんなハードウェアあるのかしらんけど。
背景色があるから50%ブレンドでも正しくないだろ
今は亡きPowerVRシリーズは結局どういう仕組みだったんだろう
単純に2回描くって言ってるからどうも半透明板を重ねた色について問題視してるんではなくて 金網なんかの輪郭が透明度で抜かれた板を手前から描いてしまったときの問題について言っているらしい? 2回目描画時にzが効くからどうこう言ってるわけだから 1回目はztest不明zwriteオン 2回目はztestオンzwrite不明 1回目のztestをオンだと仮定すると2枚重なってる奥の板を後で描こうとしたときztestに引っかかって描かれない 2回目も当然だめ だからこれはあり得ない 1回目のztestはオフだと仮定すると1回目は奥の板が手前に描かれて変な図になるが 2回目はztestがオンなので1回目で奥の板が手間の板に重なって描いた部分だけに手前の板が 上書きされてまともな画ができる こういうこと?
なんか、2回描画しても交差したやつは正しく描画されない気がしてきた。 最初に言った奴、詳しく説明してみてください。
まず奥にA、手前にBの2枚の半透明の板がある場合を考えてみる これは必ずA-Bと1度づつ描画されないといけない、これは大前提 >581-585 2度描画の手法がどのようなものかはわからないがB-Aで描画コールされる場合に正しく描画されるためには 1度目 BがはじかれAのみが描画される 2度目 Bのみ描画されAは描画されない が絶対条件になる 残念ながらこの条件を満たすステート設定方法は俺には思いつかない てゆうか2枚とかケチなこと言わず大量に重なっていた場合を考えれば たった2回の描画で正しく描画されるわけ無いことぐらいすぐわかるだろぼけ
>気がしてきた。 (; ^ω^) …
>>589 それは交差したポリゴンってわけじゃないよね?話がちがくない?
>>571 は二度塗りすることで交差したポリゴンの破綻も回避できるって言ってるんだけど
文句があるんならソイツに言ってくれないかな。
>591 交差してないポリすら正しく描画できないっていってんだから 交差してるポリは言わずも名が あと>589は別に>588に限定して言ってるわけじゃない
まあ最初に二度描きの話したやつは「ソートしなくても良い」って意味で 言ったような気がするんだが、それはその時点でダウトだよな。 好意的に解釈して交差したポリゴンの話に持っていったとしてもダウト。 > あと>589は別に>588に限定して言ってるわけじゃない そっか。ぼけって言われてカチーンって来たんでね。 二度塗りに感動した人もいるみたいなんで何となくフーンって思ってたけど 考えてみたら何も解決して無いことに気付いた。 二度目は何も描画しないんじゃないか?
あと、「いわずもなが」じゃなくて「言わずもがな」が正解なw
「ダウト」 って 「間違い」 じゃなくて 「疑惑」 って意味だよな?
この板もID欲しいな 俺様がくだらない揚げ足取ってるように見えて萎えるわ
ID欲しいね・・「ダウト」って言った張本人なんだがw
まず基本は、テクスチャ切り替えのコストを無くすためポリゴンの集合をメッシュと呼ぶことにして、 不透明のメッシュ単位で前方からZT on, ZW onで書いていくとZテストで処理を軽減できる。 次に奥側からZT on, ZW offで半透明ポリゴンを含むメッシュを書いていく。 重なりの順序が大体合うのと、ポリゴン単位にソートしたときには、半透明球内の半透明球などが ポリゴン単位に重なりの順序が異なる場合があり、色味が変わる問題が、正しくない色としても周囲の色と 一致するため、それほど問題ではなくなる。 何気に3枚のポリゴンが折り重なって一番手前のポリゴンが決められない場合や、交差している場合も無難に表示される。 解決するにはシェーダーでの単純幾何図形に限ってリアルタイムレイトレか、 MRTを用いて画素単位にZと色のスタックを作って後処理をするなど。 その前提で2枚の交差ポリゴンA,Bを書くことを考えてみると 完全透明のマテリアルにして、AをLess, ZT on, ZW onにして書く、 ZTの順序を逆にGreaterして、BをZT on, ZW on(ZWはどっちでも)にして書く、 次にAをLess Eq, ZT on, ZW onにして書く。 最後にBをLess, ZT on, ZW onにして書く。 ただし、背景に不透明ポリゴンがあってはいけないし、普通は使えないテクニックだと思う。 他に方法あるかな?
>589でいうB-Aの場合はいいけどA-Bだと駄目だな
俺、一度だけゲームのプロジェクト参加して辞めちゃったヘタレだけど そんときのプロジェクトで半透明の2度塗りはやってたな。 ステートをどうしてたかはわすれたけど、やってた気がする。
まあそのうち565がちゃんと説明してくれるだろうから気長に待つが吉
一応紹介しておく
http://spin.s2c.ne.jp/quick007.html >▼ id Software社の次世代エンジンでの描画順非依存の半透明ポリゴン描画(OIT)
>
> id Software社のリードプログラマのJohn Carmack氏が、8月のQuakeCon 2004の基調講演(動画(GameSpy PC)、Johnny Watson氏によるテキスト化、GameSpyのレポート記事)で、
>同社の次世代描画エンジン向けに検討している、描画順に依存しない半透明ポリゴンの描画手法(Order Independent Transparency)について触れています。
>これは、Doom3でリードデザイナを務めたTim Willits氏が、描画エンジンに対してゲームデザイナの視点から最も強く望んでいる機能とのことです。
>Doom3エンジンまでは、マテリアル単位で描画順をあらかじめ指定できるだけ(.mtrファイルのsort)でした。
>
> 次の2つの手法を検討しているようです。(※誤った解釈が含まれている可能性があります)
>
>(1) 複数のレイヤに分けて描画し、合成する方法 半透明オブジェクトは異なるバッファに描画する。半透明部分が重なっているかどうかをエンジン側で判定し、この場合、別の描画バッファに分けて描画する。
>そして、複数の描画バッファ(レイヤ)は適宜、合成する。同一オブジェクト内での描画順の問題は解決できない点、大量のビデオメモリを消費する点が欠点。
>(※複数のレイヤという点ではデプスピーリングにも似ていますが、描画パスが1回で済む点で異なります)
>
>(2) スティプル描画してポストフィルタを掛ける方法 アルファブレンディングは使用せず、半透明度に応じたスティプルパターンで半透明ポリゴンを描画する。
>(スティプル描画=スティプルパターン(ビットマスク)に応じた三角形内の特定のピクセルだけに点描)
> 最後に、ブラー系のポストフィルタを画面全体に掛ける。スティプルパターンの選択に工夫の余地がある。この方法はDoomエンジンの作成の際にも実験したが、
>Doom3エンジンのターゲットとなるGPUでは十分なフィルタリングを掛けられなかったため、採用しなかった。
>
>(Date: 2004-10-23)
ボリューム構造のVRAMを持たせて、リアルタイムレイトレで表示をする ビデオカードとかが安価にでてくれば解決するんだが。 その前にDX10ぐらいでNurbs曲面のプリミティブを GPU側で処理してくれるようにはなりそうかな。
なんでオタって自分の自慢ができる分野の話を流れ無視して勝手にしゃべりだしちゃうの?
一般的な話はまったく出来ないから。
なんか臭いなーて思ったら俺の臭いだった 先生に「教室から出て行けw」と冗談半分に言われた 言われたこっちは冗談半分に聞こえない
女の足の臭いの方が臭いぜ 夏場、専門学校で授業中に靴を脱いだ奴らがいたんだが 脱いだ瞬間酸っぱい匂いが教室中に充満して地獄と化した。
>>603 その中に「二度描き」って画期的な方法がかかれてないのはなぜ?w
二回目の描画には最低限Zオフセットは入れてるものだと思ってた。 いや、そうだよね? 俺、エスパーじゃないよね??
Zオフセットってなあに?
Z-biasのコトでね?
z-biasを適切に設定するには結局ソートするしかなくね?
614 :
デフォルトの名無しさん :2006/11/01(水) 15:43:21
意味不明
z-biasとz-sortはぜんぜん関係ねーんだけど
2度塗りの説明まだーーーー?チンチン(AA略 数人マンセーしてたのがいたはずなのに ここへきて全員が全力でスルーとかカッコイイにもほどがあるぞ
ごめん、条件反射でマンセーしただけ
脊髄反射みたいなレスだったし、似たような名前のスレと被っててみつからないんじゃない?age
619 :
デフォルトの名無しさん :2006/11/04(土) 00:52:57
チェック入ったままだった。 age
DirectSoundで3Dサウンドをやろうとしているのですが、 環境SEとして3Dバッファの固定座標を指定して鳴らした後にListener座標を変えても 音量や聞こえる位置が変化してくれなくて悩んでいます。 CommitDeferredSettings();も行っています。 どなたかお教えください、よろしくお願いします。
どうしてMSの配布物は無駄に幾重にも圧縮されているのかね?
622 :
デフォルトの名無しさん :2006/11/06(月) 16:05:09
ビンテージのベースを質屋にうって出刃包丁を買いましょう 高層ビルにあるクラブに行き浴びる程お酒を飲みましょう。 廊下に出て窓を開けましょう開けましょう。 マズは腹に出刃包丁でブッスリさしましょう。 コンクリートの下地めがけてすぐに飛び降りましょう。 さようなら。
圧縮をかけつづければ最後にはどんな情報も1ビットになると信じているMS
1ビットじゃファイルに書き出せないから 1バイトの時点で止めといたほうが効率がよい!ヽ(´ー`)ノワーイ
一番多いのは自己解凍ZIPに自己解凍CABかな でもって中身のMSI自体がそもそも圧縮されてると
( ^ω^)せっかく来たのにまだ二度塗りの解説ないお ( ^ω^)また来週くるお
もう来なくて結構です。
もう( ^ω^)とか時代遅れなのよね
では改めて。 「シッシ」
>>624 オマイ天才!
確かに、1bitも1バイトもディスク上のサイズは変わらんよな
それは床の反射を描画するために、元々透明でないものを半透明で描画するときに 問題が発生するという話で、このスレで出た二度塗りとは関係ない。
***** 肛 門 基 礎 T ***** アナル=肛門の(形容詞) アヌス=肛門 (名詞) ○ 彼女のアヌスはヒクヒク動いている。 × 彼女のアナルはヒクヒク動いている。 ○ 彼女とアナルセックスしたい。 × 彼女とアヌスセックスしたい。 例外 ○ アナル男爵(肛門の男爵。アナル好きな男爵) ○ アヌス男爵(固有名詞。名前が肛門)
>>632 いや、これでいいんじゃない?
なんか、内容的にこれに見えるけど。
もしかして、ステート変えなくても普通に2回書くだけでもいけるのか・・・。
>>633 「アナル好きな男爵」ではなくて「アヌス好きな男爵」が正しいのでは?
631は最も手前のポリゴンのみ1度だけ塗るための方法でこの場合とは全く関係ない
この場合っつっても結局どの場合なのかはうやむやにされたままだったしなぁ こっちが勝手に決め付けてただけで
この場合って・・ アンタ詳しそうだから、そもそもの問題を再定義してくれよ。
637ではないが、二度塗りの話は一般的な半透明の描画の話の流れで 出てきたから、俺はそういう話だと思っていたが。 半透明のポリゴン同士が重なっているときの問題解決法みたいな感じ。 631の話は、反射を表現するための手段として半透明で描画してはいるが、 描画対象の本質は半透明ではなく不透明。 今ならこんな回りくどいことしないで、一度テクスチャに描画してから それを床に合成する方が一般的じゃないかね。
どっちが速いの? Zバッファこさえとくだけでいいなら手間もかからないし、いい方法だね。 しかも、2回目はZテストが効いてるからかなりいいな。
643 :
デフォルトの名無しさん :2006/11/10(金) 19:12:07
エロゲでフルスクリーンがダブルで出来ないのなんとかしてくれ
日本語でおk
645 :
デフォルトの名無しさん :2006/11/10(金) 22:48:36
/) /) / ⌒ ヽ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | ●_ ● | < まだ2度塗り説明きてないの・・・また来週こよ (〇 〜 〇 | \_________ / | | |_/
ぴかちゅー!上!上!
二度塗りって。 人物モデルの髪の毛に使うようなやつ?
>>647 それが何だか分からんが、ちと説明してみ?
>649 なんかそれ見れないね、webarchive使えば見れるけど ともあれGJ
いつの話だよ、って思った。 シェーダ使える昨今でも同じような処理してる人がいたら見てみたい。
おまえは何を言っているんだ
アルファ値により分岐して深度値の書き込みの有無を判別って一般的?
一般的っていうか、アルファの問題は解決できない問題だから いろいろな解法があるわけよ。これもその中の一つだね。
限定的な状況で使えた、ってことだろ よくやることじゃん
自分的にはalphaが100%ならソートなりzテストが必要で そこから1ポイントでも透明度が加わった途端に適当に重ねて描かなきゃならんようになる という発想というか包括的な視点みたいなのがなかったんでちょっと目から鱗だったよ うれしくてURLの貼り方ミスった zbufferはこのまま平坦な2次元配列のままいくのかな それとも1ピクセルごとにスタックもったりとかするのかな
>>657 既にシェーダとMRTでZバッファに相当する物なんてどうにでもなるが。
>658 657じゃないけどぜひ詳細を
ピクセルシェーダで自前でZ値を計算して保持・比較するだけだろ、たぶん。 R16G16B16A16Fとか使って頑張れば4層Zバッファとかも夢じゃないよね。
半透明をちゃんと見せるためだけにどんだけ他の処理削るんだよw
同じ要領で理論上はディープシャドウマップも実装できる はずなんだけど、実験レベルのサンプルコードとかみたことないね。
ディープシャドウマップがどんなのか知らんが 無いものは作ってみてはどうか?
ディープシャドウマップって何だっけ? ピクサーがモンスターズインクのときに開発した手法?
>>660 ワロタw
PowerVRでも使っとけと思う
まあ、でも、将来、GPUの能力上がったら、あながちなくはないのかw
Real Time Rendering の第2版にアキュムレーションバッファを使った 正しい順番の半透明レンダリングってのがあったけど
あったあった。 原著で半分読んでまんどくさくなって放り出した。
久々にBBXを覗いてきたらspam投稿でひどいことになってる
7950GTが2枚あるので、あえてSLIをせずにプログラムをいじって遊んでいるんですが
この環境でそれぞれのカードから1つのディスプレイにケーブルをつなぐ
(いわゆるDualView状態)と、
GetAdapterCountでデバイス数が2と返されます。
そこで、敢えてCreateDeviceの第一引数に1を与えてデバイスを作成すると、
描画(ピクセルシェーダ)パフォーマンスが落ちてしまいます。
これは、
http://www.microsoft.com/japan/msdn/directx/techart/DirectX8faq.aspx にある複数でデバイスで性能低下する仕様(?)あたりを引きずっているんでしょうか。
(もっとも、私のプログラムでは複数のデバイスは生成していませんが。)
それとも、私のプログラムが悪いのでしょうか。
何かご存知の方がおりましたらご教授ください。
複数ディスプレイで性能が落ちないなら、それはそれで色々とくだらない遊びのネタが思いつくんだけどなぁ。
そのへんは昔からあんまり改善されてないねえ vistaだとどうなるんだろう
>>669 1枚目と2枚目で接続バスの帯域は同じなの?
672 :
669 :2006/11/23(木) 17:46:08
>>671 nForce590SLIを使っているので大丈夫なはずなんですが。
とりあえず懲りずに色々と実験中。
使っているのが1番のみなのに遅いってことは、
プライマリなデバイスとそうでないもので何らかの差があるのかなぁ、
といった感じです。
XPでホバーテキストが表示されるときに処理重くなる現象とかがあるから
>>669 のリンク先のハナシと
プライマリーと関係して何か起きてるのかもしれないね。
674 :
669 :2006/11/29(水) 22:24:48
せっかくなので実験経過を報告します。 ついでに誰か人柱になってくれる人を募集。後でテストプログラムUPしますので。 今回実験したのは、複数のGPUを搭載した環境において、 CreateDevice関数に対して明示的にGPU(デバイス番号)の指定を行うと、 どうなるか(GPUごとにシェーダパフォーマンスに差が生じるか)、です。 GeForce7950GTが2枚非SLIで搭載されたPCを用意し、 ビデオカード1枚につき1本のディスプレイケーブルを接続しました。 この時点でGetAdapterCount()の返り値は2です。 デバイス番号に0を与えた場合と1を与えた場合の性能(FPS)を測定すると、 デバイス番号0の方が高速でした。(70FPS vs 18FPS) 更に画面のプロパティからプライマリディスプレイを変更してから再測定すると、 逆の結果が得られました。(18FPS vs 70FPS) なお、ウィンドウの表示位置は結果に影響がありませんでした。 (ひょっとしたら、ウィンドウ表示位置と描画しているデバイスが合っている必要があるかと思いましたが。) 私の手元の実験結果から 1:プライマリディスプレイであるかは性能に関係が無く、 デバイスの認識順が先のGPU(ディスプレイ)の性能が高い →ビデオカードが刺さっているPCI-eバスに依存しているかもしれません。 データ転送量が小さい+nForce590SLIなので考えたくありませんが。 2:複数のGPUを搭載した環境では、各GPUが本来の演算性能を発揮できるかようではない 以上のことが推測できました。 これらが私の環境に特有の問題なのか、それともなんらかの仕様に基づいているのかがわかりません。 何か御存知の方がおりましたら情報提供をお願いします。 なお、実験環境はAthlon64X2,GeForce7950GT*2,ForceWare93.71,WindowsXP64といった環境です。
ちょっとNVPerHUD4入れてみたんだが DirectX *RETAIL* runtime detectedの下に Error adding counter [gpu_idle]とかづらづらと出てきて 一番したのグラフとかがcounters not availableとかで表示されにゃい。 WinXP,GeForceFX5900XTでPerKitは最新なんだけど、おんなじ様なことになってる人いない? ユーザーガイドみてもそれっぽいとこは最新のドライバいれろとしか書いてないし・・・・。
Textureとspriteとsurfaceの違いがよく分かりません。 どれも画像を扱う時に出てくるのですが、 これらの違いについて分かるサイトがあったら教えてください。
677 :
676 :2006/12/01(金) 00:42:42
すみません、書き込むスレを間違えました。 取り消しします。
678 :
デフォルトの名無しさん :2006/12/15(金) 10:42:56
ツールアプリ等では作業の効率を向上させるため 2つ以上ウィンドウを使用して操作することが多いですけど、 ゲームではウィンドウ(Windowsの窓)を2つ以上使うニーズはありますか?
>>678 何でそんなこと聞くんだ?
自分で必要なら作ればいいじゃん。
そもそもDirectX関係なくないか?
>>678 需要は別に無いな。
複数ウィンドウを使うとむしろ操作が煩雑になりそうだ。
処理速度も大分落ちるだろうし。
シミュレーション系ではたまに見かける気がする。 中の窓の描画を全部DirectXでやってるかは別問題だが。 一応FAQによれば、窓ごとにD3DDeviceを作ったりするのは非効率で、 遅くなるので、1つのデバイスを使いまわすべき、らしい。
ゲームの場合は、ゲーム内に独自のウィンドウシステムを組み込んでしまうのが 一般的だから、OSのウィンドウシステムはあまり使わないね。
毎回作りながら、非効率だよなあとは思うんだが、結局作っちまうんだよな。 内容にもよるとは言え、普通にGDI+で書いてりゃ面倒ないのになあとか思ったり、思わなかったり。
未だに文字入力にIME使わせずに一覧から文字を選ばせるゲームとかあるよな。
>>684 ゴメンw
アーケードとかのノリでどうしてもそっちにしちょう
実用性が求められるビジネスアプリじゃないからな。 OSのウィンドウシステム使え?キーボードで文字入力させろ? ゲームのインターフェイスはデザインとか雰囲気のが重要。 プレイヤーの使い勝手なんて二の次でいいんだよ。
>プレイヤーの使い勝手なんて二の次でいいんだよ。 滅びの第一歩 つーかIMEのプログラムなんて大して難しいもんでもないのに ほとんど放置されてるのはなんでなんだろうな SDKのオマケにすらサンプル入ってるのに
コンシューマへの移植を夢見て・・・
ATOK積め。 みたいな。
>>683 DirectXとGDIの組み合わせって経験的に
どうもかみ合わない感じだからためらうんだよね。
前にDirectXで描いてからGDIでサブウィンドウ描いてたら
ウィンドウ全体がガクブルするようになってしまった事がある。
結局全部DirectXで書き直したけど、ものすごい回り道だったから
それからはGDIと組み合わせる事は無くなったなぁ。
>>687 DirectXの領域から一歩はずれるとただのザコプログラマになるやつがいるから。
例えば俺
>>684 馬鹿なプレイヤーは一覧から選ぶしか出来ないからな
>>691 んだんだ。
GUIは色々抜け道ありすぎてサポートしきれんときも多いべ。
例えばIMEの全角文字入力中にAlt+XXXとかShift+XXXとかのショートカット押されたときとか大丈夫なんか?と聞きたい。
「大丈夫なんか?」とは変な動作しないかどうか?ってことだな。
また、とてもバッファに収まらんような大量の文字列をクリップボードにもってきて>貼り付け
とかさ。IME制御やったことないからわからんけど、そういうのって気にしなくてもうまくいくようになっとるの?
はっきりいってGUIには苦い思い出しかない。
ゲーム前の環境設定で設定項目のチェックをエディットのキルフォーカスでやってたことがあるんだけど
キルフォーカスって別にフォーカスアウトすれば必ず走るわけじゃなくて、
特定の動作のときには走らないこともある。例えばボタンのコントロールを押したまま範囲外にずらしたときにキルフォーカスは走らない。
また、ファイル(F)みたいなメニューがあるときにエディットからAlt+Fでファイル(F)に飛んだときなんかもキルフォーカスは走らない。
こういうGUIの糞みたいな動作の1つ1つをガードかけて行く作業がアフォらしくてたまらない。
(できないわけではない、面倒なのでやりたく無い。疲れる。金にならない。はっきりいって無駄。)
あ、GUIってWindowsのなw
いや、GUIじゃなくてGDIの間違いw 吊ってくるw
SDK2002落とせなくなってね?
698 :
デフォルトの名無しさん :2006/12/28(木) 10:58:57
いやそれはもちろん知ってるけど、かっこ悪いなあと。
701 :
デフォルトの名無しさん :2007/01/04(木) 20:53:30
最近、「寄生派遣」という言葉をよく聞くようになりました。 契約終了を切り出されると「切られたら生活できません」などと 泣き落としで契約更新を迫る派遣のことです。 今月初め、半年前に辞めた派遣が出社してきてみんなびっくりしました。 影でコソコソ偉い人に泣きついて再契約したそうです。同じ部署の人には黙って・・・ そんなことまでして自宅の近くの派遣先にこだわって人間として恥ずかしくないのですか。 派遣でスキルアップ、派遣で収入アップとか言うなら一箇所にしがみつかず 複数の会社を渡り歩いてください。 ひとつの会社で派遣向けの単調な仕事をしていたらスキルアップなんてありえないでしょう。 狭いワンルームを電化製品で埋めるために派遣で足りない収入は親にも寄生して、 いつ切られるんじゃないかとビクビクしながら人事権のある人間とだけ仲良くし、 契約終了を通知されれば泣き落とし。悲惨な人生ですね。 氏んだほうがいいんじゃないですか。
>>701 話術スキル・泣き落としスキルは確実に上がってるなw
703 :
デフォルトの名無しさん :2007/01/11(木) 22:58:39
質問失礼します。 CEditのようなコンポーネントをDirectX上で描画したいのですが、どうやれば良いでしょうか? IMEは実装したのですが、複数行書くとなると大変な処理になるので、別の何かしらを利用したいと考えております。 書籍やHPの情報等、似た情報ならなんでもかまいません。 分かる方、お願いします。
‖ ___ ‖ / `ヽ‖ ,:' 、ゑ ,' ; i 八、 |,! 、 ,! | ,' ,〃ヽ!;、 |!| l川 l リへ'==二二ト、 リ川 !| i′ ゙、 ', ', lルl ||,レ′ ヽ ,ノ ,〉 |川'、 ,,.,.r'" ,,ン゙ `T" ! ,/ '.ノ,/| / ,!´ !゙ヾ{ | / ,' i ゙ ! ,l゙ ,r‐'ヽ-、! ', l| { `ヽ ! 「゙フ ,>┬―/ ; i,`{ / /リ川' ', ゙、 / ,/ ゙、 ゙、 ノ / ', `、 \_/ ; ゙、ヽ、 l__ ! ___〕 ,、l  ̄`‐┬―r┬‐r'´ `'‐'′ | .! | | | | .| |
705 :
デフォルトの名無しさん :2007/01/11(木) 23:19:10
どうしてくれるんだ 派遣のほうが給料が高いというから俺様は正社員を辞めて派遣になったんだぞ! 謝る気があるなら俺様に正社員に戻る方法を教えてくれ
706 :
デフォルトの名無しさん :2007/01/11(木) 23:56:46
>>703 GDIように、描画とめるAPIあったと思うけど、そうすると、ほかの描画がとまるわけで、
結局自前描画しか方法ないです
>>706 返答ありがとうございます。
そうですか。。。
自分なりに、もう少し探ってみます。
コントロールを置いてある場所に描画しなければいいだけなのに、 何を探る必用があるのかさっぱり理解できない。
709 :
PPP :2007/02/02(金) 18:28:42
最大頂点数が65534個を超えるMeshObjectについて質問なのですが、 DrawSubset処理がうまくいきません。 一応描画はされるのですが、思うような形がでてきません。 苦肉の策でDrawPrimitiveを使用すると自分が思っている形が出てきたので 頂点データなどは正常であると思います。 原因をご存知であればご教授ください
シェーダの勉強をはじめた者です。 本を読んだり自分なりにググったのですが、分からなかったので質問させてください。 基礎的な質問なんですが…。頂点シェーダ結果の出力方法として 「out修飾子を使う方法」「構造体を宣言して構造体を返す方法」の2種類があると思います。 この2つのどちらを使うかを選択する基準って何かあるのでしょうか? 例えば参照の方が効率が良かったりするように、outの方が効率が良いとかあったりしますか?
複数outする時は構造体使うしかないだろ。
返信ありがとうございます。
すぐ参照できるサンプルソースでなくて恐縮ですが、
「ゲームエフェクトマニアックス」という本のサンプルソースにある
エフェクトファイルでoutが複数利用されているものがあるので
outは複数使えると理解していたのですが、それが間違っているという
事でしょうか?
私が参考にしたのは下記URLのサンプルプログラムにある
エフェクトファイルの一つ「Wave.fx」で、その中に宣言されている
頂点シェーダ「WaveVS」の宣言に下記のようにoutが複数使われていました。
// 頂点シェーダ
void WaveVS (
float4 pos : POSITION,
float2 normal_uv : TEXCOORD0,
out float4 Pos : POSITION,
out float2 NormalUV : TEXCOORD0,
out float3 WVPos : TEXCOORD1
) {
// 頂点座標とテクスチャ座標
Pos=mul(pos, WVProj);
NormalUV=normal_uv;
// ワールドビュー変換した頂点座標
WVPos=mul(pos, WView);
}
(参考URL)
・「ゲームエフェクトマニアックス」
ttp://www.cmagazine.jp/books/effect/index.html ・同書籍サンプルプログラム
ttp://www.cmagazine.jp/books/effect/effect.zip
>>711 いや、
>>712 みたいな書き方できんだよ。なんか。
C言語とそっくりとおもいきや実はちょっと違うみたいな・・・
なんか気持ち悪いけどできるんだw
誰の好みかは知らんけどw
>>712 どっちでもいいんじゃね?
言語に複数の方法が用意されてるってそんだけのことでしょ?(多分)
こだわる意味あるの?
>>713 こだわる理由は「効率の良い方を使いたかったから」という事です。
形が参照にも似てましたし、2つある=違いがあるのかな?と思ったので。
2つに違いがないのであれば、好みで良さそうですね〜
返信ありがとうございました。
効率が気になるなら実測実測。 実測したらついでに報告してくれれば尚良し。
有無。実測以外に無し。 そのときそのシーン、システムごとに違うときも多々有り。 だれがなんと言おうと実測以外に信じるもの無し。 ていうか、そんなもん毎回質問されちゃいくら過疎スレでもさすがに邪魔だろw 測れ、ひたすら測れ。信じるのは実測値のみ。
>>715 >>716 >>717 誰もが疑問に思うところで既に「こっちの方が良い」or「どっちでも一緒」という
結論&共通理解がある内容だと思って質問させていただいたんですが、
共通理解があるほど一般的な内容ではなかったんですね。
出力する変数の数や頂点数などによっても変わる可能性があるかもしれませんので
716さんの言うようにアセンブリコードの比較をしてみたいと思います。
ただ、今急ぎの作業があるので、結果報告は一週間以上後になるかもしれません…。
相談に乗っていただいて有り難うございました。
>>718 状況をいうと、正直、複雑過ぎてわからないって感じ。
モデル数とか頂点数、フィルレートにも注意しろ。
本当に自分が考えてる値だけがその数値の結果につながってるとは限らない。
測るにも要素がありすぎて「そのシーンではそうでした」としか言えない状況。
つまり、「よくわかっていない。」
なんか話を変な方向に広げてる奴がいるが、
>>710 の問題に関しては
>>716 でアセンブリ命令が同一だったら
速度を実測するまでもなくどんなシーンでも絶対に結果は同じだぞ。
俺もなんで検証に一週間もかかるのか、フィルレートとかの話が 出てくるのか分からんぜ。 どんなコードに展開されるかっていう、物凄く単純な話なのに。
>>718 はアセンブリコードの比較をするってだけの話なんだが。
つかoutはを引数に書こうが、構造体にしようが、C言語みたいに
直値だ、参照だ、ポインタだ、ってわけじゃなく分岐もポインタもない
単純なアセンブリになるだけだから出て来るコードにも速度にも
違いは無いと思うんだが・・・
>>723 それは予想でしょう。
やっぱりコード吐いてみないとわかんないよ。
組んだ奴が馬鹿な奴かもしれんし。
>>725 なんか違うこと言ってる?
組んだ奴が違うように組んだら違うもんがでるじゃん。
平行ライトx1+半球ライティング ポイントライトx4 ライトスキャタリング ボーンアニメーション 上の要素が入ったシェーダーを構造体を用いた場合と 引数を用いた場合でfxc.exeでコンパイル。 結果どちらも「// approximately 132 instruction slots used」 まぁ当たり前っちゃー当たり前の結果だが。
>>727 じゃあ、同じように組んであるっぽいって言えるな。
>>727 有無。
やはりコード吐くのが一番早い。
>>726 頂点シェーダの出力はピクセルシェーダのレジスタへのマッピングを人間が読みやすくするためだけにあるから
構造体表現しようが直接出してやろうが落とされるバイナリには関係ないんだよ。
まぁレジスタ番号が変わるコトはあるかもしれんけどな。
>>710 で質問させていただいた者です。
何を言っても余計な言い訳ですが、「fxc.exeをまだちゃんと使ったことがない」&
「毎日徹夜するほど別作業の締切に追われている」ということで、検証作業は
一週間後ぐらいに開始できると思います…という意図の書き込みでした。
検証していただいた727さん、相談にのっていただいたみなさん本当に
ありがとうございました。
>>727 検証代行していただいてしまって申し訳ありません…。
どちらも同じということで、安心して使えます。
本当にありがとうございました!
733 :
デフォルトの名無しさん :2007/02/04(日) 01:27:49
2枚のテクスチャの合成を行っているのですが、合成をするとcolor値は反映されないものなのでしょうか。 pDevice->SetTextureStageState(0,D3DTSS_COLOROP,D3DTOP_SELECTARG1); pDevice->SetTextureStageState(0,D3DTSS_COLORARG1,D3DTA_TEXTURE); pDevice->SetTextureStageState(1,D3DTSS_COLOROP,D3DTOP_BLENDTEXTUREALPHA ); pDevice->SetTextureStageState(1,D3DTSS_COLORARG1,D3DTA_TEXTURE); pDevice->SetTextureStageState(1,D3DTSS_COLORARG2,D3DTA_CURRENT); 合成は上記のように行っています。描画はDrawPrimitive。 pDevice->SetTexture( 0, NULL ); でテクスチャを張らないようにしたり、 pDevice->SetTextureStageState(1,D3DTSS_COLOROP,D3DTOP_DISABLE); pDevice->SetTextureStageState(0,D3DTSS_COLOROP,D3DTOP_MODULATE); 合成をしなければcolor値が反映されます。 テクスチャの合成をしつつcolor値を反映させることは出来ないのでしょうか。
734 :
デフォルトの名無しさん :2007/02/04(日) 01:33:59
>>733 なんかよくわかんねーけどこれ↓全部設定してもう1回やってみ?
D3DTSS_ALPHAARG0
D3DTSS_ALPHAARG1
D3DTSS_ALPHAARG2
D3DTSS_ALPHAOP
D3DTSS_COLORARG0
D3DTSS_COLORARG1
D3DTSS_COLORARG2
D3DTSS_COLOROP
もちろんそれぞれに設定したもんの意味をちゃんと理解してよろ。
自分が設定してるもんが色なのか?αなのか?
735 :
733 :2007/02/04(日) 01:52:56
すみません、color値は頂点のです。 アルファ値を含むテクスチャの合成をしているのですが、ライトを切ってもテクスチャの色がそのまま反映されます。 合成方法を変えると透明な部分が黒で合成されるなど期待通りに合成されません。 頂点色は正常に設定されているためテクスチャ無しや合成無しでは反映されます。
736 :
デフォルトの名無しさん :2007/02/04(日) 02:31:27
>>733 そのテクスチャステージのどこに頂点カラーがある?
頂点カラーを無視する設定にしているんだから、反映されなくて当然。
ちなみにヒントをいうとマジで設定するとこんな感じになるぐらいやっかいなシロモンだ D3DTSS_COLORARG0ってどういう扱いだったか忘れた。 下の例もD3DTSS_COLORARG1,2を使うのかD3DTSS_COLORARG0,1を使うのかは忘れた。すまん。 下の例はテクスチャステージを3枚使うときな。 //1枚目w pDevice->SetTexture(0, pDevice->SetTextureStageState(0,D3DTSS_COLOROP pDevice->SetTextureStageState(0,D3DTSS_COLORARG1 pDevice->SetTextureStageState(0,D3DTSS_COLORARG2 pDevice->SetTextureStageState(0,D3DTSS_ALPHAOP pDevice->SetTextureStageState(0,D3DTSS_ALPHAARG1 pDevice->SetTextureStageState(0,D3DTSS_ALPHAARG2
//2枚目w pDevice->SetTexture(1, pDevice->SetTextureStageState(1,D3DTSS_COLOROP pDevice->SetTextureStageState(1,D3DTSS_COLORARG1 pDevice->SetTextureStageState(1,D3DTSS_COLORARG2 pDevice->SetTextureStageState(1,D3DTSS_ALPHAOP pDevice->SetTextureStageState(1,D3DTSS_ALPHAARG1 pDevice->SetTextureStageState(1,D3DTSS_ALPHAARG2 //3枚目w pDevice->SetTexture(2, pDevice->SetTextureStageState(2,D3DTSS_COLOROP pDevice->SetTextureStageState(2,D3DTSS_COLORARG1 pDevice->SetTextureStageState(2,D3DTSS_COLORARG2 pDevice->SetTextureStageState(2,D3DTSS_ALPHAOP pDevice->SetTextureStageState(2,D3DTSS_ALPHAARG1 pDevice->SetTextureStageState(2,D3DTSS_ALPHAARG2 それぞれカラーオペレーション、αオペレーションを設定しなきゃならんし、 ステージ毎にテクスチャも設定せにゃならんことも注意。 自分のやることがどんな計算をしなきゃならんかよく考えるのが吉。 次のモデル描画するときに残ってると面倒なのでモデル描画する毎に俺は初期化して使ってた。
740 :
733 :2007/02/04(日) 03:08:41
レスありがとうございます。 てっきりテクスチャをどっかで処理して、それを頂点カラーに反映させて表示させているのかと思ってました。 頂点情報は正常なので合成が問題と悩んでいました(´・ω・`) 無論、初期化とかもしていませんでしたので組み込んでおきます。
飛び降りとか飛び込みとか、人様に迷惑かけないように氏…
シェーダにおける最適化に関する質問です。 「環境光と拡散反射光の色味をまとめ、環境光の強さをライトベクトルの w成分に格納する」という最適化を考えています。 これは環境光と拡散反射光の色味が違わないことが条件で実行できる 最適化だとは思うのですが、これを無理やり環境光と拡散反射光が 異なる物体に適用したいと考えています。 このときに、色味と環境光の値を計算する式のようなものはありませんか? 自分なりに色味に単純平均をつかってみたりしたのですが うまくいきませんでした…。 また、こういった類の命令数を減らす最適化のテクニックについて 紹介されているサイトなどがありましたら教えていただければ幸いです。 長文失礼しました。 ・元の式 color = amb + max(0, dot(N, L))*diff + pow(hl, power)*spec ・最適化後 color = col*max(amb, dot(N, L)) + pow(hl, power)*spec
よほど頂点数が多いか、複雑な頂点シェーダーを多用してない限りは 足引っ張るのはCPU、ピクセルシェーダー、メモリアクセスだから 頂点シェーダーを躍起になって結果が変わるほど計算式変えてまで 最適化する必要は無いと思うが・・・
>>743 「法線マップのアニメーション」&「ピクセル単位でのライティング」のような
ことをやっているので、使用してるのはピクセルシェーダです。
説明省いちゃってすいません。
ピクセルシェーダーで、「法線マップの取得→クック・トランスの反射モデルを実装」
って感じで作ると、「64命令を超えました」っていうエラーが出てしまいまして…。
少しでも命令数を減らして最適化していったら何とかならないかなと思ったんです。
81命令→64命令なので、普通にやっても無理っぽいんですけどね…。
まだ実験すらしてない段階ですが、普通はパスを分けて解決したりするんでしょうか?
片方はピクセルシェーダを使わずに2パス
面倒臭ぇ、加算にして二度塗りしちまえ。 1発目 color = amb + max(0, dot(N, L))*diff 2発目 color += pow(hl, power)*spec
>>745 アドバイスありがとうございます。
それができれば理想的なんですが、法線マップから法線を
読み込む必要があるので、法線が絡む部分はどうしても
ピクセルシェーダになってしまうんです…。
自分が調べた限り、法線マップを利用する場合は、
(3.0以降じゃない限り、)ピクセルシェーダでなければ
どうしようもないという事だと理解したのですが
上手い手法があるんでしょうか?
法線が不要な部分は出来る限り頂点シェーダに回すという
最適化はやってみようと思います。
>>746 アドバイスありがとうございます。
やはり一般的な式などは存在しない(というかそんなことを
しようとしない)んですね。
どのみちクック・トランス実装の為にパスを分ける事になりそうですし
別々に扱うことも今後は考慮したいと思います。
>>747 頂点シェーダーでテクスチャ読めても
法線バンプはピクセルシェーダーでしか出来ないだろ。
俺はバンプ時にはクック・トランス使うのはあきらめた。
ライトが増えるとどうしようもないし素直にフォンでやることにしてる。
モデル1つにソコまで処理かけるよりも画面全体のクオリティを
重視したいってのもあるけど。
>>748 詳しく調べてないのでできるという保障はないんですが、頂点シェーダで
テクスチャを、ピクセルシェーダでのテクスチャと全く同等に扱えるとすれば
頂点ベースの法線を基にした法線アニメーションをさせるとか…。
でもそんなことするぐらいなら、頂点座標の物理シミュレーションを担当させたほうが
よさそうですね(笑)
具体的な経験談で本当に参考になりました。
他の人がどうしてるかを調べる方法がなかったので。
私の場合は、単体のシミュレータに近いものなので、処理をかけても良いので
クック・トランスの実装もそのうち取り組んでみたいと思います。
とりあえずは、フォンで行くことになりそうですが。
貴重なアドバイスありがとうございました。
キューブ環境マッピングによる水面への映り込みを実現しようと考えています。 GetCubeMapSurface関数を使って、球に近い物体への環境マッピングに 成功したので、それを応用して水面(平面)へのキューブ環境マップを 実現しようとしたのですが、次のような点が上手くいきませんでした。 キューブマップ描画時の射影行列などの設定に問題があるのでしょうか? 同様の経験をされたことがある方がいらっしゃいましたらアドバイスを いただけませんか? 「視線の入射角が極端に大きくなる(水面に近い高さから覗き込む)と 水面と壁面の間に何も移らない分断された空間ができる」 「Y軸回転させると部屋の角の映り込みと、部屋の角の物体がズレてくる」 「映り込みがカメラ位置(水面の中央)を超えると、変に屈折する」 最後の一つはキューブ環境マップでは仕方ないのかなと思うのですが。
全部仕方ないです。
近似で満足できないならレイトレース
>>751 >>752 返信ありがとうございます。
三つのうち、二つは次のような理由からだと解釈しています。
「角のズレ」は、マップ生成時の画像が実際の反射とズレているから。
「変な屈折」は、反射ベクトルの成分のうち最大のもので利用する面を決定するから。
だとすると、この2つは対処するのはほぼ不可能だと思います。
一番目の「変な空間」の理由はどのようなものなのでしょうか?
今のプログラムでは結構致命的なので、できれば対処したいんですが、
自分なりに考えてみても原因が思いつかず、対処の方法が全く想像できませんでした…。
(対処=類似の軽い手法で置き換える、工夫で乗り切る という事です)
もしよろしければご教授願えませんか?
キューブマップを作るときと実際のゲームで視野角とアスペクト比も違うんでしょ
>>754 視野角とアスペクト比が違うのはわかるんですが、それが「変な空間」になるという事と
結びつかないのです…。
キューブマッピングにおいては、どの反射面も最終的にはキューブのあるフェイスの
どこかが表示されることになるので、十分な視野角と適切なアスペクト比を設定すれば
「変な空間」にはならないのではないかと思うのですが…。
空間の色は上空部分と同じ色(上空にはポリゴンがないのでクリア色)になっています。
普通はカメラの位置が下がると、奥行き成分が大きくなり、前方のキューブマップフェイスが
表示されるのではないかとおもうのですが、上空用のフェイスが表示されているのでしょうか…?
反射の処理はやらずに、キューブマップを単純に空(スカイボックス)に貼り付けた場合には、 「変な空間」は出てこなくて全方向正常に見渡せるということでよろしいか?
>>756 返信が遅くなってすいません。
反射処理をやらない場合は正常にみれます。カリング対象でない面は全方向
正常に見渡すことができます。
上空にポリゴンがあり、全方向色が異なるモデルを配置して実験しましたが、
やはり同様の結果でした。
映りこんだ色は上空の色だったので、やはりぐるっと回って空が映りこんでいる
という事で間違いなさそうです。
個人的には何かの間違い、反射ベクトルの計算における角度処理の間違いなどで
選ばれるはずのない天井面用のフェイスが選択されてしまっている可能性も
あるかなと思うのですが、平面に対する反射ベクトルなのでその方向が平面を
超えることはないんではないかと思うのですが…。
ちなみに反射ベクトルはHLSLの関数reflectにビュー空間に変換した法線ベクトルと
ビュー空間に変換した後正規化した頂点座標(視点から頂点へ向かうベクトル)を与えることで
算出しています。
758 :
デフォルトの名無しさん :2007/02/17(土) 23:56:26
環境マップを作る為に、テクスチャにシーンを描画したいんだけど テクスチャのサーフェイスをレンダーターゲットとしてセットする際には デブスステンシルバッファもそれに合ったものをセットしなければなりません。 これの取り扱いについて、1案と2案どっちが良いとおもいますか? 1、必要になったら、その都度作成する。 ○ メモリの使用が効率的 × 作成コストが大きい場合、重くなる 2、テクスチャとペアでデブスステンシルバッファも作成しておく ○ 作成コストが大きい場合、その負荷が最小に × 使わないバッファを常に確保しておくのは、容量の無駄。またロスト管理が必要
ターゲットを変更するときに、以前のサイズが小さかった場合だけ、より大きいバッファを作成してセットし直す。 複数作る必要性は全くない。
760 :
デフォルトの名無しさん :2007/02/18(日) 02:12:20
>>759 デプスステンシルの縛りは大きさに加え
IDirect3D9::CheckDepthStencilMatchが通ることというのもあります。
フォーマットで左右されるということは、結果的に
1つのデプスステンシルバッファを使いまわす案は1案とほぼ同じになると思います。
つまり1案でGOということですか?
>>760 CheckDepthStencilMatchなんかは最初に1回やって適切な組み合わせを決めたうえで759でGO
762 :
デフォルトの名無しさん :2007/02/22(木) 21:02:55
2007feb age DX10正式対応SDKはこれが最初?
2006decから正式だったと思われ
764 :
デフォルトの名無しさん :2007/02/25(日) 15:17:29
ライトとマテリアルの色は デフューズ色とスペキュラ色と2つ分ける必要が あると思いますか? 必要が無いなら、まとめてしまうと処理がすっきりするのですが。
現実的な話で言うと、 マテリアルのほうは質感を大きく変えるためにほぼ必須。 ライト側は端折ってるゲームもあるらしい (演算子が1つ減るし、指摘の通り処理がスッキリする)
>>764 マテリアルのディフューズ色ってテクスチャの色じゃねぇの?
って思ったんだがそうでもないのか?
テクスチャのことディフューズマップっていうけど・・・
テクスチャの色はまた別だろ? まあでも、リアルタイムならテクスチャマッピングで代用するほうが見た目も綺麗になることは多いかなあ 結局のところ目的と対象次第だな
>>766 ディフューズテクスチャもあればスペキュラテクスチャもあるよ。
α値のみのテクスチャだったり、特定の色だけ反射させるRGBテクスチャだったり。
テクスチャ変換ツール作ってるんですけど(表示付き) R8G8B8フォーマットみたいのは CreateTextureで渡せるテクスチャフォーマットにはなりえないんですかね? Capsとかイチイチ調べて表示せなあかんのかな。 しかも表示不可なら適切なフォーマットに変更とか・・・めんどくせー
最近のDirectXでは24bitカラーはサポート対象外なんじゃないのかな。
771 :
デフォルトの名無しさん :2007/03/15(木) 18:48:57
えーマジ24bitカラー!? キモーイ 24bitカラーが許されるのは小学生までだよねー キャハハハハ って感じだ
R8G8B8フォーマットンのテクスチャ作るほうがめんどくせー・・・ つーかDDSヘッダ付けてFromInMermoy関数で読めよ。
っていうかツール上はX8R8G8B8で扱って R8G8B8に落とさなきゃなんない時にコンバートすりゃいいんじゃねえの そうすりゃCAPS云々は関係ないな
みなさんどうも。参考にします。 それぞれのフォーマット間の変換とかそれ自体は簡単なんだけど あるだけのフォーマット全部に対応するのが面倒すぎ。 この辺ってしょうがないのかな、やっぱり。
いやいやいや・・・自分で変換する必要ネェだろ・・・。 サーフェイス間転送でもフォーマット変換はサポートされているし、 読み込む時にD3DXCreateTexture系関数だって読み込み時に フォーマット変換してくれる。 意地でもLockして自分で変換したいって奇特な人なら知らんが・・・。
CheckDeviceFormatConversionでチェックして StretchRectで変換できるフォーマットならいいけど それが必ず成功するって保障はないじゃないですか。
もともとの話はテクスチャ生成時の話だろ。 ならD3DXCreateTexture系の関数を使えばいいし、 それなら失敗のしようがないだろ。
色変換関数は俺も持っているが 大体2000行ぐらいだな templateと__if_existsを使えば それなりに汎用的に作れるよ
テクスチャ変換ツール作るんだったら、速度最重視の意味が無いから 中間フォーマット⇔各フォーマットだけでいいじゃん。 まあ、ゲーム等の実用では限られた種類のテクスチャしか使われないから無駄だけどね。
3DだとDXT圧縮使うことも多いからさらに無意味だよな。
そろそろDirectX10の話題が挙がってもいい今日この頃ですが皆さん如何お過ごしでしょうか?
俺の脳でありきたりの常識とつまらない虚栄心が まだVistaを買うなと囁くうちは試すことができない
今のところはvistaに移行のコストに見合うだけの十分なメリットが感じられない。 乗り換えるのは早くて1〜2年後くらいかな。
ハード側もまだまだ揃ってないしなあ しばらくは静観するかね
自前のライブラリはDX9/DX10の量対応にしようと思ってるけど R600が出てからだな・・・ 問題は今のケースだと30cmのグラボがさせない事だが。
DX10の話題がこの板で出る時期にはみんなDX10.1で頭がいっぱいだよ
アキレスと亀かよ
動かせる環境がない(買えない 動かせるOSがない 日本語ドキュメントがない 今はとても無理
いや動かせるOSは普通にあるだろ・・・ ハードウェアも廉価の砲なら万程度だし。 日本語マニュアルは確かねねぇが使うだけならSDKのサンプルで足りるだろ。 まぁ10.1まで待ちなのは変わらんが。
だって今Vistaを買うと関口君がバカ呼ばわりするんだもん。
MSDN会員なら買わないでもDLできるじゃろ
vista上の開発より、エロ画像等の入手の利便性を重視したい
個人的には様子見で当分の間9と10はスレを分けてほしいかな。 10で実際に組んだことないから実際の所どのくらい違うのかわからないのだけど 固定機能廃止とかDirectSound廃止とか9と随分変わってるじゃん。 だから、9と10の話題が混雑するとこんがらがると思うんだ。
この過疎振りでは無理だろう
>>793 何を勘違いしてるのか知らんけど。
DirectX10というものは存在しない。
Direct3D10というものが存在する。
Direct3D以外のAPIはすべてDirectX9以下を使う、
あるいはWindowsAPIを使うことが前提。
次があるあるって言ってると何時まで立っても切り替えられんからな 俺はさっさとVistaに移ることにした 今回はサンプルとかデモ見てるだけでもかなり面白いね
>>793 固定機能なんてこの世にねーほうがいいだろ
今は固定機能の存在価値なんてないしなぁ。 固定機能でもHardwareTnLで動かせて シェーダー未対応の機種なんて数えるほどしかないし。 今のビデオカードは内部で固定機能もシェーダーでエミュレーションしてるだけで 専用回路なんて積んでないからますます固定機能はいらんな。
799 :
デフォルトの名無しさん :2007/03/21(水) 07:23:57
>>795 Dxdiagで、DirectX10とでる事実
DirectX 10テラワロスww
そんなことよりガンダム無双かって濃いよ。
質問失礼します。 Alt + Tab にてデバイスが正常に復帰しないバグに悩まされています。(フルスクリーンで開発しています) 調べた所、DXUT.cpp IDirect3DDevice9::Reset が失敗しているようです。(D3DERR_INVALIDCALL) Reset のパラメータに無効な値を設定している可能性はありません。 DirectX Error Lookup で確認した所、以下のような情報が得られました。 ---------------------------------------- HRESULT: 0x80040906 (2147748102) Name: Unknown Description: n/a Severity code: Failed Facility Code: FACILITY_ITF (4) Error Code: 0x0906 (2310) ---------------------------------------- なぜResetが失敗するのか、分かる方お願いします。 リモートデバッグ環境で開発 WindowsXP:メインマシン Windows2000:リモートマシン 開発ソフト:Visual C++ 2003 DX SDK Ver:DX9 Aplil 2005
805 :
804 :2007/04/02(月) 18:22:24
重要な情報を書き忘れました。 Direct3D9: (ERROR) :All user created stateblocks must be freed before Reset can succeed. Reset Fails. Direct3D9: (ERROR) :Reset failed and Reset/TestCooperativeLevel/Release are the only legal APIs to be called subsequently D3D9 Helper: IDirect3DDevice9::Reset failed: D3DERR_INVALIDCALL c:\hogehoge\dxut.cpp(3434): Reset hr=Unknown (0x80040906) 上記の情報がアウトプットに表示されます。 よろしくお願いします。
>>805 >All user created stateblocks must be freed before Reset can succeed.
少なくともこれは確認したか?
807 :
804 :2007/04/02(月) 18:56:13
>>806 はい。
D3DPOOL_DEFAULT の事だと認識しています。
DEFAULT と MANAGED 混在だったので、ほとんど全て MANAGED に変更しました。
レンダーターゲットテクスチャーは DEFAULT じゃないと駄目(?)っぽいので、そのままとしました。
よって、レンダーターゲットテクスチャーのみOnLostDevice時に解放し、OnResetDevice時に再作成しています。
>>807 全然違うよ、ステートブロックのことだろ
>>807 英語読めよwwwwwwwwwwwwwwwwwwwww
なあ、GeForce8800以外でDX10に対応したビデオカードってあるん?
811 :
804 :2007/04/02(月) 21:52:35
すいません。 知識不足でステートブロック自体知りませんでした。 出直してきます。。。
812 :
804 :2007/04/02(月) 22:15:00
お蔭様で解決しました。 ID3DXEffect を D3DPOOL_DEFAULT と同じように解放、再作成してやったら Reset が正常に機能しました。 ありがとうございました。
Vistaからは再作成の必要がないんだよなー あーVista専用にしてえ
>>812 ID3DXEffectはメソッドにOnLostDeviceとOnResetDeviceがあったと思うが・・・・
DirectX使ってる兄さんがたに質問。 DirectXで凹多角形のテセレーション(凹多角形を凸多角形分割する処理)ってどうやってるの? 「DirextX、 テセレーション, 凹包, trianglazation」とかのキーワードを組みあわせてでぐぐってもひっかからんし。 なんか楽に処理する方法を知ってるんじゃないかなあと。 いま自分は、OpenGLを使っていて、 OpenGL付属のテセレーション関数を使ってるんだけど、 これだとイマイチ遅い。 読み込むデータを事前に凸多角形のみにしておくのが一番いいんだけど、 読み込むデータは外部の人が作っていて、勝手にいじってしまうと、 データの更新で不都合がでるのでいじれない。 畑違いのところからの質問で申し訳ないけど、何かうまい方法があるならご教授ください 人('A`;)
まずはその外部の人間を調教するところからだろう。
すまぬ、外部の人間が国際規格のことなので調教できん('A`;) もともと3D前提でないデータを3D化するのがいかんのだろうけど・・・したい。
>>815 DirextXにそのような機能はありません。
自力で実装してください。
(゚д゚)君ら自分で実装してるのか!すげー!
まずそんな阿呆なデータを作るやつをハブるから実装なぞしない。
ふむふむ。データそのものに凹多角形が含まれてることが無いのだね。 色々ありがとう。兄さん方と、兄さん方の周りの人たちはえらいと思った。
凹多角形を凸多角形として出力できないモデラって現存するの?
たぶんモデラなんて使ってないと思われます。 3次元のジオメトリデータを、2次元に変換して使うことを前提としてた時代に作られた規格のデータだったりします。 でも、もともとが三次元のデータを、2次元に変換するのも不自然だし、 3次元データのままのほうがハードウェアに処理を任せられて、楽になるだろうとやってみたら、 凹多角形だらけで(゚д゚)ウボァー
そもそも3Dレンダラーで描画するなら多角形どころか三角形しか描画できないだろ。
>>823 Convexにするだけなら、とりあえず計算幾何学の本読んで2週間くらい勉強すると良いかも(学生じゃないんだよね?、学生なら3日徹夜で読んでくれ)
必要な事はそんなにページ数無いから大丈夫だとは思うが
とりあえず近代科学社のコンピュータ・ジオメトリ読んどけ
とりあえず、ピザハット呼んどけ
テンプラの宇治社中見れないんだけど どこかにログのこってないかなぁ
数年前に閉鎖されたサイトだからもう厳しいかもナ。
? 残ってるログがテンプレのリンク先だし 普通に見られるが 見られないページでもあった?
何も表示されないな。
IE6でそのまま開くと文字コードがUnicodeとして誤判定されるね。 シフトJISにすれば見れる。
833 :
デフォルトの名無しさん :2007/04/17(火) 00:28:01
,. --―…、 / /:. \ ./ /::::::::::. ヽ ‘ー--一'´ \:::::::. ', ヽ:::::. ! /⌒丶 ,. .-.''.´ . .',:::: |` 丶、 / !:::::..\/ . . . . . \.L__ l. . . \ | |――/. /、 . . . . . . .ヽ . ヽ . . . .ヽ | j /. ./ \.ヽ . . . . .'., . . . . . . .', | / |. . l \_. . . . ',. . . . . . ..| | / |:.._l ´\ . . . . !. . . . . . .| l / .|´.l _ ,r7jヽ,. .:.r ‐、 . . ...| |_,ノ |. .!イト、 弋:ソ!. ..| 〉 . .:.| |.小 ヾ' , , , |:!. |! イ. . . ..| |. |..ハ''' |リ!.|l . !. . . . | |. | |. ヽ、,-_ _ -' ''|.!ヽ.|:.. . . .| |. | |! . . ._ -' |l ヽ:.:. . .| |._| > '' |! ', . ...| __r‐'7 ̄!. !:. .:.| ,r=―フ/ | | _ ,, -- !:. .:.| /__/ | l l _. - ' /l. . .| _r''厂\ ! ! l '' / !i . ! // \ | !:人 / i i:リ ./| ヽ_ ヽ!个‐' / i i | .! \ __/l / / ∨\ / /_l / / . | \rへ _/ヽー ' ∨ /
834 :
デフォルトの名無しさん :2007/04/17(火) 11:41:52
4ぬ時は、人に迷惑かけないように4のう。 線路に飛び込みとか、惨殺とか…
FXでレバ200で大勝負すると良いよ
836 :
デフォルトの名無しさん :2007/04/18(水) 10:43:27
オプションで、1円CALL全力買いもいいかも
837 :
デフォルトの名無しさん :2007/04/30(月) 00:34:06
VSからDX9のCHMヘルプをF1で呼び出すにはどうすればよいでしょうか?
838 :
デフォルトの名無しさん :2007/04/30(月) 04:08:34
外部コマンド
>>839 HOGE.CMDに
C:\hogehoge\doc\hoge.chm
って書けば起動するよ
DOSプロンプトが開いてしまうな。。 .BATでもだめだった
.chm ファイルを開くのは hh.exe
hh.exeを実行するのはWindows
844 :
デフォルトの名無しさん :2007/05/01(火) 13:29:52
Windowsを実行するのは人間
人間を魅了してやまないのは
ナイスブルマ!
ナイスブルマが似合うのは
848 :
デフォルトの名無しさん :2007/05/01(火) 21:57:39
ありがとうございます。おかげさまでchmヘルプが起動できる設定になりました 以下に設定を書き記しておきます タイトル:DirectXヘルプ コマンド:hh.exe 引数:C:\Program Files\Microsoft DirectX 9.0 SDK (October 2004)\Documentation\DrectX9JP\Directx9_c_JPN.chm ところでこの方法では選択したテキストを検索することはできないのでしょうか? 引数の最後に$(CurText)を追加しましたがヘルプは起動するものの 「ページを表示できません」と表示されました
849 :
デフォルトの名無しさん :2007/05/12(土) 17:38:47
誰かDirectX 9.0のセットアップファイルください。雷でインストールし直したら、 ゲーム起動できないので、お願いしますorz
851 :
デフォルトの名無しさん :2007/05/13(日) 07:15:44
>>851 なんでDecember 2006?
と思ったら、そのページのタイトルだけ間違ってるのか
必要なランタイムがインストールされているか調べる方法ある? チェックしてエラーメッセージ出したいんだけど
DLLのDelayLoadを使うと、通常のスタティックリンクと全く同じように使えて 必要なDLLが存在しなくてもexeの実行ができるよ。 DLLの関数を初めて呼ぼうとしたときに自動的にロードされて、DLLが 存在しなければ例外が発生する。 例外をキャッチすれば、必要なDLLが無い場合の処理ができる。
>>854 その例外とはC++例外ですか?
んじゃなくてSEH?
>>856 おお、にゃるるさんの記事だ。
長いけどこれは読み応えあるね
さんくす
HLSLを使っているときにViewPortで指定した範囲を無視してテクスチャ全体に描画されてしまうのですがこれは仕様でしょうか?
おはようございます 愚痴です テクスチャステージの組み合わせパズルにハメられています 皆様方はもうPixelShader/HLSLに移行したのでしょうか お返事お待ちしております
人による
PixelShader使用/不使用の選択肢はつける。 ピクセルシェーダすらない旧機種は、どうせ古いノートPCで動かそうとしてんだから、画質なんか追求するだけ無駄。 ゲームが遊べればいいレベル。テクスチャは1枚で、通常と加算だけあれば十分。
>>859 >テクスチャステージの組み合わせパズルにハメられています
真面目にやるととんでもねぇぞこれ
とても製品として出せるもんじゃなくなる
テクスチャステージってそんな複雑だったっけ・・・?
そんな複雑になるほど多用するか? 2D描画で3枚も4枚も張ることは早々ないだろうし 3Dならシェーダーでやっちまうし。 シェーダーないならメインのテクスチャ1枚しか張らね。
おはようございます お返事ありがとうございます >2D描画で3枚も4枚も張ることは早々ないだろうし 3枚、マルチパス化不可というケースがございまして 満足に計算できるほどのCAPSがあるHWはPS2.0に対応しており 微妙な線のHWでどう頑張るか、どこまでやるかを大変悩むところであります
はいおはよう。
PS2.0対応してないハードってGeForce4とかの世代まで戻るんだぜ・・・ もう画質切り捨ててでいいだろ。
PS2はPS2.0まで対応、PS3はPS3.0対応、ていう解釈であっていますでしょうか?
WIIはどうすんだ
は?
PSはPS1.1対応ていう解釈であっていますでしょうか?
ここでのPSは マウスのPS/2規格のことじゃなくて プレイステーションの略でもなくて ピクセルシェーダの略なんだぜ 知ってた?
PostScriptだろ?
876 :
デフォルトの名無しさん :2007/05/30(水) 17:08:48
は?
ふ?
P ぷにぷに S すべすべ
P ピクシェル S セーダー
くだらない話になると勢い勇んで書き込み出す奴っていったい何なの?
PostScriptだと思う
__(゚∀゚) <テトラペイピッポォ /__  ̄ ̄ ̄\ | | | | ̄\ / (_) (__) (_)
そういやゲ製作技術板荒らしてた奴ってマジで 小学校に刃物もってって小学生何人か殺した奴なの? たしかにあの事件からぷっつり無くなったけど
884 :
デフォルトの名無しさん :2007/06/01(金) 00:07:09
やっぱり、マジだったんすか・・・orz こえーよ
荒らしが無くなった時期(2003年9月頃?)に、小学校乱入事件なんて 起きてないと思うが。
sonetのあいつなら今頃豚箱だぜw
モデルをリアルタイムでファイルからロードしたいと思ってます。 頂点バッファを入れ替えたいわけですが、 動的なプールだとシステムメモリ上に置かれるバッファになるわけですよね? なので、静的か管理下のプールにしようと考えています。 できれば静的なプールにしたいのですが、そのバッファが描画中でなければ ロックしてもストールすることはないという理解でいいんですよね? また、今のところは固定サイズのバッファを多数作って切り替えを考えてますが、 ロードの都度バッファを再作成する時のコストってどのくらいなんでしょう?
モデルごとに頂点バッファを作れよ
ロードするたびつくれってこと?
なんで実際にやってみてからチューニングしようと思わないんだろう?
すでにやってる人が教えてくれるかと思って。 だめ?
デジャブが…
894 :
888 :2007/06/10(日) 01:52:52
マルチになるけどべつのスレで質問しなおしてもいい? なんだかここにはそぐわない内容だったかもしれないので
DirectX系のスレならどこで聞いても同じだよ
巡回してる人が同じかんじ?
897 :
デフォルトの名無しさん :2007/06/10(日) 18:45:03
俺も全部巡回してるw
>>888 >ロードの都度バッファを再作成する時のコストってどのくらいなんでしょう?
体感したことないな
一番処理食うのはファイルのオープン>リード>クローズの部分だしな。 HDDだと気づきづらい部分ではあるが・・・。
>>899 HDDへのアクセスがメインループ中でおきると、
シークタイムで数ミリ秒から十ミリ秒ぐらい覚悟した方がいいしね。
ディスクアクセス怖いよ。
初心者は時間のかかる処理=CPUコストの高い処理、と思いがちだけど
実際にはI/O待ちなんかでCPUが暇しまくるタイプのボトルネックが結構ある。
コスト=CPUコストと思っているなら、やっぱり実測経験足りないんじゃないかな。
ろくにやったことがない奴が処理を想像すると、 ファイルアクセスをメインループで処理するような馬鹿な流れを考えるわけだな。 普通は思いつかないことだが、馬鹿とはそういうものなんだと参考になったよ。
基本的にサイズ不定のリプレイとかどうやって保存してる?
浮動小数の環境誤差を考えると面倒なのでリプレイはやめました。
シューティングとか格闘とかのリプレイってサイズ不定だろう
907 :
デフォルトの名無しさん :2007/06/10(日) 22:31:48
>>902 固定長+場合によっては可変のArrayList
デフォルトで、想定する時間だけのバッファを取っておく
>>901 仮想アドレッシングを一切使わない環境だとそこまで悩む必要はないけど
Windowsだとそうも言ってられないけどね。
メモリへの初回アクセスは基本的に何らかのページフォールトが起きると思った方がいい。
例えば10MBのEXEファイルが起動時に全部メモリに読み込まれてると思っているならそれ違う。
関数にしろスタティック変数にしろリソースにしろ
基本的には初回アクセス時にハードウェア例外が発生し
それをOSがトラップして初めてメモリにロードされる。
メインループからファイルアクセス系のAPIを排除するだけじゃあ不十分だよ。
909 :
908 :2007/06/10(日) 22:46:45
と書くと関数やスタティック変数ごとに初回アクセス時にファイルI/Oが起きると誤解されるか。 基本は4KB単位で読み込まれるので、近場に配置された関数や変数はまとめてオンメモリになる。 他にはOS先読みキャッシュで大抵もうちょっと多めに読み込んでいる。 でもこの仕組み知っていないと絶対に説明がつかない不思議なディスクアクセスがあるのも確かだよ。
910 :
デフォルトの名無しさん :2007/06/10(日) 23:45:19
神経質すぎる気もするが、ディスクアクセスくらいは神経質になってもいいよな。
昔、BM98(ビートマニアシミュレータ)が、キャッシュに入れるために、
曲開始前に、曲内全部のwaveファイルにアクセスするのを思い出したぜ・・・
>>908 昔、ディアブロIの体験版が、50MBくらいあって、妙にEXE読み込みが速いと思ってたのだが、
ようやくわかったw
>>908 データファイルを読み込む話から全然関係ないプログラム自体をロードする話に。
馬鹿をごまかすために話をうやむやにするのも大概にしろよ。
>>911 >データファイルを読み込む話から全然関係ないプログラム自体をロードする話に。
それ言い出したらバッファを再作成する時のコストの話から
なんでデータファイルを読み込む話になってるのってことで以下ループだと思うが。
そりゃあんた、最初がこうだぜ。なんでもクソもないだろう。 >モデルをリアルタイムでファイルからロードしたいと思ってます。
もしかしてモデルをストリーミングで読み込んで モーフィングとかやろうとしてるんだろうか?w だったら最大長の頂点バッファを2個ぐらい確保しておいて描画用、ロード用って 切り替えながらって感じか?w
話の流れを読まない、突然関係ないことを言い出す。 そして今度は勝手に用途を限定する。 駄目だこいつ。
人はなぜ殺しあうの?なぜ手を取り合って仲良く出来ないの?
917 :
デフォルトの名無しさん :2007/06/11(月) 02:40:31
>>913 FFでもリアルタイムロードがあるんだから別に変な質問でもない。
別スレッドでロードしとけば何も問題ない。
普通にやれば普通にできることじゃんな
919 :
888 :2007/06/12(火) 21:26:20
なんだかいつのまにかいろいろ言われてるようですが、参考になります。 やりたいのは、あれですよ、広域マップをロードする感じのやつ。 つってもいまは環境がなくてできないですが…(電源が死んだ)。 イメージとしては、頂点バッファをいくつもつくっておいて、それを 空いているものまたは使用頻度の低いものから奪い取ってロードして、 不要になっても空きがあるうちはキャッシュし、領域を使用していくって感じです。 で、ディスクアクセスはオーバーラップを使おうと思ってます。 一応win98も考えているので、スレッドのプールのやつ(名前失念)は 使わない方向でと考えています(ソケット通信もやりたんですが、スレッドの プールのやつ(名前失念)といっしょにした方がいいですかね)。 >ファイルアクセスをメインループで処理するような馬鹿な流れを考えるわけだな。 それから、このへん、ちょっとどういうことか素直に知りたいです。 ののしりながらでもいいんで、詳しく教えてくれないでしょうか。クソが。 まぁとりあえずやればいいのかもしんないですけど、 いろいろ細かい情報とか知りたいほうなんで、そういう情報ありがたいです。 あと、ファイルマッピングって、イメージとしてはReadFile()なんかより 遅そうなイメージがあるんですけど、どうなんでしょう?楽そうですが。 こんなこと書くとまたファイルアクセスと比べたらどうのとか怒られる? しかし、親切な人も多い反面、なんか人を見下しまくりのやつがいて ほんときにいらねえですね。すまんな、馬鹿で。
>>916 3等分にわけたはずのケーキだが、俺のだけ小さく見える
DirectXが鬱にしているからじゃない?
922 :
888 :2007/06/12(火) 21:48:10
あー、あと思いだしたんですが、 頂点バッファを作ったり破棄したりを繰り返すと なんかVRAMがどうしようもないことになりそうなんですけど、 そんなことはないんでしょうか? それもあって、最初に一定数つくっとこかと思ったですが…。
>>922 フラグメントの話ならリロケーションはドライバが勝手にやってくれるんでは。
というかそんなにフラグメントを気にしなきゃならなくなるほどの話なの?
馬鹿ほどどうでもいいことを考えて歩みを止める。 馬鹿の考え休むに似たり。
そのとおりだと思います。 言いたいのは、全体を作ってからボトルネックを解消しろよ、 とかそういうことだと思いますけど、人の好き好きだからいいじゃないですか。 プログラムはかなり好きだが、俺はプロになろうとかそういうんじゃないんで。 だいたい暴露するとDirectX自体かなりやれてないよ。時間さけなくて。クソ。 最適と勘違いしてネットワーククラスをメッセージ主体で製作したが、 オーバーラップのが速いといわれりゃ書き直したくなるし、 オンボードVGA用にSSEで座標変換書いて、どういうバッファを作って どういう風に書き込んだらはやくなるのかとか、結構試してしまうほうなんで。 そういうのすきなんですよ。 あとまじで結構あんた(ら?)は実力があるんじゃないかと信じているんで、 いろいろ教えてくれないだろうか。クソが。 あんたから見ればプールのことなんかいちいち考えるなよ、なのかもしれないが、 知っているなら知識を分けてくれ。どんなふうに書き換えたりしてんの? ファイルリードもどういう風にやると速いの? 馬鹿にしてもいいから(実際お笑いぐさ程度のスキルだろうし)、たのむ。 あと、普通に教えてくれてる人には感謝です。乱文でごめんなさい。
愛で何が出来るか、と問われれば、子供が出来ると答えるだろう。 それと同じくらい当たり前
どうも。 あたりまえってのは、何のことでしょうか?
>>925 すごろくで紫の?に止まると、たまにそういう雰囲気のことを言われて
パラメータが変化する。
930 :
デフォルトの名無しさん :2007/06/13(水) 21:04:30
分からないことを分かるようになるのが楽しくないと言う人間はいないもんでね、 勉強にしろなんにしろ・・・それに興味がないというのは、人間としてちょっと変だね
日記はチラシの裏にな。
確かに、DirectX系スレは
偉そうに罵倒するレスばかりつける奴が
目立つ。
しかも、情報的価値が0なのが痛い。
>>927 とか、お前さぁ何が言いたいの?
レス送信する前に、自粛しろよカス
しかしまぁ、子供のすることだし我慢しよう。
934 :
926 :2007/06/13(水) 21:56:13
>>日記はチラシの裏にな。
俺?それとも
>>931 さん?
935 :
926 :2007/06/13(水) 22:00:52
俺のせいで荒れたのかと思ったけど、
スレを見返してみるとたしかに
>>933 さんの言うような感じのレスが目立ちますね。
しかも初心者スレもこばかにしたような回答が多かったし。
なんで?
スルーできないなら2ちゃんにくるなよ 答えてくれる人も答えてくれなくなるぞ
雑音にレスつけるようなもんですよw
とりあえず自分で手を動かしてみて、それなりにプロファイリングしてみて、 ボトルネックを突き詰めてから「何故こうなるの?」みたいな質問なら話は早いんだけどね。 脳内コーディングからいきなり「俺様大丈夫スかね?」とお伺いたてるのは 荒れる典型的なパターンだと思うよ。質問者が自分語りをはじめると特に。 時間を無駄にしたくない気持ちはわかるけど、 自分で手を動かさない人間に冷たいのは開発系ならどこでも同じかと。
>>926 DirectX に詳しくない漏れがいちおうマジレスしておくと、
非同期 IO をやるのに overlapped IO を用いるかスレッド(プール)を用いるかは、
効率が必要なのかレスポンスが必要なのか、あるいはどちらも不要なのか、
その辺を考慮して決めるわけで、「これが最高の効率だからこれに決まり」とか
そういうもんじゃあないし、
各種バッファのロックも必要な範囲を一発でロック出来た方が良いか、
ちまちまロックして(ロックしようとしているスレッドがブロックしている間にも)
並行してロック済みのに書きこんでゆくべきか、
やりたいことによってどういう処理が最適なのかが変わってくるわけだし、
なんつーの、万能の最適解は無いというか・・・
「駐車場があって、車買うんです。一番良いタイヤは何ですか?」みたいな
質問はあまり真面目にとりあう気になれないってことです。
ある程度どんな場合にでもお勧めできるスタイルは(DualCoreも普及してるから)
「なるべく並列性を高めておく(もちろん実CPU数を大きく超えない程度で)」くらいかなぁ。
だからさー、スルーしろってw 雑音に返事をしていることに気付けって
初心者スレでも罵倒する奴がいっぱいいるよなぁ。 ゲーム好きの奴には厨が多いのか。
ゲーム好きっていうかDirectX好きじゃね
「15歳からはじめる DirectX9」なんて本がある位だからな
そんでは質問者は頂点バッファをVBOに変えて OpenGLスレへ突撃すれば幸せになれるのかしら
>>944 ネタだと思ったら、ほんとにあるのか…
すごい時代になったもんだな
その本ってDXライブラリ使ってるだけじゃなかったっけ?
948 :
888 :2007/06/14(木) 00:35:51
どうもありがとうございました。 とても参考になりました。 あとそんな、俺様とかそういうつもりではないんで、ゆるしてやってください。 結果的にレスを重ねていって、そういう感じになっていったかもしれませんが、 くだけて気軽に質問したかっただけなんで…。 それから、最後になんですけど なんでそんなに馬鹿にするんですかね? その気持ちに至った経緯とかちょっと興味あるんですけど、 教えてくれないですかね…。 恐らくは俺だけへの気持ちではなくて、質問者総合への気持ちだと踏んでるんですが…。
949 :
888 :2007/06/14(木) 00:39:50
>「駐車場があって、車買うんです。一番良いタイヤは何ですか?」みたいな >質問はあまり真面目にとりあう気になれないってことです。 ああ、あとひとつ、 深い知識があってこその発言と感じとれますが、 この辺に至れるまでにはどういうのを参考にすればいいんでしょうか、 もしも簡単に説明できたらでいいんで、お願いできますか? ますます漠然としてしまいましたが…。すいません。
経験
951 :
888 :2007/06/14(木) 00:47:58
ごもっとも 今までありがとうございました。 2ちゃんとはいえ開き直りすぎたので去ります。ごめんなさい。
953 :
デフォルトの名無しさん :2007/06/19(火) 14:00:00
Drawの描画が早いらしいのでDrawを使おうと思いDrawのヘルプを見ると至る所に Warning: This method(class) is deprecated. Deprecated components of DirectX 9.0 for Managed Code are considered obsolete. nanntokakanntokahogehogepoor ... とか書いてあるんですが、MSはDrawを使ったプログラムが動く事を 今現在保証しているんでしょうか。age :-)
sage
:-)
:-X-:
sageます><
>>953 それを保障するのはビデオカードメーカー。
最近のビデオカードがわざわざDirectDrawでの拡大縮小なんてサポートするとは思えないがな。
拡大縮小ならビデオ再生支援機能とか広告が踊った時代に、
GDIレベルでビデオカードがサポートしているが、
いったいどこの原始人だよ
>>958 は?
ハイレゾとかマルチメディアパソコンとか そういう時代だな
拡縮と回転と半透明だけならGDI+だな それらを同時にかけるとDirectXしかないけどw
GDI+で速度を期待しちゃいかんよ
963 :
デフォルトの名無しさん :2007/07/07(土) 21:09:12
ここDirectXスレ? DirectX10について質問したいんだが、答えてくれる人いる?
はいどうぞ
965 :
デフォルトの名無しさん :2007/07/07(土) 21:38:00
具体的に質問内容を書いておくと、D3DX10CreateEffectFromFile()でdx9用(sm3.0)のfxファイルをコンパイルする方法を知りたいのだが。 たとえば、 technique T0 { pass P0 { VertexShader = compile vs_3_0 VS(); PixelShader = compile ps_3_0 PS(); } } という内容のfxファイル(仮に"dx9.fx")を D3DX10CreateEffectFromFile("dx9.fx", NULL, NULL, "fx_4_0", D3D10_SHADER_ENABLE_BACKWARDS_COMPATIBILITY, 0, iDev, NULL, NULL, &piEffect, &piErrorTextBuffer, &hr); でコンパイルしようとすると、hr==S_OKなのだが、その後ID3D10Effect::GetDesc()でD3D10_EFFECT_DESCを取得すると、テクニック数(Techniques)が0で帰ってくる。 何かいい方法は無いか? 別にD3DX10CreateEffectFromFile()でなくても、DirectX10のインターフェイスでdx9用のシェーダをそのまま使用できればそれでいいのだが、何かいい方法を知っている人教えて。
DirectX10使ったことないから適当に言うけど、fxcとかでコンパイルしてみた? そのときにエラーメッセージとか何か出るかもしれんよ。 D3DXCreateEffect系でもエラーメッセージ取れることは取れるけど、めんどくさいんだよね
967 :
デフォルトの名無しさん :2007/07/08(日) 03:25:33
fxcは使って無いなー。 D3DX10CreateEffectFromFile()から帰ってくるメッセージは、MipFilterはDX10では非推奨だから使わないでくれ、とかいうぐらいだった。 fxc使うと何か違うのかな。
いちいちプログラム実行しなくてもコンパイルエラーかどうかは分かるだろ
969 :
デフォルトの名無しさん :2007/07/08(日) 03:41:15
コンパイルエラーだったらS_OKは帰ってこないだろう。
970 :
デフォルトの名無しさん :2007/07/08(日) 03:43:18
実際、さっきfxcでコンパイルしてみたけど、ちゃんとコンパイルは通って、オブジェクトファイルも作成されたぞ。
971 :
デフォルトの名無しさん :2007/07/08(日) 03:49:48
ちなみに、まったく同じ警告メッセージも表示された。 つーか、たぶんD3DX10CreateEffectFromFile()は、内部でfxcを呼んでいるか、同等の処理をしているだけだと思うのだが。
>>969 その場でDOS窓にエラーメッセージが出るのがいいんだろう。
CreateEffectFromFile()でエラーメッセージ取るのはめんどい。
973 :
デフォルトの名無しさん :2007/07/08(日) 04:22:34
ぶっちゃけ手順はどうでもいいんだ。 俺は単に、別途fxcするのが面倒くさいからこうしているだけだ。好みは人それぞれだ。 問題は、どうしたらちゃんと動作させられるか、ただそれだけなんだ。
>>973 fxcでのコンパイルは別のプロジェクトにつっこんでmakeファイル使うと楽だぞ
実行時にシェーダだけリコンパイルしてエラーも表示できるようにしておけば動かしながら微調整ができて便利
微調整て、定数パラメータじゃなくて? ソース書き換えるのは調整というのだろうか…
でもシェーダって何を定数として渡すか?ってところまで汎用性ないから 結局ソース書き換えることになると思うんだけどね 今のところコンパイルなしで動かせることにメリットはないかな?俺は。
デバッグメニューの品質によるんじゃないの? 少なくともマテリアルとかライティングの色調整みたいなものは 実行時に変えられるようにはなってるけど。
979 :
デフォルトの名無しさん :2007/07/08(日) 19:45:45
結局どうすれば、DX10でDX9用シェーダを使えるようになるんだ?
980 :
デフォルトの名無しさん :2007/07/08(日) 20:33:43
DX本って最近売れてるのかね
982 :
デフォルトの名無しさん :
2007/07/08(日) 23:39:27 >>981 ありがとう。
色々検索したけど、ここにはたどり着けなかったわ。
英語あまり得意じゃないけど(勉強中だけどスラスラ読めるレベルではない)、早い話がDX9用のシェーダをそのまま流用するのはむずかしい、ということでOK?
方法が無いなら無いで、あきらめはつくし。
違っていたら突っ込みよろしく。