問題タブ [directx-9]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - DirectX9ライティングC++ライティングが機能しない
これは、テクスチャを使用して3D立方体を描画する単純なプログラムです。問題は、ライトが機能していないためにテクスチャが表示されないことです。テクスチャが存在することを確認するためにライトをオフにしました。誰かがライトが機能していない理由を理解するのを手伝ってくれるなら、私はよろしくお願いします。
////////////////////////////////////////////////// ////////////////////////////////////////.hヘッダーファイル
一度のプラグマ
//ランダムな数値の場合
含む
含む
含む
含む
含む
「DirectXInput.h」を含める
含む
含む
プラグマコメント(lib、 "d3d9.lib")
プラグマコメント(lib、 "d3dx9.lib")
プラグマコメント(lib、 "winmm.lib")// for timeGetTime()
プラグマコメント(lib、 "dinput8.lib")
プラグマコメント(lib、 "dxguid.lib")
//コマンドを安全に解放するマクロ
SAFE_RELEASE(x)if(x){x-> Release();を定義します。x = 0;}
//直接入力バージョン
DIRECTINPUT_VERSION0x0800を定義します
//ウィンドウサイズを定義します
SCREEN_WIDTH800を定義します
SCREEN_HEIGHT600を定義します
//#define D3DFVF_CUSTOMVERTEX(D3DFVF_XYZ | D3DFVF_DIFFUSE)
クラスDirectXGame{structVertex{D3DXVECTOR3位置; D3DXVECTOR3通常; D3DXVECTOR2 uv; }; IDirect3D9 * m_pD3DObject; IDirect3DDevice9 * m_pD3DDevice;
public:DirectXGame(void); 〜DirectXGame(void); void Initialize(HWND hWnd、HINSTANCE hInst、bool bWindowed); bool isDeviceLost(); void Update(HWND hWnd、bool&bWindowed、double dt); void Render(); void CheckPosition(); void Shutdown();
};
c++ - (DirectX)ベクトルに一致する回転行列を生成する
ベクトルを取得して、そのベクトルに沿ってメッシュを回転させるマトリックスを生成するにはどうすればよいですか?
詳細:
プレーヤーのモデルを、カメラが見ている方向を向くように回転させたいです。現在、それは常に開始した方向を指しており、回転させるとカメラがプレーヤーの側を見るようになります。
私はD3DXMatrixYawPitchRollを試しましたが、部分的に成功しました。しかし、完璧なアライメントからの時間のずれに気づき、ヨーイングしながらピッチングを試みたときに、奇妙なぐらつきの問題が発生しました。
c++ - .obj(またはその他の)ファイルからDirectX9 /C++プロジェクトへのメッシュのロード
現在、黒い画面上で回転したり移動したりできる座標を書き込んで描いた3Dキューブがあります。これで、 「3Ds Max」で作成したモデルができました(これは高い石垣のある小さな裏庭なので、ワールドオブジェクトとして使用しようとしています)。このモデルをDirectX9 /C++プロジェクトにロードします。 DirectX SDKの例で見る限り、このコードは.Xモデルをロードするためのものです(この種の拡張機能をエクスポートするには、「3DsMax」のプラグインが必要です。これはわかりません)。
.XファイルをDX9/C ++にロードするためのコード:
オブジェクトをロードするための「D3DXLoadMeshFromOBJ(.....)」のような関数はありますか?.OBJファイルをロードしてレンダリングするにはどうすればよいですか?8(
私のもう1つの質問は、 .Xファイルと.OBJファイルの違いは何ですか?どちらを使用すればよいですか?
c++ - Char 配列の最後の余分な文字 (char *Result = new char) 8OI
LPSTR 型変数を分割し、それを char 配列 (char*) にアタッチする C++ 関数があります。例:
これは私が書こうとしている関数です:
h=0; for(int i=0;i
実際にはそれほど悪くはありません。問題は、char 配列 ( char *Result = new char; ) を宣言するときです。長さがどれくらいかは関係ありません。最終結果 ( Result )の最後に余分な文字を追加しています。本当にここで立ち往生しています。アイデアや提案があれば教えてください。アドバイスと回答をありがとう。
ソリューションは、関数の最後にこれを追加しています:
c++ - C ++マウスホイールを上下にキャッチする方法は?
マウスホイールの上下にアスキー値はありますか。マウス ホイール用にこれを見つけましたが、これは下にスクロールしても上にスクロールしても 8)、ブート状態で動作していても問題ありません。
助けと提案をありがとう。
c++ - 参照を提供してD3Dデバイスを送信する方法(DirectX / C ++ Prgoramming)
H1。コードを別の.cppファイルと.hファイルに分けて、見つけやすく、見やすく、理解しやすくしようとしています。これが私が今やろうとしていることです:私はMeshes.cppを手に入れました。これは私のメインの.cppソースファイルです。Render関数(Render() )で、SetupMatricesという名前の関数を呼び出す必要があります。
これは私の「d3dGeneral.cpp」ファイルです。
そしてこれは私の「Meshes.cpp」ファイルです:(これはメインのcppファイルです)
DXUT.hという名前のヘッダーファイルには、他の一般的なインクルードが含まれています。したがって、これを行うとエラーが発生します。
エラー2エラーC2227:「-> SetTransform」の左側はクラス/構造体/共用体/ジェネリック型c:\ users \ catt \ desktop \ deneme \ d3dgeneral.cpp74MeshClassを指している必要があります
それが何を意味するのかは知っていますが、それを避ける方法がわかりません。ポインタに問題があるようです。また、私は次のようにPDevを使用しようとしました:
その関数で参照を使用してd3dDeviceを使用する必要はないことはわかっていますが、関数Cleanupもあります。コピーではなく実際のデバイス自体をクリーンアップする必要があるため、参照する必要があると思います8)。私は自分自身を正しく説明したと思います。あなたが私を助けることができればそれは恐ろしいでしょう。お時間を割いていただきありがとうございます...
c++ - ディレクトリパスエラー、私はそれを間違っていますか
.exeと3つのフォルダがあります。各フォルダには、私のプログラムが読み取る.txtファイルと、ロードするいくつかの画像があります。これは、すべてが.exeで行われていたときはすべて正常に機能していましたが、フォルダー内にあるため、機能を停止しました。
問題は、フォルダAに動作しているA.pngをロードするA.txtがあるが、A.txtはフォルダBからB.pngもロードすることだと思います。A.txtにB / B.pngを入れましたが、これが問題になる可能性があります。
レベルを上げてから別のフォルダに戻したいという問題はありますか?
これは、upfolder / B / B.pngのようにパス名に入力できるコマンドであるか、フォルダーBをフォルダーAに配置する唯一のオプションです。
または、より良い方法がある場合、またはタイプごとにリソースを整理する場合は、変更することができます。
編集:あなたはコードを要求しますが、これはすべてプログラム外のものに関係します。しかし、私が取っている道の例をuに挙げてください。
user / document / map / map.txt
そのマップ.txtには、monster/yeti.txtという行があります。そのファイルへのフルパスはuser/documents / monster/yeti.txtです。
map.txtにパスを書き込んで、マップフォルダーからモンスターフォルダーに移動するにはどうすればよいですか?
antialiasing - DirectX 9 の使用; スプライト アンチエイリアシング ハロー
だから私は DirectX 9 でコーディングしており、スプライトを 2D ワールド内に配置するたびに. スプライト画像 p の周りに現れる白い色の「光輪」があります。PNG を使用しており、スプライトの背景は透明です。ピンクの背景も使ってみました。ハローはピクセルの直線にのみ表示され、一部のエッジにのみ表示されるようです。どんな助けでも大歓迎です!
ありがとうピーター
c++ - 時々表示される透明色
イメージを保持するために LPDIRECT3DTEXTURE9 を使用しています。
これは、自分の写真を表示するために使用される関数です。
本によると、最後のパラメーターが画面に表示されないため、RGBカラーが表示されています。これが透明度を作成する方法です。
これはほとんどの場合機能しますが、画像と画像の端にピンクの線が残ります。試行錯誤の結果、Photoshop に戻ると、ピンク色で上に描画することでピンクのボックスを削除できることがわかりました。これは左側の船で見ることができます。
証拠はありませんが、背景がすべて同じピンク色にならないように、Photoshop が画像のエッジをブレンドしていると考え始めています。
誰でもプログラミングでこれを修正できますか、それとも画像のエラーですか?
フォトショップが得意な方がいらっしゃいましたら、画像の修正方法を教えていただけないでしょうか。私は主に png を使用していますが、必要に応じて変更します。
編集: 要求に応じたテクスチャ作成コード
c++ - 拡張モードで DirectX ウィンドウをあるモニターから別のモニターに移動する
拡張モードであるモニターから別のモニターに移動したい単純な directX-9 テスト アプリがあります。
ウィンドウとデバイスはプライマリ モニターに作成され、シーンは正しく描画されますが、ウィンドウを 2 番目のモニターに移動するとフリーズします。エラーはなく、現在の呼び出しでさえ失敗しませんが、ウィンドウの更新はありません。ウィンドウをプライマリ モニターに戻すとすぐに、すべてが正常に戻ります。
これを機能させるために何が欠けているのか、誰かが私にヒントを与えることができますか?