任何人都可以给我一些代码/解释如何使用一个用户定义的效果(即不是BasicEffect),它使用EffectPool在绘图调用之间共享变量吗?
答案 0 :(得分:1)
您可以在创作者俱乐部查看Shader Series 1: Vertex Lighting样本。
基本上你要做的是在效果文件中使用shared关键字在效果文件中标记参数,例如:
shared float4x4 world;
在LoadContent()中,您可以像获取任何其他参数一样获得效果参数:
worldParameter = myEffect.Parameters["world"];
现在,在Draw()调用中,您可以设置参数的值:
worldParameter.SetValue(world);
该值将重复用于共享相同名称并使用shared关键字标记的同一效果池中的所有参数。