[表示 : 全て 最新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/

85 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 10:17:20.86 ]
XNAは資料とかあるけど、SlimDXはほとんどないよね


86 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 11:55:39.41 ]
ただのラッパーに必要な資料とは何ぞや

87 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 06:53:02.80 ]
>>82
パッと見、vertexIndicesがbyte配列なのがまずいんだと思うよ。
short配列にするかint配列にしてsixteenBitIndicesをfalseにしてやってみ。

88 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 17:16:53.86 ]
頂点ブレンドに関して、線形でやっていたのですが、つぶれに我慢できずデュアルクォータニオンにしてみました。
しかしねじれに関しては中々なのですが、曲げに関しては膨らんでしまうのがどうも・・・。

知人に、今はデュアルクォータニオンより良いブレンド方法があると聞いたのですが、どういうものなんでしょうか?

89 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 17:55:05.98 ]
>>88
知人に聞け

90 名前:88 mailto:sage [2011/11/11(金) 18:16:01.14 ]
知人はモデラーでして、曖昧な上にプログラム的なことはさっぱりなのです
検索しても出てきませんし、知人の勘違いですかねぇ

91 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 20:16:39.47 ]
>>90
モデリングソフトの話ならメーカー独自のワケわからんのがたくさんある
でも計算式が公開されてるわけではないんだぜ

92 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 23:34:35.46 ]
曲げに関して膨らんでしまうのはブレンド手法うんぬんよりも
むしろデータの方に問題があるんじゃね。
どんな入力データでも破綻なく描画できる魔法のブレンド手法っつー意味ならないよ。

ところでここは初心者スレな。

93 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 00:51:55.22 ]
上級者スレなんかあるのか
鬱出し脳スレも昔になりにけり



94 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 05:54:09.18 ]
C++とDirectxSDKを落として参考書もそろえたのに、1週間経ってもエラーだらけで何も始められていない
何がいけないんだ・・・

95 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 06:22:18.55 ]
>>94


96 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 13:58:21.75 ]
誰か上級者スレ立てろよ
俺みたいなスーパーハイレベルプログラマになると
このスレの話題は初歩的すぎて暇つぶしにもならない

97 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 15:37:25.85 ]
上級車は自己解決できるから、スレなど不要。

98 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 18:08:57.81 ]
中級者は?

99 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 19:02:16.49 ]
ハイパーかわいいスーパープログラマなオレも中級以上スレはあればうれしいな
会社でいまだにXP使わされてるやついるから9まででしかプログラムさせてもらえないオレに
テッセレーションとかの話題を見せ付けて癒してくれ

100 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 19:06:59.99 ]
曲線の話ならもしかしたらいくつかのサンプル点から連立方程式を解けば計算式が出・・・無理無理w

101 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 21:01:57.59 ]
サンプル点の最小の数としてとりあえず3つのP0、P1、P2があるとして
そこからコントロールポイントを各線に二つ生成して3次ベジェを作るとする
(3次はいろんなお絵かきソフトで使われてて馴染み深いから)

P1の両脇に生やすCPのの傾きは
sv = normalize( P2 - P0 )
もしくは
nv = normalize( P1 - P0 ) + normalize( P1 - P2 )
cv = P2 - P0
sv = cv - nv * dot( cv, nv )
とかやって長さは∠P1の角度をもとに線の長さの1/3〜2/3あたりになるようにし
3次元上に曲線を引いてみたら結構きれいにいったんだけど
それをPathとしてキャラを歩かせたりしたら
当たり前だが速度が一定にならず困ったもんだ。

ニコニコで有名なあのPV作成ツールのように時間軸も曲線で補間するしかないが
あれのパラメータでやると二分探索(Newton法)かBezierClipで求めることになるのかな

とかそういう話題でハイパーかわいいスーパープログラマ、オレを癒してくれ

102 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 21:10:05.24 ]
3D技術の話はスレチ
ここはDirectXを応用する前段階の人が来るスレです

103 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 23:08:23.59 ]
>>101
てか、こんな馬鹿な方法で1メーカーの1コンテンツを再現できるわけない
っていう予想も立てられずにやってみてる時点で無駄てか馬鹿



