【C++】 DirectX初心者質問スレ Part31 【C】at TECH
【C++】 DirectX初心者質問スレ Part31 【C】 - 暇つぶし2ch175:デフォルトの名無しさん
10/10/04 01:04:58
だからデバックしろって
VCみたいだからF5でデバック実行する
エラーがでて止まったら呼び出し履歴をみて最後に呼ばれた関数に飛ぶ
その中に適当にブレークポイントを打って止まる原因になってる行を突き止める
まぁ、たぶんNULLインターフェースのメンバを呼んでるとか
new してないインスタンスのメンバを呼んでるとかそんな感じだと思われ

176:デフォルトの名無しさん
10/10/04 01:06:19
二重deleteだろ

177:デフォルトの名無しさん
10/10/04 01:06:47
>>175
なるほど
ありがとう

178:デフォルトの名無しさん
10/10/04 14:11:12
EVRでレンダリングしている動画の上にIDirect3DSurface9を使って簡単なアニメーションを重ねたいと思います。
それに使うIDirect3DSurfaceはどこから取得するのが最適でしょうか?

179:デフォルトの名無しさん
10/10/04 14:35:00
別アプリのEVR対応アプリの上にってこと?

180:デフォルトの名無しさん
10/10/04 20:07:15
現在、Windows2000対応のアプリのためにDirectX SDKの
October2004をインストールしているのですが、最近のバージョンの
SDKと共存させることはできるでしょうか?
インストール先を別々にするだけで良いとかだとうれしいです。

181:デフォルトの名無しさん
10/10/04 20:11:28
結局何が別であるとうれしいかというとライブラリとかヘッダなので別にインストールすればいいんじゃね?
でも、環境変数とか同名の名前の衝突とかで食い合う気がするのでその辺の調整はいるかも。

182:デフォルトの名無しさん
10/10/04 20:12:07
Win2000対応のアプリなんて捨てろよw
XPからにしとけwww

どうせ貧乏人をサポートしてもそいつらコピーでしかあそばねえからwww

183:デフォルトの名無しさん
10/10/04 20:19:46
一応共存させることは出来る
インストール先を別にして
環境設定のインクルードディレクトリとライブラリディレクトリの優先順位を2004Octの方を上にしとけば基本そっちから使ってくれる
ただMSもあまりそれは推奨してないようなので不具合がでても自己責任

184:デフォルトの名無しさん
10/10/04 20:24:47
VS2010からは環境変数で設定するんじゃなくて
個々のプロジェクトごとに設定できるようになったから良いね
その分ちょっと煩雑にはなったけど

185:デフォルトの名無しさん
10/10/04 20:29:56
2010のってプロジェクトファイルそのものにSDKのフルパスが書き込まれるあたりダメダメじゃね?
インストールパスが違う他環境だとそのままじゃビルド不能になるし。

186:デフォルトの名無しさん
10/10/04 20:29:59
>>181-183
ありがとうございます、一応できるんですね
環境変数も注意して見ることにします

187:デフォルトの名無しさん
10/10/04 20:35:32
>>185
フルパスを書き込まなければ良い

188:デフォルトの名無しさん
10/10/04 20:37:18
ソリューションフォルダ以下にヘッダとライブラリを全部コピーするような真似しない限り
結局環境依存じゃねーか

189:デフォルトの名無しさん
10/10/04 20:38:15
$(DXSDK)
$(WindowsSDK)

190:デフォルトの名無しさん
10/10/04 20:40:07
SDK複数バージョン同居前提の話なんだから環境変数はダメだろ。


191:デフォルトの名無しさん
10/10/04 20:45:07
なんだその話続いてたのか

192:デフォルトの名無しさん
10/10/04 20:45:21
そういう特殊な環境で作りたいんだったら
自分で環境変数を増やせばいいじゃない
別に一個じゃなきゃいけない理由も無いんだし

193:デフォルトの名無しさん
10/10/04 21:54:52
シェーダを使った場合、
SetRenderStateで設定してるものは全て無効になるんですよね?
すべてシェーダー側で設定しろってことですか?
カリングモードの設定もですか?

よろしくお願いします。

194:デフォルトの名無しさん
10/10/04 22:07:24
まずは自分で試してみろ。
そうでないと話にならない。

195:デフォルトの名無しさん
10/10/04 22:13:35
>>194
試しました。たぶんそうなんですが、念のための確認です。
スパルタ教育は好きです。

196:デフォルトの名無しさん
10/10/04 22:15:57
もう一度やり直せ。

197:デフォルトの名無しさん
10/10/04 22:19:34
>>196
やり直して確信に変わりました。ありがとうございました。

198:デフォルトの名無しさん
10/10/04 22:39:44
>>179
同じアプリ内のEVR (DirectShow)です。

199:デフォルトの名無しさん
10/10/04 23:17:10
>>197
αブレンドの設定は生きてるぞ
他にも生きてるもんあんだろ

200:デフォルトの名無しさん
10/10/05 00:11:45
ひねくれたこと言わないでちゃんと回答してればこんなことにはならなかったのに

201:デフォルトの名無しさん
10/10/05 00:17:34
固定シェーダの恐怖が減っただけでもありがたいことだな

202:デフォルトの名無しさん
10/10/05 00:31:12
>>199
何が生きて何が生きてないんですか?
勉強不足でホントすみません。

203:デフォルトの名無しさん
10/10/05 00:32:23
あ、生きてるやつだけでいいです。

204:デフォルトの名無しさん
10/10/05 00:41:45
>>202
知らん
そのときどきで「おーこいつ生きてるじゃんoh!yeah!」って対処しろ

205:デフォルトの名無しさん
10/10/05 00:46:58
>>204
もうしょうがないわね。わかったよ。

206:デフォルトの名無しさん
10/10/05 01:10:11
なんか釣りっぽいけど
マジレスするとシェーダー使っててもSetRenderStateは全て無効にならない
基本事項はSetRenderStateで設定しといて
シェーダー内のみで変更したい項目をシェーダー側で変更する
ID3DXEffect::Beginでパラメーターを指定しなければEndの時に変更部分が復元される

207:デフォルトの名無しさん
10/10/05 09:22:16
>>206
最高です!釣りじゃありません!
ちょっと前から厳しい人がいたんで反応を見てただけです!
スパルタ教育は好きなんですけどね!
ありがとうございました!

208:デフォルトの名無しさん
10/10/05 09:33:01
>>206
追加で質問です。
Beginでパラメータを指定しないってことは第二引数を0にするってことですよね?
変更部分が復元されるというのは、シェーダ内での変更がそのまま維持されるということでしょうか?
それとも、シェーダ内で変更した項目は全てリセットされ、シェーダーで変更する前の状態に復元されるということでしょうか?

何度もすみません。よろしくお願いします。

209:207
10/10/05 09:52:12
もうわかったのでいいです。
シェーダ内の変更がそのまま復元され維持されるということですね。
復元されちゃったら、また元に戻さないといけないのでやめたほうが良さそうですね。


210:デフォルトの名無しさん
10/10/05 11:49:07
話の流れが見えない
207=209じゃないよな?

211:デフォルトの名無しさん
10/10/05 11:52:30
思い込みが激しい奴に何を言っても無駄。

212:デフォルトの名無しさん
10/10/05 12:01:20
普通に同一人物に見えるが

213:デフォルトの名無しさん
10/10/05 12:08:39
だから思い込みが激しい奴に何行っても無駄だって

214:デフォルトの名無しさん
10/10/05 12:11:23
人の話も聞かずに勝手に頓珍漢な結論を出すんだから放っておけばいい。

215:デフォルトの名無しさん
10/10/05 12:38:59
>>211-214が普通に同一人物に見えるんだが

216:デフォルトの名無しさん
10/10/05 12:47:47
てか、昨日から上から目線で混乱させるようなことばかり言ってるやつでしょ
だろ。の人は回答する気がないならいい加減消えればいいのに

217:デフォルトの名無しさん
10/10/05 12:59:42
なんだかんだ言って、誰も間違いに突っ込まないところが、
人が悪いなと思ってしまう。

218:デフォルトの名無しさん
10/10/05 13:22:13
合ってるって言ってあげろよ

219:デフォルトの名無しさん
10/10/05 13:29:03
てか勘違いしてるのか日本語が下手なだけなのゆとりなのか判断に悩む

220:デフォルトの名無しさん
10/10/05 13:56:58
リソースをコンパイル中にこんなエラーが出ました。
対処法がわかりません。教えて下さい。

fatal error RC1011: compiler limit : 'XSKINEXP_TEMPLATES': macro definition too big

221:デフォルトの名無しさん
10/10/05 14:00:50
>>219
日本語でおk

222:デフォルトの名無しさん
10/10/05 14:08:52
誰もわからないの?バカなの?死ぬの?

223:デフォルトの名無しさん
10/10/05 14:12:07
>>220
compiler limit : 'identifier' : macro definition "too big"

Try to split the definition into shorter definitions.

224:デフォルトの名無しさん
10/10/05 14:21:35
LoadObjectFromFileでWAVは読み込めるんだけど
MP3が読み込めません。
どうすればいいんでしょうか。

225:デフォルトの名無しさん
10/10/05 14:34:29
API調べるのめんどい。Direct何のどのクラス使ってるのさ
XAudioだかはWMA風データなら読めるがMP3は読めない
MP3を簡単に再生するならWin32APIかDirectShow
ちゃんとやりたかったらSDKなりでWAVに変換せよ

226:デフォルトの名無しさん
10/10/05 14:36:30
>>224
自前でデコードするかDirectShowを使うしかない

227:デフォルトの名無しさん
10/10/05 14:50:56
mp3はライセンス問題があるからoggにしとけ
oggなら展開用のライブラリもそのへんに転がってるし

228:デフォルトの名無しさん
10/10/05 15:47:29
>>225-227
レスありがとうございます。
DirectShowやoggを検討してみます。

229:デフォルトの名無しさん
10/10/05 22:53:52
勉強用とか音楽とかワンセグもOK 無線LAN接続なら無料
結構安いと思うんだけど?
お前ら的にはあり?


IS01 1円スタート 即決有
URLリンク(page9.auctions.yahoo.co.jp)
URLリンク(page8.auctions.yahoo.co.jp)
URLリンク(page11.auctions.yahoo.co.jp)
URLリンク(page10.auctions.yahoo.co.jp)
URLリンク(page2.auctions.yahoo.co.jp)

