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

DirectX総合スレ (Part2)

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。04/09/22 23:30:32ID:anobjZYP
DirectXについては基本このスレで話していこうとものです。
基礎的な質問+高度な質問も簡潔かつ簡単に答えることをモットーにして頂き
このスレの回転を早めて常にアクティブなスレにしたいと思っております。
このスレに質問等を書かれる方はまず最初に自分でしっかりと調べたのちに聞かれることをお願いします。
質問に対する答えも簡潔に出来る限りわかりやすくお願い致します。

テンプレは >>2以降で
0690名前は開発中のものです。04/12/07 23:41:03ID:1oL6D2Q3
>>681
それじゃ駄目だろ。
0.0fなんて綺麗な0は浮動小数点じゃほとんど返ってこないんじゃね?
なんか浮動小数点の足切り用の定数なかったっけ?
0691名前は開発中のものです。04/12/07 23:49:43ID:vW3T0vsv
>>690
FLT_いぷしろん?

まあ、この場合は0か否かが知りたいだけなので
これでよし。
0692名前は開発中のものです。04/12/08 00:03:29ID:rFHjY4ZV
ふつーに if( D3DXMatrixInverse(...) == NULL ) で
大丈夫な悪寒。
0693アンチ・シェーダー主義! 04/12/08 21:47:24ID:c6WeYnvv
なんでもシェーダでやってしまうのが人気なようですが
まだまだシェーダも動かないような低スペックなマシンも
たくさんあります。

ソフトウェア実装に力を入れている方々、情報交換しませんか?



0694名前は開発中のものです。04/12/08 22:02:24ID:WW1dHwS0
>693
それは底が見えるから、情報交換とか議論とかできなさそう
何をするかにもよるけど、たとえばトゥーンシェーディングとか
スキニングとかをシェーダ使わなかった場合とか
頂点バッファをロックして書き換えるのが頻繁になって
重くて現実てきじゃない
そんな低スペックグラボのマシンではカクカクポリポリじゃないと現実的じゃない
どうしてもやりたかったら、シェーダでやってることをそのままソースで書けば
いいだけだから、特別な議論も必要ないと思う
0695名前は開発中のものです。04/12/08 22:07:06ID:ZvOIJkod
下らん話をBBXから転載する>>693はアホだと思うが、

> スキニングとかをシェーダ使わなかった場合とか
> 頂点バッファをロックして書き換えるのが頻繁になって
          ↑
          馬鹿

0696名前は開発中のものです。04/12/08 22:07:43ID:/aowmM/6
「なぜトゥーンシェーディング・スキニングで頂点バッファをロックする必要があるのか」
を議論するスレになりました。
0697名前は開発中のものです。04/12/08 22:11:28ID:WW1dHwS0
別にDrawPrimitiveUPでもいいんだが…
0698名前は開発中のものです。04/12/08 22:12:22ID:ZvOIJkod
   ↑
やっぱり分かってない、ただの馬鹿。
0699名前は開発中のものです。04/12/08 22:27:06ID:/aowmM/6
ID:WW1dHwS0の底が見えてしまいましたとさ

                                  完
0700名前は開発中のものです。04/12/08 23:03:05ID:3qzYfJVy
つーかシェーダーの方が楽だからなあ。
エフェクトファイルステートで書いてみ、スゲーつらいよ。
何書いてあるか読みづらいし。
ステートでは良いことないのよ。
0701名前は開発中のものです。04/12/09 01:48:13ID:KBePB8OT
Shader嫌いと言うか単に使えないだけじゃねーの?とか思ってしまうが。
0702名前は開発中のものです。04/12/09 04:01:07ID:cERVxdI9
  ∧⊂ヽ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (゚Д゚)ノ <  シェーダ
  | ⊃|   \__________
  |  |
  ⊂ノ〜
  ∪
