Question

J'utilise le sharpdx-toolkit et je ne peux pas créer de mimaps sur une texture2d. Si je charge une texture par le gestionnaire de contenu et j'essaie d'appeler GenerateMipMaps (), je reçois un NotSupportEdException:

Impossible de générer des MIPMaps pour cette texture (doit être Rendertarget et Shaderresource et MiPlevels> 1

Code (dans la méthode de chargement de la classe de jeu):

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

Je ne sais pas quoi faire et j'espère que n'importe qui pourra m'aider avec ce problème. Merci.

Était-ce utile?

La solution

Utilisant:

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

L'utilisation de texture par défaut sera par défaut "immuable" et ne permettra que la liaison comme vue de shader.

Afin de générer des MIPMAP, l'utilisation doit être par défaut et la liaison en tant que Shaderview / RenderView.

Vous avez maintenant quelques options:

1 / Prétraitez vos textures en tant que DDS avec MIPMAP, le chargeur en tiendrait compte.

Texconv peut le faire pour vous. (utilisez -M pour spécifier le nombre de niveaux).

2 / Chargez votre texture comme ci-dessus, créez une deuxième texture en utilisant

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

Vous devez maintenant copier le premier MIP, en utilisant:

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

Vous pouvez maintenant utiliser:

t2.GenerateMipMaps(this.GraphicsDevice);

3 / Étant donné qu'avec la méthode ci-dessus, vous perdez un peu le gestionnaire de contenu (avec des caches automatiques pour vous).

Vous pouvez modifier la classe TextureContentReader pour ce faire pour vous, en ajoutant plus d'options pour le chargement de texture.

Si vous avez besoin de plus d'aide, n'hésitez pas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top