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


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

DirectX総合スレ (Part9)



1 名前:名前は開発中のものです。 [2009/02/11(水) 05:00:58 ID:viN0kzG2]
言語はC++

■過去スレ

DirectX総合スレ
Part 8: pc11.2ch.net/test/read.cgi/gamedev/1205306118/
Part 7: pc11.2ch.net/test/read.cgi/gamedev/1179516297/
Part 6: pc11.2ch.net/test/read.cgi/gamedev/1163691532/
Part 5: pc8.2ch.net/test/read.cgi/gamedev/1157727402/
Part 4: pc8.2ch.net/test/read.cgi/gamedev/1132937938/
Part 3: pc5.2ch.net/test/read.cgi/gamedev/1105333209/
Part 2: pc5.2ch.net/test/read.cgi/gamedev/1095863432/
Part 1: pc5.2ch.net/test/read.cgi/gamedev/1083728025/

617 名前:名前は開発中のものです。 mailto:sage [2009/08/07(金) 10:09:20 ID:XMny16vo]
幅広く対応しつつ極力パフォーマンスを引き出したいなら、描画設定を選べるように
するのが単純明快じゃね?
凝りたいなら、オートで最適な描画設定を選ぶ機能か何かを追加してもいいし。

618 名前:名前は開発中のものです。 mailto:sage [2009/08/07(金) 11:35:31 ID:LGjL6ivx]
デバイスロストからの復旧に関してつまってしまった。
ライティングありでロストからリセットすると、Vista環境ではメッシュが真っ黒になってしまう(Lightsが有効にならない?)。

リセットまでの手順は、
1、プロジェクションやカメラの位置、Lighting、Lights、RenderState等をnewしたりコピー。
2、リセット
3、デバイスに先ほど保持した状態群を再設定し、実際に更新。

誰か分かる方いますでしょうか?

619 名前:名前は開発中のものです。 mailto:sage [2009/08/07(金) 16:00:58 ID:DBT6Hp/H]
>>616
6000番台以降だと6200、7050、7300等の廉価ボード?とかも対応してるのでしょうか?
2003年頃から対応ってことになるので、さすがにそれ以前の環境は考慮する必要なさそうですね

>>617
所詮はフリゲ作ってるだけなのでそこまではなかなか・・・
基本自分の作りたいゲーム作るなのでよくわからないままにハードウェアインスタンス前提で作ってます

620 名前:名前は開発中のものです。 mailto:sage [2009/08/07(金) 19:50:56 ID:ChsCMQWy]
>>618

ロスト時リセット前にライティングをいったん無効にしてみる。


621 名前:名前は開発中のものです。 mailto:sage [2009/08/08(土) 12:26:33 ID:HIJEgu9i]
板ポリゴンにテクスチャを貼って2Dの表示をやってるんだが
テクスチャの画像が元ファイルのものと比べるとぼやけた感じになる
これはちゃんと設定すれば高画質にできるものなのかな?

622 名前:名前は開発中のものです。 mailto:sage [2009/08/08(土) 12:55:09 ID:wNE2Ntgl]
ドライバや描画設定変更するアプリがおかしな事になってないなら出るかと
まずはフィルターの設定
表示サイズがテクスチャのサイズと合ってるか確認
フレームバッファサイズと表示サイズが合ってるか確認

623 名前:名前は開発中のものです。 mailto:sage [2009/08/08(土) 13:12:35 ID:VZIInWJO]
まぁたぶんフィルタの選択ミスだろうな

624 名前:名前は開発中のものです。 mailto:sage [2009/08/08(土) 23:24:31 ID:HIJEgu9i]
フィルターか・・・
調べてみる

625 名前:618 mailto:sage [2009/08/08(土) 23:59:30 ID:3chv5U+J]
>>620
ビンゴでした。ありがとうございます!
lights[i]のEnabledが単純なbool値ではなく、リセットを行うと内部的にはFalseになるのに表面上Trueになったりするっぽいです。
一度リセットの直前にEnabledをFalseにしてからリセット、再設定することで解決しました。

xpではおきませんが、余計なLights[i].Updateをリセットの直前等に挟むと場合によってはvistaでは強制終了することもあるっぽいです。



626 名前:名前は開発中のものです。 mailto:sage [2009/08/10(月) 10:43:18 ID:Pixoe723]
自前のプログラムでXファイル読み込んで
頂点データからモデルを表示させる方法と

モデルデータをDirectXに表示させる
みたいな方法の

2つの方法があるみたいなんですが
違いはあるんですか?

627 名前:名前は開発中のものです。 mailto:sage [2009/08/10(月) 11:03:24 ID:eRuOyKno]
お前は何を言っているんだ…。

