public void Initialize(Device device) {
_b = EffectUtils.Load("DeferredGObjectSpecial");
E = new Effect(device, _b);
TechSpecialGlDeferred = E.GetTechniqueByName("SpecialGlDeferred");
TechSpecialGlForward = E.GetTechniqueByName("SpecialGlForward");
TechSpecialGlMask = E.GetTechniqueByName("SpecialGlMask");
for (var i = 0; i < TechSpecialGlDeferred.Description.PassCount && InputSignaturePNTG == null; i++) {
InputSignaturePNTG = TechSpecialGlDeferred.GetPassByIndex(i).Description.Signature;
}
if (InputSignaturePNTG == null) throw new System.Exception("input signature (DeferredGObjectSpecial, PNTG, SpecialGlDeferred) == null");
LayoutPNTG = new InputLayout(device, InputSignaturePNTG, InputLayouts.VerticePNTG.InputElementsValue);
FxWorld = E.GetVariableByName("gWorld").AsMatrix();
FxWorldInvTranspose = E.GetVariableByName("gWorldInvTranspose").AsMatrix();
FxWorldViewProj = E.GetVariableByName("gWorldViewProj").AsMatrix();
}