Example #1
0
        public void SetEmissive(Vector3 value)
        {
            SetEmissiveNext(value);

            var material = _material;

            material.Emissive = value;
            _material         = material;
        }
Example #2
0
        public void Initialize(IDeviceContextHolder contextHolder)
        {
            _effect = contextHolder.GetEffect <EffectDeferredGObject>();

            _txDiffuse       = GetTexture("txDiffuse", contextHolder);
            _txNormal        = Kn5Material.ShaderName.Contains("damage") ? null : GetTexture("txNormal", contextHolder);
            _txMaps          = GetTexture("txMaps", contextHolder);
            _txDetails       = GetTexture("txDetail", contextHolder);
            _txDetailsNormal = GetTexture("txNormalDetail", contextHolder);

            uint flags = 0;

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

            if (_txMaps != null)
            {
                flags |= EffectDeferredGObject.HasMaps;
            }

            if (Kn5Material.GetPropertyValueAByName("useDetail") > 0)
            {
                flags |= EffectDeferredGObject.HasDetailsMap;
            }

            if (_txDetailsNormal != null)
            {
                flags |= EffectDeferredGObject.HasDetailsNormalMap;
            }

            if (Kn5Material.ShaderName == "ksTyres" || Kn5Material.ShaderName == "ksBrakeDisc")
            {
                flags |= EffectDeferredGObject.UseDiffuseAlphaAsMap;
            }

            if (IsBlending)
            {
                flags |= EffectDeferredGObject.AlphaBlend;
            }

            if (Equals(Kn5Material.GetPropertyValueAByName("isAdditive"), 1.0f))
            {
                flags |= EffectDeferredGObject.IsAdditive;
            }

            var specularExp = Kn5Material.GetPropertyValueAByName("ksSpecularEXP");

            if (Equals(Kn5Material.GetPropertyValueAByName("isAdditive"), 2.0f))
            {
                specularExp = 250f;
            }

            _material = new EffectDeferredGObject.Material {
                Ambient            = Kn5Material.GetPropertyValueAByName("ksAmbient"),
                Diffuse            = Kn5Material.GetPropertyValueAByName("ksDiffuse"),
                Specular           = Kn5Material.GetPropertyValueAByName("ksSpecular"),
                SpecularExp        = specularExp,
                Emissive           = Kn5Material.GetPropertyValueCByName("ksEmissive"),
                FresnelC           = Kn5Material.GetPropertyValueAByName("fresnelC"),
                FresnelExp         = Kn5Material.GetPropertyValueAByName("fresnelEXP"),
                FresnelMaxLevel    = Kn5Material.GetPropertyValueAByName("fresnelMaxLevel"),
                DetailsUvMultipler = Kn5Material.GetPropertyValueAByName("detailUVMultiplier"),
                DetailsNormalBlend = Kn5Material.GetPropertyValueAByName("detailNormalBlend"),
                Flags = flags
            };
        }
Example #3
0
 protected Kn5MaterialDeferred(EffectDeferredGObject.Material material, bool isBlending)
 {
     _material  = material;
     IsBlending = isBlending;
 }