628 名前:名前は開発中のものです。 mailto:sage [2009/08/11(火) 03:50:59 ID:aqDLxLoV]
違ってるかもしれないが、質問の内容はこうだと思う

3Dモデルデータを読み込んで、表示して、モーションさせる。
この時に、モデルデータのモーション形式に2種類あって、
@ボーン組込みのモーション付きモデル
A頂点データによる静止モデルデータの連続によるモーション付きモデル

@は、良く使われるボーンタイプ。データ量はモーションデータだけで少ない。
だから小さいデータ量でメモリ消費が少ないが、実行時に計算が必要なのでCPU負荷が増える。
一般的にはこちらが設計時の自由度が高い。

Aは、フレーム毎にモデルデータ(頂点データ)があるので、データ量が多くメモリ消費が大きい。
つまり、静止モデルのデータをフレーム数だけ用意する。
その代わりに実行時に計算が無いので、CPU負荷が少ない。大きさを調節しなければならない。

メモリ消費と実行速度の兼ね合いになるだろう。


629 名前:名前は開発中のものです。 mailto:sage [2009/08/11(火) 17:45:49 ID:e+6O1TbS]
Windows 7 RCでDirectX 10を使いたいんだけど、ひょっとして最初から入ってたりするの?
DirectX 10単体で落とそうと思って公式のダウンロードページに行くとDirectX 9のページに強制的に飛ばされてしまうorz

630 名前:名前は開発中のものです。 mailto:sage [2009/08/11(火) 17:46:57 ID:OG4YlpWq]
標準装備だお

631 名前:名前は開発中のものです。 mailto:sage [2009/08/12(水) 01:27:51 ID:gyYxJrA3]
つか最新のDirectXSDKには9も10も入ってるだろ。
DirectX9SDKじゃなくなってんぞ。

632 名前:名前は開発中のものです。 mailto:sage [2009/08/12(水) 02:10:31 ID:HRcEcaa0]
DirectX9のSDKやランタイムってあったっけ
DirectX SDK、DirectX エンドユーザーランタイムにリネームされて久しいけど

633 名前:名前は開発中のものです。 mailto:sage [2009/08/13(木) 19:03:13 ID:uEYnMuOo]
GEMS1のCDの中身をハードディクスにコピーしたら
avastさんがトロイの木馬を発見したらしい

634 名前:名前は開発中のものです。 mailto:sage [2009/08/13(木) 19:16:53 ID:62dxPxFG]
誤検知だろ
神聖なるNVIDIA様がウイルスを保持しているはずがない

635 名前:名前は開発中のものです。 mailto:sage [2009/08/13(木) 22:20:52 ID:uEYnMuOo]
>>634
いやGAME PROGRAMMING GEMS



636 名前:名前は開発中のものです。 mailto:sage [2009/08/14(金) 04:52:21 ID:mHMjoFWf]
UPXか、それ系のexe packerでも使ってたんじゃないの?

637 名前:名前は開発中のものです。 mailto:sage [2009/08/14(金) 08:39:32 ID:lmqZJXeH]
武器(剣とか)と本体が一緒になってるXファイルのワンスキンモデルで
武器と敵の当たり判定を取ろうとしてるんですが、なにかいい方法はないでしょうか

メッシュ情報から武器のテクスチャが割り当てられてる頂点だけ取ってくる・・・
とかは考えたんですが、かなり邪道な気がするんで。。

モデル内における特定ボーンの抽出や、ボーンの当たり判定あたりがサッパリなんで、
丁度良い説明サイトとかあれば教えてくだしぃ

638 名前:名前は開発中のものです。 mailto:sage [2009/08/14(金) 09:50:11 ID:oqgkNhus]
まずは高レベル関数に頼らずモデルデータを自前で読み込むところから始めろ。

639 名前:名前は開発中のものです。 mailto:sage [2009/08/14(金) 09:57:36 ID:mm0Clj/8]
邪道じゃないと思うけど

640 名前:名前は開発中のものです。 mailto:sage [2009/08/15(土) 21:29:39 ID:nUVtD6WR]
すみません、多くのゲームで見られる
RGB各256段階のカラースライダで、プレイヤーが自由に色を設定できるものの
実装方法を記したサイト等を、どなたかご存知ではないでしょうか?

バーテックスカラーとテクスチャでやってみたんですが
色相変換のように綺麗に混ざってくれず、どうしたら良いものか。

641 名前:名前は開発中のものです。 mailto:sage [2009/08/15(土) 21:35:46 ID:sOewXk0w]
テクスチャかバーテックスのどちらかをほぼ白か黒にして
もう一方にユーザーが設定したRGBをセットして、乗算なり加算なりであわせればいいんじゃないの?

