/// <summary>
        /// Constructor
        /// </summary>
        /// <param name="graphics">Graphics device</param>
        /// <param name="effect">Effect code</param>
        /// <param name="compile">Compile code</param>
        public EffectDefaultGpuParticles(Graphics graphics, byte[] effect, bool compile)
            : base(graphics, effect, compile)
        {
            this.ParticleStreamOut = this.Effect.GetTechniqueByName("ParticleStreamOut");
            this.NonRotationDraw   = this.Effect.GetTechniqueByName("NonRotationParticle");
            this.RotationDraw      = this.Effect.GetTechniqueByName("RotationParticle");

            this.worldVar = this.Effect.GetVariableMatrix("gWorld");
            this.worldViewProjectionVar = this.Effect.GetVariableMatrix("gWorldViewProjection");
            this.eyePositionWorldVar    = this.Effect.GetVariableVector("gEyePositionWorld");
            this.totalTimeVar           = this.Effect.GetVariableScalar("gTotalTime");
            this.elapsedTimeVar         = this.Effect.GetVariableScalar("gElapsedTime");
            this.textureCountVar        = this.Effect.GetVariableScalar("gTextureCount");
            this.textureArrayVar        = this.Effect.GetVariableTexture("gTextureArray");

            this.emissionRateVar        = this.Effect.GetVariableScalar("gEmissionRate");
            this.velocitySensitivityVar = this.Effect.GetVariableScalar("gVelocitySensitivity");
            this.horizontalVelocityVar  = this.Effect.GetVariableVector("gHorizontalVelocity");
            this.verticalVelocityVar    = this.Effect.GetVariableVector("gVerticalVelocity");
            this.randomValuesVar        = this.Effect.GetVariableVector("gRandomValues");

            this.maxDurationVar           = this.Effect.GetVariableScalar("gMaxDuration");
            this.maxDurationRandomnessVar = this.Effect.GetVariableScalar("gMaxDurationRandomness");
            this.endVelocityVar           = this.Effect.GetVariableScalar("gEndVelocity");
            this.gravityVar     = this.Effect.GetVariableVector("gGravity");
            this.startSizeVar   = this.Effect.GetVariableVector("gStartSize");
            this.endSizeVar     = this.Effect.GetVariableVector("gEndSize");
            this.minColorVar    = this.Effect.GetVariableVector("gMinColor");
            this.maxColorVar    = this.Effect.GetVariableVector("gMaxColor");
            this.rotateSpeedVar = this.Effect.GetVariableVector("gRotateSpeed");
        }
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="graphics">Graphics device</param>
        /// <param name="effect">Effect code</param>
        /// <param name="compile">Compile code</param>
        public EffectDeferredTerrain(Graphics graphics, byte[] effect, bool compile)
            : base(graphics, effect, compile)
        {
            this.TerrainAlphaMapDeferred = this.Effect.GetTechniqueByName("TerrainAlphaMapDeferred");
            this.TerrainSlopesDeferred   = this.Effect.GetTechniqueByName("TerrainSlopesDeferred");
            this.TerrainFullDeferred     = this.Effect.GetTechniqueByName("TerrainFullDeferred");

            this.worldVar = this.Effect.GetVariableMatrix("gVSWorld");
            this.worldViewProjectionVar = this.Effect.GetVariableMatrix("gVSWorldViewProjection");
            this.textureResolutionVar   = this.Effect.GetVariableScalar("gVSTextureResolution");

            this.diffuseMapLRVar  = this.Effect.GetVariableTexture("gPSDiffuseMapLRArray");
            this.diffuseMapHRVar  = this.Effect.GetVariableTexture("gPSDiffuseMapHRArray");
            this.normalMapVar     = this.Effect.GetVariableTexture("gPSNormalMapArray");
            this.specularMapVar   = this.Effect.GetVariableTexture("gPSSpecularMapArray");
            this.colorTexturesVar = this.Effect.GetVariableTexture("gPSColorTextureArray");
            this.alphaMapVar      = this.Effect.GetVariableTexture("gPSAlphaTexture");
            this.parametersVar    = this.Effect.GetVariableVector("gPSParams");
            this.materialIndexVar = this.Effect.GetVariableScalar("gPSMaterialIndex");

            //Samplers
            this.samplerDiffuseVar  = this.Effect.GetVariableSampler("SamplerDiffuse");
            this.samplerSpecularVar = this.Effect.GetVariableSampler("SamplerSpecular");
            this.samplerNormalVar   = this.Effect.GetVariableSampler("SamplerNormal");

            //Initialize states
            this.samplerPoint       = EngineSamplerState.Point(graphics);
            this.samplerLinear      = EngineSamplerState.Linear(graphics);
            this.samplerAnisotropic = EngineSamplerState.Anisotropic(graphics, 8);
        }
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="graphics">Graphics device</param>
        /// <param name="effect">Effect code</param>
        /// <param name="compile">Compile code</param>
        public EffectDeferredComposer(Graphics graphics, byte[] effect, bool compile)
            : base(graphics, effect, compile)
        {
            this.DeferredDirectionalLight = this.Effect.GetTechniqueByName("DeferredDirectionalLight");
            this.DeferredPointStencil     = this.Effect.GetTechniqueByName("DeferredPointStencil");
            this.DeferredPointLight       = this.Effect.GetTechniqueByName("DeferredPointLight");
            this.DeferredSpotStencil      = this.Effect.GetTechniqueByName("DeferredSpotStencil");
            this.DeferredSpotLight        = this.Effect.GetTechniqueByName("DeferredSpotLight");
            this.DeferredCombineLights    = this.Effect.GetTechniqueByName("DeferredCombineLights");

            this.worldVar = this.Effect.GetVariableMatrix("gWorld");
            this.worldViewProjectionVar = this.Effect.GetVariableMatrix("gWorldViewProjection");
            this.eyePositionWorldVar    = this.Effect.GetVariableVector("gEyePositionWorld");
            this.directionalLightVar    = this.Effect.GetVariable("gDirLight");
            this.pointLightVar          = this.Effect.GetVariable("gPointLight");
            this.spotLightVar           = this.Effect.GetVariable("gSpotLight");
            this.hemisphericLightVar    = this.Effect.GetVariable("gHemiLight");
            this.fogStartVar            = this.Effect.GetVariableScalar("gFogStart");
            this.fogRangeVar            = this.Effect.GetVariableScalar("gFogRange");
            this.fogColorVar            = this.Effect.GetVariableVector("gFogColor");
            this.tg1MapVar               = this.Effect.GetVariableTexture("gTG1Map");
            this.tg2MapVar               = this.Effect.GetVariableTexture("gTG2Map");
            this.tg3MapVar               = this.Effect.GetVariableTexture("gTG3Map");
            this.lightMapVar             = this.Effect.GetVariableTexture("gLightMap");
            this.materialPaletteWidthVar = this.Effect.GetVariableScalar("gMaterialPaletteWidth");
            this.materialPaletteVar      = this.Effect.GetVariableTexture("gMaterialPalette");
            this.lodVar = this.Effect.GetVariableVector("gLOD");
            this.shadowMapDirectionalVar = this.Effect.GetVariableTexture("gShadowMapDir");
            this.shadowMapPointVar       = this.Effect.GetVariableTexture("gShadowMapPoint");
            this.shadowMapSpotVar        = this.Effect.GetVariableTexture("gShadowMapSpot");
        }
