トップページgamedev
1001コメント372KB

DirectX総合スレ (Part5)

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2006/09/08(金) 23:56:42ID:0F5D1JWX
言語はC++
他の言語使ってる奴はいますぐ消えろ
0472名前は開発中のものです。2006/09/27(水) 23:56:47ID:0+9eDEBa
アセンブラつってもVS1.1程度のものはマニュアル見ながらでも
簡単に読める程度にしか命令数がそもそもないだろ。

これがPS2のVUとかなら死ねるが。
0473名前は開発中のものです。2006/09/28(木) 01:09:42ID:Qut+4z4R
>>472
ここはサンプルも見れないような初心者が集うところです。
少しは理解してあげてください。マニュアルなんか見ません。

いや、それは嫌味だとしても 初心者にはHLSLだって怪しいのに
VSアセンブラは無理でしょ。変にそそのかさないでください。
0474名前は開発中のものです。2006/09/28(木) 01:40:40ID:EmxvHeW0
まぁVS1.1のアセンブラ使うくらいなら固定機能でやってろってこったな。
0475名前は開発中のものです。2006/09/28(木) 02:20:44ID:43BrdYyb
e:\デスクトップ\dx9animation\cd3dxobject.cpp(6): fatal error C1083: include ファイルを開けません。'DXUtil.h': No such file or directory
とか言われるんだけど、DXUtil.hって昔のヘッダか何か?
0476名前は開発中のものです。2006/09/28(木) 02:26:06ID:pbZl2D+n
もしかしたらサンプルのcommonフォルダに入ってるような奴かも…

そもそも何をビルドしようとしたの?そこらのWebに落ちてるサンプル?
0477名前は開発中のものです。2006/09/28(木) 02:38:12ID:43BrdYyb
かなり前にWebで拾ったサンプル。Commonの中にはDXUT.hが・・・
0478名前は開発中のものです。2006/09/28(木) 02:50:11ID:43BrdYyb
http://www.koders.com/c/fidE7D854F142664FD8BDB2EFCE54A42D2106EB47CA.aspx
こいつだったわ
0479名前は開発中のものです。2006/09/28(木) 04:13:38ID:Ks4kfiVt
マルチポストは止めろ
0480名前は開発中のものです。2006/09/28(木) 12:31:29ID:r3bgliNM
マルチポストを嫌う奴ってパソ通時代のオヤジだけだよな。
複数箇所の回答から一番有用なものを吟味するなんて今や当たり前なのに。
頭が堅くなって時代についていけなくなったんだろうね。
0481名前は開発中のものです。2006/09/28(木) 12:59:07ID:E+G8+8X8
うんにゃ違う。
マルチポストするやつは、どこか一カ所にしか返事をかないとか
返事も結果も書かないやつが多いから。

マルチポストであっても、その故を明記していれば俺は許す。
0482名前は開発中のものです。2006/09/28(木) 13:09:22ID:YQu14luC
バカにレスを与えないでください
0483名前は開発中のものです。2006/09/28(木) 18:42:47ID:nERzszfM
回答する側が人間だという想像が頭から抜け落ちている・・・。
確かにマルチポスト推奨はイマドキと言えるかも知れないw
0484名前は開発中のものです。2006/09/28(木) 19:03:49ID:7exZtWv4
情報処理能力の低い老害がなんか申しております
0485名前は開発中のものです。2006/09/28(木) 20:08:12ID:4xoDGQZb
マルチポストじゃなくて、セカンドオピニオンですよ!

しかし、2ch内でマルチポストしても、似たようなスレは
見てる人も同じだから意味ないよな。
0486名前は開発中のものです。2006/09/28(木) 20:21:31ID:oMbAyOJr
マルチポストによって、回答者にマイナス評価を受けるリスクを想像できないただの馬鹿。
結局は答えてもらえない確率を高くするだけ。
0487名前は開発中のものです。2006/09/28(木) 20:31:19ID:7exZtWv4
マニアは回答することでカタルシスを得るからそれはないね
0488名前は開発中のものです。2006/09/28(木) 22:39:14ID:Nlv1qsey
俺はマルチを見かけたら絶対教えない。
0489名前は開発中のものです。2006/09/28(木) 22:44:09ID:MNRQMggg
俺も別にマルチポストいいと思うけどね。
昔はみるところ決まってた(BBX、BIO100、2ちゃん)から貼る必要が無かっただけで
今は俺、2ちゃんしかみてないからここはここの意見でいいんじゃない?