IS02 1円スタート 即決有
URLリンク(page11.auctions.yahoo.co.jp)
URLリンク(page2.auctions.yahoo.co.jp)
URLリンク(page11.auctions.yahoo.co.jp)

230:デフォルトの名無しさん
10/10/05 22:59:49
>>229
こいつ宣伝しまくってるな。

231:デフォルトの名無しさん
10/10/05 23:02:11
>>230
面倒だけど癖になるからアク禁依頼だしてくるか

232:デフォルトの名無しさん
10/10/06 00:27:49
>>178もよろしくお願いしますよ~

233:デフォルトの名無しさん
10/10/06 02:09:23
こいつマ板でも宣伝してたわ。

234:デフォルトの名無しさん
10/10/06 17:48:33
皆さんのテクスチャ管理方法をざっくりでいいんで簡単に教えてください。
読み込みから解放までを。

すみません。

235:デフォルトの名無しさん
10/10/06 18:06:57
テクスチャ登録用のリストを作る
ファイル名や識別子などからリストを検索
未登録ならテクスチャを作成しリストに登録
登録済みならテクスチャへのポインタを返しAddRef(参照カウントを増やす)
必要なくなったら参照先でRelease
参照カウンタが0になったらリストから削除

236:デフォルトの名無しさん
10/10/06 18:21:14
シェーダープログラムでのテクニックとパスの違いを教えてください

パスはレンダーステートとプログラムのセットですか?

237:デフォルトの名無しさん
10/10/06 18:22:49
>>235
ありがとうございます。
描画する際もファイル名などからリストを検索して描画ルーチンに渡しているのでしょうか?
もしそうなら、その検索時間は気になりませんか?

238:デフォルトの名無しさん
10/10/06 18:24:04
>>237
ハッシュマップとかIDでソートかけておくとか

239:デフォルトの名無しさん
10/10/06 18:26:45
ちゃんと文章読んでるのかよ

240:デフォルトの名無しさん
10/10/06 18:26:55
>>238
なるほど。ありがとうございます。
STLのコンテナを使わないのは何故ですか?

241:デフォルトの名無しさん
10/10/06 18:36:44
>描画する際もファイル名などからリストを検索して描画ルーチンに渡しているのでしょうか?

しないよ
描画オブジェクトもテクスチャへのポインタを持たせておけば読み込み時の1回だけでいいだろう?
なんのための参照カウンタだ

242:デフォルトの名無しさん
10/10/06 19:30:24
>>241
なるほど!本当にありがとうございます!
最高のシステムですね!参考にさせていただきます!

243:デフォルトの名無しさん
10/10/06 19:32:35
すごいですね!
本当に本当にありがとうございました!

244:デフォルトの名無しさん
10/10/06 20:44:49
float4 col = 1って全部1が入るんですか?
col.xyzw = 1と同じですか?

245:デフォルトの名無しさん
10/10/06 21:03:34
yes

246:デフォルトの名無しさん
10/10/06 21:08:49
thankyou

247:デフォルトの名無しさん
10/10/06 22:35:30
>>235
自分は別な質問者ですが、
参照カウンタが0になったら、というので
内部参照カウンタの値を取得するにはどうすればよいですか?
それとも自分で数えておくのですか?

248:247
10/10/06 22:39:48
すみません普通にわかりました
ULONG = Hoge->addref() - 1;
Hoge->Relase();
ですね

249:デフォルトの名無しさん
10/10/06 23:31:02
そのカウンタを使って処理をするな的なことがドキュメントのどっかに書いてなかったっけ

250:デフォルトの名無しさん
10/10/06 23:41:09
D3DXCreateEffectFromFile()って素敵ですね。

251:247
10/10/07 07:23:57
>>249
あれ?そうなんですか?
もしよければ詳しくおねがいします

252:デフォルトの名無しさん
10/10/07 09:24:14
>>251
Syntax
C++
ULONG Release()

Return Value
Returns the new reference count. This value is for diagnostic and testing purposes only.

253:247
10/10/07 09:30:05
>>252
まじすか ありがとうございます
じゃあ上の参照カウンタが0になったら、
っていうのは自分で数えておけということでしょうか?
それとももっとましな方法がありますか?

254:デフォルトの名無しさん
10/10/07 10:00:58
>>253
自分で覚えておけばおk

255:247
10/10/07 10:54:31
>>254
まあ、たいした手間ではないですよね
ありがとうございました

256:デフォルトの名無しさん
10/10/07 11:13:43
>>252
それって単にマルチスレッド環境での保証がされてないってだけじゃね?

257:デフォルトの名無しさん
10/10/07 13:58:14
僕はテクスチャ型と座標を毎回関数に渡して描画してるんですが、
もっといい方法ないですか?
皆さんの描画システムを簡単に教えてほしいです。

258:デフォルトの名無しさん
10/10/07 14:06:26
何をしたいのか目的も書かないで、方法だけ語ることに何の意味があるの?
前提条件も把握せずに答える馬鹿が出てくるかもしれないが、
頭の悪い内容しか返ってこないぞ。

259:デフォルトの名無しさん
10/10/07 14:13:06
頭の悪い回答すると

テクスチャ型と座標を管理したクラス配列を持つクラスにやってもらう


てか、テクスチャ型と座標って何の話だ?www

260:デフォルトの名無しさん
10/10/07 14:28:26
ごめんなさい。
具体的に言うと、LPDIRECTD3DTEXTURE9とそのキャラクターの位置座標を渡して
描画してもらうようにしています。

>>259
こんな回答でも参考になります。

261:デフォルトの名無しさん
10/10/07 15:05:21
IDirectSoundBuffer8::SetVolume を使って音のフェードアウト中にノイズが乗ってしまいます。

【ソースコード】
  for(i=DSBVOLUME_MAX; i>DSBVOLUME_MIN; i-=25)
  {
    pDSData->SetVolume(i);
    Sleep(1);
  }
  pDSData->Stop();

フェードアウトの方法が間違っているのでしょうか。
よろしくお願いします。

262:デフォルトの名無しさん
10/10/07 15:05:49
目的があって手段があるのに、未だに目的が不明。
手段の説明しかしていないのが分からないのか?

263:デフォルトの名無しさん
10/10/07 15:08:46
>>261
まずはサウンドカードを別の物に交換して確認する。

264:261
10/10/07 15:30:21
>>263
DirectSound対応を堂々とうたっているサウンドカードにて確認してみましたが、
やはりノイズが乗ります。

265:デフォルトの名無しさん
10/10/07 15:34:58
>>264
日本語は通じてる?
対応云々の話なんて一切していない。
別のサウンドカードで確認しろと言ってるの。

266:261
10/10/07 15:38:26
>>265
すみません。説明が不足していました。
>>264は別のサウンドカードです。

267:デフォルトの名無しさん
10/10/07 15:40:21
それでノイズが気になるのなら、波形データの方を少しずつ減衰させるしかない。

268:デフォルトの名無しさん
10/10/07 15:44:54
>>266
具体的にその2品の製品名なりチップセット名は?

269:デフォルトの名無しさん
10/10/07 16:01:10
ボリューム値の変動を細かくする。
Sleep間隔を長くする。
もっとまともなタイマーを使う。
完全なフェードにするには1サンプル毎に減衰させる。

270:261
10/10/07 16:04:38
>>267
wavデータをセカンダリバッファに書き込むときに減衰した値を書き込む訳ですね。
しかし、ストリーミング再生をしているので、恐らくセカンダリバッファをロックして
バッファの値を読んで減衰した値に書きなえないとダメだと思うのですが、
フェードアウトするためにバッファをロックするタイミングがわからなかったりします。

>>268
①SoundMAX Integrated Digital Audio
②Digidesign MBOX2Pro ← プロ用のDirectSound対応
です。

271:デフォルトの名無しさん
10/10/07 16:05:03
まずは製品の名前を聞こうぜ。

272:デフォルトの名無しさん
10/10/07 16:09:15
①SoundMAX Integrated Digital Audio
サウンドカードとしては最悪に分類される製品。
音が出るだけありがたいと思わなければならない。

②Digidesign MBOX2Pro ← プロ用のDirectSound対応
不明

273:デフォルトの名無しさん
10/10/07 16:19:06
しつこく聞いといてこの体たらくである。

274:デフォルトの名無しさん
10/10/07 16:20:20
確かあんまり細かい間隔でボリュームを変えようとするとダメだった記憶がある
Sleep(1)が良くないんじゃね?

275:261
10/10/07 16:20:38
>>269
>ボリューム値の変動を細かくする、Sleep間隔を長くする
10秒ぐらい掛けてフェードアウトするとなめらかなのですが・・・
50ms以内にフェードアウトしたいです。

>もっとまともなタイマーを使う
Sleepには、1ms~14msのばらつきがあるのは確認しましたが、
もっとまともなタイマーを使うというのは、1msよりも短い時間で
ボリュームを変更するということを兼ねているのでしょうか。

>完全なフェードにするには1サンプル毎に減衰させる
本当はこれをやりたいのですが、どのような方法で実装すればよいのか
僕の技術力不足でわかりません。

>>272
>Digidesign MBOX2Pro
ミュージシャンがDirectSound対応のソフトシンセを使って
音を鳴らすことを前提に設計されているようです。

276:デフォルトの名無しさん
10/10/07 16:21:53
>Digidesign MBOX2Pro ← プロ用のDirectSound対応
USB接続の時点で、細かく切り替えたら駄目だろ。

277:デフォルトの名無しさん
10/10/07 16:24:49
とりあえず60FPSで1フレームごとに下げることを想定して
Sleep(16)くらいで試してくれ

278:デフォルトの名無しさん
10/10/07 16:27:30
そもそもフェードとはいえ短時間に急激に音を止めたり発生させたりすれば、
その衝撃がノイズになって当たり前なのは分かっているのか?

279:261
10/10/07 16:32:04
>>274
僕も過去にそういう経験があったような気がします。
もともと、やりたいことは、
ストリーミング再生において、「play → stop → 曲を変えてplay」のときの
stop時に発生する、ノイズを消し去ることです。

