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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 22:47:45.95 ]
回答する人も、質問する人も必ず読んでください

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

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

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

現在の最新バージョンはDirectX 11です。

前スレ
【C++】 DirectX初心者質問スレ Part35 【C】
hibari.2ch.net/test/read.cgi/tech/1305885376/

802 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 21:37:06.46 ]
文字用みたいな単純な頂点の場合、ジオメトリシェーダで頂点生成したほうが、
ビデオメモリから頂点データを読み出す帯域を節約できてパフォーマンスが上がる、って考えでおk?

803 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 21:43:19.76 ]
おまえらせめてグラフィックチップぐらい明らかにしてから話をしろよ
グラフィックボード搭載機で速度的な問題がでるわけないじゃん

804 名前:デフォルトの名無しさん [2012/03/15(木) 22:26:28.55 ]
GTX460

805 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 22:34:10.56 ]
>>802
誰もそんな話はしていないと思うが、フォントデータは基本ベジェ曲線だから
最低でもテセレータまで持ち出さないと無理でしょ

806 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 23:14:53.18 ]
>>804
そんな国民の1%も持ってないような高性能なので語られても困るわけだが

807 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 23:29:28.88 ]
CirrusLogic GD5464

808 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 07:50:29.18 ]
そもそもテクスチャに文字かいとけば回転斜体拡大縮小縁つきなんて頂点弄るだけでいいのになんで書体やサイズ全部用意するんだよ。

キャッシュシステム作っとけばデータ更新だって数秒に1回あるかどうかだろ。

809 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 08:52:38.40 ]
さすがに文字を主体で読ませる紙芝居で
フォントサイズ違うとボケる糞実装は見たことないわ

810 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 10:47:53.53 ]
ゲームのテキスト描画ってコレ!って解決策のない、意外に泥臭い部分だと思う。
ゲームとかシーンによって求められる文字描画ってかなり異なるし、優先順位も違う。
テキストは拡大縮小すると目も当てられなくなりやすいけど、
拡大しながらフェードアウトみたいなエフェクト中に使う文字だったら、別に多少ぼけてても問題なくね?と思う。
紙芝居ゲーはテキスト品質重要だし、文字装飾だの異なるフォントだの対応する必要があるだろうけど、
事前に殆ど作っておけるし、アクションゲーとか程センシティブな安定性は要求されないと思うしなー。
スキップ中とか別に60FPSでなかろうが、速くスキップしてくれればどうでも良いってのがフツーじゃね?

まぁ、別にテキスト描画に限らんけど、高速化について語るなら、先ず条件をハッキリさせないと不毛だと思うわ。
マジ銀の弾丸はねぇ。



811 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 11:26:58.88 ]
ttp://www1.axfc.net/uploader/Sc/so/328711.zip
毎フレームテキストグラフィック作って描画するとこれだけ重いですって言うベンチマーク

812 名前:デフォルトの名無しさん [2012/03/16(金) 11:27:02.11 ]
DirectXはゲーム用だからな
多バイトの事なんて真剣に考えてるとは思えん

813 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 12:22:08.11 ]
じゃあMMORPGはどうやってやってんのよ?

814 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 13:39:10.17 ]
だからMMOだって毎フレーム更新する必要が無いんだよ。
いい加減理解しろよ。
本当に頭が悪いな。

815 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 13:51:30.55 ]
アウトラインフォントのテクスチャ化をどうにかして2倍速くするよりも、
キャッシュして使い回した方が数十倍から数百倍速くなると言うだけの話。

816 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 14:18:04.07 ]
毎秒60回バカ正直に
文字をレンダリングしてから表示に回すような組み方してるんだとしたら
正直センスないからプログラム書くの辞めた方がいいわ
というか同業他社の為に辞めて欲しいね

817 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 14:26:28.34 ]
それってベンチだろ。

818 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 14:30:33.93 ]
>>811
DirectX10.1必須?
fpsがマイナス2億になって動かない