Esempio n. 4
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="graphics">Graphics device</param>
        /// <param name="effect">Effect code</param>
        /// <param name="compile">Compile code</param>
        public EffectDefaultBillboard(Graphics graphics, byte[] effect, bool compile)
            : base(graphics, effect, compile)
        {
            this.ForwardBillboard = this.Effect.GetTechniqueByName("ForwardBillboard");

            this.worldVar = this.Effect.GetVariableMatrix("gWorld");
            this.worldViewProjectionVar  = this.Effect.GetVariableMatrix("gWorldViewProjection");
            this.materialIndexVar        = this.Effect.GetVariableScalar("gMaterialIndex");
            this.hemiLightVar            = this.Effect.GetVariable("gPSHemiLight");
            this.dirLightsVar            = this.Effect.GetVariable("gDirLights");
            this.pointLightsVar          = this.Effect.GetVariable("gPointLights");
            this.spotLightsVar           = this.Effect.GetVariable("gSpotLights");
            this.lightCountVar           = this.Effect.GetVariableVector("gLightCount");
            this.eyePositionWorldVar     = this.Effect.GetVariableVector("gEyePositionWorld");
            this.fogStartVar             = this.Effect.GetVariableScalar("gFogStart");
            this.fogRangeVar             = this.Effect.GetVariableScalar("gFogRange");
            this.fogColorVar             = this.Effect.GetVariableVector("gFogColor");
            this.startRadiusVar          = this.Effect.GetVariableScalar("gStartRadius");
            this.endRadiusVar            = this.Effect.GetVariableScalar("gEndRadius");
            this.textureCountVar         = this.Effect.GetVariableScalar("gTextureCount");
            this.normalMapCountVar       = this.Effect.GetVariableScalar("gNormalMapCount");
            this.texturesVar             = this.Effect.GetVariableTexture("gTextureArray");
            this.normalMapsVar           = this.Effect.GetVariableTexture("gNormalMapArray");
            this.textureRandomVar        = this.Effect.GetVariableTexture("gTextureRandom");
            this.materialPaletteWidthVar = this.Effect.GetVariableScalar("gMaterialPaletteWidth");
            this.materialPaletteVar      = this.Effect.GetVariableTexture("gMaterialPalette");
            this.lodVar = this.Effect.GetVariableVector("gLOD");
            this.shadowMapDirectionalVar = this.Effect.GetVariableTexture("gShadowMapDir");
            this.shadowMapPointVar       = this.Effect.GetVariableTexture("gShadowMapPoint");
            this.shadowMapSpotVar        = this.Effect.GetVariableTexture("gShadowMapSpot");
        }