ノイズを消し去る方法をインターネットで調べているうちに下記の方法を知りました。
----
セカンダリバッファを2つ用意して
1個目 -- 曲のplay → stop → 曲を変えてplay
2個目 -- 無音の音をずっと流す。
----
実装しましたが、stop時のノイズは消えませんでした。

>>276
IEEE1394仕様です。

>>277
了解しました。
Sleep(16)あたりで試してみます。

>>278
あまりわかっていません。
どこかのサイトで50msでフェードアウトするとstopノイズが消えると見かけたので
50msを目標にしています。

280:261
10/10/07 16:33:29
>「Windows プロフェッショナルゲームプログラミング」という本からの引用ですが、
>このバグの対処法として、セカンダリバッファの停止時に、
>50msくらいでフェードアウトさせると良い、とあります。
というのを見かけました・・・

281:デフォルトの名無しさん
10/10/07 16:34:30
50msでファードアウトって・・・

5段階くらいのフェードアウトで十分だと思う

282:デフォルトの名無しさん
10/10/07 16:41:22
それって50msでフェードアウトじゃなくて
50ms間隔でフェードアウトの間違いなんじゃ

283:デフォルトの名無しさん
10/10/07 16:59:53
俺の持ってる本じゃこういう表記になってるな。
> 徐々に(50msぐらいで)フェードアウト


284:デフォルトの名無しさん
10/10/07 17:05:05
そんな本は窓から投げ捨てた方がいいんじゃないか?

285:デフォルトの名無しさん
10/10/07 17:06:01
その文だと50msってのが間隔なのか総時間なのかどっちとも取れるような

286:デフォルトの名無しさん
10/10/07 17:09:45
ここって何でこんなに低レベルなの?
二度とこないよ。

287:デフォルトの名無しさん
10/10/07 17:11:28
はい、おつかれさん

288:デフォルトの名無しさん
10/10/07 17:17:22
無音の音を流し続けるって解決方法は別の話なんだっけ?

289:デフォルトの名無しさん
10/10/07 17:33:30
Stopノイズが発生するのは
DirectSoundって言うよりWDMサウンドデバイスのバグでしょ?

290:デフォルトの名無しさん
10/10/07 17:38:42
>>286
さようならノシ

291:261
10/10/07 19:58:34
改良したつもり・・・ ジョリってノイズが鳴る。

  LONG v;
  float x;

  for(x=0.0f; x<100.f; x+=2.0f)
  {
    v = (LONG)(x > 99.99f ? -10000 : -100.0f * log(100.0f / (100.0f - x)) / log(2.0f));
    pDSData->SetVolume(v);
    Sleep(1);
  }
  pDSData->Stop();

292:デフォルトの名無しさん
10/10/07 20:08:34
sleepが1mscのままじゃん

293:デフォルトの名無しさん
10/10/07 20:20:28
ストップノイズが出るのと
変更間隔が短すぎてノイズが出るのは別問題

294:デフォルトの名無しさん
10/10/07 21:29:18
50msなんて極小の時間の中でリニアに変化させたって人間には知覚できん
x+=20.0fにしてSleep(10)くらいにしとけ

295:デフォルトの名無しさん
10/10/07 23:07:16
Core2のWinXPの話だが、Sleepは10以下を設定しても10より小さくならないからな。

296:デフォルトの名無しさん
10/10/07 23:44:36
>>295
timeBeginPeriod()で精度上げれるよ。
今はMSDNライブラリにも明記されてる。
URLリンク(msdn.microsoft.com)(VS.85).aspx

297:デフォルトの名無しさん
10/10/07 23:48:32
10msってかOSのタイマー割り込みの精度による
Sleepから復帰させるスケジューラーがこの割り込み分解能より短い時間で仕事できないから
10msだったり16msだったりまちまち

timeBeginPeriod(1);
を呼べば精度の低いSleepでは限界があるものの1msに近づけることはできる


ところでtimeBeginPeriodを呼んでる臭いアプリ(WindowsMediaPlayerとか)を同時に立ち上げとくと
いきなりぬるぬる動き出すアプリあるよねw
そのプログラム内のみの変更じゃなくて
OS自体のタイマー割り込みに対する変更だから起動してる全てのアプリに影響があるので注意

298:261
10/10/07 23:57:37
>>293>>294
>ストップノイズが出るの
無音のwavファイルを再生中にストップしてもノイズが出なかったので、
ストップノイズの問題は発生してないようです。

>変更間隔が短すぎてノイズが出るの
>>294に教えていただいた値にしたいと思います。
しかし、最大の疑問は、
『v = x > 99.99f ? -10000 : -100.0f * log(100.0f / (100.0f - x)) / log(2.0f);』
の式が本当にあっているか、とても怪しいです。
上記の式では、音は多少小さくなりますが、きちんと無音までフェードアウトしているようには
聞こえないからです。
ちなみにこのサイトに情報が載っていました。
URLリンク(www.hgw-a.info)
申し訳ありませんが、音の世界に詳しい人に上記の式を検証していただけると幸いです。

>>295
PentiumMのWinXPの場合、Sleep(1)は、timeGetTimeの精度を1msに上げて
測定したところ、ほとんどが1~2ms、ばらつきがあり、最大が14msでした。
>>295の結果は酷く精度が悪いですね。僕の持っているマシンがたまたま精度がいいだけかも。

299:261
10/10/08 00:01:27
>>296
その方法で精度を上げています。

>>297
>ところでtimeBeginPeriodを呼んでる臭いアプリ(WindowsMediaPlayerとか)を
>同時に立ち上げとくといきなりぬるぬる動き出すアプリあるよねw
興味があるので検証してみたいと思います。

300:デフォルトの名無しさん
10/10/08 01:12:12
結局、ノイズ自体を出さないようにすることはもうできる状態なの?

301:デフォルトの名無しさん
10/10/08 01:12:49
>>298
とりあえず今回に限ってはその式を適用させる意味はないよ
50msのフェードはユーザーに聞かせるための目的じゃないから普通に線形にボリュームを下げていいかと


一応書いとくと

「-100.0f」 * log(100.0f / (100.0f - x)) / log(2.0f);
↑の-100.0fがボリューム(x)が半分(50)の時の値になる
そこに書いてあることが正しくて
10db(10%)下がった時に半分に聞こえるとするなら
DSBVOLUME_MINの10%である-1000.0fじゃないとおかしい

302:デフォルトの名無しさん
10/10/08 01:24:28
>>298
人のソースを意味も分からずコピペして
「怪しいです」「検証してください」はどうかと・・・。
ソースを公開している方にも失礼ですよ。明らかに間違っているならともかく。

x > 99.99f のときに -10000 (-10000が無音と仮定) になるんだから、
式が間違ってるわけではないでしょう。
検証するとすれば、

DSBVOLUME_MIN(無音) が本当に -10000 かどうか
x > 99.99f になるルートがあるか

といった部分だと思う。
>>291のソースでは、x =98 でループを抜けてしまう(xが100にならない)から
無音にならないのでは?


303:デフォルトの名無しさん
10/10/08 02:12:17
>>298
あと>>261>>291だと、時間が基準になってないから
思ったようなきれいなカーブ/線を描かないと思う。

設定するボリュームは、経過時間/フェード時間 を基準にするべき。

double total, fadetime;
clock_t start, end;

total = 0;
fadetime = 2.0f; //フェード時間(秒)
while (total < fadetime)
{
    start = clock();

    pDSData->SetVolume(DSBVOLUME_MIN * total / fadetime);
    Sleep(1);

    end = clock();
    total += (double)(end - start) / CLOCKS_PER_SEC;
}
pDSData->SetVolume(DSBVOLUME_MIN)

こんな感じ?Volume計算式とかSleepの値は調整してね。
環境なくてちゃんと試してないけどご容赦を。

304:デフォルトの名無しさん
10/10/08 02:40:46
>>303
いや、時間を基準とか関係無しに
線形にデジベルを下げると
音の性質上急速にボリュームが下がってしまうという話だから
言ってることは正しいが今は関係ない

組み合わせて
pDSData->SetVolume(-1000.0f*log(1.0f-total/fadetime)/log(0.5f));
とするなら有りだと思うが

305:デフォルトの名無しさん
10/10/08 02:41:38
Direct3DのPresentメソッドが -2005530516って素敵な数を返すんですが、これって何の
エラーですか?どうやらClearなどは成功していて、この関数だけが失敗しているようなんですが

306:デフォルトの名無しさん
10/10/08 02:53:06
>>305

HRESULT: 0x8876086c (2289436780)
Name: D3DERR_INVALIDCALL
Description: Invalid call
Severity code: Failed
Facility Code: FACILITY_D3D (2166)
Error Code: 0x086c (2156)

呼び出しが無効
引数が不正か
IDirect3DDevice9::Presentの場合
BeginScene ~ EndScene のペア間で呼び出されると、失敗し、D3DERR_INVALIDCALL を返す


参考までに教えとくと
SDKインストール時に一緒に入ってくる
DirectX Utilitiesのなかに
DirectX Error Lookupというツールが入ってる
16進ならHex、今回のように10進ならDecimalにチェックいれてLookUpでエラーコードを確認できる

307:デフォルトの名無しさん
10/10/08 03:03:54
DirectX エラー処理ユーティリティ ライブラリ
URLリンク(msdn.microsoft.com)(v=VS.85).aspx

失敗したときに原因がすぐ分かるようにしといたほうがいいよ

308:デフォルトの名無しさん
10/10/08 03:17:31
>>306
>>307
ありがとうございます。BeginScene~EndScene間で呼んじゃってました。
エラー処理って大事ですね、今度から使うようにします

309:デフォルトの名無しさん
10/10/08 08:18:21
>>307
こんな便利なのあったのか
半年間知らずにdirectXやってた

310:261
10/10/08 16:46:48
皆様ご指摘ありがとうございました。
>>303>>304のソースを、そのまま使わせていただきましたが、
SetVolume命令を使うとSleepを何ミリ秒にしようが、
ノイズが乗る仕様だと諦めました。
『fadetime = 0.3f; //フェード時間(秒)』にて実装しました。

>>303
ソースを動く状態で載せていただき、大変感謝しております。

>>304
ご指摘ありがとうございます。
>>303の方法とマージさせていただきました。

311:デフォルトの名無しさん
10/10/08 18:40:06
フォームアプリにdirectxって組み込める?

