Example #1
0
        public void Initialize(IDeviceContextHolder contextHolder)
        {
            _effect    = contextHolder.GetEffect <EffectDarkMaterial>();
            _txDiffuse = GetTexture("txDiffuse", contextHolder);
            _txNormal  = Kn5Material.ShaderName.Contains("damage") ? null : GetTexture("txNormal", contextHolder);

            uint flags = 0;

            if (Kn5Material.AlphaTested)
            {
                flags |= EffectDarkMaterial.AlphaTest;
            }

            if (_txNormal != null)
            {
                flags |= EffectDarkMaterial.HasNormalMap;
            }

            if (Kn5Material.ShaderName.Contains("_AT"))
            {
                flags |= EffectDarkMaterial.UseNormalAlphaAsAlpha;
            }

            _material = new EffectDarkMaterial.StandartMaterial {
                Ambient     = Kn5Material.GetPropertyValueAByName("ksAmbient"),
                Diffuse     = Kn5Material.GetPropertyValueAByName("ksDiffuse"),
                Specular    = Kn5Material.GetPropertyValueAByName("ksSpecular"),
                SpecularExp = Kn5Material.GetPropertyValueAByName("ksSpecularEXP"),
                Emissive    = Kn5Material.GetPropertyValueCByName("ksEmissive"),
                Flags       = flags
            };
        }
Example #2
0
 internal GenericMaterialDark(bool isBlending) : base(new Kn5MaterialDescription(new Kn5Material {
     BlendMode = isBlending ? Kn5MaterialBlendMode.AlphaBlend : Kn5MaterialBlendMode.Opaque
 }))
 {
     Material  = default(EffectDarkMaterial.StandartMaterial);
     TxDiffuse = null;
 }
Example #3
0
        public void SetEmissive(Vector3 value)
        {
            SetEmissiveNext(value);

            var material = _material;

            material.Emissive = value;
            _material         = material;
        }
Example #4
0
        protected override void Initialize(IDeviceContextHolder contextHolder)
        {
            _material = new EffectDarkMaterial.StandartMaterial {
                Ambient     = 0,
                Diffuse     = 0,
                Specular    = 1,
                SpecularExp = 1000,
                Emissive    = Vector3.Zero,
                Flags       = 0
            };

            _reflMaterial = new EffectDarkMaterial.ReflectiveMaterial {
                FresnelC        = 1,
                FresnelExp      = 1,
                FresnelMaxLevel = 1
            };

            base.Initialize(contextHolder);
        }
Example #5
0
        public override void Initialize(IDeviceContextHolder contextHolder)
        {
            base.Initialize(contextHolder);

            if (Kn5Material.AlphaTested)
            {
                Flags |= EffectDarkMaterial.AlphaTest;
            }

            _txDiffuse = GetTexture("txDiffuse", contextHolder);
            _material  = new EffectDarkMaterial.StandartMaterial {
                Ambient     = Kn5Material.GetPropertyValueAByName("ksAmbient"),
                Diffuse     = Kn5Material.GetPropertyValueAByName("ksDiffuse"),
                Specular    = Kn5Material.GetPropertyValueAByName("ksSpecular"),
                SpecularExp = Kn5Material.GetPropertyValueAByName("ksSpecularEXP"),
                Emissive    = Kn5Material.GetPropertyValueCByName("ksEmissive"),
                Flags       = Flags
            };
        }
Example #6
0
        public void EnsureInitialized(IDeviceContextHolder contextHolder)
        {
            if (_effect != null)
            {
                return;
            }

            _effect    = contextHolder.GetEffect <EffectDarkMaterial>();
            _txDiffuse = GetTexture("txDiffuse", contextHolder);
            _txNormal  = Kn5Material.ShaderName.Contains("damage") ? null : GetTexture("txNormal", contextHolder);

            uint flags = 0;

            if (Kn5Material.AlphaTested)
            {
                flags |= EffectDarkMaterial.AlphaTest;
            }

            if (_txNormal != null)
            {
                flags |= EffectDarkMaterial.HasNormalMap;
                if (Kn5Material.GetPropertyValueAByName("nmObjectSpace") != 0)
                {
                    flags |= EffectDarkMaterial.NmObjectSpace;
                }
            }

            if (Kn5Material.ShaderName.Contains("_AT") || Kn5Material.ShaderName == "ksSkinnedMesh")
            {
                flags |= EffectDarkMaterial.UseNormalAlphaAsAlpha;
            }

            _emissive = Kn5Material.GetPropertyValueCByName("ksEmissive");
            _material = new EffectDarkMaterial.StandartMaterial {
                Ambient     = Kn5Material.GetPropertyValueAByName("ksAmbient"),
                Diffuse     = Kn5Material.GetPropertyValueAByName("ksDiffuse"),
                Specular    = Kn5Material.GetPropertyValueAByName("ksSpecular"),
                SpecularExp = Kn5Material.GetPropertyValueAByName("ksSpecularEXP"),
                Flags       = flags
            };
        }