【C++】 DirectX初心者質問スレ Part37 【C】
回答する人も、質問する人も必ず読んでください
これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ
【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。
【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。
現在の最新バージョンはDirectX 11です。
前スレ
【C++】 DirectX初心者質問スレ Part36 【C】
http://toro.2ch.net/test/read.cgi/tech/1319032065/
落ちるよ
最新は11.1だったりするけど・・・・
急にフルスクリーンモードにするとFPSが落ちるように なってしまったんだけど、何か心当たりがある人いる? 例えば、FPSを表示するだけのプログラムで ウィンドウモードだとFPSが1200くらいだけど フルスクリーンモードだと400くらいになってしまう 一昨日まではフルスクリーンモードでも1200くらい出てた 過去に作った他のプログラムでも同じ症状だから 間違ってソースをいじってしまった事は無いと思う だとすると環境のせいっぽいけど、一切新しいアプリケーションは インストールしていないし、何も設定をいじってはいない 何が原因か分かる人いるかな?
FPSが1000を超えるような非常に軽い処理に、GPUクロックを上げる必要がないとドライバが判断してクロックを落としたんじゃね
>>6 いや、クロックが可変するGPUじゃないんだよね
それに、以前は普通にFPS出てたんだ
自分でも何がなんだかさっぱり分からない状況なので
ほとんどエスパー回答になると思うけど、誰か分かる人いないだろうか
ポイントは、フルスクリーン時のみでFPSが3分の1ほどに落ちる事
おそらく環境的な問題であること、ただしアプリをインストールしたり
OSや開発環境の設定を変えたりはしていないことなんだけど
これじゃ解決は無理か
なんで情報出さないの?馬鹿なの?死ぬの?
次の人〜
D3D9、D3D11Deviceを両方作成して使用した場合、何か問題が発生したりしますか? D3D9はスキンメッシュのレイ判定の為にサンプルのソフトウェアスキニングを使用したいだけなのですが
自分で試せよw
>D3D9、D3D11Deviceを両方作成して使用した場合、何か問題が発生したりしますか? サーフェイス以外はリソースの共有はできないけど、作るだけなら問題無いよ
思い当たる原因はあるけど、ビルドして確認したいからファイル全部ください
>>15 ファークリップがz=10.fしか無いのに
z=20.fから原点のオブジェクトを見てるから。
D3D.cpp 79行目
D3DXMatrixPerspectiveFovLH( &mat_Projection,D3DX_PI/4,f_Aspect,1.0f,10.0f);
最後の引数を100.fとかにすれば描画される
そこだったのか・・・ ヘタクソなソースにもかかわらずアドバイスありがとうございます 助かりました
WP8はC++とDirectXだって なんで最初からそうできなかったのか・・・・
timeBeginPeriod(1) って引数変えても変化しないんだけどMSDNの説明ほんとにあってるんだろうか? なんかSetTimerの引数の識別子みたいなもののような気がするんだけど 終わる時にわざわざtimeEndPeriod(引数)みたいな終わらせ方させてるし
>>20 timeBeginPeriodの設定はシステム全体で共有されるから
他の常駐プロセスなり何なりが上書きしてるとかじゃないか?
昔、メディアプレイヤー起動しながらプログラム走らせるとFPSが上がって、
何かなと思ったら、timeBeginPeriodのせいだったって経験がある。
他のプログラム停止してみて変化なければ解からん。
Direct2Dでのダブルバッファリングは CreateCompatibleRenderTargetでID2D1BitmapRenderTargetを作って そこにゲーム画面を描画して、GetBitMapでID2D1Bitmapを取って、 それをID2D1HwndRenderTargetのDrawBitmapに渡すというやり方で正しいですか?
Direct2Dの場合自分でやる必要はないんじゃないの? BeginDrawからバッファに入れてEndDrawでDirect3Dに渡してレンダリングじゃなかった? 細かく描画を制御したい場合Direct3Dと併用するとかそんなんだと思うけど
プリミティブのエントリー方法が3Dっぽいよな。 その割には、毎回全部再登録しなきゃだけど。 しかもあれ、無効領域以外も全て再描画してるのかな。 なんか無駄が多そうだなぁ…。
すみません。 メッシュのマテリアル(D3DMATERIAL9)の“Diffuse”のa r g b を設定し、SetMaterialし、描画しても メッシュのマテリアルの“Diffuse”が適用されません。 ポリゴンの頂点毎の頂点色はちゃんと描画できているのですが… メッシュ単位で影に入ったら暗くしたり、 不完全でも半透明にしたりしたいのですが・・ どういう所を確認すれば良いのでしょうか?
26 :
25 :2012/06/24(日) 14:58:28.06
申し訳ありません、 ちゃんと メッシュのマテリアルの“Diffuse”が適用できているメッシュが有りました; 適用できていない物との違いを調べなおします。 お騒がせしました;
すみません。HLSLの勉強をしていて、ポリゴンが裏返る事に困っています。 頂点シェーダで座標は以下の様にして渡していて、 Out.Pos = mul(In.Pos, matWorldViewProj); そのマトリクスはプログラム側で、 D3DXMatrixIdentity(&tempMat); D3DXMatrixTranslation(&tempMat, LocalPos.x, LocalPos.y, LocalPos.z); D3DXMatrixMultiply(&tempMat, &tempMat, &matView); D3DXMatrixMultiply(&tempMat, &tempMat, &matProj); g_pD3DDev->SetVertexShaderConstantF(0, (float*)&tempMat, 4); こうして作り、頂点シェーダに送ってポリゴンが裏返ってしまいます。 そして不可解なのですが、未作成の不正なVertexShaderを g_pD3DDevice->SetVertexShader で設定すると全ポリゴンが正常に描画されます。 マトリクスを受け取る変数を作って計算して渡しての手間は何なのか…。 ここを読んで勉強してこい とかURLだけでも構いません。 何かご助言を頂けますと幸いです;
28 :
27 :2012/07/01(日) 16:06:06.68
他で質問してみますね。 説明足らずな面もあり、失礼しました。
デバイスを二つ作って、片方で読み込んだテクスチャを もう一方のデバイスで使用する方法ないかな?
30 :
デフォルトの名無しさん :2012/07/02(月) 14:57:57.31
DirectShowなんだけどさー キャプチャーする時音声だけmp3にする方法教えてエロ
31 :
デフォルトの名無しさん :2012/07/02(月) 14:59:45.48
違ったmp3じゃなくてwmaです ちなみに映像はいらないから音声だけですero
うひょ
33 :
デフォルトの名無しさん :2012/07/04(水) 09:12:22.57
他スレでは解決できなかったのでこちらで再度質問させてください。 現在DirectshowLibを使用して動画取込をしているのですが、 IODataのGV-USB2を入力ソース(コンポジット)としているのですが、 VMR9を使用してのデインターレースの仕方がわかりません。 IVideoInfoHeader2のInterlaceFlags にはUnused | FieldPatBothRegular が設定されており、デインターレースが使用できないようです。 >>デバイスにはIAMStreamConfigがなく、MEDIATYPEを設定することも >>できないようです。 ※こちらは取得できたのでGetFormatからMediaTypeを取得し、 interlaceFlagsに IsInterlaced とFieldPatBothRegularを入れ、再度 SetFormatにて設定したのですが、VMR9レンダラーのピンからメディアを 取得するとUnused|FieldPatBothRegularになっていました。 設定方法がまずいのか、そもそもそのようなやり方が間違っているのか すらわかりません・・・ 何卒よろしくお願いいたします。
34 :
デフォルトの名無しさん :2012/07/04(水) 09:28:10.66
うんこ
35 :
33 :2012/07/04(水) 11:43:55.74
もしかして、デバイスから送られてくるストリームは プログレッシブ化されており、インターレース解除されて いるのでしょうか? ffdshowのインターレース解除をオンにするとインターレース 解除されていたので元のソースがインターレースと思っているのですが・・・ そもそもffdshowのインターレス解除処理はどうやっているんだろうか?_?
DirectShowはスレチ
>>36 すいません、スレ違い承知で質問しました。。
Directshowのスレ自体殆ど書込みがないままdat落ち
していたので、質問のために再度スレ立てるのも。。。と思いまして
うむ
41 :
33 :2012/07/04(水) 16:41:49.58
40は自分ではないです。
>>39 そうですね、こちらに聞いてみるのがいいかもですね。
ありがとうございます><
また、引き続きわかる方おられましたら書き込みしていただきますと
助かります。
よろしくお願いいたします。
やだ
MetroStyleのDrectXサンプルの ^←がすごい嫌
久しぶりに見てみたらWin32スレがおかしな事になってるんだな なんだあれ?
45 :
デフォルトの名無しさん :2012/07/12(木) 21:48:11.09
くだらない質問すみません。 C言語とC++とC#ってどう違うんですか?
C : 多くの言語の祖先。シンプルでそしてありのまま。 C++ : C言語に、様々な新しい概念等を盛り込んでいったもの。少し前のC言語とは完全互換性があった。多分一番色んなものが組み込まれている言語。(悪く言えばごちゃ混ぜ) ちなみに速度的には、C言語の部分だけを使えば同等、C++の部分を使うと、たいていC言語より少しは遅くなる。 C# : 基本構文はC言語と似ているが互換性は一切ない、マイクロソフトちゃんの作った言語。 .Net(ドットネット)というものの上で成り立っており、作ったものはその環境の上で動作する。 ゆえに「基本的には」その速度はかなり犠牲になる(動的な型情報、変換、メモリ管理や例外機構を持つため)。 しかし、マイクロでソフトなあの子による最適化、更新などにより、より早く、安全に、そして開発効率の高いものになっていくことが期待できる。 追記 : 一般人がXBox360用のソフトを開発できるXNAや、みんな大好きUnityでの開発言語に採用されるなど、多方面から支持を集めている。 ちなみに俺はアセンブリ言語とC++使い。JavaやC#は言い回しだけ変えて、ものの本質を誤魔化されてる感じが気に入らないから、たまにしかやってない。
47 :
デフォルトの名無しさん :2012/07/13(金) 04:39:54.61
ありがとうございます。 C++を使おうと思います。
いえいえ
49 :
デフォルトの名無しさん :2012/07/13(金) 22:15:42.04
お知恵を拝借したいです! 例えば2Dのシューティングなどで雲に映る影を描画したい場合、 雲の端っこなどで影が切れないと見た目におかしくなります。 つまり雲の形にあわせて影の描画領域をクリッピングしたいということなのですが、 これを実現するには、ステンシルバッファを使用するのが有効だということが調べていてわかりました。 しかし、現在スプライトを使って作成していまして、雲テクスチャの形に合わせてステンシルバッファの値を書く方法がわかりません。 テクスチャのα値が1以上の箇所のみステンシルバッファに値を持たせたいのですが、これは可能でしょうか。 よろしくお願いします。
ステンシルバッファなんか使わなくてもテクスチャのブレンドでできそう
とりあえずステンシルバッファなんてやめて、 乗算合成だのなんだの駆使して実現を目指してみます。 ありがとうございました!
いえいえ
画像ビューア作ってるんだけどテクスチャの最大サイズを超える 画像の場合どうすればうまく表示できる? 今の所クライアント領域と同サイズの四角ポリゴンにテクスチャを 貼り付けてるけど、巨大な画像の場合はテクスチャを分割して その切れ目の所は四角ポリゴンが複数必要になる?
55 :
デフォルトの名無しさん :2012/07/20(金) 18:14:29.17
今3Dゲーム制作中なのですが カメラが壁にめり込んだ際にカメラからプレイヤーまでの オブジェクトの一部を透過する方法などはあるでしょうか?
あるよ
そういやコナミカメラって同人ゲーとかでも採用すると 特許侵害で怒られたりするんかね?
さあ
SeleneとかLuna公開してた人のサイトなくなっとる
60 :
デフォルトの名無しさん :2012/07/21(土) 07:11:52.13
まだDxLibがある 問題ない
問題ないよね
確かに問題ないね
DirectX9で、ポイントスプライト機能を使い、概ねうまくいっているのですが、一つ問題があります。 ウィンドウサイズをユーザーが動的に変更するのに対応するために、 描画の度に射影行列を作り直しており(アスペクト比が変わるため)、 ポイントスプライトの位置やそれ以外のオブジェクトは正常なアスペクト比で描画されるのですが、 ポイントスプライトのテクスチャ(32x32の正方形)の縦横比がウィンドウサイズによって変わってしまいます。 ウィンドウを縦長にするとスプライトテクスチャも縦長になるといった具合です。 なぜこのようなことが起こるのか、心当たりがあればご助言いただきたいです。 ウィンドウサイズ(あるいは射影行列)に依らず、常に正方形で描画されるようにしたいです。
Resetしてないか、バックバッファの扱い方間違ってるんじゃね? ウィンドウサイズ変ってもバックバッファのサイズは変らんよ。
65 :
63 :2012/07/23(月) 07:40:49.57
>>64 ありがとうございます。
おっしゃる通り、バックバッファのサイズは変わってないはずですし、
ポイントスプライト以外の描画は正常に行われているのも、バックバッファの扱いに問題がないことを裏付けていると思います。
Resetというのはデバイスロストのときにするやつでしょうか?
今回はデバイスロスト対策無視でResetが要求されるときの処理を書いていません。
ウィンドウサイズが変わっただけではデバイスロストは起こらず、Resetが要求されることもないと思っていますが、
おっしゃるResetというのは起動時に一度要求されるResetのことでしょうか?
(DXUTでは起動時、最初に一度だけReset用のコールバック関数が呼ばれるのを経験しています(今回はDXUTではありません))
バックバッファのサイズを変更していないのに、ウインドウサイズのみでアスペクト比を出したら、 比率が狂うをいうのは理解しているのか?
うん
どや顔で自分が間違ってないって言うのはどうかと思う・・・
ウインドウとバックバッファの比率を合わせなければ、 バックバッファに対して正方形に描画されるものがゆがむのは当たり前だろう。 馬鹿か?
70 :
63 :2012/07/24(火) 01:18:39.94
理解しました・・・ Presentの転送で対応することにします。 失礼いたしましたm(_ _)m
ちょっとお尋ねします。 DirectSoundで、特定の出力デバイス向けに再生しているとき、 再生中にその出力デバイスがなくなる(USBスピーカを抜いた) ようなケースを想定すると、どういう対処をしたらいいんでしょうか?
自分がどういう挙動をさせたいかによるのに、 自分のやることすら他人に決めてもらおうとするゆとり加減がひどい。
73 :
71 :2012/07/24(火) 13:14:44.92
>>72 そうですよね
実は外部ライブラリを使ってるだけで、DirectXそのものはまった無知で。
ただ、上記のケースで、完全にフリーズしてしまうみたいなので。
で、何か方法があって、かつ、自分でも対処できそうなら、
ライブラリのソースを一部修正しようかなと思ったもので。
思うに、出力デバイスの構成が変わると、何かWindowsから
メッセージが飛んできて、それで出力を停止すべきなのに、
ライブラリがそれをやってないのかなと...
完全にフリーズとは、ハングアップやブルースクリーンのことを指すが、 出力されたコードやエラーログは確認したのか?
OSがタイムアウト待ちみたいになってるんじゃないの 対処できるのかな?
76 :
73 :2012/07/24(火) 14:28:03.25
フリーズっていう言葉が不適切でしたか? 正確に言うと、ライブラリがフリーズするって感じです。 再生停止関数を実行すると制御が返ってこず、 アプリケーションがフリーズしてしまいます。 何もしないでおくと、アプリ終了時にライブラリの解放に 失敗して、その時点でアプリがフリーズします。 再生前であれば、出力デバイスを列挙して、再生可能かどうか 判断できるんですが、再生中に出力デバイスがなくなると・・・
Stopを別スレッドでやって、タイムアウトしたら切り離す。
>>77 ありがとうございます。
本体を守るには、やっぱ別スレッドで処理したほうがいいですか。
オーディオ関連をすべてまとめて別スレッドにしてみます。
やーだお
テクスチャの分割コピーする時にLockして直接書き込むのと レンダリングターゲットを指定して、テクスチャに描画の方法と どちらのほうが効率的ですかね?
気になったら、まず作って比べるのが基本。 他人に聞くのは結果が納得できないときで十分だ。
>>82 作って、分からなかったから聞いたんだが。
レンダリングの方法はサーフェス管理がメンドイ。
忘れると即リークだし。
Lockの方は量が増えたら速度が落ちるんだろうか、あと読みずれえ、位。
どちらも最初一回しかよばないから速度面は割と問題ではない。
個人的にはLockで良いんかなって思ったけど(すげえ読み難いけど、リークの心配は無い)
よく分からなくなってきたからどっちが良いんだろうかということで
ベテラン多そうな此処で聞いたんだけど。
あれほんと面倒だよね。 ちゃんと作ってほしい。
>>83 だから、結果のどこに納得がいかなかったのかはっきりさせないと、答えようが無いんだよ。
>>85 クラス化するつもり、と言うか、単体での読み込み描画をクラス化して作ってあるから
それに追加する形で作りたいと思ってる。
んで、追加の際に、可読性ダウンによるミスの誘発がメモリリークのリスクや
HRESULTのチェックによるソースコードの肥大化等と比べて天秤にかけるほど大きいかどうか。
(LockRectの方がメモリを使わないと思うが可読性が低い(ビットが違う同士だと凄い面倒)、
サーフェスの方が可読性は高くなると思うが、リークのリスクや、ソースコードの肥大化がある
それとリークした時、COMのリーク調べるのめんどくさい。_CrtSetDbgFlag使えないし)
単純にどっちも決定打が無いから迷ってる。
>>86 COM用のスマートポインタがあるけど使用を検討したことある?
あれすごく便利だよ。
LockRectは、あらかじめフォーマットを合わせておけよ。 なんでLockRectの段階で変換するんだよ。 それぞれに解決方法があり、比較する段階にすら至っていない。 まずは比較以前にコードを見直せ。
でも、そういうの考慮しながら設計するのって楽しいよね。 うまく作れたときは快感w
>>87 マジで!?知らんかった、何それ!?
で、調べた。
Attach()使わなきゃいけないと言う制約を除けば凄い便利そう(使ってないけど)
>>88 そうだな。
まあ、当然あわせてるんだけどな。
(あくまで、あわせる可能性の話だから()で括ったんだが)
結局それでもめんどくさい事には変わらないけど。
関数呼び出し→分割数、分割割合取得→大元テクスチャ作成→desc or info で縦横取得
→LockedRect作成 →コピー元テクスチャ作成→ 最初に取得したのからx,y分を割り出す→2重ループでコピー
これをコピー元から枚数分繰り返す→大元テクスチャ開放
って流れだし。
ぶっちゃけ、結果的にどっちも変わらん気がするんだが。
こんなレベルなのに凄い偉そう!w
分割するのに大本のテクスチャの作成が意味不明なんだが。 使わないテクスチャをわざわざ生成しているのか?
>>92 じゃ、メモリに画像読み込んで其処から作るべき?
もしくはテクスチャをイメージデータという意味で使っているのか? やっていることに無駄が多すぎて意図が分からん。
>>93 わざわざテクスチャという形にするだけ無駄。
そもそもテクスチャを分割する理由すら怪しく思えてきた。
さすがに無いと思うが、もしキャラパターンの切り替えを、 1パターンに付き1テクスチャとかやっているのなら、ただの阿呆だぞ。
>>95 ごめんよく分からない
何にすりゃあ良いんだ?
>>96 一枚のでかいので一編に読み込みたいけど、
テクスチャの合成とかしたいから、分割して保持しておきたいって所。
(貼り付ける時ポリゴンのサイズとか変えたいから
UVだけでポリゴン分割しただけだとめんどくさい。)
>>97 それはUV指定でやるべきだと思うんだけど?
>>98 ポリゴンのサイズを変えるのに、分割しないと面倒くさくなる意味が分からない。
DirectShowでの質問なのですが、IVideoWindowインターフェースより 全画面表示にすることは出来るのですが、その逆の全画面から Windowに表示することができません。 (試したこと) 1.put_FullScreenMode(OAFALSE); 2.上記1をした後にコントロールへ表示するコードを実行 (put_Owner , put_WindowStyle , put_Visible SetWindowPositionを順次実行) どの様にすれば再度コントロールへの描画が始まるのでしょうか? よろしくおねがいします。
イメージを受け取って、自分の作ったウインドウに直接描いた方が、 余計なトラブルが無くて楽だよ。
>>100 2は1より先にやっておくべきといか出来ればフルスクリーンにする前に
1度設定すればwindowのサイズ変更とかなければ必要ない
ちゃんと親windowのハンドル渡して置けばput_FullScreenModeだけで
他は必要ないはず
ただキーやマウス使って切り替えてる場合messagedrainとかも必要かも
>>99 あ、そうか、ポリゴン拡大すれば良いのか
でもまあ、合成後使い終わったテクスチャの削除したいし
104 :
デフォルトの名無しさん :2012/07/31(火) 16:49:21.63
まあね
コラボ商品は肉まんだけか。あとラベル貼り替えただけだよね こういう2chに貼り付ける宣伝って効果あるんだろうか…
肉まんのデザインやばいだろ
OpenGLとDirectXだとどちらが初心者向き?
>>108 DirectXだね。
D3DXっていう便利関数があるのが大きい。
開発者も多くて、ネットに情報も豊富。
このスレにも猛者たちがいるからねw
うほっ
だがD3DXは消えゆく運命
>>112 おお、球面調和関数がライブラリでサポートされるのか!
これなら気軽に使えるね!
ほっほっ
XNA系をこっちに統合してるって事は やっぱりXNA消えるのか
残った部分でD3DXが必要なのはHLSLのコンパイラ部分のみ。
そうですか。
俺もMMD作れるようになりてー
Direct3D11です。
あの、テクスチャが白味懸かってしまうのですが。
0.0fと1.0fのみで構成された頂点座標を、拡大行列を使って、xとyをそれぞれ元画像の幅と高さに設定して拡大しています。
正射影です。
以下は元画像をビューワ(IrfanView)で開いたところと、実際の描画結果です。
ttp://2ch.at/s/20mai00561134.png ピクセルシェーダでは特になにもしていません。テクスチャをポイントサンプリングでそのままreturnしています。
問題があると考えられるのはどういった部分でしょうか?
今まで動いていたのですがPCを買い替えたら今まで動いていたコードが動かなくなってしまいました。 四角形を表示するコードです。テクスチャは張れるのですがテクスチャなしだと何も表示されません。 分かる方いらっしゃいませんか。 void fillRect(int x,int y,int w,int h) { g_pD3DDevice->SetTexture(0, NULL); g_pD3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,TRUE); g_pD3DDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA); g_pD3DDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA); CUSTOMVERTEX vertices[] = { { (float)(x), (float)(y), 0.0f, 0.0f, D3DCOLOR_ARGB(RectAlpha,RectRGB[0][0],RectRGB[0][1],RectRGB[0][2]), }, { (float)(x+w),(float)(y), 0.0f, 0.0f, D3DCOLOR_ARGB(RectAlpha,RectRGB[1][0],RectRGB[1][1],RectRGB[1][2]), }, { (float)(x),(float)(y+h), 0.0f, 0.0f,D3DCOLOR_ARGB(RectAlpha,RectRGB[2][0],RectRGB[2][1],RectRGB[2][2]) , }, { (float)(x+w),(float)(y+h), 0.0f, 0.0f, D3DCOLOR_ARGB(RectAlpha,RectRGB[3][0],RectRGB[3][1],RectRGB[3][2]), }, }; g_pD3DDevice->SetFVF( D3DFVF_CUSTOMVERTEX ); g_pD3DDevice->DrawPrimitiveUP( D3DPT_TRIANGLESTRIP,2,vertices,sizeof(CUSTOMVERTEX) ); }
>>122 PIXでテクスチャを確認して観ましたら、テクスチャ自体は確かに元画像よりは明かったです。
しかし、描画結果よりは白味が薄かった(つまり暗い)です。
読み込むときと描画するときの両方に手違いが起こっているということでしょうか。
サイズ変更で問題が出るのなら、正規化してないだけだろう。
>>124 サイズ変更で色あいに問題がでるのですか?ちょっとかんがえにくいのですが…
サイズ変更すると白くなるって話じゃないのか 元のテクスチャを真っ黒にしたらグレーになんのかね 白い板にブレンドしてるとかか
かつての「視聴率王」も今は昔――フジテレビに異変が起きている。
2004年から7年間、年間視聴率3冠王に君臨していたが、昨年、日本テレビにその座を奪われたのに始まり、
オダギリジョーが主演した今年4月期のドラマ「家族のうた」は、視聴率3%台で打ち切り。
さらに4〜6月期の平均視聴率はテレビ朝日にも抜かれ、3位に。7月には「3冠王を逃したため」(フジテレビ関係者)、
局長やプロデューサーなどが大幅に入れ替わるテコ入れがなされたが、"迷走"は止まらない。
その一例が情報番組「とくダネ!」だという。
言わずと知れた小倉智昭がメーンキャスターを務める朝の看板番組だ。
同局の人気アナ、ナカミーこと中野美奈子の退社に伴い、
7月からキャスターに抜擢されたのがタレントの菊川怜だったが、その評判が芳しくない。
「同じ時間帯では、日テレの『スッキリ!!』と『とくダネ!』が視聴率を競い、これまではフジが優勢でした。
週5回の放送で負け越しが続くなんてことはほぼなかったのですが、菊川に代わった翌週から、1勝4敗が2週続きました。
扱うニュースなどにもよるので一概にキャスターの責任にはできませんが、菊川が原因だという声がもっぱらです」(番組関係者)
一方、菊川の起用と同時期にあった人事異動が業界で臆測を呼んでいる。情報制作局長や情報制作センター室長、
番組のチーフプロデューサーらが軒並み交代したのだ。テレビ局では、長く続いた番組を終わらせたり、
「大物」キャスターやタレントを降板させたりする際に、局側も相応の立場の人間が異動するのが慣例とされている。
「大物の降板などと同時に異動する局もあるが、フジは必ずしもそうではない。
今度の人事異動は、小倉さんの降板をにらんだもの、という声があります」(同)
もしかして、小倉さん、最後の夏!?
▽週刊朝日
http://www.wa-dan.com/article/2012/07/post-968.php 2012年8月19日フジテレビ抗議デモinお台場 告知動画
http://www.nicovideo.jp/watch/sm18497988 8月19日 フジデモ一周年 お台場フジテレビ抗議デモ 告知動画
http://www.nicovideo.jp/watch/sm18468199 【告知】8・19フジデモ一周年inお台場
http://www.nicovideo.jp/watch/sm18413040
>>125 お前の考えなんてどうでもいいんだよ。
どうせ分かってないんだから、考えるだけ無駄。
とにかく正規化しろ。
>>126 ためしに元の頂点座標を画像サイズに合わせて、拡大行列を使わないようにしてみましたが、問題は解決しませんでした。
>>128 なにを正規化すればよいのでしょうか?
すみません、自決しました。 DXGI_SWAP_CHAIN_DESC::BufferDesc::Formatを DXGI_FORMAT_B8G8R8A8_UNORM_SRGBにしていたのですが DXGI_FORMAT_B8G8R8A8_UNORMにしてみたらなんと正しく描画されました。 お騒がせして本当に申し訳ありません。
DirectXは難しいね・・・
難しいですね。サイズ変更とか全く関係なかったった
自決したんだ
ワロタw
135 :
デフォルトの名無しさん :2012/08/06(月) 20:57:39.23
へえ
136 :
デフォルトの名無しさん :2012/08/06(月) 23:01:56.24
ぬう
DX初心者がCompute Shaderで自由に演算できるまで どれくらいの工程が必要?
わからない
しらない
140 :
デフォルトの名無しさん :2012/08/07(火) 16:21:26.03
馬鹿には無理
情弱しかいないので無理です。
そもそも自由に演算など出来ない。
143 :
デフォルトの名無しさん :2012/08/07(火) 17:52:49.09
知らないならレスしないで下さい。ウザイだけです。
144 :
デフォルトの名無しさん :2012/08/07(火) 19:16:18.62
シングルスレッドでゲーム進行中に裏でテクスチャの動的ロードしたいのですが、 D3DXCreateTextureFrom○○○ を使うとかなりの時間(数十ミリ秒)が掛かって しまいます。 このような場合は、IDirect3DDevice9::CreateTexture で空のテクスチャを作成し、 ロックして書き込むという方法が良いのでしょうか?
シングルスレッドで裏とかできんだろ
146 :
デフォルトの名無しさん :2012/08/07(火) 23:35:04.93
知らないならレスしないで下さい。ウザイだけです。
やーだお
150 :
デフォルトの名無しさん :2012/08/08(水) 03:30:51.39
>>144 ヴァカだろお前
シングルスレッドの裏って何?
意味不明なこと言わなくなるまでゲーム開発やめれば?
質問です。 サンプラーから得られるデータを、ピクセルシェーダーみたいに記述したいのですが、 テクスチャフィルタリングの部分って、プログラマブルに記述できないのでしょうか。
152 :
151 :2012/08/08(水) 06:06:27.91
あ、ピクセルシェーダーで必要な計算を行って対応するuvを算出してから、 そのuvを使ってtex2Dを呼べばいいのか。
韓国人女性の半数がセクハラ暴行を経験…4割が顔見知り=韓国
韓国の就職ポータルサイト「サラムイン」は12日、同国の成人女性532人を対象に実施した、セクハラ性的暴力に関する調査結果を発表した。
半数を超える50.6%が「セクハラ、性暴行など性犯罪の被害に遭った経験がある」と答え、うち半数近くが「加害者は面識のある人物」と答えた。
複数の韓国メディアが報じた。
被害を受けた場所は、「道端」がもっとも多い29.4%(複数回答)で、交通機関(27.5%)、学校や塾、
事務室(22.7%)、飲み屋(15.6%)、静かな路地(14.5%)、階段やエレベーター(10.4%)だった。
多くの女性が性犯罪の被害を受けていたが、10人中6人(62.8%)は犯罪への対応方法が分からなかったり、不利益を恐れ、積極的な対応ができずにいた。
http://news.searchina.ne.jp/disp.cgi?y=2012&d=0416&f=national_0416_144.shtml
154 :
デフォルトの名無しさん :2012/08/09(木) 03:01:15.77
実行してみたがよくわからんのでどうでもいいや。 コードにバグあるんじゃね?
さあ
>>154 再現するかと問われれば再現した
3個でも4個でも同じInlineObjectが連続すると1個になるっぽいから仕様かも
暇だから俺も試してみたけど連続してなければ表示できるんだ 仕様って言うのかな・・・?
2か月反応がない様子から考えて、新しくフィードバックを作らないと中の人に見てもらえないと思う
160 :
デフォルトの名無しさん :2012/08/09(木) 19:40:22.40
>>157 >>158 再現したのか
でも、MSの方では再現しないと言われた
なんでなんだろう…
>>159 作り直しかのう…
VS2012で試してみて問題が出たら再度アクティブにしろと言われたら、言われた通りやったのに…
162 :
121 :2012/08/11(土) 21:15:36.63
頂点フォーマットが無茶苦茶 ビューの設定もされていない 話にならない
164 :
デフォルトの名無しさん :2012/08/12(日) 04:37:01.05
DirectWriteで改行を適当な文字で表示しようとしたができんかった
165 :
デフォルトの名無しさん :2012/08/12(日) 05:38:15.98
>>162 基礎もやらずに質問してるのか
低脳の中でも最底辺だな
>>164 それDirectWrite以前の話だから
167 :
デフォルトの名無しさん :2012/08/12(日) 09:02:01.22
>>166 いや、そうじゃない
IDWriteTextLayout.SetInlineObject()で\nがある個所にインラインオブジェクトを埋め込んでも表示されないんだよ
タブやスペースはインラインオブジェクトを指定すれば置き換えることができるのに
DirectX11.1のドキュメントってどこにある?
検索エンジンにキーワードを入れることすら出来ない人間が何をしようと言うんだ?
171 :
121 :2012/08/18(土) 21:58:40.34
頂点データのx,y,zの隣にある良くわからないhって 値を0から1にしたら表示できました。
同次座標系
173 :
121 :2012/08/18(土) 23:27:22.63
>>172 ありがとうございます。
調べたら出てきました。
いや単なるheightだろ おまえらアホか
175 :
174 :2012/08/19(日) 03:23:11.40
いやソース見てなかった アホ言ってすまんこ
現在DirectX11.1が使用できるドライバ&ハードってある?
各社の最新のシリーズは対応してたと思う。
DX9のSetVertexShaderConstantFとSetVertexShaderConstantF はデフォルト値が決まってたりしますか? セットし忘れていた時に、HLSL側のfloatが0とfloat4x4では単位行列 として値に入ってたのですが。
↑あ、どうやら0っぽいですね。勘違いしてました。 ただ、ピクセル側は未定義な動きっぽいです。
>>181 ありがとうございます。がんばって読んでみます。
メッシュみたいな境界線がハッキリしたオブジェクトじゃなくて 光の玉みたいなポゥって小さく光ってる明るくて丸いオブジェクトを出したいんですが 市販のゲームがどうやってそういう光の玉のようなオブジェを実現してるかがサッパリ分かりません 説明が下手で申し訳ありませんが、こういったオブジェクトを実装するにはどうしたら良いか分かりませんか?
パーティクルの事?
パーティクルのような挙動をさせようと思っています。 ビルボードとメッシュの両方を試したのですが、両方とも境目がクッキリ付いてるのがイメージと違って もっとこう、ポワっとした光みたいな玉を作りたいのですが・・・
>>185 ボワッとしたテクスチャ貼ってアルファブレンドするだけ。
DirectX9でゲーム作ってたときは Ctrl+Alt+Delとかで簡単にデバイスロストさせることができたので デバイスロストしたときの処理の検証がしやすかったんだが 近頃WIN7機に代えてからCtrl+Alt+Delところか解像度変更してもデバイスロストしなくなった。 ググったらドライバモデルが新しくなってウンヌンとかあったが 意図的に、簡単に、デバイスロストを発生させる方法はありませんか
>>185 PNGみたいにアルファ値が指定できる画像で
絵の周囲に半透明なポワっとしたのを描いて
ビルボードで表示すればよくね?
>>187 フルスクリーンでしなかったっけ?
バグっぽいシェーダープログラムを別に走らせてドライバ停止させるとかどうだろうか。なんか別のエラーになりそうな気もするが。
お聞きしたいのですが 現在windows7でDirectX 11なのですがDirectX 9をインストールしてしまいました。 DirectX 11が入っているのにDirectX 9を入れることによって不具合とか発生しますか? インストール中に初期化していますと出ていました。
うん
>>187 ぜんぜん自信ないけどUACの暗転はいかがでしょう?
>>186 ,188
テクスチャに画像を直で貼って出来たつもりになってました
今から試してみます。ありがとうございました
190です
>>191 それは本当ですか?
自分のパソコンのDirectXを調べると11のままなのですが
表示はそのままで中身はDirectX 9になっているということですか?
ちくしょォォォォォォバグが見つからねェェェェェェェェ 優しく潰してやるから早よ出てこいやァァァァァjfkdぁ;fjくぃおjfうぇl;
バグが見つからないと言うことは、問題がないと言うことだろう。
バグが見つかってホっとしたという経験は自分にもある
198 :
デフォルトの名無しさん :2012/08/27(月) 02:54:46.94
>>189 192
フルスクリーンでもUAC暗転でもデバイスロストが発生しないぽ。
出ないとそれはそれでさみしいものですな。
もうデバイスロスト対応しないでいいやめんどくせー
なんて贅沢なw しかし、デバロス対策はほんと面倒だったね。 スマートなクラス設計の足枷になってた。 早よDX11に移行しよっと。
DirectShowスレが無いのでこちらで質問させてください。 現在C#を使用してWMVのエンコードを行っています。 そこで音声のプロファイルを作成しているのですが上手くいきません。 症状としては以下です。 SDKを参考にプロファイルをC#で作成。 できたプロファイルをプロファイルエディタで作成したものと、SaveProfile で保存したファイルを見比べてみる。 中身(見える部分)は一緒だが、プロファイルエディタでは1バイト毎に 00(ヌル)が入っているが、SaveProfileでは入っていない。 なぜこのようになってしまうのか、、、C#のマーシャリング時に00を消して いるのかもしれませんが・・・不明です。。。 どなたか、この問題を解決された方おられませんか?
素直にC++でやれ
C#とかスレチだわぁ
204 :
201 :2012/09/01(土) 15:27:14.15
>>202 >>203 DirectShowのスレが無いのでDirectXスレに質問しました。。。
申し訳ありません。とりあえず、あれから試行錯誤して
無理やりPRXファイルを作成して読み込ませると上手く
できましたが、、、このコードを実行(実際に値を使わなくても)
すると上手く取れなくなります。MediaControl.Run();の部分で・・・
以下にソースだけ貼らせていただきます。
どなたか、ここが駄目だってわかるかたおられますか?
http://ideone.com/ET6FN
いないから諦めたほうがいい C#でDirectX使うなら C++に精通してておまけにC#もつかえて すべてにおいて一人で解決できるやつ向けって感じ で、そういう奴がいて、かつ君がやってるようなことをやってた人 JKこんなところにいるわけないwww
俺それに該当するけど、ずうずうしいやつには答える気にはならないんだな。
IWMStreamConfigで使用可能なフォーマットの列挙 IWMMediaPropsから使いたいフォーマットに一番近いものを見つけてそれを利用する リストに無いパラメータを設定しても動かない
208 :
201 :2012/09/02(日) 10:05:27.24
>>207 一応ソースには書いてないのですが、使用出来るフォーマットの数を列挙してその中から使っています。
実際に生成したIWMStreamConfigを返さなくても、201で表したコードを実行するだけで
エラーになってしまいます。
すいません自己解決しました
210 :
201 :2012/09/03(月) 09:10:46.99
自己解決されてしまった・・・。 もう少しがんばって、駄目なら他当たりますorz
フェイク自己解決ワロタw
212 :
201 :2012/09/05(水) 23:33:58.18
自己解決しますた(^^v
213 :
デフォルトの名無しさん :2012/09/06(木) 18:32:20.66
死ねバカwwwwwwwwwwwwwwwwwwwwwwww 死ねwwwwwwwwwwwwwwwwwwwwwwww 死ねwwwwwwwwwwwwwwwwwwwwwwww 死ねwwwwwwwwwwwwwwwwwwwwwwww ゴミwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww ゴミゴミゴミwwwwwwwwwwwwゴミゴミゴミwwwwwwwwwwww ゴミwwwwwwwwwwwwゴミゴミゴミwwwwwwwwwwwwwwwwww 死ねゴミwwwwwwwwwwwwwwwwwwwwwwwwコラwwwwwwwwwwww 死ねコラゴミwwwwwwwwwwwwwwwwww
w
215 :
デフォルトの名無しさん :2012/09/09(日) 19:31:18.36
217 :
216 :2012/09/10(月) 04:31:00.88
自己解決した むしろ俺が何を言っているかわからねー状態だったというか、上記URL関連の事を一切やらなくても問題なく動いていた 深夜に実装やってるとロクな事がない事がわかった
/*********************************************************************************************************** CCollision::Main関数 内 容:レイを飛ばし床との当たり判定をする関数 引 数:CONST LPMESHTABLE pStagePartsMesh[ STAGE_PARTS_NUM ]...LPMESHTABLE*型の配列 メッシュ D3DXVECTOR3 pSpos[ STAGE_PARTS_NUM ] ...常に動く各ステージの座標 D3DXVECTOR3* Pos ...常に動き続けるプレイヤーの座標(レイの始点となるもの) 戻り値:なし ***********************************************************************************************************/ VOID CCollision::Main( CONST LPMESHTABLE pStagePartsMesh[ STAGE_PARTS_NUM ], D3DXVECTOR3 pSpos[ STAGE_PARTS_NUM ], D3DXVECTOR3* Pos ) { D3DXVECTOR3 start, end, endray; //ローカル変数にコピー D3DXMATRIX world; //単位行列 D3DXMatrixIdentity( &world ); //初期化 FLOAT ray = CLEAR_GRAVITY;//D3DXIntersect(Ray関数)のFLOATに使う浮動小数点型の変数'(CLEAR_GRAVITY = 0.0F) INT count = 0; //(STAGE_PARTS_NUMは400) //Rayの始点である位置,回転をMATRIX型ローカル変数に適応 start = *Pos; end = D3DXVECTOR3( 0, -1.0F, 0 ); //Rayの方向を決める(向きのベクトルとして この場合は真下) D3DXMatrixRotationZ( &world, 0 ); //回転 D3DXVec3TransformCoord( &end, &end, &world );←何をやっているかわからない end += start;
//レイが動いているステージメッシュ400個と当たっているかどうかを確認する for( int i = 0; i < STAGE_PARTS_NUM; i++ ) { //Rayを当てるメッシュが動いていたり回転している場合でも逆行列を用い正しくRayを当てる D3DXMatrixTranslation( &world, pSpos[ i ].x, pSpos[ i ].y, pSpos[ i ].z ); D3DXMatrixInverse( &world, NULL, &world ); ←何をやっているかわからない D3DXVec3TransformCoord( &start, &start, &world );←何をやっているかわからない D3DXVec3TransformCoord( &end, &end, &world );←何をやっているかわからない endray = end - start;//終点-始点 //IntersectRay関数 D3DXIntersect( ( *pStagePartsMesh )[ i ] .m_pMesh , Pos, &endray, NULL, NULL, NULL, NULL, &ray, NULL, NULL ); if( ray > COLLISION_ONE )//COLLISION_ONE は 0.03F {//レイに当たるメッシュがあれば重力を代入しbreakでぬける m_Gravite = -0.01F; break; } else if( ray == 0.0F )//メッシュとあたっていない場合 { count++; m_Gravite = CLEAR_GRAVITY; if( count == 400 )//レイをとばしたさきメッシュが1つもあたらなかった場合 落とし穴の上にいると判断し重力を代入 { m_Gravite = -0.01F } } } ( *Pos ).y += m_Gravite;//重力判定 }
上にかいてありますが、動いている400個のステージとレイを用いrayの値を正確に獲得したいのですが 真下にメッシュがある場合でもrayが0.0Fとメッシュがない状態と判定されます どなたか詳しい人打開策をご教授おねがいします これらの関数の意味もぐぐってみたもののよく分かりません 分かりやすく教えられる人はレスお願いします D3DXMatrixInverse D3DXVec3TransformCoord
>>220 高校の数Cだったと思うけど
D3DXMatrixInverseは逆数
D3DXVec3TransformCoordは掛け算だ
その関数はどこから持ってきたんだ? 意味が分からないってことは、自分で書いたんじゃないよね? だったら、書いた人に聞けばいいじゃないか。 とりあえず、D3DXIntersectの引数のPosは&startの間違いじゃないの? end,endrayの計算が恐ろしく無駄だけど、計算上は問題ないかな。
223 :
220 :2012/09/11(火) 16:00:49.45
>>221 逆数とか掛け算とかはぐぐったらでてくるんだけど
具体的にどういうことをやっているのか やるための関数なのか分からないです
>>222 そのとうりです これは書籍にのっていたソースを参考にうったものなので
分からないところがあっても聞く「人」はいないです
Posは&startの間違いでしたすいません
world座標系(この場合Spos[ i ]だけ平行移動する座標系)の逆行列をかけて、 恐らくworld座標系にあるstartとendを、メッシュ(これもworld座標系に無いとダメ)の座標系に戻した後、 endrayという(変な名前の)方向ベクトルを求めて衝突判定している。 ray(という変な名前)のアドレスを引数で与えている場所は、あくまで衝突があった場合に、 衝突箇所とstartとの間の距離が入る場所なので、まずD3DXIntersectの4番目の引数でヒットテストすべき。 「とうり」は「とおり」 DX系の関数を勉強したいなら、DirectXのヘルプを読むのが一番。
正確に値が返されもしないのにhitに値が入るはずねーだろ・・・ これローカルだぜしかも
Posのy座標が床のメッシュよりも数段浮いてたらrayに距離が入るけれど、
>>220 は入らないっていいたいんだろ。
>>真下にメッシュあったら0.0であってるよ
>>rayに入るのは距離なんだから
言ってること矛盾してる。
230 :
デフォルトの名無しさん :2012/09/14(金) 01:22:40.44
>>229 それ「過去のバージョン」の9.0のドキュメントなんだから、9.0cとかじゃなくて9.0の
SDK見ないと駄目だろう。
ちなみにドキュメントには2002年って書いてある。
231 :
デフォルトの名無しさん :2012/09/20(木) 01:44:29.85
質問させてください。 60フレームで動くアプリをDirectX11で作っています。 SDK June 2010 OS Windows7 CPU Intel Core i7 GPU GTX260 メインループを完成させたところで、 試しにDrawIndexedで矩形を1つ(4頂点6インデックス)描画してみたのですが、 しばらく経つと1回あたりのDrawIndexedの呼び出し時間が長くなっていきます。 Feature Levelは10_0になっています。 スワップチェインの設定など色々試したのですが、上手くいきません。 原因が分からずに困っています。 よろしくお願いします。 if((1.0f/60.0f) <= ((float)(counter.QuadPart - prevCounter.QuadPart)/ (float)(freq.QuadPart))) { pDeviceContext->ClearRenderTargetView() pDeviceContext->DrawIndexed(6, 0, 0); pSwapChain->Present(1, 0); }
すみません。 自己解決しました。
233 :
231 :2012/09/20(木) 02:19:52.63
補足して掲載しておきます。 60フレームで動くアプリをDirectX11で作っています。 SDK June 2010 OS Windows7 CPU Intel Core i7 GPU GTX260 メインループを完成させたところで、 試しにDrawIndexedで矩形を1つ(4頂点6インデックス)描画してみたのですが、 しばらく経つと1回あたりのDrawIndexedの呼び出し時間が長くなっていきます。 Feature Levelは10_0になっています。 スワップチェインの設定など色々試したのですが、上手くいきません。 原因が分からずに困っています。 よろしくお願いします。 QueryPerformanceCounter(&counter); if((1.0f/60.0f) <= ((float)(counter.QuadPart - prevCounter.QuadPart)/ (float)(freq.QuadPart))) { prevCounter = counter; pDeviceContext->ClearRenderTargetView() // ここで頂点設定 pDeviceContext->DrawIndexed(6, 0, 0); pSwapChain->Present(1, 0); }
(´・ω・`)…
win32APIのDrawTextでDT_CALCRECTを使ってテキストの表示範囲を取得して テキストの表示位置とかを調整している2DのゲームってUltrabookとかの 高精細液晶搭載機では正常に動かないよね。 正確にいうとWindows7の「テキストやその他の項目の大きさの変更」にて 表示を小(100%)以外の、中(125%)、大(150%)にされると正常に 動かないことに気づいた。 みんなのゲームって中(125%)、大(150%)に対応しているの?
ゲームでわざわざそんなん使わんよ
質問させていただきます。(VC++ 2010) DirectX9を使用しているのですが、D3DXLoadMeshHierarchyFromXを使用せずに Xファイルがアニメーション付かどうか判定する方法はないでしょうか? よろしければ回答お願いいたします。
自分でプログラムを作ってファイルの中を確認すれば分かるだろう。 テンプレートを受け取って、必要ないデータをスキップするだけだ。
>>238 回答ありがとうございます。
やってみます。
テクスチャサイズってテクスチャ切り替えのコストに影響しますか?
翻訳してくれ
だいれくとエックソ
>>245 めんどくせーなぁ・・・
DX11にする段階で統一しとけや。
ちょま…DXUT廃止…だと…!?
>>247 あのGUI、便利だったのにね・・・。
DirectXGUIとかは作らないのかね・・・。
249 :
247 :2012/10/04(木) 00:07:20.92
>>248 GUIもそうですが、何かを作り始めるときのフレームワーク的なものとして使ってたんですよね。
自作しろって言われたらそれまでですが。
まだろくにDirectX10も11.0も使いこなせていないので、大きな変化があるならあるで歓迎というか
早くそれが来ることに越したことはないんですけどね。変化後のスタイルから覚え始めればいいから。
心配なのは俺のノートPC(Llano)はDirectX11.1が動くのだろうかということ…ここでノート新調は痛い…
LlanoどころかTrinityでも11.0止まりのはず
ATLだけでもフリーで提供すればサンプルも遥かに見やすくなるのにな
>>245 win7+vs2012でコンパイルするとリンクエラーで出るので直接Pragmaで指定してSDKのlibを
読み行くことで解決したんだけど
そのあとのカスタムビルドのコマンドラインにある"が何故か全角になってて悩んだ
なんで全角なんだろう・・・・
XAudio2なんですけどclallbackのOnStreamEnd()って全部のバッファを再生し終えたら呼ばれますよね? ストリーミングで、ループ再生をしようと思ってOnStreamEnd()を使ってみたのですがなんか挙動が変だとおもって ブレークポイント掛けてみたところ頻繁にOnStreamEnd()が呼ばれていました。 しかも、バッファが一つ以上残ってるのに呼ばれていました。 何が悪いんでしょうか? 待機用関数のコード乗せようとしたら多過ぎると怒られたのでCallBackだけですすみません。 class StreamCallback : public IXAudio2VoiceCallback { public: StreamCallback() : StreamEndEvent_( CreateEvent( NULL, FALSE, FALSE, NULL ) ),BufferEndEvent_(CreateEvent( NULL, FALSE, FALSE, NULL )){} virtual ~StreamCallback(){ CloseHandle( StreamEndEvent_ );CloseHandle( BufferEndEvent_ ); } public: HANDLE operator()(int flag) const { if(flag==STREAM_END_EV)return StreamEndEvent_; if(flag==BUFFER_END_EV)return BufferEndEvent_; return NULL; } void __stdcall OnStreamEnd(){ SetEvent( StreamEndEvent_ ); } void __stdcall OnBufferEnd(void*){ SetEvent(BufferEndEvent_);} //残りは特に無い無いので略 private: HANDLE StreamEndEvent_,BufferEndEvent_; }; 待機はWaitForMultipleObjects()で待機させてます。 また、ストリーミングは二つのデータを取って交互に入れてます。
何で
>>253 みたいなクズって、質問する前にヘルプぐらい読まないんだろう?
>>254 すみません読んでから来たつもりでしたが、なにか見落としが有りましたでしょうか?
>>254 すみません。解決しました。
ソース見たらフラグにXAUDIO2_END_OF_STREAM入れっぱなしでした、本当に申し訳ありません。
レンダリング ターゲットでggr
>>258 おぉー、ややこしそうだが行けそうだ
ありがとうございます。ありがとうございます。
>>260 まだ時間なくてちゃんと見れてないんだけどこっちの方が仕組みは簡単そうかな。
わかりやすそう。
どっちも勉強になりそうだしとりあえず両方やってみたいと思います。
ありがとうございました。
262 :
デフォルトの名無しさん :2012/10/13(土) 18:11:11.39
DirectXによるスクリーンショット:www.codeproject.com/Articles/5051/Various-methods-for-capturing-the-screen ここではGetFrontBufferDataをつかってイメージを取得していますが、MSDNでは「非常に低速・パフォーマンスが重要なら使うべきでない」と注記がありました。どうすればスクリーンショットを素早く取得できるでしょうか。
デバイスドライバレベルでどうにかするしか無い。
>>262 バックバッファのデータをシステムメモリに転送すればいい
265 :
デフォルトの名無しさん :2012/10/13(土) 20:30:13.39
>>264 考え方としてはこんな感じでしょうか。bitsの中身が正しくないので明らかな間違いですが。
d3ddev->CreateOffscreenPlainSurface(w, h, D3DFMT_X8R8G8B8, D3DPOOL_SYSTEMMEM, &dest, NULL);
d3ddev->GetBackBuffer(0,0,D3DBACKBUFFER_TYPE_MONO,&render);
d3ddev->GetRenderTargetData(render, dest);
dest->LockRect(&bits, NULL, 0);
スワップチェイン使用してる時は、そっちからバックバッファ取得。 マルチサンプリングなバックバッファの場合はドキュメントに載ってる手順通りダウンサンプリングすること。
267 :
デフォルトの名無しさん :2012/10/13(土) 22:36:17.10
GetRenderTargetDataとStretchRectの説明読んで理解できなかったら死んだ方がいいと思う
270 :
デフォルトの名無しさん :2012/10/14(日) 00:01:13.79
>269
ムービーエンコードライブラリーに画像の配列を渡したいので、lockRectを試しています。
GetRenderTargetDataとStretchRectで調べたところ、chromiumのソースがヒットしました(
ttp://bit.ly/SW4yQA )。コピペで試すと画像は真っ黒。D3DPRESENT_PARAMETERSに問題があるのかしら。
デスクトップのイメージはDirectX経由で取得できないぞ馬鹿
273 :
デフォルトの名無しさん :2012/10/14(日) 10:22:01.87
>271 261に記載されているURLのサンプルでDirectXでデスクトップのスクリーンショットが撮影できることを確認済みです。
そういう態度だから物事を柔軟に見られないんだよ。 答え全部書いただろ。 あとは自分で書いたコードがなにやってるか理解しろ。
サンプルで出来ているなら サンプルのソースで動作を把握して自分の実装に取り入れればいいだろ そんな物人に聞くな
答えはデバイスドライバレベルじゃ無ければ無理だと最初に書いただろう。 それ以外の解答は例外なく頓珍漢なんだよ。 Windowsではフロントサーフェイスのデータを高速に取り出す方法は用意されていない。
>>276 それは違うぞ。
Vista以降は色々できる。
8なんて普通に方法が用意されてるからな。
>Vista以降は色々できる。 Aeroになってからはますます遅くなっている。 いい加減な知ったかはやめろ。 なんでこういうクズって、いい加減な嘘を呼吸をするかのごとく出してくるんだろう?
でも色々出来る内容は明らかに出来ないんだよね。 毎度のことだから分かってるよ。
暇さえあればお前らケンカしてるな
虚言癖の人間ってこんなところで嘘をついていったい何がしたいんだろう?
D3DXSpriteのsettrasformで左右反転すると Drawで指定する座標も一緒に反転してしまうというのは正常ですか?
#include <random> ↑こんなもんあったのか
今までC言語でゲームを作っていましたが、C++と使っての制作に移行しようと考えています。 まだC++の知識は浅いのですが、とりあえず絶対にゲーム作りに必要になるであろうクラスを作ろうと思っています。 それを継承するなりしていろんなゲーム制作に使い回せたらなあと考えているのですが、 これだけは絶対必要だろってクラスは何があるでしょうか?
>>286 特にない
強いて言えば点、球、箱(AABB,OBB)とその衝突判定関数を作っておくと便利かも
ゲームエンジンの使い方を習得するほうがいいと思う
もう初心者も最初から何らかのミドルウェア使って始めるべきかもしれないと 思ったりする
趣味だから自前でやりたいって人も エンジンやミドルウエア触ると勉強になるよ!
DirectX11で640x480とかで2D描画する時 ・頂点をCPUで-1〜+1になるように計算して設定する ・シェーダーにd3dxmatrixortholh等で作った行列渡して計算する どっちがいいのでしょうか? また他に良い方法ありますか?
おっぱい画像をゆらゆら揺らしたいんだけど、どうしたらいいかな
自分が揺れたら相対的におっぱいが揺れてるように見える
天才か!
感動したw
もうこのスレ死んでるね
DirectX自体成長してないしな
早く.net frameworkに取り込んで欲しい
SharpDXがあるじゃない
DirectXの責任者、辞めちゃったらしい。 対するOpenGLはどんどんパワーアップしてるらしい。
このままだとWin用ゲームでもOpenGLでの開発が主流になったり?
シェーダー主体だともう昔みたいに 頻繁にバージョンアップする必要性が薄いからな
OpenGLこの前の更新でやっと形だけは追いついた程度やん 相変わらず開発者置いてきぼりだし
OpenGLの情報量の少なさは今のところDirectXの比じゃないからな 開発環境もVisualStudioに勝るものが出てこない限りWindows環境で 入れ替わる事はないんじゃないか そもそもそんなもん気にするんならミドルウェア使っておいたほうが幸せ
だからまさにその記事の話をしてるんだが
GeForceでやたら性能が低いからWin用ゲームに限ってはDirectXが主流のままだろうな Quadroと合体したらOpenGLが主流になるかも VisualStudioでもOpenGLゲーの開発はできるし
Khronosってハードウェアベンダーと足並みを揃えよう的な 考えのある人いないの? 適当なSDK作ってあと丸投げにするAMDに近いものを感じる
>>308 Khronosグループのお偉いさんにNVIDIAのお偉いさんがいるよ。
GLの性能あげちゃうとQuadroが売れなくなるとかそういう 事情なのかね
個人的に重要なDirect3D9とDirect3D11の違いをまとめてみた。 ・WinXPで開発可能 9○ 11× ・Sprite API 9○ 11× ・Font API 9○ 11× ・Xファイルサポート 9○ 11× ・ComputeShader 9× 11○ ・ハードウェアPCF対応 9× 11○ ・デバイスロスト対策負担 9× 11○ ・ユーザーモード⇔カーネルモードの遷移オーバーヘッド 9× 11○
312 :
311 :2012/10/30(火) 23:08:43.10
DirectX11のパフォーマンスや機能は魅力なので、何とか移行したい。 SpriteとFontは一般的なポリゴンオブジェクトで統一的に実装して対応できる。 痛いのが、Xファイルのサポート打ち切り。 自前のアニメーションプログラムであのパフォーマンスを出せると思えん・・・。
そこだけ旧API使えばいいじゃない
自分もXファイルがネックで11に移行できないクチ。 誰か色々なXファイルの方言に対応しててモーションブレンディングとか コントローラー付のサンプル公開してくれないかな・・・ マルチパスでスキニングとかやるとストリームアウトの有無が大きい。
315 :
311 :2012/10/31(水) 01:19:13.92
>>313 そういう手があるのか。
Win7の場合、Direct3D9Exが使えるからデバロス対策は不要か。
9と11両方使うことによる何らかのオーバーヘッドがなけりゃいいけど・・・。
あと、やっぱ精神衛生上11に統一したいという気持ちがあるなぁw
でも検討してみる。
ありがとう。
>>314 覚悟を決めて作り込むのも、やり甲斐があっていいかも!
>マルチパスでスキニングとかやるとストリームアウトの有無が大きい。
これ、もう少し詳しく教えてほしい。
DirectX11でXファイル処理できるフリーのライブラリとかないのかな そんなにXファイルは嫌われもだったの(´・ω・`)
Xは単に仕様が古臭くなっただけだよ
319 :
311 :2012/10/31(水) 21:15:30.82
>>316 うおー、勉強になった。
シャドウマップでマルチパスするからこれは是非導入したいな。
ありがとう!
>>317-318 Xファイルでなくても、初学者のためにシンプルで標準的なモデルオブジェクトが欲しいなぁ。
できればアニメーションも。
DirectX11からでも使えるように新フォーマットもXからのコンバータまで用意されているのに、 サンプルの確認すらしないんだよなあ。 そろいもそろって本当に馬鹿どもだよなあ。
sdkmeshの事? あのコンバータは使い物にならなかった
自分の無能さを他人のせいにするなよ。
癖がありまくりで好きじゃないけど、今時ので包括的なフォーマットちゅーたらFBXあたりかね VS2012でも表示サポートしてるんだし、DirectXTKみたいにソース提供でメッシュライブラリ出して欲しいね >Xファイルでなくても、初学者のためにシンプルで標準的なモデルオブジェクト 骨や物理特性ま出来上がったアセットやライブラリ作成の参考になるソースコードが沢山あるって点では MMDあたりで良いんじゃないの。あくまで学習用という意味でだけど
FBXはアップデートの度に大幅な仕様変更するのをやめてほしい・・・
>あくまで学習用 これはやっぱ権利関係が面倒だからだよね? MMD界隈は過敏に反応するから。 モデル仕様としてはなにか問題あるの?
おまいらMMD作れるの? すげー
仕事なら作るけど、70時間で作れって言われたら無理かも
いいなー 俺も死ぬまでにはMMD作りたい
FBX SDKのVS2012版まだー?
互換性が高い事を謳ってるFBXなら方言など無いだろうと思って移行してみたらX以上に酷いんだなこれが。
FBX、よく聞くからイイのかと思ったら、そうなのか・・・ 結局どれが一番素直なフォーマットなんだろう?
LWS最高だよ LightWave以外使えない身体にされちゃった
DirectX9.0cで以前に画面処理を作って使い回していましたが、 自環境をマルチディスプレイにした途端、フルスクリーン化で 落ちるようになりました。 調べてみたところ、AeroとDirectXが競合しているようで、 デスクトップコンポジションを無効化すると落ちなくなりました。 ですが、個人的にはフルスクリーンで無効化するのはかっこ悪い と思っております。 何か、マルチディスプレイ時の注意事項(初期化時の引数など)はありますでしょうか? 一部のエロg……PCゲームでできていることを考えると、 方法はある気がするのです…。
デバイスロストとかエラー処理ちゃんとやってないだけだろそれ
336 :
デフォルトの名無しさん :2012/11/05(月) 16:25:51.45
デバイスロストって言いたいだけだろ基地外
2DでZ値を使うことは可能でしょうか? 1)一つのテクスチャに複数画像をパックしたものを頂点バッファを使ってdraw 2)また別のテクスチャをdraw という処理をした時、1)のうち一部を2の上に描画したいのです。 もしご存知でしたらやり方を教えてください。
Direct3D11でテキストを描画する方法として DirectDrawはプログラムの簡便さやパフォーマンスの点で有用でしょうか?
>>338 むしろ「出来んのか?」ってレベルなので、D3D11世代ではDirectWriteを御利用下さい
リアルタイム性が重要なら、テクスチャにフォントをキャッシュする等
アプリケーション固有の実装が依然として必要になります
340 :
338 :2012/11/05(月) 19:40:20.05
>>339 失礼しました!
DirectDrawではなく、DirectWriteのつもりでした!
おっしゃられたような、テクスチャに予めレンダリングしておく手法も検討中なのですが、
簡便さの点でDirectWriteが魅力のように感じたのでお聞きしました。
パフォーマンスに大きな問題がなければDirectWriteを使いたいと思います。
ありがとうございました!
341 :
334 :2012/11/05(月) 22:48:39.99
自己解決しました。 Visual Studioできちんと原因を調査したところ、 デバイスロストのチェックの条件式に漏れがあることが分かりました。 (D3DERR_DEVICELOSTとD3DERR_DEVICENOTRESETをチェックする必要があるのに前者だけしてました)
DirectX9でD3DXを使わないでHLSLを利用する方法がよくわかりません。 特に、HLSLをコンパイルしてシェーダーに設定する部分がさっぱりです。 説明されているwebや書籍へのポインタだけでも結構ですのでご教示ください。
自分でコンパイラを作るつもりなのか。 せいぜいがんばれよ。
>>342 自分でHLSLコンパイラを実装するのでなければ、普通はコマンドラインコンパイラで
事前にコンパイルを済ませておいて、実行時にはコンパイル済みのファイルを使う。
プロジェクトの設定でカスタムビルドを設定しておけば、ビルドと同時にシェーダーの
コンパイルも済ませられる。
345 :
342 :2012/11/06(火) 13:58:41.07
ご回答ありがとうございます。
D3DXを利用する場合、コンパイル済みのHLSLを使用しても、
D3DXSHADER_SKIPVALIDATION フラグを立ててD3DXCreateEffectFromFile で、
D3DXEFFECTを作成して利用するのが、MSDNのサンプルにもあってスタンダードな感じに見えました。
D3DXEFFECTの動作を分解すると、たぶん、
D3DXAssembleShader
↓
CreatePixelShader
↓
SetPixelShader
しているのではないだろうかという予測を立てたのですが、D3DXAssembleShader を
D3DXなしで書く方法がどうにもわかりません。それで
>>342 のような質問になったわけです。
今まで、D3DX込みのDirectX9で書いていたアプリを、windows 8 でも動くようにしたいのですが
もしかして、基本的な考え方が間違っているのでしょうか。ご教示ください。
コンパイル済みのデータからシェーダー生成するだけだろ。 そんなもののサンプルいくらでもあるだろ。 つーかwin8でDX使っても問題ないだろ。
>>346 検索能力が低くてサンプルが見つけられません。何でググればよいでしょう。
win8で、D3DXを使っても問題ないというのは初耳です。
どこをみれば確認できますか?
Win8というより、DirectX11.1でD3DXが切られたんじゃなかったっけ?
>>347 アホなことをのたまう前にプレビュー版を入れて確認しろよ。
頭が悪すぎるぞ。
>>348 いい加減なことを書き込む前にヘルプぐらい読めよ。
どれだけクズなんだよ。
Visual Studio 2012に同梱されるWindows SDKからD3DXが除外されるだけで 別にWindows 8でD3DXを使うことにはなんら制限はないよ 依然としてランタイムのインストールは必要だけど Windows 8に対応させるためにシェーダをプリコンパイルするってのは見当違いだわな
windows 8に、d3dx のランタイムってインストールできるんだ? DirectXエンドユーザーランタイムwebインストーラのシステム要件に windows 8がないから、バージョンで蹴られるんだと思ってた。
>>345 D3DXAssembleShaderはアセンブリコードからバイナリ表現にする関数。
最初からバイナリ表現で扱えばそんなものは必要ない。
WinRTアプリだとD3DX使えないかもね。 でもあれ流行んないと思うから関係ない。
現実的にD3D9を使う場合、D3DXは必須だと思うし 切り離せないものと考えた方が良いと思う。
実行時にシェーダのコンパイルしないなら、必須というほどでもないと思うが。 数学系の関数は自分で用意した方がすっきりするし。
ああ確かにWin8のストアアプリだと話しは別で 実行時にコンパイル&リフレクションAPIが使えない、だったな Visual StudioがHLSLファイルもまとめてプリコンパイルしてくるようになってるけど… ストアアプリ内で動的にシェーダを編集してプレビュー、とかは出来ないことになるね
たぶんD3DXを Effectとかラッピングしたものとしてみてる人と D3DXVECTORみたいな数学関数だけ見てる人で 意見食い違ってるね d3dx11.h には D3DXVECTOR3 とかないね。
XNAMathを使えばいいだけの話
あとテクスチャ系もあるし あんなもんまで自分で作っていたら いつまで経っても何も作れん
2D系の描画をGDI+でテクスチャに転送する部分を実装するついでに、 テクスチャ関連も簡単に実装できるよ。 結局はD3DXじゃ機能不足だらけで、それを埋めるために機能を実装していくと、 実際使うものなんてほとんど残らない。 自分の不勉強に対する言い訳ばかりして、それでいったい何になるんだろう?
DirectXMathに名前代ってなかったっけ
DirectX9からDirectX11への移行まとめ 算術系D3DX〜 → DirectXMath 文字列(D3DXFont) → DirectWrite or スプライト実装 Xファイル系 → 自分で書け デバイスロスト対策 → 不要
9での話なんですが D3DXCreateEffectFromResource関数でリソース化した.fxファイルが読み込めない ***.exeの 0x772c15de でハンドルされていない例外が発生しました: 0xC0000005: 場所 0x00000068 を読み込み中にアクセス違反が発生しました。 このエラーが出るってことは.fxがリソース化できていないってことかな?
ぬるぽ
9での話なんですが アクセス違反が .fxが
DirectX11でプログラムを作ったとします。 これを遊んでもらう場合、相手がWindows7であれば、 エンドユーザーランタイム等、インストールしてもらわくても実行できますか? Windows7ってDirectXの機能が使われているから 最初からインストールされている状態ですよね?
OSが7でもビデオカードがDirectX10までにしか対応してなかったらだめじゃないかな? SandyBridgeのiGPUとかはDirectX10までだし。IvyBridgeはDX11。 dGPUでいうとradeonはHD5000番台から(APUはAもEもCもDX11)、geforceは400番台からDX11対応だっけ。 モバイル版のgeforce4xxにFermiじゃないリネームのやつあったらそれはアウトだけど。
368 :
367 :2012/11/11(日) 00:22:25.87
質問の意図を読み違えてたような気がする。 (ハードウェアがDX11対応してるなら)win7ならランタイムインストールは不要。
369 :
366 :2012/11/11(日) 00:38:21.38
>>367-368 ありがとうございます!
もちろん、GPUはDirectX11対応である必要がありますね。
D3DXを一切使わないと保証できなければダウト 素のままのWindows 7ではD3DXやXAudio2がインストールされていない
DirectX11SDKでDirectX9世代のハードウェアターゲットにできるよ WinRT関係だと結構必須だったりする。
372 :
367 :2012/11/11(日) 10:11:09.71
XNA難民です。 2Dの画像を表示させるコードを教えて下さい
ググれ
Texture2D aaa= pngファイルの読み込み SpriteBatch(aaa, 座標, 深度); これだけ分かれば後はいけそうなんだが、 ここで躓いた\(^o^)/
376 :
366 :2012/11/11(日) 13:34:37.36
>>370 そうなんですか!?
それらを使わないDirectX11プログラムってほとんどないような・・・(汗)
まぁ、エンドユーザーラインタイム、インストールしてもらったほうがいいですね。
ありがとうございました。
>>371 たしか互換性を持たせたんですね。
しかし、パフォーマンス面を考えると、やはりDirectX11デバイスを対象にしたいですね。
編集したらおかしな文章になってた
昔はint型の変数に読み込んだ画像のハンドルを入れて、 DrawImage()みたいな関数で描画できたような気がするんだが、 いったいいつからこんなややこしくなったんだ?
今でもいけるよ
1,pngの画像を読み込む 2,XAMLの中にDrawImage的な何かで書く これのやり方教えてくれ・・・
ツールボックスからImageをドラッグアンドドロップ
DirectX11で描画してて文字列だけDirect2Dに頼りたいんだけど… Direct2DのRenderTarget作って DrawBeginして DrawTextして DrawEndすると DrawEndで画面クリアが起こるらしく黒一色+文字列になって それまでの描画がクリアされちゃうんだけど これ回避できない? 若しくは他にある程度高速/簡単に文字列描画する方法ありませんか
>>377 SharpDXとか言うのドキュメント類が皆無なんだけど
SharpDXってSlimDXみたいに別途ランタイムが要らないのか それなら流行りそうだな
D3DXの代替含め、どんどんややこしくなっていくなぁ・・・ ここいらでバージョンや使える(定番の)ライブラリを整理したいなぁ。
389 :
デフォルトの名無しさん :2012/11/12(月) 23:16:13.80
windows7のPCにdirectx11最新をインストールしたら なんか特定のアプリ起動したりすると 勝手に解像度が最小になって画面が小さくなる。。 これって、どうしたら直るかわかりますか? ここで聞くようなことなのかな。。
DirectX11.1は10.1デバイスじゃなくてもDirect2Dと直接相互運用できるから 是非バックポートしてもらいたいところなんだけど… てゆーかDirect2D絡みは最初からそうなってるべきなんだけど、何が悲しくて 共有サーフェイスとか持ち出してあんな気が狂いそうな手続き踏まされるのかと
SlimDXはスリムデラックスって読むのか…
うそ
スライムデラックスだよな
うん
MatsukoDX
SlimDXは豪華でほっそりとしたライブラリ
開発スタッフがSharpDXに移っちゃったよね
SharpDXなんですがRenderFormにはポリゴンが書けるのに ただのFormには書けません。 RenderFormでは何か特別な処理をしているんでしょうか?
16bit浮動小数点数は、メモリ量とメモリ帯域には効果的だけど、 演算器の利用効率は32bit浮動小数点数は変わらない、という解釈でOK? 昔は16bitの演算器を2つ使って32bit演算とかしてたから、 16bitのほうが効率が良かったけど・・・
>>384 ありがとうございます。
結局変なDLL要求されてこれユーザーにインストールは厳しいかなと思って
GDIにしました計測はまだなのでどこまでパフォーマンス出るか…
変なDLL
DirectXのお勉強をはじめたばかりなのですが、頂点5個を結んで rectangleっぽいものが描画できたのですが これですと線の太さが1ピクセルで細いです。 太い線のrectangleを書くにはどのような方法が あるものでしょうか?
DirectXのバージョンかきなよー
たぶん9だと思います。よくわかってなくてすみません。
ID3DXLine使うといいけど DirectXはGDIみたいに便利な描画APIじゃ無いので 自分で厚みのあるポリゴンとかで線描画するとかが普通なんよ
テスト環境用含めて最低限最新世代は2毎ずつ買うし。 680のほうが安定していて開発は楽だよ。 11.1が何時までたっても対応してくれないと思ったらそういう事か。
DirectX9から11乗り換えたんですが、D3DXがなくなってしまい、座標計算が出来なくなってしまいました。 どうせならということで、別のライブラリに乗り換えようと探しています。 何か良いライブラリはないでしょうか? よろしくお願いします。
DirectXMath
>>406 >ID3DXLine
こんな便利なもんがあったとは・・・
>>406 ありがとうございます。
まだ太さはわかってないですが線は簡単に引けました。
もうちょっと調べてみます。
>>413 おおお
ありがとうございます。できました。
なんという親切なスレ。
やったね!
やりました! 今までがんばってチューニングしてたグラフィックの描画が 超高速になって感動しとります。
>>409 みたいな人はどうやって乗り換えてるんだろうか
サンプル見たらxnamath.hとか使ってるのわかるのに
409です。 >410 おお、こんなのあったんですね! ググって調べてみます。 ありがとうございました! >417 サンプル見てなかったです、反省します。 失礼しました。
D3DXの算術関数くらい、一度は自分で実装してみた方が 理解が深まっていいと思うけどね。 クォータニオンとSH系を除けば、教養レベルの計算だし。 せめてD3DXMatrixInverse、D3DXMatrixReflect、D3DXMatrixRotationAxis、 D3DXMatrixShadow以外はカンニング無しで書けて欲しい。
本気で言ってる?
無視した方がいい。 たぶん、自分の無駄な努力を意味が無いと思いたくない可哀想な人。
自己紹介乙
2Dエロゲー製作のためにマウス入力取得のやりかた勉強してるんだけど キーボード入力やコントローラ入力はボタンを押したら押されたという単純な判定で結果が返されるけど マウス入力の場合は、たとえばSAVE画像内でマウスカーソルを合わせて左クリックしたらセーブ画面がでてくるよね普通のエロゲーとかは セーブ画像外でクリックしても何も反応しないよね。あれってただ単にセーブ画像の座標内でクリックしたら押されましたよ という判定なのかな?
知らねえよ
>>423 まず普通のアプリの作り方を勉強したほうがいい。
基礎を理解していないのが丸わかり。
2Dゲームも普通のアプリと思うんだがw
>>423 があまりにもアホなのはわかるが。
>>423 の言ってるやり方以外にあるの?
俺知らないんだけど
Win32APIやDirectXでもDXUTのボタンとかはメッセージを送ってくれるとこまで面倒見てくれるけど、 ゲーム内にカスタムでボタン作るときって考えたことないなぁ。 2Dだったら、ボタン領域内でクリックされたかどうかの判定でいいんだろうなぁ。 3Dのおしゃれなボタンだったら、D3DXIntersectとか使えばよさそうだね。
実際はその領域でボタンを押す+その領域で離すとボタンイベント起きるね
いいGUIライブラリないものかな 自作すると遅くてかなわん まじめにやろうとすれば更新範囲のみ再描画したりせないかんのだろうな
それはない
作っているゲームでステンシルバッファを使いたくなったので AutoDepthStencilFormat=D3DFMT_D24S8 を指定したいと思うのですが、いまどきどの程度のPC(特にオンボグラフィック)で対応済みなのか見当がつかず困っています。 何かしら目安になるような文献や情報などを教えていただけないでしょうか。 はるか昔のD3DFMT_D16ならほぼ全対応という情報しか知らないものでして。 よろしくお願いいたします。
ええね
すごくええけどライブラリじゃないね 作者名でぐぐったらフォロワー5人のアカウント見つかって困惑 非公開リストに入れたった
れあどめってなんだろうと思ったらreadmeのことなのか
438 :
デフォルトの名無しさん :2012/11/26(月) 13:08:02.92
>>432 SDKに代表的なグラフィックチップのcaps一覧の表が入ってる。
>>439 すごいなぁ・・・
Direct3Dを駆使したGUIの可能性を感じる。
各コントロールのマウスのHit判定はどうやってるの??
レンダターゲットを32bitカラーから128ビットカラーにしたら 処理速度は遅くなりますか?
自分で試せばいいだろう。 何でそんなことすら思いつかないほど馬鹿なんだよ?
444
445 :
デフォルトの名無しさん :2012/11/27(火) 16:30:38.90
馬鹿が吠えてるな
バージョン不一致でコンパイルできんかった 2010でやらないと駄目なのか
448 :
デフォルトの名無しさん :2012/11/27(火) 17:14:12.46
>>443 知らないならレスしないで下さい。ウザいだけです。
そして私が
>>442 なのに
>>448 みたいな別の人があらわれるという。
機能してないですねこのスレ。
ID出さないからやりたい放題になるんだよ
>>441 デスクトップをルートとしてウィンドウ>各種コントロールっていう
感じで階層構造になってるからそのまま木を下っていく感じでチェックしてる。
ただウィンドウは行列を持っていてその行列でウィンドウから見たローカル座標に
マウスを逆変換してからのヒットチェックをしてる感じ。
453 :
441 :2012/11/28(水) 19:45:24.83
>>452 ありがとう。
>階層構造になってるからそのまま木を下っていく感じでチェックしてる。
いわゆるコンポジットパターンかな?
>ただウィンドウは行列を持っていてその行列でウィンドウから見たローカル座標に
>マウスを逆変換してからのヒットチェックをしてる感じ。
なるほど!
マウス座標のほうをウィンドウのローカル座標に変換するかたちね。
ウィンドウが経た座標変換を同じように適用するわけだ。
これなら少ない演算量でヒットチェックできる。
勉強になった。
ライブラリうpしてくれたのはいいけど このスレ初心者しかいないから まともな評価されないよ 自分でブログ作るとか ニコニコでうpするとかがまだいいよ
455 :
デフォルトの名無しさん :2012/11/29(木) 09:56:23.08
GUI理解ないなら MFCとかで既存のコントロール継承した何か作ると理解深まるよ
ゲームメインやエフェクト作りたい系の人ならそれなりにいるけど UI作りたい系の人めずらしいから重宝されそう
>>440 Samples\C++\Direct3D\ConfigSystem
フォルダに、CpasのPDFやらXLSやらがありました。
非常に便利です。
ありがとうございました。
いえいえ
>>460 ガスっぽい模様はフラクタルノイズ(ピンクノイズ)を使う。
連続的に変化するのはパーリンノイズを参考にすればいいかと。
単純にガスっぽいテクスチャを2枚乗算でブレンドしながら微妙にずらしていくだけでも
流れるガスの感じになる。
その映像みたいにするなら、輝度から黒-赤-白のグラデーションに置き換えて着色。
たぶんその背景はこれを4枚くらい重ねてるんでないかな?
462 :
460 :2012/12/04(火) 19:21:06.61
>>461 なんとなく予想はしてたけど、やっぱ乗算とかちょっとした工夫が要るのか。
まずは、ガスのテクスチャ作るところからやってみる。Thanx!
グラディウスXよくできてるよな
DirectX用のスマートポインタって用意されてないの? 誰からも参照されなくなったら勝手にReleaseしてくれるようなヤツ。 自前で作らないとダメかなぁ?
CComPtrじゃ駄目なのか?
DirectXで使えたっけ? まぁ、いいや。 ありがとう!
std::shared_ptr<D3DDevice> val( raw_ptr, [](D3DDevice* p){p->Release();} ); それはともかく、板ポリに2Dテクスチャ貼っつけてシェーダでテクスチャぼやかしたりしたいんだが、解説資料とかある場所だれか知らないか
468 :
464 :2012/12/08(土) 22:36:54.68
>>467 ありがとう!
やっぱshared_ptrのデリータ指定が、DirectX以外との一貫性もあって良さそうだね。
せっかくC++11で標準化された機能ってのもあるし。
ラムダ式使ってるのがナウくてイイっすね!
使わせてもらいやす!
ぼかしは今給黎さんのシェーダ本にガウスぼかしのが載ってたけど、あれじゃダメかな?
ガウスに限らず、FIRフィルタに応用できる。
今となっては古い本だから、あくまで参考だろうけど。
>>使わせてもらいやす! いや使わないだろ、正直に言え
470 :
464 :2012/12/09(日) 01:06:31.97
>>469 いえいえ、ほんとに使いますよw
次からVS2012を使う予定なんで、C++11が使えるし、
shared_ptrはもとから使いまくってて、
カスタムデリータも気になってたしね。
AddRef…
必要ない
既出過ぎてほっこりした
TKってなんだよ
テツヤ コムロ
つうかMicrosoftはわずか数年で やっぱ飽きたからやめるわ え?作成途中の資産や学習コストはどうするって? ハハハ何こんなのにマジになってんのグガワロズwwww とか平気でやるから無視
googleさんよりまし
やっぱりDirectXを扱うプログラマは給料高いですか?
何が「やっぱり」なのか、まずはその根拠を説明しろ。
やっぱりDirectXを扱うプログラマを扱う方が給料高いですよ
やっぱりDirectXって難しいですか?
やっぱり=馬鹿の脳内妄想
やっぱりか
DirectX作ってるほうのプログラマの方が高いです DirectXを使う底辺エロゲ会社プログラマ vs オラクルとかすごそうなの使ういちりゅうきぎょうプログラマ
一流企業のエリートプログラマとか虫唾が走る。
馬鹿には無理
日本で一流企業のそこそこの給料貰ってる奴とか、仕事でコード書かせて貰えないだろ マネジメントとかそういうのする立場に立たされて、コード書くのが恋しいとか言ってる奴よく見るぞ
一流企業のエリートプログラマ()
名前は一流だけど 下請けに任せ続けたような所は残念コード
シェーダー勉強しようと思うんだけどオススメの本を教えてください。 DirectX 9 シェーダプログラミングブックが一番欲しいのですが、 どこにも売っていないので代替品となるような本が欲しいです。
>>492 N2Factory氏の「DirectXシェーダプログラミング 仕組みからわかるゲームエフェクトテクニック」が
なかなかイイよ。
できれば今給黎の本がいいけど、最近は入手しにくくなってるんだね。
たしかに、今となっては古くなってしまってるけど、内容の深さは今でもかなり参考になるよ。
>>493 回答ありがとうございます!
次回本屋さんに行った時に探して見ます!
PIXWinでExperimentのA single-frame capture ...の項目で Start Experimentを押してもウィンドが直ぐに閉じられてしまいます Statistics for each frame ...などの他の項目は実行できます Debugビルドのexeを指定しています 何か特別な設定が必要なのでしょうか
へぇ〜。 キャラクターアニメーションとかは簡単にできるんだろうか?
頂点ブレンディングのシェーダが入ってた。 FBXで簡単にスキニング出来るようにしてくれそうだな。 これでDX11に移行できそうだ
DirectShow のSetNotifyWindow で指定して飛ばしたメッセージをMFC のPreTranslateMessage でキャッチするのってできない?
スレチ
新年早々躓いたんですが、アルファ値0.5f以下を境に半透明材質がまったく映らなくなる現象が起きたんですが 誰か原因わかる方いませんか? 0.51fとかに設定するとちゃんと透けるのに0.5f以下になると何も映らなくなるんです Directx11です・・・
まずは状況が再現できる必要最小限のソースを出せ。
あー、アルファトゥカバレッジがONになってたのがとりあえずの原因だったぽいです 失敬
504 :
デフォルトの名無しさん :2013/01/01(火) 17:11:08.54
DirectXの座標系で質問です。 標準の座標系は、右:X+、上:Y+、奥:Z+ですが、 回転方向はどうなっているのでしょうか? 「X軸まわりに+の角度の回転を与えたとき、 原点からX+方向を向いた場合、右回りに回転する」であっていますでしょうか? ネットの情報では、左周りに回転するように書かれていますが、(左ねじ) 計算すると、右回りで正しい気がします。 P(X, 0, -1)の座標をX軸周りに90度回転させた場合、P'(X, -1, 0)へ移動します。 ---- 計算式 ---- M = |1 0 0 0| |0 cos sin 0| |0 -sin cos 0| |0 0 0 1| P' = MP = (X, -sin(90), -cos(90), 1) = (X, -1, 0, 1)
そもそも標準の座標系など存在しない
>>504 D3DXの数学関数のことを聞いてるなら、ドキュメントに明記されてるだろう。
507 :
デフォルトの名無しさん :2013/01/03(木) 09:48:04.16
>標準の座標系は、右:X+、上:Y+、奥:Z+ですが、 これは左手系だよね。 「X軸まわりに+の角度の回転を与えたとき、 原点からX+方向を向いた場合、右回りに回転する」であっていますでしょうか? 違うと思う。左手軸回転なら、X軸+方向から見た時に時計まわり (右回り)が正の回転方向、原点からX+方向を向いた場合、反時計回り(左回り)が 正の回転方向。 左回転ならP(X,0,-1)はP'(x,1,0)にならないかい? DirectXでは,[行ベクトル]×[通常のベクトルの回転移動行列の転置] で演算が行われるから P'=MP はまずいと思うけど。
DirectXには標準的な演算順序など存在しない。 自分でどう書くかの問題であって、DirectXが順序を規定しているわけでは無い。 右手左手両方が用意されているD3DXもXNAMathも同じ。 たまたまサンプルで左手を使っているのが、標準だと思っている馬鹿が多すぎる。
509 :
デフォルトの名無しさん :2013/01/03(木) 11:05:56.24
おまえなあ。賢そうにそんなこと言ってるけど お前の言ってることは何の役にもたたんよ。 ひっこんでろ、カス!
間違った認識を吹聴する奴は、役に立たないどころか、害にしかならない。 そうやって開き直って間違いを決して認めないから、今まで生きてきてずっと馬鹿のままなんだよ。 まずは間違いを認めて、そこからやり直せ。
512 :
デフォルトの名無しさん :2013/01/03(木) 15:50:09.23
>>510 >間違った認識を吹聴する奴は、役に立たないどころか、害にしかならない。
>そうやって開き直って間違いを決して認めないから、今まで生きてきてずっと馬鹿のままなんだよ。
>まずは間違いを認めて、そこからやり直せ。
ああ、確かに、DirectXでもオプションかなんかで右手座標系対応に変更できるとか
何かに書いてあったな。
それでは、DirectXでも右手座標系、右ネジ回転が使えるようにするためにはどうすればいいか
言ってみろよ。右手座標系で左ネジ回転にした場合、あるいは左手座標系で左ネジ回転にした
場合、どうなるか言ってみろよ。こういう所は間違え易いから初心者にとって大事なところだ。
それをきちんと言えたら評価してやる。そういう説明もしないで使いものにもなら
ないボケ哲学ふりかざしやがって。
あと、百年、棺桶の中で寝てろ。タコ
>ああ、確かに、DirectXでもオプションかなんかで右手座標系対応に変更できるとか そもそも、これが間違いなんだよ。 オプションなんて無い。 行列の計算を自分でどうするか決めるの。 オプションとかシステムに組み込まれているわけでは無い。 3DXなどに計算を依存しているなら、右手用と左手用の関数を使い分けるだけ。 自前の演算ライブラリを作っているのなら、好きなように計算するだけ。 意味不明なオプションとか訳の分からない脳内機能を勝手に作り出すな。 哲学とかじゃ無くて実際の話をしているんだよ。
目からうろこ
こういうのを意味も分からずに使って、自分でわざわざw左手に設定していることに気がつかないんだろうね。 D3DXMatrixPerspectiveFovRH
ちなみに右手にしたければLHにするだけ。 ただし計算上の話で、設定を変えているわけでは無い。
左右反対のを貼り付けてしまった。 逆ね。
オプション無いってなあ・・・カリングの設定あるだろ
カリングは座標系とは無関係なんだが、頭は大丈夫か? 二次元の表裏と三次元の座標系はそれこそ次元が異なるんだが、 きちんと理解して自分の頭で考えずにプログラムを組むから、 そういうところを混同するんだよ。
ちなみにカリングはどちらの座標系で決まった方を使わなければいけないわけでは無い。 頂点の並び次第で好きな方を使えばいいだけで、標準が定められているわけでは無い。
ああ、3D表示のAPIにも標準は無いな D3D以外にも腐るほどあるわ アスぺは黙ってろよ
>>521 Directg3Dの基礎知識が間違っていて、3Dがらみの数学的知識も勘違いだらけ。
DirectXスレで意味不明なD3D以外にも腐るほどあるわ発言。
口を開くたびに転げ回るように馬鹿な内容ばかり飛び出てくる。
馬鹿のびっくり箱かよ。
昔はDirect3Dは左手系、OpenGLは右手系ってのが
周知の事実だったはず。
おそらくDirect3DRMあたりから来てるんだろうと思うが・・
(
>>522 はRMなんて知らんのだろうな)
RMがだからサンプル通りにしかかけないバカが、 永遠に無知のままになっている原因を作っているんだろう。 補助ライブラリが害になっている典型例だ。
補助ライブラリの名前を言ってみてよ?
右手座標系に固定されていた補助ライブラリ、その名はGLU…… 今はGLSLが基本で自前の行列をglUniformで渡すから、流石に影は薄いけどぉ そういやXNAの算術ライブラリも右手座標系が前提だったね(こっちのが他と互換性高いからという理由) そして新しめのサンプルであるはずのWindows 8 SDKやKinect SDKのサンプルは左手座標系…… まあMSのポリシーなんぞを文面だけで判断してるとバカを見るよ ちゅーかシェーダ全盛期の今さらD3DRM時代の標準の話を持ちだしたところで何の役に立つん?
528 :
デフォルトの名無しさん :2013/01/06(日) 10:54:38.92
>>513 お前みたいなのを見ると反吐が出る。
>行列の計算を自分でどうするか決めるの。
>オプションとかシステムに組み込まれているわけでは無い。
だからそんなこと言っても初心者はわからんといってるだろが。
>意味不明なオプションとか訳の分からない脳内機能を勝手に作り出すな。
そうかい,おれはDirectXの標準に従ってプログラムするからそんなこと知らんよ.
重箱の隅をつつくな。
>行列の計算を自分でどうするか決めるの。
仮にお前が自分でどうするか決めて座標系や回転方向をこういう規則
でやるというライブラリを作ったとしても俺は、そんな糞ライブラリ
絶対使いたくない。
というか、お前みたいな糞とは絶対仕事したくない。
あと32768年死んでろ。
こうして、
>>528 は、ひょうじゅんというなのじったいのないげんそうをおいもとめて
えいえんにぜっとじくがとおざかるせかいでいきつづけるのでした
おわり
質問です HLSLのtex2Dでテクスチャの色を取り出す時、自動で線形補間されてしまいますよね これを補間せず、最近点の色をそのまま取得してほしいのですが、可能でしょうか? MinFilter MagFilter MipFilter あたりかなと思ったのですが、これらは拡大、縮小時のフィルタということで、ちょっと求めているものとは違う気がします よろしくお願いします
>>530 MinFilter = POINT;
MagFilter = POINT;
これらは拡大・縮小に限らず、UV方向に補間が必要なときの挙動を決めるもの。
上記のように、POINTを指定すれば最近隣補間になる。
MipFilterはミップマップ(異なる解像度の画像)間における補間を決めるもの。
UVとミップマップ方向の3次元補間が可能だ。
世の中にはフィルタリングやサンプリングを行わないで取得するLoadっていうのもあるで
補完は、 ・テクスチャ読み込み時 ・描画時 にされるかのうせいがあるね
先生質問です DirectX(9.0)を使って文字を書くのなんでこんな面倒なんですかorz
OpenGLを使ってても面倒ですよ
文字表示するのって大変なんですか(´;ω;`)
LPD3DXFONTがあるdirectx9はまだ簡単な方だと覚えておいた方がいいぞ directx11は自前でテクスチャに書き込むかDirectWriteで書かなきゃいかん
しかもDX11の場合DirectWriteを使うにしてもDX10を介さなきゃいけないんじゃなかったっけ? 俺は今からこの辺のこと勉強する段階だけど。
いや、DirectWriteはDirectX11だけでもいけるよ DX10用のテクスチャとDX11用のテクスチャはほとんど同じようなもんなんで DX10のように設定するだけでいける
540 :
538 :2013/01/11(金) 23:32:51.47
>>539 そうだったんですか!ありがとうございます!できる前提でサンプルいじってみます。
すみません、俺が読んだのはDirect2DとDirect3D11の共有についてだったかもしれません。
ん? どのみちD2DにDWriteで書く話でしょ? Vista/Win7で利用できるD2Dは、D3D10.1以外のサーフェイスは直接渡せず D3D11にレンダリングしたい場合はD3D10.1デバイスを介した上で サーフェイスの共有と同期処理という煩雑な手続きが増えるよ ちなみにWin8のD2DはAPIが整理されて、D3D1xならだいぶ楽に相互運用ができるようになってる この更新はWin7も利用できるようになる予定(Vistaは無し)
む、じゃあ俺はwin8だから行けるのか? それは知らんかったわ・・・ありがとう
543 :
538 :2013/01/12(土) 00:16:57.60
Win8+D3D11.1環境(+VS2012)、要するに最新の環境そろえて作り始めたいところなのですが、 今DirectX SDKに相当するものが既にあったら場所を教えていただけないでしょうか。 DirectX SDK(June 2010)のときは、Sample Browserのサンプルをいじってビルドしたり ヘルプ(DXDoc for C++と DX Graphic Doc)を読んだり2009Augの日本語ドキュメントに逃げたり してやってきたのですが、今のWin8+DX11.1についてはさっぱりわかりません。 Windows SDKに内包されているとは聞くのですが、サンプルもドキュメントも それっぽいのが見当たらず…(D2Dで緑の倒れた長方形を描画するやつはできましたが)
545 :
538 :2013/01/12(土) 00:50:56.49
>>544 ありがとうございます!俺が探しているものそのものは「ない」というのが答えのようで
残念ではありますが、情報として御回答として求めていたものに一番近いです。
先人の日本語レポはすごくありがたいですね。
英語版にせよオンラインでも.chmでも体系的なものがあればありがたいのですけど、
残る希望は書籍でしょうか。
DX11.0はありますしとりあえず今手の届くものを使ってがんばります、ありがとうございました。
DirectXは10で初心者を切って以降、茨の道となった・・・
シェーダー書くだけだろ
549 :
538 :2013/01/14(月) 23:46:56.65
>>549 おお、ぼちぼちVS2012でDirectXやろうと思ってたところだったんで助かる。
サンクス!
551 :
538 :2013/01/15(火) 01:18:58.47
いえいえ、俺が見つけたわけじゃなく
>>544 さんのアドバイス通りにやっただけです。感謝です。
新規作成→プロジェクト→オンライン→C++で
>>549 のも含めてサンプルが出てきました。
名前の昇順でソートすればDirect2D, 3D, DirectWriteが集まりますし全部で3ページ分
くらいなので迷うことは(残念ながら)ないはず。
552 :
デフォルトの名無しさん :2013/01/15(火) 21:32:21.44
>>549 のサンプル試してみようとしたけど、エントリーポイントを定義してないって怒られた。
初心者すぎてヤバイ。
553 :
デフォルトの名無しさん :2013/01/19(土) 23:36:15.46
DirectShowのことなのですが、教えて欲しいことがあります。 WindowsCE7でDirectShowプログラミングをしています。 今、動的再接続というのをやりたくて色々調べています。 ドキュメントベースの調査で大体のやり方が分かったのですが、 実際にWindows CEでやろうとするとできませんでした。
554 :
553 :2013/01/19(土) 23:38:16.36
(続き) SDKのソースコードを見たところ、PC版と異なりCEでは 動的再接続をサポートしていないように感じています。 しかし、PCと組込でのサポートの差や そこらへんの具体的な情報がネットを調べてもなかなか出てこず、 一体どうなっているのか分かりません。 情報をお持ちの方は、教えて頂けないでしょうか。 よろしくお願いします。
555 :
553 :2013/01/20(日) 07:34:12.76
あと、残念ながらCEで動的再接続をサポートしていない場合、 どのような開発をすれば対応可能なのかについても情報を求めています。 ご存知の方はよろしくお願いします。
まずスレ違い
558 :
553 :2013/01/20(日) 19:15:12.33
>>556 スレ違いの件申し訳ないです。
プログラマの板を板違いで追い出されて来ました。
そして、プログラムの板では自由にスレを立てられないようでしたので、
仕方なく、ここに来ました。
DirectXだと、DirectShowとは完全に無関係ではないと思いますので、
識者がいらっしゃるかと期待して、書き込みました。
Directがついてるものの、DirectXは独自的な発展を遂げて、もはや別物といえるほど差ができている。 DirectShowもDirectXSDKから追い出された経緯があるしね。 しかし、ただでさえ茨の道のDirectShowをWindowsCEで使おうとは、勇敢なお方だ。 昔、世話になった「DirectShowと戦うスレ」は、もうないな。 と思いきや、どうもおまいさんが立てたらしきスレがあるなw どうしてもDirectShowを使わにゃならんのかえ? Windows7系なんだし、MediaFoundationのほうが適している、ということはないかな? どうしてもDirectShow、な場合だけど、 「動的」というのは、フィルタグラフの再生を停止せずともフィルタのピン接続を替えたいということになるのかな? ここんとこ詳しくおせーて。
560 :
553 :2013/01/20(日) 20:45:41.43
>>557 書き込みありがとうございます。
DShowフィルタをCEに移植する際のビルド設定等の解説サイトのようですね。
ここらへんの話は心得ています。
気にしているのは、SDK自体の機能のPCとCEとの差です。
561 :
553 :2013/01/20(日) 20:59:44.78
>>559 そうかもしれません。今後そうなっていくでしょう。
しかし今の私の仕事では、顧客の希望でDShowが要求仕様になっています。
動的再接続は、ご指摘のとおり、フィルタグラフを止めずに、
ピンを繋ぎ変えることです。詳細は下記URLにあります。
//msdn.microsoft.com/ja-jp/library/cc354335.aspx
//blog.firefly-vj.net/2008/12/blog-post.html
>>561 ほんとに動的じゃないとダメ?
「停止」→「ピンの接続変更」→「再生」
ってやっても、画面では一瞬プツッってなるか、ほとんど分からないくらいだと思うよ。
デベロッパならMSの技術サポート使え ネットで探し当てられない情報ならそれは金が必要な情報だってことだ
564 :
553 :2013/01/21(月) 01:00:32.18
>>562 動的再接続を使って設計してから、
どうもMSDNライブラリの記載内容とCE版SDKの中身が違うらしいことに気付いて、
ガーン||||||||||凹[◎凸◎;]凹||||||||||というのが今の状況です。
選択肢はいくつかあります。
(1)SDKソースコードに手を加えず、若干の設計変更とピン改造で動的再接続に対応する。
(2)SDKソースコードに手を加えて動的再接続に対応する。
(3)動的再接続を使わない別の方法を検討する。
565 :
553 :2013/01/21(月) 01:02:50.25
(続き) 確かに、動的再接続を使わない手(3)も考えられます。 それでも、レンダラフィルタを止めることはできません。 レンダラフィルタを止めずに、ピンを接続しなおすフィルタだけを 止めるようなやり方をして、うまくいくかどうか。 試してみる価値はあると思います。
566 :
553 :2013/01/21(月) 01:15:39.60
(続き) でも、できれば(1)で、それがダメなら(2)でやりたいと思っています。 そこらへんに詳しい方は、いらっしゃらないでしょうか。 今回の場合、ポイントはピンです。 DirectShowのCBasePinクラスを継承して特殊なピンを作ったり、 CBasePinクラスを書き換えてSDKを組みなおしたりしたことのある方は、 いらっしゃいませんか。
567 :
デフォルトの名無しさん :2013/01/21(月) 04:52:59.65
どうみても(1)
569 :
553 :2013/01/22(火) 01:22:06.15
>>563 確かにそうですね。でもうちは弱小なのでとても。
やべーPSSetShaderResources()とOMSetRenderTargets()の順序で詰むところだった。
読み込み元にも書き込み先にもなるテクスチャを扱うときに、
設定中に一時的にでもRW両方になっちゃうようにSetしてしまうと無効になるから
その後Draw系関数が実行される時点でRWが分離されてても、っていうかされてるように見えてもダメなんだ。
面倒だったらとりあえずダミーのR用テクスチャとW用テクスチャを用意して、
毎回一旦それにSetしておくみたいな逃げでいいのかな。
速度は求めていないからこそできるのかもしれないけど。
上記のどっちの関数のリファレンスにも書かれていて気づいきました。人間真面目が一番ですね…。
ID3D11DeviceContext::PSSetShaderResources
http://msdn.microsoft.com/ja-jp/library/ee419731 (v=vs.85).aspx
unityじゃなくて直にdirectxを触る意味ってなにかありますか?
Unityみたいなのが作れる
573 :
デフォルトの名無しさん :2013/01/23(水) 17:07:03.29
diretcShowで動画キャプチャーする時にaviじゃなくてwmv形式で保存する方法教えてください それと音声だけをwavでキャプチャーする方法も教えてください
575 :
553 :2013/01/28(月) 00:45:27.01
殆ど毎日終電まで働いてましたので、こちらを確認してませんでした。 私の設計で問題が発生して行き詰ったことをマネージャーに報告したら、 コテンパンに怒られました。自分らでどうにも解決できずに、 正直に顧客に問題を話して相談することになりました。
576 :
553 :2013/01/28(月) 00:49:53.58
>>567 そうですね、正攻法では確かに(1)です。
しかし、話はかなり基底のクラスにまで及んでいるので
(1)は無理かもと感じています。
DirectShowはCOMですから、インタフェース不変さえ守れば、
(2)も有り得ます。
ハイレベルすぎてさっぱりわからねー 俺より凄腕のプログラマは居ないと思っていたが たくさん居るなw
directshowはほんとはまるよな。 しかも動的再接続なんて。。 まあそれだけならまだしもCEなんて。。。
579 :
デフォルトの名無しさん :2013/01/28(月) 11:10:35.63
そもそもそんなハイレベルなプログラマがここで聞いてくるのが間違い
やったことないけど
>>579 WM ASFライタフィルタを使えばWMVになるよ。
[cap]-[WM Audio 8]-[WM ASF Writer]
ただ、ASFライタはディフォルトでWindowsMedia8用のプロファイルになっている。
今はエンコーダが9(WM9)しかないからつながらないのだろう。
以下を読めばわかるだろう(予想)
修行中なのでリンクは貼れないが以下でわかるだろう。
msdn.microsoft.com/ja-jp/library/windows/desktop/dd387910(v=vs.85).aspx
wavは確かwavdestなるフィルタがサンプルかネットに転がってるから
それを使うかしろ。
582 :
デフォルトの名無しさん :2013/01/28(月) 13:57:30.01
>>581 ありがとうありがとう
とりあえず見てみるわ
質問させてください
最近DirectXの勉強を始めて、今3Dモデルの表示をしようとしているのですが
3Dモデル上にテキスチャの残骸?らしき物が付いてしまいます
http://nagamochi.info/src/up125514.png 左が自分のプログラム、右はxna game studioで特にいじらずそのまま表示したモデルです
3DモデルはFbxファイルでFBX SDKでファイルを読み込んでいます
テクスチャを貼らない場合なにも付かないので、UV座標関係でミスしてるのでしょうか
上の画像から何か分かったら教えてもらえませんか、よろしくお願いします
ソース貼れよ
worldが狭いんじゃね
テクスチャラッピングの問題じゃない?
まあ、UVかサンプラの設定だろうが・・・ソースをみないと何とも言えんなw
うーむ、サンプラは間違ってないような気がするが・・・ d3dx11effect使ってるから俺じゃ起動できんわ
サンプラのアドレッシングはWRAPじゃなくてCLAMPでねーの?
591 :
デフォルトの名無しさん :2013/01/30(水) 18:41:16.56
ねーよ
後は原因なんだろうな 望みは薄いが、もしかしたらテクスチャの読み込み方かもしれん D3DX11CreateShaderResourceViewFromFile( this->_Device, srcFile, &info, NULL, &outTex, NULL ); の&infoをNULLにしてみたらどうだろうか?
ああ、いやダメだな。単純にNULLにしたらシェーダが読み込めんな D3DX11CreateTextureFromFileとCreateShaderResourceView この二つを組み合わせて読み込んでみたらどうよ?w
594 :
583 :2013/01/30(水) 20:18:47.17
パッと見た感じ、二つのファイルに相違点はない感じだけど このまま使って上下反転するってんなら、頂点バッファ作る過程でどっか間違ってんじゃない?
テクスチャ画像を目鼻手先足先も全部同じ色の無地にしてみて、 発生する→わからん… 発生しない→UVが怪しい いや、ソース読まずにてきとーに言ってみただけです見当違いならゴメンナサイ
597 :
583 :2013/01/30(水) 22:35:46.34
598 :
596 :2013/01/30(水) 23:06:41.13
乙です。緑無地のテクスチャにすると発生しないってことはテクスチャ以外のことは考えなくていい、と。
(このことをまずは切り分けたかったんですがそんなことはとっくにわかっているんでしたら失礼しました)
ただ、UVがおかしいわけでもなさそうですね。
仮にUVがおかしいとするとXNA GSで発生しないことを説明できないから。
>>586 さんの言ってる「テクスチャラッピングの問題」ってのが一番近そうな感じがします。
>>587 さんの「サンプラの設定」というのも同じことを指してるかもしれませんが。
最短経路のとり方がテクスチャ上を横断して目鼻を圧縮して描画してしまっているみたいな。
テクスチャ ラッピング
http://msdn.microsoft.com/ja-jp/library/cc373033.aspx
599 :
598 :2013/01/30(水) 23:08:54.23
すみません589さんあたりで既に検討済みみたいですね。598は忘れてください。
俺もラッピングと思う 無地のテクスチャではなく、 もっと全体的に変化のあるテクスチャに変えれば わかりやすくなるだろう。
検証しようと思って開いたけどコンパイルできなかった とりあえずVisualStudio2012のFBXビューアでは正しく表示されたので、 ステート設定を忘れたとか、初期化を忘れたとか、Zバッファの精度が足りないとか、凡ミスだろう
603 :
デフォルトの名無しさん :2013/01/31(木) 02:12:38.86
DirectXプログラマって儲かるの? 作るのゲームだけだろ? 昔、証券業務やってるときに別の外注の人が ゲーム会社に在籍してた頃の話してくれたけど 時給換算すると数百円以下だといってたぞ。
DirectXのみやってる人はいないんじゃないかな 時給に換算すると千円切るけど、音楽聞いてネット見てお菓子食べながら ダラダラ仕事できるよ
いいねそれ 俺もそんな職場に就職したい
ゲームって一番技術力要るのになんでだろうねぇ
最近はゲームだけでもないんじゃね? とか思ったがモデラーとかその辺くらいか。Windows自体のDirectX使う部分はMicrosoftが作り切るだろうし
行列からオブジェクトの角度を求めたいんですが、 D3DXVECTOR3 vec; D3DXMATRIX mat; vec.x = mat._11; vec.y = mat._22; vec.z = mat._33; は間違えてますよね? 宜しければどのような計算式か教えてください・・・
秘密だぞ(´・ω・`) float aX = atan2(Mat->_23, Mat->_33);//X軸周り決定 float aY = atan2(Mat->_31, Mat->_33);//Y軸周り決定 float aZ = atan2(Mat->_12, Mat->_22);//Z軸回り決定
DirectShowのスレッドが無いのでこちらで質問させてください。 Wmv形式のファイルの再生速度の変更はDirectShowでは出来ない のでしょうか?現在以下の方法で試したのですが変わりませんでした。 IMediaPosition、IMediaSeeking、IAMExtendedSeeking のどの再生レートを変えても変化なしでした。 あるサイトではMediaFoundationから出来るとあったのですが・・・・ もし分かる方おられましたら、よろしくお願いいたします。
DirectXのカテゴリじゃねえって言ってんだろアフォが
リファレンスクロックを2倍で進めれば2倍で再生できるんじゃね?
このスレは全く役に立ちません −終わり−
DirectXスレなのにDirectShowを応えれる奴は少ないだろうに 名前が似てるがほぼ別モンじゃん
できないものはできないんだからどこで質問しても「できない」で終わりだけどな。 まぁそういう場合、自分でASFパーサ作るなり、オーディオレンダラにうそのサンプルレートを教えて 早く再生させたりと裏ワザを使わないと無理だろうけど、そういうフレームワークの想定外のことをやっちゃうと どこで機能不全が起きるかわからないからおすすめできない。 細かい要件もわからないし、何を犠牲にしてよいかわからないのでアイディアも出ない。 それにそういう特殊なことするにはかなり詳しくないとドツボにはまるだけだよ。
IDないからなりすまし放題だな。
MPCとかWMVも高速再生できるよね
シェーダーの勉強をしています。 最近まで @D3DXCreateEffectFromFileを使いfxファイルを読み込み LPD3DXEFFECTで定義したものからBeginPassでやるものだと思っていたのですが AD3DXCompileShaderでconst char *を読み込んで LPDIRECT3DDEVICE9で定義したものからSetVertexShaderを使っている方法を拝見しました。 」どちらでも出来る方がいいとは思っているのですが、現在どちらが主流としてつかわれているのでしょうか? どなたかご存知ありませんでしょうか?
個人で作るなら好きな方でいいんでない?
DirectX9で画面にビットマップを表示したりフォントで文字を書いたりしたいのですが 大きさをうまく調整できません。 例えばビットマップはファイルでは16x16ピクセルとか固定ですよね? これを表示させるとどういう大きさで表示されるんでしょうか? またフォントサイズ24だとしてこれは実際にはどのようなサイズで表示され、それは何によって決まるんでしょうか? フォントサイズは24で固定値なんだから世界の大きさを決める何かの設定があって、それにしたがって24という重みが変わるんだろうな、 という気はしていますが。
テクスチャを貼るポリゴンの大きさで決まる 16x16の大きさのビットマップを歪みなく表示したければスクリーン座標変換後に 例えば、始点x1=0.0f、y1=0.0fと 終点x2 = 16.0f, y2 = 16.0fになるポリゴンを作らないとならない ・・・まあ、スプライト作るLPD3DXSPRITEってのがdirectx9にはあるからそれを使うのが一番簡単だと思うよ
>>623 スプライトですか、ありがとうございます! さっそく勉強します
DirectXMathを触ってるのですが、要素へのアクセスがめんどくせー! みんなこんなの使ってるんですかい
慣れだぞ慣れ D3DX演算ライブラリとほとんど同じだし、逆にコードが短くなったなんてこともある
627 :
デフォルトの名無しさん :2013/02/12(火) 21:33:07.91
いきなり2Dスクロール作るのはしんどいんで 平仮名の「あ」を移動させたりジャンプさせたり障害物をよけたりする プログラム作りたいです。 ソース書いてくれませんかね?障害物とか長方形のブロックでいいですし。 初めてなんで中々できなくて。
自分でできなきゃ意味ないよ
ここまで自演
>>627 一部のソースでも載せるとアドバイスもらえるかもよ
Direct X SDK August 2009の日本語ドキュメントへのリンク知ってる方いませんか chm形式で、左側が検索だけでなくインデックスタブ等もあるちゃんとしたやつ 検索タブしかないのは残ってるんだけど、修正版が見つからない… どなたか知っていたら教えてplz
ストリームに座標と色の頂点データをセットするとき ストリーム0に座標と色の復号型をセットする方法と、ストリーム0に座標をストリーム1に色を指定する方法ではどちらの方がいいでしょうか?
分ける必要がないならひとまとめにするべき 複数のオブジェクトがあって、同じ頂点位置を共有してるけど色が違うって場合には有効かもな でも頂点カラー以外はマテリアルやテクスチャで色を付けるのが一般的だけど
一般的だね
>>632 *.chmと一緒に*.chiも置いてないとそう(検索だけ)なるよ。*.chiは持ってない?
directx sdk ってどこからダウンロードできますか?
リンクありがとうございます Vista何ですが対応してないですね 7か8か・・・
いえいえ
>>636 ,644
そうです! chi同梱のこれです!! thxです
直リンなのでどこのページにあったかわからないですけど、windows_graphocs.chmのchi同梱もどこかにあったはずなんですが
そちらのリンクはご存じないでしょうか。たびたびですいません
646 :
デフォルトの名無しさん :2013/02/13(水) 21:46:14.86
サーフェースの大きさが1024x768だとします。 これをウインドウモードで512x384のウインドに表示させると ちゃんと1/4に縮小されて表示されるじゃないですか? これってジオメトリ変換とは別で、最終的に出来上がった絵をStretchBltみたいに して実現しているのですか?
補間してるんだよ。まあ、似たようなことしてるんだと思うよ スーパーサンプリングって呼ばれるアンチエイリアシングも表示サイズより大きめに描画して表示する方法だしな
>>647 レスありがとうございます。
いま、画面に、画面のサイズによらず、一定のサイズの矩形を書きたいと思っていて
(でもその他のオブジェクトのサイズには干渉したくない)
このサーフェースからクライアント領域に転写するときの倍率を求め、
その逆数をオブジェクトのローカルサイズにかければ
いいのかな?と思ってそうやって、一応目的の通りになってるのですが、
この処理を普通はどうやるのか気になっています。
そこで、そもそもこのStretchBltもどきはジオメトリ変換と関係ない別の拡大縮小処理なのか?
と疑問に思ったもので。
例えば、100×100の矩形を作ってそれに3Dの結果を描画して 画面サイズを変えても100×100のままにしたいってことかい?
100x100の矩形を、すでに描かれている別のオブジェクトのサイズを変えずに、 追加したいということです。 そして画面サイズによらず、つねに100x100です。 だからクライアントサイズを小さくすると、相対的に自分の矩形だけが大きく見えるようなイメージです。
まず画面サイズかえるごとにバックバッファとかを作り直してないなら、作り直ることをお勧めしよう あとプロジェクション行列もな
ありがとうございます 調べてみます
いえいえ
昔DirectXが7から8だか9になった時に 「これからはすりーでーっすよぉ!つーでーなんて古いっすよ〜。」とか言いながら DirectDrawを捨てたけどいまなんかDirect2Dとか出てきたってマジですか?
実体はただのDirect3Dのラッパー
ポリゴン使って2D描画してるだけだからな。
History repeats itself.
すいませんシェーダー勉強中の初心者なのですが ちょっとピクセルシェーダー側に渡したいステータスが増えたので struct VS_OUT についてちょいちょいと struct VS_OUT{ float4 Pos: POSITION; float4 Color: COLOR0; float2 Tex: TEXCOORD0; } に新しく float3 normal: TEXCOORD2; float3 view: TEXCOORD3; を追加したところ warning X3206: implicit truncation of vector type と出てしまい頂点シェーダ出力セマンティクスの扱いについてどぶにはまっております。 どなたかご教授願えますでしょうか?
んー? Tex以外のTEXCOORDの数を一つ下げてもダメ? 2→1、3→2にする感じ
>>659 すいません コピペした時に抜けてました。
float3 LightVec: TEXCOORD1;
float3 normal: TEXCOORD2;
float3 view: TEXCOORD3;
あとシェーダー生成は
D3DXCompileShaderを使っています。
その手のエラーはセマンティクスじゃないんじゃない? float3にfloat4を入れようとしたとかだと思うが コードの全体像が分かれば特定できる人がいると思うが・・・
DirectX終了か まぁ、もうずっとアップデートなかったから、オワコン扱いではあったんだけど、公式に確定、と・・・ やはりOpenGLなんだよね、これからは・・・
別に終わってないが 終わるのは代替技術が本流になったときだ XNAに取って代わられたMDXのように
XNAは終わってしまったorz
MSがOpenGLを主力にするなんてどこにも書いてないわけだが。
DirectX終了は確定 次のまったく新しいAPIが出るんだと思う
ダイレクトダブルエックス爆誕!
MSだったかインテルだったか忘れたけど、数年前に「これからはOpenCLだ!」とか言っていたが、 結局なんか広まらずに終わりそうだな。
これからは○○の時代だ→グラボの性能を引き出すために専用APIを沢山用意しました→これDirectXと変わらなくね? という放物線を描くと予想
Direct3Dが一般のAPIとして吸収されるのは良いけど Direct2D含めてカラーマネージメントAPIをGPUアクセラレートで実装して欲しいわ AdobeRBGとかsRGB比100%のゲーム用ノートPCとか出てても意味がわからない状態だし
カラーマネージメントの計算量はGPUが必要なほど重くない。 いってることがトンチンカン。
WCSで変換すると結構かかるし Direct3Dの結果を一旦ステージングバッファ経由でCPU側に戻してから CPUで変換してテクスチャとしてまた戻すかGDIで表示しなきゃならないのが現状 Webブラウザでは読み込み時に変換してるけど100%表示が基本だから許すとして 本来はリニアなRGB空間で画像処理しないとスケーリングとかがガンマを考慮した結果にならない Direct3DはリニアRGBからsRGBの変換だけサポートしてるけどディスプレイプロファイルには対応してないから IEがsRGBに強制変換という変な対応になってる
>>670 IntelもMSもOpenCLは推してないけどな
>>675 DirectX終了を誤解したまま喧伝しちゃったリーク元が
ごめんなさいする前の記事だと思ったら、今日の記事じゃねえか
情報はやや錯綜気味、じゃねえよとっくに終息しとるわバカタレw
658です。 どうやら初期化しただけで値の入っていないD3DXVECTOR3を渡してしまっていた事が原因だったようです。 お騒がせしました。ありがとうございました。
ちょw ま、いいってことよw
頂点やテクスチャをCPUで書き換えるとき、LockとかLockRectって何で必要なの?? 具体的にどういう処理がされてるの??
>>680 頂点やテクスチャは基本的にGPUさんの所有物。
CPUさんが使うときは「ちょっと借りますよ」って一声かけないと
ご近所トラブルになる。
682 :
680 :2013/02/19(火) 00:36:51.60
>>681 POOLをMANAGEDで生成した場合、CPUにクローン(?)のデータを持っておいて、
適切なタイミング(Drawコール?)でGPU側に転送してくれるんだよね?
そうすると、GPUさんにお伺いを立てる必要はないような・・・。
GPUから読み込む場合も、GPUは頂点やテクスチャを参照するだけで、
書き換えないから、GPUにおかまいなく勝手に読み込んでも問題なさそうだけどなぁ・・・。
>>682 確かにSYSTEMMEMの場合なら一度Lockで取得したアドレスを保持しておけば
Unlock後も実際には書き込みできるけどね
DEFAULTの場合なら(例えばロック可能なバックバッファ)Lockでビデオメモリの内容を
アクセス可能なシステムメモリにマッピングした後Unlock時に変更を反映したりするだろうし
MANAGEDもLockでSYSTEMMEMに書き込んでUnlock時に
DEFAULTにUpdateSurfaceで反映するような挙動になってる
要はISysMemTextureやらIVideoMemTextureやらインターフェイスを複数用意するよりも
Lock/Unlockという「守っておけば問題無い作法」を強要することを選択したってだけ
685 :
680 :2013/02/19(火) 23:17:25.40
687 :
デフォルトの名無しさん :2013/02/21(木) 15:55:20.63
>>687 古いSDK落として、CABから引っこ抜けよ
689 :
デフォルトの名無しさん :2013/02/21(木) 18:31:01.84
DirectShowなんだけどさ IConfigAsfWriter 定義すると無いってエラーでるんだけど これヘッダーなにincludeすればいいん?
691 :
デフォルトの名無しさん :2013/02/22(金) 14:53:55.79
>>690 知らないならレスしないで下さい。ウザいだけです。
ここまで自演
ConstantBufferが何故かゼロクリアされるので その原因を調べたくてConstantBufferの中身の値を取得したいのですが… ConstantBuffer自体は取れるけど中身のデータ取得できなくてこまってます DirectX11.0です
D3D11_USAGEなんかがどういう設定なのかどうか書いてくれんと応えようないぞ
696 :
デフォルトの名無しさん :2013/02/24(日) 23:03:32.69
DirectX9です。 よくオーディオ機器についてるようなイコライザ?UVメータ?みたいなものを作りたいと思ってます。 メーターは黒い淵のついた長方形の短冊が、横にずらっと並んだ感じです。 音声が小さいほうは緑色で、大きくなるにつれて赤にしたいです。 こういう場合、どうやるのがいいですか? 1.そういう緑から赤にグラデーションしてるビットマップを用意して、描画する幅を変える。 ⇒全体的に収縮してしまいました。 2.短冊1つ1つを長方形ポリゴンで用意して、音量レベルに合わせて、必要数並べる ⇒処理が重そうな気がします。 どなたか、よいアドバイスをお願いします。
1をやるなら普通はUVを操作するけどな・・・ シェーダが書ければ朝飯前のことだからHLSLを勉強することをお勧めしよう
1.で描画する元の幅を変えることはできないの? GDIのStretchBlt()を例にすると、nWidthDest(かnHeightDest)を変えるだけじゃなくて nWidthSrc(かnHeightSrc)も変えるってこと。
ありがとうございます。
やるにしても1.なんですね。
HLSLというのをググってみます。
>>698 つまり、頂点バッファをロックしてUV変えた頂点を入れなおして・・・
あれ?
わかりません。
700 :
698 :2013/02/24(日) 23:22:42.86
UVを変える=Srcのほうを変える 頂点の座標を変える=Destのほうを変える にそれぞれ相当します。 StretchBlt()はただの例なのでGDIを知らないなら698は気にしないでください。
701 :
696 :2013/02/24(日) 23:24:02.43
なんかわかったような気がします。 U座標を0.8とか0.7とかにして、頂点バッファをロックして、入れなおして、テクスチャを貼り付ければ テクスチャの描画したくない部分はポリゴンからはみ出て、描画されずに済むんですよね。 サンクスです
DirectX9、HLSLの環境です。 複数のピクセルシェーダの結果を合成して最終的な出力をする、というような処理がしたいのですが、自分で色々と試しても駄目(最後の処理で上書きされる)な状態です。 具体的には、可変個のライトによって照らされるモデルを描画したいのですが、良い方法があればぜひ教えて欲しいです。
そりゃ合成するシェーディング処理を入れないと上書きされるでしょ。
その合成するシェーディング処理を聞いているのでは ちなみに無理じゃないですかね…
ディファード系のシェーディングしようとしてる? 各光源でパス分けるならアルファブレンドで加算合成。 アルファ値にはライト強度を入れる。 平行光源以外をフルスクリーンクアッドで描画すると無駄が多いから光源の影響範囲を表すプリミティブで描画したほうがいい。 複数光源を1パスにまとめるならフルスクリーンクアッド一回、ループで各光源の結果加算していくだけだからアルファブレンド要らないけど ピクセルシェーダ内のループも負荷高いんだっけ。パス分けてアルファブレンドとどっちが早いだろうか。
>>705 まさにこれです……この用語で調べたら色々と出て来ました マルチレンダリングターゲット等を使って行うんですね
具体的には描画可能テクスチャ使って、光の強さを透過度(1.0-光の強さ?)として書き込んだ画像と元の画像をアルファブレンディングするという方向でいいんでしょうか?
なんでもかんでも聞いてんじゃねぇ
708 :
デフォルトの名無しさん :2013/02/25(月) 21:55:25.12
おう悪かったな!
まあ、モノにもよるけど・・・ 複数のシェーダに同じモデルを通すのは非効率だぞ まず1パス目で画面全体の深度・法線・色を一気に描画してだな それを元に光源やらの処理を加算なり乗算なりしていくのがディファードシェーディングの基本だぞ
>>710 それだ!
以前、MSDNかMSDN blogのどこかでリンク貼られてたんだけど、そのページが見つからなかったので助かりました
どうもありがとう!!
質問します。 DirectShowでaviを再生すると音声は出るのに映像が表示されません。 wmvでは映像は表示されます。 レンダラはVMR9(Window)でCaptureGraphBuilder2を使用しています。 自前のウィンドウに描画しています。
ソース CoInitialize(NULL); CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void **)&pGraph); CoCreateInstance(CLSID_VideoMixingRenderer9, 0, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void**)&pVmr); pGraph->AddFilter(pVmr, L"VMR9"); pGraph->AddSourceFilter(inputpath, L"Source", &pSource); CoCreateInstance(CLSID_CaptureGraphBuilder2, NULL, CLSCTX_INPROC, IID_ICaptureGraphBuilder2, (void **)&pBuild); pBuild->SetFiltergraph(pGraph); pBuild->RenderStream(0, 0, pSource, 0, pVmr); pBuild->RenderStream(0, &MEDIATYPE_Audio, pSource, 0, NULL); pGraph->QueryInterface(IID_IVideoWindow, (void **)&pWindow); pWindow->put_Owner((OAHWND)hWnd); pWindow->put_WindowStyle(WS_CHILD | WS_CLIPSIBLINGS); pWindow->put_Visible(OATRUE); pWindow->SetWindowForeground(OATRUE); GetClientRect(hWnd, &rcWindow); pWindow->SetWindowPosition(0, 0, rcWindow.right, rcWindow.bottom); pGraph->QueryInterface(IID_IMediaEventEx, (void **)&pEventEx); pEventEx->SetNotifyWindow((OAHWND)hWnd, WM_GRAPHNOTIFY, NULL); pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl); pControl->Run();
インデントハゲ
すみません、原因がわかりました。 デコーダがインストールされていませんでした。 mpc-hcで再生できていたので、てっきりデコーダがインストールされていると思い込んでいました。
デコーダがないのにフィルタがつながって しかも再生されるのってどうなの?
インテリジェント接続ってやつが気を利かせたんじゃないの?
PIX使えなくなったと思ったらKB2670838が正式配布されてたのか シェーダーの動作やテクスチャ覗ける使いやすい代わりのソフトない?
今はVisualStudio2012にDirectX関係のデバッグ機能が統合されてるはず。
逆にD2D関係の関数がwin7でもKB2670838のおかげで使えるようになってたりする。
VisualStudio2008を10万円で買ったのに pdbが見つからなかったりファイルを開くダイアログを使うとシンボル探して 固まるんだが。ばかばかー!
pdbとかムダに容量デカいから吐かないでほしいよね。 オプションで選択できるようにしておいてよね。
>>719 Expressだと使えないし
デバッグの設定でGPUデバッグを有効にしても
Windows7だとうまく動いてないみたいなんだけど
ソフトウェアエミュレータじゃ動かないとか言っても他は選べないし
そのパッチにより使えるDXGI1.2使うソフトのデバッグが実質不可能な状態で
Direct3D11にDirectWrite組み合わせとかで泣きそうな状態
>>723 え、Win7じゃうまく機能しないの??
自分もVS2012への移行、考えてたんだけど、どうしよう・・・
Win8はなんか気が進まないw
いつも通りソースを修正してビルドしてたら、突然D3D10CreateDeviceAndSwapChainでE_FAILを返すようになった D3D10_CREATE_DEVICE_DEBUGを立てると、そうなるみたい DXSDKのサンプルを実行しても、結果は同じでどれも失敗する ハードやOSで何かあったのかと、VGAドライバとDXSDKを入れなおしてみたけど変わらない 何が原因かヒントもらえませんでしょうか 環境はDXSDKJune2010 Win7 VC2010Expです
ここ数日内ならKB2670838が悪さしてる
俺もなるけどD3D11_CREATE_DEVICE_DEBUG立てるとなるから立てないで使ってたわw
>>727 まじありがとう ドンピシャすぎてお恥ずかしい
新しいSDK入れて解決できた
今頃D3DXが無くなったとかPIX使えないとか知ってしまってちょっと涙目なかんじ
DX11対応も含めてがっつり直すか…
俺もようやくDirectXMathに慣れてきたよ 使いこなせてはいないけど しかしXMFLOAT4X4をXMMATRIXにして、またXMFLOAT4X4に戻したりなんて冗長なことやってると、 せっかくのSSEさんに申し訳なくなってくるなぁ
オプションでもいいから、AVXさんにも対応してほしかったなぁ。
キャッシュに入れるか何かしてるんだろう
735 :
731 :2013/03/03(日) 18:43:53.56
>>733 おお、使えるのか!
ありがとう!
CPU込みで売る製品作ってるから
相手の環境とか考慮する必要はないんよ。
ありがたや、ありがたや・・・。
736 :
731 :2013/03/04(月) 19:32:22.07
>>733 ぬ。なんかOSの機能をチェックしてるけど、OS関係あんの??
もちろん
OSがスレッドやプロセスを変更する際にレジスタを全て避難させるのに必要
739 :
731 :2013/03/04(月) 20:45:59.65
うわ、そうなんか。 まぁ、Win7以上でしか使う気ないから大丈夫だけどね。 ありがとー。
740 :
デフォルトの名無しさん :2013/03/06(水) 06:59:17.77
次はDirectX 12ではなくDirectX Blueという名前になるってだけだな たぶん独立した存在ではなく単なるWindowsを構成するコンポーネントの1つになるんだろうね さびしいねえ
もう既になってるやん・・・
新しくなるのはイイんだけど、 何が変わるんだろう??
普段SlimDXで開発しているのですが、普段はDirectX11シェーダーモデル5.0で、一部だけ古いシェーダーモデル3.0のエフェクトファイルを使用するということは可能なのでしょうか? SlimDXの情報をいただけると幸いですが、DirectXとC++では実現できるのか知りたいです。 半分スレチですいません・・
できる
747 :
デフォルトの名無しさん :2013/03/12(火) 22:23:56.59
オーディオキャプチャーでwavファイルに落としたくて色々やってたんですが GUID CLSID_WavDest={ 0x3C78B8E2, 0x6C4D, 0x11D1, 0xAD, 0xE2, 0x00, 0x00, 0xF8, 0x75, 0x4B, 0x99}; IBaseFilter *pWaveDest; んで*pWaveDestをフィルタに追加でエラーになってしまいます。 WavDest.dllをレジストリに追加しないとダメってわかったのですが DOS窓で↓をやってもうまくいきません RegSvr32.exe WavDest.dll (WavDest.dllはフルパスで書いてます) Win7 SP1 32bitですがどうしたらレジストリに登録できますか?
確認するけどコマンドプロンプトは管理者として実行してる?
749 :
デフォルトの名無しさん :2013/03/12(火) 23:18:09.78
はい、管理者でやってますし バッチファイルでも試しましたが、それも管理者で実行しました 色々サイトを見て同じくやってるのにダメ ちなみに、dllが登録されたかの確認はOLE/COM オブジェクトビューワをどっかからDLして確認しました ちなみに、Visual c++とかはインスコしてませんが WavDest.dllをレジストリに追加するのはそれ関係ないですよね?
知ってるけどスレ違いだしなw
c:\users\hoge\user.dat をうp
752 :
デフォルトの名無しさん :2013/03/13(水) 08:28:44.75
>>750 知らないならレスしないで下さい。ウザイだけです。
お前も似たようなもんだ
横槍ですまんが、優秀な技術者は、たいてい、みんな急がしくて、 初心者の質問に答える暇はないのだよ。 初心者の相手は、初心者に毛の生えた連中か、中級程度で、しかも、 仕事のない暇な奴が請け負うことになる。
>>754 暇ならそんなこと書いてないで相手してやれよ
流れ読まずにレスするけど pWaveDest がヌルポなんじゃね?
>>755 お前こそ自演で煽ってないでソースくらい晒せよ。
regsvr32でダメってエラーでもでんの?
760 :
749 :2013/03/13(水) 22:16:08.89
ソースはこんな感じです
IGraphBuilder *pGraphBuilder = NULL;
::CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTX_INPROC,IID_IGraphBuilder,(LPVOID *)&pGraphBuilder);
IBaseFilter *pDeviceFilter = NULL;
pDeviceFilter = GetDevice( wchrDeviceName );
pGraphBuilder->AddFilter( pDeviceFilter, L"Device Filter");
GUID CLSID_WavDest={0x3C78B8E2, 0x6C4D, 0x11D1, 0xAD, 0xE2, 0x00, 0x00, 0xF8, 0x75, 0x4B, 0x99};
IBaseFilter *pWavDest = NULL;
::CoCreateInstance( CLSID_WavDest, 0, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (LPVOID*)&pWavDest ); ※1
pGraphBuilder->AddFilter( pWavDest, L"Wav Dest" );
※1のとこでpWavDestはヌルポ
CLSID_WavDestにAppID指定してますが、WavDest.dllをレジストリに登録してないから
んで、登録しようとしても正常に登録されたと出ても実際は登録されず
>>749 にも書きましたがdllはフルパス指定
Visual c++やメディアフォーマットSDKはインスコしてません
Windows7 sp1 32bit
wavDest.dllをレジストリに登録するのは仕方が無いとしても
実際に動作させるPCにSDKとか入れないと動かせないとかは無いとおもうのですが
とりあえず知りたいのは
WavDest.dllをWin7 32bitに登録させる方法です
どのサイトをみても
RegSvr32.exe WavDest.dll (WavDest.dllはフルパスで書いてます)
これしか書いてないです
そのWavDest.dllは誰の?
regsvr32はちゃんと登録してるんじゃない? そのwavedestのCLSIDがプログラムで指定しているCLSIDと違うとかじゃないの? CoCreateInstanceの戻り値を見るべき。
763 :
749 :2013/03/14(木) 08:29:27.66
>>761 system32に入ってるのです
>>762 ちゃんと登録してたらOLE/COM オブジェクトビューワで表示されます
764 :
デフォルトの名無しさん :2013/03/14(木) 08:54:12.36
system32に入ってるのはだめだろ
>>759 さんのリンク先で
>このSystem32内のWavDest.dllが「成功しました」なのにOleView.exeで見ると登録されていないのがなぜかは不明だが、そもそも登録可能なファイルかどうかも不明だから追究するまい。
とあるね
馬鹿には無理
ウイルスだな
768 :
749 :2013/03/14(木) 22:34:04.12
いろんなサイトみてみたら、よくVCにアレあるからビルドしてアレしたって書いてるけど 俺VCもってないし、VC無いとできないとかあまりにも糞すぎるし いろんなサイトからWavDest.dllを落としてregsvr32してもダメだし んで、しゃーないからwav変換するフリーソフトでwavdest.axを付属して それレジストリに登録してやるってのがあったから試しにそれ落としてやってみたらあっさりできた 他にwavdest.axコンパイルしたからここから落としてってのがいくつかあったけど 全部regsvr32で失敗してたのに まあ結局そのフリーソフトのアレで登録してできたんだけどさ 結局WavDest.dllをレジストリに登録するのは解決しなかった そんなわけで誰かちゃんとレジストリに登録できるWavDest.dllを下さい
769 :
デフォルトの名無しさん :2013/03/15(金) 00:44:16.99
CLSIDで検索すればいいのに
お前らわざと教えないんだよな?俺もだけどw
771 :
749 :2013/03/15(金) 08:21:28.52
いえ、ここ見てる限り知ってる人は誰もいないですね・・・ ここもAPIスレと同じく知ってる人は他に行って雑魚だけ残ったって聞いたので 期待はしてませんでした。
犯罪関係のネタだと昔みたいに煽っても出て来なくなった
>>771 32/64、モジュール不足等、ひとつずつ解決していけば必ずできる
できないなら力不足なんだよ、諦めな
regsvr32 wavdest.dll する前に regsvr32 /u wavdest.dll しないといけない 出来れば 64bit 用のも消した方が良い
wavedst一つ登録できない雑魚が雑魚呼ばわり決めてる件
776 :
749 :2013/03/15(金) 21:06:49.42
と、低脳が顔を真っ赤にして申しております
778 :
749 :2013/03/15(金) 21:17:56.22
>>777 知らないならレスしないで下さい。ウザイだけです。
知るも知らねーもそんな個別のソフトの事情なんかしるわけねーよ 手元にあったら何が起きてるのか調べて対処するけどなw つーかそもそもWaveDstなんて自分で作れるしw どうせお前のレジストリが腐ってるか、ウイルス入りのバイナリでもつかまされたんだろw ざまぁww
780 :
デフォルトの名無しさん :2013/03/15(金) 22:06:53.74
>>779 知らないならレスしないで下さい。ウザイだけです。
OPENGL最高!DirectXは糞!
782 :
デフォルトの名無しさん :2013/03/15(金) 23:06:07.01
初心者が初心者に嘘を教えるスレです
783 :
デフォルトの名無しさん :2013/03/15(金) 23:58:26.62
かかってこいよ
コナン=新一
新事実発見
なんか変なのいるな WavDestならPlatformSDKに入ってるサンプルだろ GraphEditも入ってるから、フィルターがちゃんと組み込まれてればそのまま使える まずはそっち試してからでないとどうもこうもねえよ
教えてやる価値ないよ
正解です
790 :
デフォルトの名無しさん :2013/03/16(土) 17:52:48.92
メッシュコンバーターがポンコツすぎる
>>790 なんとなく、別スレの誤爆のような気もするが…
これだけ3Dが普及したいまどき、コンバータなんて自分で作るもんだろ?
ただ変換するだけなら難しい知識も不要な、1対1対応の変換ですヨ?
自分の無知と屑さを宣伝するだけだから黙って消えとけ、な?
ちょっと愚痴っただけなのにすごい煽られててわろたw 読み込み関数を自作するとか絶対嫌だ xファイル使えないだけで何故こうもいろいろとハードルが高くなるのだ・・・
DirectX11で初心者切り捨てになったのが痛いね。
OpenGL最高!DirectXは糞!
ダイレクトエックソってかw
>>792 ここは初心者を煽る初心者しかいないからな
それ以上の回答を求めてはいけない
ここはごく数人のヘタレどもがチンシコする糞スレです うまく答えられないときはエラそうになんだかんだいちゃもんつけてきます 看板に偽りスレなので素人が質問しても時間の無駄です わかったら相手にせず黙って去りましょう
横槍ですまんが、優秀な技術者は、たいてい、みんな急がしくて、 初心者の質問に答える暇はないのだよ。 初心者の相手は、初心者に毛の生えた連中か、中級程度で、しかも、 仕事のない暇な奴が請け負うことになる。
横チンですまんが n,-, チ , '´ 〈 ン (( o i i ポ `ヽ| i__ | ))コ ζ, '´i´ cノヽ て ポ '、 _'、_ ノ ン u  ̄ U
801 :
デフォルトの名無しさん :2013/03/16(土) 22:05:26.06
かかってこいよ
ここもそろそろ削除依頼出すか
いいんでない? 質問してくる奴は態度でかいし、文章で理解させるにも限界がある ここがなくても困らんしな
答えられる人もいないしね
あれ?名前欄に749って書くの忘れてますよ?
初心者なのですが詰まってしまいましたので助言お願いします。 ヒントとなる言葉などでもいいので何かしら解決への取っ掛かりをください。 1.D3D_FEATURE_LEVEL_9_3以下を指定すると、 D3DX11CreateShaderResourceViewFromFileで失敗してしまう。 2. 画像を表示しているのですが、元の画像よりも白っぽくなってしまいます。 シェーダは色をそのまま出力するようにしてあるので、色に変化が 起こるはずないと思うのですが、何が原因なのでしょう? codepad.org/GjhY2iue :ソースコード URL codepad.org/bsMuF1vE :シェーダコード URL
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB?
このような質問にはム板のクズたちはいちゃもんつけて馬鹿にしてきます
ブレンドステートが問題かもしれんな(適当)
>>807 1はD3D10_SHADER_ENABLE_BACKWARDS_COMPATIBILITYとか?
エラーの内容がわかるとあれなんだが
812 :
807 :2013/03/20(水) 01:29:51.71
>>808 ああああああああああありがとうございます。
MSDNの_SRGBの説明に書いてある「標準・平均的」という言葉の羅列に騙されていました。
_SRGBを取り除いたらうまくいきました。
あとは1の方の問題のみです。
813 :
807 :2013/03/20(水) 01:38:55.98
>>811 >>808 の方法でうまくいったのが嬉しすぎてリロードし忘れて気づきませんでしたすみません。
エラーはE_INVALIDARGが返されています。
>>811 思わずあるのか確認しちゃったけどそれ
D3DX11CompileFromFileじゃね・・・?
俺は原因がわからんが、DirectXTexでも試してみたらどうだ? directx11.1になってD3DX廃止されたんで代わりに出来たライブラリらしいんだが directx11.0でも使えたはず
816 :
デフォルトの名無しさん :2013/03/20(水) 09:27:01.28
あれ?名前欄に749って書くの忘れてますよ?
ん? 俺は815だが俺に言ってるの? 答えが的外れだったか? ・・・まあいいけど
818 :
807 :2013/03/20(水) 22:22:45.55
かれこれ1週間ほど調べても見つからないので、 あきらめてID3D11Device::CreateTexture2Dを使うことにします。 ご協力ありがとうございました。
819 :
デフォルトの名無しさん :2013/03/21(木) 11:59:56.12
DXライブラリ使わずに WIN32API使ってゴリゴリ書いたらどうなるの? C++言語
該当スレに行け
1mの球体を、10m離れた地上1mの位置から見た状態を再現するのに、 メッシュ(xファイル)のスケール、カメラの位置、距離に相当する数値を設定するには、どんな計算すればいいの? たとえばメタセコ上で1mの球をモデリングしても、Xに変換した段階で、どうもモデルのサイズ(スケール?)と、 Direct3D上での距離(VECTOR3)との関係が掴めません オブジェクトのサイズ・スケールとカメラ、距離等の設定値の関係について説明したサイトとかないでしょうか
ヒント:あなたはユーザーのディスプレイサイズを選べない というかメタセコ上で1mのモデリングって時点で恣意的
視錐台でググってみるとか。
10年以上前に見たMSのDirectXのヘルプもだいぶわかりやすかった。
同等(世代的に以上)の日本語ヘルプが、
>>632 からの一連のレスのリンクが生きていればゲットできるかも。
1メートルというのを頂点座標のどのくらいの値に対応させるかを決めれば済みそうな気はするけど。1:1でもいいし。
>>823 おぅ、間違えました
サイズを意識してモデリングに使ってるのはLightWaveです
LightWave上では実物サイズを意識してモデリングしてるんです
>>824 ありがとうございます
MSのドキュメントと視錘台について調べてみます
826 :
824 :2013/03/24(日) 02:09:22.23
あと射影トランスフォーム、ビュートランスフォームあたりもキーワードになるかも。 ワールドトランスフォームもひっくるめて3Dトランスフォームでもいい。
二次元配列で色情報を持っているのですが、 この配列からテクスチャを作成するうまい方法はないでしょうか? 現在、CreateTexture2DにD3D11_SUBRESOURCE_DATAを渡してテクスチャを作っているのですが、 D3D11_SUBRESOURCE_DATAはどうやら一次元配列しかダメなようで、 毎回、二次元→一次元の変換をしてしまっててもったいない気がするのです。
2次元配列いけるだろ。 pitch指定とか2次元配列のためにあるのだから。
二次元配列がメモリ上で連続してるなら SysMemPitch設定すれば先頭アドレス渡すだけだろ でなきゃ他の方法でも無駄な変換は避けられない
1次元で確保するのがC言語的に正しい多次元配列だからね。 2次元配列と同じ記法が出来るようにした 動的2次元配列もどきは、メモリイメージ的には全く別物
なるほど、動的2次元配列と普通の2次元配列を混合してしまっていました。 今回は動的の方なので考えなおす必要がありそうです。 ありがとうございました。
833 :
デフォルトの名無しさん :2013/04/01(月) 03:17:04.65
未だにver7とか8辺り使ってるんだが これから先、問題ありそう? というか最近は全然DirectX関係の事知らないので どうなってるのかさえ全然わかんねw なんかどっかでM$自体がDirectXの開発中止するとかいうウワサも聞いたが… 誰かやさしく教えて。
先ず服を脱ぎます。
835 :
デフォルトの名無しさん :2013/04/01(月) 04:33:55.37
はい。脱ぎました。 それから?
脱いだら写真うpだろ常考
>>836 Blueかー
そんでblueなっても
古いバージョン動くのかな?
いつもながら互換性は問題ないだろう
840 :
デフォルトの名無しさん :2013/04/01(月) 22:27:01.02
>>839 それは安心した!
とにかく今回からもう古いバージョン動きませんよ〜
ってのが一番困るんで…
2Dゲーばっかなんで最新の機能は全然必要ないんだよね…
板ポリ表示出来て回転・拡縮できて、アルファブレンドできて
多少カメラとかライティング使えればいいんで。
なんか技術的に現在の技術を上手く2Dで活用できそうなのあるかな?
やっぱ技術的な面も、もう少し把握しとかないとマズイよね。
VRAMに直接MMXでゴリゴリ描けないと死んでしまいます・・・っていう感じではないんだなw シェーダ使うと、2D目的でも色々な効果が出せて面白いっすよ
>>841 なるほど。シェーダですか。
一応、ライブラリの中身だけ新しいのに書き換えるかなー
>>841 なというかあまりプログライング的にはギーグではないんだよね。
だから本当はゲーム作るにしてもプログラマは別の人にやってもらった方がいいのかもしれないね。
ギーグの逆襲
完成まで泣くんじゃない
解像度が高い2Dゲームは画像データ作るのが辛いね。
VisualStudio2012入れたんだけど、 廃止されたD3DXの替りとなるもののうち、 DirectXMathしかインストールされんかった。 DirectXTexやDirectXTKはどこ? 最新のWindowsSDKをインストールせにゃならんのか?
849 :
848 :2013/04/03(水) 21:55:02.06
850 :
847 :2013/04/03(水) 22:36:53.66
>>848 ありがとう!
サンプルとして入手せにゃならんとは・・・。
そのうちWindowsSDKに正式に取り込まれるんだろうけど。
852 :
847 :2013/04/04(木) 18:39:44.15
>>851 おー、ありがとう!
ここから落とすのが良さそうやね。
D3DXSaveTextureToFile()を使ってBMPファイルに保存しようとしているのですが デスクトップの解像度以上は正常に保存できないという症状に悩んでいます。 具体的にはテクスチャが2048*2048でも、デスクトップの解像度が1280*1024なら その解像度の範囲だけしか正常に出力されず、それより外は真っ黒になります。 どなたか同じ症状が出たり、解決方法がわかる方はいますでしょうか?DX9.0Cです。
上を書いて気づいたのですが、元のテクスチャはレンダーゲットにして 描画しているため、描画の時点で1280*1024の外はクリップされている のかもしれません。その場合でも解決方法はありますでしょうか? ちなみにレンダーゲットにして描画していますが、BMPファイルに書き 出すのが目的のため、モニタ画面には出していません。
レンダリングターゲットの解像度に依存するよ。 でも、その2Kx2KのテクスチャのSetRnderTargetして描画してるなら、 その解像度でレンダリングできてるはずだけどね。 何がマズいんだろう?
はい、そう思って色々調べているのですが、原因がわかりません。 とりあえず CreateTexture(pTexture) SetViewport() には2048を指定しているのですが、他にもあるのでしょうか? ちなみにSetRenderTarget(pSurf)のpSurfは pTexture->GetSurfaceLevel( 0, &pSurf ) で取得しています。
>描画の時点で1280*1024の外はクリップされている >のかもしれません。 横レスですが、このことを確認する手段ってないんですっけ。UV調整して表示させるとか。 D3D11_BIND_RENDER_TARGET | D3D11_BIND_SHADER_RESOURCE と D3D11_CPU_ACCESS_READ の3本両立はできたようなできなかったような…(できないなら参考にならないかもしれません)
DirectX9みたいだぜ?
859 :
857 :2013/04/06(土) 13:39:50.44
ほんとだ、ごめん
はよ
861 :
853 :2013/04/06(土) 14:05:20.30
DX9のヘルプを見ていて、 >複数のレンダリング ターゲットのすべてのサーフェイスは >幅と高さが同じでなければならない。 に引っかかっているような気がしてきました。確かに現在は メインが1280*1024で、BMP出力用が2048*2048ですね。 ただメインを2048にできるのかわからないので、もうちょっと 調べてみます。
いや、それはマルチレンダリングの場合だろう。一回の描画で複数のターゲットに描画してしまおうってやつだ 853がやってるのはおそらくそれじゃない。マルチレンダリングは大きさがそろってなければエラーだして描画自体できなくなる 二つあったとしても別々に描画すれば大きさが同じである必要はない
863 :
853 :2013/04/06(土) 14:51:42.44
CreateWindow()に2048を指定しても1280よりちょっと大きな サイズにしかならなかったのですが、そのちょっと大きい分だけ BMPが正常に出力される領域が増えたので、やはり ウィンドウサイズ=メインサーフェイスのサイズ=BMPが出力されるサイズ のようでした。 ウィンドウサイズを無視して、メインサーフェイスのサイズを2048 にできれば解決しそうなのですが、そういうことって可能なので しょうか?質問が変わってしまいましたが、よろしくお願いします。
864 :
853 :2013/04/06(土) 14:53:44.08
>>862 あ、なるほど、確かにマルチでは無いですね。別々に描画しています。
普通は可能。BMPで出力したことはないからどうなのかわからんけど シャドウマップは2048以上にするこもあるし、 前のレスにもあるが画面サイズより大きめに描画して表示するスーパーサンプリングっていう手法もある ビューポートがどっかでメインの解像度に切り替わってるってオチじゃないよな?
うん、描画ターゲットだけでなく、深度ステンシルバッファやビューポートも見直してみるべき。
D3DXからDirectXTexやDirectXTKに移行したいけど、 従来のAPIがどれに対応するかすぐに分かる対応一覧表みたいなのを作ってほしいね。
869 :
867 :2013/04/07(日) 11:18:50.26
>>868 うわ神w
DirectXTKも同じようなのないのかな?
そのブログ探してみたけどわかんない・・・。
870 :
867 :2013/04/07(日) 13:10:40.83
872 :
867 :2013/04/07(日) 13:19:55.05
873 :
デフォルトの名無しさん :2013/04/07(日) 20:17:17.48
初心者です。 directxのlibファイルってどこにあるの sdkの中見てもDXUTとか言うファイルはあるけどlibってファイルない
>>873 C:\Windows\System32
にあるよ!
↑ごめん、これは.dllだったわ。
876 :
874 :2013/04/07(日) 20:36:06.51
>>873 基本的なlibファイルはSDKディレクトリ直下のLibディレクトリにある。
DXUTはlibではなくて、cppソースコードで提供されてる。
場所はSamples\\C++。
プロジェクトに登録してコンパイルしてリンクするんだよ。
速度が違うといっても2倍違うとかじゃ無さそうですし Xbox360とWindowsPhoneはオワコン臭がしますい 古いWindowsPCでDirect3D9は使えるけどOpenGLは正常に動かない(あるいはちょっとDirect3Dより遅い) ということがあるのか気になります。 昔のハードではDirect3Dの方に力を入れていてOpenGLは軽視していそうですね
>>878 ハードというよりドライバの違いが大きいみたいよ。
OpenGLはQuadroシリーズで最適化されてるみたい。
ワークステーションで使われるようなCGソフトはOpenGL製のものが多いからね。
とはいっても3Dモデリングソフトではかなり前からOpenGLは推奨されなくなっている。
まあ実際にOpenGLが推奨されないってのは聞いたこと無いけど ウィンドウマネージャやマルチスレッドとの親和性を考慮すると ツール系でもD3D1xで実装した方が良いのは確かだわな OEMドライバにしか対応していないオンボードVGAのラップトップなんかは SM2.0なのにOpenGLは1.3まで、とか多かったなぁ
OpenGL4.3でOpenGL始まったっていう記事を見たが ・・・そうでもなかったのか
886 :
デフォルトの名無しさん :2013/04/10(水) 19:39:09.79
directxのサンプルソースのcreatedevice.cppの中で #include <d3d9.h> #include <d3dx9.h> の後に#include "tes.h" って書いたんだけど tes.hの中のクラスの中で宣言したLPDIRECT3D9 pd3d;でエラー起こる なんかdirectxのかたが認識されてないみたい tes.hの中でd3d9.hをインクルードすると直るけどそんなことしたくない どうしたらいいの?
887 :
デフォルトの名無しさん :2013/04/10(水) 19:40:27.56
errorはc2146とc4430です
888 :
デフォルトの名無しさん :2013/04/10(水) 19:44:18.16
別にヘッダ書いてそこで #include <d3d9.h> #include <d3dx9.h> #include <Windows.h> てやってそれのヘッダを今まで直接directxインクルードしてたとこにおいたら治った どういうこと??
889 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/10(水) 19:49:11.29
GLはグラフィックのみ、DXはグラフィックを含めたゲーム系APIを まとめたもの。ゲーム作るのにどっちを使うかは明白だろ。
891 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/10(水) 22:58:20.52
んじゃどっちも使えw
DirectX9+ANGLE+OpenGL ESだな OpenGLはグラボ選ぶから微妙、DirectXはOS選ぶから微妙、という問題が一気に解決
ANGLEは以前調べた時にはFSAAの拡張が未実装だったり Visual Studio 2008以下を足切りしてたりで個人的にびみょんだった… まあ同人レベルの2D+ゲー開発でスマホ等とソースコードレベルで 互換性持たせたいってんなら悪くない選択だと思う (cocos2dxとか使えという話ではあるけど)
894 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/11(木) 00:59:12.57
いつものカスかw
GLES2.0 なら Direct3D9 と親和性高い 両対応で作るのもわりとやりやすい まあ ES だとフレームバッファ関連がかなり貧弱だったり 携帯端末だとそもそもパフォーマンスがぜんぜん足りなかったりするけども
896 :
デフォルトの名無しさん :2013/04/11(木) 13:26:49.97
この先どうなんのかな。 Winの時代がこれからも続くならDirectX使いたいけど Googleが勢い増しててPC市場も席巻する時代が来ないかな? というかスマホやタブレットがどんどん進化して ほとんどがデスクトップPC不必要な時代が来るとか? 未来が気になる。
健康が一番
ハイエンドマシンはジエンドにはならんだろう
でもさゲームユーザは普通に沢山ゲーム出るマシンのが良いわけで これから先、タブレットとかスマホとかの性能が上がってきたら 手軽に使えてしかも性能的にもある程度のゲームが遊べるようなら そっちに流れないかな? 周辺機器とかも充実してくるだろうし… PCでシコシコゲーム作ってるのは一部の技術的探究心旺盛な ギーグだけってことにならない?
armはまず64bitを出してからだな…
>>899 正直、Windowsが作りやすいので、
Windowsタブレットにはがんばってほしい。
902 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/11(木) 22:38:41.89
>>896 …現実的にはWindowsの中でいろんな開発環境が共存するんだろうな。
Macはまだまだw
高速化についての質問です。 昨今のゲームで使用されているSSAO等の高負荷のエフェクトを 描画するとFPSが3ぐらいになります。 ※グラフィックカードは、NVIDIA GeForce GT650Mです。 どうしたら、昨今のゲームのように30〜60FPSを実現できるのでしょうか? 皆さんは、どのような高速化を行っていますか? 以上、宜しくお願いします。
>>903 それだけで分かるわけねーだろ
ばかやろう
SSAO使ってないときはどんくらいなんだよ
906 :
903 :2013/04/13(土) 08:45:24.02
>>905 SSAO使わない時のFPSは、120ぐらいです。
高負荷のエフェクトを多用し、30〜60FPSを実現している
サンプルプログラム等、どこかにないでしょうか?
907 :
─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG :2013/04/13(土) 09:00:34.49
>>903 3632QM(笑)の質問なら誰かさんが自作自演で答えるよw
どんなタイプのSSAOなのか知らんが、1ピクセル毎のループ回数多すぎなんじゃね? 深度マップと法線マップ・・・ってかテクスチャを参照するのは結構重い処理だって話だ。 それをループするごとにやってたらちりも積もればなんとやらってやつだ コンピュートシェーダで共有メモリにテクスチャ情報突っ込んで参照回数を減らそうっていうやり方も一応ある
909 :
デフォルトの名無しさん :2013/04/13(土) 12:51:27.95
【IT】 「C言語やJavaを使う人は採用しない」「AGKやDarkBASICの方が生産効率が高い」就職活動
http://kohada.2ch.net/test/read.cgi/pcnews/1365242417/139-141 コンソール研究所は13日、C言語やJavaを使う学生を採用しない方針を固めた。
これは昨今のソフトウェア開発現場において社内研修期間を嫌う企業や官公庁の意向を取り入れたもので、
「 卒業=即戦力 」 が求められる新時代への突入を明確にしたものである。
たいていの面接官は ” 学生時代にどんな部活に所属していましたか? ” などと聞くが、それは時代遅れと
なったようだ。
また、C言語やJavaのスキルを問うものに対しても、「 実務経験がなければ意味がない 」 と言う現場の声も
反映した。
コンソール研究所の開発現場から一人の声を拾ってみた。
(以下ソース参照)
SSAOって 結構泥臭い方法なんだな
上の記事って創作?
912 :
デフォルトの名無しさん :2013/04/17(水) 22:37:26.10
少し脱線するかもしれないのですが… visual c++のFORM(win32)上に、 directxで描写した図を挿入するにはどうすればいいでしょうか? イメージは、 directx 変数 = gcnew directx(); -変数に図(グラフ)作成- form1->ADD(変数); [環境] visual c++ 2008 express vs2012へ更新検討中
んー? 図だけでいいならビューポートで描画範囲を絞ればいいんじゃね
>>912 フォーム上に描画用の子ウインドウ作ってそれをhDeviceWindowにするか、
あるいはPresentのターゲットにするとか。
それかウインドウレスで描画して自分でDIBにでも変換する。
DirectXTKのSpriteBatch機能を使ってテクスチャを表示してみたんだけど、 アルファ値による透明表現がうまくいかない。 元々.pngで作った8bit諧調アルファ値を持った画像データを、 DirectXTex付属のTexconv.exeで.ddsに変換して表示させたんだけど、 アルファ値0付近のところが不透明の白になってしまう。 アルファ値0付近〜255だとキレイに透明表現がなされているのに、0付近だけアウト。 テクスチャ圧縮をBC1の2値アルファにしたら0の部分がちゃんと透明になった。 圧縮なしだったり、BC2以上だと同様の不透明現象になる。 SDKのJune2010に付属のテクスチャツールによる変換でも同じだった。 何が原因なんだろう??
915さんのそれに関係があるかどうかは知らないけど、 DirectXTKのGeometricPrimitive::Draw()を使うとき、第4引数(XMVECTORF32)の アルファ成分を1.0fにしていると半透明テクスチャを張っても半透明にならないことはあった。 ソースを追うとif(alpha<1.f)かなんかそんな感じのことをやってたので、 第4引数のアルファ成分を0.9999fにしておくとうまく半透明になった。
ゲーム会社(中小のコンシューマ)って始めは契約社員ばっかりなんですか? プログラマとして応募しようと思ってるんですが、契約社員は少し敬遠してしまいます… ゲーム会社の中小企業で働いている方がいれば、雇用形態の実情を教えて欲しいです。
918 :
915 :2013/04/25(木) 20:49:44.90
Texconv.exeで-pmalphaを指定して.ddsに変換したら正常にアルファ値が反映されるようになった。
http://directxtex.codeplex.com/workitem/667 このページで分かったんだけど、premultiplied alphaというものらしい。
英語苦手だからちゃんと理解してないんだけど、
DirectXTKのSpriteBatchがデフォルトでこれに対応していること、
DirectXTexのTexconvでそのオプションを指定しろ、というのは分かったので解決できた。
>>916 ありがとう。
GeometricPrimitiveも使おうと思ってたので参考になった。
Microsoft公式なのにいい加減なもんだね・・・
919 :
915 :2013/04/25(木) 21:42:13.24
人為的にデバイスロストさせる方法ある? ちゃんとリセットされるか確認したい。 WMPでフルスクリーンとウィンドウを切り替えたけど意味なかった
921 :
916 :2013/04/26(金) 01:21:05.00
たしか前スレくらいで…と思ったらこのスレの
>>187-200 だった。
モニタケーブル抜いたりしたらどうなるんだろう。
>>918 俺のケースは半透明テクスチャといってもddsファイルからのものではなくて
プログラム内でピクセル値を書き込んだものなので参考にしないほうがいいかもしれません。
俺のほうこそ参考にさせていただきます、ありがとうございます。
>>917 新卒なら普通に取ってる。中途で他業種からだと契約社員の方が多いかも
というか応募しようとしてる会社に聞け
まさかSDK落とすだけでこんだけ苦労するとは思わなかったぜ
DirectXを使ってライブラリを作っているのですが ライブラリ部分もクラス化してまとめたるのが一般的ですか? extrunを使って分かりやすくグローバルにしたほうが良いですか?
それはもう本当に、テメエで考えろ、としか…
その程度のことを質問するレベルなら ライブラリを作っても再利用できない。無駄
>>920 デバイスマネージャからデバイスドライバを無効にするってのは、どうだろう
ライブラリは最終的にリンカで呼び出せるようにして プロジェクトファイルには何もしなようにするもの?
エスパーすると 自作ライブラリをサブプロジェクトにするって話かの
931 :
929 :2013/05/16(木) 12:09:37.55
>>930 サブプロジェクトってのがよくわからんけど
DirectXみたいにリンカで設定して読み込んで
ソリューションエクスプローラーには表示されないようにするもの?
ライブラリを自作して ライブラリ修正→ライブラリ&アプリ本体をビルドと 頻繁にやるならIDEでそういうプロジェクトの作り方をすれば良い 既製のライブラリをただ使うだけならリンクするだけで良い
933 :
デフォルトの名無しさん :2013/05/16(木) 22:51:12.95
>>932 もし就職活動とかで見せる場合は
リンクじゃなくて普通にプロジェクトに入れておいたほうが良い?
ソースコードが見えるようになっていればそんなんどっちでもええがな あなたのプロジェクトとやらが弊社の環境で再構築できる保証はございません それと、ここはDirectXを質問するところであって就職活動相談室ではない
>>933 ゲーム会社の話だよね?
俺は自分のソースコードしか送ってないけど、普通に作品通ってるから大丈夫だと思うよ。
自分が何故そうしたのか、それを選んだのかを 「説明できる」ことが重要
こういうやつが新人で入ってくるんじゃたまんねーだろう
940 :
デフォルトの名無しさん :2013/05/23(木) 22:19:44.54
DirectXでゲームライブラリを作ろうと思っているのだが 作った機能をどういうふうにまとめるのが一般的? extrunでグローバルにすれば楽だけど これで良いの?
そんなレベルの質問してるやつのライブラリなんか使うより 生で使ったほうがよっぽどいいな
やりたいようにやればいいのでは? 自分が使いやすい様に、気に入るまで何度でも手直ししてさ ただし、ライブラリ作るだけじゃなくて、ゲームもちゃんと作るんだぞ
945 :
デフォルトの名無しさん :2013/05/24(金) 08:31:51.92
DirectXを使ってC++でライブラリを作っているのですが ライブラリ部分をクラス化してまとめた場合DLLにするのは得策ですか? Cからも使えることを売りにしたいです!
946 :
デフォルトの名無しさん :2013/05/24(金) 12:36:25.45
最新バージョンDirectX11.1はWindows8専用ってことは 作るのはWindows8のみで 完成したアプリもWindows8以外だと動く保証はないってこと?
Platform Updateを当てたWin7は部分的にD3D11.1をサポートしてる
DirectXTKはSharpDXのToolkitみたいに簡単な Frameworkも提供してくれると嬉しいな
>>943 お前の質問は抽象的すぎて答えようがないし
大体exturn()とか
どんだけバカなこと書いてるのかわかってねーの?
えくすとぅるーんwww
>>949 質問したのは俺じゃないからな
お前がこのスレで煽りばっかしてるからうざかっただけ
952 :
946 :2013/05/25(土) 16:30:30.96
ごめん聞き方が悪かった XPから8まで幅広く使える、幅広く動くアプリを作りたい場合 最新のDirectX11.1使うのは得策じゃない? 少し古いバージョンを使ったほうが良い?
DirectXじゃなくても普通そうだろ
XPまで視野に入れてるのならどのみちD3D9以外選択肢はねーぞ
XPではD3D10/D3D11CreateDeviceAndSwapChain関数が確実に失敗するだろうからDirectX9以前が必須だね XPを切り捨てるなら10以降が使えるけど、 Sandy BridgeのGPUコアが対応してるのは10.1までなので注意 幅広く対応したいなら古い技術を使うことになるのは仕方ないねー
そこまでOSがサポートするDirectXのバージョンにはこだわるのに グラボがサポートするバージョンについては一切話が出ないのが不思議で仕方がない
Direct3D11のインタフェイスを使いつつ、 ShaderModel4Level9.3でやっているよ。 D3DXを完全捨てたのでシェーダが9だとやりにくい。 さすがにOSはXPを切り捨ててもいい時期だと思う。 ジオメトリシェーダが使いたいので、 9系のハードも切り捨てようか思案中。 でもスマフォに移植するときにOpenGLES2だと結局使えないし、 将来3でもサポートされないのが踏み切れない理由。
DirectXの専門スレって無いのですか?
まずはDirectXの専門スレが具体的に何をするスレなのか明確にしろ。
分類上、初心者以外が集まってる場所
初心者以外が集まって何をするのかが不明確。
「鬱だ氏のう DirectX」ってタイトルでスレ建てすれば (自称)中級者以上が集まってくるから、試してみな
>>961 すまん、右脳派の俺にとって明確とか不明確の言葉で逃避しているようにしか見えない
>>962 ありがとう、ここってそういう場所なのか
目的が不明確で無駄にスレを増やしても、結局使われずに落ちるだけだから言っているんだよ。 出来る人間なら今更質問することなどないし、 MSがDirectXの更新をする気配も無いから新しい話題があるわけでも無い。 この状況でいったい何がしたいんだ? 右脳派と考え無しと一緒にしたら、本当の右脳派とやらに失礼だぞ。
自分の考えてる事が把握できるのが左脳派で、把握できないのが右脳派。 左脳派と右脳派が会話すると、右脳派は左脳派の言ってる事を把握できるが、 逆に左脳派は把握できないから混乱するって洋番組で観たな。 だからこの会話内容は不思議でもない。 左脳で絵を描いたものを左右反転させると別人になる。 右脳で絵を描いたものを左右反転させると同一人物になる。 左脳は一部だけ見てて、右脳は全体を見てるかららしいが、試すと面白い。
966 :
デフォルトの名無しさん :2013/05/28(火) 19:36:58.10
初歩的な質問ですいません #define ○○(○○ | ○○ | ○○) の | ってどういう意味ですか?
論理和じゃねーの?
そんなところにバーティカルバー書いたらエラーになるんじゃね? と思ったけどRGBマクロとかの話なんだろうな
DirectXというより3Dの質問になってしまうのですが、 3DモデルにD3DXMatrixScaling等で作った拡大縮小用のマトリクス演算を行う際、 X軸要素に対してマイナス1倍を掛けてモデルをX軸に対して反転させると モデルが裏返ってしまいますよね。 今まではD3DCULのフラグで、反転描画するなどして対応してたのですが、 それが使えないケースに遭遇してしまい困っております。 マトリクス演算によって、モデルの形を変えずにモデルのポリゴンの向きを 裏返し直したいのですが、良い方法は無いでしょうか?
>>970 その1
反転したモデルを用意する
その2
インデックスを入れ替えて面を裏返しにする
972 :
970 :2013/05/29(水) 02:09:14.37
>>971 早速の回答ありがとうございます。
どちらの方法でも問題の解決は一応可能ですよね。
ただ、ゲームで使う予定ですので、リソースを食う前者も、処理速度を食う後者も
自分の用途では使えない上、物理演算が絡んでるのでどうしてもマトリクス演算の
部分で解決させたかったのです。
適当な行列を掛けてやれば、ポリゴンの向きが反転するだろうと思ったのですが
本来裏返しにはインデックスへのアクセスが必要ですし、どうもそう簡単な処理じゃないみたいですね…。
回答ありがとうございました。
インデックスを入れ替えるごときで処理速度を食うって、 馬鹿の考えることはさっぱり理解できない。
974 :
966 :2013/05/29(水) 12:27:26.39
ググってビット演算子の意味は分かったけど 結局、 dwFlage = ○○|○○|○○; とかどういう意味なの?
昔々のコンピュータは1つの変数に複数の値を詰め込む技術が必要だった 20131231を一つの数値として扱い、 必要なときに各部の値を取り出すようなイメージ まあ実際は10進値じゃなくて2進値で計算する それをふまえてもう一度ビット演算の意味を考えれ
ていうかDirectXどころのレベルじゃない 帰れ帰れ
とても参考になりますた
>>974 たとえば8bitのフラグを複数定義してあったとして
#define FLAG_1 0x01
#define FLAG_2 0x02
#define FLAG_3 0x04
これを
unsigned char flag = FLAG_1 | FLAG_2 | FLAG_3;
みたいな感じで使う。
数値じゃなくてビット列で考えないとわからない。
あー、初心者には不思議に思えるかもな。 ビット列で示されるとあー、って思えるw どっかに解説してるサイトあると思うよ。 伝統的なテクニックだし。
10進→16進→2進まで 段階を追って見せてやらないとわかんないべ
Visual Studio C++2012でDX2010 を設定しました。 設定出来たか確認したいのですが、調べる方法はありますか?
そもそもVC2012には最初から最新のDirectXのライブラリが入っているから、 今更D3DXを使うような旧式の方法を使わない限り入れる必要が無い。 シェーダコンパイラもSDKより新しいものが付属している。
ビット演算も慣れてないと意外に間違うんだよな。
WPFってDirectXですか?
>>982 プロジェクトのプロパティのVC++ディレクトリを見て、インクルードとライブラリのパスを確認
設定したいDirect SDKへのパスが$(IncludePath)等より前に参照されるようになっていれば一応OK
これはSDKインストール時に自動ではやってくれない
>>985 最終的なコンポジションやレンダリングはD3D9でやってる
967の時点でスレ違いってレスが入らないことにビビるけど、もはやそういう時代か
988 :
デフォルトの名無しさん :2013/05/30(木) 02:26:40.89
ライブラリってどうやって作ればいいの? 今は 1 ネットとかのサンプルをコピペする 2 とにかく動くようにする 3 中身解析 って感じでやっているのだけど このやり方だとサンプルが見つからなかったとき詰んでしまう あとサンプル以上のものが作れない 普通はどうやってつくるものなの?
なんだって????? コードコピペしなきゃならない時点でプログラミングスキルが危ういだろ プログラミングの勉強しろ ライブラリとか言ってる場合じゃないだろ
また
>>924 か。自分で考えることを放棄するために全力を尽くしている感すらあるな
991 :
988 :2013/05/30(木) 08:55:24.05
>>989 プログラムスキルをつければ
あの長いプログラムをコピペなしで書けるようになるものなの?
そこらへんがわからないんだ
初心者相手にいきなりフルスクラッチを要求するのは無理があるだろうよ・・
最初は既存のものを動かして解析する
>>988 の方法でいいと思うよ。
そこから、自分なりにそのコードに機能追加したり改造して慣れていけばいい。
そうだよ。なんでも模倣から始まるんだよ。
ライブラリの書き方 1.DirectXで毎日10時間みっちり3年プログラムをする。 2.そのうちなんか毎回同じこと書いている気がする・・とか思い始める。 3.そうだライブラリにしよう!
そもそも何を指してライブラリと呼んでいるかもあやしい 呪文の羅列だと思って書いていたら何年つづけても無理だろ
OpenGL系使ってるひとは 毎回呪文書いてても何とも思わないのが多い見たいだよね 糞コードが氾濫してる
>>991 そりゃそうだよ
長いコードは才能とかの問題じゃないからな
必要なコード書いてたら長いコードになったってだけの話
ぶっちゃけ、ライブラリ部分を何も見ないで書いたから何?って感じだけどな
まあ「extrunでグローバルで楽だし」の時点で察してやれよw
次スレょろ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。