■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

鬱だ氏のう DirectX (Part 9)
251 名前:デフォルトの名無しさん :03/07/03 02:02
>>250
文章がおかしいんじゃなくてほとんど何も書いて無い。

252 名前:デフォルトの名無しさん :03/07/03 02:02
>>248
>>249
公式サイトにでていたのですね
見落とすなんてお恥ずかしい

もう一点、OSによって機能などが制限されないかと
ふと疑問に思っていたのですがそういったこともないようです

ありがとうございました

253 名前:デフォルトの名無しさん :03/07/03 03:51
DirectX9.0なのですが、
640*480のサイズのjpgをD3DXCreateTextureFromFileで
読み込んで、ID3DXSprite::Drawで描画したら何も指定
していなのに勝手に拡大されて表示されてしまいます。
拡大率とかもちゃんとNULLに設定してるのですが。
どなたか原因が分かる方いらっしゃいますでしょうか?


254 名前:デフォルトの名無しさん :03/07/03 03:59
>>253
多分、グラボの性能じゃない?
2^nのサイズまでしかサポートしないんだと思うよ。
2,4,8,16,32,64,128,256,512,1024ってな具合。
おそらく640が1024になって、480が512のサイズになってるんじゃない?

255 名前:デフォルトの名無しさん :03/07/03 04:37
拡大率にNULLを指定すると自動補正して拡大するんじゃなかったっけ?
なんたら_NONEみたいのを指定すると上手くいくんじゃないかな

256 名前:デフォルトの名無しさん :03/07/03 08:24
キリバンゲット

257 名前:デフォルトの名無しさん :03/07/03 09:22
>>253
テクスチャ読み込み時に引数でフィルターを指定して自分で引き延ばしているのに、
勝手にとか責任を他人になすりつける考え方はやめた方が良いよ

258 名前:デフォルトの名無しさん :03/07/03 13:01
>>257
お前性格悪いな。初心者に何突っかかってるんだか。
彼女いないだろ。

259 名前:デフォルトの名無しさん :03/07/03 13:32
まあまあ、マターリと卓球でもしようや。
( ´ー)ρ┳┻┳°σ(ー` )

とはいえ、「コンピュータは人間が思った通りにではなく、教えた通りに動く」ので、
何か変なことが起きるなら、間違いは必ず人間側(大抵は自分)にある。
その辺をちゃんと理解するのが、プログラミングにおける問題解決のコツだ。

と老婆心的うんちく。

260 名前:デフォルトの名無しさん :03/07/03 14:22
>>253
の質問はテンプレに入れるべきだな。月1回はこの質問が飛び出す。>>85のように

261 名前:デフォルトの名無しさん :03/07/03 15:18
DirectX9、C++版ヘルプの、DirectX Graphics>プログラミングガイド>
チュートリアル>プログラムの>パフォーマンスの項にある、
「動的な頂点バッファとインデックス バッファの使い方」について質問お願いします。

今まさに自分がこの状況でして、これだ!と早速USAGE STYLE 2の方で
実装してみようと思ったのですが、ふと疑問が。

毎回変わるデータに対し、PrimitiveUP系関数を使わずに、
わざわざLock&memcpyしてまで、頂点バッファにこだわる利点は何なのでしょうか?

262 名前:デフォルトの名無しさん :03/07/03 16:56
動的なデータで速度的に優位かどうかは別として、ハードウェアTnLが使えるのが利点
複雑なライティングを使っているような場合は効果が大きい

263 名前:261 :03/07/03 17:06
>>262
なるほど、ハードウェアTnL…。
ライティングを使わない場合は、それほど考慮しないで良いのですね。

おかげで、使用の是非を検討することができそうです。
レスありがとうございました。

264 名前:185 :03/07/03 17:25
D3DXIntersectの第7・8引数にある「重心ヒット座標」って何なんですか?
レイの当たる角度によって変化するみたいだけど・・・
こいつらを使って、レイの当たった面の角度を求めたりとかできないもんかな?



265 名前:デフォルトの名無しさん :03/07/03 20:30
>>262
UPでもハードウェアTnLは使えるよ。

>>261
わざわざLockというが、CPUとGPUが同じメモリに同時にアクセスはできないから、
Lockは最低限必要な処理だよ。マルチスレッドプログラミングの経験があれば
自然と分かるかと。

UP系を使った場合でも、結局はドライバ側でLockとmemcpyをしている。
ついでに言うと、多分DrawPrimitiveUPを呼ぶ度にCreateVertexBufferしているかと。

266 名前:デフォルトの名無しさん :03/07/03 21:47
>>261
>毎回変わるデータに対し
頂点は変わるかもしれないけどインデックスはあんまし変わらないんじゃない?
少しでも転送量を稼げるかも(ムダかも)。

267 名前:デフォルトの名無しさん :03/07/03 22:11
レイとメッシュの当たり判定の確認にD3DXIntersect()を使っていますが、
うまくいきません。
スクリーン座標の点を3Dのレイにした後、
レイの始点に、メッシュ描画時のワールド行列の逆行列をかけて移動させ、
元のメッシュと比較しています。
単純に逆行列をかけるだけではだめなんでしょうか?

メッシュ描画時のワールド行列は
拡大行列 * 回転行列 * 移動行列の順にかけてたものです。

D3DXIntersect()には、
描画メッシュ、
レイの始点にメッシュ描画時のワールド行列の逆行列をかけた点、
レイの方向、
を設定しています。

ワールド行列が移動行列のみの場合はうまくいきます。
行列が拡大行列や回転行列を含む場合には、別の処理が必要なのでしょうか?

268 名前:デフォルトの名無しさん :03/07/04 00:42
>スクリーン座標の点を3Dのレイにした後、
Zの値はどうしてるの?

>元のメッシュと比較しています。
なんてワールド上でやらないのか分らないが、ワールド行列の逆行列しかってないなら
>ワールド行列が移動行列のみの場合はうまくいきます。
当り前やがな。

>レイの方向、
>を設定しています。
それは、どこから求めたの?


その前に、行列やら3Dの概念が理解出来てるのかい。
断片の文章に突っ込んだが、いまいち何を言ってるのかなんだよな。
カメラなんて普通は、モデルと違う動きじゃないの?
それを、なんでスクリーン上の座標をモデルのワールド行列の逆行列なんていいだすのか…

269 名前:デフォルトの名無しさん :03/07/04 01:47
267はカメラとは、一言も言ってないみたいだが。
SDKサンプルのPickみたいな事をやりたいのでは?
あのサンプルではメッシュはワールド内に固定だけど、メッシュが
移動や回転等する場合での、レイとメッシュの交差判定をしたい
のではないかと。

270 名前:デフォルトの名無しさん :03/07/04 02:20
これから試そうと思ってたんけどレイの始点からメッシュの座標を引いたらダメ?
メッシュを原点に置いて、その分レイの始点を移動させれば同じ事だと思ってたんだが。

271 名前:デフォルトの名無しさん :03/07/04 02:21
ああそうか、回転があるのか。これじゃダメだな。忘れてた。

272 名前:デフォルトの名無しさん :03/07/04 02:29
>>269
カメラを通さずに見えるスクリーン画面ってあるの?
>スクリーン座標
っていってるよ。

で、だから分らないって。
モデルを変換前のものを使用して、レイにモデルに使った逆行列をかけてって…
それって、レイがモデルと同じ動きをしてないと成り立たない。
で、それなら変換後だろうが、前だろうがモデルとレイの関係は同じだろ。
レイを視線ベクトルと同義にしたいなら、考え方が間違ってる。
行列と3Dモデルを2D描画する理論を勉強するのが先。

273 名前:デフォルトの名無しさん :03/07/04 06:28
おかしい・・・
DIRECTINPUT_VERSIONを定義すると実行時にエラーが出て、
定義しないとすんなり通る。

・・・と思ったら
#define DIRECTINPUT_VERSION 0x8000
って書いてたよ_| ̄|○|||

これはきっと、このスレタイのせーだ!!ヽ(`Д´)ノ