642 名前:名前は開発中のものです。 mailto:sage [2009/08/15(土) 21:44:45 ID:rY2ujQOy]
頂点カラーを使うのかテクスチャ自体の色を使うのかをまず明確にしろ。
それが決まったら、スライダーの設定と色を混ぜた結果を明確に定義しろ。
以上が決まったら、頂点カラーなりテクスチャなりにそれを書き込めば終わりだ。

混ざってくれないんじゃない、あやふやにやっているからその通りの結果になっているだけだ。

643 名前:名前は開発中のものです。 mailto:sage [2009/08/15(土) 21:51:20 ID:sOewXk0w]
多くのゲームで見られるって部分から察するに
服の青とか赤とか特定部分の色を変えたり
肌色の部分だけの色を変えたり
とかそういうのをやりたいってことなんかな?
でテクスチャーは元の色のまま、バーテックスカラーにユーザー設定RGBを入れて
それで色々とブレンドしてみたけど、どうブレンドしても思うような色が出ないと

こういうこと?

644 名前:640 mailto:sage [2009/08/15(土) 22:29:49 ID:nUVtD6WR]
>>641-642
ご回答ありがとうございます。
頂点カラーの合成に乗算や加算モードが有ったのですね、
モデリングツール上のビューの方式のみと勝手に思い込んでいました。
ちょっとレンダリングパイプラインのその辺りを調べなおしてみようと思います;

>>643
特定部分の色を変えるのは頂点色では無理だと学んだので
そういうものは諦めるか、2枚の画像を使って抜き色で合成でもしようかと。
もっとシンプルな方法が有れば良いのですが、今の技量ではこれが限界そうで。

ご回答ありがとうございます! orz

645 名前:名前は開発中のものです。 mailto:sage [2009/08/15(土) 23:40:26 ID:rY2ujQOy]
だからデバイス任せの合成なんて考えるから出来ないんだよ。
テクスチャそのものを自分の必要な色に置き換えるだけで終わりだろ。



646 名前:640 mailto:sage [2009/08/16(日) 02:52:33 ID:jZle4683]
>>645
多数のキャラに使うので出来るだけテクスチャデータはそのままにしたくてつい。
その手も要所要所考えて使うようにしますね。

647 名前:名前は開発中のものです。 mailto:sage [2009/08/16(日) 05:45:45 ID:mPskDLhG]
テクスチャーを操作しない前提で人型モデルを作るとして
例えばシェーダーで特定のテクスチャーカラーを任意の色に置き換えるとかも出来るわけでしょ
肌色箇所を抽出してユーザー設定の肌色に置き換え
髪色を抽出してユーザー設定の髪の色に置き換え
ってやっていくとか
これらにしたってグラデーション付けること考えると一工夫必要だけど
絶対にこうってやり方は無い気がする
どういう方法とってもモデルやテクスチャーの作り方に工夫が必要になると思う

648 名前:名前は開発中のものです。 mailto:sage [2009/08/16(日) 10:06:05 ID:x4vwWfc/]
で、例えば3Dモデルのスライムとスライムベスを表現するなら
どういう技術が一般的なの?

@テクスチャ取替え(塗り替え)
Aパレット変更

ほかなんかある?

649 名前:名前は開発中のものです。 mailto:sage [2009/08/16(日) 10:23:54 ID:mPskDLhG]
>>648
シェーダー

650 名前:名前は開発中のものです。 mailto:sage [2009/08/16(日) 10:26:16 ID:dscceYaE]
別々のモデルを用意しておく。

   終了

651 名前:名前は開発中のものです。 mailto:sage [2009/08/16(日) 10:50:59 ID:x4vwWfc/]
>>649
シェーダで何をどうするんだよ
それを聞いているだよバカ

>>650
モデルって何だよ
D3Dにモデルというリソースはねえぞノータリン

652 名前:名前は開発中のものです。 mailto:sage [2009/08/16(日) 10:55:45 ID:mPskDLhG]
>>651
>>647に書いただろハゲ

653 名前:名前は開発中のものです。 mailto:sage [2009/08/16(日) 11:18:33 ID:4sFhpOh7]
夏か・・・orz

654 名前:名前は開発中のものです。 mailto:sage [2009/08/16(日) 12:33:22 ID:4e0B6aFr]
>>651
俺はお前みたいな奴好きだぜ

655 名前:名前は開発中のものです。 mailto:sage [2009/08/16(日) 22:57:31 ID:QVMxTMsz]
バーチャファイターの1のイメージ?