312:デフォルトの名無しさん
10/10/08 19:25:26
できる

313:デフォルトの名無しさん
10/10/08 20:21:24
そもそもフォームアプリって何?
ダイアログベースのアプリのこと?
CLIで作ったWindowsフォームアプリケーションのこと?

314:デフォルトの名無しさん
10/10/08 20:31:35
>>313
すいません、説明不足でした。
Windowsフォームアプリケーションのことです。
普通にcppファイルに書き込めば良いのでしょうか?

315:デフォルトの名無しさん
10/10/08 21:34:52
どっかにCLIでDirectXの動かす解説のあるサイトがあったはず
ぐぐれ

316:261
10/10/08 23:47:56
話題を引きずって申し訳ないのですが、DirectSoundのSetVolumeによるフェードアウトの件、
CPU:atom330 OS:Win7で試してみたところ、ノイズはまったく乗りませんでした。
Win7ってリアルタイム処理が強化されているのかなって思いました。

当初の目的は
①リソースの状態になったwavファイルをストリーミングで再生する。
②停止する。
だけだったのですが、曲を変えるときにノイズが乗るため、
③フェードアウトする
という処理を付け加えました。

後になって思ったのですが、①②③の機能は、DirectMusicでも、できたのではないかと思います。
しかも、DirectMusicだったら、フェードアウトを意識せずに曲を変更してもノイズは乗らなかった
かも知れません。
DirectX9関係の本を何冊か読んだのですが、DirectMusicについては紹介されていない本もあり、
DirectSoundによるストリーミング再生が紹介されているものがほとんどでした。
DirectMusicの命令を知らないのですが、DirectSoundの上で動いてそうなので、
やはり、音量をいじってフェードアウトする場合は、同様にノイズが乗ったのかも知れません。

また、質問で申し訳ないのですが、DirectMusicで①②を実装されている人はいますでしょうか。
もし、DirectMusicでフェードアウト時にノイズが乗らなかったら、DirectMusicで作り直すことも、
考えています。なお、DirectMusicを使った場合、OSの互換性の問題など発生しませんでしょうか。

よろしくお願いします。

317:デフォルトの名無しさん
10/10/09 00:13:15
自分も丁度曲チェンジの時ノイズが乗ってるって友達に指摘されたから聞きたいとこでした。

318:デフォルトの名無しさん
10/10/09 02:09:27
IDirectMusicAudioPath8::SetVolumeは、まんまフェードを作れる模様。
ただどういう実装でどの程度の精度があるのかは知らない。
ただDirectMusic自体が廃止される方向なのは周知の通り。

DirectSoundの話に戻ると、
Sleepでタイミングを作ってSetVolumeする方法は運任せすぎる。
せめてIDirectSoundBuffer8::GetCurrentPositionとかIDirectSoundNotify8でタイミングを作るべき。
ただDirectSound自体もVista以降はWASAPI上で動いてるから、期待した精度が出る保証はない。

確実にフェードを作るには、既に出ているように、バッファ内のサンプル値を直接いじるしかない。


なんつって

319:デフォルトの名無しさん
10/10/09 07:17:17
>>316
リアルタイム処理云々は無関係。
いい加減な間違った情報を書き込む前に、WindowsVista以降でDirectSoundのデバイスドライバがどういう扱いになったのか調べろ。

320:デフォルトの名無しさん
10/10/09 08:21:05
>>319
最近のOSのサウンド事情っぽい記事読んできたけど混乱してるなぁw
エミュレーション機能があるならこのままDirectSoundがいいんじゃねぇかと思ったけど
使っただけでエラーでたって報告あるのかよ
でも、それだと以前のゲームが動かないからそれは修正するハメになると思うけどね

俺等はとりあえずエミュにまかせてこのまま様子見か?
なんかいま色々動くのは損な気がする

321:デフォルトの名無しさん
10/10/09 13:10:03
DirectX10使ってるんですが
CreateTextureとかで作ったリソースについて
デバイス解放前に全て開放されているかどうかチェックしたいのですが
そういう機能ってSDK側では用意されてますか?

322:デフォルトの名無しさん
10/10/09 13:58:48
自分で管理するしかない

323:デフォルトの名無しさん
10/10/09 14:42:10
SetTextureStageStateを使わなくてもピクセルシェーダーでテクスチャブレンディングできるとおもうのですが
なぜ存在するのでしょうか

324:デフォルトの名無しさん
10/10/09 14:45:42
固定機能パイプライン

325:デフォルトの名無しさん
10/10/09 14:45:46
>>323
固定シェーダの名残みたいなもんじゃねーの?

326:デフォルトの名無しさん
10/10/09 14:48:41
DirectX10以降で消滅

327:デフォルトの名無しさん
10/10/09 15:06:52
どうも

328:デフォルトの名無しさん
10/10/09 15:51:28
頭の悪い人達一覧
URLリンク(www.google.co.jp)

329:デフォルトの名無しさん
10/10/09 16:02:06
そういや11のテッセレーターは固定機能シェーダーなんだよね?
シェーダー側に記述するんじゃなくて
デバイスに対して設定するとかそんな感じなの?

330:デフォルトの名無しさん
10/10/09 16:34:30
Direct3D11では描画に関する操作は、デバイスから一切が切り離されているが、
いったい何を言ってるんだ?

331:デフォルトの名無しさん
10/10/09 21:21:06
>>328
バカですね

332:デフォルトの名無しさん
10/10/09 21:50:10
お前ら頭よすぎなんだよ。ちくしょう。

333:デフォルトの名無しさん
10/10/09 23:28:18
>>322
どうもです
うーん独自レイヤー作るのだるいな・・・

334:デフォルトの名無しさん
10/10/09 23:39:46
そもそも開放し忘れが起きるかもしれないような設計がおかしい
それとも何か特殊なタイミングでチェックしたいわけ?

335:デフォルトの名無しさん
10/10/10 02:53:14
質問です。
Direct3Dで読み込んだ256色bmpの
パレットの操作はどうすればいいんでしょうか?

現状
D3DXCreateTextureFromFileExでテクスチャを読み込み、
PALETTEENTRYの配列にパレットの値の取得及び、画面へ描画も出来ています。
※パレットの値も正確に取れています





336:335
10/10/10 03:00:37
追記スマソ。
Direct3Dのバージョンは9です。

337:デフォルトの名無しさん
10/10/10 03:07:59
>>335
無理
実際に作られたテクスチャのフォーマットを見ればわかると思うけど
現在普及してるビデオチップじゃ256色以下のパレットテクスチャを作ることはできない
PALETTEENTRYには読み取った時の色情報が書き込まれるだけで
それをどうこうしてパレットアニメーションとかはできない

シェーダーで似たようなことはできるかもしれないけど
素直に画像で用意した方が早いと思われ

338:デフォルトの名無しさん
10/10/10 10:28:05
確かにD3Dだとスライムベスすら
簡単に表示できない・・

339:デフォルトの名無しさん
10/10/10 11:34:42
昔あったアルファ値と普通の画像を2枚用意して合成して透かすのってできる?
検索しても見つからないし困ってるんだよ

340:デフォルトの名無しさん
10/10/10 12:42:51
>>339
どういう意図でアルファ値と画像を分離したいわけ?

単に抜きがやりたいだけなら最初からアルファチャンネル付の画像フォーマットを使えばいい
アルファ部分を動的に変化させたいとかなら
シェーダーを使うかテクスチャブレンドで対応できる

341:デフォルトの名無しさん
10/10/10 13:37:28
>>337,338
回答ありがとうございます。
素直に画像用意します。

ただ、1つ疑問なのはギルティギアイスカ(PC/PS2版共に)はゲーム中に
カラーエディットが出来る仕様になっていますが、
あれは337の言うようにシェーダーで行っているんでしょうか?







342:デフォルトの名無しさん
10/10/10 13:44:11
聞きたいのはPC版の方なので、PS2の方はスルーして下さい。
スマソorz

343:261
10/10/10 15:22:34
>>318
使用する関数を教えていただきありがとうございます。
なんとかフェードアウトを実装することができました。

①GetCurrentPositionにて再生カーソルを取得する
②再生カーソル+60ミリ秒の位置からバッファをロックする
③100ミリ秒のフェードアウトをさせる
 (バッファの中のサンプル値をフェードアウトした値に書き直す)
④フェードアウト後の100ミリ秒のバッファを0(無音)に書き直す
⑤バッファのアンロック
⑥Sleep(60 + 100) ⇒ ②+③の時間
⑦再生のStop命令

手順は上記の通りとなります。、
②は強引なような気がしますが、こういう方法をとるのが
一般的なのだろうかと思いました。
③は、音楽ソフトで波形をフェードアウトさせたとき視覚的に、
直線でサンプル値が0に向かっていたのでlogを使いませんでした。

とりあえず、問題はなさそうに動いています。
どうもありがとうございました。

344:デフォルトの名無しさん
10/10/10 16:07:12
>>341
画像ファイルから直接テクスチャを作ってるんじゃなくて
インデックスデータとパレットデータを使って
生成した空テクスチャに色情報を書き込んでるんじゃないの?
動的に変化とかじゃなくて.palの上書きとかでしょ?

345:デフォルトの名無しさん
10/10/10 18:10:46
ピクセルシェーダを使って、画像を二枚用意して片方をテーブルデータとして使えばパレット的なことは出来るけど、
そこまでして何故パレットが必要なのか理由がさっぱり分からない。

346:デフォルトの名無しさん
10/10/10 18:20:33
10年前からきたんじゃないの?

347:デフォルトの名無しさん
10/10/10 18:35:32
>>344
>>動的に変化とかじゃなくて.palの上書き
俺がやりたいのはそれです。
PC版のGGイスカやGGXX#REには外部コンフィグには
「パレットエフェクト」って設定項目があるのでD3Dで出来るのかと
思ったんです。

>>345
カラーエディット的なことをやりたいんです。
それこそゲーム中にガンガンいじる気はないんですが、
プレイヤーが設定したカラーを反映したいんです。





348:デフォルトの名無しさん
10/10/10 18:39:40
それをやるのにパレットにする必要性が全くないんだが、
何故パレット云々が出てくるんだ?

349:デフォルトの名無しさん
10/10/10 19:15:04
読み取り時にパレット情報を使ってるだけでパレット操作をしてるわけではないな
普通にテクスチャをロックして書き込んでるだけでしょ