0703名前は開発中のものです。04/12/09 10:22:50ID:QepYyAhG
ピクセルシェーダーならまぁ環境に依存するが、ヴァーテックスシェーダーは
TnLなければCPUで処理されるんだからあえて使わない意味はほとんどないに等しいじゃね。
シェーダー使わなくたってどっちにしろCPU処理なんだしな。
スキニング処理なんかだとむしろ余計なバッファが要らないから同じCPU処理でも
シェーダー使うほうが速いしメモリにも優しくてなおさら低スペックにもいいだろ。
もっともそれ以前にそんな事考えるようなスペックじゃCPUがボトルネックになりそうだけどな。
まぁ日曜プログラマ風情の意見としては3DゲームをやるならGeForce4程度は買って来いと、
GeForceFx5200ですらGBASPよりも安いんですよ?とチラシの裏。
0704名前は開発中のものです。04/12/09 12:01:01ID:yF7iPEiA
HW-TnLは固定機能のアクセラレートをするものであって、
頂点シェーダー対応の可否とは何の関係もない。
0705名前は開発中のものです。04/12/09 13:30:59ID:Ua29371P
全て理解した上で適切な選択をする人>>>>>>(越えられない壁)>>>>>全く理解せず見当違いな事を言う人=全く理解せずただ多数派に同調する人
0706名前は開発中のものです。04/12/09 19:47:06ID:ZtkIdcTx
>>693
マルチだか転載だか知らんが、元ネタのところじゃ一夜にしてすげーことになってるな
この前の騒動といい、最近あそこはどーかしてるよな
0707名前は開発中のものです。04/12/09 20:41:44ID:yF7iPEiA
条件後出しとボーンを無制限に出す話から、以前暴れたアセンブラ厨と同一人物。
最後にシェーダでボーンが4つしか使えないと思いこんで、それを指摘されて消えていった。
BBXでもやることは変わらない。
0708名前は開発中のものです。04/12/09 21:39:11ID:/584CGpU
いやあれはアンチ後出しジャンケンが悪いよ、最初から煽り腰だ

馬鹿な意見とか、お節介な意見とかは構わないが、
2chのノリを他に持ち込むのだけは勘弁
0709名前は開発中のものです。04/12/09 21:46:38ID:ra7ioJc3
それにしても両方痛いIDだね。
下の方のレスが、対岸の火事見物っぽくてワラタ。
0710名前は開発中のものです。04/12/09 23:55:51ID:CqQJyX06
とりあえず、まとめると

「頂点シェーダが動くかどうかはグラボの性能とは関係ない。」

だからとりあえず頂点シェーダを使わない選択肢ってのはいまのところ無い
っつーことで。

で、なにやら複雑そうなんだけど、実際はそんなことない。
自分でできなきゃ、どっかの人が作ったサンプルやらコピって勉強すれば十分できるようになる。
HLSLで組まないとだるくてやってらんない。
0711名前は開発中のものです。04/12/10 00:05:19ID:nboJzal6
全然知らんのだけど、バーテックスシェーダを使う = VertexBuffer作って頂点転送するってことでいいの?
0712名前は開発中のものです。04/12/10 00:06:23ID:W/W3hlMT
シェーダーでなくても固定機能パイプラインでも出来ちゃうエフェクトってあるじゃん。
皆さんはこういうの書くときどうするの?
とりあえずステートで書く?
それとも全部シェーダー?
0713名前は開発中のものです。04/12/10 00:12:07ID:cshQ56aM
>>712
全部シェーダーの方が楽だと思う。
固定機能パイプラインは鬼面倒臭い。
誰もあんなもの使いたくない。
誰がステートの管理やるのかと。
馬鹿じゃねぇのかと。
0714名前は開発中のものです。04/12/10 00:19:49ID:anReHWWX
全然知らんのだけど、
プログラマブルシェーダって、例えば

シーン中にライトをOn/Offしたりとか、ステートが動的に変化する場合でも
一つのシェーダを使いまわせるんですか?

それとも、ライトの数に応じたシェーダを複数用意しておいて切り替えながら使うとか、
非効率を覚悟で常にライトの最大個数用のシェーダを使うとか、
ライトは一つに制限したりとか
しなきゃいけないんですか?
0715名前は開発中のものです。04/12/10 00:58:30ID:cshQ56aM
>>714
それはシェーダの組み方次第。
自分で自由に組めるから、組んでみて自分で最適と思うものにすればいい。
0716名前は開発中のものです。04/12/10 01:48:52ID:W/W3hlMT
>>713
やっぱそうなりますかね。
必ずしも固定だからといって対応ハードが増える訳でもないですしね。