104 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 11:41:55.56 ]
3Dアルゴリズム全般
hibari.2ch.net/test/read.cgi/tech/1164171086/

105 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 22:05:26.53 ]
モニタの解像度より小さくできないゲーム(アプリでサイズを変更したら右と下が切れる)があるんだけど
これをキャプチャして縮小して再表示して遊ぶ、みたいなことはDirectXでできる?

106 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 22:08:54.98 ]
常にフルスクリーンなアプリなの?
意味が分からん

107 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 22:17:49.55 ]
今使ってるモニタよりゲームの要求してる解像度のが大きいということです
ゲームのクライアント領域が1024*768(無理やり小さくすると右と下がはみ出て描画されない)だけどモニタが1024*600しかない、という感じで


108 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 23:29:19.53 ]
>>107
キャプチャ・縮小再表示まではできる
遊べるかどうかは君のパソコンのスペック次第だろうが・・・無理だろ?
でかいディスプレイ買うべきだと思うけど、きっとネットブックか何かだろ?

109 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 00:09:47.55 ]
CreateFont関数って実用性ありますか?
ノベルゲームで使えるぐらい文字を表示したら遅かったりしませんかね?

110 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 00:14:40.17 ]
ID3DXFontですね、すみません

111 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 08:50:57.20 ]
>>110
bitmap画像用意する方法と比較検討したことがあるけど、速度面で大して有利でもなかった
ノベルゲームで使う分には申し分ないはずだけど、過去の資産があるなら乗り換えるほどじゃないよ

112 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 17:41:49.71 ]
>>111
なるほどありがとう

113 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 03:25:08.69 ]
Direct3Dのベクターデータをプリンターに出力することってできますか?



114 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 08:09:33.43 ]
レンダリング結果じゃなくベクトル?
まわりではポリライン使ってる人が多かったかも、ノーマライズしてるのだけ色分けしたりしてた

115 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 12:11:55.30 ]
>>114
>レンダリング結果じゃなくベクトル
そうです。ベクトルデータを出力したいです。
四苦八苦しましたが、どうも無理な気がして質問してみました。
ポリラインですか。ちょっと調べてみます!



116 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 12:24:49.40 ]
どういうふうに出力したいのか不明だし、それが分からない限り無理だろう。

117 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 12:34:48.53 ]
初心者スレだし、質問者に正確さだとか詳細さを求めてもなあ

118 名前:113 mailto:sage [2011/11/17(木) 12:40:34.79 ]
>どういうふうに
Direct3Dで描画してるんですが、
デバイス作成(CreateDevice)時にウィンドウのハンドルを渡しますよね。
プリンターの場合はウィンドウハンドルが存在しないのでデバイス作成できずに困っている状態です。。。



119 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 13:39:36.16 ]
ほら、結局は話を聞かないで余計な気を回すと、こういうくだらない落ちになる。

120 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 14:49:08.99 ]
>>118
発想の飛躍っぷりがすげー。
プリンタ(プロッター?)をD3Dデバイスとして扱おうってのは完全に用途外だし無理な相談。

そもそもD3Dを使わなきゃいかんほどのリアルタイム性が求められるような話でもないだろうから
それ用に設計された別のライブラリ探すか自力で組むかした方が早いと思うよ。

D3Dは3Dに関することなら何でもやってくれる魔法のライブラリ、ではないので。

121 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 15:08:43.95 ]
単にサーフェイスへレンダリングした後、それをBltすればいいだけの話。
D3Dは何でもやってくれる訳じゃないが、今回のケースぐらい処理できる。
直前にアホが混ざってるけど。

122 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 15:28:20.05 ]
デバイスコンテキストハンドルとDirect3Dのデバイスをごっちゃにしてるのかね
秒間60枚印刷するプリンタを想像してワロタ、パラパラ漫画とか作れそうだな

123 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 15:47:43.50 ]
>>121
>>115見る限りベクター形式の(解像度非依存の)印刷用データを
D3D使って吐きたい、というように読めるんで
そういう方向には対応してませんよという意味での「魔法のライブラリではない」なんだけど。