819 名前:GTX460 [2012/03/16(金) 14:50:07.53 ]
もうお前らいい加減チップ名言えよ
名前欄にチップ名書いて発言しろ

1920*1080で画面にアイテム一覧240個くらい出しても900fpsくらい出るよ
普通にD3DXFontの描画だよ

820 名前:MilleniumG400 mailto:sage [2012/03/16(金) 15:28:41.97 ]
1FPSは出るよ



821 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 15:56:58.14 ]
>>811
デバッグビルドでうpして遅いとか言われても・・・

822 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 16:45:04.91 ]
最適化なんて糞くらえなんです><

823 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 20:45:42.90 ]
毎回キャッシュした内容をチェックするのもかなりコスト高いでしょ
短い文章ならいいけど長文だと特にね

824 名前:デフォルトの名無しさん [2012/03/16(金) 20:54:07.58 ]
描画に比べたら無いようなもんだ

825 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 20:58:53.98 ]
自分はゲーム内容のためというよりも、
デバッグ用の情報を表示するために文字を出したくて、英語だけでイイ。
この場合は、26文字×2(大文字小文字)+記号程度を描いたテクスチャアトラスを事前に用意しておいて、
テクスチャアドレスだけで文字を変えるって方法でいこうかと思うんだけど、
パフォーマンス、扱いやすさの両観点でこれが最適と思ってイイよね?

826 名前:デフォルトの名無しさん [2012/03/16(金) 21:02:14.91 ]
アルファベットだけならそれでいいんだよ
外人の奴らも元々そのつもりだった
でも俺らは6万字以上扱うんだよ
最低でも2965文字は使いたいんだよ

827 名前:825 mailto:sage [2012/03/16(金) 21:16:39.02 ]
>>826
ありがとう!

文字文化の影響って大きいね・・・

828 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 22:12:18.11 ]
>>825
コンソール画面出すかかもう一個ウィンドウ作ってそっちのほうがよくないか?

829 名前:825 mailto:sage [2012/03/16(金) 23:15:24.97 ]
>>828
フルスクリーンモードで映しながら文字出したいときもあるし、できればオンスクリーンかな。

830 名前:デフォルトの名無しさん [2012/03/17(土) 01:25:59.47 ]
馬鹿しかいないと思ったら初心者スレか。
馬鹿じゃなくても初心者なら仕方ない。
DirectX歴も3ヵ月未満ならこんなもんだろ。



831 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 10:19:31.05 ]
スタートでコケたKARAのツアー
韓国の女性アイドルグループKARAの『STEP』が、23日発表の「レコチョク」着うたデイリーランキングで
初登場1位を獲得。相変わらずの人気ぶりといったところだが、実は先行き不安だという。

「KARAは今年、日本を含めたアジアツアーを行います。2月18日に韓国のソウルでスタートを
切ったのですが、なんと観客席がガラガラだったそうです」(芸能ライター)

日本では4月に5都市全10公演、さらに中国、香港、台湾、タイなどを回る大規模ツアー。
KARAにとっては初の単独ツアーでもある。
「ソウルでのライブの様子を映した画像がネット上に多数アップされています。それを見ると、
ステージ前は立見客がひしめいているのですが、観客席に目を移すと人影はまばら。
会場のオリンピック公園・体操競技場のキャパは1万5000人。日本の報道では観客数8000人でしたが、
そんなにいるとは思えない」(同)

日本では昨年、NHK紅白歌合戦に出場したほどの人気のはず。一体どういうことなのか。
「ヨン様、チャン・グンソク同様、日本ほど本国では人気がない。そのうえ、現地ではチケット代が
高くて売れず、結局、格安の当日券が出て、無料の招待券もばらまかれたようです。そんな状況なので
メンバーが涙する感動シーンで、ぞろぞろ退席する客もいたとか」(女性誌記者)
日本からの公式ツアーの料金は2泊3日で10万円前後。日本人ファンは実にいいお客さんだ。
「韓国は2公演、日本では10公演。日本が主戦場なのは明白です。事務所も稼ぐのは日本と割り切り、
韓国では大会場で公演したという実績作りに徹し、収益は度外視したのでは」(同)