>>714
やっぱ用途に合わせてシェーダーを多数用意しなければならないのは
今もかわってないと思う。フラグメントとかいろいろあるけど面倒臭いしね。
俺はリテラル定数で条件分け出来るシェーダープログラムを1個作って
用途別にテクニックを複数作る方法を採用している。
頂点ライティングだと最大ダイナミックライトが3つ、グローバルライトが2つの組合せで
結構多くなるな。ピクセルライティングだと双方最大1つづつの組合せ。
0717名前は開発中のものです。04/12/10 01:50:02ID:W/W3hlMT
>頂点ライティングだと最大ダイナミックライトが3つ、グローバルライトが2つの組合せで
ダイナミックライトが4つ、グローバルライトが1つの間違い
0718名前は開発中のものです。04/12/10 04:13:30ID:OzEXgDGA
頂点シェーダって、昔からソフトウェアエミュレーションで動いたっけ?
0719名前は開発中のものです。04/12/10 04:35:29ID:L+RmPzsY
俺は割と早くからシェーダ使ってるけど
固定機能のほうを馬鹿にする奴はそれはそれでムカつくんだが
0720名前は開発中のものです。04/12/10 07:23:56ID:jq48CoU8
>>718
うん。

>>719
技術板だ、理由を言え。
0721名前は開発中のものです。04/12/10 10:23:46ID:PRMmN4dx
普通は馬鹿にするほうが理由を言うもんだろう。
0722名前は開発中のものです。04/12/10 10:26:21ID:L+RmPzsY
技術的に固定機能が優れている点をあげよ、ってことならそれは無茶よ。
今は俺もシェーダ使ってるし、もう固定機能には見切りを付けてるもん。

最終目的は映像を表現することで、それが出来るなら手段は何でもいいんじゃない。
話聞いてるとどれもそう手間は変わらなさそうな内容だし、そこまで貶す必要もないと思った。
世の中頂点シェーダですらできないような頂点処理もあるわけだし、
馬鹿にするのはそういうのを無理して固定機能でやるとき位にしてやってくれw
0723名前は開発中のものです。04/12/10 10:57:07ID:b5UiCi3W
>>722
同意、まぁどっちの派にしろ、自分が慣れた方しか認めないのは見苦しいね。

固定の良いところか…ある程度決めうちできるゲームは良いけど、
アプリなんか作ってると固定の方が楽に感じることはあるかな。
(今使える)OpenGLと共用する時とか。
0724名前は開発中のものです。04/12/10 11:03:49ID:KYyRlGH4
OpenGLと共用なら、固定だと行列の並びが異なるので逆に使いづらい気がする。
0725名前は開発中のものです。04/12/10 13:50:58ID:evJV8sI6
基本的には漏れも頂点シェーダを使う派なんだけど、あえて固定パイプラインの利点を
上げるとすれば、プログラマブルでないTnLを持ってるGPUでは固定パイプラインを使った
ほうが高速ってことはないかい。GeForce MXとかそうじゃなかったっけか。
測定したわけじゃないんで、間違ってたらごめん。
0726名前は開発中のものです。04/12/10 16:38:27ID:Y4Ud5gjc
>>725 ベンチ見るかぎりでは平均8.2%速いってさ
0727名前は開発中のものです。04/12/10 16:53:28ID:KYyRlGH4
TnLが効く古いビデオカードに最新のCPUという構成の場合、使わない方がはやい。
ただしCPUの空きが増えるので、使った方が負荷は軽くなる。
0728名前は開発中のものです。04/12/11 20:11:30ID:ENo3zpOh
STGのような多数のオブジェクトを表示するゲームで
2D描画にDrawPrimitiveUpを使っています。
基本的な動作としてはオブジェクトごとに

動きを計算し
行列の計算→D3DXMatrix系の関数

描画時に
SetTransform → DrawPrimitiveUp

を毎フレーム繰りかえすという形でいいんでしょうか?
無駄が多い気がするんですがほかにいい方法は思いつきません。
0729名前は開発中のものです。04/12/11 20:26:22ID:fhqnR+WK
>>728
明らかに無駄だな。
必要ねーぞ。
マジで。

SetTransform必要ないだろ。
だってTL_VERTEXとかそんなんじゃねーの?
0730名前は開発中のものです。04/12/11 20:30:06ID:Fu3sSY9f
>>728
上でも議論があるが、Up じゃなくて UP な。

