/// <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");
        }
示例#2
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");
        }
        /// <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 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");
        }
        /// <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);
        }