DirectX総合スレ (Part5)
レス数が1000を超えています。これ以上書き込みはできません。
0001名前は開発中のものです。
2006/09/08(金) 23:56:42ID:0F5D1JWX他の言語使ってる奴はいますぐ消えろ
0918名前は開発中のものです。
2006/11/08(水) 00:04:21ID:PzBEheVj一応自分でぐぐってみたんだけど見つかりません。
0919名前は開発中のものです。
2006/11/08(水) 00:14:05ID:pix4d+V7みんなの心の中にありますヽ(´ー`)ノ
けんか腰の人はプログラムできない中坊とみなします。
0920名前は開発中のものです。
2006/11/08(水) 00:15:41ID:Ez0+ULCi教えて君氏ねよ
0921名前は開発中のものです。
2006/11/08(水) 00:29:44ID:lruYnhtq別アプリのフックの話だよ。
俺はDirectInputはやったことないが、D3Dのフックはいつもやってる。
っていうか、乱数のシードが云々言ってる人は、ゲームの実行中に
いつでも記録/再生ができるような万能リプレイを想像してるんじゃない?
起動する段階から入力を全て記録しておいて再生できるようにするってのは、
俺は自分のプログラムにはデバッグ用に組み込むことが多いよ。
記録/再生モードでは乱数のシード固定、fpsも固定してる。
乱数はタイトル画面の入力待ちのときに回してる。
0922名前は開発中のものです。
2006/11/08(水) 00:57:06ID:Cl3R/oTnデバイスの入力データは
IDirectInputDevice8::GetDeviceData又は
IDirectInputDevice8::GetDeviceStateから
得られる配列だろ。
フック云々やろうが、横取りするのは無理じゃね?
あ、イベント使用オンリー?
0923名前は開発中のものです。
2006/11/08(水) 01:06:22ID:CiKq08vx内部がマルチスレッドで動いていて
複数のスレッドが乱数生成機を共有して使っていたら(←これ自体どうかと思うが)
どうにもならないって話
0924名前は開発中のものです。
2006/11/08(水) 01:14:10ID:lruYnhtqAPIだろうがCOMだろうが、好きな関数にフックを仕込めるよ。
やり方は自分で勉強してくれ。OSが標準で用意してるわけじゃないから。
>>923
乱数を共有していなくても、ファイル読み込み等を別スレッドでやっていて
メインスレッドが待っている間に画面の更新をしていたりするだけで
厳しいと思う。
0925名前は開発中のものです。
2006/11/08(水) 01:42:30ID:Cl3R/oTnラッパーか、なるほど忘れてた
0926名前は開発中のものです。
2006/11/08(水) 01:54:34ID:4HOV88nB一回で済むため高速になる。
っていう理解でOKですか?
0927名前は開発中のものです。
2006/11/08(水) 02:06:40ID:Cl3R/oTnそれはドライバ以下実装依存だと思う。
その最適化を行う為には、VertexShader後頂点データを
どっかに保存しとかなきゃならない。
実際のチップは毎度毎度計算の方が速いから、そんなことしないよってパターンじゃないかな?
ってことでIndexBufferのメリットは、重複頂点が無くなってVertexBufferのサイズが減ってウマーの方か
0928名前は開発中のものです。
2006/11/08(水) 05:15:49ID:4HOV88nB0929名前は開発中のものです。
2006/11/08(水) 10:27:55ID:paxGIPEB>GPUはVertexShader後の頂点データを保存しなきゃならない
それが頂点キャッシュだろ。いくらGPUがパイプライン化しやすいからって、
ボーンやら照明計算を含んだ複雑な処理を、キャッシュから拾ってくるより
毎回計算する方が速いってこたぁない。
0930名前は開発中のものです。
2006/11/08(水) 11:20:58ID:Ez0+ULCi滅茶苦茶を断言で書くなよw
0931名前は開発中のものです。
2006/11/08(水) 12:28:30ID:lruYnhtq頂点の順番を並べ替えないと、ほとんど恩恵ないよ。
GeForce6で24頂点のFIFOだね。たぶん7も一緒。
0932名前は開発中のものです。
2006/11/08(水) 14:46:09ID:jIjbRi6u0933名前は開発中のものです。
2006/11/08(水) 22:06:45ID:RvQZC3kp実際Zバッファやバックバッファは毎フレーム破棄するように作れるし。
0934名前は開発中のものです。
2006/11/09(木) 06:28:09ID:dA8KH0sb何回もLock/Unlcokするのはいかにも遅そうな気がするんですけども。
0935名前は開発中のものです。
2006/11/09(木) 06:37:42ID:EoL+7LTgDrawPrimitiveを呼んで描画を開始させた方が速いと思う。
もちろんLockで処理がブロックしないように、NOOVERWRITEや
DISCARDを適切に使って。
0936名前は開発中のものです。
2006/11/09(木) 16:17:05ID:pnXhdXXRこんなところで質問してねーで実測しろよ。
0937名前は開発中のものです。
2006/11/09(木) 17:55:45ID:X56FVTntあるモデラからDirectX用に独自形式でデータ(モデルとスキンアニメーション)をエクスポートしているのですが、
そのモデラのZ軸は手前側がプラスなので、奥がプラスになるDirectXで表示すると変になってしまいました。
正常に表示するには、どうすれば良いのでしょう?
0938名前は開発中のものです。
2006/11/09(木) 19:00:04ID:lRUVCD7xアニメーションまで含んでるなら変換はそれなりに面倒。
長くなりすぎるのでキーワードだけ置いとく。[右手 左手 擬ベクトル]
0939名前は開発中のものです。
2006/11/09(木) 20:16:11ID:MOSFB80B0940名前は開発中のものです。
2006/11/10(金) 01:06:39ID:BfaFVTZm0941名前は開発中のものです。
2006/11/10(金) 20:06:55ID:hiaIqhZLポリゴンごとに一枚ずつ用意するのとどっちが良いんでしょうか?
0942名前は開発中のものです。
2006/11/10(金) 20:13:56ID:VWQOMstKだがDirectXで重いからやるなハゲといわれている事を
考えるなら答えは分かっているはずだ。
0943名前は開発中のものです。
2006/11/12(日) 07:25:35ID:dfs286Zp0944名前は開発中のものです。
2006/11/12(日) 08:01:52ID:pffADuxKサンプルを手コピーして動いたのを「DirectXが使えた」と言うならね。
0945名前は開発中のものです。
2006/11/12(日) 08:33:25ID:dfs286Zp0946名前は開発中のものです。
2006/11/12(日) 08:52:14ID:5TS195Vt0947名前は開発中のものです。
2006/11/12(日) 09:40:04ID:dfs286Zp0948名前は開発中のものです。
2006/11/12(日) 09:40:55ID:dfs286Zp0949名前は開発中のものです。
2006/11/12(日) 09:48:34ID:p2LxhttU0950名前は開発中のものです。
2006/11/12(日) 18:14:36ID:SJJfaFn1それぞれの処理を表面的かつ自分なりに解釈し、
然るべきタイミングに処理が行われるように再配置し、
足りない処理を色々と付け加えて、
完成したゲームを某所にコッソリ登録したりしているが、
とてもじゃないが恥ずかしくてDirectXを理解しているなんて言えない…
で、サンプルなりチュートリアル見てわからない事があったら書籍買うといいよ。
書籍のほうが判りやすいとは限らないが、
同じ事でも違う方向から見ると、簡単に理解できる事もたまには在る。
0951名前は開発中のものです。
2006/11/12(日) 19:11:41ID:CQikaQFF本買え
時間を買ってると思えば安い
0952名前は開発中のものです。
2006/11/12(日) 22:42:19ID:6dWQ+52Sそーだよなー俺も最近は悩まないですぐ買う事にしてる。
んで理解できたら速攻ヤフオクとかで売ってる。
古い本とか人気の無い本以外は、定価の5割以上は戻ってくるのでいい感じ。
0953名前は開発中のものです。
2006/11/15(水) 02:00:13ID:vxzOfYC6200個ぐらい転送するごとにDrawIndexedPrimitive呼んでいるんですが、
NOOVERWRITEでロックしてもしなくても速度ほとんど代わりませんでした。
これってどこかでやりかた間違ってるってことでしょうか?
それともNOOVERWRITE使っても大して速くならないんですかね?
0954名前は開発中のものです。
2006/11/15(水) 09:11:02ID:3I9mMgDpまぁGPUの負荷を正確に調べるのは無理ってMSも言ってるが。
0955名前は開発中のものです。
2006/11/15(水) 21:38:08ID:DxvRaGSOピクセルシェーダーのtexreg2arとtexreg2gbにおいて、
参照テクスチャのサイズが 2^n 以外の場合に正常に作動してくれません。
具体的には常に黒が返ってきてしまいます。
また、リファレンスラスタライザで実行した場合には、どのようなサイズでも正常に
作動しております。
このことから、おそらく私の使用しているハード(radeon 9000pro)特有の制限ではないかと
疑っていますが、実際のところ、どうなのでしょうか?
OS: Windows XP SP1
DX: DirectX 9.0c
GPU: RADEON 9000PRO
0956名前は開発中のものです。
2006/11/15(水) 21:52:08ID:3I9mMgDpテクスチャのサイズが 2^n 以外を使うことの方がありえないんだが。
そもそも 2^n 以外のサイズをサポートしてるハードウェアの方がレア。
自分で3Dエンジン組めばわかるが 2^n ってのは非常に効率いいのよ。
どうしてもっていうならまずはCAPS調べてサポートしてるかちゃんと調べようぜ。
0957名前は開発中のものです。
2006/11/15(水) 22:08:28ID:DxvRaGSOそれは texreg2gb、texreg2ar に限った話でしょうか?
私の知る限り、よほど古いカードで無い限り、
テクスチャの 2^n 制限は無くなったものと思いますが。
それとCAPSを調べても、texreg2gb、texreg2arが 2^n 以外のサイズを
サポートしているかどうかまでは判からないものと思えます。
ちなみに私が確認した限り、 texreg2gb、texreg2ar 以外の命令では
2^n 制限は認められませんでした。
0958名前は開発中のものです。
2006/11/15(水) 22:57:25ID:3I9mMgDp愛用のRadeon X1900XT は 2^n 制限 がある。
個人的には 2^n 以外のテクスチャを使うという選択肢がありえないが・・・
そもそも 2^n 以外のサイズのテクスチャが必要になる事ってないだろう。
あとD3DX系の関数でテクスチャを読んでるなら、
2^n 以外をサポートしてない時は、内部で 2^n のテクスチャ作って返してくるぞ。
つまりテクスチャの端の方をサンプリングすると何もないので真っ黒。
リファレンスラスタライザで動いてるなら9割プログラムのミスだと思うが。
リファレンスならサイズの制限はない、つまりいかなる場合でも1.0をサンプリングすると一番端になる。
制限がある場合D3DXがでかいテクスチャの左上に展開してテクスチャをよこしてくるので、
1.0をサンプリングすると何もないrgba(0,0,0,0)が帰ってくる、ってところじゃないのかね。
0959名前は開発中のものです。
2006/11/15(水) 23:13:28ID:YpYvtoj0そのソフトが完全に決まった環境でしか実行されないんだったらいいんじゃね。
俺は2^nしか使わないけど。しかも小心者なので256x256制限でやってる。
0960名前は開発中のものです。
2006/11/15(水) 23:22:21ID:DxvRaGSOそれは texreg2gb、texreg2ar に限った話でしょうか?
私の使用しているRADEON 9000PROでは、2^n以外のテクスチャを作成することも出来ますし、
ポリゴンに貼り付けることも出来ますし、レンダリングターゲットに指定してレンダリングする
こともできます。
>そもそも 2^n 以外のサイズのテクスチャが必要になる事ってないだろう。
例としては、フレームバッファがあげられるかと思います。
texreg2ar、texreg2gb命令は、引数の色をテクスチャ座標としてテクスチャをサンプリングする
命令です。私はこの命令を使って色の再マッピングを行おうと考えておりました。
ところが、この命令は色値0〜255を座標値0.0〜1.0へと正規化してしまいます。
その結果、色値255は座標1.0、つまり、テクスチャ範囲外になってしまい、思うように
再マッピング出来ません。
この問題を解決するには、色値255を使わないようにして、
さらにテクスチャサイズを254x254にするしか方法が無いように思えます。
他にもっと良い方法はあるでしょうか。
0961名前は開発中のものです。
2006/11/15(水) 23:29:37ID:DxvRaGSOここに置いてあるサンプルプログラムは、texreg2arがサイズ128x128のテクスチャを参照しています。
これは2^nではありませんので、私の環境(RADEON 9000PRO)では期待される結果が得られません。
皆さんの環境ではどうでしょうか。
GPUの名前と合わせて、結果を教えていただけませんでしょうか?
0962960
2006/11/15(水) 23:31:19ID:DxvRaGSOさらにテクスチャサイズを254x254にするしか方法が無いように思えます。
↓
さらにテクスチャサイズを255x255にするしか方法が無いように思えます。
0963名前は開発中のものです。
2006/11/15(水) 23:39:15ID:DxvRaGSOあれ、じゃぁなんで私の環境で動かないのだろう・・・
>>961は忘れてください、ごめんなさい。
0964名前は開発中のものです。
2006/11/16(木) 00:09:26ID:j2RP45RN> 私の使用しているRADEON 9000PROでは、2^n以外のテクスチャを作成することも出来ますし、
作成できてると思ってるそのテクスチャの、実サイズを取得してみて。
本当に意図したサイズになってるか確認してみないと
>>958 の言ってること無視できないでしょ?
俺はビンゴだと思ってるけどね。
テクスチャ任意サイズは対応してないって考えた方がいいよ。
もちろん、texreg2gb、texreg2arに限った話じゃないよ。(同じ質問ウゼーよw
0965名前は開発中のものです。
2006/11/16(木) 00:13:48ID:j2RP45RN2のべき乗じゃないテクスチャは駄目です。
0966名前は開発中のものです。
2006/11/16(木) 00:24:19ID:SEFYYBum>愛用のRadeon X1900XT は 2^n 制限 がある。
宣言もなにもそもそも作成に制限がある。
D3DX系でCreateすると内部で勝手ででかいサイズのテクスチャ返してくるっていってるだろ。
640x480でCreateすると1024x512のテクスチャが返ってくるのが普通なのだが、
ちゃんと作成されたテクスチャのサイズやフォーマット見て確認してるのか?
フレームバッファはでかいテクスチャにClipしてレンダリング、
あるいはでかいテクスチャにそのままレンダリングして、縮小してFSAAっぽくしてる。
ところによっては別のサーフェイスにレンダリングしてから、エフェクト時だけテクスチャにCopyRectして使ってる。
あとUVマッピングの意味を理解しような。
テクスチャサイズを255とかいってる意味はわかるが、あまりにも意味不明。
0967名前は開発中のものです。
2006/11/16(木) 00:30:01ID:gbtniTxU0968名前は開発中のものです。
2006/11/16(木) 00:43:23ID:bg7PnqAAをしていようがDirectXの上から叩くことしか出来ない私には関係の無いことですから。
問題としているのはテクスチャアドレッシングまわりの話で、実サイズはどうでも良い話になります。
例えば、255x255のサイズのテクスチャを作ったとしましょう。
ここで、ドライバの最適化により実際には256x256のサイズのテクスチャが
作成されていたとしても、それはプログラマには関係の無い話といえます。
ただ、255x255と256x256のテクスチャでは、内部表現は同じだったとしても、
テクスチャアドレッシングのされ方は変わります。
なので255x255と256x256のテクスチャを使い分けることには意味があると考えます。
0969名前は開発中のものです。
2006/11/16(木) 00:49:19ID:j2RP45RN0970名前は開発中のものです。
2006/11/16(木) 00:51:19ID:j2RP45RNここで質問していながら、なぜ他人のアドバイスを聞き入れない?
0971名前は開発中のものです。
2006/11/16(木) 00:54:53ID:xa3CEDbM>968
>ここで、ドライバの最適化により実際には256x256のサイズのテクスチャが
>作成されていたとしても、それはプログラマには関係の無い話といえます。
>>955
>ピクセルシェーダーのtexreg2arとtexreg2gbにおいて、
>参照テクスチャのサイズが 2^n 以外の場合に正常に作動してくれません。
むちゃくちゃ関係有るし。
0972名前は開発中のものです。
2006/11/16(木) 00:56:21ID:bg7PnqAAtexreg2gb、texreg2ar を使用すると、正しい値を返してこない、
というのが正確な私の質問になると思われます。
紛らわしい表現をしてごめんなさい。
あと、D3DX系のCreateは使っておりません。
IDirect3DDevice9::CreateTextureを使って作成しております。
それと、見た目上のテクスチャの大きさが 2^n 以外でも
texreg2gb、texreg2ar が正常に動くビデオカードを誰か知りませんか?
0973名前は開発中のものです。
2006/11/16(木) 00:58:52ID:N/Cya+Sz素直にpow2サイズのみ使っておけ
以上
0974名前は開発中のものです。
2006/11/16(木) 01:04:04ID:j2RP45RN>>958 の人が親切に答えてるだろ!!
> つまりテクスチャの端の方をサンプリングすると何もないので真っ黒。
2^nしか対応してない環境で、2^n以外のテクスチャを作った場合に
内部でどうなるかを理解してないから、不具合だと思い込んでるだけなんだよ。
もちろん、texreg2gb、texreg2arに限った話じゃねーぞ!!!!
0975名前は開発中のものです。
2006/11/16(木) 01:07:16ID:bg7PnqAA2^nサイズのテクスチャを使いたいのは山々なのですが、>>960に書いたとおり、
texreg2ar、texreg2gbに欠陥的仕様が御座いまして、どうしても255x255サイズのテクスチャ
を使用せざるを得ません。しかしなぜかtexreg2ar、texreg2gbで255x255サイズのテクスチャを
使用すると、正しい値を返してくれません。他のtex命令などの処理は255x255のサイズでも問題なく
行えます。
注)ここで言う255x255は見た目上のサイズのこと。
>>971
見た目上のサイズを255x255に指定したいだけなので、ビデオカード内での
内部表現は問題としません。なぜならテクスチャアドレッシングは見た目上のサイズにのみ左右されるからです。
0976名前は開発中のものです。
2006/11/16(木) 01:14:33ID:j2RP45RN> ところが、この命令は色値0〜255を座標値0.0〜1.0へと正規化してしまいます。
> その結果、色値255は座標1.0、つまり、テクスチャ範囲外になってしまい、思うように
> 再マッピング出来ません。
テクスチャ座標は1.0で範囲外にならんよ。
255x255にしなくちゃいけない理由が分からない。
あと、「見た目上のサイズ」が分からない。
プログラムで処理する以上、内部のことは理解してないと駄目。
2^n以外のテクスチャを作成した(つもり)時に、実際にどれだけの
サイズのテクスチャが出来てるのか理解しないと、テクスチャ座標を
正確に指定できない。
0977名前は開発中のものです。
2006/11/16(木) 01:15:40ID:bg7PnqAAD3DX系のテクスチャ関数は一切使用しておりません。
使用しているのはIDirect3DDevice9::CreateTextureのみです。
IDirect3DDevice9::CreateTextureは勝手に内部でテクスチャサイズを調節
したりしません。
ドライバはテクスチャの内部表現を適切なサイズに調節するかもしれませんが、
それはDirectXを通してアクセスしている限りプログラマには関係の無い話となります。
> つまりテクスチャの端の方をサンプリングすると何もないので真っ黒。
どこにアクセスしても常に黒が返ってきます。
0978名前は開発中のものです。
2006/11/16(木) 01:17:25ID:LRTBYOXP>その結果、色値255は座標1.0、つまり、テクスチャ範囲外になってしまい、思うように
>再マッピング出来ません。
256x256サイズの画像はX座標(0〜255) Y座標(0〜255)だからそれでいいんじゃねーの?
0979名前は開発中のものです。
2006/11/16(木) 01:19:01ID:j2RP45RNいいから、黙って実際に作ったテクスチャの本当のサイズを調べろ。
>どこにアクセスしても常に黒が返ってきます。
テクスチャ自体が正しく設定されてるのか、新しい疑問が浮上するだけだが。
texreg2ar、texreg2gbつかわなくて直値で試してみた?
0980名前は開発中のものです。
2006/11/16(木) 01:23:06ID:j2RP45RND3DSURFACE_DESC desc;
texture->GetLevelDesc(0, &desc);
float width = (float)desc.Width;
float height = (float)desc.Height;
0981名前は開発中のものです。
2006/11/16(木) 01:24:21ID:1aVg1Jra0982名前は開発中のものです。
2006/11/16(木) 01:31:20ID:j2RP45RN書き込みが1000に近づいてきたし、もう寝るんで結果でたら
あとは自力でがんばれ。>>ID:bg7PnqAA
0983名前は開発中のものです。
2006/11/16(木) 01:35:22ID:bg7PnqAA>255x255にしなくちゃいけない理由が分からない。
DirectXのマニュアルによりますと、テクスチャ座標は以下の式で決定されます。
以下マニュアルより抜粋
T_x=(u*M_x)-0.5
T_y=(v*M_y)-0.5
テクスチャ座標の下限と上限の 0.0 と 1.0 をこれらの公式に代入すると、
テクスチャ座標 0.0 は反復テクスチャ マップの最初と最後のテクセル間の
中間点にマッピングされる。テクスチャ座標 1.0 は、現在の補間テクスチャ
マップの最後のテクセルと次の補間テクスチャ マップ間の中間点にマッピングされる。
〜ここまで抜粋
これをニヤーポイントでフィルタリングしますと、テクスチャ座標の切り上げが発生し、
結果、0.0は最初の座標を、1.0は一番外のテクセルの一つ向こうを指すことになります。
>あと、「見た目上のサイズ」が分からない。
見た目上のサイズとは、DirectXを通して見えるテクスチャのサイズのことです。
テクスチャアドレッシングはこの値のみに左右されます。
ドライバーが実際にテクスチャ割り当てたメモリサイズをプログラマが気にする必要はありません。
0984名前は開発中のものです。
2006/11/16(木) 01:39:06ID:1aVg1Jraこれがおまえの言うところのプログラマが気にすべき「DirectXを通して見えるテクスチャのサイズ」なんだから。
0985名前は開発中のものです。
2006/11/16(木) 01:40:32ID:SEFYYBum>使用しているのはIDirect3DDevice9::CreateTextureのみです。
>どこにアクセスしても常に黒が返ってきます。
あのさぁ・・・せめてCreateTextureの返り値くらい調べたら?
0986名前は開発中のものです。
2006/11/16(木) 01:52:42ID:bg7PnqAA調べました。255x255のテクスチャを作成したところ、
Width=255
Height=255
となりました。ドライバレベルでは256x256サイズのテクスチャが確保されていることでしょうが、
DirectXはそれを吸収してくれています。
このテクスチャのテクスチャサイズは 255x255、ドライバレベルでの(プログラマには関係の無い)
テクスチャブロックのサイズは(おそらく) 256x256 ということでFAでしょう。
つまり、DirectXではいかなるサイズのテクスチャの作成も可能だということになります。
そしてこのテクスチャをポリゴンに貼り付ける(tex命令)ことも出来れば、
レンダリングターゲットにしてレンダリングできることもできることを確認しました。
なのに、texreg2ar texreg2gb だけはうまくいきません。
>>985
調べました。そのテクスチャをポリゴンに貼り付けて表示してみたりもしました。
正常に表示されました。
0987名前は開発中のものです。
2006/11/16(木) 01:54:28ID:6gwZldY7D3DPTEXTURECAPS_POW2がYesでも
D3DPTEXTURECAPS_NONPOW2CONDITIONALもYesなら
2のn乗以外のテクスチャは使えるよ。(色々と制限はあるが)
そして、これに対応してないビデオカードなんて相当古いのしかない。
ようするに、いまどき2のn乗以外のテクスチャが使えないハードウェアの方がレア。
0988名前は開発中のものです。
2006/11/16(木) 01:59:06ID:1aVg1Jraそれならドライバレベルでも255×255が確保されている。
> ドライバレベルでは256x256サイズのテクスチャが確保されていることでしょうが、
> DirectXはそれを吸収してくれています。
> このテクスチャのテクスチャサイズは 255x255、ドライバレベルでの(プログラマには関係の無い)
> テクスチャブロックのサイズは(おそらく) 256x256 ということでFAでしょう。
根拠のない勝手な理屈を付けて自分を納得させるのはやめようぜ。
0989名前は開発中のものです。
2006/11/16(木) 02:03:37ID:SEFYYBumつまり、ディメンジョンが 2 の累乗でないテクスチャは、シェーダ内で計算されるテクスチャ座標を使ってアドレス指定したりサンプリングしたりすることはできません。
このタイプの処理は従属読み込みと呼ばれ、これらのタイプのテクスチャに対しては実行できません。
まぁ紆余曲折下が・・・リファレンス読もうぜ。
0990名前は開発中のものです。
2006/11/16(木) 02:05:00ID:bg7PnqAA>(色々と制限はあるが)
その制限にtexreg2ar texreg2gb が引っかかっているということですよね。
texreg2ar texreg2gb が 2^n サイズ制限に引っかからないカードって有りますかね。
有るのでしたら今すぐにでも買い換えたいのですが。
でもどうやって探せばよいのだろう。メーカーに電話するしかないのかしら。
0991名前は開発中のものです。
2006/11/16(木) 02:08:10ID:SEFYYBum0992名前は開発中のものです。
2006/11/16(木) 02:09:43ID:1aVg1Jrahttp://www.netsphere.jp/dxinfo/
ここで D3DPTEXTURECAPS_POW2 と D3DPTEXTURECAPS_NONPOW2CONDITIONAL
が両方とも Yes になっていないビデオカードを探しな。
NVIDIA の GeForce 6000 シリーズ以降ならたぶん大丈夫。
0993名前は開発中のものです。
2006/11/16(木) 02:09:55ID:bg7PnqAAいやだって、2^nサイズしかテクスチャ作れないって言い張る人が多かったから
そうなのかなと。
>>SEFYYBum
あー貴方は神様です。心から感謝します。なるほど、そういう制限があったのか。
長らくお付き合いいただいた皆様、本当にどうもありがとう御座いました。
こうなると、今度はtexreg2arとtexreg2gbの欠陥仕様をどうしたものか・・・
頭が痛い・・・
0994名前は開発中のものです。
2006/11/16(木) 02:21:33ID:SEFYYBum2^n以外のテクスチャサイズのほうが一般的じゃないは理解してるんだろうか。
0995名前は開発中のものです。
2006/11/16(木) 02:31:46ID:SEFYYBum0996名前は開発中のものです。
2006/11/16(木) 02:33:50ID:bg7PnqAA私は 2^n サイズしか使えないことを欠陥だと主張しているのではありません。
>>960 の前半と >>983を読んでみてください。
texreg2ar と texreg2gb は 色の再マップに使われるとマニュアルに
も書いてあります。
しかしこれは実際にはうまくいきません。これはあきらかに欠陥仕様だと思います。
0997名前は開発中のものです。
2006/11/16(木) 02:36:43ID:SEFYYBum都合のいいところしか読めないのかよw
0998名前は開発中のものです。
2006/11/16(木) 02:43:59ID:bg7PnqAAただ、texreg2ar と texreg2gb は 色値255において、テクスチャ座標1.0(テクスチャ範囲外)
を叩きにいきます。これは好ましい仕様だとは思えません。
色の再マップを行ううえで回避不能な問題を発生します。
(もともと色の再マップを行うためだけに作られた命令であるにもかかわらず)
色値255を他の色再マップすることが原理的に不可能です。
0999名前は開発中のものです。
2006/11/16(木) 02:59:11ID:gbtniTxU1000名前は開発中のものです。
2006/11/16(木) 03:04:04ID:bg7PnqAA私は無理でした。
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。