124 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 15:48:51.27 ]
物理的に印刷して遊べるゲームか
プリンタ何台必要なんだ


125 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 18:05:21.70 ]
環境型ゲームで主人公がカメラ持ってて、写真取ると物理的にプリンタから出てくるとか。妄想妄想・・・。

126 名前:113 mailto:sage [2011/11/17(木) 18:19:10.50 ]
自分の無知と言葉足らずのせいで混乱させてしまったようでスイマセン

「プリンターに出力」というのは紙を印刷するわけではなく
具体的には「仮想プリンタドライバに出力」するのが目的です

>>121
>それをBltすればいいだけ
Bltしちゃうとベクトルデータではなくなってしまいますよね?
D3Dにおけるベクトルデータがどれにあたるのかが分かってないですが。。。

>>120
勝手な推測ですが、あなたは私の目的を過不足なく理解してくれている気がします
>プリンタ(プロッター?)をD3Dデバイスとして扱おうってのは完全に用途外だし無理な相談
このトドメのひとことを言ってもらって諦めがつきました

頂いたレスにあるようにリアルタイム性が求められる部分ではないので
描画方法を変えるしかない、というのを前提に対策を考えようと思います

127 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 19:16:24.47 ]
ベクトルが何か分からないってのはかなり問題、3Dの基礎から順番に学ぶべきかと

128 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 19:28:34.98 ]
出力結果をどうしたいのかはっきりしないのに、
プログラムの組みようがないだろう。

129 名前:113 mailto:sage [2011/11/17(木) 19:57:43.80 ]
>>127
>3Dの基礎から
その通りですね
現状のコードは自分が書いたものでなく、処理の流れを最初から確認していったら
初っ端のCreateDeviceで困ってしまったという情けない状態です。。。
GDIでの処理は経験あるので簡単にできるとナメてました

>>128
出力結果をどうしたいのかはハッキリしているので大丈夫です
ただ、D3Dを使わずに現状の処理を実現できるんだろうか、と途方に暮れています

最悪BMPデータで妥協するしかないかもしれません

130 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 20:05:55.76 ]
3Dグラフィックスなんかで使う数論的な意味での「ベクトル」と
画像データの格納形式区分としての(ラスターに対する)「ベクター」は
言葉としては同じvectorだが全然別の概念なので注意な。

131 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 20:08:28.76 ]
>>129
たぶんあなたに必要なのはベクトルや行列を計算するライブラリであってDirectXではない
Direct3Dってのは最終的にラスタライズする使い方がメイン、これに固執してもきっと遠回りになる

132 名前:113 mailto:sage [2011/11/17(木) 21:21:38.97 ]
>>131
>たぶんあなたに必要なのはベクトルや行列を計算するライブラリであって
いえソッチじゃないです
>画像データの格納形式区分としての「ベクター」
こっちです

GDIでの画像処理の経験はあるのでそのへんの混乱はしてないです
日本語で表記するときベクターって書いたりベクトルって書いたりしちゃいますけど

133 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 21:27:44.58 ]
まずはプリンタに出力したいものをディスプレイに出せ。
あとはプリンタのDCにBltすれば解決する。
ただそれだけの話だ。



134 名前:113 mailto:sage [2011/11/17(木) 22:01:11.82 ]
>>133
>プリンタのDCにBltすれば解決する
BltしちゃうとBMPデータになっちゃいますよね?
最悪そうするしかないかと思っているんですが、
自分がやりたいのはベクトルデータの出力なんですよ。

かなり無理のある話だとは思うんですが。。。

135 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 22:29:55.74 ]
プリンタもディスプレイと同じ、点の集合で紙の上に何かを表示するデバイスだ
抽象的な話をしててもきりがない、具体的にプリンタの機種名出せよ

136 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 22:32:16.72 ]
2Dのベクタ画像を3D空間中で処理して、その結果をまたベクタ画像として取り出したいの?
だったらビューポート変換までやった後の画面バッファから頂点位置取り出せばいけるんでない?

137 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 03:37:42.92 ]
>>132
君がご所望のは以下のようなものだと思うのだけど、DXは関係ないと思うナー。
ttp://ja.wikipedia.org/wiki/Windows_Metafile