350:デフォルトの名無しさん
10/10/11 03:07:22
DirectX9.0cなんだけど、
デバイスを作成した後 IDirect3DDevice9::GetBackBuffer() でバックバッファを一度だけ取得して
そのインターフェイスをずっと保持して使いまわすのは変?

デバイスロストとかはちゃんと処理するとして

351:デフォルトの名無しさん
10/10/11 08:47:30
好きにすればいいよ。
いちいち聞くことじゃない。

352:デフォルトの名無しさん
10/10/11 11:50:00
スワップチェーンとの兼ね合いを考えると
毎フレームインデックス0のバックバッファを取得する方が
自然を思うな。
つーか、普通レンダーターゲットを使うよな。
バックバッファ直接描画ならD3D使う意味無いし。

353:デフォルトの名無しさん
10/10/11 19:44:23
シェーダー使って描画する際、2D描画の時は皆さんどうしてますか?

シェーダーの時は変換済み座標って使えるのしょうか?

初心者なのでお手柔らかにお願いします。

今まで固定機能パイプラインでやってきました。
そのときは変換済み座標を使ってました。
それをそっくりそのままシェーダーでの描画に変えたいのです。
すいません。

354:デフォルトの名無しさん
10/10/11 19:48:35
シェーダーで何もしなけりゃいいだろwwwwwwwwwww

355:デフォルトの名無しさん
10/10/11 20:10:27
シェーダーでやりたいのです。
頂点変換済み座標ってシェーダーでは使えないんですか?

356:デフォルトの名無しさん
10/10/11 20:13:24
とりあえず試してみれば?

357:デフォルトの名無しさん
10/10/11 20:26:07
>>355
頂点シェーダで出力する頂点は
-1 < x < 1
-1 < y < 1
0 < z < 1
で、たとえば(-1,1,-)の頂点が画面左上にくる
同様に(1,-1,-)が右下にくる
この考え方でとりあえず3角形を描画してみたらどうだろう

358:デフォルトの名無しさん
10/10/11 20:30:31
ありがとう。本当に。
やってみます。

359:デフォルトの名無しさん
10/10/11 20:54:47
あの、シェーダーで描画するときの話です。
移動行列や回転、拡大行列等の行列の計算についてお伺いしたいです。

これらの計算もCPU側で行わずにシェーダー側で行っていますか?

そのほうがはやいですか?

360:デフォルトの名無しさん
10/10/11 21:03:41
まずは試せ。
その結果に疑問があるのならそれを聞けばいい。

361:デフォルトの名無しさん
10/10/11 21:06:42
ごめんなしゃい

362:デフォルトの名無しさん
10/10/11 21:17:43
シーンによると思うけどね

363:デフォルトの名無しさん
10/10/11 22:50:34
>>359
行列を作るのはCPU
適用するのはGPU
頂点トランスフォームは、GPUがその能力を発揮出来る
数少ない機会だからな、やらせなきゃ損

364:デフォルトの名無しさん
10/10/11 22:57:16
カリカリに描画命令数の最適化をしない限り
CPU時間は余りまくりなんだからどっちにやらせてもトータルは変わらんよ

365:デフォルトの名無しさん
10/10/11 22:59:44
>>363みたいな間違った認識をするから自分で試すべき何だろうね。

まず頂点シェーダをGPUでやらないビデオカードがあるのが一点。
GPUとCPUの性能バランスが悪ければ、CPUにやらせた方がパフォーマンスが高いことがあるのが二点。

つまり速いかどうかは環境依存。

366:デフォルトの名無しさん
10/10/11 23:15:49
>>365
で、レアケース持ち出して
「いろんなパターンがあるからわかりません」が
正しい認識だって?
笑える


367:デフォルトの名無しさん
10/10/11 23:17:31
確かにそこら中に存在するIntelのオンボードがレアケースだと言う認識は笑える。

368:デフォルトの名無しさん
10/10/11 23:31:49
DrawPrimitiveを連発してるようなアプリなら普通にCPUにやらせた方が速いんじゃね?

369:デフォルトの名無しさん
10/10/12 06:39:41
まあ、そっからの議論は実測値が予想と違うときのみすればいい話であって
いま、色々考えてみるのははっきりいって無駄

信じられるのは実測値のみ

この考え方は徹底しておかないといつまでも無駄なことをしたり
おかしな発言を繰り返したりと現場を混乱させるばかりでちっとも開発は進まないとかいう状況になる

370:デフォルトの名無しさん
10/10/12 08:54:44
Directxで何も描画しないのに、FPSが62ぐらいしかでないんだが、
内部で60ぐらいに制御するようにコード組まれてるの?

本当にbeginsceneとendsceneぐらいしかしてないんだが。

371:デフォルトの名無しさん
10/10/12 08:56:48
VSYNC

372:デフォルトの名無しさん
10/10/12 09:03:19
D3DPRESENT_INTERVAL_ONE
D3DPRESENT_INTERVAL_IMMEDIATE

373:デフォルトの名無しさん
10/10/12 09:18:54
ありがとうございます!
oneにすると自動的にリフレッシュレートを超えないように制限されてしまうんですね!

環境に依存しないで、FPSを制御するにはIMMEDIATEを指定して、
自分でFPS制御を行わないとぴったり60FPSにはならないんですね!

めんどくさかったらONEに設定すれば、勝手にリフレッシュレートぐらいの
FPSに制御してくれるというわけですね。

でも環境によって、FPSが変わるとゲームにならないので、前者の方法が良いですね!
知らなかったら、環境によってFPSが変化してしまうところでした。
本当にありがとうございました!

374:デフォルトの名無しさん
10/10/12 10:50:04
DIRECTXってなんで座標指定するときにFLOAT型なんでしょう?

画面に描画されるときの最小単位はピクセルなんですよね?

375:デフォルトの名無しさん
10/10/12 10:59:13
ドットバイドットで表示するなんてめったに無いわけで

376:デフォルトの名無しさん
10/10/12 11:17:07
シェーダープログラムのコンパイル済みファイルをエクセルで全パターン自動生成することを思いついた

377:デフォルトの名無しさん
10/10/12 11:24:54
>>371
>DIRECTXってなんで座標指定するときにFLOAT型なんでしょう?
そもそもそんな規則はない

378:デフォルトの名無しさん
10/10/12 12:00:42
たとえば(1.5F,1.5F)のところに描画しても、切捨てられて
(1,1)のところに描画されるんですよね?

考え方自体破綻してますか?

379:デフォルトの名無しさん
10/10/12 12:01:40
破綻している。

380:デフォルトの名無しさん
10/10/12 12:11:59
そもそもDirectXとDirect3Dは同義ではないので、
>DIRECTXってなんで座標指定するときにFLOAT型なんでしょう?
は意味不明。
Direct3Dのことだったとしても整数型の入力はサポートされているし、
Direct3D10以降なら整数値のハードウエアサポートもある。
またラスター化されるときにどうなるかも設定次第。

381:デフォルトの名無しさん
10/10/12 15:01:36
もしかしてシェーダーで、行列をセットするとき
beginPass,Endpassの間でセットしても反映されない?

382:デフォルトの名無しさん
10/10/12 15:19:41
>>381

>ID3DXEffect::BeginPass/ID3DXEffect::EndPass 対応ペア内部にある Effect::Setx メソッドのいずれかを使用して、
>アプリケーションがエフェクト ステートを変化させる場合、アプリケーションは ID3DXEffect::CommitChanges を呼び出して、
>ステート変化のあるデバイスに更新を設定する必要があります。
>ステート変化が ID3DXEffect::BeginPass および ID3DXEffect::EndPass 対応ペア内で発生していない場合、
>ID3DXEffect::CommitChanges を呼び出す必要はありません。

383:デフォルトの名無しさん
10/10/12 15:21:03
>>382
ありがとう!

384:デフォルトの名無しさん
10/10/12 17:58:27
ID3DXSPRITEでやってたときは画像の範囲していの描画はうまくできていたんですが、
シェーダーを使ったときの範囲指定描画の方法がわかりません。

頂点バッファを毎回いじればできそうですが、いじりたくないです。
いじらずにやる方法ないですか。

385:デフォルトの名無しさん
10/10/12 18:23:01
画像範囲指定とは、たとえばキャラ画像が8枚で一セットになった画像とかを
ちょっとずつ分割して描画したいってことです。

386:デフォルトの名無しさん
10/10/12 18:27:19
シェーダでuvを好きなように調整しろ

387:デフォルトの名無しさん
10/10/12 18:29:37
頂点バッファに全て書き込んどいて読み出し位置をずらすことで切りかえるか
サイズが一定ならシェーダーにどれだけずらすか送るだけ

388:デフォルトの名無しさん
10/10/12 18:42:07
ありがとうございます。参考にさせていただきます。

389:デフォルトの名無しさん
10/10/12 21:31:59
>>378
描画される位置は一緒でも、参照されるテクスチャ座標が変わる。

390:デフォルトの名無しさん
10/10/12 22:17:30
シェーダ万能すぎない?
なんか有るぞこれは

391:デフォルトの名無しさん
10/10/12 22:23:10
馬鹿にはそう見えるんだろうな。

392:デフォルトの名無しさん
10/10/12 22:28:25
>>387
頂点バッファに全て書き込んどく方法はやめます。
サイズは等間隔の画像になります。
どれだけずらすかを送ってその後どうするんですか?

そもそも、頂点シェーダは書けるんですけど、どういった順序で計算されてるのかわからないんです。
例えば頂点が4つあったとしたら、頂点シェーダの関数は4回実行されてるんですか?
一回ごとに渡される頂点が違うってことですか。
その辺が詳しく解説されてるサイトがあれば教えていただきたいです><

393:デフォルトの名無しさん
10/10/12 23:09:17
>>392
四隅が等しくずれるんだから順番なんて関係ない

頂点バッファには1つ分のuvを書き込んでおく
プログラム側からuvをどれくらいずらすかシェーダーに送る
シェーダーでずらす
OK?

.cpp
ID3DXEffect::SetVector ( "tex_offset", &D3DXVECTOR4(0.5f, 0.5f, 0.0f, 0.0f) ) ;


