2 :
デフォルトの名無しさん:2005/11/26(土) 11:44:39
DirectXのウイザードで作ったプログラムを実行中、
Altボタンを押すとポーズかかるのですが、
これを止めるにはどうしたらいいのですか?
メッセージループとゲームルーチンを別スレッドにする。
4 :
デフォルトの名無しさん:2005/11/26(土) 13:20:03
ますますわからないですぅ><
UPした僕のソースを添削してください!
Direct3Dを使って開発をしているのですが、別のPCでテストしたら動かなくて困っています。
原因がさっぱりつかめないので質問させてください。
開発用は XP Pro SP2 + 9.0SDK(October 2005) で
テスト用は XP Home SP2(勝手に9.0cのランタイムが入っていると思う)です。
起動すると
「d3dx9d_27.dll が見つからなかったため、このアプリケーションを開始できませんでした。」
というエラーメッセージが出て終了します。
ちなみに、サンプルブラウザの CreateDevice というのをそのままコンパイルして
テスト用のPCで実行してみたら動きました。
何か抜けてる情報があったらすいません。よろしくお願いします。
d3dx9d_27.dll
を使ってるAPI(関数)は何ですか?
d3dx9d_27.dll が見つからなかったため、このアプリケーションを開始できないんだが、
これだけ完璧かつ明確なメッセージが出力されているのにこれ以上どうしろと?
9 :
デフォルトの名無しさん:2005/11/29(火) 16:48:36
DXUTの勉強したいのですが何をみたらいいですか?
MS丼
ttp://www.plustarnet.com/aspil/Programming/Skeleton.htm 上記ページにあるスケルトンプログラムをビルドして実行しようとしたのですが、エラーが出て終了してしまいます。
エラー内容
グラフィックボードが、3D・ハードウェアアクセラレーションに対応していません。
実行する事は出来ますが、処理落ちする可能性が高いと思われます。
上の警告が出たあと、すぐに終了してしまいます、以下に環境を書きますので対処法が
わかる方いらっしゃいましたらお願い致します。
OS:Windows2000 SP4
開発環境:VisualC++ 6.0 + DirectX 9.0c (2003 Summer)
CPU:AMD Athlon64 3000+
MEM:hynix DDR 333 1GB * 2
M/B:ABIT KN8 Ultra
VGA:GeForce6600
以上です、よろしくお願いします。
>>13 スタート->プログラム->アクセサリ->システムツール->システム情報
を起動して
メニューバーのツール->Windows->DirectX]診断ツール
を実行して、DirectXバージョンとかハードウェアアクセラレーション機能とか診断しる!
あと、デバッガで追えないの?
15 :
13:2006/01/14(土) 05:40:26
>>14 13です、レス遅れて申し訳ありません。
ご指摘のとおりDxDiagの実行と、デバッガでのトレースを行いました。
DirectXについては、以下のとおりでした。
[ファイル]
いくつかのファイル (d3dx8d.dll、d3dx9d.dll、d3d9d.dll) はデバッグ版です。
製品版より遅く動作します。
[ディスプレイ]
ディスプレイ ドライバがサポートしていないため、ハードウェア アクセラレータを使った Direct3D 9+ は利用できません。
ハードウェアの製造元から新しいドライバを入手できるかもしれません。
上記の表示以外はすべて、問題なしなのでDirectXの方は多分問題がなさそうな気がします。
GeFoece6600なのにDirect3Dのハードウェアサポートが無いのには驚きましたが・・・・・・
[デバッガ]
PeekMessageで取得したメッセージを、TranslateAccelerator関数に渡して処理をしているところで、
AccessViolationが発生します。
NTDLL.DLLが原因のようなメッセージが出るのですが、調べてみてもそんなエラーで落ちている人は
見当たりませんでした。
原因はNTDLL.DLLかな、という感じはしますが、対処法が思いつかない状況です・・・
17 :
13:2006/01/14(土) 06:34:56
ドライバーはインストールし直しましたが、うまく行きませんでした。
が、しかしいろいろやっていたら何故か解決しました。
何が原因で解決したかわかりませんが、以下に行った事を記述しておきます。
1. DirectXのアンインストール ←当然ながらこれだけだと状況が酷くなりました(コンパイルすら出来ない)
2. DirectXの再インストール ←状況変わらず
3. DirectXをアンインストールし、EndUserRunTimeの方を入れてみる ←この時点でサンプルプログラムが起動しましたが、
コンパイル出来ず。 またDxDiagのハードウェアアクセラレーションが有効になりました。
4. DirectXのバージョン違いをインストールしようとする ←Summer 2004だったんですが、解凍すら出来ませんでした。
5. DirectX Summer 2003 を再びインストール ←コンパイル、ビルド、実行全て問題なく通りました。
以上です、結局原因はわからずじまいですが、動くようになったので今のところよしとします。
皆様には色々とご教授いただき、ありがとうございました。
18 :
デフォルトの名無しさん:2006/01/21(土) 10:22:17
動く環境と、動かない環境の詳細よろ。
>>18 動く環境と動かない環境の詳細ぐらい書けば?
21 :
18:2006/01/21(土) 12:24:05
まだ詳しく分かっていないのですが、
WindowsXP SP2 なら正常に動くようで、
SP1なら画像が表示されないようです。
よくあることなのでしょうか?
>>21 ありませんー
グラフィックボードじゃないの
ていうか、なんでフォント指定するかなー
よくみたら文章内容まで化けてるぞ
25 :
18:2006/01/22(日) 12:49:15
解答くださった方々ありがとうございます。
まだまだひよっこ設計、適当設計なので、
CTextureクラスに問題があるのかなと思い試行錯誤中です。
フォント指定は実際のゲームにより近くなるようにと思ってです。
配布時にはフォントも同梱予定です。
とりあえず問題は置いておいて、ある程度完成した時点でWeb上公開、
問題のある方にその詳細を送ってもらい、共通点を分析しようかなと思います。
相談に乗ってくださった方々本当にありがとうございました。
うちの環境だと普通に表示されるが、
頂点シェーダをソフトウェアにすると表示されないな。
その場合、CTextureでZ値を1.0f未満に設定すると表示されたけど。
>>25 まてまて、フォント同梱って。
ライセンスとかきっちり確認しないと痛い目にあうぞ。
28 :
18:2006/01/22(日) 13:49:31
>>26 報告ありがとうございます!
設定値を変更したverを配布して確かめてみます!
>>27 一応きちんと調べてから同梱予定です。
29 :
18:2006/01/22(日) 14:24:36
連カキコすみません。
フォントについて調べたところ
>>27 さんの言うとおり、
両方ともライセンスがあるようですね。
忠告ありがとうございましたm(_ _)m
31 :
デフォルトの名無しさん:2006/01/25(水) 03:51:52
サンプルのMeshesを実行中にCTRL+ALT+Deleteを押すとトラが消えてしまいました
なぜでしょうか?
そういえば一休さんの虎を屏風から追い出すとんちの意味が未だにわからない
33 :
デフォルトの名無しさん:2006/01/25(水) 16:23:41
ダイレクトエックスってエディタの表示部に使うとかできるの?
馬鹿げてる?
すいません質問です。
DirectXSDKのデバッグ版とリテール版の違いで、
グラフィックボードのハードウェアアクセラレーションが使用できたり使用できなかったり
する事はあるのでしょうか?
質問なんですが・・・
DirectX9.0cをネットに繋がってないPCにインストールするにはどうすればいいんですか?
>>35 CD-ROMの郵送サービス(実費1050円)
38 :
35:2006/01/27(金) 18:59:52
>>36 自分で焼く・・・ですか。
それはどうすればいいんですか?
>>37 郵送サービスなんてあったんだ・・・
>>35 DX入ってるHDDを外してインストールしたいPCにつなげば?
質問です。よろしくお願い致します。
VC++2005ExpressEdition(ベータではなく正式版です)で、DirectX Sample Browser (December 2005)の
「Tutorial 6: Meshes」をビルドして問題なく実行できました。
しかし、VC++EEのWin32アプリケーションウィザードで「Windowsアプリケーション」を作り「Tutorial 6: Meshes」の
DirectXに関するコードを「Windowsアプリケーション」にコピー&ペーストしましたが、うまくいかないです。
(cppファイルに#include <strsafe.h>に関するコードも加えました。)
具体的には以下のような感じです。
Windowsアプリケーションをビルドすると、「C2664」のエラーが出ました。
そのため、エラーが出た箇所で「L"Tiger.x"」、「L"..\\Tiger.x"」など「L」を付け加えたところエラーが
出なくなりました。ビルドが正常終了して、実行すると、
「Could not find texture map」
と表示されたあとに、灰色っぽい虎の3Dモデルが回転する画面が表示されました。
この灰色の虎3Dモデルになる状態を解消するために、とりあえず
D3DXCreateTextureFromFile関数の2番目の引数に L"tiger.bmp"
を設定したところ、希望するように虎の3Dモデルにテクスチャが表示されました。
「Tutorial 6: Meshes」からコピー下記のコード
StringCchCat( strTexture, MAX_PATH, d3dxMaterials[i].pTextureFilename );
の1番目の引数をデバッガで見ると、配列の中身が文字化けしているようで、正しく「"tiger.bmp"」と設定されていないようです。
StringCchCat関数の代わりにstrcpy関数に変えてもだめで、<strsafe.h>をインクルードしないようにして
D3DXCreateTextureFromFile関数の2番目の引数に直接「d3dxMaterials[i].pTextureFilename」を記述しましたが、
「2番目の引数を 'LPSTR' から 'LPCWSTR' に変換できません」
というエラーがでます。LPCWSTRでキャストしてもだめでした。
どうすれば、Xファイルからテクスチャのファイル名をうまく取り出せるでしょうか?
(Platform SDKの代わりにVC++.NET 2002のヘッダとライブラリフォルダを「インクルード ファイル」、
「ライブラリ ファイル」のパスに指定しました。)
「Tutorial 6: Meshes」からコピー下記のコード
→「Tutorial 6: Meshes」からコピーした下記のコード
上記の修正です。m(_ _)m
42 :
40:2006/01/27(金) 20:51:44
pTextureFilenameをUNICODEに変換する必要があるだけじゃね?
44 :
40:2006/01/27(金) 21:18:15
45 :
40:2006/01/27(金) 22:11:01
VC++.NET2002ではどうなるかと思い、VC++.NET2002で作ったWin32プロジェクトでも、
同じように灰色の虎3Dモデルになってしまうかどうか試してみましたが、灰色の虎3Dモデルには
なりませんでした。
(「Tutorial 6: Meshes」からコピーしたコードのまま使い、「L」を付けたり
D3DXCreateTextureFromFile関数の2番目の引数に「"tiger.bmp"」を直書きしていないです。)
引き続き、
>>43を調べます。
UNICODEへの変換は、MultiByteToWideCharを使う。
まぁ、VC++2005EEはデフォルトがUNICODEだから、
プロパティの全般の文字セットをマルチ文字バイトセットにすれば、
LとかつけなくてもOKになるはず。
47 :
40:2006/01/27(金) 23:22:12
とりあえず解決策を見つけました。
「ソリューションエクスプローラー」のツリー構造の根元の太字について、「プロパティ ページ」画面を出し
・「構成プロパティー」→「全般」→「文字セット」
の項目を「Unicode 文字セットを使用する」から
・「マルチ バイト文字セットを使用する」
に変更したところ、「Tutorial 6: Meshes」のソースからコピーしたままのコードで虎のテクスチャが表示されました。
UNICODEに変換するソースコードを書くのは結構大変そうに思えたので、とりあえずVC++EEの設定で
解決できてホッとしました。
「
>>43」さん、どうもありがとうございました。
48 :
40:2006/01/27(金) 23:24:18
作っているゲームが重くて遅いPCだと動かないんですが、
ゲーム画面を一部隠すと動作が軽くなります
これはビデオメモリがたりてないということでしょうか?
何か対策があれば教えてください
50 :
デフォルトの名無しさん:2006/01/29(日) 13:03:28
複数モデルをマウスで矩形選択したいんだけどOpenGLのGL_SELECTみたいなのって
DirectXには無いよね?D3DXIntersectはモデルとしか判別しないし
描画ピクセルから選択を判別するような事がしたいんだけど。
53 :
デフォルトの名無しさん:2006/02/03(金) 22:31:17
DirectX SDK Februaryは出るのですか?
54 :
デフォルトの名無しさん:2006/02/06(月) 14:32:41
DirectX SDK Augustは出るけど…
55 :
デフォルトの名無しさん:2006/02/07(火) 18:16:17
デバイスロスト中にID3DXFont::DrawTextを使うと例外エラーが出ます。
ID3DXFont::Beginが無いから描画可能かチェックできません。
今まではPresentの戻り値で状態遷移していたのですが
IDirect3DDevice9::TestCooperativeLevelで毎回チェックするしかないのでしょうか?
SDKはOctorber2004です。
56 :
デフォルトの名無しさん:2006/02/07(火) 23:32:57
DirectX9.0cをインストールするのは無料ですか??(超超初心者)
残念、有料です。
出張インストールサービスがあります。
58 :
デフォルトの名無しさん:2006/02/14(火) 18:39:29
DirectMusic使いたいんですが、
サンプルをコンパイルしようとすると、
未解決の外部シンボル __imp__CoInitialize@4 が…
のエラーが出ます。
CoInitialize()使うのに必要な.h or .lib って何ですか?
エスパーの方、
>>58の
OS
DXSDKのバージョン
開発言語
コンパイラ
を透視した後、回答をお願い致します。
>>58 ole32.libをプロジェクトに参加させなさい。
61 :
デフォルトの名無しさん:2006/02/16(木) 12:19:42
62 :
デフォルトの名無しさん:2006/02/23(木) 02:59:55
Win2000にインスコできるSDKの最新版って何?
Feb2006を拾ってきて入れようとしたら「サポートしてねぇぞゴルァ」って怒られた・・・
インストールしないで.hと.libだけ使えばいい。
>>62 >>63なら出来るけど
正式にサポートって言ってるのは2004のOctまでだっけ。
日本語ヘルプがある最新版 = 2004OCT
Win2000サポート最新版 = 2004DEC
実際にWin2000で使える最新版は? = 手動で解凍してincludeとlibを設定すりゃ新しい奴でも使えるっぽいよ、DX10は知らないけど
ちなみにスプライトを拡大するとフィルタがかかってしまうバグは
Win2000サポート中に修正されなかった。
最新版じゃ問題ない。
>>63-66 激しくd
>>63 なるほど、そりゃそうですね。
>>65 とりあえず2004Oct,Decを拾ってくることします。
皆様本当にありがとうございました、
68 :
デフォルトの名無しさん:2006/02/23(木) 23:20:38
質問です。
ロボットのキャラアニメ部分を製作中です。
D3DXFRAME と ID3DXAnimationController
1対1のアニメは成功しました。
最終的には4対1になるのですが、ID3DXAnimationController.CloneAnimationControllerで4対4にする方法しか思いつきません。
パフォーマンス的にそれは避けねばならない場合、どうしたら良いでしょうか?
アニメーションをさせない、ポリゴン数を減らす、テクスチャを小さくする。
根本的なロジックを見直す。
D3DXに頼らず、自分で共用可能な最適なアニメーション用コードを作成する。
マルチ
73 :
デフォルトの名無しさん:2006/02/24(金) 00:25:36
前準備の質問ですみません
使用している処理系はBCC5.5.1でIDEはBCC developerを使用しています。
DirectX9.0 SDKは2004(december)をインスコしました。
PCに入っているランタイムは9.0cでOSはXPsp2(x64ではない)です。
CPUはx86の32bitです。
DirectXを学ぼうと思い、とりあえず環境整備から始めたのですが
ttp://lacc.biz/cpp/cpp.html このサイトで紹介されている通りilink32.cfgとbcc32.cfgに必要なパスを通し
DXライブラリ(もちろんBCC用です)を使用してサンプルプログラムをコンパイルしてみました。
それですと問題なく正常にコンパイル&リンクできてバイナリも作成されるのですが、
ttp://wisdom.sakura.ne.jp/system/directx/dxg2.html のページの下のサンプルプログラムをコンパイルした時に
「Error: 外部シンボル 'Direct3DCreate8' が未解決(C:\(path)\TEST.OBJ が参照)」
と失敗してしまいます。
何を見落としているのか判る方はいますでしょうかorz
以下設定しているファイルの中身を載せておきます
(bcc32.cfg)
-I"C:\Program Files\borland\BCCS\Include"
-I"C:\Program Files\Microsoft DirectX 9.0 SDK (December 2004)\Include"
-L"C:\Program Files\borland\BCCS\Lib"
-L"C:\Program Files\Microsoft DirectX 9.0 SDK (December 2004)\Lib\x86"
-L"C:\Program Files\borland\BCCS\Lib\PSDK"
(ilink32.cfg)
-L"C:\Program Files\borland\BCCS\Lib"
-L"C:\Program Files\Microsoft DirectX 9.0 SDK (December 2004)\Lib\x86"
-L"C:\Program Files\borland\BCCS\Lib\PSDK"
「DirectX」
↑ってなんて読むんですか?
>>73 失敗するほうのサンプルはDirectX 8.0。
あなたのインスコしてるSDKはDirectX 9.0。
その違いだと思います。
>>74 ダイレクトエックス
>>75 ありがとうございます。
ちとDirectX8.0SDK見つけてきて再度チャレンジしてみます。
をいをい
>>73 DX9SDKでもDX8はビルドできる。75は単なる糞コテだから無視しろ。
単にお前がリンクするライブラリを指定してないだけ。
VC6やVC8なら設定方法わかるけどBCCは知らん。
つか真面目にやる気あんならBCCなんぞ使うな。
79 :
デフォルトの名無しさん:2006/02/24(金) 10:31:12
ディスプレイドライバがサポートしていないためDirect9が利用できません。どうすればいいですか?
初心者でスンマセン
80 :
デフォルトの名無しさん:2006/02/24(金) 10:51:37
>>79 ・ハードでなんとかするよ派
・・パソコン買い替えよう派(ブルジョワ思考)
・・ビデオカード勝ってみる派
・・・AGP or PCIExpress派
・・・PCI派(動けばスペックには目を瞑る派)
・ソフトでなんとかするよ派
・・ドライバがサポートしているDirectXを使うよ派(DirectX7や8はすばらしいよ派)
・・DirectX9の中でサポートしてる機能だけを使うよ派(初期化できなければあきらめるよ派)
・・ソフトウェアでエミュレーションすれば動くよ派(動けば速度は関係ないよ主義)
81 :
デフォルトの名無しさん:2006/02/24(金) 10:58:44
82 :
デフォルトの名無しさん:2006/02/24(金) 11:07:17
またまたスイマセンが
ソフトウエアでエミュレーションって何をどうすれば?まったくワカランです。
リファレンスラスタライザ
84 :
デフォルトの名無しさん:2006/02/24(金) 11:34:15
リファレンスラスタライザ って何ですか?
仏の顔も三度(ry
86 :
デフォルトの名無しさん:2006/02/24(金) 11:37:07
スイマセンまったくわかんないです。
3Dデバイス作成時のヘルプを確認すべし。
少しは検索エンジンで調べる努力をしろ低脳
とりあえずグラフィックボード勝手恋
ソフトウェアだと、それなりのPCでも1秒間に1回か2回しか描画できないぞ
>>79 「初心者」という免罪符を振り翳して自分では調べようとも
しないバカはどこへ行っても嫌われるって事を覚えような
最近嫌味な奴増えたな
最近、この手の話にいちいち怒っていたら、心の健康に悪いことに気がついた。
対処法は相手を対等の人間と考えないこと。
猿に言葉が通じないことを、いちいち怒っても仕方がないと思えばいい。
これを嫌味と取る奴は、もう駄目だろうなぁ・・・
DirectX9が対応してないビデオカードって、どのぐらい昔なんだろう。
Voodoo3とか
いまだにLagunaが現役で動いてたりするがな。
Voodoo3はほとんどのゲームが動かないんじゃないかな。
テクスチャが256x256の正方形までだっけ。
100 :
デフォルトの名無しさん:2006/02/24(金) 23:50:59
昔はほとんどのゲームがVoodooじゃないと動かなかったのにっ
>>78 はぁありがとうございます。
いろいろ調べたのですがどうやらリンクがされてなかったようです。
この問題は手動でリンクする事で解決されましたが今度は、d3d8.libは無効的なエラーを吐きやがりました。
いろいろ調べた結果VC用のlibファイルはボーランドのリンカでは流用できないようです。
この事はd3d8.dllからライブラリを作成して解決する事ができました。
VCですが検討してみます
BCCって事はフリー版なんだろうが、
何であんな古いコンパイラを使うのか理解に苦しむ
最適化も古いから速度も遅くなるぞ
なんで2005ExpressあんのにわざわざBCC使うんだ?
タダなのに
>>74 MSKKの表記はダイレクトエックス
>>104 まだ出たばかりで情報少ないからじゃね
VCTKはPSDKのインスコが嫌われてた
VCEも一年限定配布のせいであまり強力にプッシュする気にならん(´・ω・`)
公開ダウソ期間が1年ってだけで永久に使えるワケだが何故嫌う?
一年で消えるものに労力つぎ込むのが惜しい
>>107 カンファレンスとかだとみんなディレクトエックスって言うとる。
「○○○(○)」
↑ってなんて読むんですか?
DirectXと言うか、プログラミングのつくりに関する質問なのですが、
ゲームのモジュールとDirectX関連の機能のモジュールは分けるのが基本?
描画やキー受付などの入出力と、ゲーム本体の動作は同期はしても
依存はさせないのが行儀の良いプログラミングスタイルなのでしょうか?
決まりなど無い、勝手に汁
>>113 たとえば、DirectXとプログラミング設計手法の話は
別々のスレで行ったほうが閲覧性があがる。
だから分けたほうがいいんだ。
それができないなら抽象化して考える訓練が不足している。
変更に強いプログラムほどモジュールは独立しているはずだ。
「モジュール結合度」についてもっと調べればム板で議論するために
必要な基本的な知識を得ることができるだろう。
すいません、DirectInputを使用してプログラムを作ろうとしたのですが、
DirectInputオブジェクト作成で躓いています。
DIRECTINPUT_VERSIONに0x8000を定義し、
DirectInput8Create関数を呼び出してDirectInputオブジェクトへのポインタを取得しようとした所
0x8007047e 指定されたプログラムは、新しいバージョンの Windows を必要とします。
と言うエラーコードが帰り、関数を失敗してしまいます。
OS:Windows2000SP4
DirectX:DirectX 9.0 SDK Update (October 2004)
開発環境:VisualStudio2005
DirectX9.0 (October 2004)はWindows2000に対応していたと思ったのですが、
記憶違いでしょうか?
どなたかよろしくお願いします。
117 :
116:2006/03/06(月) 23:28:40
自己解決しました……入門書が間違っている
>>DIRECTINPUT_VERSIONに0x8000を定義し
上記処理を削ったら問題なく動作致しました。
『DirectX9プログラミング入門』に騙されました、いや鵜呑みにした自分が悪いんですけどね。
118 :
117:2006/03/06(月) 23:47:04
うわ恥ずかしい、よくよく見ていくと全然違う所が原因だった!!
御免なさい『DirectX9プログラミング入門』あなたは正しかった!!
首吊って来ます……o.....rz
寧ろどうやったらそんなエラーが出せるのか知りたいもんだが
キャタピラの動作ってどうやってますか?
パターンでアニメ処理だと地面と同期しない。
CADの機構解析なみに計算させるわけ?
下面は地面固定、上面は速度の2倍スクロール、前後輪はタイヤ回転させて内側面半分非表示・・・が無難かな。
スクロールってのもやっかいだな。
何がしたいのかわからない
>120
プログラム以前の問題
つかスレ違い
>>120 そういう人があまりやってなそうなことを自分で考えるのがおもしれーんじゃねーのか。
ついにSDKがCDに入らなくなった
狂ってるぜMS
125 :
デフォルトの名無しさん:2006/03/10(金) 14:29:09
悩んだ挙句にここで質問します
数々のサンプルで頻繁に使われる固定フレームレートのゲーム用のメッセージループ
(timeBeginPeriodで精度上げてPeekMessage使ってtimeGetTimeで空ループぶん回し時間調整。CPU使用率100%)
とDirect3D9のフルスクリーンモードについてなのですが…
この板内のどこぞの過去ログにCPU使用率を下げるためにtimeGetTime()空ループに
Sleep(1)を挟むと良いという話があったのでやってみたところ、確かに使用率は
下げつつそこそこの精度で固定フレームレートを実現できました。
…Windowモードだけでは。
D3D9でフルスクリーンモードにすると何故かタスクマネージャのCPU使用率が100%に張り付きます。
一応動作中にFullScreen表示とWindows表示を切り替えられるように書いていますが、
全く同じ処理をしてるのに、FullScreenにすると100%、Window表示にすると手持ちPCだと
8%前後になる状況です。
ぶっちゃけ原因が判りません。 orz
FullScreenにするとSleepが1ms待たずに制御を戻したりするんでしょうか?
126 :
125 :2006/03/10(金) 14:30:13
書き忘れ
Sleep(1)の精度に関してはキニシナイ方向で
128 :
125:2006/03/10(金) 15:40:37
切り分けてみた
一切描画しない完全空ループ 0〜1%
WindowモードでPresent()だけ回す 8%前後
FullScreenでPresent()だけ回す 100%張り付き
どうみてもPresentに渡すパラメータが問題のようです。
本当にありが(ry
…でもPresent(NULL,NULL,NULL,NULL);じゃ駄目なんだろうか?
それにWindowモード時でもPresent()だけで8%ってのも変…
>127
質問読んでないだろ
129 :
デフォルトの名無しさん:2006/03/10(金) 20:14:03
メタセコイアでXファイルを作っています。
DirectXで使うXファイルの場合、作るときの大きさはどのくらいのものなんですか?
小数点から大きな実数まであるのでよく分かりません。
例えばゲームで使うキャラクターだったら、1.0,1.0,1.0の立方体に収まるくらいですか?
>>129 単位をmにして考えた寸法でいいでしょ。
舞台が宇宙で巨大戦艦とかいうんじゃないだろ?
132 :
129:2006/03/11(土) 00:15:52
>>131 なるほど、bですね。
分かりました、ありがとうございます。
133 :
デフォルトの名無しさん:2006/03/11(土) 11:06:53
すいません、DirectXでのXファイルの保存の仕方が分かりません。
検索しても出てこない、本屋で探しても見つからない、
だけどリファレンスには何かあるんです。
Direct3Dでメッシュを読み込んで、ポリゴンの頂点にUV座標を設定して、
それをまたXファイルに書き出したいのです。
/*
フリーのソフトには
モデリングはできてもテクスチャのUV座標までは設定できないものしかないようなので
このような方法で何とかしようと思いました。
*/
>>133 D3DXのリファレンスを隅から隅まで読め
>>133 六角大王ぐらいの出費は覚悟したほうがいいよ。
UV設定するツールなんて作ってたらそれだけで開発期間食っちまうぜ。
勉強もいいけど、君がそれを簡単にできるぐらいまで実力がついてからやってもいいと思う。
メタセコイアのせいでフリーの3DCGソフト全般がダメだと思われてる
( ゚д゚)ポカーン
メタセコイアが凄すぎるせいで、って意味ならそうかもなぁ…
つか、メタセコみてみたけど、
アニメーションができないだけでUVマップはできるじゃん。
有料旧版→UVにバグ
無料(LE)版→UV不可
有料最新版→UV可能
無料版はゲーム製作には使い物にならんから有料版買え
できれば3dsMAXかMAYAを買え(個人的にはLW3Dを超オススメだ)
値段と性能のバランスが取れてるのはgameSpaceだが英語版しかない
無料で一番性能がいいのはBlender。だが回避しないといけない罠が多くて素人にはオススメできない
無料でバカでも安心して使えるようなソフトは現状では存在しない
無償でよいソフトがあっても、馬鹿には使えない
>>140 六角大王は?
旧版のフォーマットで出せばスキニングもできなかったっけ?
カード情報抜かれるらしい
>>143 スキンメッシュだ・・・orz
どうしちまったんだ・・・俺・・・orz
DirectX8から9への移行で質問です
移行したらいきなりテクスチャが貼れなくなりますた orz
DX8の時は単純にSetTexture()してDrawPrimitive()したただけで表示されましたが、
DX9で同じ事しても貼られるべき所が緑に塗りつぶされてしまいます
DX9のチュートリアルとサンプルソースみても、いきなりテクスチャ座標変換の話から
入っていて単純に貼るだけの方法は見当たりません… ナンダヨソレ
なおサンプルソースのSetTextureStageStateや座標変換あたりのコードをベタで
取り込むとそれっぽい効果のかかったテクスチャは貼られます
俺がやりたいのはそんな高度な事じゃねえんだよ…>Microsoft
やったことはこんな感じ
(D3DFVF_XYZ|D3DFVF_TEX1)なuvを含んだ頂点を用意
SetTexture( 0, pTexture );でテクスチャ設定
SetSamplerState(0,D3DSAMP_MAGFILTER,D3DTEXF_NONE);
SetSamplerState(0,D3DSAMP_MINFILTER,D3DTEXF_NONE); //気休め
これだけで後はSetStreamSource()、SetFVF()、DrawPrimitive()です。
DX8の時はSetTextureStageStatedでフィルタ指定してただけで、DX9では
SetSamplerStateに変わったのでそこだけ書き換えました。
DX9では他に指定があるのでしょうか?
146 :
145:2006/03/11(土) 22:56:50
激しくFVFコードの指定間違えてました
145は無かったことにして下さい
スンマセン orz
147 :
133:2006/03/11(土) 23:04:04
>>134 はぁ。もう一回読み直して整理したらこんな感じになったのでこれで弄ってみます。
@D3DXFileCreate
AID3DXFile::CreateSaveObject
BID3DXFileSaveObject::GetFile
CID3DXFileSaveObject::Save
>>135-144 買うなら安いメタセコイアですかねぇ。
無償版LEは結構いい感じでした。
ちょびっとだけ購入を検討しています。
「3DACE」というフリーソフトがあるのですけれど、
UV設定できない以外はこれくらいの機能でいい感じでした。
ありがとうございました。
>>147 なんでそんな金ないの?
六角大王にしとけって。
スキンメッシュもできるから。
六角大王はそもそもモデリングしづらすぎるけどなw
>>149 モデリングまではメタセコのフリーでやってUVから六角大王でやるとか・・・
ただ、
頂点〜面〜法線〜UV〜アニメーション〜スキンメッシュ〜その他シェーダ
ってモデルのコンバートサポート対象段階(笑)があるとして、
法線〜からいって怪しくなるからな。アニメーションまでいくとほとんどサポート無しって感じだし。
頂点と面ぐらいしか綺麗にコンバートの保障があるものってないよな。
つか、モデリングソフト作ってる奴って、あまりにヘタレが多すぎ。
本職でこの程度の腕なんて悲しすぎるにもほどがある。
追記:頂点と面に関しても4角形以上のポリゴンが入ると駄目とか多い。
マジで給料泥棒にもほどがある。
自分でできない奴程、他人に厳しい法則。
>>152 いや、本当にそれほど大したもんじゃないし。
そりゃ各モデリングソフトごとに特殊な形式で値を計算しててそれ用に値を出すのは
それなりに困難なのかもしれねーけど。
ホントにこの程度じゃそんな不具合ないじゃん。
別に完璧を求めてるわけでもないし、フリーで組んでる人の重箱の隅を突いてるわけでもないし。
煽りレスもちゃんと問題を理解した上でつけないとただの馬鹿に見えるよ>
>>152
自分の出来る部分だけ見てるからだろ。
ヘタレでも一つぐらいは自分のがマシって部分は見つけられる。
>>154 いや、なんでそんなに頑張るのかわからんけど、
会社でお金払って売ってるものでXXコンバート機能・・・○とかパッケに
書いちゃってんのに出来てないってもう詐欺だと思わん?
なんのいいわけにもならないよ。商品だし。
俺等、普通に「ああ、まあ、よくあるよね」って済ましちゃってるけど。
マジな話ただの詐欺罪だからね。
ああ、だからもっと叩くべきだと俺は思うよ。
こういうことちゃんとやらないとちゃんとやってるメーカーが馬鹿をみることになるよ。
一覧だけ見せられて対応表が書いてあって、○とかついてたらできるって誰でも思うでしょ。
また、あいまいにしちゃって対応表すら出してないメーカーにも潰れてもらったほうが
住みやすい世の中になるでしょ?
たった一回一言レスした俺がそんなに頑張ってるなら、
お前はどんだけ頑張ってるんだw
大したものじゃなければこんなところでグチグチ言わず自分で作ればいい。
それだけ大口を叩いたんだから、大したことのないものくらい簡単に作れるだろう?
口だけに決まってるだろ!
>>158 だから作ってるだろ?
ゲーム会社ごとに似たようなモン再開発してんじゃねーか。
( ゚д゚)ポカーン
>>158 問題はそうじゃなくてモデリングソフト売ってる会社が
いい加減過ぎるのは問題でしょ。
ってことよ。
別に誰かができるできないを言っていたわけじゃないよ。
文句あるならこんなところでうだうだ言ってないで、直接言うなり、
出るとこでて金返してもらえば?
>>160 作ったのだったら、文句を言わずにそれを使えばいいだけだろ。
自分のものが優れていると思ったら、売り出したらどうだ?
どうせ全然使い物にならないと立派な評判を得ることになるだろうが。
>>163-164 つか、論点ズレまくりで何を話してるのかわからない。
モデリングソフトを作ってる会社が詐欺行為を働いてることと
俺がそれ相応の機能が作れることとなんのつながりがあるんだ?
口先だけの
>>165がウザイという話をしているのに、
何を論点のずれた話をしているんだ?
だれも
>>165が本気で相応の機能が作れるなんて思っていないし、
口先だけの詐欺師だってことは、みんなきちんと認めているから。
167 :
163:2006/03/12(日) 17:49:52
>>165 ハァ?何言ってんの?
俺は作れとか作れるとか言って無いけど・・・
詐欺だと思うなら被害届けだせばいい。
言ってることがわからないなら、もうちょっと大人に出直そうね。
>>モデリングソフトを作ってる会社が詐欺行為を働いてることと
>詐欺だと思うなら被害届けだせばいい。
以上、結論が出ました。
ワラタ
別に被害届けを出すだけが解決方法じゃないでしょ。
噂を広げて警告を発することも十分効果があるよ。
(・∀・)ニヤニヤ
>もうちょっと大人に出直そうね。
紛れ込んでますね
>別に被害届けを出すだけが解決方法じゃないでしょ。
じゃあ早く解決するために何かしたらどうだ?
↓例のプニプニAAで場を和ませて!
口先縛りにより、それ以外に方法はない。
181 :
133:2006/03/12(日) 19:21:48
>>148,
>>150 何か色々とお金がかかって、普段財布の中に\1000円入ってるか入ってないかです。
スキンメッシュについて調べてみたのですが、よく分かりませんでした。
よく分からなかったので今の俺には必要ないみたいです。
どうせ買うならLightWave3Dが欲しい気もします。
学生版で\60,800くらいらいいですがorz
金が無いなら、頭使え、
頭が無いなら、金使え。
>>181 普通にゲームで人間が動くと肘とか膝とか曲がってもポリゴンがバリバリ割れないっしょ。
皮膚が伸びるみたいに。アレ。
っていうかDirectXのSDKのサンプルでスキンメッシュってあるじゃん。
184 :
133:2006/03/12(日) 19:37:02
>>182 できれば頭のほうを使いたいです。
>>183 なるほど!
バリバリ割れないのはすごいことなんですね。
何か別に普通だと思って見てました。
とりあえず春休みはDirectXでxファイルのUV情報を変更して保存するのを頑張ってみます。
>>184 >とりあえず春休みはDirectXでxファイルのUV情報を変更して保存するのを頑張ってみます。
その程度の技術でUVに挑戦するのか?
極上の馬鹿だなw
身の程を知れw
186 :
133:2006/03/12(日) 19:52:47
>>185 UVは終わってます。
保存が問題です。
187 :
133:2006/03/12(日) 20:18:14
「w」とか使って必死で妄想している方が出てこられたので、
質問は一旦保留とさせていただいて、もう少し頑張ってみます。
回答してくださった皆様、ありがとうございました。
質問です、Windows標準の仮想キーコードと、DirectInput独自のキーコードの
相互変換表みたいなものは存在しないのでしょうか?
アプリケーション側からのキーコンフィグで、VK_〜を受信してキーコンフィグを行いたいのですが、上手くいかない気がしてきました。
190 :
デフォルトの名無しさん:2006/03/18(土) 08:45:22
---------------------------
Tutorial01.exe - コンポーネントが見つかりません
---------------------------
d3d10.dll が見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションをインストールし直すとこの問題は解決される場合があります。
---------------------------
OK
---------------------------
d3d10.dll ってどこで入手できますか?
スレ初心者なのですが、くだすれってどういう意味ですか?
"くだ"らない質問する奴は"去れ"。
を2ch風の言い回しにしたもの。
193 :
http://www.vector.co.jp/soft/win95/util/se072729.html:2006/03/18(土) 18:40:17
TextSS の64bit化おながいします
もしくは64bitにネイティブ対応した置換ソフトないですか?
194 :
デフォルトの名無しさん:2006/03/19(日) 23:33:20
キーコンフィグ用のアプリもDirectInput使って処理すればいいと思うんだがどうか。
何が押されたかを検出するAPIもあるんだし。
196 :
デフォルトの名無しさん:2006/03/27(月) 14:19:28
>>190をお願いします
サンプルのビルドは出来たのですが実行できません
>>196は何故DirectX10をインストールするという
基本かつ誰でも分かる事を試さないで居るのかが最大の論点。
キャラの座標は
左上と真ん中
どちらのポイントを保持して使うべきですか
やべぇ、すげぇこと思いついちまった。DirectX10ってDirectXXだな!
さて遅刻か…。
ランブルローズIOIO
>>199 そんなの10年も前から、ロックマンX=ロックマン10だったさ!
だからいつまでたってもロックマン9が出ないのさ!
出すと完結させなきゃいけないから
202 :
デフォルトの名無しさん:2006/04/21(金) 00:52:28
>>201 うわーロックマンXってそういう意味だったんだー。
始めて気づいた!
記念あげ
DirectXって単語は書けるようになったんですが、なんて読むのかわかりません!
ダーエクトクス
スロート・ウォブラー・マングローブ
206 :
デフォルトの名無しさん:2006/04/23(日) 18:44:48
>>203 ディレクトエックス
と前に先輩が読んでた。
ちなみに、VisualStudioは、ビジュアルストゥゥーーーーディオだって
207 :
デフォルトの名無しさん:2006/04/27(木) 08:00:25
DirectXSDKをインストールしましたが
VCのウィザードに追加されません。
なんでだろう…
209 :
デフォルトの名無しさん:2006/05/05(金) 14:24:38
DirectInputでキー入力処理をしてるプログラムで
チャットメッセージの入力なんかにIMEを使わせてあげたい場合の処理って
どこかにまとまった情報のあるWebページありますか?
DXUTguiのソース読んだほうが早い?
ぶっちゃけると、IMEを使うゲームはキーボード周りはDirectInputを
使っていないのが多い。
っていうか、俺はDirectInputを使っているのを見たことがない。
だからほとんどのネトゲでPostMessageでWM_KEYDOWNを送って
マクロが作れる。
そもそもキーボードの処理でDirectInputを使う必要性が皆無。
キーボードに関してはWin32APIの方が圧倒的に機能が優れているのに、
わざわざDirectInputを使って無い無い言っている奴は何がしたいんだ?
DirectInput IME の検索結果のうち 日本語のページ 約 350 件
DirectInput IME の検索結果 約 699 件
という検索結果はそういう事だったのねorz...
ていうかDXUTguiもDirectInput使ってないぽ?
DirectInputはマウスとジョイスティックだけにしときますわ
自分のPCのDirectXの情報を知るにはどうすればいいのですか?
ちなみに機種は「VAIO TYPE V VGC-VA171B」です
>>213 ファイル名を指定して実行 dxdiag
ありがとうございます。
216 :
209:2006/05/06(土) 01:44:00
ってウィンドウズメッセージじゃNumpadと普通のEnter区別つかないじゃん…
AltとかF10の挙動を抑制するのもややこしいし、
やっぱIME必要な時だけUnacquireするようにDirectInputで組むかぁ
回答を引き出すための上手い書き方だなw
普通に質問すれば答えるのに
Visual C++ 2005 Express Edition使ってDirect3dのプログラムを作りたいんですが
自分で書こうとしてもエラーが出て失敗します。
いい入門のページないかな・・。
CreateDevice.cppの中身をそのままコピーして
別のプロジェクト作って実行すると大量にエラーがエラーが出るのはなぜだろう?
i:\dx9sdk\include\d3d9types.h(1385) : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
c:\documents and settings\裕\my documents\visual studio 2005\projects\win01\win01\winmain.c(43) : error C2275: 'D3DPRESENT_PARAMETERS' : この型は演算子として使用できません
i:\dx9sdk\include\d3d9types.h(1474) : 'D3DPRESENT_PARAMETERS' の宣言を確認してください。
c:\documents and settings\裕\my documents\visual studio 2005\projects\win01\win01\winmain.c(43) : error C2146: 構文エラー : ';' が、識別子 'd3dpp' の前に必要です。
c:\documents and settings\裕\my documents\visual studio 2005\projects\win01\win01\winmain.c(43) : error C2065: 'd3dpp' : 定義されていない識別子です。
c:\documents and settings\裕\my documents\visual studio 2005\projects\win01\win01\winmain.c(45) : error C2224: '.Windowed' : 左側が構造体または共用体型ではありません。
c:\documents and settings\裕\my documents\visual studio 2005\projects\win01\win01\winmain.c(46) : error C2224: '.SwapEffect' : 左側が構造体または共用体型ではありません。
c:\documents and settings\裕\my documents\visual studio 2005\projects\win01\win01\winmain.c(47) : error C2224: '.BackBufferFormat' : 左側が構造体または共用体型ではありません。
---省略
裕君、必用なヘッダファイルはきちんと呼び出しているかね?
いい入門ページの前に、並みの頭が必要。
裕!
パソコン触る前に宿題しなさいって言ってるでしょ!
早乙女といい裕といい、チンカスが多いなぁ。
>>196 超遅レスだが、同じ問題にぶち当たったので解決策
最新のSDKのチュートリアルはDirectX10を使用しているが、
WinXP用のDirectX10は出ないようなので、Vistaが出るまで動かすことは不可能
解決策は過去Ver.のSDKからサンプルだけインスコして、それを使う
Oct 2005のチュートリアルで試したところ、実行できた
------ ビルド開始: プロジェクト: directxtest, 構成: Debug Win32 ------
コンパイルしています...
createdevicemy.cpp
i:\dx9sdk\include\d3d9types.h(1385) : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
c:\documents and settings\裕\my documents\visual studio 2005\projects\directxtest\directxtest\createdevicemy.cpp(13) : warning C4083: ')' が必要です。識別子 'C4819' が見つかりました。
リンクしています...
createdevicemy.obj : error LNK2019: 未解決の外部シンボル _Direct3DCreate9@4 が関数 "long __cdecl InitD3D(struct HWND__ *)" (?InitD3D@@YAJPAUHWND__@@@Z) で参照されました。
C:\Documents and Settings\裕\My Documents\Visual Studio 2005\Projects\directxtest\Debug\directxtest.exe : fatal error LNK1120: 外部参照 1 が未解決です。
>>225 何そのひと目で原因が分かるエラーの数々
------ ビルド開始: プロジェクト: directxtest, 構成: Debug Win32 ------
リンクしています...
マニフェストを埋め込んでいます...
ビルドログは "file://c:\Documents and Settings\裕\My Documents\Visual Studio 2005\Projects\directxtest\directxtest\Debug\BuildLog.htm" に保存されました。
directxtest - エラー 0、警告 0
========== ビルド: 1 正常終了、0 失敗、0 更新、0 スキップ ==========
裕君、こんにちは
ネットに接続していないPCに、DirectX9.0cをゲーム等のCDからインストールしようと思ったのですが…
セットアップを実行、次へを押したらすぐにインストール完了画面に移行して、インストールされた様子が全くありません。
実際に9.0cが必要なゲームはプレイできないし…診断ツールではバージョンは9.0cと表示されているのですが
どうにかなりませんかね?
>>230 お母さんに新しいPCを買ってもらいなさい。
>>230 ゲームの名前とビデオカードの種類をまず書け。
話はそれからだ。
>>230 DirectXは描画用ハードウェアなどを動かすためのもの。
だからDirectXがいかに最新でも、
ハードウェアがDirectX9.0cに対応していなければ当然動かない。
そしてここはDirectXを使ってゲームを作る人を対象にしたスレなので、
君の質問はスレ違い。
234 :
デフォルトの名無しさん:2006/05/12(金) 22:24:58
DirectInputのサンプルをコンパイル&実行したのですが、
エラー及び警告は出なかったがQueryInterfaceメソッドで
DirectInputDevice2に拡張する事に失敗し初期化を完了できず
実行しても入力が受け取れませんでした。
サンプルに添付していた実行ファイルは正常に動作するのですが・・
ソースは要約するとこんな感じなんですが、
#define DIRECTINPUT_VERSION 0x0800
static LPDIRECTINPUT Dinp = NULL;
static LPDIRECTINPUTDEVICE2 Dinp_stick = NULL;
HRESULT res;
LPDIRECTINPUTDEVICE tdid;
res = DirectInput8Create(hInst,DIRECTINPUT_VERSION,IID_IDirectInput8,(void**)&Dinp,NULL);
res = Dinp->CreateDevice(pdInst->guidInstance,&tdid,NULL);
res = tdid->QueryInterface(IID_IDirectInputDevice2,(LPVOID*)&Dinp_stick);
//ここでresにE_NOINTERFACEが返る
使用しているSDKはApril2006,コンパイラはVC++2005Express(VC++6.0でも同じでした)です。
どなたかよろしくお願いします。
>>234 馬鹿が何も考えずにノートPCなんて買って「開発できない」なんてほんと死ねってのにもほどがありますなw
>>235 いまの時代に8なんかつかうんだから、そんなことぐらいひとりで解決しろ。
他の人間が使っていないものを使うっていうことはそういうことだ。
>>236 君、235よりも恥ずかしいこと言ってるよ。
イタイタシイ
>>238 もっと分かりやすく言ってやろうか?
DirectX9SDKのヘルプでDirectInputのReferenceを見ろ。
そしたら236でどんな恥ずかしい事を言ってるのか分かるから。
241 :
235:2006/05/13(土) 06:13:35
ども、235です。恥など百も承知っす。
>>236 レス有難うございます。
DirectInputはまだ8止まりという事でよかったですよね?
いろいろ試したんですが、この部分でもう1週間ほど詰まってるので
もう試すことも無くなってこのスレに流れ着いたんですけどねー。
何か気が付くことがあればまたお願いします。
243 :
235:2006/05/13(土) 06:39:03
>>242 なるほど、今はDirectInputDevice8が現行だったんですねー
おかげで何とかなりました。助かりました、ほんとに有難うございます。
ところでなんでDirectInputを急に使う奴がふえたん?
質問です。
ちょっとした波形を描画するのに、DirectXだと遅い、という話を聞いたことが
あるのですが、そんなこと無いですか?
別に3D空間上において、変なことをやりたいとかではなく、単に2D上に
描画したいだけです。
波形自体はとりあえず最大で10万点程度で、現行の普通のマシンで、
秒間20回程度は描画したいのですが、可能ですか?
点をうつだけなら何とかなる。
248 :
246:2006/05/13(土) 21:52:25
>> 247
点だけ、ってことはやっぱり遅いんでしょうか。
あと、線を引いたりすると、どうなりますか?
>>248 やってみりゃいいじゃん。
クソ楽だし。
多分30分もあればできるよ。
スペック的にも余裕だと思う。
250 :
デフォルトの名無しさん:2006/05/14(日) 01:25:03
>>246 DirectX使うならハードウェア機能に依存する。
つまり、グラフィックカード何よ?て話になる。
まあ、今時なら10万ポリでも余裕ですから、点も大丈夫じゃね?
251 :
デフォルトの名無しさん:2006/05/14(日) 10:24:47
DirectX9とVC++.NET2003で作成してます。
DirectXをDebugバージョンにすると、エラーになってしまいます。
頂点数が多いのかと減らしてみても同じです。
Retailバージョンだとエラーもなく動きます。
わかる方がいれば、是非解決方法を教えてください。
Direct3D9: (ERROR) :Invalid primitive count
a.exe の 0x7c81eb33 で初回の例外が発生しました : Microsoft C++ exception: long @ 0x0012ed6c。
Direct3D9: (ERROR) :DrawPrimitive failed.
D3D9 Helper: IDirect3DDevice9::DrawPrimitive failed: D3DERR_INVALIDCALL
用意した頂点数に対してDrawPrimitiveに渡すプリミティブ数が多すぎるとかじゃね?
>>252 ありがとうございます。
解決しました。
こちらもその辺を疑ってチェックしていたんですが、もう一度チェックしたら
頂点0の時に呼び出してしまっていて、エラーになっていました。
逆に少なすぎたようです。
意味ワカンネ。
こいつぜってぇろくなプログラム組んでねぇだろ。
VC++ .NET 2005、DirextX 9.0 です。
くだらない質問で申し訳ありませんが、D3DXVECTOR4 型のベクトルと
D3DXMATRIXA16 型の行列の積を計算する演算子/関数はありますでしょうか?
よろしくお願いします。
リファレンスをお読みください。
257 :
255:2006/05/14(日) 14:34:00
リファレンスを見ているのですが、
ベクトルとスカラーの乗算、行列とスカラーの乗算、行列と行列の演算などは見つかりました。
ところが、ベクトルと行列の乗算が見つかりません。
オーバーロードされた演算子、Multiple っぽい関数、の両方を探しているのですが、どうにも・・・。
もう少しヒントをお願いします。
259 :
255:2006/05/14(日) 14:50:35
>>258 Transform か・・・ありがとうございました。
TRIP
261 :
246:2006/05/14(日) 22:04:58
Direct3D のサンプルの SkinnedMesh を参考にスキンアニメーションをしていて、
動作はするのですが、3Mぐらいのメモリリークが起こって困っております。
原因は ボーンの名前配列が解放されない事でした。
1.AllocateName関数でボーンの名前の領域を取って malloc で名前を代入しています。
2.解放処理で delete[](名前配列) とやってもメモリが解放されない。
一応やってみた事として、
・AllocateName関数の中で生成のあとすぐに、解放をしてみたら解放できました。
・名前の生成をやめてみたら、DrawMeshContainer関数の中でエラーが起きました。
・NULLを入れても同じくダメでした。
自分のプログラムを疑うべきですが、AllocateName関数も解放処理もサンプルと同じです。
これはサンプル自体メモリリークしているのでしょうか?
malloc して delete [] か・・・
痺れるね
265 :
262:2006/05/16(火) 01:39:27
間違えました。
malloc ×
memcpy ○
メモリ確保は newでやってます。
質問です。環境は XP、.NET 2005、DirectX9.0 です。
バックバッファのピクセルデータに直接書き込みたいので、以下のような処理を組みました。
頂点処理などが終わったのち、バックバッファを取得して書き込み、
後に Present でフロントに持ち込んでいます。
ところが、LockRect に失敗し、D3DERR_INVALIDCALL が返ってきてしまいます。
第2、第3引数があやしいのですが、ダーティ領域の意味がつかめず、リファレンスを読んでもうまく理解できませんでした。
プレゼントパラメータは以下です。
ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.Windowed = TRUE;// ウィンドウモード
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;// 最適なバックバッファ
d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
(つづく)
267 :
266:2006/05/16(火) 23:05:40
以下がソースの一部です。
よろしくお願いします。
g_pD3DDevice->Clear( 0, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,255), 1.0f, 0 );
if ( SUCCEEDED( g_pD3DDevice->BeginScene() ) )
{
/* ここで頂点処理などをした後、DrawPrimitive */
HRESULT hr;
LPDIRECT3DSURFACE9 pBackBuffer;
hr = g_pD3DDevice->GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, &pBackBuffer);
if (SUCCEEDED(hr)){
D3DLOCKED_RECT bbRect;
hr = pBackBuffer->LockRect(&bbRect, NULL, D3DLOCK_DISCARD); // ←ここでエラー: D3DERR_INVALIDCALL
if (SUCCEEDED(hr)){
*((BYTE *)bbRect.pBits + 0) = 0;
*((BYTE *)bbRect.pBits + 1) = 0;
*((BYTE *)bbRect.pBits + 2) = 0;
*((BYTE *)bbRect.pBits + 3) = 0;
pBackBuffer->UnlockRect();
}
}
g_pD3DDevice->EndScene();
}
g_pD3DDevice->Present( NULL, NULL, NULL, NULL );
>>266 D3DPRESENTFLAG_LOCKABLE_BACKBUFFER
269 :
266:2006/05/17(水) 00:23:01
>>268 おお、そんなところに。ありがとうございます。
270 :
デフォルトの名無しさん:2006/05/17(水) 14:51:07
すみませんが質問よろしくお願いします。
HTMLベースの研修用資料に一部DirectXを使いたいのですがJavascript等を使って
DirectX上の3Dを制御したいのですができますでしょうか?
例えばHTML上のボタンをクリックしたらDirectX上の3Dを動かすなどをしたいです
またその逆でDirectX上のボタンを押したらHTML上で別ページを読み込む等です
DirectXのことを調べ始めたばかりなのでとんでもない勘違いをしているかもしれません
がご回答お願いします。
自分でHTMLレンダラを実装すれば可能です。
がんばって作ってください。
>>270 ActiveXかなんかと勘違いしてね?
DirectXはゲーム向け3Dグラフィクスの制御に特化したライブラリ(のAPI)。
んでその認識が間違ってないならHTMLで、Javascriptで、と言い出したら
OpenGLの方が扱いやすい。
273 :
デフォルトの名無しさん:2006/05/18(木) 00:48:18
質問です。XP、.NET 2005、DirectX9.0 です。
あらかじめ用意されたカラーバッファ?(例えば、800×600 の 32bit なら、BYTE* myBuffer = new BYTE[800*600*4]; ) に、
Direct3D を使って3Dシーンを書き込む必要があります。
考えた方法は、CreateRenderTarget でターゲットとなるサーフェスを作成し、
SetRenderTarget でターゲットを移してそのサーフェスにカラーデータを書き込み、
後にサーフェスを LockRect し、memcpy なりなんなりで myBuffer にカラーデータをコピーする方法です。
が、毎フレームこの処理を行うと考えると、無駄が多い気がします。
書き込み先を直接 myBuffer にする方法はありますでしょうか?
よろしくお願いします。
>>273 >Direct3D を使って3Dシーンを書き込む必要があります。
まずまちがいなくこの必要がありません。
ホントは何がしたいの?
>>275 パラメータ画像とか抜いた3Dシーンだけの絵を加工してプリンターからカラー印刷したいんです。
毎フレームプリンタから印刷?
Lockして自前のバッファにコピーするのに無駄を感じる前に、
そっちの無駄の方が深刻だろう。
273で毎フレームやるって言ってるんだから、そういうことだろ?
>>277 いえ、毎フレームやるのはバッファの確保だけでプリンタに印刷するのは指定された1回だけです。
最終的なイメージはこんな感じです。
□□□□
□□□□ ← これをプリンタに出力
□□□□
□←1フレーム分
ガーと取っておいて、選んで印刷するのか。
ロックして自前で転送しかないと思う。
ちょっとメモリ帯域を喰う程度でこれといった無駄も無いでそ。
280 :
273:2006/05/18(木) 08:28:57
えっと・・・質問以降のレスは偽者ですorz
今作っているのは、他のアプリケーションが呼ぶ dll です。
カラーバッファ領域の確保や、最終的な画面への転送などはそのアプリケーションが行い、
こちらは、カラーバッファの先頭アドレスと幅、高さのみ、そのアプリケーションに渡されています。
そのアプリケーションは他の方が作ったもので、こちらから改造することはできません。
とりあえずはサーフェスに書き込んで、memcoy なりで領域に転送することにしてみます。
ありがとうございました。
DirectInput ゲームパッド 振動 使い方 説明 ページ どこ
282 :
デフォルトの名無しさん:2006/05/18(木) 20:55:15
質問です。
DirectXで全画面を描画している時に、テキストを入力できるウィンドウを作る場合、
Win32APIだけならばCreateWindowで新しいウインドウを作ればいいようなものなのですが、
どこから調べていけばいいか分かりません。
そういうチップ的な解説をしているHPや本はないでしょうか?
>>209が関係あるかと思ったけど関係ないようだな
284 :
デフォルトの名無しさん:2006/05/20(土) 17:21:37
質問です。XP、.NET、DirectX 9.0c です。
フルスクリーンに切り替えようとしているのですが、IDirect3DDevice9::Reset に失敗し、
D3DERR_INVALIDCALL が返ってきます。
原因が不明で困っています。
リセットする前に、たとえばスプライトなら、OnLostDevice() を呼び出す必要があります。
D3DXCreateTextureFromFile で作成したテクスチャに対しては、サンプルなどでも特別な処理をしていないのですが、
何か特別な処理が必要なのでしょうか?
Reset に渡す D3DPRESENT_PARAMETERS 構造体ですが、
同じものを CreateDevice に渡した場合は、うまくフルスクリーンで動作します。
よろしくお願いします。
リソースは開放した?
というかそれ以前にヘルプは読んだ?
managedってショボいですか?
287 :
デフォルトの名無しさん:2006/05/20(土) 17:48:12
読んでません
構造体のパラメータに無効な値が設定されているというエラーでしょ
何処かのパラメーターにグラボが非対応な値が入ってるんじゃね
>>286 VS .NETにDirectX9は入れてみたんだが、どうしたらManaged DirectXのプログラムと
普通のDirectXのプログラムを書き分けられるのかわからん・・・
.NETの場合は特に意識しないで参照からDirectXの各コンポーネントを参照していったら
全部Managed DirectXになるんだっけ?
290 :
デフォルトの名無しさん:2006/05/21(日) 23:19:06
ちょっと質問です。
D3DFVF_XYZRHW を含む頂点で構成されるポリゴンが表示されなくて困ってます。
例えば、x=0.0f, y=0.0f, z=1.0f, rhw = 1.0f の頂点は、
SetTransform に何を突っ込んでも、ビューポートなどの設定をどういじっても、
必ずウィンドウの (0,0) に描画されると考えてよろしいでしょうか?
(あくまで座標の話です。色やアルファ値などについては考えないでください。また、カリング処理なども行っていません。)
頂点一つだけでは何も表示されない。
292 :
290:2006/05/22(月) 00:35:57
>>291 言い方が悪かったです。
頂点の最終的な表示位置が (0,0) になる、といえばいいのでしょうか?
z=1.0fはビデオチップによっては、描画されなかったような気がする
294 :
290:2006/05/22(月) 01:06:14
z=0.0f にしたら描画されました!
座標変換無視するって言ってるのに、射影座標変換で投影範囲が 0.1f 〜 100.0f だから・・・とか考えてしまい、
z 座標をいじってませんでした。
ありがとうございます。
さっぱり分からないなら、まだ早いということだ。
ビオレで洗顔して出直して来い。
よくみたらdirectXのバージョンが違っていました。
サイトは8で僕が使っているのは9でした。
9で分かりやすいサイトがあれば教えてください。
何でもどこかのサイトに答えがあると思うな。自分でも考えてみろ。
どこかのサイトに答えがあるなら、そのサイトを作った人は
それをどうやって知ったのだ?
超初心者用というスレタイが泣いてるな。
このスレ、説教オヤジを避けるために、わざわざ初質スレから分離したんだけどな
また説教ですか、昼間からw
教えてクン必死だなw
301の自演による印象操作中です、しばらくお待ち下さい
∧_∧
( ・∀・) マッテマス
( つ日)
と__)__)
301の印象操作だと301が自分の首を絞めてることにならないか?
∧_∧
( ・∀・) マダァ?
( つ日)
と__)__)
実は311が301でないかと疑ってしまう俺マジピエロ
301=308
混乱を誘うため、イコール厨が発生していますが、もうしばらくご辛抱下さい
この後301が、301以降初めて書き込むような顔でレスしたら終了です
316 :
301:2006/05/22(月) 21:01:57
やぁ!ヒサシブリ!
終了?
MSDNのドキュメントがずっと古いままなのですが、どうやったらドキュメント担当者に電流を流せますか?
止めてグリーンマイル
グリーンマイル止めて
321 :
295:2006/05/23(火) 11:18:29
>>298 きっとサイト作った人が天才だから公式ページやサンプルから解読したんだと思う。
頭が悪い自分ではわかりません。
サンプル見て理解できたらきっと何でも作れる
323 :
281:2006/05/24(水) 19:20:46
(((((((((((((((((゚д゚))))))))))))))))))))))
324 :
デフォルトの名無しさん:2006/06/02(金) 18:17:10
はじめまして。
今、DXUTを使用したサンプルプログラム『Empty Project』をいじくっているのですが、
単なるポリゴンの表示が出来なくて困っています。
コールバック関数OnFrameRender内で
DrawPrimitive(〜)
系の関数を使えばいいと思うのは馬鹿な勘違いなのでしょうか・・・
どうすればポリゴン表示されるか、アドバイス頂けたら幸いです。
尚、描画部分のソースは以下の通りです。
// Render the scene
if( SUCCEEDED( pd3dDevice->BeginScene() ) )
{
CUSTOMVERTEX g[3];
WORD i[] = {0,1,2};
g[0].x = 0.0f; g[0].y = 1.0f; g[0].z = 0.0f; g[0].color = 0xffffffff;
g[1].x = 1.0f; g[1].y = 0.0f; g[1].z = 0.0f; g[1].color = 0xffffffff;
g[2].x = -1.0f; g[2].y = 0.0f; g[2].z = 0.0f; g[2].color = 0xffffffff;
V(pd3dDevice->SetFVF(D3DFVF_CUSTOMVERTEX));
V(pd3dDevice->DrawIndexedPrimitiveUP(D3DPT_TRIANGLELIST, 0, 3, 1, i, D3DFMT_INDEX16, g, sizeof(CUSTOMVERTEX)));
V( pd3dDevice->EndScene() );
}
ポリゴン使ってるサンプル見ろよ・・・
なんで理解もできてないのに「Empty Project」なんだよ
326 :
デフォルトの名無しさん:2006/06/02(金) 18:31:28
そのサンプルはMeshを使っているじゃないですか。
Meshを使わずにポリゴン表示させたいんです。
変換済み頂点なのかどうかすら不明なのにどうしろと。
変換済みなら数値がアホ。
そうでないならカメラやマテリアルやライトの設定はどうした。
更に言うならサンプルを見るのもまだ早い。
高額社の本でもみてお勉強しなさい。
DrawIndexedPrimitiveUP ってインデックスバッファはどこに行った
まずはチュートリアルを終わらせろ。
なぁ。
色々と聞いて返答まってるよりチュートリアルを読みながら進めてったほうが速いよ。
読むの('A`)マンドクセ。
よくわからん単語がいっぱい出てくるし。
>>331 それがはじめの一歩ってやつよw
ここで苦しむのは当り前でしょ。
とりあえず、わからない単語は無視してサンプルコードだけひたすら入力。
実行してみて結果を確認してからわからん単語をもう一度眺めてみる。
「さっぱりわからん」から「なんとなくこんなとこか?」ぐらいの印象にはなってるよ。多分。
それでもわからんのは飛ばして次のステップにいく。
プログラムはショッパナは「テキトー」なのが大事だぜ。
だから日本人はいつまでたってもプログラミングに関してはアメリカ人に勝てないんだwと俺は思ってるw
DirectXって
ディレクタックスって読めばいいってやふーの検索ででました
334 :
デフォルトの名無しさん:2006/06/07(水) 10:03:52
DirectXで表示されている画面を、
フリーとかシェアのソフトでキャプチャーしましたが、
真っ黒です。
何か設定要るのでしょうか?
それとも自分でプログラム作るしかない?
自分で作るならここ、
そうでないなら板違い。
336 :
デフォルトの名無しさん:2006/06/07(水) 11:13:50
>>335 いや、それくらい分かってます。
先ずはキャプチャーできない原因と解決方法分からないと、
コーディング出来ないお。
338 :
デフォルトの名無しさん:2006/06/07(水) 12:37:59
>>337 FrapsでF9(もちろんMovie設定画面で設定しているキー)押しても、
録画されないんだけど、
このソフトってゲーム(なんてフラグはWinアプリに無いと思うが...)専用?
自分で作ったプログラムならサーフェイスの内容をロックして書き出せば解決。
他のソフトを使う必要性は皆無。
341 :
デフォルトの名無しさん:2006/06/07(水) 13:10:31
ロックして書き出せるんだから原因を知る必用はないし、コーディングも可能。
343 :
デフォルトの名無しさん:2006/06/07(水) 13:20:03
344 :
デフォルトの名無しさん:2006/06/07(水) 13:22:11
だから自分のプログラムならスクリーンキャプチャなんて回りくどい方法など必要ない。
スクリーンに出力する前のサーフェイスを取り込めばいいだけの話。
解決方法は示しているんだから、グダグダやってないでコーディングしろよ。
346 :
デフォルトの名無しさん:2006/06/07(水) 13:32:13
348 :
デフォルトの名無しさん:2006/06/07(水) 13:35:05
350 :
デフォルトの名無しさん:2006/06/07(水) 13:37:22
>>349 ええ、あなた程度でも思いつくような事はさすがにやってます^^;;;
以上、大団円にて解決。
352 :
デフォルトの名無しさん:2006/06/07(水) 13:47:56
ソフト名は「もめ!乳姉妹かていきょうし11人」です。
どうしてもキャプチャーしたいんだお。
本当に困ってます、遊んでないで教えてくれ。
353 :
334:2006/06/07(水) 14:19:12
何だか非常に荒れてますね。
自分がカキコしたのは343まで何ですが、
なりすましが2、3人居る悪寒。
流れをぶった切って質問させていただきたい。
DXUT使用のサンプルだと、デバイスの消失やら回復やらについて
ほぼ完全と思える実装が施されてると思えるのだけど、
3000行からのDXUT本体+取り巻きのコンポーネントの多さに
頭クラクラです。
一応自前でもDXUTからかいつまんで大体の処理は仕込めたんだけど、
マルチディスプレイ環境で2つ同時にデバイスを起動中、片方を解像度変えて
全画面化すると片方のデバイスがロスト(そしてリセット不可)になったりします。
DXUTをもっと読み解くべきなんだろうけど、デバイスのロストが起きる状況、
起きた場合の対処法について、がっつり頼りになる情報は無いもんでしょうか。
Iconic時は当然リセットの必要は無い、アクティブ化時には
TestCooperativeLevel() して必要ならリセット、云々かんぬん、
勘に任せてどうにかなるもんじゃないし、DXUT読み解き尽くすには結構時間
かかっちゃいそうで鬱ですよ…。
VC++2005EEを使ったDXゲームの制作方法について詳しく書かれた日本語のサイトは無いでしょうか?
ないよ
じゃあ、VC++2005EEでゲーム作るのに必要な本は何がお勧めですか?(プログラム全般も初心です)
本は必要じゃないよ
初心者は金を出して開発環境を買え。
Lunaでも使えば?正式に対応してたと思うぞ。
DXライブラリもな
正規のウィンドウズでないためダウンロードできませんorz
エロイ人うpお願いします
OSはPCショップで売ってるよ。
よく調べるんだな
非正規のWindowsでもMSから落とすことは出来る
だから誰かが転載などしてネットワーク資源を無駄に消費する必要は無い
でもOSはPCショップで売ってるよ。
そもそも割れOS使うようなやつがソフトウェアに手を出そうってのが滑稽。
ソフトウェア開発だろ。
同意。
ソフトウェア販売は良いのですか?
割ったOS売ってるんじゃなければ情状酌量の余地はあるんじゃないだろうか。
ねえよ。
DirectXのサンプルのライセンスってどうなってるの?
勝手にDLLにしたり組み込んだりして使ってもいい?
371 :
デフォルトの名無しさん:2006/08/19(土) 01:49:32
DirectX9を使ってプログラムを組もうとしているのですが
どうやら僕のPCにはデバイスが無いみたいです。
あれやこれや調べていたらどうやら設定を変えるなり
ドライバをインストールすればどうにかなりそうな情報を得ました。が方法がわかりません。
私SOTECのS2120Cを使っております。XPです。
デバイスを入れるって言うのでしょうか?
をしてDirectXを組めるようにするにはどういった
設定が必要でしょうか?
マルポ
メーカーに聞け
メーカーのHPで探せ
WindowsUpdateの存在を知らんとか言ったら、貴様の尻子玉をいただく。
設定はイラン、デバイスを入れて、ドライバを入れろ!
うはwww、更に別のサイトにまでマルポ
377 :
デフォルトの名無しさん:2006/08/19(土) 11:09:57
DirectXの勉強を始めようと サンプルで学ぶDirectx9プログラミングテクニック
というのをamazonで購入してみましたが、ソースが基本的にMFCの知識前提のようで挫折しそうです
皆さんDirectX学習の最初のステップにはどんな本やサイトを使いましたか?教えてください。
あと前提知識としてはC,C++,WIN32APIの基本部分でなんとかなるでしょうか?
四の五の言わずにチュートリアルを全部もれなく手抜きせずやれ。
>>377 俺はひたすらMSDNを見るなりググるなりした。
DirectXは本やサイトに則って勉強していって身につくものではない。
Win32APIはそんなに勉強しなくてもいいだろうけど
C/C++はちゃんと勉強しておけ。
380 :
デフォルトの名無しさん:2006/08/19(土) 18:09:18
>>378-379 レスありがとうございました。とりあえずSDK付属のチュートリアルを
やってみることにします(正直言ってSample Browserの存在に気づいてませんでした)
C/C++も初心者段階なので進めておきます。
381 :
デフォルトの名無しさん:2006/08/19(土) 19:07:49
DirectXで描画したシーンの上に、エディットボックスやリストなどの
WindowsのGUI部品を配置したいのですが、
DirectXの描画がGUI部品を上書きしてしまいます。
どうやったらGUI部品を配置できるんでしょうか。
または、どこかに良いサンプルはありませんか?
自分で描画しているから上書きされるんだろう。
部品があるところには描画しなければいいだけ。
383 :
381:2006/08/19(土) 19:26:27
部品のある領域だけ描画しないようにするには、どうしたらいいんでしょうか?
マスクをかけたりとかできるんですか?
転送するときに描画したくないところを避けるだけ。
疑問に思うようなところは何もない。
385 :
381:2006/08/19(土) 19:47:37
できればもう少し具体的に、
どういう関数にどういうパラメータをセットするとかで説明してもらえないでしょうか。
転送というのはD3DDeviceのPresent()ですか?
無色指定って素敵な言葉だよな
D3DXCreateTextureFromFileEx()関数がエラーを吐くのですが、原因がわかる方いらっしゃいませんか?
状況
1.メインスレッドとは別のスレッドでテクスチャを作成(Direct3Dの初期化などはメインスレッドで行っている)
2.エラーコードは E_OUTOFMEMORY
3.PCのメモリは十分にある(1GB)
関数の呼び出しは以下の形で、DirectX9.0bを使用しています。
D3DXCreateTextureFromFileEx( m_pd3dDevice , fileName , width , height ,
1 , 0 , D3DFMT_A8R8G8B8 , D3DPOOL_MANAGED ,
D3DX_FILTER_NONE , D3DX_FILTER_NONE , 0 , &imageinfo ,
NULL , &texture );
width , height はあらかじめデバイスの能力とテクスチャのファイル情報を読み、必要なサイズを設定しています。
(180*180の画像ならば、256*256、など)
以前シングルスレッドで動作させていたときはこのような問題は起こらなかったのですが、
やはりマルチスレッド化に問題があるのでしょうか?
Direct3Dの初期化を完全に行ってから呼び出しているか?
IDirect3D9::CreateDevice();の呼び出しは完了してからスレッドを起動してます。
それと、100%の再現性があるわけではなく、大抵は正常にテクスチャを読み込めてしまいます。
また、1つのテクスチャの読み込みに失敗すると、連続して複数失敗するケースが多いようです。
メモリ確保のプログラムにミスがあるとかでメモリエラーが起きているんでしょうか・・・?
それどっか無限ループしてんじゃね?
読み込むファイルの指定はメインスレッドからしてるの?
メインスレッドはファイルが読み込み終わったのをどうやって判定してるの?
>>388>>390 ありがとうございます。
>>388を見て、もう一度初期化処理を見直してみたところ、
CreateDevice()呼び出し時にD3DCREATE_MULTITHREADEDフラグが設定されていませんでした。
初歩的ミスで申し訳ないです。
>>391 すまん、そんなオチだろうとは思ってた。
393 :
デフォルトの名無しさん:2006/08/30(水) 00:37:07
c:\program files\microsoft directx sdk (december 2005)\include\d3d9types.h(1385) : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
このエラーの解決方法分かる方、ご指南願えないでしょうか?
>データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
>>939 素のままだと出るんだ、それは。
保存しなおすか、warningを4819限定で切っとけ。
396 :
デフォルトの名無しさん:2006/08/30(水) 01:09:55
397 :
デフォルトの名無しさん:2006/09/04(月) 10:00:46
240X240のbmp描画をTextureを使って描画すると、
どうしてもぼやけてしまいます。
何か解決方法など、教えていただけないでしょうか
あと、それならばスプライト描画を使おうと思い、
RECT SrcRect, DestRect;
SetRect( &SrcRect, 0, 0, 240, 240 );
SetRect( &DestRect, 0, 0, 240, 240 );
m_lpD3DDevice->StretchRect( m_lpSurface, &SrcRect, m_lpBackBuffer, &DestRect, D3DTEXF_NONE);
と書いたのですが、なぜか拡大処理されてしまいます。
DirectXにスプライト機能など無い。
DirectX9.0c入ってるのにdxdiag.exeが無いです・・・。
どなたかうpお願いします。
SDKのバージョンは?
>>399 dxdiag.exeが無いというのは、スタートメニューに無いという
意味とは違うよな?
「スタート→ファイル名を指定して実行」でdxdiag.exeを
指定しても実行できないか?
>>399 エロゲームに付いてきてんだろが?www
>>397 >> 240X240のbmp描画
テクスチャサイズのルールと該当しないサイズのテクスチャを
読み込んだ時の挙動についてはちゃんと理解しているのか?
ついでにStretchRectはスプライト転送などではないだろう。
404 :
399:2006/09/05(火) 13:15:54
>>401 はい。ファイル検索をかけても見つからないのです。
だからSDKのバージョンを書けと。
406 :
399:2006/09/05(火) 15:31:39
August 2006です。
前にスプライト云々言っていた者です。
// 描画開始
m_lpD3DDevice->BeginScene();
m_lpD3DXSprite->Begin(D3DXSPRITE_ALPHABLEND);// スプライト描画開始
// スプライト描画
RECTRect = { 0, 0, 256, 256 };// 描画範囲
D3DXVECTOR2 Scaling( 1.0f, 1.0f );// 拡大縮小
D3DXVECTOR3 Center( 0, 0, 0);// 回転時の中心座標
D3DXVECTOR3 Translation( 0.0f, 0.0f, 0.0f );// 描画位置
INTnDegree = 0;// 角度
m_lpD3DXSprite->Draw( m_lpD3DTexture,// 描画するテクスチャ
&Rect,// 描画範囲
//&Scaling,// 拡大縮小
&Center,// 回転時の中心座標
// D3DXToRadian( nDegree % 360 ),// 回転角度をラジアン単位で指定
&Translation,// 描画位置
0xffffffff );
// 描画終了
m_lpD3DXSprite->End();
m_lpD3DDevice->EndScene();
これでなんとか描画はできたんですが、やはり「ぼけて」しまいます。
色々調べて、フィルタをはずせば良い事が分かったのですが、
SetTextureStageStateを使ってどうはずせば良いものか・・・。
どなたか教えていただけませんか?
408 :
デフォルトの名無しさん:2006/09/05(火) 16:55:37
助けてください。
Xファイルに頂点2点設定して
SDKのサンプルViewerでその線分を見ることは可能ですか?
409 :
デフォルトの名無しさん:2006/09/05(火) 19:34:52
デバイスコンテキストを使ってテクスチャ(のレベル0のサーフェス)に
丸やラインなどを描画したいのですが、
どういうわけか1ピクセル左にずれてしまいます。
RADEON9800ではうまくいったのですが、古いRAGEIIというビデオカードだとこの現象が発生します。
解決方法の分かる方いましたら、教えてください。
古いビデオカードをあきらめる
411 :
409:2006/09/05(火) 20:53:47
DrawPrimitiveUPの代わりにID3DXSpriteのDrawを使ったところ、
ずれはなくなりましたが、今度はにじんだようになってしまいました。
アンチエイリアスがかかっているような感じです。
>>407,411
どっちも、ID3DXSprite::Beginの直後に
IDirect3DDevice9::SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_NONE)
IDirect3DDevice9::SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_NONE)
の二つを入れれば解決。
ちなみにSetTextureStageStateではないし、アンチエイリアスでもない。
413 :
409:2006/09/05(火) 23:17:45
解決しました。過去ログのこの辺が参考になりました。
http://bbs.gamdev.org/test/read.cgi/gamedev/1054109966/897-908 一応やり方としては、
1.0f / 横幅 / 2 を、テクスチャUV座標のUにプラスする。
1.0f / 高さ / 2 を、テクスチャUV座標のVにプラスする。
幅や高さは画像の実サイズではなく、2の累乗に矯正されたテクスチャのサイズです。
最近のグラボは2の累乗でなくても扱えるのもあるみたいですが、
こういう現象が発生するようなのはたいてい古いやつでしょうから。
まあみなさんも保険と思って、テクスチャで2DやるときはUV座標を0.5ピクセル分
ずらしてやるのがよいかと。
414 :
409:2006/09/05(火) 23:21:05
>>412 ありがとうございます!
ID3DXSpriteがぼやけるのはそれで直りました。
>>413 それだと一部のカードで問題が起きるぞ。
動かすのはUVでなくてピクセル座標の方がいい。
ピクセルとテクセルが一対一の場合、テクスチャの幅で除算してるUV座標は
桁が割れちまうカードがあるんだ。
UVは元に戻して、XY座標の方を0.5マイナスするのを試してみ?
>>412 回答ありがとうございます。
なんとか解決したのですが、原因は、D3DXCreateTextureFromFileにありました。
自動でD3DX_FILETER_LINEARがかかっていたようなので、
D3DXCreateTextureFromFileEXを使って、D3DX_FILTER_NONEをセットすることで解決しました。
ゲーム製作技術板でも話題になったけど
マップチップ使ってないならクランプテクスチャアドレッシングモードが完璧。
最近だとリピートとかほとんど使わないんだよなー。
レンガの壁ですら丸々一枚持っちゃったりするし。
>>418 リピート使うとリピートした分だけ遅くならない?w
そんなわけないんだけど、なんか遅くなった希ガスw
自分で3Dエンジン組んでみれば分かると思うが、
サンプリングの時はリピートが一番処理が速い。
UVがどうなってようが&演算1つで済むからな。
質問です。
DirextX 9.0 SDK に入っている、DirectX Texture Tool が起動しません。
起動しようとすると、以下のようなエラーがでます。
Unable to create Direct3D Device. Please make sure your desktop color depth is 16bit or 32bit.
ですが、デスクトップの設定は間違いなく 32bit になっており、試しに 16bit にしても、同様のエラーがでます。
環境は XP SP2、DirectX 9.0c、RADEON 9600 と、特に不自由のない環境で、SDK の他のツールは正常に動きます。
何か原因に心当たりはないでしょうか・・・。
よろしくお願いします。
422 :
421:2006/09/10(日) 17:53:18
SDK のバージョンの確認方法がわからず・・・
D3D_SDK_VERSION 定数の値は 31 です。
>>418 いや、流石にそれは無い。
ただ、テクスチャキャッシュに乗りきらんほどでかいテクスチャ使ってると
大した違いは出ない可能性は無いでもない。
424 :
デフォルトの名無しさん:2006/09/10(日) 20:41:49
メッシュをふたつ以上使うにはどうすればいいでしょうか?
SDKのチュートリアル読んだだけではわかりませんでした
インスタンスを二つ作って、それぞれ描画すればいい。
426 :
デフォルトの名無しさん:2006/09/10(日) 23:22:58
すみません
インスタンスって何ですか?
非常に基本的な用語。
428 :
デフォルトの名無しさん:2006/09/10(日) 23:51:06
具体的にどこのことですか?
自分の無知と無礼は重々承知していますが今は時間が無いんです
どうか教えてください
実体。
要は2個作ってそれぞれで描画しろって話。
同じメッシュを二重に作る必要は実のところ殆ど無いのだが、
その調子だとまずは2つ作るところからはじめた方がいいだろう。
幸運を祈る。
430 :
デフォルトの名無しさん:2006/09/10(日) 23:54:03
高速なエディタ作りたいのですが描画部にはDirectXを使えばよろしいですか?
別に構わないが、必要性はない。
432 :
デフォルトの名無しさん:2006/09/11(月) 00:09:29
>>429 何を2個作るのかがわかりませんorz
あと同じメッシュではないです
違うメッシュです
>>432 大丈夫か・・・?
PGやるまえにもって根本的な部分の勉強した方がいいんじゃ・・・。
モデル2つを読み込んで別々に描画すればいいだけってコトだろ。
434 :
デフォルトの名無しさん:2006/09/11(月) 00:29:15
読み込み方がわかりません
2個目以降はどうすればいいのでしょうか?
>PGやるまえにもって根本的な部分の勉強した方がいいんじゃ・・・。
チュートリアルだとこれが限界です。
お勧めの本とかがあればついでに教えていただけるとありがたいです
Xファイル読み込むチュートリアルを理解したのなら、
それを複数読み込むようにするのは容易いと思うんだが・・・・・
そのレベルからDirectXを習熟するには年単位で時間かかるし、
ゲーム目的なら素直に既存のライブラリに手を出す方がいいよ。
初期化
while(){
画面クリア
座標設定
モデル1描画
画面切り替え
}
後始末
チュートリアルってみたいな流れになってね?
これを↓のような感じに変えてみぃ!
初期化
while(){
画面クリア
座標設定
モデル1描画
座標設定
モデル2描画
画面切り替え
}
後始末
そもそも2つ目のモデルの読み込み方が分からないと推察
438 :
デフォルトの名無しさん:2006/09/11(月) 02:02:38
そうです
その通りです
1つ目を読み込んでいるところをコピペして2回かけばいいじゃない
440 :
デフォルトの名無しさん:2006/09/11(月) 06:25:01
そしたら一つ目が上書きされて消えるんですけど・・・
441 :
デフォルトの名無しさん:2006/09/11(月) 06:39:25
>>438 違う。
モデルの読み込みは1回でいいの。
あくまで描画を2回する必要があるだけ。
そのときに座標を変える必要があるってだけ。
そのための
座標設定
モデル1描画
座標設定 ←これ
モデル2描画
なわけ。
座標設定しないとデフォルトで原点(0,0,0)に描画されちまうからね
それぞれのモデルに異なる座標を設定してやんなよ
モデル一つで一気にマップ表示するより
インスタンスごとに描画した方が早いのだろうか。
ていうか、初心者スレなのにインスタンスは難解な用語だろうYO
でも、インスタンスって何って聞かれてもうまく説明できないな。。。
>>438 CMesh meshes[2];
meshes[0].Loading( "model1.x" );
meshes[1].Loading( "model2.x" );
while(1) {
meshes[0].DrawMesh();
meshes[1].DrawMesh();
}
444 :
デフォルトの名無しさん:2006/09/11(月) 09:10:36
>>441 別々のモデルを読みたいと言ってなかったか?
446 :
デフォルトの名無しさん:2006/09/11(月) 13:46:42
立方体を表示したり、テクスチャをくっつけたりできるレベルから
例えば、3Dアクションゲームの様な仮想空間が作れるまでの
道のりを教えてください。
重要なキーワードとかあると、独学しやすいです。
ひたすら自分で調べて試すの繰り返し。
重要なキーワードというか、鮮明な目標が必要だな。
だらだら何となくでは身に付かない。
どうしても表現したいものに向かって徐々にクリアしていけ。
449 :
デフォルトの名無しさん:2006/09/11(月) 21:36:25
>>446 ゲームなんて体系化されてねぇからそんなのねぇよ。
探すだけ無駄。
みんな自分のやり方が最善だと思ってるし、
衝突したら性質の悪い事この上無しw
XXシェーダってどうやるの?
とかそういうのはあるんだけど、
アクションゲームってどうやって作るの?
なんていうと1000人いたらそれこそ1000とおりみたいな感じ。
>>446 やり方は千差万別だからなんともいえないところだが・・・
ポリゴン描画・コリジョン・サウンド・入力周りが整った3Dライブラリを使うなら早ければ半年くらいで出来るんじゃない?
0からDirectX叩くっていうなら安定したものが出来あがるまでに数年かかりそうだけどw
一人でそんだけできれば、大抵の現場で食いっぱぐれないな。
ライブラリを使うにしても最低限チュートリアルぐらいは終わらせること。
これだけはやっておかないと本当にどうしようもない馬鹿が出来上がる。
453 :
デフォルトの名無しさん:2006/09/13(水) 06:15:19
DirectX7 の日本語ヘルプってどっかにまだ落とせるとこありますか?
ありますよ
うpローダーにありました。
457 :
デフォルトの名無しさん:2006/09/14(木) 21:19:09
ある日突然、「DirectSoundの作成に失敗しました」とでるようになってエロゲーが起動できなくなった・・・・・・orz
directplayのチュートリアルをMFCを作り直すという課題を与えられたのですが。
何をどうすればいいのか全くわかりません。
ヘルプを参照して理解してからMFCを作れば良いと言われたのですが
理解ができません。
何から勉強すればいいのでしょうか?
なぜ捨てられたDirectPlayをしかもMFCなんぞで・・・
MFCならCWinSockとか標準でつかえんかったっけ・・・?
課題として与えられたんだから、しょうがないだろうw
自分の知らないライブラリを使いこなすのもプログラマに必要な能力だしね。
462 :
デフォルトの名無しさん:2006/09/15(金) 07:51:07
基本というかそれ以前の質問をします
シェーダプログラミングをしたいのですが、始め方がわかりません
visual studio.net2003を使ってます
DirectXSDKをダウンロードする
インストールする
シェーダーを使ってるサンプルを見る
おしまい。
すんません、ちょっと質問です。
キーボードの↑を押したら画面の上に移動する3Dのキャラがいるとして
キャラ中心でカメラを回転させた時に常に画面の上に移動するような式が
移動方向=カメラの焦点(キャラの中心)ーカメラの位置
ってのはわかってるんですけど横に移動する場合はどうすればいいんでしょうか?
位置ではなくベクトルで考えろ。
はじめまして。
C++でCUIのプログラムを結構作ってて
そろそろグラフィカルになろうかなと思ってます。
とりあえず、やってみたいのですが、
MSDN以外に解説サイトなどありませんか?
というか、DirectXの知識が全くないので、
そういうのに詳しいサイトあったら
教えてください。
その質問をする前にチュートリアルはどこまでやった?
すこーしww
出直してきます。お手数かけました。
469 :
デフォルトの名無しさん:2006/09/15(金) 16:50:41
>>463 そういうことでなくて・・・
なんと言えばいいのか・・・VSでどういう操作をすればHLSLプログラミングの画面にいけるのですか?
・・・なんか言ってること変ですが何とか汲み取ってもらえるとありがたいです
>>469 いろいろな意味を込めて、サンプルを見たほうがいいってアドバイスじゃないか?
激しく勘違いしてるんだがHLSLのプログラミング画面なんかないぞ。
あれは単なるテキストファイルだ。それをプログラム中にロードしてコンパイル
して使ってるだけなんだよ。
472 :
デフォルトの名無しさん:2006/09/15(金) 20:39:37
>>471 そのテキストファイルはメモ帳で作ったものでもいいのでしょうか?
解説書では拡張子が.fxとなっているファイルを使っていたのですが・・・
テキストファイルだかrら、テキストエディタでつ(ry
メモ帳でいいやん
>>472 メモ帳だと問題があるので秀丸つかった方が良い。
ナンテナ。何でも人に聞くのは止めろよ。
ってか、「ファイル」ってもんを知らないんだろう。
拡張子ってのは別になんでも付けることができる。
ただ、わかりやすいように付けてるだけだ。
ファイルの中身はまた別の話。
例えば、.bmpとついているからといって必ずビットマップの構造でなくてもいい。
名前の変更でテキストファイルの拡張子を.bmpとつけられる。
ただ、中身はただのテキストファイルだから当然ペイントで開くことはできない。
じゃあ拡張子ってなんなのよ?
って言われれば
ダブルクリックしたときに拡張子と結び付けられたアプリが勝手に起動する。
拡張子がちゃんとついてるとユーザがそのファイルの種別がわかりやすい。
場合によっては拡張子=ファイル種別と判断するアプリも「稀に」ある。
ってところだろう。
別に変更したからといってファイルの構造まで変えてしまうような働きは拡張子には無い。
スマンここ超初心者用スレだった。
.fxってファイルの編集はメモ帳でもVSでも何でもいい。
プログラムでそのファイルをロードするので、
実行するまではHLSLの記述が正しいかは分からない。
HLSLの記述に不安がある場合は、コマンドプロンプトでコンパイルしてみて
エラー等を確認できる。(例:fxc /T fx_2_0 /Fo hlsl.bin hlsl.fx)
コマンドプロンプトってのが分からなかったら、この方法は忘れてよし。
.fxファイルのロード&コンパイル時にエラー情報が帰ってくるので
それをMessageBoxとかで出力すれば、エラーの内容を確認できる。
478 :
デフォルトの名無しさん:2006/09/16(土) 11:53:11
DXライブラリで画像をバックスクリーンに描画する(SetDrawScreen(DX_SCREEN_BACK);)と
動作がおかしくなるんだけどどうすればいい?
具体的には、ウィンドウ自体は画面中央付近にあるのに表示する画像が
ウィンドウの外側に描画されてしまう(『バックスクリーンだけ』がデスクトップの左上の角にあるような感じ)
DirectX診断ツールではファイルもDirectDrawも以上なし
DXライブラリ作ってる人のサイトに行って聞けよ。
サクーシャめっちゃ親切だよなあそこ
暇なんじゃない?
プロのPGなんでないの?
483 :
デフォルトの名無しさん:2006/09/16(土) 16:27:26
プロのPGが暇だったらいけませんか
そうですか
プロやってるけど普段は暇。
たまーに忙しくなる。
暇なときないと、いろいろできないし。
VBScript や JScript 等、WSH から DirectX の API を直接呼ぶことは可能ですか?
<根拠になっている勘違いしているかも知れない内容>
・DirectX は COM に基づいているらしい
・VBScript や JScript 等は COM オブジェクトを使ってプログラミングできる
・じゃあ、もしかして VBScrip や JScript から DirectX を使える?
</根拠になっている勘違いしているかも知れない内容>
COMを使う前にAPIからインタフェイスを取得する必用があるので、
COMを利用しているが完全なCOMではない。
487 :
485:2006/09/17(日) 18:50:04
>486
そうですか、完全ではないというのが
DirectX側の事かWSH側の事か判りませんが
とりあえず直接は無理そうですね
レス感謝です
DirectX プログラミングだけをするなら
・VCExpress2005
・VCToolkit2003
はどちらが良いでしょうか?
どっちでも問題ない。
490 :
488:2006/09/18(月) 18:44:16
>489
では、今使ってるPCが割と貧弱なので
何となく軽そうなVCToolkit2003選んでおきます。
ありがとうございました。
…と思ったら2003配布してないですね。
大人しく2005Express使います
MFCに用が無いならEEでもいいけど、もう少しお金出してStandard買った方がいいぞ。
苦労の手間で釣りが来る。
リソース使えねぇよワロスw
リソース使えないがいやで2005ProのMSDNサブスクリプション買った
そりゃまた剛毅だなw
DirectXスレでリソースエディタが無いと騒ぐのもなんだな
つか一人でやるなら、コモンコントロールはCreateWindowで作った方がやりやすいぞ
>>492 DirectX で MFC って使いますか?
>>497 各種コントロール類の出番は少ない(つーかまずない)かもしれないが、
コレクションクラス類の利用価値は低くない。
STL使えば大半お払い箱だが。
わかり辛いことこの上ないWin32APIをラップしてくれてるので、
基礎知識のある人にしてみれば、それなりに使いでもある。
まあ、普通に全画面系のシンプルな構造のアプリを作る分には
まったく出番は無いかもだけれど。
>>498 自分は普段Delphiや各種スクリプト言語を使ってるので
VCで扱うのはDirectXに特化するつもりです。
GUIは今のところDelphiで事足りてますし。
あの会社には不安を覚えますけどねw
Delphiが悪いというつもりは毛頭ないんだが、
それこそ
>あの会社には不安を覚えますけどねw
これ、十分切る材料にならないか?
いや、好き好きだからいいんだけどね。
> あの会社には不安を覚えますけどねw
みんなそう思ってるからw
すみません、質問させていただきます。
DirectXの勉強をしようと思い、DX9.0cSDKをインストールしたのですが
VisualStudioのプロジェクト新規作成で「DirectXアプリケーション」が表示されません。
VC++からJ#、その他まで全て確認しましたが表示されていないようです。
使用しているVisualStudioは2003.NetSP1(theSpoke)と2005(Pro)です。
2003のほうでは起動画面でDirectXのロゴが表示されているのですが…
DX9.0cSDK以外にはPlatformSDK、.NetSDKの1.1と2.0が入っています。
OSはWindowsProfessionalSP2です。
他に不足している情報があれば指摘して頂ければ、可能な限り提供します。
DirectXプログラミング始める前の超初心者質問ですが、どうかお願いします。
普通にWindowsアプリを選んで、そこから呼び出せばいい。
>>502 SampleBrowser を起動してベースにしたいサンプルのプロジェクトをコピー。
Direct8使用してます。
GetDevice()->SetTexture(0, pTexture);
GetDevice()->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
GetDevice()->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
GetDevice()->SetTexture(1, pToonTexture);
GetDevice()->SetTextureStageState(1,D3DTSS_COLOROP, D3DTOP_MODULATE);
GetDevice()->SetTextureStageState(1,D3DTSS_COLORARG1, D3DTA_TEXTURE);
GetDevice()->SetTextureStageState(1,D3DTSS_COLORARG2, D3DTA_CURRENT);
これで動かしているのですが、ステージ0と1の合成が行われずにステージ0だけしか表示されません。
色々試してみるとSetTextureStageStateに何を設定しても無視されてしまうんですが何が原因なんでしょう?
テクスチャを入れ替えてもステージ0に設定されたテクスチャは期待通りに貼れてます。
そもそもサポートしてるステージが1つしかない
過去の遺物みたいなビデオカード使ってる可能性は?
ちゃんとCAPS調べた?
ついでにそれだと頂点カラー反映されないけどいいのん?
>>506 8まで使える事は確認しました。
カラーは反映されなくても良いです。
FVFでもテクスチャ2つ使う設定してる?
UV2種類用意してる?
509 :
505:2006/09/27(水) 13:11:35
すみません自己解決しました
ピクセルシェイダーに問題があったようで、ピクセルシェイダー切ると正常に動きました。
つーかピクセルシェーダーつかってるなら
SetTextureStageState()
関係は全部意味がないと思うんだがw
黙って見守るのが漢の中の漢
513 :
デフォルトの名無しさん:2006/10/03(火) 15:18:34
プログラムの話ではありませんが、
市販の3DゲームのポリゴンデータはXファイルみたいなもので管理されているのでしょうか?
そりゃ、なんらかのデータ形式は使ってるだろ。
独自の3DファイルからDrawPrimitiveで一枚一枚描いているでしょうね。
初めてモデリングするんだけど
3Dでマップをモデリングする時、例えば街を作るとして、
@家や道路なんか全部を一つとしてモデリングする。
A各パーツごと(家、道路を分けて)モデリングしてプログラム側で構成する。
どっちが良いのか教えてくんろ
壊れたり無くなったりするのでないなら、@のデータを細分化して
オクトツリーで描画からコリジョンまでやるのもアリだろう。
パーツでファイル作っておいて、配置用のファイル読んで描画。
そこらのゲームみれば1なのは一目瞭然だけど
みんな良くないと思ってやってるのかね…
2は
・使いまわしは結局モロバレになる
・モデリングツール以外にレベルエディタ等の支援が必要な場合多し
・ある程度写実的な表現に移ると、そもそも使いまわせるモデルなんてほとんどない
で、デザイナ的には大して嬉しくなかったりもするしな。
複数オブジェで構成されるコリジョンメッシュの解決も面倒っちゃ面倒だし。
カリングがちゃんとしてて、消費リソースが飲める量に収まるなら、きょうびは1でいいんでね。
FF12は使いまわしモロバレなのを割り切って後者でやってたね
メモリ少ないからそうするしかなかったんだろうな
DirectXSDKの最新版ってメッシュビューワーは入っていないのでしょうか…
いないのです。
街ではなくフライトシミュレータの様な膨大な地形の場合はどうなってるんだろう。
>>525 要するに、実現したいものに最適な方法でやるってことだよ。
528 :
デフォルトの名無しさん:2006/10/08(日) 00:53:48
SDKをインストールするときに選択できるDirectX Redistributable Filesって
いったい何なのでしょうか?
そのまんまだろ。
再配布可能ファイル
自分のアプリばらまく時に入れといて構わないもの。
つーかマジまんまだぞ。
>>529 >>530 開発には無関係で、配布するときに同梱するためのものなのですね
安心して勉強できます。ありがとうございました
質問です。XP、2005、9.0c です。
Direct3D を用いて、ビデオメモリの容量を取得するにはどうすればいいのでしょう?
DirectDraw のときは、DDCAPS の dwVidMemTotal、dwVidMemFree を調べればOKでしたが、
Direct3D でこれ相当の値が見つからなくて困っています。
リファレンスに普通に書いてあるだろ・・・。
せめてリファレンスくらいは読んでこいと。
IDirect3DDevice9::GetAvailableTextureMem メソッド
使用可能なテクスチャ メモリの量の推定値を返します。
534 :
532:2006/10/15(日) 19:25:14
テクスチャメモリ=ビデオメモリ(?)という考えがなかったので、スルーしていました。
ありがとうございます。
んなわけない。
初心者スレがマヌアル嫁ばかりになったから、このスレが出来たんだけどな
使い方ならともかく有無を聞くのもなんだと思うが
538 :
532:2006/10/15(日) 23:51:10
あれ・・・
ビデオメモリの容量を正確に取得することはできず、
できるだけ正確な値を取得する方法が、GetAvailableTextureMem
って認識は間違いなのでしょうか。
また、ビデオメモリの最大容量を知りたい場合、
Direct3D のデバイス作成直後に GetAvailableTextureMem を使おうと思ったのですが、
他のアプリケーションがビデオメモリを使用していた場合、どうするのでしょうか。
DirectDraw で実際に行っていたことなので、ハードウェア的に無理だということはないと思うのですが・・・。
>>538 > ビデオメモリの容量を正確に取得することはできず、
>>533 にもちゃんと「推定値」って書いてあるよね?
> 他のアプリケーションがビデオメモリを使用していた場合、どうするのでしょうか。
試してみたら良くね?
っつーか、今時ビデオメモリの容量とか気にするのも問題ない?
最近はメインメモリにもテクスチャ置けるんだけど、それも加算して良い?
それとも純粋にVRAMだけ欲しいの?
ビデオメモリを潤沢に使ってよいとは言わないけど、おそらくテクスチャを
ロードした時に使うメモリ量とか、自動的に作られるZバッファの量とかが
計算できないだろうから、ビデオメモリの残量とか気にしても意味ないと思うんだが。
Vistaでは、VRAMにもシステムメモリからのスワップがあるらしいが、
そもそももう物理的な量を気にする時代じゃないのかも。
デバッグ段階で、VRAM の消費量を見ておきたかったのです。
アプリケーションの必須スペックを計るのにも必要ですし、バグ発見にも助かるからです。
読み込み方法などにもよりますが、例えばテクスチャを大量に作成した場合、
VRAM にのらなくなったあたりで、がくんとフレームレートが下がりました。
おそらく、毎フレーム、メインメモリとのスワップが発生するためと思われますが、
そーいうのを発見するためにも、表示する価値はかなり大きいと思ってます。
>>541 それこそ純粋にビデオカードにつんであるVRAMだけでは語れないよ。
DYNAMICフラグを指定して作成したものはAGPメモリに展開されるんだし。
VRAMに乗らなくなった時点で動作しないっていうならまだしも、
メインメモリからの転送に処理を食われるようになるだけなら、
おおよその値だけ算出して、それを推奨環境って事にして落ち着けるくらいかと。
541が言ってることは変じゃないけどな。
ただ、俺は別のアプリケーションでチェックしてる。
ウィンドウモードでないと確認できないけどね。
まーでも、動作環境に、VRAM何M必要、ってかかなくちゃいけないもんな。
なんとかして調べたいのはわかる。
VRAMの容量はあてにならんだろ。
ドライバが勝手にロード・アンロードしてるんだから、
リソース容量=VRAM使用容量にならんし。
俺は動作環境のときに気にするのはシェーダーのバージョンくらいだな。
547 :
デフォルトの名無しさん:2006/10/21(土) 20:53:33
ピクセルを格納した配列からイメージを生成して、
textureにしたい のですが どうすればよいでしょうか?
普通に空のテクスチャ作って、普通にロックして、普通に書き込むよろし
作成したテクスチャのフォーマットに合わせて変換しつつ転送。
550 :
547:2006/10/22(日) 02:53:14
>>548,549
回答どうもです
具体例や方法等、参考になるサイトはないでしょうか?
ura2ch ura2ch
>>547 CreateTextureでテクスチャ作ってみて。
>>549 自前のイメージをテクスチャにするのに、変換する必要あるか?
普通イメージに合ったフォーマットのテクスチャ作るだろw
>>553 必ずしも希望のフォーマットが使えるとは限らない。
まぁ、いまどきそんなビデオカードないがw
> 必ずしも希望のフォーマットが使えるとは限らない。
自前のイメージなんだから、普通に考えたらそっちを合わせるだろ?
わざわざ転送時に変換してステップ増やすなんてどうかしてるよ。
普通はメジャーなフォーマット用に一通り変換ルーチンを用意しておくもの。
ARGB8888が使えないカードはまずないんだし、
そこだけサポートしてればあとはどうにでもなりそうな。
>>556 全然普通じゃないよ。
あんたラッパーライブラリとか作ってない?w
フォーマット変換くらい俺も一通り用意してあるよ。
入力はA8R8G8B8だけだが。
>>559 必要ならば変換も厭わないけど、どっちにしろ変換向き逆じゃね?
入力形式任意で出力ABGR32 なら分かるんだが。
>>555 >自前のイメージなんだから、普通に考えたらそっちを合わせるだろ?
これと
>>559 >入力はA8R8G8B8だけだが。
これが繋がるのだと思われ
>>561 入力がA8R8G8B8限定なら変換する意味がないって話になるんだが。
563 :
デフォルトの名無しさん:2006/10/25(水) 19:30:35
d3dx9_30.libのライセンスについてお聞きしたいのですが、なんかredist以下
のフォルダも配布しなくちゃいけないって書いてあるっぽいんですけど、
ベクターとかで落としたゲームってそんなの同梱してないですよね。
みなさんどうしてます?
1) 使用者にMS公式ページから DirectX をアップデートさせる
2) Redistable runtime を同封する
Redistable runtimeって
>>525が言ってたやつですか?
3) October 2004まで戻る
> ベクターとかで落としたゲームってそんなの同梱してないですよね。
していないのは、プレイヤー環境にすでにランタイムがインストールされていると仮定しているから
>>566 Win2k の Oct2004 縛りは 開発環境の都合だけ?
ランタイムならそれ以降でも大丈夫なような気がするけど…
# でも Oct2004 で止めている弱きな奴
基本的にコア部分は変更されていないから
たんいD3DXの都合だけ。
頂点シェーダーでインデックス付き頂点ブレンディングを行う場合
定数レジスタ96個を全部使用したとしても30個程度のインデックスしか使用できないのでしょうか?
>>570 96ってことは1.1使うの?
2.0以降なら定数レジスタは最低256あるけど。
>>571 訳ありでDirectX 8.0を使用してます
20〜60程のボーンを使用したいのですが・・
>>572 DX8.1でボーン使うならシェーダーをあきらめろ。
ソフトウェアスキニングやるか、対応してるなら固定機能でやるかのどっちか。
VS1.1でスキニングやる場合は、行列パレットはほとんど無理だね。
素直にソフトウェアで実装した方がいい。
ソフトウェア・・というのは頂点ブレンディングを自力で一つ一つ計算して頂点バッファを使用せずに・・と言う事でしょうか?
速度的にはどうなんでしょう?
一応試してみます。
ディスプレイ S3 Graphics ProSavageDDRg
ドライバ s3gnb.dll
ディスプレイ ドライバがサポートしていないため、
ハードウェア アクセラレータを使った Direct3D 9+ は利用できません。
ハードウェアの製造元から新しいドライバを入手できるかもしれません。
と出るんですが新しくドライバをDLすれば利用出来るようになるんですか??
それとも何か購入しないと無理なんでしょか。
超初心者ですいません。
> 訳ありでDirectX 8.0を使用してます
> 20〜60程のボーンを使用したいのですが・・
メチャクチャ環境と合ってないことをしようとしてるんだな・・
DirectX8が動かせないならボーン減らせばいいのに。
> ソフトウェア・・というのは頂点ブレンディングを自力で一つ一つ計算して頂点バッファを使用せずに・・と言う事でしょうか?
> 速度的にはどうなんでしょう?
シェーダがない時代は皆ソフトでやってた訳だから
全然遅いってことはないと思うけど、DirectX8縛りが低スペックPCも対象に
してのことだったら、低スペックPCでは厳しいのかもね。
60ものボーンがあるアニメ再生はね。(多すぎ。何かの研究?)
やってから聞け。
そしてザ・スレ違い。
シェーダがあってもクロスシムやIKの関係でソフトウェアで
スキニング処理してるソフトの方が多いんじゃないかな?
クロスシムはともかく、IKとスキニングは分離できる気がするが。
まあ、頂点処理は無理にGPUにやらせなくてもCPUでやっちまった方が
楽だったり速かったりするのは往々にしてある罠。
583 :
576:2006/11/02(木) 03:36:36
できましたーーーーーーー嬉しいです。
ありがとうございました!
さすがに今のハードでスキニングがGPUのが遅いってこたーねぇだろぉ
ボーンが多すぎる場合はモデルの分割とボーンの複製を行うって手もあるみたい。
ConvertToIndexedBlendedMeshなんかは勝手にやってくれる。
具体的なアルゴリズムは知らんけど。
>>584 今のハードと普及ハードは違うのことよ…
普及ハードというとGeForce2MXぐらいのレベルと考えればいいのか
4MXくらいでね?
もまえらもちつけ。
すくなくともボーン使うようなゲームをPCでやる奴らを前提にしたら
最低でもGeForce5800くらいは使ってるよ。
GeForce6600程度でも今6000円くらいで買えるんだし。
エロゲしかやらない奴らをターゲットにしてるなら別だけど・・・。
そんな低スペック層相手にスキニング使うようなゲーム作るとも思えん。
>>589 作るんだよ。
作るんだってばよ。
おまいは世のカジュアルゲーム事情をもっと知るべきだ。
ノートPCでも楽勝で動くがアバターは3Dなんてゲームも結構あるんだよ。
てかげふぉの2とか4なんてそもそもVS2.0積んでないんだから、
結局CPUスキニングしかないじゃないか。
最近は、カジュアルでも普通に3Dが多いよな
Flashの方が圧倒的におおいけど・・・
593 :
デフォルトの名無しさん:2006/11/05(日) 16:30:36
あの・・・ 本当に初心者なのですが、もう1台の古いパソコンに98SEを
インストールして富士通からドライバを入手したのですが、DIRECTX6を
インストールしてくださいと言われたのですが、まだネットに接続できてなくて
どうしたら、もう1台のパソコンにDIRECTX6をインストールさせられますか?
DirectX6のランタイムを焼いたCD-Rを使えば解決。
595 :
デフォルトの名無しさん:2006/11/05(日) 16:45:34
すいません。DirectX6のランタイムは、どこから入手できますか?
本当に初心者ですみません。よろしくです。
Microsoftに決まってる。
動いてるほうのPCでダウンして焼けばいいだろ。
ちなみにランタイム的にはDx9いれても問題はないぞ。
あと初心者ですみません、は意味不明。
初心者だから調べて分かるようなことでも調べなくても仕方ないよね?
みたいな態度をする奴が悪いだけの事。
597 :
デフォルトの名無しさん:2006/11/05(日) 17:13:27
正規の製品じゃないのでダウンロード出来なかったんですが、他で入手できないのでしょうか?
色々と調べてるのですが、解らなくて。
…帰れ。
色々と調べてるのです=何も調べていない
これ基本ね。
> 正規の製品じゃないのでダウンロード出来なかったんですが、他で入手できないのでしょうか?
氏ね
601 :
デフォルトの名無しさん:2006/11/05(日) 18:02:07
何だか、不機嫌にさせてしまったようで、申し訳ありませんでした。
自分で解決します。
> 正規の製品じゃないのでダウンロード出来なかったんですが
これはつまり、「私は違法コピー品を正々堂々つかってるんですよ、ハハハ」
と言ってるんだぜ?
違法公言キター
まあ、最初は誰でもアキバで見つけたmaya,xsi,max,photoshopの入った
ゴールドディスクを手にして喜ぶもんさw
ゴキブリ追加か
yahooで「以上、のような商品ですので御理解いただける方・・・」とかもうあまりみなくなったけどね。
この手の初心者に多いのは、友人から貰ったとかじゃない?
いるねー。
ネットゲー・エロゲー配ることを生きがいにしてる奴。
常時winny起動しっぱなしで絶えずなにかを流さなければ気がすまないっぽい奴。
もう、病気としか思えない。
なんでそんなことするの?って聞いても趣味だとかそんな言葉しか返ってこなかったな。
もうそこに意味はないんだと思う。
Direct3D.Deviceの初期化中に
「System.IO.FileNotException: 指定されたモジュールが見つかりません。(HRESULTからの例外: 0x8007007E)」
のエラーが出たのですがどうすれば不足ファイルを用意できますか?
DirectX9.0cのSDKは入れているのですが、不足ファイルは壊れているのでしょうか?
そもそも何のファイルがないのかわからぬ
最近本当にダウソに過剰反応する香具師が増えたよな。
スレ違いだから叩かれてるってのもあるのかも知れんが、
俺は
>>597だけを見てOSが割れ物だとは断定できないと思うんだが。
DirectX6は古すぎて公式からはDLできないって解釈もできないか?
実際Direct6でぐぐってみた結果↓に行くと404だし。
www.microsoft.com/msdownload/directx/dxf/enduser6.0/dx6dosv.asp
ちなみに俺は
>>190と同じ問題にぶつかって"d3d10.dll"でぐぐって
ここしかヒットしなかったのでここにたどり着いただけなんだが
それに対するまともな答えが
>>224なのだとしたら
本当に終わってるとしか思えんな、DirectXつーかM$っつーかその信者も。
613 :
610:2006/11/07(火) 19:15:18
HELP ME!回答プリーズ!!
>>612 新しいランタイム入れれば大丈夫だって書いてあるレスのあとに
正規の製品じゃないのでダウンロード出来ない発言に対してその解釈?
優しいね。
ところで
>>224の何が終わっているの?
Direct3D10の実行にはVista CTPが必要だとはドキュメントにも書いてあるけど。
>>613 情報少ねェって……。
とりあえずインストールしているDirectX SDKのバージョンと
プロジェクトが参照しているアセンブリのバージョンを明記。
Managed DirectXのスレで聞いた方が良いかもね。
>>612 犯罪者を叩くのは当たり前だろ。
氏ね、ボケ。
OSが割れてようがKTHなら余裕でDirectX落とせますが何か?
自宅で落とせないならネカフェにでも行って落とせばいいだけですが何か?
そしてまさかWGAみたいなスパイウェア仕込むのは犯罪じゃないとでも?
つーかDirectXに関係ない著ゴロのプロパガンダしてる時点で
完全にスレ違い板違いなんですがその点について自覚・反省はありますか?
空気嫁。
言い方は悪いが本人が悪いといってるわけではない、
感じからして、違法品と知らずに使ってるみたいだから警告をしているだけ。
プロパガンダもなにも違法なものは違法。
少なくとも既に質問に対しての明確な回答は出てるだろ。
ウィンドウモードなら、GDI経由でキャプチャできるかと。
Frapsは落としてないから詳しくは知らないが、DirectXをフックしてるか
ドライバレベルで介入しているんじゃないかね。
っていうか、Frapsと同じことしたいなら、それを使えばいいじゃない。
>>620 レスありがとうございます。
CG作成系のソフトを作っててその中の機能として組み込みたいんですよ。
それ用のAPIとかあればなあと思ったんですが・・
なんだ、自分のソフトに組み込む話だったのか。
それなら、普通にAVI出力するだけじゃん。
Video for Windowsあたりを使えば簡単。
623 :
610:2006/11/08(水) 15:09:53
アプリケーション構成ファイルの<bindingRedirect>をコメントにすれば問題なかったです
624 :
570:2006/11/08(水) 20:31:03
なんとか上手く行きそうです。
遅くなりましたが皆様ありがとうございます。
正規の製品じゃないって発言だけであれだけこっ酷く叩いた上に
関係ない話題まで出してグチグチ延々叩き繰り返してるわけだからねぇ
そりゃその空気破ってやろうって勢力も出てくる罠
しかし
>>618俺もフォルダ法やらDLL法やら解説してやれとまで
言う気はないが「質問に対しての明確な回答」って何よ?ネカフェ池か?
そもそも回答が出てることとスレ違いに何の関係があると?
違法も何もスレ違いなものはスレ違い。
>>622 変な例を挙げて混乱を招いてしまった用で申し訳ありません。
DirectShowにも似たような機能があるようで
Videos for Windowsあたりの「あたり」の部分に含まれていると推察したのですが
あってますでしょうか?
その場合Videos for Windowsの方が良い理由もしくは逆があれば
解説いただけるとありがたいです。
>>627 Video for Windowsの方がDirectShowよりも
シンプルで扱うのが簡単。それだけ。
>>628 確かにDirectShowはちょっとややこしそうな印象でしたね。
それではどうもありがとうございました。
朝起きたら業者が俺の家の下からジィーっと見てて
母親が台所で血だらけでたおれていたから「今日、弁当いらない」って言って
学校行ったら先生刺されてて友達とかみんな大爆笑してるから俺もみんなに合わせて適当に笑って
昼に早退したら胎児とかいっぱい落ちてて踏んじゃって靴がすげー汚れた
家についたら母親がスゲー冷たくなってるから暖房つけてやって
冷凍のピザ食べようと思ったら父親が冷凍庫に入ってて、たまらずに笑った。友達にメールで教えたら凄いうけた
隣の家に忍び込んでやっと歩けるようになったくらいのガキ盗んできてマンションの屋上から落として何秒で落ちるか計って理科の宿題終わり
そろそろ寝ようとおもったらガキの家族が騒いでるからガキの死体放り込んで大爆笑
眠れないから妹でカツラとか骨で武器とか作って遊んでた、そしたら朝になって
ちょっと臭い母親に「弁当いらない」って言ってから学校に行った
業者はその日死んだマンションの住人を精肉所へ運んで行った
ワッフルワッフル
全文読んだのかw
WindowsXP、Visual studio 2005、DirectX 9.0c
C、C++は1年半前から始めた初心者です。
教本買って最近DirectXを使い始め、スプライトとかポリゴンの表示とかまでは出来たのですが、
Releaseにするとコンパイルでerror LNK2028 とかのエラー出まくりで詰まりました・・・
仕方なくDebugでexeファイル作るんですが、このPCでは起動するのに
他のPC(WindowsXP、DirectX 9.0c(VS 2005は入っていない))で起動すると、
「このアプリケーションの構成が正しくないため、アプリケーションを開始できませんでした。
アプリケーションを再度インストールする事により問題が解決する場合があります。」
と怒られて起動出来ませんorz...
d3d9.dll、d3dx9.dll、d3d9.h、d3dx9.h ... みたいな関係ありそうなファイルを
同じフォルダに入れても起動しませんでした。
リンク、dllとかいうその辺の事がどうなっとるか分かりません。
その辺を解説されているHPや教本を知っていたら教えてもらえませんか?
あと、上記のエラーの対処法分かる方いたら教えて下さい_| ̄|○|||
DLLへの依存性はDependencyWalkerで確認しる。
多分、Debug版ランタイムDLLが見つからなくてエラーが出たと見た。
とりあえずスタティックリンクしてお茶を濁せ。
D3DXのDLLにも注意。
同じDX9.0でも随時新しいのが提供されるので、
リンク時に参照していたのと同じものが必要。
LNK2028は判らん。
エラーメッセージ全体を書かないと何ともいえない。
636 :
デフォルトの名無しさん:2006/11/16(木) 13:36:44
>>634 >「このアプリケーションの構成が正しくないため、アプリケーションを開始できませんでした。
>アプリケーションを再度インストールする事により問題が解決する場合があります。」
>と怒られて起動出来ませんorz...
例えば、samというプロジェクトだったら、
Alt+F7 -> 構成プロパティ -> C/C++ -> コード生成 ->ランタイムライブラリをマルチスレッド(/MT)
にする。
これで、他のパソコンでも動く。
Link2028はエラー書かないとわからんけど、エスパーするとSTLつかってる?
使ってるなら、上記設定をデバッグビルドなら/MTdに、リリースビルドなら/MTにする。
まあ、わからんけど。
637 :
634:2006/11/17(金) 03:07:23
>>635 >>636 ありがとうございます。解決しましたヽ(´ー`)ノ
STLは使ってませんが、
Alt+F7 -> 構成プロパティ -> C/C++ -> コード生成 ->ランタイムライブラリをマルチスレッド(/MT)
にしてからDebugビルドで、exeと同じフォルダにd3dx9_30.dllを入れたら他のPCでも起動しました。
d3dx9_30.dllが入っていないと起動しなかったです。
あとReleaseビルドの方もできるようになりました。
1>Scene.obj : error LNK2028: 未解決のトークン (0A00005D) "extern "C" struct D3DXMATRIX * __stdcall D3DXMatrixPerspectiveFovLH(struct D3DXMATRIX *,float,float,float,float)"
(?D3DXMatrixPerspectiveFovLH@@$$J220YGPAUD3DXMATRIX@@PAU1@MMMM@Z) が関数 "public: void __thiscall Scene::Transform(struct IDirect3DDevice9 *)"
(?Transform@Scene@@$$FQAEXPAUIDirect3DDevice9@@@Z) で参照されました。
コンパイルで出たエラーはこんなのです。似たようなエラーで LNK2019、LNK2001ってのも出てましたが、ソースに
#pragma comment( lib, "d3d9.lib" )
#pragma comment( lib, "d3dx9.lib" )
を書いたら全部通りました。
>>637 >exeと同じフォルダにd3dx9_30.dllを入れたら
それはライセンス違反。
何故か小さい頃、サッカーボールはパンダの卵だと本気で思っていた。
だから3歳の誕生日に無理を言って買ってもらった。
卵はあたためれば赤ちゃんが生まれる、という中途半端に正解な知識をもっていたため、買ってきたサッカーボールをストーブの上にのせた。
爆発した。
>>637 古い SDK入れるといい
というか、
>>5とか見とけ
まだライセンス云々ウダウダ言ってやがる。
しかも今度はDLLたった一つで。失笑物もいいところ。
M$信者ってホント脳の隅々まで侵されきってるんだね。
641 :
デフォルトの名無しさん:2006/11/17(金) 17:33:48
redist.exeの保存先はどこにすればいいんでしょうか
>>640 こういうやつはBSDライセンスすら守ることが出来なさそうだ
Linuxにエロゲーインストールして喜んでいるやつがいるけど、そういうやつは
エロゲーも割れ物なんだろうな。
信者の痛さここに際まれり!!
M$の悪徳ライセンスだからこそ無視するんだよ
なんで良心的なBSDライセンスまで守らないとか
Linux使いはゲームが割れ物だとか
言う話に飛躍するんだよ
いいから信者は黙って黙々DirectXの布教に勤しんでろ。
悪徳らいせんすwとやらがどんなもんかしらんが、
個人的にはGPLが一番嫌い。
>>644 こんなとこに居ないでGLのスレいけよ。
際まれり?で、感感俺俺かよ。
648 :
田中 正造:2006/11/18(土) 15:07:26
このまえナイトオンラインというオンラインゲームを起動したら、
check DirectXとなりました。そして、ヘルプをつかってDirectX診断ツール
を開きました、するとDirect3Dが動作していないようでした。
そして、「ドライバが正造元によって提供されている最新のものであること
を確認してください」ってでたんですけど
どうすればいいんですか?
ドライバが正造元によって提供されている最新のものであることを確認すればいいよ
650 :
田中 正造:2006/11/18(土) 15:45:52
そのやり方が分からないんです;;
ドライバの製造元に聞けばいいと思うよ。
652 :
田中 正造:2006/11/18(土) 15:57:06
ドライバってなんですか?
何でこの板にいるの?
654 :
田中 正造:2006/11/18(土) 16:13:05
DirectX(超初心者用)ってかいてあったからです。
それはもはやドライバの問題であって、DirectXの問題ではないのでお引取りください。
ついでにプログラムとも関係ないな。スレの前に板違い。
658 :
デフォルトの名無しさん:2006/11/19(日) 20:50:09
質問です。
dxdiag診断ツールにDirect3Dアクセラレータが利用出来ないって書いてあるんですけど、
どうすればD3D使えるようになりますか?D3Dのテストさえさせてくれません。
>>658 ノートPCじゃね?
デスクトップPCを買わなかった時点でシボンヌw
グラボを買う必要があるんだけどな・・・
ハイ、ノートPCです!ってダメなんですねorz
お手数おかけしました。。。
...それはネタですか?ま、ここで質問しても答えは出てこない希ガス
ノートでもものによりだろ。
オレの使ってるノートはRadeon9700のと、X1400のヤツだが
どっちもVertex/PixelShader2.0は使えるし。
>>662 vistaが発売されたらゴミになるってわかってて人柱になるんだから
おじさんまいっちゃうよwホントw
PS2.0がうごけば、Aeroは動くんじゃないか?
>>664 お前何回騙されるのかと?
普通に頭悪いだろ?
>>664 いや普通にAero切ればいいだけだがw
RC1で動作確認済み。
>>665 VistaならGeForce6600でも十分動くぞ。
Vistaに標準搭載のDirectX10がGeForce8800でしかフルに動かないだけであって、
Aero自体はそれほど高度なことしてないよ。
MSDNにRC2も公開されてるんだからちょいとダウンしてインスコしてみればいーじゃない。
そもそもSM4.0でしか動かないOSなんて誰も買わないだろ・・・。
Visataが発売されたらXPが動かなくなるわけじゃないから
ゴミにはならないだろう。
いまだにWindows98使ってるような人もいるし。
669 :
デフォルトの名無しさん:2006/11/20(月) 07:02:55
98SE使ってる俺はセフセフ
98の初期型でもDx9.0cって動くから何気にスゴイ
スプライトの中心に2D絵を描画したいのですが
ID3DXSprite::Drawメソッドの第二引数に設定するテクスチャ(サイズが動的)のサイズの半分を得る方法がわかりません
どうすればよいでしょうか?
よろしくお願いします。
672 :
デフォルトの名無しさん:2006/11/27(月) 01:51:14
FVFのディフューズとスペキュラの色成分は0〜255の値で設定するのに
D3DMATERIAL9の色成分は0〜1の値で設定しなければならないよね
なんで別々になってるんだろう
両者の間で値のやり取りをする場合は255倍したり255で割ったりしてるんだけど
これでいいのか不安です。何か根本的に勘違いしてたりするんでしょうか?
メモリデバイスコンテキストに結びつけたビットマップをテクスチャとして読み込むことはできる?
例えばデスクトップのスクリーンショットをポリゴンに貼り付ける、みたいな
ごめん
くだらんことを聞いた
675 :
デフォルトの名無しさん:2006/12/02(土) 13:47:48
VisualC++ 2005 Express Edition で
libのリンク設定てどこでやるんでしたっけ?
一年放って置いたら忘れてしまいまして…。
>>675 2005 ライブラリの追加 とか組み合わせて検索すれば上手くいくんじゃない?
677 :
675:2006/12/02(土) 14:03:27
>>676 ありがとうございます。
自己解決しました。
昔のプロジェクトをコピーしてそのまま使おうとしたらエラーで。
ライブラリのリンクが原因かと思っていたのですが、
DirectXが使えない状態になっていただけでした…。
どのスレで質問すればいいのか分からないですが、DirectX使っているのでこのスレで質問させてください。
本当にくだらない質問だと思うのですが、
timeGetTimeを用いた正しいFPS処理を教えて頂けないでしょうか?
よろしく御願いします。
>>678 そりゃ、どこにでもあるから検索かけるか、DirectXのサンプルみてくんねー?
そりゃあんまりなんにもやる気無さ過ぎじゃねぇ?
確かに、ぐぐればたくさん出てきますよ。
でも、正しいやり方を知りたいんです。
そもそもFPS処理という言葉がおかしいし、正しいとか正しくないの定義も分からん。
分からないなら分からないと言えよ
低脳
>>680 マイクロソフトのやり方でいいじゃない?なんで駄目なの?
DirectXのサンプルだよ?
違うことやってたら、速攻で各国から叩かれるだろ?
つか正しいのイミわかんね。
timeGetTime()なんて使ったところで正確に60frame維持できるわけでもないし。
結局のところ、大体60だよね、程度にしかならんよ?
そうですよね。正確に計るのは無理ですよね。
DirectXのサンプルって言うのは、SDKインストールした時に出来たsampleフォルダにあるプログラムですよね?
これは、timeGetTime使ってませんがどのような処理しているのですか?
それ以前に「FPS処理」なんて他人に通じるような言葉ではないが。
FPSをどうにかする処理なんて色々あるんだから、述語が無かったら
何をしたいのか意味不明。
そうだな。
可変フレームレートの実装がしたいのか、
タイマーによる固定フレームレートの実装がしたいのかも分からん。
VSYNC待ちによるフレーム制御もあるが・・・
はてさて。
たんにfpsを求めたいだけかもしれんが。
制御したいんじゃなくて。
これもう駄目かもわからんね。
まだテクスチャーとか分からんけど、その俺ですら駄目だと思うよ
太郎君と政夫君を足すと何になりますか。正しい解を求めなさい。
3D風に考えると
太郎君と政夫君はそれぞれお腹のあたりでz-indexが交わり前後が入れ替わる
Error creating process <D:\msdownld.tmp\IXP000.TMP\dxsdk.exe>. Reason: 無効なアドレスにアクセスしようとしています。
と出てDirectX October 2006 SDKがインストール出来ません。
Extracting dxsdk.exe...が終わったあとこのメッセージが出ます。
何故?
695 :
デフォルトの名無しさん:2006/12/23(土) 17:45:44
質問失礼します。
D3DXCreateTextureFromFileInMemoryEx D3DPOOL_MANAGED でテクスチャーを作成・描画を行っています。
Alt + TAB でデバイスが消失、再度 Alt + TAB でデバイスが復帰するわけですが、
デバイス復帰後、再度 D3DXCreateTextureFromFileInMemoryEx で作り直す必要があるのでしょうか?
現在デバイス復帰後、テクスチャーが真っ白になり困っています。
D3DPOOL_MANAGED は、システム メモリにバックアップされるので、デバイスが消失したときに作成し直す必要がない。
とヘルプに書いてあるので、作り直す必要があるとも思えません。
分かる方お願いします。
696 :
デフォルトの名無しさん:2006/12/23(土) 21:37:59
>>695 俺の知識が古かったらすまないとあらかじめ謝っといた上で言っとくw
とりあえず、俺がいじってたときのDirectXのデバイスロストには2種類あって、
1つは3Dデバイスが吹っ飛ばないデバイスロストこれはMANAGEDで復帰可能。
もう1つは3Dデバイスごと噴き飛ぶデバイスロスト、これは3Dデバイスから全部作り直す必要がある。
って感じになってたはずw
まちがってたら、すまんこ。
697 :
695:2006/12/23(土) 22:59:02
>>696 返答ありがとうございます。
すいません。環境を書き忘れました。
VC2003 DirectX9.0 です。
サンプルの EmptyProject を利用しています。
俺は3Dデバイスが吹き飛んだら例外で強制終了させてる。
んなドライバやウィンドウズのバグ仕様の面倒までいちいちみてられない。
俺も俺も。
でも、695は本当にデバイスが吹き飛んでるのかな。
経験上、3Dデバイスが噴き飛ぶことの方が多いと思ったけどな。
つまり、Alt+Tabの復帰処理は3Dデバイスを作り直す用に統一しておいた方が楽。
そうしないとスクリーンセーバーが3D仕様になってるだけで終了。
ハードディスクの電源OFFとかはどうだったかな・・・。
動的テクスチャの使用中にデバイスが飛んだら復旧はかなり難しい。
>>702 それってはじめの1フレームだけの話じゃね?
秒間30フレームぐらいで動いてるなら対応しなくてもいい気がする。
たしか俺が対応したときは1フレームだけフロントバッファには描画しないで2フレーム目から表示することで回避した気がする。
取っておくことはしなかったな。無駄だし。
>>704 え?光学迷彩に使うようなテクスチャを想定して言ってるんだけど、
それも静的テクスチャに分類されるの?
動的テクスチャはDYNAMICフラグ指定して作る
動画用テクスチャとかのコトだろう。
>>706 そんなのなおさら保持っとく意味がねぇじゃねぇかw
まあまあ。
DirectX10からデバイスロストは原則廃止されるそうだし僕ら
プログラマ側は頭を痛めなくても良くなるんじゃね?
ところでVista対応って何をもってVista対応になるんだ?
Vistaの特長ってよく知らんな。
調べてみたらふつーのバージョンアップだな。
特に激的な変更もなく。
マジでデバイスロストが起こらないのか怪しい。
(Win32APIの変更ないやんけw)
32BitOSなところも変わらんっぽいな。
一番のポイントはD3D10じゃね?
D3D10対応のビデオカードと謳うにはD3D10で決められた
全ての機能を完全にサポートしなければならないってM$が決めたから。
D3D10で作る場合ならいちいちCAPSで機能の有無をチェックして
分岐コード書かなくてもすむようになるわけ。
貧相なグラボ用にオプションで機能のON/OFFは必要だろうけど
デバイス生成にいちいちMIXED_VERTEXとか指定してシェーダーバージョンごとに、
頂点バッファをシステムに作ったりVRAMに作ったり切り替えなくて済むじゃん。
便利そうだけど、地デジみたいに普及に時間掛かりそうな・・・
712 :
695:2006/12/25(月) 13:38:54
返答ありがとうございます。
すいません。まだ良く理解できていません。
まず、EmptyProjectを利用しているのですが「3Dデバイスから全部作り直す作業」というのは、必要なのでしょうか?
OnResetDevice
OnLostDevice
上記のコールバックの場所で、ただ単にリソース解放とリソース再作成を行えば良い。
「3Dデバイスが吹っ飛ばないデバイスロスト」であろうが「3Dデバイスごと噴き飛ぶデバイスロスト」であろうが、
勝手にD3DFrame側でやってくれるものと漠然と考えていたのですが。。。
D3DPOOL_MANAGED でテクスチャーを作ったが、デバイス復帰後テクスチャーが真っ白になった。
これはデバイスごと吹き飛んだ現象を指しているのでしょうか?
確証が持てませんが、
D3DPOOL_DEFAULT は、OnLostDevice 時にリリースして、OnResetDevice 時に再作成をする必要があり、
D3DPOOL_MANAGED は、OnLostDevice 時に何もしなくても良く、OnResetDevice 時に再作成をする必要がある。(←3Dデバイスごと吹き飛んだ時の対策として)
と考えています。
認識合ってますでしょうか?
713 :
高校生:2006/12/25(月) 13:49:37
ちょっと板違いかもしれませんが高校の時点でほとんどPCの知識がなくても大学や社会で情報工学やっていけますか?
>>713 大学はOK。
社会は無理(小さい企業なら努力次第でなんとかなるかもね)
DirectX9.0 SDK December2002
をインストールしてデバッグ出力レベルを設定しようと思い、
コントロールパネルからDirectXのプロパティを開こうとしたんですが、
コントロールパネルにDirectXのプロパティが見つかりません
デバッグ出力レベルの設定を行うプログラムはどこにあるんでしょうか?
>>713 若いころなら努力したら1週間で基礎はできる。
>>713 高校デビューのヤツは少なくない
死ぬ気でがんばったら本当に死ぬ業界だからほどほどにがんばれ
小さい企業はOJTや独学などという名目で放置プレイだから大企業目指せ
そうすれば愛のある放置プレイが体験できるぜ
718 :
デフォルトの名無しさん:2006/12/25(月) 22:06:26
すみません
DirectX9.0をダウンロードするときの確認コードってなんですか
>>718 正規版Windowsかどうかのチェック。
ようはコピー品だったはじくと言うわけだ。
721 :
デフォルトの名無しさん:2006/12/26(火) 11:02:34
PSPではダウンロードむりなんですか
ザ・ワールドォォォ!!そして時は動き出す・・・
723 :
デフォルトの名無しさん:2007/01/02(火) 16:03:25
スタープラチナ・ザ・ワールドォッ..時間よ止まれッ..
どっちやねん
725 :
デフォルトの名無しさん:2007/01/07(日) 21:32:47
ID3DXMeshのDrawSubsetで描画するときのサブセットについて質問なのですが、
影響するボーンが同じであれば
それぞれの頂点について影響の重みが違っていても
同じサブセットですか?
レベルが低すぎて板外れになりそうだが、
C++を学んだ後、DXライブラリを使って、ゲームを作製できるようになった後
3D関連が弱いから、DirectXを自分で触ろうと思っているのですが、
SampleBrowserのチュートリアルを見てもチンプンカンプンなところです。
結局、何を見たりして学べばよいのでしょうか?
あと、Windowsプログラミングもできるようにしておいた方が良いのでしょうか?
デスクトップのスクリーンショットを撮ってテクスチャに転送しようとしています
テクスチャのサーフェスをGetDCしたあとにBitbltなどのWIN32APIで転送する、という方法を試して成功しましたが、これだとテクスチャがアルファ情報を持てないですよね、
アルファを持つテクスチャにビットマップを転送する方法はありますか?
>>726 Windowsプログラミングはウィンドウ表示できればなんとかなる
自分もDirectXは付属サンプル全然見なかったな
いろんな入門サイト巡ったり、ライブラリのソース見て覚えたよ
>>727 ?
アルファテクスチャ生成して、自前で転送するだけじゃ?
730 :
デフォルトの名無しさん:2007/01/10(水) 07:53:22
【ネガティブ派遣根性チェック】
3つ以上、思い当たる点があればアナタの性格はひん曲がっており、ネガティブ負け組人生を歩んでいます。
□派遣先の社員の意見にはたとえ間違っていても反対しない
□派遣先から「いつまでもここで仕事してくださいね」と言われるようになりたい
□自社に仕事を持ち帰れるように言われるとムカつく
□自社で仕事なんてできるわけがない
□派遣/受託の差異を指摘する人間はムカつく
□派遣先には仕事だけでなく自分のプライベートについても指示して欲しい
□自分の月額金額を知らない
□派遣先社員より自分の生涯収入が低いのは当然だ
□派遣先に尻尾を振り、いつまでも一緒に仕事をすることが大切だ
□今のプロジェクトが終わっても同じ派遣先に常駐したい
>>727 君のやりたいことは、本当にピクセル単位のアルファ成分が必要なのかね?
単に全体を同じ透明度にするだけなら頂点アルファで十分だし、ピクセル単位の
アルファが必要な場合でもアルファ成分がスクリーンショットの内容とは関係ないなら、
アルファだけのテクスチャを別に作って描画時に合成すればいい。
ちょっとお聞きしたいのですが、
DirectX使う場合の開発環境って何使ってます?
DirectX6当時はWin32/C++か苦労してMFCアプリにねじ込んだりしてましたが
最近だと.NETがあるけどC#とかとの親和性とかどうでしょ
.NET C# + DirectXは鬼門とかあんのかな
>>732 C#からは普通Managed DirectXを使うんだが、
Managed DirectXは1.1でバージョンアップ終了してる。
2.0はβが出たんだがサポート打ち切られた。
漏れはC++ならVC2005EE、C#ならXNAで開発してる。
VC2005EEに既存のライブラリってのが一番手っ取り早くていいね。
DX操作部分でバグってたら作者に修正要望出せばいいだけだし。
要望出しても修正されるとは限らないけどな
割と頻繁に修正してくれそうなライブラリがあれば・・・!
ELはもう終わっちまったしなぁ
3D使える日本語のライブラリって皆無ですよね
2Dは、いっぱいあるのに・・・
なんでだろ・・・
まあ、何でだろって、
プロは、自前でライブラリ組んで門外不出だし、
アマは、3Dやるときも外に出さない、というか、汎用的なものは作らないし、
それ以外の人は、環境がそろってない(せめて、3Dツールが安ければね・・・)
まあ出てこないよな・・・海外とは違う
739 :
デフォルトの名無しさん:2007/01/12(金) 01:03:04
若いの オラが村では派遣の問題を口にしちゃなんねーだ
お前さんはまだわけぇから言いたいこともあるべぇ
だべな、派遣問題を口にすると怒る者がおるでよぉ
問題の指摘は駄目だっぺぇ
派遣のことは口にしちゃなんねぇ
この村みたいな糞田舎で悲惨な生活するためにはよぉ
駄目のものを駄目と言ってはなんねえだめさ
>>737 Lunaの作者が作ってる新しいライブラリは?
シェーダー2.0前提の設計らしいが、無くても動作はするみたいだぞ。
741 :
デフォルトの名無しさん:2007/01/12(金) 02:14:47
Lunaはやめとけ
んじゃちょっと古いが3D対応ならやっぱELかねぇ
743 :
デフォルトの名無しさん:2007/01/13(土) 02:51:29
Lunaは使ったことあるけど、
あれはライブラリというよりフレームワークだもんな…。
メモリまで管理してるしまさにライブラリに食われてる気分になった。
確かに個人でここまでやるのは凄いと思ったけど…
そのまま使う気にはなれなかったわ。
でも、使いたい機能のソースは大いに参考にさせてもらってます。
つーか、グローバルで変数もったりしちゃうとフレームワークにならざるおえない。
機能ごと切り出して使えるようにしようと思ったら、小さいデータまで引数でちまちま渡すように作らないと駄目。
Lunaがってより、単にグローバル変数を広域で使ってることでの弊害が出てるだけ。
>>744 だからかもしれんがLuna作者の新ライブラリ?は国産版Irrlichtみたいになってたな・・・
超初歩的な質問ですみません。
今更2Dかよと思われるかもしれませんが、
現在WinAPIだけで2Dのゲームを作っています。
しかし、透明なアニメーションを多用した派手なアクションがいるとき
DirectXが必要だとかそんなイメージがあるんですが、
動きがスムーズにできたり、軽くしたりできるのでしょうか?
アクション2Dゲームの大半はDirectXを使用しています。
普通に作るのとDirectX(7)を使うのと違いをマジレスお願いします。
動きがスムーズにできたり、軽くしたりできる
スマソ。同じ意味だった。
やっぱ違いはないわけですか?
動きがスムーズにできたり、軽くしたりできる
もういいです。
以前どこかのスレでDirectX7の意味はないと
伺ったもので、疑って確信をもてませんでした。
今更7の入門書買ったけど
フルスクリーンでないと特有のサーフェイス交換できないみたいだし(ノД`)
答え出てるだろうがw
>>748 ハードの機能を使っているかどうかがポイントになる。
ハードを使わないときは画像処理をすべてCPUで行わなければならない。
もちろん、転送なども遅い、単純に描画するのもDirectXと比べるとやっぱり遅い。(10倍以上)
ハードを使うと回転と半透明ができたりもする。
これをCPUで処理しようとするととてもじゃないけどリアルタイムで処理するのは時間がかかりすぎる。
DirectXを使うとゲームを見てもわかるようにスイスイ動く。(100倍上?)
これだけみるとハード=グラフィックボードの機能を使うっきゃねーよと思うかもしれんが、使ってしまうとかなり大変。
なにせ、会社ごと、グラボごと、バージョンごとにサポートしてる機能やら性能やら考えるだけで死ねるほどよくわからんことになってる。
あとノートPCとデスクトップでもグラボの性能が異なるので注意したい。
今のPCならノートでも辛うじて3Dの基本的(とみんなが思ってる)機能(回転や半透明も含む)なら動くと思うが動くかどうかは
やっぱりやってみねぇとわからない状態ってのはやっぱりある。オンボードのPCとかだとホントやってみないとわからない。
ちなみに俺のノートPCは拡大縮小時のフィルタをサポートしてないらしく某エロゲはなんかげちょげちょになってたw
753 :
748:2007/01/13(土) 13:55:39
返答されてるとは気づかなかった。
どうもっす。
752
ありがとうございます。
PCによって環境が異なるわけですか。
あまり無茶なものは作らないようにします。。。
Vistaで少しはマシになるかね
中途半端に古いビデオカードを考えるくらいなら、
モードを2つ用意して、片方をGeForce2で安定動作するくらい質素に、
もう片方をGeForce6600で安定動作するくらい気合入れて、
くらいにいっそ分けちまったほうがいい。
ここ数年だとDirectDrawの方がハードウェアでのサポートが怪しいしな。
とくにDiretDrawつかった拡大縮小とか最近のビデオカードでもサポートしてないやつあったりするよ。
>>752 今のマシンなら、適当に組んでも、
CPUでも余裕で、回転拡大縮小、半透明、加算、乗算くらいならできるぜ?
今風に、HDRやってるやつもいる。
まー、でも茨の道なので
絶 対 に お 勧 め し な い
あのころは若かった・・・
あと、時代にしがみ付いてるG400グラフィッカーとか、うんこノートPCのVGAは、
全 部 切 り 捨 て て い い い
開発効率>>>>>>動作環境
あと、ノートPCで動かしたかったら、抑えておくこと
・PixelShaderは使わない。
・ローポリ
これだけで大体いけるw
758 :
デフォルトの名無しさん:2007/01/13(土) 16:12:31
エフェクトも控える
759 :
デフォルトの名無しさん:2007/01/13(土) 16:13:26
>>757 それもモノによるでしょ。
俺の使ってる2年前のノートはRadeon9800搭載だが
Pixel Shader 2.0 / Vertex Shader2.0 / 浮動小数点バッファも対応してるぞ。
最近買った15万の普通のノートでもX1400搭載で同じくシェーダーモデル2.0対応。
FF11やPSUで最低水準の底上げはされてきてると思う。
761 :
デフォルトの名無しさん:2007/01/13(土) 19:36:23
シェーダは良いとしてローポリは必須
>>760 バッテリ長く持たせようとすると、Radeonとかつめなくなっちゃったりするんだよね・・・。
まー、結局、ものによりますなー。
Vistaのグラも期待できねぇなぁ・・・
Windows Aero
Aero GlassはStarter Edition及びHome Basic Editionに含まれない。
スペックとしては、マザーボード内蔵用のグラフィックチップであるIntel GMA 950のグラフィックスを基準としているようである。
動画再生に広く使われてきたオーバーレイ表示はAero Glassと共存できない。
そのため、Aero Glassの環境上で動画を扱うアプリケーションの使用に不都合が生じる可能性がある。
注目↓
Aero GlassはStarter Edition及びHome Basic Editionに含まれない。
なんだよVistaになれば3D完全サポートって嘘じゃんw
最初から「VISTAが」じゃないだろ。
「DirectX10が」だろ。
PGが環境ごとに分岐コード書かなくていいのは
DirectX10を使った場合でしょ。
>>764 それだと意味がわからない。
VistaにしかDirectX10が載ってないのにどういうことなんだろ?
現状2つの場合が考えられるわな
1.Vista
2.Vista+DirectX10
な。1はそもそもDirectX10がないのでなんもできんってことなのかな?
例えば今までのエロゲみたいなもんとか・・・
それと2はもうシェーダー2.0完全サポートじゃないと駄目ってことなんかな?
その間のPCはどういう扱いになるんだろ?
例えばGeForceTi4200みたいな位置付けの奴な(FF11といっしょに抱き合わせで売られてた奴)
・DirectX10 対応ビデオカードが必要です
↑PS2 以上必須 (それ以下のPCはダメ)
・DirectX9 対応ビデオカードが必要です
↑今までと変わらない
DirectX9 までは水準が無いので使用する機能が
サポートされているか一々調べなければならなかった。
DirectX10 以降は MS が DirectX 水準を定める。
水準を満たさないビデオカードは "対応" と表記してはいけない。
これで煩しいデバイスチェックを大幅に簡略化できる。
水準を明示することで負担になっていた古いビデオカードの
サポートを切ることができる。・・・と理解しているのだけどこれでOK?
実際には、DirectX9も、DirectX10も両方対応しなければいけないので、サポートは必要
実際には、DirectX7も、DirectX8も両方対応しなければいけないので、サポートは必要
>>766 それじゃDirectX10に対応してるグラボのがめずらしい状態がしばらく続くってことか?w
なんかVistaになれば〜って話が飛んでたときと大分かわったなぁw
サンプル動かそうと思ったのだが
d3dx9d_30.dll がみつかりません
と出るんだが、なんでだか分る人いますか?
(SDK等は入れているつもりですが
つ再配布パッケージ
>>771さんありがとうございました
でも、結局直らず、SDKを再インストールしたら何故かエラーが起こらなくなってました
最近のDirectXSDKでさくせいすると他のものがインストールする必要が出てくるのですね、、、
>>773 醜いブログだ。
ブラウザが壊れたかと思った
>>774 たぶん IE6 以外で見ればまともに見えると思う。
段落内の背景を半透明にしようとしているんだと思うが、俺の IE6 でも表示ずれるし。
なんだ。擦りガラスのような半透明のことを言っているのか。
Operaでみると、そう見える。
てっきり、WUXGAでみると、背景の画像が小さすぎて、
おかしく見えるということだと思った。
>>775 90%以上のユーザを捨てて誰にみてもらいたいのかw
>>779 あらら。すまなんだ。URL 紛失してねぇ……
NyaRuRuはそろそろ元に戻せばいいのにな
十分楽しんだだろうに
まあこれはこれで面白いのでゲームにも使えそう
773のブログは、今見たら776の言ってる擦りガラスみたいな背景になってる。
その前はおかしな画像だったけど、ランダムで変わったりするのか?
783 :
774:2007/01/16(火) 13:11:15
>>773 お、俺が見たときと変わってる
こっちのが見やすいや。ありがたい
>>779 わけわかんねぇ。
OS買ったら普通についてくるIEのシェアってどうやって調べたのか、
何をもってシェアっつってんのか意味不明。
ぜってぇ、他のブラウザ使ってる奴なんてIEもってるに決まってるじゃん。
786 :
デフォルトの名無しさん:2007/01/17(水) 00:30:07
まあ、大手サイトのUserAgentでしょうな。
うちの小サイトでも、9割IE、1割Firefoxって感じ。
以外にFirefox多くてびくり
ときどきFxのtrunk使ってる人も見かける。
サイトの内容のせいだろうがOperaよりKonquerorのほうが多かったりするのが笑える。
ていうかいま気付いたけどこの話題スレ違いじゃん!
え・・・
相手にするのもめんどいが今日は優しく教えてあげよう
ブラウザのシェアってのはどのくらいの比率でメインブラウザとして利用されてるか、だろ?
大手企業などの有名サイトにおけるUserAgentの履歴を調べれば、どのくらいの割合でどのブラウザが使ってアクセスされてるかが分かる
普通はメインのブラウザでしかアクセスしないので、もしサブで使ってるものでアクセスしてる人がいても許容誤差内
1つのサイトだけでなく、多くのサイトの統計としてとればこれをシェアと言わないでなんというのか
勿論、有名サイトの中でもIEでなければ上手く表示されない、ってとこはこの統計の対象外となるが
まあ板違い過ぎる+教える方も恥ずかしいのでお帰りください
>>792 >ブラウザのシェアってのはどのくらいの比率でメインブラウザとして利用されてるか、だろ?
そうなの?
シェアの定義がわからない。
例えば、IEはほぼ全員がもっている状態でFirefoxを20%の人が使ってる状態でもIEのシェアは80%になっちゃうの?
>>798 ブラウザのシェアはアクセス解析で分かるUAの集計結果によって求められている
例えばOperaだと、「完全にInternet Explorer(Mozzila)として認識させる」でブラウジングすると
IEかMozzilaのシェアが増えてOperaのシェアが減る
>>794 なんかあいまいじゃね?
実際IEがあればこそのFirefoxの状態なのにシェアってのも変な気がする。
どっち入れるか?って2択になったら圧倒的に対応サイトの多いIEを選ぶだろうし。
MSもコメントに苦しむなw
どうでもいい。
♪スレ違いや回り道を
あと何レス過ぎたら
話題はスレに合うの
じゃあDirectX9のシェアでも語ろうか
いまさらDx8以下の環境でゲームつくるのはエロゲくらいだろ
>>798 フラッシュ入ってるからOpenGLのシェアが95%ね。
801 :
デフォルトの名無しさん:2007/01/18(木) 21:24:41
リフトがゆっくり下りてきて、それをジャンプで上り続ける、そんなゲームを作ろうと思ってたんだけど
どうしてもリフトが着地できる場所にならないんですが、どうしたらいいでしょうか。
リフトに着地するために自分で考えたプログラム↓(実行するとジャンプした瞬間消える、はるか上空へ)
for(int i=0; i<MAX_LIFT;i++){ //iがリフトの数の上限に達しない限り繰り返す
CRect RLIFT=lift[i].GetRect(); //リフトの周りのRECTを
if(kyara.Jump.flg==1){ //ジャンプ中で
if(RLIFT.top<=kyara.py){ //キャラクタがリフトより下にいると
kyara.py=RLIFT.top; //乗れる(つもり)
}
}
いや全然駄目なのは百も承知、だれか答え教えてくれぇぇ
>>801 スレ違い承知でレスしたりして・・・
なんだ「キャラがリフトの下にいるときって?」
↓こんなときどうなんの?
ーーーーーーーーーーーーーリフト0
ーーーーーーーーーーーーーリフト1
ーーーーーーーーーーーーーリフト2
●←キャラ
804 :
デフォルトの名無しさん:2007/01/19(金) 00:30:39
805 :
デフォルトの名無しさん:2007/01/25(木) 13:30:55
X形式のファイルは3頂点だけでなく4頂点のプリミティブもサポートしているようですが、
D3DXCreateMeshFVF()で作成したメッシュに4頂点のプリミティブ情報を書き込むことはできますでしょうか?
この関数の第一引数の説明に「ポリンゴン数」と書いてあるのをよく見かけるため、
3頂点しかサポートしていないのかなと。
もし4頂点のプリミティブをサポートしているのであれば、
インデックスバッファの設定のときに配列の4番目にインデックスを書き込むだけでおkですか?
それとも4頂点プリミティブなんか使わないほうが良いでしょうか?
4頂点のプリミティブは3頂点*2に分解されるだけだよ。
807 :
805:2007/01/25(木) 20:40:30
>>806 ありがとうございます。
何となく謎が解けたような気がします。
DirectSoundでストリーミング再生をさせようとしているのですが、思いっきり躓いて
しまったので、質問させてください。
単体で再生する分には全く問題なく動くのですが、複数再生すると既に再生されている
サウンドが途切れるというか崩れるというか、おかしくなってしまいます。
バッファは
DSBUFFERDESC::dwFlagsを「DSBCAPS_GETCURRENTPOSITION2 | DSBCAPS_GLOBALFOCUS
| DSBCAPS_LOCDEFER | DSBCAPS_CTRLPOSITIONNOTIFY」でして作成してあります。
位置通知イベントは、先頭(A)・真ん中(B)・DSBPN_OFFSETSTOP(C)としました。
再生カーソルがAB区間にあり、BA区間に書き込んでいる時に別のサウンドを再生しても
問題はないようなのですが、再生カーソルがBA区間にあり、AB区間に書き込んでいるときに
別のサウンドを再生すると、おかしくなります。
ちょうど再生カーソルがサウンドバッファの終端から先頭に移動する直前に別のサウンドを
再生するという感じです。
ただし、IDirectSoundBuffer8::PlayのdwFlagsにDSBPLAY_LOCSOFTWAREを付けると問題は
起きません。
OSはWin2000SP4、DirectX9.0、同SDK(2006oct)、unmanagedで作っています。
Googleで「DirectSound 同時再生 ストリーミング」で検索するとBBXで同じ症状と思われる
書き込みがあったようですが、キャッシュが無くて見れませんでした。
どうも雲をつかむような状態でして、うまく説明できないのですが原因わかりますでしょうか?
他に必要な情報等ありましたら指摘してください。
809 :
デフォルトの名無しさん:2007/01/28(日) 10:07:52
>>808 DirectSoundのストリーミングで俺が昔ハマったことがあったけど、
それかな?
ストリーミングをイベントで、位置を通知して再生するんだけど、
他のサウンドを鳴らすと、その鳴らしたサウンドまで、位置を知らせてくるんだよね。何故か。
もし、ちがったらごめん。
これ、ドライバのバグなんだよね。
環境によってはおこらない。
で、解決法ですが、イベントじゃなくて、俺はDirectX3のころのSDKのサンプル引っ張り出してきて、
マルチメディアタイマーで実装した。こちらは問題なく動いた。
「DirectSound ストリーミング IDirectSoundNotify ドライバ」
でgoogleって見てください。
グラフィックと違ってDirectSoundに関してはハードウェアメーカーに
まったくやる気がないのでハードの機能を使ってサウンドの再生はしないほうがいい。
昨今のCPUならたいした負荷にもならないしソフトウェア処理で再生しとけ。
ちなみにSoundBlasterは特にひどい。
811 :
デフォルトの名無しさん:2007/01/28(日) 11:51:27
>>811 ソフト処理つってもDirectSound使うことには変わりないぞ。
サウンドバッファ生成時にLOCALSOFTWARE?フラグ指定してバッファ作るだけでCPUエミュレーションになる。
>>809 調べているときに2000のドライバのバグというのもあったのですが
過去の話と無視してました^^;
位置は知らせてきていないのですが、なんかカーソルが変なところに
移動しているって感じですが、環境によって違うのかもしれませんね。
>>810 SBとかハードウェア処理みたいなのを売りにしている感じだったので
ハードウェア処理する事を前提に作った方が良いのかと思っていたのですが
そうでもないのですね。
とりあえず、ソフトウェア処理を前提に作って、ハードウェア処理の時どうするかは
後々考えようと思います。
どもでした。
DirectX10での開発はWindowsXP上ではできないのでしょうか?
>>814 ビルドだけならできる。
もちろん、実行やデバッグはできない。
>>814 10はしばらくはニッチなので、サポートする必要はない
10は研究用って感じだな
ぶっちゃけ10って9に比べてどうなのよ
夢の産物?
>>818 内容的にはDx9のシェーダー2,0すら使いこなせてない人は来ないでくださいね、って感じだな。
>>820 別に意識しなくてもD3DX〜でなんとかしてくれそうだけどな。
>>821 ぶっちゃけシェーダー使わないならDX8でもいいじゃん。
語弊があるかもしれないがDX10にはもう頂点シェーダーも無いんだよ。
823 :
デフォルトの名無しさん:2007/01/30(火) 22:21:37
VisualStudio.NEET
>>822 >ぶっちゃけシェーダー使わないならDX8でもいいじゃん。
考えが浅いな
そりゃシェーダーを使わねぇってだけで他の機能(サウンドやインプット込み)とかグラフィックの方と
どう連携とってくるかわからんだけにやらんほうがいい。
さらに、8でバグってて、9で修正された分とか一生バグったまま残り続けるんだぞ。
さらに、突然MSがDirectXの〜以前のバージョンのサポートは打ち切りますとか言っても対応しようがないじゃない。
VB6みたいにさw
マジな話、VB6(MSの旧バージョンの切捨て)で出た問題とか覚えて置いたほうがいいよ。
サポートされないってことがどんな問題を抱えるのか?
>語弊があるかもしれないがDX10にはもう頂点シェーダーも無いんだよ。
なにがいいたいのかよくわからない。
>>824 サウンドとインプットは実質Dx8で止まってるぞ・・・
それにサポートを気にするというならDX9だっていずれ切られる可能性があるだろう。
DX10ではジオメトリシェーダーで処理をするようになるので
頂点シェーダーというものではなくなる。
まぁジオメトリシェーダーの一部が頂点シェーダーだが。
すまん、ジオメトリシェーダーに頂点シェーダーが含まれるってワケじゃないな。
>>825 だからてめーは何が主張したくて意見してんだよw
全く主張がわからない。
まず
>>822の文章で何が主張したいのかわからない。
>>822で頂点シェーダがなくなるって言ってたよな?だから何?何がいいたいの?
それとDX8のままじゃ駄目だよね?
仕事じゃサポート切られてるSDKなんて絶対使えないし、
趣味でだって辛うじて動いても、今後プログラム組み続けるに当ってそんな資料の少ないDirectXで余計な労力使うのが無駄だよね?
DX8でしばらく足踏みすること自体会社的には絶対にやっちゃ駄目だよね?
どうせならバージョンごとにおっかけてってそれぞれのバージョンの差分だけ意識してたほうが圧倒的に楽だよね?
この点については何がいいたいの?
>それにサポートを気にするというならDX9だっていずれ切られる可能性があるだろう。
そんなこと話してないよね?
俺はわざわざ旧バージョンを使うことに意味が無いって言ってるんだよね?
828 :
デフォルトの名無しさん:2007/01/30(火) 23:40:16
>俺はわざわざ旧バージョンを使うことに意味が無いって言ってるんだよね?
知らねぇよ。
何で人に聞くんだよ。
てめぇで言ってることくらいてめぇで把握しとけよ。
この人何かの病気?
↓
∧ ∧
(*‘ω‘ *) だから何?何がいいたいの?
( )
v v
>>828 つか、お前、日本語駄目なのか?
なんか流れを読まずに部分的に反応したレスが多い希ガス
そこだけ抜き出されてもナ
上位互換だからDX8でも別にいいわな。
下手に最新verで開発するとユーザーがDirectXをアップデートせにゃならん。
832 :
デフォルトの名無しさん:2007/01/30(火) 23:51:33
頂点シェーダがないから、
頂点シェーーダ使いたかったらDX10に移行しないほうが良いってことでは?
頂点シェーーーダが使えるかどうかはポイントだからな。
DX8でいいよ別に
お前一人でDX10やってろよ
>>830 ∧_∧ / ̄ ̄ ̄ ̄ ̄
( ´∀`)< オマエモナー
( ) \_____
| | |
(__)_)
836 :
デフォルトの名無しさん:2007/01/31(水) 00:05:07
HSP厨ってDX3辺りでの開発がデフォじゃなかったか?
837 :
デフォルトの名無しさん:2007/01/31(水) 00:21:57
>>830 互換の維持は絶対条件なので本当の意味で使えなくなることはない。
あとDirectX9バージョンのDirectSoundはないぞ。
あれはDirectSound8から更新されてない。
DirectX10に関してはMSが公式に「Direct3D10」であって「DirectX10」ではないと明言してる。
>>832 今までの頂点シェーダーのような単純なものじゃなく、
頂点を増やしたり減らしたりより複雑なジオメトリシェーダーとの複合になる。
好きなバージョンを使えばいいだけだと思われ
急進派も保守派もどちらも押し付けいくない
>>839 そうやってVB6と同じ末路を辿るのさw
過去の失敗を知っているくせに学ばない奴はアフォだと思う。
同じことが何度も起こると思ってる奴って
基地外に多いよな。
とはいえ、HSP厨にとっちゃ「何を今更」だろうからなぁ。
古いバージョンは古いビデオカードでも動くというのがメリットだしなぁ。
日本は2D信仰が根強いから未だに予想もできないような貧相な
ビデオカード使ってる人もいるし新しければそれでいいというわけでもないわな。
個人的にはシェーダーモデル2.0の有無で描画を切り替えて作ってる。
2.0無けりゃ昔ながらの貧相な画面でも我慢してろってな感じ。
2D信仰というかあっちが最新技術信仰なんだよ
自分の技術を手っ取り早く見せるための売り込み手段なのさ
アニメなんか見ても分かるだろ?
「面白いか」より「凄いか」で制作してるんだから。
>>845 じゃあ、そもそもDirectXなんて使わないでGDI+でも使ってろよw
>>845 あっちが最新技術信仰ってのも理解は出来るな。
だが日本だけで見てもコンシューマーに比べると
あまりにもPCは技術的に遅れた印象がないか?
まぁ日本の場合はPC=エロゲってのが根付いてるから仕方ないが。
なるべく多くの人にやって貰おうとするなら
なるべく低スペックでも動くようにするから
民族というか考え方の違いだと思うよ
ベクトル尾も知れーーーーーーーーーーーーーーーーーーーーーーー
850 :
デフォルトの名無しさん:2007/02/01(木) 17:17:26
ベクトルってあのケツの穴に刺さりそうな矢印のことか?
高校のとくに「数学B」という教科で習ったな
IIBじゃないの?
852 :
PPP:2007/02/01(木) 17:59:38
質問なんですが、MeshObjectをCreateする処理で最大頂点数が65534個
を超えるものに対して、オプションでオプションにD3DXMESH_32BITを
つければいいと書いてありましたが、PCがフリーズします。
何か解決策があればご教授お願いします。
ベクトルの認識ってそんなもんなのかよ・・・
>>848 それはハイスペック向きに作りつつオプションでエフェクトカットして
ロースペックにも無難に対応っていうやり方すればいいだけじゃん。
初めっからロースペック前提で作ってるのがどうかと思うって話よ。
今のご時世にPC版で出してロースペックでも動くように30FPS固定、
シェーダー類一切なし、フィルタはバイリニアだけ、ローポリで、
コンフィグで変更できるのが解像度だけです、なんてのはどうかと思うって話。
そんな事やってるゲームみたことねぇw
いい加減しつこいな。いつまで引っ張る気だ。
質問です。XPSP2にて
VC++2005EE,Server 2003 SP1 Platform SDK
の環境にDirectX SDKを導入する際、9.0c対応アプリを作成するには
9.0c最終バージョンの(October 2005)を選べばいいのでしょうか?
それとも素直に最新のバージョンをいれて、10のコードを使わないようにする
だけの方が一般的なんでしょうか?
あとユーザーになるべく追加インストールさせたくない場合は、
>>5>>8にあるように
D3DXは使わない方がいいということでしょうか?
いまのDirectXでD3D使わないって選択はありえん。
追加インスコさせたくなきゃ2004年のヤツつかえ。
859 :
PPP:2007/02/02(金) 18:27:55
最大頂点数が65534個を超えるMeshObjectについて質問なのですが、
DrawSubset処理がうまくいきません。
一応描画はされるのですが、思うような形がでてきません。
苦肉の策でDrawPrimitiveを使用すると自分が思っている形が出てきたので
頂点データなどは正常であると思います。
原因をご存知であればご教授ください
>>859 それビデオカードがサポートしてるか調べたのか?
65535以上の場合はビデオカードでサポートしてないと話にならんぞ。
それマルチ
DirectInputでジョイスティックかキーがどれくらい傾いている(押されている)かを取得する関数ないですか?
863 :
デフォルトの名無しさん:2007/02/03(土) 02:00:32
D3DXMATRIX の
// 演算子のキャスティング
operator FLOAT* ();
operator CONST FLOAT* () const;
って一体何が帰ってくるの?行列をフロートポインタにキャスト?
行列のどっかの値のアドレスを得ているのかな?
あと、これが関係していると思うんだけど、
D3DXMATRIX( CONST FLOAT * );
っていうコンストラクタも何をしているのか不明・・・。
一度、2 を代入した FLOAT のポインタを引数に初期化してみたんだけど、
_11 に 2 が入ってあとは殆ど 0 みたいな値になった。
何が起きてるか詳しい人おしえてん。お願いします。
>>862 キーはない
スティックは普通に。っていうか軸は全てアナログ値でとれる。
>>863 端的に書くとこんな感じ
struct D3DXMATRIX
{
FLOAT m[4][4];
};
FLOAT* D3DXMATRIX::operator FLOAT* ()
{
return &m[0][0];
}
D3DXMATRIX::D3DXMATRIX( CONST FLOAT * pf)
{
memcpy(&m[0][0], pf, sizeof(m));
}
866 :
デフォルトの名無しさん:2007/02/03(土) 21:10:34
>>865 あ、なーる。浮動小数点の配列と変換って事か〜。
確かに便利かも。
ありがとん。
>>865 こんなのoperatorなんて使わないでちゃんと
関数名付けてくれたほうがよっぽどなにやってるかわかりやすいよな。
なんか使い道間違ってるよなー。
全然間違ってないと思うが。俺にはごく自然に見える。
そもそも、質問するまでもなくd3dx9math.inlに定義書いてあるし。
>>868 マジか?
D3DXMATRIX::D3DXMATRIX( CONST FLOAT * pf)
{
memcpy(&m[0][0], pf, sizeof(m));
}
これなんてあるかどうかわかんねーところコピーしにいくんだろ?
関数名からうかばねー処理だよ。おい。
こういうの普通なのか?
俺にはとても気味が悪く見えるんだが・・・
ああ、何がいいたいかっていうと、
こんな中身の実装見なきゃわからないような関数なら
ちゃんと関数名つけたほうがいいんじゃない?ってことな。
いや、俺は実装なんて見なくても想像できるが。
D3DXMATRIXのメンバは16個のfloatだけだし、それをfloatの配列で
初期化するってのは、驚くほどのことでもないと思うが?
>>871 でもやっぱり見て確認しないと業務じゃ使えないよな。
まあ実行時のメモリチェックは必要になるよな
そういう意味では適当にwrapperした方がいい気もするが(D3DX*自体がwrapperだが…)
874 :
デフォルトの名無しさん:2007/02/04(日) 12:55:23
市販の3Dゲーム見てると、D3DX使ってない?みたいなんだけど、自力でやってるんだろうか・・・
875 :
デフォルトの名無しさん:2007/02/04(日) 15:47:29
dxdiagでリフレッシュレートの上書きをすると全解像度そのレートになっちゃうけど
解像度ごとに違ったリフレッシュレートを設定できるツールってないですか
>>874 たしかにXPSP2標準の9.0cから特に更新しなくても最新の3Dゲームは動くのはなんでかな?
インストフォルダ内にDLL入れとくのは規約違反になるはずだし。
>>876 9.0cで作ってるからじゃね?
それかランタイムのインストーラーが入ってるか。
だいたいタンタイムのインストーラーが入ってるのが多かったぞ。
December 2004 までならD3DXはstatic libraryだからそれ使ってるんじゃね
D3DXは自作しても知れてる機能も多いし、ミドルエンジンなら全部自前でも別におかしかないと思うが
879 :
デフォルトの名無しさん:2007/02/05(月) 00:07:49
DirectShowを利用して動画のプレイヤーを作成しています。
それで、表示はできたのですが、再生している動画をコマ送りしたくてフレームレート
の取得をしたいのですが、プロパティーをみても見つけられませんでした。
どなたかご存知の方はいらっしゃいませんか?
>>879 固定フレームレートじゃないのが主流になってきているからなあ。
フレームを自由に落とせるから作る側はらくだが
使う側はフレームが予測できなくて扱いが面倒。
881 :
デフォルトの名無しさん:2007/02/05(月) 08:51:26
>>880 全部かどうかわかりませんが、エクスプローラーでは表示できています。
何かあるんだろうなーと思っているんですが…。
882 :
PPP:2007/02/05(月) 11:55:33
>>860 はい、対応するIndex数は100万以上でした。
883 :
デフォルトの名無しさん:2007/02/05(月) 17:44:50
RenderMonkeyのmul関数についての質問なのですが
Output.Position = mul( Input.Position, mWVP );
こうするとRenderMonkeyではメッシュが潰れてしまいますが
自作のプログラムではメッシュは正常に描画。
Output.Position = mul( mWVP, Input.Position );
こうするとRenderMonkeyではメッシュは正常に描画されますが
自作のプログラムではメッシュが潰れてしまいます。
※mWVPはWorld, View, ProjectionのMatrixです。
EffectEdit等のサンプルを見ると前者(mul(位置、行列))の様になってますが
RenderMonkeyでは逆に書くのが仕様なのでしょうか。
行列を転置すれば一緒だよ。
行列を痴漢すれば一緒だよ。に脳内変換され
「ああ…良いわ…もっと…」
「あ…ちょっと!そっちはちがっ…あぁんっ」
「しくしく…ひどいわ……あんなに乱暴に…」
とか展開された俺は疲れてるに違いない
ちょっと布団の中で続きをみてくる。
886 :
883:2007/02/05(月) 18:24:53
>>884,885
RenderMonkeyとEffectEditでは
転置するしないの違いがあるという事ですかね
RenderMonkeyめどい・・・
有難うございました。
アッー!
>>881 AVIならとれるね。
フレームレート directshow
検索したら情報があるよ
動的リンクに変更されたバージョンのD3DXを昔のようにスタティックリンクにするには
どうすればいいのでしょうか?(本にはできると書いてあったけど、肝心のやり方が
のっていませんでしたorz)
スタティックならDLL同梱させるとかいうライセンス違反を起こさないで済むし、
ユーザーに最新版をインストさせないでも済みますよね?
889 :
デフォルトの名無しさん:2007/02/06(火) 18:21:18
DirectSoundとDirectMusicのどっちを使えばいいんだ?
ヘルプを見たらDirectSoundのことしか書いてないから
DirectSoundに一本化しようと思っているが
一般的にはどうしてるんだ?
890 :
デフォルトの名無しさん:2007/02/06(火) 20:33:26
俺は、DirectMusic無いときから、使いまわしていて、DirectSound使ってるけど、
DirectMusicでも、効果音とか扱えるノン?
DirectSound 下位
DirectMusic 上位
DirectMusicより細かいことやりたかったらDirectSound
892 :
デフォルトの名無しさん:2007/02/07(水) 00:06:24
>>887 すみません。
IBasicVideoのAvgTimePerFrameプロパティーで取れました。
ありがとうございました。
とりあえず、DirectX10からDirectMusicが消えてるっぽいのでDirectSoundにしとけ
使ってるゲームは全部初期化で弾かれてウボァー
マジかよ
DirectSoundならOggやらWaveやらのドライバーが
いくらで転がってるしソレ使えばいーんでないの?
>>893 だからDirect3D10だってなんべん言ったらわかるんだよハゲ。
部分アップデートなのそもそも。
897 :
デフォルトの名無しさん:2007/02/07(水) 18:54:22
dxconfigで出てくるバージョンは嘘だというのか、そうか
dxdiagだよ、俺の馬鹿
900 :
デフォルトの名無しさん:2007/02/08(木) 11:41:42
メッシュの描画が正しく行われません。
どすれば正しく描画されますでしょうか?
具体的な症状としましては、
単一のメッシュを描画した場合、ポリゴンの前後判定が一部おかしく、
奥にあるポリゴンが点前のポリゴンの上に描画されてしまいます。
試しているメッシュは、DirectXSDK付属のDirectX Viewerで見ると正しく描画されるため、
メッシュに問題がある可能性は低いと思われます。
ポイントとなると思われる設定箇所は以下のように記述しています。
◆D3DPRESENT_PARAMETRS構造体の設定
ZeroMemory(&d3dpp,sizeof(d3dpp));
d3dpp.Windowed=TRUE;
d3dpp.SwapEffect=D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat=D3DFMT_R5G6B5;
d3dpp.EnableAutoDepthStencil=TRUE;
d3dpp.AutoDepthStencilFormat=D3DFMT_D16;
d3dpp.BackBufferCount=1;
d3dpp.BackBufferWidth=640;
d3dpp.BackBufferHeight=480;
◆デバイス作成後の設定
hr=lpD3DDevice->SetRenderState(D3DRS_ZENABLE,TRUE);
if (FAILED(hr)) return FALSE;
よろしくお願いします。
901 :
900:2007/02/08(木) 12:43:52
半分自己解決しました!
AutoDepthStencilFormatを
『 D3DFMT_D16 』 から 『 D3DFMT_D24S8 』 に、
SetRenderStateでのZバッファの設定を
『 TRUE 』 から 『 D3DZB_USEW 』 に、
変更したところ遠くから見た場合には正常に描画されました。
しかし、メッシュに接近するとまだ前後関係がおかしくなります。
よろしくお願いします。
ビューのZ範囲をでかくとりすぎてないか?
904 :
デフォルトの名無しさん:2007/02/08(木) 16:02:35
D3DXMatrixPerspectiveFovLHを自前で計算してみれば、
そのパラメータではおかしいことが分かる。
近クリップに0.0ってありなさすぎる
const float fd = 0.2f;
DIJOYSTATE2 js;
lpDIDevice->Poll();
lpDIDevice->GetDeviceState(sizeof(DIJOYSTATE2),&js);
if(js.lZ==+1000)
{
Thing[1].vecPosition += vecAxisX*fd;
}
if(js.lZ==-1000)
{
Thing[1].vecPosition -= vecAxisX*fd;
}
if(js.lRz==+1000)
{
Thing[1].vecPosition += vecAxisZ*fd;
}
if(js.lRz==-1000)
{
Thing[1].vecPosition -= vecAxisZ*fd;
}
pDevice->Present( NULL, NULL, NULL, NULL );
上(
>>907)のようなDirectInputを使ったプログラムを書いているのですが、
これではアナログスティックを斜めに倒したとき全く使えないです。
斜めを扱うにはどういったコードを書けば良いでしょうか?
そのソースだけじゃなぜ斜めがダメなのか分からない。
というかそのソースの意味自体が分からない。
1000という数値が何なのか、何故スティック値をそのまま移動量にしないのか。
謎だらけだ。
910 :
900:2007/02/08(木) 22:59:39
なんというかDirectInput以前の問題だが
ベクトルとして入力方向を扱っているように思うのに何故斜めに出来ないのかがわからない
ベクトルの大きさ及び方向から入出力関係を設定すればいいんじゃないか?
斜めのときは1000まで行かないんだろう。
700より大きいくらいで判定すれば?
なんで1000とか700とか決めうちでやろうとする。
馬鹿か?
パッドからの入力値の範囲はパッド毎に違う。
さらにパッドに対して入力値を設定するAPIは古いパッドでは正常に動作しない。
取得範囲を調べて、ソレを-1.0〜+1.0あたりに自前で変換して、
その値を乗じて移動量とすればまったく問題ない。
デジタルで処理するなら、一定値以上をONとすればいい。
struct OBJECT
{
D3DXVECTOR3 vecPos;
}
として、vecPosのx成分に5足したいときは、どう記述したら良いですか?
916 :
915:2007/02/09(金) 01:52:29
object[0].vecPos.xに5足せば良いだけでしたorz
おい
warota
direct3Dを使ったプログラムで、メタセコとかのx形式じゃないモデルファイルをどうやって表示してるか、分かる方いますか?
フォーマットが分かってるなら自分で読み込めばいいだろ
>>919 自力で描画。
xファイルは実は表示するまで扱いにくい。
シェーダなんて使うと色々足りなくて自作フォーマットでやらんとどうにもならん。
2つの行列の中間の行列を求めたいのですが、どのようにすればスマートにできるのか
教えていただけないでしょうか。
一応自分でも考えたんですが、まどろっこしい気がするしそもそも間違ってるかもしれません。
その考えた方法というのは、2つの行列に対してそれぞれ新しくD3DXVECTOR3型の変数を用意します。
仮に、Mat1とPos1, Mat2とPos2 という関係にします。
そしてD3DXVec3TransformCoordでそれぞれ変換した後、2点間のベクトルを求めて、
それ割る2をしたPosから行列を作れば真ん中かな〜??とか思ってやってみましたが
見事に異常な座標になりました・・。
よろしくお願いします。
レスありがとうございます。
すみません。調べてみますが、できればもう少しヒントいただけないでしょうか。
補完というと線形補完とかそういう単語は聞いたことはあるんですが、自分で使ったことは
まだないんです。
ニュアンス的には、Mat1からMat2へ線形補完してその真ん中という感じでしょうか?
回転成分をクォータニオンにしてから補間するのが普通。
>>924 モデルのアニメーションに補間使ってないの?
モデルのアニメーションと同じ式使えばいいんよ。
質問します
マイクロソフトからDirectX9をダウンロードしても
再起動の表示が出ませんどうすればいいですか?
929 :
デフォルトの名無しさん:2007/02/11(日) 02:40:51
微妙にスレ違いかもしれませんが、質問です。
VRAMのサイズを知りたいです。
どのようなコードをかけば良いでしょうか?
>>924 補間に関してはhermite(エルミート)やらCatmull-Romやらで調べると良い
クォータニオンならslerpやsquad
…が、たぶんキーフレーム(かそれに近いもの)の話だと思うんだが、
そもそも行列として値を持つのはお勧めできない。
行列そのものは値が離散的になるから、普通のやり方だと補間できない。
行列の元の要素(回転、平行移動分など)を補間するか、ムリなら積算結果の座標を補間する。
>>923, 925, 926, 930
ありがとうございました。解決しました。
Direct3Dで人体モデルを読み込んでいるのですが、いざレンダリングすると荒っぽいです。
これは解像度のようなものがあるのでしょうか?
荒っぽいの意味が分からない。
すみません。
モデラーで表示されるようにレンダリングされず、
画質を落としたような具合に表示されます。
テクスチャが荒いならフィルタをONにしてないか、
フルスクリーン時に解像度低くて荒く見えてるか。
>>935 ありがとうございます。
僕の語弊が悪かったようですorz
現状は以下のような状態です。
・640*480でウィンドウを作っている
・モデルを表示すると縦横の比率がおかしい(少しひしゃげて見える)
・最大化すると、画面を引き伸ばした感じになりモデルの輪郭がガタガタになる
比率はちゃんとプロジェクション行列設定してある?
あと液晶でフルスクリーンにするとぼやけるとか
言ってるわけじゃないよな。
> 比率はちゃんとプロジェクション行列設定してある?
これでした;
液晶です。
フルスクリーンと最大化は同義語でしょうか?
ちがう
ついでに質問せずに自分で調べろハゲ
DXUTのKeyboardProc()があったら、DirectInputってジョイパッド使うときくらいしか使わない?
ジョイパッドを使うだけならjoyGetPosExで十分
942 :
デフォルトの名無しさん:2007/02/13(火) 12:11:37
VistaでC#でDirectXアプリを作成するには何を用意すればいい?
mdxは動かんの?
mdxって中途半端にサポート切られなかったっけ?
まぁ今ならXNAがあるけど。
Xbox360でC++&DirectXなアプリ動かしたいorz
箱で開発してる開発会社に入るんだ
そこまでして作りたくはないなw
箱で開発する開発会社を作るんだ
難易度が上がりましたw
もうMicrosoft入ればいいんじゃね?
スキンメッシュの限られた一部だけが、真っ黒に表示されるのですが、どこを見直せば良いでしょうか。。。?
952 :
デフォルトの名無しさん:2007/02/15(木) 20:51:53
プログラムかデータかビデオカードかメモリか。
モニタが壊れていたというオチ。
眼だったら((((((;゚Д゚))))))ガクガクブルブル
眼は怖いなorz
956 :
951:2007/02/15(木) 22:53:04
すみません。
チンコが右に曲がっていました。
アドバイスありがとうございました。
957 :
951:2007/02/16(金) 03:27:39
>>953 ファイルは大丈夫のようでした。
>>954 緑内障orz
xファイルから読んでいるのですが、奥へz軸があるとすると、
胸以外の部分は奥+zの方から、
胸部分は手前-zの方から、ライトが当たっていました。
ふつうにxファイルをレンダリングするだけでは、以上のようにならないのですが、
メッシュコンテナを作ってフレームでレンダリングすると、以上のようになってしまいます。
で、結局何がして欲しいの?
どうプログラムを組んでいるかも説明がないし、ソースを出しているわけでもない。
その状況でどうやって原因を特定しろと?
959 :
デフォルトの名無しさん:2007/02/16(金) 09:42:50
おめぇら!オラに力をry
形状データしか入ってないXファイルに、記述するだけで空のアニメーション(とくに動かなくていい)を入られる方法とかないか??
いちいちモデリングソフト立ち上げて、吐いてたんじゃキリがねぇーんだ!
ファイルを書き換えるプログラムを作ればいいだけだろ。
何を聞きたいのかさっぱり分からん。
元気玉ならやめてくれ、疲れてるから。
先週3回くらい元気玉使われたからからだがもたん
チンコを左に戻して解決したんじゃなかったのか・・・
物体が光っているように見せたいのですが、どのようにすればよいのでしょうか?
965 :
デフォルトの名無しさん:2007/02/26(月) 07:48:05
DirectX9cをインストールしたんですけど
Windows版iTunesのCover FlowやGoogle Earthが
見れません。理由は何が考えられますか?
>>946 1.物体の上に加算でそれっぽいテクスチャ張ったポリゴンを描画。
2.HDR処理を施してブルームエフェクト。