public void Initialize(DeviceContextHolder contextHolder) {
            _effect = contextHolder.GetEffect<EffectDeferredGObject>();

            if (_kn5Material == null) return;

            _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
            };
        }
Exemple #2
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
            };
        }
        public override void Initialize(IDeviceContextHolder contextHolder)
        {
            _txNormal        = Kn5Material.ShaderName.Contains("damage") ? null : GetTexture("txNormal", contextHolder);
            _txMaps          = GetTexture("txMaps", contextHolder);
            _txDetails       = GetTexture("txDetail", contextHolder);
            _txDetailsNormal = GetTexture("txNormalDetail", contextHolder);

            if (_txNormal != null)
            {
                Flags |= EffectSimpleMaterial.HasNormalMap;
            }

            if (Equals(Kn5Material.GetPropertyValueAByName("isAdditive"), 2.0f))
            {
                Flags |= EffectSimpleMaterial.IsCarpaint;
            }

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

            if (Kn5Material.ShaderName.Contains("_AT"))
            {
                Flags |= EffectSimpleMaterial.UseNormalAlphaAsAlpha;
            }

            _material = new EffectSimpleMaterial.MapsMaterial {
                DetailsUvMultipler = Kn5Material.GetPropertyValueAByName("detailUVMultiplier"),
                DetailsNormalBlend = _txDetailsNormal == null ? 0f : Kn5Material.GetPropertyValueAByName("detailNormalBlend")
            };

            base.Initialize(contextHolder);
        }
        public static bool SetResource(this EffectOnlyResourceVariable variable, IRenderableTexture texture)
        {
            var res = texture?.Resource;

            variable.SetResource(res);
            return(res != null);
        }
 internal GenericMaterialDark(bool isBlending) : base(new Kn5MaterialDescription(new Kn5Material {
     BlendMode = isBlending ? Kn5MaterialBlendMode.AlphaBlend : Kn5MaterialBlendMode.Opaque
 }))
 {
     Material  = default(EffectDarkMaterial.StandartMaterial);
     TxDiffuse = null;
 }
        public override void Initialize(DeviceContextHolder contextHolder) {
            _txNormal = Kn5Material.ShaderName.Contains("damage") ? null : GetTexture("txNormal", contextHolder);
            _txMaps = GetTexture("txMaps", contextHolder);
            _txDetails = GetTexture("txDetail", contextHolder);
            _txDetailsNormal = GetTexture("txNormalDetail", contextHolder);

            if (_txNormal != null) {
                Flags |= EffectSimpleMaterial.HasNormalMap;
            }
            
            if (Equals(Kn5Material.GetPropertyValueAByName("isAdditive"), 2.0f)) {
                Flags |= EffectSimpleMaterial.IsCarpaint;
            }

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

            if (Kn5Material.ShaderName.Contains("_AT")) {
                Flags |= EffectSimpleMaterial.UseNormalAlphaAsAlpha;
            }

            _material = new EffectSimpleMaterial.MapsMaterial {
                DetailsUvMultipler = Kn5Material.GetPropertyValueAByName("detailUVMultiplier"),
                DetailsNormalBlend = _txDetailsNormal == null ? 0f : Kn5Material.GetPropertyValueAByName("detailNormalBlend")
            };

            base.Initialize(contextHolder);
        }
 public void EnsureInitialized(IDeviceContextHolder contextHolder)
 {
     if (_effect != null)
     {
         return;
     }
     _effect    = contextHolder.GetEffect <EffectSimpleMaterial>();
     _txDiffuse = contextHolder.Get <ITexturesProvider>().GetTexture(contextHolder, _description.Filename);
 }
Exemple #8
0
        protected override void Initialize(IDeviceContextHolder contextHolder)
        {
            _txNormal = GetTexture("txNormal", contextHolder);
            if (Kn5Material.GetPropertyValueAByName("nmObjectSpace") != 0)
            {
                Flags |= EffectDarkMaterial.NmObjectSpace;
            }

            base.Initialize(contextHolder);
        }
Exemple #9
0
        public ShaderResourceView GetValue([NotNull] DeviceContextHolder device, [CanBeNull] IPaintShopObject obj)
        {
            if (obj != _object)
            {
                _object  = obj;
                _texture = _object?.GetTexture(device, TextureName);
            }

            return(_texture?.Resource);
        }
        public override void Initialize(IDeviceContextHolder contextHolder)
        {
            _txNormal      = GetTexture("txNormal", contextHolder);
            _txDiffuseBlur = GetTexture("txBlur", contextHolder);
            _txNormalBlur  = GetTexture("txNormalBlur", contextHolder);

            _material = new EffectDarkMaterial.TyresMaterial {
                BlurLevel  = 0f,
                DirtyLevel = 0f
            };

            base.Initialize(contextHolder);
        }
