0
一般问题:重用顶点通入着色器
比方说,你有你进入一个效果画点什么的顶点,基于着色器参数的列表(例如,激光宽度或其他)。我想通过相同的顶点,但使用不同的着色器参数 - 但是,这不起作用。
这里是有问题的代码:
foreach (EffectPass pass in quinticFX.CurrentTechnique.Passes)
{
quinticFX.Parameters["NumPoints"].SetValue(CurvedVertices.Count());
pass.Apply();
GraphicsDevice.SamplerStates[0] = LinearMirrorState;
GraphicsDevice.Textures[0] = solid;
quinticFX.Parameters["radiusOfBeam"].SetValue(8);
GraphicsDevice.DrawUserPrimitives<VertexPositionTexture>(PrimitiveType.TriangleStrip, CurvedVertices.ToArray(), 0, CurvedVertices.Count() - 2);
pass.Apply();
quinticFX.Parameters["radiusOfBeam"].SetValue(4);
quinticFX.Parameters["P"].SetValue(cp1);
GraphicsDevice.DrawUserPrimitives<VertexPositionTexture>(PrimitiveType.TriangleStrip, CurvedVertices.ToArray(), 0, CurvedVertices .Count() - 2);
}
我假设你能做到这一点,它会绘制(在这种情况下,曲线)与不同的控制点和宽度的两倍。情况并非如此 - 只绘制了最近的一组基元。任何帮助将不胜感激。