J'ai des problèmes avec texture.GetData, cause d'AccessViolationExcpetions.XNA .GetData donne à AccessViolationExceptions la texture du modèle
Je suis en train de faire quelque chose comme ce qui suit:
Texture2D texture;
foreach (var mesh in model.Meshes)
foreach (BasicEffect effect in mesh.Effects)
texture = effect.Texture;
ou
texture = ((BasicEffect)model.Meshes[0].Effects[0]).Texture;
puis:
Color[] data = new Color[texture.Width * texture.Height];
texture.GetData(data);
for (int i = 0; i < data.Length - 1; i++)
{
if (IsSimilar(data[i], new Color(58, 59, 248), 40, 40, 40))
data[i] = Color.Red;
}
texture.SetData(data);
foreach (var mesh in model.Meshes)
{
foreach (BasicEffect effect in mesh.Effects)
effect.Texture = texture;
}
Mais texture.GetData (données), il jette une AccessViolationException, apparemment je ne suis pas autorisé à lire la texture sur le modèle ?? Est-ce que quelqu'un sait comment résoudre ce problème?
Si je l'essaie juste avec une texture chargée, tout fonctionne bien, mais parce que nous avons affaire à beaucoup de modèles différents. Ce serait très compliqué de trouver la texture dont le modèle a besoin, puis de recolorer cette texture et de l'appliquer.
Merci pour votre réponse. En attendant j'ai travaillé autour de ce problème en passant la texture (png-file) à mes gameobjects, recolorisez-la et que vous l'appliquiez au modèle. Ce qui fonctionne bien. Je n'ai aucune connaissance sur le compresseur de texture et les mimaps. Fera une enquête sur ce sujet, mais ce n'est plus nécessaire. Merci! :) – J4stM4rt