Exemple #11
0
        private bool TryGetTexture(string name, out IRenderableTexture result)
        {
            foreach (var texture in Textures.Values)
            {
                if (string.Equals(texture.Name, name, StringComparison.OrdinalIgnoreCase))
                {
                    result = texture;
                    return(true);
                }
            }

            result = null;
            return(false);
        }
Exemple #12
0
        protected override void Initialize(IDeviceContextHolder contextHolder)
        {
            _txNormal        = Kn5Material.ShaderName.Contains("damage") ? null : GetTexture("txNormal", contextHolder);
            _txMaps          = GetTexture("txMaps", contextHolder);
            _txDetails       = GetTexture("txDetail", contextHolder);
            _txDetailsNormal = GetTexture("txNormalDetail", contextHolder);

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

            if (Equals(Kn5Material.GetPropertyValueAByName("isAdditive"), 2.0f))
            {
                Flags |= EffectDarkMaterial.IsCarpaint;
            }

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

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

            if (Kn5Material.ShaderName == "ksSkinnedMesh")
            {
                Flags |= EffectDarkMaterial.UseNormalAlphaAsAlpha;
            }

            _material = new EffectDarkMaterial.MapsMaterial {
                DetailsUvMultiplier = Kn5Material.GetPropertyValueAByName("detailUVMultiplier"),
                DetailsNormalBlend  = _txDetailsNormal == null ? 0f : Kn5Material.GetPropertyValueAByName("detailNormalBlend"),
                SunSpecular         = Kn5Material.GetPropertyValueAByName("sunSpecular"),
                SunSpecularExp      = Kn5Material.GetPropertyValueAByName("sunSpecularEXP"),
            };

            base.Initialize(contextHolder);
        }
Exemple #13
0
        public override void Initialize(DeviceContextHolder contextHolder) {
            base.Initialize(contextHolder);

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

            _txDiffuse = GetTexture("txDiffuse", contextHolder);
            _material = new EffectSimpleMaterial.StandartMaterial {
                Ambient = Kn5Material.GetPropertyValueAByName("ksAmbient"),
                Diffuse = Kn5Material.GetPropertyValueAByName("ksDiffuse"),
                Specular = Kn5Material.GetPropertyValueAByName("ksSpecular"),
                SpecularExp = Kn5Material.GetPropertyValueAByName("ksSpecularEXP"),
                Emissive = Kn5Material.GetPropertyValueCByName("ksEmissive"),
                Flags = Flags
            };
        }
Exemple #14
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
            };
        }
Exemple #15
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
            };
        }
Exemple #16
0
 public void Initialize(IDeviceContextHolder contextHolder)
 {
     _effect    = contextHolder.GetEffect <EffectSimpleMaterial>();
     _txDiffuse = contextHolder.Get <ITexturesProvider>().GetTexture(contextHolder, _description.Filename);
 }
        public void Initialize(DeviceContextHolder contextHolder) {
            _effect = contextHolder.GetEffect<EffectSimpleMaterial>();

            var texturesProvider = contextHolder.Get<TexturesProvider>();
            _txDiffuse = texturesProvider.GetTexture(_filename, contextHolder);
        }
        public void Initialize(DeviceContextHolder contextHolder) {
            _effect = contextHolder.GetEffect<EffectDeferredGObject>();

            var texturesProvider = contextHolder.Get<TexturesProvider>();
            _txDiffuse = texturesProvider.GetTexture(_filename, contextHolder);
        }
Exemple #19
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
            };
        }
 public void Initialize(IDeviceContextHolder contextHolder)
 {
     _effect    = contextHolder.GetEffect <EffectDeferredGObject>();
     _txDiffuse = contextHolder.Get <ITexturesProvider>().GetTexture(contextHolder, _filename);
 }
 public override void Initialize(DeviceContextHolder contextHolder) {
     _txNormal = GetTexture("txNormal", contextHolder);
     base.Initialize(contextHolder);
 }
 protected override void Initialize(IDeviceContextHolder contextHolder)
 {
     _txNormal = GetTexture("txNormal", contextHolder);
     base.Initialize(contextHolder);
 }
Exemple #23
0
 public static void SetResource(this EffectResourceVariable variable, IRenderableTexture texture) {
     variable.SetResource(texture?.Resource);
 }