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


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

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



1 名前:デフォルトの名無しさん [2007/09/08(土) 22:21:46 ]
※回答する人も、質問する人も必ず読んでください

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

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

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

【C++】 DirectX初心者質問スレ Part13 【C】
pc11.2ch.net/test/read.cgi/tech/1182351826/

488 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 10:28:26 ]
>>485
プロジェクション変換は
スクリーン座標に変換するものではなく
ビュー変換から射影座標に変換するためのもの
そこからさらにVierport変換をかけて
ようやくスクリーン座標になる
Direct3Dの場合は
Viewport変換はViewpotの設定にしたがって
デバイスが勝手にやってくれるので忘れられがちだけど


でも、こんなのをまとめたところで
「で?」っていう感じがしないでもないんだが・・・

489 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 14:11:12 ]
自分の知識を整理するって意味では有用じゃないの

他人からしたらあまり意味ないけど

490 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 14:17:52 ]
そんな時のためにチラシの裏があるんだよ

491 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 14:27:51 ]
ダイレクトX死ね

492 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 15:12:53 ]
>>486
ごちゃごちゃ言いわけしてるのは君w
まあどうでもいいけど

493 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 18:40:21 ]
XFileフォーマットに関して質問です。

現在D3DXを使わずにXファイルの書き出しをしています。
しかし、圧縮バイナリ"xof 0302bzip0032"の後の8バイトが何を指しているのか
分からずつまずいています。
前4バイトはおそらく解凍後のバイナリサイズだと思うのですが
残りの4バイトが分からないのです。

ご存知の方いらっしゃいましたらご教示お願いします。




494 名前:479 mailto:sage [2007/09/30(日) 18:54:05 ]
>>482
おかげさまでできました。
ありがとうございましたm(_ _)m

495 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 22:08:33 ]
新ねエーきょうみねええーあひゃひゃひゃ
今からここは初心者の性根を叩き
なおすつういみのしょしんしゃすれになるぜーーー


496 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 22:12:46 ]
新ねえー興味ねええあひゃひゃひゃふあ
つうかいまからここは初心者の性根を叩きなおす
といういみでのしょしんしゃすれになったから



497 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 00:15:27 ]
>>446
>>451
>>453
>>454
>>457
>>462
>>463
割れOS使ってんなよ

498 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 00:39:14 ]
最近のSDKはダウンロード時にチェックされんのか
あんま意識してなかったけどそういやそうだった

だから古いのを使いたがるのね

499 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 07:31:45 ]
古いSDKを使いたがる奴=割れ厨ってことだな

500 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 11:59:59 ]
XP SP1で止まってる奴は十中八九割れ

501 名前:デフォルトの名無しさん [2007/10/01(月) 15:19:08 ]
テクスチャって2の累乗の正方形じゃないとダメみたいなことを
聞いたことがあったようななかったような気がするんですが、
そんな仕様ってありましたっけ?
CreateTextureFromFileとかで普通に読み込んで表示できてるんですが・・・

502 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 15:37:21 ]
>>501
かつて、そういうGPUがあった。

503 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 15:57:57 ]
>>501
TextureCaps の D3DPTEXTURECAPS_POW2 フラグと
D3DPTEXTURECAPS_SQUAREONLY フラグが立っているときがそれ。

504 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 16:34:19 ]
>>503
全然気にせず作っていた、、、どの世代のGPUってそんな制限あったんだろう?
そのCAPってDX9だけどDX10にはCAPがないからその制限ないのかな?


505 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 18:15:20 ]
>>504
2の累乗制限に関しては
・条件付きnon-pow-2サポート
・無条件non-pow-2サポート
の2種類がある。
ttp://msdn2.microsoft.com/en-us/library/bb172513.aspx

[条件付きnon-pow-2サポート]
D3DPTEXTURECAPS_POW2==TRUE && D3DPTEXTURECAPS_NONPOW2CONDITIONAL==TRUEのとき

[無条件non-pow-2サポート]
D3DPTEXTURECAPS_POW2==FALSE && D3DPTEXTURECAPS_NONPOW2CONDITIONAL==FALSEのとき

これとは別に、テクスチャの縦横サイズをそろえる必要があるかどうかの
D3DPTEXTURECAPS_SQUAREONLYフラグがある。