656 名前:名前は開発中のものです。 mailto:sage [2009/08/20(木) 19:30:43 ID:rN0vwUH9]
directXで表示されてる3Dモデリングのデータを抜き出すことができるツールがあるらしいんですが
何て名称かわかる人いませんか?

657 名前:名前は開発中のものです。 mailto:sage [2009/08/20(木) 21:03:10 ID:LJPa56Cu]
スレ違いどころか板違い

658 名前:名前は開発中のものです。 mailto:sage [2009/08/21(金) 16:26:35 ID:NIDvhpCP]
Pix for windowsの事を知らない男の人って…

659 名前:名前は開発中のものです。 mailto:sage [2009/08/22(土) 14:49:30 ID:qDjMgetj]
すみません
3Dソフト(xsi)で出力したモーション付きXファイルを
DirectX Viewerで見ると形状が破綻して見えるのですが、

Viewer上で壊れて見えてもプログラム上では正しく表示される事って
有るでしょうか?
Viewer上で壊れていれば絶対そのまま表示されると思うべきなのでしょうか?

660 名前:名前は開発中のものです。 mailto:sage [2009/08/22(土) 18:18:58 ID:DxEzBRM+]
プログラムは自分で作るんだから自分次第。

661 名前:659 mailto:sage [2009/08/22(土) 21:14:19 ID:qDjMgetj]
>>660
なるほど。絶対ではないのですね。ありがとうございました。

662 名前:名前は開発中のものです。 [2009/08/26(水) 04:13:11 ID:Tspzk4Z1]
カメラのズームイン/アウト、キャラを中心とした上下左右の回転移動を作りたいのですが、
正しい計算式がわからず変な挙動をしてしまい困っています。
D3DXMatrixLookAtLHを使っているのですが、妥当な計算式の乗っているサイトや書籍を
となたかご存知ではないでしょうか?

663 名前:名前は開発中のものです。 mailto:sage [2009/08/26(水) 04:21:23 ID:Tspzk4Z1]
下げ忘れすいません;

664 名前:名前は開発中のものです。 mailto:sage [2009/08/26(水) 07:17:31 ID:Qs0NWeEt]
大前提としてsin、cosの使い方は理解しているのか?

665 名前:662 [2009/08/26(水) 14:58:06 ID:o676OPLC]
>>664
すみません、サンプルコードを漁り回っていたら計算式を見つける事が出来、解決できました。
Math.hからsin() cos()はちゃんと使っていたのですが、数学的な理解をしてない所為で変な回転を続けていました;

ありがとうございました orz



666 名前:662 mailto:sage [2009/08/26(水) 16:05:54 ID:o676OPLC]
また下げ忘れ; 度々すいません;

667 名前:名前は開発中のものです。 [2009/09/02(水) 22:00:28 ID:RtR61rHB]
迷いまくった挙句、解決策が見つからずここにたどり着いてしまった。。

あのですね。DirectMusicってマトモに使ったことある方、
今使っている方、いらっしゃいますか?
DirectMusicを使って作ったゲームって普通に動きますか?

というのは、今新しいDierctXでは既にDirectSoundと一緒に
XAudioなるものに統廃合されたと言うではありませんか。

そんなのつゆ知らず(アホかと)DirectMusicの機能を多用したゲームを
作ってたんですが、VC++上ではデバッグできるんですがexeファイルを起動すると
DirectMusic関連のものがまったく初期化されず動かせないんです。

ちなみに当方Windows7使ってますが、XP入れてるノートに移しても
起動できませんでしたが原因は違うかもしれません。
どちらにせよこれから作っていくゲームなんでvista,7で動いてもらわないと
困るという事です。

まだ説明不足な所が多くありますが、何かヒントになるような
経験だけでもよいのでお聞かせいただけると幸いです。

668 名前:名前は開発中のものです。 mailto:sage [2009/09/02(水) 22:33:03 ID:TVVEdJHk]
大昔にDirectSound使ったでけで、今は全く違うところ書いてるからノーチェックだったw
今ググッた。
ttp://mainori-se.sakura.ne.jp/slimdxwiki/wiki.cgi?page=DirectSound+%A4%C8+XAudio+%A4%CE%B0%E3%A4%A4
7はしょうがないとして、
XPのノートはHALが使えないからかねぇ?
想像だけどww

で、大昔の経験で言うと、Vistaどころかオンボードグラフィックまで動作対象外にしてる。

そのうち、Windows7について聞かれたら、当然動作対象外に追加するだろう。
って言っても、大して機能を使いこなしていないので、
開発環境が整えば乗り換えなり対応する可能性は否定しないけど。