モデラー作って変換して印刷って感じになるような気がする、気がする。

138 名前:113 mailto:sage [2011/11/18(金) 12:34:02.44 ]
>>135
>プリンタもディスプレイと同じ、点の集合で紙の上に何かを表示する
いいえ違うと思います
プリンタは処理するときに点の集合でなくベクトルデータとして処理しています
自分は仮想プリンタドライブに出力し、
ベクトル形式の画像ファイルを作るのが目的です(これができれば紙にも印刷できると思いますが)。

>>136
ありがとうございます
調べてみます!

>>137
そうです。MetaFileのようなベクトル形式のデータが欲しいです
そのデータを作るうえでD3Dを利用できないのかなあと暗中模索しているところです

おそらく結論は>>120ってことになる気がしています。。。

139 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 12:36:47.21 ]
>>138
>プリンタは処理するときに点の集合でなくベクトルデータとして処理しています
それはプロッタじゃ

140 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 13:09:28.89 ]
>>138
プリンタの実装にもよるけど基本的に現行のプリンタは原理的にラスターではあるよ。
内部的にPostscriptやらHPGLやらのベクターデータを実装してるような機種もあるけど
いわゆるレーザープリンタとかインクジェットプリンタってのは最終的には全部ラスターに変換される。
ペンを使ってドローするタイプであれば確かに原理的にベクターだけど、それは>>139の言う通り、普通はプリンタとは言わずにプロッタと言う。

なんつーか>>135もあなたも自分のフィールドの知識だけで物事を断定するのは止めたほうがいいと思うよ。
っていうかもう結論出てるんだしそろそろスレチ。

141 名前:113 mailto:sage [2011/11/18(金) 18:22:37.79 ]
>>140
そうですね、「プリンタ」だと間違いですね

140さんの言う通り、話題がプリンタになってしまっているんで、ここらで終了にして下さい
色々と教えて頂きありがとうございました

142 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 20:07:21.74 ]
どこかにDirectShowのサンプルプログラム置いてるとこ無いですか?

143 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 22:47:55.58 ]
C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow
あたりはどうだ?



144 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 22:59:37.67 ]
>>143
7.1には入ってるのか。7.0なんだけど入ってなかったわ。
んで、7.1入れようと思うんだけど7.0は消しちゃっていいの?

145 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 23:15:06.61 ]
D3DXCreateTextureFromFileEx();でWidthとHeightに0を渡すと、
例えば元のファイルが96*48だったときには実際には128*64で読み込まれるではないですか
このとき元の画像は128*64に拡大されるのですか
それとも元の画像はそのまま左上に寄せられて、他の部分は何かで埋められてしまうのですか

146 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 23:17:08.25 ]
埋立工事されます

147 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 23:22:37.90 ]
どういった素材で埋め立てられるのですか

148 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 23:44:55.87 ]
>>144
うちのv7.0には入ってるんだけど 入れるときにケチってカスタムでサンプルのインストール省かなかった?

めんどくさくてv7.0消さずにv7.1入れちゃったけど7.0のほうにあって7.1にないものってなさそうだし消しちゃってもいいんじゃね?

149 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 00:06:09.59 ]
>>148
ありがとう。
7.0は元から入ってたわ。もしからしたらVC++入れるときに一緒にインスコされたのかな。
7.0は一応そのままにしてインスコしますた。

150 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 00:53:27.01 ]
>>145
フィルタの設定次第でどれにでもなる

151 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 01:58:03.34 ]
透過についての質問です。
uploader.sakura.ne.jp/src/up68425.png
上のようなエフェクトを実装しようと考えているのですが、
このような透過のポリゴンを描画する場合、お互いに前後干渉してしまってうまく描画されません。
uploader.sakura.ne.jp/src/up68426.png
上の図で説明すると、赤の右側を描画する場合、先に奥の黄色がないといけないし、
かといって黄色を先に描画すると左部分で赤が先に描画されていないといけないしでうまくいきません。
どのようにすればこの問題を解決できるでしょうか?

152 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 02:20:36.83 ]
円じゃなくて半円の画像にすればいいじゃん