Esempio n. 5
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="graphics">Graphics device</param>
        /// <param name="effect">Effect code</param>
        /// <param name="compile">Compile code</param>
        public EffectDefaultFont(Graphics graphics, byte[] effect, bool compile)
            : base(graphics, effect, compile)
        {
            this.FontDrawer = this.Effect.GetTechniqueByName("FontDrawer");

            this.worldVar = this.Effect.GetVariableMatrix("gWorld");
            this.worldViewProjectionVar = this.Effect.GetVariableMatrix("gWorldViewProjection");
            this.colorVar   = this.Effect.GetVariableVector("gColor");
            this.textureVar = this.Effect.GetVariableTexture("gTexture");
        }
Esempio n. 6
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="graphics">Graphics device</param>
        /// <param name="effect">Effect code</param>
        /// <param name="compile">Compile code</param>
        public EffectPostBlur(Graphics graphics, byte[] effect, bool compile)
            : base(graphics, effect, compile)
        {
            this.Blur = this.Effect.GetTechniqueByName("Blur");

            this.worldViewProjectionVar = this.Effect.GetVariableMatrix("gWorldViewProjection");
            this.blurDirectionVar       = this.Effect.GetVariableVector("gBlurDirection");
            this.textureSizeVar         = this.Effect.GetVariableVector("gTextureSize");
            this.diffuseMapVar          = this.Effect.GetVariableTexture("gDiffuseMap");
        }
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="graphics">Graphics device</param>
        /// <param name="effect">Effect code</param>
        /// <param name="compile">Compile code</param>
        public EffectDefaultTerrain(Graphics graphics, byte[] effect, bool compile)
            : base(graphics, effect, compile)
        {
            this.TerrainAlphaMapForward = this.Effect.GetTechniqueByName("TerrainAlphaMapForward");
            this.TerrainSlopesForward   = this.Effect.GetTechniqueByName("TerrainSlopesForward");
            this.TerrainFullForward     = this.Effect.GetTechniqueByName("TerrainFullForward");

            //Globals
            this.materialPaletteWidthVar = this.Effect.GetVariableScalar("gMaterialPaletteWidth");
            this.materialPaletteVar      = this.Effect.GetVariableTexture("gMaterialPalette");
            this.lodVar = this.Effect.GetVariableVector("gLOD");

            //Per frame
            this.worldVar = this.Effect.GetVariableMatrix("gVSWorld");
            this.worldViewProjectionVar = this.Effect.GetVariableMatrix("gVSWorldViewProjection");
            this.textureResolutionVar   = this.Effect.GetVariableScalar("gVSTextureResolution");

            this.eyePositionWorldVar     = this.Effect.GetVariableVector("gPSEyePositionWorld");
            this.lightCountVar           = this.Effect.GetVariableVector("gPSLightCount");
            this.fogColorVar             = this.Effect.GetVariableVector("gPSFogColor");
            this.fogStartVar             = this.Effect.GetVariableScalar("gPSFogStart");
            this.fogRangeVar             = this.Effect.GetVariableScalar("gPSFogRange");
            this.hemiLightVar            = this.Effect.GetVariable("gPSHemiLight");
            this.dirLightsVar            = this.Effect.GetVariable("gPSDirLights");
            this.pointLightsVar          = this.Effect.GetVariable("gPSPointLights");
            this.spotLightsVar           = this.Effect.GetVariable("gPSSpotLights");
            this.shadowMapDirectionalVar = this.Effect.GetVariableTexture("gPSShadowMapDir");
            this.shadowMapPointVar       = this.Effect.GetVariableTexture("gPSShadowMapPoint");
            this.shadowMapSpotVar        = this.Effect.GetVariableTexture("gPSShadowMapSpot");

            //Per object
            this.parametersVar       = this.Effect.GetVariableVector("gPSParams");
            this.useColorDiffuseVar  = this.Effect.GetVariableScalar("gPSUseColorDiffuse");
            this.useColorSpecularVar = this.Effect.GetVariableScalar("gPSUseColorSpecular");
            this.materialIndexVar    = this.Effect.GetVariableScalar("gPSMaterialIndex");
            this.normalMapVar        = this.Effect.GetVariableTexture("gPSNormalMapArray");
            this.specularMapVar      = this.Effect.GetVariableTexture("gPSSpecularMapArray");
            this.colorTexturesVar    = this.Effect.GetVariableTexture("gPSColorTextureArray");
            this.alphaMapVar         = this.Effect.GetVariableTexture("gPSAlphaTexture");
            this.diffuseMapLRVar     = this.Effect.GetVariableTexture("gPSDiffuseMapLRArray");
            this.diffuseMapHRVar     = this.Effect.GetVariableTexture("gPSDiffuseMapHRArray");

            //Samplers
            this.samplerDiffuseVar  = this.Effect.GetVariableSampler("SamplerDiffuse");
            this.samplerSpecularVar = this.Effect.GetVariableSampler("SamplerSpecular");
            this.samplerNormalVar   = this.Effect.GetVariableSampler("SamplerNormal");

            //Initialize states
            this.samplerPoint       = EngineSamplerState.Point(graphics);
            this.samplerLinear      = EngineSamplerState.Linear(graphics);
            this.samplerAnisotropic = EngineSamplerState.Anisotropic(graphics, 8);
        }
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="graphics">Graphics device</param>
        /// <param name="effect">Effect code</param>
        /// <param name="compile">Compile code</param>
        public EffectShadowBillboard(Graphics graphics, byte[] effect, bool compile)
            : base(graphics, effect, compile)
        {
            this.ShadowMapBillboard = this.Effect.GetTechniqueByName("ShadowMapBillboard");

            this.worldViewProjectionVar = this.Effect.GetVariableMatrix("gWorldViewProjection");
            this.eyePositionWorldVar    = this.Effect.GetVariableVector("gEyePositionWorld");
            this.startRadiusVar         = this.Effect.GetVariableScalar("gStartRadius");
            this.endRadiusVar           = this.Effect.GetVariableScalar("gEndRadius");
            this.textureCountVar        = this.Effect.GetVariableScalar("gTextureCount");
            this.texturesVar            = this.Effect.GetVariableTexture("gTextureArray");

            this.textureRandomVar = this.Effect.GetVariableTexture("gTextureRandom");
        }