3Dの複雑なモデルならともかく、2Dのキャラクタで、
DrawPrimitie系メソッドを「オブジェクトごとに」呼び出すのはいけてない。
UP系を使ってるんなら、
一つの頂点配列に複数のオブジェクトで使う頂点をまとめて格納しておいて、
頂点の座標を全て書き換えてから一度だけDraw。
0731名前は開発中のものです。04/12/11 20:47:23ID:RsIq+yY4
無駄は無駄だが、どうせ今の環境ではその程度改善したところで、
全体のパフォーマンスは大して変わらない。
細かいことを気にしている暇があったら、まず全体を完成させて、
後からチューニングしても遅くない。
073272804/12/11 20:51:15ID:ENo3zpOh
>>729-731
ありがとうございます。
他のやり方があるということがわかっただけでもよかったです。
全体完成させてからいろいろ改良することにしてみます。
0733名前は開発中のものです。04/12/11 21:10:24ID:fhqnR+WK
まてよ。
固定機能パイプラインのときって2D描画(3D空間に無い)ってどうやってやってたんだっけ?俺。
いまのソースだとシェーダに値を渡してるけど、固定機能だと値を渡すようなものってないのか?もしかして。
頂点バッファを毎フレームごとにロックしたりしてたんだっけ?いや、それは無駄だよな。うーん?ん?
0734名前は開発中のものです。04/12/11 21:17:01ID:Gc6vRMJF
毎フレームロックするようなときのためにUsage.Dynamicがある
0735名前は開発中のものです。04/12/12 00:18:36ID:u0O7CTPq
スプライト毎にUP垂れ流しでも、ほとんど速度は変わらないっていう実験結果がどこかにあったような
すこし昔の話だが
0736名前は開発中のものです。04/12/12 01:17:45ID:tfjyzDT/
アホみたいな質問ですがご容赦ください。
DirectX9 SDKと日本語ドキュメントをDLして
インストールしたところ、日本語ドキュメントは
SDKとは別のフォルダへインストールされました。
で、日本語ドキュメントのインストールされた
フォルダを見てみると、拡張子がHx○というファイル
が複数できましたが、クリックしても実行できない
もののようです。このヘルプはどうやって見るもの
なのでしょうか?開発環境はVC++.netです。
0737名前は開発中のものです。04/12/12 01:39:20ID:FwlKHgFV
>736
英語ドキュメントのショートカットのプロパティみてみ
拡張子何になってる?
073873604/12/12 02:28:00ID:tfjyzDT/
レスどうもです。
英語ドキュメントのショートカットとはどこにあるのでしょうか?
SDK本体のフォルダの中のDocumentationというフォルダの
中には英語ドキュメントらしきものがありますが、ショートカットは
ありません。ここには、Hx○がいくつかと、chmというコンパイル済み
HTMLファイルがあります。これはクリックして読めるようですね。
0739名前は開発中のものです。04/12/12 02:42:29ID:FwlKHgFV
>738
>英語ドキュメントのショートカットとはどこにあるのでしょうか?
スタート→プログラム
0740名前は開発中のものです。04/12/12 09:42:01ID:BNsUi8qI
DirectX8.1でフルスクリーンモードにしてテクスチャを表示すると
勝手にアンチエイリアシングが掛かってしまうようなのですが
何が問題なのかわかりますか?

この現象が起こるのは今のところ Radeon9800PROだけです。
スクリーンショットを撮るとボケてない画像が撮れます。
Windowモードならボケないようです。