PixelShader 3.0への対応条件に
・D3DPTEXTURECAPS_SQUAREONLYがFALSEなこと
・条件付きまたは無条件のnon-pow-2テクスチャをサポートすること
が含まれているので、PixelShader 3.0対応ハードなら基本的に問題ない。
ttp://msdn2.microsoft.com/en-us/library/bb219845.aspx

C:\Program Files\Microsoft DirectX SDK (August 2007)\Samples\C++\Direct3D\ConfigSystem\CardCaps.pdf
にCAPS一覧がある。

>そのCAPってDX9だけどDX10にはCAPがないからその制限ないのかな?
ない。

またIDirect3DDevice9ExはPixel Shader 3.0対応は必須ではないが、
条件付きまたは無条件のnon-pow-2テクスチャをサポートすることは必須になっている。
Aeroが使える環境では必ず何らかのnon-pow-2テクスチャサポートがある。


506 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 18:38:22 ]
この制限があった有名なビデオカードは3dfx社のVoodooだよね。
もう10年近く前のカード。DX9では本来対応すべきなんだろうけど
今ならフラグをチェックして制限があれば「対応外」としてもかまわない気がする。



507 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 18:52:17 ]
そしてVoodoo以外はその制限があるカードが確認できない、都市伝説と化している。
あると主張する人が具体的な製品名を挙げることが出来た例は皆無。

508 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 18:58:52 ]
C:\Program Files\Microsoft DirectX SDK (August 2007)\Samples\C++\Direct3D\ConfigSystem\CardCaps.xls
から調べてみた。
April 2006時点のものらしいので、ドライバのアップデートで変わってるかもしれないことに注意。

[D3DPTEXTURECAPS_SQUAREONLY]
そんなカードは無い。

[pow2のみ]
Pixomatic, Permedia 3, Wildcat VP870, ViperII Z200, 315, Xabre, TNT 2

[conditional non-pow2]
Millennium G450, DeltaChrome, Volari Family, 865G, 945G, RADEON 7000, RADEON 7200, MOBILITY M9,
RADEON 8500, RADEON 9000, RADEON 9100 IGP, RADEON 9200, MOBILITY FIRE GL, RADEON 9600,
RADEON 9700 , RADEON 9800, X300, X700, X800 , X850, X1800, GeForce 2, GeForce4 MX, GeForce3 Ti500,
GeForce4 Ti4200, GeForce FX 5200, GeForce FX 5900

[unconditional non-pow2]
Parhelia, GeForce 6200, GeForce 6800, GeForce 7800, Quadro FX 4400

>507
[pow2のみ]に挙げた7つは制限を持つらしい。
まあいまさら考慮する必要がないと思うけど。

509 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 18:59:16 ]
二乗制限はまだ結構あるっぽい
正方形制限は今時ほぼなし

って事で大丈夫?

510 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 19:07:25 ]
>>509
pow2 textureのみサポートはほぼ無くなったけど
条件付きnon-pow2テクスチャサポートの「条件」の部分を忘れやすいので注意という感じ。

A device that exposes this capability can use such a texture if all of the following requirements are met.
・The texture addressing mode for the texture stage is set to D3DTADDRESS_CLAMP.
・Texture wrapping for the texture stage is disabled (D3DRS_WRAP n set to 0).
・Mipmapping is not in use (use magnification filter only).
・Texture formats must not be D3DFMT_DXT1 through D3DFMT_DXT5.

ある程度大規模になってくるとDXTはどうしても使いたくなるので
商用ゲームなんかでは2の累乗を前提としたライブラリにしてると思う。
個人とかデモ用途なら、上の条件を踏まなければたいてい大丈夫。

511 名前:510 mailto:sage [2007/10/01(月) 19:19:11 ]
まあ大規模って言っても色々あるか。

とにかく条件付きnon-pow2テクスチャサポートのカードは去年の段階でも結構残ってる。
圧縮テクスチャとかミップマップを必須と思うなら
ライブラリレベルで2の累乗化を考慮しておいた方が良いよという感じ。
あと背景のテクスチャとかでテクスチャアドレッシングモードやラッピングモードを弄りたいという場合も
2の累乗化しておいた方が良い。

まあドキュメントにはダメって書いてあっても実際には動いちゃうケースもありそうな気はするけど。

そんな機能は使わんというのなら多分気にする必要はない。

512 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 20:29:03 ]
でもどうせなら2の累乗にしておくのが速度的には無駄がない悪寒。
# いや、DirectXは詳しくはないんですがGPUのアーキテクチャ的にね

513 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 20:39:35 ]
>>512
確かにテクスチャキャッシュは2の累乗を前提としている可能性はあるかもね。

とはいえいつも「気楽にやりたい派」と「厳格に行きたい派」の対立なので
必要な情報だけしめして後は各自に任せるでいいんじゃないかと。
ミップマップや圧縮テクスチャを使ったことないって人もいるだろうし。

514 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 21:23:07 ]
そんなこと言っても、自作ゲームの一枚絵を256x256で分割してる人今でもいるんじゃね?
手挙げてみ。

515 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 21:48:13 ]
まぁでも普通はきりのいい2の累乗で描くだろうからな。
で、正方形でなくてもいいってなら
とくに制限は無いようなもんか。

516 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 00:27:31 ]
Error: 外部シンボル 'DirectDrawCreateEx' が未解決
と、メイク時表示されます。
window.hとddraw.hをインクルードしているんですが何が不備なんでしょうか?
BCC devで、Borlandコンパイラ使っています。



517 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 00:34:52 ]
>>516
どうみてもリンク時のエラーです。本当にあ(ry

リンカにddraw.libを参照させろ。あとdxguid.libも必要になりそうな予感。
BCCなんぞしらんから、方法は自分で調べれ。

518 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 07:24:21 ]
最近
DirectX以前の問題の質問が多いな

519 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 08:29:34 ]
bcc32用DirectX SDK
ttp://www.clootie.ru/cbuilder/index.html#DX_CBuilder_SDKs

520 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 08:32:15 ]
インポートライブラリだけならimplibで生成できるけどD3DXとかのスタティックライブラリは上の使わないとbcc単独では無理
(VC++とBCBにobjの互換性がない)

521 名前:デフォルトの名無しさん [2007/10/02(火) 09:25:52 ]
>>519
上のやつ以外にdirectX SDKも必要


522 名前:デフォルトの名無しさん [2007/10/02(火) 09:56:15 ]
ゲーム画面のジャギーを消したいんで、CreateDeviceのとき
D3DPRESENT_PARAMETERDの”MultiSampleType”に
D3DMULTISAMPLE_2_SAMPLESを設定してるんですが、
UI用に2Dの変換済みポリを描画するときにはアンチがかかってほしくないです。

こういうときはどうしたらいいでしょうか?

523 名前:デフォルトの名無しさん [2007/10/02(火) 19:07:22 ]
MultiSampleTypeは随時切り替えられるようなメソッドってないですよね?

524 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 19:24:55 ]
D3DRS_MULTISAMPLEANTIALIAS


525 名前:デフォルトの名無しさん mailto:age [2007/10/02(火) 22:47:17 ]
C++でdirectx9を使っている素人です。

1 バックバッファクリア
2 予めファイルから読み込んでいた小さな正方形テクスチャをバックバッファに並べてマップを作る
3 予めファイルから読み込んでいたプレイヤー用のテクスチャをマップ上に描画
4 バックバッファをサーフェイスに転送し表示

1〜4を繰り返す中で3の表示位置をずらすことで移動を表現しているのですが、
2を毎回行うためやたら処理が遅くなります。
そこで予め大きなテクスチャに小さなテクスチャを並べてマップを作っておいてそれを2で
バックバッファに貼り付けようと思うのですが方法が見つからず困ってます。

D3DXCreateTextureで作成したテクスチャにD3DXCreateTextureFromFileで読み込んだ
テクスチャを並べるにはどうすればよいのでしょうか?
LockRectして描画は思っているのとは違う気がします・・・

526 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 22:55:32 ]
>>525
なんでわざわざロード時に作る必要あんの?
HDDなんて広大なんだから、あらかじめフォトショップでくっつけておけよ



527 名前:525 mailto:sage [2007/10/02(火) 23:07:38 ]
>>526
ランダム要素を取り入れるため動的に生成できたらなと^^;
でかいマップを作って部分ずつ表示したほうが楽でしょうか

528 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 23:09:14 ]
>>525
つーか、それってなんかおかしくね?
どんだけマップ並べたらパフォーマンスが落ちるんだよw

テクスチャを1枚描画するたびに
BeginSceneとEndSeneを毎回読んでるとか
座標を更新するのに
毎回ロックして直接書き込んでるとか
そういうアホな落ちじゃねぇの?

529 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 23:20:38 ]
つーか525ってRPGでマップ描画するときの定石じゃね?

530 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 23:26:09 ]
>>525
いまどき何も考えずベタにチップ描画しても、たいして負荷があるとは思えないけど。
2をどうやってるのか描くんだ。たぶん犯人はそこだ

531 名前:525 mailto:age [2007/10/02(火) 23:36:20 ]
g_d3ddev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 0.0, 0);
g_d3ddev->BeginScene();
if(!g_d3dsp)
{
 D3DXCreateSprite(g_d3ddev, &g_d3dsp);
}
g_d3dsp->Begin(NULL);

// ここでマップを描いてる(つもり)
for(int y = 0 ; y < SCREEN_GRID_Y_MAX ; y++) {
 for(int x = 0 ; x < SCREEN_GRID_X_MAX ; x++) {
  RECT rc = {0, 0, 32, 32};
  D3DXVECTOR3 center(0, 0, 0);
  D3DXVECTOR3 pos((float)(x * GRID_WIDTH), (float)(y * GRID_HEIGHT), 0);
  g_d3dsp->Draw(g_map_texture, &rc, ¢er, &pos, 0xFFFFFFFF);
 }
}

// ここでプレイヤーを描いてる(少しずつ動かす)
RECT rc = {0, 0, 32, 32};
D3DXVECTOR3 center(0, 0, 0);
D3DXVECTOR3 pos(hoge_x, hoge_y, 0);
g_d3dsp->Draw(g_player_texture, &rc, ¢er, &pos, 0xFFFFFFFF);

g_d3dsp->End();
g_d3ddev->EndScene();
g_d3ddev->Present(NULL, NULL, NULL, NULL);

>>529ですです。win32apiでHDCとかでガリガリ書いたことがあるのですがDirectXならもっと簡単にできるのではと。

晒すけど怒らないでね♥

532 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 23:40:47 ]
なんで毎回D3DXCreateSpriteしてるん?

533 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 23:41:20 ]
テクスチャ座標を適切に設定した頂点リストを作れば一発で描画できるだろ。

534 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 23:42:44 ]
さげ

535 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 23:45:38 ]
チュートリアルをすっ飛ばしてID3DXSpriteなんか使うから余計なところで苦労することになる。

536 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 23:51:03 ]
>>532毎回じゃないっす。ウィンドウ最小化して戻したときにResetした時ぐらいです。

見よう見まねでよくわかってないです・・・わかるように教えれ・・・。



537 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 00:01:39 ]
>>536
5行目!おまえは自分のソースもよめねーのか

538 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 00:25:19 ]
ポインタがnullだったらになっているから毎回やっているわけではないだろう。

とりあえずはID3DXSpriteを使うのをやめれば解決するだけの話。

539 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 00:43:55 ]
>>531
これ、解像度1024x768?
だったら

1024/32で32
768/32で24
32x24で768回DrawPrimitive呼んでるからこれやると遅くなるよ

あらかじめフォトショップでチップを配置してマップにしろ
それかロード時にチップからチップEX(極小チップを
もうちょっとまとめた単位、理解できる?分子→原子→中性子みたいな関係だw)
テクスチャを作成(これはできるよな?)

仕組みがゲームの仕様に食い込んでるから
もし仕事でやってるなら企画とデザイナに相談しないと駄目だな
速度に問題がでなくてかつ汎用性を維持した程度にチップをある程度まとめなきゃ駄目だろ
極小単位のチップって絵的な問題だろ?でもマップの汎用性の単位のチップはもっとでかいだろ?
そこの仕様をカッキリきらんとどうにも身動きとれないね
難しいのはプログラムじゃなくて仕様がふにゃふにゃだからだな

540 名前:525 mailto:sage [2007/10/03(水) 01:01:27 ]
>>539
画面いっぱい使っているわけではないので400回くらいです。
個人的に製作してるので仕事ではないです。

今までずっと変態御用達エディタでガリガリC書いてコマンドラインでコンパイルしてたんですが、
VisualC++とDirectXでゲームでも作って見ようかと思ったのがきっかけです。
CとWin32APIでガリガリするよりはよほど建設的だと感じますが、わけわからんw

頂点とかで混乱してたところにspriteなんて便利そうななもの見つけたばっかりにとんだ・・・
現在spriteを使わないように書き換えています。
なかなかエラーが取れない;

541 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 01:03:48 ]
DirectSoundでの効果音の管理など、いろいろな場所で読み込みや
再生の関数を使う必要がある場合、クラスにまとめず、ばらばらの関数として
使用できる設計にするべきなのでしょうか?何かいい方法があれば教えてください

542 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 01:23:10 ]
Visual C++2005で
ttp://www.h2.dion.ne.jp/~takusoft/directx8/d3d/chapter1/sec01/d3d_01.html
のコードをコンパイルしたらエラーがいっぱいでてくるんですが・・・
最初に #include "stdafx.h" を、ソースに追加しましたか?とでて
そのとおりにしたら
識別子が足りないとか、型指定がありませんとか
どうすればいいのでしょうか?

543 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 01:35:35 ]
古い情報を参照するのをやめるか、エラー事に自分で一つ一つ対処するか。

544 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 04:39:41 ]
->Releaseで落ちちゃうってことはつまりどういうことですかね?

545 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 07:03:09 ]
インタフェースがすでに存在していないとか

546 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 07:25:06 ]
インタフェースがまだ存在していないとか



547 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 07:41:23 ]
デバッグで見てみたらIUnknownの中の
__vfptrの中が(エラーです:式を評価できません)ってなってました
これはつまり・・・>>545>>546ということでしょうか?


548 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 07:51:24 ]
つーか、
なにが、いつ、どうやって落ちるのか
書いてもらわんとわかんね

549 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 09:09:45 ]
LPDIRECTSOUNDBUFFER8のリリース時になります
ちゃんとこれで音も鳴らせるんですが、終了時にまとめて解放するところで引っかかります
エラーメッセージはこんなんです↓
(実行ファイル名) の 0x0....... でハンドルされていない例外が発生しました:
0x0.......: 場所 0x0....... を読み込み中にアクセス違反が発生しました

550 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 12:21:15 ]
デバッカが使えるなら
いつまでそのポインタが有効で
いつからそのポインタが無効になってるかわかるんじゃねえの?

551 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 12:36:51 ]
「どこで」解放しようとしてるかも重要かもね

クラスのデストラクタとか
コールバックとか別スレッドで解放しようとすると
設計が悪いと無効なポインタ場合もあるし

552 名前:525 mailto:sage [2007/10/03(水) 14:06:36 ]
あれからspriteを使うのをやめて
SetFVF SetTexture DrawPrimitiveUp
を使って表示してみましたが描画は遅いままでした。
一枚絵にしても遅い。
んで、VMwareから出して実行したところ早い早いw
原因はVMwareです。
どうもお騒がせしました_| ̄|○

553 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 14:35:39 ]
>>552
氏ね

554 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 17:06:35 ]
あらかじめ書いとく

>>552の人気に嫉妬

555 名前:デフォルトの名無しさん [2007/10/03(水) 18:52:21 ]
誰か、D3DXMatrixTranslationとSetTransformをわかりやすくオレに教えてーー!!。



556 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 19:11:00 ]
>>555
俺が教えて欲しいよ!!ばーか!!!



557 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 19:12:09 ]
っ 線形代数の教科書

558 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 21:24:02 ]
>>555
平行移動用の4x4行列を作るのにD3DXMatrixTranslationなんて要らない。
シェーダで組むからSetTransformも要らない。


559 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 21:29:30 ]
初心者が自分の覚えたところまでの復習のついでに立ち上げたような
糞みたいな入門サイトでも読んでるのか

560 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 00:43:33 ]
いままで頑張ってきたけどもう無理
ごめんみんな、俺ライブラリ使います

561 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 06:14:18 ]
>>559
それ俺のサイトw

562 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 21:24:23 ]
ピクセルの輝度値をもとに処理をかけたいのですが、この場合、各ピクセルに対し
RGB→YUV変換(Yのみ)の計算を施さないといけないのでしょうか?
それとも、もっと高速に変換してくれるDirectXのAPIがあったりするんでしょうか?
よろしくお願いします。

563 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 01:00:34 ]
>>562
DirectXそのものにはYUVはサーフェイスの確保とか簡単なことしかサポートしてないし、現状だとDX9だけしかサポートしてない。
VistaならDXVA2とDX9を組み合わせると良いかもね。


564 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 11:06:31 ]
HLSLでnoise関数が使えませんというか使うとコンパイルが通りません。
こちらのページでは普通に使えそうに書かれているのですが、
msdn2.microsoft.com/en-us/library/bb509629.aspx

こちらのページではnot yet implimentedとなっています。
msdn2.microsoft.com/en-us/library/bb509611.aspx

やっぱり使えないのでしょうか。同等の事を行う一番手っ取り早い方法はないでしょうか。

565 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 17:51:16 ]
DirectShowで再生してる動画の上にテキストを置きたいんですけど(ニコニコ動画みたいな感じに)
普通に再生している動画をSetWindowPositionでウィンドウに表示させて、そのウィンドウの子ウィンドウとして
スタティックコントロールを動画の上に置こうとすると、動画の下に隠れてしまいます。
WS_EX_TOPMOSTを指定しても隠れてしまいました。

そこで、SetWindowPositionでウィンドウに動画を表示させるのをやめて
グラバフィルタでフレームを取得して、フレームを取得するごとに呼ばれる
コールバック関数内で取得したフレームをウィンドウに再描画するという形にしたところ
スタティックコントロールが上手く見えるようになりました。

しかし、今度は動画の再生が進むうちに動作が重くなってしまい、コマ飛びが起きるようになってしまいました。

コマ飛びが起きないような方法はないでしょうか。


566 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 18:50:01 ]
DirectShowからイメージデータだけDIBで受け取って、後から合成すればいい。



567 名前:デフォルトの名無しさん mailto:sage [2007/10/06(土) 20:44:59 ]
Xファイルから読み込んだメッシュを徐々に透明にしていくにはどうしたらいいですか?

568 名前:デフォルトの名無しさん mailto:sage [2007/10/06(土) 20:50:14 ]
モルダーあなた疲れてるのよ

569 名前:デフォルトの名無しさん mailto:sage [2007/10/06(土) 21:29:02 ]
人体消失現象は絵空事ではない。

570 名前:デフォルトの名無しさん mailto:sage [2007/10/06(土) 21:32:36 ]
徐々だったら、アクトン・ベイビーのスタンド能力の発現でいける

571 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 00:14:41 ]
おまえらちゃんとおもしろいこと言えんじゃん

572 名前:toshi(485) mailto:sage [2007/10/07(日) 00:37:07 ]
>>488
レス感謝。・・・回答頂いたのにレス遅くなりました。
2ちゃんアクセス規制に巻き込まれた・・・。
>プロジェクション変換はスクリーン座標に変換するものではなくビュー変換から射影座標に変換するためのもの
なるほど。スクリーン座標前の変換である「プロジェクション変換」って記述はNGですね。本では、射影座標とプロジェクション変換が一緒になっていた(^^;)。WEB見たら理解出来ました。
勉強になります。ありがとうございました。m(_ _)m
ちなみにhtmlの方も修正しました。なかなか勉強になっています。皆様に感謝です。
toshi104.odap.jp/cgi-bin/3Dprogram/2007-09-28.html

573 名前:565 mailto:sage [2007/10/07(日) 16:59:46 ]
>>566
ありがとうございます。
後から合成すれば確かに負荷とかの問題はクリア出来そうなんですけど
最終的にはストリーミング動画再生を行いたいので、イメージデータを受け取って
すぐに再生したいんです…。

何か他に方法はないでしょうか・・・。

574 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 17:16:48 ]
だからリアルタイムにイメージデータを取得して、合成したのをその場で再生すればいいだろ。
いったい何を言ってるんだ?

575 名前:565 mailto:sage [2007/10/07(日) 17:33:16 ]
そうすると565で書いたグラバフィルタでフレームを取得して再生っていうのと変わらなくないですか?
合成っていう部分がよく分かっていないのでしょうか。

