public void Initialize(Device device) {
_b = EffectUtils.Load("DeferredLight");
E = new Effect(device, _b);
TechPointLight = E.GetTechniqueByName("PointLight");
TechPointLight_NoSpec = E.GetTechniqueByName("PointLight_NoSpec");
TechPointLight_Debug = E.GetTechniqueByName("PointLight_Debug");
TechDirectionalLight = E.GetTechniqueByName("DirectionalLight");
TechDirectionalLight_Shadows = E.GetTechniqueByName("DirectionalLight_Shadows");
TechDirectionalLight_Shadows_NoFilter = E.GetTechniqueByName("DirectionalLight_Shadows_NoFilter");
TechDirectionalLight_Split = E.GetTechniqueByName("DirectionalLight_Split");
for (var i = 0; i < TechDirectionalLight.Description.PassCount && InputSignaturePT == null; i++) {
InputSignaturePT = TechDirectionalLight.GetPassByIndex(i).Description.Signature;
}
if (InputSignaturePT == null) throw new System.Exception("input signature (DeferredLight, PT, DirectionalLight) == null");
LayoutPT = new InputLayout(device, InputSignaturePT, InputLayouts.VerticePT.InputElementsValue);
FxWorld = E.GetVariableByName("gWorld").AsMatrix();
FxWorldInvTranspose = E.GetVariableByName("gWorldInvTranspose").AsMatrix();
FxWorldViewProj = E.GetVariableByName("gWorldViewProj").AsMatrix();
FxWorldViewProjInv = E.GetVariableByName("gWorldViewProjInv").AsMatrix();
FxShadowViewProj = E.GetVariableByName("gShadowViewProj").AsMatrix();
FxBaseMap = E.GetVariableByName("gBaseMap").AsResource();
FxNormalMap = E.GetVariableByName("gNormalMap").AsResource();
FxMapsMap = E.GetVariableByName("gMapsMap").AsResource();
FxDepthMap = E.GetVariableByName("gDepthMap").AsResource();
FxShadowMaps = E.GetVariableByName("gShadowMaps").AsResource();
FxPointLightRadius = E.GetVariableByName("gPointLightRadius").AsScalar();
FxScreenSize = E.GetVariableByName("gScreenSize").AsVector();
FxLightColor = E.GetVariableByName("gLightColor").AsVector();
FxDirectionalLightDirection = E.GetVariableByName("gDirectionalLightDirection").AsVector();
FxPointLightPosition = E.GetVariableByName("gPointLightPosition").AsVector();
FxShadowDepths = E.GetVariableByName("gShadowDepths").AsVector();
FxEyePosW = E.GetVariableByName("gEyePosW").AsVector();
}