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 override void Initialize(IDeviceContextHolder contextHolder) { _material = new EffectSimpleMaterial.AlphaMaterial { Alpha = Kn5Material.GetPropertyValueAByName("alpha") }; base.Initialize(contextHolder); }
protected override void Initialize(IDeviceContextHolder contextHolder) { _material = new EffectDarkMaterial.NmUvMultMaterial { DiffuseMultiplier = Kn5Material.GetPropertyValueAByName("diffuseMult"), NormalMultiplier = Kn5Material.GetPropertyValueAByName("normalMult") }; base.Initialize(contextHolder); }
protected override void Initialize(IDeviceContextHolder contextHolder) { _txNormal = GetTexture("txNormal", contextHolder); if (Kn5Material.GetPropertyValueAByName("nmObjectSpace") != 0) { Flags |= EffectDarkMaterial.NmObjectSpace; } base.Initialize(contextHolder); }
protected override void Initialize(IDeviceContextHolder contextHolder) { if (Equals(Kn5Material.GetPropertyValueAByName("isAdditive"), 1.0f)) { Flags |= EffectSimpleMaterial.IsAdditive; } _material = new EffectSimpleMaterial.ReflectiveMaterial { FresnelC = Kn5Material.GetPropertyValueAByName("fresnelC"), FresnelExp = Math.Max(Kn5Material.GetPropertyValueAByName("fresnelEXP"), 1f), FresnelMaxLevel = Kn5Material.GetPropertyValueAByName("fresnelMaxLevel") }; base.Initialize(contextHolder); }
public override bool Prepare(IDeviceContextHolder contextHolder, SpecialRenderMode mode) { if (!base.Prepare(contextHolder, mode)) { return(false); } Effect.FxNormalMap.SetResource(_txNormal); if (Kn5Material.GetPropertyValueAByName("nmObjectSpace") != 0) { Flags |= EffectDarkMaterial.NmObjectSpace; } return(true); }
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); }
internal Kn5MaterialToBake([CanBeNull] Kn5Material kn5Material) { _kn5Material = kn5Material; if (kn5Material == null) { return; } _propDiffuse = (_kn5Material.GetPropertyByName("ksAmbient")?.ValueA ?? 0.55f) + (_kn5Material.GetPropertyByName("ksDiffuse")?.ValueA ?? 0.45f) * 0.5f; _propMagicMult = _kn5Material.GetPropertyByName("magicMult")?.ValueA ?? 1.0f; _propMultilayerMult = new Vector4( _kn5Material.GetPropertyByName("multR")?.ValueA ?? 1.0f, _kn5Material.GetPropertyByName("multG")?.ValueA ?? 1.0f, _kn5Material.GetPropertyByName("multB")?.ValueA ?? 1.0f, _kn5Material.GetPropertyByName("multA")?.ValueA ?? 1.0f); _multilayer = kn5Material.ShaderName.Contains("Multilayer"); }
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 }; }
public override void Initialize(IDeviceContextHolder contextHolder) { #if REFLECTION_DEBUG && DEBUG if (_debugReflectionsMode) { _debugReflections = contextHolder.GetEffect <EffectSpecialDebugReflections>(); return; } #endif if (IsAdditive()) { Flags |= EffectDarkMaterial.IsAdditive; } _material = new EffectDarkMaterial.ReflectiveMaterial { FresnelC = Kn5Material.GetPropertyValueAByName("fresnelC"), FresnelExp = Math.Max(Kn5Material.GetPropertyValueAByName("fresnelEXP"), 1f), FresnelMaxLevel = Kn5Material.GetPropertyValueAByName("fresnelMaxLevel") }; base.Initialize(contextHolder); }
protected IRenderableTexture GetTexture(string mappingName, IDeviceContextHolder contextHolder) { var mapping = mappingName == null ? null : Kn5Material.GetMappingByName(mappingName); return(mapping == null ? null : contextHolder.Get <ITexturesProvider>().GetTexture(contextHolder, mapping.Texture)); }
private void treeViewKn5_AfterSelect(object sender, TreeViewEventArgs e) { var selected = treeViewKn5.SelectedNode; _kn5 = GetKn5(selected); if (_kn5 != null) { Text = Path.GetFileName(_kn5.OriginalFilename) + " - " + _text; } else { Text = _text; } _material = null; _texture = null; var listMode = true; var materialMode = false; if (selected.Tag != null && _kn5 != null) { if (selected.Tag is Kn5Material) { listMode = false; materialMode = true; _material = (Kn5Material)selected.Tag; labelInfo.Text = "Name: " + _material.Name; Kn5Texture texture = null; foreach (var mapping in _material.TextureMappings) { texture = _kn5.Textures[mapping.Texture]; break; } if (texture == null) { pictureBox.Image = null; } else { PreviewTexture(_kn5, texture); } textBoxShaderName.Text = _material.ShaderName; comboBoxBlendMode.SelectedIndex = (int)_material.BlendMode; comboBoxDepthMode.SelectedIndex = (int)_material.DepthMode; checkBoxAlphaTested.Checked = _material.AlphaTested; dataGridViewProperties.Rows.Clear(); foreach (var property in _material.ShaderProperties) { dataGridViewProperties.Rows.Add(new object[] { property.Name, Convert.ToString(property.ValueA), String.Join(", ", property.ValueB), String.Join(", ", property.ValueC), String.Join(", ", property.ValueD) }); } dataGridViewTextureMappings.Rows.Clear(); foreach (var mapping in _material.TextureMappings) { dataGridViewTextureMappings.Rows.Add(new object[] { mapping.Name, mapping.Texture, Convert.ToString(mapping.Slot) }); } } else if (selected.Tag is Kn5Texture) { listMode = false; tableLayoutPanelMain.ColumnStyles[0].SizeType = SizeType.AutoSize; tableLayoutPanelMain.ColumnStyles[1].Width = 50; _texture = (Kn5Texture)selected.Tag; var dds = PreviewTexture(_kn5, _texture); labelInfo.Text = "Name: " + _texture.Name + "\r\n" + (dds == null || dds.Bitmap == null ? "Read failed" : "Size: " + dds.Bitmap.Width + "×" + dds.Bitmap.Height + "\r\n" + "Pixel format: " + dds.Format); } } ListMode = listMode; MaterialMode = materialMode; }
public static float GetPropertyValueAByName(this Kn5Material mat, string name, float defaultValue = 0.0f) { var property = mat.GetPropertyByName(name); return(property?.ValueA ?? defaultValue); }
public static Vector3 GetPropertyValueCByName(this Kn5Material mat, string name) { return(GetPropertyValueCByName(mat, name, Vector3.Zero)); }
public static Vector3 GetPropertyValueCByName(this Kn5Material mat, string name, Vector3 defaultValue) { var property = mat.GetPropertyByName(name); return(property?.ValueC.ToVector3() ?? defaultValue); }
public Kn5MaterialDescription([CanBeNull] Kn5Material material) { Material = material; }
public Kn5MaterialDescription(object specialKey, [CanBeNull] Kn5Material material) { SpecialKey = specialKey; Material = material; }
protected override bool IsAdditive() { var value = Kn5Material.GetPropertyValueAByName("isAdditive"); return(!Equals(value, 0.0f) && !Equals(value, 2.0f)); }
internal Kn5MaterialUv(Kn5Material material) { _textures = material?.TextureMappings.Where(x => x.Name != "txDetail" && x.Name != "txNormalDetail").Select(x => x.Texture).ToArray() ?? new string[0]; }
protected virtual bool IsAdditive() { return(!Equals(Kn5Material.GetPropertyValueAByName("isAdditive"), 0.0f)); }