.fx
float2 tex_offset
void VertexShader(
in float4 inPos : POSITION,
in float4 inTexture : TEXCOORD0,

out float4 outPos : POSITION,
out float4 outTexture : TEXCOORD0)

outPos = mul(inPos, WorldViewProj);

outTexture = inTexture+tex_offset;// ←ずらす
}

394:デフォルトの名無しさん
10/10/12 23:17:23
>例えば頂点が4つあったとしたら、頂点シェーダの関数は4回実行されてるんですか?

その認識で正しい

395:デフォルトの名無しさん
10/10/12 23:37:10
静的な頂点バッファに書き込むとどうなるんですか?

396:デフォルトの名無しさん
10/10/12 23:38:45
パフォーマンスが落ちる

397:デフォルトの名無しさん
10/10/12 23:47:04
て言うかシェーダってなんなんですか

398:デフォルトの名無しさん
10/10/12 23:49:16
>>397
URLリンク(ja.wikipedia.org)

399:デフォルトの名無しさん
10/10/13 00:06:43
>>396
どうもありがとう

400:デフォルトの名無しさん
10/10/13 00:10:41
>>398
要するに描写の前にフィルタをかませてなんかいろいろ効果を出すってことか
まるで目の前にフィルムがあるかのような

401:デフォルトの名無しさん
10/10/13 02:48:55
そういう使い方もあるがそれだけじゃない

402:デフォルトの名無しさん
10/10/13 03:00:40
>>393
なるほど!
その手がありましたか!
すごい嬉しいです!ありがとうございました!

403:デフォルトの名無しさん
10/10/13 06:40:18
でもさ、俺も同じことやってるけど
物理的にはDrawPrimitiveUPなんかと似たようなもんだよねw
って思うんだけど違うの?

404:デフォルトの名無しさん
10/10/13 08:25:04
>>403
は?じゃあ具体的に説明してみろ

405:デフォルトの名無しさん
10/10/13 16:32:36
シェーダーを設定しなおすと前に設定していたシェーダー定数の値はクリアされてしまうのでしょうか?

406:デフォルトの名無しさん
10/10/13 16:39:46
>>405
テストコードかけばいっぱつじゃない?
まあ環境依存のことを考えれば未初期化で使うなんてことは考えないはず。

407:デフォルトの名無しさん
10/10/13 16:56:08
>>406
簡単なテストでしてみました。レジスタには同じ値が入っているみたいです。

408:デフォルトの名無しさん
10/10/13 17:55:21
>>404
1フレ当たりにグラボに送る情報量がさほど変わらないじゃん

例えばこんな風にまるで意味がない感じにしても頂点バッファに触らないってのはそれだけでメリットあるんかな?
ってことが言いたいわけよ
.cpp
ID3DXEffect::SetArray的な何か(名前忘れたw) ( "pos", pos4) ;//頂点4つ分
ID3DXEffect::SetVector ( "tex_offset", &D3DXVECTOR4(0.5f, 0.5f, 0.0f, 0.0f) ) ;

.fx
float4 pos[4];
float2 tex_offset;
void VertexShader(
in float4 inTexture : TEXCOORD0,
in int inIndex

out float4 outPos : POSITION,
out float4 outTexture : TEXCOORD0)

outPos = pos[inIndex];
outTexture = inTexture+tex_offset;
}

409:デフォルトの名無しさん
10/10/13 18:23:27
何が言いたいのかまるで伝わってこない

410:デフォルトの名無しさん
10/10/13 18:47:13
>>409
だから>>408の例って頂点バッファ自体が無意味じゃん

411:デフォルトの名無しさん
10/10/13 18:57:25
頂点に座標を含むかどうかの違い?

412:デフォルトの名無しさん
10/10/13 19:02:26
>>411
いや、SetVectorなどの関数から描画に必要なデータをすべて渡している状態(でも頂点バッファにはアクセスせず)
DrawPrimitiveUPで描画するのとどっちが速いの?的な話

この2つとも1フレ当たりにグラボに渡すデータ量はほとんど変わらないよね?
大して変わらないことしてるのか、大きな差があるのか?ってとこ

413:デフォルトの名無しさん
10/10/13 19:17:11
何か勘違いしてるみたいだがグラボに送る情報量とか関係ない
頂点バッファは一度のDrawprimitiveで数千ポリを同時に描画するときに真価を発揮する
そもそも1矩形を1回のDrawprimitiveで描くような仕様ならUP系とコスト的には大差ない

UP系は使ってもいいけど使うときは
1000~2000ポリくらいをバッファに溜め込んで一度のDrawprimitiveUPで描画したほうが効率は良い
それ以上になるとシステムメモリからの頂点情報の転送がボトルネックになって
頂点バッファを使った時ほどのパフォーマンスが出せなくなる

414:デフォルトの名無しさん
10/10/13 19:41:01
ちょっとまってください。
DrawPrimitiveで数千ポリを一気に描画する方法があるんですか!?

メッシュとかの話じゃなくて?

415:デフォルトの名無しさん
10/10/13 19:55:54
すいません。
まちがえました。。。

416:デフォルトの名無しさん
10/10/13 20:19:16
いえ、間違えてません。↑は別人です

417:デフォルトの名無しさん
10/10/13 20:31:16
ネタなのかマジボケなのか判断に困る

418:デフォルトの名無しさん
10/10/13 21:02:08
そこらへんの詳しい情報ってデベロッパーにしか公開されないんですか?


419:デフォルトの名無しさん
10/10/13 21:05:12
>>418バカは死ね

420:デフォルトの名無しさん
10/10/13 21:21:24
バカだからって死ねって言うのは差別につながると思うんです
そもそもバカというのは基準が決まっていないじゃないですか
何が出来なかったらバカなんですか?それじゃあまだ何も出来ない幼児赤子はバカなんですか?

421:デフォルトの名無しさん
10/10/13 21:21:43
>>419
お前みたいなクズこそ死ね

422:デフォルトの名無しさん
10/10/13 21:29:22
ここは初心者スレです

423:デフォルトの名無しさん
10/10/13 21:33:37
なんで死ねといわれなきゃいけないの?

424:デフォルトの名無しさん
10/10/13 21:33:45
まずは>>414がポリゴンとメッシュをどう認識しているのか確認するのが先だろう。

425:デフォルトの名無しさん
10/10/13 21:46:28
ポリゴンはいくつかの頂点で作られたオブジェクト

メッシュは頂点データのかたまり。

これぐらしかわかりません。ごめんなさい。

426:デフォルトの名無しさん
10/10/13 21:47:36
ということで間違った認識をしていることが確定したので、
まずはポリゴンがなんなのかを調べるところから始めろ。

427:デフォルトの名無しさん
10/10/13 21:54:26
本当にどーやって勉強してるんですか?皆さん。

独学っすか?学校の授業とかですか?


428:デフォルトの名無しさん
10/10/13 21:56:49
まずはチュートリアルをやれ

429:デフォルトの名無しさん
10/10/13 22:17:54
ググったらいくらでも出てくるだろうが。
そんなことだからバカとか言われるんじゃね

430:デフォルトの名無しさん
10/10/13 22:34:38
いや、情報少ないよ
仕方ないよ

431:デフォルトの名無しさん
10/10/13 22:40:21
2DでdirectX9使うの完璧になったけど
3Dが全く分からなくて手を着けられない。
シェーダの仕組みもさっぱり分からない。
次に進む為のお勧めの書籍はありませんか?

432:デフォルトの名無しさん
10/10/13 22:41:37
自分で完璧とか言ってしまう人はちょっと

433:デフォルトの名無しさん
10/10/13 22:48:41
完璧なのにシェーダが分からないってどういうことだろう?

434:431
10/10/13 23:13:58
シェーダって3Dを表示する時使う奴じゃないんですか?

435:デフォルトの名無しさん
10/10/13 23:19:22
理解できてないという意味では完璧だな。
入門書買って1からやりなおせ。

436:デフォルトの名無しさん
10/10/14 00:39:09
こういう場合に分かる奴、出きる奴は何でソースファイルとかアップしないの?
俺も分からないから知りたいんだけど何を信じていいのか分からん。

437:デフォルトの名無しさん
10/10/14 00:43:44
何のソースが欲しいんだよ?

438:デフォルトの名無しさん
10/10/14 00:44:14
ここは初心者質問スレです。

お願いですので、やさしくしてくださいよ。

439:デフォルトの名無しさん
10/10/14 00:45:46
シェーダーを使ったパーティクル形エフェクトのソースをお願いします。

バージョンはvs,psとも3_0でお願いします。

440:デフォルトの名無しさん
10/10/14 01:02:47
>>439
前スレにあったぞ

441:デフォルトの名無しさん
10/10/14 01:18:17
3Dが分からないってことはチュートリアルとか全然やってないのか?
ドキュメントとか全然読んでないのか?

442:デフォルトの名無しさん
10/10/14 04:12:39
3Dまったくわからないとかいってるヤツに何のソースを出すんだよ。
初心者以前の問題

443:デフォルトの名無しさん
10/10/14 07:47:46
「UP系は本当に遅いのか?」計測してみたよ
結果から言うとだいたいヘルプに書いてあるのと同じ感じ

DrawIndexedPrimitive、DrawIndexedPrimitiveUPで
それぞれ20000ポリを1~10000回に分けて描画
DrawIndexedPrimitiveの方は
静的頂点バッファ(Lock無し)
動的頂点バッファ(描画と同じ回数だけLock)の両方計測

静的頂点バッファをロックするのはお話にならないのでやってません
以下結果


20000ポリ(40000頂点)×1回
静的VB:890fps
動的VB:790fps
DrawUP:710fps

2000ポリ(4000頂点)×10回
静的VB:880fps
動的VB:780fps
DrawUP:700fps

1000ポリ(2000頂点)×20回
静的VB:870fps
動的VB:760fps
DrawUP:690fps


このあたりはほとんど変化なし
やはり1000~2000ポリを1回で描画するのが効率がよさげ

444:デフォルトの名無しさん
10/10/14 07:51:56
続き

200ポリ(400頂点)×100回
静的VB:830fps
動的VB:680fps
DrawUP:650fps

100ポリ(200頂点)×200回
静的VB:760fps
動的VB:590fps
DrawUP:590fps

20ポリ(40頂点)×1000回
静的VB:470fps
動的VB:300fps
DrawUP:340fps

