- 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/
- 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 ]
- ?
- 589 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 22:38:17 ]
- aol.okwave.jp/qa3351661.html
これか?
- 590 名前:デフォルトの名無しさん mailto:age [2007/10/12(金) 01:47:53 ]
- DirectXのサンプルをいろいろ見てると、メッシュを表示するときに
自前でDrawIndexedPrimitveとかを呼んでるのと DrawSubsetを呼んでるのがあるんですけど、 この二つで出来ることに違いってあるんでしょうか? (ボーンブレンディングはDrawSubsetじゃ出来ない、とか)
- 591 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 08:14:47 ]
- たとえばモーフィングとかシャドウマップ用の
頂点のストリームを複数持って必要な部分だけ切り替えるとか
- 592 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 11:49:55 ]
- DrawSubsetも最終的にはDrawIndexedPrimitive呼んでるんじゃないの?
- 593 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 23:24:39 ]
- 爆発や水面の波などの表現方法を紹介した書籍やサイトはありませんでしょうか。
自分で練ったところで内部的には大して変わらなかったり いわゆるHow to本だと1通りだけしか書かれてないなど、 エフェクト周りの知識が深まらないという状態になっています。
- 594 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 23:30:29 ]
- >>593
sample見れ
- 595 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 00:01:09 ]
- ゲームの体験版やってみる
たまにテクスチャやシェーダが読めるものもあるし。
- 596 名前:デフォルトの名無しさん [2007/10/15(月) 00:05:07 ]
- 誰が勉強や研究やるっつったよ
良いパクリ元教えろっての
- 597 名前:デフォルトの名無しさん [2007/10/15(月) 01:12:32 ]
- RenderMonkeyとか、nVidiaのそれとか
良いパクリ元になるよ
- 598 名前:デフォルトの名無しさん [2007/10/15(月) 01:32:00 ]
- >>596
馬鹿かお前、 どのゲームもエフェクトなんて上からムービーかアニメーションモデル被せて終了なんじゃボケ アルファなんて重ねたらトータルコスト跳ね上がるんじゃボケ PC移植したときにアルファ処理弱いんじゃボケ パクリも糞もどこも横一線でムービー被せて終了なんじゃボケ 爆発だって、水面だって、木漏れ日だって、よくみりゃムービーなんじゃボケ カメラ固定しろボケ 一番軽いのがそれなんじゃボケ デザイナにすべてまかせたほうが効率いいんじゃボケ いまどきプログラムでメガデモ気取りでそんなもん作ってるアフォチョーキモイんじゃボケ 汎用性ちょっとつけりゃムービーもテクスチャなんじゃボケ つまり モデルロード→アニメーション で終了 プログラマの介入一切無し、完
- 599 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 12:22:30 ]
- 時代はラスタスクロール
- 600 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 13:32:47 ]
- >>598
ス☆テ☆キ☆
- 601 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 21:29:26 ]
- なるほど、欧米に技術が追いつかないわけだ
- 602 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 23:26:05 ]
- 普通に考えたらGemsじゃね?
パクリ云々いってるやつに理解できるかどうかは分からんが
- 603 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 02:16:58 ]
- でもムービーにもZとか入れられるからほとんどプログラマが手を入れる必要ってないよね
- 604 名前:デフォルトの名無しさん mailto:age [2007/10/16(火) 17:12:31 ]
- VisualC++とDirectX9.0SDKでHLSLで頂点シェーダとか書いてみてるんですけど、
.fxファイルをvisualStudioのエディタ上でシンタックスハイライト表示する方法 (プラグインみたいのとか)ってありませんか? 黒一色だと見づらくてはかどらんのです
- 605 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 18:58:18 ]
- >>604
こんなんはどーよ ttp://www.shuta.net/e374.html
- 606 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 20:09:36 ]
- リファレンスデバイス上でピクセルシェーダーって動くのでしょうか?
もし動くのなら、どのように実現しているのでしょうか?
- 607 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 20:31:22 ]
- どなたか
>>493お分かりになる方いらっしゃいませんか?
- 608 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 21:12:01 ]
- これ?
ttp://sora.cc.nagoya-u.ac.jp/t4369/fortran/DirectX/Xfile.htm
- 609 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 21:37:04 ]
- 圧縮format非対応 これで実用上十分に解決
まあSDKに圧縮フォーマットのも入ってるが、あれはそれ以前にsdkmeshとか当たり前に使われてるしな。
- 610 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 21:50:01 ]
- Xファイルなんて使ってるのは雑誌かネット上のエフェクトサンプルと同人ソフトくらいだ
- 611 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 23:45:38 ]
- 結局XFileのバイナリフォーマットは公開されてないんだろ?
そんなのわかる訳ないよ
- 612 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 00:01:24 ]
- >>611
え、ヘルプに書いてなかったっけ?テキストもバイナリも。 かなり前に読んだ覚えがあるんだが・・・
- 613 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 00:27:24 ]
- 圧縮形式がアンドキュメンテッド
- 614 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 00:42:07 ]
- バイナリをzlibってるだけじゃないの?
- 615 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 00:48:47 ]
- いいから仕様書か検証結果を張れよ。
俺は調べたことないから知らないがな
- 616 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 00:54:49 ]
- なんで俺が検証せにゃならんのだ
Xファイルなんか興味ねーし使ってもねーよ
- 617 名前:仙人 [2007/10/17(水) 02:51:28 ]
- DirectX ゲームグラフィックスプログラミング Ver.2.1 Vista
\2800 SoftBank Creative 第6章 スペシャルエフェクト(頂点系)波のシミュレーション <求めよ!さらば与えられん 片っ端から漁れ> <情報は'∞' 奢るなかれ '0'から初めよ> <た易いNETに頼るな 100万払って1を知れ>
- 618 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 05:14:37 ]
- た易い.NETに頼るな 100万払ってCOMを知れ
- 619 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 08:04:44 ]
- >>617
これの2.0持ってるけど、新しく章が増えたのね。
- 620 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 18:34:49 ]
- USBカメラからの画像をキャプチャして、jpg形式などで保存できるようなプログラム
を作成したいのですが、お勧めの書籍などありましたらご教授願えないでしょうか。 directxには触れたこともない初心者なのですが、これは無謀というものでしょうか?
- 621 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 18:35:42 ]
- >>620
できんことはないと思うが、それはDirectXと関係ない気がするなあ。
- 622 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 18:49:33 ]
- >>621
googleなどでキャプチャについて調べているとdirectshowを使えばよいと書いて あったので、こちらに質問をさせてもらったのですが…。
- 623 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 19:01:08 ]
- DirectShowはDirectXからは除外されました。
- 624 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 19:02:08 ]
- >>622
調べたのならなら分かっていてもおかしくはないと思うが、現在 DirectShowはDirectXの一部としては扱われていない DirectShowスレで質問しましょう
- 625 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 19:04:31 ]
- >>623
>>624 申し訳ありません、そうさせていただきます。 ご迷惑をおかけしました。
- 626 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 19:09:34 ]
- いいじゃねーか。馬鹿じゃねーの?>>623-624
たとえば年寄りに大宮市のこと聞かれて「今は大宮市は存在しませんのでわかりません( ̄へ ̄)」とか答える馬鹿をみたらどうおもう? ちっちぇーよちっちぇーよなあ、おまえら。
- 627 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 19:12:43 ]
- >>625
「directshow sample」でぐぐると、参考になるかもな。がんばれよ
- 628 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 19:42:27 ]
- >>626
DirectShowスレも見てれば分かると思うが、 あっちの方が質の高い回答が返ってくるくる可能性が高い。 普通に誘導しただけでなぜ馬鹿呼ばわりされにゃならんのか
- 629 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 19:50:26 ]
- >>628
ごめんなさい
- 630 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 20:17:24 ]
- いまのDirectShowはDirectXより敷居が高いからなぁ
Video for Windowsを使うのも一つの手かもね 参考サイト www1.bbiq.jp/kougaku/link_videocap.html
- 631 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 23:43:10 ]
- 数年前、DirectShowは大量の分け分からんクラスと用語でやる気なくしたトラウマがあるんだ
- 632 名前:607 mailto:sage [2007/10/18(木) 22:49:24 ]
- >>608
すみません、違います。 >>609 やっぱりそれが現実的ですね、ありがとうございます。 >>611 ググればすぐに出てきますよ。
- 633 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 07:55:49 ]
- >>611
たしかに見つかりにくいので今回は貼ってやろう msdn.microsoft.com/library/ja/default.asp?url=/library/ja/DirectX9_c/directx/graphics/reference/fileformat/xfileformat.asp
- 634 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 07:58:58 ]
- >>493
>Microsoft DirectX 9.0ヘッダー >注 圧縮データ ストリームは現在サポートされていないので、ここでは詳しく示さない ワロスw
- 635 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 22:51:29 ]
- ファイルの読み込み速度で言えば
バイナリフォーマット>>>>>>>>>>>>>>>>>テキストフォーマット。 でバイナリ形式が文字通り桁違いに早い。 手元のデータいくつかで試したけど圧縮バイナリはテキストに比べれば早いってレベル。 ファイルサイズに神経質にならない限り、圧縮形式のメリットってあんまりないな。
- 636 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 09:00:29 ]
- そりゃ、データストレージのバスボトルネックが極端に大きく無い限り
データ展開のアルゴリズムが動く分、バイナリより遅くなるわな。
- 637 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 09:40:16 ]
- なんでそんな難しく言うねん
- 638 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 12:05:37 ]
- そこでわかりやすく>>637が解説
- 639 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 12:11:21 ]
- 難しくて理解できんから言うとんねん
- 640 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 12:30:58 ]
- 例えるなら
高速道路でETCを使用しない場合、 料金所が極端に多くない限りETCより時間がかかるって事?
- 641 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 12:51:07 ]
- スーパーで買い物をして帰ってくるのに、
自転車と乗用車どちらの方が短時間で済むかというのを考えろ。 どこに負荷がかかるのか状況を分析して、最適解を求めるというだけの話。
- 642 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 13:01:57 ]
- その例だと圧縮が圧倒的優勢や
- 643 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 13:12:11 ]
- aho
- 644 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 14:13:00 ]
- スーパーとどれだけ距離があるのか、出発時間はいつでその時に道は混んでいるのか、
駐車場はすぐ止められるのか、駐車場から店舗までの距離はどのくらいか、 考えることはいくらでもある。 元データの容量や圧縮率、ストレージの速度、デコードに使うCPU周りの速度、 条件が異なればどこの処理のプライオリティが高くなるのか変わってくる。 要するに、きちんと条件を整理して総合的にものを考えろということ。
- 645 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 14:46:17 ]
- 簡単に言えばバイナリフォーマットには最初から「数値」が入ってる。
テキストフォーマットには「文字列」が入ってる。 3Dフォーマットだと、その山ほどある文字列を数値に変換する必要があるわけで それだけでも結構なボトルネックになる。
- 646 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 15:02:32 ]
- ぇ、テキストフォーマット?
生バイナリと圧縮バイナリの話じゃなかった? ちなみに全ドライブ圧縮ONの俺は、圧縮フォーマットなんてNTFSの圧縮機能と二重になって無駄なだけだと思う
- 647 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 15:06:02 ]
- テキストとバイナリの話だと思った。すまんかった。
- 648 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 15:08:34 ]
- >>646
圧縮方法が違えばさらに小さくなる可能性はあるし、 それに常に圧縮ONのドライブであるならともかく、ソフトを公開すればほとんどがOFFだから、検討する価値はあると思う。 それはともかく、ドライブの圧縮ONにしてる人間を初めて知った。
- 649 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 15:58:03 ]
- ノ
俺も使っているが、MSのファイルクラッシャーパッチ食らってからは ソースとかライブラリ等大事なファイルの置いてあるところにはかけないようにしている。 物によってはかなり縮むから重宝していたのだけどね^^; スレチすまん。
- 650 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 22:12:08 ]
- 分からんからガソリンスタンドと車で例えてくれよ。
- 651 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 22:28:35 ]
- Xファイルって実は結構使えるよな。
- 652 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 22:29:49 ]
- >>651
モルダー、あなた疲れてるのよ
- 653 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 22:31:07 ]
- >>651
は?
- 654 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 22:39:31 ]
- いや、テンプレート好きに拡張出来るのは便利くない?
- 655 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 23:11:33 ]
- >>654
は?
- 656 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 23:17:07 ]
- テンプレート型のフォーマットだからXファイルにテクスチャデータを
放り込んだり、当たり判定用のローポリデータ追加したりするの楽じゃん? 素のXファイルが使えないって言ってる? それなら同意。
- 657 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 23:19:39 ]
- カスタムテンプレートは自己満足
- 658 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 23:22:09 ]
- 「どんどん拡張してどんなデータも対応可能!!」は
ライブラリ製作マニアの陥りがちな野放図な夢想
- 659 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 23:24:19 ]
- >>656
は?
- 660 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 23:28:44 ]
- 現状、モデリングソフトのプラグインから出力する以外なにやっても無駄
- 661 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 23:29:20 ]
- >>658
いや、だから必要に応じて追加出来るのが便利って言ってんの。
- 662 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 23:33:19 ]
- >>661
そんなの自作フォーマットで十分じゃんw ID+SIZE+XXX って形にしておけばいくらでも追加できるぜw なにが便利だって?え?w
- 663 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 23:35:30 ]
- 別に何使ってもいいだろ・・・
ほっといたれよ XFileの話しになると必ずでてくるよな
- 664 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 23:38:10 ]
- 独自のテンプレートをXFileにわざわざ追加してなんだってのかマジでわからん
- 665 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 23:52:13 ]
- 好きなもん使えばいいだけ。
- 666 名前:デフォルトの名無しさん [2007/10/21(日) 14:12:10 ]
- 2の乗数の画像じゃないと、自動的に「画像サイズより大きい2の乗数の大きさのテクスチャ」
に変えられて表示されてしまうのですが、これは仕様でしょうか? ちなみにテクスチャは「4点の座標を入力して作る」方式のほうです。 治せるのなら治したいのですが、治せないのならこれを計算に入れたプログラムを打ちたいと思っているのですが…。
- 667 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 15:06:13 ]
- >>666
そのはず。
- 668 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 15:54:16 ]
- >>666
BBXでもこんな質問あったな。 ttp://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi?log=53&vew=233
- 669 名前:デフォルトの名無しさん [2007/10/21(日) 16:16:00 ]
- 667さん、668さん
回答ありがとうございました。 668さんのURLの所にもあったのですが テクスチャはD3DXCreateTextureFromFileExで作り、 D3DX_FILTER_NONEを指定しています。 int t_x; int t_y; D3DSURFACE_DESC t_data; //D3DSURFACE_DESCとはテクスチャの情報を格納するための関数 texture->GetLevelDesc(0, &t_data); //textureの情報をt_dataに格納 t_x = t_data.Width; t_y = t_data.Height; で正確な画像のサイズが取得できると思ったのですが、 やはり101*101の画像なのにサイズは128*128だと言われてしまっていました。 DirectX側では、正確な画像の大きさは取得出来ないし、 正確な画像の大きさのテクスチャは作れないみたいでした。
- 670 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 16:20:17 ]
- D3DXIMAGE_INFO imageInfo;
hr = D3DXGetImageInfoFromFile( filename, &imageInfo ); imageInfo.Width imageInfo.Height
- 671 名前:668 mailto:sage [2007/10/21(日) 16:34:57 ]
- まったく試していないが適当に回答
D3DX_DEFAULT_NONPOW2とか?
- 672 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 17:46:33 ]
- >>669
読み込まれた後のテクスチャのサイズを取得しても無駄。 読み込むときの引数を良く確認してみろ、注意力が足りなすぎる。
- 673 名前:デフォルトの名無しさん [2007/10/21(日) 18:47:11 ]
- 670さん、671さん、672さん
回答、誠にありがとうございました。 672さんの言うとおりに取得の時を見て 671さんの言うとおりに治してみたら、値の取得が出来ました。 よく読みもせず、思いつきで質問してしまい申し訳ありませんでした。 670さんのものも試してみたいと思います。 それでは、改めてありがとうございました。
- 674 名前:デフォルトの名無しさん mailto:age [2007/10/21(日) 23:50:01 ]
- 頂点バッファって使いまわしても問題ないですよね・・・
HOGEVERTEX vertex[4]; set_hoge_vertex(vertex, x1, y1, x2, y2); dev->SetTexture(0, t); dev->SetFVF(D3DFVF_HOGEVERTEX); dev->DrawPrimitiveUP(D3DPT_TRIANGLEFAN, 2, &vertex, sizeof(HOGEVERTEX)); set_hoge_vertex(vertex, xx1, yy1, xx2, yy2); dev->SetTexture(0, tt); dev->SetFVF(D3DFVF_HOGEVERTEX); dev->DrawPrimitiveUP(D3DPT_TRIANGLEFAN, 2, &vertex, sizeof(HOGEVERTEX)); set_hoge_vertex(vertex, xxx1, yyy1, xxx2, yyy2); ・ ・ ・
- 675 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 00:05:20 ]
- >>674の例ならば問題ないが、その例は
ローカル変数の配列を使いまわしてるだけで、 頂点バッファを使いまわして問題ないケースと問題あるケースの どちらについても語っていないがな。
- 676 名前:674 [2007/10/22(月) 00:27:09 ]
- >>675
マルチスレッドでなければ大丈夫ということでしょうか?
- 677 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 00:32:50 ]
- >>674のプログラムって頂点バッファなんて使ってるか?
俺には頂点バッファのインターフェースが見えないんだけっちょ
- 678 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 00:50:26 ]
- マルチスレッドの排他制御以前に、ローカル変数ってどんなものかを知った方がいい
- 679 名前:674 [2007/10/22(月) 01:02:35 ]
- DrawPrimitiveUP()してしまえばそれに使った頂点情報はいらなくなると思うのですが・・・
EndScene()やPresent()まで保持しとかないとだめですか?
- 680 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 01:31:26 ]
- >>679
頂点バッファを作らないってことは 毎回グラボにデータを送信するってことじゃん 大量な頂点データが必要になるとこれが問題になるんかどうかは知らんけど 無駄なんでグラボにとっておきましょうってのが頂点バッファなんで 四角形描画するだけのお前には頂点バッファはいらないじゃん って話
- 681 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 05:40:15 ]
- >>679
その必要はないが、普通Direct3Dで「頂点バッファ」と言ったら VertexBufferのことを指す。
- 682 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 09:18:38 ]
- >>674は頂点を格納した配列のことを言ってたのか。
それは頂点バッファとは普通言わないぞ。
- 683 名前:674 mailto:sage [2007/10/22(月) 11:33:30 ]
- 用語とか定石とか触ったとこ以外わかってません。
どうやら大丈夫そうですね^^; ありがとうございました。
- 684 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 11:47:41 ]
- テクスチャはどうなんだろう。DrawPrimitiveで指定した後Presentの前に
Releaseしても良いのかな。
- 685 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 11:54:51 ]
- 頂点バッファが大丈夫かどうか考えればおのずと答えが出るだろう。
ちなみに上のは頂点バッファの話じゃないからな。
- 686 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 21:52:12 ]
- そしてLostするバッファ達
- 687 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 22:28:53 ]
- FVFでTANGENTやBINORMALを扱うことはできないのでしょうか?
もし扱う場合はD3DDECLUSAGEを使わなければいけないのでしょうか?
- 688 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 04:05:30 ]
- そうした方が普通で簡潔で分かりやすくなると思うのだが。なにか問題でも?
- 689 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 18:24:01 ]
- シェーダーを使うときに出てくる
float4 uv0 : TEXCOORD0; float4 uv1 : TEXCOORD1; このTEXCOORDというものなんですが テクスチャ座標を指す、というのはわかったのですが テクスチャ0は何もしないで送ったテクスチャだとわかるのですが テクスチャ1はナニを指すのかわかりません。 また uniform sampler2D texture, //texture0のを送る uniform sampler1D TransferFunction, //texture1のを送る としたときに、はじめのuv0はtextureを指すのか、それとも別のものを指すのか シェーダーの解説本を読んでゴチャゴチャになってしまいました。 すみません、わかりやすく教えていただけませんか
- 690 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 18:41:11 ]
- >>688
今までFVFでやってきたもので・・・ これを機会に移行します
- 691 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 21:17:52 ]
- メモリ上のWavファイルをDirectAudioで読み込もうとした場合不具合がでてしまい、解決策を模索しています。
・Wavをメモリー上にロード ・そのアドレスとサイズを指定して、DirectAudioでロード ・Wavをメモリー上からアンロード ・次のWavをメモリー上にロード ・そのアドレスと… とやると、たまたま「Wavをロードしたアドレスが、以前とかぶった時」に、DirectAudioが 「以前のファイルと同じだなこれ」と勘違いするのか、以前の音をロードしてしまうのです。 ここの ttp://toruweb.web.fc2.com/dm/2.html DirectMusic / 読み込み と同じにWavを読み込むようにしているのですが、特にこのサイトでは「同アドレス問題」については対策していないようです。 どのような対策をすればよいのでしょうか?
- 692 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 23:01:59 ]
- 超うろ覚えだがDirectMusicローダのキャッシュをいちいち開放しないと
そんな感じになったような気がしないでもないような。 てか、メモリからWAVE再生すんならDirectSoundかOpenALでええやん。 圧縮WAVEをそのまま再生できるくらいでしょ、この場合のDirectMusicのメリットって。
- 693 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 00:29:28 ]
- ありがとうございます。
キャッシュをキーワードに探し回っていたら ttp://www.sun-inet.or.jp/~yaneurao/rsp/rspD0toD7.html こういう記事を発見しました。 DirectMusicのバグのようですね…。 ついでに「メモリーからのロードは、実行ファイル内のリソースを再生したい時以外は使わないように」という注意書きも発見しました。 うーん、単に暗号化してあるファイルを複合化して読ませたい(複合化したものをTempファイルとして吐き出したくない)だけなのに、厄介ですね
- 694 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 01:30:08 ]
- 初心者ってやたら何でも隠蔽したがるよね
そこに時間かけるくらいなら 他にやることいくらでもあるだろうに
- 695 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 01:59:26 ]
- 本来何も無い所に自ら巨大な壁を作り上げて
疲労していくのはよくあること
- 696 名前:デフォルトの名無しさん [2007/10/25(木) 12:04:45 ]
- CYGWINのVISTAでのインストール&実装について質問です。
インストールは完了してデスクトップにも通常通りアイコンが作成されました。そこから起動させてみます。そうすると、 bash3.2/$ と表示され、pwdと打ち込むと /usr/bin と表示されます。 最終目標はxtermを起動させプログラミングをすることです。 XPでは緑色の文字がホームディレクトリと共に表示され、xstart と入力したら起動しました。 しかし、VISTAでこの状態で xstart と入力してもコマンドが認識されません。 なにより緑色の文字がホームディレクトリと共に表示されません。 何かのエラーではなく、まだ足りない設定等があるのでしょうか? 御教授お願いします。 環境は VISTA Ultimate 32ビット Core 2 です。 何か足らない情報があれば教えて下さい、補足させて頂きます。
- 697 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 12:17:06 ]
- 足りないのは注意力だと思うよ
- 698 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 12:33:53 ]
- たしかに強烈に注意力が足りないな。
- 699 名前:デフォルトの名無しさん [2007/10/25(木) 18:24:53 ]
- Xファイルの容量を軽くする方法、またはソフトなどありますか?
- 700 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 18:28:15 ]
- バイナリ、頂点減らし、無駄な項目を消す
- 701 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 22:55:03 ]
- >>699
圧縮かける
- 702 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 00:56:32 ]
- またそれかよ
買い物とか駐車場とかネギとかもうやめてくれよ
- 703 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 08:15:14 ]
- SDK付属のDirectXViewerで、DX10にしてXファイルを開いたら、むちゃくちゃ遅くなった。
DX9で60以上出てたのが、10以下になった感じ。 グラボはgeforce7xxxだし、DX10に対応してるはずなんだけど、なんで?
- 704 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 08:38:10 ]
- >>703
どーでもいいがGeForce7シリーズは普通、DX10対応とは言わない。 ShaderModelも3.0止まりだし。 お前さんの速度低下の原因が何なのかは別として。
- 705 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 08:41:22 ]
- いつGeForce7が10対応になったんだよ
- 706 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 13:01:34 ]
- なんかうっかりさんが多いな
- 707 名前:703 mailto:sage [2007/10/26(金) 17:34:23 ]
- すいません、てっきりフルサポートしてるもんだと思ってました。
- 708 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 20:01:17 ]
- DirectX10でポリゴンを画面の座標で表示する方法がわかりません。
チュートリアルのコードは、画面の中心が(0, 0)となっているのですが、単位や基準の位置を設定することはできるのでしょうか? やりたいことは、自前でスプライトを実装することです。 教えてください。
- 709 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 20:29:24 ]
- 頂点シェーダで座標変換?
- 710 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 19:52:43 ]
- >>708
君があまりに知識が無さ過ぎるので、どこからどこまで解説したものか途方に暮れ 誰も君の期待に答えることができない。 本屋行って何か本でも買って読んでみれば?
- 711 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 21:01:05 ]
- DX9までなら扱える。DX10構造がだいぶかわってわからないのさ。
DX9なら、初期化を完了した素の状態からVertexで直に画面の座標で指定できたよね。 それがDX10だと同じようにコーディングできないから、どうしたらいいかわからない。 あんまりDX10やってる人いない?
- 712 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 01:54:46 ]
- DX10とかどうこういう問題じゃなくてシェーダと座標系の問題なんじゃないの
- 713 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 02:05:18 ]
- DX9とDX10の問題じゃないだろ。
- 714 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 02:13:02 ]
- Vertex Bufferに(0,0,0) (0,100,0) (100,0,0) なかんじで設定して描画できる?
可能なら必要な処理を教えて。
- 715 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 02:13:38 ]
- ↑のは座標は画面のピクセル単位ね。
- 716 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 10:13:55 ]
- CDXUTDialog::OnRender10でも見てくれ。
そこに答えがある。
- 717 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 17:39:18 ]
- 見た。DX10は画面の座標でVertexを直接指定できないでおk?
わからないのですが、これはシェーダーの仕様制限なのかな?
- 718 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 19:02:14 ]
- >>717
元々頂点シェーダ使用時はそういうもんだった気がする。 頂点シェーダ強制になった副作用と思えばいいんじゃね?
- 719 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 21:58:58 ]
- ジオメトリシェーダ
- 720 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 06:19:37 ]
- >>711
おまえDX9扱えるなんて言ってんじゃねーよ
- 721 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 07:01:15 ]
- ごめん。もうDX10まで扱えるようになった。
- 722 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 08:09:17 ]
- 扱えるってのはポリゴン一枚出すサンプルが作れれば言える
- 723 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 14:44:22 ]
- シェーダーのPOSITIONセマンテックが何をさしてるのかわかりません
vertex fragmentでのPOSITIONの意味教えください
- 724 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 15:34:48 ]
- 正直セマンテック
- 725 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 15:53:42 ]
- 意味だというのはわかるのですが
vertexが(0,0,0) (-10,0,0) (10,0,0) とあったときにそれをvertexシェーダに送ると pos : POSITION としたときのposは具体的にどんな値が入っているのか。 そしてfragmentシェーダに OUT.HPosition = mul( float4(IN.Pos.xyz , 1.0) , matWVP); たとえばこうして送ったときには、fragmentシェーダで扱っているHPositionは スクリーン上のどの値なのか どうもイメージできてなくて
- 726 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 22:15:00 ]
- どうせ2Dシューティング作るんだろ
matWVPに単位行列入れればいいのに
- 727 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:00:40 ]
- 2Dシューティングだったら、楽しんで作るんですが。
どなたか725の回答お願いします
- 728 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:20:22 ]
- うん、良かったね。
- 729 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:37:45 ]
- >>725
CPU→VertexShader→FragmentShaderという流れでは ・VertexShaderのPosition値は基本的にCPUで設定した頂点バッファの頂点そのままの値です ・VertexShaderからFragmentShaderに送るPosition値は射影空間の値を入れます。 具体的には(-1,-1,0)-(1,1,1)です ・スクリーンへは射影空間(-1,-1)-(1,1)が引き伸ばされて (0,0)-(ViewportSize.X,ViewportSize.Y)に表示されると思ってください 以上を踏まえて >pos : POSITION >としたときのposは具体的にどんな値が入っているのか。 そのまま(0,0,0) (-10,0,0) (10,0,0)が入ってきます >そしてfragmentシェーダに >OUT.HPosition = mul( float4(IN.Pos.xyz , 1.0) , matWVP); >たとえばこうして送ったときには、fragmentシェーダで扱っているHPositionは >スクリーン上のどの値なのか 頂点がカメラのフラスタムの中に入っていれば、 射影空間(-1,-1,0)-(1,1,1)の中に頂点が変換されます その先のスクリーン座標への変換はDirectXが勝手にやります 射影空間とはなんぞやって話なら SDKの「射影変換とは」って項目でも読んでください
- 730 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 21:55:28 ]
- >>729
遅くなりましたがありがとうございます ようやくイメージできました
- 731 名前:デフォルトの名無しさん mailto:age [2007/11/01(木) 06:12:57 ]
- HLSLでピクセルシェーダを書き始めたのですが、
BeginPass()〜EndPass()の間でマテリアルごとにDrawSubsetを実行する流れになると思うんですけど、 特定のマテリアルではピクセルシェーダを変えたいというとき、 ・特定マテリアルのときフラグ定数を転送してやってピクセルシェーダ内で分岐して処理を変える ・Pass0で特定マテリアル以外を描いて、Pass1で特定マテリアルだけを描く どっちがベターでしょうか? もしくは他に「こうやるもんだ」ってのがあれば教えていただきたいです。
- 732 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 08:40:16 ]
- 厳密にはケースバイケースに計測しないと分からないので
一般には「楽なほう」が選ばれるんじゃね
- 733 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 14:41:49 ]
- 発想を逆にして、マテリアルごとにBeginPass()〜EndPass()というのも。
- 734 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 23:01:47 ]
- >>731
マテリアルとシェーダって一対一になると考えるのが普通じゃね? つまりシェーダが違うんであれば、それはマテリアルが違う。 データの段階でどういうマテリアルにするかを指定しておくべきじゃないかね
- 735 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 23:53:10 ]
- technique T
{ pass P0{ ... } pass P1{ ... } pass P2{ ... } } ApplyEffect( func ) { SetTechnique( "T" ); Begin() BeginPass( func ); Draw(); EndPass(); End(); } これはよくやる、っていうかこれしかやらない。 passをループでぐるぐる回すってのは、 むしろあんまり使いどころがない気がする。
- 736 名前:731 mailto:sage [2007/11/02(金) 02:56:59 ]
- >>732-735
レスサンクス!参考になりました。 とりあえず自分が組みやすい奴でやってみることにします。
- 737 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 18:51:21 ]
- DirectX10で、MultiSamplingのバックバッファから2Dテクスチャにコピーする方法がわかりません。
つまりバックバッファからイメージを取得したいのですが。 アドバイスをください。
- 738 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 21:37:09 ]
- >>737
レンダリングターゲットを変えろ。
- 739 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 02:40:06 ]
- 条件を全否定するのではなく、目的の方法を求みます。
- 740 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 02:53:28 ]
- >求みます。
求みる?
- 741 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 03:04:51 ]
- 揚げ足とるなカス
- 742 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 03:06:30 ]
- 俺も知りたい
- 743 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 03:07:35 ]
- 俺も俺も!
- 744 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 03:09:45 ]
- あちきも!
- 745 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 03:11:40 ]
- 求みます、ってのは日本語を学ぶ中国人がよく犯す間違い
- 746 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 04:45:04 ]
- 謝罪しる思い出した
- 747 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 17:21:38 ]
- 事故レス
ID3D10Device::ResolveSubresource を使用することで目的が達成できました。
- 748 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 17:42:30 ]
- >>746
反省しるだろ
- 749 名前:デフォルトの名無しさん [2007/11/03(土) 19:28:39 ]
- www.watch.impress.co.jp/game/docs/20070927/wv.htm
この問題がよくわかんないんですけど 間違ったサンプルコードをコピペしていたのが原因らしいけど、 その詳細が知りたいです
- 750 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 19:34:13 ]
- >>749
スライドに載ってるソース見てMSDNライブラリで調べればいいだろ。
- 751 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 19:35:54 ]
- 詳細ってこれなんじゃないの?
www.watch.impress.co.jp/game/docs/20070927/wv06.htm
- 752 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 19:37:50 ]
- >>749
お前なんも記事を読んでないな? 本文に書いてあるだろ、スライドのSS見ろ。
- 753 名前:749 [2007/11/03(土) 19:54:12 ]
- えーと、IMEの描画をさせないために
WM_IME_SETCONTEXTが来た時にlParamからISC_SHOWUIALLフラグを取り除くのが正解だけど、 サンプルは自動変数に0を入れてるから意味ナス って理解でいいですかね
- 754 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 19:58:51 ]
- >>753
肝心なところが足りない。 lParamからISC_SHOWUIALLのビットを下げてDefWindowProcに渡す、で正解。
- 755 名前:749 mailto:sage [2007/11/03(土) 20:00:43 ]
- そういえば解決策をかいてなかった
>>754 了解です。理解しました
- 756 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 20:46:36 ]
- 海外デベロッパはIMEの動作しない環境で作ってテストしない&修正しないもんだから、Vistaでもう致命的におかしくなった話。
Vistaなプログラミングしていれば周知の事実だぜ。
- 757 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 23:46:05 ]
- 海外全部じゃなくて、欧米だな
- 758 名前:デフォルトの名無しさん [2007/11/05(月) 13:34:46 ]
- 欧米か・・・
- 759 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 21:15:11 ]
- 米だけじゃね
- 760 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 22:07:11 ]
- 漢字圏以外だと思うが
- 761 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 01:51:12 ]
- 欧とか印のデベロッパの傾向とかはっきり言って知らない
- 762 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 07:55:30 ]
- インド製の有名なゲームの体験版とかあったら教えてくれ。それで判断する
- 763 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 08:10:28 ]
- 英語のヘルプはほとんどインド製。
ゲームじゃないが。
- 764 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 16:08:50 ]
- インドの標準語は英語
- 765 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 16:56:17 ]
- 違いますよ
- 766 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 21:43:13 ]
- インド人の微妙に高いカーストのイケメンのアニオタプログラマガ
半裸で作ったゲームないの
- 767 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 23:14:09 ]
- カーストなんて言葉聞いたの小学校の社会の時間以来だ。
- 768 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 12:41:13 ]
- DirectX10で書いた場合、vista専用になってしまいますか?
- 769 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 14:50:57 ]
- DirectX10専用
- 770 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 04:48:53 ]
- インドのゲームってやっぱり敵と踊ったりするの
- 771 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 10:49:42 ]
- DirectXを初めて学ぶのにお薦めの本を教えてください
- 772 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 11:58:38 ]
- 猫でもわかるDirectX 〜 3Dグラフィックス基礎編(1)
www.amazon.co.jp/dp/0689842120
- 773 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 13:12:06 ]
- 本読んだことないけど、使えている俺が居る。
- 774 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 13:25:18 ]
- 勘と試行錯誤って大事だよ
- 775 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 18:32:19 ]
- >>772
リンク先間違ってない?
- 776 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 06:35:15 ]
- ネタだろ
- 777 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 21:16:44 ]
- DirectX & C++ & Windowsでシェーダプログラムを組んでいます。
処理が複雑になりすぎて、レジスタ数が足りないというエラーを返される ようになってしまいました。 この場合1パスで行っていた描画を2パスにすれば解決するのでしょうか? また、その場合どのようにシェーダの記述を行えばよいのでしょうか?
- 778 名前:777 mailto:sage [2007/11/09(金) 22:06:21 ]
- やっぱり分からないので再度書き込みをさせて頂きます。
1パス目で行った描画ピクセルに2パス目で色相変換の処理を組み込みたいのです しかしながら1パス目の描画結果を取得する方法が分かりません。 下のように2パス目のピクセルシェーダを記述しています。 PS_OUTPUT PS_HueShader( PS_OUTPUT In ){//TESTとして1パス目の記述結果をそのまま出力する return In; } このように記述すれば引数Inには1パス目のピクセルシェーダ描画結果が入っていると 思ってたのですが実際には1パス目の頂点シェーダのDiffuseの値が入ってます。 どのようにしたら1パス目ピクセルシェーダ終了時のピクセルの値を操作できる のでしょうか?
- 779 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 01:20:03 ]
- 1パス目でレンダーターゲットにしたテクスチャに描画して
2パス目でそいつをピクセルシェーダの入力にする ってのが基本
- 780 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 01:34:03 ]
- ていうかレジスタが足りないなんてエラー初めて聞いた。
プログラムコードがでかすぎるってのならともかく…
- 781 名前:777 mailto:sage [2007/11/10(土) 01:42:28 ]
- >779
分かりやすい解説ありがとうございます。 2パスだと描画用のテクスチャを別に用意する必要があるので、処理が重そうですね。 今回は色相変換を諦めようと思います。アドバイスありがとうございました。 >>780 色相彩度変換はレジスタ数を大量に必要とするのでシェーダのバージョンが 低いとすぐにレジスタが足りないというエラーが起きてしまいます…
- 782 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 01:43:46 ]
- 色相彩度変換て具体的にどういうのか知らないんだけど、そんなに消費するのか。
セピア変換とかなら単に行列かけるだけだと思ってたけど 話にならないくらい複雑なことするのかな
- 783 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 02:18:16 ]
- RGB情報を一度HSV(色相・彩度・明度)の情報に変換して、各値を
操作してRGB値に戻す…というやり方でやってますんで、処理としては 結構複雑です・・・。検索するとシェーダサンプルが見つかると思います。
- 784 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 09:18:39 ]
- HSVとRGBの変換が大変そうだね…
てか、ソース見て俺も1回やったこと思い出した。CPUでだけど。
- 785 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 09:32:46 ]
- 別にマルチパスレンダは重くないと思うぞ。
重くなる要素が見当たらないし。 VRAMがオーバーフローするなら別だが。
- 786 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 11:09:51 ]
- シェーダでHSV変換なんてただのエフェクトサンプル以外の使い道あるの?
実用しないなら遅くていいじゃん。
- 787 名前:デフォルトの名無しさん [2007/11/10(土) 17:01:29 ]
- シェーダをある程度理解されている方に質問です。
頂点シェーダに1回に送られてくる頂点情報は、基本的に1つですよね。 私は頂点同士の計算がしたいのですが、その為には複数の頂点が必要になります。 (例) vertex1 と vertex2 でなんらかの計算 vertex1 と vertex3 でなんらかの計算 というように、送られてきた頂点と、他の頂点を使って計算をしたいのです。 こういうことはシェーダでは可能なのでしょうか? ちなみにHLSLを使っています。 どうぞ宜しくお願いします。
- 788 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 17:30:57 ]
- シェーダが走る前の特定の頂点情報が必要なら、レンダリング前に定数レジスタに
値を入れてからシェーダを走らせる。 あとは、頂点フォーマットを拡張して、レンダリングを開始する前に、 必要な他の頂点の情報を自分の頂点情報に入れておけば、シェーダで利用できる。 DirectX9までは、基本的にシェーダが走ってる最中の別の頂点の情報が必要な場合、 取得は不可能なはず。(上のような、小細工が必要) DirectX10のシェーダは、その辺が可能って聞いてるけど、詳しい人ヨロシク。
- 789 名前:デフォルトの名無しさん [2007/11/10(土) 17:49:52 ]
- >>788
ご回答していただきありがとうございます。 もう少し具体的に教えてもらいたいのですが、 ・レンダリング前に定数レジスタに値をいれる ・必要な他の頂点の情報を自分の頂点情報に入れておく とは具体的にどうすれば良いでしょうか。 いろいろ本やサイトで調べたのですが、 これに関して掲載されていなかったので投稿させていただきました。 初心者で申し訳ありません。
- 790 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 17:53:02 ]
- >>787
DirectX10のジオメトリシェーダなら 入ってきた三角形に対して新しい頂点を生成したりすることができるよ でも、やる内容によるんじゃないかなぁ DirectX9世代ではピクセルシェーダで頑張ってやってた処理が多い
- 791 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 17:54:41 ]
- >>789
>・レンダリング前に定数レジスタに値をいれる こっちは多分、君の言う目的を達成できない方法だよ プリミティブを描画している間、どの頂点にも同じ情報を送ることができる まぁ、普通のレジスタの使い方 >・必要な他の頂点の情報を自分の頂点情報に入れておく これは頂点に他の頂点のコピーを複製していれておく方法。 例えば struct VERTEX {
- 792 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 17:57:05 ]
- SHIFT+Enterで書き込んでしまった
struct VERTEX { float4 Position : POSITION; float4 Texcoord : TEXCOORD; }; って頂点だったら struct VERTEX { float4 Position0 : POSITION0; float4 Texcoord0 : TEXCOORD0; float4 Position1 : POSITION1; float4 Texcoord1 : TEXCOORD1; float4 Position2 : POSITION2; float4 Texcoord2 : TEXCOORD2; }; みたいにしておいて、他の頂点に触れるようにしておく。 かなり強引な方法(単純に考えてデータ量3倍)
- 793 名前:787 [2007/11/10(土) 18:01:40 ]
- 皆様、早速のご回答ありがとうございます。
ある本を読んでみると、頂点情報をテクスチャに保存して それをピクセルシェーダで使用すると書いてあるのですが、 具体的にどうすればいいのか分かりません。 複数の頂点情報をテクスチャに保存することってできるのでしょうか?
- 794 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 18:08:06 ]
- >>793
そりゃ例えばARGB32Fのフォーマットなら、 1ピクセルにfloat4の情報を書き込めるってだけだよ そもそも具体的に何をしたいのかが分からないから何とも言えない…
- 795 名前:787 [2007/11/10(土) 18:18:37 ]
- 私が具体的に行いことを述べます。
例えば、頂点数が「5」のオブジェクトがあります。 1つの頂点に対して、他の全ての頂点と計算がしたいので v1-v2 v1-v3 v1-v4 v1-v5 v2-----------同じ------------ v3-----------同じ------------ v4-----------同じ------------ v5-----------同じ------------ ※ -← は計算するということ と計算がしたいので、4×5 = 20回分計算が必要になるわけです。 こういう処理をGPU上で計算したいと思っています。 何か良い方法がありますでしょうか。
- 796 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 18:20:26 ]
- シェーダーで計算したいってことなのかな・・・
- 797 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 18:27:57 ]
- >>795
いや、それって方法論でしょ? 何を表現したいかってことだよ それによってはそもそもその手法が正しいのか、って話になるから まあ、よほど重い処理でない限り、頂点シェーダで強引に計算してしまえばいい 大抵はピクセル処理でボトルネックになってしまうので、どうでもいいんで
- 798 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 20:08:54 ]
- >>795
だから、>>788で書いたとおり、DirectX9では無理。DirectX10のジオメトリシェーダでは可能。 無理だから、事前に「自分で」必要な頂点の情報を、対応する頂点に「仕込む」等の処理が必要になる。 ある頂点で参照可能な別頂点の数は、入力となるvレジスタの数で決まるから、「あるプリミティブ全体を 対象とする任意の頂点を相互参照」するなんてDirectXでは完全に無理。 このヒントを聞いて、「頂点に他の頂点を仕込む方法が具体的にわからない」なら、 シェーダの理解が足りて無いってことだから、 ttp://marupeke296.com/DXPS_No3_BasicOfVertexShaderProgram.html この辺の一番上の図を見て、頂点シェーダの演算部が参照可能なデータについて、もう一度整理する事を お勧めする。 >>797もいってる通り、実現方法を変更する方が現実的なんじゃないかな?
- 799 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 21:17:22 ]
- 便乗して質問
>>792のようにPosition0〜2まで3つ設定すると そこに何入ってるの? たとえば {1 1 0} {0 0 0} {-1 1 0} の三角形があったらどうなるの?
- 800 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 21:28:57 ]
- 何が入ってるかじゃなくて
何を入れるかを自分で決めるんだ
- 801 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 21:33:10 ]
- ごめん、Cgだから
何を入れるというと uniform型を宣言すると思ってしまって。 Cgでも未だに struct IN{ float4 position1 : POSITION float4 color : COLOR } に何が入ってるのかわかってなくて。 uniform型なら、明示的にブチ込んでるからわかるんだけども
- 802 名前:デフォルトの名無しさん [2007/11/10(土) 21:48:57 ]
- 実際のところ、頂点シェーダの
入力パラメータが何であるかなんで どうでもいいことだし、何を渡してもかまわない。 ただ最低限、同次頂点座標を1つ出力しなければならないってだけだ。
- 803 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 21:49:30 ]
- >何が入ってるのかわかってなくて
工工工工工工エエエエエエ(´д`)エエエエエエ工工工工工工
- 804 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 21:53:48 ]
- >>802
何が入ってるのかわからないままだと、結局何もわかってないままで >>803みたいなこと言われるので・・・
- 805 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 15:53:09 ]
- 質問です。
DirectX SDKのサンプルって、みんな「コード生成」->「ランタイムライブラリ」の設定が「マルチスレッド デバッグ」になってるじゃないですか。 これを、「マルチスレッド デバッグ DLL」にしてビルド通して実行しようとすると「MSVCR80.dllが見つかりませんでした」とか「MSVCR80D.dllが見つかりませんでした」 と言われて実行に失敗してしまいます。 これ、対処法ってないんでしょうか。 というのも、自前で作ったライブラリとSDKサンプルを組み合わせて使いたいんですが、ライブラリが「マルチスレッド (デバッグ) DLL」の設定でビルドしてあるものだから、 合わせたいんです。
- 806 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 16:26:41 ]
- 見つかる場所 (PATHの通ってる場所とか) にDLLを置いとけばいいんじゃないの
- 807 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 17:35:07 ]
- 最近ワイドモニターのノートPCを使い始めたのですが、
フルスクリーンのゲームなどをするときに横に伸びてしまいます。 そこで、特定のサイズでフルスクリーンにするとき、自動的に左右をパディングして真ん中だけを使って写すようにしたいのですが、 そのようなソフトウェアを作ることは可能でしょうか?
- 808 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 17:40:26 ]
- はい。
- 809 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 17:45:25 ]
- ちなみに、そのようなハードウェアを作ることも可能ですよ。
- 810 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 18:12:02 ]
- でもそこらの同人ゲームはフルスクリーンで特に何もやってないのがほとんどじゃん。
- 811 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 18:36:58 ]
- >>810
TL頂点使ってると比率が変わるだけで表示しているものの位置が変わるからね。
- 812 名前:デフォルトの名無しさん [2007/11/11(日) 22:07:15 ]
- ドラクエ7の戦闘開始時に画面がばらばらに落ちる処理
をdirectxでやるのに参考になるサイトがあれば 教えてください。
- 813 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 22:33:27 ]
- ttp://www.nicovideo.jp/watch/sm1495093
ニコニコだけど、これ自作描画エンジンらしい。 エンジンどーこーわからんが、すげぇや
- 814 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 22:38:25 ]
- DirectXなの?
- 815 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 22:39:27 ]
- >>813
どーゆーレベルのエンジンかわからんが それでもスゴイ!と言わざるを得ないw 俺なんて、DirectXのサンプルブラウザーのチュートリアル4を ウンコをつんつんするような感じで弄ってるところだぞ
- 816 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 22:46:48 ]
- >>813
開発者のHP見てきた 3Dアクションゲーム作っちゃうレベルの人なので、 素人から見るとすごいが、この人のレベル的にはそんなに凄くないw
- 817 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 22:53:59 ]
- 確かにすごい
トゥーンレンダリングエンジンの開発 キャラのモデリング作成 キャラのテクスチャ作成 モーション付け アニメーション付け 考えただけで気が遠くなる
- 818 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 22:59:16 ]
- しかし、SIが正規版なのが気になってしまうw
- 819 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 23:03:30 ]
- 元プログラマー、現在NEET、てw
にしてはいいソフト揃えてんなあ モデルはちょっとクセがあるけど丁寧だし動きもなかなか自然だねえ
- 820 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 23:09:51 ]
- www.amazon.co.jp/exec/obidos/ASIN/4875934610/249-9467730-0997124
この人が見てるらしいこの本、ちょっと欲しいな!
- 821 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 23:18:55 ]
- XSI
100万とかテラスゴス! と思ったら、XSI 6 Foundation だと七万八千円なのね
- 822 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 23:32:49 ]
- 一番面倒なのは、モーションを入れる作業だね。
地道に振り付けと、表情のUV切り替え。 データさえ作ってしまえばエンジンの仕事なんてたかが知れている。
- 823 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 23:50:43 ]
- >データさえ作ってしまえばエンジンの仕事なんてたかが知れている。
どういうこっちゃ? つーか、プログラマにモデリングが不慣れだというのに ニコニコではモデリングばっか言われてるのな。 エンジンなんて作れねぇ。つーか無理
- 824 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 00:01:35 ]
- >>823
プログラマが個人でやる場合だと、データ作る方が大変な気がするw 両方やってるのがすごいなぁと思うよ
- 825 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 00:02:54 ]
- モデルデータを読み込んで再生するだけなら、普通のプログラマなら全然難しくないんだよ。
モーションデータの生成部分までエンジン側でやっているなら凄いプログラムだが、それはまずあり得ない。
- 826 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 00:17:03 ]
- そりゃ、モデルデータ読み込んで、toonシェーダかけて再生ってそりゃやるけど。
エンジンってそういうことなん? あと、全然難しくない、とか言うのやめたほうがいいよ。 つーかライティングやらシェーディング、加えてそれがリアルタイムってあたりで 組むのうんざりだ。
- 827 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 00:25:20 ]
- データ作るほうがコーディングより作業が大変だろ
- 828 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 00:28:54 ]
- ビューアは作ったからモデルデータとモーションを作れと言われるのと、
モデルデータは作ったからビューアを作れと言われるとがどちらが良いかと言われたら、 迷わず後者を選ぶ。 労力が全然違う。
- 829 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 00:33:44 ]
- いつのまに
プログラマーとモデラー・アニメーターの比較になってるんだ? プログラムの話をしようぜ。 リアルタイムラジオシティtoonレンダでも組んでくれ。
- 830 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 00:44:50 ]
- 光源が固定のラジオシティをリアルタイムといってしまっていいものかどうか。
- 831 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 00:52:55 ]
- ????
なんでラジオシティに光源の位置が、固定か可変か関係あるの?
- 832 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 01:08:03 ]
- は?全ては光源に依存してるんだから、光源が固定か可変かは大問題だろう。
CG屋さんか?
- 833 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 01:13:33 ]
- リアルタイムに光源を変化させるのってそんなに難しいの?
まだ、チュートリアル弄ってる段階なんでさっぱりさ!
- 834 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 01:17:05 ]
- ????
そりゃ光源に依存してるけど、普通はレンダリング時に光源の位置を決めて そこからラジオシティ入るだろ? つまりはアレか?人がグリグリ動いてる中で、光源(例えば太陽+複数のスポットライト)も グリグリ動いて、間接光だのをリアルタイムで時間積分して解いてるのか? つーか、リアルタイムの光源固定ラジオシティでさえまともに実装されてないのに。 光源がグリグリ動くラジオシティがあるっていうのか。ぜひ教えて欲しいわ。
- 835 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 01:20:12 ]
- >>833
リアルタイムで光源が動いて シェーディングをかけるのは難しくはない。nvidiaとかのサンプルでもある。 言ってるのは、ラジオシティ。
- 836 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 01:24:29 ]
- >>834
>>831によると、固定も可変も関係ないらしいから、光源固定のラジオシティも 光源がぐりぐり動くラジオシティもあるってことになるよね。
- 837 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 01:28:35 ]
- 3Dの勉強始めようかな…
なぜかゲームプログラマーになってしまったしな…
- 838 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 01:29:35 ]
- ここはあなたのブログではありません。
- 839 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 01:30:56 ]
- >>836
んー 俺の認識だと、ラジオシティでは1枚の光源は 固定したものとしてレンダリングするもんだと理解してるから 可変ってのは無いもんだと思って831を書いたんだけども。 ぃゃ、正直光源がグリグリ動くラジオシティがあるなら、参考にしたいから知りたいというのがある。 確かに1枚=1フレームとして、リアルタイムのラジオシティが出来るのであれば それは光源が可変なのだと思うけど。 SIGGRAPHでさえ、リアルタイムラジオシティは出てない、はず。 PS3を3台だかつかって、リアルタイムレイトレしてる変な人たちはいたけど
- 840 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 05:58:03 ]
- 変って言うなw
- 841 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 17:08:46 ]
- ピクセルシェーダで画面の輝度の高い部分にグレア処理をかけたいと思ってます。
画面と同じ大きさで作成したテクスチャにオブジェクトを描画して、 最後にそのテクスチャにグレア処理をかけて画面いっぱいに映し出された ポリゴンに描画するというやり方でやってます。 しかし、やり方が悪いのかぼやけます。根本から間違ってるのでしょうか? 画面いっぱいに映し出されたポリゴンは出力を見ながら手作業で大きさを 調整しているので、サイズが画面と完全に一致してないのが原因なのか…。
- 842 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 17:38:04 ]
- テクスチャ自体の解像度が低いとかじゃないの?
- 843 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 17:52:51 ]
- テクスチャのサイズですが、生成時に画面と同じ640*480を指定しています。
1024*1024等の2のべき乗で無いからぼやけるのでしょうか? 試しに1.5倍の960*720のテクスチャにモデルを描画した後640*480の画面に ピクセルシェーダで描画したらぼやけは無くなりました。 でもこれは高解像度から低解像度への変換なので当たり前というか…。
- 844 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 17:59:54 ]
- 使ってるビデオカードは2の乗数でないテクスチャに対応しているものか?
そうでないなら640*480なんていう半端なサイズのテクスチャは作れないが
- 845 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 18:07:26 ]
- ためしに2^nにしてみて検証
- 846 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 18:50:05 ]
- どうせヘルプをまともに読まずD3DXでテクスチャを作って、勝手に自爆しているだけだろ。
- 847 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 19:27:26 ]
- シェーダが使えるのにテクスチャが2^nでしか作れないなんて、
VP870(PS1.2)とかXabre(PS1.3)くらいで、シェーダモデル2.0以降なら 1つも無いと思うが。 俺はどうせ座標が0.5ずれてるFAQネタだと思うが。
- 848 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 19:33:05 ]
- ウィンドウサイズは640x480だけど
クライアント領域が640x480じゃないってオチは?
- 849 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 21:17:33 ]
- サンプルブラウザのチュートリアル6メッシュっちゅうのを動かしてみたんだが、
メッシュの回転や平行移動ってどうやればええのん?
- 850 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 21:33:42 ]
- >>849
ワールドマトリックスに好きな行列をセットしろ。
- 851 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 21:42:07 ]
- >>850
サンキュー!
- 852 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 21:56:16 ]
- 誰か>>801に答えてくれたりしない?
未だにだめっぽなのよ
- 853 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 22:03:58 ]
- >>850
行列のセットがよくわからなかったので、アフィン変換ちゅうのを使おうとしたんだけど、 こんなエラーが「error C2065: 'null' : 定義されていない識別子です。」 // Set up world matrix D3DXMATRIXA16 matWorld; D3DXMatrixRotationY( &matWorld, timeGetTime()/1000.0f ); D3DXVECTOR3 t(1.0f, 0.0f, 0.0f); D3DXMatrixAffineTransformation( &matWorld, 1.0f, null, null, &t); // ここでビルドエラー g_pd3dDevice->SetTransform( D3DTS_WORLD, &matWorld ); なんで、D3DXMatrixRotationY、D3DXMatrixLookAtLHは使えるのに、 お友達っぽいD3DXMatrixAffineTransformationが使えないのかわかる?
- 854 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 22:04:40 ]
- null→NULL
- 855 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 22:06:24 ]
- >>854
ひゃっほう(’’*
- 856 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 22:26:17 ]
- 質問です。
3Dゲームでパラメータ等を2Dで表示する機能を実装したんですが、すごく重くなってしまいました。 本で調べてみたのですがClearでZバッファを一度消しているのが原因らしいです。 とりあえず原因はわかったのですがどういう解決策をとればいいのかわかりません。 いい解決策とかパラメータ表示の代替案とかご存知なら教えていただきたいです。
- 857 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 22:35:57 ]
- どの本の何という記述からそう思ったのか答えよ。
- 858 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 22:42:58 ]
- 軽くエスパーすると
フォント描画が重いんだと思うけど・・・
- 859 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 22:49:29 ]
- >>852
頂点の配列は自分で作ってるんだろ? んで、それをGLの関数にセットして描画してるんだろ? それだよ。 >>856 Zバッファをクリアせずに 文字を書くときだけZテストをOFFにすれば?
- 860 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 22:51:05 ]
- >>857.858
すみません直りました。 コードに手は加えていないのに突然直ったので たぶん別の事が原因だったと思います。それが何かはわかりませんが…。 お手を煩わせて本当に申し訳ない。
- 861 名前:860 mailto:sage [2007/11/12(月) 22:53:14 ]
- >>859さんも解答してくれてありがとうございます。
>>860の通り解決しました。重ね重ね申し訳ない。
- 862 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 23:10:35 ]
- それよりもZバッファをクリアすると遅くなる情報の元になった書籍名を答えろ。
- 863 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 23:22:40 ]
- >>862
マスタリングDirectXプログラミングという本です
- 864 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 23:49:30 ]
- 初心者が買ってはいけない本に認定
- 865 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 23:54:54 ]
- こんな本でてたのか
日本語でDirectX関連の本は久しぶりだな
- 866 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 00:57:58 ]
- 今、DirectX9SDKで2Dのシューティングゲームを作っています。
ゲームのプログラムは「シューティングゲームプログラミング」の本を参考にして作っているのですが、この本のサンプルでは弾やキャラクタが全て3Dメッシュで作られています。 作りたいのは2Dのゲームなので、DirectX8の2Dゲーム作成のページを参考にしてDX9の仕様に変えながら、後でゲームに組み込むことを目的にして2D描画周りの勉強をしています。 本のサンプルにもテクスチャを描画する関数はついていたのですが、頂点位置を指定しての変形描画や行列を用いた回転を使いたかったので、自分で関数を作ってみようと思いました。 今触っているプログラムの簡単な描画の流れは、 @D3DXCreateTextureFromFile を使ってpngファイルからテクスチャを作成 ASetTexture でテクスチャをデバイスにセット BDrawPrimitiveUP でバックバッファに転送 CEndScene を待って Present でフリップ (方式はD3DSWAPEFFECT_DISCARD) というものです。 そこで質問なのですが、テクスチャを描画した際に像がぼやけたようになってしまうのはどうすれば直せるのでしょうか。 現在はステージ画面のフレーム(透過部分を四角く抜いたワク)を描画する段階で、テクスチャの大きさは640x480です。 ファイル形式はpng、bmp、tgaを試してみましたがどれもぼやけてしまいます。 ttp://www.uploda.org/uporg1109654.png 具体的には、画像の左側の絵を描画すると右のようになってしまいます。 解決策を教えて下さいませんでしょうか。
- 867 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 02:42:36 ]
- ちょっとだけ上を見るとか頭に無いのかな
- 868 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 05:05:12 ]
- 倍の解像度のテクスチャを用意して、0.5ずつ座標をずらしたら綺麗に表示されました。
上を見れなくて申し訳ありませんでした。
- 869 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 13:30:43 ]
- >頂点の配列は自分で作ってるんだろ?
>んで、それをGLの関数にセットして描画してるんだろ? だから、頂点が3つあったときに(0 0 0) (1 1 0) (-1 1 0) struct IN{ float4 position1 : POSITION float4 color : COLOR } だと、POSITIONが1個しか無いじゃん 1個しかないのに、3つの頂点入るの? 3つのうちのどれかが入るんでしょ?それuniformじゃないと指定できないじゃん 勝手にCgの方でやられたってこっちが困るんだよ 3つのうちどれが入るか言ってよ!ヴァカ!
- 870 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 13:50:10 ]
- 自分の不勉強を棚に上げて逆ギレとは…。
てか、>>800で終了だろ。
- 871 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 16:52:26 ]
- >>868
なんで倍の解像度にする必要があるの?
- 872 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 19:12:14 ]
- ピクセルシェーダ2.0を使う場合って、そのPCが1・1までしか対応
していない場合どうなるのでしょうか? エフェクトファイル読み込んだ時点でエラー発生でしょうか? 手元にあるのマシンが全部2.0対応なので、誰か分かる人ご教授お願いします!
- 873 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 19:15:26 ]
- >>870
だから、何を入れるのか決めるのってCgだとuniform使うんだってば 何回も同じこと言わせないでください>< uniformがついてないからわからないんですぅ! と、厨臭いこと言い方ですいませんでした。自分の勉強不足です ただ一人じゃわからなくて。アドバイス頂けたらと思って伺いました。 ほんとすいません。教えてください
- 874 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 19:41:34 ]
- /;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;゙i、
i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;|i /;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i゙i /;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/|;;ト;ト;;;;;;;;;;;;;;;;;;;;;;;;ヽ、 /;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ノ;;ノシ/ノ |゙!iヽヾ;;;;;;;;;;;;;;;;;;;;;;ヽ、 /;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ンツン ! ヽ、 ヾ;;;;;;;;;;;;;;;;;;;;;;;ヾ /;;;;;;;;;;;;;;;;;;;;;;;/シンて__;;;、 ,;;;.ソ ~゙ヽ;;;;;;;;;;;;;;;;;ヽ /;;;;;;;;;;;;;;;;;;;;;/ゾ ゙! / ノミ;;;;;;;;;;;;;;;;ヽ、 /;;;;;;;;;;;;;;;;;;;;入 ーt┬‐ュ ヽ ( <エコブ ┃ノ;;;;;;;;;;;;;;;;;ヾ /;;;;;;;;;;;;;;;;;;;;;;;;ヽ┤  ̄_ノ ゙i i ‐-、 |;;;;;;;;;;;;;;;;;;;;;;;;゙i 必要な分は見せたということだ . /;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::l、 : : ゙ ノ;;;;;;;;;;;;;;;;;;;;;;;;;;l /;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::T:、_ r‐ i i┐ イ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;l これ以上は見せぬ . l;;;;;;;;;;;;;;;;;;;;;;;;;/;| k┴ヽ、 /‐、l´゙)~ヽ ( |イ;;;;;;;;;;;;;;;;;;;;;;;;;;;;l l;;;;;;;;;;;;;;;;;;;;;;イ;;;| | / / _゙'_'゙ ゙i )| |;;;;;;;;;;;;;;;;;;;;;;;;;;;l l;;;;;;;r‐''゙;;;;:;;:;;;;l ヽ、 ,|. ( f‐ニ‐ヽ /./ /ヾヾ;;;;;;;;;;;;;;;;;;;l ヾ/;;;;;;;;;:;;;;:;;;;;ヽ ゙ヽ\ヽ―'゙――゙'‐// / /;;;:::....゙''‐、;;;;/ _,.,.r/ ,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ヽ ゙i ゙i、゙'v v' i / ノ;;;;::::;;;;;;;;;;;;;;;:.ヽ、 /::/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ヽ、 ゙r_ヽ! 、,. ! | ,/;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;ヽ、
- 875 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 20:00:53 ]
- >>873
てゆーかホントにお前が何がやりたいんだよ >>795がやりたいとして ホントに頂点数は5なのか? それくらいならできなくもないけど頂点数が数十個のオブジェクトを この方法で処理するのは土台無理な話だし ホントにそんな処理が必要なのかも疑わしい いま自分が目指してる最終地点と それに対してどういうアプローチをしてるのかぐらい書いてもらわんと 説明する気も起きない
- 876 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 20:31:58 ]
- >>795さんではありません><
単純に>>869の状況のときに float4 position1にはどんな座標が入ってるか知りたいだけです! ポリゴンは(0 0 0) (1 1 0) (-1 1 0)で三角形指定して、頂点が3つあるのに シェーダーで受け取るPOSITIONセマンテックは1つだけっていうのがわからないのです Output { float4 position : POSITION; float4 color : COLOR; }; main (float3 position : POSITION) { Output OUT; OUT.position = float4(position, 1); OUT.color = float4(0, 1, 0, 1); // RGBA green return OUT; } なんでfloat3 positionが1個だけなの? じゃあ、これに float3 position2 : POSITION1とかしたら、何が入るの? (0 0 0 ) (1 1 0)? それとも(-1 1 0)? そこら辺の説明が本でも何でも載ってないのでわかんないんです
- 877 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 20:39:44 ]
- >>876が何を言いたいのか良くわからんが
頂点数が3個なら mainは頂点数と同じ数だけ つまり3回呼ばれてる 1回目のmainのpositionには(0,0,0)がはいっていて 2回目のmainのpositionには(1,1,0)が以下略 ここまではOK?
- 878 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 20:55:26 ]
- そして
float3 position2 : POSITION1だが Cgがどんなものなのか知らんので POSITION1なんてセマンティックがあるのかは知らんが あると仮定するとposition2には何も入ってきていない position2になにを入れるかは 頂点情報を設定するときに自分で何をいれるのか決める部分なので 何も指定してないのなら何も入らない
- 879 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 21:05:01 ]
- >>877-878
ありがとうございます>< 間違ってたところがありました。POSITIONはセマンティックが1つだけで COLOR1とCOLOR0、 TEXCOORD0〜7でした! でもPOSITIONのところはわかりました!ありがとうございます!その頂点分呼び出されて そのときはPOSITIONに、その値が入るんですね! でもCOLOR0〜1とTEXCOORD0〜7がわからなくなってしまいました。 これも外部から指定するのでしょうか。uniformじゃ無いのに。
- 880 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 21:07:30 ]
- なんという理解力の無さだ・・・
- 881 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 21:07:31 ]
- 例
struct Vertex{ D3DXVECTOR3 position ;// 頂点の座標(必須) D3DXVECTOR4 color ; D3DXVECTOR3 position1 ;// 拡張した頂点情報 D3DXVECTOR3 position2 ;// 拡張した頂点情報 } ; #define MY_V (D3DFVF_XYZ|D3DFVF_DIFFUSE|D3DFVF_TEX2|D3DFVF_TEXCORDSIZE3(0)|D3DFVF_TEXCORDSIZE3(1)) main ( float3 position : POSITION float3 color : COLOR, float3 posion1 : TEXCOORD0, float3 posion2 : TEXCOORD1 ) { ・・・ TEXCOORDはテクスチャ座標を入れるために用意されてはいるが 別にテクスチャ座標を入れないといけない決まりはない たとえば複数光源の計算をしたいときにそれぞれの光源ベクトルをいれたりとか ここはプログラマが必要に応じて拡張すべきところでみんなはこれのことを言っている 一つ一つの頂点に複数の情報を持たせられるよってだけで 複数の頂点の情報がはいってくるわけではない
- 882 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 21:14:53 ]
- つまりTEXCOORDは何入れてもいいということですか。
twoTextures(float2 position : POSITION, float2 texCoord : TEXCOORD0, uniform float2 leftSeparation, uniform float2 rightSeparation, out float4 oPosition : POSITION, out float2 leftTexCoord : TEXCOORD0, out float2 rightTexCoord : TEXCOORD1 ) { oPosition = float4(position, 0, 1); leftTexCoord = texCoord + leftSeparation; rightTexCoord = texCoord + rightSeparation; } でもこういう風に、「入ってくる側のfloat2 texCoord : TEXCOORD0,」の場合はプログラム側で 指定しないとダメなんですよね。 outのところは、自分の都合にあわせて設定してるっていうのはわかるんですが。
- 883 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 21:30:31 ]
- やべえ、頭痛くなってきた
誰か、バトンパス
- 884 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 21:53:21 ]
- ↓
↓ ↓
- 885 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 22:28:46 ]
- 教えて君・粘着君に付き合うのが嫌なら無視するのが常識。
- 886 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 22:33:51 ]
- お前頭いいな。
- 887 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 05:26:10 ]
- 高さマップの画像からデコボコな地形を生成したいんですが、
全くやり方が分かりません。ヒント頂けないでしょうか?
- 888 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 07:08:10 ]
- 画像の1ドット毎を高さに変えるだけ。
RGB、つまり256色x3色=768段階の高さが取得できる(アルファも取りたけば自由に)。 黒なら高さ0、白なら768xαという高さに決めればあとは自分でその高さに点を配置して面を作っていく。
- 889 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 07:31:08 ]
- 24bitもってて768段階? なんでbitでやらんの
あと移動可などのフラグとか含めたりする。
- 890 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 07:58:39 ]
- 俺は、>>887の質問の内容が分からん。
エスパーの例題かと思った。 元データはバンプマッピング用のテクスチャの事? デコボコな地形って何?ポリゴングリッドの事? それは、DirectXの質問なの?
- 891 名前:887 mailto:sage [2007/11/15(木) 12:27:14 ]
- 言葉足らずで申し訳ないです。
高さマップの画像を元に、メッシュを作成する方法です。 >>888 画像のデータを1ピクセルごと取得していって、自分で頂点を打っていく ということでしょうか?
- 892 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 13:01:48 ]
- それ以外にどうしろと?
- 893 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 14:49:52 ]
- >>891
hight-fieldのことでしょ? 濃淡グレーマップが高さを示しているっていうの。 単純に0-255でRGB値を読み込んで、それをポリゴンの1頂点として メッシュを刻んでいけばいいんでないの? RGB値が読めないとかいうなら PPM、PGMのASCIIモードで保存でもして読み込めばいい。 当然、ピクセル分の頂点が出来てしまうからデータは重い(255×255pixelなら、255×255頂点) あと頂点間のつながりもプログラムで指定する。 ということなのでは?
- 894 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 15:11:38 ]
- たぶん、
そういう超便利関数はないの? って聞いてるんじゃね?
- 895 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 15:26:53 ]
- pov-rayとかならあったかな。超便利関数
ポリゴン生成してくれるまでは知らんけど。
- 896 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 17:00:44 ]
- っていうか、普通のバンプマッピングを使ってレンダリングしたら駄目なの?
地形とか作りたいなら、元データに高さマップ使う意味がわかんないし。
- 897 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 17:27:01 ]
- ビットマップなんてヘッダ以外はただの2次元配列じゃないか
- 898 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 18:48:33 ]
- www.microsoft.com/japan/msdn/coding4fun/gamedevelopment/beginning6/default.aspx
こんなの? MDXだが。
- 899 名前:887 mailto:sage [2007/11/15(木) 19:15:13 ]
- >>892
なかなか初心者には分からないものです。 >>893 なるほど、非常に参考になります。 >>894-895 そういうことになりますかね。xファイルをロードする関数があるので、 高さマップなどにも専用の関数がある、もしくは似たようなことが出来る と思ってました。 >>896 バンプマッピングはあくまでも見た目だけで、実際に他のメッシュから レイを飛ばして高さを取得したい場合などには不向きと調べた結果にありました。 それと地形作成専用のツールの出力が高さマップだったので。 逆にバンプマップ以外、高さマップ無しで効率よく広大な地形を生成する 手法が存在するのでしょうか? >>898 実は質問する前にそのページを参考にして作ってみたのですが、原理やC#自体 よく理解していないなかったので手詰まり状態でした。 アドバイスのおかげでそのソースコードの意味も今分かりました。 とりあえずゴリゴリ頂点データを作成する関数をコーディングしてみます。 ありがとうございました。
- 900 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 21:53:13 ]
- やってることが、どう見てもhight fieldだ。
ハイトフィールド、hight fieldでググると色々出てくるよ。 使い古された手法だから、結構ソースはあるはず
- 901 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 22:36:14 ]
- 助言をお願いします。
テクスチャを動的に生成するため、 D3DXCreateTexture(pD3DDevice, iWidth, iHeight, 0, 0, D3DFMT_A8L8 ,D3DPOOL_MANAGED, &pTexture); で作成してたテクスチャを pTexture->LockRect(0, &stRect, NULL, D3DLOCK_DISCARD); とロックして書き換えていたのですが、 ふと、DirextX Control Panelで、Debug Runtimeに変更したとたん、 エラーコードD3DERR_INVALIDCALLが返ってくるようになりました。 Retail Runtimeでは動くので最終的には問題ないですが、 Debug Runtimeで動かないのが気になります。 何かご指摘の点があればよろしくお願いします。
- 902 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 22:40:06 ]
- >>901
デバッグ出力に何か情報でてないの?
- 903 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 23:10:23 ]
- パラメータを見直した?
D3DXCreateTexture、LockRectの箇所でデバッガで止めて、引数の値を精査した?
- 904 名前:901 mailto:sage [2007/11/15(木) 23:37:31 ]
- レスありがとうございます。
デバッグ出力は何も出てきていません。 パラメータは例で示した感じです。 動作自体はRetail Runtimeで目的通りに動作しているので、 何が間違っているのか・・・?
- 905 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 00:51:43 ]
- D3DLOCK_DISCARDは、動的テクスチャのみ有効なフラグで
動的テクスチャの作成にはD3DPOOOL_MANAGEDは使用できないと ヘルプにあるが。また、D3DUSAGE_DYNAMICを指定してないし。 つーか、デバッグメッセージは出てるだろ、メッセージレベルを上げろよ。
- 906 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 01:16:52 ]
- >>904
D3DERR_INVALIDCALLが返ってきて、デバッグ出力に何も出ないなんてことは 最近のSDKでは起こらないと思うんだが。 >>901のコードを手元で試したらちゃんとメッセージが出たんだがね Direct3D9: (ERROR) :D3DLOCK_DISCARD is allowed only with dynamic textures
- 907 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 01:18:10 ]
- >>906の言うとおりならSDKが古いんじゃないの?
- 908 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 01:34:37 ]
- >>906のメッセージはかなり昔のSDKでも出る
恐らくは>>905の言うとおりデバッグ出力レベルを上げてないだけかと Retailランタイムでは動作するってのが分からんけど
- 909 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 01:40:05 ]
- Retailで動くってのは無効なフラグをいちいちチェックしたりせずに無視してるだけなんじゃないかなたぶん
- 910 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 01:52:49 ]
- DebugとRetailで、関数からの戻り値(HRESULT)が変わることもあるのかな?
>>901でLockRectが失敗すると、当然D3DLOCKED_RECTの値も無効な訳で、 そのまま処理進めると間違いなくAccess Violationな気が…
- 911 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 01:59:38 ]
- とりあえず、仕様通りに書き直せばいいんでね?原因なんて暇人に調べさせておけ・・・
ってまさか、これは調べさせる釣りなのか?!
- 912 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 02:12:59 ]
- これはまたまんまと
- 913 名前:901 mailto:sage [2007/11/16(金) 02:43:16 ]
- レスありがとうございます。
D3DPOOL_MANAGEDで作成してること事態が問題でした。 おかげさまで、 D3DXCreateTexture(pD3DDevice, iWidth, iHeight, 0, D3DUSAGE_DYNAMIC, D3DFMT_A8L8 ,D3DPOOL_DEFAULT, &pTexture); と修正することにより、Debug Runtimeでもエラー無く動くようになりました。 ただ、Debug Output Levelを最大にしても、エラーメッセージが何も出でないのは気になりますが・・・。 ちなみに、SDKはJune 2007をVistaで使用しています。
- 914 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 07:10:11 ]
- デバッグメッセージの見方を知らないのかな?
- 915 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 08:53:14 ]
- VC++8Expressだと出力ウィンドウにはネイティブのデバッグメッセージは
表示されないという罠があったりなかったり。
- 916 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 11:19:26 ]
- 質問者は、自分の環境とか使ってるDirectX SDKのバージョンを書かないけど、
このスレではそれがデフォなの?
- 917 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 12:13:20 ]
- SDKはみんな2004Octを使ってるからいちいち書かなくてもいいだろ
- 918 名前:901 mailto:sage [2007/11/16(金) 12:29:42 ]
- VC++2005EEだと出力ウィンドウに出てました・・・orz
主にコンソールで作業してるもので・・・ お騒がせしました。
- 919 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 13:46:44 ]
- DirectX9で2Dゲームを作っていて
SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR); SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR); の拡大縮小フィルタを設定しているのですが、 等倍や縮小描画をすると異常にぼやけてしまいます 何故かMINFILTERではなくMAGFILTERの方を切ると縮小なども綺麗に描画されるのですが 原因として考えられることは何でしょうか?
- 920 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 15:13:05 ]
- >>919
ttp://msdn.microsoft.com/library/ja/DirectX9_c/directx/graphics/programmingguide/fixedfunction/textures/coordinates/mappingtexelstopixels.asp これは?
- 921 名前:919 mailto:sage [2007/11/16(金) 18:23:09 ]
- >>920
レスありがとうございます DrawPrimitive前でテクスチャ座標を全て-0.5fにすると解決しました
- 922 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 18:29:22 ]
- テクスチャ座標を全て-0.5fにする
・・・
- 923 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 18:34:22 ]
- DirectXでリアルタイムレンダリングを解説した書籍でお薦めのものってありますか?
- 924 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 21:26:44 ]
- まてまて、DirectXって基本的にリアルタイムレンダリングを前提としてると思うんだけど。
プリレンダリングの解説書なんて見たことねーぞ。
- 925 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 21:59:37 ]
- リアルタイムレンダリング in DirectX
ttp://www.amazon.co.jp/dp/1931841276
- 926 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 23:26:21 ]
- 現在XP+DX9なのですが、DX10に向けてDX9で磨いたほうがいい技術はどういうものでしょうか。
DX9からDX10に変わることで何がどう違うのかいまいち分からなくて・・・ DX8からDX9になったときのような仕様変更のレベルじゃないですよね、単なる思い込みでしょうか。
- 927 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 23:45:12 ]
- 必用なのはドキュメントに目を通し、サンプルを読み、
こんなところでグダグダグダグダくだらないことを言わない技術。
- 928 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 23:52:22 ]
- 持っているグラボの性能にもよるけどピクセルシェーダに慣れておけばいいかもね
|

|