くだすれDirectX(超初心者用) part.2
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2007/03/10(土) 23:03:20もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
DirectX使いが優しくコメントを返しますが、
お礼はDirectXの布教と初心者の救済をお願いします。
DirectX Home Page
http://www.microsoft.com/japan/windows/directx/
前スレ:http://pc11.2ch.net/test/read.cgi/tech/1132965206/
0002デフォルトの名無しさん
2007/03/10(土) 23:07:470003デフォルトの名無しさん
2007/03/10(土) 23:08:14DirectShowを用いたプログラムを組んでいるんですが、
この、エラーコードの一覧というのはあるんでしょうか。
0004デフォルトの名無しさん
2007/03/11(日) 02:17:47>>3 このエラーコードて、どの?
DirectShow全般ってことなら
ヘルプにある、「DirectShowに固有のHRESULT値」ってやつがそうじゃないの?
00054
2007/03/11(日) 02:20:49目次でいうと、
[DirectShow]-[DirectShowリファレンス]-[定数とGUID]の下の
[エラーコードと成功コード]ってとこに書いてある。
0007デフォルトの名無しさん
2007/03/11(日) 14:28:59D3DXCreateTexture()で空のテクスチャを作れる所まで分かりました。
あとは、読み込んだデータをどのようにテクスチャとしてDirectXに登録するかなんですが、よろしく御願いします。
0008デフォルトの名無しさん
2007/03/11(日) 14:39:010009デフォルトの名無しさん
2007/03/11(日) 15:01:360011デフォルトの名無しさん
2007/03/12(月) 01:34:08direct x 診断ツールで
direct xの機能が全部利用できませんになってます
ラグナロク?オンラインやろうとしたんですけど FAQみたらdirect xの問題ぽかったので
調べてみましたがよくわかりません
ぐらふぃっくはIntel Graphics Media Accelerator 900(915G)です
お願いします
0012デフォルトの名無しさん
2007/03/12(月) 01:41:210013デフォルトの名無しさん
2007/03/12(月) 01:54:45スレ違いじゃない。
板違いでもない。
そう、気違いだ。
0014デフォルトの名無しさん
2007/03/12(月) 02:12:340015デフォルトの名無しさん
2007/03/12(月) 02:25:31今は安く買えるんだから適当なのを買いなさいよ。
0016デフォルトの名無しさん
2007/03/12(月) 02:43:453つ以上、思い当たる点があればアナタの性格はひん曲がっており、ネガティブ負け組人生を歩んでいます。
□派遣先の人事権のある社員の意見はたとえ間違っていてもマンセーする
□派遣先から「いつまでもここで仕事してくださいね(安い金でw)」と言われて嬉しい
□自社で仕事なんてできるわけがない
□派遣労働の問題点の話題が出ると感情剥き出しにして反論する
□派遣労働の問題を指摘する人は嫌いだ
□派遣先には仕事だけでなく自分のプライベートについても指示して欲しい
□奢ってくれる派遣先正社員は尊敬する
□自分の月額金額を知らないのは当然だ
□派遣先正社員より自分の生涯収入が低いのは当然だ
□派遣先に尻尾を振り、いつまでも派遣を続けることが大切だ
0017デフォルトの名無しさん
2007/03/12(月) 07:09:45どんだけ古いPCでゲーム動かそうとしてるんだ?
最近売ってるPCならオンボードでも十分動く場合が多い。
0018デフォルトの名無しさん
2007/03/12(月) 08:13:44ム板にプログラムを組まない奴が何の用だ?
0019デフォルトの名無しさん
2007/03/12(月) 15:34:39マジレスすると、オンボードのグラフィック能力だと、いまどきのゲームはキツイ。
デスクトップなら、安めなグラフィックボードを増設しな。
ノートPCならあきらめる
あと、板違いな
ネトゲ質問
http://live25.2ch.net/mmoqa/
0020デフォルトの名無しさん
2007/03/12(月) 22:24:37そら昔のオンボードの場合で今のオンボードは大抵シェーダー2.0が動くびっくり性能。
0021デフォルトの名無しさん
2007/03/12(月) 23:40:44元の話題のはIntelの915だぞ。
0022デフォルトの名無しさん
2007/03/13(火) 00:34:28元々は正社員だったのに取引先にフリーのほうが稼げるとか騙されて派遣やってるバカのことw
前の会社を裏切り、結局派遣先からも騙されてる。まさに裏切派遣人生
そもそも信頼されてるなら直接契約するか正社員にするはずだが、派遣会社経由って舐められ杉
自分でも騙され裏切れられてることは薄々わかってるから派遣問題の話が出るとウッキー!って逆ギレw
自分で決めて派遣やってる癖に逆ギレしちゃって人間として本当に恥ずかしい
0023デフォルトの名無しさん
2007/03/13(火) 01:07:29915GはPixelShader2.0に対応しているが?
0024デフォルトの名無しさん
2007/03/13(火) 02:00:46915Gはピクセルシェーダーは2.0を搭載しているが
頂点シェーダーに関してはまったく搭載してないからな・・・
ただでさえCPUはボトルネックになりやすいのに
頂点処理をCPUエミュレートだけでやれってのが無茶な話だよ。
0025前スレ997
2007/03/13(火) 11:01:03指示に従って設定したら、その問題は解決しました。
ありがとうございます。
しかしながら、付録CDのソースをそのままビルドしてもまだエラーが出ます。
'char [〜]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
という物なのですが・・・・新しい機能? という事はこの本が古いという事なのか・・・
DirectX9とVC++.NET対応となっているのに・・・・
static charまたはconst char型の変数を変換するところでいくつもこのエラーが出ています。
もちろんヘルプも色々探しましたが、始めたばかりなのでどこも意味不明です。。
他の本でDirectXを学べばそのうち分かるのかもしれませんが、まずは真似事でも
プログラムを組んでみたいので、このエラーを解決する方法があれば
ご教授くださいませ。
0026デフォルトの名無しさん
2007/03/13(火) 11:05:15プロジェクトのプロパティを開いて構成プロパティ→全般→文字セットで
マルチ バイト文字セットを使用するに変更。
0027前スレ997
2007/03/13(火) 13:43:10見事に解決いたしました! ありがとうございます。
最後に、もう一つエラーが残ってまして・・・・
ID3DXSprite::Draw' : 関数に 7 個の引数を指定できません。
という物なのですが、MSDNで見ても引数七つあったんですが・・・
これも解決策があればお教えください。
あと、警告で
ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。
データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
とあったので、メモ帳からソースファイルを開いてUnicode形式で保存したのですが、
何度やってもこの警告が出てしまいます。
警告なのでこれは無視してもかまわないのでしょうか?
0028デフォルトの名無しさん
2007/03/13(火) 14:58:12なんだっけなー。 d3d9types.hの1800行目付近にある
コメント消せばおkだとおもたけど細かいトコ忘れたわ。
「d3d9types.h FOUR_CC」とかでぐぐってみたらでてくるんじゃね?
0029前スレ997
2007/03/13(火) 17:11:24それで検索したら、同じような事例が見つかり、警告はなくなりました!
そして、ID3DXSprite::Drawの引数の事ですが、調べていったところ、
どうやらMSDNの内容が日本語と英語ので異なっていたようで、
英語の方のサイトに行って、引数を正しい五つに直したところまで行ったのですが、
今度は
'ID3DXSprite::Draw' : 3 番目の引数を 'D3DXVECTOR2 *__w64 ' から 'const D3DXVECTOR3 *' に変換できません。(新しい機能 ; ヘルプを参照)
指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
というエラーが出ました。。さっきと同じようなエラーなのですが、
文字セットは確かにマルチバイト文字になっているし・・・
これさえ解決すればビルドできそうなのですが。。
0030デフォルトの名無しさん
2007/03/13(火) 17:27:53なかなか更新されないので、英語MSDNを見るのが定説なんだっけ。
もしくは使わない。
>>29
DirectXを勉強する前に学ぶべき事があるようだ。(型関係)
0031デフォルトの名無しさん
2007/03/13(火) 22:32:47そのエラーが理解できないって相当まずいぞ・・・
0032前スレ997
2007/03/14(水) 00:14:37この本は自分にはまだ早いくせに時代的には古いという物だったようです。
正直、やったのはC++の入門だけで、DirectXを勉強し始めてもいないので、
出直してきます。
0033デフォルトの名無しさん
2007/03/14(水) 01:28:030034デフォルトの名無しさん
2007/03/14(水) 09:24:40イルリッヒとかseleneとか噛ますのとどっちが楽?
0035デフォルトの名無しさん
2007/03/14(水) 10:06:35ライブラリに手を出すほうが楽だろ思うけど、
そのへんは使うライブラリ次第かもな。
0036デフォルトの名無しさん
2007/03/15(木) 06:24:19この先どうしたらいいですか?
0037デフォルトの名無しさん
2007/03/15(木) 11:48:58身長を伸ばす
0038デフォルトの名無しさん
2007/03/15(木) 12:07:580039デフォルトの名無しさん
2007/03/15(木) 18:01:160040デフォルトの名無しさん
2007/03/16(金) 01:24:57構文エラーとか、そういうのがずらーーーーーーーーっと。
2007年2月のSDKをインストールしただけなんだが、何かやり忘れてることある?
0041デフォルトの名無しさん
2007/03/16(金) 02:16:280042デフォルトの名無しさん
2007/03/16(金) 02:51:45あと、C++のコンパイラはVC++ EE使ってます
0043デフォルトの名無しさん
2007/03/16(金) 02:56:140044デフォルトの名無しさん
2007/03/16(金) 03:19:450045デフォルトの名無しさん
2007/03/16(金) 03:50:19最近の若い衆は質問の仕方が下手で困る。
いきなり何かを指さして「スミマセンこれわからないんですけど?」
と言われたって、こっちは何がわからないのかわからないんですけど^^;
すまん愚痴ったorz
0046デフォルトの名無しさん
2007/03/16(金) 03:50:21いきなりDirectXやろうとしてるようみえるんだが
0047デフォルトの名無しさん
2007/03/16(金) 03:57:31・普通のプログラムのコンパイルはできるのか?
・どんなエラーがでるの?
0048デフォルトの名無しさん
2007/03/16(金) 08:57:26・そのサンプルはいつ作られたものなのか。
DirectX9.0は無駄に長い歴史があるので
マイナーバージョンアップでも仕様変更が結構入っていて
時期によってはサッパリ違うこともある。
0049デフォルトの名無しさん
2007/03/16(金) 17:24:06ウィンドウモードで描画していて
ウィンドウサイズ変更すると
描画が引き伸ばされるんですが
回避するにはどうしたらいいですか?
0050デフォルトの名無しさん
2007/03/16(金) 17:27:460051デフォルトの名無しさん
2007/03/16(金) 17:32:28ツールの描画として使ってるからウィンドウサイズ変えまくり前提なんだよチンカス
>>49
WM_SIZEでPARAMのWidthとHeightにサイズを入れて
device->Reset
0052デフォルトの名無しさん
2007/03/16(金) 17:36:450053デフォルトの名無しさん
2007/03/16(金) 17:38:390054デフォルトの名無しさん
2007/03/16(金) 17:41:29おまえは誰なんだよ
0055デフォルトの名無しさん
2007/03/16(金) 18:21:39ウィンドウの縦横比も中身の絵の縦横比に合わせて変化させるみたいな仕様にしたら地獄みたなぁ
AdjustWindowRectだっけ?
なんか中身にあわせてウィンドウサイズを確定する仕様にするとすげー作りにくい
なんでウィンドウのサイズは自由に変更できるようにして中身の絵の縦横比の比率は
デフォルトを維持したままウィンドウと中身の絵とで隙間ができた部分は
別の色で埋めるようにしたほうが綺麗にいくかも。
まあ、仕様にまで踏み込むので仕様を決めた担当者と話しあう必要が出てくるけど
なにいってるかわからん?
0056デフォルトの名無しさん
2007/03/16(金) 18:54:120057デフォルトの名無しさん
2007/03/16(金) 19:58:08難しいよー。
まず、どのメッセージ拾ってサイズ変更するのが適切か?ってのを見定めなきゃならん
んで多分変更後のウィンドウのサイズが流れてくるからそこから中身の絵のサイズを算出して
それに対して今度はウィンドウのサイズを調節してってやると結構面倒だと思われ
ウィンドウのサイズ取得→クライアントのサイズを算出→中身の絵のサイズを合わせる
→中身に合わせてクライアントのサイズを算出→クライアントからウィンドウのサイズを決定
って順にやらなきゃいけないから
中身の絵の比率を維持したままウィンドウのサイズを決定するようにすると
ちょっと面倒な計算になるよ。
固定幅の枠もあるから、単純に比率ってわけにもいかんし、メッセージごとよくわからんし。
俺はこの計算がなんかうまくいかんかった。
完璧にサポートしようとするとすげーきつい
WM_SIZINGとかWM_SIZEとかWM_EXITSIZEMOVEとか
なんかメッセージごと処理の仕方違うし結構苦戦した覚えがある。
0058デフォルトの名無しさん
2007/03/16(金) 21:10:03ツール作る時にウィンドウサイズ変えるたびReset()呼び出すなんてアホの子がすることだ。
0059デフォルトの名無しさん
2007/03/16(金) 21:37:11え?何の話してるの?
もしかして>>55,57の話しじゃない?
0060デフォルトの名無しさん
2007/03/16(金) 22:05:144分割画面の可変サイズウィンドウのモデルビューアーを
作った時は画面サイズや比率に関しては全く苦労しなかったぞ。
中身の絵の比率を維持したままウィンドウサイズを決定するのではなく、
変更されたウィンドウサイズに合わせて中身の絵が同じ比率になるようにすればよい。
0061デフォルトの名無しさん
2007/03/16(金) 22:17:00転送時にstretchbltなり使ってやって描画領域にあわせてやるというやり方か
0062デフォルトの名無しさん
2007/03/16(金) 22:19:550063デフォルトの名無しさん
2007/03/17(土) 02:59:58そうしないとピクセルと1:1にならんから汚く見える
0064デフォルトの名無しさん
2007/03/17(土) 03:29:16ウインドウモードは成功、だがフルスクリーンは失敗
(CreateDeviceから永久に戻ってこない)
メインスレッドでやれば両方成功するのは確認した
ひょっとして別スレッドってのはタブーなのか???
0065デフォルトの名無しさん
2007/03/17(土) 08:41:41バッファの大きさに関係なくSetViewportで1:1にすりゃいいだけじゃん。
それじゃ4分割ウィンドウで4つのウィンドウの大きさが別々の時とか対応できないだろ。
0066デフォルトの名無しさん
2007/03/17(土) 08:47:250067デフォルトの名無しさん
2007/03/17(土) 09:14:30CreateとResetはウィンドウ生成と同じスレッドの必要がある。
リファレンスに書かれていた希ガス。
0068デフォルトの名無しさん
2007/03/17(土) 11:22:26可視範囲の決め方が違うわね。どうでもいいけど。
0069デフォルトの名無しさん
2007/03/17(土) 11:31:51CreateDeviceのところにもResetのところにも、フォーカスウィンドウを作成したスレッドとは
別スレッドのからは駄目ってしっかり書いてあるだろう。ついでにReleaseも駄目。
0070デフォルトの名無しさん
2007/03/17(土) 12:25:42他のスレッドからは完全に隔離するようにしないとね
でも同人ソフトとかで描画が別スレッドになってそうなソフトって見たことない
0071デフォルトの名無しさん
2007/03/17(土) 13:18:340072デフォルトの名無しさん
2007/03/17(土) 13:21:560073デフォルトの名無しさん
2007/03/17(土) 13:46:00スレッド分けの意義は薄い。
次期GPUで仮想化が実現されたら、スレッド化のメリットは多少ありそう。
今までみたいにステートの保存、復帰を考えなくてよくなるみたいな。
0074デフォルトの名無しさん
2007/03/17(土) 13:58:01最悪2フレームくらい描画が遅延するんだっけ?
0075デフォルトの名無しさん
2007/03/17(土) 17:09:210076デフォルトの名無しさん
2007/03/17(土) 19:45:29Presentで範囲指定すればよかった。
0077デフォルトの名無しさん
2007/03/17(土) 19:58:36詳しく説明されている本かサイトは無いでしょうか?
0078デフォルトの名無しさん
2007/03/18(日) 01:21:08ファイルロードとストリームサウンドは確かに別スレッドにするな。
でもウィンドウスレッドと描画スレッドはネットワークゲームでない限り分けないな。
0079デフォルトの名無しさん
2007/03/18(日) 02:38:59VOID RayIntersect()
{
DWORD m_dwNumIntersections; // Number of faces intersected
// Rayの設定
D3DXVECTOR3 vecStart,vecEnd,vecDirection;
vecStart=Thing[1].vecPosition;
vecEnd=D3DXVECTOR3(0,-1.0f,0);
vecDirection=vecEnd-vecStart;
BOOL bHit;
DWORD dwFace;
FLOAT fBary1, fBary2, fDist;
D3DXIntersect(Thing[2].pMesh, &vecStart, &vecDirection, &bHit, &dwFace, &fBary1, &fBary2, &fDist, NULL, NULL);
if( bHit ) {
m_dwNumIntersections = 1;
MessageBox(0,"交差してます。",NULL,MB_OK);
} else {
m_dwNumIntersections = 0;
}
}
008079
2007/03/18(日) 02:41:29bHitにTRUEが帰ってきません。
何か見落としているところはあるでしょうか?
0081デフォルトの名無しさん
2007/03/18(日) 07:34:350082デフォルトの名無しさん
2007/03/18(日) 15:30:46今すぐ派遣をやめて履歴書を書け!
そして就職しろ
身長や学歴は今更変えられないが、職歴は努力でなんとでもなる
派遣はまったく職歴にならんぞ
0083デフォルトの名無しさん
2007/03/18(日) 15:38:200084デフォルトの名無しさん
2007/03/18(日) 17:53:31今から医学部受験しろとかいうのかね
0085デフォルトの名無しさん
2007/03/18(日) 18:04:400086デフォルトの名無しさん
2007/03/18(日) 20:12:58だけど語学留学したりいい歳こいてバカ大学にいったりしたらもう死んだも同然
派遣を辞めて普通に就職するのが人生リストラには一番よい
0087デフォルトの名無しさん
2007/03/18(日) 20:56:48まあ先天的に頭が悪いから無理だろうけど。
0088デフォルトの名無しさん
2007/03/18(日) 22:22:35ttp://www.uploda.org/uporg737128.zip.html
もう処理速度が(Windowモードでも)高速化した状態なんですか?
0089デフォルトの名無しさん
2007/03/18(日) 23:09:07受信PASSが不明な件
何か全然解らんが、DDrawを初期化したからと言って、
別にGDIが高速化される訳じゃないぞ。
0090デフォルトの名無しさん
2007/03/18(日) 23:23:53pはsageです。
ではハードに接続する固有のWinAPIがあるわけですね?
0091デフォルトの名無しさん
2007/03/18(日) 23:41:57DirectDrawを魔法か何かと勘違いしていないか?
用意されているインタフェイスを適切に使用しない限り高速化もへったくれもない。
0092デフォルトの名無しさん
2007/03/18(日) 23:44:33009379
2007/03/18(日) 23:59:33レスありがとうございます。
vecStart=Thing[1].vecPosition;
vecEnd=D3DXVECTOR3(0,-1.0f,0);
vecDirection=vecEnd-vecStart;
なんですが、y軸方向だけ当り判定をしようとしています。
Thing[1].vecPotionから(0,-1.0f,0)の方向へレイをとばしているつもりなのですが、
これでは不適切なのでしょうか?
0094デフォルトの名無しさん
2007/03/19(月) 00:22:21vecDirection=D3DXVECTOR3(0,-1.0f,0);
0095デフォルトの名無しさん
2007/03/19(月) 00:58:13それはvecPositionから(0,-1,0)の座標に向かうベクトル。
vecPositionが(-1,-1,0)だったら、X軸と平行な方向(ようするに真横)に向かうベクトル。
0096デフォルトの名無しさん
2007/03/19(月) 04:50:462種類のα値を使って抜き色と半透明を同時に実現したいのですが、
SetRenderStateでαテストをONにして不要部分を抜く(ddsテクスチャのα値を使う)
SetTextureStageStateで、頂点のα値(128)を使うようにする
SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA) で半透明化する
の方法だと、抜き色されて不透明か、半透明だけか、しか出来ません。
同時に実現するにはどうやればよいでしょうか?
0097デフォルトの名無しさん
2007/03/19(月) 07:17:19テクスチャステージで頂点αとテクスチャαを乗算するようにする。
SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE)
SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE)
SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE)
0099デフォルトの名無しさん
2007/03/19(月) 11:26:33ちょっと道間違えて無い?
少なくとももう確かな資料をもってる人間からいって少ないよ
ヘルプも配布されてないだろうし
書籍も昔のみつけてくるしかないし
俺もDirectDraw触ってたけどさすがにもうほとんど覚えてないし使ってない
みんな似たような状態だと思われ
RGBのフォーマットを色々対応するだけで嫌になるよ
010098
2007/03/19(月) 11:46:493Dが主流になってきてるとはいえ、
趣味で2Dのゲーム作りたいんですよ。
ノートじゃスペックも足りないし。
どうすりゃいいんだorz
0101デフォルトの名無しさん
2007/03/19(月) 12:03:350102デフォルトの名無しさん
2007/03/19(月) 12:21:47もしかしてDirectGraphicsが3D専用だと思っている?
0103デフォルトの名無しさん
2007/03/19(月) 12:55:45struct TLVERTEX_UV
{
D3DXVECTOR3 pos;
float rhw;
D3DCOLOR color;
D3DXVECTOR2 uv;
};
#define TLVERTEX_UV_FVF (D3DFVF_XYZRHW| D3DFVF_DIFFUSE | D3DFVF_TEX1)
0104デフォルトの名無しさん
2007/03/19(月) 12:56:270105デフォルトの名無しさん
2007/03/19(月) 13:27:55あああ、ほんと根本的な計算が間違ってましたね…
ありがとうございました。
0106デフォルトの名無しさん
2007/03/19(月) 13:45:29出来ました!ありがとうございます。
どうやらテクスチャステージを勘違いしていたようです。
0107デフォルトの名無しさん
2007/03/19(月) 15:51:273D座標を描画される2D座標に変換するにはどうすればいいですか?
0108デフォルトの名無しさん
2007/03/19(月) 16:24:56011098
2007/03/19(月) 18:51:260111デフォルトの名無しさん
2007/03/19(月) 19:29:21とりあえず
動作させる予定のPCのスペックと
これは諦める予定のPCのスペックを決めたらどうなの?
PC−9800とかPC98−NXとかサポートしてもしょうがないっしょw
0112デフォルトの名無しさん
2007/03/19(月) 22:31:12どっかの調査でWindows使用者の8割くらいはXPで残りは2Kって話だった希ガス。
そもそも最近はグラボメーカーも2000/XP/VISTA用のドライバしか作ってないし。
今3Dが処理(ラスタライズすら)できないビデオカードって
一般人が入手するのは不可能な気がするんだが。
011379
2007/03/20(火) 00:21:29vecStart.x = Thing[1].vecPosition.x;
vecStart.y = Thing[1].vecPosition.y;
vecStart.z = Thing[1].vecPosition.z;
vecDirection.x = Thing[1].vecPosition.x;
vecDirection.y = Thing[1].vecPosition.y-1.0f;
vecDirection.z = Thing[1].vecPosition.z;
上のように指定しましたが、やはり当りは帰ってきていません。
上で本当に、Startからy軸方向、負の向きにレイは伸びているのでしょうか?
0114デフォルトの名無しさん
2007/03/20(火) 00:27:200115デフォルトの名無しさん
2007/03/20(火) 11:30:300116デフォルトの名無しさん
2007/03/20(火) 11:37:14今はver9だっけ?
3D描画がひたすら簡単になって、
2D描画がめんどくさくなったって話をチラっと聞いたのだが、
そこんとこ軽く教えてくれ。
以前は3DをLightWaveで作って、
ファイルの拡張子をxに書き換えて、
xファイルを読み込むヘッダーを自作して、
2Dと同じようにビデオメモリに貼り付ける技法以外で3D描画は難しかったと思うたが。
0117デフォルトの名無しさん
2007/03/20(火) 11:46:113D描画も2D描画も非常に簡単にできる。
DirectDraw至上主義な人には理解できないかもしれないが・・・。
今はD3DXの関数1つでXファイルの読み込みができる。
0118デフォルトの名無しさん
2007/03/20(火) 11:58:590119デフォルトの名無しさん
2007/03/20(火) 12:41:46へぇ、結局Xファイルを使うこと自体は変わらんのか。
D3DX?
なんか便利そうだなぁ。
新バージョンに手ぇつけてみようかな。
勉強してみる。ありがとう。
あ、もう一つ聞いてもいい?
C++6.0でしかDXは扱ったことないのだが、
VC6.0やらVB6.0やらVB.NETやらでも扱える?
0120デフォルトの名無しさん
2007/03/20(火) 16:48:14今はVisualC++.NET2005の無料版もあるしVC6とか記憶から消し去ったほうがいい。
あとは別にXファイルにこだわる必要はない。
俺は自前のフォーマットに変換して使ってる。
0121デフォルトの名無しさん
2007/03/20(火) 17:10:13そうなのか…
じゃ、職場のマシンでこっそり作るのは無理かw
Xファイルでなくてもいいのはちょっと嬉しいかも。
>VisualC++.NET2005の無料版
これ自宅マシンに入れて使ってみることにするよ。
ありがとう。
0122デフォルトの名無しさん
2007/03/20(火) 17:33:31いやいやいや・・・Xファイル使わないでもモデル表示できるのは
初期のDirectXからずっとそうだろw
たんに自分で頂点データ、インデックスデータ、マテリアル、アニメーションを
全部フォーマット決めて管理・描画するようにすればいいだけじゃんw
無料版はWindowsのSDKが入ってないからPlatformSDKも一緒に入れれ。
0123デフォルトの名無しさん
2007/03/20(火) 17:36:274万弱でアップグレードできたんだけどな。
とっくにキャンペーン終わったからもう無理だが。
0124デフォルトの名無しさん
2007/03/20(火) 19:06:160125デフォルトの名無しさん
2007/03/20(火) 19:52:400126デフォルトの名無しさん
2007/03/21(水) 13:57:05>>94
0128デフォルトの名無しさん
2007/03/21(水) 17:06:260129デフォルトの名無しさん
2007/03/21(水) 17:28:360130デフォルトの名無しさん
2007/03/21(水) 17:34:19よくわかってないっぽいから
もっと別のところが間違っている可能性は大いにあるな
0131デフォルトの名無しさん
2007/03/21(水) 22:11:580132デフォルトの名無しさん
2007/03/21(水) 22:19:050133デフォルトの名無しさん
2007/03/21(水) 23:11:570134デフォルトの名無しさん
2007/03/25(日) 10:38:420135デフォルトの名無しさん
2007/03/25(日) 12:09:020136デフォルトの名無しさん
2007/03/26(月) 00:06:25画面パチン言うから
一番大きい解像度で作っておいて
小さい解像度の時小さく書いて拡大すれば
0137デフォルトの名無しさん
2007/03/26(月) 01:48:58返答ありがとうございました
0138デフォルトの名無しさん
2007/03/26(月) 12:13:32そのアナログ的な言い回しになぜだか和んだ
013979
2007/03/26(月) 23:56:22{
DWORD m_dwNumIntersections;
D3DXVECTOR3 vecStart,vecEnd,vecDirection;
vecStart=Thing[1].vecPosition;
vecEnd=D3DXVECTOR3(0,-1,0);
vecEnd+=vecStart;
D3DXMATRIX matWorld;
D3DXMatrixTranslation(&matWorld,Thing[2].vecPosition.x,Thing[2].vecPosition.y,Thing[2].vecPosition.z);
D3DXMatrixInverse(&matWorld,NULL,&matWorld);
D3DXVec3TransformCoord(&vecStart,&vecStart,&matWorld);
D3DXVec3TransformCoord(&vecEnd,&vecEnd,&matWorld);
vecDirection=vecEnd-vecStart;
BOOL bHit=FALSE;
DWORD dwFace;
FLOAT fBary1, fBary2, fDist;
D3DXIntersect(Thing[2].pMesh, &vecStart, &vecDirection, &bHit, &dwFace, &fBary1, &fBary2, &fDist, NULL, NULL);
if(bHit) {
m_dwNumIntersections = 1;
MessageBox(0,"交差してます。",NULL,MB_OK);
}
else {
m_dwNumIntersections = 0;
}
}
014079
2007/03/27(火) 00:01:36D3DXIntersectの使い方はこれであっているでしょうか?
0141デフォルトの名無しさん
2007/03/27(火) 19:06:24お前のアホさは黄金聖闘士の域にまで達しているようだなっ!
0142デフォルトの名無しさん
2007/03/27(火) 21:52:47素直にD3DXMesh使ってD3DX系の関数でコリジョンとりなよ。
リファレンスの説明の日本語もろくに読んでないんだろ
0143デフォルトの名無しさん
2007/03/28(水) 03:32:03バグの迷宮に迷い込んでしまった
0144デフォルトの名無しさん
2007/03/28(水) 09:33:26一応まじめに聞いてやる。
Thing[]ってのがなにかわからん。
0145140
2007/03/28(水) 14:22:42リファレンスは日本語版も出ているのでしょうか。。
Thing[i]はこれです。
struct THING
{
LPD3DXMESH pMesh;
LPD3DXFRAME pFrameRoot;
LPD3DXANIMATIONCONTROLLER pAnimController;
D3DMATERIAL9* pMeshMaterials;
LPDIRECT3DTEXTURE9* pMeshTextures;
DWORD dwNumMaterials;
D3DXVECTOR3 vecPosition;
D3DXMATRIX matRotation;
D3DXMATRIX matWorld;
FLOAT fHeading;
};
0146デフォルトの名無しさん
2007/03/28(水) 16:21:18背景を表示しようと思って400×400ぐらいのbmpファイルを
表示しようとしましたが
どうしてもCPU使用率が100%になりFPSが4ぐらいで動作が遅くなってしまいます
jpgに変えても同じでした
画像ファイルが大きすぎるのでしょうか?
それとも他に方法はありますか?
くだらない質問ですいませんorz
0147デフォルトの名無しさん
2007/03/28(水) 16:27:04ソースみせろ
0148デフォルトの名無しさん
2007/03/28(水) 16:38:45{ // 画像ファイルを読み込む
m_Texture.Read(g_pD3DDevice, "DataForWork/back.jpg");
// 初期位置をセット
m_vec2.x = 0;
m_vec2.y = 0;
// テクスチャの範囲を指定する
m_Rect.left = 0;
m_Rect.top = 0;
m_Rect.right = 450;
m_Rect.bottom = 450;
}
void CJikiShot::Move(void)
{ m_Texture.Read(g_pD3DDevice, "DataForWork/back.jpg");
D3DXMatrixTransformation2D(&m_Matrix, NULL, 0, NULL, NULL, 0, &m_vec2);
}
// 描画
// 引数、戻値なし。
void CJikiShot::Draw(void)
{
// 座標変換してから、スプライト描画
g_pSprite->SetTransform(&m_Matrix);
g_pSprite->Draw(m_Texture, &m_Rect, NULL, NULL, 0xffffffff);
}
すいません今はソースがうpできない状態なので
思い出して書きました
これを無限ループさせてます
まだ初めて3日なのでアホなミスしてるかもしれん
0149デフォルトの名無しさん
2007/03/28(水) 16:39:51連投スマソ
0150デフォルトの名無しさん
2007/03/28(水) 16:52:23{ m_Texture.Read(g_pD3DDevice, "DataForWork/back.jpg");
D3DXMatrixTransformation2D(&m_Matrix, NULL, 0, NULL, NULL, 0, &m_vec2);
}
毎回テクスチャロードしてる予感
0151デフォルトの名無しさん
2007/03/28(水) 16:57:38Initで読み込めばいいだけだったのですねorz
ありがとうございました
家に帰り次第試してみます
もしかしてMoveクラスそのものもいらないのでしょうか
0152デフォルトの名無しさん
2007/03/28(水) 17:04:26MoveとDrawは、分けといた方がいい
フレームスキップや3Dの半透明考慮したZソートに使える
0153デフォルトの名無しさん
2007/03/28(水) 17:11:14単純な質問に答えていただき
ありがとうございました
そうしてみます
0154デフォルトの名無しさん
2007/03/28(水) 20:04:25D3DXIntersectのドキュメントを読む限り
そのテストコードで間違いはないようだ。
しかし、無駄なコードが半分以上、
本質がぶれるので、テストをしたいなら
もっと、シンプルにすべき。
前半の変換は全部いらん。
以下のコードはHITするか?
しないならば、次の理由によると思われる。
・Thing[2]のメッシュがレイに当たらない形状をしている
VOID RayIntersect()
{
DWORD m_dwNumIntersections;
D3DVCTOR3 vecDirection = Thing[2].vecPositon - Thing[1].vecPositon;
BOOL bHit=FALSE;
DWORD dwFace;
FLOAT fBary1, fBary2, fDist;
D3DXIntersect(Thing[2].pMesh, &Thing[1].vecPositon, &vecDirection, &bHit, &dwFace, &fBary1, &fBary2, &fDist, NULL, NULL);
if(bHit) {
m_dwNumIntersections = 1;
MessageBox(0,"交差してます。",NULL,MB_OK);
}
else {
m_dwNumIntersections = 0;
}
}
0155デフォルトの名無しさん
2007/03/29(木) 00:22:22ありがとうございます。
そのまま判定してみましたが、HITしませんでした。
メッシュはメタセコイヤで作った正方形の平面をxファイルにしたものです。
ネットでD3DXIntersectの頁を見ましたが、他のページで見たことしか書いてありませんでした。
0156デフォルトの名無しさん
2007/03/29(木) 00:26:130157デフォルトの名無しさん
2007/03/29(木) 00:50:24当たるまで下げてみようとしましたが、
結局HITは帰ってこないままです。
0158デフォルトの名無しさん
2007/03/29(木) 01:19:24明らかにMeshが怪しい。
・XFileではなく、D3DXCreateBox等でMeshを作るとどうなるか
次点として
・D3DXIntersectはエラーを返していないか、一応確認するべし
・他にD3Dはエラーを返していないか、デバッグモードで確認する
0159デフォルトの名無しさん
2007/03/29(木) 19:57:44DirectXSDKのバージョンっていつごろでしたっけ?
0160デフォルトの名無しさん
2007/03/29(木) 20:32:040161デフォルトの名無しさん
2007/03/29(木) 21:39:000162デフォルトの名無しさん
2007/03/30(金) 05:35:260163デフォルトの名無しさん
2007/03/31(土) 18:29:370164140
2007/04/01(日) 00:27:11ありがとうございます。
言われたとおり、D3DXCreateBoxなどでメッシュを作ってみるとTRUEが帰ってきました。
xファイルからロードしたものでは、帰ってくる気配がありませんが、もう少し粘って見ます。
0165デフォルトの名無しさん
2007/04/01(日) 00:37:46視覚的に衝突しているかどうか見れないとわからんだろ。
0166デフォルトの名無しさん
2007/04/01(日) 00:48:57さすがに可視化くらいはしてるだろ。
まぁ164で当りが返ってきてるところを見ると、今更メッシュの形状は関係なさそうな希ガス
0167デフォルトの名無しさん
2007/04/01(日) 00:55:52レイも一緒にレンダリングしていましたが、CreateBoxにあたればTRUEが帰ってきます。
ロードしたxファイルのメッシュには、あたってるように見えても全く駄目です。
>>166
メッシュの形は、平らな平面のものにしてみましたが駄目でした。
0168デフォルトの名無しさん
2007/04/03(火) 18:27:14データを読み込んでメッシュを描画しています。
平面クリッピングを行い、メッシュの切断面を
ソリッドモデルとして表現したいのですが
良い方法はありませんか?
0169デフォルトの名無しさん
2007/04/03(火) 20:28:14ステンシルバッファを使えば簡単にできる。
0170デフォルトの名無しさん
2007/04/03(火) 20:28:19http://www.aya.or.jp/~sanami/peace/memorial/code31-40.html#CODE37
また、HLSLのclip()を使う方法もあるだろう
0171デフォルトの名無しさん
2007/04/03(火) 21:35:59>>170
ありがとうございます。
調べてみます。
0172168
2007/04/05(木) 12:45:08まずメッシュBの切断面だけ表示しようと思ったのですが
全く変化がありません。検討違いなことをやってるのでしょうか?
m_pD3DDev->Clear(0,NULL,D3DCLEAR_STENCIL | D3DCLEAR_ZBUFFER | D3DCLEAR_TARGET,
D3DCOLOR_XRGB(0,0,0),1.0,0);//バッファをクリア
m_pD3DDev->BeginScene();
m_pD3DDev->SetRenderState(D3DRS_STENCILENABLE,TRUE);//ステンシルバッファを有効に
m_pD3DDev->SetRenderState(D3DRS_STENCILFUNC,D3DCMP_ALWAYS);//常に合格
m_pD3DDev->SetRenderState(D3DRS_STENCILPASS,D3DSTENCILOP_REPLACE);
m_pD3DDev->SetRenderState(D3DRS_STENCILZFAIL,D3DSTENCILOP_REPLACE);
m_pD3DDev->SetRenderState(D3DRS_STENCILREF,0x1);
m_pD3DDev->SetRenderState(D3DRS_STENCILMASK,0x1);
m_pD3DDev->SetRenderState(D3DRS_STENCILWRITEMASK,0x1);
RenderMeshA();//メッシュAを描画
m_pD3DDev->Clear(0,NULL,D3DCLEAR_ZBUFFER | D3DCLEAR_TARGET,
D3DCOLOR_XRGB(0,0,0),1.0,0);//ステンシルバッファ以外をクリア
m_pD3DDev->SetRenderState(D3DRS_STENCILFUNC,D3DCMP_EQUAL);//ステンシルが1のところを描画
RenderMeshB();//メッシュBを描画
m_pD3DDev->EndScene();
m_pD3DDev->Present(NULL,NULL,NULL,NULL);
0173デフォルトの名無しさん
2007/04/05(木) 15:38:21全然違う。
メッシュBのZ値を描画
メッシュAの表面だけ描画しながらD3DRS_STENCILPASSでインクリメント
メッシュAの裏面だけ描画しながらD3DRS_STENCILPASSでデクリメント
これで断面の部分のステンシルが非ゼロになる。
ここでのメッシュAの描画はZ値を更新しないこと。
また、メッシュAがニアクリップにひっかからないように。
D3DRS_TWOSIDEDSTENCILMODEが使える環境ならメッシュAの処理は1回で
済ませることも可能。
0174デフォルトの名無しさん
2007/04/05(木) 15:39:09メッシュAは完全に閉じた形状であること。
0175168
2007/04/05(木) 19:22:21D3DCOLOR_XRGB(0,0,0),1.0,0);//バッファをクリア
m_pD3DDev->BeginScene();
m_pD3DDev->SetRenderState(D3DRS_STENCILENABLE,FALSE);//ステンシルバッファを無効に
m_pD3DDev->SetRenderState(D3DRS_ZWRITEENABLE,TRUE);//Zバッファ書き込み可
m_pD3DDev->SetRenderState(D3DR_CULLMODE,D3DCULL_NONE);//カリング無効
RenderMeshB();//メッシュBを描画
m_pD3DDev->SetRenderState(D3DRS_STENCILENABLE,TRUE;//ステンシルバッファを有効に
m_pD3DDev->SetRenderState(D3DRS_ZWRITEENABLE,FALSE);//Zバッファ書き込み不可
m_pD3DDev->SetRenderState(D3DRS_STENCILFUNC,D3DCMP_ALWAYS);//常に合格
m_pD3DDev->SetRenderState(D3DRS_STENCILPASS,D3DSTENCILOP_INCR);//インクリメント
m_pD3DDev->SetRenderState(D3DRS_STENCILZFAIL,D3DSTENCILOP_KEEP); //そのまま
m_pD3DDev->SetRenderState(D3DRS_STENCILREF,0x1);
m_pD3DDev->SetRenderState(D3DRS_STENCILMASK,0x1);
m_pD3DDev->SetRenderState(D3DRS_STENCILWRITEMASK,0x1);
0176168
2007/04/05(木) 19:23:22m_pD3DDev->SetRenderState(D3DR_CULLMODE,D3DCULL_CCW);//表面のみ
RenderMeshA();//メッシュAを描画
m_pD3DDev->SetRenderState(D3DRS_STENCILFUNC,D3DCMP_ALWAYS);//常に合格
m_pD3DDev->SetRenderState(D3DRS_STENCILPASS,D3DSTENCILOP_DECR);//デクリメント
m_pD3DDev->SetRenderState(D3DRS_STENCILZFAIL,D3DSTENCILOP_KEEP); //そのまま
m_pD3DDev->SetRenderState(D3DR_CULLMODE,D3DCULL_CW);//裏面のみ
RenderMeshA();//メッシュAを描画
m_pD3DDev->Clear(0,NULL,D3DCLEAR_ZBUFFER | D3DCLEAR_TARGET,
D3DCOLOR_XRGB(0,0,0),1.0,0);//ステンシルバッファ以外をクリア
m_pD3DDev->SetRenderState(D3DRS_ZWRITEENABLE,TRUE);//Zバッファ書き込み可
m_pD3DDev->SetRenderState(D3DRS_STENCILFUNC,D3DCMP_EQUAL);//ステンシルが1のところを描画
m_pD3DDev->SetRenderState(D3DRS_STENCILPASS,D3DSTENCILOP_KEEP);//そのまま
m_pD3DDev->SetRenderState(D3DRS_STENCILZFAIL,D3DSTENCILOP_KEEP); //そのまま
m_pD3DDev->SetRenderState(D3DR_CULLMODE,D3DCULL_NONE);//カリング無効
RenderMeshB();//メッシュBを描画
m_pD3DDev->EndScene();
m_pD3DDev->Present(NULL,NULL,NULL,NULL);
これでもうまくいきません。根本的におかしいのでしょうか?
0177デフォルトの名無しさん
2007/04/05(木) 20:06:34あと、根本的な問題としてステンシルバッファを作成してあるのか?
(デプスバッファとセットの物なので個別に作成するわけではないが)
MASK系でわざわざ1bitしか使わないようにしているのには何の意味が?
(今回は1bitでも問題ないが)
原理を理解していれば、1ステップずつ描画させていけば問題点は
すぐに分かると思うが。
0178168
2007/04/05(木) 21:43:16すみませんでした。
おっしゃる通りでステンシルバッファを作成していませんでした。
CreateDevice()で、バッファを作成すれば
表示はされるようになったので、何とかなりそうです。
ありがとうございました。
0179デフォルトの名無しさん
2007/04/06(金) 13:50:350180デフォルトの名無しさん
2007/04/06(金) 14:05:020181デフォルトの名無しさん
2007/04/06(金) 19:15:000182デフォルトの名無しさん
2007/04/08(日) 00:16:343Dモデルを左右反転するにはどうすればいいのでしょうか?
Matrix.CreateScale(-1, 1, 1)でいけるかと思ったんですが
表示がおかしくなるだけでした
0183デフォルトの名無しさん
2007/04/08(日) 00:34:260184デフォルトの名無しさん
2007/04/08(日) 01:00:41カリングでググるとよろし
0186デフォルトの名無しさん
2007/04/08(日) 14:36:18何軸に対して反転するんだ?
表示がおかしくなるのは、それに対する考慮が
抜けてるからだろう。
0187デフォルトの名無しさん
2007/04/08(日) 15:29:13どちらのレスもふざけてるってほどふざけたレスじゃないとおもうw
0188デフォルトの名無しさん
2007/04/08(日) 19:08:17ここのページでプログラムの内容はあまり理解せず、ゲームを作ってきた者です。
スケルトンソース使って大体思い通りのものは作れるようになったつもりです。
そして最近加算合成がしてみたいと思ったのですが、やり方がよくわかりません。
スプライトを使って加算合成する方法はないのでしょうか?
やり方はなんであれ簡単なサンプルソースのリンクなどを張っていただくと助かります。
0189デフォルトの名無しさん
2007/04/08(日) 20:29:58D3DRS_ALPHABLENDENABLE, D3DRS_SRCBLEND, D3DRS_DESTBLEND
を設定するだけでできる。
設定の仕方は「ブレンドファクター121」でググれば色々例がある。
DirectX6の頃の解説だけど、画像付きでそこそこ分かりやすいと思う。
0190デフォルトの名無しさん
2007/04/08(日) 20:52:02182ですが理解しました
0191デフォルトの名無しさん
2007/04/08(日) 21:40:20ごめんなさい、いままでSpriteを使って表示していたので、
その画像合成定義みたいなのをどこに書けばいいのかわかりません。
どこか短くてわかりやすいソース等ないでしょうか?
0192デフォルトの名無しさん
2007/04/08(日) 21:48:29189のキーワードでググるという知恵もないのなら、やめた方がいいと思うよ。
0193デフォルトの名無しさん
2007/04/08(日) 22:01:49最低限の段階、Direct3Dのチュートリアルは終わらせたの?
0194デフォルトの名無しさん
2007/04/08(日) 22:13:16そこのサイトで勉強するのはやめとけ。
そこの管理人は自分の作ったしょぼいライブラリを使わせたいだけ。
何の勉強にもならん。dllだから中身も見れんし。
0195デフォルトの名無しさん
2007/04/08(日) 22:17:46ソースつきのライブラリなんて腐るほどあるしな。
0196デフォルトの名無しさん
2007/04/08(日) 22:20:500197デフォルトの名無しさん
2007/04/09(月) 01:03:03見れないんだ。
0198デフォルトの名無しさん
2007/04/09(月) 10:47:250199デフォルトの名無しさん
2007/04/15(日) 09:07:360200デフォルトの名無しさん
2007/05/14(月) 22:22:51DIMOUSESTATE2 mouseInfo;
マウスデバイス->GetDeviceState( sizeof(DIMOUSESTATE2), mouseInfo );
↑これでマウス情報を得た後にmouseInfo.XlやmouseInfo.Ylに入っている数値って
現在のマウス座標からの増減のような気がするんですけど気のせいでしょうか?
もしそうなら任意のウィンドウのクライアント領域の座標(左上が(0,0))を取りたいんですけどどうやったらいいんでしょうか?
0201デフォルトの名無しさん
2007/05/14(月) 22:31:59何故用途に応じて使い分ける程度の脳味噌が無いんだ?
0202200
2007/05/14(月) 22:39:47GetCursorPosとScreenToClientでいけそうですね。
せっかくDirectInputを使っているのでDirectInputだけでいけないか悩んでました。
でもこれだとマウスの移動に関してはDirectInputいらないんじゃないですか?
今からやりるんでわかりませんけどクリックとホイールで使うんですかね?
0203デフォルトの名無しさん
2007/05/14(月) 23:03:340204デフォルトの名無しさん
2007/05/15(火) 14:42:08いりませんよ。
ゲーム作ってますが、マウスの場合(というかパッドもだけど)DirectInput使ってません。
0205デフォルトの名無しさん
2007/05/16(水) 00:39:540206デフォルトの名無しさん
2007/05/16(水) 01:07:170207デフォルトの名無しさん
2007/05/16(水) 02:13:530208デフォルトの名無しさん
2007/05/16(水) 08:54:040209デフォルトの名無しさん
2007/05/20(日) 13:47:480210デフォルトの名無しさん
2007/05/20(日) 14:03:12超がんばれ
0211デフォルトの名無しさん
2007/05/20(日) 16:10:47日本語でok
0212デフォルトの名無しさん
2007/05/20(日) 17:07:07DirectX9の開発
DirectX9の開発
DirectX9の開発
0213デフォルトの名無しさん
2007/05/20(日) 18:02:170214デフォルトの名無しさん
2007/05/20(日) 18:13:38最新版使うとランタイムも最新版要求されるような
0215デフォルトの名無しさん
2007/05/21(月) 01:13:16なんて面接で普通に聞かれるじゃん
>>210はコミュニケーション能力がないと思われて就職できないよ
それに本気でそう思ったとしても出来るかどうかぐらい考えてやれよ
そうすればどんなに矛盾したミスリードをしたか理解できるから
0216デフォルトの名無しさん
2007/05/21(月) 02:29:06>windowsの開発経験ありますか? なんて面接で普通に聞かれるじゃん
面接官は馬鹿だからしょうがない
0217デフォルトの名無しさん
2007/05/21(月) 10:01:12単に揚げ足取りたかっただけだろうから気にするな
0218デフォルトの名無しさん
2007/05/21(月) 12:24:08電卓作るときDirectXを使えばCPUをほとんど使わず
計算できるんですか?
0219デフォルトの名無しさん
2007/05/21(月) 13:00:180220デフォルトの名無しさん
2007/05/21(月) 17:02:47行列の足し算引き算掛け算割り算
ですか?
directXとopenGLどっちが覚えるのに時間掛かりますか?
0221デフォルトの名無しさん
2007/05/21(月) 17:06:29グダグダ聞いていても時間の無駄。
0222デフォルトの名無しさん
2007/05/21(月) 18:10:15SDKを入れようと思うんだけど、
dirextX10はwindows vista専用らしいので
windows vistaこれからさきやっていって
9のままで大丈夫なのか不安で入れられません
0223デフォルトの名無しさん
2007/05/21(月) 18:16:510224デフォルトの名無しさん
2007/05/21(月) 18:19:5410はwindows vista専用なので
windowsXPは9からバージョンアップはされないけれど
openGLはバージョンアップするという理解で
あってますか?
0225デフォルトの名無しさん
2007/05/21(月) 18:27:050226デフォルトの名無しさん
2007/05/21(月) 18:32:58プログラムを組む前に計画を立ててからです
0227デフォルトの名無しさん
2007/05/21(月) 18:44:130228デフォルトの名無しさん
2007/05/21(月) 18:58:360229デフォルトの名無しさん
2007/05/21(月) 19:06:17質問してるんです
0230デフォルトの名無しさん
2007/05/21(月) 20:01:230231デフォルトの名無しさん
2007/05/21(月) 21:27:19GPGPU
http://pc11.2ch.net/test/read.cgi/tech/1128780920/
0232デフォルトの名無しさん
2007/05/22(火) 18:25:26directxのバージョンで悩む必要なんてねぇだろ。
それ以前にGLはスレ違い。
0233デフォルトの名無しさん
2007/05/22(火) 19:46:51文字情報を抜き出したいのですが、可能でしょうか?
できるのでしたら方法やサンプルを教えて欲しいです。。
0234デフォルトの名無しさん
2007/05/22(火) 20:39:050235233
2007/05/22(火) 21:27:01できないんです・・・。
フックに頼らない方法もあるのでしょうか?
0236デフォルトの名無しさん
2007/05/22(火) 21:32:36制作者の意図通り動かせよ。
0237デフォルトの名無しさん
2007/05/22(火) 21:39:050238デフォルトの名無しさん
2007/05/22(火) 22:28:460239デフォルトの名無しさん
2007/05/22(火) 23:30:580240デフォルトの名無しさん
2007/05/23(水) 08:07:07低レベルな内容だもんな。。
0241デフォルトの名無しさん
2007/05/23(水) 08:22:510242デフォルトの名無しさん
2007/05/23(水) 19:12:13こういう奴らは自分が一番低レベルということを自覚しない
0243デフォルトの名無しさん
2007/05/23(水) 19:47:450244デフォルトの名無しさん
2007/05/23(水) 20:45:220245デフォルトの名無しさん
2007/05/23(水) 20:52:480246デフォルトの名無しさん
2007/05/23(水) 20:58:000247デフォルトの名無しさん
2007/05/23(水) 21:54:22C#
C++
Delphi
D
の順かな
0248デフォルトの名無しさん
2007/05/23(水) 21:58:52MSに製作打ち切られても平気
0249デフォルトの名無しさん
2007/05/23(水) 22:05:080250デフォルトの名無しさん
2007/05/23(水) 22:19:28C#+MDXの組み合わせは、ランタイム配布関連がごちゃごちゃしすぎて
かつては鬼門とまで言われてたからね
でD3DXのDLLがややこしくなったのは確かApr 2005からじゃなかったっけ
だとするとそういう意味でのベストは、C++とSDK Feb 2005かな
0251デフォルトの名無しさん
2007/05/23(水) 22:28:12ぶっちゃけ”VC2005EE使えよ”とは思うけど。
0252デフォルトの名無しさん
2007/05/23(水) 22:45:15Dec 2004からはVS2003以降専用になったわけね
なら、何らかの事情でVC6しか使えない、或いは英語ヘルプを読みたくないならOct 2004
D3DX関係のランタイム配布関連で、苦労したくない或いは何らかの制限があるならDec 2005
それ以外なら最新版
になるんかな
0253デフォルトの名無しさん
2007/05/23(水) 22:49:07コンパイラバグがあらかた消えた。
仕事でもないのに今だVS6なんて使ってるのはあふォ
0254デフォルトの名無しさん
2007/05/23(水) 22:49:120255デフォルトの名無しさん
2007/05/23(水) 22:54:430256デフォルトの名無しさん
2007/05/23(水) 23:05:032005FebからはDLL化されている。
0257デフォルトの名無しさん
2007/05/24(木) 00:00:50ぐあ、そうなんだ、すまんかった
>>252のDec 2005はDec 2004に修正
0258デフォルトの名無しさん
2007/05/24(木) 00:13:530259デフォルトの名無しさん
2007/05/24(木) 00:19:59商売やってたってCDROMにつけたってたいした手間じゃない
キーワード
DirectX エンド ユーザー ランタイム Web インストーラ
でググルととりあえず取得できる
0260デフォルトの名無しさん
2007/05/24(木) 01:17:03ドキュメントなんて読まないし、親切にメッセージを表示させても理解できない。
0261デフォルトの名無しさん
2007/05/24(木) 01:30:57DirefctXのインストーラー起動させれば流石に入れないやつはいない。
0262デフォルトの名無しさん
2007/05/24(木) 05:48:20そうだよな。
別にインストールに選択項目があるわけじゃないし、
強制的に起動すればいいだけの話だし問題になるところじゃねぇよな
0263デフォルトの名無しさん
2007/05/24(木) 08:19:310264デフォルトの名無しさん
2007/05/24(木) 09:36:59増える程度を気にする普通のユーザーはいねぇぜ。
そういうのはそういう知識がないと気にできない。
ゲームやるだけのユーザーは「ふーん最新版あるんなら入れとくか」
程度にしか思わん。
0265デフォルトの名無しさん
2007/05/24(木) 12:32:44ポコポコ色んなバージョンのDLLをとりあえず全部入れる流れですが
それが何か
0266デフォルトの名無しさん
2007/05/24(木) 13:10:200267デフォルトの名無しさん
2007/05/24(木) 16:50:30エラー:未定義の関数 'sqrtf' を呼び出した
ってなるんです
僕は何をしたら良いんですか・・・
0268デフォルトの名無しさん
2007/05/24(木) 17:14:55#define sqrtf sqrt
そういう意味だったのか・・
0269デフォルトの名無しさん
2007/05/24(木) 19:06:42すげえな。
0270デフォルトの名無しさん
2007/05/24(木) 21:56:440271デフォルトの名無しさん
2007/05/24(木) 22:11:49DirectXをbolrandでコンパイル出来る所(?)までは行ったのですが
(つд⊂)ゴシゴシ
DirectXをbolrandでコンパイル出来る所
(;゚д゚) ・・・
(つд⊂)ゴシゴシゴシ
DirectXをbolrandでコンパイル
_, ._
(;゚ Д゚) …!?
0272デフォルトの名無しさん
2007/05/24(木) 22:12:510273デフォルトの名無しさん
2007/05/24(木) 22:16:540274デフォルトの名無しさん
2007/05/24(木) 22:17:18_, ._
(;゚ Д゚) …!?
0275デフォルトの名無しさん
2007/05/24(木) 22:18:16もしかして: borland
0276デフォルトの名無しさん
2007/05/24(木) 22:19:24日本語と英語の間にいちいちスペースを入れるのやめてください
0277デフォルトの名無しさん
2007/05/24(木) 22:31:39そんな事言う奴初めて見た。
Word とかでも自動的に間隔開くのが普通だし、
それがデザインの基本だというのに。
0278デフォルトの名無しさん
2007/05/24(木) 22:36:300279デフォルトの名無しさん
2007/05/24(木) 22:38:230280デフォルトの名無しさん
2007/05/24(木) 23:47:510281デフォルトの名無しさん
2007/05/24(木) 23:52:220282デフォルトの名無しさん
2007/05/25(金) 00:02:160283デフォルトの名無しさん
2007/05/25(金) 00:06:400284デフォルトの名無しさん
2007/05/25(金) 00:09:290285デフォルトの名無しさん
2007/05/25(金) 00:09:59パッド対応の為に、DirectXSDK(2004Oct)を入手して、
DirectInput(D8)を利用することにしました。
サンプルを流用したクラス作って、機能自体は稼働させたんですけど、
開始画面のメニュー選択などでパッド利用で選択しようとすると、
カーソルが超高速で動いてしまい、激しく使いにくいんです。
今まではGetAsyncKeyStateを使ってたので、
メニュー選択時等は最初のdownだけ拾って処理させてたんですけど、
これに似たような事できませんか?
0286デフォルトの名無しさん
2007/05/25(金) 00:44:37ワロタw
0287デフォルトの名無しさん
2007/05/25(金) 00:47:01要するに
押した瞬間だけ1になって
押しっぱなしだと0に戻る
離したときも0をキープする
変数を作って、カーソル移動する関数はそれを読めばいいわけだ
0288デフォルトの名無しさん
2007/05/25(金) 00:47:20DXライブラリかLunaのソースでも見とけ。
0289285
2007/05/25(金) 01:05:03ありがとうございます。
>>287
やっぱりそれしかないですかね。
DirectInputの戻りでup判定とか出来る余地があるのかと
思ったんですけど。
>>288
Lunaってラッパーライブラリがあるんですね。
拾ってきたので、明日あたり覗いてみます。
0290デフォルトの名無しさん
2007/05/25(金) 02:36:57パッド対応にDirectInputなんて必要ないけどな。
大抵の用途はjoyGetPosExで十分。
0291285
2007/05/25(金) 11:34:21ありがとうございます。
そんなAPIあったんですね。
今調べて初めて知りました。
こっちの方がDirectXに依存しない分、もしかすると良いかもしれないですね。
ちょっと検討してみます。
0292267
2007/05/25(金) 17:45:41Microsoftをミクロソフトと読んでた時期もあります
ごめんなさい
0293デフォルトの名無しさん
2007/05/25(金) 20:07:390294デフォルトの名無しさん
2007/05/25(金) 21:11:050295デフォルトの名無しさん
2007/05/25(金) 21:29:14振動やアナログスティックを使わないのであればWinAPIで十分。
0296デフォルトの名無しさん
2007/05/25(金) 21:47:000297285
2007/05/25(金) 22:09:11ありがとうございます。
教えて頂いたWin32APIで書き換えてみました。
これはこれで全く問題ないですね。
ただ、なまじDirectXのサンプルとか結構見てしまったので、
フォースフィードバックとか使ってみるのも面白い気がしてます。
皆様、親切にありがとうございました。
0298デフォルトの名無しさん
2007/05/25(金) 22:45:22WinAPIで軸2つ以上取れるんだっけ?
0299デフォルトの名無しさん
2007/05/25(金) 22:54:560300デフォルトの名無しさん
2007/05/26(土) 02:40:53これ読んでだいたいどういうものか解ったんですけど入門書って感じがしないです
良書教えてください!!
サイトでも良いです!!
0301デフォルトの名無しさん
2007/05/26(土) 03:30:07初期化の基礎からHLSLまで、段階的に広い範囲をカバーしててお勧め。
ttp://www.codesampler.com/dx9src.htm
0302デフォルトの名無しさん
2007/05/26(土) 08:31:12たしかに入門書としては簡単すぎるというか足りなすぎるというか
0303デフォルトの名無しさん
2007/05/26(土) 14:54:52ただだしオススメ
そのかわり英語がすらすら読めないと無理
0304デフォルトの名無しさん
2007/05/26(土) 17:45:26もうその本は楽勝ってこと?
0305デフォルトの名無しさん
2007/05/26(土) 18:09:04凄く分かり易そうです有難うございます!
>>302
機能についての資料集って感じです
>>303
よく分からないけどやってみます
>>304
書かれてる内容は分かるんですけど
まだコード繋げる事さえ出来ないので戦ってもいないです
0306デフォルトの名無しさん
2007/05/26(土) 19:24:360307デフォルトの名無しさん
2007/05/26(土) 20:21:180308デフォルトの名無しさん
2007/05/27(日) 18:03:21フルスクリーンで実行するときとウインドウモードで実行するときの速さが違うんだけど
どうして速さに違いが出るんだろう?
0309デフォルトの名無しさん
2007/05/27(日) 18:25:25フルスクリーンだとフレッシュレートにあわせてFlipするが
vista 以外のウィンドウモードではフレッシュレートをあわせない
0310デフォルトの名無しさん
2007/05/27(日) 18:52:100311デフォルトの名無しさん
2007/05/27(日) 18:57:36さらにどっちが速くなったとも書いていないのに、いったい何を答えろと言うのだろう。
それと勝手に結論を出した奴は間違いなく早漏。
0312デフォルトの名無しさん
2007/05/27(日) 18:59:54うん?
DirectX9からは、ウィンドウモードでも、
D3DPRESENT_INTERVAL_IMMEDIATE 以外を指定すれば
(VSYNCに合わせるかどうかは別として)同期を取ってくれるようになったんだが。
0313デフォルトの名無しさん
2007/05/27(日) 22:01:48>>309
ちゃんと同期が取れているのかは分からないのですが、
一応GetTicCountで時間を取得して1秒間に60フレームになるようにはしているのですが。
>>311
遅くなるのはウインドウモードのときです。
フルスクリーンのときはグラフィックが1秒間に60ドット移動するのですが、
ウインドウモードのときは42ドットしか移動しません。
どうして移動に差が出るのかが分かりません。
すごいですね!よく僕も早漏だって分かりましたね!
0314デフォルトの名無しさん
2007/05/27(日) 22:11:430315デフォルトの名無しさん
2007/05/27(日) 23:03:55最初は自分でも処理落ちかと思って表示数1枚にして
やり直しても変わらなかったんですよね。
0316308
2007/05/28(月) 01:46:19Windows Media Playerを起動して作業をしていた所、発見しました!
Media Playerを起動しているときだけ正常に動作していたのです!
ただ閉じるとまた同じように遅くなります。
なぜそのようになるのかがまだ分かりません。
同じような現象に合った方はいませんか?
0317デフォルトの名無しさん
2007/05/28(月) 01:50:570318デフォルトの名無しさん
2007/05/28(月) 02:21:06コンストラクタにtimeBeginPeriod(1)をデストラクタにtimeEndPeriod(1)をおいたところ見事解決しました!
このAPIでタイマーの精度を変えると起動中のソフトすべてに影響されるんですね!
こんなことも分からなかった自分が情けないです!
これですべての理由が分かりました! 本当にありがとうございました!
0319デフォルトの名無しさん
2007/05/28(月) 02:34:57某掲示板でも散々既出な話題だな
0320デフォルトの名無しさん
2007/05/28(月) 03:40:210321デフォルトの名無しさん
2007/05/28(月) 06:48:250322デフォルトの名無しさん
2007/05/30(水) 17:10:440323デフォルトの名無しさん
2007/05/30(水) 18:20:37コマ送りはIVideoFrameStepが使えますが、コマ戻しに使えません。
そこで
IMediaSeeking *pMdaSeek;
pMdaSeek-> SetTimeFormat(&(TIME_FORMAT_FRAME));
LONGLONG pCurrent,pSTop;
DispMovie.pMdaSeek->GetPositions(&pCurrent,&pSTop);
LONGLONG NewPos = pCurrent + 1;
hRslt = pMdaSeek->SetPositions(&NewPos,AM_SEEKING_AbsolutePositioning|AM_SEEKING_ReturnTime,NULL,AM_SEEKING_NoPositioning);
if(SUCCEEDED(hRslt)) pMdaCtrl->Pause();
としましたが、8回試行毎に1回コマ戻しが効きません。(8はGOPの長さと同じ)
よい方法を教えてください。
0324デフォルトの名無しさん
2007/05/30(水) 18:42:26よってスレ違いです。
0325デフォルトの名無しさん
2007/05/30(水) 19:49:210326323
2007/05/30(水) 20:47:01つっこみありがとうございます。
>325
あなたが依頼主だったら、家に帰れるんだがなぁ。
0327325
2007/05/30(水) 21:51:15手動じゃなくて自動でやるんだよ。運用でカバーさせようとするな。
0328323
2007/05/30(水) 23:00:12さっさと教えやがれです。
0329デフォルトの名無しさん
2007/05/30(水) 23:23:05俺にはコマ送りとかコマ戻しとかさっぱりだぜ
0330デフォルトの名無しさん
2007/06/03(日) 02:49:50画像に反映するにはどうしたらいいの?
(´・ω・`)
0331デフォルトの名無しさん
2007/06/03(日) 11:15:250332デフォルトの名無しさん
2007/06/06(水) 12:51:26座標がどうなってるのか良く分かりません
1.0fとか0.0fになってるんですが
XとYで左上が0.0とか、そういう概念では無いんですか?
0333デフォルトの名無しさん
2007/06/06(水) 13:04:56自分で変換しているのに勝手にやられているような責任転嫁はやめましょう。
0334デフォルトの名無しさん
2007/06/06(水) 13:30:150335デフォルトの名無しさん
2007/06/06(水) 13:49:090336デフォルトの名無しさん
2007/06/06(水) 16:10:41自分でというかサンプルソースをいじってる段階です
>>334
なる・・・ほど
>>305
そうだったんですか、始めて知りました
ソースいじってたらウィンドウの真ん中の座標が0.0fだって事がわかったんですけど
これ、なんていう単位なんですか?
0337デフォルトの名無しさん
2007/06/06(水) 17:19:340338デフォルトの名無しさん
2007/06/06(水) 17:55:55単位なんて無い。
自分で真ん中が0になるようにしているだけ。
全ては自分自身で決めているんだから、他人が知るわけがない。
0339デフォルトの名無しさん
2007/06/06(水) 18:40:55> これ、なんていう単位なんですか?
俺様ちゃんワールドやしぃ。
メートルにしようがぁ、ヤードにしようがぁ
自由だぁーーーッ!
0340デフォルトの名無しさん
2007/06/06(水) 18:48:580341デフォルトの名無しさん
2007/06/06(水) 19:27:03ごめんなさい。自分に全力レス余裕でした。
>>338-340
アーッ!
そういう事か、、、
やっぱ一番左上が0.0じゃないと違和感ありまくりでゲーム作れたものじゃない
何とか描き直します。質問に答えてくれて本当にありがとうございます。
0342デフォルトの名無しさん
2007/06/06(水) 22:29:58いくら2Dゲームだってワールド座標も使えないで
こいついままで何やってゲーム作ってたんだろうか?
と思うのは俺だけだろうか?
0343デフォルトの名無しさん
2007/06/07(木) 01:45:02|
|
|
↓
y
0344デフォルトの名無しさん
2007/06/07(木) 06:29:57┃ ┃
┃ ┃
┣━┫
┃ ┃
┣━┫
┣━┫
┃ ┃
┣━┫
┃ ┃
┃ ┃
┣━┫
┃ ┃
あ は
た ず
り れ
0345デフォルトの名無しさん
2007/06/07(木) 12:35:48数学のジャンルってなんですか?
0346デフォルトの名無しさん
2007/06/07(木) 12:38:59あれ違うか・・・?
高校じゃやらなかったから3D関係は全部独学なんでワカンネ。
0347デフォルトの名無しさん
2007/06/07(木) 12:40:000348デフォルトの名無しさん
2007/06/07(木) 12:45:39お願いします
0349デフォルトの名無しさん
2007/06/07(木) 12:57:030350デフォルトの名無しさん
2007/06/07(木) 12:59:410351デフォルトの名無しさん
2007/06/07(木) 13:02:04さようなら
0352デフォルトの名無しさん
2007/06/07(木) 13:02:140353デフォルトの名無しさん
2007/06/07(木) 13:07:360354デフォルトの名無しさん
2007/06/07(木) 16:23:47代数幾何じゃないか?
0355デフォルトの名無しさん
2007/06/07(木) 16:46:42応用が利かず、そのまんまの公式があると思って探し回っているのは頭が悪いとしか言いようがない。
0356デフォルトの名無しさん
2007/06/07(木) 17:17:59例えば、物体の移動とか回転等
0357デフォルトの名無しさん
2007/06/07(木) 17:39:07・局所環付き空間
・六角四片四角孔ねじれ正多面体
・大二重斜方二十・十二面体系多面体
・皆殺しの數學
・ヤコポ・リカッチ
・ジーン・ガストン・ダルブー
・フィリッペ・ファン・ランスベルゲ
・シャルル=マリー・ド・ラ・コンダミーヌ
0358デフォルトの名無しさん
2007/06/07(木) 18:40:15www
0359デフォルトの名無しさん
2007/06/07(木) 19:04:02あらゆる数学・物理学に精通していないと、マスターなんてとてもとても…
0360デフォルトの名無しさん
2007/06/07(木) 22:31:51マジレスすると、線形代数くらいしっていてもいいかもだけど、
なくても教科書読みながらでなんとかなる。
どっちかというと、ゲーム作るなら、3Dより、ゲームの方の知識がいるような
0361デフォルトの名無しさん
2007/06/07(木) 22:35:00会社によっちゃライブラリ化されてるし。
0362デフォルトの名無しさん
2007/06/08(金) 19:55:45できればDirectXもつかいたくないんだけど、GDPないとつらいから
OPENGLかなぁ
OPENGLの長所の一つに巨大なライブラリーをダウンロードしなくても
すぐに始めることが出来るからね
0363デフォルトの名無しさん
2007/06/08(金) 21:04:26D3DXのようなサポート関数もサウンド関係のライブラリは別途必要だし。
0364デフォルトの名無しさん
2007/06/09(土) 00:46:39・SDKのサイズが小さい
・拡張ライブラリは別々にインストールしなければならない
・メーカー独自拡張部分はサポートが早い
DirectX
・SDKのサイズが大きい(バージョンによっては配布サイズも……)
・拡張ライブラリやツールなど一括でインストールされる
・メーカー独自拡張はサポートされない
0365デフォルトの名無しさん
2007/06/09(土) 01:06:01そんなどうでもいいことを言い回る辺り、駄目な香りがプンプン漂ってくるんだが。
0366デフォルトの名無しさん
2007/06/09(土) 01:33:450367デフォルトの名無しさん
2007/06/09(土) 02:26:160368デフォルトの名無しさん
2007/06/09(土) 02:29:2210以上の機能を使うにはVISTAを買わないといけない
OpenGLはVISTAを買わなくても良い
0369デフォルトの名無しさん
2007/06/09(土) 02:31:060370デフォルトの名無しさん
2007/06/09(土) 08:25:12現状ではターゲット環境になり得ない。
OpenGLの独自拡張は互換性がないので使い物にならない。
しかもOpenGLでパフォーマンスを出すには、ドライバがチューニングされた、
ぼったくりの高級ビデオカードが必用なので、
一般ユーザが持っているビデオカードでの性能を考えるならDirect3Dしか選択肢がない。
0371デフォルトの名無しさん
2007/06/09(土) 08:37:350372デフォルトの名無しさん
2007/06/09(土) 08:38:54糞プログラムだからこそ速度が必用になるんじゃないか。
0373デフォルトの名無しさん
2007/06/09(土) 08:43:29どちらかといえば逆だろ。
アルゴリズムの最適化の方が優先度は高いんだし。
たかが同人なんかの為にわざわざRadeon7000買ってチェックとか何やってんだろうとは思った。
つかGeForce2MXとかで動かないとか文句言うなよって感じだったがな。
0374デフォルトの名無しさん
2007/06/09(土) 10:24:45大抵はCPU律速。
0375デフォルトの名無しさん
2007/06/09(土) 10:31:37高速なビデオカードを使えば、性能を使い切らなくたって速くなるだろ。
GPUの性能を使い切るって発言があまりにも馬鹿すぎる。
0376デフォルトの名無しさん
2007/06/09(土) 11:25:450377デフォルトの名無しさん
2007/06/09(土) 11:29:26GPUの性能を使い切りたい馬鹿にはうってつけ。
0378デフォルトの名無しさん
2007/06/09(土) 11:30:31自分で作ってそれで満足するだけならそれでいいが、
配布するような前提ならCPUは当然として特にテクセルレートや
フィルレートは気にする必要あるだろ。
流石にDrawPrimitive大量にコールしてCPUが悲鳴上げるなんてプログラム組むやつは居ないだろうが・・・
0379デフォルトの名無しさん
2007/06/09(土) 11:57:26無駄にまとめると今度はしなくていい頂点まで計算に入ってしまって効率悪い
適度に呼べば大抵問題にはならない
PCの場合、半透明処理が異常に遅いほうが気になる
0380デフォルトの名無しさん
2007/06/09(土) 12:02:25OpenGLもDirectXもねえ
0381デフォルトの名無しさん
2007/06/09(土) 12:02:270382デフォルトの名無しさん
2007/06/09(土) 12:03:58> PCゲーム作るとき、いまだに、シェーダーがターゲットにないというのに、
PCゲーム作るとき、いまだに、シェーダー使わせてもらえないのに
0383デフォルトの名無しさん
2007/06/09(土) 12:07:50ちょっと、画面覆いつくすように描画するだけで、モタモタするからな。
(うちのはミドルエンドのカードだが)
CPU描画の方が速いのでは?って思うくらい(冗談だけどさ)
0384デフォルトの名無しさん
2007/06/09(土) 12:25:43DrawPrimitiveがどうとか全然問題だと感じられないぐらい
αブレンドが遅い
0385デフォルトの名無しさん
2007/06/09(土) 12:26:01当然ON/OFFはつける前提だが。
0386デフォルトの名無しさん
2007/06/09(土) 12:32:00うん、画面覆うと処理オチするときある
すっげ遅い
これ、速くしてくれよって思う
いままであまり叫ばれなかったのが不思議なぐらい重い
0387デフォルトの名無しさん
2007/06/09(土) 12:39:44前の文脈を良く読めよ。
糞プログラムを動かす時に高速なビデオカードが必用だという話だ。
まともに組んだらどんどん糞プログラムじゃ無くなっていくだろ。
なぜほんの少し前のレスすら確認する脳味噌がないんだ?
0388デフォルトの名無しさん
2007/06/09(土) 12:43:54高いボード買えばちょっとは速くなるかも
αブレンドは体感ほとんど変わらないぐらい遅いけどw
0389デフォルトの名無しさん
2007/06/09(土) 12:46:33しかし昔に比べればメモリ自身もメモリ周りも速くなってるはずだが
やはり遅いんかね?
0390デフォルトの名無しさん
2007/06/09(土) 12:53:050391デフォルトの名無しさん
2007/06/09(土) 12:53:460392デフォルトの名無しさん
2007/06/09(土) 13:02:45シェーダー2.0対応だった気がするけど。
0393デフォルトの名無しさん
2007/06/09(土) 13:08:09じゃないと、いざ公開した後で泣きを見るぞw
0394デフォルトの名無しさん
2007/06/09(土) 13:15:55そもそもシェーダー2.0なんてものは存在しない。
0395デフォルトの名無しさん
2007/06/09(土) 13:18:310396デフォルトの名無しさん
2007/06/09(土) 13:30:52そんなのサポートしてる時間のが無駄
弱小会社いた俺でもサポートしなかった
0397デフォルトの名無しさん
2007/06/09(土) 13:32:370398デフォルトの名無しさん
2007/06/09(土) 13:36:59それ以上は古すぎて秋葉の中古ショップとか行かないと買えない。
5年前のノートPCですらGeForce4程度は積んでたし。
0399デフォルトの名無しさん
2007/06/09(土) 13:57:40以上!
0400デフォルトの名無しさん
2007/06/09(土) 14:26:07以上!
0401デフォルトの名無しさん
2007/06/09(土) 14:30:42古いビデオカード積んでるやつは初めからエロゲーしかやらん。
同人ゲームやるような奴等はマシンスペックもそれなりだよ。
TNT128なんて世代的にPentiunIIとかの時代じゃねーの?
とりあえず表示できるように作ったとしてもCPUが悲鳴あげるだろ。
0402デフォルトの名無しさん
2007/06/09(土) 14:41:47んん、、ここって超初心者用スレじゃねえか
失礼
0403デフォルトの名無しさん
2007/06/09(土) 14:55:56最高のゲームはバーチャロンOMGで決まりですかw
0404デフォルトの名無しさん
2007/06/09(土) 14:59:26うむ。同梱されてるしな
最近ベーマガの一ページ目に見開きで広告だしたりと
がんばってるから、これから普及すること間違いなし
0405デフォルトの名無しさん
2007/06/18(月) 05:21:12これが一体どういう事をやってんのか全然分からない
画像を表示するだけなのに、何で、こんなややこしいのか・・
誰か分かり易く説明しておくれ!
0406デフォルトの名無しさん
2007/06/18(月) 05:47:45俺、DirectXは詳しくないから画像データ形式に関してのみ。
昔はVRAMの内容をそのまんまファイルに落とすようなこともやってた。
これならファイルの内容をVRAMにコピペするだけだから表示は超簡単だった。
しかし・・・
↓
アホ、お前のマシンじゃそれでよくても俺のマシンじゃ表示できねぇよ、馬鹿!
↓
そこで環境非依存ビットマップ DIB(DeviceIndepenedntBitmap)という考えがでてくる。
さらに・・・
↓
アホ、ネットワーク上でそんな生データのっけんな!
そのデータ落とすのにいくら通信費と時間がかかると思ってんだよ、馬鹿!
↓
で、圧縮するのが当然になる。
↓
環境非依存で圧縮されたデータ形式である gif, jpeg, png が主流となる。←いまここ。
↑
圧縮されたデータを解凍せにゃならんし、さらに解凍したデータを自分の環境に合わせた
データ形式に変換しなきゃならんのでこれはとっても表示に手間がかかる。
0407デフォルトの名無しさん
2007/06/18(月) 11:54:590408デフォルトの名無しさん
2007/06/18(月) 19:19:50お前にプログラムの才能はないが詐欺師の才能は十分にある。
期待しているぞ。
0409デフォルトの名無しさん
2007/06/18(月) 19:35:48それはつまり、IT土方じゃなくてITコンサルをやれってことか?
0410デフォルトの名無しさん
2007/06/18(月) 20:26:320411デフォルトの名無しさん
2007/06/18(月) 20:27:410412デフォルトの名無しさん
2007/06/18(月) 20:33:48対応していれば、試したいと思いますが…
0413デフォルトの名無しさん
2007/06/18(月) 20:39:37試せば、対応してるかどうかわかると思いますが…
0414デフォルトの名無しさん
2007/06/18(月) 21:21:540415デフォルトの名無しさん
2007/06/18(月) 21:34:04ありがとうございました
0416デフォルトの名無しさん
2007/06/19(火) 04:12:41ちょっと聞きたい事と違ったけど
解りやすい説明ありがとうございますw
ややこしくなってる原因はだいたいそういう事なんですね
0417デフォルトの名無しさん
2007/06/19(火) 07:40:38表示にテクスチャ使うようになっただけだろ
0418デフォルトの名無しさん
2007/06/20(水) 14:13:08DirectMusicとDirectSoundどっちを使った方がいいの?
コードを見る限り、DirectMusicの方が簡単そうなんだけど、
だったらなんてDirectSoundが存在するのかわからない・・・
0419デフォルトの名無しさん
2007/06/20(水) 14:21:35歴史的な理由じゃなかったっけか
気にせず簡単な方つかっとけよ
0420デフォルトの名無しさん
2007/06/20(水) 15:25:18ヘルプの機能比較見てみると良いよ。
でも、DirectXのSound系の将来は・・・・
0421デフォルトの名無しさん
2007/06/20(水) 20:31:03http://www.4gamer.net/specials/tooearlytogetvista/003/tooearlytogetvista_001.shtml
0422デフォルトの名無しさん
2007/06/21(木) 01:57:400423デフォルトの名無しさん
2007/06/21(木) 08:42:35なんでMSがここまでオーディオ周りを退化ばっかさせてるのかは疑問だが
0424デフォルトの名無しさん
2007/06/21(木) 09:57:21サウンド機能が無くなるわけではなく、今はXAudio2という次世代の
APIの準備期間だよ。
0425デフォルトの名無しさん
2007/06/21(木) 10:00:275.1chの環境揃えたって普通の人は結局ヘッドホンでゲームやる事になるし。
0426デフォルトの名無しさん
2007/06/21(木) 23:11:38MicrosoftのDownloadセンターには見当たりませんでした。
WeybackMachineには一応あったのですがなぜか1Mまでしかダウンロードできないので使えなかったです。http://web.archive.org/web/*/http://www.microsoft.com/japan/developer/directx/downloads.asp
0427デフォルトの名無しさん
2007/06/22(金) 00:31:35ttp://smallup.dip.jp/uploader/src/smallup1634.zip.html
0428デフォルトの名無しさん
2007/06/22(金) 03:00:09ありがとうございます><
0429デフォルトの名無しさん
2007/06/22(金) 20:12:15カメラの注視をAモデルにあわせているのですが
Aモデルを中心にカメラを回転させた後、普通カメラが正面に向いている方向に
モデルは進むものですが、自分の場合カメラを回転させた後、Aモデルへその回転量の計算が
うまくいってないらしく、回転させたカメラの正面に進んでくれません
atan2やらいろいろ試行錯誤しましたが、よろしければ正しい計算式やコードを教えてくださいm(_ _)m
0430デフォルトの名無しさん
2007/06/22(金) 21:14:33何言ってんのかわかんねえ・・・。
LookAtじゃ駄目なん?
0431デフォルトの名無しさん
2007/06/22(金) 21:30:38普通カメラが正面に向いている方向にモデルは進むものですが
(つд⊂)ゴシゴシ
普通カメラ
_, ._
(;゚ Д゚)
0432デフォルトの名無しさん
2007/06/22(金) 21:37:21自分でもわかりにくい文章と思いますw
普通はカメラが正面に向いている方向にモデルは進むと思います
自分の場合カメラを何度回転させてもモデルはカメラの正面進んでくれず
当然Atはモデルの座標を入れているので、たとえば90度回転させたら
横滑りみたいに移動してしまうんです・・・・。
0433デフォルトの名無しさん
2007/06/22(金) 21:57:25馬鹿にするわけじゃないけど
どっかの入門書サイト一通りやってこないと駄目だと思う
ベクトルとか行列とか理解しなきゃなにも教えられないってのがホントのところ
ここに動くコード貼るにはでかいし
要点だけ貼っても理解できないと思う
0434デフォルトの名無しさん
2007/06/22(金) 22:05:21まずこれが分からない
これだと画面内のオブジェクトが全部カメラから遠ざかっていくってことだよな
それって普通なのか????
0435デフォルトの名無しさん
2007/06/22(金) 22:10:42View行列の第三列がカメラのZ軸になってるから
これをモデルの速度の単位ベクトルにすればよろし。
ただし左手座標系を使ってるとき(D3DXの関数だとLHってつく奴ね)は
Viewの段階でZ軸が反転されているから気をつけよう。
0437デフォルトの名無しさん
2007/06/23(土) 01:53:04D3DXMatrixInverse(&matPose, NULL, &matView);
で、カメラの姿勢行列求めて
D3DXVec3TransformNormal(&forward, &D3DXVECTOR3(0,0,1), &matPose);
で、カメラの前方向ベクトルが求まるわね。これをXZ平面に平行にしたい場合は
forward.y = 0;
D3DXVec3Normalize(&forward, &forward); ね。
(0,0,1) を (1,0,0) とか (-1,0,0) にすればカニ歩きベクトルね。
0438デフォルトの名無しさん
2007/06/23(土) 11:27:16それは単に>>435の処理は回りくどくやってるだけでは?
ビュー行列はよっぽど変なことしない限り正規直交基底しか使わないんだから、
わざわざ逆行列求めたり単位ベクトルを変換したりする必要はないだろう
0439デフォルトの名無しさん
2007/06/23(土) 12:37:00引く方がいいな。
0440デフォルトの名無しさん
2007/06/23(土) 12:42:57>>429は姿勢の話であって、位置は関係ないのでは
0441429
2007/06/23(土) 17:20:38親身になって教えてくださってありがとうございます
どうやら行列やベクトルの学習が足りないようですので
しばらくプログラムのことは忘れて数学に取り組みますよ
0442デフォルトの名無しさん
2007/06/23(土) 19:08:250443デフォルトの名無しさん
2007/06/23(土) 19:46:000444デフォルトの名無しさん
2007/06/23(土) 19:49:340445デフォルトの名無しさん
2007/06/23(土) 20:16:24テスト前日に勉強しただけで満点とれたくらい簡単。
0446デフォルトの名無しさん
2007/06/24(日) 20:38:520447デフォルトの名無しさん
2007/06/24(日) 21:07:220448デフォルトの名無しさん
2007/06/24(日) 21:40:27中学か高校レベルだったらそんなもんでしょ
結局3Dに使う線形なんてよっぽど手の込んだことしない限りはその程度の範囲でしか使わないし
0449デフォルトの名無しさん
2007/06/24(日) 21:55:360450デフォルトの名無しさん
2007/06/24(日) 22:25:41って先生が手の平を机に付けたまま肘をくいくいと動かしながら言ってた。
でも7自由度の系のヤコビアンを手計算で求める根気は俺にはない。
0451デフォルトの名無しさん
2007/06/24(日) 22:30:58クォータニオンAをZ軸に720度回転させる時の回転のクォータニオンって作れないような気がするんだけど・・・。
0452デフォルトの名無しさん
2007/06/24(日) 22:54:31結果的に同じ姿勢になる回転同士は、同一のクオータニオンで表される。
なんで720度の回転を表すクオータニオンは単位クオータニオンなのです。
0453デフォルトの名無しさん
2007/06/24(日) 23:17:48てことはXファイルはどうやって360以上の回転を・・・?
0454デフォルトの名無しさん
2007/06/24(日) 23:20:50だってクォータニオンじゃないもん
0455デフォルトの名無しさん
2007/06/24(日) 23:25:06ん?どう解釈してそのような結論になったんだ?
0456デフォルトの名無しさん
2007/06/24(日) 23:27:48回転の成分を3軸の角度じゃなくをクォータニオンで持ってたら再現できないって事かな、と。
0457デフォルトの名無しさん
2007/06/24(日) 23:32:160458デフォルトの名無しさん
2007/06/24(日) 23:40:59アニメツール側で回転を何で保持するかはツールによるだろうがそれはさておき、
例えば2回転(720度分)するアニメーションであれば、キーを次のように配置しとけば
あとはキー間をSlerpすればクオータニオンだけで完結できる
・単位クオータニオン、120度回転するクオータニオン、240度(以下同)、単位、120度、240度、単位
例えば、の話ね。
オイラー角で表すとすればこの回転によって0→720とパラメータが変化するわけだが、
>>452でも書いたように結果的に同じ姿勢を表すクオータニオンは同一なので、
回転前と回転後のクオータニオンが同一であるのはおかしなことではない。
0459デフォルトの名無しさん
2007/06/24(日) 23:43:49プログラム云々以前にそのぐらいやってみればいいのに。
0460デフォルトの名無しさん
2007/06/24(日) 23:51:350461デフォルトの名無しさん
2007/06/25(月) 00:29:45出力のSamplingを10フレーム単位にして出力したらちゃんと回ったけど。
アニメーションソフトのようなものはキーは3軸の角度で持たないとダメって事なのね。
0462デフォルトの名無しさん
2007/06/25(月) 00:34:200463デフォルトの名無しさん
2007/06/25(月) 00:40:44軸の数の問題じゃねーだろ
>>457>>458読んだのか??
0464デフォルトの名無しさん
2007/06/25(月) 00:43:46ゆとりの社会進出もいよいよ深刻っぽいなw
0465デフォルトの名無しさん
2007/06/25(月) 00:45:290466デフォルトの名無しさん
2007/06/25(月) 00:47:270467デフォルトの名無しさん
2007/06/25(月) 00:50:30Xファイルにしたときに回転がクォータニオンで出力される事を考えながらデータなんて作ってなかったし。
ようはクォータニオン化しても正しく再生されるように途中補間用のキーを置けって事でしょ。
0468デフォルトの名無しさん
2007/06/25(月) 00:53:05その実験結果から「キーは3軸の角度で持たないとダメ」という結論が何故得られるのかが
よく分からないんだけど・・・
その現象はキー間隔の違いに起因するものであって、これは
オイラー角であろうとクオータニオンであろうと注意すべきことに変わりはないよ
0469デフォルトの名無しさん
2007/06/25(月) 00:56:48まあそういうことだね。
LWとDirectXでは、回転の表し方も回転の補間方法も全く異なるから、
できるだけ細かくキーを打つか予め補間したキーを挿入してエキスポートするのがいい。
ファイルサイズとのトレードオフになるけどね・・
0470デフォルトの名無しさん
2007/06/25(月) 00:57:18ttp://www.dstorm.co.jp/products/developer/docs/motcurve02.htm
>LightWave 6.0 以降のモーションカーブは、XYZ座標位置、HPB回転角、
>XYZスケールの9つのチャンネルカーブから構成されています。
>各チャンネルカーブは、シーンファイルのエンベロープの形式でチャンネル単位に保存されます。
>エンベロープカーブは、TCB、Hermite、2D Bezier、直線、ステップの補間パラメータから
>構成される複合カーブです。
Lightwaveのモーション情報は、こんな感じで複雑なパラメータ変化を記述できて、
その再生ルーチンも線形補間一発みたいなのじゃないんですよ。
以下でソースが公開されているから一回見てみたら?
ttp://www.dstorm.co.jp/products/developer/docs/motcurve02.htm
ttp://www.dstorm.co.jp/products/developer/download/tool.htm
逆に言えば、Xファイルを通すのをやめて最初からLightwaveのファイルを直接読み込むなら
別にキー間隔を増やす必要はないよ。
0471デフォルトの名無しさん
2007/06/25(月) 18:10:59誰かヒントおせぇ〜〜てぇ〜
0472デフォルトの名無しさん
2007/06/25(月) 18:16:53いきなり三人称視点とか言われても、
何が分からないのか全く分からない。
0473デフォルトの名無しさん
2007/06/25(月) 18:19:060474471
2007/06/25(月) 18:19:36解決した・・・
>>437
本当にありがとう・・・
まだ内容は理解していないがコピペして俺のプログラムで通るようにしたら
うまくいった・・・
いまからなにをやっているのか解明して習得します
0475デフォルトの名無しさん
2007/06/25(月) 18:45:00まあ理屈を理解するには>>437が分かりやすいかもしれんが、
これは>>435が言ってることを無駄にややこしくやっているだけ。
今回の場合は全然問題にはならないが、
特に逆行列を求める処理は他に比べてかなり重いことを一応頭に入れておく事。
0476デフォルトの名無しさん
2007/06/25(月) 18:55:29了解
わざわざありがとう!
0477デフォルトの名無しさん
2007/06/25(月) 18:59:220478471
2007/06/25(月) 19:08:393日くらい涙目で試行錯誤して、ベクトルの本まで買ったがその数分後に解けるとは・・・
でもカメラ視点制御ってかなり初級なんですよね・・・はぁ・・・
0479yd
2007/06/25(月) 19:34:310480デフォルトの名無しさん
2007/06/25(月) 19:40:55点を配置( cos( i * D3DX_PI / 32), sin( i * D3DX_PI / 32) );
0481デフォルトの名無しさん
2007/06/26(火) 06:36:26これの例神様カキコキボン
0482デフォルトの名無しさん
2007/06/26(火) 16:39:49「球面」上に、「出来るだけ均等に」点を配置したいのですが、どうしたらよいでしょう?
0483デフォルトの名無しさん
2007/06/26(火) 17:04:28x,y,zそれぞれ-1から1まで一様乱数でふる。
そうすると各軸-1から1までの空間内に均等に散らばるはず。
ここで、中心から半径1の球の中に入っていれば、
その方向と球の交わる点を使う。
球の中に入っていなければ、入るまで繰り返す。
0485デフォルトの名無しさん
2007/06/26(火) 17:11:21正多面体じゃない奴で>>482の希望を満たすような図形ってあるんだっけ?
0486デフォルトの名無しさん
2007/06/26(火) 17:16:46DirectXを用いて読み込みたいのですが、上手くいきません。
現在、PandaDirectXMaxExporteというプラグインを用いてXファイルを作成しています。
いろいろ調べて見たところ、Xファイル中のframe情報やMesh情報に名前が付かない
(conv3dsを用いた場合は名前が付く、しかし、オプションを指定しても、アニメーション情報が正しく
入らない)ことが原因のようです。
PandaDirectXMaxExporteを使って作成したXファイルをDirectXViewerを用いて開いてもエラーとなります。
PandaDirectXMaxExporteを用いてアニメーション付きXファイルを作成し、DirectXを用いて読み込む方法
を教えてください。
0487デフォルトの名無しさん
2007/06/26(火) 17:20:32サンクスです
点をひたすらランダムに発生させるのであれば、
たしかに言われたとおりの方法でほぼ均等に発生させることができますね・・
>>485
はい、「正確に均等に」配置するのは最大でも20が限度なのは分かっています
>>482は「出来るだけ均等に」っていう言葉自体が少々あいまいかもしれないですね・・
0488デフォルトの名無しさん
2007/06/26(火) 17:37:50量子化学の分野で使われてる Lebedev grid とかはどうなのかな?
0489デフォルトの名無しさん
2007/06/26(火) 18:04:09ttp://www.cora.nwra.com/~gourlay/software/Java/Surface/
たぶん近過ぎる点は反発し合い、離れ過ぎた点は引き合うようなシミュレートをしてるんだと思う
本当に任意の点数でやろうとしたらこういった手法になるんじゃないかなあ
任意の点数でなければ"Geodesic sphere","Geodesic dome"もキーワードになるかな
0490デフォルトの名無しさん
2007/06/26(火) 18:08:37それを頂点が球面上に置かれるように膨らませた感じ? >Geodesic sphere
0491デフォルトの名無しさん
2007/06/26(火) 19:59:32親子関係ってどうやって関連付けてます?
0492デフォルトの名無しさん
2007/06/26(火) 23:19:30・D3DXCreateCubeTextureで空のキューブマップ作った後
どうやって各面にテクスチャを設定するんですか?
LPDIRECT3DTEXTURE9 tex->GetSurfaceLevel
LPDIRECT3DCUBETEXTURE9 cubetex->GetCubeMapSurface
して、サーフェイスをCOPYするんですか?
0493デフォルトの名無しさん
2007/06/26(火) 23:32:15・IDirect3DTexture9からカラーフォーマット(D3DFORMAT)取得するにはどうするんですか?
IDirect3DTexture9::GetLevelDesc → D3DSURFACE_DESC :: Format
・D3DXCreateCubeTextureで空のキューブマップ作った後
どうやって各面にテクスチャを設定するんですか?
IDirect3DCubeTexture9::LockRect して書き込み。
これはキューブでない単なるテクスチャでも同じ。
画像ファイルからテクスチャを作ってくれるD3DXの関数も、内部では同じことをやってる。
0494デフォルトの名無しさん
2007/06/27(水) 01:49:49わかんねーよへたくそ
0495デフォルトの名無しさん
2007/06/27(水) 01:51:120496デフォルトの名無しさん
2007/06/27(水) 02:04:35速攻でプログラミングから足を洗った方がいいな
0497デフォルトの名無しさん
2007/06/27(水) 16:10:34もっとマターリいこうぜ
0498デフォルトの名無しさん
2007/06/27(水) 16:15:53わかんねーよへたくそ
0499デフォルトの名無しさん
2007/06/27(水) 16:22:190500デフォルトの名無しさん
2007/06/27(水) 21:10:230501デフォルトの名無しさん
2007/06/28(木) 00:39:350502デフォルトの名無しさん
2007/06/28(木) 00:40:54マジレスするとこれ以上どうしろと?w
0503デフォルトの名無しさん
2007/06/28(木) 00:44:31回答者のレスがよくわからなかったら
どこがどうわからないのかしつこく聞かないと駄目なところまできてる
・具体的にいうと〜がわかりません
・いま〜という認識で止まってます
・〜と考えていたのですが、〜な回答を貰ったので混乱しています
とか色々返してみれ!
0504デフォルトの名無しさん
2007/06/28(木) 00:55:18手順を逐一説明してたら膨大なレス数になる
ここに限った話じゃないが、具体的な回答を求めるなら、具体的に質問を書け。
0505デフォルトの名無しさん
2007/06/28(木) 00:57:520506デフォルトの名無しさん
2007/06/28(木) 01:00:180508デフォルトの名無しさん
2007/06/28(木) 22:21:320509デフォルトの名無しさん
2007/06/29(金) 03:47:510510デフォルトの名無しさん
2007/06/29(金) 04:16:370511デフォルトの名無しさん
2007/06/29(金) 06:49:040512デフォルトの名無しさん
2007/06/30(土) 01:54:29で一部マスクしてかきたいなと思ってぐぐってみたらステンシル?を使うってことみたいなんですが・・・
で・・・よくわかりません
どーやってつかうんでしょ?
どーやってマスク設定してどーやって描画したらいいんでしょ?
0513デフォルトの名無しさん
2007/06/30(土) 09:39:330514デフォルトの名無しさん
2007/06/30(土) 10:16:34ステンシルバッファをレンダーターゲットにしてポリゴンを書く等。
0515デフォルトの名無しさん
2007/06/30(土) 10:29:59Lockableなステンシルバッファって作れる?
0516デフォルトの名無しさん
2007/06/30(土) 10:32:540517514
2007/06/30(土) 10:39:430518デフォルトの名無しさん
2007/06/30(土) 11:36:03わざわざステンシル使わなくても、Zバッファでも一応できるわね。
隠したい部分を、sz=0.0のポリゴンで先に描画しておけば、
後で描くポリゴンが隠れるわけね。
CustomVertex.Transformed[] maskVertices = new CustomVertex.Transformed[3];
maskVertices[0].Position = new Vector4(0.0f, 0.0f, 0.0f, 1.0f);
maskVertices[1].Position = new Vector4(640.0f, 0.0f, 0.0f, 1.0f);
maskVertices[2].Position = new Vector4(640.0f, 480.0f, 0.0f, 1.0f);
device.RenderState.ColorWriteEnable = 0x0;
device.VertexFormat = CustomVertex.Transformed.Format;
device.DrawUserPrimitives(PrimitiveType.TriangleList, 1, maskVertices);
device.RenderState.ColorWriteEnable = ColorWriteEnable.RedGreenBlueAlpha;
凝った形のマスクにしたかったら抜きありテクスチャ張ってね。
0519デフォルトの名無しさん
2007/06/30(土) 13:34:220520デフォルトの名無しさん
2007/06/30(土) 15:57:30今、IVideoWindowインタフェースを用いて、ゲームのメインウインドウの子ウインドウを作成し、そこに
mpgファイルを再生しています。
mpgファイルの終わりまで再生するためにWaitForCompletionを使用しています。
上記のようにmpgの再生を行った場合、再生中のウインドウが他のウインドウに隠されたとき、
再生画面が真っ黒になってしまいます。しばらくするとゲームのメイン画面になるため、画面は
真っ黒でも再生状態になっているようです。
同じプログラムでaviファイルを再生させたときは上手くいきます。
DirectShowを用いて、mpgファイルを再生させたとき、他のウインドウに隠されても
影響のないようにするためには、どうすればよいのですか?
0521デフォルトの名無しさん
2007/06/30(土) 21:50:42ばれないようにするためには、どうすればよいのですか?
0522デフォルトの名無しさん
2007/06/30(土) 22:57:260523デフォルトの名無しさん
2007/06/30(土) 23:18:38大体みんな似たようなスレ巡回してるからな。
0524デフォルトの名無しさん
2007/07/01(日) 18:15:180525デフォルトの名無しさん
2007/07/03(火) 07:06:54それをこのスレ聞く時点で間違ってるw
スレごとに合った内容を質問すれば良い
プログラムって一つの目的に対して一つの方法しかないって事はあんまり無いお
0526デフォルトの名無しさん
2007/07/03(火) 08:04:51>>520が他のスレでも似たような質問をしたことを皮肉ってんだろ
こんなのにマジレスすんなよ
0527デフォルトの名無しさん
2007/07/04(水) 10:50:440528デフォルトの名無しさん
2007/07/04(水) 11:12:200529デフォルトの名無しさん
2007/07/04(水) 11:13:59くすだれ
くすだれ
くすだれ
くすだれ
くすだれ
くすだれ
0530デフォルトの名無しさん
2007/07/04(水) 11:32:580531デフォルトの名無しさん
2007/07/04(水) 11:35:000532デフォルトの名無しさん
2007/07/04(水) 13:01:590533デフォルトの名無しさん
2007/07/08(日) 21:18:54いきなり作るのは無理なのでまずは使いまわせる骨組みを組んでから
2Dでテトリスでも作ろうかと思ってます。
前提
・DirectXについては全くといっていいほど知らない
・1年前にC++でOpenGLのオブジェクトを無制限に読み込める
ウォークスルーを作成。以後触ってない
・C++はクラスが何とか使える程度の知識。継承とかは知らない
・とりあえずDirectX9で作るつもり
上の条件で
ウィンドウ(全画面、ウィンドウモード切替)
描画ループ作成
音鳴らす、画像を表示する、動かす
入力系統を作る
コンフィグを作る。
アニメーションを作る、衝突判定を作る
という感じでゲームの骨の部分を作りたいのですが、
いい解説サイトか本があったら教えてください。
ぐぐっても8以前のサイトか3Dの部分だけ延々と語ってるサイトしかでてこない
0534デフォルトの名無しさん
2007/07/08(日) 23:50:020535デフォルトの名無しさん
2007/07/09(月) 06:26:01ttp://www.h2.dion.ne.jp/~takusoft/directx8/d3d/index.html
ゲームは作ったことあるか?
まずは画像を表示させて適当に動かしてみれ
0536デフォルトの名無しさん
2007/07/09(月) 11:01:31プログラムが汚いとかやり方が一般的かどうか分からんとかはとりあえず今は置いとく。
表示させる手段は一つとは限らないから、ネットや書籍でそれっぽいやり方を見つけたら
とりあえず何か書いてみる。
*表示した豆腐をキーボードでもマウスでも何でもいいから、とにかく動かせるようにする。
以下同文
*豆腐の他に納豆でもオムレツでも何でもいいから、同時に複数の物体を表示できるようにする。
*当たり判定つけたりオムレツに納豆をはさんだり何でもいいから、いろいろできるようにする。
ここまで出来ればプロへの山も4%は登り切ったも当然
0537デフォルトの名無しさん
2007/07/09(月) 12:41:46フレーム毎の処理は入力取得→更新された入力を踏まえた処理→出力の流れで
デバイスに関するオブジェクトもゲーム内オブジェクトも全部同じように扱えるはずじゃない?
だからそれらを一括して管理できないかなぁと色々やってるうちに日が暮れて中々進めない
俺、頭悪い人間だから直接ループでswitch分岐とか使ってガリガリ書いていくとすぐ把握できなくなるしね…
0538デフォルトの名無しさん
2007/07/09(月) 12:53:440539デフォルトの名無しさん
2007/07/09(月) 13:00:160540デフォルトの名無しさん
2007/07/09(月) 13:31:560541デフォルトの名無しさん
2007/07/09(月) 15:21:55thx
Cではゲームは作ったことないが
キーボードで動かせるウォークスルーはある。
といってもカメラを動かすだけで当たり判定すらなかった
から大したことはしてないけど
0542デフォルトの名無しさん
2007/07/09(月) 16:10:44動かす仕組みは同じだ
どのキーが押されたか判断して処理をさせる
とりあえずじゃなく移動・描画がちゃんと出来れば後は
適当に発想の組み合わせである程度のものは作れる
0543デフォルトの名無しさん
2007/07/09(月) 23:44:55のパラメータには何を指定するんですか?
IDirect3DDevice9::SetTextureにこのメソッドの戻り値指定すれば
テクスチャがシェーダーに設定できるんでしょうか。
0544デフォルトの名無しさん
2007/07/11(水) 08:34:53言語はVB、開発環境はVS2005、OSはvista
とりあえず、DirectXの入門本を購入し、3Dの箱を表示させるまではできたのですが、それを他の人のPCで動かしてもらうとエラーが出て動かないらしいのです。
エラー内容は「グローバルアセンブリキャッシュにアセンブリMicrosoft.DirectX.Direct3Dバージョン1.0.2902.0をインストールする必要があります。」というものです。
私の家のPCでは動きます。(XPとvista、XPはVB2005エクスプレスが入ってます)
ちなみに、その動かない人のPCにはDirectX9.0cが入っているそうです。
私のビルド方法が悪いのでしょうか?
VS2005はインストールしてから、設定などは触っていません。
0545デフォルトの名無しさん
2007/07/11(水) 08:39:17何の疑問点があるんだ?
0546デフォルトの名無しさん
2007/07/11(水) 09:09:482007 Aprilとか2007 Juneとか。
自分の使ってるSDKと同じバージョンの再配布パッケージを入れれば動くと思う。
0547デフォルトの名無しさん
2007/07/11(水) 15:59:43GamDevPukiWiki - テトリス風落ちものゲームを作れ
http://gamdev.org/w/?%5B%5B%A5%C6%A5%C8%A5%EA%A5%B9%C9%F7%CD%EE%A4%C1%A4%E2%A4%CE%A5%B2%A1%BC%A5%E0%A4%F2%BA%EE%A4%EC%5D%5D
0548デフォルトの名無しさん
2007/07/11(水) 19:44:36>>546
そういうことだったのですね・・・。
解決いたしました。ありがとうございました。
0549543
2007/07/11(水) 23:14:55これどうやって使うんですか?
0550543
2007/07/11(水) 23:15:530551デフォルトの名無しさん
2007/07/12(木) 00:34:530552デフォルトの名無しさん
2007/07/12(木) 00:46:00HLSL内でそれ引っ張ってくればいいだけなんじゃねぇの?
0553デフォルトの名無しさん
2007/07/12(木) 00:55:48GetSamplerIndexの戻り値はSetTextureやSetSamplerStateのステージ序数に対応してんのよ。
HLSLのサンプラ定数は宣言順にレジスタが割り当てられる保障はなくて、
HLSL側のサンプラ定数とDirect3Dデバイスに渡すテクスチャ等との対応をとるためのメソッドなんだよ。
でもHLSLはサンプラ定数に任意のレジスタを指定できるから、ほとんど使う場面はねぇんだなこれが。
0554デフォルトの名無しさん
2007/07/14(土) 23:51:56GetConstantByNameしたのをGetSamplerIndexに渡して
SetTextureじゃない?
0555デフォルトの名無しさん
2007/07/15(日) 02:09:42逆に聞くけど、なんでそんなにGetSamplerIndexが気になるの? つーか何がしたいの?
上にも書いたけどHLSL側でサンプラ定数のレジスタ指定できるから
FXComposer的なツールを作るのでもなければ、基本的に忘れていいメソッドだぞこれ。
0556デフォルトの名無しさん
2007/07/15(日) 09:41:56もしかしてコンソールではDirectSoundは使えないのでしょうか?
ソースはどちらもDirectSoundの処理部分はまったく同じです。
0557デフォルトの名無しさん
2007/07/15(日) 13:02:11自らがやっていることを他のせいにするな。
0558549
2007/07/15(日) 18:35:34サンプラにテクスチャを割り当てたいです。
>上にも書いたけどHLSL側でサンプラ定数のレジスタ指定できるから
これでおk?
sampler Environment : register(s0);
〜
IDirect3DDevice9::SetTexture(0,pTexture);
0560デフォルトの名無しさん
2007/07/15(日) 23:47:18おけーです。
まぁどちらの方法で管理するかはお好みでってことで。
0561デフォルトの名無しさん
2007/07/16(月) 18:05:52ネットに繋いでないとインストールできないんでしたっけ?
今ネット環境があぼんしてるのでネットカフェでCDにでもexeを保存して
家でインストールしたいんですが。
0562デフォルトの名無しさん
2007/07/16(月) 18:08:01双方とも、ネット接続なしでインストールできる配布パッケージがあります。
ランタイムライブラリの方は、web版じゃない方(サイズが小さくない方)を選んでください
0563デフォルトの名無しさん
2007/07/18(水) 11:59:00サービスパックに何が含まれているかぐらい開発者なら確認するのが当たり前だろう。
0564デフォルトの名無しさん
2007/07/19(木) 01:19:44('A`)なにこの 糞サイト
0565デフォルトの名無しさん
2007/07/22(日) 06:48:37D3DERR_NOTAVAILABLEってエラーが出た場合、その環境は切り捨てるしかないんですかね
DelphiのQuadrupleDってコンポーネントでやってるんで
具体的に何がまずくて出てるかは分からないんですが
0566デフォルトの名無しさん
2007/07/22(日) 10:16:53何か情報得られるかもね。
0567デフォルトの名無しさん
2007/07/22(日) 23:10:01二種類のXファイルを表示したいのですが、うまくいきません。
具体的には背景と、キャラクターです。
D3DXLoadMeshFromX(_T("back01.x")1のように、一種類のXファイルを表示させることはできるのですが
複数になるとわかりません。
0568デフォルトの名無しさん
2007/07/23(月) 01:34:180569デフォルトの名無しさん
2007/07/23(月) 07:43:043つ以上、チェックがつけばアナタの性格はひん曲がっており、
ネガティブ負け組派遣人生を歩んでいます。
□派遣先正社員の作った糞開発ツールはたとえ腐っててもマンセーして使う
□派遣先の人事権のある社員の意見はたとえ間違っていてもマンセーする
□仕様とは正社員から口伝されるものだ
□耳で聞いた仕様を正確に覚えていないのは自分の責任だ
□昼食は必ず派遣先の社員と行くべきだ
□自分の仕事で問題が発生しても解決するのは派遣の仕事ではない
□派遣先から「いつまでもここで仕事してくださいね(安い金でw)」と言われて嬉しい
□自社で仕事なんてできるわけがない
□派遣労働の問題点の話題が出ると感情剥き出しにして反論する
□派遣労働の問題を指摘する人は嫌いだ
□派遣先には仕事だけでなくプライベートについてもグイグイ引っ張って欲しい
□奢ってくれる派遣先正社員を尊敬する
□自分の月額金額を知らないのは当然だ、単金を聞いてはいけない
□派遣先正社員より自分の生涯収入が低いのは当然だ
□チビは派遣先にかわいがってもらいやすいから派遣には有利だ
0570デフォルトの名無しさん
2007/07/24(火) 12:47:54コンパイラはVS2005です。
XVIDコーデックのaviファイルを再生したいのですが、その方法が分かりませんでした。
AudioVideoPlaybackを使えば良いかと思い、
AudioVideoPlayback.Video video = new Video("hoge.avi") ;
video.Play() ;
と書いてみたのですが、初期化の時点でDirectXExceptionが発生してしまいます。
良い方法がありましたら、御教授ください。
0571デフォルトの名無しさん
2007/07/26(木) 13:58:49インストールするにはファイルの中のDXSETUPを起動させればいいんですよね?
かなり根本的なことですがプログラムの一覧にも表示されず
本当にインストールしたのか?といった感じで・・・
0572デフォルトの名無しさん
2007/07/26(木) 14:12:150573デフォルトの名無しさん
2007/07/26(木) 14:26:040574デフォルトの名無しさん
2007/07/28(土) 12:19:560575デフォルトの名無しさん
2007/07/28(土) 12:27:520576デフォルトの名無しさん
2007/07/28(土) 12:31:040577デフォルトの名無しさん
2007/07/28(土) 13:02:550578デフォルトの名無しさん
2007/07/28(土) 21:17:37LPDIRECT3D9
LPDIRECT3DDEVICE9
ってどこで宣言してる?
サンプル通りにグローバル変数にするとファイル分割するときに困る
かといってローカル変数だと関数つくったときに引数が無駄に増えて鬱陶しい
0579デフォルトの名無しさん
2007/07/28(土) 22:56:34引数で渡さないとロストしたときに引っ掻ける場所がないだろ?
それを管理しようとすると死ぬぞ
素直に引数で渡せば問題にならない
0580名無しさん@そうだ選挙に行こう
2007/07/29(日) 00:38:42まあ、グローバルみたいなもんだが
0581名無しさん@そうだ選挙に行こう
2007/07/29(日) 01:15:16それだとアクセスするたびにロスト調べて
ロストしてたら復旧するかスルーする仕組みにしないとバグるな
ロスト時完全スルーの構造にすると思いもかけない関数が動かなくてびびったりびびらなかったり
結局、引数が増える以上に面倒なもん管理しなくちゃいけないことになる
ところでなんで引数が多いことをまずいとおもうわけ?
MSの関数みた?あんなのだって普通の状態だと思うぜ
必要だからあるんだしね
引数は多くてもかまわないと思う(限度はあるだろうけどw)
0582名無しさん@そうだ選挙に行こう
2007/07/29(日) 01:21:33少ないから早くなるってわけじゃないんだっけか。
0583名無しさん@そうだ選挙に行こう
2007/07/29(日) 07:53:42たらいまわしになるから。
AからB、BからC、CからDと関数を呼んでいる場合に、Dでコンテキストが必要となったとき、
A、B、C、D全部に、引数が追加。
これが、最初から全部わかっていれば、まだいいが、
小さな関数が増えるたびに、引数に追加される。
これが、どうもいや。
たぶん、>>581のケースでは関係ないと思う。
別に引数を減らしたいわけじゃないです。
まあ、気にしないで。
0584名無しさん@そうだ選挙に行こう
2007/07/29(日) 08:08:18を指定するんじゃなくてベクトルそのものを渡したいとか
まとめられそうなパラメタ(例えばprevとnow)は1つにしたい
そういう意味で引数はなるべく減らしたい
0585名無しさん@そうだ選挙に行こう
2007/07/29(日) 08:33:53そんなの気にしてたら、しまいにゃ引数全部void*になるよ
必要なものは端折らないってのが俺のやり方だけどな
実装の手間なんかこんなところで解決するもんじゃないと思うよ俺は
階層深いったって直しても10〜20箇所でしょ?知れてるじゃん
0586名無しさん@そうだ選挙に行こう
2007/07/29(日) 09:00:38端折るんじゃなくて必要以上に見せないって考え
渡される側に必要な情報でも、渡す側は別に知らなくてもいい情報って結構あるでしょ?
それを考慮した上でも引数が多くなるなら仕方ないって諦めてるよ
0587名無しさん@そうだ選挙に行こう
2007/07/29(日) 09:06:340588名無しさん@そうだ選挙に行こう
2007/07/29(日) 11:15:14だったらD3DDEVICEなんてなんで隠す必要あるの?
もろインターフェースじゃん
むしろだせよ
お前テキトーいって誤魔化してネェ?
0589名無しさん@そうだ選挙に行こう
2007/07/29(日) 12:43:310590名無しさん@そうだ選挙に行こう
2007/07/29(日) 16:44:37構造体やクラスに梱包してしまうと
今度その構造体やクラス無しでは動かないもんになるのが嫌だな
でも、中身の仕様はそんな構造体やクラスは必要無いのに実装的にそんなもんが必要になってしまうのが嫌
このクラスだけ移して別のプログラムでそのまんま使えるなら使いてぇし
なるべくそのプロジェクト特有のもんを入れたくない
汎用性全くなくなるし
って感じだな
0591名無しさん@そうだ選挙に行こう
2007/07/29(日) 17:07:320592デフォルトの名無しさん
2007/07/30(月) 00:53:12いつも仕事中にWebばかり見てる派遣クンが
「DirectXがプログラムどおりに動かない原因を調べるのは僕の仕事ではありません。」
と言っています。
彼のDirectXプログラムが動かないのを調べるのは誰の仕事なのでしょうか?
0593デフォルトの名無しさん
2007/07/30(月) 01:07:260594デフォルトの名無しさん
2007/07/30(月) 01:10:37連体格の「の」が多すぎ
0595デフォルトの名無しさん
2007/07/30(月) 01:10:480596デフォルトの名無しさん
2007/07/30(月) 05:45:25単なる荒らしか?
3D関係のところが、コピペされているようだが
0597デフォルトの名無しさん
2007/07/30(月) 10:52:46特化することを恐れるな。
汎用的を目的に設計されたものは、どこに行っても全く使えないものになるぞ。
0598デフォルトの名無しさん
2007/07/30(月) 10:59:48派遣がDirectXの仕事すると問題が多いからじゃね?
0599デフォルトの名無しさん
2007/07/31(火) 00:53:16DirectInputに関してなのですが、
IDirectInputDevice8::GetCapabilities()
がアクセス違反例外をはきやがります。
出力されるエラーは
ReportID=1
****.exe の 0x77e3d6ee で初回の例外が発生しました : 0xC0000005: 場所 0x00000002 を読み込み中にアクセス違反が発生しました。 。
****.exe の 0x7c812a5b で初回の例外が発生しました : 0x00000006: ハンドルが無効です。。
の3行です。
プログラムは落ちないし、戻り値もS_OKで正常、
コントローラもちゃんと効き、ゲームも動いているのですが、どうにも気味が悪いです。
呼び出し前のDIDEVCAPSのdwSize初期化も行っています。
原因分かる方、この手の問題が起こるケースやパターンが思い付く方いらっしゃいましたらお願いします。
環境
OS: WinXP Pro
CPU: CoreDuo 1.83Ghz
Mem: 1Gbyte
VC++2003 + DirectX9.0bSDK
パッドはエレコムのPSのパッドコンバータ(JC-PS202USV)
0600デフォルトの名無しさん
2007/07/31(火) 01:43:20とりあえず手元にあるパッドでデバイス作ってGetCapabilities呼んでみたけど
例外は発生してなかった。
SEHはDLL内部でちゃんと捉えて後処理されてるみたいだから
別に気にしなくていいんじゃないか
0601デフォルトの名無しさん
2007/07/31(火) 20:48:00DirectX10って6からどのくらい変わった?
てかSDKどこだw
0602デフォルトの名無しさん
2007/07/31(火) 21:57:56レスありがとうございます。
この例外がDLL側の問題で起きているならいいのですが、
自分が書いたコード上に問題が潜んでいるのであれば、
潜在的に今後バグが発生する危険性を抱えている事になるので、その辺が気になってます。
0603デフォルトの名無しさん
2007/07/31(火) 22:07:45DirectXのサンプルで使ってるやつないの?
0604超初心者
2007/07/31(火) 22:20:31環境:VC++6.0
なにやらDirectXSDKをダウンロードするとかどうとかちんぷんかん・・・・・・泣
誰か助けてください。
ちなみに「ディレクトリ」で[C:\mssdk\include][c:\mssdk\Lib]と学校ではこれやって<ddraw.h>したらできたのにできない・・・・・・なぜですか?
0605デフォルトの名無しさん
2007/07/31(火) 22:28:496からならもう別物と考えろ。
0606デフォルトの名無しさん
2007/08/01(水) 00:21:43サンプルの存在を忘れてました・・・ということで、
サンプルのActionBasic.exeを実行してみたところ
ActionBasic.exe の 0x7c812a5b で初回の例外が発生しました : Microsoft C++ exception: MapException @ 0x0012ee7c。
ActionBasic.exe の 0x7c812a5b で初回の例外が発生しました : Microsoft C++ exception: MapException @ 0x0012ee80。
例外のメッセージこそ違うものの、2つの例外が発生。
どうやら例外は無視して良いみたいですね。ありがとうございました。
0607デフォルトの名無しさん
2007/08/01(水) 09:00:21DirectXSDK を入れればいい
これで分からんならPCの勉強しろ…
九九が分からないのに微積を教えろって言ってるようなレベルだぞそれ…。
0608デフォルトの名無しさん
2007/08/01(水) 10:25:230609デフォルトの名無しさん
2007/08/01(水) 11:49:020610デフォルトの名無しさん
2007/08/01(水) 14:22:470611デフォルトの名無しさん
2007/08/01(水) 18:39:460612yd
2007/08/01(水) 22:07:050613デフォルトの名無しさん
2007/08/03(金) 00:50:58エロゲを買ったところディスクを入れても反応しなかったので
調べたところ、グラフィックデバイスメモリが64MB以上必要だと書いてあった
のでDirectX診断ツールのデバイスのメモリ合計を見ると16MBで足りてなかった
のですがこれ増やす事って可能なんですか?やり方教えてください!
0614デフォルトの名無しさん
2007/08/03(金) 00:52:160615デフォルトの名無しさん
2007/08/03(金) 00:56:07どんだけ古いPCなんだよw
0616デフォルトの名無しさん
2007/08/03(金) 01:04:430617デフォルトの名無しさん
2007/08/03(金) 02:32:01GPUのVRAMを、メインメモリ使って仮想メモリ化したものを作ろうとしているんだけど、良いアイデアない?
って事かw
0618613
2007/08/03(金) 03:34:18どうかよろしくお願いします!
0619デフォルトの名無しさん
2007/08/03(金) 04:30:560620デフォルトの名無しさん
2007/08/03(金) 07:00:41は?まったく理解できない
何いってんの?
0621デフォルトの名無しさん
2007/08/03(金) 08:20:30他人のプログラムなら板違い。
それ以上でもそれ以下でもない。
0622デフォルトの名無しさん
2007/08/03(金) 15:43:320623デフォルトの名無しさん
2007/08/03(金) 22:33:340624デフォルトの名無しさん
2007/08/06(月) 19:03:480625デフォルトの名無しさん
2007/08/09(木) 14:02:09よくXファイルはフォーマットが洗練されていないということで
D3DXで読み込めるものと完全には読めないものがあるとききますが、
D3DXで完全に読めるように正規化させるツールとかはないのでしょうか?
0626デフォルトの名無しさん
2007/08/09(木) 18:05:52読み込めないのは世の中のエクスポータが腐ってるのが多いってだけで
Xファイルの不出来とはあんま関係ないよ。
0627デフォルトの名無しさん
2007/08/09(木) 21:28:36D3DXに頼らず自分で読み込む必用がある。
というか、読み込み部分ぐらい自分で作れよ。
0628デフォルトの名無しさん
2007/08/10(金) 07:00:18今MFCで画像ビューアつくろうとしてて、(ウィンドウモードで)
各画像が8ビットグレー階調だったり24ビットRGBだったりするので、
bmpファイル読み込んだとき、ビット数をチェックして、
プライマリサーフェイス作成時のDDSURFACEDESC構造体で
DDSURFACEDESC ddsd;
ddsd.dwSize=sizeof(DDSURFACEDESC);
ddsd.dwFlags=DDSD_CAPS | DDSD_PIXELFORMAT;
ddsd.ddsCaps.dwCaps=DDSCAPS_PRIMARYSURFACE;
ddsd.ddpfPixelFormat.dwflag=DDPF_PALETTEINDEXED8←8ビットグレーの場合
ってやってCreateSurfaceってやるとプライマリサーフェイス作成時に失敗する。
もしかしてプライマリサーフェイスに任意にddpfPixelFormatを設定することはできない?
0629デフォルトの名無しさん
2007/08/10(金) 07:35:55この時期そんなもん使ってるならその辺もろもろ自分でなんとかしろといいたくなる
初心者スレだから手段を間違ってるかもしらんからあえて聞くけど
DirectDrawなんてなんで使ってるの?
一応動くけど情報なんてほとんど無い状態なんだけど?
その辺の不具合を全部理解しててなお使うっていうならもう初心者じゃないので
別のスレいって叩かれてこいw
0630デフォルトの名無しさん
2007/08/10(金) 17:16:58ウィンドウモードのプライマリはディスプレイと同じじゃないとダメだったような。
バックバッファに作ってから、Lockしてピクセルを手動で変換がいいんではないか?
正直忘れた。
そんなんならDIB使え。
0631デフォルトの名無しさん
2007/08/10(金) 18:45:00MFCで画像ビューワ程度ならGDIで作ったほうがいいよ〜
0632デフォルトの名無しさん
2007/08/11(土) 00:50:33逆に9で作ったものを10で動かす場合に注意すべきと事かありますか?
0633デフォルトの名無しさん
2007/08/11(土) 04:12:000634デフォルトの名無しさん
2007/08/11(土) 05:26:590635デフォルトの名無しさん
2007/08/11(土) 12:51:00やり方は簡単でも続けるのが難しいところは変わらんなw
0636デフォルトの名無しさん
2007/08/11(土) 13:30:16ウインドウモードで三角ポリゴンを20枚を画面に表示してるんですが、
IDirect3DDevice9::Presentが25msも掛かります。
ちなみにPresentationIntervalはD3DPRESENT_INTERVAL_IMMEDIATEにして、
垂直帰線間隔を待たないようにしています。
どうしてこんなに遅いのか原因がまったく分かりません。
0637デフォルトの名無しさん
2007/08/11(土) 13:32:32MatrixG200つかってるとか。
0638デフォルトの名無しさん
2007/08/11(土) 13:40:260639デフォルトの名無しさん
2007/08/11(土) 14:12:14まあせめて環境書いてもらわないと何とも言えないんだけど、
D3DPRESENT_INTERVAL_IMMEDIATEってすぐに戻るとは限らないよ。
Direct3D 9世代だと、画面のフリップは最大3回までしかキューイングできないことになってるので、
既に3回分キューされてると1回フリップされるまで待たされる。
まあそこまで高度な話じゃなくてしょぼいミスとかヘンテコハードの可能性の方が高い気がするけどナー
0640636
2007/08/11(土) 14:37:57ですがものすごく重いです、FPSは40前後しか出ません。
アプリケーションウィザードの急須はちゃんと表示されてD3DPRESENT_INTERVAL_ONEで
FPSもちゃんと60出てました。
すみません肝心な環境を書いていませんでした。
PCは2002年に購入したノートです。
CPU Intel PentiumIII Mobile 1000MHz
メモリ512MB
グラフィックはオンボードの
ATI Rage Mobility-M6C VRAM 8MB
画面 1024*768 (16bit) (60Hz)
DirectX9.0c
2日間何度も見直したのですが原因が突き止められず悩んでいる状態です。
0641デフォルトの名無しさん
2007/08/11(土) 15:03:250642デフォルトの名無しさん
2007/08/11(土) 15:05:160643デフォルトの名無しさん
2007/08/11(土) 15:10:01三角ポリゴンを20枚ってのが常識的なサイズと常識的な実装なら
その環境でも60FPSぐらいは出るはずかな。
どこかヘマしてるような気はする。
2日悩んで分からなかったってことは多分3日悩んでも4日悩んでも
あんまり変わらんかもね。
かといって掲示板にエスパー期待する方がもっと確率低いけど。
2日バイトしてバイト代を使って誰かにデバッグしてもらうとかどうなん?
最近Q&Aサイトとかでポイントをやりとりできるところあるじゃん。
0644デフォルトの名無しさん
2007/08/11(土) 16:25:43ウインドウサイズは640*480で、使用しているテクスチャは256*256が3枚だけです。
それと深度バッファーをバックバッファー以外にテクスチャと同じサイズと枚数で作成して持っています。
最初は(今でも)自分のソースを疑ったんですが、IDirect3DDevice9::Presentだけをコメントアウトして
5ms間隔にしたらちゃんと200FPSでていました。
深度バッファの切り替えをヘルプをみながら初めて組んだのでこのあたりが疑わしいのですが、
たったポリゴン20枚で遅くなるとも考えられないので。
0645デフォルトの名無しさん
2007/08/11(土) 16:48:420646デフォルトの名無しさん
2007/08/11(土) 16:54:16なぜそこまでソースを出し渋るのか。
0647デフォルトの名無しさん
2007/08/11(土) 19:17:29問題が再現する最低限のコード(ミニマムコード)を提示してみては?
0648デフォルトの名無しさん
2007/08/11(土) 19:36:32できれば明後日にでも問題箇所のコード載せますので、そのときはよろしくお願いします。
皆さんアドバイスありがとうございました。
0649デフォルトの名無しさん
2007/08/11(土) 19:47:470650デフォルトの名無しさん
2007/08/11(土) 20:21:53お前みたいな奴はプログラム向いてないと思うよ。
そんな糞コードアップしたって誰もみねーよ馬鹿!
0652デフォルトの名無しさん
2007/08/12(日) 16:18:17650も超初心者だから。
0653デフォルトの名無しさん
2007/08/12(日) 16:23:45なるほど
答える方も超初心者用なのでお互い様ってことだな
質問する方も答える側が超初心者であることを心するべきと
0654デフォルトの名無しさん
2007/08/12(日) 16:26:530655デフォルトの名無しさん
2007/08/12(日) 18:00:22ソースでないから、こちらが損するわけじゃねえ
0656デフォルトの名無しさん
2007/08/13(月) 00:17:59どうすればいいれしょうか???
0657デフォルトの名無しさん
2007/08/13(月) 00:22:220658デフォルトの名無しさん
2007/08/13(月) 00:39:57googleにDirectXって入れて検索してみろ
0659デフォルトの名無しさん
2007/08/13(月) 00:42:51ロードできませんでした(´・ω・`)
0660デフォルトの名無しさん
2007/08/13(月) 02:29:170661デフォルトの名無しさん
2007/08/13(月) 03:20:360662デフォルトの名無しさん
2007/08/13(月) 03:21:230663デフォルトの名無しさん
2007/08/13(月) 06:18:30今日アルタ前でやってみる。
0664デフォルトの名無しさん
2007/08/13(月) 12:22:140665デフォルトの名無しさん
2007/08/13(月) 22:50:04音楽ファイルの要所要所にマークをつけて、再生しながら、
プログラムの特定ポイントとそのマーク間で同期をとる。
なんてことできますか?
0666デフォルトの名無しさん
2007/08/13(月) 22:56:130667デフォルトの名無しさん
2007/08/13(月) 23:06:210668デフォルトの名無しさん
2007/08/13(月) 23:12:590669デフォルトの名無しさん
2007/08/13(月) 23:24:56音鳴らすのも、関数にファイルセットするだけとかじゃなくて、
もうちょっと低レベルなとこまで弄れるということですか?
Javaしかやったことない上、プログラマじゃなくてミュージシャンなので、
お手柔らかにお願いします。
0670デフォルトの名無しさん
2007/08/13(月) 23:33:39Java でもそれくらいはいじれる
0671デフォルトの名無しさん
2007/08/14(火) 00:55:560672デフォルトの名無しさん
2007/08/15(水) 00:39:12こんな基本的なことが、>>1とかMSのページから探してもどうしても見つからない…。
DX8とかC#のサンプルは見つけたんだけど。
0673デフォルトの名無しさん
2007/08/15(水) 01:58:18ttp://msdn2.microsoft.com/en-us/library/aa139759.aspx
ttp://msdn2.microsoft.com/en-us/library/bb219740.aspx
0674デフォルトの名無しさん
2007/08/15(水) 02:01:550675デフォルトの名無しさん
2007/08/15(水) 02:46:010676デフォルトの名無しさん
2007/08/15(水) 03:46:18DirectX9のC++の関数やフラグ
0677デフォルトの名無しさん
2007/08/15(水) 09:46:59をインストール中にフリーズするけどおまいら大丈夫?
0678デフォルトの名無しさん
2007/08/15(水) 12:37:12�dです
0679デフォルトの名無しさん
2007/08/15(水) 13:07:44出来ない場合、どのクラスを使って実現するのが早いでしょうか?
使ってるのはDirectX9です。
0680デフォルトの名無しさん
2007/08/15(水) 14:11:36このスレってManagedの話もOKなんだっけ?
0681デフォルトの名無しさん
2007/08/15(水) 14:58:00Managed DirectX vol.2
http://pc11.2ch.net/test/read.cgi/tech/1061285378/
0682デフォルトの名無しさん
2007/08/15(水) 15:17:20初心者であれば言語は問わない、ってことなのかな
0683デフォルトの名無しさん
2007/08/15(水) 18:06:23いったい何を言ってるんだ?
0684679
2007/08/15(水) 18:46:050685デフォルトの名無しさん
2007/08/15(水) 18:46:13MDXは誘導して何でC++は誘導しないんだ?
0686デフォルトの名無しさん
2007/08/15(水) 18:49:050687デフォルトの名無しさん
2007/08/15(水) 18:53:43スレタイか>>1あたりにC/C++限定なりの旨を書いておくべきでは?
0688デフォルトの名無しさん
2007/08/15(水) 18:57:36http://pc11.2ch.net/test/read.cgi/tech/1173535400/
【C++】 DirectX初心者質問スレ Part13 【C】
http://pc11.2ch.net/test/read.cgi/tech/1182351826/
[DirectX][.NET][XBOX360][C♯C#] XNA Game Studio
http://pc11.2ch.net/test/read.cgi/tech/1159367275/
【PureVideo】DirectX Video Acceleration【AVIVO】
http://pc11.2ch.net/test/read.cgi/tech/1178285897/
Managed DirectX vol.2
http://pc11.2ch.net/test/read.cgi/tech/1061285378/
DirectX総合スレ (Part7)
http://pc11.2ch.net/test/read.cgi/gamedev/1179516297/
【簡単にゲーム作成言語】BASIC+DirectX=LGP
http://pc11.2ch.net/test/read.cgi/gamedev/1034694683/
DirectXとOpenGL、ゲーム作るならどっち?
http://pc11.2ch.net/test/read.cgi/gamedev/1009941920/
DirectXのサンプルをしゃぶりつくす!
http://pc11.2ch.net/test/read.cgi/gamedev/1032657642/
2D!!のDirectXをやってみるかもな
http://pc11.2ch.net/test/read.cgi/gamedev/1005133911/
0689デフォルトの名無しさん
2007/08/15(水) 20:02:52d3drm.hは存在するものの、d3drm.lib が見当たらず静的リンクが不能な状態です。
このlibファイルが存在するSDKというのは、どうすれば入手できるでしょうか?
0690デフォルトの名無しさん
2007/08/15(水) 20:08:23そもそもなんでそれ使うの?
0691デフォルトの名無しさん
2007/08/15(水) 20:32:32Cマガジンを全号買ってる友人にCDを借りる
0692デフォルトの名無しさん
2007/08/15(水) 20:54:38こんな友人いたら国宝級だな
0693デフォルトの名無しさん
2007/08/15(水) 21:56:290694デフォルトの名無しさん
2007/08/15(水) 22:50:190695デフォルトの名無しさん
2007/08/15(水) 22:58:090696デフォルトの名無しさん
2007/08/15(水) 23:11:310697デフォルトの名無しさん
2007/08/15(水) 23:22:35SetColorKeyも使えないみたいだし・・・
0698デフォルトの名無しさん
2007/08/15(水) 23:37:550699デフォルトの名無しさん
2007/08/16(木) 10:55:080700デフォルトの名無しさん
2007/08/16(木) 12:12:090701695
2007/08/16(木) 16:13:54bmpファイル(24ビットフルカラー)
を透過させて、かつアルファブレンドで半透明に表示したくて
いろいろと調べて回ったわけです。
ですが、スプライトに透過色を与える方法が見つかりません。
なのでDirectDrawならできるんじゃないかと思ったのですが、
あれば、スプライトに透過色を指定する方法を教えてください。
お願いします。
0702デフォルトの名無しさん
2007/08/16(木) 16:19:31自分で1ピクセルずつ計算して描くしかありません。
それがDirectDrawのお力です。
0703デフォルトの名無しさん
2007/08/16(木) 16:39:27ライブラリが結構あったよな
ソース覗いてみたらピクセルフォーマット毎に全分岐を書き下したりしてて
よくやるなあと思ったわ
0704デフォルトの名無しさん
2007/08/16(木) 17:38:100705695
2007/08/16(木) 18:58:12色指定もできるし、透明度も変えれるしマンセーだ。
D3DXCreateTextureFromFileEx
0706デフォルトの名無しさん
2007/08/16(木) 21:03:04>>701とは別の人?DirectDrawなら出来るとか言ってたのに
D3D使ってるなら初めからそう書くべきだと思うが
0707デフォルトの名無しさん
2007/08/17(金) 18:02:16{
D3DXVECTOR3 vecPosition;
};
D3DMATRIX matWorld; で、
D3DXMatrixTranslation(&matWorld,Thing[2].vecPosition.x,Thing[2].vecPosition.y,Thing[2].vecPosition.z); が
error C2664: 'D3DXMatrixTranslation' : 1 番目の引数を 'D3DMATRIX *' から 'D3DXMATRIX *' に変換できません。
指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。
と返されてしまうのですが、(&matWorld,Thing[2].vecPosition.x,Thing[2].vecPosition.y,Thing[2].vecPosition.z)ではいけないのでしょうか?
0708デフォルトの名無しさん
2007/08/17(金) 18:11:470709デフォルトの名無しさん
2007/08/17(金) 19:56:400710デフォルトの名無しさん
2007/08/18(土) 03:02:450711デフォルトの名無しさん
2007/08/18(土) 11:46:44ああいうのってどうやって固定させるんですか?
0712デフォルトの名無しさん
2007/08/18(土) 12:11:45つまり、時間あたりの移動回数と移動距離を固定すればよい
0713デフォルトの名無しさん
2007/08/18(土) 12:49:49例えばゲームを60FPSとするなら1秒間に60回だけメインループから
アップデート関数を呼ぶという感じに作る
0714デフォルトの名無しさん
2007/08/18(土) 23:09:19ありがとう。その方法でやってみます。
0715デフォルトの名無しさん
2007/08/19(日) 00:01:280716デフォルトの名無しさん
2007/08/19(日) 00:38:230717デフォルトの名無しさん
2007/08/19(日) 01:04:040718デフォルトの名無しさん
2007/08/19(日) 01:35:250719デフォルトの名無しさん
2007/08/19(日) 07:39:46フレームレートが半分くらいになった…こういうものなの?Indexedの方が速いのかと思ってた。
0720デフォルトの名無しさん
2007/08/19(日) 08:19:000721デフォルトの名無しさん
2007/08/19(日) 09:42:59オンボのRadeon X1200だと30fpsぐらいしか出ない。
0722デフォルトの名無しさん
2007/08/19(日) 10:07:420723デフォルトの名無しさん
2007/08/19(日) 11:46:06これだとIndexのが微妙に速いんだけど?
0724デフォルトの名無しさん
2007/08/19(日) 13:38:46やはりおかしいのかね…。調べてみます。
0725デフォルトの名無しさん
2007/08/19(日) 14:47:23インデックス順序の最適化はしてるの?
0726デフォルトの名無しさん
2007/08/19(日) 17:18:10GPUの頂点キャッシュは16頂点分くらいしかないから、その間に
頂点の再利用をしなかったら意味がないよ。
0727デフォルトの名無しさん
2007/08/19(日) 17:57:08あー、なるほどなんとなくわかった。家帰ったら試してみます。
0728デフォルトの名無しさん
2007/08/20(月) 03:19:11涙も出ない。
0729デフォルトの名無しさん
2007/08/20(月) 10:34:43D3DFMT_A16B16G16R16Fで作成したテクスチャに書き込んでから、
テクスチャをバックバッファに書く(この時間は含まない)のでは、
やはり、直接バックバッファに書き込む方が速いですか?
また、どれくらい違いが出るのでしょうか?
0730デフォルトの名無しさん
2007/08/20(月) 10:40:010731デフォルトの名無しさん
2007/08/20(月) 10:44:390732デフォルトの名無しさん
2007/08/20(月) 11:00:04まあ自分で試せばいいことだ
0733729
2007/08/20(月) 11:06:24テクスチャへの描画の方がかなり遅いことが分かりました。
ども。
0734727
2007/08/21(火) 01:18:38DrawIndexedPrimitive( D3DPT_TRIANGLESTRIP, BaseVertexIndex, MinIndex, NumVertices, StartIndex, PrimitiveCount );
最初常にMinIndexが0、NumVerticesが全頂点数になってて効率最悪だったので
実際使われているMinIndex、NumVerticesをストリップごとに求めてみたけど速度変わらず。
Indexedは頂点バッファの省メモリ化のためにやるもんで、スピードは犠牲になるってことか。
0735デフォルトの名無しさん
2007/08/21(火) 01:33:36TRIANGLELISTでこそ意味がある。
短いSTRIPをたくさん描画するよりも、TRIANGLELISTで一発で
描画する方が速い場合に意味がある。
(面積0のポリゴンでSTRIPを繋いだ方が多くの場合で速いが)
0736デフォルトの名無しさん
2007/08/21(火) 04:12:38対戦直前にXファイルの3Dキャラクター2体ロードし、対戦終了後も同様してに、
また対戦を行っていると、みるみるうちにメモリが使われていきます。
おそらく何かが開放されておらず、Xファイルを重複で読み込んでいるせいだと思うのですが
アプリ終了時の様にメッシュ等を「pMesh->Release();」で開放するとエラーが起こります。
結局それから何も解決できず混乱してしまい、もしかするとDirectX側で
何か方法があるのではと思ったのですが…DirectX以前の問題ですかね?
全ては書ききれないのでとりあえずメッシュ関係は以下の通り宣言しています。
DWORD numMesh; // XFile内部のメッシュの数
LPD3DXMESH pMesh; // メッシュオブジェクトへのポインタ
D3DMATERIAL9 *pMaterial; // マテリア記憶用配列へのポインタ
LPDIRECT3DTEXTURE9 *pTexture; // テクスチャ記憶用配列へのポインタ
0737デフォルトの名無しさん
2007/08/21(火) 05:54:22SkinnedMeshのサンプル起動してみてnon-indexedとかindexedとかちょっと動かしてみてよ
0738デフォルトの名無しさん
2007/08/21(火) 07:45:18プロファイラ使ってみれば分かると思うけど
DrawPrimitive系統の関数の呼び出しは重いんで、
できるだけ呼び出し回数を減らしたほうがいいよ。
360ならストリップリストもDrawIndexedPrimitiveでいけるのだがねぇ…
0739デフォルトの名無しさん
2007/08/22(水) 00:11:07どうやら生成の仕方に問題があったようで、
Googleさんの力をお借りして解決しました。
0740デフォルトの名無しさん
2007/08/22(水) 12:11:300741デフォルトの名無しさん
2007/08/22(水) 12:38:390742デフォルトの名無しさん
2007/08/22(水) 12:39:48好きなの使え
0743デフォルトの名無しさん
2007/08/22(水) 13:14:12Xファイルを読み込むサンプルじゃなくて、Xファイルそのもののサンプルのことだったのね・・・
そりゃ確かに板違いかもな
0744デフォルトの名無しさん
2007/08/22(水) 17:00:32VC#からCOMの参照を追加しようとしてもそれらしい名前が見つからないんです。
Managedのほうはみつかるんですけど。
0745デフォルトの名無しさん
2007/08/22(水) 17:25:10すべてのCOMコンポーネントにタイプライブラリがあるわけじゃない
0746デフォルトの名無しさん
2007/08/22(水) 17:34:360747デフォルトの名無しさん
2007/08/22(水) 17:55:450748デフォルトの名無しさん
2007/08/22(水) 22:47:38取得したものをReleaseするって聞いたんだが
SpriteとかFontとかはOnLostDeviceじゃだめ?
Releaseして作り直し?
IDirect3DDevice9::ResetがD3DERR_INVALIDCALLを返すんだが。
0749デフォルトの名無しさん
2007/08/22(水) 23:32:320750デフォルトの名無しさん
2007/08/22(水) 23:33:120751デフォルトの名無しさん
2007/08/23(木) 06:49:210752デフォルトの名無しさん
2007/08/23(木) 09:57:100753デフォルトの名無しさん
2007/08/23(木) 10:00:41そうでないなら「SpriteとFontしか使ってない」と勝手に本人が思ってるだけで
実はGet()系メソッドでなにかしら取得してるといかいうオチだろう。
0754デフォルトの名無しさん
2007/08/23(木) 15:02:370755748
2007/08/23(木) 20:49:18IDirect3DDevice9を使ってるのは
スプライトとフォントの作成以外では、
SetRenderState
Reset
Release
TestCooperativeLevel
Clear
BeginScene
EndScene
Present
SetViewport
くらいだぜ
0756デフォルトの名無しさん
2007/08/23(木) 20:57:44ZeroMemory(m_pD3DPP,sizeof(D3DPRESENT_PARAMETERS));
m_pD3DPP->hDeviceWindow = hWnd;
m_pD3DPP->SwapEffect = D3DSWAPEFFECT_COPY;
m_pD3DPP->BackBufferCount = 1;
m_pD3DPP->BackBufferWidth = 800;
m_pD3DPP->BackBufferHeight = 600;
m_pD3DPP->EnableAutoDepthStencil = false;
m_pD3DPP->FullScreen_RefreshRateInHz = 0;
m_pD3DPP->Windowed = false;
m_pD3DPP->PresentationInterval = D3DPRESENT_INTERVAL_DEFAULT;
m_pD3DPP->FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
0757デフォルトの名無しさん
2007/08/23(木) 20:58:36m_pD3DPP->FullScreen_RefreshRateInHz = 0;
は無視してくれ
0758デフォルトの名無しさん
2007/08/23(木) 21:47:32そっちを出せや。
0759デフォルトの名無しさん
2007/08/23(木) 21:59:57トンクス
0760デフォルトの名無しさん
2007/08/23(木) 23:40:04ぐぐったけど見つからない。
0761デフォルトの名無しさん
2007/08/23(木) 23:40:500762デフォルトの名無しさん
2007/08/26(日) 18:41:13BeginRender〜EndRenderの外側でやるのはなぜ?
0763デフォルトの名無しさん
2007/08/26(日) 20:19:580764デフォルトの名無しさん
2007/08/26(日) 20:47:47サンクス
0765デフォルトの名無しさん
2007/08/27(月) 22:17:16->releaseっていうのはどういう風にやればいいんだろうか
class A{
LPD3DXFONT m_pFont;
public:
HRESULT Create( .. );
void SetFont( LPD3DXFONT pFont ){
m_pFont = pFont;
}
LPD3DXFONT GetFont(){ return m_pFont );
..
}
;
例えば上のようなクラスを作って
main()
{
A a1, a2;
a1->Create();フォントを作成
a2->SetFont( a1->GetFont );
}
こうやって同じフォントを二つのオブジェクトで使った場合、
リリースは二回やらなきゃいけなくなるの?
0766デフォルトの名無しさん
2007/08/27(月) 22:18:040767デフォルトの名無しさん
2007/08/27(月) 22:20:560768デフォルトの名無しさん
2007/08/27(月) 22:22:17すんません(;^ω^)
0769デフォルトの名無しさん
2007/08/27(月) 22:31:150770デフォルトの名無しさん
2007/08/28(火) 11:48:18普通に考えたら特に不思議な質問じゃないが。
> ->releaseっていうのはどういう風にやればいいんだろうか
releaseが何をしているのかを理解すれば自ずと答えが出てくる。
調べれば沢山あるし、この程度は自分で解決できるようにするのが
まず第一歩だ。
0771デフォルトの名無しさん
2007/08/28(火) 14:12:400772デフォルトの名無しさん
2007/08/29(水) 01:02:19チュートリアル?サンプルじゃなくて?
よければどこにあるか教えてください
0773デフォルトの名無しさん
2007/08/29(水) 01:16:10お前さ、ヘルプぐらい読めよ。
最低限のことすらやらないで出来ない出来ないと騒いでるんじゃねえよ。
アホも大概にしろよ。
0774デフォルトの名無しさん
2007/08/29(水) 01:25:13が、GUIをつかったvisualプログラミングができません。
int main(void) のコマンドラインのCUIプログラムなら、C++できます。
Visual C++ のコンソールアプリをつくるという方法で、
DirectXを利用したプログラムは走るのでしょうか?
教えて君ですみません。
0775デフォルトの名無しさん
2007/08/29(水) 01:29:51なんだお前?
ちなみにヘルプ探したけどないぞ
0776デフォルトの名無しさん
2007/08/29(水) 01:46:49コンソールアプリでもウインドウを作ればいくらでも動く。
なんで聞く前に試さない?
0777デフォルトの名無しさん
2007/08/29(水) 01:47:11チュートリアルに3角形を表示するサンプルがあるのさ
それってのは万物を表示する基本なのさ
お前はそれをすっとばしてるからなんもかんもわからないのさ
0778デフォルトの名無しさん
2007/08/29(水) 01:51:24ヘルプという限定された中の、たったその程度のものすら探す能力がないのなら、
もうプログラムなんてやめろよ。
0779デフォルトの名無しさん
2007/08/29(水) 10:22:410780デフォルトの名無しさん
2007/08/29(水) 10:46:25DirectX9にはDirectX7も8も含まれていないので、それらを使うことはできません。
互換関数は使えるけどね。
0781デフォルトの名無しさん
2007/08/29(水) 10:55:29( ゚ Д゚)
0782デフォルトの名無しさん
2007/08/29(水) 12:36:410783デフォルトの名無しさん
2007/08/29(水) 14:17:55DirectXで、以前のVerが使えなくなるなんてありえるのか?
そんな劇的な仕様変更が何時の間に。
0784デフォルトの名無しさん
2007/08/29(水) 14:43:010785デフォルトの名無しさん
2007/08/29(水) 21:13:11SDKから消えているだけで実行においては問題ないだろ・・・
0786デフォルトの名無しさん
2007/08/29(水) 22:46:220787デフォルトの名無しさん
2007/08/30(木) 00:08:420788デフォルトの名無しさん
2007/08/30(木) 01:22:120789デフォルトの名無しさん
2007/08/30(木) 02:07:37SDKのバージョンあってるならDirectX3でもコンパイルできるし、実行もできるぞ
0790デフォルトの名無しさん
2007/08/30(木) 02:43:120791デフォルトの名無しさん
2007/08/30(木) 04:26:59まぁ、コンパイルはできそうだな。リンクは駄目だがw
0792デフォルトの名無しさん
2007/08/30(木) 07:42:320793デフォルトの名無しさん
2007/08/30(木) 08:10:200794デフォルトの名無しさん
2007/08/30(木) 14:12:37SDKのバージョンが合っているかどうかはどうやって調べたら良いのでしょうか?
0795デフォルトの名無しさん
2007/08/30(木) 15:10:53要求したダウンロード ファイルは利用できません。
このダウンロード ファイルにアクセスしようとしたときに、引き続きこのメッセージが表示される場合、
ダウンロードセンターのホーム ページにある [ダウンロードの検索] にアクセスしてみてください。
0796デフォルトの名無しさん
2007/08/30(木) 15:11:510797デフォルトの名無しさん
2007/08/30(木) 15:41:490798デフォルトの名無しさん
2007/08/30(木) 19:21:34VBとC#のはあったんだがC++のどっかにないかなあ。
0799デフォルトの名無しさん
2007/08/30(木) 22:01:15普通はターゲットのバージョンのSDKをインストールするだろ・・・
SDKは自分でインストールしないと入らないんだぞ?
0800デフォルトの名無しさん
2007/08/30(木) 23:32:40すみません・・Microsoftのサイトに行っても10か9か何も書いてない物しか見つからなかったので・・・
0801デフォルトの名無しさん
2007/08/31(金) 08:20:47だから、旧バージョンなんかで開発するなとそういうことだw
色々苦労するぜ
ヘルプもみつかんねーし
不具合は永久に直らないし
0802デフォルトの名無しさん
2007/08/31(金) 09:39:42名前もほんとにこれであってんのか?っていうのでリンクはってるし
0803デフォルトの名無しさん
2007/08/31(金) 11:07:00調べたり探したりする能力が無いくせに、何でも他人のせいにする奴は、
結局何をやってもダメということだろう。
0804デフォルトの名無しさん
2007/08/31(金) 13:03:52まぁ、そういはいうがな、誰でも通る道だぞ。
……幼稚園の頃に。
0805デフォルトの名無しさん
2007/08/31(金) 19:06:440806デフォルトの名無しさん
2007/09/01(土) 04:41:34どこで打ってるんですか?
0807デフォルトの名無しさん
2007/09/01(土) 05:33:00ぐぐればDLできるけど
ただの道具だよ。紙と鉛筆があればゲームを作れるって言ってるようなもんだよ
0808デフォルトの名無しさん
2007/09/01(土) 11:24:13ただ紙と鉛筆を用意できても、小説を書き上げるには大変な労力がかかる
売れる小説を書くのはさらに大変
0809デフォルトの名無しさん
2007/09/01(土) 13:20:140810デフォルトの名無しさん
2007/09/01(土) 19:16:34テクスチャ貼り付けるときにどう処理されてるのか知りたいんです!
0811デフォルトの名無しさん
2007/09/01(土) 19:28:18大雑把に言うと、DrawPrimitiveUPの中身はビデオカードのドライバに
指示を出すだけだぞ。
0812デフォルトの名無しさん
2007/09/01(土) 20:34:370813デフォルトの名無しさん
2007/09/01(土) 20:40:56ゲームプログラミングのための3Dグラフィクス数学とかに詳しく書いてあるよ
あれは読みやすい
0814デフォルトの名無しさん
2007/09/01(土) 20:43:01最近のは知らないな。
0815デフォルトの名無しさん
2007/09/01(土) 21:02:43うp
0816デフォルトの名無しさん
2007/09/01(土) 21:48:31フリーだからといって再頒布可能だとは限らないし
0817デフォルトの名無しさん
2007/09/01(土) 22:40:19でもお前が反対することでもないな。
権利持っていない奴が文句をいうのはおかしいと思う。
0818デフォルトの名無しさん
2007/09/01(土) 22:48:110819デフォルトの名無しさん
2007/09/01(土) 22:48:330820デフォルトの名無しさん
2007/09/01(土) 22:50:59誤解したんだよね
ドンマイ
0821デフォルトの名無しさん
2007/09/02(日) 03:13:29テクスチャ設定とミニマップ詳細レベルのとこが
毎回ハイパフォーマンスにしても再起動すると高画質になってます
どうしたらいいのでしょうか?
0822デフォルトの名無しさん
2007/09/02(日) 04:27:40まじですかー!
勘違いしてた!そしてソースは公開されてないんですかねやっぱり・・・
テクスチャをはれるのはわかったんですがどういうアルゴリズムではられてるのかが分からい!
ソース見れば分かるだろって思ってたからびっくりです
0823デフォルトの名無しさん
2007/09/02(日) 09:12:15ソースがあるとかないとかじゃなくて仕組みわかれよw
グラボに命令だすだけで実際に貼る処理はグラボの中だろw
0824デフォルトの名無しさん
2007/09/02(日) 10:24:090825デフォルトの名無しさん
2007/09/02(日) 15:23:41ID3DXMesh::LockAttributeBuffer Method
HRESULT LockAttributeBuffer(
DWORD Flags,
DWORD** ppData
);
これのppDataについて、各サイトで違うこと書いてるんですが、一体どれが正しいんでしょうか?
http://msdn.microsoft.com/archive/en-us/directx9_c_Summer_03/directx/graphics/reference/d3dx/interfaces/id3dxmesh/lockattributebuffer.asp?frame=true
ppData
[out] Address of a pointer to a buffer containing three DWORDs for each face in the mesh.
http://msdn2.microsoft.com/en-us/library/bb174070.aspx
ppData
[out] Address of a pointer to a buffer containing a DWORD for each face in the mesh.
http://msdn.microsoft.com/library/ja/DirectX9_c/directx/graphics/reference/d3dx/interfaces/id3dxmesh/lockattributebuffer.asp?frame=true
ppData
[out] メッシュ属性データを格納するバッファへのポインタのアドレス。この配列は、メッシュの頂点およびエッジを記述する D3DXATTRIBUTERANGE 要素の配列である。
0826デフォルトの名無しさん
2007/09/03(月) 04:26:54移動させたいのですが、ワールド座標(0.0.0)にあるモデルをスクリーン座標(100.50)の
位置に移動させたいとき、どうやって移動先のワールド座標を求めればいいのでしょうか?
(移動後のワールド空間での奥位置は移動前と同じとします)
モデルをスクリーン座標に変換して目的位置にxy座標を変えただけだと、
スクリーン座標での奥位置が元居た位置のままなので、当たり前ですがワールド座標に
戻したときに移動前の奥位置になってしまいます。
0827デフォルトの名無しさん
2007/09/03(月) 11:25:30>移動後のワールド空間での奥位置は移動前と同じとします
の意味が分からん。
ワールド空間での奥位置ってことは、ワールド空間でのz座標ってことか?
ビュー空間がワールド空間のz軸と平行のときは、それでは絶対に動かせないが。
0828822
2007/09/03(月) 13:48:19SetTextureでテクスチャ読み込んで,DrawPrimitiveUPに指示だすでいいんかな?
正方形のテクスチャ用意して,形の崩れた四角形にテクスチャ貼り付けるときに画像が伸びたり縮んだりするのはどう処理してるんですか?
長さの比にたいしてテクスチャのドットデータを間隔あけて読み込んだり多く読み込んだりするんですかね?
0829デフォルトの名無しさん
2007/09/04(火) 00:05:490830デフォルトの名無しさん
2007/09/04(火) 01:51:32テクスチャ設定とミニマップ詳細レベルのとこが
毎回ハイパフォーマンスにしても再起動すると高画質になってます
どうしたらいいのでしょうか?
スルーしないでください
0831デフォルトの名無しさん
2007/09/04(火) 02:33:52板違い
0832デフォルトの名無しさん
2007/09/04(火) 04:52:13じゃあ何処で聞けばいい?
0833デフォルトの名無しさん
2007/09/04(火) 05:55:27そしてそれはビデオカードのドライバの問題だから、DirectXの話ですらない。
0834デフォルトの名無しさん
2007/09/04(火) 07:03:43> ビュー空間がワールド空間のz軸と平行のときは、それでは絶対に動かせないが。
言われて納得。どう説明したものだろう^^;
以下ダメな例
// pObjPosをスクリーン座標pMoveの位置に移動した値をpOutに入れる。
void SetPos( D3DXVECTOR3 *pOut, D3DXVECTOR3 *pObjPos, D3DXVECTOR2 *pMove ){
// view_portとかの宣言・取得は省いてます。
D3DXVec3Project( &screen_pos, pObjPos, &view_port, &projection, &view_mat, &world );
screen_pos.x = pMove->x;
screen_pos.y = pMove->y;
screen_pox.z = pObjPos->z; // これが問題
D3DXVec3Unproject( pOut, &screen_pos, &view_port, &projection, &view, &world );
}
これだと、奥位置が元のオブジェクトから変更されていないのでカメラからオブジェクトの
距離が変化しない移動になってしまいます。
これをちゃんとカメラからの距離が変化するような移動にしたいのですが、どうやればいいのでしょう?
と、考えながら書き直しているうちに、何かD3DXPlaneIntersectLineを使ったマウスでのポリゴン選択の
やり方で出来るような気がしてきました。
(今まで出来なかったので諦めていたのだけど原因がわかったかも。しかも凄いアホな原因^^;)
後で試してきます。
お手数掛けました。
0835834
2007/09/05(水) 06:16:37今までうまくいかなかった原因は、何をトチ狂ったのかプレーンを
毎度毎度カメラに対して垂直になるように作っていた事でした^^;
0837613
2007/09/06(木) 20:46:230838デフォルトの名無しさん
2007/09/06(木) 20:50:350839613
2007/09/06(木) 20:51:330840デフォルトの名無しさん
2007/09/06(木) 20:57:340841613
2007/09/06(木) 21:08:220842デフォルトの名無しさん
2007/09/06(木) 21:52:59むしろ今の時代D3DX使わないって選択が間違ってるw
なんで超初心者のくせにD3DXを使わないで頑張ってるの?
無駄な努力じゃない?
0843613
2007/09/06(木) 22:02:450844デフォルトの名無しさん
2007/09/06(木) 22:07:370845613
2007/09/06(木) 22:12:170846デフォルトの名無しさん
2007/09/06(木) 22:16:280847デフォルトの名無しさん
2007/09/06(木) 22:17:20FVFを使う場合のデータの配置順とサイズはヘルプに載ってたはず
固定機能パイプの頃の話だから最新のには載ってないかもな
OS割れ厨でなければDX8の日本語ヘルプはMSのサイトから
ダウソできるはず。MDSNライブラリのオンラインヘルプなら
割れ厨でも読めるはず
調べるのが嫌なら素直にD3DX使っとけ
0848デフォルトの名無しさん
2007/09/06(木) 22:21:20アンカーミスっててよく分からん事になってるぞ
0849613
2007/09/06(木) 22:30:560850デフォルトの名無しさん
2007/09/06(木) 22:43:130851デフォルトの名無しさん
2007/09/06(木) 23:08:04割れ厨なのかよw
0852デフォルトの名無しさん
2007/09/07(金) 10:50:20リプレイがずれる
0853デフォルトの名無しさん
2007/09/07(金) 11:24:28USB接続のWebカメラで静止画撮影300万画素というものを使っているのですが、
StillCapをそのまま動かすと640×480の30万画素までのものしかキャプチャできません。
ソースコードをざっとみて、メディアタイプを設定しているところがあるのですが、
VIDEOINFOHEADERの解像度の設定は無視されるとAPIのドキュメントにあります。
静止画のキャプチャで解像度の設定をするのは、どのタイミングで
どういったAPIを使うとできるようになるのでしょうか?
どなたかご存知の方がいらっしゃいましたらなにかヒントや参考となるURLでもいいので教えてください。
よろしくお願いします。
0854デフォルトの名無しさん
2007/09/07(金) 21:16:56少しは自分でも考えような。
リプレイがずれるのはD3DXの算術系関数の環境によるSIMD命令の違いが原因。
FVF頂点のサイズ知るとか、Xファイル読み込むとか、画像読み込むとかにはまったく関係ねぇ。
まさか画像の読み込みも自前でバイナリ解析して読むのか?
0855デフォルトの名無しさん
2007/09/07(金) 21:31:290856デフォルトの名無しさん
2007/09/07(金) 22:47:41どこも意固地にやりたいことをただやるだけじゃなくて
その環境でできることを精一杯やってるんだぜ
まあ、馬鹿な企画が無理いって環境に合わないもんを長い時間かけて作ることもあるけどw
0857デフォルトの名無しさん
2007/09/08(土) 03:42:560858853
2007/09/08(土) 11:08:47おっしゃる通り、静止画が必要なだけなら他にもいろいろとあると思うのですが、
すでにある16台のUSB接続のWebカメラを利用したモニターアプリに
静止画同時撮影機能を搭載したいのです。手始めにStillCapサンプルを
調べてみて、解像度設定のところで躓いてしまった次第なのです。
動画が取れているので、そこから切り出す方法で静止画がとれることは
とれるのですが、それだと動画の解像度までしか撮影できないので、
なんとかカメラが持つ静止画の解像度いっぱいの精度でとれないものかと。
0859デフォルトの名無しさん
2007/09/08(土) 12:01:08ここのサイトを参考にして、VB2005で、ジョイスティックを振動させたいのですが
うまくいきません。
アナログ、ボタン情報は取れるのですが、
振動をさせてもぴくりともorz
ここのサイトの方と使ってるUSBパッドの種類が違うのでダメなのでしょうか?
使っているものは、USBコンバータでPS2のコントローラーです。
ソースはここのをまんま利用してUSBの部分だけ削除してやってみました。
0860デフォルトの名無しさん
2007/09/08(土) 12:02:59FFB関係は付属の専用ドライバをインストールしないと機能しないけど、
ちゃんとドライバインストールしたの?
0861853
2007/09/08(土) 12:07:46そのサイトのことは分らないけど、DirectX9SDKのサンプルのFFConstだとちゃんとプルプルしますよ。
うちのはエレコムのUSB接続PS2コントローラーですけど。
0862859
2007/09/08(土) 18:08:01FFConstをCで試してみて動いたのでそれを参考に改造したら振動しました。
右だけしか動かなかったけどorz
一つきになってるのが、ボタンが押された情報を取得してる前処理の
以下の部分で例外はきまくってJSDevice.Acquire()を呼び出しまくるようになったのが心配です。
'データをポーリング
Try
JSDevice.Poll()
Catch ex As InputException
'再取得して再度データを取得
If (TypeOf (ex) Is NotAcquiredException Or TypeOf (ex) Is InputLostException) Then
Try
JSDevice.Acquire()
Catch ex2 As InputException
Exit Sub
End Try
End If
End Try
0863デフォルトの名無しさん
2007/09/08(土) 18:27:130864デフォルトの名無しさん
2007/09/09(日) 15:37:51D3DXの話なのに、なんで、FVF頂点のサイズやXファイルの話になるのかわからん。
0865デフォルトの名無しさん
2007/09/09(日) 15:58:18これらの関数がD3DXの関数ではないなら俺も意味がわからなかったんだが。
>D3DXGetFVFVertexSize
>D3DXLoadMeshFromX
0866853
2007/09/10(月) 15:27:04同じところで躓いている人も多いみたいなので、参考のためここにも簡単に説明します。
1.CaptureGraphBuilder2のFindPinでPIN_CATEGORY_STILLのIPinを取得する。
2.CaptureGraphBuilder2のFindInterfaceでIAMStreamConfigを取得する。
3.ステップ1のIPinでEnumMediaTypesを実行し、目的の解像度のところで
ステップ2のIAMStreamConfig::SetFormatでメディアタイプを設定する。
ステップ3はRenderStreamの前でも後ろでも大丈夫のようです。
以上。
0867デフォルトの名無しさん
2007/09/10(月) 16:40:15乙
DirectShow周りは、情報少なくて、大変ですよね
俺もUSBカメラをいじったり、多少やったことあったんだけど、答えられなかった。
0868デフォルトの名無しさん
2007/09/11(火) 16:53:450869デフォルトの名無しさん
2007/09/11(火) 19:58:37DirectX SDKの
Tutrial6 Meshesのサンプルをビルドしてみたのですが、
プロジェクト設定の「ランタイムライブラリ」のところを「マルチスレッド」となっているのを
「マルチスレッドDLL」にしてビルドしたところ、ビルド自体はできますが、
実行しようとすると
「MSVCR80.dllが見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションをインストールしなおすとこの問題は解決される場合があります」
というダイアログが表示され、実行に失敗してしまいます。
これはどういう理由からこうなるのでしょう。
「マルチスレッドDLL」でも実行できるようにする方法はありませんでしょうか。
0870デフォルトの名無しさん
2007/09/11(火) 22:15:33manifestが設定されてないとか。
"manifest MSVCR80.dll"でぐぐってみたら?
0871デフォルトの名無しさん
2007/09/11(火) 22:42:57「リンカ」->「マニフェストファイル」->「マニフェストの生成」を「はい」に、
「マニフェストツール」->「入力と出力」->「埋め込みマニフェスト」を「はい」に設定することで実行できるようになりました。
ありがとうございます!
マニフェスト関係は疎いので、勉強してみます。なんだかややこしそうだなぁ・・・。
0872デフォルトの名無しさん
2007/09/14(金) 15:36:33サーフェイスをテキスチャに取り込んで、そのテキスチャをメッシュに張るでいいのですか?
具体的に載っている本か、サイトがあったら教えてください。
0873デフォルトの名無しさん
2007/09/14(金) 16:29:02プログラムなどやめてしまえ。
0874872
2007/09/14(金) 17:08:57メッシュimMeshを描画、このメッシュのテキスチャにレンダリング画面のテキスチャを
割り当てたいのですが、うまくいかずorz
' 初期化
rTex1 = New Texture(D3DDevice, 512, 512, 1, Usage.RenderTarget, Format.A8R8G8B8, Pool.Default)
dSur1 = D3DDevice.CreateDepthStencilSurface(512, 512, DepthFormat.D16, MultiSampleType.None, 0, False)
rSur1 = rTex1.GetSurfaceLevel(0)
0875デフォルトの名無しさん
2007/09/14(金) 17:09:40D3DDevice.BeginScene()
oldtSur = D3DDevice.GetRenderTarget(0)
olddSur = D3DDevice.DepthStencilSurface
oldView = D3DDevice.Viewport
D3DDevice.Viewport = View
D3DDevice.SetRenderTarget(0, rSur1)
D3DDevice.DepthStencilSurface = dSur1
D3DDevice.Clear(ClearFlags.Target Or ClearFlags.ZBuffer, System.Drawing.Color.Black, 1.0F, 0)
mat.Translate(0, 0, 0)
D3DDevice.Transform.World = mat
D3DDevice.SetTexture(0, nothing)
imMesh.DrawSubset(0)
' 2回目レンダリング
D3DDevice.SetRenderTarget(0, oldtSur)
D3DDevice.DepthStencilSurface = olddSur
D3DDevice.Viewport = oldView
D3DDevice.Clear(ClearFlags.Target Or ClearFlags.ZBuffer, System.Drawing.Color.Black, 1.0F, 0)
D3DDevice.SetTexture(0, rTex1)←ここにレンダリングした画面のテキスチャを張りたい
imMesh.DrawSubset(0)
'描画終了
D3DDevice.EndScene()
0876デフォルトの名無しさん
2007/09/14(金) 17:23:080877デフォルトの名無しさん
2007/09/15(土) 00:51:09自分のPCの無線が絶縁状態で如何ともしがたく、慣れない部屋のPCで数時間調べ腰が痛くなってきました><
誘導でかまいません、よろしく願いいたします。
0878デフォルトの名無しさん
2007/09/15(土) 00:56:550879デフォルトの名無しさん
2007/09/15(土) 03:12:53腰痛い。
0880デフォルトの名無しさん
2007/09/15(土) 21:01:080881デフォルトの名無しさん
2007/09/15(土) 21:07:410882デフォルトの名無しさん
2007/09/16(日) 00:18:130883デフォルトの名無しさん
2007/09/16(日) 02:49:220884デフォルトの名無しさん
2007/09/16(日) 02:54:100885デフォルトの名無しさん
2007/09/16(日) 04:42:21DirectX SDKの中に入っている GraphEdit を起動して、
そこへ画像や動画をドラッグ&ドロップすると、自動的にGraph生成され
Play Graph で表示できますが、
動画ファイルではあまり気がつかなかったのですが、
BMP/JPEG等の静止画をロードした場合、表示される画像にローパスフィルタがかかったように
画像が全体にややボケて表示されるようです。
例
白黒白黒... と1ラインずつ縦に並んでいるシマシマの画像が、灰色ベタ塗りつぶしのような
表示になります。
このフィルタ?を解除する事はできるのでしょうか?
DirectShowでBMP/AVIファイルをロードするプログラムを
作成していて、自分で作成したプログラムでも同じようにボケた表示になってしまいます。
0886デフォルトの名無しさん
2007/09/16(日) 10:41:280887885
2007/09/16(日) 13:12:49GraphEditで確認しているのですが、現状、BMPファイルをロードすると
Generate Still Video→Color Space Converter→Video Renderer
となります。Generate Still Videoの出力は、BMPファイルが24bitカラーの場合RGB24で
Color Space ConverterでRGB32に変換され、Video Rendererでそのまま表示されている
だけのようです。
この中にフィルタが入っているのでしょうか?
Windows Media Playerを起動し、同じ白黒白黒... と1ラインずつ縦に並んでいる
シマシマの画像をドラッグ&ドロップしてみると、同じように
ローパスフィルタがかかったように画像が全体にややボケて表示されるようです。
0888デフォルトの名無しさん
2007/09/16(日) 13:47:53Video Rendererで例えばDirect3DとかDirectDrawが使われてて、
そいつの拡大縮小フィルタがバイリニアフィルタだとそうなると思う。
その場合、少なくとも自分でVideo Renderer相当の奴を書けば解決。
既存のVideo Rendererの設定に拡縮フィルタの設定があるのかどうかしらんけど
設定一発で解決できる可能性は案外低いんじゃないかと思う。
0889デフォルトの名無しさん
2007/09/18(火) 23:17:19たとえば、1つのウィンドウの半分だけに3Dの画面を表示して、
片方半分は文字入力用のテキストエディタのようにするような。
0890デフォルトの名無しさん
2007/09/18(火) 23:23:26それか、子ウィンドウを2つ作ってその中に描画。
3Dに限らず一般的に多いのはこっち。
似たようなことをしてるソフトを見つけてSpyでのぞいてみるといいよ
0891デフォルトの名無しさん
2007/09/19(水) 23:30:45何日かしたらループするんだぜ?
0892デフォルトの名無しさん
2007/09/21(金) 18:36:59普通の配列から直接描画関数(DrawPrimiteveUP)を呼ぶような事はもうできないのでしょうか。
ちょろっとした小さい描画をするときにまたいちいちVertexBuffer作るのもめんどいんですが・・・。
0893デフォルトの名無しさん
2007/09/21(金) 19:02:03ちょろっとした小さい描画をするときにまたいちいちシェーダを作らなきゃいけないらしいよ
0894デフォルトの名無しさん
2007/09/21(金) 21:14:09ちょろっとした小さい描画をするときにまたいちいちプログラマブルデバイスを作らなきゃいけないらしいよ
0895デフォルトの名無しさん
2007/09/21(金) 21:19:59シェーダーは必須だけど。
0896デフォルトの名無しさん
2007/09/21(金) 21:20:18お前浅くしか使ってねぇから固定機能のがよくみえんだよ
ちょろっと描画なら絶対シェーダのが楽だ
0897デフォルトの名無しさん
2007/09/22(土) 18:35:55DirectXではOpenGLみたいに
#define VERNUM 1000
float vertex[3*VERNUM];
float texcoord[2*VERNUM];
float normal[3*VERNUM];
と、頂点データの種類ごとに別々の配列に取られた頂点データでそのまま描画する事はできないのでしょうか?
今はやり方がわからないので、無理やりインターリーブになおしてやっていますが、これだと余計な処理が入るので・・・。
0898デフォルトの名無しさん
2007/09/22(土) 18:38:310899デフォルトの名無しさん
2007/09/22(土) 18:56:28その余計な処理戸やらで遅くなって困っているのか?
余計な処理と同じ事をするファンクションが標準で用意されていたら、
絶対そんなことを気にしないだろ?
いちいち余計なことを考えるな、馬鹿の考え休みに似たりなんだよ。
0900デフォルトの名無しさん
2007/09/22(土) 19:03:52VertexBufferを3つ作ってそれぞれにデータ配列を突っ込んだ上で
VertexDeclarationでデータのマッピングを定義すればできる。
とりあえずVertexDeclarationでぐぐって出てくるところ全部眺めてみ。
0901900
2007/09/22(土) 19:05:13ぐぐるならIDirect3DVertexDeclaration9の方がいいや。スマソ。
0902デフォルトの名無しさん
2007/09/23(日) 18:07:15ありがとう優しい人!
0903デフォルトの名無しさん
2007/09/27(木) 07:04:12DirectXプログラミングを始めてみようと思い
http://www.microsoft.com/japan/msdn/directx/downloads.aspx
の"DirectX SDK - August 2007"から
dxsdk_aug2007.exeをDLし、実行しようとしたのですが
"有効なWin32アプリケーションではありません"と怒られてしまいました
何度DLしても同じでした
OSはWindowsXP Professionalです
どうかご教示お願いします
0904デフォルトの名無しさん
2007/09/27(木) 07:35:370905903
2007/09/27(木) 17:05:16お騒がせしました
0906デフォルトの名無しさん
2007/09/28(金) 22:13:03一応、C++の知識はあります。
OpenGLと比べてどのような違いがありますか?
0907デフォルトの名無しさん
2007/09/28(金) 22:19:57残念でした。
0908デフォルトの名無しさん
2007/09/28(金) 23:40:010909デフォルトの名無しさん
2007/09/29(土) 01:46:52こんな答え方しか出来ないんだったら超初心者用なんて銘打つなよ
0910デフォルトの名無しさん
2007/09/29(土) 01:53:090911デフォルトの名無しさん
2007/09/29(土) 02:25:48OpenGLもcgとか使えたっけ
0912デフォルトの名無しさん
2007/09/29(土) 02:32:130913デフォルトの名無しさん
2007/09/29(土) 03:14:36そういうのは>>912に言わないと意味ないだろ
0914デフォルトの名無しさん
2007/09/29(土) 14:26:24難易度で言ったらD3Dの方がGLより全てにおいて楽
そのかわりGLはD3Dより多くのことができる,、と一応補足しておく
0915デフォルトの名無しさん
2007/09/29(土) 15:27:500916デフォルトの名無しさん
2007/09/29(土) 16:30:480917デフォルトの名無しさん
2007/09/29(土) 16:39:55そうなのか?
仕事でOpenGLしか使ってないけれど、DirectXのほうが難しくて機能が多いイメージがあったのだが。
ちょっとDirectXもやってみるか。
0918デフォルトの名無しさん
2007/09/29(土) 23:24:260919デフォルトの名無しさん
2007/09/30(日) 03:32:32でも、俺はDirectX使ってる
GL、日本じゃ情報少ないし
0920デフォルトの名無しさん
2007/09/30(日) 09:40:46結局サウンドや入力にDirectSoundやDirectInput使うこと考えたら
描画だけGLっていうのはやっぱ微妙だよ。
0921デフォルトの名無しさん
2007/09/30(日) 11:55:27カーマックがこだわってただけで
主流ではなかったはず。
0922デフォルトの名無しさん
2007/09/30(日) 14:09:290923デフォルトの名無しさん
2007/09/30(日) 16:08:37「内部システムエラーが発生しました」
というのが出るのですが・・・
どうしたらいいのでしょうか?
0924デフォルトの名無しさん
2007/09/30(日) 16:13:250925デフォルトの名無しさん
2007/10/01(月) 12:37:18超初心者なんだから、初心者を超えている。即ち初級者なんだからそれでいいだろ。
0927デフォルトの名無しさん
2007/10/10(水) 21:55:05今はその規格の安定性の有用さを生かせない分野では用なし
nVidiaやATiの方言が実装されてるのはOpenGLだけだから遊ぶにはいいかもね
特にこれからのDirectXは差をますます許さない方向へ向かっているので
それとよく引き合いに出されるDirectSoundとDirectInputだけど
>DirectSound
DirectPlayと並んでDirectX二大癌
扱いにくさと機能の弱さで他の選択肢より有利な点がない
>DirectInput
特殊なジョイパッドや三個以上接続する場合などレアなケースでしか有利な点がない
その上、普通に記述するよりソースが冗長になる
普通のジョイパッドを使うならいらない
DirectXを使う理由はライセンスに問題が発生しないから
それ以外に万人を納得させられる理由はない
0928デフォルトの名無しさん
2007/10/10(水) 22:18:160929デフォルトの名無しさん
2007/10/10(水) 22:31:050930デフォルトの名無しさん
2007/10/10(水) 23:15:46フリーや同人にとってはコレが全てだと思うが・・・。
あとは情報の多さも利点だろ。
DirectSoundが癌なんじゃなくろくに対応されてないドライバが癌なだけ。
ハードウェアにやらせないでソフトウェアで処理するように指定して
これといったバグに遭遇したことはない。
0931デフォルトの名無しさん
2007/10/10(水) 23:19:580932デフォルトの名無しさん
2007/10/11(木) 00:36:190933デフォルトの名無しさん
2007/10/14(日) 10:57:40MS UI Gothicは等間隔なフォントではありませんよね?
その場合の文字、または文字列のドット数をしらべるにはどうしたら良いのでしょう
言語はHSPかActiveBasicのどちらかを使用しようと思っています
0934デフォルトの名無しさん
2007/10/14(日) 11:09:510935デフォルトの名無しさん
2007/10/14(日) 11:11:37そうなんですか
すいませんでした
0936デフォルトの名無しさん
2007/10/14(日) 15:33:452000*2000とかなら正常に読み込まれるんですが
3000*3000とかで巨大なBMPを読み込ませるとなぜか、「自動で縮小」されて出力されてます・・・
ミップマップも1にしてるのに・・・なぜでしょう・・・
ご教授願いますm(_ _)m
// スプライトに表示するテクスチャの初期化
// 黒抜き(固定)
hr = D3DXCreateTextureFromFileEx(
g_pD3DDevice, name, ImageInfo.Width,ImageInfo.Height,1,0,
D3DFMT_UNKNOWN,D3DPOOL_MANAGED,D3DX_DEFAULT,
D3DX_DEFAULT,D3DCOLOR_ARGB(255,0,0,0),NULL,NULL,&Texture);
if (FAILED(hr)){
MessageBoxA(hWindow,"テクスチャの初期化に失敗しました!","DXGraphicsInit No4",MB_OK);
return 1;
}
0937デフォルトの名無しさん
2007/10/14(日) 15:42:250938デフォルトの名無しさん
2007/10/14(日) 16:03:50m(_ _)mありがとうございます
僕のでは2048*2048が限界のようでした・・・
さらに調べるとこれはビデオカードの問題なのでどうしようもないことも判明しました・・・
しかし本当にこのスレはネ申が多く在籍してるな・・・
本当に助かりました><
0939デフォルトの名無しさん
2007/10/14(日) 19:57:550940デフォルトの名無しさん
2007/10/14(日) 20:33:150941デフォルトの名無しさん
2007/10/14(日) 21:31:540942デフォルトの名無しさん
2007/10/14(日) 22:23:560943デフォルトの名無しさん
2007/10/14(日) 22:26:380944デフォルトの名無しさん
2007/10/15(月) 00:51:15地平線を求めて、各頂点の地平線からの距離を求めれば、
それが rhw になるわよ。
0945デフォルトの名無しさん
2007/10/16(火) 20:06:440946デフォルトの名無しさん
2007/10/16(火) 23:28:12これって自動でクリッピングされてますよね?
DirectDraw使ってたころは自分でクリッピング書いてましたが
DirectGraphicsになってからは自動で行われるんでしょうか・・・
教えてくださいm(_ _)m
0947デフォルトの名無しさん
2007/10/17(水) 00:30:30「ビデオカードによる」ってのが本当なんだけど、実際には気にしなくていいよ。
たぶんID3DXSprite使ってそうだけど、その場合もクリッピングは不要。
0948デフォルトの名無しさん
2007/10/17(水) 00:58:08お返事ありがとうございますm(_ _)m
スプライトに2D貼り付けて出してるだけの2DRPGを作成してるのです
3Dは一切使ってませんが・・・巨大なマップ用意するとどういうわけか
重くなるような気が・・・・
0949デフォルトの名無しさん
2007/10/17(水) 01:10:53巨大っていうのも程度による、明らかに画面外だと判り切ってる部分は描かない方がいい
まさかとは思うが、リファレンスラスタライザが使われてるってオチは無いか?
0950デフォルトの名無しさん
2007/10/17(水) 01:14:14どうみても重くなっているので制御かけますm(_ _)m
0951デフォルトの名無しさん
2007/10/17(水) 01:24:09正直に描画してたら重くなるぞ。
Draw1回ですむならいいけど、チップとして大量に描画してるんだろ?
0952デフォルトの名無しさん
2007/10/17(水) 01:45:40そうですね
1024*768画面でチップの大きさは50*50でそのマップが幅50*1200 高50*1200です
これが下地で、さらにチップをペタペタ700こくらい貼り付けてます
0953デフォルトの名無しさん
2007/10/17(水) 07:56:54ロード時にテクスチャを1枚にまとめるか
DrawPrimitiveUpでも使ってクリップしながら描画したらどうだ?
0954デフォルトの名無しさん
2007/10/17(水) 13:28:170955デフォルトの名無しさん
2007/10/17(水) 18:03:060956あ
2007/10/17(水) 18:54:50思っておりました・・・
0957デフォルトの名無しさん
2007/10/17(水) 19:00:27いつまで経っても気がつかなくて本当にいいのだろうか?
0958デフォルトの名無しさん
2007/10/17(水) 19:05:45一人の人間がずっと気づかないんではなく
気づかない人間がたくさんいるってだけだろ
0959デフォルトの名無しさん
2007/10/17(水) 19:06:04通じているのに通じないふりして悦に入ってるやつはかっこわりーぞカス
0960デフォルトの名無しさん
2007/10/17(水) 20:51:050961デフォルトの名無しさん
2007/10/17(水) 21:27:01xがないってだけで人生論まで飛び出たかw
死ねよヘボw
0962デフォルトの名無しさん
2007/10/17(水) 21:35:280963デフォルトの名無しさん
2007/10/17(水) 21:41:36一応、C,C++基本(?)は終えました。
参考までに使った書籍は
http://www.amazon.co.jp/dp/4756102700/
http://www.amazon.co.jp/dp/4756131212/
http://www.amazon.co.jp/dp/4756118089/
以上です。
今からDirectXを勉強し始めても問題ないでしょうか?
0964デフォルトの名無しさん
2007/10/17(水) 21:43:54ウィンドウだしてプロシージャ書ければ
あとは行列とかベクトルとか画像処理とか
0965デフォルトの名無しさん
2007/10/17(水) 22:06:32有り難うございます。
一応、現在大学2年生で数学の知識はあります。
とりあえず、DirectXを始めてみます。
0966デフォルトの名無しさん
2007/10/17(水) 22:25:010967デフォルトの名無しさん
2007/10/17(水) 23:17:05描画更新中の画面が見えてしまう(画面下半分ぐらいが更新間に合わないのか、
そこから絵がズレている)のは何がおかしいのか、思い当たる人はいますか?
0968デフォルトの名無しさん
2007/10/17(水) 23:26:590969デフォルトの名無しさん
2007/10/19(金) 16:53:05「ティアリング」もな
0970デフォルトの名無しさん
2007/10/19(金) 20:48:440971デフォルトの名無しさん
2007/10/19(金) 22:38:13最近はあまり見ないがBBXでも何回か見た記憶が
0972デフォルトの名無しさん
2007/10/26(金) 23:42:42↑
←┌
と二本出てるんですが、これは1頂点に法線が二本あるんでしょうか?
それとも頂点がふたつあるんでしょうか?
0973デフォルトの名無しさん
2007/10/26(金) 23:54:180974デフォルトの名無しさん
2007/10/27(土) 00:41:15原因は、モニターのVSYNC(垂直同期)のため。
画面が全部書き換わる前に、人間の目に見えてしまう現象。
詳しい原理的なものは、うのみにせずググってみてほしい。
一人称視点の洋ゲーなどでは、VSYNCを取らないものが多く、
気にしていない開発者や、ユーザーも多い。(というか、外人は気にならないのか?)
(とはいえ、オプションで切り替えられるものもあるけど)
和製のスクロールが激しい2Dゲームなどでは、VSYNCを取らないと、気になることが多い。
また、コンシューマでは、2D、3D関係なく、VSYNCを取るのが当たり前のようだ。
この問題の解決策は、VSYNC同期をとること。
VSYNCの同期の取り方は、環境依存だが可能なので、ググってみてほしい。
ただし、同期をとった場合、VSYNC以上のFPSで表示できないという欠点がある。
また、モニタにより、対応する周波数が違うので、注意。
一般的に(和製ゲームで)よくつかわれるのは、60Hz(つまり、60FPSで描画)だと思う。
液晶モニタや、CRTディスプレイでも、60Hzや、70Hzあたりは対応しているようだ。
0975デフォルトの名無しさん
2007/10/27(土) 06:29:28サンクスです
0976デフォルトの名無しさん
2007/10/27(土) 13:39:09前に、この手のスレで、
「3Dで角度(angle)なんか使わない(データとして持たない)」
「全部、ベクトルでやる」
というような議論を読んだのですが、
実際に、ベクトルで角度的なことをやっている、
ソースや、解説されている書籍、webサイトなどをご存じの方はいらっしゃいませんでしょうか?
前に↓「ゲームプログラミングのための3Dグラフィックス数学」を期待して買ったんですけど、
http://www.amazon.co.jp/dp/4939007375
その辺のことが、ぜんぜん書かれてなくてがっかり・・・
不適切なら、適切なスレに誘導して下さい。
0977デフォルトの名無しさん
2007/10/27(土) 13:44:21クォータニオンに比べると相互変換が高速なのが利点なのかねぇ。
0978976
2007/10/27(土) 13:50:46アクションゲームなどでは、
例えば、
・キャラクターの向いている方向を、一定角度変える
とか
・2つの角度の(近いほうの)差をただしく得る
・角度を制限する
などといった実戦的なことです。
頭が固いせいか、ベクトルで持っていたら、いちいち角度にもどして計算が面倒だな、とか。
ベクトルで持っていて、角度を変える場合、
・回転行列を用意して、
・トランスフォーム
・新しいベクトルゲット
とか、考えて、妙に面倒だな、などと思ってしまうのですが。
前に、知り合いの3Dプログラマに聞いたら、適材適所で、
ロール、ピッチ、ヨーで角度を持つこともある、って普通に言われちゃったんですけど。
いま時は、どうなんでしょうか?
0979976
2007/10/27(土) 13:51:18サンクスです。
見てみます。
0980デフォルトの名無しさん
2007/10/27(土) 14:22:50全部ベクトルとして持つというと、それは姿勢を表す直交行列のことでしょう。
>・キャラクターの向いている方向を、一定角度変える
回転行列をかけます。
>・2つの角度の(近いほうの)差をただしく得る
2つの行列の正面方向を表すベクトルを1つの平面に射影して、それに対してatanで求めます。
ていうか、これは3Dの場合は角度で計算するのは相当に困難なはずです。
・角度を制限する
具体的にどういう条件で制限するのか説明してもらえないと分からないです。
0981デフォルトの名無しさん
2007/10/27(土) 14:29:40訂正
2つの行列の正面方向を表すベクトル2つが作る平面上で、2次元問題に落としてatanで求めます。
射影したらどれかの軸の情報が失われて全然違う値に。。。
0982デフォルトの名無しさん
2007/10/27(土) 17:53:53どこを作ってるかにもよるけど
例えば、キャラに「3回転する」ってアクションがあったとして
この「3回転」ってパラはキャラが持つしかない
んでモデルの持ってる行列はインスタンス情報であって
描画するときに実行中のアクションとパラを見て参照すればいいだけだ
姿勢行列なんてもつことないと思うけどな
例えばマリオを100体描画してもロードするモデルは1体で
もってるパラは姿勢行列じゃないと思うんだよね
3次元座標と進行方向のベクトル、速度ベクトル等、その他パラ・・・
って感じで姿勢行列なんてもっても今どういう状態なのかわかりずらい
こんなの必要になんのって描画のときだけじゃねーの?違う?
ウンコなライブラリでたまにロードしたモデルとインスタンスが
1対1になって各ローカルの行列全部メモリにもってるもんがあるけど全く意味ないと思う
0983デフォルトの名無しさん
2007/10/27(土) 19:12:350984デフォルトの名無しさん
2007/10/27(土) 19:17:59例えばバウンディングボックスで
当たり判定をする場合どうする?
三次元の物なんだから、位置と姿勢の情報がなきゃ
何もできんだろ
それを毎フレーム作るのか、保持し更新するのか
行列で持つのか、四元数で持つのか、三角関数で持つのか
それは自由だが
0985デフォルトの名無しさん
2007/10/27(土) 19:20:39実際に操作するコントローラー相当のものが
必要な行列データとモデルへの参照を持ってればいいだけだと思うが。
まぁそれぞれ一長一短だしいいんでね。
Tiny.xの全フレーム行列で保持しているモーションフォーマットだけは理解しかねるが・・・。
0986デフォルトの名無しさん
2007/10/27(土) 20:02:47姿勢ってそれボーン行列のこと言ってる?
その前にインスタンスのワールド変換行列はどこへ?
0987デフォルトの名無しさん
2007/10/27(土) 21:18:17各ボーンの向きと長さを取得する方法ってありませんか?
現状、子ボーンのオフセット行列が子ボーンの根っこの位置を持ってるので、
その差を使って計算してるのですが、先端にひとつ余計にボーンをつけなきゃならないのと、メッシュが分割されたときうまく子ボーンのオフセット行列が取れない問題があってうまくいってません。
それともXファイルになった時点で向きと長さの情報って失われてますか?
0988デフォルトの名無しさん
2007/10/27(土) 22:00:570990デフォルトの名無しさん
2007/10/28(日) 13:49:3925歳以上かどうかの質問がでてきました。
僕の頭は感染しているんでしょうか?
0991デフォルトの名無しさん
2007/10/28(日) 13:53:45しかもDirectときたもんだ
0992デフォルトの名無しさん
2007/10/28(日) 23:19:51この重複頂点を読み込み時に結合して8頂点にしたいんですが、
D3DXWeldVerticesを使えばいいということで合っていますか?
資料が少なくていまいちわからんのです…
MSDNのサンプル(http://msdn2.microsoft.com/en-us/library/bb205562.aspx#Mtps_DropDownFilterText
どおりにやってみても、成功が返っても頂点数は変わってません。
0993デフォルトの名無しさん
2007/10/28(日) 23:33:120994992
2007/10/29(月) 00:11:32Epsilons.Normal(や、その他)の値を大きくして実行すればいいと思ったんですけど
24のままです。
どうやったら8コにまとめられるんでしょうか…
0995デフォルトの名無しさん
2007/10/29(月) 00:26:21たったそれだけで状況が理解できるから。
0996デフォルトの名無しさん
2007/10/29(月) 00:29:52それは意図した結果?
0997デフォルトの名無しさん
2007/10/29(月) 00:52:060998992
2007/10/29(月) 01:08:43>>995
プリミティブを描画するのにそれぞれ頂点が必要になるっていうことですか?
でもIndexedだと8コで問題ないですよね?違う話ならすいません。
>>996
メッシュを法線方向に膨らませて裏面のみ黒く描画することで輪郭描画、というやつをやりたいのですが、
頂点がそれぞれ別方向に膨らんでしまいスキマができてしまうのに悩んでいるのです。
なので、法線も色もひとつでOKです。
自分のイメージではWeld関数で同じ位置にある頂点をひとまとめにして、
法線を再計算した後膨らませれば素敵かと思ったのですが。
けど確かに頂点まとめるとテクスチャ座標とかには困りそうですね…
>>997
メッシュ生成関数でつくれということでしょうか?
いじりたいのは立方体に限らないので…
0999デフォルトの名無しさん
2007/10/29(月) 01:19:37その場合引き伸ばしように別途専用の頂点データを仕込んでおくほうが一般的だねぇ。
ステンシルシャドウとか2.5Dモーションブラーの場合でも仕込み用の頂点入れるし。
ちなみに法線が3Dツール上で同一なら出力される頂点は8個になる。
24個出来るということは法線、頂点色、テクスチャUVのどれかが同一ではないということになる。
1000デフォルトの名無しさん
2007/10/29(月) 01:21:01Indexedだから24個。
インデックスを使わないなら3x2x6で36頂点になる。
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。