4ポリ(8頂点)×5000回
静的VB:165fps
動的VB: 85fps
DrawUP:120fps

2ポリ(4頂点)×10000回
静的VB: 90fps
動的VB: 45fps
DrawUP: 65fps

動的頂点バッファを200回LockしたあたりでUP系と並び、それ以上で逆転

1000回ほど描画命令を発行すると最高速の半分以下までパフォーマンスが落ちる
それ以上はお察し

445:デフォルトの名無しさん
10/10/14 08:00:03
UPとの差はまぁこんなものだろうか?

計測に使ったチップはGeForce 9600M GT(モバイル用チップ)なので
ちゃんとしたビデオカードでやればもうちょい差は開くかも?
暇な人は試して見てね


計測に使用したソース
URLリンク(www5b.biglobe.ne.jp)

446:デフォルトの名無しさん
10/10/14 08:01:15
なんだよ。結局DrawPrimitive数千ポリゴン描画できるって言ってたのは嘘かよ

Draw[Indexed]Primitiveじゃねえかよ。













ありがとう。

447:デフォルトの名無しさん
10/10/14 08:18:43
>>446
何をどう勘違いしたのか分からんが
頂点数が増えるだけでDrawPrimitiveでも当然出来るぞ

448:デフォルトの名無しさん
10/10/14 08:33:23
今日夜中に質問しまくるから、よろしく。

見捨てないでください。お願いします。

449:デフォルトの名無しさん
10/10/14 08:58:27
>>445
DrawPrimitiveを連投してポリゴンをたくさん描画するより、
一回のDrawPrimitiveでたくさんのポリゴンを描画したほうが断然速いんですね。

今まで2ポリをオブジェクトの数だけDrawPrimitiveを連投してたわ。

勉強になった。ありがとう。

450:デフォルトの名無しさん
10/10/14 09:27:42
ビデオメモリへの転送量は少ない方が速い。
API呼び出し回数は少ない方が速い。
おっぱいは小さく方が美しい。
基本です。

451:デフォルトの名無しさん
10/10/14 09:41:28
なんかめんどくさい事を言ってる奴がいるので
>>445をプリプロセッサで
DrawPrimitiveとDrawIndexPrimitiveを切り替えられるようにしたものと差し替えた

後、補足して置くとこの計測値は低CPU負荷の状態で
D3DPRESENT_INTERVAL_IMMEDIATEでぶん回してるだけなので
一見、描画命令1回と10000回の間に10倍のパフォーマンスの違いが有るように見えるけど
例えば当たり判定やAI処理などでCPUに高負荷をかけると
1回の方はその分がガッツリFPSに影響が出るのに対し
10000回の方はGPUのブロック時間の間にCPUが仕事できるのであまりFPSに影響は出ません
つまり、パフォーマンスは差は縮まります

上の方で描画命令が多い場合はCPUで計算させてもかわらねーよ、と言われてるのはこのせいです
それでもなるべくまとめて描画した方が圧倒的に速いですが

その辺の詳しい理屈はこのあたりを読むとわかるかも?
URLリンク(www.atmarkit.co.jp)

452:デフォルトの名無しさん
10/10/14 09:47:11
高速に大量に描きたいならインスタンシングとかも勉強しとけよ

453:デフォルトの名無しさん
10/10/14 09:49:09
>>451
心から感謝いたします。
さっき生意気なこといってすみませんでした。
本気で勉強いたします。

454:デフォルトの名無しさん
10/10/14 17:04:11
レンダーステートの切り替えとか定数パラメータのセットって重いんですか?

455:デフォルトの名無しさん
10/10/14 17:05:51
ダミー設定を用意して実際に測定してみるといいよ。

456:デフォルトの名無しさん
10/10/14 17:27:44
最近のチップは以前と比べると格段に負荷は軽くなったけど

>ステート変更をできるだけ減らし、残ったステート変更をグループ化する。

とMSDNにはある

457:デフォルトの名無しさん
10/10/14 17:53:55
誰がUPが遅いなんて話してたの?
変なことやったシェーダとUPとの比較の話だったんでしょ?

458:デフォルトの名無しさん
10/10/14 17:55:15
>>457
お前はちゃんと勉強した方が良い

459:デフォルトの名無しさん
10/10/14 18:10:36
>>458
お前は日本語の文章を読む練習からしろ

460:デフォルトの名無しさん
10/10/14 18:18:08
>>457
じゃあ、変なことやったシェーダーとUPで実際に動かして比較して見ろよ
絶対にお前が思った通りにはならないから
何を、もって違いがないって言ってるわけ?

461:デフォルトの名無しさん
10/10/14 18:28:24
「なんとなくいっぱい情報送ったら遅くなりそう」とか思い込んでるだけじゃね?

462:デフォルトの名無しさん
10/10/14 19:10:05
>>460
そんなこといってねぇだろ
日本語大丈夫か?
いきなり誰も聞いてないような比較データが貼られるから
話わかってるの?って言っただけ

今の話題と違うデータ出してない?

ってことな

463:デフォルトの名無しさん
10/10/14 19:12:57
ろくに理解してないのに煽るだけの奴より
データ出してくれる奴のほうがよっぽどマシ

464:デフォルトの名無しさん
10/10/14 19:15:02
ここまで説明されて何が遅くなる原因なのかが理解できないとは…
お前さんがまるで見当違いの問題提起してることに気づけよ

465:デフォルトの名無しさん
10/10/14 19:17:59
馬鹿なんだろ。

466:デフォルトの名無しさん
10/10/14 19:32:04
真面目に質問します。

皆さんはDIRECTXをどうやって勉強したんですか?

独学ですか?

ある壁を境になかなか進まないのです。

それはシェーダです。
おそらく座標変換がちゃんとわかってないのです。

皆さんの学習法をお教えください。

真剣ですので、バカとか死ねとか言わないでください。

467:デフォルトの名無しさん
10/10/14 19:34:45
>>466
とりあえず死ね。
入門本買え。

468:デフォルトの名無しさん
10/10/14 19:37:12
もういいです。

本気で呪っときます。

469:デフォルトの名無しさん
10/10/14 19:44:39
>>464
は?
誰もそんな話してなかったじゃん
お前馬鹿?
もう一度言うよ

 誰 も そ ん な 話 し て な い よ ね ?

もう一度言うよ

 誰 も そ ん な 話 し て な い よ ね ?


470:デフォルトの名無しさん
10/10/14 19:54:49
顔真っ赤w

471:デフォルトの名無しさん
10/10/14 19:58:28
>>463
まったく関係ないデータでも?
はぁ?プログラマ辞めちまえよクズ

472:デフォルトの名無しさん
10/10/14 20:00:04
>>470
そうやって誤魔化してるけど
君、自分がまったく関係ない話をしてること理解できてないでしょ?
新卒によくいるんだ君みたいなの
会話にちょろっと出てきた単語だけつまんで発言する人w

473:デフォルトの名無しさん
10/10/14 20:04:49
誰と戦ってるんだ?

474:デフォルトの名無しさん
10/10/14 20:06:10
どうせ全部自演だろ

475:デフォルトの名無しさん
10/10/14 20:07:44
>>472はもう黙ってろ。真っ赤な顔なんとかしてこいよ


>>466おまえ>>431だろ、入門書買えっつってるだろカス

476:デフォルトの名無しさん
10/10/14 20:08:11
このスレの存在意義ないだろ。

毎回人をけなすようなアドバイスしかできないカスがいるからな。

477:デフォルトの名無しさん
10/10/14 20:08:46
そう思うならこなければいい。さようなら

478:デフォルトの名無しさん
10/10/14 20:10:08
なんかいつも人のことをバカにするゴミみたいなやつがいるよな。

毎日どんな時間帯にもいるし、おそらくニートだろうねw

479:デフォルトの名無しさん
10/10/14 20:15:47
で?

480:デフォルトの名無しさん
10/10/14 20:18:29
>>478
入門書は買えたのかい?

481:デフォルトの名無しさん
10/10/14 20:24:41
みんな苦労してるんだよ


482:デフォルトの名無しさん
10/10/14 20:28:33
>>466
ただ漠然とどうしたら良い?とか聞かれても困るな
シェーダーが分からないにしても
どの段階で分からないのかも伝わってこないし
とりあえず手を動かして具体的に躓いたら質問に来ればいいよ
とりあえずサンプルのチュートリアルをシェーダーで表示するところから始めたら?

483:デフォルトの名無しさん
10/10/14 20:30:30
参考にならないかもしれないが俺はPIXでデバッグするようになって理解が深まったよ

484:デフォルトの名無しさん
10/10/14 20:32:47
オススメの入門書を載せてるサイト紹介して

485:デフォルトの名無しさん
10/10/14 20:34:29
>>466
>おそらく座標変換がちゃんとわかってないのです。

答えは出ているじゃないか。

486:デフォルトの名無しさん
10/10/14 20:37:41
入門書は無い

487:デフォルトの名無しさん
10/10/14 20:41:39
>>482
本当にありがとうございます。
単純に画像を表示するまでならできます。
その後の応用が効かない感じです。
エフェクトファイルもパスをわけて、新しい関数定義すべきなのか、
新たにファイル作るべきなのかとか、その辺もです。

>>483
こんなツールあったんですね・・・!これかなり良さそうです!
本当にありがとうございます。

488:487
10/10/14 20:42:52
今日から座標変換について質問しまくる予定です。

どうか見捨てないで下さい。お願いします。

489:デフォルトの名無しさん
10/10/14 21:06:45
ここにそんなクソ下らないこと書いてる暇あったら
ググればいいと思う

490:デフォルトの名無しさん
10/10/14 21:15:02
アホなんだろ。

491:デフォルトの名無しさん
10/10/14 21:22:06
質問するのは構わないけど「何がやりたいのか」ははっきりさせてね

492:デフォルトの名無しさん
10/10/14 21:26:25
>>1が読めない奴が多いな

493:デフォルトの名無しさん
10/10/14 21:49:24
アホかどうかの境目は、質問する前にどういう回答が返ってくるか予想しているかどうか。
それだけで質問内容が的を射るかどうかが決まる。

494:デフォルトの名無しさん
10/10/14 22:36:31
座標変換をGoogleで調べて勉強しようとすると大変だな
ボケとかカスとか教えるの下手糞なサイトばっかり当たる

