private void AddClearCoatMetalnessMap(MaterialGeneratorContext context) { // Metalness Feature var clearCoatMetalness = ClearCoatMetalnessMap.GenerateShaderSource(context, new MaterialComputeColorKeys(MaterialKeys.MetalnessMap, MaterialKeys.MetalnessValue)); var mixin = new ShaderMixinSource(); mixin.Mixins.Add(new ShaderClassSource("MaterialSurfaceMetalness")); mixin.AddComposition("metalnessMap", clearCoatMetalness); context.UseStream(MaterialShaderStage.Pixel, "matSpecular"); context.AddShaderSource(MaterialShaderStage.Pixel, mixin); }
private void ClampInputs() { // Clamp color inputs var diffuseMin = Vector4.Zero; var diffuseMax = Vector4.One; BasePaintDiffuseMap.ClampFloat4(ref diffuseMin, ref diffuseMax); MetalFlakesDiffuseMap.ClampFloat4(ref diffuseMin, ref diffuseMax); // Clamp scalar inputs BasePaintGlossinessMap.ClampFloat(0, 1); MetalFlakesGlossinessMap.ClampFloat(0, 1); ClearCoatGlossinessMap.ClampFloat(0, 1); MetalFlakesMetalnessMap.ClampFloat(0, 1); ClearCoatMetalnessMap.ClampFloat(0, 1); }