結局さ、難しい・マイナーな問題って本にも載らないし
載ってたとしてもわからない奴にはその情報がどこに載ってるかわからないし、
技術の伝承は掲示板でしかできないしで色んなところでログ残していくのが一番だと思うよ。

よくでる質問だからっていって話題にしないとしないままどこ探しても見つけられなくなっちゃうじゃん。
0490名前は開発中のものです。2006/09/28(木) 22:48:56ID:baBONFMD
こういう話でスレが伸びている時点で、反感をくらっているということ。
嫌がられてもやるというのなら、好きにすればいいだろう。
0491名前は開発中のものです。2006/09/28(木) 23:33:48ID:Dk3RCCMg
デスクトップ右下に出るポップアップとかスキンが使えるメッセンジャーとか、
半透明ウィンドウがあるとプログラムがスローダウンしちゃうんだけどなんかうまい方法ない?
0492名前は開発中のものです。2006/09/28(木) 23:37:43ID:cM5JOSMP
>>491
マシン買い替え
0493名前は開発中のものです。2006/09/28(木) 23:41:24ID:anfWJ5Tf
刷り込みだよね。よくよく考えると「回答してくれた人に失礼になる」理由がわからん。
「もう一方で回答が出たなら、こっちで答えなくてもいいよな?」って拗ねてんのか?

まぁ今更言ったところで、マルチポストを許さない土壌ができあがってしまっているんだけど。
ちなみに俺はマルチポストしたことないしするつもりもないよ。いろんなところで口をすっぱくして「マルチポストはいけません」って言われてたから。