0741名前は開発中のものです。04/12/12 11:29:17ID:NVOf1hrq
Visual C++.net 2003 をインストールし、DirectX9.0cSDK(最新版)を
ダウンロードしインストールしようとしましたが、何回やっても
インストール進行状況の緑のバー(?)が途中で左へ戻ってしまい、
your system has not been modified to complete installation at another time, please run setup again.
と表示されて失敗してしまいます。
いろいろヘルプドキュメントやネットで調べましたが解決方法はわかりませんでした。
OS は XP Home Edition Service Pack 2 です。
074273604/12/12 13:24:13ID:tfjyzDT/
>>739
どうも。
リンク先のファイルはchmという拡張子でありました。
しかしJPNドキュメントにはないんですよね・・・。
0743名前は開発中のものです。04/12/12 13:41:45ID:yiVn8EQz
>>742
みつかりにくいんだけどたしかどっかにあったよ。
拡張子はchmだからマイコンピュータを拡張子で検索かければそのうちあたんじゃねぇの?
0744名前は開発中のものです。04/12/12 14:03:17ID:lh5zcFYt
>>742
DX9_Oct04_JpDoc.exe を展開するとその中に入ってる。
ちなみに同じフォルダに DirectX9Oct04JpnDoc.msi ってのがあって
これをインストールすると、確かに *.Hx○ってファイルができるんだけど
これって何なんだろうね。自分はアンインスコした。
0745名前は開発中のものです。04/12/12 14:32:28ID:JZcZNH0C
>>744
統合環境からF1でヘルプを見た時に、DX9用のヘルプが出るようになる。
MSDN用。
0746名前は開発中のものです。04/12/12 14:56:21ID:tfjyzDT/
つまりVC++.NETのヘルプからは
見れないということでしょうか?
つまりは、いらないってことか。
074774004/12/12 15:30:54ID:BNsUi8qI
液晶モニターを使ってるのが原因なのかも、という話になってきました。
手元に再現する環境がないので色々面倒です・・・。

EFZは「640*480で起動」にするとボケないが
320*240で起動するとダメだというので
単純に解像度を640*480にしてみたんですが、解消されず。

うーん、困った。
074874404/12/12 15:39:00ID:lh5zcFYt
>>745
VC6使いには縁が無さげだね。サンクスコ。
0749名前は開発中のものです。04/12/12 21:37:10ID:1/NB2K9W
ttp://pc5.2ch.net/test/read.cgi/tech/1069666471/749
749 :デフォルトの名無しさん :04/10/24 21:08:30
次はDecember2004である、に一票。

10月の段階で言い当てるとはすげーな。
ttp://www.microsoft.com/downloads/details.aspx?FamilyId=4E825A37-0C94-4421-9EC8-156E52525D11
0750名前は開発中のものです。04/12/12 22:00:40ID:u0O7CTPq
こういう偶然を必然と脳内変換しちゃう人は騙されやすそうだな
本人ならかわいいもんだが

それはともかくキタ━━━━━━(゚∀゚)━━━━━━ !!
0751名前は開発中のものです。04/12/12 22:37:47ID:FwlKHgFV
>740
アンチエイリアス?
バイリニアじゃなくて?
D3DTEXF_POINT(だっけ?)つかってもだめってこと?
075274004/12/12 23:03:56ID:BNsUi8qI
>>751
それ以前の問題でした・・・
ドット数比が5:4の液晶ディスプレイ使ってるのが原因でした。

画面サイズを変えないでD3DTEXF_POINTつかって
引き伸ばし表示するモードをつけることになりそうです。
0753名前は開発中のものです。04/12/13 00:00:08ID:OHILwBcG
むむ。
Present(&src, &dst, hWnd, NULL); で
srcの整数倍した矩形を dst に設定してみたら
D3DTEXF_POINTを指定してあってもエッジがボケてしまいます。

この部分でバイリニアフィルタが掛からないようにすることは可能でしょうか?
0754名前は開発中のものです。04/12/13 00:16:23ID:Yp5fFNZw
>753
よくわからんが、テクスチャの領域外をエッジのに指定するフラグなんだっけ?
それつかってみたら?
0755名前は開発中のものです。04/12/13 00:37:02ID:O19Oklaz
質問でちゅ。
RPGなどのゲーム中に出せるメニュー画面(戦闘中・フィールド)についてでしゅが
1.スプライトで表示
2.UV座標に応じて4つの頂点を指定して表示(rhwの設定のやつ)
3.カメラ設定に応じて4つの頂点を指定して表示(座標変換有り)
の3つが僕の現在ある知識ではできるのでちゅが皆さんはどれ使ってましゅか?
他に方法あったりしたらそれも教えて欲しいでチュ
0756名前は開発中のものです。04/12/13 00:46:29ID:4OFGfkHN
自分は2かな?
ゲームによっては
半透明のメニュー画面があるし
他の人がどうしてるのか、気になるなぁ