基本、物理とか数学まわりってはじめからよく知ってないといいサイト見つけるの難しいな

495:デフォルトの名無しさん
10/10/14 22:51:51
つーか、DirectXの最良の資料は
DirextXSDKドキュメントだろ。
とりあえずD3D9の日本語版ドキュメント全ページ嫁

496:デフォルトの名無しさん
10/10/15 11:55:36
本格的なのやりたいなら英語か数学のどちらかができないと

497:デフォルトの名無しさん
10/10/15 15:21:09
数学ができないならミドルウェアとか使ったほうがいいのかなぁ。

498:デフォルトの名無しさん
10/10/15 15:44:11
DirectXを使いたいだけなら数学はいらない
ある程度まともなゲームを作りたいなら多少は求められるがそれならミドルウェアでも変わらない
それに数学が必要といっても公式覚えたり難しい方程式が解ける必要はない
計算はプログラムがやってくれるんだから
要は自分が求めたいことを何を使えば求められるか、ということを知ってれば良いだけ

例えば「2本のベクトルの内積や外積が一体何になるのか」ということさえ知ってれば
内積・外積を求める計算自体は別に知らんでもいい事だ

499:デフォルトの名無しさん
10/10/15 15:51:03
ゲーム作るたってモノによる
だから線形代数はちゃんとやろう

500:デフォルトの名無しさん
10/10/15 15:51:54
ついでに群論環論もやろう

501:デフォルトの名無しさん
10/10/15 15:58:23
三角関数と内積外積、あと行列を少し分かっていれば3Dゲームは作れちゃうでしょ
まぁ、だいたい線形代数の範囲内なんだが。
ライブラリ作成に命をかけてる人たちはその限りではないが

502:デフォルトの名無しさん
10/10/15 16:02:08
基底とかは?

503:デフォルトの名無しさん
10/10/15 17:08:39
知ってた方が楽な知識はたくさんあるが
知らなければならない知識はそれほどない
難しく感じるとしたら単に慣れが足りないのだろう

504:デフォルトの名無しさん
10/10/15 17:12:00
どれぐらい勉強したら、
普通にゲーム作れるようになりましたか?

505:デフォルトの名無しさん
10/10/15 17:13:04
勉強とおもっているうちはゲームを作れない。

506:デフォルトの名無しさん
10/10/15 17:21:25
早くMMDが作れるようになりたいよぉ

507:デフォルトの名無しさん
10/10/15 17:36:14
答えになってないんですが。

勉強と思わなくなるのにどれぐらいかかりましたか?

508:デフォルトの名無しさん
10/10/15 17:38:36
>>507
10年

509:デフォルトの名無しさん
10/10/15 17:40:24
ゲームを作るだけなら勉強と同時進行で出来たしそれなりのものも作れた
しかしDirectXを理解してきたなぁと実感できるようになるまでには5年かかった

510:デフォルトの名無しさん
10/10/15 17:41:26
マジすか・・。

数ヶ月でマスターなんて無理なんですかね・・・・

511:デフォルトの名無しさん
10/10/15 17:42:57
まぁ個人差あるだろうね。。。
俺みたいな馬鹿だと20年掛かるかもしれない

512:デフォルトの名無しさん
10/10/15 17:44:54
まあいい。私は不可能を可能にする男だ。

513:デフォルトの名無しさん
10/10/15 17:49:08
勉強してマスターしようなんて土台無理な話
とにかく手を動かして何度も失敗して試行錯誤していくうちに身につくもの

最初はどんなにショボくても何か形になるものを仕上げた方がいいよ
やりたい事が明確になれば自分に何が足りないのかが見えてくる
そうなれば「どんな本を読めばいいですか?」なんてアホな質問しなくても自分で選べるようになるし
ただ漠然と「覚えなきゃいけない事がたくさんある」なんて考えて立ち止まるのはむしろ時間の無駄

514:デフォルトの名無しさん
10/10/15 17:52:17
>>513
すばらしいご意見ありがとうございます。
本当にその通りだと思います。
何事もたくさん経験して、失敗して覚えていくものですね。
これからはアホな質問はしないように頑張ります。

515:デフォルトの名無しさん
10/10/16 16:30:05
前にここでパーティクル系のソースアップしてくれた人いますか?
あの画像って何のソフトで作ったんですか?

GIMPで同じようなもの作れますか?

516:デフォルトの名無しさん
10/10/16 17:09:28
>>515
URLリンク(macototo.cool.ne.jp)
こんなんどうよ?

517:デフォルトの名無しさん
10/10/16 17:12:51
>>516
おお!すごいです!
photoshopのようですが、参考にさせていただきます!
ありがとうございます!

518:デフォルトの名無しさん
10/10/16 18:08:32
このレスは俺の日記帳の切れ端

こうやったらクオータニオンうまくいった
mQuaはXファイルのアニメーションキーの回転から取得した値

D3DXQUATERNION q1,q2;
q1.x =-mQua[key.index[1]].x;
q1.y =-mQua[key.index[1]].y;
q1.z =-mQua[key.index[1]].z;
q1.w =mQua[key.index[1]].w;

q2.x =-mQua[key.index[2]].x;
q2.y =-mQua[key.index[2]].y;
q2.z =-mQua[key.index[2]].z;
q2.w =mQua[key.index[2]].w;
D3DXQuaternionSlerp(&q,&q1,&q2,time);


519:デフォルトの名無しさん
10/10/17 02:16:41
>>515
あれ、やっぱ気にしてる人まだいたか
描き方説明しようかと思ったけど微妙に言葉で説明するのが面倒で
どうしようかと思ってるうちに忘れてた

そんなたいしたことしてる訳じゃないんよ
>>516みたいにちゃんと描けるのが一番なんだろうけどもっと手抜きです
ネットに転がってるフョトショ用のブラシを落としてきて
描画モードを「スクリーン」にして何回か連打するだけ
ちょっとやってみたけどGIMPはフォトショのブラシファイルをそのままフォルダに突っ込めば使えるので
シェイプ機能とかはないけど大体同じようなことはできた


一発撮り未編集なのでぐだぐだだけど参考
URLリンク(www5b.biglobe.ne.jp)

ブラシはこことか。後はググって
URLリンク(www.chethstudios.net)


520:デフォルトの名無しさん
10/10/17 02:16:50
一念発起してD3D11のサンプルをみているが
やっぱりいろいろ整理されててわかりやすい印象
移行すべきだろうなあ・・

521:デフォルトの名無しさん
10/10/17 02:22:26
>>519
おもしれー

522:デフォルトの名無しさん
10/10/17 04:04:26
マでもPhotoshopくらい扱えないとだめなのか
魔方陣色々使えそうで良いな

523:デフォルトの名無しさん
10/10/17 09:36:15
>>519
どうやって書いてるのかと思ったら専用のブラシがあったんですね。
本当に助かりました。ありがとうございます。

524:デフォルトの名無しさん
10/10/17 14:36:55
知ってみれば大したことじゃなくても
知らなければ手も足も出ないなんて良くあること

525:デフォルトの名無しさん
10/10/17 15:28:22
じゃあ、そのブラシはどうやって作ってるんだよ
とか疑問もたないところが初心者だよねw

526:デフォルトの名無しさん
10/10/17 15:37:05
ブラシなんて普通の画像と大差ないじゃん
何いっちゃってるの?

527:デフォルトの名無しさん
10/10/17 15:38:12
ハイハイw
この話題はここでおしまい

528:デフォルトの名無しさん
10/10/17 15:38:44
いままで真面目に描いてたのが悔しくてしょうがないんだろw
そっとしといてやれよ

529:デフォルトの名無しさん
10/10/17 15:42:03
自分で新しいの作れない子がなにか言ってるよw

530:デフォルトの名無しさん
10/10/17 16:11:19
自分で話題終了を宣言しといてちょっと煽られたくらいで反応しちゃう男のひとって

531:デフォルトの名無しさん
10/10/17 16:25:07
上の方で顔を真っ赤にしてたやつと同じ臭いがするな
自分じゃロクな情報出さないくせにやけに他人に絡む奴

532:デフォルトの名無しさん
10/10/17 16:46:49
でもこのやり方で毎回同じものしか作れないとかはちょっと困る

533:デフォルトの名無しさん
10/10/17 16:57:59
初心者スレなのに初心者をバカにする風潮どうにかならんのかね
こちとらどんな情報でもありがたいのに

534:デフォルトの名無しさん
10/10/17 17:03:07
>>533
どこにそんなレスがあるんだ?

535:デフォルトの名無しさん
10/10/17 17:04:19
プログラマが自分で用意しなきゃいけないのってどうせ仮素材くらいなんだからこの程度でいいんじゃないの?
大事なのはどういう絵が実際の画面上でどう見えるかを知っておくことだと思う
プログラマ側からグラフィッカに指示を出す事だって結構あるしこんな感じって具体的に言えるだけでも大分違うと思われ

536:デフォルトの名無しさん
10/10/17 17:05:10
>>534
>>525

537:デフォルトの名無しさん
10/10/17 17:07:03
>>536
いいじゃん
必要ないんだから

538:デフォルトの名無しさん
10/10/17 17:09:35
そういう形でブラシを使っちゃうならはじめからフリー素材貼り付けろと

539:デフォルトの名無しさん
10/10/17 17:11:25
>>538
フリー素材のサイト教えてください

540:デフォルトの名無しさん
10/10/17 17:13:17
プログラマらしく数式で求めるんだ

541:デフォルトの名無しさん
10/10/17 17:13:26
>>519見る限り結構応用が利きそうだけどな
まぁ、Photoshop限定だろうが

542:デフォルトの名無しさん
10/10/17 17:15:13
いつもサンプルを作ってくれる519さんってプロですか?

543:デフォルトの名無しさん
10/10/17 17:37:57
GIMPでもできますー

544:デフォルトの名無しさん
10/10/17 17:46:44
会社で使ってるのだとただ貼り付けるのって結構少ないな

ムービーっていうかテクスチャにもZやややこしいαが入ってたりしてわけわからん
URLリンク(www.cri-mw.co.jp)

こんなん多いこんなん
上のじゃないんだけど・・・ちょっと仕組みは近いかも

545:デフォルトの名無しさん
10/10/17 17:48:56
IMPO


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch