internal void Prepare(RSceneNode node)
{
EffectParameter param;
try
{
param = shader.GetParameterBySemantic("View");
param.SetValue(REngine.Instance._camera.viewMatrix);
}
catch { }
try
{
param = shader.GetParameterBySemantic("ViewProjection");
param.SetValue(REngine.Instance._camera.ViewProjectionMatrix.matrix);
}
catch { }
try
{
param = shader.GetParameterBySemantic("World");
param.SetValue(node.Matrix);
}
catch { }
try
{
param = shader.GetParameterBySemantic("WorldViewProjection");
param.SetValue(node.Matrix * REngine.Instance._camera.ViewProjectionMatrix.matrix);
}
catch { }
try
{
param = shader.GetParameterBySemantic("RLight");
if (node != null)
{
//param.StructureMembers;
//param.Elements["Rlights"].SetValue(RLightingFactory.Instance.GetClosestActiveLights(node.Position));
}
else
{
//param.SetValue(RLightingFactory.Instance.GetClosestActiveLights(REngine.Instance._camera.Position.vector));
}
}
catch { }
}