自分もレスしておいてなんだけど、ゲームプログラマってこういう煽りで流され話が脱線しやすいよね。議論好きだからですか?
0494名前は開発中のものです。2006/09/28(木) 23:58:14ID:Dk3RCCMg
>>492
パワーは全然有り余ってる。60fps出てるのが3fpsとかになっちゃう。
DXUT使ってるサンプルは平気なんでソースを見てるんだが、ちょっと挫折気味。
そういえば大航海オンラインも同じ症状出てたかも。
0495名前は開発中のものです。2006/09/29(金) 00:00:35ID:oMbAyOJr
VistaでAeroを使えば解決。
0496名前は開発中のものです。2006/09/29(金) 00:01:58ID:N5SjyFNE
メッセージ処理を別スレッドにするとか?
0497名前は開発中のものです。2006/09/29(金) 00:06:19ID:ueQhqgX3
>パワーは全然有り余ってる。
スペック書かずにこう書く奴に限って(ry
0498名前は開発中のものです。2006/09/29(金) 00:10:47ID:paU00bjA
>パワーは全然有り余ってる。
たぶん電源ユニットが500W以上。
0499名前は開発中のものです。2006/09/29(金) 00:15:11ID:+I5I2Dah
違うな、494はまだ10倍界王拳を残しているのさ
0500名前は開発中のものです。2006/09/29(金) 00:19:34ID:3ckC2oiR
CPUはAthlon64 3000+ ビデオカードはラデオンのX800 XL。
やってるのは800x600の画面クリアとfps表示の文字列数個のみだよ。
ちなみに、500Wの電源は持ってないし界王拳も使えない。

>496
なんで別スレッドにするんだ?
0501名前は開発中のものです。2006/09/29(金) 00:24:29ID:gYSr6WhV
だからAeroを使えば解決すると言っているだろう。
0502名前は開発中のものです。2006/09/29(金) 00:27:16ID:N5SjyFNE
タスクバーのポップアップでやたら処理が重くなるのは
昔からの定番みたいなもんなんだよ。

DXUTのサンプルがそうならないってほうが意外だった。
0503名前は開発中のものです。2006/09/29(金) 00:30:27ID:3ckC2oiR
原因はマルチサンプルだった。マルチサンプルをONにするとサンプルでも遅くなる。
バッファのフォーマットのせいでコピーが発生してるような気がするけど、正直わからん。

>501
すまん、一応配布予定なのでAero限定は無理だ。
0504名前は開発中のものです。2006/09/29(金) 22:25:53ID:N5SjyFNE
ところでN氏のライブラリはどうなったんだろうか
0505名前は開発中のものです。2006/09/29(金) 22:55:00ID:+W9NI1Pp
もういいって。
0506名前は開発中のものです。2006/09/29(金) 23:00:27ID:bQHZkLAr
DirectXの中で一番好きな関数はなに?
0507名前は開発中のものです。2006/09/29(金) 23:22:29ID:+I2r6/3e
CreateTeapot
0508名前は開発中のものです。2006/09/30(土) 00:19:21ID:DBE05lgj
喉が渇いた時に便利だよね。
0509名前は開発中のものです。2006/09/30(土) 00:34:44ID:sEeiZqED
CreateSakuratan
0510名前は開発中のものです。2006/09/30(土) 06:08:14ID:5xvehRtz
mikoto2xで吐いたXファイルを、シェーダーを介してボーン変形出来るようになったんすが、
どうもMikotoでの変形結果と同じにならない

調べたらMikotoのボーン変形は、関節部を潰さないようにかなり特殊な計算をしているみたいっすね
これってどうやってるのかな。シェーダーじゃ無理っすかね
0511名前は開発中のものです。2006/09/30(土) 08:48:50ID:QdcbVNXK
D3DXの高レベルAPIを使っているのなら、それをやめれば解決。
クオータニオンの補間がおかしいし、その他問題が沢山あるので使い物にならない。
05125102006/09/30(土) 10:27:47ID:5xvehRtz
>>511
レスどうもっす
申し訳ないっすが、姿勢行列の補間は関係なさそうっす。シェーダーなんで頂点補間の部分は当然自前です

スキニングなんて誰がやっても同じ計算(ボーンごとに変形した頂点座標を、ウェイト値に基づいて再調整)に
なるわけっすが、どうやら他の算出方法もあるらしい。それをお尋ねしたい次第っす

それとも、あまり有名じゃないんすかね。検索しても全く出てこないっすし・・・
Mikotoオリジナルっぽい気がしてきましたわ。一体どうやってるんすかね
0513名前は開発中のものです。2006/09/30(土) 11:13:00ID:f6Ng8zSY
定番の方法は所詮線形補間だからな。
ちゃんとやるならそれなりに面倒なコトになるだろうけど、
線形補間でもちゃんと見えるようにデータを作るほうがいいと思う。
0514名前は開発中のものです。2006/09/30(土) 12:41:48ID:LWd9FNUh
手作業になるけど関節の間にわざと緩んだ骨を仕込むってのがあったなー。
このへんはCG屋さんに聞いてみるのも良いんじゃない?
0515名前は開発中のものです。2006/09/30(土) 12:58:03ID:ZLzDkOO3
>>510
間接部の回転角度の補間はクォータニオンで扱って初めてやれる処理なんで
行列の方(つまりxファイル形式)に落とし込んじゃうともう事実上不可能だと思う
実際にはミクロマンのひざ間接みたいな二つの骨の間を埋める小さい骨を何個かつくってる
…はず
0516名前は開発中のものです。2006/09/30(土) 17:01:55ID:1o8uqwbg
>>512
以前、mikotoの掲示板で「bdefアンカーによる影響ってどういう計算式?」
っていう質問があって、それに対してゆーり氏が
『秘密です。
 っていうのは嘘ですが、
 詳しく説明するのもアレなので、ヒントを。
 2個以上のアンカーに影響される頂点に対して、
 その頂点と互いのアンカーの面との距離で影響力を決定しています。
 アンカーの面は最低でも6つありますが、
 どの面との距離をとればいいかは想像つきますね?』
って答えてた。
結局、正確な計算式は不明。
0517名前は開発中のものです。2006/09/30(土) 17:21:25ID:ZLzDkOO3
>>516
すごくいいことを聞いた
横からd
05185102006/09/30(土) 18:15:01ID:5xvehRtz
>>513-514
線形補間を詰めた方がイイって事っすね。ゲームですし、線形補間の方が速そうっすしね
ただあの綺麗な曲げは捨てがたく・・・

>>516
引用感謝っす。補間方法では無さそうっすが、ウェイトを決める方法っすね

>>515
なるほど、検索結果と合わせて何となく分かってきたっす
ボーンの回転中心を、頂点が結果的に円を動くような位置へと補間していけばいいんすね

おかげでなんとか出来そうです。皆さんレスありがとうございました
0519名前は開発中のものです。2006/09/30(土) 19:34:59ID:3Lp8oI6E
>518
確かにMatrixの線形補間の方がはやいけど、Quaternionで補間しても
誤差程度しか差は出ないよ。
肘、ひざ、肩とか必要な箇所だけ頂点の補間法変えればよし。
0520名前は開発中のものです。2006/09/30(土) 21:05:20ID:f6Ng8zSY
>>519
シェーダーでやるってことを考えるなら色々と最適化を考えても場所ごとに分岐はやめたほうがいい気がする。
ツール系は全部CPUで計算しちまっても問題ないがリアルタイムなゲームだと色々面倒だぞ。
0521名前は開発中のものです。2006/09/30(土) 21:44:59ID:3Lp8oI6E
>やめたほうがいい気がする。
「やってダメだった」じゃなくて「気がする」って事は
試してないって事でOK?
0522名前は開発中のものです。2006/10/01(日) 01:15:18ID:ogT2TFR+
シェーダーの方で球面線形補間を頂点ごとにやってやろうと思ったけど
クォータニオンをマトリクスへ落とすだけでほとんど命令数を使い切っちゃう感じで駄目ですた
なにか最適化する方法があるのかもしれないんだけど頭が悪いのでわかりません

そんなわけなんで骨と骨の間にそれらを半々の割合で球面線形補間した骨をあらかじめ
用意しておいて使うことにしたんだけど、そうすると今度はシェーダーへ渡すマトリクスの
数が2倍近く増えるんでレジスタ数の限界を考えてモデルの方で使えるの骨の数に
かなりきわどい制限がでてきてしまう始末
0523名前は開発中のものです。2006/10/01(日) 01:24:03ID:oVrgML5A
大抵はシェーダで2パスの処理するわけだし
2度も線形補間のコードをシェーダで通すくらいなら
CPUでやったほうがよくね?

ぶっちゃけ簡単だし
0524名前は開発中のものです。2006/10/01(日) 01:49:58ID:ogT2TFR+
確かに何回もDrawPrimitiveしなきゃならんとなると変形をすましちゃったものを
最初から用意しておいたほうが速くなる場合もあるね
そういうどーしょもない話がDirectX10だと解消されてくるわけだ
0525名前は開発中のものです。2006/10/01(日) 01:52:50ID:oVrgML5A
え、そーなの?それは知らんかった。
シャドウバッファとかやるときはどうすんだ?
0526名前は開発中のものです。2006/10/01(日) 03:27:09ID:JJz6bZ2w
ここはゲーム製作板なのに、レベル高いなぁ。
0527名前は開発中のものです。2006/10/01(日) 12:46:08ID:dPbmkgF9
シャドウバッファとかは素直に書くしかない。
CPUとGPUを比べた場合現状はGPUの特に頂点シェーダーは
よほどのことがない限り遊んでるから頂点シェーダー側で命令が増えるのは
そんなにペナルティにならないことが多い。

一般的にゲームを作っていて処理がきつくなるのはCPU負荷とピクセルシェーダー部分。
とくにDrawPrimitiveはGPUコマンド発行するだけだがこれがべらぼうにCPU負荷食う。
ここはDirectX10で緩和されると言われてるね。

>>522
確かにボーンが増えてそれを全部定数レジスタに入れようとすると結構厳しくなるね。
とくにVS1.1だとボーンなんて10本くらいがいいとこだから現実的じゃないね。

最低でもVS2.0くらいのレジスタ数は欲しいねぇ。

できればVS3.0にしてボーンのマトリックスをfp16/fp32のテクスチャにいれて、
頂点シェーダー内でボーンのマトリックスをテクスチャからサンプリングするという方法もある。
これなら3テクセルに1ボーン入るからかなりの量のボーンが使える、ハズ。

0528名前は開発中のものです。2006/10/01(日) 12:54:03ID:iXDGlJTF
モデリング時に頂点辺りの最大数を設定して最適化するしかない。
0529名前は開発中のものです。2006/10/01(日) 12:57:10ID:PqisUcBy
すいませんちょっと聞きたいことあります。
すでにDirectXで作ったゲームがあるんですが、
これをネトゲにしようかと思ってます。

そこで気になったことが1つあります。
うっかりウィンドウキーを押してしまうと最小化されてしまい、
その間にやられて死んでしまう可能性です。
人間同士の駆け引きを楽しむネトゲにしたいんで、
こういった部分は全て排除していきたいんです。

一応ウィンドウキーを無視するようにはできたんですが、
これはマナー違反みたいな意見もあるかと思いまして、
ちょっと迷っているところです。

つまり、
A.ウィンドウキーを無効にしてゲームの快適さを優先
B.うっかりウィンドウキーを押して死んでしまってもWINのマナーを優先
どちらにすべきか・・・ということです。
個人的にはA.と思うんですが・・・。

よろしくおねがいします。
0530名前は開発中のものです。2006/10/01(日) 13:02:43ID:iXDGlJTF
余計なことはして欲しくない。
世に言うところの、小さな親切大きなお世話。
どうしてもやるんだったら、後から設定するオプション扱い。
0531名前は開発中のものです。2006/10/01(日) 13:05:39ID:PqisUcBy
>>530
なるほどオプションですか。
これならばウィンドウキーの有効・無効が自由にできますね。
そうするとデフォは普通にウィンドウキーが有効になっていて、
ネトゲに熱中しちゃう人はオプションで無効にできるから、
うっかり押しちゃって死ぬなんてことはない・・・と。

とてもいいアドバイスありがとうございました。
0532名前は開発中のものです。2006/10/01(日) 13:09:47ID:dPbmkgF9
・Windowsキーをブロックするのは確かにルール違反。
 だがやっているゲームも存在する。
 そもそもの問題としてキーフックはWindows2000以降でなければできない。

・ALT+TABをブロックするのはかなり嫌われるコトになるけどそっちをどうするのか?

・ALTキーを押したときに動作が停止しないか?

・タイトルバーをクリックしてウィンドウを移動させるときにゲームが停止しないか?

動作に関して気になるならこの辺も全部確認しとき。
ちなみに個人的にはWindowsキーやALT+TABは自己責任で
デバイスロスト状態からの復帰をきちんとサポートってのが好み。
普通はWindowsキーってそうそう押さないし。
0533名前は開発中のものです。2006/10/01(日) 13:15:22ID:bcMO92DK
>>527
頑張れば2テクセルでいけるな。
姿勢だけなら自由度6だから、6つのパラメータ有れば十分。
VSからテクスチャ参照するコストと、VS内で行列を生成するコストを
天秤にかけることになるが。

>>529
キーフックとかで無効にしてるのならやめよう。
DISCL_NOWINKEYでググるべし。
0534名前は開発中のものです。2006/10/01(日) 13:18:22ID:dPbmkgF9
>>533
姿勢で持つにしても別途移動と親からのオフセットは必要にならない?
0535名前は開発中のものです。2006/10/01(日) 13:19:36ID:PqisUcBy
>>532
>・ALT+TABをブロックするのはかなり嫌われるコトになるけどそっちをどうするのか?
これにつきましては何もしないつもりです。
ウィンドウキーは1つ押しただけでスタートメニューが出てしまうので、
こういった操作ミスによるキャラ死亡だけは避けたかったんです。
ALT+TABは2つ押すんで操作ミスはありえないと思ってます。

>・ALTキーを押したときに動作が停止しないか?
>・タイトルバーをクリックしてウィンドウを移動させるときにゲームが停止しないか?
これについては後で考えますが、
現在はフルスクリーンのみで動くようになってます。

>>533
現在はキーフックでやってますが、
これはいいのを教えてもらいました。 →DISCL_NOWINKEY
早速取り込んでみたいと思います。

ありがとうございました。
0536名前は開発中のものです。2006/10/01(日) 17:20:55ID:ogT2TFR+
>>523
DirectX10だと頂点シェーダー通った頂点をまたビデオメモリへ書き戻せるんだってさ
だから結構重たい変形処理を頂点シェーダーにやらせても次のパスではその結果を再利用できる

てか俺vs1.1で動かないといやなのにDirectX10とか何いってるんだろうね
0537名前は開発中のものです。2006/10/01(日) 17:26:08ID:iXDGlJTF
ビデオカード側が対応していないと、全部CPUでやることになるけどね。
0538名前は開発中のものです。2006/10/01(日) 17:36:19ID:dPbmkgF9
>>536
vs1.1を前提にするならそもそもレジスタが全く足りないので
ボーン処理は不可能と考えたほうがいい。

全部CPUでやるか固定機能でやるのが定番だな。

VS1.1ってGeForce3あたりだっけ?GeForce4も含まれるのかな。
どっちにしろそんな今となっては屑みたいなビデオカードをサポートすることで
クオリティを落とすというのはどうかと思うが趣味でやる分には別にいいのか。

GeForce3とかをHALでサポートするっていう前提の場合、
CPUも世代を合わせるとPen3の1000Hzあたりがターゲットってコトだよな。

日本は2D信仰が病的な程あるが、その強い影響で低スペックマシンを
前提として考える傾向が抜けないよなぁ・・・

低スペックマシンはオプションでギリギリ動くんじゃない?程度にしといて、
標準機能をは現行スペックにあわせて作ればいいのに。
0539名前は開発中のものです。2006/10/01(日) 17:37:00ID:dPbmkgF9
1000Hzじゃなくて1000MHzネ・・・
0540名前は開発中のものです。2006/10/01(日) 17:41:36ID:y/oaRnBb
>>538
↓で説教してきてください。

エロゲメーカーはいい加減低スペックPCを切り捨てろ
http://pie.bbspink.com/test/read.cgi/erog/1114845529/
0541名前は開発中のものです。2006/10/01(日) 17:54:14ID:7roD0klY
趣味でやる分には切り捨てても良い、の間違いじゃね

>>515
行列に落としても出来るっしょ
逆にXファイルにクォータニオンで持たせることも(標準テンプレ範囲で)可能
0542名前は開発中のものです。2006/10/01(日) 18:02:29ID:dPbmkgF9
いや業務でやる分にはとりあえず現行スペックにあわせて作ったうえで、
最終的には低スペックのマシンでも「表示がされなかったり動かなかったりはしない」
っていうレベルにしとけばいいわけだし。
切り捨てるっていうか基準を上にシフトさせるってコト。

そもそもvs1.1で作ったってGeForce2じゃHardwareTnLで動かんのだし。
MatroxG400じゃvsなくてもHardwareTnLで動かんわけだし、
作るときはこの辺でも全部「表示はされてゲームは動く」レベルには合わせるだろ。

まぁゲームのソースはビデオカードのサポート具合に合わせて
大量に機能毎の分岐やらシェーダー切り替えが出てくるケドナー。
0543名前は開発中のものです。2006/10/01(日) 18:03:29ID:iXDGlJTF
>>538
足りないというのは、一頂点辺りいくつのボーンを前提にして足りないといってるんだ?
固定で出来る数なら1.1で十分に対応できるんだが、いったい何の話をしているんだ?
0544名前は開発中のものです。2006/10/01(日) 19:17:28ID:dPbmkgF9
>>543
それはボーン数というかウェイト数だろう。
1回のDrawPrimitiveに使えるボーンの数が少なすぎるという話。

定数レジスタが96しかないんだからすべてをボーンに使ったって32本しか使えない。
だが実際には透視変換・ライティング・フォグ・テクスチャアニメーションなどの頂点処理で
レジスタを使わないといけないのだから1回のDrawPrimitiveで使えるボーンはせいぜい20本がいいトコだろ。

vsで凝ったことをするほど1回のDrawで使えるボーンの数が減っていくんだよ。
逆に凝ったことをやらないなら固定機能で十分なわけだ。
0545名前は開発中のものです。2006/10/01(日) 19:29:57ID:iXDGlJTF
それはGeforce系でMaxVertexBlendMatrixIndexの数を確認した上での発言か?
0546名前は開発中のものです。2006/10/01(日) 19:37:58ID:6J1M+7ut
Vistaが出るからこれからのメーカ製PCのグラフィック機能も底上げされる

といいな
0547名前は開発中のものです。2006/10/01(日) 19:55:43ID:LpXzSsQ4
底上げされても結局OSにパワー食われてしまうのでは?
と不安です。
0548名前は開発中のものです。2006/10/01(日) 20:06:55ID:4Fg07nio
どうせAeroは切れるし底上げしなきゃ喰われて死ぬしw
0549名前は開発中のものです。2006/10/01(日) 20:13:34ID:dPbmkgF9
>>545
とりあえずGeForce6600

固定機能ライト数 : 8
ブレンドマトリックス数 : 4 ← MaxVertexBlendMatrices
ブレンドマトリックスインデックス数 : 0 ← MaxVertexBlendMatrixIndex

頂点シェーダー定数数 : 256
頂点シェーダーバージョン : 3.0
ピクセルシェーダーバージョン : 3.0
動的フロー制御命令のネスティング : 24
静的フロー制御命令のネスティング : 4

DirectX9世代のビデオカードでは固定機能はもうサポートされてないね。
メーカーの言うとおり全部シェーダーでやれっていうことなのだろう。
DirectX8世代はサポートしてるらしいけどねぇ。

そういうメーカーやAPI側の問題も踏まえたうえでDirectX8=vs1.1は使い物にならんと言ってわけだが。
ちょっと言い方に問題あったな。
固定機能は除外してくれ。

VS2.0ベースで作って対応してなきゃD3DCREATE_MIXED_VERTEXPROCESSINGと
SetSoftwareVertexProcessing()で分岐って感じがいいと思うけどが一般的じゃないのかねぇ。
0550WindowsVista2006/10/01(日) 20:14:59ID:QL6n0Hv/
Radeon X以下の性能のベデオカード搭載機なんてPCである資格はありませんですぅ><
0551名前は開発中のものです。2006/10/01(日) 20:41:42ID:ogT2TFR+
くだらない煽りあいはもういいよ

>>541
>行列に落としても出来るっしょ
どうやるか教えてください!
0552名前は開発中のものです。2006/10/01(日) 21:10:25ID:9AU5rKoE
モデル読み込めてシェーダーも知識不要でテクスチャ読み込ませるだけで作成できて
プレビューもできるようなソフトない?
0553名前は開発中のものです。2006/10/01(日) 21:29:58ID:oVrgML5A
>>536
あー、なるほど。そういう仕組みなのか。
最近新しいことについていけねーよ・・・悪い傾向だなぁ
0554名前は開発中のものです。2006/10/01(日) 22:32:09ID:IrowYbpc
5000円もしないFX5200w@2z4i4b@ewXPよりかるいのに
底上げとかないだろ
0555名前は開発中のものです。2006/10/01(日) 22:56:16ID:lU6LhM6k
高いイメージがあるグラボも中古で探せば意外と安かったりする。

後はまぁ、規格が合うか調べる能力とか
コンピュータの蓋を外して中を弄ることについての多少の努力とか
0556名前は開発中のものです。2006/10/02(月) 00:53:03ID:OdW/jKpG
>>552
Unreal Editor
半分マジレス
0557名前は開発中のものです。2006/10/02(月) 01:31:38ID:kV9hqfDm
>>556
今出回ってるUE2はシェーダー関係一切使えない
マトモにUE3使ってエディタ外さないタイトルはUT2k7
すなわち来年

FarCryのエディタで代用できそうだけどメンドイ
誰か作れ
0558名前は開発中のものです。2006/10/02(月) 02:38:01ID:7H4MMFEr
サンプルのShadowMapをいじってまして、これはデフォルトではスポットライトみたいな
効果が出るのですが、無限遠光源の表現に改造しようとしています
とりあえずg_mShadowProj(光源から見た場合の射影行列)を正射影で作るようにしてみた
のですが、細かいシマシマが出るようになってしまいました。
何となくShadowMap.fx内のsourcevalsをいじっているあたりが怪しいと思っているのですが、
よくわかりません。
一応シャドウマップの原理は理解したつもりなんですが、ここは何だか難しい事をやってるようで。。。
どう直したら良いのか教えて下さい。
0559名前は開発中のものです。2006/10/02(月) 08:59:30ID:OdW/jKpG
>>557
をいをい…「シェーダー関係」ってHDRとか法線マップ使えないと
「一切使えない」ってことになるのか?
UEDのマテリアルエディタ触った事ある?
描画パスの勉強するには必要充分なシェーディング機能だぞ。
0560名前は開発中のものです。2006/10/02(月) 09:14:15ID:aFY/cqAR
>>558
簡単にいうと、遠近射影と正射影とでは誤差の乗り方が違うのよ。
とりあえず SHADOW_EPSILON を 100倍にしときなさい。
0561名前は開発中のものです。2006/10/02(月) 10:11:45ID:CTih6+Zy
正射影でシャドウマップを作る場合は、wで割らない方がいいのですか?
0562名前は開発中のものです。2006/10/02(月) 10:36:11ID:aFY/cqAR
>>561
正射影の場合 w は常に1だから、深度値は常に線形になる。
遠近射影の場合は、wで割ると深度値が非線形になる。(一応線形で求めることもできる。)
非線形だと、遠くの方ほど深度の変化が緩やかになるから、
そのサンプルだとたまたま、極少のバイアスでもうまくいってるんだと思う。
一方で線形は、深度値を頂点シェーダの方で求めても正しく補完されるメリットがあるみたい。
とりあえず正射影なら線形一択ね。
0563名前は開発中のものです。2006/10/02(月) 10:55:48ID:CTih6+Zy
>>562
thx!
だけどホントはwで割る理屈が勘でしかわかってないから、線形と非線形について調べます。m(_ _)m
0564名前は開発中のものです。2006/10/02(月) 11:20:01ID:IdJRfXBf
>>560
ありがとうございます!
もっと大きな値(0.01とか)で上手く行きました。
このサンプルではライティングをピクセルシェーダーでやってるのですが、これは何か意味があるんでしょうか?
仕組み上こうするしかないんですか?
0565名前は開発中のものです。2006/10/02(月) 12:52:14ID:aFY/cqAR
>>564 スポットライトの内外判定を正確にするためね。
0566名前は開発中のものです。2006/10/02(月) 13:07:48ID:IdJRfXBf
>>565
なるほど。。。
ありがとうございました。すっきりしました。
0567名前は開発中のものです。2006/10/02(月) 21:44:16ID:CTih6+Zy
>>562
遠近射影の場合のwの導出式はあるのでしょうか?

何となく
w=kZ (kは定数)

みたいな気がしているのですが、これから

Z=w/k

になってしまうので、変な気がするのですが…
0568名前は開発中のものです。2006/10/02(月) 22:25:57ID:aFY/cqAR
>>567
詳しくは下を見てね。
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/directx9_c/directx/graphics/reference/d3dx/functions/math/d3dxmatrixperspectivefovlh.asp
Zp = (Zv - near) / (far - near) * far, Wp = Zv ね。
Zv = near〜far を遠近射影で変換すると
Zp = 0〜far, Wp = Zv になって、
depth = Zp / Wp で、(非線形の)0.0〜1.0になるわけね。
ちなみに depth = (Zv - near) / (far - near) だと(線形の)0.0〜1.0ね。
シャドウマップの深度値を非線形で求めるメリットってあまりないと思うから、
後者の方でいいと思うけどね。
(PSMとかの場合はどうしても非線形になるけど)
0569名前は開発中のものです。2006/10/02(月) 22:46:34ID:CTih6+Zy
>>568
サンクス!分かるようにがんばってみます。

>depth = Zp / Wp で、(非線形の)0.0〜1.0になるわけね。
の「非線形」というのは、Zp と Wp の2変数の関数になっているから
「非線形」なのですか?

>ちなみに depth = (Zv - near) / (far - near) だと(線形の)0.0〜1.0ね。
こちらは Zv の1変数だけの関数だから「線形」なのですか?
0570名前は開発中のものです。2006/10/02(月) 23:38:14ID:aFY/cqAR
>>569
グラフにしたときに
y=ax みたいに直線になる(均等に変化する)のがそこで言う線形で
y=1/x みたいに曲線になるのがそこで言う非線形ね。
深度値が線形変化だと、頂点間のパラメータ補間も線形補完だからそりがあうのね。
後は自力で頑張ってねw
0571名前は開発中のものです。2006/10/02(月) 23:42:29ID:CTih6+Zy
>>570
がんばります
0572名前は開発中のものです。2006/10/03(火) 00:59:45ID:DSdGAOLr
ttp://www.nomuraz.com/denpa/prog006.htm#IDPROG0034
ここを読んでクロスシミュレーションを勉強しています。
基本的な理屈は分かったのですが、これだけだと、例えば棒の上に布を被せた
場合、最終的には布が棒に完全にフィットしてしまう事になります。
もうちょっと末広がりのスカートにクロスシミュを適用させたいと思っている
のですが、広がった状態を保つのに何か良い方法はないでしょうか。
■ このスレッドは過去ログ倉庫に格納されています