Пример #1
0
        protected override void LoadContent()
        {
            base.LoadContent();
            GestionnaireDeTextures = Game.Services.GetService(typeof(RessourcesManager <Texture2D>)) as RessourcesManager <Texture2D>;
            GestionnaireDeShaders  = Game.Services.GetService(typeof(RessourcesManager <Effect>)) as RessourcesManager <Effect>;
            EffetAffichage         = GestionnaireDeShaders.Find(NomEffetAffichage);
            TextureBumpMap         = NomTextureBumpMap != null?GestionnaireDeTextures.Find(NomTextureBumpMap) : null;

            LampeDePoche      = Game.Services.GetService(typeof(LampeTorche)) as LampeTorche;
            MatériauAffichage = new MatériauÉclairé(CaméraJeu, LumièreJeu, TextureBumpMap, CouleurLumièreAmbiante, CouleurLumièreDiffuse,
                                                    CouleurLumièreEmissive, CouleurLumièreSpéculaire, LumièreJeu.Intensité, LampeDePoche);
        }
 static void InitialiserParamètresShaderPhong(Effect effetLocal, InfoModèle infoModèle, MatériauÉclairé MatériauAffichage)
 {
     effetLocal.Parameters["Monde"].SetValue(MatériauAffichage.Monde);
     effetLocal.Parameters["MondeVueProjection"].SetValue(MatériauAffichage.MondeVueProjection);
     effetLocal.Parameters["PositionCamera"].SetValue(MatériauAffichage.CaméraJeu.Position);
     effetLocal.Parameters["PositionLumiere"].SetValue(MatériauAffichage.LumièreJeu.Position);
     effetLocal.Parameters["DirectionLumiere"].SetValue(MatériauAffichage.Position - MatériauAffichage.LumièreJeu.Position);
     effetLocal.Parameters["CarreDistanceLumiere"].SetValue(MatériauAffichage.CarréDistanceLumière);
     effetLocal.Parameters["CouleurLumiereAmbiante"].SetValue(infoModèle.CouleurAmbiante);
     effetLocal.Parameters["CouleurLumiereDiffuse"].SetValue(infoModèle.CouleurDiffuse);
     effetLocal.Parameters["CouleurLumiereSpeculaire"].SetValue(infoModèle.CouleurSpéculaire);
     effetLocal.Parameters["PuissanceSpeculaire"].SetValue(infoModèle.PuissanceSpéculaire);
     effetLocal.Parameters["IntensiteLumiereDiffuse"].SetValue(infoModèle.IntensitéLumièreDiffuse);
     effetLocal.Parameters["IntensiteLumiereSpeculaire"].SetValue(infoModèle.IntensitéLumièreSpéculaire);
     effetLocal.Parameters["Texture"].SetValue(infoModèle.Texture);
     effetLocal.Parameters["TextureActive"].SetValue(infoModèle.TextureActive);
 }
 static void InitialiserParamètresShaderBlinnPhongBumpMap(Effect effetLocal, InfoModèle infoModèle, MatériauÉclairé MatériauAffichage)
 {
     effetLocal.Parameters["Monde"].SetValue(MatériauAffichage.Monde);
     effetLocal.Parameters["MondeVueProjection"].SetValue(MatériauAffichage.MondeVueProjection);
     effetLocal.Parameters["MondeTransposeeInverse"].SetValue(MatériauAffichage.MondeTransposéeInverse);
     effetLocal.Parameters["PositionCamera"].SetValue(MatériauAffichage.CaméraJeu.Position);
     effetLocal.Parameters["DirectionLumiere"].SetValue(MatériauAffichage.Position - MatériauAffichage.LumièreJeu.Position);
     effetLocal.Parameters["CouleurLumiere"].SetValue(MatériauAffichage.LumièreJeu.Couleur);
     effetLocal.Parameters["CouleurLumiereAmbiante"].SetValue(infoModèle.CouleurAmbiante);
     effetLocal.Parameters["CouleurLumiereDiffuse"].SetValue(infoModèle.CouleurDiffuse);
     effetLocal.Parameters["CouleurLumiereEmissive"].SetValue(infoModèle.CouleurEmissive);
     effetLocal.Parameters["CouleurLumiereSpeculaire"].SetValue(infoModèle.CouleurSpéculaire);
     effetLocal.Parameters["PuissanceSpeculaire"].SetValue(infoModèle.PuissanceSpéculaire);
     effetLocal.Parameters["Texture"].SetValue(infoModèle.Texture);
     effetLocal.Parameters["TextureActive"].SetValue(infoModèle.TextureActive);
     effetLocal.Parameters["BumpMap"].SetValue(MatériauAffichage.BumpMap);
 }
 static void InitialiserParamètresShaderBase(Effect effetLocal, InfoModèle infoModèle, MatériauÉclairé MatériauAffichage)
 {
     effetLocal.Parameters["MondeVueProjection"].SetValue(MatériauAffichage.MondeVueProjection);
     effetLocal.Parameters["CouleurLumiereDiffuse"].SetValue(infoModèle.CouleurDiffuse);
     effetLocal.Parameters["Texture"].SetValue(infoModèle.Texture);
     effetLocal.Parameters["TextureActive"].SetValue(infoModèle.TextureActive);
 }
 static void InitialiserParamètresShaderTeinteDeGris(Effect effetLocal, InfoModèle infoModèle, MatériauÉclairé MatériauAffichage)
 {
     effetLocal.Parameters["Monde"].SetValue(MatériauAffichage.Monde);
     effetLocal.Parameters["MondeVueProjection"].SetValue(MatériauAffichage.MondeVueProjection);
     effetLocal.Parameters["PositionCamera"].SetValue(MatériauAffichage.CaméraJeu.Position);
     effetLocal.Parameters["PositionLumiere"].SetValue(MatériauAffichage.LumièreJeu.Position);
     effetLocal.Parameters["RayonLumiere"].SetValue(MatériauAffichage.LumièreJeu.Rayon);
     effetLocal.Parameters["CouleurLumiereDiffuse"].SetValue(infoModèle.CouleurDiffuse);
     effetLocal.Parameters["Texture"].SetValue(infoModèle.Texture);
     effetLocal.Parameters["TextureActive"].SetValue(infoModèle.TextureActive);
 }
        static void InitialiserParamètresShaderSpotLight(Effect effetLocal, InfoModèle infoModèle, MatériauÉclairé MatériauAffichage)
        {
            effetLocal.Parameters["Monde"].SetValue(MatériauAffichage.Monde);
            effetLocal.Parameters["MondeVueProjection"].SetValue(MatériauAffichage.MondeVueProjection);
            effetLocal.Parameters["PositionLumiere"].SetValue(MatériauAffichage.LumièreJeu.Position);
            effetLocal.Parameters["RayonLumiere"].SetValue(MatériauAffichage.LumièreJeu.Rayon);
            effetLocal.Parameters["CouleurLumiereDiffuse"].SetValue(infoModèle.CouleurDiffuse);
            effetLocal.Parameters["Texture"].SetValue(infoModèle.Texture);
            effetLocal.Parameters["TextureActive"].SetValue(infoModèle.TextureActive);

            effetLocal.Parameters["Alpha"].SetValue(MathHelper.Pi / 12f);
            effetLocal.Parameters["PositionLookAt"].SetValue(MatériauAffichage.CaméraJeu.CameraLookAt);
            effetLocal.Parameters["Intensite"].SetValue(MatériauAffichage.LampeDePoche.IntensitéBatterie);
        }
        public static void InitialiserParamètresShader(string nomEffet, Effect effetLocal, InfoModèle infoModèle, MatériauÉclairé MatériauAffichage)
        {
            switch (nomEffet)
            {
            case "BASE":
                InitialiserParamètresShaderBase(effetLocal, infoModèle, MatériauAffichage);
                break;

            case "BLINN-PHONG":
                InitialiserParamètresShaderBlinnPhong(effetLocal, infoModèle, MatériauAffichage);
                break;

            case "BLINN-PHONG-BUMPMAP":
                InitialiserParamètresShaderBlinnPhongBumpMap(effetLocal, infoModèle, MatériauAffichage);
                break;

            case "PHONG":
                InitialiserParamètresShaderPhong(effetLocal, infoModèle, MatériauAffichage);
                break;

            case "PHONG-JEAN":
                InitialiserParamètresShaderPhongJean(effetLocal, infoModèle, MatériauAffichage);
                break;

            case "SPOTLIGHT":
                InitialiserParamètresShaderSpotLight(effetLocal, infoModèle, MatériauAffichage);
                break;

            default:
                throw new ArgumentException("Paramètres de l'effet d'affichage inconnus!");
            }
        }