- 1 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 09:55:56 ]
- ※回答する人も、質問する人も必ず読んでください
これらに当てはまる人のための質問スレです。 1.C/C++は多少理解している。 2.最近DirectXを始めたばかり 3.SDKを見ても、Googleで検索しても、いまいち理解できない人 4.余計な雑談は不要ですよ 【 回答してくださる方 】 ・ できるだけ優しく質問に答えてあげてください。 ・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。 「ググれ」「SDK見れ」以外の回答でおながいします。 ・ 神ですら理解不能な質問は無視して下さい。 【 質問する方 】 ・ どんな事で躓いているのか明確にしよう。 ・ 長くならないなら躓いている部分のコードを晒してみれ。 ・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。 ・ 回答して貰ったら、出来るだけお礼もしよう。 【C++】 DirectX初心者質問スレ Part16 【C】 pc11.2ch.net/test/read.cgi/tech/1202634347/
- 728 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 17:25:37 ]
- XFileに組み込んだマテリアルやテクスチャって1回XFileから読み込んで
デバイスにセットする方法しかないの?
- 729 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 18:27:13 ]
- デバイスにセットしないでどうやってレンダリングするのかと
- 730 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 18:50:41 ]
- >>727
メッシュ1つのマテリアル毎にテクスチャが違うって状況か? あんまり違いがないならメッシュ1つに付きテクスチャ1枚な 俺の経験だとそんなモデルは重過ぎて動かねぇ まあ、いまソースみたら俺もできるように組んであるけどなw スキンメッシュでかなり苦労してた記述がみられるw スキンメッシュのデータはマテリアルごと描画できるデータになってねぇのなw 抜けてんだな>Xファイルの担当者
- 731 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 19:00:24 ]
- >>730
何を言ってるかわからねえがスキンメッシュだろうなかろうが同じように描画できるが・・・。 顔の表情とかをテクスチャ差し替えでやろうと思ったら顔だけテクスチャ別にするだろjk
- 732 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 19:31:24 ]
- >>731
ボーンと頂点を結びつけるインデックスがそうはなってないと思ったが >>731 メッシュで分けちゃってるな俺んとこのデザイナさん もちろんプログラムではなんでもできるようにしてあるが
- 733 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:42:08 ]
- >>731
インデックスとマテリアルは関係ないじゃろ。 最終的にはポリゴン1つ1つにマテリアルのインデックスが振られているんだから それを使ってマテリアル毎に分解して再構成するだけ。 っていうかD3DXで読み込めば全部やってくれるけんど。
- 734 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:42:37 ]
- >>733
>>731じゃねえ>>732だ。
- 735 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 21:14:17 ]
- >>733
>それを使ってマテリアル毎に分解して再構成するだけ この作業が面倒臭いって話だな インデックスがメッシュごとだから、自前で読み込むときは 1回マテリアルごとに直す必要があるな
- 736 名前:デフォルトの名無しさん [2008/06/07(土) 22:22:43 ]
- DirectX End-User Runtime Web Installer
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en DirectX End-User Runtimes (June 2008) ttp://www.microsoft.com/downloads/details.aspx?FamilyID=822640ab-0983-4c41-9c70-632f6f42c557&DisplayLang=en DirectX Software Development Kit ttp://www.microsoft.com/downloads/details.aspx?FamilyID=519aae99-b701-4ca1-8495-39ddde9d7030&DisplayLang=en
- 737 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:52:14 ]
- >>736
そんなの貼っても割れ厨にはどうせ見れないぞw
- 738 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:54:40 ]
- ?
- 739 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:59:26 ]
- ああ、そういう事か。
犯罪者の都合は考慮しないよ。
- 740 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:07:03 ]
- >>738
ランタイムのウェブインストーラーや開発キット、ヘルプなんかは ウィンドウズの正規OSでないと落とせなくなった なのでたまにこのスレで「落とせません」とか「見れません」とか 「わかりません」とかいう奴はほぼすべて割れ厨
- 741 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:11:28 ]
- PC買えばOS付いてくるのに割れ厨って意外と多いのな
- 742 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 04:24:44 ]
- オンラインゲームをやってるんですが
directxを前のverに戻したらパフォーマンスって下がりますか?
- 743 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 04:51:37 ]
- あ
- 744 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 15:05:13 ]
- 安全に Release メソッドを呼ぶマクロとして
SAFE_RELEASE のようなものを見かけますが、 // safe release #define RELEASE(p) ( (p) ? ( (p)->Release(), (p)=NULL ) : (0) ) このマクロで何か問題ありますか? 参照を使った関数だと BCC に注意されたので
- 745 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 16:17:37 ]
- >>744
翻訳しないで原文ママのエラーメッセージを。
- 746 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 17:35:36 ]
- DirectShowを使ってGUIのメディアプレイヤーを作っているのですが、
IMediaSeeking::GetDurationで再生時間を取得すると、 3分33秒より長いファイルはオーバーフローして負の値になってしまいます。 IMediaPosition::get_Durationで取得しようとすると、E_NOTIMPL(実装されていない)が帰ってきます。 3分33秒より長いファイルの再生時間を取得するにはどうすればいいのでしょうか? 開発環境はVisual Studio 2005 Pro、言語はCです。
- 747 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 17:37:54 ]
- 最小のコードくらい出せカス
- 748 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 17:38:00 ]
- CComPtr使いなさい
- 749 名前:746 mailto:sage [2008/06/08(日) 17:49:53 ]
- >>747
IGraphBuilder *pGraph; IMediaControl *pMediaControl; IMediaSeeking *pSeek; IMediaPosition *pMediaPosition; REFTIME length; REFERENCE_TIME TotalTime; CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC, IID_IGraphBuilder, (void **)&pGraph); pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl); pGraph->QueryInterface(IID_IMediaSeeking, (void **)&pSeek); pGraph->QueryInterface(IID_IMediaPosition, (void **)&pMediaPosition); pGraph->RenderFile(FileName, NULL); pMediaPosition->get_Duration(&length); pSeek->GetDuration(&TotalTime); こんな感じです。
- 750 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 20:43:53 ]
- REFERENCE_TIME は普通に使ってる分にはオーバーフローしないが
どこかで int にキャストされてるんじゃね SetTimeFormat 指定しておいたほうがいいんじゃねえ
- 751 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 23:34:30 ]
- DirectMusicを最近扱っているのですが、
GetGlobalParam(GUID_PerfMasterVolume, reinterpret_cast<void*>(&V), sizeof(V))で 何故かE_INVALIDARGが返ってきて音量の取得ができません。 不正な引数とありますが、どれが不正な引数なのでしょうか?(Vはlong型です) ちなみに、この処理を行う前にパフォーマンスの作成、パフォーマンスとシンセサイザーの初期化、 ローダーの作成を行っています。
- 752 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 23:41:48 ]
- >>751
msdnによると以下のようにあるけど、SetGlobalParamは使用済み? >SetGlobalParam が rguidType について一度も呼び出されたことがない場合、このパフォーマンスが現在処理している >グローバル データ リストの中に、rguidType がない可能性がある。その場合、このメソッドは E_INVALIDARG を返す。 >つまり、どのパラメータにも、GetGlobalParam を使って取得できるデフォルト値があると想定しないこと。
- 753 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 23:47:46 ]
- 質問です
ttp://richa850.hp.infoseek.co.jp/programming/dx9_01.html ここを参考に、後述のプログラムを書いたのですが、少なくともRADEON9600SEで画面がおかしくなります。 正しい方法はどうやればいいのでしょうか? ・APIリファレンスを読んだところ、MultiSampleTypeなどは以前のものと一緒でなければならないとあったので、上記ページでは決め撃ちになっているのを修正しました ・画面がおかしくなるを具体的に言うと、テクスチャが壊れていたり(正しいテクスチャの一部が緑や白のペンキでラクガキでもされたように塗りつぶされてる)、まったく描画されなかったりです ・old.Widthが中途半端な値(672とか)だったりすると、OSごと巻き込んで落ちます。(PC再起動がかかります) ・ D3DSURFACE_DESC old; CComPtr< IDirect3DSurface9 > pCurrentDepthStencil; pDev->GetDepthStencilSurface(&pCurrentDepthStencil); pCurrentDepthStencil->GetDesc(&old); // 新しく作ったテクスチャーの大きさと、現在の深度ステンシルの大きさを比較. if ((old.Width < descNewTexture.Width) || (old.Height < descNewTexture.Height)) { // 深度ステンシルを作り直す。 CComPtr< IDirect3DSurface9 > pNewDepthStencil; pDev->CreateDepthStencilSurface ( __max(descNewTexture.Width, old.Width), __max(descNewTexture.Height, old.Height), old.Format, old.MultiSampleType, old.MultiSampleQuality, TRUE, &pNewDepthStencil, NULL ); pDev->SetDepthStencilSurface(pNewDepthStencil); } // 上記を行なっただけではまだ問題はおこらず、下記を行なうと発症します。 // 上記だけ、もしくは下記だけだと問題はおきません。 pDev->GetSwapChain(0, &pSwapChain) pSwapChain->GetBackBuffer(0, D3DBACKBUFFER_TYPE_MONO, &pRenderTarget); pDev->SetRenderTarget(0, pRenderTarget);
- 754 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 23:56:19 ]
- >>752
ありがとうございます、使用しておりませんでしたorz デフォルト値がないのですね、なぜこんな仕様になっているのやら…orz
- 755 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 08:10:40 ]
- 変数でも何でもとりあえず初期化しやがれとしか言い様が無い
- 756 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:45:36 ]
- Ver9あたりからボタンとかテキストボックスのような
コントロールのようなものが使えるようになってるみたいなんだが あれってなんて名前でしょうか? 使い方書いてあるHP検索したいわけだが なんて検索したらいいかわからんのです
- 757 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 01:16:45 ]
- DXUT
- 758 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 19:35:52 ]
- dxutに未来はあるのでしょうか?
- 759 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 19:50:35 ]
- モデルの、パーツだけ別のモデルに差し替えることって
なんという言葉でしたっけ
- 760 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 09:36:07 ]
- void PartsDakeSashikae_to_OtherModel(void) { return; }
- 761 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 11:24:56 ]
- #define PDtoOM PartsDakeSashikae_to_OtherModel
PDtoOM();
- 762 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 14:05:08 ]
- >>760-761
面白いと思ってやってるのか?
- 763 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 16:35:41 ]
- 自前の画像を使ってボタンを作るとき、レスポンス(押しっぱなし)
の頻度をループ数とタイマーのどちらで制御すべきだと思いますか?
- 764 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 16:48:27 ]
- タイマー
ループにして何か良いこと有るの?
- 765 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 17:38:24 ]
- ループだとFPSに依存するから怖いよ
- 766 名前:763 mailto:sage [2008/06/14(土) 03:46:37 ]
- thx
やっぱりそうなんだ。 処理落ちすることって前提なのね。
- 767 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 04:33:41 ]
- メッセージで処理しろよ。つーかwinプログラミング覚えろよ。
- 768 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:52:37 ]
- 軽いゲームならfps依存でかまわんと思うよ。
ただ、その処理をカウンタで実装したところで タイマーと比べて簡単になるとは思わんが。
- 769 名前:767 mailto:sage [2008/06/14(土) 20:46:38 ]
- >>767
プロシージャのタイマーより クラス内でtimeGetTime()使ったほうがいいだろ?
- 770 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 20:56:25 ]
- 変な人がおる・・・
- 771 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:19:24 ]
- IDirect3DBaseTexture9から画像サイズって取れますか?
IDirect3DTexture9じゃないです
- 772 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:41:00 ]
- 取れないよ。
取れないけど・・・どういう状況でその要求が出てくるんだ? まともな設計してりゃありえないと思うんだが。
- 773 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:01:16 ]
- シェーダークラスで
GetTextureで0のテクスチャの幅と高さを シェーダーに渡したかったのです。 Textureは、普通のテクスチャだったり、RENDER_TARGETだったりするし、 サイズを別に持たせたくなかった(メモリけちった)のです 無理っぽいので、別個に渡すようにします。
- 774 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:24:40 ]
- あぁ、GetTextureからという話ならIDirect3DResource9::GetTypeで判別して
各継承クラスにキャストすりゃいいだけだよ。
- 775 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:44:20 ]
- 普通のテクスチャもRENDER_TARGETも同じIDirect3DTexture9だとおもうけんど
- 776 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 23:35:37 ]
- ボ、ボリュームテクスチャも作るつもりだもん
- 777 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 23:44:20 ]
- お前かわいいな
ちょっとこっち来いよ
- 778 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 16:26:38 ]
- LPDIRECT3DDEVICE9から
ライトのポジションは、GetLightから取れるのですが、 カメラのポジション取得は、できるのでしょうか? 無理ですか?
- 779 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:23:47 ]
- カメラのポジションも当然取得できる。
つか出来ないわけねーだろ。
- 780 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:08:03 ]
- カメラの「位置じゃなくビュー行列が取れるだけだから
そっからカメラの位置は計算しないといかんけどな
- 781 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:16:51 ]
- 」
- 782 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 03:55:17 ]
- やっぱ、シェーダでカメラの位置が必要になるので
カメラ行列生成情報は、グローバルで持っておくべき? あと、ビルボード行列も
- 783 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 04:27:29 ]
- >>782
同じことで悩んでる人発見 カメラのクラスってどこに配置すればいいんでしょうね
- 784 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 10:01:29 ]
- カメラを管理するクラスをワールドを管理するクラスが持つだろJK
- 785 名前:デフォルトの名無しさん [2008/06/19(木) 13:49:00 ]
- カメラはワールドに複数配置できて、
アクティブな奴を切り替え出来るように作っておくとデバッグにも便利
- 786 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 15:43:47 ]
- その発想は無かった
- 787 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 18:54:51 ]
- >>786
素人乙
- 788 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 00:22:34 ]
- いろいろ3Dツールを使って試しているのですが
分からないことがあるので質問です。 例えばメタセコイアでpng形式のアルファ付きテクスチャをポリゴンに張ると レンダリング結果はテクスチャの透明部分はポリゴンも透明になりますが xファイルに出力してビューワで見ると透明部分は白色表示になってしまいます これはxファイルにはテクスチャのアルファは無視(白と認識)されるという事なのでしょうか?
- 789 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 00:32:36 ]
- 1) メタセコにおいて、テクスチャマップとアルファマップの両方を指定している場合、
xファイルはマルチテクスチャをサポートしていないので、xファイルに保存した段階で アルファマップの情報は失われる。 2) そのビューワ(何のビューワか知らんが)がテクスチャのアルファ値を無視しているだけ。
- 790 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 01:07:04 ]
- >>789
1に関してはテクスチャは1枚しか使用していません。 メタセコイアの材質設定で「模様」のテクスチャにアルファ付きのpng画像を指定した場合と 材質設定の「透明」に白黒のbmp画像を指定した場合の両方を試しましたが どちらもメタセコイア上で透明に見えていた部分はxファイルで白になっていました。 2に関してはSDK付属のMeshViewerを使って見ていました。 一応自作のプログラム上でも表示を試しましたが ビューワと同様でアルファの影響は見られませんでした (DirectX初心者な自分が作ったプログラムなので それ自体にアルファに関する抜けがある可能性もありますが) 透過効果を使ったxファイルのサンプルでもあればいいのですが 現状では表示するプログラム側に誤りがあるのか 3Dツール側の設定が足りてないのか分からずなんとも・・・
- 791 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 01:22:24 ]
- PNGのアルファってかなり怪しかった気がするんだけど。
素直にDDSを使う方がいいと思われ。
- 792 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 01:29:36 ]
- 失敗しているとしたら、テクスチャの読み込み段階でアルファ値をわざわざ削ってしまっているか、
レンダーステートおよびテクスチャステージステートの設定が適切でないか、だ。 後者の方が圧倒的に多いパターンなんだけど、 このへん実はピクセルシェーダ使った方が余程わかりやすかったりするんだよねぇ。
- 793 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 03:02:14 ]
- >>785
おまえ頭いいな
- 794 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 03:09:58 ]
- なんだかんだで
DirectGraphicsのほとんどの要素をラッピングしたクラスが必要なんですね。 たいへんですね
- 795 名前:790 mailto:sage [2008/06/20(金) 08:34:24 ]
- >>791
DDS形式使っても無理でした(つД`) >>792 レンダーステートとテクスチャステージステートは 特に設定していなかったので、レンダーステートに D3DRS_ALPHABLENDENABLE設定してみたのですが 結果は変わらず。 テクスチャステージステートはデフォルトでイイと思うのですが この辺の設定も自信無いので違ってたらご指摘お願いします orz ちなみに使用してるSDKのバージョンは2004/Oct
- 796 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 09:31:11 ]
- >>795
半透明描画はSRCBLENDとDSTBLENDの設定とCOLOR_OPの設定もちゃんとやらないと話が始まらないぞ。
- 797 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 09:40:18 ]
- >>795
まずはテクスチャのα値をちゃんと参照する方法を覚えろ。 しかしコンパイル済みMeshViewはテクスチャのα値無視するのは確かに不適切だよな ソース入ってるから自分でリコンパイルすりゃいいんだけど、メニューでON/OFFくらいつけといてほしかったわw
- 798 名前:790 mailto:sage [2008/06/20(金) 10:18:37 ]
- >>796,797
d、やっと出来ました!ヽ(`Д´)ノ pD3DDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA ); pD3DDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA ); この二行が抜けてました、ってか D3DRS_SRCBLENDALPHAとD3DRS_DESTBLENDALPHAの定数と勘違いして使って混乱してました(つД`)ゴメンナサイ テクスチャステージステートはとりあえずデフォルトでも大丈夫でした。 それにしてもMeshViewerはα反映しないんですね お陰でデータの方に問題があるのかと勘違いして無駄な時間を・・・orz
- 799 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 13:04:01 ]
- 今さっき、テクスチャのαを適用するようにしたMeshViewを作ったわ
2008だとそのままじゃコンパイル通らなくて、いろいろめんどかった てか、存在しないヘッダファイルをincludeするなよサンプルなのにって思った
- 800 名前:790 mailto:sage [2008/06/20(金) 20:58:27 ]
- 昼に解決したと思って放置してたものを弄ってて
背景透けたと思ってたら、バックグラウンド(クリア色)は 透明ポリゴン越しに透けて見えたけどすぐ後ろに別ポリゴン置いたら そのポリゴン無視してバックグラウンドの色が表示されてることに気づいた・・・orz
- 801 名前:790 mailto:sage [2008/06/20(金) 22:44:21 ]
- ぁぁ・・・Zバッファ有効にしてたら透過が上手くいかず
Zバッファ無効にすると前後関係を自動処理してくれないから 自前で描画順序を制御しなけりゃいけないって事かな(;´-`)
- 802 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 22:45:39 ]
- 半透明 Zバッファ
でぐぐりまくりんぐ
- 803 名前:790 mailto:sage [2008/06/20(金) 22:52:38 ]
- つい先ほどからぐぐりまくりんぐです。
初歩の初歩みたいな疑問をグダグダ書き連ねて申し訳なさ爆発です。
- 804 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 22:55:09 ]
- 昨今の事情を鑑みるからには、半透明でモデルを書くな。
使うなら見た目は諦めるか深度ピーリングでもしろ。 頂点処理なんてアホほど浮いてるんだしアルファで抜くより全部 ポリゴンのほうが圧倒的に最近の主流だったりはする。
- 805 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 23:01:57 ]
- あおりじゃなく、深度ピーリングってなんのことだ?
あと、「半」透明じゃなくて、アルファ値を使った「透過」がやりたいだけなら、アルファテスト使えばよくね?
- 806 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 23:04:45 ]
- >>804
頂点処理が浮いてるっていうのは、 大抵の場合ピクセルシェーダが忙しくて、頂点シェーダが遊んでるってことですか? どうやったらコアの稼働率?を調べることが出来るんでしょうか?
- 807 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 23:09:24 ]
- >>806
まだそんなことを気にするレベルに至って無い 順番にやっていけ 半透明とZバッファの相性の悪さは昔からの命題 一般的には半透明の描画だけリストに登録しておいて、完全不透明の描画が全て終わった後、カメラから遠い順に描画していく std::multimap<float, IAlphaDraw*> でリストつくると楽だよ floatがカメラからの距離 IAlphaDrawは半透明描画の描画インターフェースを提供するインターフェースクラス
- 808 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 23:16:35 ]
- >>806
NV PerfHUD
- 809 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 00:41:46 ]
- なんか2度書きってなかったっけ?
- 810 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 00:43:03 ]
- 不透過の物体を描画するときはZバッファをONにしてカメラに近いほうから描いていくと速いぞ
- 811 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 00:53:12 ]
- エフェクトやパーティクルなんかは別として、
モデル自体の半透明処理はかなりの例外扱いだからなぁ。 被写界深度やモーションブラーなんかもやれないし 特殊な条件以外で使うようなものじゃない。
- 812 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 07:11:37 ]
- 2Dゲーでかなりの枚数を重ねようとしてるなら
正直、PCのグラボではフィルレートがまったく足りてないと思う
- 813 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 09:28:27 ]
- 3Dでもハイレゾで普通にバンプ、スペキュラ、シャドウとかやってると
普通にピクセルシェーダーカツカツになるよ。 逆に頂点は数百万クラスになってきてるけど、今は統合型アーキテクチャが主流だしどうなることやら。
- 814 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 09:56:02 ]
- うんうん頂点シェーダはなにやっても落ちないわ
でもピクセルシェーダはα物をちょっと拡大して表示するだけでもう処理落ちはじめやがんの これってなんで? PS2とかだとそんなことなかった気がすんだけっちょ
- 815 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 10:02:18 ]
- PS2はフィルレートバカじゃん。
使うテクスチャも16色や256色のパレットが殆どだし。 そもそも解像度も640x480より小さいしなー。
- 816 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 10:14:13 ]
- 頂点毎に呼ばれるVSと違ってPSはピクセル毎に呼んでるはずだから
解像度あげたらエライ負担になるだろ
- 817 名前:デフォルトの名無しさん [2008/06/21(土) 11:29:23 ]
- DirectXについて料金のことですが
これって無料でダウンロードできるんですか?
- 818 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 11:48:48 ]
- いいえ。MicrosoftとNDA契約を結んだあと
利用目的に応じたライセンス料を支払う必要がありますん。
- 819 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 11:55:28 ]
- 初心者質問スレなんだから意地悪しないでググレカスでいいじゃないか・・・
- 820 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 12:13:01 ]
- ダウンロードセンター行けば無料か有料化は一瞬で分かるだろ
- 821 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 13:48:25 ]
- やべ、俺NDAのサインしてねぇ。
あれ、誰かきた。
- 822 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 13:51:09 ]
- DrawPrimitiveを使った描画で消失点を画面中央以外にするにはどうすればいいですか?
- 823 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 13:54:02 ]
- >>822
Projection 行列をいじる
- 824 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 14:28:40 ]
- >>823
即レスありがとうございます。 色々調べてみたのですがよくわかりません。 D3DXMatrixPerspectiveFovLHの他に座標変換するのですか?
- 825 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 14:31:09 ]
- >>824
D3DXMatrixPerspectiveOffCenterLHとか使うといい。
- 826 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 15:19:14 ]
- >>825
できました。ありがとうございました。
- 827 名前:デフォルトの名無しさん [2008/06/21(土) 18:38:44 ]
- boost::intrusive_ptr<IDirect3DVertexBuffer9> spVB;
とVBを確保したのですが、 pd3dDevice->CreateVertexBuffer(sizeof(D3DTLVERTEX)*4, 0, D3DFVF_2DVERTEX, D3DPOOL_DEFAULT, m_pVB.get(), NULL ); と、作るときにダブルポインタに出来ません・・・ IDirect3DVertexBuffer9* buf=spVB.get(); pd3dDevice->CreateVertexBuffer(sizeof(D3DTLVERTEX)*4, 0, D3DFVF_2DVERTEX, D3DPOOL_DEFAULT, &buf, NULL ); と渡す以外の方法で良い方法ありませんか? intrusive_ptrを使うのが悪いのだろうか・・・
- 828 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 18:44:15 ]
- CComPtr使えよ
|

|