1

画面の一部のみが描画呼び出しの影響を受けるように、ステンシルバッファを設定しました。具体的には、狭いエリアに描きたいです。UIになるので、描画されるものはすべて、ある種の2Dスプライトになります。スプライトオブジェクトの使用は非常にうまく機能します。エリアの外側にあるスプライトは切り取られます。ただし、テキストを追加すると、後で描画されるすべてのものとテキスト自体が切り取られません。PIXは、描画テキストが呼び出されるとすぐに、新しいDepthStencilStateがステンシルバッファをオフにして設定されていることを示しています。テキストは、他のスプライトの描画を担当する同じスプライトオブジェクトによって描画されます。

描画は、SlimDX.Direct3D10.Font.Drawメソッドを介して実行されます。

DirectXに状態オブジェクトを変更しないように強制する方法はありますか?SlimDXを使用していますが、そのコードによると、状態の変化の原因ではないようです。

ニコ

4

1 に答える 1

0

D3D11に切り替える場合は、私がSlimDXへの移植に取り組んでいるフォントレンダリングライブラリに興味があるかもしれません(過去数か月にわたってリリースされたDirectXツールキットライブラリの他のビットと一緒に)。

まだ開発中であるため、何も保証されていませんが、ここ(SVN)で見つけることができます:http ://code.google.com/p/slimdx/source/browse/#svn%2Fbranches%2Flite%2FSlimDX.Toolkit

于 2012-03-29T21:36:36.390 に答える