示例#1
0
        // Initialize the effects so the models look reasonable and the lighting
        // Is as it is in the directx Mesh viewer
        private void InitializeEffects(Model model)
        {
            foreach (ModelMesh mesh in model.Meshes)
            {
                foreach (Effect ef in mesh.Effects)
                {
                    effects.Add(ef);
                    ef.Parameters["View"].SetValue(cam.View);
                    ef.Parameters["EyePosition"].SetValue(Matrix.Invert(cam.View).Translation);
                    ef.Parameters["Projection"].SetValue(cam.Projection);
                    ef.Parameters["World"].SetValue(cam.ModelWorld);

                    if (ef is BasicPaletteEffect)
                    {
                        BasicPaletteEffect effect = (BasicPaletteEffect)ef;

                        effect.EnableDefaultLighting();
                        effect.DirectionalLight0.Direction = new Vector3(0, 0, -1);
                    }
                    else if (ef is BasicEffect)
                    {
                        BasicEffect effect = (BasicEffect)ef;
                        effect.EnableDefaultLighting();
                        effect.DirectionalLight0.Direction = new Vector3(0, 0, -1);
                        effect.DirectionalLight1.Enabled   = false;
                        effect.DirectionalLight2.Enabled   = false;
                        effect.AmbientLightColor           = Color.Black.ToVector3();
                        effect.EmissiveColor = Color.Black.ToVector3();
                    }
                }
            }
        }
示例#2
0
            internal BasicDirectionalLight(BasicPaletteEffect effect, int lightNum)
            {
                this.effect = effect;
                string lightString = "DirLight" + lightNum;

                this.lightDirParam     = effect.Parameters[lightString + "Direction"];
                this.difColorParam     = effect.Parameters[lightString + "DiffuseColor"];
                this.specColorParam    = effect.Parameters[lightString + "SpecularColor"];
                this.lightEnabledParam = effect.Parameters[lightString + "Enable"];
            }
示例#3
0
 internal BasicDirectionalLight(BasicPaletteEffect effect, int lightNum)
 {
     this.effect = effect;
     string lightString = "DirLight" + lightNum;
     this.lightDirParam = effect.Parameters[lightString + "Direction"];
     this.difColorParam = effect.Parameters[lightString + "DiffuseColor"];
     this.specColorParam = effect.Parameters[lightString + "SpecularColor"];
     this.lightEnabledParam = effect.Parameters[lightString + "Enable"];
 }
示例#4
0
 private void SetParamsFromBasicLight(Microsoft.Xna.Framework.Graphics.BasicDirectionalLight
     source,
     BasicPaletteEffect.BasicDirectionalLight target)
 {
     target.SpecularColor = source.SpecularColor;
     target.Enabled = source.Enabled;
     target.Direction = source.Direction;
     target.DiffuseColor = source.DiffuseColor;
 }