274 名前:267 :03/07/04 12:52
269さんの言うとおりのことをしたいのです。
うまく説明できなくてすみません。
270さんの通りにやって見てだめだったので聞いてみたのですが、
回転があるとだめなんですか。

275 名前:教えて君 :03/07/04 18:06
背景をUpdateSurfaceでバックバッファへ書き込んでいるんですが、
IDirect3DDevice9::Clear を使ってビューポートをクリアすると
それ以降バックバッファへいくら書き込んでも表示されないのです。
Clearメソッドを使う目的はスプライト(D3DX)をクリアするためです。
どうやったらスプライトだけをクリアできるのでしょうか?

276 名前:デフォルトの名無しさん :03/07/04 19:01
その説明じゃ状況が分からん。

一つ言いたいのは、スプライトだけを消すことは出来ない。
UpdateSurfaceで書き込むのはバックバッファ。
スプライトを書き込むのもバックバッファ。
そしてClearでクリアするのはバックバッファ。

277 名前:デフォルトの名無しさん :03/07/04 19:44
全部じゃねーか!

278 名前:261 :03/07/04 20:36
>>265
> 呼ぶ度にCreateVertexBuffer
な、なんと!そんなショボーンな危険性もあるんですね。おかげ様で
Lockが必須な処理であること、故にどのみち影でやっているだろう事が良く分かりました。

>>266
なるほどー、そんな利点も。うちのデータ見たところ、かなり稼げそうです。

お二方とも追加情報ありがとうございました。勉強になります。

279 名前:デフォルトの名無しさん :03/07/04 20:40
内部のことはよく知らんが、
毎回CreateVertexBufferなんか使ってたら
UPのあんな速度は出ないと思うのだがどうか…。

280 名前:デフォルトの名無しさん :03/07/05 00:20
ドライバによって内部処理が違うような気がする。
何種類かのビデオカードでUPと毎回Lockを比較してみたが、どっちが速いかはまちまちだった。
たしかGF4TiなんかはUPがかなり速かった記憶がある。


281 名前:デフォルトの名無しさん :03/07/05 10:56
たぶんヘルパAPIみたいなものだろうから、中身次第でしょうな。
どっかのスライドにはUP使うなって書いてた。

282 名前:デフォルトの名無しさん :03/07/05 14:11
>速度について語っていいのは実際に速度を測ってみた者だけだ
との格言もありますし誰かベンチ書いてよ
ム板、ゲ製、合同で集計したらそれなりの結論が見えてくるんじゃないかと

283 名前:デフォルトの名無しさん :03/07/05 14:18
>>282
必要だと思ったら自分で作ればいいだろ
なんで他人任せで「書いてよ」なんだ?

284 名前:デフォルトの名無しさん :03/07/05 14:46
ベンチマークなんかすると、ほかのレスが読みにくくなるから止めた方がよいと思う。

285 名前:デフォルトの名無しさん :03/07/05 15:18
nVidiaのサイトにあるDynamicVBテンプレートクラスを使えば
UPと同等以上にできるんじゃないか?

286 名前:デフォルトの名無しさん :03/07/06 06:38
DirectXの勉強ができる一番良いサイトおせーて。
とりあえずマイクロソフト以外でよろしく。

287 名前:デフォルトの名無しさん :03/07/06 09:31
DirectXのヘルプ。

288 名前:デフォルトの名無しさん :03/07/06 10:27
DirectX8で空きVRAMの容量を取得するにはどうしたら宜しいのでしょうか。

DirectDrawのDDCAPS.dwVidMemFreeの様な・・・
GetAvailableTextureMemだと、途方もない数値が返ってきてしまいます。

289 名前:デフォルトの名無しさん :03/07/06 11:16
すでにどこかで答えたような・・・
結論からいうと、正確な値は期待できない。

290 名前:デフォルトの名無しさん :03/07/06 11:25
>>289
では、近い数値を得る事は出来るのでしょうか?

GetAvailableTextureMemを試してみたら、152,043,520 なんて
数字が返ってきて、どう言う数値なのかとヘルプ確認したら
返される値は最も近いMBに丸められる
なんて書かれてて・・・ 152T・・・?

291 名前:デフォルトの名無しさん :03/07/06 11:41
i810等でどうなるかを想像してみるといいのでは?

292 名前:デフォルトの名無しさん :03/07/06 11:47
>>291
i810触った事無いので全く解りませんが、
BIOSでビデオに割り当てるサイズ指定するなら、その空き。
指定出来なければ、物理メモリの空き容量

を返して欲しい。

293 名前:デフォルトの名無しさん :03/07/06 11:50
>>290
152043520÷1024÷1024=145MBですよ。

294 名前:デフォルトの名無しさん :03/07/06 12:01
あぁ そうか。単位がMBと言うわけじゃないんですね。
でもあまり関係無い・・・


295 名前:デフォルトの名無しさん :03/07/06 12:21
>>292
>>289

296 名前:デフォルトの名無しさん :03/07/06 12:30
>>295
ん・・・ここの生きてる過去スレの中には無かったけど、
GetAvailableTextureMemで得られる値が最善の値て事ですか?

297 名前:デフォルトの名無しさん :03/07/06 12:54
>>296
どうしてもVRAMに置きたいのなら、
試しに置いて「メモリ不足エラー」ならば他のメモリに置く。

298 名前:デフォルトの名無しさん :03/07/06 13:54
>>297
まだ試していませんが、DEPTHSTENCILかRENDERTARGETを
指定しない限り、OUTOF_VIDEOMEMORYは返さない様が気がします・・・

299 名前:デフォルトの名無しさん :03/07/06 16:23
300目前だ。

300 名前:デフォルトの名無しさん :03/07/06 18:54
折角なのでゲト

301 名前:デフォルトの名無しさん :03/07/06 21:34
DirectX9なのですが、
D3DXCreateTextureで複数種類のビット深度のテクスチャを同時に作成し、使用しても、
問題ありませんか?

つまり、
・D3DFMT_A8R8G8B8・D3DFMT_R5G6B5・D3DFMT_A1R5G5B5
 以上のテクスチャを各一枚ずつ作成し、そのテクスチャを貼り付けたポリゴンを
 レンダリングしても問題ないだろうか。
・また、ビット深度を統一しないと問題のある環境はあるのだろうか、という事です。

(自分で実験したところでは、GeForce、Radeon7500、TNT2で大丈夫でしたが)


「 (゚Д゚)ハァ?ビット深度なんて統一する必要はねぇ!そんなこと考えもつかなんだ」とか
書かれそうで怖いですが

302 名前:デフォルトの名無しさん :03/07/06 21:43
>>301
フォーマットごとにCheckDeviceFormatで問い合わせる。