669 名前:名前は開発中のものです。 mailto:sage [2009/09/02(水) 22:47:10 ID:KMVfriqU]
昔XAudio2が実装されたときに、これは使い勝手良い最高だ
とか思って組み込んでみたんだが、そのときエンドユーザーライブラリの方には含まれてないので
使えなかったんだけど、これはいつになれば使えるようになるんですかね?

670 名前:名前は開発中のものです。 mailto:sage [2009/09/02(水) 23:02:27 ID:k0T54E11]
PS3薄型と旧型の違い

旧型PS3:
Linuxインストール機能内蔵でPS3をPCとして使うことができる。
PPC Linux用の無料のソフトがいっぱい動く。
また、Cellの開発ツールも無料で入手できるので自分でCellのプログラムを作って実行させることができる。
ドルビーTrueHD、DTS-HDMAはリニアPCM変換で対応。
HDD〜80G。実勢価格30000円程度

薄型PS3:
Linuxインストール機能は除去された。
ブラビアリンク機能でブラビアと連動した電源のON OFFができる。
ドルビーTrueHD、DTS-HDMAのビットストリーム出力対応。
HDD120G。低騒音・発熱・消費電力。実勢価格29980円

671 名前:名前は開発中のものです。 mailto:sage [2009/09/02(水) 23:22:25 ID:TVVEdJHk]
そういえばそんなハードもあったっけ?
公式覗いてみたら読みにくい色彩&必要な情報に辿り着けない構成等、
色々逝かれてるw

672 名前:名前は開発中のものです。 mailto:sage [2009/09/02(水) 23:28:59 ID:kz+foxpq]
Windows7使ってるというが・・・
DirectMusicは64Bit環境サポートしてないがそれじゃないかね?

所詮は見捨てられた技術だよ。

673 名前:名前は開発中のものです。 mailto:sage [2009/09/03(木) 01:28:24 ID:H7ahptUL]
>>669
いつの話してんのか知らんがとっくに使えんぞ

674 名前:名前は開発中のものです。 mailto:sage [2009/09/03(木) 14:42:21 ID:19jN2Lgf]
>>673
SDK2008MarchについてるXAudio2系サンプルをSDK入ってない環境だと実行できないのですが、
これってまだエンドユーザーライブラリ側は対応してないってことでは無いのでしょうか?

675 名前:名前は開発中のものです。 mailto:sage [2009/09/03(木) 16:11:06 ID:qXOSpEld]
対応デバイスが無いだけじゃないの?



676 名前:名前は開発中のものです。 mailto:sage [2009/09/03(木) 17:05:37 ID:H7ahptUL]
>>674
DirectXランタイムちゃんと入れてる? COM登録必要だから
d3dx9_xx.dllみたいに実行ファイルの隣に置いておくだけじゃなくて(どのみちやっちゃ駄目だが)
インストーラーもしくはDirectSetup使わんと駄目だぞ

677 名前:名前は開発中のものです。 mailto:sage [2009/09/03(木) 17:16:17 ID:19jN2Lgf]
サンプルが古かったようです、SDK無い環境でも再生できました
お手数かけて申し訳ないです

678 名前:名前は開発中のものです。 [2009/09/09(水) 10:48:25 ID:v7IiPmTs]
DirectMusicはバリバリ使ってる
もし、初期化できなかったらDirectShowかmciで再生すればいいだけだし
それぐらいはプログラムで自動切り替えしなよ

679 名前:名前は開発中のものです。 mailto:sage [2009/09/09(水) 13:36:10 ID:GBpQxbjt]
>>678
短調を長調に切り替えるとか、シーンに合わせて動的に音楽を変調している場合
mciでそれをやるのは大変じゃないの。てかそれなら全部mciでやればいいんじゃ……



680 名前:名前は開発中のものです。 [2009/09/10(木) 07:26:11 ID:Ui0pocdX]
Download details: DirectX SDK - (August 2009)
www.microsoft.com/downloads/details.aspx?FamilyID=b66e14b8-8505-4b17-bf80-edb2df5abad4&DisplayLang=en
Download details: DirectX Redist (August 2009)
www.microsoft.com/downloads/details.aspx?FamilyID=04ac064b-00d1-474e-b7b1-442d8712d553&DisplayLang=en

681 名前:名前は開発中のものです。 mailto:sage [2009/09/13(日) 02:08:23 ID:jPLwTUqF]
げえっ、新バージョン!

682 名前:名前は開発中のものです。 mailto:sage [2009/09/13(日) 07:31:11 ID:lU9yP7G9]
ひいい。

683 名前:名前は開発中のものです。 mailto:sage [2009/09/13(日) 13:38:09 ID:gcZTroRJ]
うぇ