wjn.jp/article/detail/0033117/

832 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 06:45:35.41 ]
Viewマトリックスから視点の上から見た角度を逆算しようとしてるんですが
そこで適当な数字(1,0,0)をViewマトリックスに乗算して出来た座標のを
atan2(y, x)でラジアンを計算するとViewの上下角が微妙に影響してくるんですが
どうやって計算したらいいんでしょうか?


833 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 06:56:51.89 ]
directx今からやろうと思うとオススメのバージョンどれ?

834 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 07:31:56.88 ]
>>832
貴方の座標の算出の根拠は知らんが、角度を求めたかったら
YZ平面なりYX平面に射影する、その座標とカメラ座標は
平行になるように回転処理して射影しないと正しい角度は得られない

考えれば分かるだろ、直角の定規を斜めにしてたら
真正面からみても90度にはならないでしょ

835 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 07:47:31.31 ]
>>834
そうなると、ビュー行列から平行移動成分を消す方法を知りたいんですが

836 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 07:51:58.84 ]
エスパーすごいな

>Viewマトリックスから視点の上から見た角度を逆算しようとしてるんですが

俺はこれが何を言ってるのかわからない
つまり・・・つまりなんだね?

837 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 07:58:00.71 ]
>>836
カメラの上から見た平面上の角度です

DirectX10にD3DXMatrixDecomposeという拡張があるみたいなんですが
まさにやりたいのはこれです
中身ってどうなってるんでしょう?


838 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 07:58:25.84 ]
>>835
普通のワールド行列と同じ
41, 42, 43成分に0を代入

839 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 08:02:30.05 ]
9にもあった

840 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 08:18:23.87 ]
>>837
>カメラの上から見た平面上の角度です
いや、さっぱりわかんない



841 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 08:28:24.45 ]
Yを高さとしたときのXZ平面上のワールド座標系でのカメラの回転角(rotate関数につっこむと同じ姿勢行列返してくれる)とかそんな感じか?
行列から無理やりだすんじゃなくて対象物の座標とっておいたら楽じゃね?

842 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 11:55:18.01 ]
>>841
カメラの基準に成るものは入れ替わるのでカメラのビュー行列から変換する方がプログラム的にスマートです

でやっぱり>>835の方法でもMatrixDecomposeでも
水平方向の回転が加わると垂直方向の回転にも影響が出る
カメラの上下では回転比率が違うようなことになってるんですかね?
ビュー行列って回転と平行移動とスケーリングを単純にやってるだけだと思ってるんですが
もうちょっと複雑な構造をしてるんですか?

843 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 13:15:50.96 ]
>>842
スマート?
基本、行列の形にしちゃったらフルーツジュースみたいなもんで
もとのアップルやイチゴの形には戻らないんだよ

いまは逆変換できる範囲だけど
3回転目の2回転目なんてどうせ判断できないだろ?
速めにやり方に見切りをつけちゃったほうがいーんじゃないの?

844 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 13:18:25.03 ]
Quaternionの計算が間違ってただけでMatrixDecomposeの方でちゃんと出来た

>>843
何回転しててもカメラはカメラですから最終的に向いてる方向が入ってる

845 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 13:23:09.55 ]
>>844
いや、そのうち行列から逆変換で判断できない状態が必要になるんじゃないかってこと

846 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 19:08:25.65 ]
>>833
断然、DX11!

847 名前:デフォルトの名無しさん [2012/03/25(日) 09:25:54.32 ]
'Tutorial02.exe': 'C:\Users\Tatsuro\Desktop\Tutorial02\Debug\Tutorial02.exe' を読み込みました。シンボルが読み込まれました。
directx2010 チュートリアルが実行できねえ
visualstdioは2010れす