Esempio n. 9
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="graphics">Graphics device</param>
        /// <param name="effect">Effect code</param>
        /// <param name="compile">Compile code</param>
        public EffectDefaultSkyScattering(Graphics graphics, byte[] effect, bool compile)
            : base(graphics, effect, compile)
        {
            this.SkyScatteringLow    = this.Effect.GetTechniqueByName("SkyScatteringLow");
            this.SkyScatteringMedium = this.Effect.GetTechniqueByName("SkyScatteringMedium");
            this.SkyScatteringHigh   = this.Effect.GetTechniqueByName("SkyScatteringHigh");

            this.worldViewProjectionVar    = this.Effect.GetVariableMatrix("gWorldViewProjection");
            this.sphereRadiiVar            = this.Effect.GetVariableVector("gSphereRadii");
            this.scatteringCoefficientsVar = this.Effect.GetVariableVector("gScatteringCoeffs");
            this.inverseWaveLengthVar      = this.Effect.GetVariableVector("gInvWaveLength");
            this.miscVar                = this.Effect.GetVariableVector("gMisc");
            this.backColorVar           = this.Effect.GetVariableVector("gBackColor");
            this.lightDirectionWorldVar = this.Effect.GetVariableVector("gLightDirection");
            this.hdrExposureVar         = this.Effect.GetVariableScalar("gHDRExposure");
        }
