如何在XNA中使用EffectPool?

时间:2009-08-28 00:33:59

标签: c# xna

任何人都可以给我一些代码/解释如何使用一个用户定义的效果(即不是BasicEffect),它使用EffectPool在绘图调用之间共享变量吗?

1 个答案:

答案 0 :(得分:1)

您可以在创作者俱乐部查看Shader Series 1: Vertex Lighting样本。

基本上你要做的是在效果文件中使用shared关键字在效果文件中标记参数,例如:

shared float4x4 world;

在LoadContent()中,您可以像获取任何其他参数一样获得效果参数:

worldParameter = myEffect.Parameters["world"];

现在,在Draw()调用中,您可以设置参数的值:

worldParameter.SetValue(world);

该值将重复用于共享相同名称并使用shared关键字标记的同一效果池中的所有参数。