エラーはこんなんでますた・・・

'Tutorial02.exe': 'C:\Windows\System32\ntdll.dll' を読み込みました。Cannot find or open the PDB file
'Tutorial02.exe': 'C:\Windows\System32\kernel32.dll' を読み込みました。Cannot find or open the PDB file
デバッガー:: ハンドルされていない続行不可の STATUS_DLL_NOT_FOUND 例外がプロセスの読み込み中にスローされました
プログラム '[8060] Tutorial02.exe: ネイティブ' はコード -1073741515 (0xc0000135) で終了しました。


848 名前:デフォルトの名無しさん [2012/03/25(日) 09:27:02.92 ]
きゃーユーザー名出てるううううう
はずかしいいいいい

849 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 09:57:26.48 ]
まずはVisualStudioの使い方を学び、次にC++の勉強から始めましょう

850 名前:デフォルトの名無しさん [2012/03/25(日) 10:44:36.78 ]
directx11が入って無かった



851 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 22:05:28.16 ]
教えてくださいな。

D3DX10mathの中のD3DXVECTOR3の比較で、operator ==()の所が
 return x == v.x && y == v.y && z == v.z;
になってるんだけど、イプシロン使ってなくてfloatの誤差が出たりしないの?

852 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 22:44:06.73 ]
そりゃ出るべ

853 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 07:40:31.50 ]
float使ったもので==が禁忌なのはfloatそのものでもfloatを使ったクラスでも同じことだからだろう

854 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 22:34:22.28 ]
UDKだけじゃなくUnityもFlash勢だったか
blogs.unity3d.com/2012/03/28/unity-flash-update/
ミドルの方々はあまりWebGL興味がないのかな

855 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 00:15:55.15 ]
対応環境とか互換性とか実績じゃね?
WebGLはIE動かないし、ブラウザ依存だし、
セキュリティー的にも規格レベルで修正必要みたいな話もあるみたいだし。
スマホ以外はまだまだFlushが安定っすよ。
HTML5周りがFlushと置き換わるにはあと5年〜10年必要じゃねーかな。

856 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 00:57:10.38 ]
×置き換わる
○状況に応じて配置される

普通に今みたいに共存してると思う

857 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 01:48:51.37 ]
IEで3D表示させようと思ったら何かある?

858 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 02:06:37.76 ]
Silverlight
vrml

859 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/30(金) 16:50:20.10 ]
↑flashは?
ってかなんだこの変な名前は板間違えたのかと思った


860 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/30(金) 16:52:22.61 ]
flashってみんなoffにして使ってるよな。



861 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 01:38:17.69 ]
Unityの記事読んでたんだけど
UnityのStage3Dとかいうのフル機能を使いたい場合
別途ライセンス料みたいなのをAdobeに納めないといけないのかな?
めんどいな

862 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 01:38:53.64 ]
UnityのじゃなくFlashのStage3Dだた

863 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 00:00:30.90 ]
fxcで、internal error: compilation aborted unexpectedly と出てコンパイルに失敗するんだが、回避方法がさっぱりわからない。
ちなみにコードはcs_5_0なCSシェーダーです。

864 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 14:41:28.23 ]
IDirect3D9とIDirect3D9EX の違いって何?

865 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 15:23:06.02 ]
共有メモリが使えるみたいな

866 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 15:52:31.53 ]
msdn.microsoft.com/ja-jp/library/bb219800%28v=vs.85%29.aspx

一番の違いはデバロス関係。
あとは文字用に1bitサーフィス+Convolutionフィルターの追加。


867 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/03(火) 18:29:47.12 ]
DirectShowでAVIファイルとかを開くと勝手に出るビューウィンドウを表示させないようにする方法を教えてください

868 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/03(火) 18:32:02.55 ]
DirectShowスレなくなっちまったか。扱いはWindowsSDKだからAPIスレ逝け。

