0
我有一个纹理,我想在运行时修改它的alpha通道。
有没有一种方法来绘制纹理的alpha通道?
或者也许用另一个纹理替换通道?
谢谢,
SW。XNA - 渲染到纹理的alpha通道
我有一个纹理,我想在运行时修改它的alpha通道。
有没有一种方法来绘制纹理的alpha通道?
或者也许用另一个纹理替换通道?
谢谢,
SW。XNA - 渲染到纹理的alpha通道
好的,根据你的评论,你应该做的是使用像素着色器。您的源图像甚至不需要Alpha通道 - 让像素着色器应用Alpha。
实际上,您应该也可以在GPU上计算alpha通道的值(即:运行流体求解器)。
你的着色器可能是这个样子:
float4 main(float2 uv : TEXCOORD) : COLOR
{
float4 c = tex2D(textureSampler, uv);
c.A = /* calculate alpha value here */;
return c;
}
一个良好的开端将是XNA Sprite Effects样品。
有你在做什么,甚至类似的效果:
http://create.msdn.com/assets/cms/images/XNA_SpriteEffects_02_small.jpg
样品中的作用,从第二个纹理获取值的第一个纹理的alpha通道的计算读它时绘制。
你想达到什么目的?你试图将哪些数据放入Alpha通道?有很多方法可以做到这一点,其中大部分都有性能影响。 – 2010-11-05 01:06:02
我正在尝试在两个图像之间进行复杂的转换。我有一个可以产生流体效果的求解器,并且我需要这种流体作为纹理的Alpha通道。所以是的,性能是一个问题,因为我需要每帧更新这个频道,而且纹理很大。 – 2010-11-05 02:03:22