684 名前:名前は開発中のものです。 [2009/09/13(日) 16:10:48 ID:uy2iXAkI]
PCリカバリ後(XPsp3)DirectX更新で
DirectX SDK Update 2006で止まってエラーになる

正常にインストール出来ませんでしたと出る

685 名前:名前は開発中のものです。 [2009/09/13(日) 16:15:40 ID:uy2iXAkI]
ここでダウンロードしてインストールするとエラーになる OSクリーンインストでXPSP3
www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=ja

DirectX SDK Update 2006 はってき覚えてないけどここから進まなくて止まったまま1分ほどでエラー画面正常に
インストール出来ませんでしたと出る

PC2台で確認



686 名前:名前は開発中のものです。 mailto:sage [2009/09/14(月) 12:39:55 ID:dhFuSjOF]
DirectXの描画処理をウィンドウプロシージャのWM_PAINTのところに書くのってダメなのかな
真っ白になって何も描画されなくなった上にボタンとかの子ウィンドウも表示がおかしくなった

687 名前:名前は開発中のものです。 mailto:sage [2009/09/14(月) 16:51:40 ID:PPxuWEf+]
描画メッセージで無限ループにハマることがある、らしい
詳しくはググれ

688 名前:名前は開発中のものです。 mailto:sage [2009/09/14(月) 20:31:09 ID:dhFuSjOF]
ググってみた
DirectXで描画しても無効領域のままだからハマッてたんだね
描画処理の後でValidateRectを呼んだらすんなり動いたよ

689 名前:名前は開発中のものです。 mailto:sage [2009/09/17(木) 20:24:38 ID:4awen6sw]
D3DXSpriteのアルファブレンドの挙動について質問です。
DrawメソッドのColor引数に半透明(0x33FFFFFFなど)を指定すると
それより奥に描画されるテクスチャ(不透明)まで半透明に表示されてしまいます。
これは意図された挙動なのでしょうか。
奥に描画されるテクスチャは不透明のまま表示させたい場合、どのような方法があるでしょうか。
環境はWinXPHome SP3/SDK Nov2008です。

690 名前:689 mailto:sage [2009/09/17(木) 20:42:50 ID:4awen6sw]
追記です。
ID3DXSpriteのインスタンスは複数のテクスチャで同じものを共有して、
Begin, EndメソッドはそれぞれDrawを複数回呼ぶ部分の最初と最後のみ呼んでいます。

691 名前:名前は開発中のものです。 mailto:sage [2009/09/17(木) 21:44:54 ID:Cm0Wo+Cv]
画像ウプれよ。わかんねーよ。


692 名前:689 mailto:sage [2009/09/17(木) 22:16:54 ID:4awen6sw]
画像です。 ttp://dl6.getuploader.com/g/1|toollove/301/WS000000.JPG

わかりにくくてすみません。
描画順は、奥から [キャラクター画像]->[カットイン背景(黒一色)]->[もや画像]->[カットイン画像]

[もや画像]のみ半透明(0xC0FFFFFF)にしていますが、
(不透明なはずの)奥の[カットイン背景]や[キャラクター画像]まで半透明になっているせいで
背景(街)が透けて見えています。
(背景のみID3DXSpriteによる描画とは別になっています)

※エンジンが吉里吉里ですが描画はDirectXに丸投げしているので問題とは無関係です。


693 名前:名前は開発中のものです。 mailto:sage [2009/09/17(木) 22:46:12 ID:Cm0Wo+Cv]
g_lpd3dSprite->SetWorldViewRH(NULL,NULL);
g_lpd3dSprite->Begin(D3DXSPRITE_ALPHABLEND | D3DXSPRITE_SORT_DEPTH_FRONTTOBACK);

フラグの詳細はいま分からないけど、これは入れてある?


694 名前:689 mailto:sage [2009/09/17(木) 23:06:24 ID:4awen6sw]
>>693
ソートのフラグのほうは設定していなかったので追加してみましたが、結果は変化なしでした。

試しにDrawごとにBegin, Endを呼ぶようにしてみても変化なし。

695 名前:名前は開発中のものです。 mailto:sage [2009/09/17(木) 23:21:48 ID:COE3+ZrI]
最初から半透明(0xC0FFFFFF)を使わなきゃどうなる?
何かしら不透明で表示されるか?



696 名前:名前は開発中のものです。 mailto:sage [2009/09/17(木) 23:34:04 ID:Cm0Wo+Cv]
>>ID3DXSpriteのインスタンスは複数のテクスチャで同じものを共有して
ここがあやしい。スプライトのドローは実際、その時点で描画はしなくて、
g_lpd3dSprite->End();

g_lpd3dDevice->EndScene();
}

g_lpd3dDevice->Present( NULL, NULL, NULL, NULL );
まできて、ここで描画されるから、インスタンスが共有してるのがくさい。


697 名前:名前は開発中のものです。 mailto:sage [2009/09/17(木) 23:49:33 ID:COE3+ZrI]
俺はテクスチャ自体のアルファチャネルを疑ってるよ。
使ったことがないので、確証はないが
元のアルファが半透明だと、問答無用で半透明描画されるように見える。

698 名前:名前は開発中のものです。 mailto:sage [2009/09/17(木) 23:54:43 ID:DMWsPm3W]
テクスチャ画像うpはできない?
全体うpがあれならデータの一部だけでも

699 名前:名前は開発中のものです。 mailto:sage [2009/09/17(木) 23:58:55 ID:4awen6sw]
>>695
不透明(0xFFFFFFFF)の場合 ttp://dl5.getuploader.com/g/1|toollove/302/WS000001.JPG
正しく不透明で表示される。

透明(0x00FFFFFF)の場合 ttp://dl5.getuploader.com/g/1|toollove/303/WS000002.JPG
正しく表示される(カットイン背景の黒も意図通り不透明で表示)。
(アルファ値が0x00のときは最初から描画しない仕様になっているのか?)

>>696
処理の流れを書き出してみました。どこか問題点があるでしょうか?
レンダーターゲットをサーフェスに設定してるのでPresent は呼んでいません。

device_->SetRenderTarget(0, surface_);
device_->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_ARGB(0x00, 0x00, 0x00, 0x00), 0, 0);
device_->BeginScene();
sprite_->SetWorldViewRH(NULL, NULL);
sprite_->Begin(D3DXSPRITE_ALPHABLEND | D3DXSPRITE_SORT_DEPTH_FRONTTOBACK);
//ここでまとめてDraw
BOOST_FOREACH(value_type const& drawer, container_) {
drawer->draw(sprite_); //内部で sprite->SetTransform(...) と sprite_->Draw(...) を呼んでいる。
}
sprite_->End();
device_->EndScene();
//この後、GetRenderTargetData してCPUに転送

700 名前:689 mailto:sage [2009/09/18(金) 00:15:40 ID:sY/rjaFg]
>>698
うpしてみました。 ttp://www.dotup.org/uploda/www.dotup.org152838.zip

>>697
半透明アルファ(抜き用)を持ったテクスチャは
上記のうち Cutin-fg-Char.png(キャラクター画像) と Char.png(カットイン画像) の二つです。
なぜか一緒に半透明で表示されるカットイン背景などは、もともと完全に不透明です。

701 名前:689 mailto:sage [2009/09/18(金) 00:18:26 ID:sY/rjaFg]
誤記失礼。
× Cutin-fg-Char.png(キャラクター画像) と Char.png(カットイン画像) の二つ
○ Cutin-fg-Char.png(カットイン画像) と Char.png(キャラクター画像) の二つ

なんか長々とすみません。

702 名前:名前は開発中のものです。 mailto:sage [2009/09/18(金) 00:38:40 ID:svVZT8ru]
>>device_->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_ARGB(0x00, 0x00, 0x00, 0x00), 0, 0);
ここだな。
->Clear( 0, NULL, D3DCLEAR_TARGET && D3DCLEAR_ZBUFFER && D3DCLEAR_STENCIL, D3DCOLOR_ARGB(0xFF,0x00,0x00,0x00), 1.0f, 0 );
で、ステンシルは無視してくれ。俺はこれで半透明の表示で問題は出てないな。


703 名前:名前は開発中のものです。 mailto:sage [2009/09/18(金) 00:41:43 ID:NpRsNZ/U]
フラグのBit指定なのに&&はおかしいだろ

704 名前:名前は開発中のものです。 mailto:sage [2009/09/18(金) 01:04:28 ID:svVZT8ru]
そうなんだ。勉強になりました。ども。
->Clear( 0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER | D3DCLEAR_STENCIL, D3DCOLOR_ARGB(0xFF,0x00,0x00,0x00), 1.0f, 0 );
これでいいよな。


705 名前:名前は開発中のものです。 mailto:sage [2009/09/18(金) 01:07:47 ID:NpRsNZ/U]
指定の仕方はあってるけどステンシルバッファと
Zバッファ作ってセットしてないとエラーで乙るぞソレ。



706 名前:名前は開発中のものです。 mailto:sage [2009/09/18(金) 01:21:18 ID:svVZT8ru]
ステンシルはいらねぇな。
->Clear( 0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER , D3DCOLOR_ARGB(0xFF,0x00,0x00,0x00), 1.0f, 0 );
これで、>>689も解決だ!直ったか?


