【C++】 DirectX初心者質問スレ Part26 【C】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/10/25(日) 02:06:24これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ
【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。
【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。
【C++】 DirectX初心者質問スレ Part25 【C】
http://pc12.2ch.net/test/read.cgi/tech/1251208220/
0002デフォルトの名無しさん
2009/10/25(日) 02:50:26ポリゴン1にテクスチャ1とテクスチャ2を重ねて貼って、
ポリゴン2にはテクスチャ1だけを貼りたい場合、どうすればいいんでしょうか?
頂点デクラレーションとか頂点ストリームとかできるだけ使いまわしてやりたいのですが
ポリゴン2にはテクスチャ2の変わりに全体が白あるいは透明のテクスチャを貼るなどすればできそうですが、
他に簡単な方法ありますか?
0003デフォルトの名無しさん
2009/10/25(日) 03:07:59それでFPSゲームのようにカメラを中心に視点を回転させたいのですが
どのようにすればよいのでしょうか?
よろしくお願いします
0004デフォルトの名無しさん
2009/10/25(日) 03:16:52テクスチャ2を使用するパターンと使用しないパターンの
ピクセルシェーダプログラムを記述して、techniqueで切り替えればよい。
>>3
確か2つか3つほど前のスレに同じ話題があった。
探せないならぐぐったほうが早いだろう。
0005デフォルトの名無しさん
2009/10/25(日) 03:25:23DirectInputでジョイスティックの軸入力の分解能とか取得できますか?
0006デフォルトの名無しさん
2009/10/25(日) 04:28:38できました ありがとうございました
テクニックで切り替えられるということを知らなかったです
0007デフォルトの名無しさん
2009/10/25(日) 06:32:16とりあえずためしにビルドしてみたんですが、DXUTmisc.hの109行目のアサーションに引っかかりました
TYPE& GetAt( int nIndex ) const
{
assert( nIndex >= 0 && nIndex < m_nSize ); return m_pData[nIndex];
}
こういうのが出た場合、どこを調べればいいんでしょうか?
0008デフォルトの名無しさん
2009/10/25(日) 08:43:41テクスチャを貼るにはどうすればいいの?
もしかして普通はテクスチャは複数より一枚だけなの?
0009デフォルトの名無しさん
2009/10/25(日) 12:17:41お前、学校で国語をもう一度勉強しなおせ。
お前のPCのディスプレイが他のヤツの目の前にあるわけでもないのに
その説明で質問の意図が伝わるわけ無いだろ。
プログラマブルシェーダーでテクスチャ貼るれてるのに
貼り方が分からんってどういうことだ。
テクスチャは複数より一枚だけってなんだ。日本語になっとらん。
0010デフォルトの名無しさん
2009/10/25(日) 13:37:51きもちわるい
0011デフォルトの名無しさん
2009/10/25(日) 15:05:36しかしこれ以上まともな質問文を書けるかなると
最近の若い子にはそれも難しいのかもしれない。
0012デフォルトの名無しさん
2009/10/25(日) 15:19:03やっぱり無理というものだろう。
0013デフォルトの名無しさん
2009/10/25(日) 15:49:47それを頭が不自由な人と呼びます
最近はめっきり殖えましたね
0014デフォルトの名無しさん
2009/10/25(日) 16:16:360015デフォルトの名無しさん
2009/10/25(日) 16:48:54o めっぽう
0016デフォルトの名無しさん
2009/10/25(日) 16:52:360017デフォルトの名無しさん
2009/10/25(日) 17:02:52・現状どうなっているのか
・それに対する自分の意見
・自分の環境は何なのか(OS,CPU,GPU)
・DirectXのランタイムをDebugRuntimeにして実行してエラーがあるのかどうか、あるならそのエラーは何なのか。
・可能ならサンプルをアップローダーに。
このくらいは質問するなら情報として欲しいわ。
0018デフォルトの名無しさん
2009/10/25(日) 17:04:150019デフォルトの名無しさん
2009/10/25(日) 17:09:45ごめん
0020デフォルトの名無しさん
2009/10/25(日) 21:05:16速度気にしないなら頻繁に書き換えても支障はないですよね?
0021デフォルトの名無しさん
2009/10/25(日) 21:17:170022デフォルトの名無しさん
2009/10/25(日) 21:20:37バカはブログにでも書いてろ
0023デフォルトの名無しさん
2009/10/25(日) 22:40:020024デフォルトの名無しさん
2009/10/25(日) 22:58:38まあメリットがわかんねえけど
0025デフォルトの名無しさん
2009/10/25(日) 23:06:210026デフォルトの名無しさん
2009/10/25(日) 23:30:000027デフォルトの名無しさん
2009/10/25(日) 23:32:380028デフォルトの名無しさん
2009/10/25(日) 23:39:1000297
2009/10/26(月) 02:05:08結局、リストボックスの機能だけを実装するのは諦めて
DXサンプルの方を本体にして自分で作ったやつをそこに移しました
初期化とかウィンドウの作成とかDXUTの内部でやってて見えない所が多すぎて
正直これでいいのかとは思うけど、とりあえず望む画面はできました
0030デフォルトの名無しさん
2009/10/26(月) 02:49:240031デフォルトの名無しさん
2009/10/26(月) 16:30:03やっぱり各ブロックに適応するようにすればいいの?
それとももっと簡単な方法があったりするの?
0032デフォルトの名無しさん
2009/10/26(月) 17:09:54意味不明、プログラムの前に日本語を勉強してこい。
>各ブロック
ブロックの定義が不明。
0033デフォルトの名無しさん
2009/10/26(月) 17:14:330034デフォルトの名無しさん
2009/10/26(月) 17:16:420035デフォルトの名無しさん
2009/10/26(月) 17:26:480036デフォルトの名無しさん
2009/10/26(月) 20:48:28各ブロックじゃなくて、各頂点のボックスに入れて実装する。
たぶんこれが一番簡単かな。
シェーダをボックスごとに対応させると高速化されてお勧め。
0037デフォルトの名無しさん
2009/10/26(月) 20:52:07でも流行る頃には最初といろいろ仕様が変わってるんだろうなあ・・・
0038デフォルトの名無しさん
2009/10/26(月) 21:25:14ttp://www.twin-tail.jp/wiki/index.php?%E3%82%B9%E3%82%AD%E3%83%B3%E3%83%A1%E3%83%83%E3%82%B7%E3%83%A5%E3%81%AB%E6%8C%91%E3%82%80%E3%81%B9%E3%81%8F
0039デフォルトの名無しさん
2009/10/26(月) 21:31:16現時点で、DirectX11が使えるPCは1.52%、Windows7のみ。
10/28からはWindows UpdateによってVistaでDX11が使用可能になるので、計20.14%。
ただ、Vistaのシェアはもう落ち始めているので、XPユーザーの7への移行がどれだけ早く進むかが鍵になる。
Vistaのシェアがピークを超えて初めて減少へ : [特集]Windows 7 - Computerworld.jp
ttp://www.computerworld.jp/topics/win7/163870.html
ttp://www.computerworld.jp/images/_main/200910/1638702.jpg
第二要因はハードの普及。
AMDはほぼ全レンジでDX11を展開しつつあるが、NVIDIAは来年3月までにハイエンド〜ミドル、
そこから下はDX10.1でお茶を濁しただけでDX11対応予定は未定。
グラフィックチップ最大シェアを占めるIntelのDX11対応予定は、Larrabeeを除いて全く不明。
以上から、個人的にはDX11の本格利用は早くとも2011年以降で、それまではDirectX9で引っ張るんじゃないかと思う。
もしかしたら、移行期間の落としどころとしてDX11のDX10モードでの使用が流行る可能性も無いとはいえないがかなり微妙だな。
少なくともネイティヴDX10が闇から闇へ葬られるのは確定だろう。
0040デフォルトの名無しさん
2009/10/27(火) 01:15:473DにおけるX,Y,Zはfloatで設定するようなのですが
これがどういうことなのかまったくわかりません
どの初心者サイトもfloatで頂点を座標を記入していて
どうやってその数値を導き出したのか解説がありません
2Dの座標の場合はピクセル座標を入力すれば
思ったような図形がでわかりやすいのですが
2Dのように、ピクセルのX,Y座標を入力して点を描くには
どうすればいいでしょうか?
0041デフォルトの名無しさん
2009/10/27(火) 01:22:53いまいち意味がわからないんだが
それは3Dにおける(0,0,0)はどこなのかってこと?
それともある座標に配置するのに必要な行列はどうやって用意するのかってこと?
0042デフォルトの名無しさん
2009/10/27(火) 01:32:51みたいな話じゃないのか
0043デフォルトの名無しさん
2009/10/27(火) 01:38:58か?
004440
2009/10/27(火) 01:49:17そうなんです
うまく説明できないのですが
ローカル座標に対してワールド座標変換などいろいろ使って
画面に図形を表示すると思うのですが、
(x,y)の位置に点を打つにはその座標変換にどのように値を入れればいいのかが
よくわからないんです。すべてfloatの値で入力するようになっていて
そのfloatの値が意味するものが何かがわからないので、どうすればいいかわからないのです
最終的にやりたいのは、囲碁の盤面のように、長方形のマスを並べて格子状を描きたいだけです
0045デフォルトの名無しさん
2009/10/27(火) 01:53:15int a;
みたいに
float x,y,z;
D3DXVECTOR3 point(x,y,z):
っていう
または
D3DXMATRIX matWorld;
D3DXMatrixTranslation(&matWorld,x,y,z);
か・・・
うーん・・・よくわかんねえ
少なくとも何も表示されてない
ウィンドウを表示するくらいはできてないとなんとも・・・
0046デフォルトの名無しさん
2009/10/27(火) 01:54:18長さ1をタバコ1個分としてもいいし東京ドーム1個分としてもいい
004740
2009/10/27(火) 02:05:13なるほど、ローカル座標はとくにこだわらなくていいということですよね?
ローカル座標のプリミティブをどれぐらいの大きさにするかは
あとの座標変換で処理すると・・・
でも、そこで問題なのが
2Dのピクセル座標の場合は、回転行列や平行移動行列を使って
直線を任意の位置に回転させたり移動させたりするのはできるけど
3Dの場合は座標がfloatで入力しないといけないのですが
平行移動行列にどういう値をいれれば任意の位置に移動できるかがわかりません
例えば、1.0fにすると画面の端まで直線が伸びる
ということは1.0fの頂点がビューポートの最大値のピクセル座標の点という風に自動で計算されているということですよね?
0.5fだと画面の半分の位置。ビューポートは4:3のアスペクト比なので座標変換しないと
0.5fの4辺の長さを持つ長方形は正方形で表示されないですよね?
0048デフォルトの名無しさん
2009/10/27(火) 02:08:01割合で座標を指定すると考えればいいよ
X=0.5,y=0.5の場所に表示を画面(640,480)に対して行えば(320,240)になるってこと
そのために小数点で細かく指定できたほうがいいよねっていう
0049デフォルトの名無しさん
2009/10/27(火) 02:24:59>最終的にやりたいのは、囲碁の盤面のように、長方形のマスを並べて格子状を描きたいだけです
ならば
変換済み頂点(ディスプレイ座標)を使っておくれ
ttp://marupeke296.com/DXG_CreateBorad.html
参考になるかな
005040
2009/10/27(火) 02:25:42なるほど、割合ですか
平行移動行列も割合で入力するということですね
あと、ワールド座標の(0,0,0)は画面の中心になるというのも混乱してた理由でした
(ワールド座標変換したら左上が原点になると思ってた)
もう少しいろいろやってみます
ありがとうございます
0052デフォルトの名無しさん
2009/10/27(火) 03:01:56視点の手前にあればきっと画面のどっかに表示されるだろレベル。
綿密に計算すればできるけど。
0053デフォルトの名無しさん
2009/10/27(火) 03:04:490054デフォルトの名無しさん
2009/10/27(火) 03:07:05( ´・ω・)つ D3DXVec3Project
0055デフォルトの名無しさん
2009/10/27(火) 03:08:12005640
2009/10/27(火) 06:06:12float x=-1f + dx/ width/2;
これでできました
0057デフォルトの名無しさん
2009/10/27(火) 07:08:02特定のZ位置で、スクリーン座標と座標体系を一致させたカメラぐらい、
簡単に作れるんだが。
0058デフォルトの名無しさん
2009/10/28(水) 19:48:03int image2 = LoadGraph("back.png");
if(Buf[KEY_INPUT_Z] == 1)
{
DrawGraph( 0 , 60 , image1 , FALSE ) ;
}
if(Buf[KEY_INPUT_X] == 1)
{
DrawGraph( 0 , 60 , image2 , FALSE ) ;
}
これを実行して
キーを押すと
数秒間、画面が真っ暗になって
もどって
右下に「ディスプレイ ドライバの応答停止と回復」って出るんですけど
パソコンの問題でDirectXとは関係ないですか?
OSはVistaです
0059デフォルトの名無しさん
2009/10/28(水) 19:58:21LoadGraphとかDrawGraphとかの独自関数の中身なんてしったこっちゃないんだけど
毎ループ画像読み込みしてるから死んでるとか
0060デフォルトの名無しさん
2009/10/28(水) 20:02:260061デフォルトの名無しさん
2009/10/28(水) 20:08:050062デフォルトの名無しさん
2009/10/28(水) 21:25:28ってこったなぁ。
0063デフォルトの名無しさん
2009/10/29(木) 00:14:50DirectX=DXって勘違いするのかな。
0064デフォルトの名無しさん
2009/11/01(日) 18:35:16皆さんはどういうソフトを使ってますか?
お勧めのものがあったら教えてください
0065デフォルトの名無しさん
2009/11/01(日) 18:39:480066デフォルトの名無しさん
2009/11/01(日) 19:49:230067デフォルトの名無しさん
2009/11/01(日) 21:25:07Direct3D9: (ERROR) :Stream 0 size is too small
エラーの意味がよくわかりません
ひとつめのファイルを読み込んだときは正常に動作するけど、
ふたつめのファイルを読み込むと、初期化失敗してるのか上記のエラーがでます
Root handleってなんですか
006867
2009/11/01(日) 22:38:30ただ、大したことしてないのにCPU使用率が思ったよりいってて不安なんですが、
(Core2DuoE8400でCPU使用率5〜15%、メモリ22MB使用)
DirectXで作るとこんなものなんでしょうか?
フレームとかを作って秒間60回以上は描画しないようにしたら下がるでしょうか?
0069デフォルトの名無しさん
2009/11/01(日) 23:00:15お前の作ったプログラムの内容も分からないのに、
「大したことをしていない」という情報だけで「こんなもの」と聞かれたって、
それで他人に説明したつもりなのか?
いったいどれだけ脳みそが腐っているんだ?
007067
2009/11/01(日) 23:11:35すいません、説明不足でした
ファイルの情報をもとに数十個の四角ポリゴンをテクスチャをつけて描画しています
ユーザ側の入力がなければ画面は変化しません
できれば、67の質問の方にも答えてもらえると助かります
0071デフォルトの名無しさん
2009/11/02(月) 07:00:120072デフォルトの名無しさん
2009/11/02(月) 08:17:59使っていないなら使わない
0073デフォルトの名無しさん
2009/11/02(月) 08:40:17"67の技術力がこんなものしか作れない程度"だろ
0074デフォルトの名無しさん
2009/11/02(月) 08:54:40いくつなのか分からない
>テクスチャ
解像度も枚数も分からない
>エラーの意味はよくわからないけど、とりあえずエラーは出ないようにできました
何を直したのかも分からない
自ら情報を出さずに勝手に考えてくれるだろうと怠ける人間は、
プログラムを組むのには向かない
0075デフォルトの名無しさん
2009/11/02(月) 10:49:370076デフォルトの名無しさん
2009/11/03(火) 00:40:440077デフォルトの名無しさん
2009/11/04(水) 10:40:39テクスチャをRenderTargetに据えてレンダリングしてるんだけど、
RADEON、Intelオンボードでは正常に表示されるのに、
GeForceだけ表示がおかしくなる。
同じようなことになったことある人っていない?
0078デフォルトの名無しさん
2009/11/04(水) 11:20:370079デフォルトの名無しさん
2009/11/04(水) 13:03:21これってこのプログラムを使ってる人がそんな多くないから、とりあえず引っ掛けておくかとかそういう意味であってます?
0080デフォルトの名無しさん
2009/11/04(水) 13:12:36ここは個別ソフトのサポート場所じゃない。
サポセンにでも聞けよ。
0081デフォルトの名無しさん
2009/11/04(水) 14:02:17GeForce 9800GT と、
GeForce GT 220 。
RADEON HD 4850、
Intel GMA X4500
だと問題なかった。
DirectX9を使用。
XP、Vista、7、x86/x64と比べてるけどOSの差は見られない。
0082デフォルトの名無しさん
2009/11/04(水) 15:02:23ソースうp
前にインデックスバッファを途中から読もうとしたら
GeFoとIntelは想定通りに動いたのに
Radeは先頭からしか読めなかったとかはあった
0083デフォルトの名無しさん
2009/11/04(水) 15:57:30了解。
プログラム本体はC#で書いていてサンプルにならないので、HLSLだけアップロードした。
http://www.dotup.org/uploda/www.dotup.org330068.zip.html
>前にインデックスバッファを途中から読もうとしたら
>GeFoとIntelは想定通りに動いたのに
>Radeは先頭からしか読めなかったとかはあった
かなり試行錯誤が必要だったけど、一応3機種ともうまく動く方法があったと思う。
今はそういう動かし方(インデクスバッファを途中から使用する)をしてないのでよく分からない。
0084デフォルトの名無しさん
2009/11/04(水) 16:33:050085デフォルトの名無しさん
2009/11/04(水) 16:35:07デフォルト値がADDだから、恐らく今回の問題とは関係ないだろうけど。
0086デフォルトの名無しさん
2009/11/04(水) 23:27:45どもども。
色々試してみた結果、どうもポストエフェクトをかける前の段階、
DPOOL_DEFAULTで確保したRenderTargetのテクスチャに正しく書き込めていないor読み出せていないことが分かった。
DPOOL_DEFAULTで確保したテクスチャって画像のデータを取り出す方法ありますか?
フレームバッファはGDI経由で取れるんだけどなぁ。
0087デフォルトの名無しさん
2009/11/05(木) 00:10:000088デフォルトの名無しさん
2009/11/05(木) 01:49:54GetRenerTargetDataとか
0089デフォルトの名無しさん
2009/11/05(木) 18:33:35ttp://msdn.microsoft.com/ja-jp/library/cc351886.aspx
ttp://msdn.microsoft.com/ja-jp/library/cc351820.aspx
MSDNを読んでもどのエラーが返ってきているのか分かりません
エラー値はどうやって調べればいいのでしょうか?
0090デフォルトの名無しさん
2009/11/05(木) 18:43:23DxGetErrirDescription
0091デフォルトの名無しさん
2009/11/05(木) 19:13:090092デフォルトの名無しさん
2009/11/05(木) 19:15:40DirectX Error LookupっていうツールがSDKに入ってるよ。
エラーコード入れたら詳細を教えてくれる。
0093デフォルトの名無しさん
2009/11/05(木) 21:26:09終了するとこんな感じのエラーが続くんですが、メモリリークというやつでしょうか?
与えられた数値からポリゴンの頂点情報の作成を行う関数があり、
その関数を二度目に使用する行をコメントアウトすると発生しなくなるので、そこが原因だと思われます
頂点バッファを毎回Release→Createするようにしてみましたが変わりません
頂点情報を書き換える場合、何か別に開放しなければいけないものがあるんでしょうか?
009493
2009/11/05(木) 22:02:57次からはメッセージループ中に呼び出しています
頂点情報を書き換えてポリゴンを移動させているのですが、
pd3dDevice->CreateVertexBufferもしくは
D3DXCreateTextureFromFileをその関数内で行うと
アプリケーションの終了時に必ず上記のようなエラーが出てしまいます
LPDIRECT3DTEXTURE9およびLPDIRECT3DVERTEXBUFFER9を
デストラクタから呼び出した関数で全てリリースしているのは確認しているのですが、
その後にエラーが起きてしまいます
分かる方いたら教えてください
0095デフォルトの名無しさん
2009/11/05(木) 22:05:25問題と思われる部分を貼り付けてみれ
0096デフォルトの名無しさん
2009/11/05(木) 22:30:34DirectX9環境で、
pD3DDevice->CreateTexture(1024,1024,1,0,D3DFMT_A8R8G8B8,D3DPOOL_MANAGED,&pTexture,NULL);
で作成したテクスチャーをSetTexture → DrawPrimitiveUpで描画したいのですが上手く表示できません。
Spriteを使って表示させた場合は上手く表示できるのでテクスチャの作成に問題はないと思うのですが、
表示方法の問題でしょうか?
Spriteでは正常に表示でき、DX8上の同様なコードではうまく動きましたが、
DX9上でSetTextureでは表示出来ないのです。
D3DPOOL_MANAGEDが臭いのですが、動的にテクスチャーを変化させるため、
D3DPOOL_MANAGEDを使わなくてはならないのです。
何かおかしいところがあったら教えてください。m(__)m
0097デフォルトの名無しさん
2009/11/05(木) 22:31:36#define D3DFVF_VERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE|D3DFVF_TEX1)
typedef struct _D3DVERTEX_ {
float x,y,z;
float rhw;
DWORD color;
D3DXVECTOR2 tx;
}D3DVERTEX;
void drawtexture(int n,int x,int y,int a)
pD3DDevice->SetFVF(D3DFVF_VERTEX);
pD3DDevice->SetTextureStageState(0,D3DTSS_COLOROP,D3DTOP_SELECTARG1);
pD3DDevice->SetTextureStageState(0,D3DTSS_COLORARG1,D3DTA_TEXTURE);
pD3DDevice->SetTextureStageState(0,D3DTSS_ALPHAOP,D3DTOP_MODULATE);
pD3DDevice->SetTextureStageState(0,D3DTSS_ALPHAARG2,D3DTA_TEXTURE);
pD3DDevice->SetTextureStageState(0,D3DTSS_ALPHAARG1,D3DTA_CURRENT);
pD3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,TRUE);
pD3DDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
pD3DDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
0098デフォルトの名無しさん
2009/11/05(木) 22:32:330099デフォルトの名無しさん
2009/11/05(木) 22:33:13pD3DDevice->Clear(0,NULL,D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER,D3DCOLOR_XRGB(0x00,0x00,0x00),1.0,0);
D3DVERTEX pV[4];
// 座標設定
float w = (float)800/(float)1024;
float h = (float)600/(float)1024;
pV[0].x = (float)x;
pV[0].y = (float)y;
pV[0].z = (float)0;
pV[0].rhw = 1.0f;
pV[0].color = D3DCOLOR_ARGB(a&0x0FF,0,0,0);
pV[0].tx = D3DXVECTOR2(0.0f,0.0f);
pV[1].x = (float)(x+800);
pV[1].y = (float)y;
pV[1].z = (float)0;
pV[1].rhw = 1.0f;
pV[1].color = D3DCOLOR_ARGB(a&0x0FF,0,0,0);
pV[1].tx = D3DXVECTOR2(w,0.0f);
010093
2009/11/05(木) 22:33:29DispatchMessage(&msg);
}else {
m_draw->Move(pd3dDevice, 1, L"Data\\maru.png", 300 + mx, 300 - my, 200, 200);
m_draw->Draw();
}
}
return( int ) msg.wParam;
}
以上がメインのcppファイルの問題部分を削ったものです 4行目をコメントアウトするとエラーは消えます
以下が描画クラスの関数です
HRESULT MyDraw::Move(LPDIRECT3DDEVICE9 pd3dDevice, int id, WCHAR* str,int m_x, int m_y, int width, int hight)
{
pD3DDevice->CreateVertexBuffer( 4*sizeof(VERTEX_POS),D3DUSAGE_WRITEONLY,0,D3DPOOL_MANAGED, &m_pV_POS[id], NULL );
MY_VERTEX_POS* v0;
m_pV_POS[id + 110]->Lock( 0, 0, (void**)&v0, 0 );
v0[0].p = D3DXVECTOR3((float)(m_x - 400), (float)(m_y - 300 + hight), 0.0f );
v0[1].p = D3DXVECTOR3((float)(m_x - 400 + width), (float)(m_y - 300 + hight), 0.0f );
v0[2].p = D3DXVECTOR3((float)(m_x - 400), (float)(m_y - 300), 0.0f );
v0[3].p = D3DXVECTOR3((float)(m_x - 400 + width), (float)(m_y - 300), 0.0f );
m_pV_POS[id]->Unlock();
D3DXCreateTextureFromFile(pD3DDevice, str, &m_pTexture[id + 110]);
return S_OK;
}
頂点の作成、テクスチャの読み込みは、どちらか片方をコメントアウトしてもエラーは消えません
両方ともコメントアウトするとエラーは消えます
頂点、テクスチャ、どちらのオブジェクトもデストラクタから呼び出した関数でReleaseしています
0101デフォルトの名無しさん
2009/11/05(木) 22:34:16pV[2].x = (float)(x+800);
pV[2].y = (float)(y+600);
pV[2].z = (float)0;
pV[2].rhw = 1.0f;
pV[2].color = D3DCOLOR_ARGB(a&0x0FF,0,0,0);
pV[2].tx = D3DXVECTOR2(w,h);
pV[3].x = (float)x;
pV[3].y = (float)(y+600);
pV[3].z = (float)0;
pV[3].rhw = 1.0f;
pV[3].color = D3DCOLOR_ARGB(a,0,0,0);
pV[3].tx = D3DXVECTOR2(0.0f,h);
//表示
pD3DDevice->SetTexture(0,pTexture0[n]);
pD3DDevice->DrawPrimitiveUP(D3DPT_TRIANGLEFAN,2,pV,sizeof(D3DFVF_VERTEX));
pD3DDevice->EndScene();
0102デフォルトの名無しさん
2009/11/05(木) 22:39:54010396
2009/11/05(木) 22:45:50お願いします。
0104デフォルトの名無しさん
2009/11/05(木) 22:50:18メモリリーク。デストラクタで開放してるって言うけど、
同じポインタに何度も上書きして、昔使ってたリソースを行方不明にしてるんじゃないの?
つまりデストラクタでは、最後に作成したリソースしか開放できてないんじゃないの?
毎フレーム、リソースを作成する必要もないし。
010593
2009/11/05(木) 22:56:54ありがとうございます 開放できてなかったんですね
頂点バッファ作成ととテクスチャ読み込みの前の両方に、開放処理を入れたら解決しました
0106ダッックス ◆0Gq0NobOa.
2009/11/05(木) 23:24:11最後の引数おかしくね?
0107デフォルトの名無しさん
2009/11/05(木) 23:24:55010896
2009/11/05(木) 23:41:21ご回答ありがとうございます。
色々いじってみても表示されません(T^T)
D3DFVF_VERTEXと一致させないといけないのではないのでしょうか?
この場合には、値をどうすればいいのでしょうか。
0109デフォルトの名無しさん
2009/11/05(木) 23:49:35頂点配列の要素の間隔だから、(余計なことを考えないなら)一頂点辺りのバイト数になって、単純にこうなる。
011096
2009/11/06(金) 00:00:08なぜか動かないようです。
今日は遅いので、また明日実験してみます。
0111デフォルトの名無しさん
2009/11/06(金) 01:38:45・
・
・
m_pV_POS[id]->Unlock();
これがあやしいぞ
011293
2009/11/06(金) 02:12:18それは自分の質問したやつで、もう解決済みです
同時にソース貼ったからややこしいですが
配列の数字がおかしいのは、いろいろいじってる途中だったのがが残ってしまってました
0113デフォルトの名無しさん
2009/11/06(金) 07:03:180115デフォルトの名無しさん
2009/11/06(金) 17:50:07ここを見たところ評判があまりよろしくないようなので別の方法でやろうと思っているのですが、
スプライト以外で2Dゲームを作る場合は板ポリゴンを作成して、そこにSetTexture関数で画像を張り付けるというのが
主流なんでしょうか?
0116デフォルトの名無しさん
2009/11/06(金) 18:08:310117デフォルトの名無しさん
2009/11/06(金) 20:37:290118デフォルトの名無しさん
2009/11/06(金) 20:59:24>スプライト以外で2Dゲームを作る場合は板ポリゴンを作成して
全く逆。
3Dデバイスを経由する場合は、板ポリゴンを作成してスプライトを実装しているのであって、排他な物ではない。
0119デフォルトの名無しさん
2009/11/06(金) 21:16:00GetCursorPos()とかWM_LBUTTONDOWNなんかのメッセージとかを使うよりも
場合によって良いことがあるなら教えてください
0120デフォルトの名無しさん
2009/11/06(金) 21:20:500121デフォルトの名無しさん
2009/11/06(金) 21:25:190122デフォルトの名無しさん
2009/11/06(金) 22:30:07メインwindowsを生成するクラス、direct3d関連のクラス、ゲーム関連のクラスって分けたほうがいいですか?
0123デフォルトの名無しさん
2009/11/06(金) 22:35:41設計は口で言われて動こうなるものじゃないし
「あーしとけば良かった…」という失敗を何度か繰り返して身につくものだ
0124デフォルトの名無しさん
2009/11/06(金) 22:47:050125デフォルトの名無しさん
2009/11/06(金) 22:50:02いつもあとになって使い物にならなくなっちゃう。
0126デフォルトの名無しさん
2009/11/06(金) 23:37:48レスありがとう、もう少し勉強してから決めることにします。
0127デフォルトの名無しさん
2009/11/07(土) 01:33:24一回開放してからまたCreateTextureする以外に方法があるでしょうか?
0128デフォルトの名無しさん
2009/11/07(土) 01:35:30上記が一緒ならロックして色情報だけ書き換えるということはできるが
0129デフォルトの名無しさん
2009/11/07(土) 01:54:28どうもありがとうございます
0130デフォルトの名無しさん
2009/11/07(土) 09:51:460131デフォルトの名無しさん
2009/11/07(土) 10:19:340132デフォルトの名無しさん
2009/11/07(土) 10:33:31じゃあ自作のをネット公開しようと思ったときでも、
シェーダ2.0で書く分には環境の違いはあんま気にしなくても大丈夫ってことかな
0133デフォルトの名無しさん
2009/11/07(土) 11:20:59シェーダーモデル4.0対応の時代なんだぜ。
0134デフォルトの名無しさん
2009/11/07(土) 23:53:563DはDirectX、2DはFlashというように同時に使うことができるんでしょうか。
0135デフォルトの名無しさん
2009/11/08(日) 00:14:120136デフォルトの名無しさん
2009/11/08(日) 00:28:34ムリ
0137デフォルトの名無しさん
2009/11/09(月) 00:39:490138デフォルトの名無しさん
2009/11/09(月) 00:51:350139デフォルトの名無しさん
2009/11/09(月) 21:20:540140デフォルトの名無しさん
2009/11/09(月) 22:33:49ピクセルシェーダで深度DEPTHを出力する際に、その値は頂点シェーダで変換された座標の z/wということになるんでしょうか。
Direct3D 9 の環境なんですが、固定パイプラインで描画した場合はきれいに表示される一方で、シェーダを使って描画しようと
すると、微妙に前後関係がおかしくなったところが出てきてしまいます。
0141デフォルトの名無しさん
2009/11/09(月) 22:52:03実際に影を書き込むところでZ値の誤差を考慮に入れてないとか
0142デフォルトの名無しさん
2009/11/09(月) 22:59:15もう少し試行錯誤してみます。ありがとうございました。
0143デフォルトの名無しさん
2009/11/10(火) 01:01:41特定の演出で自分で出力とかするのでなければ出力しない方がいい。
ピクセルシェーダーで出力しなけりゃデバイスが標準の方法で勝手にやってくれる。
0144デフォルトの名無しさん
2009/11/10(火) 01:28:25もしかして変換済みメッシュ(D3DFVF_XYZRHW)はPSスルーしますか?
0145デフォルトの名無しさん
2009/11/10(火) 01:29:340146デフォルトの名無しさん
2009/11/10(火) 01:46:34おお、助かります。
サンプルらしいサンプルが無かったのでどうなのかわからずですた。
何でPS通ってくれないのかもうちょっと調べます。
ありがとうございます。
0147デフォルトの名無しさん
2009/11/10(火) 09:20:370148デフォルトの名無しさん
2009/11/10(火) 17:40:13(SDK ルート)\Samples\Managedなんて見当たらないし
日本語版のhelpもダウンロードしてなにやらインストールしたようだが
まるでどこにも関連付けされてないようだ・・・・
なにもわからん
DirectX 9.0 for Managed Codeって別にダウンロードしなきゃならんの?
0149デフォルトの名無しさん
2009/11/10(火) 17:46:13MDXはもうやってない。
サンプルのmanagedは2007あたりのSDKからついてない。
ライブラリそのものは1.1系がまだついてるが。
MS純正はDirectX系はXNAと、10以降はWindowsAPICodePackでやるしかないかも。
0150デフォルトの名無しさん
2009/11/10(火) 17:47:050151デフォルトの名無しさん
2009/11/10(火) 18:16:160152148
2009/11/10(火) 18:32:090153デフォルトの名無しさん
2009/11/10(火) 19:00:040154デフォルトの名無しさん
2009/11/10(火) 19:39:220155デフォルトの名無しさん
2009/11/10(火) 19:53:36HLSLでテクスチャフィルが出来るのだが、
HLSLをコンパイルした結果、SIMDに最適化したコードが生成されるのなら
プチGPGPUとして使えるのでは?と考えているのだが、
誰か試してくんない?言っとくけど俺は面倒だから嫌だから。
0156デフォルトの名無しさん
2009/11/10(火) 20:21:17なんでそんな意味のないことを思い付くの?
0157デフォルトの名無しさん
2009/11/10(火) 21:11:09N 円の借金がある.年利 a % の利息が付くとして,毎年 b 円返済したなら 何年で返済できるか計算するプログラムを作成せよ.
(N, a, b はキーボードから入力する)
ただし,無限ループに陥らないように工夫すること.
また,利息は返済前にかかるとせよ.なお,利子による端数(1円未満の 利子)は切り捨てること.
という問題をしているのですが、
#include <stdio.h>
int main(void){
int n, a, b;
int i, judge;
judge=0;
i=1;
printf("あなたの借金と、その年利、毎年の返済金を入力してください。\n");
printf("借金N円:"); scanf("%d",&n);
printf("年利a%:"); scanf("%d",&a);
printf("返済金b円:"); scanf("%d",&b);
0158デフォルトの名無しさん
2009/11/10(火) 21:12:160159157
2009/11/10(火) 21:12:45do{
n = n*( 1 + a/100);
i=i+1;
if(n < n*( 1 + a/100)-b){
printf("残高が前年度より高くなっています。\n");
judge=1;
break;
}
}while(n>b);
if(judge==0){
printf("借金を返済するまでにかかる年数は%d年である。\n",i);
break;
}
if(judge==1){
printf("このままでは借金は返せないので、終了します。\n");
break;
}
return(0);
}
と打ち込むと、if文の中の"break"が定義されていない演算子だとか、
(34) : error C3872: '0x3000': この文字を識別子で使用することはできません
(38) : error C3872: '0x3000': この文字を識別子で使用することはできません
などが出ます。だれかアドバイス宜しくお願いします。
0160デフォルトの名無しさん
2009/11/10(火) 21:14:540161デフォルトの名無しさん
2009/11/10(火) 21:15:530162157
2009/11/10(火) 21:16:09無視してください
0163デフォルトの名無しさん
2009/11/11(水) 02:13:34一定時間たつとアニメーションのスピードがものすごく速くなるんだけど
これってそういうもんなの?
0164デフォルトの名無しさん
2009/11/11(水) 02:24:430165デフォルトの名無しさん
2009/11/11(水) 19:13:11ですがmesh optionで32ビットインデックスにチェックすると正常に表示、アニメーションされます。
ちなみにXファイルはxsiでエクスポートしたものです。
頂点数が12個の単純なデータで、Xファイルのinndex値も問題ありません。
0166デフォルトの名無しさん
2009/11/11(水) 19:15:030167デフォルトの名無しさん
2009/11/11(水) 19:50:08すみません、自己解決しました。
全てのボーンにキーを設定したら正常に動きました。
0168デフォルトの名無しさん
2009/11/12(木) 00:34:250169デフォルトの名無しさん
2009/11/12(木) 02:53:45#include <d3dx.h> したいんだけど
DirectX7のSDKは どこでダウンロードできる?
DirectX9にd3dx9.hは あったのだけど…
0170デフォルトの名無しさん
2009/11/12(木) 07:31:380171デフォルトの名無しさん
2009/11/12(木) 07:35:46ちょっと前まではいくつかDLできるとこあったけど軒並み死んでるね
今、正規の方法で入手するにはDirectX7関連の書籍についてくるCDくらいしかないんじゃ?
200Mくらいのアップローダ出してくれたら上げてもいいけど
0172デフォルトの名無しさん
2009/11/12(木) 08:37:450173デフォルトの名無しさん
2009/11/12(木) 11:30:47テクスチャを作ってLockRectしてピクセルごとに書き込むとかしかないんでしょうか
0174デフォルトの名無しさん
2009/11/12(木) 11:37:42ttp://princess-tiara.biz/directx/?chapter=16
ここのサンプルを少し修正してビルドしてみたんだけど、どうやっても振動しない。
振動対応のジョイスティックなのは間違いないので正常であれば振動するはずなんですが。
詳しい人、何が間違ってる可能性あるとかアドバイスくれませんか。
ジョイスティックのボタン入力などは正常に動きました。
またXInputはXBOX360コントローラーじゃないので使ってないんですが、そっち使った方が良いでしょうか?
0175デフォルトの名無しさん
2009/11/12(木) 13:56:24advancetimeに10000とかやるとなる
なんでかは知らないけど
0176デフォルトの名無しさん
2009/11/12(木) 14:56:08D3DX使ってもいいなら
D3DXCreateTextureFromFileInMemoryとか
0177173
2009/11/12(木) 18:39:43ありがとうございました
やっぱりこういう便利な関数がそろってるんですね
d3dx9.libとd3dx9tex.hを含めるだけですか
0178デフォルトの名無しさん
2009/11/12(木) 19:47:01ゲームではwav形式のファイルを使うのが普通なんでしょうか?
0179デフォルトの名無しさん
2009/11/12(木) 20:22:390180169
2009/11/12(木) 20:56:140181デフォルトの名無しさん
2009/11/12(木) 22:48:33ということは、どうやっても再生できないものは再生できない?
0182デフォルトの名無しさん
2009/11/12(木) 22:52:100183178
2009/11/12(木) 23:02:59他の形式での再生はそれほど苦労しないということでいいんでしょうか?
0184デフォルトの名無しさん
2009/11/12(木) 23:06:370185デフォルトの名無しさん
2009/11/13(金) 00:46:31wavは生波形データと、長さやサンプリング周波数などの情報ヘッダで構成されている。
なのでmp3だろうがoggだろうが、wavにデコードしてDSoundで再生しているわけである。
いっぺんにデコードするか、少しずつ読み込みながらデコードするかはまた別の話。
0186通りすがり
2009/11/13(金) 01:04:19やり方とか教えてください。
0187デフォルトの名無しさん
2009/11/13(金) 01:14:26D3DX_FILTER_NONEにしています
0188デフォルトの名無しさん
2009/11/13(金) 01:25:16テクスチャーから作ったサーフェスをLockRecして1ドットずつ転送してる。
(なぜかStretchBltなどがうまくいかない)
このときに抜き色とかアンチエイリアス処理をしたりしてる。
0189178
2009/11/13(金) 02:24:08どうも いっぺんにデコードするとやはりメモリ食いますよね
>186
ttp://marupeke296.com/DXG_Font.html
自分はここを参考にして作りました
GetGlyphOutline()で文字のデータを取得して、
LockRectしてピクセルごとに書き込んでテクスチャとして貼り付けてます
実際に書き込むサイズの整数倍で読み込まないと少しおかしくなるけど、
そこさえ気をつければ特に不満はないです
0190デフォルトの名無しさん
2009/11/13(金) 02:29:25トランスフォーム済みの頂点なら
板ポリの座標xとyを-0.5fずらしてみて
ttp://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi?log=53&vew=13
0191デフォルトの名無しさん
2009/11/13(金) 02:33:47D3DXフォントは使ったこと無いけど、レンダリング前に
SetSamplerStateでD3DSAMP_MAGFILTER、D3DSAMP_MINFILTERを
D3DTEXF_POINTにしてみたら?
0192デフォルトの名無しさん
2009/11/13(金) 03:02:19ここのサンプル
1文字にテクスチャ1枚、頂点バッファ1つ(板ポリ1枚)使ってるから
描画効率は良くないね
ポリ数少ないから処理重くならないと思うけど
0193デフォルトの名無しさん
2009/11/13(金) 03:10:13>>191
レスありがとうございます。
自己解決しました。
effect::Begin()
の後にSetSamplerStateで設定したら期待した表示になりました。
0194デフォルトの名無しさん
2009/11/13(金) 03:50:53クライアント座標などはドットの座標で(0,0)-(0,0)としても点が表示されるけど、
DirectXの座標は頂点の座標で、(0,0)-(0,0)では何も表示されない、ということでいいんでしょうか?
0195デフォルトの名無しさん
2009/11/13(金) 07:26:340196デフォルトの名無しさん
2009/11/13(金) 10:50:20便乗質問だけど
少しずつ読み込んで再生する場合と、まとめて読み込んだ場合なら
前者の方がメモリが少なくなってお得…なんだろうか?
デコードさえしちまえば
wavの時と扱うのはそんな変わらない気がするんだけどどうなんだろう?
0197デフォルトの名無しさん
2009/11/13(金) 10:54:440198デフォルトの名無しさん
2009/11/13(金) 13:54:10バッファが長い
利点 - 処理落ちしてもある程度までなら安定して再生できる。
欠点 - 使用メモリが多い。デコードから再生までにラグが大きい。
短い
利点 - 使用メモリが少ない。デコードから再生までのラグが小さい。
欠点 - 処理落ち時に安定性にかける。
間違っててもシラネ。
0199デフォルトの名無しさん
2009/11/13(金) 15:39:18なるほど。理解できた。ありがとう。
ストリーミングに対応させる為に頑張るか。
音1つだけでもややこしいなorz
もう少し簡単な仕様にならんの…マイクロソフト。
公式のサンプルとかライブラリ使うのがベストなんだろな。
0200デフォルトの名無しさん
2009/11/13(金) 16:18:570201デフォルトの名無しさん
2009/11/13(金) 16:46:12太陽の周りを回る星の情報を表示したいんですがその情報ウィンドウを
視点をどんなに動かしても同じ向きになるようにしたいのですが
どうすればいいんでしょうか?
いまのところ算出した角度に回すことで常に同じ向きにしていますが
これでいいんでしょうか?
0202デフォルトの名無しさん
2009/11/13(金) 16:56:50どういう計算をしてるかわからんけどビルボードとはそういうものだ
0203デフォルトの名無しさん
2009/11/13(金) 18:19:10なるほど、それなら簡単に実装できる。
別の問題なんだけど
再生していない空きバッファをRELEASEして使うようにしてるから
どのバッファにどの音源が使われてるか解らないし、任意の音を個別に停止出来ないようになってしまった。
どうすれば良いんだろうか。やり方間違ってる?
0204デフォルトの名無しさん
2009/11/13(金) 20:11:190205デフォルトの名無しさん
2009/11/13(金) 22:23:44http://namidame.2ch.net/test/read.cgi/hidari/1257990721/
0206デフォルトの名無しさん
2009/11/14(土) 02:34:280207デフォルトの名無しさん
2009/11/14(土) 02:59:57多いから最低2つはストリーミングできるようにしたほうがいいぜ
人間3人が愉快に会話してくれるとセリフをオンメモリってわけにはいかないから
これもストリーミングになる・・・すると・・・あれ?声が?遅れて?くるよ?
っていういっこく堂状態、ストリーミングの初っ端の準備が結構効いてくる
これがハードによっておせぇおせぇ
んで色々対応してると泥臭いもんになっていくわけよ
死んだ!ああ、死んだ!とも!
0208デフォルトの名無しさん
2009/11/14(土) 03:18:010209デフォルトの名無しさん
2009/11/14(土) 03:22:32なにいってるのかわからない
BBXに検索機能ついてんだろ
0210デフォルトの名無しさん
2009/11/14(土) 03:23:09カメラを動かすと4角形の各辺のどれかになるような感じで動いてしまいます
トランスフォームが悪いのでしょうが、具体的に何故かわかりません
hr = m_pd3dLine->DrawTransform(vVer3D, m_dwList3D, mat, color);で描画しています、何故でしょうか、よろしくお願いします
0211デフォルトの名無しさん
2009/11/14(土) 03:32:320212デフォルトの名無しさん
2009/11/14(土) 03:43:04カメラがある角度を越えた瞬間に線が入れ替わります、なぜですか?
0213デフォルトの名無しさん
2009/11/14(土) 04:21:240214デフォルトの名無しさん
2009/11/14(土) 04:27:06カメラアングルを変えたときにスムーズに変化しないで
ピョコピョコ飛ぶっていう話じゃないかと
0215デフォルトの名無しさん
2009/11/14(土) 04:36:03http://www.shader.jp/xoops/html/masafumi/directx9/3dtips/d3d09.htmこのサンプルを組み込んだんだけど
今調べたら
このインターフェイスだと、このあたりの計算を自前でしなくていいというのが利点ですね(ただし、座標系がスクリーン座標系のみなのが注意)。
って書いてあるんだけど、自分はワールド座標上の座標で点を結びたいのです、この方法じゃなくても良いのでやり方を教えてく下さい
普段物体を登録してeffect->setmatrixってやるのでわけがわかりません
0216デフォルトの名無しさん
2009/11/14(土) 04:45:29太さは指定できんが
0217デフォルトの名無しさん
2009/11/14(土) 04:46:48そんなのがあるんですか、知りませんでした、やってみますかなり時間費やしたのに
0218デフォルトの名無しさん
2009/11/14(土) 05:03:43struct CUSTOMVERTEX
{
float x,y,z;
};
CUSTOMVERTEX Vertices[] =
{
{-5.0, -5.0, 0.0},
{ 0.0, 5.0, 0.0},
{ 5.0, -5.0, 0.0},
{10.0, 5.0, 0.0},
{15.0, -5.0, 0.0},
{20.0, 5.0, 0.0}
};
pd3dDevice->DrawPrimitive( D3DPT_LINELIST, 0, 6 );
0219デフォルトの名無しさん
2009/11/14(土) 05:04:520220デフォルトの名無しさん
2009/11/14(土) 05:07:290221デフォルトの名無しさん
2009/11/14(土) 05:12:360222デフォルトの名無しさん
2009/11/14(土) 05:17:59OpenGLではできるのに・・・
みんなどうしてるの?
0223デフォルトの名無しさん
2009/11/14(土) 07:54:42float half_line_width = ...; // 線の太さの半分の値
D3DXMATRIX world_view_projection_viewport_matrix = ...;
D3DXVECTOR4 v1, v2;
D3DXVec3Transform( &v1, &endpoints[0], &world_view_projection_viewport_matrix );
D3DXVec3Transform( &v2, &endpoints[1], &world_view_projection_viewport_matrix );
if( v1.z >= 0 || v2.z >= 0 )
{
// 近平面のみクリッピング
if( v1.z < 0 || v2.z < 0 )
{
float t = -v1.z / (v2.z - v1.z);
D3DXVec4Lerp( v1.z < 0 ? &v1 : &v2, &v1, &v2, t );
}
v1 /= v1.w;
v2 /= v2.w;
// 三角形リストで幅のある線分を構築
D3DXVECTOR2 temp;
temp.x = v2.x - v1.x;
temp.y = v2.y - v1.y;
D3DXVec2Normalize( &temp, &temp );
temp *= half_line_width;
vertices[0] = D3DXVECTOR4( v1.x - temp.y, v1.y + temp.x, v1.z, 1 );
vertices[1] = D3DXVECTOR4( v1.x + temp.y, v1.y - temp.x, v1.z, 1 );
vertices[2] = D3DXVECTOR4( v2.x - temp.y, v2.y + temp.x, v2.z, 1 );
vertices[3] = D3DXVECTOR4( v2.x + temp.y, v2.y - temp.x, v2.z, 1 );
vertices[4] = vertices[2];
vertices[5] = vertices[1];
num_triangles += 2;
}
使う機会なんてあるんだろうか
0224デフォルトの名無しさん
2009/11/14(土) 10:20:06あぁ、googleとかで検索結果から行くとinfoだから見れないってことじゃね?
リファラ送らないブラウザお勧め
0225デフォルトの名無しさん
2009/11/14(土) 19:46:13画面いっぱいに板ポリを表示させると微妙に歪みます。どうしたらよいでしょうか?
0226デフォルトの名無しさん
2009/11/14(土) 21:37:02VC++ で「デバッグ開始」または「デバッグなしで開始」で動かすと、何もエラーが出ないで普通に動きます。
しかし、 Debug フォルダや Release フォルダにできた .exe ファイルを開くと、 Visual Studio Just-In-Time デバッガが、
「名前.exe [数] でハンドルされていない Win32 の例外が発生しました。」
と言ってきます。
自力で調べた結果、
D3DXCreateTextureFromFile(GetDirectManager()->GetDevice(), filename, &m_pTexture)
の行でエラーが起きていることがわかりました。
ここで、
GetDirectManager()->GetDevice() は LPDIRECT3DDEVICE9 型を返す、
m_pTexture のデータ型は LPDIRECT3DTEXTURE9 です。
「デバッグ開始」などで動かしたときは、 m_pTexture はちゃんとメモリ確保されているみたいですが、
.exe から動かしたときは、 NULL のままになっています。
どうすればいいのでしょうか?
…と書こうとしたら、気付きました。
画像ファイルのパスが違うんですねw
自己解決しました。
こんなことに1時間もかけるなんてw
0227デフォルトの名無しさん
2009/11/14(土) 21:54:30テクスチャのファイルのパスだとおもう
0228デフォルトの名無しさん
2009/11/14(土) 23:27:02exeをDebug、Releaseフォルダからテクスチャのあるフォルダに移動しなされ
0229デフォルトの名無しさん
2009/11/15(日) 01:02:23ありがとうございます
動きました
0230デフォルトの名無しさん
2009/11/15(日) 01:04:36(って言ってるのにしつこい人たちね!)
0231デフォルトの名無しさん
2009/11/15(日) 01:25:420232デフォルトの名無しさん
2009/11/15(日) 01:33:46DXUTFindDXSDKMediaFileCch
の中身みて参考にするとよろし
0233デフォルトの名無しさん
2009/11/15(日) 08:30:06ストリーミング再生をしようとMSDNやらを読んでやってみたのですが、
wavファイルの波形データの二度目以降の読み取り方がよく分かりません
wavファイルへのHMMIOハンドルと一時バッファアドレスをmmioReadに渡しても-1が返ってきます
チャンク検索を行った場所から移動すると読み取り位置の情報が失われている感じです
どうすれば読み取り位置の情報も渡すことができるのでしょうか?
0234デフォルトの名無しさん
2009/11/15(日) 10:09:56amazonで検索かけると結構沢山出てくるので選びきれません……
主に2Dゲームを作ろうと思ってます。
0235デフォルトの名無しさん
2009/11/15(日) 10:13:02他人にとっていい本が自分にとっていいとは限らないんだし。
俺は2Dゲーム程度ならSDK付属のサンプルで十分だと思うが
それじゃわかんねぇって人も居るだろう。
0236デフォルトの名無しさん
2009/11/15(日) 12:44:36データチャンクに降りたとき位置を記録しておく
ciSubChunk.ckid = mmioFOURCC('d','a','t','a');
mmioDescend(m_hMio, &ciSubChunk, &ciParChunk, MMIO_FINDCHUNK);
long lDataOfs = mmioSeek(m_hMio, 0, SEEK_CUR);
再度先頭から演奏したいとき
mmioSeek(m_hMio, lDataOfs, SEEK_SET);
0237デフォルトの名無しさん
2009/11/15(日) 14:06:37すいません、オフセットとかの問題ではなかったみたいです
ストリーミングを行うクラスを作ろうとしていて、そのクラスから
再生カーソルの進行で出されるシグナルを受け取るスレッドを(thisポインタを渡して)スタートさせ、
シグナルが来たらデータ読み取りとバッファ書き換えを行おうとしているのですが、
クラスメンバのHMMIOハンドルとかLPDIRECTSOUNDBUFFER8とかを、
スレッドから呼び出したメンバ関数で使おうとすると失敗するんです
ReleaseもDeleteもしてないし、音楽のループ再生も続いてるからバッファも失われてないと思うんですが
0238デフォルトの名無しさん
2009/11/15(日) 14:22:51ダイレクトサウンドオブジェクトを作成したスレッドと
シグナルを処理するスレッドが異なるため、ということが考えられる
シグナルを処理するスレッドからinvokeかメッセージを飛ばして
オブジェクトを作成したスレッドで処理を行ってみては
0239デフォルトの名無しさん
2009/11/15(日) 16:15:43IDirect3DDevice9::CreateTexture を用いて、あるサイズのテクスチャを作成したとします。
LockRect でバッファへのポインタおよびピッチを取得できますが、
このピッチが、テクスチャの幅×深度(1ピクセルあたりのバイト数) に等しくないことはありえるのでしょうか?
ただし、テクスチャは必ず 2^n 単位の大きさで作成しているとします。
また、Voodoo などの 256×256 しか対応していない古いグラボは考えないこととします。
つまり、m×n のテクスチャに、全ピクセルがリニアに繋がったビットマップをコピーするとして、
memcpy(p_texture, p_bmp, 全ピクセル);
のように1行でコピーすることは出来ず、
for (int y = 0; y < height; y++){
memcpy(p_texture + pitch * y, p_bmp + width * depth * y, 1行分のピクセル);
}
のように1行単位でコピーするしかないのでしょうか。
・等しいことが保証されている
・保証はされてないけど等しくない環境なんてぶっちゃけ存在しない
・等しくないことが普通に存在する
という感じでお答えいただけるとありがたいです。
実際にやりたいのは、ファイルに圧縮された画像をテクスチャに直に展開することです。
ところが、仕様上、画像の解凍が行単位では行えません。
そのため、一時バッファに展開してから行単位でコピーすることになり、二度手間になってしまっています。
0240デフォルトの名無しさん
2009/11/15(日) 16:36:020241デフォルトの名無しさん
2009/11/15(日) 16:46:07検証してないが、テクスチャの横幅がGPUのメモリアクセス粒度より細かい場合は
不一致になるんじゃないか?
バス幅512bitのDDR2なら、2048bit単位でアライメントされててもおかしくないかと。
0242デフォルトの名無しさん
2009/11/15(日) 16:46:481ピクセル1バイトの
2x2のテクスチャ
とかどうなんだろ
0243デフォルトの名無しさん
2009/11/15(日) 17:52:58どれだけ頭が悪いんだよ。
0244デフォルトの名無しさん
2009/11/15(日) 18:01:400245デフォルトの名無しさん
2009/11/15(日) 18:06:42期待と違うなら、違う処理を行うなりアプリケーションを終了させるなりすればよい。
条件比較すら省略したプログラムを書きたいというのなら別だろうが。
0246デフォルトの名無しさん
2009/11/15(日) 18:31:500247デフォルトの名無しさん
2009/11/15(日) 21:00:34サンプルのfxファイルにてVertexShader = compile vs_3_0 VS();
というような記述があり、この部分でHLSLをコンパイルする時に
シェーダーをバージョンいくつ用にコンパイルするか指定するのだと思いますが
これ関して質問させてください。
自分のHLSLの記述にて古いシェーダーバージョンで間に合う範囲の事しか
書いていない場合、対応ハードを増やすために、可能な限り古い
バージョン(1_0?)でコンパイルすべきですか?
それとも最近のバージョンでコンパイルすことは、何らかのメリット(最適化)などが
在り得るのですか?
0248デフォルトの名無しさん
2009/11/15(日) 22:40:02でも1_0はさすがにもう無視していいレベルじゃないかな。
0249237
2009/11/15(日) 23:35:39ありがとうございます
メッセージを飛ばす、というのはSendMessageでメッセージループに送るということでしょうか?
とりあえずシングルスレッドに戻して解決(?)しました
制御方法をもうちょっと勉強してからまたチャレンジします
0250デフォルトの名無しさん
2009/11/15(日) 23:36:10どれだけ頭が悪いの?
0251デフォルトの名無しさん
2009/11/15(日) 23:48:55DirectSoundでやるなら先にマルチスレッドのデザインパターンを一通り学んでからじゃないと怖いだろ。
0252237
2009/11/16(月) 00:54:33サンプルが色々あったのでDirectSoundでやってみました
XAudio2も勉強してみたいのですが、詳しい情報がMSDNくらいしかなかったので…
今からMSDN読みながらXAudio2でも作ってみます
こっちのが圧縮音源も扱えるみたいで便利そうですね
0253デフォルトの名無しさん
2009/11/16(月) 12:36:50今時DirectMusicで講座している所も多いし、仕方ないと思えば仕方ないな。
DirectInputで質問だけど、
DIPROP_DEADZONEの設定していても軸の値が指定範囲内でも変動されるのは仕様?
「軸がデッド ゾーン内にあるとき、その軸は範囲の中心にあるものとして報告されます。」
って書いてるから明らかにおかしいと思ってる。
範囲の中心にあるものなら範囲の中心である0が返されると思ってるけど間違い?
0254デフォルトの名無しさん
2009/11/16(月) 13:43:580255デフォルトの名無しさん
2009/11/16(月) 16:08:48RANGEが1000にしていたから500で半分まで認識させないって思っていた。
DEAD_ZONEの記述は10000までで別だったんだなorz
XAudio2、資料探したけど本当にMSDNくらいしかないのな。
今のところ、XInput使うメリットってある?XBOX360コントローラーでFFBさせるくらい?
0257デフォルトの名無しさん
2009/11/16(月) 22:27:54SDKに入ってるサンプル見てみろってWAVのストリーム再生なんて
数時間もあれば出来るくらい簡単になってるから。
0258デフォルトの名無しさん
2009/11/16(月) 23:40:59case WM_PAINT: Render();みたいに
WM_PAINTは無効領域が発生したときに発行されるものとききましたが
どこも無効領域なんて発生していなさそうなのにWM_PAINTが来て描画されています
これはDirectXがWM_PAINTを発行してるということでしょうか?
私が参考にしてるサイトはこれです
ttp://www36.atwiki.jp/directx/pages/22.html
0259デフォルトの名無しさん
2009/11/16(月) 23:54:040260デフォルトの名無しさん
2009/11/16(月) 23:56:170261デフォルトの名無しさん
2009/11/17(火) 00:01:130262デフォルトの名無しさん
2009/11/17(火) 00:05:59なにファビョってんのよ。
サンプルなんて、DX_SDK\Samples\C++\Direct3Dの中に腐るほどあるだろ?
DXUTを解読しながらになるけどな。
0263デフォルトの名無しさん
2009/11/17(火) 00:06:190264デフォルトの名無しさん
2009/11/17(火) 00:07:21ゲームループでぐぐれ
0265デフォルトの名無しさん
2009/11/17(火) 00:11:110266デフォルトの名無しさん
2009/11/17(火) 00:15:41何を言ってるんだ。質問には回答は出てるんだぞ。
>いいサンプルがない
→DirectX SDKのサンプルを読め
>コードのどこでレンダリングすればいい?
→サンプルのソースコードに書いてある
0267デフォルトの名無しさん
2009/11/17(火) 00:22:27あと、ふざけんな。
0268デフォルトの名無しさん
2009/11/17(火) 00:26:370269デフォルトの名無しさん
2009/11/17(火) 00:28:180270デフォルトの名無しさん
2009/11/17(火) 00:31:020271デフォルトの名無しさん
2009/11/17(火) 00:32:050272デフォルトの名無しさん
2009/11/17(火) 00:33:580273デフォルトの名無しさん
2009/11/17(火) 00:34:110274デフォルトの名無しさん
2009/11/17(火) 00:35:380275デフォルトの名無しさん
2009/11/17(火) 00:38:28ここの住人は
258がゲーム等を作ると仮定して話してる
んで、メインループにはPeekMessage使えよと。
質問に対する答えはわかりませんとねw
0276デフォルトの名無しさん
2009/11/17(火) 00:39:090277デフォルトの名無しさん
2009/11/17(火) 00:39:280278デフォルトの名無しさん
2009/11/17(火) 00:41:20BeginPaint呼んでないから無効領域がクリアされず残ったままなのでいつまでもWM_PAINTが来るってことじゃね
0279デフォルトの名無しさん
2009/11/17(火) 00:42:340280デフォルトの名無しさん
2009/11/17(火) 00:47:35Render();
ValidateRect( hWnd, NULL );
return 0;
DirectX のヘルプより
0281デフォルトの名無しさん
2009/11/17(火) 01:20:42ありがとうございました。
0282デフォルトの名無しさん
2009/11/17(火) 02:04:160283デフォルトの名無しさん
2009/11/17(火) 07:47:260284デフォルトの名無しさん
2009/11/17(火) 09:44:230285デフォルトの名無しさん
2009/11/17(火) 09:52:010286デフォルトの名無しさん
2009/11/18(水) 16:22:45(.___,,,... -ァァフ|
|i i| }! }} //|
|l、{ j} /,,ィ//|
i|:!ヾ、_ノ/ u {:}//ヘ
|リ u' } ,ノ _,!V,ハ |
/´fト、_{ル{,ィ'eラ , タ人
/' ヾ|宀| {´,)⌒`/ |<ヽトiゝ
,゙ / )ヽ iLレ u' | | ヾlトハ〉
|/_/ ハ !ニ⊇ '/:} V:::::ヽ
// 二二二7'T'' /u' __ /:::::::/`ヽ
/'´r -―一ァ‐゙T´ '"´ /::::/-‐ \
/ // 广¨´ /' /:::::/´ ̄`ヽ ⌒ヽ
ノ ' / ノ:::::`ー-、___/:::::// ヽ }
_/`丶 /:::::::::::::::::::::::::: ̄`ー-{:::... イ
0287デフォルトの名無しさん
2009/11/18(水) 22:20:460288デフォルトの名無しさん
2009/11/18(水) 23:08:48m_cRefは通常private
AddRefすれば+1された数値が戻るので、これを手がかりにするしかない
0289デフォルトの名無しさん
2009/11/18(水) 23:15:38ありがとう!!
0290デフォルトの名無しさん
2009/11/18(水) 23:43:19http://marupeke296.com/COL_Basic_No2_ShortTec.html#%E3%83%9D%E3%83%AA%E3%82%B4%E3%83%B3%E4%B8%8A%E3%81%AB%E7%82%B9%E3%81%8C%E5%90%AB%E3%81%BE%E3%82%8C%E3%82%8B%E3%81%8B%E3%82%92%E5%88%A4%E5%AE%9A
ここの「ポリゴン上に点が含まれるかを判定」を実装したいのですが上手く行きません。
そこの説明にある、
「元のポリゴンと法線が同じが異なるかで、点が含まれているかどうかを判定できます。」とは、
「正規化した法線ベクトルが全く同じ方向(数値)になれば」
という意味なのでしょうか? もしそうなら僅かな座標のずれで一致する事など無い様に思えます・・。
私は何かを勘違いしているんでしょうか・・?
0291デフォルトの名無しさん
2009/11/18(水) 23:49:47それぞれの内積を計算して、正なら同じ向き負なら違う向きとすればいい。
0292デフォルトの名無しさん
2009/11/18(水) 23:50:270293デフォルトの名無しさん
2009/11/18(水) 23:55:240294デフォルトの名無しさん
2009/11/19(木) 00:09:210295デフォルトの名無しさん
2009/11/19(木) 00:11:34ちゃんとDirectXで作っておりますが、言葉が抜けてました。失礼しました orz
>>291
そうなんですね。ありがとうございます。感謝!
0296デフォルトの名無しさん
2009/11/19(木) 00:15:29質問を勝手に自分の理解できる範囲の問題に解釈し直すのはいくない
0297デフォルトの名無しさん
2009/11/19(木) 00:31:24その戻り値を当てにするのは
推奨されないってさ。
参照カウントを得る方法はないと
しといた方がいいな。
0298デフォルトの名無しさん
2009/11/19(木) 00:45:330299デフォルトの名無しさん
2009/11/19(木) 02:01:46なんで?
もちろんIDirectTextureをメンバ変数にコピーした
0300デフォルトの名無しさん
2009/11/19(木) 02:05:180301デフォルトの名無しさん
2009/11/19(木) 02:18:41もし同じオブジェクトを返す設計だったら、参照カウントは2になっていただろうね。
0302デフォルトの名無しさん
2009/11/19(木) 02:18:49あれ、ごめんなさい。俺勘違いしてるかも、、、
インターフェイスポインタを取得しても自動で参照カウンタは増えないってことなのでしょうか?
本来はコピーしたら明示的にAddRefするということ?
0303デフォルトの名無しさん
2009/11/19(木) 02:25:14コップAを用意します
コップAに水を注ぎます
コップBを用意します
コップBに水を注ぎます
コップAの使用回数は1です
コップBの使用回数は1です
0304デフォルトの名無しさん
2009/11/19(木) 02:57:38コピーと参照の違いを理解してないのでは?
0305デフォルトの名無しさん
2009/11/19(木) 08:40:29そもそもコピーなんてしてないだろ。
0306デフォルトの名無しさん
2009/11/19(木) 20:38:30yは+1じゃないとおかしい? 計算の順番逆なのかな。それともこれで合ってる?
0307デフォルトの名無しさん
2009/11/19(木) 20:44:05普通は正にとらない?
0308デフォルトの名無しさん
2009/11/19(木) 20:57:36てことは三角形は頂点を右回り順に繋がないと、法線がひっくり返るのかな。
ありがとうございました。
0309デフォルトの名無しさん
2009/11/20(金) 09:18:49ゼノギアスの最初の部分で画面が揺らぐんですが
あれってどうやったらできますかね?
シェーダーってテクスチャを変換したりするものだと認識してたけど
画面を歪ませるなんて可能なのかなあ?
0310デフォルトの名無しさん
2009/11/20(金) 10:34:06シェーダーなら殆ど可能じゃないの?
0311デフォルトの名無しさん
2009/11/20(金) 11:44:25レンダリングターゲットをエフェクト用のテクスチャに変更して
効果をかけてから画面に出力
0312309
2009/11/20(金) 12:07:11まあしかたがない
コツコツやってみます
0313デフォルトの名無しさん
2009/11/20(金) 21:52:50シェーダーでやるのが今時の主流なのに。
0314デフォルトの名無しさん
2009/11/20(金) 23:48:01DirectX11とかでスワップ前のレンダリングサーフェイスを
直接変更できるとかそういうのないの?
0315デフォルトの名無しさん
2009/11/21(土) 00:03:44フレームバッファを直接いじったら色々と面倒だからこそ、
長いDirectXの歴史で便利な仕組みを色々用意してきたわけで。
0316デフォルトの名無しさん
2009/11/21(土) 00:25:26よほど単純なアプリで作らない限りテクスチャへのレンダリングを介さないなんてないんだから。
0317デフォルトの名無しさん
2009/11/21(土) 07:04:00IXAudio2SourceVoice::SubmitSourceBuffer()を連続で呼んでも
前の音の再生が終わるまで、次のキューが再生されないみたいなので、
どなたか、前の音が再生中でも次の音を再生させる方法をご存知無いでしょうか?
StopしてFlushSourceBuffersではなく、止めないで連続で鳴らしたいのです
0318デフォルトの名無しさん
2009/11/21(土) 07:31:230319317
2009/11/21(土) 16:44:35wavのフォーマットが混在してるので、
WAVEFORMATEXの値ごとに複数CreateSourceVoiceするのも非効率かなと思ったのですが…
ご回答ありがとうございます。
0320デフォルトの名無しさん
2009/11/21(土) 17:23:22Stopかけてバッファ開放して、新しいバッファを割り当ててまた再生を再開するだけで十分じゃね?
0321317
2009/11/21(土) 19:44:500322デフォルトの名無しさん
2009/11/21(土) 20:26:29D3DXIntersect()でレイを飛ばし当たり判定をしようとしています。
しかし、描画に使うものと同じメッシュ(LPD3DXMESH)なのに位置が違うらしく
正常なポリゴンに当たってくれません。
何やら取得後に知らない間に座標変換を受けているらしいとわかったのですが・・
どこあたりにその変換行列が存在するのでしょうか・・?
大まかでも良いので教えて下さると助かります orz
0323322
2009/11/21(土) 20:41:07自己解決できるかもしれません。失礼しました;
0324デフォルトの名無しさん
2009/11/21(土) 22:39:15ああ、そういうことね。やってみたらすぐに分かるけど、
簡単に音割れを起こしてだめになるよ。
だから前の音は止めてから次の音を出すべき。これでも違和感はないよ。
0325デフォルトの名無しさん
2009/11/21(土) 22:43:53いったい何を言っているんだろう?
0326322
2009/11/22(日) 10:36:57D3DXIntersect()にセットしたメッシュの座標を
何万倍に拡大しようが回転しようが全く変化が起きない・・orz
いったい内部で何が起きているんだ・・(´・ω・`)
0327322
2009/11/22(日) 10:59:550330322
2009/11/22(日) 13:08:060331デフォルトの名無しさん
2009/11/22(日) 13:12:17どうしてそう思ったんだ?
0332デフォルトの名無しさん
2009/11/22(日) 15:08:38D3DXIntersectはメッシュのローカル座標系で計算するから
メッシュの位置とか大きさは関係ないはず
レイの始点座標をワールド座標で指定するのではなく
メッシュからの相対位置で指定しないといけないのでは?
0333デフォルトの名無しさん
2009/11/22(日) 15:19:110334デフォルトの名無しさん
2009/11/22(日) 15:24:09同じメッシュ(LPD3DXMESH)をDrawSubset()してレイを飛ばしているのに
描画結果とレイが当たる位置に約5倍のスケール差が有るから でした。
>>332
相対位置とな・・やってみます。ありがとうございます(´・ω・`)
0335デフォルトの名無しさん
2009/11/22(日) 15:35:32>322の情報だけで答えが得られるはずがない
marupekeの方にも質問してるみたいだけど
質問の仕方が下手糞すぎる
0336デフォルトの名無しさん
2009/11/22(日) 15:42:33D3DXにべったり頼るから、何が起きているかも分からなくなるんだよ。
0337デフォルトの名無しさん
2009/11/22(日) 15:57:48特にFont周りは便利すぎる。当分は自作する必要性は感じないな。
Texture読み込みまわりは近々自作する予定。
0338デフォルトの名無しさん
2009/11/22(日) 15:59:250339デフォルトの名無しさん
2009/11/22(日) 16:04:35D3DXの別の部分の話をしてるんだから扱いが別になっても不思議じゃないだろ?
それで揚げ足取ったつもりかね。
ちなみにTexture読み込みを切り替えるのは、PNG以外の形式をサポートさせるため。
他の部分としてはEffect周りだな。これも全く置き換える予定なし。
0340デフォルトの名無しさん
2009/11/22(日) 16:12:53Fontに関しては自作しないってことね
0341デフォルトの名無しさん
2009/11/22(日) 16:16:17だね。工夫すれば品質をさらに向上させたり回転させたり半透明にしたりできるし。
ただグリフの上下で色を変えたりはできないから、
そこまでやりたくなれば自作するしかないかなぁ……。
0342デフォルトの名無しさん
2009/11/22(日) 16:19:00こいつD3DXが絡むと、いつも沸いて出てくるが
自分が最もD3DXに依存してるってわからんかね。
誰もそこまでD3DXを意識してないよ。
0343デフォルトの名無しさん
2009/11/22(日) 16:53:45コリジョンのがよっぽど面倒くさいわ。
目で見て分かりづらいからとかくデバッグが面倒くさい。
という感じで人それぞれなので自分の好きにすればいいし、
ありもののライブラリを使うという選択肢は初心者にはベターだと思う。
0344デフォルトの名無しさん
2009/11/22(日) 17:32:44そして頼ることすらさらに頼る。
0345デフォルトの名無しさん
2009/11/22(日) 18:48:360346デフォルトの名無しさん
2009/11/22(日) 18:55:59使う奴が悪い的な回答は、的外れ以外の何者でもない。
本当に何を考えているんだか・・
0347デフォルトの名無しさん
2009/11/22(日) 19:07:430348デフォルトの名無しさん
2009/11/22(日) 19:10:17このPNG以外の形式もサポートしているのを知っているのか、疑問になる発言が気になって仕方がない。
0349デフォルトの名無しさん
2009/11/22(日) 20:21:540350デフォルトの名無しさん
2009/11/22(日) 21:13:22可逆ではかさばる。
PNGでは展開が重い。
ということなので独自形式から展開するしかないな、という結論。
0351デフォルトの名無しさん
2009/11/22(日) 21:14:03の間違い。
0352デフォルトの名無しさん
2009/11/22(日) 21:20:120353デフォルトの名無しさん
2009/11/22(日) 21:36:560354デフォルトの名無しさん
2009/11/22(日) 21:42:56そして不定枚数読み込むので現状すべての画像を先に読み込むことはせず、そのつど読み込んでる。
で、0.1〜0.3秒かかるんだけど、これをできるだけ削ろうとしている。
0355デフォルトの名無しさん
2009/11/22(日) 22:24:45ミップマップのCPU生成は軽いと感じるんですね。
0356デフォルトの名無しさん
2009/11/22(日) 22:41:56んん……?
ひょっとして、ミップマップってGPUが作ってくれたりはしないの?
0357デフォルトの名無しさん
2009/11/22(日) 23:11:15当たり前だろ・・・。
読み込みの時に処理してんだからCPUだ。
でないと別スレッドで処理したときに死ぬだろ。
0358デフォルトの名無しさん
2009/11/22(日) 23:13:360359デフォルトの名無しさん
2009/11/22(日) 23:23:41なおさら独自形式ロード+GPUによるミップマップ作成と、
DDSロードとで読み込み時間を比較してあげないといけないな。
0360デフォルトの名無しさん
2009/11/23(月) 01:12:59圧縮しないでミップマップもキューブマップも仕込むならまんまDDSじゃん。
0361デフォルトの名無しさん
2009/11/23(月) 01:18:59あぁでもGPUでミップマップ作るならスレッド分けられないか。
圧縮の解凍やテクスチャへの展開は確かにCPUの問題だが、
ファイル読み込みにおいてはメモリにHDDのアクセスが一番問題。
どんだけCPUで最適化してもスワップ中とかシークの都合でいくらでも遅延する。
0362デフォルトの名無しさん
2009/11/23(月) 03:35:37ただPNGでは展開がやや重くて不満だ。
読み込み用スレッドはすでに分けてある。
だから今回の問題はクリティカルというほどのことではない。
だが、読み込み方法を変更することで動作が改善できるならする、ということ。
>ファイル読み込みにおいてはメモリにHDDのアクセスが一番問題。
だな。であるからこそ、大きなテクスチャのロードは小さく圧縮され、
それほどでもないファイルは展開が高速であることが望ましい。
0363デフォルトの名無しさん
2009/11/23(月) 04:34:260364デフォルトの名無しさん
2009/11/23(月) 07:23:39大量のパターンを持つ2D格闘ゲームなんじゃねーの。
0365デフォルトの名無しさん
2009/11/23(月) 07:30:43頂点シェーダーではfloat4型で受け取るんでしょうか?
DWORD型で0x01020304とした場合は{1.0f,2.0f,3.0f,4.0f}が入っているんですか?
オフセットは合っているのですがインデックスがうまく受け取れません・・・
0366デフォルトの名無しさん
2009/11/23(月) 07:41:16このくらい作れるようになるにはどれくらいかかりますか?
0367デフォルトの名無しさん
2009/11/23(月) 08:13:24BLENDINDICES(n)セマンティックは頂点シェーダ側ではuintで受け取るんじゃなかったかな
0368デフォルトの名無しさん
2009/11/23(月) 09:30:23ディスクキャッシュにデータが入っていることを考慮しないで、
無圧縮の方が高速だと思い込む。
0369デフォルトの名無しさん
2009/11/23(月) 09:43:130370デフォルトの名無しさん
2009/11/23(月) 09:52:19さて問題。
PNGの圧縮は何を使っているでしょう?
0371デフォルトの名無しさん
2009/11/23(月) 11:23:42やっぱランレングスが一番ちょっぱやなんだよね
最近、ムービーがでかすぎてロード時のテクスチャサイズ意識したとこないわ
0372デフォルトの名無しさん
2009/11/23(月) 11:38:480373デフォルトの名無しさん
2009/11/23(月) 11:55:21PNGじゃキューブマップもミップマップも入らないだろって話。
つか読み込み時間気にするほど大量にデータ読んでるのに
なんでVRAMの事は気にしないんだ?
0374デフォルトの名無しさん
2009/11/23(月) 12:02:04ありがとう
自己解決しました。float4でOKでした。
DWORDでなくBYTE[4]もOKでした
0375デフォルトの名無しさん
2009/11/23(月) 12:37:30キューブマップはまだ扱ってない。
ミップマップはGPUから生成できるならそうしようか、という考え。
VRAMのことを気にしなくていいのは、同時に使用するテクスチャの量は知れてるから。
せいぜい50〜100MBくらいかな。
0376デフォルトの名無しさん
2009/11/23(月) 14:24:40さらに2度描きようのテクスチャとかもリアルタイムでボコボコ作るし
いらないけどほったらかしにしてある描き込み用テクスチャも
面倒だから放置だわw
上から文句言われるのはロード時間だけだしね
0377デフォルトの名無しさん
2009/11/23(月) 16:03:32突然、流れと関係ない自分話をする奴って、
やっぱり脳に何らかの障害があるんだろうね。
0378デフォルトの名無しさん
2009/11/23(月) 16:27:580379デフォルトの名無しさん
2009/11/23(月) 16:33:56環境シェーダーみたいなのないんでしょうか。
スレ違いだったらすみません
0380デフォルトの名無しさん
2009/11/23(月) 16:42:58システムメモリの容量に関する話は全く出ていないんだが、頭は大丈夫か?
0381デフォルトの名無しさん
2009/11/23(月) 20:17:15あとはまぁほしけりゃ自分で作れ。そのためのシェーダーだ。
0382デフォルトの名無しさん
2009/11/23(月) 21:16:05なんでキレ易いの?
育ち悪いの?
死ぬの?
0383デフォルトの名無しさん
2009/11/23(月) 21:55:050384デフォルトの名無しさん
2009/11/23(月) 22:23:43やるなら、どっちかの民族が滅亡するまでやって!!
0385デフォルトの名無しさん
2009/11/23(月) 22:43:44ファイッ!!
0386デフォルトの名無しさん
2009/11/23(月) 22:54:00Xファイルの読み込みから表示までってクラス化したほうがいいのかなあ?
あとオブジェクトを透明にしたら描画の順番で透けて見えるかどうかが変わっちゃうんだけど
やっぱりこれは順番を気をつけるしかないの?
0387デフォルトの名無しさん
2009/11/24(火) 00:33:21自分でクラス作るくらないら独自フォーマットにしてしまった方が早いと思わなくもない
0388デフォルトの名無しさん
2009/11/24(火) 01:24:020389デフォルトの名無しさん
2009/11/24(火) 04:42:45一旦テクスチャにレンダリングしてからビルボードとして画面に出すのが定石
0390デフォルトの名無しさん
2009/11/24(火) 05:42:550391デフォルトの名無しさん
2009/11/24(火) 13:48:23ポリゴンの高度にキャラを立たせようと
http://marupeke296.com/COL_Basic_No2_ShortTec.html#%E6%96%9C%E9%9D%A2%E3%81%AB%E7%AB%8B%E3%81%A4%E3%81%AB%E3%81%AF%EF%BC%9F
ここを参考にやっているのですが
ポリゴンによって上手くいったり、全くおかしな挙動をしたりします。
計算式は、高さ成分がyなので、yとzは入れ替えて行っているのですが、
z軸はおおよそ正しくてもx軸の高さ方向が逆というか最大値が逆方向を向いていたり
ポリゴンによってはどの頂点を取って計算しても正常にならなかったりします。
普通キャラをポリゴン上に立たせる場合、
この計算方法は一般的なのでしょうか? 他に定番の方法が有るものなのでしょうか?
0392デフォルトの名無しさん
2009/11/24(火) 13:54:35実は高度な技法の一端を書いている天才:10000.00倍
適当にそれっぽい単語でそれっぽいことを書いてる馬鹿:1.001倍
0393デフォルトの名無しさん
2009/11/24(火) 14:18:19平面の方程式は、a * x + b * y + c * z + d = 0
うち、xとyを指定してzを求めたい。
z = -( a * x + b * y + d ) / c
これだけでしょ。ここに違いが無いというなら、
平面を間違えて作ってるんじゃないの?
0394デフォルトの名無しさん
2009/11/24(火) 23:25:59//1度だけ呼ぶ例
BeginScene();
Draw1(); //DrawPrimitiveなどの描画メソッド
Draw2(); //
EndScene();
Present();
//描画のたびに呼ぶ例
Draw1(); //BeginScene,EndSceneを包括する描画メソッド
Dwar2(); //
Present();
0395デフォルトの名無しさん
2009/11/24(火) 23:44:29Multiple non-nested IDirect3DDevice9::BeginScene/IDirect3DDevice9::EndScene pairs between calls to present are legal, but having more than one pair may incur a performance hit.
0396デフォルトの名無しさん
2009/11/24(火) 23:58:08ちゃんと記載されてるんですね。
0397デフォルトの名無しさん
2009/11/25(水) 04:28:02計算式を思いつく範囲であれこれいじってみたけど、間違えてはないみたいです。
今は書いて頂いた式でやってみています。
斜面の法線方向も間違えてはいないみたいですし・・
平面=キャラのxz座標?ではないですよね・・。
計算式以外を片っ端からチェックしてみようかと思います。
ありがとうございました。
0398デフォルトの名無しさん
2009/11/25(水) 05:28:33よく見ると法線のx方向だけが真逆になってる・・何処を間違えているんだろう。
全体のx座標がひっくり返ってるんだろうか。うーん・・。
0399デフォルトの名無しさん
2009/11/25(水) 09:44:140400デフォルトの名無しさん
2009/11/25(水) 10:04:321.自分が扱っている座標系が右手系なのか左手系なのか、理解していないのではないか。
2.ベクトルの外積がどういう計算なのか理解していないのではないか。
つまり外積すれば法線が求まる、というだけで理解しているのではないか。
0401デフォルトの名無しさん
2009/11/25(水) 11:20:53ありがとうございます。
モデル作成が右手系で確認したのですが大丈夫でした。
そして、半分やけになって関連処理コードを全部消して書き直したら正常に処理・・orz
しかし確かに右手系と左手系でどっち方向が+なのか言えと言われたらすぐに言えないですし、
外積も2ベクトルに垂直なベクトルがどっちか方向に出る という認識しか無いし、勉強不足でした。
今後内積も合わせて注意して行きたく思います。ありがとうございました。
0402デフォルトの名無しさん
2009/11/25(水) 16:12:51PNG画像を板ポリに貼り付けての描画がうまく行きません。
透明付きのPNGファイルなのに、透明になりません。
passの中のステート設定は、これで大丈夫でしょうか?
pass
{
PixelShader = compile ps_2_0 PS_Sample();
ZEnable = false;
AlphaBlendEnable = true;
}
0403デフォルトの名無しさん
2009/11/25(水) 17:07:37それだけで判断はできない。
0404402
2009/11/25(水) 17:49:28エフェクトファイルを全部書きます。ちなみにPOSITIONTで2D描画するので頂点シェーダは記述していません。
texture g_TextureDiffuse;
sampler SamplerDiffuse = sampler_state
{
Texture = <g_TextureDiffuse>;
MinFilter = Linear;
MagFilter = Linear;
MipFilter = Point;
};
struct VS_TO_PS
{
float4 Position : POSITION;
float2 Tex : TEXCOORD;
float4 Color : COLOR;
};
float4 PS_Sample( VS_TO_PS In ) : COLOR
{
return tex2D( SamplerDiffuse, In.Tex );
}
technique Technique_Sample
{
pass
{
PixelShader = compile ps_2_0 PS_Sample();
ZEnable = false;
AlphaBlendEnable = true;
}
}
0405デフォルトの名無しさん
2009/11/25(水) 17:56:470406デフォルトの名無しさん
2009/11/25(水) 18:00:58こうしてみてよ。
float4 PS_Sample( VS_TO_PS In ) : COLOR
{
return 0.5f.xxxx;
}
0407402
2009/11/25(水) 18:12:50ありがとうございます。その設定を調べて見ます。
>>406
それで実行するとくすんだ黄色みたいにポリゴンが塗りつぶされるんですが
「.xxxx」ってどういう意味なんですか?
0408デフォルトの名無しさん
2009/11/25(水) 18:31:260409402
2009/11/25(水) 18:52:34なるほど。ありがとうございます。
ところで>>406ではどうやったって灰色が出力されるだけかと思います。
実際試したら灰色でした。(さっき「くすんだ黄色」と言ったけれど
背景との兼ね合いでの目の錯覚でした。)
これでテクスチャの何が分かるというのですか?
0410デフォルトの名無しさん
2009/11/25(水) 18:56:010412デフォルトの名無しさん
2009/11/25(水) 18:58:31半透明にならない理由が
レンダリングステートにあるのか
テクスチャにあるのか切り分け出来る
>「くすんだ黄色」と言ったけれど
>背景との兼ね合いでの目の錯覚でした。
これは背景と合成された結果、くすんだ黄色になったのか?
それとも、灰色を見間違っただけか?
前者なら、レンダーステートは何かしら作用していると判断していいのでは?
0413デフォルトの名無しさん
2009/11/25(水) 19:14:580414402
2009/11/25(水) 19:15:50なるほど・・・いかなる単純な透明であれ、ステートが関係するものなんですね。
アルファ値を含む単純な出力なら、ステートとか関係なく半透明になるかと思いました。
↓こんな感じで実験したら
float4 col;
col.r = 0.9f;
col.g = 0.3f;
col.b = 0.3f;
col.a = 0.1f;
return col;
a が全然作用しないと分かりました。つまりステートの設定ができていなという事なんですね。
よくわかりました。ありがとうございます。
後は>>405について研究して見ます。
0415デフォルトの名無しさん
2009/11/25(水) 19:40:39アルファ値に半透明度ではなく意味のある数値を含めて描画したい場合とかどうにもならんくなる。
0416デフォルトの名無しさん
2009/11/25(水) 19:58:38BlendOp = ADD
SrcBlend = ONE
DestBlend = ZERO
だから、AlphaBlendEnableをtrueにしただけじゃソースが素通りで何もブレンドされないね。
0417402
2009/11/25(水) 20:06:01>>416
それ書くとクリエイトエフェクトファイルした時点でエラーが発生します!
例えば
pass
{
PixelShader = compile ps_2_0 PS_Sample();
ZEnable = false;
AlphaBlendEnable = true;
BlendOp = ADD;
}
が通りません。試しにBlendOp = ADD;をピクセルシェーダー内に移動してもダメでした。
どこが間違っているのでしょうか?デフォルト設定なら通るはずなのですが・・。
0419デフォルトの名無しさん
2009/11/25(水) 21:06:56チュートリアルが一通り使い方を学べるようになっている。
0420デフォルトの名無しさん
2009/11/25(水) 21:06:59と出るのですが
これの解決策を教えてください
0421デフォルトの名無しさん
2009/11/25(水) 21:07:570422402
2009/11/25(水) 21:53:01透明部分を含む板ポリを描画するようなサンプルをご存知の方いらしたら教えてください。
(SDKのHELP、Web、本など媒体は問いません。)
テクスチャの表示自体は古いテーマなので、シェーダやエフェクトと絡めて
説明されている資料が今のところ見当たりません・・・。
0423デフォルトの名無しさん
2009/11/25(水) 22:21:44既存のライブラリで半透明描画してるやつとかのソース覗くのが早いんでない。
0424デフォルトの名無しさん
2009/11/25(水) 22:29:10設定の仕方は参考になろう
0425デフォルトの名無しさん
2009/11/25(水) 22:56:08コンパイルエラーは確認したか?
0426402
2009/11/25(水) 23:11:14ご助言ありがとうございます。
今、シェーダーをデバッグモードにして、その後元に戻してから
BlendOp = 1;をpass内に書いたら、エラーで落ちずに済みました。
何が何だか分からんのですが、ともかくこれで前に進めます。
0427402
2009/11/25(水) 23:25:28ようやくできました。
皆様ありがとうございました。
0428デフォルトの名無しさん
2009/11/25(水) 23:37:04アルファ付きPNGで半透明合成したいときにDestBlend=ONEは絶対間違ってる気がするが・・・
0429デフォルトの名無しさん
2009/11/25(水) 23:50:30D3DRS_BLENDOP = D3DBLENDOP_ADD;
D3DRS_SRCBLEND = D3DBLEND_SRCALPHA;
D3DRS_DESTBLEND = D3DBLEND_INVSRCALPHA;
加算合成したいならまあONEでいいおね
0430402
2009/11/26(木) 00:03:10確かに2= D3DBLEND_ONEです。
私がやりたいのは画像の一部が透明の描画であって
「半透明合成」とは多分違うと思います。
0431デフォルトの名無しさん
2009/11/26(木) 00:05:03半透明部を含む画像を描画することを半透明合成というんだが、
こいつは何を言ってるんだろうか……?
0433デフォルトの名無しさん
2009/11/26(木) 00:12:03レンダリングがうまくいかないんだが、何かコツある?
・固定シェーダー+POSITION_RHW
・固定シェーダー+POSITION
・HLSLシェーダー+POSITION_RHW
は描画が確認できるんだが、
・HLSLシェーダー+POSITION
の確認が取れない。
0434デフォルトの名無しさん
2009/11/26(木) 00:17:17このページでも読んで、なぜその設定で期待通りの結果になったのかちゃんと理解しろよ
http://msdn.microsoft.com/ja-jp/library/bb173417(VS.85).aspx
0435デフォルトの名無しさん
2009/11/26(木) 00:18:34うちもシェーダーで悩んだのだが、HLSLの症状は逆だな。
ヒントになるかわからないが、バーテックス定義はてっきり
SetVertexDeclaration()
をしないとダメだと思い込んでたが、これコメントアウトして
SetFVF()
にしたら表示された。
この似たような機能の2つの関数はちょっとなんだこれ
0436デフォルトの名無しさん
2009/11/26(木) 00:21:43外しているかもしれないが、
GMA 950は頂点シェーダのハードウェア処理には対応していなくて、
デバイス作成時にソフトウェア頂点処理のフラグを指定しないと駄目だった気がする。
0437デフォルトの名無しさん
2009/11/26(木) 09:36:02あんまりシェーダー使わないからわからないけどPシェーダーでできんのかなあ?
0438デフォルトの名無しさん
2009/11/26(木) 10:12:460439デフォルトの名無しさん
2009/11/26(木) 10:13:05"Pシェーダー" の検索結果 約 75 件
http://www.google.co.jp/search?q=%22P%E3%82%B7%E3%82%A7%E3%83%BC%E3%83%80%E3%83%BC%22
初めて聞く言い回しだが、鉄道模型シミュレーターとかいう奴ばっかり引っかかるな
0440デフォルトの名無しさん
2009/11/26(木) 10:16:24あれ?なんかに書いてあった気がしたけど気だけか
今度から気をつけるよ
0442デフォルトの名無しさん
2009/11/26(木) 12:37:33それともすべて配列に入れてしまったほうがいいんでしょうか?
0443デフォルトの名無しさん
2009/11/26(木) 12:47:16でかさによる
0444デフォルトの名無しさん
2009/11/26(木) 12:56:590445デフォルトの名無しさん
2009/11/26(木) 13:11:32宜しければわかりやすくまとめてここに書いてもらってよいですか?
0446デフォルトの名無しさん
2009/11/26(木) 13:22:10周辺と現在マップを入れた9マップを0〜8の9配列に読みこんで作ろうと思うんですが、
常に配列番号4を中心としてマップをずらして配列を再作成すると3〜5マップを、マップ切り替わりの度に読み込むことになりますよね?
このやり方でがんばってもいいんでしょうか?現在位置とマップの高さ座標を再作成される配列を通して計算するところが複雑になりすぎて不安なんです。
0447デフォルトの名無しさん
2009/11/26(木) 15:13:170448402
2009/11/26(木) 16:19:23透明付きPNG画像を単純に描画する時は次のように設定するとうまく行きます。
----------------------------------------------------
AlphaBlendEnable = true;//アルファブレンドを有効にします
BlendOp = 1;//ブレンドの方法に加算合成を指定
DestBlend = 6;//ブレンドする時、背景のRGBAに(1-As, 1-As, 1-As, 1-As)を乗算
SrcBlend = 5;//ブレンドする時画像のRGBAに(As, As, As, As)を乗算
--------------------------------------------------
ここでは「As」というのは画像の透明情報です。つまり画像のピクセルのRGBAにおけるAの値です。
そして後に紹介する公式との兼ね合いで(1-As, 1-As, 1-As, 1-As)等のかっこの中の1は
背景、あるいは画像の色をそのまま残すという意味になり、0だと、対応するARGBが0
になります。例(0,0,0,0)真っ暗 (1,1,1,1)変化なし
透明情報が透明か不透明かの2段階しかないPNG画像において「1-As」は
透明なピクセルでは0,不透明なピクセルではでは1になります。
加算合成(BlendOp = 1)においてブレンド後に出力される色の公式は
「 画像のピクセル色 * SrcBlend + 背景のピクセル色 * DestBlend」になります。
この式を上記の設定のコメントと一緒に見て解釈すれば
なぜこれでうまく行くのか分かると思います。
0449デフォルトの名無しさん
2009/11/26(木) 17:10:19頼むからHLSLのステートに即値を設定するのはやめてくれ。
0450402
2009/11/26(木) 17:23:50AlphaBlendEnable = true;
BlendOp = ADD ;
DestBlend = INVSRCALPHA;
SrcBlend = SRCALPHA;
これで出来るんですね。
気がつきませんでした。
D3DBLENDOP_ADD みたいに
プレフィックスまでいれてエラーが出たので
ああ、そりゃHLSLにD3Dで定義された定数は使えないか
直接数字入れるしかね〜のかと思ってあきらめていましたいました。
アドバイスサンクス。
0451デフォルトの名無しさん
2009/11/26(木) 18:37:290452デフォルトの名無しさん
2009/11/26(木) 18:45:55Error: The Direct3D device has a non-zero reference count, meaning some objects were not released.
というエラーが出ます。どこかで解放してないみたいなんですが、
それを追う方法って何かありますか?
0453402
2009/11/26(木) 18:58:14それが理想的だとはしょっちゅう思うんだが、結局なんか無理・・・
初心者ほどHELPの内容が必要なのに、初心者ほどHELPを読むための
知識や技量が全然足りない。
0454デフォルトの名無しさん
2009/11/26(木) 19:02:43ありがとう。参考になります。
シェーダーにステートが設定できるなんて最近知ったよ。。。(書いてあるサイトが少ない)
0455デフォルトの名無しさん
2009/11/26(木) 22:21:50シェーダーじゃなくてエフェクトファイルな。
エフェクトのインターフェイスが中でStateBlock作って描画毎にステートいじってる。
0456デフォルトの名無しさん
2009/11/26(木) 22:36:01大胆にソースを削る。
例えば、初期化と終了のみにしたらどうか?
+スカイボックスだけにしたらどうか?
+フィールドだけにしたらどうか?とか
0458デフォルトの名無しさん
2009/11/27(金) 22:54:18と出るのですが
これの解決策を教えてください
0459デフォルトの名無しさん
2009/11/27(金) 22:55:480460デフォルトの名無しさん
2009/11/27(金) 23:07:09まずはエラー部分のソースコードを出せ
0461デフォルトの名無しさん
2009/11/28(土) 00:12:21directx使うメリットってなんなの?
VC++じゃいけないの?
教えろ糞共
0462デフォルトの名無しさん
2009/11/28(土) 00:14:07お前の態度が
気に入らない
0463デフォルトの名無しさん
2009/11/28(土) 00:16:020464デフォルトの名無しさん
2009/11/28(土) 00:19:31位置を変える以外に解決法ある?
0465デフォルトの名無しさん
2009/11/28(土) 00:45:03リックディアスじゃないぞ
0466デフォルトの名無しさん
2009/11/28(土) 00:48:13directx使う利点についてお教え願いたいです
ご親切な方宜しくお願いします
0467デフォルトの名無しさん
2009/11/28(土) 00:48:52お前の態度が
気に入らない
0468デフォルトの名無しさん
2009/11/28(土) 00:54:06そうかわかった
バイアスとバイアランならよく間違えるがな
0469デフォルトの名無しさん
2009/11/28(土) 00:54:540470デフォルトの名無しさん
2009/11/28(土) 01:20:560471デフォルトの名無しさん
2009/11/28(土) 01:54:15お前の態度が
気に入らない
0472デフォルトの名無しさん
2009/11/28(土) 01:55:21お前の態度が
気に入らない
0473デフォルトの名無しさん
2009/11/28(土) 01:57:15お前の態度が
気に入らない
0474デフォルトの名無しさん
2009/11/28(土) 02:11:21お前の態度が
気に入らない
0475デフォルトの名無しさん
2009/11/28(土) 02:19:54お前の態度が
気に入らない
0476デフォルトの名無しさん
2009/11/28(土) 02:44:07お前の態度が
気に入らない
0477デフォルトの名無しさん
2009/11/28(土) 02:58:07お前の態度が
気に入らない
0478デフォルトの名無しさん
2009/11/28(土) 03:13:14お前の態度が
気に入らない
0479デフォルトの名無しさん
2009/11/28(土) 03:19:02お前の態度が
気に入らない
0480デフォルトの名無しさん
2009/11/28(土) 03:26:41お前の態度が
気に入らない
0481デフォルトの名無しさん
2009/11/28(土) 03:53:01お前の態度が
気に入らない
0482デフォルトの名無しさん
2009/11/28(土) 04:36:23お前の熊度が
気に入らない
0483デフォルトの名無しさん
2009/11/28(土) 04:50:01お前の熊度が
気に入らない
0484デフォルトの名無しさん
2009/11/28(土) 05:11:11お前の熊度が
気に入らない
0485デフォルトの名無しさん
2009/11/28(土) 10:09:290486デフォルトの名無しさん
2009/11/28(土) 10:27:390487デフォルトの名無しさん
2009/11/28(土) 10:59:07printfとscanfとちょっとした配列やifとかfor文といった基本的なことだけでも
コマンドプロンプトでゲームつくれるぞ。文章だけでも立派なゲームだ。
0488デフォルトの名無しさん
2009/11/28(土) 11:02:48肉と包丁を比べるような物。
肉使うメリットってなんなの?
包丁じゃいけないの?
意味が分からん。
0489デフォルトの名無しさん
2009/11/28(土) 11:05:42それで満足できるんならそれでいいんじゃないの
誰も文句言わんよ
俺の一つ上の世代は文字しかないゲームを何十時間も遊んだんだし
0490デフォルトの名無しさん
2009/11/28(土) 11:41:29具体的にどんな機能かというと「超早いタイマー」
普通のウィンドウズのアプリケーションは
マウスがクリックされたら〜〜しろ、キーボードから入力されたら〜〜しろ
そうじゃないなら休んでろ、みたいな感じ。
「ユーザーの入力等がないなら何もしないプログラム」
こういうのをイベントドリブン型プログラムという。
だが普通のゲームは違う。
マリオなら、マリオを操作しなくても、敵のクリボーやノコノは歩いてくるしぶつかったらマリオは死ぬ。
ドラクエなら、勇者を操作しなくても町の人々はうろちょろ歩き続けるし、いろいろな処理をしてる。
「ユーザーの入力がなくてもリアルタイムで何らかの処理をしなければならない」
厳密にはリアルタイムじゃなくものっそい小さい秒で細かい処理をしてるだけだが。
こんな風に、普通のウィンドウズアプリケーションとは動作がぜんぜん違うから
同じようには作りづらい。そこでDirectXなどがあればこういう
「リアルタイム処理」がしやすくなる。まぁグラフィックス表示機能とかもあるけどそれはオマケ。
0491デフォルトの名無しさん
2009/11/28(土) 11:51:03それは違う。
DXLIBは知らないが、DirectX(DDraw/D3D/D2D)、OPENGLは単なるライブラリだ。
フレームワークではない。
従ってそのようなリアルタイムプログラムを作成するには
それに適した構造のプログラムを自分で書かなければならない。
0492デフォルトの名無しさん
2009/11/28(土) 11:56:22BGM再生したいとき
なんか「いんすたんす」とかいう意味不明なものを作成して「初期化」だのなんだのごちゃごちゃやらなくてめんどくせーー!!
ダイレクトXとかなら
PlayMusic("C:\Windows\test.mid");
これだけで音楽流れる!素敵!最高!ラクチン!
どうだ?Directxのありがたさがわかったか!
0493デフォルトの名無しさん
2009/11/28(土) 13:04:28DXLIBもリアルタイム処理(?)に特化したような構造だがただのライブラリに過ぎん
0494デフォルトの名無しさん
2009/11/28(土) 13:15:540495デフォルトの名無しさん
2009/11/28(土) 13:22:27ちげーよ。フレームワークというのは、アプリケーションを実装する基盤のことだ。
例えばC標準ライブラリはライブラリだが、
int main(int argc, char** argv)
{
}
の仕組みとmain関数の外側はフレームワークということだ。
0496デフォルトの名無しさん
2009/11/28(土) 13:46:060497デフォルトの名無しさん
2009/11/28(土) 13:53:34VC++を使ってグラフィックを表示させるには大まかに分けて
GDIとDirectXを使う方法がある。
GDIはウインドウやアイコン等、一般的なアプリケーションでも
多用されている昔からある方法。
DirectXはゲームなどの高速描画に耐えられるように後から
追加された方法。特に本格的な3DCGをやりたいなら必須。
0498デフォルトの名無しさん
2009/11/28(土) 13:56:210499デフォルトの名無しさん
2009/11/28(土) 16:17:320500デフォルトの名無しさん
2009/11/28(土) 17:08:11代わりに出来ることがちょっと多い
0501デフォルトの名無しさん
2009/11/28(土) 17:12:300502デフォルトの名無しさん
2009/11/28(土) 17:18:560503デフォルトの名無しさん
2009/11/28(土) 17:28:13いい加減なことを言う前に、具体的に何が面倒で何が多いのかを明確にしろ。
0504デフォルトの名無しさん
2009/11/29(日) 05:49:30pDP8AddressHost->BuildFromURLA(
"x-directplay:/provider=%7BEBFE7BA0-628D-11D2-AE0F-006097B01411%7D;hostname=129.0.0.1;port=2345" );
というようにBuildFromURLA最後の部分でポート番号2345を指定してホストを作成しています。
しかしながら、このやり方だと2345番ポートが何らかのケースで使えなかった場合にエラーが生じてしまいます。
(モデムの問題やソケットの開放不具合でこのケースが結構ある)
そこで、
pDP8AddressHost->BuildFromURLA(
"x-directplay:/provider=%7BEBFE7BA0-628D-11D2-AE0F-006097B01411%7D;hostname=129.0.0.1" );
というようにすると、2345番ポートが利用不可能な場合でも正常にHost関数が
実行でき、ホストになれるのですが、今度はポート番号が分からないので外部から
接続できません。
ポート番号を明示的に指定しなかった場合はどのようにして使われているポート番号を
取得するのでしょうか?
0505デフォルトの名無しさん
2009/11/29(日) 06:05:22DirectPlay自体がレガシー扱いになって非推奨になってるからなぁ。
不満点があるなら使うなとしかいいようが。
0506デフォルトの名無しさん
2009/11/29(日) 09:47:50エラー起きたら投げて別のポート試させればいいじゃん
0507デフォルトの名無しさん
2009/11/30(月) 13:57:01やっぱりサンプルから勉強するっきゃないのかなあ・・・
0508デフォルトの名無しさん
2009/11/30(月) 14:37:150509デフォルトの名無しさん
2009/11/30(月) 18:15:230510デフォルトの名無しさん
2009/11/30(月) 18:19:330511デフォルトの名無しさん
2009/11/30(月) 18:20:220512デフォルトの名無しさん
2009/11/30(月) 19:03:070513デフォルトの名無しさん
2009/11/30(月) 22:57:09お前らの話はツマラン!!!
0514デフォルトの名無しさん
2009/12/01(火) 18:09:59自分自身のスクリーンのキャプチャを高速に行うにはどのように実装すればいいでしょうか?
sf = device->GetBackBuffer(0, 0);
HDC srcdc = sf.GetDC();
::BitBlt(dstdc, 0, 0, gameView.Width, gameView.Height, srcdc, 0, 0, SRCCOPY);
//後略
といった形でメインメモリに転送してるのですが、
BitBltの部分でFullHDの場合で0.3秒くらいかかってしまいます。
0515514
2009/12/01(火) 18:20:23フルスクリーンモードの描画をキャプチャするのは、キャプチャ画像をファイルとして書き出すためではなく、
描画をGDIに切り替える際の描画キャッシュとして使いたいためです。
フルスクリーンで描画中に一時的に
device->SetDialogBoxMode(TRUE);
を実行してメニューを表示したりダイアログを表示したりしています。
0516デフォルトの名無しさん
2009/12/01(火) 18:49:58一番いいのはダイアログを使わない事だけど。
0517デフォルトの名無しさん
2009/12/01(火) 22:03:18シングルコアだとそこまで遅くはないんだが、マルチコアだと致命的な遅さ。
GetDC等も内部的にLockするので駄目。
GetRenderTargetDataが速い。
0518デフォルトの名無しさん
2009/12/01(火) 22:35:41DXUTを使うかDXUTみたいなのを自作するほうが質も速度も断然いいのでは。
0519デフォルトの名無しさん
2009/12/01(火) 22:41:15ちょっと事情があって、Lock使うのは避けたい……。
>>517
なるほど。確かにビデオカード→システムメモリはボトルネックになりかねないし
画面の描画自体と競合もしてしまうので、
それを避けるためにGetRenderTargetData()でさっさとシステムメモリに転送かけたほうがよさそうです。
この線で試してみることにします。
0520デフォルトの名無しさん
2009/12/01(火) 22:57:28DrawPrimitiveとDrawSubsetを見かけるんですが、これってどんな違いが?
0521デフォルトの名無しさん
2009/12/01(火) 22:58:41DrawSubmitは内部でDrawPrimitiveIndexだっけ?を使用している
0522デフォルトの名無しさん
2009/12/01(火) 23:14:35描画前のバックバッファをシステムメモリのサーフェイスにコピーしてロックしたほうが速いだろ?
GetRenderTargetDataなんて鈍足の代表だろ。
0523デフォルトの名無しさん
2009/12/01(火) 23:20:39バックバッファをシステムメモリに転送するのがGetRenderTargetDataなんだが。
GetFrontBufferDataと間違えてない?
0524デフォルトの名無しさん
2009/12/02(水) 00:43:040525デフォルトの名無しさん
2009/12/02(水) 10:23:14そうなんですね。ありがとうございました。
0526デフォルトの名無しさん
2009/12/02(水) 10:33:57「ポリゴンの半透明化」と「テクスチャの抜き色」の実装が上手く行かず困っています。
(背後のオブジェクトが表示されない現象など)
レンダリングステートや描画順序を正しく理解していない所為だと思うのですが
ここを詳しく解説して下さっているサイト様などをご存知の方はいらっしゃらないでしょうか?
0527デフォルトの名無しさん
2009/12/02(水) 10:39:19出来なければいっそ切れ
0528デフォルトの名無しさん
2009/12/02(水) 11:28:36FullHDでも0.1秒以内にメニューが表示できる状態になることを確認しました。
どうもありがとうございます。
しかし、表示方式を切り替えた瞬間にちらつくのは、なおらんのかなー。
デュアルディスプレイのもう一方のほうもちらついてるからなぁ。
0529デフォルトの名無しさん
2009/12/02(水) 11:45:23Zバッファの問題だったんですね。
やっと欲しい情報が見つかり始めました。感謝。
0530デフォルトの名無しさん
2009/12/02(水) 16:08:53多分ウィンドウの描画メッセージとうまくかみ合ってないだけな気がする。
0531デフォルトの名無しさん
2009/12/02(水) 19:24:40バトル画面のプログラム教えて欲しいのです><。
if(ch.x%32==0 && ch.y%32==0){ //座標が32で割り切れたら入力可能
ch.walking_flag=1; //歩くフラグを立てる。
if ( Key[ KEY_INPUT_UP ] == 1 ) //上ボタンが押されたら
ch.muki=3; //上向きフラグを立てる
else if( Key[ KEY_INPUT_LEFT ] == 1 ) //左ボタンが押されたら
ch.muki=1; //左向きフラグを立てる
else if( Key[ KEY_INPUT_DOWN ] == 1 ) //下ボタンが押されたら
ch.muki=0; //下向きフラグを立てる
else if( Key[ KEY_INPUT_RIGHT] == 1 ) //右ボタンが押されたら
ch.muki=2; //右向きフラグを立てる
else //何のボタンも押されてなかったら
ch.walking_flag=0; //歩かないフラグを立てる
if(ch.walking_flag==1) //もし歩くなら
if(can_or_cannot(ch.x,ch.y,ch.muki)==1)//行き先が歩けないなら
ch.walking_flag=0; //歩かないフラグを立てる。
if(ch.walking_flag==1)
if(GetRand(4)==0)
{
printfDx("敵");}
}
敵の部分を同変えればいいかわかりません。
おねがいします。
0532デフォルトの名無しさん
2009/12/02(水) 19:32:170533デフォルトの名無しさん
2009/12/02(水) 19:47:350534デフォルトの名無しさん
2009/12/02(水) 19:57:090535デフォルトの名無しさん
2009/12/02(水) 20:04:32荒らしてすみません。
0536デフォルトの名無しさん
2009/12/02(水) 20:32:44DXライブラリ本家にでも行って尋ねるといい
あと、質問の意図が全く分からんのでもっと考えろ
0537デフォルトの名無しさん
2009/12/03(木) 08:58:46あれってDirectsoundとは完全に別で今までのソース使えなくて全部最初から作ることになるの?
0538デフォルトの名無しさん
2009/12/03(木) 10:04:05わざわざ書き直すメリットも大して無いから、そのままDirectSound使ってろよ。
0539デフォルトの名無しさん
2009/12/03(木) 20:26:34カメラからの距離によって大きさが変わらず困っています
SetRenderStateを使った方法ではできるのですが
POINTSCALEENABLE = TRUE;
POINTSCALE_A = 0.0f;
POINTSCALE_B = 0.0f;
POINTSCALE_C = 1.0f;
シェーダでは、この設定だけではできないのでしょうか
グラボの性能は大丈夫のはずです
0540デフォルトの名無しさん
2009/12/04(金) 02:16:36たとえば、256*256のテクスチャから200*200の矩形を使いたい場合、
右下のUV値には u = v = 200.0f / 256.0f とすればいいのでしょうか?
精度のせいで、画像がボケたり、ゴミが付いたりしないのでしょうか?
0541デフォルトの名無しさん
2009/12/04(金) 02:24:34その場合は画像の方に一工夫が必要だ
0542デフォルトの名無しさん
2009/12/04(金) 02:56:08ありがとうございます
0543デフォルトの名無しさん
2009/12/04(金) 21:12:13半ピクセル分ずらすよろし
左上もな
0544デフォルトの名無しさん
2009/12/04(金) 22:03:55みたいなリファレンスに使えるオヌヌメ本ってありまするか?
これ絶版のようで・・・アマゾンだと中古で1万とかするんですよね・・・
目的はゲーム製作で、浅く広くdirectxを扱ってるのがいいのですが
0545デフォルトの名無しさん
2009/12/04(金) 22:10:28たいした量ないんだしSDK付属のリファレンス全体を軽く読んでから
そこらへんのウェブサイト巡れば個人レベルなら困ることは無いと思うけど。
0546デフォルトの名無しさん
2009/12/04(金) 22:15:00悪い本ではないと思うよ
ただ通らない奴あるからなあ…
0547デフォルトの名無しさん
2009/12/04(金) 22:17:220548デフォルトの名無しさん
2009/12/04(金) 22:21:01まあちょっと直せば動くけど
ただ簡単な応用まで書いてあるから
別になくてもわかるけど・・・ってのもある
カメラのクレーン移動とか
0549デフォルトの名無しさん
2009/12/04(金) 22:24:020550デフォルトの名無しさん
2009/12/04(金) 22:24:440551デフォルトの名無しさん
2009/12/04(金) 23:33:06どんな状況だよ
とほんわかした
0552デフォルトの名無しさん
2009/12/05(土) 00:22:25DirectX9の範囲でいいなら、
http://www.amazon.co.jp/DirectX9-DirectX-Graphics-I%E3%83%BBO-BOOKS/dp/477751112X
がお勧めだよ。
HLSLのリファレンスがきっちり載せられてるほぼ唯一の本。
MS純正本のほうは同じく絶版になってる。
HLSLの文法や識別子のリファレンスがMSDNも含めて
きっちり書かれてるところが皆無だから非常に助かった。
それとシェーダーの入門書を1冊持ってる。
この2冊あればDirectX関係はほぼ困らないな。
0553デフォルトの名無しさん
2009/12/05(土) 00:34:5312/20に「DirectX逆引き大全500の極意」を大幅改定した書籍が出るみたいですよ。
DirectX9必携
ttp://www.northbrain.org/book/book.html#DX9HK
0554デフォルトの名無しさん
2009/12/05(土) 00:51:22インデックスバッファをGPUで加工出来る機能だと思っていいの?
0555デフォルトの名無しさん
2009/12/05(土) 00:55:49さっそくチェックしてみます!ありがとうございまする^^
>>553
まじっすか!?
首を長くして待とうとおもいます^^
ありがとうございました!
0556デフォルトの名無しさん
2009/12/05(土) 00:57:16ほほー。絶版になってて以前諦めた本がリニューアルされてるのか。
書店に出るようなら眺めてみるかなぁ。
0557デフォルトの名無しさん
2009/12/05(土) 02:19:42違う。
0558デフォルトの名無しさん
2009/12/05(土) 09:56:23kwsk
0559デフォルトの名無しさん
2009/12/05(土) 11:07:25DrawPrimitiveでいうプリミティブを1枚づつ受け取って、
Indexedじゃないプリミティブ配列を返すという感じだね。
確かにインデックスバッファは用済みみたい、サンクスコ
0560デフォルトの名無しさん
2009/12/05(土) 11:18:22まじっ!?
0561デフォルトの名無しさん
2009/12/07(月) 16:08:23XAudio2というのは、DirectX9.0に含まれているのでしょうか?
0562デフォルトの名無しさん
2009/12/07(月) 16:14:090563デフォルトの名無しさん
2009/12/07(月) 16:17:09(まだXPを切り捨てられないので)
ありがとうございました。
0564デフォルトの名無しさん
2009/12/07(月) 16:50:06うそつけ!
>>563
最近のDirectX Redistの中に入ってるよ。
2009年のもの(2つあるけど好きなほう)落としてごらん。
0565デフォルトの名無しさん
2009/12/07(月) 16:56:17念のためにいっておくが、XP sp2以降での動作は確認取れてるよ。
XP無印はまだ試してないので分からないけど。
0566デフォルトの名無しさん
2009/12/07(月) 21:14:070567デフォルトの名無しさん
2009/12/07(月) 21:23:58何が嘘なんだよ?
DirectX9.0の時点であったのはDirectX Audioまでであって、
XAudio2は存在していない。
お前の場合、嘘というより無知なんだから、
自覚して反省したら今後は黙ってろ。
0568デフォルトの名無しさん
2009/12/07(月) 21:24:55DirectXのコンポーネントがインストールできるかは
OSのバージョンとSPだけで決まって機種依存はないんだから、
手元で実際に試してみて確認が取れれば十分じゃん。
0569デフォルトの名無しさん
2009/12/07(月) 21:28:14それは実情に合ってない詭弁というものだ。
確かにXAudio2はDirectX9.0に入っていなかったかもしれないが、
今はXPにインストールできるし、Direct3D9と組み合わせて動かすことだってできる。
0570デフォルトの名無しさん
2009/12/07(月) 21:32:17DirectX9.0の機能じゃないし、Direct3D9と連携させる話なんて全く出ていない。
勝手に話を別の方向に持って行って頓珍漢なことを言っているのが分からないのか?
0571デフォルトの名無しさん
2009/12/07(月) 21:33:56ランタイムがあればWindowsXPでも動く。
ただそれだけ。
0572デフォルトの名無しさん
2009/12/07(月) 22:09:07確かに561の最初の質問の時点ではDirectX9.0と組み合わせるかどうかは言及してないが、
563を読めば実際には組み合わせたいのだという意図は読み取れるだろう。
そしてDirectX9以降はXBox360系の機能を除いては3D系しか更新されてない。
従って通常はDirect3D9と組み合わせたいのだと考えても差し支えないはず。
で、571が簡潔な答えじゃないかと。
0573デフォルトの名無しさん
2009/12/07(月) 22:11:080574デフォルトの名無しさん
2009/12/07(月) 23:02:300575デフォルトの名無しさん
2009/12/07(月) 23:06:07何がお前をそこまで駆り立てる?
0576デフォルトの名無しさん
2009/12/07(月) 23:07:42君、敗者確定ね
0577デフォルトの名無しさん
2009/12/07(月) 23:47:13制作元?に直接注文すれば今だけ送料込2800円だってよ。
ttp://www.northbrain.org/
0578デフォルトの名無しさん
2009/12/07(月) 23:57:20本のデキが悪くて売れないからなのか?
たった500円ぽっちで地雷踏みたくないからちょっと様子見にするわ
0579デフォルトの名無しさん
2009/12/08(火) 00:53:00大全自体を地雷扱いしてるなら話は別だが。
0580デフォルトの名無しさん
2009/12/08(火) 00:58:050581デフォルトの名無しさん
2009/12/08(火) 01:24:56数が出なくて初版で絶版だったり、そこまですら売れずに
初版が本屋で年単位で埃被ってる状況すら珍しくないのに
0582デフォルトの名無しさん
2009/12/08(火) 01:43:36ド田舎じゃそうなんだろうな
0583デフォルトの名無しさん
2009/12/08(火) 03:42:430584デフォルトの名無しさん
2009/12/08(火) 07:53:510585デフォルトの名無しさん
2009/12/08(火) 08:13:52まぁ遠回りしたほうがいいよね
0586デフォルトの名無しさん
2009/12/08(火) 10:21:26あるポリゴンの三点をとって面の傾きを知るとか面の上のある点の座標を求めるとか
三点とる以外はただのベクトルの応用だろ
あとは間違いがあるサンプルとか・・・
ただXaudio2の話が載ってたら欲しいかなあ
0587デフォルトの名無しさん
2009/12/08(火) 11:00:44あとはコピペグラマとかサンプルプログラマとかの発想力ゼロの奴等もか
0588デフォルトの名無しさん
2009/12/08(火) 11:05:34ttp://mainori-se.sakura.ne.jp/slimdxwiki/wiki.cgi?page=DirectSound+%A4%C8+XAudio+%A4%CE%B0%E3%A4%A4
0589デフォルトの名無しさん
2009/12/08(火) 11:32:03どうもありがとうございます。
といっても、XPまでなんですね。微妙なところ・・・。流石に2kは対象外としてもいいかなぁ?
意図をくみ取ってくださってありがとうございました。
もちろん、DX10〜が使えない環境で使えるかという意味合いでした。今後はもう少し具体的に書くようにしますね。
0590デフォルトの名無しさん
2009/12/08(火) 11:32:44初心者向け?
おまえにぴったりじゃないか!
0591デフォルトの名無しさん
2009/12/08(火) 11:42:51ちゃんと使ったことないのに無理してまとめんなよって感じの記事だな・・・
>>589
2000はサポート外。ドキュメントに明記されてるよ。
CPUもSSE載ってないと初期化ではじかれる。
どちらかと言えばそっちの要件の方がきついかもね。
0592デフォルトの名無しさん
2009/12/08(火) 12:02:49まあ、アレゲなバックポート対応のライブラリをインストールしたら2kでも使えるみたいだけどね。
でも到底サポートといえるレベルじゃ……。
>>591
MSDNでは記述が確認できないんだが、どこに書いてあるんだろうか?
ただし、SDKのヘッダファイルに対応OSが書かれてるのは確認している。
XAudio2周辺では、XACT3D3ライブラリのみが2k対応みたいだな。
(なぜかXAudio2本体には書いてないんだけど……)
0593デフォルトの名無しさん
2009/12/08(火) 12:16:32http://msdn.microsoft.com/en-us/library/ee415709(VS.85).aspx
0594デフォルトの名無しさん
2009/12/08(火) 12:28:400595デフォルトの名無しさん
2009/12/08(火) 12:29:010596デフォルトの名無しさん
2009/12/08(火) 13:32:24自分の作ってるゲーム(?)を2kサポート外にしようかなぁって意味だろ・・・
0597デフォルトの名無しさん
2009/12/08(火) 21:18:52それが嫌だったので、デスクトップのウィンドウハンドルについてDSBCAPS_GLOBALFOCUSとかDISCL_BACKGROUNDフラグを指定して
使おうと思うんですが、PCの動きが悪くなったり、他のソフトが動かなくなるとかの実害はあるんでしょうか?
ウィンドウが非アクティブな時はメッセージ処理で音を止めたり、入力を中断すれば特に問題はないんでしょうか?
0598デフォルトの名無しさん
2009/12/08(火) 21:23:03なんでそれくらい、自分で動かしながら物を考えない?
そういう使い方をするなら、DirectInputよりグローバルフックのほうがふさわしい。
0599デフォルトの名無しさん
2009/12/08(火) 21:37:58いや、手元で動いてはいるんですけど、それで全体の動作に悪影響が無いかが気になったんで・・・・
0600デフォルトの名無しさん
2009/12/08(火) 21:59:54アクティブ切り替えたり他のアプリ起動してみたりして
0601デフォルトの名無しさん
2009/12/08(火) 22:02:060602デフォルトの名無しさん
2009/12/08(火) 23:25:39悩む意味がわからない。
0603デフォルトの名無しさん
2009/12/09(水) 00:10:50Windows XP 70.48% (↓)
Windows Vista 18.83% (↑)
Windows 7 2.15%(↑)
Windows 2000 0.78% (↓)
今や2000はシェア1%にも満たないんだな
わざわざ手間隙かけてサポートする価値はなさげ
0604デフォルトの名無しさん
2009/12/09(水) 00:33:13お前等、金にならないOSのサポートはやめろといってるだろ
そんなにサポートしたいならまずはMacで動かしてやれよw
0605デフォルトの名無しさん
2009/12/09(水) 00:43:08うちはWin98までサポートしてしまってるけど、もうやめるか。
0606デフォルトの名無しさん
2009/12/09(水) 00:48:1898なんて歴史の中の存在だよ
0607デフォルトの名無しさん
2009/12/09(水) 00:53:450608デフォルトの名無しさん
2009/12/09(水) 01:44:22日本のPCゲーの開発者、つーかエロゲとか同人だけど、
そいつらは低スペックで動くようにする事にやたらこだわるからな。
0609デフォルトの名無しさん
2009/12/09(水) 02:10:100610デフォルトの名無しさん
2009/12/09(水) 08:32:280611デフォルトの名無しさん
2009/12/09(水) 09:06:42まぁでも趣味でやれればいいなら好きにすりゃいいけどなー。
将来PGで飯を食いたいとか妄言を言わなきゃ別に何でもいい。
0612デフォルトの名無しさん
2009/12/09(水) 11:10:320613デフォルトの名無しさん
2009/12/09(水) 11:32:44MS自身では最近は2kで動かないように作るほうが普通になってる。
オレは本音を言うならXPすら捨てたい。
DirectX10楽そうだからな。
0614デフォルトの名無しさん
2009/12/09(水) 11:34:020615デフォルトの名無しさん
2009/12/09(水) 11:38:20シニア的にはもう作ってるから9のが楽
0616デフォルトの名無しさん
2009/12/09(水) 11:55:54趣味ゲーや同人ゲーを作る上ではDirectX9で十分だしな。
というか、XPのパイを切り捨てられるほど超最先端なゲームなんて、このスレにくるようなやつがつくるか?
0617デフォルトの名無しさん
2009/12/09(水) 12:03:23高性能なPS3やx-box360よりもDSや携帯電話ゲームの方が多く遊ばれている時代だぜ
0618デフォルトの名無しさん
2009/12/09(水) 12:04:440619デフォルトの名無しさん
2009/12/09(水) 12:09:20逆じゃね?商業だとXPの切り捨ては無理だが、
趣味なら簡単に切り捨てて楽したり新しい技術で遊んだりできる
0620デフォルトの名無しさん
2009/12/09(水) 12:20:29この度はご注文戴き、誠にありがとうございます。
(中略)
【商品】
「DirectX9必携」 1冊 2,800円
送料 当社負担
特別割引 -600円
合計 2,200円
(中略)
【商品発送時期】
12月20日前後になります。
(後略)
定価3300円の筈だが、再販制度と取次を回避するとここまで安く出来るものなのか?
かなりびっくりした。
あと、Gmailだと届かないっぽいから気をつけろ。
0621デフォルトの名無しさん
2009/12/09(水) 14:18:06API的にはそうなんだが、GeForceが未だに対応してないってお前空気読め>NVIDIA
って状態。
0622デフォルトの名無しさん
2009/12/09(水) 14:23:35DX9→DX11(DX10モード)→DX11か、
DX9→DX11か。
0623デフォルトの名無しさん
2009/12/09(水) 14:49:00はぁ?
お前が空気読めよ
0624デフォルトの名無しさん
2009/12/09(水) 14:52:110625デフォルトの名無しさん
2009/12/09(水) 14:55:140626デフォルトの名無しさん
2009/12/09(水) 14:57:230627デフォルトの名無しさん
2009/12/09(水) 15:03:25今後主流になっていくGPGPUについて、MSの力を借りずNVIDIA流で押し通したいっていう
政治的なものが感じられてくる。
Dx9のときは、HLSLという形でCgの成果をMSに提供してていい感じだったんだが。
一方、ATI(AMD)は純粋にGPUとして進化させていくという方式だから、DirectX対応も素直。
0628デフォルトの名無しさん
2009/12/09(水) 15:18:18それを言ったらDirectX10のときにNVIDIAに半年遅れをとったATiはどうなるのよ。
0629デフォルトの名無しさん
2009/12/09(水) 15:21:240630デフォルトの名無しさん
2009/12/09(水) 16:19:38あのころは開発資金が枯渇してて、にっちもさっちも行かなくなってたからなー。
AMDに買収されて、建て直しが行われたわけで。
今からすれば正解だったな。
おっと。そろそろスレ違いか。
0631デフォルトの名無しさん
2009/12/09(水) 17:23:00もう来るんじゃねえぜ
0632デフォルトの名無しさん
2009/12/09(水) 20:15:18DirectX9でのシェーダでの描画の第一歩ということで影を描画しようとして地面(板ポリ)とその上に立方体を描画して
深度z/wをテクスチャに書いて表示させたのですがオブジェクトの部分が真っ白になってしまいます。
0.5*z/wなどとして表示させてみるとどうやらzとwに同じ値が入っているようなのですが・・・
(0.2*zというような表示をすると一応視点から遠いほど白くなっている)
頂点シェーダではPos×WVPを出力、ピクセルシェーダではz/wを出力しているだけで、必要な行列は送っています。
0633デフォルトの名無しさん
2009/12/09(水) 20:48:39射影変換のznearとzfarの値はどうなってる?
0634デフォルトの名無しさん
2009/12/09(水) 20:59:10わかりません。
0635632
2009/12/09(水) 21:19:57レスありがとうございます
ご指摘通りD3DXMatrixPerspectiveFovLHのnearとfarの値を変えると表示されました。
中身をよく把握せずにコピペしていたので躓きました・・・
0636デフォルトの名無しさん
2009/12/09(水) 21:23:290637デフォルトの名無しさん
2009/12/09(水) 23:42:21PS3レベルとかできます?
0638デフォルトの名無しさん
2009/12/09(水) 23:50:28PS3にできてDirectXにできないことなんて無い
0639デフォルトの名無しさん
2009/12/09(水) 23:51:524Gamer.netでも見てDirectX9対応のどんなPCゲームがあるか写真を眺めてみればよい
0640デフォルトの名無しさん
2009/12/10(木) 00:00:23かつてどうしてもZ-Bufferが機能しないので頭抱えてた
原因はnearに0.0fを指定してた
気が付くのに丸二日
○<\_
0641デフォルトの名無しさん
2009/12/10(木) 00:07:02レンダーターゲットにテクスチャを指定した上で、アンチエイリアシングをかけたいのですが方法が見当たりません。
CreateOffscreenPlainSurface などにも、アンチエイリアシングに関する引数が見当たらないようなのですが、
どのようにすれば実現できますでしょうか?
0642デフォルトの名無しさん
2009/12/10(木) 00:15:20一旦普通に描画してから半分のサイズに縮小転送すれば
アンチエイリアスになるが、そういう意味ではないのか?
0643デフォルトの名無しさん
2009/12/10(木) 00:28:05サンプリングの方法を変えてやればいい。
HLSLならSamplerのオプション、
固定シェーダーならSetSamplerState()
0644デフォルトの名無しさん
2009/12/10(木) 00:48:20DirectX9では無理ぽ
0645デフォルトの名無しさん
2009/12/10(木) 01:04:19DirectX9の場合はマルチサンプルのサーフェイスにレンダリングしてからStretchRectでテクスチャに転送。
0646デフォルトの名無しさん
2009/12/10(木) 05:08:09ノースブレインに直接、注文のメールした時の返信?
0647デフォルトの名無しさん
2009/12/10(木) 10:42:08本当のことを言っているのは誰ですか?
0648デフォルトの名無しさん
2009/12/10(木) 10:44:220649デフォルトの名無しさん
2009/12/10(木) 10:54:25あれどうやってんの?
テクスチャ二つ作って交互にメッシュに貼り付けてんの?
0650デフォルトの名無しさん
2009/12/10(木) 11:20:100651デフォルトの名無しさん
2009/12/10(木) 12:00:311枚のテクスチャに両方描いてUVをずらしてるんだ
0652デフォルトの名無しさん
2009/12/10(木) 12:02:14ちゃんとゲームとかって言ってるだろ
俺は>>649じゃないけど、質問に不備がないのは分かる
お前の読解力がないだけ、そんなだから仕事ないよだよ
0653デフォルトの名無しさん
2009/12/10(木) 12:03:53アホか。
0654デフォルトの名無しさん
2009/12/10(木) 12:07:40モデル自体を変形させているのか分からない。
0655デフォルトの名無しさん
2009/12/10(木) 12:13:460656デフォルトの名無しさん
2009/12/10(木) 12:25:22不気味の谷を越えるには何枚必要なんですか?
0657デフォルトの名無しさん
2009/12/10(木) 12:32:280658デフォルトの名無しさん
2009/12/10(木) 12:35:30そうかその手があったか
でテクスチャって256×256とか云々って聞いたけど
2の乗数にした方が良いのか?
0659デフォルトの名無しさん
2009/12/10(木) 12:36:320660デフォルトの名無しさん
2009/12/10(木) 12:38:08邪魔なだけなので^^
0661デフォルトの名無しさん
2009/12/10(木) 12:51:45それはお前の主観にすぎない
それとも、たかだか有限枚で自然な動きが表現できるとでも?
0662デフォルトの名無しさん
2009/12/10(木) 12:58:450663デフォルトの名無しさん
2009/12/10(木) 12:59:470664デフォルトの名無しさん
2009/12/10(木) 12:59:540665デフォルトの名無しさん
2009/12/10(木) 13:01:08>>656に答えて下さいよー
0666デフォルトの名無しさん
2009/12/10(木) 13:01:120667デフォルトの名無しさん
2009/12/10(木) 13:01:150668デフォルトの名無しさん
2009/12/10(木) 13:01:38とっととどのゲームなのか明示しろよ。
0669デフォルトの名無しさん
2009/12/10(木) 13:04:11プログラムを組むのは諦めた方がいい。
向いていない。
0670デフォルトの名無しさん
2009/12/10(木) 13:05:16ゲームのテイストによりけり。
コミカルなものなら2コマアニメーションでも問題無い。
0671デフォルトの名無しさん
2009/12/10(木) 13:08:56「テクスチャ二枚ってなんのゲーム」が前提条件ですかそうですか
0672デフォルトの名無しさん
2009/12/10(木) 13:17:16まず君が諦めなさい。
0673デフォルトの名無しさん
2009/12/10(木) 13:19:33>2の乗数にした方が良いのか?
できるだけ多くのビデオカードをサポートしたかったらそうした方が良いです。
0674デフォルトの名無しさん
2009/12/10(木) 13:20:390675デフォルトの名無しさん
2009/12/10(木) 13:30:17あいよ
ありがとうね
0676デフォルトの名無しさん
2009/12/10(木) 15:17:07>>645さんの方法をやってみたのですが、
http://msdn.microsoft.com/ja-jp/library/cc324248.aspx
>次のいずれかの場合、IDirect3DDevice9::StretchRect は失敗する。
>(略)
>転送元サーフェイスがマルチサンプリングされている場合 (MultiSampleType != D3DMULTISAMPLE_NONE で作成した場合)。
とあり、できそうにありません。
やはり他の方がおっしゃるとおり、シェーダ使うなりしないとDirectX9では無理なのでしょうか・・・
0677デフォルトの名無しさん
2009/12/10(木) 16:21:11ウソがばれたね
0678デフォルトの名無しさん
2009/12/10(木) 16:25:35641の質問なんだが、テクスチャへの描画でアンチエイリアシングをしたい、というだけでは
アンチエイリアシングという用語に複数の意味があって不明瞭なんだ。
要するに縞状ノイズが載らないように滑らかに縮小かけたいってことなの?
0679デフォルトの名無しさん
2009/12/10(木) 16:26:47どうせ仕事もしてないんだろ?w
スプラッシュしてろよカステラめ
0680デフォルトの名無しさん
2009/12/10(木) 16:38:51なるほど、もう少し詳しく書いてみます。
まず「ゲーム画面のスクリーンショットをとりたい」のです。
通常のウインドウへの描画の場合、バックバッファ生成時に
D3DPRESENT_PARAMETERSの
MultiSampleType = D3DMULTISAMPLE_2_SAMPLES;
などとしておくことで、アンチエイリアシングのかかった綺麗な描画が行えますよね。
しかし、テクスチャのサーフェイスはMultiSampleTypeを設定することができません。
どうすれば通常のウインドウへの描画同様、綺麗なアンチエイリアシングがかかった描画を、テクスチャに対して行えますでしょうか?
0681デフォルトの名無しさん
2009/12/10(木) 16:48:41んじゃ、一旦バックバッファに描画してからテクスチャのSurfaceに転送かけたら?
0682デフォルトの名無しさん
2009/12/10(木) 17:26:170683デフォルトの名無しさん
2009/12/10(木) 17:54:08英語のオリジナルのドキュメント見ておけ
0684デフォルトの名無しさん
2009/12/10(木) 20:59:22ありがとうございました。
日本語のドキュメントに翻訳ミスがあったわけですね…ピキピキ
英語版のドキュメントにやり方が普通に書いてありました
できました!
0685デフォルトの名無しさん
2009/12/10(木) 20:59:39間違った情報が混ざっているにせよ、
皆それなりにやるべき方向は指し示している。
これでわからなけりゃ、己の能力不足ってことで
諦めるんだな。
0686デフォルトの名無しさん
2009/12/10(木) 22:21:21深度およびステンシルの制限
深度およびステンシルの制限
深度およびステンシルの制限
深度およびステンシルの制限
0687デフォルトの名無しさん
2009/12/10(木) 22:40:40脳なしが
676の一文は、その項目の中に含まれてねーよ
もし含まれているとすると、
・拡大も縮小もできない。
・拡大または縮小のどちらかが行われ、どちらかのサーフェイスが DXTn 圧縮フォーマットである場合。
の両方が含まれていることになり「何二度説明してんだ?馬鹿が」という話になる
0688デフォルトの名無しさん
2009/12/10(木) 22:41:37何きどってんの?
分からないなら分からないと言えよww
結局本人自力で解決してるし、このスレほんと意味ねーなw
0689デフォルトの名無しさん
2009/12/10(木) 22:45:37You can use StretchRect to copy from one rendertarget to another. If the source rendertarget is multisampled, this results in downsampling the source rendertarget. For instance you could:
0690デフォルトの名無しさん
2009/12/10(木) 23:37:16ここは質問スレだ
0691デフォルトの名無しさん
2009/12/11(金) 00:18:580692デフォルトの名無しさん
2009/12/11(金) 00:53:03日本語ヘルプが間違っているわけではない。
情報が古いだけ。
英語のヘルプでも、古いものは
IDirect3DDevice9::StretchRect will fail for any of the following:
If pSourceSurface and pDestSurface are the same.
If stretching or shrinking is involved and either surface has a DXTn compressed format.
If the source surface is multisampled (created with MultiSampleType != D3DMULTISAMPLE_NONE).
If the destination surface is an off-screen plain surface but the source is not. If the destination surface is an off-screen plain surface and stretching is involved.
と書いてあって、日本語ヘルプはこれを訳したもの。
途中から制限が緩くなった。
0693デフォルトの名無しさん
2009/12/11(金) 01:04:180694デフォルトの名無しさん
2009/12/11(金) 02:31:000695デフォルトの名無しさん
2009/12/11(金) 05:06:42pDevice->DrawPrimitiveUP(D3DPT_LINELIST, 1, ColorPoint, sizeof(COLOR_POINT));
このようにして色つきの線を引いているのですが
ライトの設定をオフにしないと色がつかなくなってしまい
ライトオンで色つきの線を引きたいのですがどうすればよいのでしょうか?
0696デフォルトの名無しさん
2009/12/11(金) 05:22:460697デフォルトの名無しさん
2009/12/11(金) 05:44:22ありがとうございます
無事できました
こんな単純なことに気づかないとは
0698デフォルトの名無しさん
2009/12/11(金) 21:04:33質問で求めていることと違うような。
ライトのON・OFFに関わらず線の色を出したいんじゃないの?
その場合、D3DRS_EMISSIVEMATERIALSOURCEをD3DMCS_COLOR1にして
それ以外のD3DRS_XXXSOURCEをD3DMCS_MATERIALあたりにしとくのが
一番ベターな気がするが。
0699デフォルトの名無しさん
2009/12/11(金) 21:45:19本人が納得してるんだからいいじゃないか
0700デフォルトの名無しさん
2009/12/12(土) 22:45:19水面の表現はどれも似たようなものなので基本的な作りは同じかと思いますが、
基本的どころがそれの足がかりになるようなものが無く困っています。
サンプルだけだと理解せずに流用しそうなので、何らかの説明があったほうが望ましいです。
(XP-DX9-C++)
0701デフォルトの名無しさん
2009/12/12(土) 22:52:28昔のDirectXSDKやnVidiaとかATIの旧サイトとか
たくさんあったような気が、
0702デフォルトの名無しさん
2009/12/12(土) 22:53:04http://journal.mycom.co.jp/column/graphics/056/index.html
0703デフォルトの名無しさん
2009/12/12(土) 23:54:21seleneの方にもっと実用的な水面が実装されてたけど。
ttp://twin-tail.jp/wiki/index.php?DirectXGraphics%20-%20GPGPU%E3%81%A7%E3%81%AE%E7%B0%A1%E5%8D%98%E3%81%AA%E6%B0%B4%E9%9D%A2%E5%87%A6%E7%90%86%E3%83%BB%E7%B6%9A%E7%B6%9A
0704デフォルトの名無しさん
2009/12/13(日) 01:04:14そのテクスチャ(10枚ほど)を表示させるのにどれだけ時間がかかるかを計測してみました。
timeGetTime() - dwLastTime
というかたちでミリ秒単位で計測すると、16ミリ秒もかかっていて、これだけでFPS60ほどという計算に・・・
テクスチャ表示だけでこれだけかかるということは、プログラムに問題があるのでしょうか?
0705デフォルトの名無しさん
2009/12/13(日) 01:06:430706デフォルトの名無しさん
2009/12/13(日) 01:25:250707デフォルトの名無しさん
2009/12/13(日) 01:57:35会社追い出されるのは馬鹿みたいだけど結構パターンなので注意な
0708デフォルトの名無しさん
2009/12/13(日) 06:44:30経験者乙
0709デフォルトの名無しさん
2009/12/13(日) 13:40:31再就職できてよかったですね。
0710デフォルトの名無しさん
2009/12/13(日) 14:36:35Amazon.co.jp: DirectX9必携: 鎌田 茂雄: 本
ttp://www.amazon.co.jp/dp/4990500601
0711デフォルトの名無しさん
2009/12/13(日) 14:37:200712デフォルトの名無しさん
2009/12/13(日) 14:43:280713デフォルトの名無しさん
2009/12/13(日) 15:11:110714デフォルトの名無しさん
2009/12/13(日) 16:30:340715デフォルトの名無しさん
2009/12/13(日) 17:07:330716デフォルトの名無しさん
2009/12/13(日) 17:36:590717デフォルトの名無しさん
2009/12/13(日) 17:55:470718デフォルトの名無しさん
2009/12/13(日) 17:57:52Web上にアホほど情報あるのにググれない人用なのかねぇ。
0719デフォルトの名無しさん
2009/12/13(日) 18:09:510720デフォルトの名無しさん
2009/12/13(日) 18:26:49Amazonやヤフオクでプレミア価格で取引される程度には需要があるだろ。
>>587のタイプが少なくないという事だ。
何で絶版になったのかは知らんが。
0721デフォルトの名無しさん
2009/12/13(日) 20:47:31XAudioなんてそれこそサンプルとリファレンス見れば十分だろw
0722デフォルトの名無しさん
2009/12/13(日) 21:31:18買いたい奴だけ買えばいい品物に、なぜわざわざつっかかるよ
0723デフォルトの名無しさん
2009/12/13(日) 21:50:180724デフォルトの名無しさん
2009/12/13(日) 22:12:340725デフォルトの名無しさん
2009/12/13(日) 22:15:26×著者必死なだ
○著者必死だな
0726デフォルトの名無しさん
2009/12/13(日) 22:16:100727デフォルトの名無しさん
2009/12/13(日) 23:39:22DirectX9時代のノウハウを1冊で事足りるくらい詰め込んでるあるのか?
それならGPUGems以上の巨大な本になってるはずだが・・・。
0728デフォルトの名無しさん
2009/12/14(月) 00:47:560729デフォルトの名無しさん
2009/12/14(月) 00:54:40VC++2005、Win32API、DirectXを使ってアプリを作っているのですが
XPでは思った通りの動作をするのにVistaだと描画が非常に重く
もっさりした感じになってしまいます。
どうしたらVistaや7に対応したアプリを作れますか?
0730デフォルトの名無しさん
2009/12/14(月) 00:55:470731デフォルトの名無しさん
2009/12/14(月) 01:13:250732デフォルトの名無しさん
2009/12/14(月) 01:46:250733デフォルトの名無しさん
2009/12/14(月) 01:54:430734デフォルトの名無しさん
2009/12/14(月) 02:30:23ありがとうございます。
Aeroを無効にしようとしたのですが
ドライバが対応していませんでした。
FPSはXPで60だったのですが
Vistaでは30もいかなかったです。
>>731
はい、XPに比べてVistaだとFPSが半分もいかない感じです。
>>732
対象ドライバ更新をしようとしたところ
互換性のあるドライバが見つかりませんでしたとでて更新できませんでした。
>>733
指摘を受けて思ったよりも問題の箇所があったので
もう一度自分で調べてみようと思います。
予想以上に問題がある箇所が多かったので
開発環境をVistaに移して少しずつ調べていこうと思います。
お騒がせしました。
0735デフォルトの名無しさん
2009/12/14(月) 06:09:44重いといいつつ空いてる時間が相当ありそうだな
0736デフォルトの名無しさん
2009/12/14(月) 09:59:19遅延って反応がもっさりするだけでFPS自体は変わらないはずだぞ。
0737デフォルトの名無しさん
2009/12/14(月) 10:55:170738デフォルトの名無しさん
2009/12/14(月) 15:34:070739デフォルトの名無しさん
2009/12/14(月) 16:29:42実際のところ、それが問題となるゲームは少ないだろう
0740デフォルトの名無しさん
2009/12/14(月) 17:17:500741デフォルトの名無しさん
2009/12/14(月) 19:56:34VistaとXPは全く同じハードウェア?
0742デフォルトの名無しさん
2009/12/14(月) 22:29:45格闘とかは問題になるだろ。
RPGとかTPS程度なら別にって感じだけど。
0743デフォルトの名無しさん
2009/12/14(月) 22:35:150744デフォルトの名無しさん
2009/12/14(月) 23:22:15>>730もXPから有効になってた挙動なのでツッコミ入れたいところだが
今の流れとは関係ない話なんじゃないの?
0745デフォルトの名無しさん
2009/12/14(月) 23:26:33いや、しないキリッ
0746デフォルトの名無しさん
2009/12/14(月) 23:28:310747デフォルトの名無しさん
2009/12/14(月) 23:51:33気にする奴等って格闘とシューティングやってるやつだけだな
アクションは若干気になるかもしれないがやってりゃすぐ慣れる
0748デフォルトの名無しさん
2009/12/15(火) 00:07:060749デフォルトの名無しさん
2009/12/15(火) 00:15:26倍速TVなどと勘違いしてるのかな
0750デフォルトの名無しさん
2009/12/15(火) 00:19:250751デフォルトの名無しさん
2009/12/15(火) 00:20:08NVIDIAが3D眼鏡で60fps維持したくてサムチョンとかに作らせた。
まだ3機種しか出てなかったと思う。
0752デフォルトの名無しさん
2009/12/15(火) 00:21:36いやいや…3フレームはRPGでもでかいから。
原因が3フレーム差と分からなくてもどことなくもっさり感を覚えるもんだよ
0753デフォルトの名無しさん
2009/12/15(火) 00:28:35非国民?
0755デフォルトの名無しさん
2009/12/15(火) 00:35:10RPGでもっさりしてたところで大してゲームにゃ関係ないだろう
0756デフォルトの名無しさん
2009/12/15(火) 00:40:04話になりませんなwww
0757デフォルトの名無しさん
2009/12/15(火) 00:50:530758デフォルトの名無しさん
2009/12/15(火) 01:04:58しかし・・・どうもノートPCから変な音が聞こえます。
ウィンドウを閉じて実行を終了するときに、CPU(定かではありませんが・・・)のあたりから
「シュンシュンシュイーン」
みたいな小さな音がして終了。
いままでこんな音はなったことが無いんですが、どうもPCには良くない気がして・・・
プログラムで開放のし忘れなどがあると異常音が出ることってあるのでしょうか?
0759デフォルトの名無しさん
2009/12/15(火) 01:15:18∧_∧ ( ブッ )
(・ω・`) ノノ〜′
(⊃⌒*⌒⊂)
/_ノωヽ_)
0760デフォルトの名無しさん
2009/12/15(火) 01:27:020761デフォルトの名無しさん
2009/12/15(火) 11:18:150762デフォルトの名無しさん
2009/12/15(火) 21:23:13入手場所を教えて下さい。
0763デフォルトの名無しさん
2009/12/15(火) 21:26:360764デフォルトの名無しさん
2009/12/15(火) 21:53:040765デフォルトの名無しさん
2009/12/15(火) 22:57:090766デフォルトの名無しさん
2009/12/15(火) 23:26:210767デフォルトの名無しさん
2009/12/15(火) 23:27:340768デフォルトの名無しさん
2009/12/15(火) 23:30:040769デフォルトの名無しさん
2009/12/15(火) 23:31:190770デフォルトの名無しさん
2009/12/15(火) 23:33:30おまえのせい
0771デフォルトの名無しさん
2009/12/15(火) 23:40:330772デフォルトの名無しさん
2009/12/15(火) 23:46:110773デフォルトの名無しさん
2009/12/15(火) 23:47:250774デフォルトの名無しさん
2009/12/15(火) 23:47:45ちゃんとググレカス
0775デフォルトの名無しさん
2009/12/16(水) 01:42:44例えばネギのモデルで根っこを中心にして廻すにはどうすればいいの?
0776デフォルトの名無しさん
2009/12/16(水) 01:50:32移動してから回転するのと、回転してから移動するのとは、値が同じでも結果が違う。
今は移動してから回転してるからそうなるんだよ m9(・∀・)ビシッ!!
0777デフォルトの名無しさん
2009/12/16(水) 02:06:190778デフォルトの名無しさん
2009/12/16(水) 09:41:000779デフォルトの名無しさん
2009/12/16(水) 09:56:400780デフォルトの名無しさん
2009/12/16(水) 10:04:220781デフォルトの名無しさん
2009/12/16(水) 10:41:38あれって一つ一つ調整するなりソフト使って動きのモーション付けてんのかな
それともオリジナルの形式使ってんのかなあ
0782デフォルトの名無しさん
2009/12/16(水) 11:27:44ゲーム中の扱いによって変わると思うけど、一般的には一つのファイルで管理されてるんじゃないかな。
アニメーション以外にもロードを速くしたいとか特殊なマテリアルを埋め込みたいとかゲーム独自の仕様に合わせ易いからということで、最終的には独自フォーマットを使うことが多いと思う。
0783デフォルトの名無しさん
2009/12/16(水) 11:28:00メッシュが複数でもボーン構造は一つだろ
0784263
2009/12/16(水) 21:33:37ケースバイケースだと思うけど、ゲームグラフィックスとか
CGWorldとか読めば多少話載ってるんでは。
ちと古いけどパンピートロットの記事ではゲーム内での
パーツの差し替えの仕組みとかの話あったような。
LightWaveの日本の代理店にあるDirextxの書き出しサンプルが
パーツ別のロボットの歩行アニメーションだけど、製品の
ディスクには同じシーンデータがサンプルで入ってる。
0785デフォルトの名無しさん
2009/12/16(水) 22:25:44フレームワーク的なもの作ってるの?
0786デフォルトの名無しさん
2009/12/16(水) 22:31:37一から全部自分でやるなんてアホ
0787デフォルトの名無しさん
2009/12/16(水) 22:33:01自作のやつ使ってる??
0788デフォルトの名無しさん
2009/12/16(水) 22:54:200789デフォルトの名無しさん
2009/12/16(水) 23:16:190790デフォルトの名無しさん
2009/12/17(木) 04:31:430791デフォルトの名無しさん
2009/12/17(木) 04:43:510792デフォルトの名無しさん
2009/12/17(木) 05:21:19勉強のため自作しようとしたら、
破綻して放置。早数ヶ月。
こうならないためになんかフレームワーク使ったほうがいいかも。
0793デフォルトの名無しさん
2009/12/17(木) 12:07:430794デフォルトの名無しさん
2009/12/17(木) 12:15:31自分の出来ることからやっていくのがなんだかんだで一番いい。
いきなり背伸びしても途中で脳がはじけ飛ぶだけだ。
0795デフォルトの名無しさん
2009/12/17(木) 18:19:24ただ、読めるだけで習得できたと勘違いするのが偶にいる。
ソースは俺
0796デフォルトの名無しさん
2009/12/19(土) 12:26:23メッシュ数個を描画出来る程度の「まな板」を作っておくと非常に便利。
できれば画面や設定ファイルで細かくいじれるようになっているとよりいいだろう。
ある程度思ったとおりに動くようになると、今度は主だった一通りの環境で動くようにする必要が出てくる。
そういう時にそういったツールが役に立つ。環境依存の不具合の原因を探るためのね。
0797デフォルトの名無しさん
2009/12/19(土) 14:43:58D3D10のときにあったチュートリアルサンプルもがないから、D3DXがいらない人向けに
まずは出したバージョンかな。
0798デフォルトの名無しさん
2009/12/19(土) 18:19:180799デフォルトの名無しさん
2009/12/19(土) 22:15:19d3dx9.hをincludeすりゃ使える
0800デフォルトの名無しさん
2009/12/20(日) 02:10:15テクスチャを画像ファイルから作るまではわかったのですが、ポリゴンにはりつけるという概念がわかりません
処理としては、D3DXCreateTextureFromFileExから返ったポインタをSetTextureの引数にいれることで貼り付けができるんでしょうけど
どこのポリゴンにはりつけるのか?という記述が私には見分けがつきませんでした。
貼り付け先のポリゴンが自明の場合には選択する必要がないということでしょうか?
参考サイト
http://marupeke296.com/DXGSmp_No3_CreateTexture.html
0801デフォルトの名無しさん
2009/12/20(日) 02:11:02それとも2回目以降だと意外とはまったみたいな展開あるん?
0802デフォルトの名無しさん
2009/12/20(日) 02:49:53ttp://marupeke296.com/DXG_CreateBorad.html
0803デフォルトの名無しさん
2009/12/20(日) 04:02:25なるほど。分かれたヘルプのDirectX Documentation for C++側に記載されてた。
ありがと。
>>797
D3DX10math.hでもいいかな。
0804デフォルトの名無しさん
2009/12/20(日) 06:44:34いいよ
0805デフォルトの名無しさん
2009/12/20(日) 12:14:150806デフォルトの名無しさん
2009/12/20(日) 12:18:210807デフォルトの名無しさん
2009/12/20(日) 12:19:589
0808デフォルトの名無しさん
2009/12/20(日) 12:20:21対応PCが多い、技術情報が多い⇒DirectX9
最新技術が使える⇒DirectX11
0809デフォルトの名無しさん
2009/12/20(日) 13:47:410810デフォルトの名無しさん
2009/12/20(日) 13:51:35すみません
わからないです
テクスチャの張り付け先のポリゴンを指定するような関数はないんですかね
0811デフォルトの名無しさん
2009/12/20(日) 13:53:30携帯性が重視される時代に最新技術ねえ・・・
高性能パソコンはますます売れなくなる
0812デフォルトの名無しさん
2009/12/20(日) 13:55:15テクスチャに頂点を指定するのではなく
頂点一つ一つにテクスチャの座標を設定するんだよ
0813デフォルトの名無しさん
2009/12/20(日) 14:13:17テクスチャの張り付け先のポリゴンを指定するって発想じゃなくて
これから表示するポリゴンのテクスチャを指定するって考えるんだよ
0814デフォルトの名無しさん
2009/12/20(日) 14:15:11頂点とテクスチャの関連付けはどこでおこなわれているのですか?
0815デフォルトの名無しさん
2009/12/20(日) 14:16:45いつまでもこんな兄貴な仕様なんだよなw
0816デフォルトの名無しさん
2009/12/20(日) 14:19:49くわせるというのはSetTextureをポリゴン描画の寸前にもってくるということですか?
0817デフォルトの名無しさん
2009/12/20(日) 14:20:02頂点情報にuvってあるじゃん?
その座標情報を使って
「現在、設定されているテクスチャを使って」描画する
つまり、Primitive関数(モデルを描画する関数)の直前にシステムに設定されたテクスチャが
勝手に使われるのであってポリゴンとテクスチャを関連付けるような仕組みはないw
0818デフォルトの名無しさん
2009/12/20(日) 14:21:20ないなw
0819デフォルトの名無しさん
2009/12/20(日) 14:21:36SetTexture ←テクスチャの指定
SetStreamSource ←頂点の指定
http://www.t-pot.com/program/7_texture/index.html
0820デフォルトの名無しさん
2009/12/20(日) 14:22:26>800のリンク先のソースコードの
太字のところを見れば分かるはず
0821デフォルトの名無しさん
2009/12/20(日) 14:24:50ようやく理解できました!!
それにしてもなんかすごい仕様ですねww
0822デフォルトの名無しさん
2009/12/20(日) 14:25:55やっと分かってくれたか
0823デフォルトの名無しさん
2009/12/20(日) 15:50:200824デフォルトの名無しさん
2009/12/20(日) 19:14:46絶望的な低脳が多いという事だろう
0825デフォルトの名無しさん
2009/12/20(日) 19:18:000826デフォルトの名無しさん
2009/12/20(日) 19:23:56だからといって技術的に何も勉強しなくてもいいわけじゃないな。
0827デフォルトの名無しさん
2009/12/20(日) 19:39:51汎用性とか使い回し易さ?
0828デフォルトの名無しさん
2009/12/20(日) 19:42:26単体で「正常再生されるモーション付きXファイル」2個を
--------------------------------------------------------
AnimTicksPerSecond fps { 4800; }
AnimationSet Motion1 { 〜1セット目のモーション情報〜 }
AnimTicksPerSecond fps { 4800; }
AnimationSet Motion2 { 〜2セット目のモーション情報〜 }
--------------------------------------------------------
こう連結しました。 これを再生しようと
--------------------------------------------------------
m_pAnimController->SetTrackPosition(1, 0);
m_pAnimController->AdvanceTime(0.02, NULL);
--------------------------------------------------------
こうして再生しているのですが、
SetTrackPositionの第一引数、トラック番号をいくつに変えても
「2セット目のモーション」が再生されてしまいます。
(1セット目と2セット目を入れ替えると、やはり2セット目側だけが再生されます)
これは、私がXファイルの作り方が間違えているのでしょうか?
それともプログラム側が間違っているのでしょうか?
大まかで良いのでご指摘頂けると助かります。 orz
0829デフォルトの名無しさん
2009/12/21(月) 07:41:47そこ笑うところか?
いわゆるImmediate Mode(死語)的な設計では極普通の仕様だと思うが
0830デフォルトの名無しさん
2009/12/21(月) 07:50:10って言いたいんだろ。
0831デフォルトの名無しさん
2009/12/21(月) 08:56:380832デフォルトの名無しさん
2009/12/21(月) 09:43:21語れよ
0833デフォルトの名無しさん
2009/12/21(月) 12:46:02断る
0834デフォルトの名無しさん
2009/12/21(月) 13:28:44しゃぶれよ
0835デフォルトの名無しさん
2009/12/21(月) 14:03:40分かった
0836828
2009/12/21(月) 20:10:27一旦質問を締め切らせて頂きます。失礼しました。
0837デフォルトの名無しさん
2009/12/21(月) 23:03:110838デフォルトの名無しさん
2009/12/22(火) 19:21:19現在ウィンドウで表示している画面をテクスチャー(ID3D10Texture2D)に保存するにはどうしたらいいですか?
現状は、ID3D10RenderTargetView.GetResource(ID3D10Resource *)関数を使って
ID3D10Resourceに入れることはできたんですがその後テクスチャーに変更(変換)することができません
環境はDirectX10、OSはWindows7です。よろしくお願いします
0839デフォルトの名無しさん
2009/12/22(火) 19:35:300840デフォルトの名無しさん
2009/12/22(火) 19:45:080841デフォルトの名無しさん
2009/12/22(火) 20:11:540842デフォルトの名無しさん
2009/12/22(火) 22:08:14device->Map(0,D3D10_MAP_READ,0,&map);
...
// DirectX9のLock/Unlock内でやるのと同じように手動でコピー
...
device->Unmap(0);
0843デフォルトの名無しさん
2009/12/22(火) 22:11:53ID3D10Texture2D* device
0844デフォルトの名無しさん
2009/12/22(火) 22:12:470845デフォルトの名無しさん
2009/12/22(火) 22:20:090846デフォルトの名無しさん
2009/12/22(火) 22:35:03それ回答になってないだろw
0847デフォルトの名無しさん
2009/12/23(水) 03:13:54Material {
フェイスカラー
パワー
スペキュラ
自己発光
}
ってあるけどフェイスカラーっていったい何?
Diffuse?Ambient?いじってみたらDiffuseと同じような機能してるけど
詳細が分からないので知ってる人お願いします
0848デフォルトの名無しさん
2009/12/23(水) 04:26:550849デフォルトの名無しさん
2009/12/23(水) 05:02:49だったら君が回答すれば?無能君
0850デフォルトの名無しさん
2009/12/23(水) 07:52:420851デフォルトの名無しさん
2009/12/23(水) 18:24:08ありがとう
0852デフォルトの名無しさん
2009/12/24(木) 18:03:59やってみたのですがどうしてもID3D10Resourceのデータにアクセスできません
ID3D10Resource.GetPrivateData関数を使えばいいのかとも思いましたがGUIDがわかりませんでした
他にもID3D10Device.CopyResource関数も使ってみたのですがテクスチャーは黒いままでした
引数はID3D10Texture2D、ID3D10Resourceを指定しました(mapが使えなかったため)
0853デフォルトの名無しさん
2009/12/24(木) 18:28:26コピーは、そのまんま CopySubresourceRegion 。
システムメモリに移したければ、CopyResourceで転送。
とりあえずエラー値もちゃんとチェックして頭使って考えろボケ。
0854デフォルトの名無しさん
2009/12/24(木) 19:48:55本の厚みは前作の半分以下、項目数は418に削減、索引も無し。
文字を小さくした上で本文も圧縮してギチギチに詰め込んでる。
XAudioについては全く言及無し。
0855デフォルトの名無しさん
2009/12/24(木) 19:54:190856デフォルトの名無しさん
2009/12/24(木) 20:45:14ttp://www2.age2.tv/rd10/count.cgi?age0407.zip
まあ、買うかどうか迷うのは前作持ってる人間だけで、
持ってない人間はこれしかないんだから買う他無いんじゃないの
0857デフォルトの名無しさん
2009/12/24(木) 21:12:56CopyResourceでちゃんとできるということで粘ったらできました、ありがとうございます
確認のためにテクスチャを表示させていたのですがそこでミスをしてました
他の方法も試してみます
>>842
無事テクスチャにすることができました、ありがとうございます
0858デフォルトの名無しさん
2009/12/24(木) 21:40:43目次はあんまり変わってないように見えるんですが、逆引き持ってる人がこっちも買うメリットってありそうですか?
0859デフォルトの名無しさん
2009/12/24(木) 21:48:19ありそうでなさそうでありそうでなさそう
0860デフォルトの名無しさん
2009/12/24(木) 21:51:51後は2008用のサンプルが用意されてる事くらいか。
でも、前作のでも2005用を変換すればいいだけなのであんまり訴求しないな。
0861デフォルトの名無しさん
2009/12/25(金) 08:56:250862デフォルトの名無しさん
2009/12/25(金) 09:01:020863デフォルトの名無しさん
2009/12/25(金) 11:01:250864デフォルトの名無しさん
2009/12/25(金) 11:08:360865デフォルトの名無しさん
2009/12/25(金) 11:20:290866デフォルトの名無しさん
2009/12/25(金) 11:21:240867858
2009/12/25(金) 11:27:48レス、ありがとうございます。
逆引きから追加された項目も少ないようなので今回は見送ろうと思います。
DirectX11対応だったらなあ。
0868デフォルトの名無しさん
2009/12/25(金) 11:39:450869デフォルトの名無しさん
2009/12/25(金) 12:47:08やっぱ9だよな〜
0870デフォルトの名無しさん
2009/12/25(金) 12:48:52あと、初期化中にウィンドウに画像を表示しておく方法って何かないでしょうか。
0871デフォルトの名無しさん
2009/12/25(金) 12:51:37かからねえよ。
>あと、初期化中にウィンドウに画像を表示しておく方法って何かないでしょうか。
表示したければすればいいだろ。
ただしDirectXの範疇じゃないからスレ違いだ。
0872デフォルトの名無しさん
2009/12/25(金) 12:58:050873デフォルトの名無しさん
2009/12/25(金) 13:07:36> かからねえよ。
CreateDeviceに1.5秒ぐらい、Direct3DCreate9に0.5秒ぐらいかかってるようなんですけど、これって異常なんでしょうか
> 表示したければすればいいだろ。
> ただしDirectXの範疇じゃないからスレ違いだ。
DirectXの初期化に関する話題はスレチですかそうですか
0874デフォルトの名無しさん
2009/12/25(金) 13:29:02開発環境もソースコードも提示されてないので分からないけど遅い気がする。
SDK付属のサンプルでも同じくらい時間かかるの?
>あと、初期化中にウィンドウに画像を表示しておく方法って何かないでしょうか。
そもそも何でウィンドウ表示したいの?
>>871も言っている通りDirectXとは関係なく、ウィンドウモードなら普通にウィンドウを生成しておけばいいだけでしょ。
0875デフォルトの名無しさん
2009/12/25(金) 13:57:35スレ違いだと納得したなら二度と来るな。
0876デフォルトの名無しさん
2009/12/25(金) 14:07:29ここまで説明しないと理解できないのか。
0877デフォルトの名無しさん
2009/12/25(金) 16:45:40最近ム板は変なのが住み着いてるから、感情的になるな
でも、DirectXの初期化中に画面に何かを表示したいなら、それはDirectXの範囲外だ
DDBかDIBあたりで描画しておけばいいんじゃないかな?
0878デフォルトの名無しさん
2009/12/25(金) 16:54:24GDIとかで描画しても問題ないんですか?終了時に一瞬チラッと見えてしまってるようなんですが
0879デフォルトの名無しさん
2009/12/25(金) 17:05:51問題ない
そのへんの細かな点は自分で何とかしてくれ
0880デフォルトの名無しさん
2009/12/25(金) 17:28:47そうか。とりあえずそこらへん調べてみる
0881デフォルトの名無しさん
2009/12/25(金) 18:25:470882デフォルトの名無しさん
2009/12/25(金) 22:57:07http://fx.104ban.com/up/src/up11126.jpg
3次元座標上にDrawPrimitiveUPを使ってテクスチャを描画したのですが、3Dモデルを表示する処理を加えたところ中央のテクスチャが画像のような網掛けになってしまいました。
前後の処理の大まかな流れは
FVF適用→モデル用レンダリングステートの設定モデルの描画→テクスチャ用レンダリングステートの設定→
テクスチャ描画(移動、回転の設定→SetTexture→DrawPrimitiveUP)
です。
今のところSetTextureには問題はなく、モデル描画時のDrawSubsetを除いたところ正しく描画されましたが、なぜそうなるのか分かりません。
よろしくお願いします。
0883デフォルトの名無しさん
2009/12/25(金) 23:01:410884デフォルトの名無しさん
2009/12/25(金) 23:07:480885デフォルトの名無しさん
2009/12/25(金) 23:26:240886デフォルトの名無しさん
2009/12/25(金) 23:28:44struct VERTEX3D
{
// 頂点座標
D3DXVECTOR3 position;
// ディフューズ色
D3DCOLOR color;
// テクスチャ座標
FLOAT U, V;
};
// FVF(ワールド空間)
#define D3DFVF_VERTEX3D (D3DFVF_XYZ|D3DFVF_DIFFUSE|D3DFVF_TEX1)
上のように宣言してます
0887デフォルトの名無しさん
2009/12/26(土) 01:15:25いやさっきの説明だとDrawPrimitiveUPの前にFVF設定してないだろって話。
0888887
2009/12/26(土) 01:21:47とりあえず描画の不具合はPIX使おうよ。
一瞬で原因分かるから。
0889882
2009/12/26(土) 22:01:19なるほど、PIXの存在をすっかり忘れていました。まずは試してみようと思います。
0890882
2009/12/26(土) 23:17:54モデル描画時に適用したつもりのFVFの設定がリセットされていたみたいです。
ありがとうございました。
0891デフォルトの名無しさん
2009/12/26(土) 23:27:58というか、DrawPrimitive系を呼び出す前にはかならずSetFVFかけとかないと危ないんじゃない?
特にいろんなメッシュを描画したいときは。
0892デフォルトの名無しさん
2009/12/28(月) 10:29:43ポイントスプライトはエフェクト表現に使って比較的、平気なものでしょうか?
ハードウェア機能と書かれており、グラボが無い場合の挙動や負荷が気になるのですが・・。
0893デフォルトの名無しさん
2009/12/28(月) 11:11:36いったい何を言っているんだ?
0894デフォルトの名無しさん
2009/12/28(月) 11:17:01そうなんですね。では訂正させて頂いて、
RADEONやGeForce系をつんでないPCの場合、挙動は最低限保障されると思って良いものでしょうか?
0895デフォルトの名無しさん
2009/12/28(月) 11:23:37と
>挙動は最低限保障
の定義を明確にしろ。
0896デフォルトの名無しさん
2009/12/28(月) 11:37:020897デフォルトの名無しさん
2009/12/28(月) 11:50:54とりあえず自分のPCのグラボぶち抜けばいいんじゃね
0898デフォルトの名無しさん
2009/12/28(月) 11:55:21>>896
そうですね。こんな事自分でテストできるようになれば一々聞かなくて済みますね。
今後の為にも方法を調べてみようかと思います。ありがとうございました。
0899デフォルトの名無しさん
2009/12/28(月) 12:19:160900デフォルトの名無しさん
2009/12/28(月) 12:29:30ハードウェア・アクセラレーションが使用できない場合はソフトウェアでエミュレートすることができるので動作に問題はありませんよ。
ただし、その場合はCPUに大きな負荷がかかるので処理落ちする可能性はありますが。
最近のPCであればオンボードでもかなり高性能だと思いますけど、実際にテストしてみないと分からないですね。
とりあえずDirect3Dを初期化するときにハードウェア・アクセラレーションを使用しないようにできるのでそれで試してみたらどうでしょうか?
0901デフォルトの名無しさん
2009/12/28(月) 12:30:54REFはSDK入れないと使えないし。
0902デフォルトの名無しさん
2009/12/28(月) 12:32:28REFがなんだか理解できていない奴がこういう勘違いを平気でするし。
0903デフォルトの名無しさん
2009/12/28(月) 12:46:330904デフォルトの名無しさん
2009/12/28(月) 12:49:31これはあくまでデバッグ用だろ?
0905900
2009/12/28(月) 12:56:55REFは描画はできてもまともな速度で動作しませんね・・・
0906デフォルトの名無しさん
2009/12/28(月) 13:09:29オンボ関係はまだまだグラボバグが多い・・・
0907デフォルトの名無しさん
2009/12/28(月) 13:15:14結局一通りの環境で動かさないと見極めなどつかない。
0908デフォルトの名無しさん
2009/12/28(月) 14:37:250909デフォルトの名無しさん
2009/12/28(月) 15:47:56を組み合わせれば、ほとんどのPCで動く?
つかこれだと何fpsぐらいでるの??
今PC使えないから検証求む
0910デフォルトの名無しさん
2009/12/28(月) 15:50:30ポイントスプライトの話の続きですか?
0911デフォルトの名無しさん
2009/12/28(月) 15:55:220913デフォルトの名無しさん
2009/12/28(月) 16:50:05そんなお世辞はいらないぞ
回答者が調子にのるからな
0914デフォルトの名無しさん
2009/12/28(月) 16:59:12昔質問の仕方が悪くて叩かれたやつの逆恨みか?
0915デフォルトの名無しさん
2009/12/28(月) 17:08:05どうでもいいことだし、クソの役にも立たないし
こいつらのアドバイスは無駄でしかない
0916デフォルトの名無しさん
2009/12/28(月) 17:38:45>つかこれだと何fpsぐらいでるの??
何を処理するかもマシンのスペックも不明なのに答えられるわけがないだろ。
いい加減にしろよ。
0917デフォルトの名無しさん
2009/12/28(月) 18:29:400918デフォルトの名無しさん
2009/12/28(月) 18:48:020919デフォルトの名無しさん
2009/12/28(月) 20:12:24スレッドが荒れますから平静を保つよう心がけましょう。
0920デフォルトの名無しさん
2009/12/29(火) 09:56:13荒れてても初心者がきたら回答者としてがんばるさ
0921デフォルトの名無しさん
2009/12/29(火) 20:23:15モデルの描画はメインスレッド、モデルの更新は別スレッド、っていう
作りって大丈夫だと思う?
ゲ製は初心者なんで教えてくれ m(_ _)m
-------------------------------------------------------------
プログラム
メインループ → 描画(できる限り)
別スレッド → 更新(できる限り、現在のフレームの値?で更新)
-------------------------------------------------------------
0922921
2009/12/29(火) 20:25:41アドバイスをくだされ
0923デフォルトの名無しさん
2009/12/29(火) 23:14:23バックバッファをの内容を書き換えたり取得するのだと思いますが、他のプログラムに大してそんなことできるのですか?
0924デフォルトの名無しさん
2009/12/29(火) 23:48:18個人で手軽に優良ゲーつくれりゃいいのにな。
むしろ面白いゲームを勝手に作ってくれるプログラムあればいいのに
0925デフォルトの名無しさん
2009/12/29(火) 23:53:254Gamer.net ― 完全図解,無償配布のUnrealEngine 3開発キットで3Dゲームを作ってみよう(ミドルウェア/開発ツール)
ttp://www.4gamer.net/games/032/G003263/20091212002/
0926デフォルトの名無しさん
2009/12/29(火) 23:55:01パクリゲー抜きで
0927デフォルトの名無しさん
2009/12/30(水) 00:10:02http://tsushima.2ch.net/test/read.cgi/news/1262071701/
ニュース速報板
0928デフォルトの名無しさん
2009/12/30(水) 00:39:060929デフォルトの名無しさん
2009/12/30(水) 00:50:54924じゃないけど、紹介したら宣伝だって叩かれると思うよ。
0930デフォルトの名無しさん
2009/12/30(水) 14:35:39>現在のフレームの値?
じゃなくて前回更新した時間との差分でやれ
0931921
2009/12/30(水) 15:11:41で求めようと思ってるんだけど・・・
マルチスレッドは問題nothing?
0932デフォルトの名無しさん
2009/12/30(水) 16:47:090933921
2009/12/30(水) 17:02:29問題は更新ロジックなんだわさ
0934デフォルトの名無しさん
2009/12/30(水) 17:04:490935デフォルトの名無しさん
2009/12/30(水) 17:12:16これだから厨房は・・・
こんなのばかりだから困る
あ、もしかして厨房でない?
0936デフォルトの名無しさん
2009/12/30(水) 17:16:190937デフォルトの名無しさん
2009/12/30(水) 17:20:01文字すら'ろ'ロクに打てないバカが煽りとかウケるんですけど
0938921
2009/12/30(水) 17:22:210939デフォルトの名無しさん
2009/12/30(水) 17:35:26ここで問題ないって言われてもテストするでしょ?
0940デフォルトの名無しさん
2009/12/30(水) 19:15:420941デフォルトの名無しさん
2009/12/30(水) 22:55:49更新のときロックした方がいいのかな?
0942デフォルトの名無しさん
2009/12/31(木) 00:37:130943デフォルトの名無しさん
2009/12/31(木) 01:01:030944デフォルトの名無しさん
2009/12/31(木) 08:51:130945デフォルトの名無しさん
2009/12/31(木) 20:17:14それにエディットボックスやチェックボックスなどのGUI要素を追加したいのですが、
Direct3D9に対応したGUIライブラリにはどんなものがありますか?
まっさきに思いついたのはDXUTですけど、これってそもそもアプリケーション全体を
DXUTフレームワークで作っていないといけないんですよね?
0946デフォルトの名無しさん
2009/12/31(木) 20:42:41とりあえず今の俺はrandom関数を利用して的がランダムにグーチョキパーを出すジャンケンゲームくらいならなんとか作れるレベル。
0947デフォルトの名無しさん
2009/12/31(木) 20:47:020948デフォルトの名無しさん
2009/12/31(木) 21:29:22DirectXを使ってジャンケンゲームを作るなら、このスレにいてもいいけど
0949デフォルトの名無しさん
2009/12/31(木) 21:32:25超すごいグリグリ3Dのかっこいい伽羅が動き回る派手なアクションゲームつくれます?
0950デフォルトの名無しさん
2009/12/31(木) 21:58:520951デフォルトの名無しさん
2009/12/31(木) 22:51:13俺が試したところ、
一応DXUTは無改造(終了時の後処理のHWNDまわりで何かあった気がするが)で
導入可能だった。かなり昔の記憶だが。
DXUTCoreとDXUTOptionalをプロジェクトとして追加するんだが、
特に難しい点もないし、試してみるよろし。
0952デフォルトの名無しさん
2009/12/31(木) 23:15:38自己解決しました
0953デフォルトの名無しさん
2009/12/31(木) 23:35:48LPDIRECT3DDEVICE9をどこに配置してる?
グローバル変数というのが妥当なのだろうかなぁ
しかしながらそれだと入れ子になったクラス
(タイトル画面クラス、ゲームプレイクラス等)
にいちいちポインタを渡さないといけない
これをどうにかするにはどういった方法をつかえばよいのでしょう?
0954デフォルトの名無しさん
2010/01/01(金) 00:10:39D3DDevice9は、物理デバイスの有無といったC++の外の概念に
影響されるので、確かに扱いづらい。
D3DDevice9はadapterOrdinalという番号を一意に持つので、
これで管理するのが最も自然と思う。
D3DDevice9のポインタは、グローバル変数の配列に保存され、
D3DResourceを保持するオブジェクトは、adapterOrdinalも同時に持ち、
それでD3DDevice9にアクセスする寸法。
0955954
2010/01/01(金) 00:15:43無視してくらさい
0956デフォルトの名無しさん
2010/01/01(金) 06:05:080957デフォルトの名無しさん
2010/01/01(金) 06:33:02まぁ、根本的な話をすると
タイトル画面クラス、ゲームプレイクラスみたいなゲーム本体部分が
ハード依存部分(D3DDevice9)に直接アクセスするような設計がおかしい
ハード・ゲーム・データはそれぞれ独立して設計しないと
再利用性皆無の糞コードが出来上がるだけだぞ
0958デフォルトの名無しさん
2010/01/01(金) 07:20:290959デフォルトの名無しさん
2010/01/01(金) 07:59:380960デフォルトの名無しさん
2010/01/01(金) 11:55:56なるほど
きちんと分けないといけないのですか
ということは描画部分クラス、サウンドデバイスクラス、
入力受付クラスなんかを設計して、
ゲーム部分からはそのメソッドからアクセスという形がいいということでしょうか
ということは・・・staticメンバにD3DDevice9をprivate
というのがいいのでしょうか?
>ヘッダーで外部参照
これはexternあたりの話でしょうか?(この辺は勉強不足です)
それとあけおめでございます^^
0961デフォルトの名無しさん
2010/01/01(金) 14:49:42やだ
0962sage
2010/01/01(金) 15:02:02俺も知りたいですおヾ(・ω・o)
0963962
2010/01/01(金) 15:05:120964デフォルトの名無しさん
2010/01/01(金) 18:11:07クォータニオンは4Dベクトルですって書かれているものもあるのですが…
0965デフォルトの名無しさん
2010/01/01(金) 18:35:48自分もくわしいわけではないですが
ここにそれらしきことが載ってました
ttp://marupeke296.com/DXG_No10_Quaternion.html
0966デフォルトの名無しさん
2010/01/01(金) 18:36:24そのベクトルの間に特定の演算を組み込んだのがクォータニオン。
0967デフォルトの名無しさん
2010/01/01(金) 19:28:46>>966
ありがとうございます。
複素数と2次元ベクトルの関係みたいなものなのですね
クォータニオンと4次元ベクトルの内積の違いについても実験してみようと思います。
0968デフォルトの名無しさん
2010/01/01(金) 20:12:25アドバイスというかなんと言うか。
クォータニオンの各成分の意味は謎なので考えないほうがいいらしい。
0969デフォルトの名無しさん
2010/01/01(金) 21:21:480970デフォルトの名無しさん
2010/01/02(土) 14:47:49170cmとか200km/hとか単位によって意味は変わる
Direct3Dにおけるクォータニオンは3次元座標に応用したもの
0971デフォルトの名無しさん
2010/01/02(土) 14:56:00加算、減算があるように、ベクトル内積、クォータニオン内積と計算方法として存在する
単に「内積」だとどっちか分からないから名前がついてる
ベクトルもクォータニオンも(Direct3Dの次元では)同じ意味。
0972デフォルトの名無しさん
2010/01/04(月) 20:42:380973デフォルトの名無しさん
2010/01/05(火) 15:57:23HLSLで「モデルの頂点色(Diffuse)」を指定するには
コードに何と記述すれば良いのでしょうか?
実数を当てて色や透明度の出力は成功しております。
0974デフォルトの名無しさん
2010/01/05(火) 18:54:25実数の部分を変数にして
プログラム側からその変数に値を送れば良いだけのはずだが
0975デフォルトの名無しさん
2010/01/05(火) 19:27:57これは・・私が勘違いしている事間違いなしですね。
HLSL、いまいち掴めないですが・・色々情報漁って再勉強してみます。 ありがとうございました。
0976デフォルトの名無しさん
2010/01/06(水) 13:42:01D3DXTRACK_DESCのSpeedメンバは何を意味しているんでしょうか?
MSDNでは「速度の値。トラックの間隔をスケーリングするための乗数に似ている。」とあるのですがよくわからず、
ググっても情報がなく、何か意味ありげな数値をセットしてる所も有るみたいなのですが・・
0977デフォルトの名無しさん
2010/01/06(水) 19:35:290〜100のローカル時間で定義されているアニメーショントラックをscale=1で、
ワールド時間1500の位置で再生すると1500〜1600の区間で再生されるだろう。
scale=2で再生すると1500〜1700の区間で再生されるだろう。
つまりそう言う事。
scale=nだと再生スピードがn倍される(か1/n倍される)
0978デフォルトの名無しさん
2010/01/07(木) 15:31:170979デフォルトの名無しさん
2010/01/07(木) 16:16:53いったい何を聞きたいのか意味不明。
0980デフォルトの名無しさん
2010/01/07(木) 17:22:56ポリゴン増やせばほぼリニアに負荷が増える。
だからどうしたって感じ?
0981デフォルトの名無しさん
2010/01/07(木) 19:09:59なるほど。ありがとうございす。
0982953
2010/01/07(木) 22:59:14E-mail: sage
内容:
LPDIRECT3DDEVICE9をどこに配置すればよいのかということで、
一応今の段階での答えが見つかったので報告です
一つしかインスタンスを作れない、
シングルトンという形で配置することにしました
MyDrawEngine.hはこんなかんじです
class MyDrawEngine
{
public:
static MyDrawEngine* Instance();
static void Create(HWND);
static void Destory();
LPDIRECT3DDEVICE9 GetpDevice();
private:
MyDrawEngine(HWND);
~MyDrawEngine();
static MyDrawEngine* mInstance;
LPDIRECT3D9 pD3d;
LPDIRECT3DDEVICE9 pDevice;
};
おそらくもっと良い方法はあると思います
もしその情報を知っている方がいたら、
今後のためにも、ぜひ教えていただきたいです
0983デフォルトの名無しさん
2010/01/08(金) 00:08:430984デフォルトの名無しさん
2010/01/08(金) 00:18:57引数で渡すのが一番安全
仮にロストしてたらどうする気?
【建前】
プログラムの作法としてグローバル変数・関数っては使わないのがデフォ
その代わりとしてすべて引数で渡すのが基本
ヘッダも必要最小限のみインクルードするのが基本
【実際】
開発現場によってコロコロ変わるからその場にあわせてうまくやりゃいーんじゃねーの?
多分、グローバルなんかにおいて悦に逝ってるレベルからするにプログラムを完全に勘違いしてるレベル
まあ、別にいいけど
恥かしいから控えめに発言しとけ
0985953
2010/01/08(金) 02:00:47『ゲームプログラマになる前に覚えておきたい技術』
という本で紹介されていた方法なのですが、
グローバル変数はシングルトンクラスの形で置かれるのが望ましい
というように書かれてあって挑戦してみました
>>仮にロストしてたら
というのはどういうことでしょう?
単純にNULLポインタでのアクセスの危険性ということでしょうか?
>>グローバルなんかにおいて
シングルトンはグローバルに配置云々は関係ないような気がするのですが、
どういう意味でしょうか?
0986デフォルトの名無しさん
2010/01/08(金) 06:34:560987デフォルトの名無しさん
2010/01/08(金) 07:10:27>というのはどういうことでしょう?
3DDeviceのポインタは勝手に無効になるそれはNULLとかそういう話じゃなくて
無効になるデバイスロストでググレ
3DDeviceのポインタに限らずインスタンスってそういう可能性あるよね?
グローバルで抱えるってことはそういう可能性をまったく考慮してないってこと
0988デフォルトの名無しさん
2010/01/08(金) 08:45:30その本に「言語まで説明するのめんどくせぇーからスタティックにしておくよ」的なつぶやき書いてなかったっけ?
0989デフォルトの名無しさん
2010/01/08(金) 10:10:23シングルトンを使う意味はあまりないような気がするけど
0990デフォルトの名無しさん
2010/01/08(金) 10:15:480991デフォルトの名無しさん
2010/01/08(金) 13:00:13それは関係無いと思うが
誰かが管理すればいいだけの話で
0992デフォルトの名無しさん
2010/01/08(金) 13:27:20設計に悩んで先に進めないような初心者ならDXUT使えって
何も無いところに壁を作って挫折するくらいなら
0993953
2010/01/08(金) 20:54:25ありがとうございます
デバイスロスト時の処理も注意して書いていきます
>>988
いくつか筆者の意見が書かれていたとおもいますが、
どの位置のことをおっしゃっているのかはちょっとわかりませんOTL
>>992
それもいいのかもしれません
しかしもうすこしがんばってみます
ありがとうございました
0994デフォルトの名無しさん
2010/01/09(土) 00:24:04よくわからんくせに、講釈たれんなよ
0995デフォルトの名無しさん
2010/01/09(土) 06:18:53だれかさんのつたない実装に直撃?
怒っちゃった?
0996デフォルトの名無しさん
2010/01/09(土) 14:36:24>>987は間違っている
デバイスロスト時の挙動と記憶クラスがどうであるかは
別に関係無いでしょ
0997デフォルトの名無しさん
2010/01/09(土) 15:21:02なにと関係ないって?
0998デフォルトの名無しさん
2010/01/09(土) 16:03:050999デフォルトの名無しさん
2010/01/09(土) 16:19:34これってどういう可能性?
何、ある日突然確保してるヒープが開放されんの?
いや〜、怖い世の中じゃのうw
1000デフォルトの名無しさん
2010/01/09(土) 16:32:2110011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。