【C++】 DirectX初心者質問スレ Part18 【C】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/07/17(木) 13:50:04※回答する人も、質問する人も必ず読んでください
これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ
【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。
【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。
【C++】 DirectX初心者質問スレ Part17 【C】
http://pc11.2ch.net/test/read.cgi/tech/1207702556/
0002デフォルトの名無しさん
2008/07/17(木) 13:51:20乙
0003デフォルトの名無しさん
2008/07/17(木) 14:02:03こちらで質問させてください。
DirectX SDK 9.0をインストールして、その中にあったVoiceClientServerの
voiceserverを試しにビルドしてみたのですが、
C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winnt.h(236) : error C2146: 構文エラー : ';' が、識別子 'PVOID64' の前に必要です。
などのコンパイルエラーがでてしまいます。
検索をしたらいくつかみつかったのですが、はっきりとした原因と解決策はわかりませんでした。
申し訳ありませんが、何か知っている方がいらっしゃいましたら教えてください。
お願いします。
00043
2008/07/17(木) 14:08:19IDEはVisual C++ 2008 Express Editionです。
00053
2008/07/17(木) 14:55:57マルチのようになってしまい申し訳ありません。
以下に解決方法を報告させていただきます。
該当行の直前に
#define POINTER_64 __ptr64
を追加しやりすごすことができました。
次のエラーはrcファイルの中でインクルードしているafxres.hがみつからないというものでした。
検索してみると、
#include <windows.h>
#define IDC_STATIC (-1)
と書いたafxres.hをカレントディレクトリにおけば解決とかいてありそれで大丈夫でした。
あとはライブラリの名前dplay.libをdplayx.libに修正したらできました。
ありがとうございました。
00063
2008/07/17(木) 14:57:08winnt.hの
typedef void * POINTER_64 PVOID64;
のことです。
0007デフォルトの名無しさん
2008/07/17(木) 17:47:21>#define POINTER_64 __ptr64
>を追加しやりすごすことができました。
winnt.hのバージョンが古かったって落ちはないか?
00083
2008/07/17(木) 18:00:28winnt.hをみたところBUILD Version: 0091とあります。
フォルダはv6.0A\Includeです。
とりあえず報告まで。
0009デフォルトの名無しさん
2008/07/17(木) 18:45:29MSDN DirectX
http://www.microsoft.com/japan/msdn/directx/default.aspx
DirectX Home Page
http://www.microsoft.com/japan/windows/directx/default.mspx
BBX (掲示板)
ttp://isweb8.infoseek.co.jp/computer/bbx/
DXライブラリ置き場
ttp://homepage2.nifty.com/natupaji/DxLib/
Lamp:ゲーム開発とその学習をサポートするミドルウェア
ttp://lamp.sourceforge.jp/
TWINTAIL LOVERS.
ttp://www.twin-tail.jp/
[t-pot] PROGRAMMING
ttp://www.t-pot.com/program/
GamDevPukiWiki - DirectX総合スレ (過去ログ等)
http://gamdev.org/w/?%5B%5BDirectX%C1%ED%B9%E7%A5%B9%A5%EC%5D%5D
GamDevPukiWiki - 3DCG製作ソフト (過去ログ等)
http://gamdev.org/w/?%5B%5B3DCG%C0%BD%BA%EE%A5%BD%A5%D5%A5%C8%5D%5D
ゲームを作るための素材を集めよう まとめサイト(※消えているようです)
http://paw.my-sv.net/index.html
0010デフォルトの名無しさん
2008/07/17(木) 18:47:304 デフォルトの名無しさん [sage] 2008/04/09(水) 15:18:25
マルペケつくろーどっとコム
ttp://marupeke296.com/
↑これも入れてもいいんじゃね?
てかここ読めば大抵わかるのと、超初心者ターゲットのしつこいくらいの説明がいい
----------------------------------------------------------------------
通りすがりの俺がテンプレ貼るっていったい・・・
0011デフォルトの名無しさん
2008/07/17(木) 23:23:11プログラミングの技術っていうより、理論がわかっていないんだと思う
0012デフォルトの名無しさん
2008/07/18(金) 10:49:43CommitChangeってやらなくてもシェーダープログラム内のデータは
かわってるけど、これが必要な場面というか
明示的にやらないとダメな理由ってあるのかな?
0013デフォルトの名無しさん
2008/07/18(金) 11:10:18だから、理論をわかるための入門としてXファイルは手頃なんじゃないか
0014デフォルトの名無しさん
2008/07/18(金) 14:16:491024x1024のRHW付き2次元テクスチャをある一定以上拡大すると、
マイナス座標の頂点が固定される(それ以上マイナス方向に拡大できなくなる)
ようになってしまうのですが、なにかレンダリング設定等で回避する方法はないでしょうか?
ちなみにnVidia系ではこの現象は出てないです。
開発環境はDirectX9c,Win2k,VC++2005
0015デフォルトの名無しさん
2008/07/18(金) 16:45:57それは頂点座標がGuardBand***を超えてるだろう。
ポリゴンを自分でクリッピングすればいい。
0016デフォルトの名無しさん
2008/07/18(金) 23:20:45別にRadeonに限った話じゃない。
自分でシザリングすればいいだけの事。
nVIDIAは・・・まぁ中で勝手にやってるんだろうな。
0017デフォルトの名無しさん
2008/07/19(土) 01:14:37変換行列や頂点シェーダでごにょごにょして入力座標値とスクリーン座標値を
一致させるやり方をお勧めするよ。
001814
2008/07/19(土) 13:13:48回答ありがとうございます。
やっぱり自前でクリッピングしないとだめですか。
回転なしの四角平面ポリゴンならそれも簡単なんですが、
回転が入ると最悪8頂点に分割しなければならないので、
ソフトウェア処理で余計な処理コストが追加されるのが嫌だったのですが。
とりあえず、回転行列を監視して個別に振り分けて処理コストが最低限で済ませる
ようにアルゴリズムを考えてみます。
0019デフォルトの名無しさん
2008/07/19(土) 13:17:560020デフォルトの名無しさん
2008/07/20(日) 18:50:30で、それを言って何の参考になる?
マスターベーションでもやってろ、仕様もない糞が。
0021デフォルトの名無しさん
2008/07/23(水) 14:28:41引数のl,r,b,tはどこの値なんですか?
Nearプレーン(zn)での描画する範囲が幅r-l、高さt-bの長方形ということでいいんですか
0022デフォルトの名無しさん
2008/07/23(水) 16:52:18横の回転は、
D3DXMATRIXA16 m;
D3DXMatrixIdentity( &m );
D3DXMatrixRotationY( &m, 回転量 );
vDir = vLookAt - vEye;
D3DXVec3TransformCoord( &vDir, &vDir, &m );
vLookAt = vEye + vDir;
で求めています。
D3DXMatrixRotationY( &m, 回転量 );
の部分に
D3DXMatrixRotationX( &m, 回転量 );
D3DXMatrixRotationZ( &m, 回転量 );
を追加しても変な動きになってしまいます。
0023デフォルトの名無しさん
2008/07/23(水) 17:32:20だったら縦はX軸を回すだろ?
どううまくいかないんだ?
0024デフォルトの名無しさん
2008/07/23(水) 17:59:29現在向いている方向が(0,0,1)として。
Xだけで回転すると正面と真後ろを向いている時は上手く行くんだけど、真横を向くと上下に回転しなくなります。
一方Zだけで回転すると、真横は上手く行くけど正面真後ろがダメになります。
0025デフォルトの名無しさん
2008/07/23(水) 18:09:39D3DXVec3TransformCoord()使うとかクォータニオン使うとかでどうか
0026デフォルトの名無しさん
2008/07/23(水) 18:53:42何故そうなるのかもD3DXVec3TransformCoordを使うやり方も分かりません
0027デフォルトの名無しさん
2008/07/23(水) 20:24:37002822
2008/07/23(水) 22:01:30XYZと回転マトリクスを1つずつ計算してみたりしましたが、最初よりバグっています。
どう計算したらいいんでしょうか?ソースを書いて貰えると助かります。
根本的に理解できていないなら、その根本的な部分を説明するサイトか書籍を教えてください。
0029デフォルトの名無しさん
2008/07/23(水) 22:37:360030デフォルトの名無しさん
2008/07/24(木) 01:47:30「一次変換 行列」でググってみて。
メラの行列がわからないって事は、
カメラの行列を作るときに何が起きているかを理解していないって事。
「透視射影行列」あたりでググってみても良い。
行列の本は簡単なので良いから1冊ぐらいは読もうね。
キーワードは「線形代数」ね。
0031デフォルトの名無しさん
2008/07/24(木) 01:50:35個人的なお勧め本は 「リアルタイム レンダリング 第2版」
本の内容を一通り理解して頭に入れとけばどけばまず間違いないと思う。
0032デフォルトの名無しさん
2008/07/24(木) 05:45:51昔、座標系に関してお世話になったサイト思い出して
ぐぐってみたらあってびっくりした
宇治社中
http://web.archive.org/web/20030405025753/www.cc.rim.or.jp/~devilman/3dCoding/3dCoding.html
なつかしす・・・
文字化けしてたら
メニュー→表示→文字エンコーディング→日本語のなにか
で治ると思う
3Dはまず行列使いにならないと他の話についていけないので
ローカルからワールド、ワールドからローカルへと変換できるようになっておいたほうがいいと思う
0033デフォルトの名無しさん
2008/07/24(木) 12:16:14マイクロソフトのフレームワークや書籍のサンプルを筆頭に、何で誰もそのソースを書かないと思う?
xz回転を加えるだけで、ソースが何百行も追加になり複雑になるからだよ。
directxのAPIだけじゃ不可能で、要素を1個ずつsin,cosで計算しないといけないから、行列を根元の部分から理解していないと絶対に作れない。
y軸だけならAPI1行で済む。
そんな簡単にカメラが動いたら、今頃世の中に大作ゲームがわんさか溢れてるよ。
ジンバルロックの問題もあるし、xz回転はしない方がいい。素人にはお勧めしない。
0034デフォルトの名無しさん
2008/07/24(木) 18:25:29カメラまわしてから注視点きめるんじゃなくて
注視点まわせばええんとちゃう?
0035デフォルトの名無しさん
2008/07/24(木) 18:38:580036デフォルトの名無しさん
2008/07/24(木) 18:42:23でもいきなり数値大きく変えると何がどう影響したのかわかりにくいが。
003728
2008/07/24(木) 20:10:17皆さんのおかげで、オイラーは難易度が高いので使わない方が良いということが分かりました。
オイラーを止めてクォータニオンを使うことにしたのですが、今度は回転の補間の説明ばかりで平行移動が分かりません。
http://hikari-hinomoto.hp.infoseek.co.jp/PDF/DX305.pdfにほとんど書いてあるのですが、肝心の部分が書かれていなくて困っています。
void CCamera::Move(const float inFront, const float inUp, const float inRight)
{
// カメラの方向ベクトルを取り出す
D3DXVECTOR3 right(m_View._11, m_View._12, m_View._13);
D3DXVECTOR3 up (※ここは各自考えましょう);
D3DXVECTOR3 front(※ここは各自考えましょう);
// 移動
right *= inRight;
up *= inUp;
front *= inFront;
m_Position += front + up + right;
}
の、ここは各自考えましょうの部分が分かりません。
予想では
m_View._21, m_View._22, m_View._23
m_View._31, m_View._32, m_View._33
ですが、本当に合っているのか分かりません。
これはどこを調べたら分かるのですか?
クォータニオン周りを調べましたが、本のリンクが出てきただけでさっぱり分かりませんでした。
その本も買いましたが、glTranslateを使えばおkとしか書かれていないので、肝心の中身が分かりません。
DirectX版のglTranslateを探せば通るとは思うのですが、理解しないまま進むのも嫌なので。
これはどこをどう調べたら分かるのですか?
0038デフォルトの名無しさん
2008/07/24(木) 20:20:37そんなになんにも理解してない状態でそのレベルの理解を要求されても困るw
0040デフォルトの名無しさん
2008/07/24(木) 23:09:44一次変換の意味はわかる?
行列を掛け合わせることをやるとどういう行列が出来るかはわかる?
行列の積に可換性がないのはなぜかわかる?
クオータニオンと行列の違いはわかる?
透視変換行列の作り方は理解している?
上のことを一つずつ解決していけば出来るようになってるはず。
0041デフォルトの名無しさん
2008/07/24(木) 23:57:18まず数学だからなぁ・・・
テキトーにキーワードかき集めてはめてみて→動いた!→OK!
って人間にはならんほうがええぞ
答えを焦り過ぎだ
理解も時間が解決するときがあるべよ
0042デフォルトの名無しさん
2008/07/25(金) 00:36:54行列の意味や仕組みや動作すらわからないのは線形代数の本を抱いて寝てくれとしか言えん。
0043デフォルトの名無しさん
2008/07/25(金) 13:56:300044デフォルトの名無しさん
2008/07/25(金) 13:57:000045デフォルトの名無しさん
2008/07/25(金) 14:55:210046デフォルトの名無しさん
2008/07/25(金) 18:51:04�I
0047デフォルトの名無しさん
2008/07/25(金) 18:52:39(ノ'A`)ノ
( )
, , , , / >
0048デフォルトの名無しさん
2008/07/26(土) 09:46:18色んな人の本を読むといいと思う
色んな人の色んな行列の解釈を読んだほうが勉強になると思う
実際、ゲームで使うとなったら
この動きはオイラーのほうがよくてアニメーションはクオータニオンで
この動きはこの座標を中心にして極座標で動かして・・・
って条件分岐の荒らしになるのは仕方ねーことだし
汎用座標系クラスなんて無意味なもん作ろうとするとソースがヤバイ行数になって死ぬw
0049デフォルトの名無しさん
2008/07/27(日) 05:33:373Dプログラミングを学ぶにあたって、最低限知っておくべき数学・算数を教えて下さい
私頭悪いので、最低限のものでお願いいたします
0050デフォルトの名無しさん
2008/07/27(日) 05:51:580051デフォルトの名無しさん
2008/07/27(日) 06:47:08そんな大きな枠で括られても高校数学まではなんでも食えとしかいいようがない
必要になったら必要な分だけ理解すればいいんじゃない?
とりあえず行列とベクトルが必要なのはわかってるんだから
勉強してみればいいんじゃない?
0052デフォルトの名無しさん
2008/07/27(日) 16:27:32ありがとうございます
今のところわかっているには、行列・三角関数です
上記2点を理解するためにさらにほかのをやらなきゃならんようですが・・・
0053デフォルトの名無しさん
2008/07/27(日) 16:48:35理解しているというわけじゃありません
スレ汚しスマヌ
0054デフォルトの名無しさん
2008/07/27(日) 16:55:49この辺は押さえておくよろし
0055デフォルトの名無しさん
2008/07/27(日) 17:04:5730〜60枚を1単位としたアニメーションを表示させたいのです。
1フレームに1枚で、60枚で1秒間のアニメーションと考えてください。
このアニメーションが約20〜30種類あります。
問題は、このそれぞれのアニメを「いつ」「どれを」表示するかが決まっていないのです。
とはいえ、こんなに大量の画像データをメモリにおいておくわけにもいかず困っています。
アニメの表示命令が下った時点でそのアニメをリアルタイムに読み込みする
ように組んでみたのですが、(1フレームに1枚ずつ読み出す)
Textureの読み込みが非常に重く、処理落ちが酷くなってしまいます。
何か有効な手段、ごまかし方など、ありませんでしょうか?
ちなみに使用している画像フォーマットはDXT、DirectXのバージョンは9.0cです。
0056デフォルトの名無しさん
2008/07/27(日) 18:37:37仕様を聞いてみないとなんとも
アクションゲームのキャラ絵だったら諦めろとしかいいようがないし
ステータス画面のちょっと凝ったサムネイル(アイコン?)だったら
カーソルをロード時間分置いたら表示されるようになってるゲームが多いな
0057デフォルトの名無しさん
2008/07/27(日) 18:58:28サイズにもよるけど
0058デフォルトの名無しさん
2008/07/27(日) 19:44:130059デフォルトの名無しさん
2008/07/27(日) 21:37:36directshowがdirectx9の後半(?)から使用できないっていうんで
しかたなくdirectx8でdirectshowやってるんですが
3dの描画にはdirectx9を使用しています
directx9と8の両方が使用されているゲームをPLAYするには
9,8両方のランタイムが必要になるのでしょうか・・・
教えてくださいm(_ _)m
0060デフォルトの名無しさん
2008/07/27(日) 21:56:570061デフォルトの名無しさん
2008/07/27(日) 22:00:190062デフォルトの名無しさん
2008/07/28(月) 00:11:29http://science6.2ch.net/test/read.cgi/infosys/1216289288/599
C++の洒落プログラムを落としただけで炎上したんだがwww
読むとかなり面白いw
世の中こんな会社もあるから気をつけてくれw
マジで!
0063デフォルトの名無しさん
2008/07/28(月) 04:55:59ループした際は曲の途中から再生したいんですが、こういうのって
やはり、再生が終わった事を検出して自分で再生位置を指定して…っていう
やり方になるんでしょうか?
それともループ再生用のパラメータ等が存在するのでしょうか?
0064デフォルトの名無しさん
2008/07/28(月) 05:23:24>>56
ちょっと違うけど、「アクションゲームのキャラ絵」という表現が近いです。
扱いとしてはキャラのモーションとかゲームのエフェクトとかになると思います。
やっぱり諦めるしかないですかねー…
>>57
小さい画像なら、それでいけそうですね。
大きい画像(200x200とか)の場合はどうしようもなさそうですが…
>>58
コーデック必須にしたくないので、たぶん無理かと思われます…
無圧縮にするくらいなら、画像全部メモリに持ってろって話になると思いますし。
0065デフォルトの名無しさん
2008/07/28(月) 10:40:53画像を一気に読み込むとして、
どれぐらいのメモリが必要か計算してみると良いよ。
システムメモリで行けそうだったらシステムメモリに確保すればいい。
200x200ピクセル で 60fps、30秒だと 200MB ぐらい。きついね。
ムービーが無難。
無責任なことを書くと、メモリマップドファイルでベタで画像情報をファイルにしておくとか?
出来たとしても速度は出ないと思うけど。
0066デフォルトの名無しさん
2008/07/28(月) 11:31:46そういうときは普通ポリゴンモデルを使うんじゃねぇの。
毎フレーム分の画像なんてアホな事普通やら無いぞ。
2Dアクションならせいぜい5フレとかで間引くし。
コーデックが云々いうがWindows95とかターゲットにしない限り
MPEG1が再生できない環境なんてないと思うが。
0067デフォルトの名無しさん
2008/07/28(月) 20:09:333Dに比べて、使うメモリに対して表現能力が少なすぎる>2D
0068デフォルトの名無しさん
2008/07/28(月) 21:44:110069デフォルトの名無しさん
2008/07/28(月) 23:26:370070デフォルトの名無しさん
2008/07/29(火) 00:27:58そもそもツール上でキーフレームアニメのエディットしてるだろ。
全フレーム画像もってるわけがねえ。
0071デフォルトの名無しさん
2008/07/29(火) 02:23:56描画するmeshの数が1000くらいあってDrawSubsetを一回ずつ呼び出して描画
すると重くなってしまって困っています.
一回のDrawSubsetで一度に描画できたり,あるいはその他の方法で
あまり負荷をかけずに描画するにはどうすればいいか教えてください
0072デフォルトの名無しさん
2008/07/29(火) 06:12:52カメラにmeshは全部入るの?
カメラに入らないmeshはちゃんと省けてる?(=視錐台カリングはちゃんとできてる?)
0073デフォルトの名無しさん
2008/07/29(火) 06:39:24はい.カメラに入るメッシュだけDrawSubsetしてます
0074デフォルトの名無しさん
2008/07/29(火) 07:26:32DirectX で描画した上に、ウィンドウコントロール(具体的にはテキストエディット)をおきたいと思っています。
そこで、描画が終わったら必ずウィンドウコントロールも再描画されるように、
下のような感じのメインループを書きました。
for (;;) {
if (PeekMessage(&msg, 0, 0, 0, PM_REMOVE)) {
if (msg.message != WM_QUIT) {
TranslateMessage(&msg);
DispatchMessage(&msg);
} else {
break;
}
} else {
Render();
RedrawWindow(コントロールのHWND, NULL, NULL, RDW_INVALIDATE);
}
}
しかし、まだコントロールがちらつくことがあります。
DirectX の描画と WM_PAINT のタイミングの問題のような気がしているんですが、
こういうとき、どの辺をチェックすればいいでしょうか?
0075デフォルトの名無しさん
2008/07/29(火) 07:39:09それで1000個?
ハードにできないことやろうとしてない?
最適化してやっと動く程度ならやらんほうがいいかもよ
マップチップとかなら一つに纏めるとはやいって聞くけど
それがどのくらいかわからん
なんていうかそもそも仕様がハードに合っているか
っていうのから考えたほうが良さげ
0076デフォルトの名無しさん
2008/07/29(火) 08:28:03一つのメッシュは何ポリゴンぐらい?
1フレーム当たりの描画ポリゴン数を計算してみた?
0077デフォルトの名無しさん
2008/07/29(火) 09:32:33DrawSubsetというかDrawPrimitiveは非常に重い処理。
流石に1フレームに1000回はかなり無茶なレベルだぞ。
まったく同じモデルを複数表示してるならジオメトリインスタンスを使え。
0078デフォルトの名無しさん
2008/07/29(火) 10:42:52GDIとDirect3Dの共存は基本的には無理。
GDIはGDIサーフェスという固定のバックバッファに対してしか描画しないが、
Direct3DのフルスクリーンモードではFlipにより画面に表示されるバッファが
入れ替わり、GDIサーフェス以外のバックバッファが表示されたりする。
ただし、SetDialogBoxMode(TRUE)を使えば一応可能。
ウインドウモード限定なら、WS_CLIPCHILDRENスタイルを指定すれば、
コントロールが上書きされなくなるので再描画も必要ない。
0080デフォルトの名無しさん
2008/07/30(水) 00:21:14全部DirectXで書く方が早いし楽だと思うが・・・
0081デフォルトの名無しさん
2008/07/30(水) 00:30:100082デフォルトの名無しさん
2008/07/30(水) 10:16:23これはコンパネから変更できるDirectXランタイムのデバッグ/リテールとは関係ないのですか?
リリースする時にはリリースビルドに下上で、ランタイムをリテールにしてビルドしなければいけないのでしょうか?
0083デフォルトの名無しさん
2008/07/30(水) 11:20:240084デフォルトの名無しさん
2008/07/30(水) 13:32:32ゲームでログイン時やチャット時などのテキスト入力する箇所って
Win32APIのエディットコントロールを利用してるのでしょうか?
それともDirectX側でそのような機能が用意されてたりするのでしょうか?
SDKのサンプルを調べてみようと思っていたのですが
自分の環境だとサンプルで使う用のプラットフォームSDKの
インストールが上手く行かずコンパイルが出来ず調べ辛く、
そういったUI部分をDirectXで実装する事を詳しく紹介してる
サイト・書籍などあれば教えていただけると助かります。
(「DXUTを使え」とかじゃなしに、SDKを利用した実装方法が知りたい)
0085デフォルトの名無しさん
2008/07/30(水) 13:44:14あたかもエディットコントロールかのような動作を実装している
0086デフォルトの名無しさん
2008/07/30(水) 13:44:46探しているのですが、探し方が悪いのか見つかりません。
0087デフォルトの名無しさん
2008/07/30(水) 14:26:530088デフォルトの名無しさん
2008/07/30(水) 16:46:28「任意軸による回転」のプログラムってどんな時に使うのが理想なのでしょうか?
実装はできましたが、いまいち面白い使い方がわかりません・・・。
ググってみましたが、調べ方が下手なのか任意軸で回転させる行列の作り方ばかりで
具体的な使用箇所等は見つかりませんでした。
0089デフォルトの名無しさん
2008/07/30(水) 17:12:420090デフォルトの名無しさん
2008/07/30(水) 17:17:30D3DXCreateTextureFromFileInMemoryExみたいな感じで
0091デフォルトの名無しさん
2008/07/30(水) 17:21:260092デフォルトの名無しさん
2008/07/30(水) 17:21:57まっすぐ転がすだけならX軸回転だけでいいが、途中で横に転がるなんて場合に便利
0093デフォルトの名無しさん
2008/07/30(水) 17:27:230094デフォルトの名無しさん
2008/07/30(水) 17:30:51・全アニメーションの前半部分(最初の10フレ分とか)だけをメモリにおいておき、
それを再生中に残りを読む。
・リングバッファでデータを持っておき、1度読みこんだものはしばらく解放しない。
・使用頻度の高いもの、即時応答が必要なもののみを事前ロード
→対戦格闘なら待機モーション+そこから派生する最初の動作のみ。
・圧縮してメモリに置いておく。使用する度に解凍する。
詳しい仕様が解ればもっとネタ出せるかも。
009588
2008/07/30(水) 17:49:25知らないことが多いので非常に参考になります。
>>89
マジですか、現状D3DXMatrixRotationを3回使って行列作ってますから
それだけコスト掛かってるって事になりますね。
やり方はわかりませんが、ちょっと調べてみます。
>>92
まだ任意軸の仕様がきっちりわかっていませんでしたが、
ちょっと考えればなんとなく分かりました。
つまりボールの移動しているベクトルと(0,1,0)のようなベクトルと
外積をとればXZ方向で回転させたい方向のベクトルがとれるってことですね。
なるほど、非常に参考になりました。
0096デフォルトの名無しさん
2008/07/30(水) 17:54:150097デフォルトの名無しさん
2008/07/30(水) 22:12:11任意軸回転は3軸それぞれ回転するくらいの処理負荷は普通に食うぞ。
それにそこまでやるならもう四元数使え。めんどうくせえ。
0098デフォルトの名無しさん
2008/07/31(木) 01:03:05分かりました。
ちょうどそのあたりの本も揃えたので、やってみようと思います。
ありがとう!
0099デフォルトの名無しさん
2008/07/31(木) 06:59:29[環境]WinXP(sp2) VC++2005(pro) DirectXSDK(oct 2006) PlatformSDK(?最新)
[設定]ツール>オプション>VC++ディレクトリ>インクルード、ライブラリ、Bin
の設定をPlatform>DirectXの順にして設定。※DirectXSDKのライブラリはx86を指定
[ソース]
#pragma comment(lib, "dxguid.lib")
#pragma comment(lib, "dsound.lib")
#pragma comment(lib, "winmm.lib")
#include <windows.h>
#include <dsound.h>
int _tmain(int argc, _TCHAR* argv[])
{
return 1;
}
[エラー]
c:\program files\microsoft directx sdk (october 2006)\include\dsound.h(230) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
c:\program files\microsoft directx sdk (october 2006)\include\dsound.h(230) : error C2143: 構文エラー : ';' が '*' の前にありません。
以下省略
エラーの場所:typedef const WAVEFORMATEX *LPCWAVEFORMATEX;
[備考]
mmreg.hでWAVEFORMATEXが宣言されていいて、PlatformSDKに含まれている。
PlatformSDKの設定を失敗している??
参考にしたURL:ttp://www.cppdrive.jp/vc/sdk/index1.html
上記、問題解決へのヒントなり参考サイトなり紹介していただければと思います。
010074
2008/07/31(木) 07:02:13Win32API を使って文字入力をしているゲームはあんまりないですね。
IME とかを使っていると、変換中の文字が画面の左上にでてきたりするし。
>>85 さんの言うように全部実装するという手もありますが、
IME や右クリックしたときのコンテキストメニュー、
その他もろもろを実装するのはあんまり現実的じゃないかなと。
この辺はユーザビリティにどの程度重きを置くかで選択が変わってくると思います。
010199
2008/07/31(木) 08:20:20新規プロジェクト>Win32プロジェクト>空のプロジェクト
でプロジェクトを作成するとコンパイルが通ります。
通常のWin32のテンプレート(空のプロジェクトではない場合など)
を使ったプロジェクトでは >>99 同様エラーが出ます。
0102デフォルトの名無しさん
2008/07/31(木) 08:33:07プロジェクトのプロパティで、
Configuration Properties→Advanced→Show Includes
を Yes にしてからコンパイルすると、
インクルードしている順番とかがわかるので、
それでなにかわかるかも。
010399
2008/07/31(木) 09:02:26レスサンクスです。
早速やってみたのですが、、、順番として
dsound.hの前にmmreg.hがあるか確認したのですが、、、
そもそもmmreg.hが読み込まれていません、、、orz
0104デフォルトの名無しさん
2008/07/31(木) 10:49:49チャットの文字とかそういうのもコピペできるようにしたいの?
IMEの制御と入力中の文字のコピペぐらいで良いと思うんだけどね。
コンテキストメニューは無しで。
0105デフォルトの名無しさん
2008/07/31(木) 11:31:22とりあえず、これ入れてみては?
#include <mmsystem.h>
0106デフォルトの名無しさん
2008/07/31(木) 11:50:17stdafx.h の中の↓の行、消すかコメントにしてみ
#define WIN32_LEAN_AND_MEAN // Windows ヘッダーから使用されていない部分を除外します。
0107デフォルトの名無しさん
2008/07/31(木) 11:52:20まあ、WIN32_LEAN_AND_MEAN のdefineがどっかにあると思うけどな。
010899
2008/07/31(木) 12:38:34>>105
>#include <mmsystem.h>
なぜか、大量のエラー(88個)が出ました、、、。
[エラー文]
構文エラー : ';' が、識別子 'MMVERSION' の前に必要です。
以下略
[エラー内容 mmystem.h]
typedef UINT MMVERSION;
以下略
>>106
#define WIN32_LEAN_AND_MEAN
を消してみましたが、
>>99 と同様のエラーが発生してダメでした。
みなさんの助言ありがとうございます。
もう少し自力で調べてみます。
0109デフォルトの名無しさん
2008/07/31(木) 12:39:26消したらリビルドな
0110デフォルトの名無しさん
2008/07/31(木) 12:41:56そのうまくいくやつのwindows.hをincludeする前に
#define WIN32_LEAN_AND_MEAN
してごらん。
011199
2008/07/31(木) 12:46:19も、申し訳ありません、、、。
コンパイル通りました。
大変失礼いたしました。
#define WIN32_LEAN_AND_MEAN
についてこれより詳細に調べます。
011299
2008/07/31(木) 13:26:29>>110
うまくいかないときと同じ症状になりました、、、。
おっしゃるとおり#define WIN32_LEAN_AND_MEANが原因でした。
追記(同じ過ちを繰り返さぬよう)
#define WIN32_LEAN_AND_MEAN
をはずした後に、今まで組んでいた部分と合体したら、
winsock(winsock2.h)関係でエラーがいっぱいでましたが、
stdafx.hでwinsock2.hを読み込ませることで回避できました。
(windows.hより先にwinsock2.hを読ませないといけない)
諸兄のご尽力により、無事解決となりました。
スレ汚し大変失礼いたしました。
0113デフォルトの名無しさん
2008/07/31(木) 14:14:09DirectX SDKにあんたのやりたいこと全て、ソースコード付きで入ってるよ。
まぁ、そのままだと微妙に使い物にならないから、少し手直しが必要だが。
0114デフォルトの名無しさん
2008/07/31(木) 14:50:29Samples\C++\Direct3D\CustomUI
だね
日本語だと確定するまで違うところに表示されるのはしょうがないのかね
0115デフォルトの名無しさん
2008/07/31(木) 15:17:38そのサンプル触った上で言ってるの?
0116デフォルトの名無しさん
2008/07/31(木) 16:56:43コントロールの位置が分かってるなら
マスクかければいいじゃn
0117デフォルトの名無しさん
2008/07/31(木) 17:23:02よく見てなかった
011864
2008/07/31(木) 23:59:47200Mだと、メモリに置いてもツライ量ですね…
メモリマップドにしても、結局ディスクから読むので変わらないのかな…
>>66
全くもってその通りなのですが、どうしても2Dでやりたいのです。
MPEG1は検討してみます。ありがとうございました。
>>94
色々とありがとうございます。
リングバッファは試してみる価値があると思います。
前半だけメモリにおいておくのは、結局止まってしまうので
メモリも食うし、中途半端になってしまうかも…
圧縮もありかもしれませんね。
ディスクから読み込むのと、展開するのとどっちが重いかにもよりますが…
詳しい仕様は…そうですね、エフェクトに使うと思ってもらえればいいと思います。
1〜2秒のエフェクトが30個ほどあり、どれがいつ必要になるかわからないという状況です。
(実際には少し違いますが)
色々試したところ、どうも重くなるのは初回のみなので、あらかじめ確保→開放して
キャッシュにいれておくなんて手法もありかもしれません。
(問題は人によってキャッシュの大きさがまちまちな点ですが…)
0119デフォルトの名無しさん
2008/08/01(金) 00:07:24この場合はCPUの速度が固定なのでやりやすいとは思うんだが
それでもPCから比べればかなり貧弱でも十分に出来ると思う
もちろんPCの場合はどんなCPUつんでるかは不明だから間に合わないってケースも出てくるだろうけど
それでも大よそのケースで間に合うと思うけどな
どんな絵かはわからんが、20%ぐらいの圧縮率とかにはなるんじゃね?
エフェクトに使うってことで非可逆でも構わないならそれこそかなり圧縮できると思う
0120デフォルトの名無しさん
2008/08/01(金) 00:23:080121デフォルトの名無しさん
2008/08/01(金) 00:24:310122デフォルトの名無しさん
2008/08/01(金) 00:28:232Dエフェクトを作るツールの使い勝手の良さ考えると
それと同じレベルのを3Dで作るにはかなり敷居高いと思うが
0123デフォルトの名無しさん
2008/08/01(金) 00:41:26似たようなもんだろ
はじめの選択ミスがひきづってるだけの話でしょ?
次はきっと彼もうまくやれるさ
0124デフォルトの名無しさん
2008/08/01(金) 00:56:17結果的にそれ以上の苦労を実機側でしているのだから意味がない
0125デフォルトの名無しさん
2008/08/01(金) 01:02:33その苦労は単純に比較できないんでは?
見てる限りだと圧縮で解決する感じがするけど
0126デフォルトの名無しさん
2008/08/01(金) 01:12:29メモリをちゃんと計算しなかったのが原因。
012794
2008/08/02(土) 10:09:14「大容量のアニメーションをスムーズに再生するには?」
というだけなのに、設計とかを否定するのはどうかと思う。
仕事でゲーム開発してれば、こんな難関はいくらでもやってくる。その度に
プログラマーの強権発動して「仕様的に無理」っていきなり言っちゃうのは
怠慢だと思う。(そして、ある日隣のプログラマーに「○○すれば簡単にできますよ♪」
とか言われて肩身が狭くなっちゃう。)まずは色々考えてみようよ。
どれかで上手くいくかもしれないし。まぁ仕事じゃないけどさw
個人的には>>119の意見を支持。不可逆で圧縮が可能なら楽にいけそう。
ってかこんな展開シェーダー誰かが作ってそう。
キャッシュに頼るなら、事前にその場では使わないヤツを全部解放しておくと
ちょっと親切かも。
0128デフォルトの名無しさん
2008/08/02(土) 10:22:14DVD並の画質なら展開しつつテクスチャに転送しつつ再生しても、
CeleronM程度の型落ちCPUでも問題なく動くが、
お前らはいったい何を気にしているんだ?
0129デフォルトの名無しさん
2008/08/02(土) 10:25:490130デフォルトの名無しさん
2008/08/02(土) 11:01:33でも、会社の職場で
「3Dでやってればもっとたくさん表現できたよね?」
って言われたらどういいわけするの?
いっとくけどデザイナさんにとっては3Dで作ろうが2D作ろうが
あんまり労力は変わらないかもしれないよ
こんなことも提示できないでデザイナさんにひたすら作らせた後
「ごめんなさい、やっぱこの仕様だときついかもしれません」
とかいうの?
こんな不安要素を抱えてしまうぐらいなら安全策をとるべきでしょ
趣味でやってるなら自由にやればいいと思うけど
会社でやったら恨まれますよ〜(みんな表だっては言わないけどねw)
013194
2008/08/02(土) 11:32:46それはプログラマーとして提言しても決定することはないんじゃない?
表現の仕方や方向性はデザイナーや企画が決めるんではないかと。
会社によって方針(力関係w)が違うだろうから解んないけど。
>>130の言いたいことは良く解る。リスクを抱える開発はプログラマーとしては褒められない。
しかしながら、やりたい事はそれに矛盾する。
「では、できるかどうか検証してみましょう。」
というのが今この場ではないかと、勝手に思ってるんだけども。
もちろん「できない。」と迅速に判断して次にいくのもあり。
「いやいや、方法はあるんでない?」というのが俺の意見。
判断は難しいけどねw
0132デフォルトの名無しさん
2008/08/02(土) 11:47:51そう?
他のゲームはどうなってんだろ?
って解析できるのもプログラマだけだと思うけどね
エフェクトがいるアクション・イベントを3〜4に絞る仕様だってできるわけじゃない?(テイルズ方式)
こんな無理目なことに時間かけてそれに対するリターンはどれほどよ?
って相談までしたんかどうなんか気になるが
まあ、「やってみるけど時間くれる?」まで言ってるならなにもいうべきことはないな
存分に研究してみろ
ただ、決断はしなきゃいけないな
無理なら無理でしっかりいうんだぜ
(もちろんこの期間でこれこれこんなことを試してみたんですけど
試してみた範囲ではこの仕様は実現できませんでした。的なことが必要だ)
と初心者スレだし言ってみるテスト
0133デフォルトの名無しさん
2008/08/02(土) 12:57:14予算と相談しないとな
0134デフォルトの名無しさん
2008/08/02(土) 13:37:15どれだけ技能が低いんだよ。
0135デフォルトの名無しさん
2008/08/02(土) 13:45:21たとえどんなものでも仕事として発生するなら
ちゃんとスケジュールに組み込んで管理するのが基本。
0136デフォルトの名無しさん
2008/08/02(土) 14:02:240137デフォルトの名無しさん
2008/08/02(土) 14:05:15モデルにモーション付けてもらってそれを再生するという感じ?
例えば爆発のエフェクトであれば、炎や火の粉をアニメ付きのモデルで大量に表示とかになるのでしょうか?
0138デフォルトの名無しさん
2008/08/02(土) 14:08:52仕事が溢れそうならマネージャーに相談して溢れる分を他に振るなり増員なりで解決する。
ギリギリになってからやっぱり終わりませんとか言ってきたらマジで回し蹴りだ。
>>137
ビルボード/パーティクル等など
いくらなんでも1個1個モデル表示なんてしないぞ。
0139デフォルトの名無しさん
2008/08/02(土) 14:20:540140デフォルトの名無しさん
2008/08/02(土) 14:32:530141デフォルトの名無しさん
2008/08/02(土) 15:15:10とか思ったけど、もしかしてどこでも当たり前にそういうことやってて今更議論するような程でもないってぐらいのことだったりしますか?
0142デフォルトの名無しさん
2008/08/02(土) 15:24:12プロと言う意味ではPG的にはその程度のツールもないのかよ!
デザイナー的にはその程度のツールも使えないヤツはいらない。
0143デフォルトの名無しさん
2008/08/02(土) 16:37:33バージョン互換を恐れて古いツールを使い続ける。。。
0144デフォルトの名無しさん
2008/08/02(土) 17:48:58仕様はよく考えられてても、UIがコマンドラインだったり、
フォーマットの変更まで考えました、とかいって、
死ぬほど使いづらいツールを作ってきたりする奴もいるからな。
そして、そういうツールに限って不安定。ちょっとテキストファイルに
ゴミ文字が入ってただけで落ちたりしてな。
0145デフォルトの名無しさん
2008/08/02(土) 18:02:49それはツールを作る人間の技量の問題。
その程度のヤツにツールを作らせる人的リソースの不足も問題。
0146デフォルトの名無しさん
2008/08/02(土) 18:27:250147デフォルトの名無しさん
2008/08/03(日) 02:02:44デザイナさんがモデリングした通りに出してみたらどうよ?
適当にボーン入れてアニメーションさせたモデルを加算半透明ではってみりゃ
立派なエフェクトのできあがりっしょ
何に手間かけようとしてんだ
こういうところからプラグイン使えたら便利かなとかそういう考えが浮かんでくるんだぜ
モデリングツールでできることは極限まで活かせよ
まずは、モデルをアニメーションさせるところから説明しないと駄目なほど馬鹿でもないだろ?
こんなところに手間かけてるからお前等苦労ばっかりしてろくなゲーム作れないんだぞ
0148デフォルトの名無しさん
2008/08/03(日) 02:18:16既存の2D系のエフェクト作成ツールでエフェクト作って
それ表示って方のがある程度のレベルまでは時間もかからずに合理的だと思うんだが
個人で作ったショボイツールなんぞよりも何倍も良いものできると思うぞ
最終的に出来ることが3D>2Dだとしても
そこまで行かなければ、使いやすいツールのある環境のがいいものできると思う
それに気の利いたパーティクルツールなんてどこにでもあるようなものとは思えないが
上で出てた爆発みたいなのって爆発のパターン絵描きが書いてプログラマが適当に飛ばして終わりってのが多いんじゃね?
その上で初心者スレってこと踏まえれば
この方法って間違いとかとは全然思えないんだが
>>142
デザイナーにとっては使いこなすに値するツールかどうかだろう
これはプログラマーの次第だと思う
0149デフォルトの名無しさん
2008/08/03(日) 08:19:523Dで爆発なんてそれっぽいもやもやを拡縮するだけで終わりってのも考えられるんじゃね?
しかもそれはモデリングのアニメーションで設定できる話で
プログラマはそれを再生すれば終わりでしょ?
だからこれはアニメーションモデルの再生でしかないと思うんだけど?
3Dの何が手間なの?
勝手な想像で手間だと思ってるだけじゃない?
0150デフォルトの名無しさん
2008/08/03(日) 15:51:26旧世代のキノコの成長の早回しです、
みたいなドン臭い爆発だったらプログラマーの負荷は少ないけど、
パーティクルを使って云々ってやってると結構めんどくさいよ。
0151デフォルトの名無しさん
2008/08/03(日) 17:21:22そうか?
それもモデリングツールにちょちょっと細工して
モデルのアニメーションで出るようにしたら終いな話でしょ?
3Dで苦しくなるような想定ばっかしててもしょうがないと思うんだけど?
0152デフォルトの名無しさん
2008/08/03(日) 17:32:14CoD4の手榴弾みたいなリアルな爆発が欲しい時と
GCのゼルダみたいなアニメ調のが欲しい時では話が違うんだし。
0153デフォルトの名無しさん
2008/08/03(日) 17:39:46くっだらないイレギュラー想定して発言を潰す作戦ですか?
0154デフォルトの名無しさん
2008/08/03(日) 17:58:190155デフォルトの名無しさん
2008/08/03(日) 18:26:19パーティクルやったこと無いんじゃない?
0156デフォルトの名無しさん
2008/08/03(日) 19:42:54あるある
うちのモデリングツールのプラグインに吐き出す奴あるもん
テクスチャアニメーションで粒子を表現するタイプと
頂点シェーダで吐き出してくれるタイプがあるよ
どっちもモデルのアニメーション扱いでいけるようになってる
0157デフォルトの名無しさん
2008/08/03(日) 19:47:420158デフォルトの名無しさん
2008/08/03(日) 19:57:350159デフォルトの名無しさん
2008/08/03(日) 19:58:002Dやってる人は、モデルデータからエフェクト作ってみなよ
3Dやってる人は、パーティクルイリュージョンとか使ってみなよ
0160デフォルトの名無しさん
2008/08/03(日) 20:02:56ないならないで仕様を固定すればやりようはいかようにもある
ただ、その方法を挙げても別のイレギュラー的例を挙げて
そういう案を潰すことばっかりさっきからしてるじゃん
それじゃなんにも進まんと思うのよね
だから2Dで全部アニメーション・・・みたいな馬鹿な選択肢を選んじゃうわけでさ
もっと現実的な話を考えたらぶっちゃけ3Dしか道はないのは誰の目にも明らかで
2Dゲーがなくなっちゃった理由はまさにメモリ使用量に対する表現力の貧弱さなので
あってこんなところ問題じゃないように思うんだけどどう?
0161デフォルトの名無しさん
2008/08/03(日) 20:08:54あくまでも仕様の固定化なんだよね
ってのはもうずいぶん前に学習した
どんな開発であっても汎用ツールを作ってはならない
まずこういう問題にぶちあたってしまったら
その時点ですでにゲームオーバーな状態にあるわけで手遅れなんだよね
プログラマとしての腕を見せる前にこういう問題を起こしてしまうプログラマってのは
社会人としてすでに駄目な場合が多い
作るときにたくさん疑問がでて細かい警告をいくつも見つけてたのにも関わらず
誰にも相談しないで勝手に想定して勝手に自爆してしまっているんだよね
って初心者スレで過去の自分を振り返って語ってるテスト
0162デフォルトの名無しさん
2008/08/03(日) 20:13:17いや勝手に色々と決め付けてその案を潰そうとしてるのはお前の方だと思うんだ
それに対して2Dって選択肢は間違いでもないだろって話であって
今回のだって圧縮のやりようで許容範囲でしょ
0163デフォルトの名無しさん
2008/08/03(日) 20:16:37あーこれ駄目だよな、とか思いながら騙し騙しやっていくもんじゃないだろうか?
0164デフォルトの名無しさん
2008/08/03(日) 20:22:470165デフォルトの名無しさん
2008/08/03(日) 22:10:27テクスチャアニメーションで粒子を表現って普通のパラパラアニメじゃないの?
頂点シェーダではき出すって、頂点シェーダのプログラムをはき出すの?
0166デフォルトの名無しさん
2008/08/03(日) 22:12:12GPU 周りが GPGPU を使えるほど余裕があるようなシチュエーションってそんなにあるか?
0167デフォルトの名無しさん
2008/08/03(日) 23:08:263Dゲームだとぶっちゃけない。
ただ2Dでパラパラアニメするって言ってるんだから
殆どGPU使わないような2Dゲーなのかと思っただけ。
0168デフォルトの名無しさん
2008/08/04(月) 01:30:50>今回のだって圧縮のやりようで許容範囲でしょ
じゃ、やれば?
ただ、3Dだったらもっとよくなったかもねw
016964
2008/08/04(月) 03:41:04なんだか割り込んでしまう形になってしまうのですが、一応報告を…
あ、ちなみに今回のは学校の友達と一緒に作っているようなレベルで
高価な機材やソフトとかも全然無い状況なのです。
なので締切りも無く、時間が限られてるわけでもなかったりします。
なので、とりあえず3Dでやってみることにしました。
今までDirectDrawしか触ってなかったもので、3Dには正直疎いのですが
これを機に勉強してみることにしました。
圧縮やフレーム数の削減なども考えたのですが、
これを機に3Dにも手を出してみることにします。
(アニメ調のものもあるので、表現しきれるかはわかりませんが…)
相談に乗ってくださってありがとうございました!
0170デフォルトの名無しさん
2008/08/04(月) 14:37:05この話題はこの後もグダグダ続く。
適当に教わったことにして話題を切り上げた>>64は優秀。
0171デフォルトの名無しさん
2008/08/04(月) 23:20:290172デフォルトの名無しさん
2008/08/05(火) 14:56:26DXライブラリの様にクライアント領域左上が(0,0)で座標の管理がしたいんですが
どういった関数郡を使えば良いんでしょうか。
DXライブラリとdirectXの両方で使おうとおもってDXライブラリの設定にしたら
directXでプログラムしたところがエラー吐いてどうすればいいのか。
DXライブラリで出来るということは元のdirectXで出来ると考えて良いんですよね?
どなたか助言頂けると幸いです。
0173デフォルトの名無しさん
2008/08/05(火) 15:15:012D描画のみでいいなら楽だが
0174デフォルトの名無しさん
2008/08/05(火) 15:19:473Dの部分を描画した後2D部分を描画すれば問題なさそうなので
2D部分のみでも良い方法があったら是非教えて頂きたいです。
0175デフォルトの名無しさん
2008/08/05(火) 15:28:45DirectXならD3DXMatrixOrthoOffCenterLHを使うと、
物体を遠くに置いても小さくならない。座標を2D画面の様に使える。
詳しく知らないけどDXライブラリで出来ることはDirectXでできると考えて問題いと思うよ。
ただ、共存はどうだろう?俺がライブラリ作者なら勝手に内部数値変えといて後でバグ報告されるとたまらんから、
非推奨、自己責任でってするけど。
0176デフォルトの名無しさん
2008/08/05(火) 15:29:33D3DXMatrixOrthoLHを使う(引数wとhはウインドウサイズ)
座標変換済み頂点の板ポリで2D描画する
0177デフォルトの名無しさん
2008/08/05(火) 15:31:093D座標上の特定の奥行きをスクリーン座標に合わせるのであれば、
奥行きと視野角から行列を逆算すればいい。
0178デフォルトの名無しさん
2008/08/05(火) 15:57:53カメラの
D3DXMatrixLookAtLH を D3DXMatrixOrthoOffCenterLHに
射影変換の
D3DXMatrixPerspectiveFovLH を D3DXMatrixOrthoLHにでいいんでしょうか?
とりあえずやってみたら板ポリゴンも何も表示されなくなってしまいました。
0179デフォルトの名無しさん
2008/08/05(火) 16:01:55//ビューマトリックスの設定
VOID ViewMatrix(LPDIRECT3DDEVICE9 theDevice) {
D3DVIEWPORT9 vp;
if(FAILED(theDevice->GetViewport(&vp))) {
return;
}
// アスペクト比の計算
float aspect;
aspect = (float)vp.Width / (float)vp.Height;
// 初期化
D3DXMatrixIdentity(&m_proj);
// 射影マトリックスを作成
D3DXMatrixPerspectiveFovLH(&m_proj,
D3DXToRadian(45.0f), // カメラの画角
aspect, // アスペクト比
1.0f, // nearプレーン
1000.0f); // farプレーン
//ここにD3DXMatrixOrthoLH(&m_proj,640,480,0,0);?
// マトリックスをレンダリングパイプラインに設定
theDevice->SetTransform(D3DTS_PROJECTION, &m_proj);
}
0180デフォルトの名無しさん
2008/08/05(火) 16:02:26VOID Camera(LPDIRECT3DDEVICE9 theDevice) {
D3DXMatrixIdentity(&m_view);
D3DXMatrixLookAtLH(&m_view, &D3DXVECTOR3(0.0f, 0.0f, -50.0f),
&D3DXVECTOR3(0.0f, 0.0f, 0.0f),
&D3DXVECTOR3(0.0f, 1.0f, 0.0f));
//ここにD3DXMatrixOrthoOffCenterLH(&m_view,0,640,0,480,0,0);?
theDevice->SetTransform(D3DTS_VIEW, &m_view);
}
0181デフォルトの名無しさん
2008/08/05(火) 16:22:53D3DXMatrixOrthoLHにnearプレーンとfarプレーンが設定されてない
D3DXMatrixOrthoLH(&m_proj,640,480,1,1000);
0182デフォルトの名無しさん
2008/08/05(火) 16:42:05でもこれでかなり理想に近い状態になりました。
本当にありがとうございました、皆様に追いつけるよう頑張ります、、、
0183デフォルトの名無しさん
2008/08/05(火) 16:51:47D3DFVF_XYZRHWか
D3DDECLUSAGE_POSITIONTでぐぐれ
0184デフォルトの名無しさん
2008/08/06(水) 15:13:11どういう選択肢がある?
nVidiaならCUDA?
ATiは?
0185デフォルトの名無しさん
2008/08/06(水) 16:16:13(0,0,0)にある原点を(30,0,0)に移動して描画した後また(0,0,0)に戻したりしたいのですが。
0186185
2008/08/06(水) 16:23:08ttp://hishou.ddo.jp/~bbs/up/img/up084.jpg
0187デフォルトの名無しさん
2008/08/06(水) 20:08:100188デフォルトの名無しさん
2008/08/06(水) 20:41:470189デフォルトの名無しさん
2008/08/07(木) 00:19:27ビデオカード毎に全部作る気概があるの?
そうでないならシェーダーでよくね?
0190デフォルトの名無しさん
2008/08/07(木) 07:08:44何らかの目的のためにGPU性能を引き出したいのか・・
0191デフォルトの名無しさん
2008/08/07(木) 07:42:460192デフォルトの名無しさん
2008/08/08(金) 00:55:42winapiのタイマーで10mscに1回WM_TIMERを送ってrenderを呼んでるんですが
10mscの間にrenderの処理が終わらなかったら処理はどうなるんでしょうか?
処理ののコマ抜けみたいなのが起きたりするんじゃないかと不安なんですが。
変数ループで1から100の間の50ループ目だけ飛んだり。
ちなみにリフレッシュレートはD3DPRESENT_RATE_DEFAULTで固定してます。
これってリフレッシュレートに合わせて描画してると考えて良いんですよね?
だとすると尚更メッセージループとの誤差が生じるんでは内科と心配なのです。
0193デフォルトの名無しさん
2008/08/08(金) 01:07:520194デフォルトの名無しさん
2008/08/08(金) 02:32:270195デフォルトの名無しさん
2008/08/08(金) 10:00:490196デフォルトの名無しさん
2008/08/09(土) 12:25:47WIN32APIを極めないで勉強するのは無謀ですか?
少しだけ勉強したのでWIN32APIの基礎ならわかります。
0197デフォルトの名無しさん
2008/08/09(土) 12:29:35極めてる人はそういないと思うよ
いつまでたってもヘルプ見ながら書いている俺
0198デフォルトの名無しさん
2008/08/09(土) 12:31:020199デフォルトの名無しさん
2008/08/09(土) 12:37:35なるほど〜。
C言語に比べて覚えることが多すぎてちょっとびっくりしていましたw
アドバイスありがとうございました!
0200デフォルトの名無しさん
2008/08/09(土) 14:45:56そりゃぁあんた、「日常会話を英語でする」のと「代数幾何を英語で学ぶ」のとででは必要な知識が桁違いに決まっているだろ。
0201デフォルトの名無しさん
2008/08/09(土) 14:56:111つのメッシュで2つ以上の物体が離れて存在する場合、
D3DPT_TRIANGLESTRIPの設定で1回で描画するのは無理なのでしょうか。
エラーが出るわけでは無いのですが、物体が離れているメッシュを描画すると1つの三角形が橋渡しのように表示されます。
D3DPT_TRIANGLELISTだと必要な頂点数がかなり増えるため使用は控えたいです。
Xファイルでは1つのメッシュをDrawSubsetで描画できていますし、頂点の並び方に法則があったりでもするのでしょうか。
0202デフォルトの名無しさん
2008/08/09(土) 14:57:300203デフォルトの名無しさん
2008/08/09(土) 14:58:420204デフォルトの名無しさん
2008/08/09(土) 15:10:290205デフォルトの名無しさん
2008/08/09(土) 15:26:52なんでインデックスを使わずに、効率の悪い方法を選ぶんだ?
0206デフォルトの名無しさん
2008/08/09(土) 16:12:50別に数kb増えたところでどうってことはないけど物量で勝負するアプリなら恩恵は受けられるんじゃないかな。
0207デフォルトの名無しさん
2008/08/09(土) 16:16:050208デフォルトの名無しさん
2008/08/09(土) 16:17:57どうでもいい話だが。
0209デフォルトの名無しさん
2008/08/09(土) 16:24:470210デフォルトの名無しさん
2008/08/09(土) 20:32:57踊り終わるまで待ってるのダルイ・・・・
0211デフォルトの名無しさん
2008/08/10(日) 10:34:210212デフォルトの名無しさん
2008/08/10(日) 11:29:330213デフォルトの名無しさん
2008/08/10(日) 11:43:18検証用の単純なものであればリストが有利だけど
かなり組みあがっているアプリの所々ストリップに直したらCPU/GPU負荷が平均で5%ほど下がった。
0214デフォルトの名無しさん
2008/08/10(日) 11:59:39リストの方が確実にFPSが上昇した。
0215デフォルトの名無しさん
2008/08/10(日) 12:01:250216デフォルトの名無しさん
2008/08/10(日) 12:04:180217デフォルトの名無しさん
2008/08/10(日) 14:52:13モデルの形状も影響するんじゃなかろうか。
ストリップをぶつ切りにする必要のある形状だと当然効果は薄いし、
なるべく法線の近いもの同士でストリップを繋ぐと、
陰面消去の時に効率が上がる場合がある。
メッシュでどこまでやってくれているか解らないけど、
ストリップを繋ぐアルゴリズムって奥が深いらしい。
0218デフォルトの名無しさん
2008/08/10(日) 15:03:06そんな状況でメリットが全く見えない。
0219デフォルトの名無しさん
2008/08/10(日) 15:06:13いちいち反転するからCPUでコリジョンとる時とか面倒だし。
0220デフォルトの名無しさん
2008/08/10(日) 15:12:37データを読み込んだ後にわざわざストリップに変換しているライブラリを見たことがない。
ちまたで見かけるのは平面を書くだけの単純なサンプルで、
インデックスを使わずにストリップのみで構成している、
まともに組むときには書かないようなダメソースぐらい。
0221デフォルトの名無しさん
2008/08/10(日) 17:00:24UVの割れとかも考えると、効率的にもそんなに変わらない気がする。
のっぺりテクスチャ無しの球でテストしてるときとは違うし。
0222デフォルトの名無しさん
2008/08/10(日) 17:28:46淘汰されて4社しか残ってない今となってはどうでもいいな。
0223デフォルトの名無しさん
2008/08/10(日) 19:46:57GPUの頂点キャッシュアルゴリズム依存度よりも、
ユーザーの財布依存度の方が高いから。
0224デフォルトの名無しさん
2008/08/12(火) 03:36:471.アプリ毎に専用のバックバッファを持つんですか?
2.窓モードのバックバッファのウィンドウ外の領域は何も描画されていないんですか?窓サイズ変更時にバックバッファサイズも変更される?
3.窓モードで、ディスプレイに表示されている画像は全てのバックバッファを重ねたものと言うことですか?
0225デフォルトの名無しさん
2008/08/12(火) 04:45:59新しいバックバッファを追加するコストが知りたい
0226デフォルトの名無しさん
2008/08/12(火) 08:08:29知りたいなら試せ。
0227デフォルトの名無しさん
2008/08/12(火) 11:10:251.そうだ
2.そうだ
3.違う 1つだけだ
>>225
そうだ
バックバッファいじらないならデフォのまま使うんだ
0228デフォルトの名無しさん
2008/08/12(火) 13:07:36アプリ毎に持ちます
バックバッファの大きさは任意です。窓の大きさとは関連しません。
まぁデフォルトの窓の大きさ(たとえばゲームなら640x480とかね)と一致させるのが一般的。
窓の大きさを変えるたびにバックバッファの大きさを変えるのはあまりないんじゃないかね
窓が大きくなったら、バックバッファから窓への転送時に拡大する
ディスプレイも1つバックバッファを持っている。
アプリが自分の窓へ描画=ディスプレイのバックバッファへの描画
0229デフォルトの名無しさん
2008/08/12(火) 13:25:22デスクトップと同じサイズで作って窓の大きさ分を左上に描画して使ってるな。
サイズが変わるたびに作り直すのは流石に無茶。
0230デフォルトの名無しさん
2008/08/14(木) 01:37:02何か良い方法は無いでしょうか?
0231デフォルトの名無しさん
2008/08/14(木) 01:49:16スタート画面をクリックした後はボタンを描画すればよい
0232デフォルトの名無しさん
2008/08/14(木) 17:29:06DXUTが一番楽なのでは。
後はイルリヒトとかコンポーネントっぽいのが入ってた気がする。
ダイアログを置いてオーナードローでDirectX描画っつー手もあるけど
多分、面倒臭いと思う。
0233デフォルトの名無しさん
2008/08/17(日) 05:45:47スペースキーを押したらゲーム本体が始まる様にしたいのですが
実行するとキーの状態を取得せずにいきなりゲーム本体が始まってしまいます
どうすれば最初にスタート画面を表示し続けれるのでしょうか?
スタート画面処理
{
if ( GetAsyncKeyState(VK_SPACE) & 0x8000 ){
スタート画面を描画する
}
}
while(1){
if(PeekMessage(&msg,NULL,0,0,PM_NOREMOVE))
{
〜略〜
}else{
スタート画面処理
ゲーム本体
Sleep(1);
}
}
0234デフォルトの名無しさん
2008/08/17(日) 08:14:20DirectX関係ないし
0236デフォルトの名無しさん
2008/08/19(火) 10:27:09そこまでひどいとどこから説明していいのか途方にくれるわ。
0237233
2008/08/19(火) 10:33:450238デフォルトの名無しさん
2008/08/19(火) 11:11:240239デフォルトの名無しさん
2008/08/19(火) 19:26:21まずはメインループを書ける様になってからだ。
0240デフォルトの名無しさん
2008/08/19(火) 20:02:050241デフォルトの名無しさん
2008/08/20(水) 00:49:170242デフォルトの名無しさん
2008/08/20(水) 09:59:440243デフォルトの名無しさん
2008/08/20(水) 15:43:01else if ( (GetAsyncKeyState(VK_SPACE) & 0x8000) == 0 )
0244デフォルトの名無しさん
2008/08/20(水) 20:19:130245デフォルトの名無しさん
2008/08/20(水) 21:57:090246デフォルトの名無しさん
2008/08/23(土) 00:32:29ムービーの動画をテクスチャに移して加工した上で表示させたいと思い、
ネット上のサンプルを読み漁ってとりあえず組んでみたのですが
以下の疑問点が発生しました。
どなたかわかる方が居ましたら、答えていただければありがたいです。
1. ムービーファイルの画像を「1枚ずつ」「任意のタイミングで」取得する方法はありますか?
現在のコードでは、DirectDrawに再生させておいて
描画時にテクスチャを取得して再生する、という構造になっています。
おそらく別のスレッドで再生させているのだとは思いますが
このシステムでは、負荷でメインスレッドのFPSが落ちた場合などに
当然ながら同期のズレが発生してしまいます。
(動画とメインループのフレームの比率が変化してしまうため)
アプリ側から任意のタイミングでフレームを進めることはできますでしょうか?
2. 実際に再生させるルーチンまでは作れたのですが
動画ファイルの読み込みに250msほど時間がかかってしまいます。
特にIGraphBuilderのRenderFileメソッドが非常に重く、
ここだけで200ms持って行かれてしまいます。
これはムービーファイルを再生する上で回避できない時間なのでしょうか?
ちなみに、ムービー形式はサンプルに沿ってwmvを使用しています。
DirectShowというと、マイナーでネット上のサンプルも少ないというイメージで
触っている人が少ないかもしれないかと思うのですが、わかる方が居ましたら
よろしくお願いいたします。
0247デフォルトの名無しさん
2008/08/23(土) 00:34:11DirectShowなどに頼らずに自分で動画をデコードするような
コードを書いたほうが早いのでしょうか…
再生する形式はwmvなりmpegなり1形式に絞れるので。
0248デフォルトの名無しさん
2008/08/23(土) 10:01:06DirectShowがDirectXから切り離されてひさしいので
そっちで聞いたほうがいいかと
0249デフォルトの名無しさん
2008/08/23(土) 12:36:26この板にDirectShowと戦うスレ Part 4というスレがあったので
そちらで再度質問してみることにします。
0250デフォルトの名無しさん
2008/08/24(日) 17:50:09現状はバイリニアのかかったような少しぼけた画像が
表示されてしまいます。
SetSamplerStateでポイントサンプリングに設定しても変わりませんでした
0251デフォルトの名無しさん
2008/08/24(日) 20:40:460252デフォルトの名無しさん
2008/08/24(日) 21:11:170253デフォルトの名無しさん
2008/08/24(日) 23:59:52D3DXCreateTextureFromFileEx(
pd3dDevice, L"pattern.bmp", 64, 64, 1, D3DUSAGE_DYNAMIC, D3DFMT_X8R8G8B8,
D3DPOOL_SYSTEMMEM, D3DX_DEFAULT, D3DX_DEFAULT, 0, NULL, NULL, &texPattern);
// テクスチャ情報取得
D3DSURFACE_DESC desc;
texPattern->GetLevelDesc(0, &desc);
// テクスチャをロック
D3DLOCKED_RECT lockrect;
texPattern->LockRect(0, &lockrect, NULL, 0);
DWORD* ptr = (DWORD*)lockrect.pBits;
DWORD pixel_color=0x0;
short getx=10;//取得したいピクセル
short gety=10;//取得したいピクセル
0254デフォルトの名無しさん
2008/08/25(月) 00:00:10if (0<=y && y<(short)desc.Height){
pixel_color=ptr[getx+gety*(short)desc.Height];
}
}
texPattern->UnlockRect(0);
short color_r=(pixel_color>>16)&0xFF;
short color_g=(pixel_color>> 8)&0xFF;
short color_b=(pixel_color )&0xFF;
上のプログラムで正確な色が取得できません。
指定するピクセルによって違う値が返ってきているので、
きちんとテクスチャを参照してはいると思うのですが。
どうか教えてください。よろしくお願いします。
0255デフォルトの名無しさん
2008/08/25(月) 06:28:58これを直すといいかもしれない
うそいったらごめん
0256デフォルトの名無しさん
2008/08/25(月) 08:41:11サーフェスの横幅は、D3DLOCKED_RECT構造体のPitchを参照しないと駄目。
パディングでdesc.Widthと一致しない場合がある。
0257デフォルトの名無しさん
2008/08/25(月) 12:27:090258デフォルトの名無しさん
2008/08/25(月) 15:56:26具体的にどう直せばいいのか教えてもらえると助かります。
>>256
Pitchのほうですか?
あれは余計なところまで含めたものらしいんで使えないはずです。
試してもらえばわかりますが、Pitchのところまで表示させるとゴミが出ますよ。
>>257
yは縦ですからHeightでしょう、高さという意味ですし。
0259デフォルトの名無しさん
2008/08/25(月) 16:05:380260デフォルトの名無しさん
2008/08/25(月) 16:07:59・ぼーるがたてに5つよこに4つならんでいます。
・ぼーるをひだりうえからいちだんずつよこにじゅんばんにばんごうをつけることにしました。
・いちばんひだりうえが0で、いちばんみぎうえが3です。
・みぎはしまできたのでいちだんさがってつぎのだんのひだりはしが4になります。
・いかどうようにばんごうをつけるといちばんみぎしたは19になります。
さて、ひだりから0からかぞえて2ばんめ、うえから0からかぞえて3ばんめのぼーるはなんばんでしょうか。
けいさんしきがわからなかったら、えにかいてみるといいですよ。
0261デフォルトの名無しさん
2008/08/25(月) 16:13:49A. 掛け算程度は出来ないとお話になりません
>258
算数からやり直せ
0262デフォルトの名無しさん
2008/08/25(月) 16:29:400263デフォルトの名無しさん
2008/08/25(月) 16:34:37sageてるし
内容があからさまに釣りだし
0264デフォルトの名無しさん
2008/08/25(月) 17:14:33布シミュに手を出して満足のいくものができたので、次は髪の毛にいこうかと思っています。
布シミュは「布シミュ」や「クロスシミュレーション」でうまく資料を探せたのですが、髪の毛はうまく資料をぐぐれません。
何か良いキーワードか、ページを教えていただけないでしょうか
よろしくお願いします
0265デフォルトの名無しさん
2008/08/25(月) 21:35:38数学や物理の知識が必要と聞いたので
三角関数・ベクトル・行列を一通り勉強したのですが
他にやっておいたほうがいい分野はありますか?
ゲーム開発のための数理学物理学入門は一通り理解しました
0266デフォルトの名無しさん
2008/08/25(月) 21:39:363Dの知識以前にゲーム製作の総合的な知識が必要になると思うぞ
3Dの部分についてはとりあえず作り始めちゃって問題が出たらその都度調べればいいと思う
0267デフォルトの名無しさん
2008/08/25(月) 21:41:26アドバイスありがとうございます
0268デフォルトの名無しさん
2008/08/25(月) 23:03:00ATL/WTLにてDirectXを扱うにはどの様にしたらよいのでしょうか
クライアント領域を別のビュークラスで定義しサブクラス化しており、色々調べたところ
ビュークラスのHWNDを渡してしまうとCreateDeviceが通らないためウィンドウのHWNDで初期化し、
Render関数にて引数にCDC*を取り
LPDIRECT3DSURFACE9 pSuf = NULL;
m_pd3dDevice->GetBackBuffer(0,0,D3DBACKBUFFER_TYPE_MONO,&pSuf);
上記でバックバッファを取得し、
pSuf->GetDC(pdc->m_hDC);
とビューのHDCとバックバッファのHDCを関連づける方法にたどり着いたのですが、
Clearすら通りません。
問題のあるところを指摘していただけないでしょうか。
0269デフォルトの名無しさん
2008/08/25(月) 23:07:250270デフォルトの名無しさん
2008/08/25(月) 23:20:07Intelのオンボード
0271デフォルトの名無しさん
2008/08/25(月) 23:21:15>ビュークラスのHWNDを渡してしまうとCreateDeviceが通らないため
普通に通るぞ
0272デフォルトの名無しさん
2008/08/25(月) 23:41:55初期化関数に渡すハンドルをクライアントのに変えただけであっさり通りました
むしろ何故以前は通らなかったのか……
いずれにせよ前に進めました。ありがとうございます。
0273デフォルトの名無しさん
2008/08/26(火) 08:20:34どうやったらdxdiag.exeをインストールできますか?
0274デフォルトの名無しさん
2008/08/26(火) 09:46:50Windowsに入ってると思うが。
0275273
2008/08/26(火) 11:23:20更新しようとしても「最新だからインストール必要なし」と表示されます
0276デフォルトの名無しさん
2008/08/26(火) 11:36:26今まで無かったためしがないのでないという状況がよくわからん。
0277デフォルトの名無しさん
2008/08/26(火) 12:00:560278デフォルトの名無しさん
2008/08/26(火) 12:47:42暗記してもすぐ仕様が変わるから無駄
0279デフォルトの名無しさん
2008/08/26(火) 15:35:54目を通した方がいい。
0280デフォルトの名無しさん
2008/08/26(火) 16:47:25製品の動作機種がDirectX9対応グラフィックでは正しく使えるのでしょうか?
それともDirectXというのは同じバージョンでしか対応しないものなのですか?
0281デフォルトの名無しさん
2008/08/26(火) 16:58:1610以下のはすべて使えると思う
0282デフォルトの名無しさん
2008/08/26(火) 21:56:47回答ありがとうございます
0283デフォルトの名無しさん
2008/08/26(火) 23:03:100284デフォルトの名無しさん
2008/08/26(火) 23:06:12入門書としてDirectXゲームグラフィックスプログラミングVer2.1
を買いました。
DirectXGraphicsの初期化などは暗記して見ないで打てるようにしたほうがいいですか?
0285デフォルトの名無しさん
2008/08/26(火) 23:10:380286デフォルトの名無しさん
2008/08/26(火) 23:10:39日曜プログラマならみんなコピペでいいよ
コピペで駄目になってから考えろ
0287デフォルトの名無しさん
2008/08/27(水) 01:11:50http://www.watch.impress.co.jp/game/docs/20070927/wv.htm
0288デフォルトの名無しさん
2008/08/27(水) 07:18:41待つんだゲフォの280は地雷だ。
らでの4850にしとけ。
大差ないスペックで大量の消費電力と3倍近い値段するんだぞ280は。
0289デフォルトの名無しさん
2008/08/27(水) 07:52:34March 2008でも直ってねーじゃん
0290デフォルトの名無しさん
2008/08/27(水) 07:58:170291デフォルトの名無しさん
2008/08/27(水) 09:43:51DVD出たときにパイオニアと東芝がしょっちゅう同じバグ出してたのもコピペだったんだろうなあ
0292デフォルトの名無しさん
2008/08/27(水) 11:30:57昔買ったNECのマウスのファームウェアがサンプルのコピペでワロタ
CY7C63101のサンプルコードに書いてあった仮のベンダーIDとかそのまんまになってた
0293デフォルトの名無しさん
2008/08/27(水) 13:49:520294デフォルトの名無しさん
2008/08/28(木) 00:58:23ゲーム起動時に32*32のフォント画像のテクスチャーを約8000個作りたいんですが、
その処理に15秒くらいかかってしまいます。
CreateTextureやバッファにフォント画像を書き込むこと自体は、
全然時間がかからないんですが、
↓の処理が凄く遅いです。
D3DLOCKED_RECT lockRect;
pTexture->LockRect(0, &lockRect, NULL, D3DLOCK_DISCARD);
高速化する方法ってないでしょうか。
0295294
2008/08/28(木) 01:12:25CreateTextureのプールを、
D3DPOOL_DEFAULT から D3DPOOL_MANAGED に変えたらちょっぱやになりました。
理由はよく分かりませんが、
D3DPOOL_DEFAULTだとLockRectでVRAMにアクセスするから遅い?
0296294
2008/08/28(木) 01:20:42もしかして、D3DPOOL_MANAGEDの方が速いのでしょうか?
D3DPOOL_MANAGEDとD3DPOOL_DEFAULTの長所短所がよく分からないんですが、
詳しい人いたら教えてもらえませんか?
0297デフォルトの名無しさん
2008/08/28(木) 06:54:13あなたの使い方は論外です、今は素直にPOOL_MANAGEDを利用して
いつか分かるようになったらそのとき色々考えましょう。
っていうかDEFAULTのテクスチャをロックするなよ。
0298294
2008/08/28(木) 08:47:12POOL_DEFAULTはどういう場合に使うのが適切なんでしょうか?
いつかじゃなくて今知りたいんですが、教えてもらえないでしょうか。
0299294
2008/08/28(木) 09:23:29適切なところはPOOL_DEFAULTを使いたいんです。
0300デフォルトの名無しさん
2008/08/28(木) 10:53:320301デフォルトの名無しさん
2008/08/28(木) 11:24:46誰か教えていただけませんか?
// ディスプレイアダプタを表すためのデバイスを作成
// 描画と頂点処理はハードウェアで行う
if(FAILED(m_pD3D->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
hWnd,
D3DCREATE_HARDWARE_VERTEXPROCESSING,
&m_D3DPP, &m_pD3DDevice))) {
// 失敗した場合
// 描画処理はハードウェアで、頂点処理はCUPで行う
if(FAILED(m_pD3D->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
hWnd,
D3DCREATE_SPFTWARE_VERTEXPROCESSING,
&m_D3DPP, &m_pD3DDevice))) {
// 失敗した場合
// 描画と頂点処理をCUPで行う
if(FAILED(m_pD3D->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_REF,
hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&m_D3DPP, &m_pD3DDevice))) {
//取得失敗
return E_FAIL;
これだとコンパイルエラーが出ます。。。
0302デフォルトの名無しさん
2008/08/28(木) 11:45:18テクスチャ8000個ってのを改善しろよ
8000個なんて使うときあるか?
0303デフォルトの名無しさん
2008/08/28(木) 12:41:51日本語全部だとそのくらいじゃないの
知らないけど
0304デフォルトの名無しさん
2008/08/28(木) 12:44:540305デフォルトの名無しさん
2008/08/28(木) 12:51:470306デフォルトの名無しさん
2008/08/28(木) 13:22:12じゃあ聞きますけど1枚に全部入りますか?
書き込む前に考えるクセをつけるべきだと思います。
0307デフォルトの名無しさん
2008/08/28(木) 13:27:35マトリョーカシからの圧縮も対応してるし
12000*8000のサイズも余裕で収まるっしょ?
0308デフォルトの名無しさん
2008/08/28(木) 13:27:560309デフォルトの名無しさん
2008/08/28(木) 13:31:38「でも複数にするとどの文字が
どのテクスチャに収納されてるのか考えないと・・・」
「そうだ!1文字テクスチャでつくればいいんじゃね」←いまここ
こういうことだろ?
どんだけ手抜きなんだよ
0310デフォルトの名無しさん
2008/08/28(木) 13:35:260311デフォルトの名無しさん
2008/08/28(木) 13:52:550312デフォルトの名無しさん
2008/08/28(木) 17:22:100313デフォルトの名無しさん
2008/08/28(木) 17:55:04いまどきの富豪なグラボは1GBある
0314デフォルトの名無しさん
2008/08/28(木) 17:57:52誰か教えていただけませんか?
// ディスプレイアダプタを表すためのデバイスを作成
// 描画と頂点処理はハードウェアで行う
if(FAILED(m_pD3D->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
hWnd,
D3DCREATE_HARDWARE_VERTEXPROCESSING,
&m_D3DPP, &m_pD3DDevice))) {
// 失敗した場合
// 描画処理はハードウェアで、頂点処理はCUPで行う
if(FAILED(m_pD3D->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
hWnd,
D3DCREATE_SPFTWARE_VERTEXPROCESSING,
&m_D3DPP, &m_pD3DDevice))) {
// 失敗した場合
// 描画と頂点処理をCUPで行う
if(FAILED(m_pD3D->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_REF,
hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&m_D3DPP, &m_pD3DDevice))) {
//取得失敗
return E_FAIL;
これだとコンパイルエラーが出ます。。。
0315デフォルトの名無しさん
2008/08/28(木) 18:42:550316デフォルトの名無しさん
2008/08/28(木) 18:55:45ちなみに使っているコンパイラは現役専門学生の友達が作ってくれたものです。
0317デフォルトの名無しさん
2008/08/28(木) 19:53:57その場合は当然DYNAMICフラグとセットにしてな。
それ以外のただの画像テクスチャなんてものはMANAGEDで問題ない。
速度的にDEFAULTが速いとか勘違いしてるかもしれないが
作成時に1回だけ書き換える程度の静的なデータには無意味だ。
一般的といっていいかは分からないけど、
MMOみたいな大量の文字を使うようなゲームでも普通は事前に
テクスチャに展開してUVで切り出して描画をするぞ。
1文字1テクスチャは色々とおかしいといわざるを得ない。
1文字単位でテクスチャの切り替えが発生するしキャッシュ効率も最悪。
0318デフォルトの名無しさん
2008/08/28(木) 22:45:27淫乱負数について詳しく
0319デフォルトの名無しさん
2008/08/28(木) 23:23:35デクリメント負数のサイズ (バイト単位)。柔軟な頂点フォーマット (デクリメント) 頂点バッファの場合は、
淫乱負数 は少なくとも 1 つの頂点を格納できる大きさでなければならないが、頂点サイズの倍数である必要はない。
淫乱負数 は非 FVF バッファについては検証されない。
0320294
2008/08/29(金) 00:13:09手抜きじゃなくて、無知で初心者なだけです。
常に最善を求めて頑張っています。
>>310
とりあえず>>306は私じゃないのであしからず。
>>312
いまどきのグラボは30MBくらいいけると想定して、
古いグラボはすっぱりと切る心づもりでした。
0321294
2008/08/29(金) 00:14:46参考意見ありがとうございます。
charがどの文字に対応するかは絶対1つずつ判定が必要ですよね。
そしたら後は、1枚から特定の場所を切り出す処理がない分、
1つずつのテクスチャにした方が効率がいいかと思ったんですが、
そうではないんでしょうか?
私はプログラムやコンピュータに触りだしたのが最近で、
キャッシュ効率(たぶんハード寄りなこと?)というのがよく分からないんですが、
大量のテクスチャを使えば一時保存領域などを頻繁に入れ替えることになるから、
その分オーバーヘッドが生じて遅くなるってことでしょうか?
0322デフォルトの名無しさん
2008/08/29(金) 01:21:10その書き方では、DEFAULTはロック書き換え用だと読めるが、
そうなの?
別に実測値を出せとは言わんが、それを示すドキュメントとかあるか?
0323デフォルトの名無しさん
2008/08/29(金) 01:25:4460度の角度で上方向に扇形を描画さしたいのですが(円弧の方が上)
開始地点は275から半径50の扇形を描画さしたいのですが
pD3Device->SetTexture(0, pTexture[0]);
pt[0].x = 250.0f;
pt[1].x = 300.0f;
pt[3].x = 275.0f;
pt[2].x = 275.0f;
pt[0].y = 225.0f;
pt[1].y = 225.0f;
pt[2].y = 275.0f;
pt[3].y = 275.0f;
pt[0].tu = pt[3].tu = 0.0f / 1024;
pt[1].tu = pt[2].tu = 200.0f / 1024;
pt[0].tv = pt[1].tv = 0.0f / 1024;
pt[2].tv = pt[3].tv = 200.0f / 1024;
pD3Device->DrawPrimitiveUP(D3DPT_TRIANGLEFAN,2,pt,sizeof(CUSTOMVERTEX));
これでは普通に三角形ができただけで・・・
角度計算とかで簡単に扇形にできないでしょうか?
0324デフォルトの名無しさん
2008/08/29(金) 04:00:28テクスチャの切り替えはなるべく少なくした方が高速
0325233
2008/08/29(金) 05:00:57粗末な物を張ってすみませんでした
0326デフォルトの名無しさん
2008/08/29(金) 07:17:270327デフォルトの名無しさん
2008/08/29(金) 07:33:53テクスチャの切り出しなんて文字コードをインデックスにして
テーブルからUVを引っ張ってくるだけだろ。
今のCPUのキャッシュ容量なら余裕で全部乗る程度のキャッシュサイズだし、
別にテクスチャ自体を切り出して作るわけじゃないぞ。
「テクスチャの切り替えをする」ということはそのつど「DrawPrimitive」を呼ぶということだ。
昨今のグラフィックカードは細かいデータをたくさん出すようには設計されてないので致命的なほど遅い。
なので可能なら1枚のテクスチャに格納⇒文字全てを1個の頂点バッファに格納⇒DrawPrimitive1回で全ての文字を描画
これが実測でも理論でも最速になる。
DrawPrimitiveの連打に比べたら頂点データの作成やUVテーブルの参照なんてゴミみたいな負荷。
>322
SDKに入ってるドキュメントに書かれてるよ。
>動的な頂点バッファおよびインデックス バッファの使い方
>
>理想は頂点データまたはインデックス データがまったく変化しないことですが、これは必ずしも可能ではありません。
>アプリケーションがフレームごとに頂点データまたはインデックス データを変更する場合は多くあり、
>フレームあたり複数回変更することさえあります。
>このような場合は、D3DUSAGE_DYNAMIC を使って頂点バッファまたはインデックス バッファを作成する必要があります。
>この利用法フラグによって Direct3D を頻繁なロック処理用に最適化します。
>D3DUSAGE_DYNAMIC はバッファを頻繁にロックする場合にのみ有用であり、
>変化しないデータは静的な頂点バッファまたはインデックス バッファに格納する必要があります。
テクスチャやサーフェイスの場合だとシステムメモリにコピーをいちいち作れない、
レンダリングターゲットや深度バッファなんかもDEFAULTで作る必要あるけど。
0328327
2008/08/29(金) 07:43:05D3DUSAGE_DYNAMICフラグはD3DPOOL_DEFAULTと一緒じゃないと使えない。
D3DPOOL_MANAGEDって単にシステムメモリにコピーもってて、
システム側のバッファ⇒DMA転送⇒VRAMのバッファってやってるだけ。
だからデバイスがロストしても復旧できる。
当然だけど描画中のバッファをLock()しようとした場合は描画終わるまで待たされる。
そうなると頻繁にバッファ書き換えるなら直接VRAMのバッファ変えるほうが速いのは当然だし
DYNAMICフラグの場合はLock()する度に別のアドレス返してくるからMANAGEDみたいに
データの保障は出来ないってことだな。
DYNAMICしたバッファは
Lock()→新しいビデオメモリ領域をmalloc()→そのアドレスを返す→描画終わったらドライバがfree()
っていう処理だから他のバッファみたいに描画中のバッファに干渉してパイプラインを止めなくてすむ。
だから書き換えないならMANAGEDでいいし、頻繁に書き換えるならDEFAULT+DYNAMICにしとけってな話。
ドキュメントの「DirectXGraphics」→「プログラミング ガイド」→「プログラミングのヒント」→「パフォーマンスの最適化」を参照。
0329デフォルトの名無しさん
2008/08/29(金) 11:06:50シーンの作成時やレンダラーの初期化時に
HRESULTをいうのを使っているのですが
HRESULT Renderer::Initialize(HWND hWnd, BOOL isFullScreen, int clientWidth, int clientHeight)
LRESULTとの違いってなんですか?
LRESULT CALLBACK WindowProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
ウィンドウプロシージャルを定義するときはLのほうを使って
DirectXの初期化の時などはHを使うって事ですか?
0330デフォルトの名無しさん
2008/08/29(金) 11:23:45HRESULTは内容が決まってる。COMが返すものと思っていい。
自分で作った関数は、よそから返ってきたHRESULTをそのまま返すもの以外はあまり使わないと思うよ。
0331デフォルトの名無しさん
2008/08/29(金) 11:36:43なるほど〜〜
ありがとうございました!
0332デフォルトの名無しさん
2008/08/29(金) 12:29:25戦闘時のエフェクトとかってDirectXで描写するのとAdobeEffectsとかで作ったのを描写するのどっちが一般的なんですか?
0333デフォルトの名無しさん
2008/08/29(金) 12:39:542Dなら、ベタでいいんじゃね?
絵の量が多いと、プログラムしないとメモリが足りないけど
0334デフォルトの名無しさん
2008/08/29(金) 12:40:58ttp://rayz.skr.jp/?http://rayz.skr.jp/zakki/_zakki.html
0335デフォルトの名無しさん
2008/08/29(金) 12:47:28このスレ64から嫁
一般的かって話なら3Dで作るのが一般的
0336デフォルトの名無しさん
2008/08/29(金) 13:30:030337294
2008/08/29(金) 20:40:02文字列全てを1個の頂点バッファに格納するというのは、
同じ板ポリゴンに、位置をずらしながら1文字ずつ貼り付けていくということですよね。
板ポリの4頂点にテクスチャのUVを指定して、
板ポリ全体にテクスチャを貼り付ける方法しか知らないんですが、
板ポリゴンの一部にテクスチャを貼り付けるにはどうすればいいんでしょうか?
0338デフォルトの名無しさん
2008/08/29(金) 20:44:59いうてる意味がわからんが「描画する文字数 x 4角形」分の大きさの頂点バッファをこしらえるだろ。
0339デフォルトの名無しさん
2008/08/29(金) 21:19:351個の頂点バッファにたくさんポリゴンを詰め込んで、1回のDrawPrimitiveで全部描く
0340デフォルトの名無しさん
2008/08/29(金) 22:21:31D3DPOOL_MANAGEDはレンダリングターゲットには出来ない。
ということはGPUによる書き換えは発生せず、内容の書き換えが起こるとするとすれば
それは常にCPUからの場合のみ。
だとすれば、D3DPOOL_MANAGEDのリソースは、
メインメモリ側がマスタで、ビデオメモリ側がスレーブという考え方でかまわない訳で、
lockした場合は、常にメインメモリ側のポインタを返し、
unlockした時点でスレーブに反映させればいいから、別にCPUはストールしない。
と、勝手に思っていた訳だが。根拠はないが。
0341デフォルトの名無しさん
2008/08/29(金) 22:26:55D3DUSAGE_DYNAMIC+D3DPOOL_DEFAULTが
D3DPOOOL_MANAGEDより優位だとは特に書いていないぞ。
0342デフォルトの名無しさん
2008/08/29(金) 23:51:45CPUのメモリに書き込む⇒CPU→GPUの転送をする⇒GPUのバッファが描画待ち状態だった⇒さぁどうなる?
>>341
毎フレームロックするような2Dのスプライトみたいなものとか、
3Dのパーティクルみたいなものには有利とは書かれているぞ。
モデルみたいな作りっぱのデータにはむしろマイナスだろう。
0343294
2008/08/30(土) 00:45:36>>339
理解しました。頂点バッファって三角形何個でも繋げられるんですね。
今まで常に三角形2枚の長方形で1個の頂点バッファにしてました。
どうもありがとうございます。
0344294
2008/08/30(土) 00:47:27起動時のフォントテクスチャ作成を、
D3DPOOL_DEFAULT、D3DUSAGE_DYNAMICから、
D3DPOOL_MANAGED、USAGEなしに変えたら、
LPDIRECT3DTEXTURE9#LockRectが20倍くらい速くなったんですが、
描画中だとD3DPOOL_DEFAULTの方がロック速いけど、
描画してない状態だとD3DPOOL_MANAGEDの方がロック速いってことでしょうか。
いずれにせよ、色々実測してみようと思います。
0345デフォルトの名無しさん
2008/08/30(土) 22:46:27ゲーム会社の採用試験の作品提出の時に使ったまずいのってありますか?
0346デフォルトの名無しさん
2008/08/30(土) 22:53:47その時点で不採用決定だから気にするな
0347デフォルトの名無しさん
2008/08/30(土) 22:58:440348デフォルトの名無しさん
2008/08/30(土) 22:59:47windowsアプリケーションを作る時
#include <windows.h>
がないとの同じだぞ?
0349デフォルトの名無しさん
2008/08/30(土) 23:03:22お前は心臓がなくて生きてられるか?(ペースメーカーなど除く)
0350デフォルトの名無しさん
2008/08/30(土) 23:25:28d3d9.libだけは使ったらまずい。ほかは使っても大丈夫だよ
採用試験がんがれ!
>>346-349
しんだほうがいい
0351デフォルトの名無しさん
2008/08/30(土) 23:28:48プログラマーって>>350みたいなの多いから気をつけた方がいいよ
別に気に入らなければ答えなきゃいいだろうっていう質問をネタに遊ぶ連中だから
0352デフォルトの名無しさん
2008/08/30(土) 23:32:300353デフォルトの名無しさん
2008/08/31(日) 00:28:48ネット経験が浅いんだろうなぁ、ウザいなぁと何時も思う。
0354デフォルトの名無しさん
2008/08/31(日) 01:01:16実行ファイルの隣に置いておくのが駄目なだけで
再配布が禁止されてるわけじゃないよ
0355デフォルトの名無しさん
2008/08/31(日) 01:49:170356294
2008/08/31(日) 04:38:21やっぱうちだとPOOL_DEFAULT より POOL_MANAGEDの方が速いっぽいです。
あと、HARDWARE_VERTEX_PROCESSING より SOFTWARE_VERTEX_PROCESSINGの方が速い。
0357デフォルトの名無しさん
2008/08/31(日) 05:24:16システムメモリとビデオメモリを理解してないんですね
わかります
0358デフォルトの名無しさん
2008/08/31(日) 08:08:45そりゃロック速度は速いだろうけど描画は遅くなるだろ・・・
0359デフォルトの名無しさん
2008/08/31(日) 08:47:02測定条件が明確じゃないのに、ここでどっちが早いとか
書いても意味ねーぞ
0360294
2008/08/31(日) 14:24:52測定条件こんな感じでどうですか?
http://www.sepia.dti.ne.jp/zigzag/test.zip
Managed DirectXは少し遅いらしいけど。
0361デフォルトの名無しさん
2008/08/31(日) 14:33:26エーダメだったの?
0362デフォルトの名無しさん
2008/08/31(日) 16:28:42いやぁ
その前にシステムメモリとビデオメモリの違い
ってわかる?
多分、そんなの測ってもケースバイケースよ?
いまのままだとどんな条件のときにそのプログラムが速くて
そんな条件のときにそのプログラムが遅いのかわかんないでしょ?
それを知りたい?
それとも虚構の条件でのみ速いって主張するそのプログラムを
みんなに認めてもらいたいだけ?
どっちか選んで方針決めてよ
0363294
2008/08/31(日) 16:59:03詳しい違いはしりません。
>それを知りたい?
知りたい。
0364294
2008/08/31(日) 17:00:47結果と理論を合致させたいです。
0365デフォルトの名無しさん
2008/08/31(日) 17:01:410366デフォルトの名無しさん
2008/08/31(日) 18:59:07お勧めのライブラリーなどあればよろしくお願いします
0367デフォルトの名無しさん
2008/08/31(日) 18:59:37ちゃんと書いてあっただろ・・・。
もし商業でやってたらアウトだぞ。
再配布していいのは「再配布パッケージ」だけで
「再配布パッケージの中のファイル(d3dx9_32.dllなど)」を
単独で再配布してはいけない
>>363
その詳しい違いを調べてるんじゃないの?
ただロックして書き込み速度だけみたいなら
mallocしたバッファにでも書けば?
0368デフォルトの名無しさん
2008/08/31(日) 19:32:36んじゃ
システムメモリってのはPCのCPUで演算させるときに
データをおかなきゃならんところなんよ
ビデオメモリってのはグラフィックボードのGPUで
演算させるときにデータをおかなきゃならんところよ
>あと、HARDWARE_VERTEX_PROCESSING より SOFTWARE_VERTEX_PROCESSINGの方が速い。
これもさ、LockとかDrawPrimitiveUpやってんじゃねぇの?
なのでそんな結果になっちゃうわけよ
つまりな、描画方法がグラボの能力をまったく使えてないw
0369デフォルトの名無しさん
2008/08/31(日) 20:35:00エーそうだったのか
ありがとう
0370デフォルトの名無しさん
2008/09/01(月) 13:49:43頂点バッファ、インデックスバッファの扱いについて質問です
これらはスプライト毎に用意したほうがいいのでしょうか?
それともシステムに対して一つ用意してそれを使いまわせばいいのでしょうか?
0371デフォルトの名無しさん
2008/09/01(月) 14:56:141個だけ作っておいて
スプライトを順次埋め込んでいけばオッケ
表示するときに一発で済む
0372デフォルトの名無しさん
2008/09/01(月) 17:59:13一つの頂点バッファに動的に頂点を追加し
テクスチャごとにインデックスバッファを作成して描画ということでしょうか?
一つの動的な頂点バッファをマイフレームロックして書き換えるのと
テクスチャごとに静的頂点バッファを生成して切り替えて使うのだと
どちらがパフォーマンスにやさしいのでしょうか?
0373デフォルトの名無しさん
2008/09/01(月) 19:01:41DirectX診断ツールが出てきた・・・はい いいえの内容教えてください
たしか はい がおすすめですと書いてあった
バージョンが最新?DirectX 9.0cになってたいいえクリックすると自動で9.0cがインストールするの?
詳しい方教えてくださいおねがいします。
0374デフォルトの名無しさん
2008/09/01(月) 21:59:35//--------------------------------------
// モデルを生成
//--------------------------------------
// 球体(Sphere)の生成
if(FAILED( FAILED(D3DXCreateSphere( pD3DDevice,
1.0f,
36,
36,
&m_pMesh,
NULL)))) {
return E_FAIL;
}
0375デフォルトの名無しさん
2008/09/01(月) 21:59:50・プログラミングの話しではない
・日本語がおかしい
0376デフォルトの名無しさん
2008/09/01(月) 22:10:08お前も日本語がおかしい
0377デフォルトの名無しさん
2008/09/01(月) 22:15:36if(FAILED( FAILED(D3DXCreateSphere( pD3DDevice, これにする理由ってなんですか?
0378デフォルトの名無しさん
2008/09/01(月) 22:36:14後生ですからFAILEDマクロの定義を調べた上で初心者スレに出直してください。DirectXには関係がありませんから。
0379デフォルトの名無しさん
2008/09/02(火) 00:56:57これは相性が悪いのであきらめろということですか?
0380デフォルトの名無しさん
2008/09/02(火) 08:26:34異なるテクスチャを要求されるか
頂点バッファが一定量(例えばスプライト100個)を越えるまで
一つの頂点バッファに溜め込んで
上記条件を満たしたら表示する
>>379
DX搭載のUIを使うか
エディットコントロールの部分をクリッピングする
0381デフォルトの名無しさん
2008/09/02(火) 10:24:08その手法はヘルプには書いてありましたが
たとえば
スプライト0〜49がテクスチャA
スプライト50〜99がテクスチャBを資源にしている場合
ひとつの頂点バッファで一括で100個描画をする方法あるのでしょうか?
パーティクルみたいに同じテクスチャを数100個表示するようなときには有効そうですが
0382デフォルトの名無しさん
2008/09/02(火) 11:31:27テクスチャごとに(その例では50)表示しても
マルチテクスチャで無理して全部(その例では100)表示しても
速度差は出ないぞ
0383デフォルトの名無しさん
2008/09/02(火) 11:49:290384デフォルトの名無しさん
2008/09/02(火) 12:01:550385デフォルトの名無しさん
2008/09/02(火) 12:02:54"error C2065: 'm_pD3Ddev' : 定義されていない識別子です。"
こんなエラーが出てビルドする事が出来ません。
恐れ入りますが、よろしくお願いします。
0386デフォルトの名無しさん
2008/09/02(火) 12:04:57をクラス定義に入れろ。
0387デフォルトの名無しさん
2008/09/02(火) 12:44:28有難うございます。
無事に解決する事が出来ました。
0388デフォルトの名無しさん
2008/09/02(火) 13:28:410389デフォルトの名無しさん
2008/09/02(火) 16:48:140390デフォルトの名無しさん
2008/09/02(火) 23:57:18DirectXのほうでテクスチャーを張り付ける処理をしなければいけないってことです?
0391デフォルトの名無しさん
2008/09/03(水) 00:10:54プログラム欄のフォルダを見ても中が空なんですがこれできちんとダウンロードされているのでしょうか?
よろしくお願いします。。
0392デフォルトの名無しさん
2008/09/03(水) 00:14:21DirectX10.0です
いまいち効果が感じられないので質問するに至りました
0393デフォルトの名無しさん
2008/09/03(水) 00:14:51ランタイム?SDK?
0394デフォルトの名無しさん
2008/09/03(水) 09:19:46DirectXの何で読み込んでいるかにもよる
ポリゴンしか読んでないなら
そりゃテクスチャも読まないとダメでしょう
よくあるトラブルは
テクスチャへのパスが間違っていること
一度Xファイルを覗いてみてパスが正しいか確認すべし
0395デフォルトの名無しさん
2008/09/04(木) 17:33:09OpenGLのように頂点座標や法線、テクスチャ座標が別々の配列に分かれているデータを
一度に描画する方法はないのでしょうか? どなたか教えて下さい。
0396デフォルトの名無しさん
2008/09/04(木) 17:53:300397デフォルトの名無しさん
2008/09/04(木) 18:53:35このへんが参考になるんじゃね?
ttp://marupeke296.com/DXG_No53_DrawUsingStream.html
0398デフォルトの名無しさん
2008/09/04(木) 19:59:010399デフォルトの名無しさん
2008/09/04(木) 20:41:08で読み込ませたところ、なぜかaがAのモーションに引き寄せられるのですが。
解決方法が分かる人はいませんか?
0400399の補足
2008/09/04(木) 20:47:160403デフォルトの名無しさん
2008/09/06(土) 19:28:570404デフォルトの名無しさん
2008/09/06(土) 19:46:37○デバイス
0405デフォルトの名無しさん
2008/09/06(土) 21:58:35どうして発生するんだろう?
0406デフォルトの名無しさん
2008/09/06(土) 22:04:21あなたのESP能力が試されているのです
というわけでデバイスロストでググってまたきなさい
0407デフォルトの名無しさん
2008/09/07(日) 11:00:33pD3DDevice->Reset(&m_D3DPP);
0408デフォルトの名無しさん
2008/09/07(日) 11:33:22そんな最低のソース組むやつと仕事は出来ない。
0409デフォルトの名無しさん
2008/09/07(日) 11:40:01トンマ ドベ アンポンタン ダボ アホ
0410デフォルトの名無しさん
2008/09/07(日) 11:47:580411デフォルトの名無しさん
2008/09/07(日) 11:51:590412デフォルトの名無しさん
2008/09/07(日) 12:33:11PG辞めろ
0413デフォルトの名無しさん
2008/09/07(日) 12:34:06トンマ ドベ アンポンタン ダボ アホ
0414デフォルトの名無しさん
2008/09/07(日) 12:43:22トンマ ドベ アンポンタン ダボ アホ
0415デフォルトの名無しさん
2008/09/07(日) 16:46:28トンマ ドベ アンポンタン ダボ アホ
0416デフォルトの名無しさん
2008/09/07(日) 17:06:00無視するわけにはいかない
0417デフォルトの名無しさん
2008/09/07(日) 17:07:42トンマ ドベ アンポンタン ダボ アホ
0418デフォルトの名無しさん
2008/09/07(日) 17:20:20ID出ないからって調子乗りすぎ
0419デフォルトの名無しさん
2008/09/07(日) 17:21:24トンマ ドベ アンポンタン ダボ アホ スケベ ノロマ
0420デフォルトの名無しさん
2008/09/07(日) 23:39:230421デフォルトの名無しさん
2008/09/08(月) 00:52:12それが重要かどうかは、420が何をしようとしているか分からなければ答えられないんじゃないか?
まずはそれよりも、
>キーフレームアニメーションの分野に入ったんですけど
もうちょっと、自分が言わんとしていることが人に伝わる文章になっているか、それを気にしたほうがいい。
0422デフォルトの名無しさん
2008/09/08(月) 19:35:570423デフォルトの名無しさん
2008/09/08(月) 20:38:25そのぐれー理解しとけレベルとして聞いてるならもちろん理解しなきゃダメレベル
っていうかこれ嫌がったらキャラのアニメーション、エフェクトのアニメーションとか
アニメーションまわり全部苦手になるじゃん
理解しろ
0424デフォルトの名無しさん
2008/09/09(火) 16:27:56いままではカラー情報無の頂点(座標+テクスチャ座標のみ)をつかって
ピクセルシェーダーで直接テクスチャカラーを
指定したアルファ値で書き換えていたのですが
これを固定機能パイプラインで再現するにはどうしたらよいのでしょうか?
調べた限りでは頂点情報にカラー情報を入れて
そこのアルファ値を使ってブレンドしているようなものは見つけましたが
これだとアルファ値を変化させるたびにLockして書き換えることになるような気がします
なにかさっくりとブレンド比を指定することはできないのでしょうか?
固定機能パイプラインを使ったプログラムほとんどしたことがないのでよろしくお願いします
0425デフォルトの名無しさん
2008/09/09(火) 17:16:48いちいちロックしなくて済むし
0426デフォルトの名無しさん
2008/09/09(火) 18:49:080427デフォルトの名無しさん
2008/09/09(火) 18:55:050428デフォルトの名無しさん
2008/09/09(火) 19:04:090429デフォルトの名無しさん
2008/09/09(火) 19:46:21THXRY
0430デフォルトの名無しさん
2008/09/10(水) 04:52:39俺も悩んだ。頂点毎に色を変える必要がなければ、
1.レンダーステートでライトを有効にする。
2.ライト自体は全てOFF。
3.マテリアルカラーのデヒューズあたりをいぢる。
で変わったはず。
ただし、この方法だとなぜか元々頂点カラーの入っているポリゴン(グーローポリゴン)
は変えることができなかった。解決方法は今も模索中。
0431デフォルトの名無しさん
2008/09/10(水) 10:33:18ありがとうございます
D3DRS_BLENDFACTORにて対応することにしました
0432デフォルトの名無しさん
2008/09/10(水) 17:33:59ttp://msdn.microsoft.com/ja-jp/library/cc370842.aspx
が見つからないんですが、どのバージョン落とせば入ってるんでしょうか・・・
February2007を使っています。
どこかでサンプルだけ落とすことって出来るんですか?
あとDirect Sound詳しく解説しているページや書籍があったら教えて頂きたいです。。。
0433デフォルトの名無しさん
2008/09/11(木) 22:48:19描画した結果をキャプチャして一枚のテクスチャにするにはどうすればいいですか?
0434デフォルトの名無しさん
2008/09/11(木) 22:58:040435デフォルトの名無しさん
2008/09/11(木) 23:06:31DrawPrimitiveのものだけでなくスプライトもそのテクスチャに描画されるということですか?
0436デフォルトの名無しさん
2008/09/11(木) 23:09:450437デフォルトの名無しさん
2008/09/11(木) 23:48:51・レンダーターゲットに設定して描画
・GetRenderTarget→StretchRectでフレームバッファからコピー
お好きな方をどうぞ
0438デフォルトの名無しさん
2008/09/14(日) 17:04:12どうすれば直るでしょうか・・・
0439デフォルトの名無しさん
2008/09/14(日) 17:56:34自己完結です。ご迷惑おかけしました
0440デフォルトの名無しさん
2008/09/14(日) 21:24:290441デフォルトの名無しさん
2008/09/14(日) 21:42:21ホントにGPUで計算したほうが結果的にはやくなるのか考えてみよう
0442デフォルトの名無しさん
2008/09/14(日) 22:41:230443デフォルトの名無しさん
2008/09/14(日) 23:53:34どう考えてもCPUの遊んでる時間のほうが長いんじゃね?
0444デフォルトの名無しさん
2008/09/14(日) 23:54:32何いってるんだ・・・?
0445デフォルトの名無しさん
2008/09/15(月) 08:37:450446デフォルトの名無しさん
2008/09/15(月) 10:10:32あくまでキャラのローカル座標程度ならCPUのほうがいいと思うよ
0447デフォルトの名無しさん
2008/09/15(月) 10:42:460448デフォルトの名無しさん
2008/09/15(月) 11:46:160449デフォルトの名無しさん
2008/09/15(月) 12:50:24GPU
0450デフォルトの名無しさん
2008/09/16(火) 20:09:45もしかしてアルファブレンドに対応してるんですか?
SDK見てたらAlphaSourceConstantプロパティとか見つけたけど
また実装されてないとか・・・かな。
0451デフォルトの名無しさん
2008/09/17(水) 12:51:440452デフォルトの名無しさん
2008/09/19(金) 15:43:380453デフォルトの名無しさん
2008/09/19(金) 15:46:510454デフォルトの名無しさん
2008/09/19(金) 15:48:000455デフォルトの名無しさん
2008/09/19(金) 18:01:31つGameProgramingGems1〜6
つGPUGems
つリアルタイムレンダリング
0456デフォルトの名無しさん
2008/09/20(土) 12:08:130457デフォルトの名無しさん
2008/09/20(土) 17:40:28画面全体に画像を表示しようとすると、微妙にゆがんでしまいます。
これはどういったことが原因として考えられるでしょうか。
0458デフォルトの名無しさん
2008/09/20(土) 18:36:450459デフォルトの名無しさん
2008/09/20(土) 19:11:480460デフォルトの名無しさん
2008/09/20(土) 19:14:530461デフォルトの名無しさん
2008/09/20(土) 19:17:320462デフォルトの名無しさん
2008/09/20(土) 19:24:200463デフォルトの名無しさん
2008/09/20(土) 19:25:130464デフォルトの名無しさん
2008/09/20(土) 19:27:41DrawPrimitiveUPとかでやってるのならUVの設定とか頂点位置の設定が怪しいような
0465デフォルトの名無しさん
2008/09/20(土) 19:28:170466デフォルトの名無しさん
2008/09/20(土) 19:42:250467デフォルトの名無しさん
2008/09/21(日) 12:24:040468デフォルトの名無しさん
2008/09/21(日) 22:31:47今まで何の問題もなく快適な速度で動いていた3Dベンチや3Dゲームなんですが、
久々に動かしてみると「3D処理系のゲーム全般含めて…」初めのほうはいいんですど、
途中でいきなり60fps前後のものが30〜20fpsにまでフレームが落ち込んで処理落ちしています。。。
3年ほど前に購入したFFXIベンチ動作認定済みのハイエンド型のノート型なんですけど、
実際に動かしている3Dゲームはこれよりも遥かに要求スペックの低いものです。
おかしなことに2Dゲームのときもこの症状が出てきます。これって何が原因かと思いますか?
ツールを使って自分でチェックしたけど、もうダメ・・・解らなかったです。。。
ビデヲメモリの容量も問題ないと思うし、バス幅も問題ないと思う。CPU&GPUの性能も問題ないと思います。
メインメモリの一部の領域が壊れたら、こんな症状になるのかな?と、思ってMEMTEST86+にてメモリチェック
を行ってみましたが、エラーもなく正常でした。
他に、ゲーム中にいきなりフレームが2/1にまで落ち込む原因は何が考えられるでしょうか?
教えてくだされば助かります。よろしくお願いします。
----------------------------------------------------------------
原因のパソコン : [DynaBook G8 / 型番:X20PDEW]
OS : WindowsXP SP2 / DirectX 9c
詳細仕様 : http://dynabook.com/pc/catalog/dynabook/030512g8/spec.htm
URL : http://dynabook.com/pc/catalog/dynabook/030512g8/hard.htm
----------------------------------------------------------------
0469デフォルトの名無しさん
2008/09/21(日) 22:44:370470デフォルトの名無しさん
2008/09/21(日) 22:46:440471デフォルトの名無しさん
2008/09/21(日) 22:49:53リカバリーしる!
0472デフォルトの名無しさん
2008/09/21(日) 23:01:33長年使ってると色々な所でボトルネックが増えてきて新品時とはありえないほどパフォーマンスが落ちる。
0473デフォルトの名無しさん
2008/09/22(月) 00:52:58それでも「途中で落ちてくる」場合は放熱系の性能が落ちてるかもしれんね
なら分解して掃除機orサポート逝きだな
0474デフォルトの名無しさん
2008/09/22(月) 00:56:100475デフォルトの名無しさん
2008/09/22(月) 09:54:47無いのでしょうか?
全部自前でやるのでしょうか?
0476デフォルトの名無しさん
2008/09/22(月) 10:04:49やり方は複数ある。もちろん自前でやってもいい
0477デフォルトの名無しさん
2008/09/22(月) 13:06:000478デフォルトの名無しさん
2008/09/22(月) 13:11:07てか、最近のサンプルって全部DXUT使って書いてあるよね
0479デフォルトの名無しさん
2008/09/22(月) 13:27:30どうでもいい部分に凝るのはなかなかに楽しい
進捗に貢献しないのでほどほどにしておかないといけないけれど・・・
0480デフォルトの名無しさん
2008/09/22(月) 13:30:370481デフォルトの名無しさん
2008/09/22(月) 15:00:38xファイルを読み込んでプログラムでボーンを動かして
アニメーションしたいと考えてますが
ボーンを動かす方法がわかりません
ヒントください...
0482デフォルトの名無しさん
2008/09/22(月) 15:39:190483デフォルトの名無しさん
2008/09/22(月) 16:12:57ってことなのか
頂点シェーダや固定機能パイプラインを使わないで
CPUでボーンを動かしたいんです。
のどっちなんだ?
0484デフォルトの名無しさん
2008/09/22(月) 17:55:350485デフォルトの名無しさん
2008/09/22(月) 17:57:030486デフォルトの名無しさん
2008/09/22(月) 18:41:22なんとかAllocaterとか使わず
自前で読み込んでやってみたら意外と簡単で感動した
0487デフォルトの名無しさん
2008/09/23(火) 18:02:38//--------------------------------------
// 背景を描画
//--------------------------------------
// Z比較を行なう
pD3DDevice->SetRenderState(D3DRS_ZENABLE, TRUE);
// 元画像に合わせてオブジェクトのスケールを変える
if(m_imgInfoBack.Height != 0) {
aspect = (float)m_imgInfoBack.Width / (float)m_imgInfoBack.Height;
}
vScale.x = aspect;
D3DXMatrixScaling(&mScale, vScale.x, vScale.y, vScale.z);
mWorld = mScale;
// ワールド変換マトリックスをパイプラインにセット
pD3DDevice->SetTransform(D3DTS_WORLD, &mWorld);
これだけじゃ質問の意味が分からないかもしれません・・・、申し訳ない
// 元画像に合わせてオブジェクトのスケールを変える の所の処理について説明してもらえませんか
よろしくお願いします
0488デフォルトの名無しさん
2008/09/23(火) 18:26:420489デフォルトの名無しさん
2008/09/23(火) 19:14:07ありがとうございます
0490デフォルトの名無しさん
2008/09/24(水) 16:13:21最終的にレンダリングされた画面をファイルに保存するときはどのような手順を踏めばよいでしょうか?
0491デフォルトの名無しさん
2008/09/24(水) 16:24:400493デフォルトの名無しさん
2008/09/24(水) 18:19:380494デフォルトの名無しさん
2008/09/24(水) 19:15:33直方体や円柱の林の中を一人称視点で移動できるようなプログラムが
組める位までの知識が欲しいんだけどお勧めの書籍とかある?
当方のスキルは算数は困らん程度に出来るが、数学は微妙だ。
プログラムの言語はCとC++は一通り出来る(はず)。
MFC使って自分用のツールを作る程度のことは出来る。
0495デフォルトの名無しさん
2008/09/24(水) 20:45:39こんなわかりやすいサイトないですか?
0496デフォルトの名無しさん
2008/09/24(水) 22:49:58トランジスタ技術8月号についてきた78k0マイコンにスイッチを付けてコントローラーの様にしようと思ったのですが、
パソコンには仮想comポートとして認識されているため途方に暮れてます。
0497デフォルトの名無しさん
2008/09/25(木) 09:55:44って署名なしは入れにくいか
0498デフォルトの名無しさん
2008/09/25(木) 11:39:02三角関数、ベクトル、行列あたりの知識は絶対必要。
0499デフォルトの名無しさん
2008/09/25(木) 11:46:470500デフォルトの名無しさん
2008/09/25(木) 12:14:29スレが消えてしまったのでこちらに改めて質問させてください
リアルタイムロードシステムの妄想をしているのですが
テクスチャをロードする際にMipMapの低レベルサーフェイスから順に
読み込めないかといろいろ試しているのですがいい方法が浮かびません
デバイスのCreateTextureで必要なバッファを確保し、あとから自力で
DDSファイルなりを読み込んでロックして放り込めば出来るかと思ったのですが
D3DPOOL_DEFAULTで作成したものしかロックできないんだとか
USAGE_DYNAMICは効率が悪いから使いたくないよ・・・・
なんかいい方法ないでしょうか?
0501デフォルトの名無しさん
2008/09/25(木) 12:40:31この考えが間違っている
使え
以上
0502デフォルトの名無しさん
2008/09/25(木) 13:47:54リファレンスのD3DUSAGE_DYNAMICを見直してみたところ、
頂点バッファに関しては配置場所が変わる可能性があるようですが、
テクスチャに関しては特にそういった記述が見当たりませんでした。
つまりテクスチャに関してはDYNAMICにしても、速度的なデメリットは無いんでしょうか?
宜しくお願いしますm(_ _)m
0503デフォルトの名無しさん
2008/09/25(木) 15:15:51っていうか、Lockできる条件を勘違いしてるだろ。
>D3DPOOL_DEFAULT で作成されたテクスチャはロックできない。
(SDKのヘルプより)
0505デフォルトの名無しさん
2008/09/25(木) 16:05:47来月始め頃にちょうどいいのが出るような気がした
0506デフォルトの名無しさん
2008/09/25(木) 16:08:09ttp://www.oreilly.co.jp/books/9784873113777/
もちろん1行も読んでないので、どんなもんかはわからん。
0507デフォルトの名無しさん
2008/09/25(木) 16:12:260508500
2008/09/25(木) 16:20:39低解像度でもいいので出来る限り早く読み込んで表示したいからです
それから
>D3DPOOL_DEFAULTで作成したものしかロックできないんだとか
は
>D3DPOOL_DEFAULTで作成したものは、USAGE_DYNAMICを指定しないとロックできないんだとか
の間違いでした。すみません
0509デフォルトの名無しさん
2008/09/25(木) 17:00:08D3DPOOL_DEFAULTならLockするより、UpdateTextureや
UpdateSurfaceを使った方が速い。
0510500
2008/09/25(木) 17:45:03UpdateSurfaceでやると、ロックするのと違いなぜ速くなるのでしょうか?
システムメモリ上にもテクスチャを作ることになりそうであまりやりたくないかなと^^;
また、D3DXLoadSurfaceFromMemoryと言う関数を見つけたのですが、
これで代用することもできますでしょうか?
0511デフォルトの名無しさん
2008/09/25(木) 17:58:410512デフォルトの名無しさん
2008/09/25(木) 19:22:44UpdateTextureはDMAが使用される。
転送速度そのものは、DMAを使おうが使うまいが大差ないが
DMAの場合は転送中にCPUがフリーになって他の処理ができる。
0513デフォルトの名無しさん
2008/09/25(木) 21:32:03それならMANAGEDでいいですやんって話
0514デフォルトの名無しさん
2008/09/25(木) 23:44:30これは無理なことなんでしょうか?
0515デフォルトの名無しさん
2008/09/26(金) 02:42:55音が鳴らない・・・
0516デフォルトの名無しさん
2008/09/26(金) 07:46:42音だけ鳴らす最小限のサンプルを見つけて、そこからチェックしてみたら?
0517デフォルトの名無しさん
2008/09/26(金) 07:49:48DirectSound自体はDirectX8の頃から変わってないし最新SDK使ってても普通に鳴るぞ。
0518デフォルトの名無しさん
2008/09/26(金) 12:12:09何でも人のせいにするんじゃないよ
0519デフォルトの名無しさん
2008/09/26(金) 12:18:32VistaとDirectSoundの相性関係でうまく再生できてない
って事はない?
何れにしろ再生できるはず
0520デフォルトの名無しさん
2008/09/26(金) 12:54:06自分のプログラムを疑わず他人のせいにする。
プログラマ適性0だから、そのそも足を洗うのが正しい選択だろう。
0521デフォルトの名無しさん
2008/09/26(金) 17:27:240522デフォルトの名無しさん
2008/09/26(金) 17:41:30日本語ドキュメントさえあればそれでもいいんだけど
XAudio2ってどうなってんの?未だ未完成だよね
0523デフォルトの名無しさん
2008/09/26(金) 17:46:29あれってDirectXの機能じゃないですよね?
自分で実装する領域ですよね?
素人ですまそ。
0524デフォルトの名無しさん
2008/09/26(金) 17:48:160525デフォルトの名無しさん
2008/09/26(金) 17:50:46そうですよね。ありがとうございます。
例えば人体のモデルがあったとしても
ボーンを入れるならボーンごとにモデルを分けないと
いけないってことですよね。
0526デフォルトの名無しさん
2008/09/27(土) 15:14:37頂点バッファやインデックスバッファ自体はひとつでもいい。
各頂点にボーンの番号付けて、頂点シェーダでそれ見て変換する。
0527デフォルトの名無しさん
2008/09/27(土) 15:29:06別のボーンに限らずモデル描画自体は自分で全部実装する部分なのでボーンだけが特別なわけじゃない。
0528デフォルトの名無しさん
2008/09/27(土) 15:58:52デバイスタイプをHALからREFに変えたら画像がはっきりするのですが、
かなり重たくなってしまいます。
REFを使わないでモアレを消す方法を知っている方がいればお願いします。
PCは「Let'Note」で「directx9 」使ってます。
0529デフォルトの名無しさん
2008/09/27(土) 16:48:550530デフォルトの名無しさん
2008/09/27(土) 16:52:16現状でモアレを消すならミップマップを使う、モアレの出ないような絵にする
0531デフォルトの名無しさん
2008/09/27(土) 17:29:54こんなに変わるものなんですね・・・
ミップマップの方も挑戦しようと思います。
アドバイスくれた方ありがとう御座いました m(>_<)m
0532デフォルトの名無しさん
2008/09/27(土) 20:38:37デバイスの初期値もあまりあてにはならない。
全てのステートを起動時に初期化するべき。
あとビデオカードのユーティリティで強制的に
異法性フィルタやMSAAとかがONになっている可能性もある。
0533468
2008/09/28(日) 00:10:55レスが遅れてしまいましてすみません。
貴重なご意見をありがとうございました。
皆さんの意見を参考に、こちらで色々と作業をやってみたいと思います。
原因解消の復旧というか、最後の手段はやはりOSの再セットアップしかなさそうですね。
がっばってみます。
0535デフォルトの名無しさん
2008/09/29(月) 18:24:39皆さんはどんなふうに覚えてますか?
0536デフォルトの名無しさん
2008/09/29(月) 18:26:360537デフォルトの名無しさん
2008/09/29(月) 18:29:14SentSentBampTool ???
0538デフォルトの名無しさん
2008/09/29(月) 18:39:28覚えない
いつもMSDNを参照してる
0539デフォルトの名無しさん
2008/09/29(月) 18:53:09関数を沢山覚える必要はないが、
貴方のやりたい事にもよるけど、例えば
マルチパスレンダリングの手順などは覚えていた方がいいと思う。
皆はどう思う?
0540デフォルトの名無しさん
2008/09/29(月) 21:32:07やっているのですが、上手く表示が出来なくて困っています。
DrawPrimitiveにてD3DPT_TRIANGLELISTを指定して
4つ三角形をテクスチャを貼り付けてレンダリングしようと
しているのですが、D3DRS_ZENABLE=TRUE , D3DRS_ZWRITEENABLE=TRUE
とした時にテクスチャがうまく貼り付けられなくて困っています。
D3DRS_ZENABLE=FALSE とすると、うまく貼り付けられるのですが
今度は各三角形を個別に描画したような絵になってしまいます。
D3DRS_ZENABLE=TRUE, D3DRS_ZWRITEENABLE=TRUEでも、D3DRS_ZFUNCに
D3DCMP_ALWAYS とするとテクスチャはうまく貼り付けられるのですが、
D3DRS_ZENABLE=FALSE とした場合同様、各三角形を個別に描画した
ような絵になってしまいます。
よろしくおねがいします。
0541デフォルトの名無しさん
2008/09/29(月) 22:29:13まずZENABLE=FALSEの状態で正しく描画されるようにしよう
うまく描けたら、ZENABLE=TRUEの状態でもいけるように直す
テクスチャ座標がまずいんでない?
0542デフォルトの名無しさん
2008/09/29(月) 22:39:00ありがとうございます。 こんな感じで定義しています。
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ | D3DFVF_TEX1 )
typedef struct {
FLOAT x, y, z;
FLOAT u,v;
} CUSTOMVERTEX;
CUSTOMVERTEX vertices[] = {
{ 0.0f, 0.5f, -0.5f, 0.0f, 0.0f },
{ 0.0f, 0.5f, 0.5f, 1.0f, 0.0f },
{ 0.0f, -0.5f, -0.5f, 0.0f, 1.0f },
{ 0.0f, 0.5f, 0.5f, 1.0f, 0.0f },
{ 0.0f, -0.5f, 0.5f, 1.0f, 1.0f },
{ 0.0f, -0.5f, -0.5f, 0.0f, 1.0f },
{ -0.5f, 0.5f, 0.0f, 0.0f, 0.0f },
{ 0.5f, 0.5f, 0.0f, 1.0f, 0.0f },
{ -0.5f, -0.5f, 0.0f, 0.0f, 1.0f },
{ 0.5f, 0.5f, 0.0f, 1.0f, 0.0f },
{ 0.5f, -0.5f, 0.0f, 1.0f, 1.0f },
{ -0.5f, -0.5f, 0.0f, 0.0f, 1.0f }
};
よろしくお願いします。
0543デフォルトの名無しさん
2008/09/29(月) 23:18:37すみません。
ZENABLE=FALSE の時には正しく描画されているように見えます。
ただ、1つ1つの三角形を個別にレンダリングしたような感じになっ
てしまいます。(陰影などが全く反映されません)
よろしくお願いします。
0544デフォルトの名無しさん
2008/09/29(月) 23:47:55ポリゴン自体は描けてる?
Zバッファのクリアをミスってるとか
0545デフォルトの名無しさん
2008/09/29(月) 23:51:190546デフォルトの名無しさん
2008/09/29(月) 23:57:28>>545
ありがとうございます。
はい、テクスチャがうまく描画されないだけみたいです。
Zバッファのクリアはとくにしていないのですが、どうやれば
良いでしょうか?
はい、ライティングは無効にしてあります。
SetRenderState( D3DRS_CULLMODE, D3DCULL_NONE );
SetRenderState( D3DRS_LIGHTING, FALSE );
SetRenderState( D3DRS_ZENABLE, TRUE );
SetRenderState( D3DRS_ZFUNC, D3DCMP_LESSEQUAL );
SetRenderState( D3DRS_ZWRITEENABLE, TRUE );
SetRenderState( D3DRS_ALPHATESTENABLE, FALSE );
SetRenderState( D3DRS_SPECULARENABLE, FALSE );
SetRenderState( D3DRS_DITHERENABLE, FALSE );
SetRenderState( D3DRS_FOGENABLE, FALSE );
SetRenderState( D3DRS_SPECULARENABLE, FALSE );
SetRenderState( D3DRS_RANGEFOGENABLE, FALSE );
SetRenderState( D3DRS_STENCILENABLE, FALSE );
よろしくお願いします。
0547デフォルトの名無しさん
2008/09/30(火) 00:10:28>>545
ありがとうございます 動きました!
Zバッファをクリアする必要があることを知りませんでした。。。orz...
本当にありがとうございました。
0548デフォルトの名無しさん
2008/09/30(火) 13:02:49DirectXで3Dゲームを作る場合、3Dグラフィクス自体は(キャラクターのモーションなど)専用のグラフィックツールで作ると言う形なのでしょうか?
0549デフォルトの名無しさん
2008/09/30(火) 13:09:520550デフォルトの名無しさん
2008/09/30(火) 17:44:471>c:\documents and settings\^^^^^^\デスクトップ\src\test90walking\test1\../../class/classlib.h(70) : fatal error C1083: include ファイルを開けません。'dpaddr.h': No such file or directory
これと同じエラーが20個もでてコンパイルできないのですがどう対処すればいいのでしょうか・・・?
3Dリアルタイムアニメーションという書籍のサンプルです。
0551550
2008/09/30(火) 17:45:250552デフォルトの名無しさん
2008/09/30(火) 17:56:38Direct3D 8 とそれ以前のすべてのバージョン
Direct3D RM
DirectAnimation
DirectMusic
DirectInput7 およびそれ以前のすべてのバージョン
DirectPlay
DirectPlayVoice
DirectX 8 時代の HRESULT 変換ルーチン
Managed DirectX サンプルとドキュメント
これらのコンポーネントをご利用になりたいデベロッパーは、MSDN から入手可能な August 2007 DirectX SDK をダウンロードする必要があります。
0553デフォルトの名無しさん
2008/09/30(火) 17:56:48DirectX8のSDKにあるんじゃないかな。
0554デフォルトの名無しさん
2008/09/30(火) 18:09:13インストールしてみます
0555デフォルトの名無しさん
2008/09/30(火) 22:17:420556デフォルトの名無しさん
2008/09/30(火) 22:20:240557デフォルトの名無しさん
2008/10/01(水) 00:45:19どんなグラフィックソフト使ってる?
0558デフォルトの名無しさん
2008/10/01(水) 07:37:300559デフォルトの名無しさん
2008/10/01(水) 08:36:05俺はBlender
0560デフォルトの名無しさん
2008/10/01(水) 09:14:540561デフォルトの名無しさん
2008/10/01(水) 09:39:52使い切れずに放り投げるには高すぎるからなw
0562デフォルトの名無しさん
2008/10/01(水) 09:50:07ZBrush+3DSMAXが最強な希ガス
0563デフォルトの名無しさん
2008/10/01(水) 10:30:150564デフォルトの名無しさん
2008/10/01(水) 10:35:510565デフォルトの名無しさん
2008/10/01(水) 10:42:11LightWaveで作ったアニメーションをUViewで読み込んでOBJ形式で描きだして
DirectXで読み込む方法を使っているのですがUViewは現在販売していないらしく
他のソフトで代用して欲しいと最後に筆者が記述していたのですが
他のソフトってどんな物があるのですか?
何個か教えてもらえたら嬉しいです!
0566デフォルトの名無しさん
2008/10/01(水) 11:41:51じゃなくてOBJ形式をXファイルに変換とか?
何れにしてもLightWaveの標準機能で出来た希ガス
0567デフォルトの名無しさん
2008/10/02(木) 10:46:19これらの処理をID3DXEffectを使用しないで自前で実装することは可能でしょうか?
リファレンスを見ているのですが、変数を共有する方法は全く見当たりませんし
ステートブロックを自前で管理したとしても、API呼び出しは回数は減らせないですよね?
ID3DXEffectを使用しないという人は結構いると思うのですが、この辺はどうやって解決しているんでしょうか・・・
宜しくお願いしますm(_ _)m
0568567
2008/10/02(木) 10:51:24これに関しては何とかなりそうです。
0569デフォルトの名無しさん
2008/10/02(木) 11:06:450570デフォルトの名無しさん
2008/10/02(木) 12:05:450571デフォルトの名無しさん
2008/10/02(木) 16:20:40付属してるバージョンのSDKを知ってる方はいませんか?
0572デフォルトの名無しさん
2008/10/02(木) 16:34:22シェーダー定数の共有のさせ方わっかんねーwww
燃えてきたぜ
0573567
2008/10/02(木) 17:22:54レジスタを直接指定すれば共有できることは分かった
取りあえずこれでいこうと思います。もっといい方法があったら教えていただけると助かりますm(_ _)m
0574デフォルトの名無しさん
2008/10/02(木) 22:51:571、ID3DXEffectPoolオブジェクトを作成(D3DXCreateEffectPoolを使用)
2、sharedをつけた変数を宣言したFXファイルを作成
3、共有したいFXファイル全てに2のFXファイルをインクルード
4、3のFXファイルをコンパイル時、D3DXCreateEffectに1のID3DXEffectPoolオブジェクトを引数で渡す。
0575デフォルトの名無しさん
2008/10/02(木) 22:59:03ID3DXEffectを使わないで変数の共有をしたいって言ってるのか?
そりゃー、逆アセンブルしてD3DXがどう解決しているか確認してみりゃいいんじゃね
まーEffectPoolなんて使ってる以上、力技だろってのは想像がつくがな
0576デフォルトの名無しさん
2008/10/02(木) 23:04:30結局描画時に全部毎回マッチングしてレジスタに設定してるんじゃ無いっけ?
あくまでユーザー側からは同じ変数のように見えているだけで。
0577デフォルトの名無しさん
2008/10/03(金) 08:32:57マジすかw
だとしたら効率的には何の意味もないんだな^^;
0578デフォルトの名無しさん
2008/10/03(金) 10:58:52頂点処理はCPUで実行されると思いますが、その場合に
D3DPOOL_DEFAULTを指定して作成したっ頂点データは
システムメモリ上に配置される可能性が高いんでしょうか?
システムメモリ上に配置されるということはレンダリングの度にシステムメモリから
ビデオカードへのデータ転送が発生しているのでしょうか?
0579デフォルトの名無しさん
2008/10/03(金) 13:08:38そういえば、頂点シェーダー(VS)とピクセルシェーダ(PS)を別々にビルドしてセットする場合って、
VSとPSそれぞれの定数テーブルに値をセットする必要があると思うけど
(VSとPSでレジスタ空間が違うからなのか?違うよね?)
この辺もD3DXEffect系使った時って意識しないから、やっぱD3DXEffect系は内部でいろいろやってるのか…
0580デフォルトの名無しさん
2008/10/03(金) 20:26:43最後にこのエラーだけ解決できません・・・。
対処方法を教えていただけませんか?
0581デフォルトの名無しさん
2008/10/03(金) 20:32:44頂点変換をハードウェアで対応してなければ
システムメモリから転送するしかない。
RadeonHD3450が5000円で買えるんだから
素直にDirectX10対応のビデオカード買えばいい。
>>579
かといって自分で全部管理した方が速くなるのか?という話になると
どちらかといえば遅くなるだろうから素直にID3DXEffect使う方がいい。
すでにDirectX10ではそれしかないし。
0582580
2008/10/03(金) 20:37:52return false;
return true;
}
コードです
0583デフォルトの名無しさん
2008/10/03(金) 20:55:18使ってるSDKが新しすぎるんじゃね?
よく分からんわ
0584デフォルトの名無しさん
2008/10/03(金) 22:28:42それは、dxfile.hに定義がある。
使いたければ、includeしろ。
てか、それ間違ってるんで
#include <d3dx9xof.h>
を追加して
D3DXF_FILEFORMAT_BINARYを使え。
0585デフォルトの名無しさん
2008/10/03(金) 22:33:51独学?
0586デフォルトの名無しさん
2008/10/03(金) 22:45:020587デフォルトの名無しさん
2008/10/03(金) 23:00:300588デフォルトの名無しさん
2008/10/03(金) 23:05:32あと歳は聞くな
0589デフォルトの名無しさん
2008/10/03(金) 23:13:15じじい言うな
0590デフォルトの名無しさん
2008/10/04(土) 00:11:11それとも、各バージョンごとで互換性が低いのでしょうか。
0591デフォルトの名無しさん
2008/10/04(土) 01:15:570592デフォルトの名無しさん
2008/10/04(土) 01:23:05友達にプログラムを渡したら二人が二人ともd3dx9_xx.dllがないとエラーが出るといっていたので、
とりあえず一番に、最新のDirectXを入れるように言ったのですが、
プログラム側で選択してもよいものなのかと疑問に思ったのです。
0593デフォルトの名無しさん
2008/10/04(土) 01:28:19>プログラム側で選択してもよいものなのかと疑問に思ったのです。
それをやれるだけのスキルがあるならやればいいと思うけど、
「やってみたいんですけどうまくいきません」というのならやるなと言いたい。
0594デフォルトの名無しさん
2008/10/04(土) 01:31:04Web Installerで全部のd3dx9_xx.dllをインストールしてくれるから、これ実行してもらうといいよ。
http://www.microsoft.com/downloads/details.aspx?familyid=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&displaylang=ja
0595デフォルトの名無しさん
2008/10/04(土) 01:37:51>>594のページを教えて、インストールさせようと思います。
ありがとうございました。
0596デフォルトの名無しさん
2008/10/04(土) 05:27:320597デフォルトの名無しさん
2008/10/04(土) 07:23:51自分のPCにはいってる一番番号の大きいdllを
exeと同じフォルダに入れて渡せば動くよ
0598デフォルトの名無しさん
2008/10/04(土) 10:49:32WinG〜GameSDK
0599デフォルトの名無しさん
2008/10/04(土) 13:29:21D3DXVECTOR3 pos;
D3DCOLOR color;
D3DCOLOR specular;
D3DVALUE tu;
D3DVALUE tv;
} D3DLVERTEX, *LPD3DLVERTEX;
#define D3DFVF_LVERTEX (D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_SPECULAR | D3DFVF_TEX1)
_D3DLVERTEX についている_の意味ってなんですか?
0600デフォルトの名無しさん
2008/10/04(土) 13:44:02よそと名前がぶつかったら困るでしょ。
そのために自分たちだけで決めたルール
0601デフォルトの名無しさん
2008/10/04(土) 14:30:43ありがとうございjます
0602デフォルトの名無しさん
2008/10/04(土) 22:58:01ウィンドウサイズの変更イベント OnSize() の中で、
Reset() を使っているのですが、D3DERR_INVALIDCALL
というエラーが出て先に進めなくてこまっています。orz...
D3DPRESENT_PARAMETER の中身は、
BackBufferWidth 0
BackBufferHeight 0
BackBufferFormat D3DFMT_X8R8G8B8
BackBufferCount 0
MultiSampleType D3DMULTISAMPLE_NONE
MultiSampleQuality 0
SwapEffect D3DSWAPEFFECT_DISCARD
hDeviceWindow = GetSafeHwnd() で取得したハンドル
Windowed 1
EnableAutoDepthStencil 1
AutoDepthStencilFormat D3DFMT_D16
Flags 0
FullScreen_RefreshRateInHz 0
PresentationInterval 0
です。
よろしくお願いします m(_ _)m
0603デフォルトの名無しさん
2008/10/04(土) 23:02:450604デフォルトの名無しさん
2008/10/04(土) 23:23:42ありがとうございます。
D3DERR_INVALIDCALLが発生する原因がわかりました。
リソースをD3DPOOL_DEFAULTで確保するとダメみたいです。
OnSize() でウィンドウサイズを可変した時に3D画像のアスペクト比が
変わってしまうのを防ぎたかったのですが、Resetを呼び出してもダメ
みたいです。
アスペクト比を固定するにはどのようにすれば良いでしょうか?
よろしくお願いします。
0605デフォルトの名無しさん
2008/10/04(土) 23:32:340606デフォルトの名無しさん
2008/10/04(土) 23:39:07ありがとうございます。
早速ためしてみます。
0607デフォルトの名無しさん
2008/10/04(土) 23:41:30何がしたいのかわからないんだが
ウインドウサイズが変わった時点で
変更後のサイズからアス比を再計算して
射影行列を作る時に指定しているアス比を変更するだけじゃだめなのか?
D3DXMatrixPerspectiveFovLHとかの話
ついでに流れ的に関係あるようでないような質問
テクスチャとかメッシュとかはパフォーマンス的には置いといて
デバイスのロストを気にしなくても良い様にできるけど
ID3DXEffectだけは対応しなくちゃいけない感じなんだが
これって何かの設定で対応しなくて良いようにできるものなの?
0608デフォルトの名無しさん
2008/10/04(土) 23:50:090609デフォルトの名無しさん
2008/10/05(日) 00:23:15後から確保した物を使えばリセットする必要性は皆無
0610デフォルトの名無しさん
2008/10/05(日) 00:48:32ID3DXEffectの仕様として管理下はサポートされていないので
それは無理だろ。
ただ、ロスト対応が必要な理由として、シェーダ引数のテクスチャと
ステートブロックがあるからだろうと考えられるので
エフェクトに渡すテクスチャは管理下のみ、
pass内でステートの変更はしない、ステートブロックは使わない、などの
対策をすれば、大丈夫になるかもね。
0611デフォルトの名無しさん
2008/10/05(日) 00:51:57WindowモードのWindowを他方のWindowへ移動すると
presentが遅くなるのはどうしようも無いですか?
0612デフォルトの名無しさん
2008/10/07(火) 16:03:48{
RECT Rect;
SetRect(&Rect, x, y, CW_USEDEFAULT, CW_USEDEFAULT);
pFont->DrawTextA(text, -1, &Rect, DT_LEFT | DT_NOCLIP, Color);
}
の
pFont->DrawTextA(text, -1, &Rect, DT_LEFT | DT_NOCLIP, Color);
この部分で
error C2660: 'ID3DXFont::DrawTextA' : 関数に 5 個の引数を指定できません。
と言うエラーが出てしまいます
自力で調べた所DirectX SDKの仕様が変わったためにコンパイルできないらしいと言うところまではわかったんですが
どのように書き直せば良いのかわかりません
どのように直せば良いのでしょうか
ちなみにSDKはaugust 2007です
よろしくお願いします
0613デフォルトの名無しさん
2008/10/07(火) 16:14:53最新のSDKのマニュアルとサンプルを見るべし
0614612
2008/10/08(水) 14:40:09やってみます
0615デフォルトの名無しさん
2008/10/08(水) 15:35:55ゲームをつくりながら解説していくようなサイトを探しています
オススメがありましたら教えてください
C++とWINAPIの基本は理解しています
0616デフォルトの名無しさん
2008/10/08(水) 15:36:410617デフォルトの名無しさん
2008/10/08(水) 16:12:12どういうときに失敗するのでしょうか。
0618デフォルトの名無しさん
2008/10/08(水) 18:39:17Aquireは排他制御のためのメソッドだから、非排他設定なら必要ないだろう。
0619617
2008/10/08(水) 21:22:12少なくともサイトの管理人の環境では、実行できてるってことですよね?
0620デフォルトの名無しさん
2008/10/08(水) 21:40:22Acquireを呼んでいるのと、Acquireが成功するかは別問題。
MSのサンプルだってAcquireは呼んでいる。
でも、それが成功したかなんて気にしていない。
0621617
2008/10/08(水) 21:54:33Acquireの戻り値として、
>DIERR_OTHERAPPHASPRIO 他のアプリケーションの優先レベルの方が高いので、この呼び出しを実行できない。
>この値は、標準の COM 戻り値である E_ACCESSDENIED に等しい。このエラーが返されるのは、
>デバイスに対するアプリケーションのアクセス権がフォアグラウンド アクセス権であるにもかかわらず、
>バックグラウンドであるときにデバイスを取得しようとした場合である。
とありました。WM_CREATEの処理内で呼び出していたために失敗していたようです。
大変お騒がせしました。まさか日本語ページの方が詳しいなんて・・・
0622デフォルトの名無しさん
2008/10/09(木) 00:11:47DirectSoundCreate8からDirectSoundCreate9になるのかと思ったんですがないといわれます。
ライブラリの追加はdsound.lib dxguid.lib winmm.lib だけでいいんですか?
0623デフォルトの名無しさん
2008/10/09(木) 02:15:01DirectXで作られたゲームを公開する場合、マイクロソフトの著作権表記などは
必要なのでしょうか?
ttp://www.microsoft.com/japan/msdn/directx/japan/license/eula.aspx
ttp://www.microsoft.com/japan/msdn/directx/japan/license/dx_license.aspx
一応上を読んでみたのですが、ごちゃごちゃ書いてあって正直よくわかりません。
0624デフォルトの名無しさん
2008/10/09(木) 08:26:40dsound.hの中を見ればわかるよ
DIRECTSOUND_VERSION >= 0x0800
なので8も9も同じ
libはそれでいいんじゃない
未解決とか言われたら追加すればいい
0625デフォルトの名無しさん
2008/10/09(木) 10:12:20DirectX8で作られた古いソースが出てきたのですが、現在PCには9.0cのSDKが入っています。
上記ソースをコンパイルしようとしたところ
#include <d3d8.h>
#include <d3dx8.h>
こいつらがないと言われてしまったのですが、DirectX8のSDKをインストールしないとダメってことでしょうか。
(普段は9のプログラムを組んでいるので)競合しそうで怖いのですが、何か良い手はありますでしょうか
0626デフォルトの名無しさん
2008/10/09(木) 10:19:36で、includeやlibは新しいバージョンを優先しとけばないものだけ古いものから参照される
0627デフォルトの名無しさん
2008/10/09(木) 12:46:20>>552
0628デフォルトの名無しさん
2008/10/09(木) 13:06:39オプションのVC++ディレクトリを
C:\Program Files\Microsoft DirectX SDK (March 2008)\Include
C:\Program Files\Microsoft DirectX SDK (August 2007)\Include
・
・
こんな感じにしてるが心配ならDX8のときは順番を入れ替えればいいんじゃない
0629デフォルトの名無しさん
2008/10/09(木) 15:14:18どうやってピクセル単位の座標変化を求めればいいでしょうか。
0630デフォルトの名無しさん
2008/10/09(木) 15:59:320631デフォルトの名無しさん
2008/10/09(木) 16:09:01つまりプログラムのミスですか。確認してみますorz
0632デフォルトの名無しさん
2008/10/09(木) 17:09:170633629
2008/10/09(木) 19:43:32スクリーン上で1000px水平に移動させると、移動量の合計が600〜800くらいになっています。
下がそのコードなのですが、どこか間違っているところがありますか?
void MouseDevice::UpdateState()
{
HRESULT hr;
if (hr = pDevice_->Acquire(), FAILED(hr))
{
LOG_WARN("IDirectInputDevice8::Acquire 非アクティブになった?");
return;
}
DIMOUSESTATE mouseState;
if (hr = pDevice_->GetDeviceState(sizeof(mouseState), &mouseState), FAILED(hr))
{
LOG_ERROR("IDirectInput8::GetDeviceState");
return;
}
cursorPos_.x = clamp(cursorPos_.x + mouseState.lX, 0L, 1279L);
cursorPos_.y = clamp(cursorPos_.y + mouseState.lY, 0L, 1023L);
//SetCursorPos(cursorPos_.x, cursorPos_.y);
POINT pt;
GetCursorPos(&pt);
std::stringstream ss;
ss << "MOUSE " << cursorPos_.x << "," << cursorPos_.y << " (" << pt.x << "," << pt.y << ")";
LOG_INFO(ss.str().c_str());
}
0634デフォルトの名無しさん
2008/10/09(木) 20:07:33関係ないけど ,演算子をそんな風に使う人は初めて見た
0635デフォルトの名無しさん
2008/10/09(木) 20:10:37WAVEFORMATEX FEX;
ZeroMemory(&FEX, sizeof(WAVEFORMATEX));
FEX.nSamplesPerSec = 44100;
ここで変数をみても44100が入ってなくて0なんですけど
0636デフォルトの名無しさん
2008/10/09(木) 20:12:16試してないのでわからんけど、マウスカーソルの加速の分がずれてるとか・・・?
0637デフォルトの名無しさん
2008/10/09(木) 20:25:37ありがとうございます。「directinput マウス 加速」で検索したら解決しました。
DirectInputではマウスドライバから直接データを得るので、ウィンドウズのカーソルを意識するアプリケーションは
Win32関数かメッセージを使うように書いてありました。
0638デフォルトの名無しさん
2008/10/09(木) 20:30:29//
//角度はRAD
HRESULT CDXDevice::SetWorldTransformLW(D3DVECTOR &l_rot, D3DVECTOR &w_trans, int index)
{
D3DXMATRIX mat,mat2;
D3DXMatrixIdentity(&mat);
if (l_rot.x) {
D3DXMatrixRotationX(&mat2, l_rot.x);
D3DXMatrixMultiply( &mat, &mat, &mat2);
}
if (l_rot.z) {
D3DXMatrixRotationZ(&mat2, l_rot.z);
D3DXMatrixMultiply( &mat, &mat, &mat2);
}
if (l_rot.y) {
D3DXMatrixRotationY(&mat2, l_rot.y);
D3DXMatrixMultiply( &mat, &mat, &mat2);
}
D3DXMatrixTranslation( &mat2, w_trans.x, w_trans.y, w_trans.z);
D3DXMatrixMultiply( &mat, &mat, &mat2);
return SetWorldTransform( &mat, index);
}
行列を掛ける順番って x z yなんですか?
0639デフォルトの名無しさん
2008/10/09(木) 20:36:350640デフォルトの名無しさん
2008/10/09(木) 21:37:530641デフォルトの名無しさん
2008/10/09(木) 23:19:49どのような方法がありますでしょうか?
普通にウィンドウにコントロールを作成するだけでは
DIRECTX側のpresentで上書きされてしまい、表示することができません。
ウィンドウモードならば、ウィンドウ作成時にWS_CLIPCHILDRENを指定することで
テキストボックスを部分のみをクリッピングすることができたのですが
フルスクリーンモードでは、当然上書きされてしまいます。
フルスクリーンモードでも通用する、何か良い方法はありませんでしょうか?
0642デフォルトの名無しさん
2008/10/09(木) 23:25:120643デフォルトの名無しさん
2008/10/10(金) 00:00:030644デフォルトの名無しさん
2008/10/10(金) 00:01:41上書きしないところに描かなければ良いだけ
そんな当たり前なことを聞く意味が分からない
0645デフォルトの名無しさん
2008/10/10(金) 00:11:34日本語でおk
0646デフォルトの名無しさん
2008/10/10(金) 00:14:580647デフォルトの名無しさん
2008/10/10(金) 00:21:06上書きしなきゃいいって問題じゃない。
GDIサーフェスについて勉強してこい。
0648デフォルトの名無しさん
2008/10/10(金) 00:34:59いくら無能でもその程度のことぐらい理解出来るだろ。
0649デフォルトの名無しさん
2008/10/10(金) 01:31:480650デフォルトの名無しさん
2008/10/10(金) 07:31:36構文
HRESULT SetDialogBoxMode( BOOL bEnableDialogs );
0651デフォルトの名無しさん
2008/10/10(金) 13:22:58どうやって確認してるの
ブレークポイント?
0652デフォルトの名無しさん
2008/10/10(金) 23:28:45GetRenderTargetで成功しているコピー元とコピー先と同じの使ってるから何とかなると思ったが・・・
しかもMSDNの言ってることがよー分からん。RTテクスチャって何ですか?単純なオフスクリーンってなんですか・・・
天才が居たら助言頼む
0653デフォルトの名無しさん
2008/10/11(土) 00:31:440654デフォルトの名無しさん
2008/10/11(土) 00:47:19>>642
DXUTでしょうか? ちょっと調べてみます。
>>643
自前で解像度変更して、ごまかすことも考えたのですが
強制終了した場合に解像度が戻らなくなってしまったりしそうで悩んでいます
>>644
>>648
言ってることはわかりますし、以前にその方法も考えたのですが
コントロールが単純な位置にあり、少ない方形でまとめられるのならまだしも、
「コントロールの位置が固定でなく、しかも複数が散らばる」という
状況ではどうしようもなくなってしまうので止めました。
>>649
テキストボックスから入力が必要な場面のみダイアログを描画、という
方法も考えたのですが、できるだけ1ウィンドウでやりたいと思っております。
(どうしようもなかったら、ダイアログを出そうかとも思っていますが…)
>>650
使用してみましたが、やはりフルスクリーンでは効果がないようです。
色々と調べてみた限りでは、ダイアログやメニューに対して効果があるようですが
ウィンドウに、子ウィンドウとして貼り付けたコントロールにも使用できるのでしょうか?
0655デフォルトの名無しさん
2008/10/11(土) 00:55:41そもそもプログラムを組むのを諦めろ。
0656デフォルトの名無しさん
2008/10/11(土) 01:01:18逆に考えるんだ
ダイアログに効果があるのならダイアログに貼り付ければいいだろ
0657デフォルトの名無しさん
2008/10/11(土) 01:21:36>>648で言われたようにクリッピング的な処理は調べてみたのですけども、
今回の条件の場合には適切な方法なのでしょうか?
presentにはrect単位で転送領域を区切る方法などもあるようです。
ですが、仮にど真ん中にBOXがあったら、これを避けるように方形で区切ると
上下左右の4個の領域に区切るということになり、
仮にこのコントロールが複数ある場合には、非現実的に思えました。
(見当違いな意見を言っているようでしたら、すいません)
>>656
やはり難しいようなので、ダイアログを使って別ウィンドウに出すか、
もしくは最初に言われたDXUTとやらの勉強を始めてみたいと思います。
一応、presentの「後に」GDIでコントロールの画像を転送する、
という方法でトライしてみましたが、どうもちらついたりしてダメみたいです。
0658デフォルトの名無しさん
2008/10/11(土) 02:16:27その程度のことが非現実的だったら、
Windowsが行っているGUIのクリッピングは超常現象なのか?
0659デフォルトの名無しさん
2008/10/11(土) 02:50:440660デフォルトの名無しさん
2008/10/11(土) 20:30:03sizeof(WORD)*m_index_count,
0,
D3DFMT_INDEX16,
(fVRAM ? D3DPOOL_MANAGED : D3DPOOL_SYSTEMMEM),
&m_index,
NULL);
最初のsizeof(WORD)*m_index_count,って
*は乗算ですか?ポインタですか?
初心者すぎる質問ですいません。。。。。
0661デフォルトの名無しさん
2008/10/11(土) 20:48:44つ、釣られないぞ・・・・。
0662デフォルトの名無しさん
2008/10/11(土) 21:08:240663デフォルトの名無しさん
2008/10/11(土) 21:08:27お前に必要なのはCの参考書だ。
0664デフォルトの名無しさん
2008/10/11(土) 21:18:22次の方どうぞ
0665デフォルトの名無しさん
2008/10/12(日) 09:18:14{
HRESULT hr;
LPVOID p;
//有効なデータ個数
m_point_active = point_num;
//バッファをロック
hr = m_vertex->Lock( 0, 0, (void**)&p, 0 );
if (FAILED(hr))
return hr;
//copy
CopyMemory( p, lpvertex, (DWORD)(point_num * m_pointsize));
//バッファのロックを解除
hr = m_vertex->Unlock();
return hr;
}
return hr と return S_OKの違いってなんですか? 調べても分からなかったので教えてください
0666デフォルトの名無しさん
2008/10/12(日) 09:28:510667デフォルトの名無しさん
2008/10/12(日) 09:34:15hrとS_OKの違いが分からないです;;。
MSDNライブラリーでHRESULTで検索しても解りませんでした
0668デフォルトの名無しさん
2008/10/12(日) 09:36:40まず入門書でもいいから
Cの本を一冊以上読破して
C++の本を一冊以上読破して
Win32の本を一冊以上読破してから来い
0669デフォルトの名無しさん
2008/10/12(日) 10:05:26S_OK 定数
hr 変数
0670デフォルトの名無しさん
2008/10/12(日) 10:50:59トランスフォーム済み頂点を使って、たとえば 100×100 の画像を表示したいと思います。
テクスチャの1辺は 2^n にしたいので、128×128のテクスチャを作るのですが…。
頂点座標をどうしようか迷っています。
1.xy=(0,0)-(100,100), uv=(100/128, 100/128)
2.テクスチャのあまりの部分を透明にして、頂点座標は xy=(0,0)-(128,128), uv=(0,0)-(1,1)
どちらが一般的でしょう?
1の方が管理が楽だし、あまりの部分を別の画像を置くのに使えるし、いいことづくめなのですが、
ピクセル単位で画像をそのまま表示したいので、誤差がでないかどうかが心配です。
(試してみたら問題はなかったのですが、うちの環境でたまたま問題がなかっただけかもしれないので)
よろしくお願いします。
0671デフォルトの名無しさん
2008/10/12(日) 20:18:3764x64のテクスチャをプリミティブで表示しています。
用意したテクスチャは、1色の青で塗りつぶして縁を白で
囲んだだけのものなのですが、表示した時に縁がギザギザ
した感じになってしまいます。
綺麗に表示する方法はないでしょうか?
よろしくおねがいします。
0672デフォルトの名無しさん
2008/10/12(日) 22:06:17今回の特集(いつもなんだがw)見てるとまず視聴率の数値ありきなんだよな
その作品の時代的位置付けやアニメ史上の位置付けを説明するってことを
NHKなんかが特集する時はやるもんだけどそういうことを数字だけで済ませて怠ってる
構成の仕方でもっといろんな作品を見せて興味を惹かせることは可能なはずなんだよ。
それをせずに、最近のものは数字が取れない、て最初から可能性を閉じてしまっている。
0673デフォルトの名無しさん
2008/10/12(日) 22:41:29NHKに期待
そのNHKはちゃんと期待にこたえてアレを年末にやるっていうんだからよくわかってる
2ch殺すつもりだよ
0674デフォルトの名無しさん
2008/10/12(日) 22:48:260675デフォルトの名無しさん
2008/10/13(月) 00:43:40LPDIRECT3DTEXTURE9 g_pTexture = NULL;
LPD3DXSPRITE g_pSprite = NULL;
LPDIRECT3DDEVICE9 g_pd3dDevice = NULL;
D3DXVECTOR3 center,position;
void DrawStartMenu(void)
{
g_pSprite->Begin( NULL );
RECT rc;
rc.left = 0;
rc.top = 0;
rc.right = 256;
rc.bottom = 256;
D3DXCreateTextureFromFile(g_pd3dDevice,"data\\sky2.jpg",&g_pTexture );
D3DXCreateSprite(g_pd3dDevice,&g_pSprite);
g_pSprite->Draw(g_pTexture,&rc,¢er,&position,0xFFFFFFFF);
g_pSprite->End();
}
g_pTexture->Release();
g_pSprite->Release();
ビルドは通るのですが、実行するとアクセス違反が起きます
どこに問題があるのでしょうか?
0676デフォルトの名無しさん
2008/10/13(月) 01:56:18とりあえず、DrawStartMenu関数を後半から1行ずつコメントアウトで削っていって正常に動く部分を調べろ
0677676
2008/10/13(月) 02:10:27最初のg_pSprite->Begin( NULL );を消してD3DXCreateSprite(g_pd3dDevice,&g_pSprite)の
後ろに移動させてくれ。
0678デフォルトの名無しさん
2008/10/13(月) 03:20:590679デフォルトの名無しさん
2008/10/13(月) 03:24:470680デフォルトの名無しさん
2008/10/13(月) 03:33:01Beginを上にもってくるぐらいだから手順が全く理解できてなさそう
0681デフォルトの名無しさん
2008/10/13(月) 03:37:280682デフォルトの名無しさん
2008/10/13(月) 03:37:59ここを参照して完成されたサンプルに追加する形で作ってる
0683デフォルトの名無しさん
2008/10/13(月) 03:41:42元のコードにリンク張られても困る
0684デフォルトの名無しさん
2008/10/13(月) 03:44:15つーかデバッガの使い方を覚えろ。
0685デフォルトの名無しさん
2008/10/13(月) 03:46:01こんな夜中に有難う
0686デフォルトの名無しさん
2008/10/13(月) 03:51:520687デフォルトの名無しさん
2008/10/14(火) 10:35:460688687
2008/10/14(火) 10:38:530689デフォルトの名無しさん
2008/10/15(水) 20:16:43ポリゴンの境界がうっすらと見えてしまうのはどうにかならないでしょうか?
0690デフォルトの名無しさん
2008/10/15(水) 20:25:220691デフォルトの名無しさん
2008/10/15(水) 20:44:050692デフォルトの名無しさん
2008/10/15(水) 20:49:471ピクセルずらして重ね合わせればいいんじゃね
0693デフォルトの名無しさん
2008/10/15(水) 21:29:24それも試してみたんですが駄目なんですよね…
PS初期だとこういうゲーム結構ありましたよねー。
原因がさっぱりわからない…
0694デフォルトの名無しさん
2008/10/15(水) 21:33:58つくりが悪いだけじゃ?
0695デフォルトの名無しさん
2008/10/15(水) 22:03:52ダメというのがどうダメなのかによるが
どうせ補間されてるせいで0.5ピクセルずれてるんだろ。
指定範囲を1ピクセル分元絵の内側にずらして
その分重ね合わせるようにすれば普通はいけるはず。
0696デフォルトの名無しさん
2008/10/15(水) 22:08:54縞模様とかでテストしてみればいい
0697デフォルトの名無しさん
2008/10/15(水) 22:12:400698デフォルトの名無しさん
2008/10/15(水) 22:21:23立方体のXファイルを合計2000個弱ばかり表示する単純な(自分ではそう思ってる)プログラムを書いてみたのですが
これの動作が檄重で、タスクマネージャで調べてみたらメモリを700MB程喰らってます。
(ちなみに自分のマシンはメモリ3GB超積んでるのでスワップアウトは発生してないと思います)
テクスチャをいちいち読み込んでるのが原因かと推測してるのですが、
これは普通どう処理するもんなんでしょう?
独自のファイルハンドラみたいなのを書いて、プログラム本体の下に敷いて、
同一ファイル名のテクスチャを要求されたらメモリキャッシュのアドレスを渡すとか
そんな感じで処理するのが普通なんでしょうか。
0699デフォルトの名無しさん
2008/10/15(水) 22:26:570700デフォルトの名無しさん
2008/10/15(水) 22:26:58ポジションの奥行きを0以外にすると表示されないのね。
どうすればいいの?
0701デフォルトの名無しさん
2008/10/15(水) 22:28:30スプライトでテクスチャを描くのをやめるか、
ポジションの奥行きを0にすればいいと思うよ。
0702デフォルトの名無しさん
2008/10/15(水) 22:29:10スプライトなんて面倒だから使うなってのが2chで聞くと大抵返ってくるレス
ポリ使って描画したほうが死ぬほど応用利くしなにより楽
どーしてもスプライトでやんなきゃ俺の気がすまねーっていうなら
詳しい人探すっきゃないw
0703デフォルトの名無しさん
2008/10/15(水) 22:31:09カバでもわかるだろ
0704デフォルトの名無しさん
2008/10/15(水) 22:33:04うまくキャッシュに決まれば気にしない程度になることはあるのかもしれん
0705デフォルトの名無しさん
2008/10/15(水) 22:33:480706デフォルトの名無しさん
2008/10/15(水) 23:13:59こんな感じにズレてます。
ttp://hishou.ddo.jp/~bbs/up/img/up134.jpg
線形補間はこのように使用しています。
theDevice->SetSamplerState(0 ,D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
theDevice->SetSamplerState(0 ,D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
指定範囲を1ピクセル元絵の内側にずらすってことは
ポリゴンからテクスチャが1ピクセルはみ出るように設定するということですか?
一応そう仮定して動かしてみましたが駄目でした…
0707デフォルトの名無しさん
2008/10/15(水) 23:20:15アドレッシングモードがクランプじゃなくね?
ヘルプに「三角形ラスタ化ルール」ってのがあって読むとわかる
0708689
2008/10/15(水) 23:43:33ポリゴンの境界が見えるって意味なんですが。
下から上に1枚のポリゴンを継続的に流してスクロールさせてるんですが
その1枚1枚のポリゴンの境界が出てしまうってことを言いたかったんです。
日本語が下手ですいません…
0709デフォルトの名無しさん
2008/10/15(水) 23:52:16サンプリングの設定とUVと表示座標の問題だと思うが・・・。
0710デフォルトの名無しさん
2008/10/16(木) 02:06:25どうみてもそれ元画像の下または上のラインが表示されてるでしょ
ポリゴンの境界が見えるとかいう問題ではない。
元画像のつなぎ目の部分を別のテクスチャで使用してないんなら
1ピクセル幅だけでいいからとなりの画像の端を書いておけば
そういう白い線はとりあえず消えるよ。
みっちり書き込んでるなら範囲を縮めるしかないが、
試したんならそっちの画像もうpしてみ。
白い線が出てないならあとはポリゴンの座標を調整すればいいだけ。
0711デフォルトの名無しさん
2008/10/16(木) 02:10:32・元画像のつなぎ目の部分を別のテクスチャで使用してないんなら
・元画像の指定範囲の上下を別のテクスチャ用に使用してないんなら
0712デフォルトの名無しさん
2008/10/16(木) 02:12:56>>710の修正部分
×元画像のつなぎ目の部分を別のテクスチャで使用してないんなら
↓
○元画像の指定範囲の上下を別のテクスチャ用に使用してないんなら
0713デフォルトの名無しさん
2008/10/16(木) 03:48:31現在VisualC++2008ExpressとDirectX SDK March 2008
をインストールしているのですが、DirectX App Wizard でサンプルプログラムを実行するにはどうすればいいでしょうか?
今もっている本ではVisualC++6.0で開発しているので、ファイル→新規作成→プロジェクト
とやってもコンソールアプリケーションやWinプロジェクトなどしか出ない状態です。
ツール→オプションでDirectXのライブラリなどが追加されているのは確認しました。
初歩的な質問ですがよろしくお願いします
0714デフォルトの名無しさん
2008/10/16(木) 07:42:21Winプロジェクトでいいよ
0715デフォルトの名無しさん
2008/10/16(木) 07:44:41普通に好きなように書けばいい
0716デフォルトの名無しさん
2008/10/16(木) 07:52:340717デフォルトの名無しさん
2008/10/16(木) 12:45:56もう最近のにはティーポットなどは含まれていないようです。
本ではフレームワークを基本に進めているので別の本を探してみます。図書館の本でよかった・・・
親切にありがとうございました。
0718デフォルトの名無しさん
2008/10/16(木) 15:26:230719デフォルトの名無しさん
2008/10/16(木) 16:18:290720デフォルトの名無しさん
2008/10/16(木) 16:31:000721デフォルトの名無しさん
2008/10/16(木) 17:34:210722689
2008/10/16(木) 17:38:31画像の下の1ピクセルだけが何故か若干薄くなっていたみたいです。
画像の方に原因があるとは考えてませんでした…
助かりましたー、ありがとうございました。
0723デフォルトの名無しさん
2008/10/16(木) 17:44:58煽るだけでまともな回答がされてないからじゃね?
0724デフォルトの名無しさん
2008/10/16(木) 18:15:37どう答えるのも自由
お礼も必要ないし答える必要もない
フリーダムだよ
0725デフォルトの名無しさん
2008/10/16(木) 18:42:53・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。
0726デフォルトの名無しさん
2008/10/16(木) 19:11:070727デフォルトの名無しさん
2008/10/16(木) 19:20:54こんな感じでちぎれたみたいになるんだけど
どうすればいいの?
ttp://image02.wiki.livedoor.jp/n/o/nijiguro/a17cc0db.jpg
0728デフォルトの名無しさん
2008/10/16(木) 19:41:580729デフォルトの名無しさん
2008/10/16(木) 19:48:030730デフォルトの名無しさん
2008/10/16(木) 19:48:57Zバッファが薄すぎるんじゃね?
0731デフォルトの名無しさん
2008/10/16(木) 20:11:51エエエー('д`)
0732デフォルトの名無しさん
2008/10/16(木) 20:36:05DirectXで描画してる画面で文字入力ができるゲームとか
どんな技術つかってるんだろうか
0733デフォルトの名無しさん
2008/10/16(木) 21:33:10普通にウィンドウプロシージャ
だけでやってるんだぜ?
0734デフォルトの名無しさん
2008/10/16(木) 21:40:03同じこと自分でやれば出来るに決まってると思うが
0735デフォルトの名無しさん
2008/10/16(木) 21:47:42そのやりかたが分かんないからすごいなと言ってるんだが
0736デフォルトの名無しさん
2008/10/16(木) 21:54:57文字変換ならIMEやIMMやTSFを呼んだり
0737デフォルトの名無しさん
2008/10/17(金) 01:18:38やり方もなにも、エディットコントロールの自作くらいで
疑問に思うことなんてほとんどないと思うが。
プロポーショナルフォントだと面倒だなーと思う程度。
0738デフォルトの名無しさん
2008/10/17(金) 01:51:160739デフォルトの名無しさん
2008/10/17(金) 04:27:06がんばれ。
0740デフォルトの名無しさん
2008/10/17(金) 07:04:210741デフォルトの名無しさん
2008/10/17(金) 08:17:39ピクチャーボックスとか適当なコントロールを配置して
そいつのウィンドウハンドルでデバイスつくれば
そのコントロールに対して描画できる
0742デフォルトの名無しさん
2008/10/17(金) 08:32:570743デフォルトの名無しさん
2008/10/17(金) 09:35:58Xファイルを、メッシュ、面、法線と、順番にトークンごとに区切って読み込んでいたのですが
そんな方法しかないのでしょうか?
上から読んで行き、メッシュという文字があれば。。。のような感じでした。
0744デフォルトの名無しさん
2008/10/17(金) 09:41:26Xファイルなんていちいち自前でパースする意味がわからんし。
0745デフォルトの名無しさん
2008/10/17(金) 09:48:33こんなのマスターできる気がしねー
俺はおまいらに劣っているニカ?
0746デフォルトの名無しさん
2008/10/17(金) 09:55:15そうですよね。
テンプレートの読み飛ばしなどを意図してのことだったんでしょうか・・・
0747デフォルトの名無しさん
2008/10/17(金) 09:57:170748デフォルトの名無しさん
2008/10/17(金) 11:41:49あの本は一通り読んだけど
ファイルフォーマットとしてXファイルを使っているが
プログラム的にはオリジナルの頂点形式のデータとして扱うために
自力でファイル解析しながら読み込んでる感じだ
解析が甘いから出力したソフトによって読めないファイルとかあるけどな
なぜそんなことしてるかっていうと
ハードの行列レジスタ数に依存せずに
CPUで無制限のボーン行列を変換してスキニングするため
サンプルのモデルは100本くらいボーンが入っててアホかと思ったが
いずれはオリジナルフォーマットとか作りたくなるだろうからいらない知識というわけではない
0749デフォルトの名無しさん
2008/10/17(金) 12:03:08あと100本くらいなら頂点処理をソフトウェアで走らせればいいだけなのでは?
まあフォーマット理解するのには自前で読み込むのも悪くない
0750743
2008/10/17(金) 14:26:36なるほど・・・ボーンの数を無制限にするなどのために自力で読み込んでいたのですね。
じっくり最後まで読んだわけではないのでボーンが100もあるとは気づきませんでした。
あの本を参考に3Dアクションゲームを作ってみようと思います。
ありがとうございました。
0751デフォルトの名無しさん
2008/10/17(金) 19:03:40C/C++は学んだけど、DirectXはどこから手をつけたら良いかわからない。
Win32APIの知識がいるのかな?
みなさんどうやって勉強したんでしょう・・・
0752デフォルトの名無しさん
2008/10/17(金) 19:12:27SDK付属のでもWEBに転がってるのでも本に付いてるのでも構わない。
Win32APIの知識はそんなに要らない。
Win32Applicationとして実装する最低限のことができればおk。
0753デフォルトの名無しさん
2008/10/17(金) 21:23:550754デフォルトの名無しさん
2008/10/17(金) 21:26:04D3DXで読めば分割後のテーブルデータも一緒に出してくれるので
自前フォーマットを使う場合でも中間データとしてはかなり便利だと思うがね。
0755デフォルトの名無しさん
2008/10/17(金) 21:28:35Win32APIじゃなくても、MFCやDXUTにしても、
必要かどうか疑問に思ったら、まず触ってみて簡単な
プログラムを作ってみるといい。
完璧に理解しようなんて思わなくてもいいから。
DirectXを主体にゲームなり作るにしても
他のものに触れるのは決して無駄にならないよ。
0756デフォルトの名無しさん
2008/10/18(土) 00:39:12やっぱ最小サンプルからだよね。Windowが出るだけ→四角形が出るだけみたいな。
いきなりゲームの完成形とか考えずに、サンプルを継ぎ足しながら理解していき、
そのつど必要になった技術を習得していった方がモチベーションが続くのでは。
俺はMSX-BASICからプログラムとお付き合いのあるオサーンだが、
何を作るにも膨大な基礎知識とコーディング量が必要な現状で、
今からプログラムやライブラリを習得する気概のある人達を素直に尊敬する。
0757デフォルトの名無しさん
2008/10/18(土) 02:42:31そのうち周辺知識がついてすることもなくなって、改めてDirectXの入門書を読んだらすげー理解できてオレすげーってなった。
5年くらいずっと挫折し続けてこれだからなw
ゲームを作りたいだけならそこら辺のライブラリ使った方がいいわ。
まぁ焦らず勉強を続けてくれ。
0758デフォルトの名無しさん
2008/10/18(土) 09:38:275年後というと40歳なわけだがw
0759デフォルトの名無しさん
2008/10/18(土) 09:41:120760デフォルトの名無しさん
2008/10/18(土) 09:45:000761デフォルトの名無しさん
2008/10/18(土) 09:58:560762デフォルトの名無しさん
2008/10/18(土) 12:09:39DirectXは精神論で超越できる
0763デフォルトの名無しさん
2008/10/18(土) 17:24:12ありがとうございます。
やっぱり入門するのが一番根気がいりそうですね。
簡単なプログラムを弄るとはいえ、どれが簡単なプログラムなのかも一々ググらないとダメな現状。
そもそもダイレクトXの入門書で詳しくかかれているのが無いようなきもします。
0764デフォルトの名無しさん
2008/10/18(土) 17:38:40って感じ
0765デフォルトの名無しさん
2008/10/18(土) 17:44:17何から勉強するかわからないでいきなり入門書買うとかNG
とくにVCBCの入門書はほんとに何もわかってない初心者には意味のないものが多い
そのへんも飛ばして「初心者でもわかるDirectX」みたいな本を手に取ったら挫折確定
まずCを理解してその後win32APIについてキモイくらいに丁寧に解説してる本から入るのが吉
何も知らないでいきなりDirectXの解説書かう馬鹿なんて居ないと思ったアナタ
ここに少なくとも一人いますよ
0766デフォルトの名無しさん
2008/10/18(土) 18:29:11一番後ろのページに、今までどれぐらいの人が借りたか
わかる紙がついてるんだけど、
それは大体10回ぐらい借りられていた。
Game Programing Gemsは誰も借りてなかった。
0767デフォルトの名無しさん
2008/10/18(土) 18:30:330768デフォルトの名無しさん
2008/10/18(土) 18:58:210769デフォルトの名無しさん
2008/10/18(土) 20:50:51片っ端からやれよ
はじめに苦労した分が土台になる
はじめに「本なんていらなかったよw俺がいらなかったもんw」とか
言ってるボケに会うこともあるだろうがそいつはゴミなので無視していい
建築に大事な基礎が死んでるから伸びない
大きいビルを建てるにはそれなりの土台が必要
いまのうちに死ぬほど苦労してちゃんとした土台を作っておけ
っていってもプログラマになんてなったって金になんないんだよね(笑)
0770デフォルトの名無しさん
2008/10/18(土) 21:22:15C++→Win32→DirectXってかんじかな。
C学んだくらいでいきなりDirectXは挫折させる力がある。
弄って覚えるにしても、今はもうサンプルが入ってないみたいだし(上に書いてあったの見ただけだが)
0771デフォルトの名無しさん
2008/10/18(土) 21:57:450772デフォルトの名無しさん
2008/10/18(土) 22:46:13IDirectXFileは元々汎用的に作られてるし
XFileに乗っかるぶんには、自前でパースする必要はない。
何でも自分でやりたがるのは結構だが、本出すならベストな方法を載せろって感じ。
>>743のように勘違いする人もいるようだし、迷惑な話。
0773デフォルトの名無しさん
2008/10/18(土) 22:49:20Direct3D10とかVista専用とあいまって、ますます手を出しにくい。
0774デフォルトの名無しさん
2008/10/18(土) 23:36:14自分で自分なりのベストな方法を考える事ができない奴は
プログラマとしてはやっていけないよ。
あくまで「参考書」であって「マニュアル」じゃーないぞ。
0775デフォルトの名無しさん
2008/10/18(土) 23:43:01ネットでやりたいことの表面の知識しか集めてないのがまるわかり。
DirectXの前にC++とWin32は学ぶべき。後々自分が本当にしたいことが出来たときのためにも
0776デフォルトの名無しさん
2008/10/18(土) 23:49:48デバイス作るのに何でHWNDが必要なのかとかスレッドの流れがどうなってるのかとか
知ってた方が学習しやすいだろう。
0777デフォルトの名無しさん
2008/10/18(土) 23:59:01別に本が役に立たんとは言わんけど、別に必要性はないでしょ。
C++もWin32もネットに十分な情報が転がってるし。
最新の情報は常にネットが先だしな。
その程度の情報も調べられないなら、ネット音痴と言わざるをえない。
「これはこの本にしか載ってない情報なんだ!」
ってのがあればぜひ教えて欲しい所だが、巷にあふれるほとんどの本は
ネットで事足りるような情報しか載っていないよ。
0778デフォルトの名無しさん
2008/10/19(日) 00:02:42本自体の信頼性も、あとで読み返してみるとアレなのもあるよね
昔HTMLのトンデモ本持ってたw
0779デフォルトの名無しさん
2008/10/19(日) 00:03:45自分で何も考えない奴は、結局成長はしないんだよ。
「●●って本に書いてある通りにしたけど動きません」とか
こういう所ですぐ聞くような奴ね。
0780デフォルトの名無しさん
2008/10/19(日) 00:06:240781デフォルトの名無しさん
2008/10/19(日) 00:10:49スレ以前につーちゃんねるが必要ない。
0782デフォルトの名無しさん
2008/10/19(日) 00:11:39情報のスピードでは負けるけど、そんな事言ったらベンダーが書いてるマニュアルが最速で
それ以外が二次情報になるのは一緒だし
0783デフォルトの名無しさん
2008/10/19(日) 00:13:40すごい本ももちろんたくさんある
0784デフォルトの名無しさん
2008/10/19(日) 00:18:21てか本代くらいケチるなww
ダイレクトX学ぶには下準備いるんだし
0785デフォルトの名無しさん
2008/10/19(日) 00:20:23寝る前にパラパラ見る。これでいつかはマスターできるはずと
思っている。
0786デフォルトの名無しさん
2008/10/19(日) 00:26:51どんな本でも1ページくらいは有用だと思える情報があるし。
0787デフォルトの名無しさん
2008/10/19(日) 00:28:580788デフォルトの名無しさん
2008/10/19(日) 02:05:280789デフォルトの名無しさん
2008/10/19(日) 12:46:19”初心者向けは基本の技術解説だけでいいから楽だけど、それだとターゲットが
狭いので中級者向けにも書いて、ただページが膨大だと定価や作業量の問題もあるから
一部の技術だけに特化して深いところをー”なんて感じ。
最初はネットで良いと思うよ。誰かに説明したい、自称中級者の方々が山ほどいて
丁寧に教えてくれる。ただ、その人達が「それはできません。」と断言したことが
本当にできないかとか、教わった技術が適切か等の精査は必要。
0790デフォルトの名無しさん
2008/10/19(日) 16:30:18そのほうがすんなりDirectXのコードを読める。
それに今出版されてるDirectXの本はSDKのサンプルからやってるから、サンプルがなくなった今
(SampleBrowserは昔のとはちょっと違うね)DirectXの学習は困難だよな。特にC++終えたての人とかは。
あと、本は買ったほうがいい。ネットの知識ってのは上でも言われてるけど表面上でしかないよ。
だからちょっとバージョンが違ってエラーが出たときとかにも対処しきれない。
勘違いしないでほしいのは、本がすべてというわけではないし、関数とか、ここはどうすればいいのか
ってのをちょっと調べるだけならネットでも全然おkだと思う。
ただ、本で学んでからネットを見たほうが応用が利く気がする。
異論は認める
0791デフォルトの名無しさん
2008/10/19(日) 16:48:08本いらないとか言ってるやつはネットでどうやって調べるか
ノウハウがわかってるからそんなこと言ってるだけ
ほんとにわかってないやつは何から調べればいいかわからないから
ネットだけではどうにもならない
0792デフォルトの名無しさん
2008/10/19(日) 16:51:47流れを一通り学んだら必要なAPIをMSDNライブラリサイトで調べたらいいだけだし。
0793デフォルトの名無しさん
2008/10/19(日) 16:52:33その点でもネットは必要。
あとネットが使えるかどうかは関係なく本の知識は偉大と思う。
0794デフォルトの名無しさん
2008/10/19(日) 17:01:19本を読む前に>>1ぐらい嫁よ
0795デフォルトの名無しさん
2008/10/19(日) 17:13:32本は濃く知るのにどうしても必要
こういう特色を人に説明できないのも本を読んでいないから
と俺は思う
0796デフォルトの名無しさん
2008/10/19(日) 17:16:340797デフォルトの名無しさん
2008/10/19(日) 17:19:19自分は本を読んでいて他の人間には薦めないってのは陥れてるとしか思えない
0798デフォルトの名無しさん
2008/10/19(日) 17:27:17CW_USEDEFAULTしか分からないので
ヒントいただけませんか><
0799デフォルトの名無しさん
2008/10/19(日) 17:31:05GetWindowRect
必要ならAdjustWindowRectExも
0800デフォルトの名無しさん
2008/10/19(日) 17:39:19本を読めよ
0801デフォルトの名無しさん
2008/10/19(日) 17:43:420802デフォルトの名無しさん
2008/10/19(日) 17:51:01ネットの使い方の本でも読んだ方がいいと思う
どっちが深いも浅いもない。
必要な情報を個々がどうやって見つけるかという違いがあるだけ。
ネットで探すのが下手なら本を読めばいい。
0803デフォルトの名無しさん
2008/10/19(日) 18:06:47ちゃんとした専門書を読んだことがないんだろうなぁ
0804デフォルトの名無しさん
2008/10/19(日) 18:10:48で、ここは質問スレであって、こんなどうでもいい事を延々と繰り返すスレではない。
>>1にある文章も読めないような奴に本が読めるとは到底思えん。
0805デフォルトの名無しさん
2008/10/19(日) 18:15:35あなたの持っている「専門書」のタイトルを全て教えてくだちぃ
0806デフォルトの名無しさん
2008/10/19(日) 18:15:59ネットは(サイトによっては)有用な部分はあるけど、必要ではない。それでFA。
で、ここは質問スレであって、こんなどうでもいい事をにいちいち突っ込むスレでもない。
>>1にある文章も読めないような奴にネットが使いこなせるとは到底思えん。
0807デフォルトの名無しさん
2008/10/19(日) 18:17:000808デフォルトの名無しさん
2008/10/19(日) 18:21:29ネットに繋がってないプログラマーのデスクが今時あるだろうか
ネットだけでやってる奴はいても、本だけでやってる奴なんていないだろ
0809デフォルトの名無しさん
2008/10/19(日) 18:23:45本→ものによっては「有用」
でファィナルアンサー
0810デフォルトの名無しさん
2008/10/19(日) 18:26:23あーでも漫画を一週間読まないでプライベートをすごす自信もないw
0811デフォルトの名無しさん
2008/10/19(日) 18:28:010812デフォルトの名無しさん
2008/10/19(日) 18:33:580813デフォルトの名無しさん
2008/10/19(日) 19:12:22サンプル、情報で自分がやってみたいことに挑戦する
ただ、なんとなくDirectXをマスターしたいとか言う目的意識のない方はお帰りください
まずDirectXで何をしたいのか目標を定めることから始めましょう
そこに対し自分で思考錯誤していると
必ずWeb上だけの情報では解決できないことがでてきます
本を選ぶ基準はただなんとなく習得したいための本ではなく
自分が知りたい情報の載っている本を探せばいいだけなのです
おそらくその本の半分以上の内容は必要のないものでしょうが
自分の知りたい情報の値段がその本の値段につりあうと思えば買えばいいのです
本の値段とそこに乗っている情報の値踏みができないレベルの人は本に手を出すべきではないでしょう
0814デフォルトの名無しさん
2008/10/19(日) 19:19:25先輩方が何をやりたいと思ってなんという本を読んでその知識を得たという情報で結構です
いきなりWebで入手しろといわれても、何から手をつければいいかさっぱりなんです
0815デフォルトの名無しさん
2008/10/19(日) 19:25:51マルチディスプレイ環境で
Windowモードのアプリを別のディスプレイへ移動すると遅くなるのはなんでだろう
どうやっても回避できない
0816デフォルトの名無しさん
2008/10/19(日) 19:29:41本を読めばわかるよ
0817デフォルトの名無しさん
2008/10/19(日) 19:33:510818デフォルトの名無しさん
2008/10/19(日) 19:36:39・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。
0819デフォルトの名無しさん
2008/10/19(日) 19:39:17○ひょっとしたらWeb上だけの情報では解決できない場合があるかも知れません
0820デフォルトの名無しさん
2008/10/19(日) 19:41:200821デフォルトの名無しさん
2008/10/19(日) 19:41:580822デフォルトの名無しさん
2008/10/19(日) 19:43:050823デフォルトの名無しさん
2008/10/19(日) 19:44:14ようはそのWebで解決できない事が書いてある本さえあればいいんですよね。
俺頭いい。
0824デフォルトの名無しさん
2008/10/19(日) 19:46:340825デフォルトの名無しさん
2008/10/19(日) 19:47:57早くかけよ、さぼるな、仕事なんて辞めて本書け本
0826デフォルトの名無しさん
2008/10/19(日) 19:48:44別に書いてやってもいいけど、いくらくれんの?
0827デフォルトの名無しさん
2008/10/19(日) 19:50:020828デフォルトの名無しさん
2008/10/19(日) 19:54:320829デフォルトの名無しさん
2008/10/19(日) 19:58:480830デフォルトの名無しさん
2008/10/19(日) 20:01:29ワロタw
0831デフォルトの名無しさん
2008/10/19(日) 20:03:490832デフォルトの名無しさん
2008/10/19(日) 21:06:000833デフォルトの名無しさん
2008/10/19(日) 21:10:510834デフォルトの名無しさん
2008/10/19(日) 22:28:34読まないって奴は読む奴に比べて単純に頭が悪くなるってただそれだけ
0835デフォルトの名無しさん
2008/10/19(日) 22:38:260836デフォルトの名無しさん
2008/10/19(日) 22:44:18数をこなすことでダメなものをダメと見切れるようになる
タスクシステムに飛びつくこともなくなる
0837デフォルトの名無しさん
2008/10/19(日) 22:45:05あなたが選択した、頭がよくなった本をぜひぜひ教えてください。お願いします。
0838デフォルトの名無しさん
2008/10/19(日) 22:51:280839デフォルトの名無しさん
2008/10/19(日) 23:16:50なんか一人のネット狂信者がわめいてるみたい。
コピペでプログラム組んで『俺すげーww』とか言ってる。
俺も昔はそうでした。まぁ今は暖かい目で見てあげよう。いつか書籍の必要性がわかる。
0840デフォルトの名無しさん
2008/10/19(日) 23:31:59他人もそうだと思い込みたいんだろうなぁ
0841デフォルトの名無しさん
2008/10/19(日) 23:36:06何をするにも絶対本が必要という事にしないと気が済まんのかな。
0842デフォルトの名無しさん
2008/10/19(日) 23:45:29>>839はわざわざageてまで必死に自分の無能さを主張してるんだからw
0843デフォルトの名無しさん
2008/10/19(日) 23:58:46だからどっちでもいいだろ。ネットで済む事はネットで済ませりゃいいだろうし
本が欲しいと思うんだったらそう思った時買えばいいだよ
そんな個人差がある事を必要/不必要なんて言葉で線引きしようとするのが愚の極み
0844デフォルトの名無しさん
2008/10/20(月) 01:02:210845デフォルトの名無しさん
2008/10/20(月) 01:02:480846デフォルトの名無しさん
2008/10/20(月) 01:10:57そうやって煽る自分が一番無能と思わんかね?
本もネットも必要で終わろう
0847デフォルトの名無しさん
2008/10/20(月) 01:12:230848デフォルトの名無しさん
2008/10/20(月) 01:24:40個々の目的が違うんだからそんなの当然だろ。頭にうじわいてんじゃね。
0849デフォルトの名無しさん
2008/10/20(月) 01:37:26なにも選択肢からわざわざはずす必要がない
それともどうしても本が不必要だと決定する何かがほしいのかな?
そういうわけじゃないだろ?
もしかしたら、今後ネットにはない転載不可のすばらしい本が出る可能性だってあるわけだしね
0850デフォルトの名無しさん
2008/10/20(月) 01:56:05別に人によってはでも場合によってはでもどちらでもかまわないよ。
これで満足かい?
0851デフォルトの名無しさん
2008/10/20(月) 02:01:310852デフォルトの名無しさん
2008/10/20(月) 02:20:01何、カッカしてんの?
育ちが悪いな
親もロクなもんじゃねぇだろ
ああ、貧乏だから本も買えないのか
0853デフォルトの名無しさん
2008/10/20(月) 02:25:160854デフォルトの名無しさん
2008/10/20(月) 02:36:19/ // /| r'7\ ,.ヘ‐'"´iヾ、/\ニ''ー- 、., / /
/ / | |::|ァ'⌒',ヽ:::ヽrヘ_,,.!-‐-'、二7-ァ'´|、__
`'ー-‐''" ヽ、_'´ `| |:::::|'" 二.,_> ,.へ_
/ //__// / / / `ヽ7::/
か っ も | / // メ,/_,,. /./ /| i Y //
ァ て う. |'´/ ∠. -‐'ァ'"´'`iヽ.// メ、,_ハ , |〉
| 約 醜. ヽ! O .|/。〈ハ、 rリ '´ ,ァ=;、`| ,ハ |、 /
| 束 い > o ゜,,´ ̄ . ト i 〉.レ'i iヽ|ヽ、.,____
| し 煽 / ハ | u ,.--- 、 `' ゜o O/、.,___,,..-‐'"´
| た り | / ハ, / 〉 "从 ヽ! /
| じ 合 |,.イ,.!-‐'-'、,ヘ. !、_ _,/ ,.イヘ. ` ヽ.
ッ .ゃ .い |/ ヽ!7>rァ''7´| / ', 〉`ヽ〉
! ! な は .', `Y_,/、レ'ヘ/レ' レ'
い .し ヽ、_ !:::::ハiヽ. // /
で .な ./‐r'、.,_,.イ\/_」ヽ ', / /
す い / `/:::::::/ /,」:::iン、 / /
〈 ,,..-‐''"´ ̄ ̄77ー--、_\.,__ /
,.:'⌒ヽ ´ | | , i |ノ `ヾr-、
0855デフォルトの名無しさん
2008/10/20(月) 02:36:41とうとう、お前のかーちゃんでーべそとか言い出しちゃったよ
もうね、プログラムの本の前に読むべき本があるんじゃないかな?
手に取る本の選択肢を間違えたね
0856デフォルトの名無しさん
2008/10/20(月) 03:19:28ネットに載ってない情報を持っているDirectXの本を紹介してくれますでしょうか?
必要だと言ってる人は少なくとも一冊はそういった本を持ってるわけですし。
それが他人から見ても必要だと感じられるなら必要性の高いお勧め本ってことで。
書籍名:
出版社名:
価格:
ネットに載ってない情報:
よろしくお願いします。
0857デフォルトの名無しさん
2008/10/20(月) 04:17:21供給:
・紙媒体:本→有料、概ね著作者が明確。
・電子媒体:ネット→概ね無料、著作者が不明確の場合あり。
その情報だけでお金取れそうなら本にした方が得だよね。
ただ、それを読んだ人が無料でネットに公開しちゃう場合があるよね。
(盗用と、技術解説ギリギリのラインで。)
「猫でもわかる〜」みたいに、ネットで情報公開しつつ製本化されてるものもあるよね。
それでも売れるよね。「無料で手に入る情報に金払うなんて」という考えもあるけど、
その辺は案外、読み手の好みの問題だったりしてね。
読み手も書き手も多種多様で、媒体とそれに伴うルールが違うだけなので、
優劣はつかないんじゃないかなー。
ってゆーか、このスレの流れ、信者同士の罵り合いっていうよりかは
反応が面白くて適当に煽ってる人が多そうだよねー。
ってゆーか俺スレチだねー。ごめんねー。
0858デフォルトの名無しさん
2008/10/20(月) 06:20:21子供みたいw
0859デフォルトの名無しさん
2008/10/20(月) 07:11:04は?
誰にレスしてるの?
そんなのどこにも書いてないじゃん
捏造?
育ちの悪さがレスにあふれ出てるねw
まあ、本も買う金がないほど貧乏だししょうがないとは思うけどねw
0860デフォルトの名無しさん
2008/10/20(月) 07:25:45/ // /| r'7\ ,.ヘ‐'"´iヾ、/\ニ''ー- 、., / /
/ / | |::|ァ'⌒',ヽ:::ヽrヘ_,,.!-‐-'、二7-ァ'´|、__
`'ー-‐''" ヽ、_'´ `| |:::::|'" 二.,_> ,.へ_
/ //__// / / / `ヽ7::/
か っ も | / // メ,/_,,. /./ /| i Y //
ァ て う. |'´/ ∠. -‐'ァ'"´'`iヽ.// メ、,_ハ , |〉
| 約 醜. ヽ! O .|/。〈ハ、 rリ '´ ,ァ=;、`| ,ハ |、 /
| 束 い > o ゜,,´ ̄ . ト i 〉.レ'i iヽ|ヽ、.,____
| し 煽 / ハ | u ,.--- 、 `' ゜o O/、.,___,,..-‐'"´
| た り | / ハ, / 〉 "从 ヽ! /
| じ 合 |,.イ,.!-‐'-'、,ヘ. !、_ _,/ ,.イヘ. ` ヽ.
ッ .ゃ .い |/ ヽ!7>rァ''7´| / ', 〉`ヽ〉
! ! な は .', `Y_,/、レ'ヘ/レ' レ'
い .し ヽ、_ !:::::ハiヽ. // /
で .な ./‐r'、.,_,.イ\/_」ヽ ', / /
す い / `/:::::::/ /,」:::iン、 / /
〈 ,,..-‐''"´ ̄ ̄77ー--、_\.,__ /
,.:'⌒ヽ ´ | | , i |ノ `ヾr-、
0861デフォルトの名無しさん
2008/10/20(月) 09:28:460862デフォルトの名無しさん
2008/10/20(月) 10:00:14僕も悪かったです。本もネットも素晴らしいです。
0863デフォルトの名無しさん
2008/10/20(月) 12:08:330864デフォルトの名無しさん
2008/10/20(月) 12:16:00相手に置き換えることでうさを晴らしてるんだろうな
察してやろうぜ
0865デフォルトの名無しさん
2008/10/20(月) 12:24:25彼を許してあげてええええええええええ
0866デフォルトの名無しさん
2008/10/20(月) 12:25:430867デフォルトの名無しさん
2008/10/20(月) 12:41:13よくわからんけど
0868デフォルトの名無しさん
2008/10/20(月) 12:53:30よくわからんけど
0869デフォルトの名無しさん
2008/10/20(月) 14:46:23すまそ
0870858
2008/10/20(月) 16:16:10いいえ。違います。
0871デフォルトの名無しさん
2008/10/20(月) 16:38:45中身はRECTの並びと一緒だし。
操作用の関数が用意されてるでもないし
受け渡しにいちいちキャストが必要だし。
0872デフォルトの名無しさん
2008/10/20(月) 16:43:260873デフォルトの名無しさん
2008/10/20(月) 16:46:22本を読めばわかる
0874デフォルトの名無しさん
2008/10/20(月) 17:07:17座標をx y で扱うためだろ
left, top, right, bottomじゃわかりにくくなる
0875デフォルトの名無しさん
2008/10/20(月) 17:28:46なんでRECTが存在するのに、DirectXはわざわざ同じフォーマットの
別名構造体を独自に作って使うの?ってことかな?
0876デフォルトの名無しさん
2008/10/20(月) 17:52:28そうかと思われ
おれもなんであるのか知りたい
0877デフォルトの名無しさん
2008/10/20(月) 17:57:400878デフォルトの名無しさん
2008/10/20(月) 17:58:080879デフォルトの名無しさん
2008/10/20(月) 18:01:44WinAPI群と同調させるよりかは、DirectX群での同一性を求めたとか
0880デフォルトの名無しさん
2008/10/20(月) 18:44:20自分のメインパソコンでコンパイルしたアプリを他のパソコンでも起動できるか試したのですが
メインのPCだと http://appleloader.bbsnow.net/pic_loader/nomal/html/1_12.html
普通に起動できて。
学校のPCと家のサブパソコンだと http://appleloader.bbsnow.net/pic_loader/nomal/html/33.html
エラーが出て起動できません・・・・。
自分で考えられる対処法は試したのですがわかりません・・・。
アドバイスよろしくお願いします。
家メイン(デスクトップ) WINXP32BIT Geforce8800GTS メモリ4G CPU コア2DUO
家サブ(デスクトップ) WINXP32BIT マザーボード内臓?(sis741) メモリ512M アスロン3000?
学校 WINXP32BIT(ノート) わかりません // // /
すれ違いだったら誘導お願いします><
0881デフォルトの名無しさん
2008/10/20(月) 18:47:030882デフォルトの名無しさん
2008/10/20(月) 18:50:440883880
2008/10/20(月) 18:53:58プロジェクト全体を探しましたがなかったです。
USBにフォルダごとコピーして他のPCに持っていったので
足りないファイルなどはないと思います。
0884880
2008/10/20(月) 19:03:16mainfestファイルありました。
出力を上記のファイルと別の所にしてあるからでしょうか?
0885デフォルトの名無しさん
2008/10/20(月) 19:05:010886デフォルトの名無しさん
2008/10/20(月) 19:05:58原因教えろと言われても
サブPCや学校でコンパイルできるんならそっちでデバッグしてみろ
0887デフォルトの名無しさん
2008/10/20(月) 19:09:24ここじゃなくてVCスレ行った方がいいよ
0888デフォルトの名無しさん
2008/10/20(月) 19:12:42書いてるだろ。htmlリンクだから恐いが
0889デフォルトの名無しさん
2008/10/20(月) 19:16:020890デフォルトの名無しさん
2008/10/20(月) 19:35:22ありがとうございます
0891デフォルトの名無しさん
2008/10/20(月) 19:45:16シェーダで結果を書き込んだテクスチャを
CPUで処理するためにCPUのメモリにコピーしたいんですが、
どのような手順でやればよいでしょうか?
0892デフォルトの名無しさん
2008/10/20(月) 19:54:080893デフォルトの名無しさん
2008/10/20(月) 19:56:080894デフォルトの名無しさん
2008/10/20(月) 19:58:51メモコン内蔵だからか
0895デフォルトの名無しさん
2008/10/20(月) 20:02:030896デフォルトの名無しさん
2008/10/20(月) 20:14:30direct3dスプライトはDirectDrawみたいに
画面に線引いたり円描いたり四角描いたりできますか?
0897デフォルトの名無しさん
2008/10/20(月) 20:19:10Direct3Dの部分にwindows.hを取り込まないためでしょ。
D3DCOLORなんかも
0898デフォルトの名無しさん
2008/10/20(月) 20:52:16すみません>>895の方の意味です
シェーダでテクスチャにスムーズフィルタとかかけて、
CPUでその結果を使って画像処理を行いたいので、
そのためにテクスチャからメモリにコピーする方法を
知りたいんです
0899デフォルトの名無しさん
2008/10/20(月) 20:59:48テクスチャをロックして情報すえばいいんじゃ?
0900デフォルトの名無しさん
2008/10/20(月) 21:05:070901デフォルトの名無しさん
2008/10/20(月) 21:09:3650を超えたら-50に移動
m_position.x += 0.01f;
if(m_position.x > 2.0f) {
m_position.x = -2.0f;
}
本ではこういう風に定義されているのですが数字がよくわかりません・・・。
説明お願いできませんか。
0902デフォルトの名無しさん
2008/10/20(月) 21:18:270903デフォルトの名無しさん
2008/10/20(月) 21:27:2950って何だ
0904デフォルトの名無しさん
2008/10/20(月) 21:41:03C言語やった事あるのか?
0905デフォルトの名無しさん
2008/10/20(月) 21:44:10本読めばわかる
0906デフォルトの名無しさん
2008/10/20(月) 21:49:410907デフォルトの名無しさん
2008/10/20(月) 21:53:210908デフォルトの名無しさん
2008/10/20(月) 21:55:32コメントごとコピってきたソースの
パラメーターだけ変えたけどコメントがコピー元のまま
0909デフォルトの名無しさん
2008/10/20(月) 22:54:37m_pos.x += 1.0f;
1.0fって1mですか?
0910デフォルトの名無しさん
2008/10/20(月) 23:01:390911デフォルトの名無しさん
2008/10/21(火) 00:24:320912デフォルトの名無しさん
2008/10/21(火) 02:19:57こんなこと言っても分からんと思うがw
0913デフォルトの名無しさん
2008/10/21(火) 18:31:52俺は 1.61624 * 10e-35 m だな
0914デフォルトの名無しさん
2008/10/21(火) 20:01:37DirectXを、ディレクトックスと呼ぶのは我慢できるとしてもだ
Direct3Dを
ダイレクトサンディー
っていうのは我慢ならぬ。
0915デフォルトの名無しさん
2008/10/21(火) 20:07:39正直、コーヒー噴き出したw
どうしてくれんのよ
0916デフォルトの名無しさん
2008/10/21(火) 20:22:17初歩の初歩だと思うんだが
0917デフォルトの名無しさん
2008/10/21(火) 20:24:210918デフォルトの名無しさん
2008/10/21(火) 20:34:01ミリとメガの区別もつかないのって感じだね
(そうだ、もし1miBと言う単位があれば 1/1024バイト?)
0919デフォルトの名無しさん
2008/10/21(火) 21:45:440920デフォルトの名無しさん
2008/10/21(火) 21:52:020921デフォルトの名無しさん
2008/10/21(火) 21:56:220922デフォルトの名無しさん
2008/10/21(火) 22:01:550923デフォルトの名無しさん
2008/10/21(火) 22:02:42だから君の好きなように定義すればいいんだってば
0924デフォルトの名無しさん
2008/10/21(火) 22:35:520925デフォルトの名無しさん
2008/10/21(火) 22:38:401000fで1クリメライとか
0926デフォルトの名無しさん
2008/10/21(火) 22:40:140927デフォルトの名無しさん
2008/10/21(火) 23:13:150928デフォルトの名無しさん
2008/10/21(火) 23:47:011kmから始まってパーセクで終わったw
0929デフォルトの名無しさん
2008/10/22(水) 01:29:37float4 pixelS(float4 src : COLOR0) : COLOR
{
return src;
}
technique Techs
{
pass P0
{
VertexShader = compile vs_1_1 vertexS();
PixelShader = compile ps_1_1 pixelS();
}
}
このピクセルシェーダを使ってそのまま出力するテストをしているのですが、テクスチャが全面真っ白になって
表示されてしまいます。シェーダのコンパイルは1.1です。使用箇所では
D3DXHANDLE tech=shader->GetTechniqueByName("Techs");
shader->SetTechnique(tech);
UINT pass;
shader->Begin(&pass,0);
shader->BeginPass(0);
device->SetTexture();
device->SetFVF();//変換済み頂点を設定
device->DrawPrimitiveUP();
shader->EndPass();
shader->End();
となっています。シェーダ関係を取り払うと正しく表示されるので描画部分は問題なさそうです。
0930デフォルトの名無しさん
2008/10/22(水) 01:30:180931デフォルトの名無しさん
2008/10/22(水) 06:30:40シェーダでテクスチャ読んでないんだから、頂点カラーのまま表示されるに決まっとる
0932デフォルトの名無しさん
2008/10/22(水) 08:57:080933デフォルトの名無しさん
2008/10/22(水) 12:00:34でもこれだと今までの表示方法ではすんなりピクセルシェーダを利用することができないというミスorz
0934デフォルトの名無しさん
2008/10/22(水) 17:50:110935デフォルトの名無しさん
2008/10/22(水) 18:02:100936デフォルトの名無しさん
2008/10/22(水) 18:06:570937デフォルトの名無しさん
2008/10/22(水) 18:13:540938デフォルトの名無しさん
2008/10/22(水) 18:30:39最後のほうがよくきこえんかった
>>936
同じような感じで無理してたけど
やっぱりそういう手しかないのかな
DirectDrawでできるならD3Dスプライトではできると思ってたんだが
0939デフォルトの名無しさん
2008/10/22(水) 20:00:27メモリ4Gと2Gじゃかなり違いますか?(XP32BIT)
事情でデスクトップは買えません。。。
0940デフォルトの名無しさん
2008/10/22(水) 20:02:050941デフォルトの名無しさん
2008/10/22(水) 21:19:39普通に開発作業を快適にしたいならまずHDDをSSDに、D3Dでの開発重視なら何よりGPUの選択が中心
それだけだ
0942デフォルトの名無しさん
2008/10/23(木) 20:36:11テクスチャを張り付けて、透過色のとこは下の枠と
その後ろのモノが見えるってのは可能?
0943デフォルトの名無しさん
2008/10/23(木) 20:39:010944デフォルトの名無しさん
2008/10/23(木) 20:46:540945デフォルトの名無しさん
2008/10/23(木) 21:09:340946デフォルトの名無しさん
2008/10/23(木) 21:12:270947デフォルトの名無しさん
2008/10/23(木) 21:15:05ピクセルシェーダー使っていいなら余裕
固定機能ならテクスチャステージで
RGBは乗算、αは加算とかにすればいけるんじゃね?
0948デフォルトの名無しさん
2008/10/23(木) 22:26:43あきらめれば100%解決できる。保証する
0949デフォルトの名無しさん
2008/10/23(木) 22:52:380950デフォルトの名無しさん
2008/10/23(木) 23:42:400951デフォルトの名無しさん
2008/10/23(木) 23:51:28使ったほうが100倍マシと思われる
車輪の再発明
0952デフォルトの名無しさん
2008/10/23(木) 23:52:490953デフォルトの名無しさん
2008/10/24(金) 00:01:14テンプレートが何なのかよく分らなくて敷居をまたげないで居る人の2種類がいると思う
0954デフォルトの名無しさん
2008/10/24(金) 00:14:300955デフォルトの名無しさん
2008/10/24(金) 00:38:22サーフェイスの情報を取得したら、例えば642*480で指定した場合、そのサイズがそのまま帰るんですが、
実際には2の累乗サイズに設定されているんでしょうか?それとも見たままなんでしょうか
nVIDIaです
0956デフォルトの名無しさん
2008/10/24(金) 00:44:510957デフォルトの名無しさん
2008/10/24(金) 00:45:30作ったサイズそのままのビデオカードと2の累乗になるビデオカードがある。
0958デフォルトの名無しさん
2008/10/24(金) 00:57:23D3DCAPS9のTextureCapsですよね?
D3DPTEXTURECAPS_NONPOW2CONDITIONAL
D3DPTEXTURECAPS_POW2
D3DPTEXTURECAPS_SQUAREONLY
は全て0でした・・・。
0959デフォルトの名無しさん
2008/10/24(金) 01:54:012の累乗のテクスチャしか作れないGPUなんて5年くらい前から出て無いんじゃない?
0960デフォルトの名無しさん
2008/10/24(金) 02:50:06補間でふちが見えないようにだろ
0961デフォルトの名無しさん
2008/10/24(金) 06:28:43レンダリングターゲットをテクスチャBにて描画したい場合、
�@コメントアウトすると画面がぐちゃぐちゃになるものの書込まれているが、
そののままだとテクスチャBへの書込みは正常に処理されない
どうしてでしょうか?(回答時間 20分)
�@GetRenderTarget(0,バックバッファ);//ここだよ
�AテクスチャB->GetSurfaceLevel(0,サーフェイスA);
�BSetRenderTarget(0,サーフェイスA);
�CSetTexture(0,テクスチャB);
�DDrawPrimitive
�ESetRenderTarget(0,バックバッファ)
ヨロシクオネガイシマス(´・ω・`)つ
0962デフォルトの名無しさん
2008/10/24(金) 06:57:590963デフォルトの名無しさん
2008/10/24(金) 07:13:29それなら642*482にしないと
0964デフォルトの名無しさん
2008/10/24(金) 13:55:05やりたいことを相手に伝わるように書いてほしいものだ
それができないなら全ソース晒せ
0965961
2008/10/24(金) 14:33:26>�@コメントアウトすると画面がぐちゃぐちゃになるものの書込まれているが
言いたいことは、�@をコメントアウトすると半透明になって激しくちらつくのに
次にコメントアウトを外して実行するとテクスチャに書込まれている、と言いたかった
やりたいのはテクスチャを貼った板ポリゴンをサーフェイスに関連付けたテクスチャ内
に描画したい・・・その処理のもっともシンプルなコードを知りたいのです
0966デフォルトの名無しさん
2008/10/24(金) 14:40:19DrawPrimitiveするだけだろ・・・。
細かいステートの説明までいちいちしてられん。
0967デフォルトの名無しさん
2008/10/24(金) 16:44:44頭の体操の時間ですやら回答時間20分やら、君は何様だよ
0968デフォルトの名無しさん
2008/10/24(金) 16:46:500969デフォルトの名無しさん
2008/10/24(金) 17:54:360970デフォルトの名無しさん
2008/10/25(土) 16:47:36板ポリゴンにテクスチャを貼って表示するのと、スプライトで表示するのは
どのような違いがあるのですか?
プログラムの中身ではなくて表示方法?
色々調べたのですが分からなかったのでアドバイスお願いします。
0971デフォルトの名無しさん
2008/10/25(土) 16:57:16だからスプライトとか言ってもDirectDrawなんかと比べると遅い
そのかわりに回転・拡大・半透明とかは板ポリと同じで簡単
そしてポリと違ってウインドウ平面への描画がしやすい機能が一通りそろってる
0972デフォルトの名無しさん
2008/10/25(土) 17:10:040973デフォルトの名無しさん
2008/10/25(土) 17:42:58何も違わない。D3DXのスプライト描画は中でDrawPrimitiveを呼んでいるだけ。
D3DXは補助ライブラリで、中身はD3Dを使って誰でも実装できるような機能。
必須ではないがよく使う関数をMSが用意してくれたのがD3DX。
0974デフォルトの名無しさん
2008/10/25(土) 19:21:49スプライト、サーフェス 画用紙
0975デフォルトの名無しさん
2008/10/25(土) 19:36:180976デフォルトの名無しさん
2008/10/25(土) 19:47:05D3DXのスプライトってとこだな。
パフォーマンスのことも気を使ってくれるので、何も知らない素人が
自分でDrawPrimitive呼ぶよりはマシ。
よく分かってる奴なら、自分で描画した方がもっと良い。
0977デフォルトの名無しさん
2008/10/25(土) 19:51:24スプライト を よろしくやってくれる
0978デフォルトの名無しさん
2008/10/25(土) 20:00:50って感じで絶対に使わなくなると思う
0979デフォルトの名無しさん
2008/10/25(土) 20:19:360980デフォルトの名無しさん
2008/10/25(土) 21:00:420981デフォルトの名無しさん
2008/10/25(土) 21:12:52中で何やってるかわからないからね!
0982デフォルトの名無しさん
2008/10/25(土) 21:15:24カワイイ言い方ですねw
0983デフォルトの名無しさん
2008/10/25(土) 21:19:48NOVUS ORDO SECLORUM
0984デフォルトの名無しさん
2008/10/25(土) 21:38:56かわいくない言い方ってどんなんなの?
0985デフォルトの名無しさん
2008/10/25(土) 21:40:540986デフォルトの名無しさん
2008/10/25(土) 21:51:51インタフェイスの名前を不正確なカタカナに置き換える馬鹿が大勢いるから、
内容を誤解させているんだぞ
0987デフォルトの名無しさん
2008/10/25(土) 21:59:56まじめに使うのは大いに結構なんだけど
スプライト関数はデバッグ用くらいにしか使えないとか
初心者すれで言っててもしょうがないと思うんだ
初心者相手に遅いだの仕えないだの言って
簡単な質問をややこしくしすぎかと思うんだが
そんなもんは使ってみて遅いとか使えないとか
思った奴が次を模索すればいい話であって
それで満足する奴もいるんだからいんじゃないのか?
おまえさんが使えないと決め付ける必要はないと思うんだ
>>984
ビデオカード グラフィックカード
ビデオボード グラフィックボード
他にもいろんな呼ばれかたがあるけど
どれで言おうと相手に伝わればいいと思うが
どういうわけかカッコイイとかカッコワルイとかこだわるやつがいて
そういうやつをみるとカッコワルイなと思う
あと半角にやたらこだわるやつとかもいい加減時代遅れだと思う
0988デフォルトの名無しさん
2008/10/25(土) 22:03:57迷惑だからもうプログラムをやめろ
0989デフォルトの名無しさん
2008/10/25(土) 22:07:060990デフォルトの名無しさん
2008/10/25(土) 22:12:58何故誤解を生むカタカナでわざわざ書くのか、馬鹿の考えはさっぱり理解出来ない
0991デフォルトの名無しさん
2008/10/25(土) 22:14:320992デフォルトの名無しさん
2008/10/25(土) 22:19:260993デフォルトの名無しさん
2008/10/25(土) 22:20:360994デフォルトの名無しさん
2008/10/25(土) 22:21:270995デフォルトの名無しさん
2008/10/25(土) 22:31:16フォントと言ったらID3DXFont、バッファと言ったらID3DXBuffer、
どれだけ超能力が必用なんだよ?
0996デフォルトの名無しさん
2008/10/25(土) 22:32:23>Microsoft Direct3D を使ってスプライトを描画するプロセスを
>単純化する一連のメソッドを提供します。
マニュアルの中の人は、スプライトと言ってる件について
0997デフォルトの名無しさん
2008/10/25(土) 22:41:32馬鹿の考えはさっぱり理解出来ない
0998デフォルトの名無しさん
2008/10/25(土) 22:41:550999デフォルトの名無しさん
2008/10/25(土) 22:55:49【C++】 DirectX初心者質問スレ Part19 【C】
http://pc11.2ch.net/test/read.cgi/tech/1224942911/
1000デフォルトの名無しさん
2008/10/25(土) 22:57:26よそ者だけど乙
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。