707 名前:名前は開発中のものです。 mailto:sage [2009/09/18(金) 09:05:05 ID:NpRsNZ/U]
つかー画面のクリアとポリゴン描画の半透明はまったく関係ねぇとおもうぞ

708 名前:名前は開発中のものです。 mailto:sage [2009/09/18(金) 23:14:54 ID:svVZT8ru]
そうか。最初から考えよう。

アルファ値付きPNGとアルファ値なしの画像という点で考えると、
最初の意図した描画を実現するには、
もや画像だけアルファ値付きのPNGにする。
他は通常のPNGにする。
ドローでのカラー指定はすべて、D3DCOLOR_ARGB(0xFF,0xFF,0xFF,0xFF)にする。
こうすれば、意図通りになるはず。
抜き色は普通、(0,0,0)だよな。キャラクター矩形で透明にしたいところはこれで塗りつぶしておけばいいんだよね。


709 名前:689 mailto:sage [2009/09/19(土) 00:06:43 ID:u6/AjfDD]
昨日はありがとうございました。
あれからいろいろ試した結果、
・アルファチャネルのブレンディングを有効にし、
・不透明度が大きい方を結果のアルファ値とする
このように設定すると期待通りの動作になりました。
device_->SetRenderState(D3DRS_SEPARATEALPHABLENDENABLE, TRUE);
device_->SetRenderState(D3DRS_BLENDOPALPHA, D3DBLENDOP_MAX);

ttp://dl6.getuploader.com/g/1|toollove/308/WS000003.JPG
例のごとくわかりづらいですが、
「不透明なカットイン背景が半透明になって、全体背景の街が透けて見える」
という現象が無くなりました。

710 名前:名前は開発中のものです。 mailto:sage [2009/09/19(土) 00:50:01 ID:FpikGG53]
>>709
なんか、もやの白が強くなって不透明に見えてるだけだね。>>692の画像と
表示のされ方は変化してないように見える。



711 名前:689 mailto:sage [2009/09/19(土) 01:29:44 ID:u6/AjfDD]
ではものすごくわかりやすい例を。
旧 ttp://dl3.getuploader.com/g/1|toollove/310/WS000005.JPG
新 ttp://dl3.getuploader.com/g/1|toollove/309/WS000004.JPG

どちらもR50%, G50%, B50% の3つのテクスチャ(不透明)をこの順に
color = D3DCOLOR_ARGB(0xFF, 0xFF, 0xFF, 0xFF);
color = D3DCOLOR_ARGB(0xC0, 0xFF, 0xFF, 0xFF);
color = D3DCOLOR_ARGB(0x80, 0xFF, 0xFF, 0xFF);
でそれぞれ重ねたものです。
ソースはSetRenderStateの部分以外差異なしです。

新版では不透明(0xFF)で描画したR50%のテクスチャが
正しく不透明で表示されてるのがわかると思います。

712 名前:名前は開発中のものです。 mailto:sage [2009/09/19(土) 01:39:52 ID:ujIvvLBv]
つーか単にステート関連の設定をちゃんと理解してなかっただけじゃねえの

713 名前:名前は開発中のものです。 mailto:sage [2009/09/19(土) 08:02:04 ID:k3VoAMfC]
ちゃんと理解してたら質問にこないわな
お前本当にコミュニケ−ションとか理解できないじゃねえの

714 名前:名前は開発中のものです。 mailto:sage [2009/09/19(土) 08:29:04 ID:FpikGG53]
>>711
分かった。意図どおりになってよかったね。謎は残されたままだが。
旧タイプは重ねるごとに透明になってるのか、不思議だね。先に
不透明で描いてるのに後から重ねると透明になっていくという謎。
最終的に合成段階でピクセルの色が決められるから、そういうことも
できるのかね。加算合成?減算合成?
g_lpd3dDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);
g_lpd3dDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
こうやって普通の半透明じゃ、旧タイプみたいに不思議状態にはならないよな。
謎だ。

715 名前:名前は開発中のものです。 mailto:sage [2009/09/19(土) 08:45:39 ID:T/T+IHq2]
っていうか、ID3DXSpriteの描画の為に
レンダーステートをいぢるっておかしくねーか?
何だかなー



716 名前:名前は開発中のものです。 mailto:sage [2009/09/19(土) 08:49:26 ID:Wmk2Wipy]
素直にD3DXSpriteを捨てるとか

717 名前:名前は開発中のものです。 mailto:sage [2009/09/19(土) 10:14:11 ID:hPS4eY5I]
D3DXSpriteなんて使ったこと無い。
あれ、いらないと思う。







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

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

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