BBX見たらスプライトでやってる人も居るようだ
0757名前は開発中のものです。04/12/13 01:02:03ID:Yp5fFNZw
>755
1と2は同じことだろ?
あ、D3DXSPRITEとかいうやつか
あんなん使うな

2Dのメニュー表示だったら3の意味はなし
0758名前は開発中のものです。04/12/13 01:26:33ID:w/QQwN3S
そもそも1-3全部が中身はDraw*Primitive*()なんだが。
0759名前は開発中のものです。04/12/13 01:36:39ID:Yp5fFNZw
>758
さすがにそれはわかって…るよな?>755
0760名前は開発中のものです。04/12/13 03:12:40ID:4OFGfkHN
うほw俺は知らんかったw
ためになった。

でも、Spriteを触ることは無いだろう
076175304/12/13 10:45:56ID:65Upxz8j
>>754
ちょっと探した感じでは見つからなかったです。
今回の件とはちょっと違うかな・・・?

IDirect3DDevice8::Present の説明に

「必要に応じて、転送元矩形内のピクセルをターゲット
ウィンドウのクライアント領域の転送先矩形に転送するために
拡大処理が適用される。」

と書いてあるので、この部分の拡大処理でバイリニアフィルタが
適用されているようですね。
ここを制御できればいいんですけど・・・。
076275304/12/13 16:57:51ID:65Upxz8j
色々調べたんですが、
レンダリングターゲットをテクスチャにして描画
⇒テクスチャからバックバッファに拡大して書き込み
⇒Present(NULL,NULL,NULL,NULL)
とすることでうまく行きそうな予感・・・?

#今まではバックバッファに直接描いてました。

Present()内部で行われる拡大処理を制御するのは無理なのかな。
0763名前は開発中のものです。04/12/13 21:45:53ID:CpqQPaPG
>762
あとはベタだが0.5ピクセルずらして張る
サイズ256だったら一番端のUVは
1,0じゃなくて
1.0f - (0.5f / 256.0f)
0.0fのところも
(0.5f / 256.0f)
とか
076475304/12/13 22:08:26ID:OHILwBcG
>>763
0.5ドットずらす方法は既に実践済みなんですよ。
結果はずらしてもずらさなくても同じでした。

762に書いた方法で実装してみたら結構遅くてショック。
0765名前は開発中のものです。04/12/14 02:35:51ID:Uw1p0s/Z
>0.5ドットずらす方法

つい最近まで流行ってた、TOWNSとかのハードウェア0.5ドットスクロールのことかと思った。
あれは滑らかだったからなー。
0766名前は開発中のものです。04/12/14 17:10:23ID:52nIwGgv
どうも755でちゅ。
レースゲーム中のメーターと針を表現したいのでちゅが、
メーターはRHWを設定するので描画してるんでちゅが針のほうをRHWで
描画してるんですがRotationXでしたっけそれでは回転できないんでちゅが
どうすれば針を回せますか?
0767名前は開発中のものです。04/12/14 17:20:06ID:jWlJyjib
rhwだったら自分で回転後の座標を指定すればいいだけ。
0768名前は開発中のものです。04/12/14 19:20:41ID:6EayMZnD
RotationX?
RotationZじゃないか?
0769名前は開発中のものです。04/12/14 19:57:45ID:mfmTbhdO
だから素直にDrawPrimitive使えよ。UPでもIndexedでもいいから
出来ないヘタレがプログラム組むな反吐が出る
0770名前は開発中のものです。04/12/14 19:58:45ID:9a+RZ13R
そんなのも分からずレースゲームを作るっていうんだからたいしたもんだ
0771名前は開発中のものです。04/12/14 20:17:39ID:0pW6uqIM
なんってったってゲ製板だからな
0772名前は開発中のものです。04/12/14 20:24:03ID:6EayMZnD
なんてったってアーイドー
なんてったってアーイドー
0773名前は開発中のものです。04/12/14 20:34:32ID:eLHDZvTk
766擁護じゃねぇけれど、よくわかってない奴だっているんだろうから、教える必要は
ないとしても叩かなくてもいいんじゃないか?769は少し言い過ぎかと思う。
0774名前は開発中のものです。04/12/14 20:55:40ID:mfmTbhdO
>>773
お前の書き込みと俺の書き込み、どちらに中身があるかもう一度読み返せ
本当にお前の頭の中は空っぽだな
0775名前は開発中のものです。04/12/14 20:59:10ID:6EayMZnD
>766
SetTransformはやってるよな?
0776名前は開発中のものです。04/12/14 21:02:46ID:0pW6uqIM
>>766は先にブロック崩しでも作っとけ。
>>774はヘタレ質問見るのが嫌なら鬱だ氏のうスレ行っとけ。
0777名前は開発中のものです。04/12/14 21:08:29ID:jWlJyjib
だからトランスフォーム済みの頂点にトランスフォームがかかるわけ無いだろう。
なんでrhwでSetTransformとかRotationXが出てくるんだ?
トランスフォーム済みを使うなら、自分で位置を計算しておけばいいだけ。
しかもその程度の計算で行列を使う演算の必用など微塵もない。
既存のシステムに依存して、基本的な計算すら忘れ去ってないか?
0778名前は開発中のものです。04/12/14 21:12:35ID:8voIY0i4
rhwなら、こんなんか?

