問題タブ [d3dx]
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++ - C++ D3DX フォントと変換 (d3d9 および d3d10 ソリューションが必要)
現在の変換と同様の設定、特に投影変換とビューポートを考慮した方法でフォントをレンダリングしたいと考えています。
そのための最善の方法は、テキストをレンダリングするオフスクリーン サーフェスを用意し、そのサーフェスを本当にテキストが必要な場所にレンダリングすることだと考えています。
ただし、このソリューションの多くの側面については確信が持てません。
これは、それを行うための最良の方法ですか?
はるかに優れた無料のフォントレンダラーがあり、そのようなことを可能にするために時間を費やす方がよいでしょうか. さまざまな理由で d3dx フォント インターフェイスについて不満を言う人がたくさんいますが、より優れた Unicode 対応レンダラーへのリンクはありません...?
特定のサーフェス形式および/またはサーフェス サイズを使用する利点はありますか (たとえば、標準的な大きなものではなく、可能な限り最小のものを常に使用すると、サイズを計算するための追加の手順が必要になります...)
windows - d3dx ライブラリはどのようにテクスチャをファイルに保存しますか?
関数 D3DXSaveTextureToFile を使用し、D3DXIFF_BMP を渡して bmp を作成すると、値が具体的に指定されているのではなく、推定されているように見えることに気付きました。
私が間違っている場合は修正してください。ただし、浮動小数点テクスチャは、rgb(255,255,255,255) の間で立ち往生している BMP の範囲外に配置される特定のテクセルに浮動小数点数を格納できるため、関数が実行しているように見えるのは単純です。テクスチャの最高値と最低値を取り、その範囲の間で正規化します。
私の質問は次のとおりです。メモリ内にある値を正確に取得することは可能ですか? 色がコンピューターモニターのスペクトル外にある場合も含めて?
c++ - コードでメモリ リークが発生しました。ID3DXBuffer から来ているようです
次のものをシェーダーにロードします。
シェーダーをロードしようとしていて、エラー/警告が発生した場合は、あきらめる前にさらに 3 回再試行します。
アプリケーションを閉じると、D3DX から次のメッセージが表示されることがわかりました。
D3DX: メモリ リークが検出されました: 2 つの割り当てが解放されていません (486 バイト)
これは、エラーが発生した場合 (つまり、ループに入った場合) にのみ発生します。なぜこれが起こっているのか本当にわかりません。何かアイデアはありますか?
OK、私はそれを修正しました。単なる論理的な問題でした。「エラー」には3回目の試行で「リリース」が呼び出されなかったため、問題が発生しました。
directx - メッシュを半分にカット - DirectX
メッシュを半分にカットするか、少なくともリアルタイムで面を削除できるようにしようとしています。これを行うにはどうすればよいですか?
頂点バッファをロックし、選択した面または頂点を 0 に memset してもうまくいきません。これに関する解決策またはチュートリアルを誰かが持っています。私のプログラムでこの機能が本当に欲しいです!
乾杯
directx - D3DX関数の入力と出力に同じパラメーターを使用しても安全ですか?
directXの一部であるD3DXライブラリ、特にこの場合はdirectx9を使用して、入力と出力に同じ行列(またはベクトルなど)を使用しても安全かどうか疑問に思います
結果が計算されるときに配列の一部が部分的に上書きされると、悪いことが起こると想定して、そうすることを避けてきましたが、まさにこれを行う非常に多くのコードがあります。
簡単なテストで問題なく動作しているように見えるので、D3DX関数は必要に応じて入力データのコピーを取得するか、これが正常に機能することを確認するための他の方法を想定していますが、どこにも文書化されていませんだから私はそれが機能することに頼るのは気が進まない。
このような機能の使用に関する公式声明はありますか?
directx - コンパイルされた directx9 シェーダ ファイルの形式は?
fxc.exe によって生成されるコンパイル済みのピクセルおよび頂点シェーダー オブジェクト ファイルの形式は、公式または非公式にどこかに文書化されていますか?
定数名を読み取って、シェーダー ファイルから割り当てを登録できるようにしたいと考えています。D3DX の効果フレームワークがこれを実行できることはわかっていますが、D3DX はユーザーのマシンにインストールされていない可能性があり、他には必要ないため、D3DX の使用を避ける必要があるため、directx の更新を実行する必要がないようにしたいと考えています。 .
効果フレームワークがそれを行うことができれば、ファイル形式を見つけることができれば私もそうすることができますが、どこにも文書化されているようには見えません。
(これは directx9 で使用するためのものです)
c++ - Direct3D でテクスチャ座標変換マトリックスを構築する方法
D3D には、テクスチャ座標を変換する関数があることを知っています。
d3dDevice->SetTransform( D3DTS_TEXTURE0, &matrix );
問題は、マトリックスを取得する方法です。たとえば、テクスチャ オフセット、スケール、回転、明るさがあります。そのマトリックスをどのように設定すればよいですか?
windows - D3DKMTCreateAllocation リターン コード
私がデバッグしているドライバーには、への呼び出しがありますD3DKMTCreateAllocation
。私が受け取ったエラーは int (-1071775735) またはタイプの 0xc01e0009 ですNTSTATUS
。
このエラーを理解しようとしていますが、何も見つかりません。次のいずれにもマップされません。
エラーを特定するにはどうすればよいですか?
direct3d - D3D9アプリは正確なD3DXDLLバージョンに関連付けられていますか?
D3DXに対してアプリをビルドした場合June2007_d3dx9_34で、ターゲットシステムに新しいバージョンのNov2007_d3dx9_36がある場合、それは問題になりますか?
MSのredist-installerツールを使用してD3DXDLLを配布しましたが、1台の「クリーンな」PC(以前にD3DXがインストールされていません)に気づきました。D3DXDLLが見つからないというエラーが発生しました。インストーラー自体が機能していないかどうかを判断する前に、DLLの新バージョンを提供することが問題であるかどうか疑問に思いました。アプリは、正確な名前のDLLを探しますか?
directx - directX の #greyscale レンダー ターゲットの形式は何ですか?
次の形式で通常のアダプターを作成する directx9 ゲーム エンジンがあります: D3DFMT_X8R8G8B8 一部のオブジェクトをオフスクリーン レンダー ターゲットにライトマップとしてレンダリングするシステムがあります。次に、そのライトマップ データを使用してバック バッファーに合成し、フル スクリーンの「マスク」として機能させ、暗いシーンで松明やその他の光源の効果を得ることができるようにします。すべてがうまく機能します。問題は、大きな解像度の大きなオフスクリーン ライトマップ レンダー ターゲットがそれぞれ 16 MB であり、実際にはそれらから 8 ビットのデータ (グレースケール) しか必要としないため、32 ビット レンダー ターゲット メモリの 75% が無駄。(私は低スペックのカードをターゲットにしています)。レンダー ターゲットを D3DFMT_A8 として作成しようとしましたが、directx はサイレントに失敗し (CheckDeviceFormat() を追加すると発生することがわかります)、とにかく 32 ビットを作成します。
助けてくれてありがとう、私はレンダーターゲット関連のものが苦手です:)