303 名前:デフォルトの名無しさん :03/07/06 23:36
Direct3Dオブジェクトの作成に失敗した時に、
WinMain関数内で、retun 0;でプログラムを終了させているのですが、
return 0;の前に、FreeLibrary(hInstD3D8);というのを実行しているソースがあったのですがこれは何をやっているものなんでしょうか?
コメントで、最初に読み込んだd3d8.dllを開放と書いてありました。

304 名前:デフォルトの名無しさん :03/07/06 23:50
関数名まんまの意味だが。ってか日本語コメントもあるし。
どっかにLoadLibraryってのはないか?

305 名前:デフォルトの名無しさん :03/07/07 00:23
>>304
それがないんですよね。
MSDNのヘルプは見たことは見たんですが。
推測でプログラム起動時に自動でdllを読み込んでいるので、それを開放するという意味だとは思うのですが。
プログラム終了時にdllの開放をプログラマ自身が行わなくてはいけないの?

306 名前:デフォルトの名無しさん :03/07/07 00:25
なんかの本についてたソースにFreeLibrary使ってたのがあったな。
LoadLibraryなんか使ってないのにw

当時は何のことかサッパリ分らんかったなぁ・・・。

307 名前:デフォルトの名無しさん :03/07/07 01:45
済みません、どなたか教えてください。

某オンラインゲームのオートパーロットツールをPerl+Win32で
作ってるものです。
現状のテザインでは、某オンラインゲームの画面を、通常のGDI系APIで
キャプチャーして、比較分岐により自動キー入力を行っております。

次回バージョンアップで対象ゲームの描画方法が変わり、Direct3D8 の
SwapChain により、全画面表示でフリッピングが行われるようです。
こうなった場合、通常のGDI系APIでフロントバッファが参照できなく
なると思われますが、何らかの方法でフロントバッファをキャプチャー
することは可能でしょうか?

308 名前:デフォルトの名無しさん :03/07/07 01:55
BOTですか。

309 名前:デフォルトの名無しさん :03/07/07 02:04
>>305
よーわからんが、
とりあえずhInstD3D8を参照している別の場所を見つけるべし。
どういう値が入ってるかによってわかるかもしれん。

310 名前:デフォルトの名無しさん :03/07/07 02:36
>>309
hInstD3D8どこにもないw
グローバル変数にもないし、関数内でも定義されていない・・・
これ雑誌のプログラムなんですよね
そういえば、昔、これ書いてコンパイルした時、この変数がなくてこの関数の行をコメントにした記憶が・・・

311 名前:デフォルトの名無しさん :03/07/07 02:42
掲載されてるプログラムが全て正しいというわけはないからな。
明示的にロードしてるわけじゃないならFreeする必要もない。

312 名前:デフォルトの名無しさん :03/07/07 04:28
さっさと氏ね>>307


313 名前:デフォルトの名無しさん :03/07/07 05:26
ざわ・・・ざわ・・・

死ねとか言ってるよ。あの人。

ざわ・・・ざわ・・・

314 名前:デフォルトの名無しさん :03/07/07 06:10
誰かが殺神予告を発したもよう

