昨天用C#代码实现了 《梦幻西游》中的阻碍半透明效果,今天使用了hlsl的像素差色器实现了这种效果,但更加完美。在用HLSL之前本身想放弃使用的了,因为一来自己对HLSL不熟悉,二来用HLSL实现起来有点麻烦,最重要的就是担心性能,因为像素着色器处理的是一个像素,不过上网搜了下,着色器的处理速度很快,因为是并行计算,不像使用代码那样(循环处理),所是速度超快!!!
下面是代码
//C#代码
private void ShaderAlphaTree()
{
m_effectMaskByTree.CurrentTechnique = m_effectMaskByTree.Techniques["MaskByTree"];
m_effectMaskByTree.Parameters["spriteWidth"].SetValue((float)m_textMHXYPlayer.Width);
m_effectMaskByTree.Parameters["spriteHeight"].SetValue((float)m_textMHXYPlayer.Height);
m_effectMaskByTree.Parameters["treeWidth"].SetValue((float)m_textTree.Width);
m_effect