Esempio n. 10
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="graphics">Graphics device</param>
        /// <param name="effect">Effect code</param>
        /// <param name="compile">Compile code</param>
        public EffectDefaultSprite(Graphics graphics, byte[] effect, bool compile)
            : base(graphics, effect, compile)
        {
            this.PositionColor          = this.Effect.GetTechniqueByName("PositionColor");
            this.PositionTexture        = this.Effect.GetTechniqueByName("PositionTexture");
            this.PositionTextureNOALPHA = this.Effect.GetTechniqueByName("PositionTextureNOALPHA");
            this.PositionTextureRED     = this.Effect.GetTechniqueByName("PositionTextureRED");
            this.PositionTextureGREEN   = this.Effect.GetTechniqueByName("PositionTextureGREEN");
            this.PositionTextureBLUE    = this.Effect.GetTechniqueByName("PositionTextureBLUE");
            this.PositionTextureALPHA   = this.Effect.GetTechniqueByName("PositionTextureALPHA");

            this.worldVar = this.Effect.GetVariableMatrix("gWorld");
            this.worldViewProjectionVar = this.Effect.GetVariableMatrix("gWorldViewProjection");
            this.textureIndexVar        = this.Effect.GetVariableScalar("gTextureIndex");
            this.colorVar    = this.Effect.GetVariableVector("gColor");
            this.texturesVar = this.Effect.GetVariableTexture("gTextureArray");
        }
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="graphics">Graphics device</param>
        /// <param name="effect">Effect code</param>
        /// <param name="compile">Compile code</param>
        public EffectShadowFoliage(Graphics graphics, byte[] effect, bool compile)
            : base(graphics, effect, compile)
        {
            this.ShadowMapFoliage4  = this.Effect.GetTechniqueByName("ShadowMapFoliage4");
            this.ShadowMapFoliage8  = this.Effect.GetTechniqueByName("ShadowMapFoliage8");
            this.ShadowMapFoliage16 = this.Effect.GetTechniqueByName("ShadowMapFoliage16");

            this.worldViewProjectionVar = this.Effect.GetVariableMatrix("gWorldViewProjection");
            this.eyePositionWorldVar    = this.Effect.GetVariableVector("gEyePositionWorld");
            this.startRadiusVar         = this.Effect.GetVariableScalar("gStartRadius");
            this.endRadiusVar           = this.Effect.GetVariableScalar("gEndRadius");
            this.textureCountVar        = this.Effect.GetVariableScalar("gTextureCount");
            this.texturesVar            = this.Effect.GetVariableTexture("gTextureArray");

            this.windDirectionVar = this.Effect.GetVariableVector("gWindDirection");
            this.windStrengthVar  = this.Effect.GetVariableScalar("gWindStrength");
            this.totalTimeVar     = this.Effect.GetVariableScalar("gTotalTime");
            this.deltaVar         = this.Effect.GetVariableVector("gDelta");
            this.textureRandomVar = this.Effect.GetVariableTexture("gTextureRandom");
        }
Esempio n. 12
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="graphics">Graphics device</param>
        /// <param name="effect">Effect code</param>
        /// <param name="compile">Compile code</param>
        public EffectDefaultClouds(Graphics graphics, byte[] effect, bool compile)
            : base(graphics, effect, compile)
        {
            this.CloudsStatic    = this.Effect.GetTechniqueByName("CloudsStatic");
            this.CloudsPerturbed = this.Effect.GetTechniqueByName("CloudsPerturbed");

            this.firstTextureVar  = this.Effect.GetVariableTexture("gCloudTexture1");
            this.secondTextureVar = this.Effect.GetVariableTexture("gCloudTexture2");

            this.worldViewProjectionVar = this.Effect.GetVariableMatrix("gWorldViewProjection");
            this.brightnessVar          = this.Effect.GetVariableScalar("gBrightness");
            this.colorVar          = this.Effect.GetVariableVector("gColor");
            this.fadingDistanceVar = this.Effect.GetVariableScalar("gFadingDistance");

            this.firstTranslationVar  = this.Effect.GetVariableVector("gFirstTranslation");
            this.secondTranslationVar = this.Effect.GetVariableVector("gSecondTranslation");

            this.translationVar = this.Effect.GetVariableScalar("gTranslation");
            this.scaleVar       = this.Effect.GetVariableScalar("gScale");
        }