315 名前:デフォルトの名無しさん :03/07/07 06:37
人に聞かないと分からんような奴が神など片腹痛いわ('A`)ノ
しかもBOTerときたらクソ。ゴミ。今年の横浜。

316 名前:デフォルトの名無しさん :03/07/07 06:45
横浜はゴミじゃありましぇん(´Д`)

317 名前:デフォルトの名無しさん :03/07/07 08:58
>>315
激しく同意!!
最後の6文字以外はなヽ(`Д´)ノ

318 名前:デフォルトの名無しさん :03/07/07 11:21
      / ̄ ̄ ̄ ̄ ̄ ̄\
    /     山 下     \
   /                 ヽ
    l:::::::::               |   うちにはBOTなんかいないよ
    |::::::::::   (●)    (●)   |    
   |:::::::::::::::::   \___/    | 
    ヽ:::::::::::::::::::.  \/     ノ

319 名前:デフォルトの名無しさん :03/07/07 11:30
1のリンク先の
- 宇治社中改(3D基礎講座)
http://www.cc.rim.or.jp/~devilman/
がなくなっているのだが・・・

320 名前:デフォルトの名無しさん :03/07/07 12:22
http://www.kohgakusha.co.jp/books/detail/4-87593-419-X

これから3Dを扱う上では、C#、DirectXの両方の知識が必要ということになります。

C++ではだめなのかい?

321 名前:デフォルトの名無しさん :03/07/07 16:57
C#じゃ無い本にすれば良いだけだろ
アホ?

322 名前:デフォルトの名無しさん :03/07/07 16:58
C#覚えるとC++に戻る気にならないらしいけどな

323 名前:デフォルトの名無しさん :03/07/07 17:03
殆どVB感覚で(?)COMオブジェクト使える点は良いと思う

324 名前:デフォルトの名無しさん :03/07/07 17:11
>>322
C#覚えるとC++のよさが益々引き立ったんだが


325 名前:デフォルトの名無しさん :03/07/07 17:29
DirectXのAPIが綺麗なんはちょっとうらやましー

326 名前:デフォルトの名無しさん :03/07/07 19:22
>>321
いや、C#のほうがC++より向いているのかと聞きたかったのだが

327 名前:デフォルトの名無しさん :03/07/07 22:02
DirectX8以降ですが、天球の実装について解説してるサイトってありませんか?
円柱方式はなんとかなりそうなのですが、真上を向けないので・・・。

半球モデルをモデリング→Xファイルに→読み込んで内側に空のテクスチャ
でキレイにできるのでしょうか?
できればあらかじめXファイルを用意するのではなく、頂点をその場で
生成したいと考えています。

328 名前:デフォルトの名無しさん :03/07/07 22:19
>>327
星の数だけポイントライトを置くといいと思うよ。

329 名前:デフォルトの名無しさん :03/07/07 23:53
つまり何兆個も・・・

330 名前:327 :03/07/07 23:58
>>328
(;´Д`)ヒィィ
と言いつつ、実は表現したいのは夜空ではなく青空なのですよ。

天球は一般的な3Dゲームでは当たり前のように使用されているのに、
なぜか後悔されている資料が全然ないですね。

331 名前:デフォルトの名無しさん :03/07/08 00:09
っていうか、なぜそこでXファイルが出てくるのか分からん。

332 名前:327 :03/07/08 00:24
>>331
Xファイルに関しては憶測で言っています。戯言として解釈して下さい。

とすると、一般的な方法は全く違うのだろうということになりますが、
どのような方法でしょうか?

333 名前:デフォルトの名無しさん :03/07/08 00:25
問題の要点は、半球状のドーム+空のテクスチャでそれっぽく見えるか
と言う事だよね?
俺が実験した時は、それなりに綺麗に見えた。ただし、テクスチャは
ちゃんとドーム用に補正が入ったものを用意した。
他人がどうやっているかは知らない。

334 名前:デフォルトの名無しさん :03/07/08 00:43
>>327
正直に言えよ。
半球状に頂点を生成する方法が分らないって。
言えば教えてあげる。

335 名前:デフォルトの名無しさん :03/07/08 01:36
モデリングツールで半球作成。
でもテクスチャの作り方がわからない。

336 名前:デフォルトの名無しさん :03/07/08 02:17
マジでこのスレって>>335レベルなのか?
モデリングツール使うなら、そのモデリングツールでテクスチャも作れるだろ。

その程度なら、モデラなんぞ使わず
球の方程式から半球なんて楽に作れるだろ。
で分割した分だけUVも増加させれば良いだけじゃん。
で、そのUVだと天頂部分が歪むからテクスチャの上部をUVに合わせて
縮める感じで描けば、良い感じになる。

337 名前:デフォルトの名無しさん :03/07/08 02:34
>>336
正24面体をベースにしたほうが綺麗だよ

338 名前:デフォルトの名無しさん :03/07/08 02:36
24じゃねー20だ

339 名前:デフォルトの名無しさん :03/07/08 03:20
Photoshopで作ったロゴを表示させたいんですが、
文字だけをくりぬいた時に境界が背景色と混合してしまうという、
Webの透過GIFと同じ問題が出てきてしまいました。
これは避けられない運命なのでしょうか?

特に小さな文字の見栄えが物凄く悪いです。何か上手い対策は無いでしょうか。。

340 名前:デフォルトの名無しさん :03/07/08 03:51
>>339
境界のところにαブレンディングを使え。

341 名前:デフォルトの名無しさん :03/07/08 04:18
>>340
いや、そんな単純にはいかないんです。

TGAに焼くときに画像が背景色と混合してしまうことが問題なんです。
文字自体に半透明部分があるわけですから、
文字の境界の不透明度をnと置けば「n*文字+(1-n)*背景色」がTGA画像です。
ソレをDirectXでαブレンドすると「画像=(1-α)*DEST+α*SRC」で、
SRCをさっきの画像で置けば「α*(1-n)*背景色」という項が残ります。
Web上で見る透過GIFの境界がたまに白っぽくなってるのはこれが原因です。

例えばシューティングなんかで丸弾を作るときは、
RGBチャンネルを全て塗りつぶしてαチャンネルを●でくりぬきます。
RGBチャンネルの時点で●を書くと境界部分が変に見えるのと同じことです。

342 名前:デフォルトの名無しさん :03/07/08 04:51
>>341
文字のアンチエイリアス部分が背景の色と混ぜて作られるから汚くなるってことか?
じゃあその混ざってる部分の透明度を完全に0にして混ざってない部分に手動でアルファを設定していけば?

343 名前:デフォルトの名無しさん :03/07/08 05:00
>>342
あふー、そうか… 元々の文字の透明度を0にしてしまえばよいんですね。
ちょっと結果がどうなるか分からないんですが風呂入ってからやってみます。
どうもありがとうございました。

344 名前:327 :03/07/08 07:05
>>333
見た目は実用に耐えるものになりそうですね。
ありがとうございます。

>>334
半球状に頂点を生成する方法がわかりませんすいません(;´Д`)
>>336さんの方法でやってみます。ありがとうございます。

345 名前:デフォルトの名無しさん :03/07/08 21:47
D3DPRESENT_PARAMETERSって最初に設定する以外にも使う時ってありますかね?
グローバルとかで確保しといたほうが良いですか?

346 名前:デフォルトの名無しさん :03/07/08 21:51
必要になるたびに作っとります。

347 名前:デフォルトの名無しさん :03/07/08 22:10
D3DPRESENT_PARAMETERSのメンバのSwapEffectは何の値を設定したらいいのでしょうか?
日本語ヘルプを見たのですが、スワップチェーンという単語が出てきて、スワップチェーンを調べたら
アニメーションを滑らかにするためのもの(?)だとは分ったのですが、どの値を設定したらいいのかわからず。

348 名前:デフォルトの名無しさん :03/07/08 23:00
>>347
まずはヘルプの見方を勉強しろ。
プログラムの話はその後だ、突っ込む気にもなれん。

…いや、あえて言おう。ヘルプにメンバとメンバの型、
及び型の説明&型の列挙まで書いてあるぞ。
初心者ならいざすらず、初心者以前のレベルなのであえて言おう。
馬鹿はプログラムするな。

349 名前:デフォルトの名無しさん :03/07/09 00:20
英語ヘルプの場所教えてください
全然見つからない・・・

350 名前:デフォルトの名無しさん :03/07/09 00:21
英語版のヘルプファイルです

351 名前:デフォルトの名無しさん :03/07/09 00:21
☆頑張ってまーす!!☆女の子が作ったサイトです☆
       ☆見て見て!!
http://yahooo.s2.x-beat.com/linkvp/linkvp.html

352 名前:デフォルトの名無しさん :03/07/09 01:27
>>336
えー。
わざわざそこだけ別処理にする必要あるのー?
モデリングツールからもってくる流れはそのままでもいいんじゃない?
どうせ実際に使うときは雲やら星やら動かしたいときはモデリングツールで色々できるようにしといた方が楽じゃない?

353 名前:デフォルトの名無しさん :03/07/09 01:31
ShowWindow( hWnd, nCmdShow );
UpdateWindow( hWnd );

の前にDirectX初期化しといたほうがいいのでしょうか?

354 名前:デフォルトの名無しさん :03/07/09 01:40
>>352
良く読め。
>その程度なら、モデラなんぞ使わず
ってあるだろ。
別処理も何もそんな基本的なプリミティブは
コードを少し書く程度で生成や効果処理できるだろ。
モデラで作って、Xfileにでも吐き出すのか?
めんどうだろ。

355 名前:デフォルトの名無しさん :03/07/09 08:09
>>354
モデリングツールで確認できないじゃん。
不便じゃん。
プログラマしか介入できないじゃん。
嫌じゃん。

ビューワ作れよ!

って絶対言われるじゃん。
仕事増えるじゃん。
楽に作りたいじゃん。




みゃーみゃーみゃーみゃー

356 名前:デフォルトの名無しさん :03/07/09 12:18
題名がいいので寄らせてもらいますた。
最近、仕事ができません。一日中2chしてます。
ほんと、鬱だ氏のう

357 名前:デフォルトの名無しさん :03/07/09 14:29
>>356
キミにはこのスレがおすすめのようだ。(俺も)

※もう2chで時間を潰さないと誓うスレ※
http://pc.2ch.net/test/read.cgi/prog/1011527176/

358 名前:デフォルトの名無しさん :03/07/09 16:30
>>357
行ってきますた。
同じ悩みの人は多いんだなぁと1から700番の終わりまで
読んでたんで、また、時間潰しちゃいました。
今度は、「首吊る・・・」て題名のとこ探して行って見末。


359 名前:デフォルトの名無しさん :03/07/09 16:46
BackSurfaceの真ん中でなく注視点を少し上にずらしたくて
ViewPortを変更したりRenderToSurfaceを使ってみたりしたのですが
うまくいきませんでした
なんか簡単な方法ありますか?

360 名前:デフォルトの名無しさん :03/07/09 17:12
何かどううまくいかないか書かないで質問する奴って、いったい何を考えているんだろう?

361 名前:デフォルトの名無しさん :03/07/09 17:33
ツマンネ。
少しは、ゲートを読んで回路でも逆あせして公開しろよ。
んvとからでとかの画像を公開しろ。

362 名前:359 :03/07/09 17:35
すいませんです。
一点透視の消失点を上に引き上げたいのですが、
ViewPortを変更してもゴミ(赤と緑のちらつき)がはみ出してくるだけでした。
RenderToSurfaceも同じでしたがこっちは単に使い方が悪いんでしょう。多分。
平行移動行列では地平線は上がりますが消失点(視点のZ軸方向)は中央なので駄目でした。

363 名前:デフォルトの名無しさん :03/07/09 17:36
透視変換行列に細工が必要

364 名前:359 :03/07/09 17:43
有難うございました。jumpしてきます。

365 名前:sage :03/07/09 17:45
フラッシュムービー倉庫 宣伝カキコ
http://wave8.hp.infoseek.co.jp/flash/
↑おもしろいです

366 名前:デフォルトの名無しさん :03/07/09 18:20
DirectGraphicsで2Dを扱いたいのですが、
パレットによる抜き色(透過処理)はできなくなったのでしょうか?

もしそうなら、たしかAlphaを含む画像なら透過処理ができるみたいなので
ビットマップファイルから、Alphaを含む画像を動的に作成したいのですが、
なにか良い方法はありますか?
#これは、自作の画像圧縮&展開ルーチンが、Alphaに対応してないためです。

間違いがあったら指摘してください。


367 名前:デフォルトの名無しさん :03/07/09 18:47
αチャンネルつきのPNGファイルをそのまま使う。

368 名前:デフォルトの名無しさん :03/07/09 18:58
>>366
そのパレットに相当する色の部分にアルファ値を設定すればいいだけ
単純なループで出来るので特に考えるべきところはない

369 名前:デフォルトの名無しさん :03/07/09 19:49
>366
DirectX Texture Tool

370 名前:デフォルトの名無しさん :03/07/09 20:18
>>362
http://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi?log=32&vew=382
マルチポストかよ

371 名前:デフォルトの名無しさん :03/07/09 20:59
なんか最近また教えてクンが増えてきたな。

372 名前:362 :03/07/09 21:35
>>370
教えてもらったProj行列で駄目だったんでBBX炒ったのですが、
断り入れて往くのが良かったようですね。
ごみんなさい。

373 名前:362 :03/07/09 21:37
あげてもーたー
hogehoge

374 名前:直リン :03/07/09 21:39
http://homepage.mac.com/maki170001/

375 名前:デフォルトの名無しさん :03/07/09 23:42
D3DXVec4Normalizeってどんなときに使うのでしょうか?

376 名前:デフォルトの名無しさん :03/07/10 01:37
>366
お手軽にいくならD3DXCreateTextureFromFileExでcolorkey指定する。


377 名前:デフォルトの名無しさん :03/07/10 02:48
>>375
D3DXVECTOR4をNormalizeしたいとき。

378 名前:デフォルトの名無しさん :03/07/10 08:01
>>377
どんなときに使うのでしょうか?
同次座標で扱うってことがどうも頭にイメージできません。

379 名前:366 :03/07/10 08:21
なるほど、
メモリ上でAlphaを追加するか、
テンポラリファイルを作って〜Exで読み込むんですね?

わかりました。やってみます!
これで光明が見えました。ありがとうございましたっ!!


380 名前:デフォルトの名無しさん :03/07/10 09:23
>>378
法線とか使わないの?

381 名前:デフォルトの名無しさん :03/07/10 19:52
DirectX関係の関数が使いづらい
メンバも出てこないし、(を入力しても関数仕様が出てこないし・・・

382 名前:デフォルトの名無しさん :03/07/10 20:23
>>381
環境は? うちはVS.NET2003+DX9で問題ないけど。

383 名前:デフォルトの名無しさん :03/07/10 20:24
>>382
VC++6.0+DX9

384 名前:デフォルトの名無しさん :03/07/10 21:09
>>383
関連するヘッダファイルをプロジェクトに追加すればよろし。
1度追加したら削除しても大丈夫・・・だったような。

385 名前:デフォルトの名無しさん :03/07/10 21:26
ちがう。DirectXのインクルードディレクトリを追加。

386 名前:デフォルトの名無しさん :03/07/10 21:42
lpD3DDevice->SetVertexShader(D3DFVF_XYZRHW | D3DFVF_DIFFUSE);

SetVertexShader' : 1 番目の引数を 'const int' から 'struct IDirect3DVertexShader9 *' に変換できません。

どこかおかしいですか?

387 名前:_ :03/07/10 21:43
http://homepage.mac.com/hiroyuki44/jaz09.html

388 名前:386 :03/07/10 21:45
ヘルプ見たんですが、9では8のような使い方はできないんですか・・・。

389 名前:386 :03/07/10 21:47
こういう風に使うのかな?

lpD3DDevice->SetVertexShader( NULL );
lpD3DDEvice->SetFVF( D3DFVF_XYZRHW | D3DFVF_DIFFUSE );

390 名前:デフォルトの名無しさん :03/07/10 21:52
>>389
そう。

391 名前:デフォルトの名無しさん :03/07/10 21:53
>>385
それだけじゃ出なく無いかな?

392 名前:デフォルトの名無しさん :03/07/10 22:16
D3DFVF_XYZRHW指定してシェーダーなんて使えたっけ?
なんでSetVretexShaderが出てくるんだろ??

393 名前:デフォルトの名無しさん :03/07/10 22:28
ブレテックスシェーダー

という自分も最近rendreとかretrunとかよくやっちまう(゚Д゚)

>>392
XYZRHWでもプログラマブルシェーダは使えるよ

394 名前:381 :03/07/10 22:32
>>391
出なかった

395 名前:デフォルトの名無しさん :03/07/11 00:20
>>381
VC6 だと少なからず DirectInput については
ヘッダー参加させただけじゃ表示されないと思う。

#ifdef UNICODE
#define IDirectInput8 IDirectInput8W
#else
#define IDirectInput8 IDirectInput8A
#endif

っていう感じになってるから、

IDirectInput8* pInput;

これだと、表示されないはず。
このクラスの置き換えがtypedefでやってくれてると、メンバが表示されたりするんだが……


396 名前:デフォルトの名無しさん :03/07/11 01:13

シェーダ中で乱数を作るにはどうしたらいいんでしょう?
そういうことをしておられる方のHPないですか?

397 名前:デフォルトの名無しさん :03/07/11 01:18
頂点シェーダとすると状態を保持しないから無理なんじゃなかろうか。
頂点ストリームに乱数をはめ込むんじゃだめ?
ピクセルシェーダなら、テクスチャに乱数をまぶすとか・・・

398 名前:デフォルトの名無しさん :03/07/11 02:29
整数の固定レジスタに毎フレ、randの値でもセットしたら?

399 名前:デフォルトの名無しさん :03/07/11 04:45
>>398
それだと頂点ごとの乱数ではなくてDrawPrimitiveごとの乱数になってしまう。
動的頂点ストリームか動的テクスチャでCPU側から乱数値を入れるのが無難かと。
マルチ頂点ストリームが使えるなら使ったほうがいいかもしれんね。

400 名前:デフォルトの名無しさん :03/07/11 09:53
>>399
それって、例えば5万頂点あったら
フレーム毎に、5万のループ回して乱数をセットするって事?

プロシージャルテクスチャの方が良いかな
乱数テーブルになり得るかどうかは別として。

401 名前:デフォルトの名無しさん :03/07/11 12:13
VC++ .NET2003でDirectX 9.0 SDKについていたサンプルプログラムをビルドしようとしているのですが
DirectPlayを使用するプログラムはビルドすることが出来ません。
その際表示されるエラーメッセージが
「ChatPeer fatal error LNK1181: 入力ファイル 'dplay.lib' を開けません。」
というようなものです。

VC++ .NETの方ではインクルードファイル、ライブラリファイルともパスは通してあります。
またプロジェクト→プロパティ→リンカ→入力→追加の依存ファイルに 'dplay.lib' と書き込んであります。
この他にまだやるべき作業があるのでしょうか。

402 名前:デフォルトの名無しさん :03/07/11 12:29
マルチキターーーーーーーーーーーーーーーーーーーーー

403 名前:デフォルトの名無しさん :03/07/11 12:33
>>402
マルチではありません
別スレで誘導されたので

404 名前:デフォルトの名無しさん :03/07/11 14:01
>VC++ .NETの方ではインクルードファイル、ライブラリファイルともパスは通してあります。
>またプロジェクト→プロパティ→リンカ→入力→追加の依存ファイルに 'dplay.lib' と書き込んであります。

あぁ、ここでやるのが普通なんだね。
おれはコンパイラオプションに直接書いてた。
ひとつ降り甲になったありがとう。


405 名前:404notfound :03/07/11 14:12
余談だけど、
先週6.0から.net 2003にバージョンアップしたんだけど、
なんか.net使いづらくってさ。。
慣れれば.netのほうが使いやすそうに見えるんだけどね。
コードたためるし。ビックリ。


406 名前:デフォルトの名無しさん :03/07/11 14:38
アウトラインを切れば昔通りに戻るけど?

407 名前:デフォルトの名無しさん :03/07/11 14:44
.net重杉なのがイヤン
機能は文句ないのに

408 名前:デフォルトの名無しさん :03/07/11 15:05
>>405
逆(.NET->6)をやると使いづらいなんてもんじゃないよ

409 名前:デフォルトの名無しさん :03/07/11 15:07
>>407
2002?
なんか2003では軽くなったみたいどよ。俺もってないけど

410 名前:デフォルトの名無しさん :03/07/11 15:11
VC++6と心中するつもりだったが
そんなにいいのか.NETは

DirectXとC#も相性良いって話だしなぁ…

411 名前:教えて君(275) :03/07/11 16:15
ClearメソッドのあとUpdateSurfaceでバックバッファへ書き込むと何も表示されないと、
ほざいていた>>275ですが、ようやく解決しました。

原因はClearメソッドでレンダリングターゲットしかクリアしてなかったからです。
3つ目の引数にD3DCLEAR_ZBUFFERを追加してやるとすんなり出来ました。

あぁ、、、恥ずかしい。穴があったら入れたいでつ、、、

412 名前:396 :03/07/11 17:09
>>397-400
いろいろなご意見ありがとうございました。
とりあえず、テクスチャに乱数を仕込んでやっていこうと思います。
あと、動的頂点ストリームがよくわからないので少し勉強してきます。

413 名前:401 :03/07/11 18:07
先の問題をVC++6.0でビルドしたところ、全く問題無く出来ました。
しかし.NET2003では相変わらずエラーメッセージが出てきます。
6.0の方は特に設定もしていないのですが・・・何が違うのか全く見当が付かない状態です。

414 名前:デフォルトの名無しさん :03/07/11 22:24
.net選んだ奴は、この先どうするの?
VC++7が出ますよ。

415 名前:デフォルトの名無しさん :03/07/11 23:43
でねーよバカ

416 名前:デフォルトの名無しさん :03/07/12 00:07
>>415
MSのホームページ見れ

417 名前:デフォルトの名無しさん :03/07/12 00:35
出ねーって。MS見てもどこにもないし。VS2003出たばかりなのにそんなもん出すわけないし。

418 名前:デフォルトの名無しさん :03/07/12 00:48
>>414
2003に含まれるVCのヴァージョンが7.10.3077
同一の物をどうやって選ぶんだ?

419 名前:デフォルトの名無しさん :03/07/12 06:44
>401
VC6があるなら、そこからdplay.libコピったらええやん。

420 名前:デフォルトの名無しさん :03/07/12 19:32
コンポーネント オブジェクト モデル

忘れないように書き込んでおこう

421 名前:デフォルトの名無しさん :03/07/13 00:23
mview.exeでC:\DXSDK\Samples\Media\skullocc.xを開こうとすると
リブートがかかる

422 名前:デフォルトの名無しさん :03/07/13 06:38
SetRenderStateでライトオフにすると、読み込んだ一部のxファイルの質感が
表示されない気がするのですが。気のせいですか?

423 名前:デフォルトの名無しさん :03/07/13 07:00
ライトをオフにしたらマテリアルが適用されないよ。これ常識。

424 名前:デフォルトの名無しさん :03/07/13 10:06
ライト使うと重くなるからイヤなんですが、
テクスチャーで誤魔化すしかないですかね・・・・

425 名前:デフォルトの名無しさん :03/07/13 12:57
>>424
自前でライティング計算、これ常識。

426 名前:デフォルトの名無しさん :03/07/13 13:33
>419
よーわからんが、そーいう問題なのか?


427 名前:デフォルトの名無しさん :03/07/13 14:00
ライトよりもテクスチャの方が重いと思うのだが

428 名前:デフォルトの名無しさん :03/07/13 14:13
頂点数によるだろ。

429 名前:デフォルトの名無しさん :03/07/13 14:22
頂点数が多くても少なくてもテクスチャの方が重い

430 名前:デフォルトの名無しさん :03/07/13 14:48
>>429
TextureのSizeと、ボードのスペックによるかと。


431 名前:デフォルトの名無しさん :03/07/13 15:49
AppWizard便利ですか?
もしかしてVC.netかったほうが良いですか?

432 名前:デフォルトの名無しさん :03/07/13 17:22
私のマンコみたいかな♪

http://akipon.free-city.net/page001.html

433 名前:デフォルトの名無しさん :03/07/13 18:23
今更DirectX8でPrimitive使った2Dクラスを書いてみたのですが、
拡縮フィルターが思うように設定出来ません。
MAGFILTERにLINEARを設定すると、XYZRHWでの等倍表示でも
滲んでしまいます。

普通に、等倍の時はそのまま、拡縮時はバイリニアと言う様に
適用するにはどうしたら宜しいのでしょうか。

434 名前:デフォルトの名無しさん :03/07/13 18:31
描画直前に等倍かどうか調べて、フィルタを設定すればいいんじゃない?

435 名前:デフォルトの名無しさん :03/07/13 18:35
そこ迄しないといけないんでしょうか;

436 名前:デフォルトの名無しさん :03/07/13 18:40
>>433
LINEARでも歪ませない方法はあります。
>>87-89 あたりを参考に。
ヘルプにもピクセルとテクセルの一対一対応の仕方が書いてあるので調べてみて。

437 名前:デフォルトの名無しさん :03/07/13 18:58
ドライバがアホだと滲むから>>434の方法を薦めるよ。

438 名前:デフォルトの名無しさん :03/07/13 19:04
>>436
78〜はフィルタじゃなく、D3DXCreateTextureFrom〜の丸め込みとかの
問題だった様に思えます・・・
ヘルプ探してみます。

>>437
D3DXSpriteはScalingがNULLならPOINT、あればLINEARとかして
るんですかね。
テクスチャとかが変わらない限りインデックスに溜めて込んでから
描画する様にしたんですが、その方法でやるとしたら、等倍・!等倍の
時もフラッシュせなあかん様になるんですよね・・・

439 名前:436 :03/07/13 19:16
>>438
いあ、88はピクセルとテクセルの一対一対応の話。
ピクセルは点ではなく面積をもつ正方形なので、
ピクセルの(0,0)-(640,480)のスクリーン座標は(-0.5,-0.5,639.5,479.5)です。
スクリーン座標の原点はピクセル(0,0)の中央。
これにあわせれば歪まない…と思ってたらドライバがアホだと駄目なんだそうで_| ̄|○

インデックスバッファに溜め込む場合はLINEARを使いたいだろうし、
とりあえずは、この方法でやるしかないんでないかと。

440 名前:デフォルトの名無しさん :03/07/13 19:26
ぉぉぉぉ ヘルプの「テクセルとピクセル間の直接マッピング」も参考にして
騙されたつもりで座標全てを-0.5したら滲まなくなりました!
有り難うございました。

終点絡みかとか色々悩んだのが馬鹿らしい・・・
しかしこれで良いんだろうか。

441 名前:デフォルトの名無しさん :03/07/13 19:52
>>440
FAQだYO!

442 名前:デフォルトの名無しさん :03/07/13 20:00
ドライバによっては0.5ずらすと逆に滲むという罠

443 名前:デフォルトの名無しさん :03/07/13 20:02
PrimitiveとPrimitiveUPで速度差ってありますか?
うちの環境で試した限りでは大して速度差がでなかったんですが・・・。
(128*128頂点の矩形を画面内に表示)

444 名前:デフォルトの名無しさん :03/07/13 20:21
>>441
一応かなり必死にぐぐってたんですが、MAGFILTER・LINEARに
原因があると思いこんでたので辿り着けなかった様です。スマソ

445 名前:デフォルトの名無しさん :03/07/14 05:56
>>443
いろんな環境で試すのは大変だねえ、としか言いようがないなあ。

446 名前:山崎 渉 :03/07/15 09:49

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

447 名前:デフォルトの名無しさん :03/07/16 10:59
age

448 名前:デフォルトの名無しさん :03/07/16 18:35
hage

449 名前:デフォルトの名無しさん :03/07/16 20:38
ハゲではありません。涼しい髪型の人です。

450 名前:デフォルトの名無しさん :03/07/16 20:44
冬には寒い髪型の人になります。選択権はありません。

451 名前:デフォルトの名無しさん :03/07/16 20:45
かわいい女の子たちが脱いじゃいました★
http://www3.free-city.net/home/espresso/au/sweety.html

本能がむき出しになっちゃうかもよ!?
http://www3.free-city.net/home/espresso/princess/peach.html

今からはここで夜の時間を過ごしてあそびましょう〜☆
http://www3.free-city.net/home/espresso/au/xxx.html


452 名前:デフォルトの名無しさん :03/07/16 21:31
DirectDraw は非常に高速に描画できると誰かが言ってたので、
試しにスプライトを10万個表示させてみたらFPSが7前後で
カクカクでした。

1万個なら50〜60だった。100万個で0.8位だった。

453 名前:デフォルトの名無しさん :03/07/16 21:47
>>452
騙されたな。GDIの方が高速に描画できるよ。ためしてみ(w

454 名前:デフォルトの名無しさん :03/07/16 21:48
毎フレ10万スプライトで60fpsってどのくらいのボードだと出来るんだろ

455 名前:デフォルトの名無しさん :03/07/16 21:59
たぶん>>452はDirectDrawがハードウェアの
機能をフルに使うためのAPIで性能はハードウェアに
依存することを知らない素人。

456 名前:デフォルトの名無しさん :03/07/16 22:23
1600x1200x10万 は当分無理だろうけど、
32x32・16x16程度なら現時点でも出来んじゃない。

457 名前:デフォルトの名無しさん :03/07/17 06:40
>>452はフィルレートをしらない素人

458 名前:デフォルトの名無しさん :03/07/17 08:23
>>452はコマンド発行のオーバーヘッドをしらない素人

459 名前:デフォルトの名無しさん :03/07/17 11:57
>>452は素人

460 名前:デフォルトの名無しさん :03/07/17 13:08
>>452は仕(4)事(5)人(2)

461 名前:デフォルトの名無しさん :03/07/17 15:28
厨房度UP

462 名前:騙された素人 :03/07/17 19:26
どんなにがんばっても、60fps以上にならないんですけど、
なんでかな?

463 名前:デフォルトの名無しさん :03/07/17 19:46
二匹目のドジョウは居ないぞ。釣り師が

464 名前:デフォルトの名無しさん :03/07/17 21:07
DirectXでマルチビューを行っているサンプルソースってありませんか?
解像度変更等でデバイスをリセットする際の処理が良くわからなくて・・・。

465 名前:デフォルトの名無しさん :03/07/18 03:28
DirectXでゲームを作っているのですが、このようなゲームを完成させて方は
最終的にどのぐらいのクラス数、ファイル数になりましたか?

一人で作業しているのですが、まだ基本部分ができた段階でファイルが
68個になってしまいました。
この程度ならまで手に負えるのですが、これから先大丈夫なのか
不安になってしまいまして__| ̄|○

466 名前:デフォルトの名無しさん :03/07/18 03:41
そういうのはゲ製で聞いたほうがいいかと
それにクラス数とかいう問題でもないし。

467 名前:デフォルトの名無しさん :03/07/18 04:53
>>466
ちょいと疑問なんだけど、DirectXでゲームじゃなくて何つくってんの?
モデリングツールくらいしか思いつかないけども。

468 名前:デフォルトの名無しさん :03/07/18 05:58
今は物理シミュの表示とかに使ってます。
他には単にVSとかPSでなんかやったりとか。

という俺もゲーム製作の関連でDX覚えようとしたわけだが
今はゲーム作るよりもそういうの作ってるほうが楽しい。

469 名前:デフォルトの名無しさん :03/07/18 06:36
>>465
安心しろ。
おいらのプロジェクトは200を超えたぞ。(ヘッダは抜き)

470 名前:デフォルトの名無しさん :03/07/18 07:15
200越えをC言語でやってると思うと震えるね
C++は良かった

471 名前:デフォルトの名無しさん :03/07/18 10:16
Direct3Dで、MAPってどうやって作ってる?
これもモデリングツール?
俺はテキストでシコシコとやっとるのですが。。。

472 名前:デフォルトの名無しさん :03/07/18 10:48
>>470
Delphでつ。(だからヘッダはなし)

473 名前:デフォルトの名無しさん :03/07/18 11:09
Delphプ

474 名前:デフォルトの名無しさん :03/07/18 12:45
>>471
objとかでエクスポートしてエディタに読み込んでポリゴンごとにエリアとか定義したあと独自形式でエクスポート

475 名前:デフォルトの名無しさん :03/07/18 21:45
>>473
Delphi だよぉ ・゚・(つД`)・゚・

476 名前:デフォルトの名無しさん :03/07/19 00:19
32bitRGBAのテクスチャを、ロック等はせずに、
αやブレンドでグレースケール化する事は可能でしょうか?

RGB単色にはブレンド設定で簡単に出来ましたが、ここから何か
もっと色々やると出来そうな気がしないでも無い様な。

477 名前:デフォルトの名無しさん :03/07/19 00:38
>>476
ピクセルシェーダでグレースケールすることは簡単だけどねぇ。
それ以外の方法でロック無しと言われるとちょっと思いつかない

478 名前:デフォルトの名無しさん :03/07/19 01:39
>>476
何が目的かによるんじゃない?
その処理に意味が無ければ、
写真屋かなんかで欲しい画像に加工して使えば良いかと。

nVIDIAやATIの最新サンプルを見ても、その手のTextureは予め全て用意してある。
プログラムで処理するのは、その処理が目的の場合のサンプルなどしか無いよ。

479 名前:476 :03/07/19 01:47
エフェクトの一つとしてその場でリアルタイムにやりたいので、
予め用意する事は出来ません・・・
手持ちのカードがGeFo2MX・GeFo2Proなので、ピクセルシャーダも
無理です(つД`)

最小で256x256程のテクスチャを60fpsで処理したいので、ロックでの
処理はほぼ不可能・・・
他にも640x480のDIBを毎フレームテクスチャに書いてて、そこで既に
限界に近かったり

480 名前:デフォルトの名無しさん :03/07/19 01:56
どういうエフェクトにするつもりなん?
徐々にグレースケール化みたいなのだったら、
グレースケール画像と元画像をブレンドしてみるとか。

481 名前:デフォルトの名無しさん :03/07/19 02:43
>>476-478
こんな簡単なことも分からないのかッ!!
D3DTOP_DOTPRODUCT3で内積取るだけだよ。
D3DTSS_COLORARG2はD3DTA_TFACTORあたりで。

テクスチャのαが未使用なら予めそこに入れておいてD3DTA_ALPHAREPLICATE
あたりで処理することもできる。

482 名前:477 :03/07/19 02:51
固定機能あんまり使ったことなかったからそんな手は思いもつかなかったPO!
勉強になりますた

483 名前:厳しい突っ込み :03/07/19 02:55
>>479
申しわけないが、技術の程が…
何で最小で256x256?最大での間違いでしょ?
って突っ込みたくなる。

それに、エフェクトって事は描画結果が欲しい物であり、
全ての前処理まで無理にリアルタイム処理する必要は全く無い。
そんなの、プログラム初心者が勉強用にやる程度の意味しか無いよ。

>予め用意する事は出来ません・・・
この発想じゃ、そのエフェクトとやらの処理や理解なんて無いだろ。
どんなエフェクトよ?

484 名前:476 :03/07/19 03:44
>>481
どもです。
自分もCOLOROPての使った事無かったのですが、ヘルプ眺めてたら
色々出来そうですね・・・
とりあえずグレースケールには成りましたが、REFACTORの値が
いまいち解らない・・・ どうしても暗くなってしまふ

>>483
最小256x256に何か問題ありますか?

RENDER_TARGETでレンダリングしたテクスチャの一部を
グレースケールのテクスチャとして使うってフィードバックの様な
事をしたかったんですが、この手の物も予め用意出来るんでしょうか?


485 名前:デフォルトの名無しさん :03/07/19 05:33
>最小256x256に何か問題ありますか?
圧縮テクスチャ?

486 名前:デフォルトの名無しさん :03/07/19 05:54
>>484
DirectX SDK ヘルプより抜粋

>入力は、符号付きデータをシミュレートするため、
>使う前にすべて 0.5 シフトする (y = x - 0.5)。
>結果のスカラーは、正の値に制限され、

というわけで、輝度が 0x80 未満のピクセルは黒にされてしまうため
まともな白黒フィルターには使えないようだ。

まぁ、ピクセルシェーダーを使えない環境なら諦めろってことか。

487 名前:デフォルトの名無しさん :03/07/19 09:40
一旦0x80〜0xffにしてしまえばいいんじゃない?
0x80の白黒画像に対しα値0.5で加算合成するのかな。

αはALPHAOPをスルーにしておけば残るんだろうか。

488 名前:476 :03/07/19 14:38
白のテクスチャ無しポリゴンを0x80で重ね、REFACTOR192にしたら
見事に欲しかった映像に成りますた。
階調は半分に落ちてるんでしょうけど、とりあえず問題無しです。
有り難うございました。

489 名前:デフォルトの名無しさん :03/07/19 16:03
そもそもグレースケール化の時点で情報が1/3になってしまうんだから
気にすんな。

490 名前:デフォルトの名無しさん :03/07/19 17:01
>>489
はあ?何言ってんだお前は?

491 名前:デフォルトの名無しさん :03/07/19 17:56
>>488
REFACTOR って TEXTUREFACTOR だよね?
192 という数字はなんで出てきたの?
ここは 0xffa4c98d になると思うんだが。

492 名前:476 :03/07/19 18:52
>>491
逆に、その数値は何処から出てくるんでしょか・・・

何処みても
>D3DTA_TFACTOR テクスチャ ブレンディング引数、または
> D3DTOP_BLENDFACTORALPHA テクスチャ ブレンディング処理を
>用いたマルチテクスチャ ブレンディングで使用される色。関連する
>値は D3DCOLOR 変数である。
としか書いて無く、 0x80以下だと黒、0xffだと白なので、単純に、
0x80と0xffの中間の192にしたんですが・・・
実際には微妙に明るかったんで188にしましたが。

493 名前:476 :03/07/19 18:59
あ D3DCOLOR_ARGBでRGB各色192です。

494 名前:デフォルトの名無しさん :03/07/19 19:05
ようしらねんけど
視覚的に青が暗いとかそういう話のような気がする。
具体的な数値は知らんが

495 名前:476 :03/07/19 19:19
Yはおおよそ 0.3R + 0.59G + 0.11B ですが、この式を元に
RGBに重さ付けたのが 0xffa4c98dなんでしょうか?

そのまま試してみたらもの凄く暗くなり、/2+0x80してみたら
明るくなってしまいました。

496 名前:491 :03/07/19 19:31
>>495
そう。

DotProduct3 の SDK サンプルにある関数に
A : R : G : B = 1.0 : 0.29 : 0.58 : 0.11 (あ、RGB が1.0になってねー)を
渡してできた数、なんだけど・・・。

少数第3位以下を単純に切り捨てたのはこちらのミス。申し訳ない。

497 名前:476 :03/07/19 20:04
>>496
正直、昨日間違ってDotProduct3のディレクトリ消してしまいました。
脊髄反射的でシフト+DEL・・DotProduct3は帰ってこない(つД`)

64が0.33相当で、128が0.66とするとー 58・114・21かな。
64*3より1多いけどとりあえずスルーで+128しての186・242・149 かなー
十六進で ba f2 95・・・ a4c98d とは少し離れてる?
一応この数値で暗すぎもせず、明るすぎもせずそれっぽい
絵になりました。
a4c98dだと極端に暗く、/2+128 -128/2+192 とかしても無理がありました。

DotProduct3の注釈にはなんて書いてあったんだろう・・・

498 名前:491 :03/07/19 20:25
>>497
各要素について 127.0f * vector + 128.0f を計算してるだけの関数です。
だから例えばR要素は 127 * 0.29 + 128 = 164.83 ≒ 0xa4 になる。

こちらも 0xffbaf295 で試したところ、確かにより明るくなるが
よく見ると、白く飛んでいる感じになった。
この場合、各要素の比重が高すぎて、加算で飽和しまくるので、
全体的に白くはなるが、明るい部分の諧調が失われていると思われ。

499 名前:476 :03/07/19 20:54
あ 本当だ・・飛びまくってる。
単体で試して無かったので気付きませんでした。
もう一度計算し直したら今度は 189 207 178 て数字が出たけど、
これも飛ぶなぁ。
かと言って、 127*n+128の数値だと、明らかに暗くなってしまいます・・・

何か根本的に間違ってる様な気が。 原因解る迄おとなしく単純平均の
各色192使う事にします。

500 名前:476 :03/07/19 21:10
つか、単体で見たら平均と思ってた192(188)の時点で既に飛んでますたw
前処理諸々+後処理諸々で見てたら、特に飛んでる様に見えなかった
んだけどなぁ・・・

何だかどつぼにはまった様な。


■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.