869 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/03(火) 18:36:34.82 ]
あっちは・・・
もう雑魚隔離スレになってるから機能してないんだよね・・・

870 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/03(火) 18:42:25.27 ]
ちょっとあっちは書き込みづらい雰囲気ではあるな



871 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/03(火) 20:42:12.84 ]
DirectShowと戦ってたときが懐かしなぁ。

872 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/03(火) 20:42:49.09 ]
ソースはNHKのNHK予算審議参院総務委


今日の片山さつきまとめ
「なんで、韓国の放送局が、NHKの中にあるの」 「なんでハングルメールブームを捏造するの」
「なんで紅白に反日時代を出すの」
ミュージックジャパンなのに韓国人を36%も混ぜてた ビックバンなどの大麻・人身事故そんな犯罪者も出してた
そりゃミュージックコリアwだろとw
「皇室」「王家」と辱めたことは 宮内庁に聞いたのか?
ほとんど答えてなかったね
「ニュース9の「在日参政権への誘導」については、今夜、謝罪放送しとけ」 も言ってた


H24/03/29 参院総務委・片山さつき&礒崎陽輔【犬HKを質す!!】解約お勧め
www.nicovideo.jp/watch/sm17394218

03.29 参議院総務委員会 片山さつき議員(自民)NHKの諸問題を追及
www.nicovideo.jp/watch/sm17394300


873 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/07(土) 23:09:41.61 ]
DXライブラリのDrawGraph関数みたいなものを作ろうとしています。
画像の読み込みは後回しで、とりあいず100*100の白い四角形を描写しようとしたのですが・・・数ドットずれてしまいます。

w = 640;
h = 480;

HWND hWnd = CreateWindow( _T("D3D Window Class"), windowtitle ,
WS_OVERLAPPED | WS_SYSMENU , 100, 100, w , h ,
NULL, NULL, wc.hInstance, NULL );

でウインドウのサイズは640*480になっているはずなのですが・・・ここで次のような問題が発生してしまいます。

DDKL::DrawGraph(640,480,0);だと、ウインドウ外に四角形が描写される。これは成功なのですが・・・
DDKL::DrawGraph(634,452,0);もウインドウ外に四角形が出て描写されてしまいます・・・。 ←おかしい!!
ウインドウのサイズは640*480になっているはずだから、四角形が画面右下からすこしだけ表示されないとおかしいと思うのです。
DDKL::DrawGraph(633,451,0);だと、ウインドウにぎりぎり1ドット映ります。

なぜ、ずれてしまうのでしょうか・・・?
どなたか、アドバイスをいただけると幸いです。

私が模倣しようとしているDXライブラリのDrawGraphの説明
ttp://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_graph.html#R3N7


874 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/07(土) 23:16:00.32 ]
ちゃんとクライアント領域意識してる?
あと、数字によっては小数点以下の誤差があるよ。

875 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/07(土) 23:26:59.98 ]
クライアント領域・・・?本当だ!
>>874さん、即答ありがとうございます!
なるほど・・・描画のできる領域?だけで640*480というわけじゃないんですね・・・。
まさか、こんなに早く回答をいただけるとは・・・ありがとうございます;

876 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 12:41:48.42 ]
spy++とか使うといい