Esempio n. 13
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="graphics">Graphics device</param>
        /// <param name="effect">Effect code</param>
        /// <param name="compile">Compile code</param>
        public EffectDefaultWater(Graphics graphics, byte[] effect, bool compile)
            : base(graphics, effect, compile)
        {
            this.Water = this.Effect.GetTechniqueByName("Water");

            this.worldVar = this.Effect.GetVariableMatrix("gVSWorld");
            this.worldViewProjectionVar = this.Effect.GetVariableMatrix("gVSWorldViewProjection");

            this.eyePositionWorldVar = this.Effect.GetVariableVector("gPSEyePositionWorld");
            this.baseColorVar        = this.Effect.GetVariableVector("gPSBaseColor");
            this.waterColorVar       = this.Effect.GetVariableVector("gPSWaterColor");
            this.waveParamsVar       = this.Effect.GetVariableVector("gPSWaveParams");
            this.ambientVar          = this.Effect.GetVariableScalar("gPSAmbient");
            this.fogRangeVar         = this.Effect.GetVariableScalar("gPSFogRange");
            this.fogStartVar         = this.Effect.GetVariableScalar("gPSFogStart");
            this.fogColorVar         = this.Effect.GetVariableVector("gPSFogColor");
            this.totalTimeVar        = this.Effect.GetVariableScalar("gPSTotalTime");
            this.iterParamsVar       = this.Effect.GetVariableVector("gPSIters");
            this.lightCountVar       = this.Effect.GetVariableScalar("gPSLightCount");
            this.dirLightsVar        = this.Effect.GetVariable("gPSDirLights");
        }