576 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 17:35:24 ]
だから一度DIBに落として、DIB側で合成を終わらせた後にそれを描画するだけ。
余計なコントロールを使う必用は微塵もない。



577 名前:565 mailto:sage [2007/10/07(日) 18:06:41 ]
度々申し訳ありません。

/*コールバックしてもらうための自前のクラス*/
class mySampleGrabber: public ISampleGrabberCB
{
public:
/*コンストラクタ*/
mySampleGrabber(){}
/*目的の関数*/
HRESULT STDMETHODCALLTYPE BufferCB(double SampleTime, BYTE *pBuffer, long BufferLen){
g_pImageBuffer = (long *)pBuffer; //画像データを受け取るバッファのポインタ
g_BufferSize = BufferLen; //画像データを受け取るバッファのサイズ
InvalidateRect(hWnd, NULL, FALSE) //メインウィンドウの再描画;
return S_OK;
}
/*使わないので実装なし*/
HRESULT STDMETHODCALLTYPE SampleCB(double SampleTime, IMediaSample *pSample){
return S_OK;
}
/*ここは本当は実装するべき?*/
STDMETHODIMP QueryInterface(REFIID riid, void **ppvObject){
return S_OK;
}
STDMETHODIMP_(ULONG) AddRef(){
return S_OK;
}
STDMETHODIMP_(ULONG) Release(){
return S_OK;
}
}
このクラスのBufferCBメソッドをコールバック関数としてイメージを取得する度に呼び出しているんですけど
これだとDIBに落として合成を終わらせた後に描画するだけという処理にはならないのでしょうか。;

578 名前:565 mailto:sage [2007/10/07(日) 18:09:09 ]
すみません、インデントがずれてしまいました。

/*コールバックしてもらうための自前のクラス*/
class mySampleGrabber: public ISampleGrabberCB
{
public:
/*コンストラクタ*/
mySampleGrabber(){}
/*目的の関数*/
HRESULT STDMETHODCALLTYPE BufferCB(double SampleTime, BYTE *pBuffer, long BufferLen){
g_pImageBuffer = (long *)pBuffer; //画像データを受け取るバッファのポインタ
g_BufferSize = BufferLen; //画像データを受け取るバッファのサイズ
InvalidateRect(hWnd, NULL, FALSE) //メインウィンドウの再描画;
return S_OK;
}
/*使わないので実装なし*/
HRESULT STDMETHODCALLTYPE SampleCB(double SampleTime, IMediaSample *pSample){
return S_OK;
}
/*ここは本当は実装するべき?*/
STDMETHODIMP QueryInterface(REFIID riid, void **ppvObject){
return S_OK;
}
STDMETHODIMP_(ULONG) AddRef(){
return S_OK;
}
STDMETHODIMP_(ULONG) Release(){
return S_OK;
}
}


579 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 18:19:37 ]
こっちで聞いた方がいいんじゃないかしら。

DirectShowと戦うスレ Part 2
pc11.2ch.net/test/read.cgi/tech/1162913156/

580 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 18:28:53 ]
データを受け取るだけで何もしないのに表示されたらそれは魔法だ。

581 名前:562 mailto:sage [2007/10/07(日) 20:28:05 ]
>>563
なるほど。
ありがとうございました。

582 名前:デフォルトの名無しさん [2007/10/10(水) 13:24:52 ]
すみません。質問です。
 DirectX 9.0をインストール仕様と努めましたがインストールできません。
どうすれば宜しいでしょうか?教えてください。

583 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 13:59:57 ]
>>582
ランタイムの話ならすれ違い
あとOSくらいちゃんと正規品買おうな

584 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 14:57:30 ]
>>582
DLページで「続行」か「Continue」って書いてあるボタン押せ。エラー出たら正規のWindows買え。

585 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 17:52:04 ]
いや、いまなんだか知らんけどダウンロードセンターつながらないのよ
詳細が出てるかと俺もここに来た訳だがしばらく待ってみるか

586 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 19:22:57 ]
割れ厨は消えればいいと思うよ



587 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 21:28:04 ]
OS割れるとか愚かすぎる

588 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 22:19:37 ]







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

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

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