877 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 17:28:04.20 ]
チュートリアルに習って定数バッファにXNAを使っているのですが、射影変換がうまくいきません
具体的には何も表示されません
XMMatrixPerspectiveFovLHに入れているパラメータは上から
PI/180*45
16/10
0.0
1000.0
です
ワールド、ビュー、プロジェクション変数に全てXMMatrixIdentityを入れると変形されないポリゴンが表示されます
回転もZ軸方向に回らない回転ならうまくいきます
XMMatrixIdentity(単位行列)と回転がうまくいってるのでビューポートやバッファの初期化が間違っている、と言うことは無いと思いましたが、一応確認しました(そもそもコピペ
気になることといえば頂点バッファのByteWidthを頂点数+1しないとテクスチャがちゃんと貼れないということです
頂点数-1してみると表示される頂点が減って頂点数と同じ症状になります
使っているのはD3D11です

878 名前:>>877 [2012/04/13(金) 19:25:15.35 ]
>>877補足
ワールド変数 = XMMatrixIdentity();
ビュー変数 = XMMatrixLookAtLH(
XMVectorSet(0.0f, 0.0f, -2.0f, 0.0f),
XMVectorSet(0.0f, 0.0f, 0.0f, 0.0f),
XMVectorSet(0.0f, 1.0f, 0.0f, 0.0f) );
です

879 名前:>>877 mailto:sage [2012/04/14(土) 01:58:23.97 ]
頂点バッファの事で気になったのでその周り調べてみると頂点レイアウトのFormat設定間違ってました
相変わらず射影変換されませんが、案外こんなのかもしれないんで一度コード全部洗ってみます

880 名前:デフォルトの名無しさん [2012/04/17(火) 07:56:59.52 ]
9.0cの良書おしえてつかさい
customUIがわからない



881 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 17:29:20.89 ]
やーだよ

882 名前:デフォルトの名無しさん [2012/04/17(火) 17:32:13.93 ]
雑魚ばっかりだなあ

883 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 07:39:14.66 ]
directxをスマフォやブラウザで使えるようにしたい
これって違法じゃないよね?
勝手に移植して販売して訴えられたりとかしたら困る

884 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 14:14:07.93 ]
全然問題ないけど技術的な部分を理解した上でほざいているのか?

885 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 22:30:33.58 ]

HLSL初心者ですが、ご教授お願いします。
MMDデータ使って、頂点ブレンドをシェーダーでやろうと思ったんですが、

D3DXMATRIX g_pMatrixAllBoneArray = new MATRIX [boneNum];
pEffect->SetMatrixPointerArray( "world_array", &g_pMatrixBoneArray, boneNum );

boneNum=140とか普通入れていいものなのでしょうか?なんか効率悪そうな気がして

.fx側で
float4x4 world_array[];
とかサイズを動的に宣言したいんですが、どうすればいいのでしょうか?

よろしくお願いします。



886 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 00:04:45.63 ]
>>885
シェーダーバージョン3以下だとfloat4が256個までなんでfloat4x4だと64個までしかレジスタに入らなかったりするよ
配列を動的にってのはあれなんで最大サイズとっておいて使う分だけ転送とかは?

887 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 16:10:37.69 ]
>>886
ありがとうございます。

>シェーダーバージョン3以下だとfloat4が256個までなんでfloat4x4だと64個までしかレジスタに入らなかったりするよ
64個ですか。140個、全部送れれば実装が楽だったんですが。

> 配列を動的にってのはあれなんで最大サイズとっておいて使う分だけ転送とかは?
なるほど、そういうふうにやるんですね。

一般的に頂点ブレンドのボーンの行列配列というのはどのように送るべきなのでしょうか。

ボーン配列が全部入れられないので、サブセット毎に一時的な配列を作る。(40個ぐらい)
そのためのindexを作成する必要がある

頂点宣言はこんな感じで

struct ORIGINAL_VERTEX {
D3DXVECTOR4 pos;
D3DXVECTOR3 normal;
unsigned color; //頂点色
D3DXVECTOR2 uv;
float weight[MODEL_BLEND_COUNT];
unsigned short index[MODEL_BLEND_COUNT];
unsigned short indexInShader[MODEL_BLEND_COUNT];
};

ボーン数が多い場合、こんな実装が一般的なんですか?
なにか違和感があるような…


888 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 01:00:29.65 ]
MMDの場合、MMEを見ればわかると思うが頂点のスキニングはCPUでやって
スキニング済みの頂点をGPUに送りそこでワールドビュープロジェクション変換してる
MMMの場合はサンプルのfxmを見る限りGPUでのスキニングでvs_3_0と書いてあるのでその制限の中でやっているのだろう