153 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 02:24:20.44 ]
>>152
その方法だと回転しながら描画した場合にやっぱり干渉してしまいますね...。



154 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 02:27:18.18 ]
画像を表示で前後関係がうまくいかないってことならわかるけど
メッシュだったらなぜそうなるのか分からない

155 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 02:35:05.96 ]
あんまりいい方法じゃないかもしれんけど、クロスしてるメッシュ2枚をY軸でナイフ入れて4枚に分割するとかはどうだろう。

156 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 02:38:32.56 ]
加算で描けば?
Zの書き込みはDisableで。

157 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 03:17:46.77 ]
分割面が常に固定ならクリッピング使って交差面の前と後2パスとかで描けるだろうけど
例示されたエフェクトみたいなのならそんなにコストかけるようなもんでもないし素直に加算使っとけだな。
α付き交差ポリゴンを1パスでお手軽に綺麗に描く方法はいまんとこない。

まさか単純にZWriteとかZCompの使い方がわからんっていう話じゃないよな?

158 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 16:25:05.98 ]
>>151はエロサイトへの誘導、通報済です。

159 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 23:06:29.93 ]
iup.2ch-library.com/i/i0483091-1321797945.jpg

文字化けするんですが、直せますか?

160 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 00:59:04.71 ]
>>159
CharSetが0ってAnsiじゃね? そこをSHIFTJIS_CHARSETにして
FaceNameはフォントの名前の設定だと思うから"MS Pゴシック"とかそのへんだろ

161 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 01:06:12.51 ]
>>160
マジ神
ホントに出来た

162 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 08:20:20.64 ]
リファレンスよめよ、、、

163 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 11:41:48.09 ]
マジ神とか回答者をバカにしてるとしか思えんわ。
礼の言葉くらいきちんと言え。



164 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 12:53:47.66 ]
そんなんでいちいち目くじら立てるなら初心者スレなんて見なけりゃいいだろ…

165 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 13:32:03.51 ]
ここは紙スレですか?

166 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 16:18:12.98 ]
IDirect3DDevice9からD3DPRESENT_PARAMETERSを取得する方法はないので自分で保存するしか無いってことでいいんですか?

167 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 17:11:19.06 ]
スワップチェイン経由で取るがよい

168 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 22:09:05.19 ]
あのDirectX9で2D描画したいと思っています
DrawPrimitive系の関数って実用的にはどう使われて居るのですか
DrawPrimitiveは遅いので呼び出しは一フレーム一度だけにしろと云われたのですが
そうなると複数テクスチャとか複数ポリゴンを扱うときに一体どうしろと云うのですか
あと3Dゲームでの実用についても知りたいです

169 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 22:12:49.13 ]
>>167
ども

170 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 23:14:14.45 ]
>>168
Direct3D9って前提で話をするけど、余程カリカリにチューニングするってんでもなければ
大体「ポリゴン単位で呼び出すな」程度の認識で大丈夫。
1フレーム1回ってのは流石に現代では無理がある。
余程古いハードウェアを前提にするんでもなければ別に数十回DrawPrimitive呼び出ししても60fpsは出るよ。
もちろんまとめられるようなパスは可能な限りまとめるべきだけど。

171 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 23:18:20.29 ]
一般的に見て一番早い描画法はなんなの?
インデックスバッハとかいうやつですか?

172 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 23:42:21.22 ]
>>170
ありがとうござます
ポリゴン単位とはつまり長方形の板ポリ一つずつということで合ってますか
それと、まとめるというのは頂点バッファをと云うことですよね
もしそうならテクスチャも纏めなければなりませんか
ユーザ側で元画像を用意してもらい、また任意で板ポリの数を増やして貰おうと思っているのですが、
画像を纏めるのをユーザが負担すると云うのは考えたくないものです

173 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 23:45:07.19 ]
>>171
一応インデックスバッファありの方が行列演算の絶対数は減るので
GPU的には早いとは言える。
正直それ以外のところで発生するボトルネック要因がいっぱいあるので
速度を理由にインデックスバッファを採用する理由はあんまないが。



