質問

SharpDx-Toolkitを使用しており、Texture2DでMIMAPSを作成できません。コンテンツマネージャーによってテクスチャをロードしてgeneratemipmaps()を呼び出してみてください。

このテクスチャのMIPMAPを生成できません(RenderTargetとShaderResourceとMiplevels> 1でなければなりません

コード(ゲームクラスのLoadContent-Method):

Texture2D texture = this.Content.Load<Texture2D>("MyTexture");
texture.GenerateMipMaps(this.GraphicsDevice); <- Exception thrown in this line

私は何をすべきかわからないので、誰もがこの問題で私を助けてくれることを願っています。ありがとう。

役に立ちましたか?

解決

使用:

 Texture2D texture = this.Content.Load<Texture2D>("MyTexture");

デフォルトのテクスチャ使用量は「不変」に使用され、シェーダービューとしてのバインディングのみを許可します。

MIPMAPを生成するには、Shaderview/Renderviewの両方として使用する必要があります。

これで、いくつかのオプションがあります。

1/テクスチャをMIPMAPでDDSとして前処理すると、ローダーはこれを考慮します。

texconv あなたのためにそれをすることができます。 (-mを使用してレベルカウントを指定します)。

2/上記のようにテクスチャをロードするには、2番目のテクスチャを使用して作成します

 Texture2D texturewithmips = Texture2D.New(device, texture.Width, texture.Height, MipMapCount.Auto, texture.Format,
 TextureFlags.ShaderResource | TextureFlags.RenderTarget,
 1,Direct3D11.ResourceUsage.Default);

これで、以下を使用して、最初のMIPをコピーする必要があります。

device.Copy(texture, 0, null, t2, 0);

これで使用できます。

t2.GenerateMipMaps(this.GraphicsDevice);

3/上記の方法では、コンテンツマネージャーを紛失します(自動キャッシュを使用して)。

テクスチャロードのオプションを追加することにより、TextureContentReaderクラスを変更して、それを行うことができます。

あなたがもっと助けが必要な場合は、自由に気をつけてください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top