Esempio n. 14
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="graphics">Graphics device</param>
        /// <param name="effect">Effect code</param>
        /// <param name="compile">Compile code</param>
        public EffectDefaultBasic(Graphics graphics, byte[] effect, bool compile)
            : base(graphics, effect, compile)
        {
            this.PositionColor                                 = this.Effect.GetTechniqueByName("PositionColor");
            this.PositionColorSkinned                          = this.Effect.GetTechniqueByName("PositionColorSkinned");
            this.PositionNormalColor                           = this.Effect.GetTechniqueByName("PositionNormalColor");
            this.PositionNormalColorSkinned                    = this.Effect.GetTechniqueByName("PositionNormalColorSkinned");
            this.PositionTexture                               = this.Effect.GetTechniqueByName("PositionTexture");
            this.PositionTextureNOALPHA                        = this.Effect.GetTechniqueByName("PositionTextureNOALPHA");
            this.PositionTextureRED                            = this.Effect.GetTechniqueByName("PositionTextureRED");
            this.PositionTextureGREEN                          = this.Effect.GetTechniqueByName("PositionTextureGREEN");
            this.PositionTextureBLUE                           = this.Effect.GetTechniqueByName("PositionTextureBLUE");
            this.PositionTextureALPHA                          = this.Effect.GetTechniqueByName("PositionTextureALPHA");
            this.PositionTextureSkinned                        = this.Effect.GetTechniqueByName("PositionTextureSkinned");
            this.PositionNormalTexture                         = this.Effect.GetTechniqueByName("PositionNormalTexture");
            this.PositionNormalTextureSkinned                  = this.Effect.GetTechniqueByName("PositionNormalTextureSkinned");
            this.PositionNormalTextureTangent                  = this.Effect.GetTechniqueByName("PositionNormalTextureTangent");
            this.PositionNormalTextureTangentSkinned           = this.Effect.GetTechniqueByName("PositionNormalTextureTangentSkinned");
            this.InstancingPositionColor                       = this.Effect.GetTechniqueByName("PositionColorI");
            this.InstancingPositionColorSkinned                = this.Effect.GetTechniqueByName("PositionColorSkinnedI");
            this.InstancingPositionNormalColor                 = this.Effect.GetTechniqueByName("PositionNormalColorI");
            this.InstancingPositionNormalColorSkinned          = this.Effect.GetTechniqueByName("PositionNormalColorSkinnedI");
            this.InstancingPositionTexture                     = this.Effect.GetTechniqueByName("PositionTextureI");
            this.InstancingPositionTextureNOALPHA              = this.Effect.GetTechniqueByName("PositionTextureNOALPHAI");
            this.InstancingPositionTextureRED                  = this.Effect.GetTechniqueByName("PositionTextureREDI");
            this.InstancingPositionTextureGREEN                = this.Effect.GetTechniqueByName("PositionTextureGREENI");
            this.InstancingPositionTextureBLUE                 = this.Effect.GetTechniqueByName("PositionTextureBLUEI");
            this.InstancingPositionTextureALPHA                = this.Effect.GetTechniqueByName("PositionTextureALPHAI");
            this.InstancingPositionTextureSkinned              = this.Effect.GetTechniqueByName("PositionTextureSkinnedI");
            this.InstancingPositionNormalTexture               = this.Effect.GetTechniqueByName("PositionNormalTextureI");
            this.InstancingPositionNormalTextureSkinned        = this.Effect.GetTechniqueByName("PositionNormalTextureSkinnedI");
            this.InstancingPositionNormalTextureTangent        = this.Effect.GetTechniqueByName("PositionNormalTextureTangentI");
            this.InstancingPositionNormalTextureTangentSkinned = this.Effect.GetTechniqueByName("PositionNormalTextureTangentSkinnedI");

            //Globals
            this.animationPaletteWidthVar = this.Effect.GetVariableScalar("gAnimationPaletteWidth");
            this.animationPaletteVar      = this.Effect.GetVariableTexture("gAnimationPalette");
            this.materialPaletteWidthVar  = this.Effect.GetVariableScalar("gMaterialPaletteWidth");
            this.materialPaletteVar       = this.Effect.GetVariableTexture("gMaterialPalette");
            this.lodVar = this.Effect.GetVariableVector("gLOD");

            //Per frame
            this.worldVar = this.Effect.GetVariableMatrix("gVSWorld");
            this.worldViewProjectionVar  = this.Effect.GetVariableMatrix("gVSWorldViewProjection");
            this.eyePositionWorldVar     = this.Effect.GetVariableVector("gPSEyePositionWorld");
            this.hemiLightVar            = this.Effect.GetVariable("gPSHemiLight");
            this.dirLightsVar            = this.Effect.GetVariable("gPSDirLights");
            this.pointLightsVar          = this.Effect.GetVariable("gPSPointLights");
            this.spotLightsVar           = this.Effect.GetVariable("gPSSpotLights");
            this.lightCountVar           = this.Effect.GetVariableVector("gPSLightCount");
            this.fogStartVar             = this.Effect.GetVariableScalar("gPSFogStart");
            this.fogRangeVar             = this.Effect.GetVariableScalar("gPSFogRange");
            this.fogColorVar             = this.Effect.GetVariableVector("gPSFogColor");
            this.shadowMapDirectionalVar = this.Effect.GetVariableTexture("gPSShadowMapDir");
            this.shadowMapPointVar       = this.Effect.GetVariableTexture("gPSShadowMapPoint");
            this.shadowMapSpotVar        = this.Effect.GetVariableTexture("gPSShadowMapSpot");

            //Per object
            this.useColorDiffuseVar  = this.Effect.GetVariableScalar("gPSUseColorDiffuse");
            this.useColorSpecularVar = this.Effect.GetVariableScalar("gPSUseColorSpecular");
            this.diffuseMapVar       = this.Effect.GetVariableTexture("gPSDiffuseMapArray");
            this.normalMapVar        = this.Effect.GetVariableTexture("gPSNormalMapArray");
            this.specularMapVar      = this.Effect.GetVariableTexture("gPSSpecularMapArray");

            //Per instance
            this.animationOffsetVar = this.Effect.GetVariableScalar("gVSAnimationOffset");
            this.materialIndexVar   = this.Effect.GetVariableScalar("gPSMaterialIndex");
            this.textureIndexVar    = this.Effect.GetVariableScalar("gPSTextureIndex");

            //Samplers
            this.samplerDiffuseVar  = this.Effect.GetVariableSampler("SamplerDiffuse");
            this.samplerSpecularVar = this.Effect.GetVariableSampler("SamplerSpecular");
            this.samplerNormalVar   = this.Effect.GetVariableSampler("SamplerNormal");

            //Initialize states
            this.samplerPoint       = EngineSamplerState.Point(graphics);
            this.samplerLinear      = EngineSamplerState.Linear(graphics);
            this.samplerAnisotropic = EngineSamplerState.Anisotropic(graphics, 4);
        }