DirectX総合スレ (Part9)
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名前は開発中のものです。
2009/02/11(水) 05:00:58ID:viN0kzG2■過去スレ
DirectX総合スレ
Part 8: http://pc11.2ch.net/test/read.cgi/gamedev/1205306118/
Part 7: http://pc11.2ch.net/test/read.cgi/gamedev/1179516297/
Part 6: http://pc11.2ch.net/test/read.cgi/gamedev/1163691532/
Part 5: http://pc8.2ch.net/test/read.cgi/gamedev/1157727402/
Part 4: http://pc8.2ch.net/test/read.cgi/gamedev/1132937938/
Part 3: http://pc5.2ch.net/test/read.cgi/gamedev/1105333209/
Part 2: http://pc5.2ch.net/test/read.cgi/gamedev/1095863432/
Part 1: http://pc5.2ch.net/test/read.cgi/gamedev/1083728025/
0948名前は開発中のものです。
2010/01/23(土) 07:53:21ID:XTmZvqhaとりあえずカメラの前にいるか後にいるか判定すればよくね?
内積でできるけどそれでうまくいかないって言ってる?
0949名前は開発中のものです。
2010/01/23(土) 14:07:28ID:o3xuuS/Q(;・Д・)な、成る程!
ちょっと内積の復習してきます。ありがとうございますっ orz
0950名前は開発中のものです。
2010/01/24(日) 00:22:38ID:bva3IbZK3Dゲームで「キャラクターの頭の上」に名札を表示させる場合、
一枚の画面最前面の板ポリゴンに書き込むのではなく
「名札がキャラ同様に、地形にも隠れる」演出をするには、
ポリゴンを頭上に置いて描くしかないのでしょうか?
何か別の方法が有ったりしますでしょうか。
0951名前は開発中のものです。
2010/01/24(日) 00:54:04ID:UdZPpZV2地形に隠したりするなら他の方法は激しく面倒だと思うが。
0952名前は開発中のものです。
2010/01/24(日) 02:08:01ID:j566ynkRビルボードで調べればそれじゃね?
0953名前は開発中のものです。
2010/01/24(日) 11:44:09ID:FIbykN/e>地形に隠したりするなら他の方法は激しく面倒だと思うが。
やはりそうなのですね。ありがとうございます。
>>952
ですね。何か他に負荷の低い方法が有れば・・と思いましたが
表示量を絞るなりで対応しようかと思います。ありがとうございました。
0954名前は開発中のものです。
2010/01/24(日) 22:25:29ID:UdZPpZV21文字ずつDrawPrimitiveしないで、画面全部の文字まとめて1回のDrawPrimitiveで書けよ。
0955名前は開発中のものです。
2010/01/25(月) 01:13:41ID:VSiYVhth0956名前は開発中のものです。
2010/01/25(月) 02:03:32ID:HeaS+vGp1キャラ単位でDrawPrimitiveする形で作ってました・・
重い処理だとはかねがね見聞きしていましたが、
まとめる方法が有るんですね。 ちょっとやり方を探してみようかと思います。ありがとうございます。
0957名前は開発中のものです。
2010/01/25(月) 02:32:12ID:VSiYVhth多分必要になるw
ワールド変換 → ビュー変換 → 射影変換 → ビューポート変換
ワールド変換でワールド座標(ワールド座標)
ビュー変換でカメラ座標(カメラのローカル座標)
射影変換で同次クリップ空間(xyが-1〜1になるzは0〜1)
ビューポート変換でスクリーン座標(スクリーンの座標になる)
0958名前は開発中のものです。
2010/01/26(火) 00:11:22ID:GHBlcTDWキャラクター位置(より少し上か)の3D座標をスクリーン座標に変換(z値もしっかり非同次化)。
変換後の座標を元に、名札大のポリを作成する。
もちろんスクリーン座標系での話だから、任意の大きさにするのは簡単。
名前を描いたテクスチャ(普通は名札ポリと同じ大きさ)を、名札ポリに貼りつけて、
トランスフォーム・ライティング済みのポリとして描画すればZバッファも反映される(隠れる)と。
これが一番簡単じゃないかな。あちこちで処理も省けるし。
ビルボードだと文字の大きさが変わるか、或いは手間かけた割に読みづらくなるよ。
0959名前は開発中のものです。
2010/01/26(火) 19:06:38ID:Cnd2uXTEありがとうございます。
>>958
詳細な説明ありがとうございます。
>(z値もしっかり非同次化)
の非同次化とは3D→2D? 0.0fで大丈夫でしょうか。
>トランスフォーム・ライティング済みのポリとして描画すればZバッファも反映される(隠れる)と。
私が唯一知ってる平面ポリゴンの描画方法は、FVFに D3DFVF_XYZRHW を当てる事なのですが、
これだとZ値が0〜1までしか描画されないようで、Zバッファの反映が望めず・・
せっかく答えを書いて下さっているのに、やり方が・・|||llorz
0960名前は開発中のものです。
2010/01/26(火) 20:01:04ID:APLpgQP8問題ない
0961名前は開発中のものです。
2010/01/26(火) 21:51:45ID:1UMmshNW0.0fじゃないですよ。960氏の言うとおりにすれば、z値は0〜1に収まるので、
その値を頂点バッファのz値に。あとは大丈夫そうだね。
0962名前は開発中のものです。
2010/01/27(水) 11:02:00ID:1JDTf6lvテストして上手く行きました、ありがとうございます・・!o(_ _)o
D3DXVec3Projectメソッドの第一引数が3次元ベクトルなのは
この為だったのですね・・。ご助言頂いた方々、本当にありがとうございましたっ orz
0963名前は開発中のものです。
2010/02/03(水) 14:24:41ID:Hfya6LBnVS2008のC#で組んでるんだが、思うように文字が表示できない。
以下コード
private Microsoft.DirectX.Direct3D.Font DisplayFont
〜略〜
private void CreateFont()
{
FontDescription fd = new FontDescription();
fd.Height = 16;
fd.FaceName = "HGP創英角ポップ体";
DisplayFont = new Font(DrawDevice, fd);
}
〜略〜
public void TextsSetting()
{
DisplayFont.DrawText(null, "Hello World", new System.Drawing.Point(16, 16),System.Drawing.Color.White);
}
という感じで画面にHello Worldを書きたいのだが、
MSゴシックやMSPゴシック、MS明朝みたいな当たり障りのないフォント以外は認識されない
HG丸ゴシックや、HGP創英角ポップ体を指定するとPゴシックにされてしまう。
フォント名はWordとかの書式設定の指定コンボボックスからコピペしてるんで、
全/半角が違うとか、そもそもそのフォントが入ってないとかいう問題ではないハズなんだが
MSゴシックやMS明朝は正常に表示されるので、
これらに関しては上記コードの指定方法で問題はないんだと思う。
0964名前は開発中のものです。
2010/02/03(水) 14:42:44ID:FZoiDZbl0965名前は開発中のものです。
2010/02/03(水) 15:05:47ID:Hfya6LBnこのFontクラスはDirectXのクラスじゃないってことか?
>FontDescription
こいつもDirectXを追加しないと使えないモノなんだけど・・・
完全にスレ違い?
0966名前は開発中のものです。
2010/02/03(水) 15:11:57ID:EDepku+1とりあえずこっちで
【C#】 Managed DirectX 【.NET】
http://pc11.2ch.net/test/read.cgi/gamedev/1195136419/
0967名前は開発中のものです。
2010/02/03(水) 15:25:28ID:EDepku+1これで治らなかったらあっちで改めて。
0968名前は開発中のものです。
2010/02/03(水) 15:47:08ID:Hfya6LBnありがとうございます。
しかし、申し訳ないが理解できません。
CharSetて、dllImport使うときに指定するやつかね?
この場合「fd.FaceName="***"」こいつに使うことになる?
それとも文字のエンコードとかを指定しろってことですかい?
0969名前は開発中のものです。
2010/02/03(水) 15:51:35ID:EDepku+1fd.CharSet = CharacterSet.ShiftJIS;
とか入れろって言ってるんだが。
0970名前は開発中のものです。
2010/02/03(水) 15:58:45ID:Hfya6LBnFontDescriptionメンバにCharSetがあるのに気がついてなかった。
試してみるよ。ありがとう。
0971名前は開発中のものです。
2010/02/07(日) 11:45:37ID:NfYbgaUb偶に見聞きするDDS TGA HDR?というのはBMPより高速に読み込めるのでしょうか?
結局読み込んだ後の速度は変わらないのだと思うのですが・・
テクスチャにBMPをあまり見かけないのは、これ以外にも理由が有るのでしょうか?
0972名前は開発中のものです。
2010/02/07(日) 11:51:45ID:hZel436I半透明のテクスチャなんかを使う場合に他のフォーマット使う
0973名前は開発中のものです。
2010/02/07(日) 11:56:07ID:/dFrjetiってイメージがある
実際は圧縮とか出来るのかな?
0974名前は開発中のものです。
2010/02/07(日) 11:59:12ID:laxL7WBEまぁ、でも普通はサイズデカいから使わんわな。
ランタイムでの速度よりも、配布時のサイズの観点からBMPはあまり使われんのだろうね。
あと、アルファは32bitBMPだったら使えるんじゃなかったっけ??
0975名前は開発中のものです。
2010/02/07(日) 12:01:48ID:hZel436I独自で圧縮したファイルを読み込んで展開してテクスチャにってやれば
データ直置きも避けられるし、読み込む速度にフォーマットによってそれ程大きい差も出なくていいと思うんだが
0976名前は開発中のものです。
2010/02/07(日) 18:23:11ID:Y251RA+hありがとうございます。32bitBMPでアルファを使う事は成功してますね。
そして問題はサイズの方っぽいんですね。
アルファ対応で小さめで読み込み対応の形式・・ちょっと調べてみようかと思います。
ありがとうございました。
0977名前は開発中のものです。
2010/02/08(月) 00:23:30ID:yO70DaFt再ビルドする分でものすごい量になってた
0978名前は開発中のものです。
2010/02/08(月) 00:48:15ID:WdK9edWFアンタのレスみて俺も確認してみたが・・
ものすごいことになってたww
殺すぞMSww
0979名前は開発中のものです。
2010/02/08(月) 01:22:20ID:WErBsFGj0980名前は開発中のものです。
2010/02/08(月) 01:37:09ID:vwJjmafm重複しない方法とかみつけた。
ttp://d.hatena.ne.jp/Niqnem/20080709
DirectInput8Createを使わずに、
CoCreateInstanceを使って生成すればいいって記事もみて、
そのとおりにしてみたら、どうも初期化に失敗してしまった。
簡単に試しただけだからよくわからんが参考までに。
0981名前は開発中のものです。
2010/02/08(月) 14:15:14ID:4VRGw2Nq一々両方LockRect〜UnlockRectしてると余計な負担が有りそうな疑問がふとよぎったのですが・・。
0982名前は開発中のものです。
2010/02/08(月) 14:49:40ID:4VRGw2Nq0983名前は開発中のものです。
2010/02/08(月) 15:37:34ID:5Xy/jQtECoInitializeEx(NULL, COINIT_MULTITHREADED);
…でCOMの初期化をしたDirectXアプリをPIXで動かすと、CoInitializeExがRPC_E_CHANGED_MODEを返してうまく動作しないようなんだが、これ仕様なのかね。
CoInitializeだと問題ないようなんだけど…
0984名前は開発中のものです。
2010/02/08(月) 17:27:11ID:yO70DaFt0985名前は開発中のものです。
2010/02/09(火) 00:54:56ID:2v/x01jS反吐が出るほど嫌いなんで
出来れば使いたくない
0986名前は開発中のものです。
2010/02/10(水) 00:05:24ID:Jt/Ua+0PWM_MOUSEWHEEL経由して取るしかない?
0987名前は開発中のものです。
2010/02/10(水) 04:28:34ID:1qPIGpQzRaw Input
ホイールに限らず、マウスの生のデータが欲しいときはこれを使う。
レス数が950を超えています。1000を超えると書き込みができなくなります。