2010-02-16 28 views
3

我有一个texture2D,我想获取指定像素的颜色。用它做点什么,然后在另一个texture2D中添加一个新的颜色。如何在XNA中获取和设置像素数据?

我将需要对纹理中的所有像素执行此操作。我怎样才能做到这一点。

请勿使用像素着色器。它需要在C#

+2

这不是像素着色器的用途吗?你为什么不想要一个? – Nate

+0

你的纹理有多大?将数据设置到纹理上并不算太坏,但从纹理获取数据可能会非常缓慢...... – Martin

+0

我正在尝试执行2d水动画。去这里:http://freespace.virgin.net/hugo.elias/graphics/x_water.htm。纹理不是很大。我认为他们是400 x 300.我会继续尝试看看我能做出多大的成绩。 –

回答

2

Texture2D类包含GetDataSetData方法应该做你想要的。

+1

虽然这会做到这一点,但取决于你在做什么,这可能会非常非常缓慢。 –

+0

您应该提供样本 – Moulde

+0

我链接到MSDN文档中有样本。 –

0

我发现我的问题。

当我试图获取像素的颜色时,颜色的Alpha值为0.这意味着颜色将完全透明。要解决它,我只需要将Alpha值更改为255.

我认为发生这种情况是因为我正在使用jpg文件。 Jpg文件不支持Alpha值。

相关问题