とりあえずシェーダーのセットアップが必要なマテリアル単位で
使っているマトリクス(ボーン)数だけを送ることになるんだろうけど
もちろんそれでも想定したレジスタ数を超えることがあるので
それが超えないようにプリミティブを分けて複数回の転送&描画が必要になる。
この分け方はまぁ自分で考えて。

例に出てる頂点宣言のORIGINAL_VERTEXだけど
プリミティブを分ける以上 隣り合った三角形が必ず同じ描画になるというわけないので
一つの頂点に indexInShader が一つにするのは至難の業になるかもしれず。
じゃぁブレンドインデクスはストリーム分けてってのはかなりのメモリが無駄になるような気もするので
分けた後の描画数分のVertexBufferとIndexBufferおよび
Matrixの元インデックス→シェーダーに送るインデックステーブルを生成するのが手っ取り早いと思う
頂点モーフやUVモーフがあるので生成した頂点に元の頂点インデックスを知る手段もなにかしらで生成。

でindexInShaderだけどどうせ256以内に収めるんだしD3DDECLTYPE_UBYTE4のunsigned char indexInShader[4]でいいんじゃないかな?
[4]って書いたのは.pmxのBDEF4のため。
SDEFをやるならVECTOR3のC、R0、R1も追加。

あとスキニングなら回転(拡縮)と移動だけなので転置して1列削れば
floatの数が12個なので1ボーンあたり3レジスタ分でいけてお得

889 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 20:02:36.13 ]
>>888
規制がされてるので携帯から失礼します。

うーん、難しい
レス有り難う御座います
original_vertexは元のインデックスをC+側クラスで保存しときます

あー表情のプログラムのことモーフっていうのか
並べ替えたら破綻する可能性、全く考慮してませんでした。
とりあえずはC側では実装出来てるので、またあとで実装してみたいと思います。

PMXは色々機能有るんですね、クォータニオンの補間がBDEF2の場合しか上手くいかず、拡張し難い実装した気がしますw


890 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 20:08:15.08 ]
続けて失礼します

unsigned charにします
D3DDECLTYPE_USHORT2がない理由がわかりました。
そんなにレジスタないからですね。

groupId : material0 での三角形単位の使用ボーンインデックス
0 : ( 9, 40, )
1 : ( 9, 72, )
2 : ( 20, 23, )
3 : ( 41, 42, )
4 : ( 73, 74, )
5 : ( 136, )

material0 内で使用したボーン. 9, 20, 23, 40, 41, 42, 72, 73, 74, 136,





891 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 20:08:54.92 ]
material0でのグループ分け開始
indexBufferのindex : groupId
index 0: 4
index 3: 4


index 429: 4
index 432: 3


index 861: 3
index 864: 1


index 1059: 1
index 1062: 0
index 1257: 0
index 1260: 5
index 1833: 5
index 1836: 2
index 2073: 2
index 2076: 5
index 2121: 5
index 2124: 2
index 2241: 2
index 2244: 5
省略

とりあえず、ここまで進みました。わかりにくいと思いますが…
ここからIndexBufferを並べ替えてやろうかなーとか思ってます。
また、何かありましたらよろしくお願いします。

892 名前:デフォルトの名無しさん mailto:sage [2012/04/23(月) 03:48:20.81 ]
WindowProcとMainWndProcの違いって何でしょうか?
もう何がなんだか分からない…

893 名前:デフォルトの名無しさん mailto:sage [2012/04/23(月) 13:42:14.99 ]
Win32SDKのみの環境ならWNDCLASSEXのlpfnWndProcで設定された名前だから
なんでもいいんじゃない?どっちでも一緒かと
その他別のライブラリとかのコールバック関数なら知らない