174 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 00:09:12.79 ]
>>172
板ポリ一つずつで合ってるよ。
100スプライトなら4頂点+6インデックス+DrawPrimitive*100ではなくて
400頂点+600インデックス+DrawPrimitive*1する方が良いっちゃ良い。
その場合はもちろんテクスチャも一つにまとめるにこしたことはないけど
パターン数が少ないようならパターン毎にインデックスバッファを用意しておいて
パターン毎にパスを切り替えるやり方でもいいかもね。

175 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 00:13:33.76 ]
同じテクスチャ同士で頂点つなげてDrawPrimitiveならテクスチャの枚数分のオーバーヘッドで済むからもう十分じゃね?

176 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 07:43:17.82 ]
>>174-175
本当にありがとうございました


177 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 12:16:53.30 ]
すみません。.x形式でモデル&モーションを書き出しているのですが、
ツールが右手座標系で、プログラムが左手座標系なので反転させようとしています。
モデルはちゃんと反転できたのですが(x軸を-1倍)
ボーンの座標(中心位置)の反転(x軸を-1倍)が上手く行きません。

SkinWeights 項目のマトリクスの4_1(13番目)
FrameTransformMatrix relative 項目のマトリクスの4_1(13番目)
を-1倍してみたのですが、単純な回転モーションで確認しても変化が有りません。
ボーンの座標ではなくAnimationKeyに座標など全てが収まっているのでしょうか?

178 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 13:09:25.40 ]
.x形式まともに使ったことないからはっきりは言えないけど
アニメーションキーが存在していてそれを使って再生しているのであれば
普通は非アニメーション状態の変換行列は無視される。
(じゃないと取り回しが色々と不便になるから)
なのでアニメーションキーを変換する必要はあるだろうね。
その場合、おそらくメッシュの法線も反転するけど。

179 名前:177 mailto:sage [2011/11/22(火) 14:57:57.57 ]
>>178
>普通は非アニメーション状態の変換行列は無視される。
>(じゃないと取り回しが色々と不便になるから)
そうなんですね。その方が計算減りますよね。
ありがとうございました。 もう少し粘ってだめなら逆向きに作るとします。

180 名前:デフォルトの名無しさん [2011/11/22(火) 21:51:29.16 ]
すみません、質問です。
新しく接続されたコントローラー(デバイス)を認識して
DIRECTINPUTDEVICE8で取得したいのですが、DIRECTINPUT8::FindDevice()
が"クラスが登録さてません"というエラーを返してうまくいきません。
引数にはDBT_DEVICEARRIVAL→DBT_DEVTYP_DEVICEINTERFACEイベントの
DEV_BROADCAST_DEVICEINTERFACE::dbcc_nameとdbcc_classguidを渡しています。
もしかして使い方が間違ってるでしょうか?分かる方がいらしたら教えてください。
デバイス認識の試験にはコントローラを使用してます。

181 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 23:45:40.99 ]
void CMain::TP2(int left_in_x,int up_in_y,int right_in_x,int down_in_y,float *left_x,float *up_y,float *right_x,float *down_y){

*left_x=(1/16*(left_in_x-1));
*up_y=(1/16*(up_in_y-1));
*right_x=(1/16*right_in_x);
*down_y=(1/16*down_in_y);
}


float
Tx_Left_X,
Tx_Right_X,
Tx_Up_Y,
Tx_Down_Y;

TP2(1,1,1,1,&Tx_Left_X,&Tx_Up_Y,&Tx_Right_X,&Tx_Down_Y);

うまく数字が変わらないんです
ホントはTP2関数を使ったら
Tx_Left_Xとかの値が変わってるはずなんですが…

182 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 01:16:16.28 ]
とりあえず
1.0f/16.0f
こんな感じにしてみるとか・・・w

183 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 02:28:40.61 ]
だね。/も*も左から結合されていくから1/16が整数演算でゼロになっているという話。



184 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 06:25:21.80 ]
>>180
実行中に接続されたコントローラーを認識したいというのでもなければ
FindDeviceじゃなくてEnumDevices使えば?

185 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 08:06:35.61 ]
>>182-183
ありがとうございました
レスした後にこれは文法の問題だと気づきました
DirectX関係無いですよね、スレチですすみません






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

前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