回転
P(x, y)
dX = x * cosθ - y * sinθ;
dY = x * sinθ + y * cosθ;

平行移動って足せばよかったっけか?w
グーグルで 回転 2次元 で調べればいっぱいでてくるよ。

rhwの2次元にRotation???は使ったことないなぁ
0779名前は開発中のものです。04/12/14 21:38:39ID:6EayMZnD
>777
そりゃそうだ
久しく使ってなかったから忘れてた

0780名前は開発中のものです。04/12/14 22:37:40ID:G4zX7Xhc
>>778
D3DXにこの計算用意されてなかったか?
0781名前は開発中のものです。04/12/14 22:49:27ID:X6UgI8F+
なんで2D描画用にカメラ行列を再設定しないんだ?
0782名前は開発中のものです。04/12/14 23:00:07ID:Apj0J3iv
トランスフォーム済みの頂点だから
0783名前は開発中のものです。04/12/14 23:03:46ID:GmXk5NnE
RHWだぞ、お前分かってるか?
RHWだぞ、お前これ何の略だ?
0784名前は開発中のものです。04/12/14 23:06:46ID:7uVKM4QW
あ、実は俺判ってないかも>RHW
0785名前は開発中のものです。04/12/14 23:30:20ID:if82LLjO
固定でスキニング出来るようになったので、次はシェーダでと思い
朝からやってるのですが、ぴくりとも動いてくれません

メッシュは自前で持っていてDX系の物は使っていません。
.fxはDirectX9のサンプル、SkinningMeshの物をそのまま使っています
SetMatrixArrayで渡す行列は、固定の時と同じ行列で良いのですよね?
(オフセット行列に、現在の姿勢行列を掛けた行列です)

シェーダで頂点色を変えたりとかは出来ています。

Weightが一つのボーンに対し100%(1.0f)だと、なんの行列を渡しても初期位置のまま微動だにしません。
2つ以上のボーンに対し影響を受ける頂点は、2つ目のウェイトの割合分、無意味に縮みます。縮むだけで動きません。

いやもうこれでは解答のしようも無いとは思うのですが、質問せずにはいられない状態でして・・・。
0786名前は開発中のものです。04/12/14 23:38:11ID:17qXBVT+
サンプルのはシェーダでちゃんと動いてるの?
0787名前は開発中のものです。04/12/15 00:01:00ID:fvpX5wp6
Right-hand-system Height Width
078878504/12/15 00:02:46ID:pCTFG4k0
>>786
お付き合いありがたいっす
悔しいことにサンプルの方は、シェーダはもちろんどのモードでも問題なく動いています
言われて今、試しにHELにしてみたのですが、やはり挙動は変わらずじまいです

データの持ち方が悪いのかなぁ…
0789名前は開発中のものです。04/12/15 00:23:36ID:LnZJ7VNx
>>784
reciprocal of homogeneous W

>>788
それならサンプルと同じようにやれば動くのでは?
0790名前は開発中のものです。04/12/15 00:32:03ID:rxxXpvtu
tinyタンはしぶといからな
がんがれ
■ このスレッドは過去ログ倉庫に格納されています