894 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 09:18:34.85 ]
複数のモデルが同じテクスチャを参照している場合は、
VRAMに送られるテクスチャの実体って一つなんですか?

たとえば3Dソフトなどで木のモデルを自動生成した(頂点の個数や座標は個々に違う)場合とかどうなるんでしょうか

895 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 16:11:19.72 ]
Release()とGMA500について質問です

DirectX7以前に作られたゲームを
Win7とGMA500の機種でプレイすると
if (xxx) xxx->Release(); で
必ず落ちることがわかりました
それもDirect3DDeviceなど
GPUに関するインターフェイスだけです

igdumd32.dllでエラーが出てるので
インテル最新の8.14.10.2030にしましたが
結果は同じです

同じ機種にXPだと問題ないですし
GMA3000など他の環境でWin7でも
問題なく動いてます

互換性の問題で古いDirectXで
ビルドする必要があります
これは相性の悪い組み合わせとして
諦めるしかないのでしょうか?



896 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 01:16:22.83 ]
環境を疑う前に自分のコードを疑え

897 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 07:36:34.10 ]
>>896
もちろんやってます
最低限のDD、Primary、D3D、D3Deviceだけ作り
ReleaseしようとするとDirect3DDeviceでエラーです
テクスチャを読ませると
DirectDrawSurfaceで同様になります

このトラブルはVistaの頃から続いてるようで
DirectX9でも同じエラーを確認しました
何か決定的な対処法が見つかってないかなと思い
質問してみたわけです

試してみたところ
Releaseせずに処理を進めれば
問題なく動作してしまうので
GMA500が勝手にそうしてしまうのか
よくわかりませんが
Releaseが必要かどうかを知る方法は
ありませんよね?

それともVista以降ではReleaseせずに
上書きするようにCreateするんでしょうか?
でもSDKにはそんなこと書いてませんし
GMA3000やGMA4500では
Release必要だったので違いますよね

898 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 08:30:29.61 ]
もっと自分のコードを疑え。
最低限のコードだけでも貼れば、誰かが間違いを指摘してくれるかも。

899 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 15:42:32.66 ]
Releaseでクラッシュするとか、たいてい初期化していない物だったり、破棄済みを更に呼び出すとか素人コードな。
あとシングルスレッドのデバイスなのに複数のスレッドからアクセスするってのもNG。
他には、メモリ書き込みで他の領域を壊してしまったとか。

間違いなく、お前のコードにバグがある。

900 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 17:39:16.03 ]
あれからいろいろ試しましたが
テクスチャを使用してポリゴン表示すると
Direct3DDeviceかテクスチャのReleaseで
エラー出るようです
テクスチャ読んでも使用しなければ普通にReleaseできてます

テクスチャを2枚読んで
2枚のポリゴンにそれぞれのテクスチャを貼り
終了するときReleaseさせると
なぜか片方のテクスチャだけReleaseできます

RenderStateでテクスチャのハンドルを渡しますが
これをNullで消そうとしてもエラーです
どうやら最後にRenderStateで伝えたハンドルの
テクスチャをReleaseさせようとすると
このエラーが出るようです
なぜ開放してくれないのかはわかりません

逆にデバイスがロストしたときは
デバイスやテクスチャは生きてるのに
実際はRelease済みになってるので
Releaseさせようとするとエラーです
DxSDK付属のサンプルでもエラーです
SAFE_RELEASEマクロが機能しませんので当然こうなります

DirectX7で作られたゲームや
DxLibで作られたゲームでも
同様な環境でGPUを使うと
同じエラーが出てるようです
その後の対処法が見つからず
情報が止まってしまっているので
解決できたのかどうかわかりません



901 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 18:05:41.98 ]
ところでエラーって何なのさ?
例外?エラーコード?

902 名前:デフォルトの名無しさん mailto:sage [2012/04/29(日) 18:19:08.37 ]
>>901
AppCrashでigdumd32.dllからエラー出ます






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

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

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