2010-02-16 3 views
3

J'ai un texture2D où je veux obtenir la couleur d'un pixel spécifié. Faites quelque chose avec cela et mettez une nouvelle couleur dans un autre texture2D. Je devrai faire cela avec tous les pixels de la texture. Comment puis-je faire ceci.Comment puis-je obtenir et définir des données de pixels dans XNA?

Aucun pixel shader ne vous plaît. Il doit être en C#

+2

N'est-ce pas ce que sont les pixels shaders? Pourquoi n'en voudriez-vous pas? – Nate

+0

Quelle est la taille de vos textures? mettre des données sur une texture n'est pas trop mauvais mais obtenir des données à partir d'une texture peut être très lent ... – Martin

+0

J'essaye de faire une animation 2D en eau. Allez ici: http: //freespace.virgin.net/hugo.elias/graphics/x_water.htm. Les textures ne sont pas très grandes. Je pense qu'ils sont 400 x 300. Je vais continuer à expérimenter pour voir à quel point je peux les faire. –

Répondre

2

La classe Texture2D contient les méthodes GetData et SetData qui devraient faire exactement ce que vous voulez.

+1

Alors que cela va faire l'affaire, en fonction de ce que vous faites cela peut être très, très lent. –

+0

Vous devez fournir un exemple – Moulde

+0

Il existe des exemples dans la documentation MSDN que j'ai liée. –

0

J'ai trouvé mon problème. Lorsque j'essayais d'obtenir la couleur d'un pixel, la valeur Alpha de la couleur était 0. Cela signifie que la couleur serait complètement transparente. Pour le résoudre, j'ai juste besoin de changer la valeur Alpha à 255.

Je pense que cela est arrivé parce que j'utilise un fichier jpg. Les fichiers Jpg ne supportent pas les valeurs Alpha.

Questions connexes